@madie/madie-design-system 1.2.40 → 1.2.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/browser.js CHANGED
@@ -1 +1 @@
1
- var QPPStyle;(()=>{var __webpack_modules__={741:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n Portal: () => (/* binding */ Portal),\n "default": () => (/* binding */ reach_portal_esm)\n});\n\n// EXTERNAL MODULE: ./node_modules/preact/compat/dist/compat.module.js + 2 modules\nvar compat_module = __webpack_require__(763);\n// EXTERNAL MODULE: ./node_modules/@reach/utils/use-isomorphic-layout-effect/dist/reach-utils-use-isomorphic-layout-effect.esm.js\nvar reach_utils_use_isomorphic_layout_effect_esm = __webpack_require__(103);\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/use-force-update/dist/reach-utils-use-force-update.esm.js\n\n\n/**\n * Forces a re-render, similar to `forceUpdate` in class components.\n */\n\nfunction useForceUpdate() {\n var _useState = (0,compat_module.useState)(Object.create(null)),\n dispatch = _useState[1];\n\n return (0,compat_module.useCallback)(function () {\n dispatch(Object.create(null));\n }, []);\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/portal/dist/reach-portal.esm.js\n\n\n\n\n\n\n/**\n * Welcome to @reach/portal!\n *\n * Creates and appends a DOM node to the end of `document.body` and renders a\n * React tree into it. Useful for rendering a natural React element hierarchy\n * with a different DOM hierarchy to prevent parent styles from clipping or\n * hiding content (for popovers, dropdowns, and modals).\n *\n * @see Docs https://reach.tech/portal\n * @see Source https://github.com/reach/reach-ui/tree/main/packages/portal\n * @see React https://reactjs.org/docs/portals.html\n */\n/**\n * Portal\n *\n * @see Docs https://reach.tech/portal#portal\n */\n\nvar Portal = function Portal(_ref) {\n var children = _ref.children,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? "reach-portal" : _ref$type,\n containerRef = _ref.containerRef;\n var mountNode = (0,compat_module.useRef)(null);\n var portalNode = (0,compat_module.useRef)(null);\n var forceUpdate = useForceUpdate();\n\n if (false) {}\n\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.E)(function () {\n // This ref may be null when a hot-loader replaces components on the page\n if (!mountNode.current) return; // It\'s possible that the content of the portal has, itself, been portaled.\n // In that case, it\'s important to append to the correct document element.\n\n var ownerDocument = mountNode.current.ownerDocument;\n var body = (containerRef == null ? void 0 : containerRef.current) || ownerDocument.body;\n portalNode.current = ownerDocument == null ? void 0 : ownerDocument.createElement(type);\n body.appendChild(portalNode.current);\n forceUpdate();\n return function () {\n if (portalNode.current && body) {\n body.removeChild(portalNode.current);\n }\n };\n }, [type, forceUpdate, containerRef]);\n return portalNode.current ? /*#__PURE__*/(0,compat_module.createPortal)(children, portalNode.current) : /*#__PURE__*/(0,compat_module.createElement)("span", {\n ref: mountNode\n });\n};\n/**\n * @see Docs https://reach.tech/portal#portal-props\n */\n\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n/* harmony default export */ const reach_portal_esm = (Portal);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzQxLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQThDOztBQUU5QztBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0IsMEJBQVE7QUFDMUI7O0FBRUEsU0FBUyw2QkFBVztBQUNwQjtBQUNBLEdBQUc7QUFDSDs7QUFFMEI7OztBQ2YrQjtBQUM2QjtBQUN2QjtBQUN0QjtBQUNOOztBQUVuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0Isd0JBQU07QUFDeEIsbUJBQW1CLHdCQUFNO0FBQ3pCLG9CQUFvQixjQUFjOztBQUVsQyxNQUFNLEtBQXFDLEVBQUUsRUFRMUM7O0FBRUgsRUFBRSxpRkFBeUI7QUFDM0I7QUFDQSxvQ0FBb0M7QUFDcEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsMkNBQTJDLDhCQUFZLDhDQUE4QywrQkFBYTtBQUNsSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7O0FBR0EsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7O0FBRUYsdURBQWUsTUFBTSxFQUFDO0FBQ0oiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvdXNlLWZvcmNlLXVwZGF0ZS9kaXN0L3JlYWNoLXV0aWxzLXVzZS1mb3JjZS11cGRhdGUuZXNtLmpzPzY5MWIiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3BvcnRhbC9kaXN0L3JlYWNoLXBvcnRhbC5lc20uanM/ZGRjOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5cbi8qKlxuICogRm9yY2VzIGEgcmUtcmVuZGVyLCBzaW1pbGFyIHRvIGBmb3JjZVVwZGF0ZWAgaW4gY2xhc3MgY29tcG9uZW50cy5cbiAqL1xuXG5mdW5jdGlvbiB1c2VGb3JjZVVwZGF0ZSgpIHtcbiAgdmFyIF91c2VTdGF0ZSA9IHVzZVN0YXRlKE9iamVjdC5jcmVhdGUobnVsbCkpLFxuICAgICAgZGlzcGF0Y2ggPSBfdXNlU3RhdGVbMV07XG5cbiAgcmV0dXJuIHVzZUNhbGxiYWNrKGZ1bmN0aW9uICgpIHtcbiAgICBkaXNwYXRjaChPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAgfSwgW10pO1xufVxuXG5leHBvcnQgeyB1c2VGb3JjZVVwZGF0ZSB9O1xuIiwiaW1wb3J0IHsgdXNlUmVmLCB1c2VFZmZlY3QsIGNyZWF0ZUVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH0gZnJvbSAnQHJlYWNoL3V0aWxzL3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QnO1xuaW1wb3J0IHsgdXNlRm9yY2VVcGRhdGUgfSBmcm9tICdAcmVhY2gvdXRpbHMvdXNlLWZvcmNlLXVwZGF0ZSc7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHdhcm5pbmcgZnJvbSAndGlueS13YXJuaW5nJztcblxuLyoqXG4gKiBXZWxjb21lIHRvIEByZWFjaC9wb3J0YWwhXG4gKlxuICogQ3JlYXRlcyBhbmQgYXBwZW5kcyBhIERPTSBub2RlIHRvIHRoZSBlbmQgb2YgYGRvY3VtZW50LmJvZHlgIGFuZCByZW5kZXJzIGFcbiAqIFJlYWN0IHRyZWUgaW50byBpdC4gVXNlZnVsIGZvciByZW5kZXJpbmcgYSBuYXR1cmFsIFJlYWN0IGVsZW1lbnQgaGllcmFyY2h5XG4gKiB3aXRoIGEgZGlmZmVyZW50IERPTSBoaWVyYXJjaHkgdG8gcHJldmVudCBwYXJlbnQgc3R5bGVzIGZyb20gY2xpcHBpbmcgb3JcbiAqIGhpZGluZyBjb250ZW50IChmb3IgcG9wb3ZlcnMsIGRyb3Bkb3ducywgYW5kIG1vZGFscykuXG4gKlxuICogQHNlZSBEb2NzICAgaHR0cHM6Ly9yZWFjaC50ZWNoL3BvcnRhbFxuICogQHNlZSBTb3VyY2UgaHR0cHM6Ly9naXRodWIuY29tL3JlYWNoL3JlYWNoLXVpL3RyZWUvbWFpbi9wYWNrYWdlcy9wb3J0YWxcbiAqIEBzZWUgUmVhY3QgIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9wb3J0YWxzLmh0bWxcbiAqL1xuLyoqXG4gKiBQb3J0YWxcbiAqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3BvcnRhbCNwb3J0YWxcbiAqL1xuXG52YXIgUG9ydGFsID0gZnVuY3Rpb24gUG9ydGFsKF9yZWYpIHtcbiAgdmFyIGNoaWxkcmVuID0gX3JlZi5jaGlsZHJlbixcbiAgICAgIF9yZWYkdHlwZSA9IF9yZWYudHlwZSxcbiAgICAgIHR5cGUgPSBfcmVmJHR5cGUgPT09IHZvaWQgMCA/IFwicmVhY2gtcG9ydGFsXCIgOiBfcmVmJHR5cGUsXG4gICAgICBjb250YWluZXJSZWYgPSBfcmVmLmNvbnRhaW5lclJlZjtcbiAgdmFyIG1vdW50Tm9kZSA9IHVzZVJlZihudWxsKTtcbiAgdmFyIHBvcnRhbE5vZGUgPSB1c2VSZWYobnVsbCk7XG4gIHZhciBmb3JjZVVwZGF0ZSA9IHVzZUZvcmNlVXBkYXRlKCk7XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoY29udGFpbmVyUmVmICE9IG51bGwpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyh0eXBlb2YgY29udGFpbmVyUmVmID09PSBcIm9iamVjdFwiICYmIFwiY3VycmVudFwiIGluIGNvbnRhaW5lclJlZiwgXCJAcmVhY2gvcG9ydGFsOiBJbnZhbGlkIHZhbHVlIHBhc3NlZCB0byB0aGUgYGNvbnRhaW5lclJlZmAgb2YgYSBcIiArIFwiYFBvcnRhbGAuIFRoZSBwb3J0YWwgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgZG9jdW1lbnQgYm9keSwgYnV0IGlmIFwiICsgXCJ5b3Ugd2FudCB0byBhdHRhY2ggaXQgdG8gYW5vdGhlciBET00gbm9kZSB5b3UgbXVzdCBwYXNzIGEgdmFsaWQgXCIgKyBcIlJlYWN0IHJlZiBvYmplY3QgdG8gYGNvbnRhaW5lclJlZmAuXCIpIDogdm9pZCAwO1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKGNvbnRhaW5lclJlZiA/IGNvbnRhaW5lclJlZi5jdXJyZW50ICE9IG51bGwgOiB0cnVlLCBcIkByZWFjaC9wb3J0YWw6IEEgcmVmIHdhcyBwYXNzZWQgdG8gdGhlIGBjb250YWluZXJSZWZgIHByb3Agb2YgYSBcIiArIFwiYFBvcnRhbGAsIGJ1dCBubyBET00gbm9kZSB3YXMgYXR0YWNoZWQgdG8gaXQuIEJlIHN1cmUgdG8gcGFzcyB0aGUgXCIgKyBcInJlZiB0byBhIERPTSBjb21wb25lbnQuXFxuXFxuSWYgeW91IGFyZSBmb3J3YXJkaW5nIHRoZSByZWYgZnJvbSBcIiArIFwiYW5vdGhlciBjb21wb25lbnQsIGJlIHN1cmUgdG8gdXNlIHRoZSBSZWFjdC5mb3J3YXJkUmVmIEFQSS4gXCIgKyBcIlNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvZm9yd2FyZGluZy1yZWZzLmh0bWwuXCIpIDogdm9pZCAwO1xuICAgICAgfVxuICAgIH0sIFtjb250YWluZXJSZWZdKTtcbiAgfVxuXG4gIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIC8vIFRoaXMgcmVmIG1heSBiZSBudWxsIHdoZW4gYSBob3QtbG9hZGVyIHJlcGxhY2VzIGNvbXBvbmVudHMgb24gdGhlIHBhZ2VcbiAgICBpZiAoIW1vdW50Tm9kZS5jdXJyZW50KSByZXR1cm47IC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgY29udGVudCBvZiB0aGUgcG9ydGFsIGhhcywgaXRzZWxmLCBiZWVuIHBvcnRhbGVkLlxuICAgIC8vIEluIHRoYXQgY2FzZSwgaXQncyBpbXBvcnRhbnQgdG8gYXBwZW5kIHRvIHRoZSBjb3JyZWN0IGRvY3VtZW50IGVsZW1lbnQuXG5cbiAgICB2YXIgb3duZXJEb2N1bWVudCA9IG1vdW50Tm9kZS5jdXJyZW50Lm93bmVyRG9jdW1lbnQ7XG4gICAgdmFyIGJvZHkgPSAoY29udGFpbmVyUmVmID09IG51bGwgPyB2b2lkIDAgOiBjb250YWluZXJSZWYuY3VycmVudCkgfHwgb3duZXJEb2N1bWVudC5ib2R5O1xuICAgIHBvcnRhbE5vZGUuY3VycmVudCA9IG93bmVyRG9jdW1lbnQgPT0gbnVsbCA/IHZvaWQgMCA6IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0eXBlKTtcbiAgICBib2R5LmFwcGVuZENoaWxkKHBvcnRhbE5vZGUuY3VycmVudCk7XG4gICAgZm9yY2VVcGRhdGUoKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHBvcnRhbE5vZGUuY3VycmVudCAmJiBib2R5KSB7XG4gICAgICAgIGJvZHkucmVtb3ZlQ2hpbGQocG9ydGFsTm9kZS5jdXJyZW50KTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbdHlwZSwgZm9yY2VVcGRhdGUsIGNvbnRhaW5lclJlZl0pO1xuICByZXR1cm4gcG9ydGFsTm9kZS5jdXJyZW50ID8gLyojX19QVVJFX18qL2NyZWF0ZVBvcnRhbChjaGlsZHJlbiwgcG9ydGFsTm9kZS5jdXJyZW50KSA6IC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgcmVmOiBtb3VudE5vZGVcbiAgfSk7XG59O1xuLyoqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3BvcnRhbCNwb3J0YWwtcHJvcHNcbiAqL1xuXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgUG9ydGFsLmRpc3BsYXlOYW1lID0gXCJQb3J0YWxcIjtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGRlZmF1bHQgUG9ydGFsO1xuZXhwb3J0IHsgUG9ydGFsIH07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///741\n')},197:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n LEAVE_TIMEOUT: () => (/* binding */ LEAVE_TIMEOUT),\n MOUSE_REST_TIMEOUT: () => (/* binding */ MOUSE_REST_TIMEOUT),\n Tooltip: () => (/* binding */ Tooltip),\n TooltipPopup: () => (/* binding */ TooltipPopup),\n "default": () => (/* binding */ reach_tooltip_esm),\n positionTooltip: () => (/* binding */ positionTooltip),\n useTooltip: () => (/* binding */ useTooltip)\n});\n\n// EXTERNAL MODULE: ./node_modules/preact/compat/dist/compat.module.js + 2 modules\nvar compat_module = __webpack_require__(763);\n// EXTERNAL MODULE: ./node_modules/@reach/utils/use-isomorphic-layout-effect/dist/reach-utils-use-isomorphic-layout-effect.esm.js\nvar reach_utils_use_isomorphic_layout_effect_esm = __webpack_require__(103);\n;// CONCATENATED MODULE: ./node_modules/@reach/auto-id/dist/reach-auto-id.esm.js\n\n\n\n/*\n * Welcome to @reach/auto-id!\n\n * Let\'s see if we can make sense of why this hook exists and its\n * implementation.\n *\n * Some background:\n * 1. Accessibility APIs rely heavily on element IDs\n * 2. Requiring developers to put IDs on every element in Reach UI is both\n * cumbersome and error-prone\n * 3. With a component model, we can generate IDs for them!\n *\n * Solution 1: Generate random IDs.\n *\n * This works great as long as you don\'t server render your app. When React (in\n * the client) tries to reuse the markup from the server, the IDs won\'t match\n * and React will then recreate the entire DOM tree.\n *\n * Solution 2: Increment an integer\n *\n * This sounds great. Since we\'re rendering the exact same tree on the server\n * and client, we can increment a counter and get a deterministic result between\n * client and server. Also, JS integers can go up to nine-quadrillion. I\'m\n * pretty sure the tab will be closed before an app never needs\n * 10 quadrillion IDs!\n *\n * Problem solved, right?\n *\n * Ah, but there\'s a catch! React\'s concurrent rendering makes this approach\n * non-deterministic. While the client and server will end up with the same\n * elements in the end, depending on suspense boundaries (and possibly some user\n * input during the initial render) the incrementing integers won\'t always match\n * up.\n *\n * Solution 3: Don\'t use IDs at all on the server; patch after first render.\n *\n * What we\'ve done here is solution 2 with some tricks. With this approach, the\n * ID returned is an empty string on the first render. This way the server and\n * client have the same markup no matter how wild the concurrent rendering may\n * have gotten.\n *\n * After the render, we patch up the components with an incremented ID. This\n * causes a double render on any components with `useId`. Shouldn\'t be a problem\n * since the components using this hook should be small, and we\'re only updating\n * the ID attribute on the DOM, nothing big is happening.\n *\n * It doesn\'t have to be an incremented number, though--we could do generate\n * random strings instead, but incrementing a number is probably the cheapest\n * thing we can do.\n *\n * Additionally, we only do this patchup on the very first client render ever.\n * Any calls to `useId` that happen dynamically in the client will be\n * populated immediately with a value. So, we only get the double render after\n * server hydration and never again, SO BACK OFF ALRIGHT?\n */\nvar serverHandoffComplete = false;\nvar id = 0;\n\nvar genId = function genId() {\n return ++id;\n};\n/**\n * useId\n *\n * Autogenerate IDs to facilitate WAI-ARIA and server rendering.\n *\n * Note: The returned ID will initially be `null` and will update after a\n * component mounts. Users may need to supply their own ID if they need\n * consistent values for SSR.\n *\n * @see Docs https://reach.tech/auto-id\n */\n\n\nfunction useId(idFromProps) {\n /*\n * If this instance isn\'t part of the initial render, we don\'t have to do the\n * double render/patch-up dance. We can just generate the ID and return it.\n */\n var initialId = idFromProps || (serverHandoffComplete ? genId() : null);\n\n var _React$useState = (0,compat_module.useState)(initialId),\n id = _React$useState[0],\n setId = _React$useState[1];\n\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.E)(function () {\n if (id === null) {\n /*\n * Patch the ID after render. We do this in `useLayoutEffect` to avoid any\n * rendering flicker, though it\'ll make the first render slower (unlikely\n * to matter, but you\'re welcome to measure your app and let us know if\n * it\'s a problem).\n */\n setId(genId());\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, []);\n (0,compat_module.useEffect)(function () {\n if (serverHandoffComplete === false) {\n /*\n * Flag all future uses of `useId` to skip the update dance. This is in\n * `useEffect` because it goes after `useLayoutEffect`, ensuring we don\'t\n * accidentally bail out of the patch-up dance prematurely.\n */\n serverHandoffComplete = true;\n }\n }, []);\n return id != null ? String(id) : undefined;\n}\n\n\n\n// EXTERNAL MODULE: ./node_modules/@reach/utils/can-use-dom/dist/reach-utils-can-use-dom.esm.js\nvar reach_utils_can_use_dom_esm = __webpack_require__(937);\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/owner-document/dist/reach-utils-owner-document.esm.js\n\n\n/**\n * Get an element\'s owner document. Useful when components are used in iframes\n * or other environments like dev tools.\n *\n * @param element\n */\n\nfunction getOwnerDocument(element) {\n return (0,reach_utils_can_use_dom_esm/* canUseDOM */.S)() ? element ? element.ownerDocument : document : null;\n}\n/**\n * TODO: Remove in 1.0\n */\n\nfunction getOwnerWindow(element) {\n var ownerDocument = getOwnerDocument(element);\n return ownerDocument ? ownerDocument.defaultView || window : null;\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/get-document-dimensions/dist/reach-utils-get-document-dimensions.esm.js\n\n\n\n/**\n * Get the size of the working document minus the scrollbar offset.\n *\n * @param element\n */\n\nfunction getDocumentDimensions(element) {\n var _ownerDocument$docume, _ownerDocument$docume2;\n\n var ownerDocument = getOwnerDocument(element);\n var ownerWindow = ownerDocument.defaultView || window;\n\n if (!ownerDocument) {\n return {\n width: 0,\n height: 0\n };\n }\n\n return {\n width: (_ownerDocument$docume = ownerDocument.documentElement.clientWidth) != null ? _ownerDocument$docume : ownerWindow.innerWidth,\n height: (_ownerDocument$docume2 = ownerDocument.documentElement.clientHeight) != null ? _ownerDocument$docume2 : ownerWindow.innerHeight\n };\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/make-id/dist/reach-utils-make-id.esm.js\n/**\n * Joins strings to format IDs for compound components.\n *\n * @param args\n */\nfunction makeId() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.filter(function (val) {\n return val != null;\n }).join("--");\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/dev-utils/dist/reach-utils-dev-utils.esm.js\n\n\n/* eslint-disable react-hooks/rules-of-hooks */\nvar checkedPkgs = {};\n/**\n * Just a lil state logger\n *\n * @param state\n * @param DEBUG\n */\n\nfunction useStateLogger(state, DEBUG) {\n if (DEBUG === void 0) {\n DEBUG = false;\n }\n\n if (false) { var debugRef; }\n}\n/**\n * When in dev mode, checks that styles for a given `@reach` package are loaded.\n *\n * @param packageName Name of the package to check.\n * @example checkStyles("dialog") will check for styles for @reach/dialog\n */\n\nfunction checkStyles(packageName) {\n if (false) { var _ref, environment; }\n}\n/**\n * When in dev mode, checks that styles for a given `@reach` package are loaded.\n *\n * @param packageName Name of the package to check.\n * @example useCheckStyles("dialog") will check for styles for @reach/dialog\n */\n\nfunction useCheckStyles(packageName) {\n if (false) { var name; }\n}\n/**\n * Logs a warning in dev mode when a component switches from controlled to\n * uncontrolled, or vice versa\n *\n * A single prop should typically be used to determine whether or not a\n * component is controlled or not.\n *\n * @param controlledValue\n * @param controlledPropName\n * @param componentName\n */\n\nfunction useControlledSwitchWarning(controlledValue, controlledPropName, componentName) {\n if (false) { var nameCache, controlledRef; }\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/type-check/dist/reach-utils-type-check.esm.js\n/**\n * Checks whether or not a value is a boolean.\n *\n * @param value\n */\nfunction isBoolean(value) {\n return typeof value === "boolean";\n}\n/**\n * Checks whether or not a value is a function.\n *\n * @param value\n */\n\nfunction isFunction(value) {\n // eslint-disable-next-line eqeqeq\n return !!(value && {}.toString.call(value) == "[object Function]");\n}\n/**\n * Checks whether or not a value is a number.\n *\n * @param value\n */\n\nfunction isNumber(value) {\n return typeof value === "number" && !isNaN(value);\n}\n/**\n * Checks whether or not a value is a string.\n *\n * @param value\n */\n\nfunction isString(value) {\n return typeof value === "string";\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/compose-refs/dist/reach-utils-compose-refs.esm.js\n\n\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === "string") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === "Object" && o.constructor) n = o.constructor.name;\n if (n === "Map" || n === "Set") return Array.from(o);\n if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\n/**\n * Passes or assigns an arbitrary value to a ref function or object.\n *\n * @param ref\n * @param value\n */\nfunction assignRef(ref, value) {\n if (ref == null) return;\n\n if (isFunction(ref)) {\n ref(value);\n } else {\n try {\n ref.current = value;\n } catch (error) {\n throw new Error("Cannot assign value \\"" + value + "\\" to ref \\"" + ref + "\\"");\n }\n }\n}\n/**\n * Passes or assigns a value to multiple refs (typically a DOM node). Useful for\n * dealing with components that need an explicit ref for DOM calculations but\n * also forwards refs assigned by an app.\n *\n * @param refs Refs to fork\n */\n\nfunction useComposedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return (0,compat_module.useCallback)(function (node) {\n for (var _iterator = _createForOfIteratorHelperLoose(refs), _step; !(_step = _iterator()).done;) {\n var ref = _step.value;\n assignRef(ref, node);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, refs);\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/compose-event-handlers/dist/reach-utils-compose-event-handlers.esm.js\n/**\n * Wraps a lib-defined event handler and a user-defined event handler, returning\n * a single handler that allows a user to prevent lib-defined handlers from\n * firing.\n *\n * @param theirHandler User-supplied event handler\n * @param ourHandler Library-supplied event handler\n */\nfunction composeEventHandlers(theirHandler, ourHandler) {\n return function (event) {\n theirHandler && theirHandler(event);\n\n if (!event.defaultPrevented) {\n return ourHandler(event);\n }\n };\n}\n\n\n\n// EXTERNAL MODULE: ./node_modules/@reach/portal/dist/reach-portal.esm.js + 1 modules\nvar reach_portal_esm = __webpack_require__(741);\n;// CONCATENATED MODULE: ./node_modules/@reach/visually-hidden/dist/reach-visually-hidden.esm.js\n\n\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded = ["as", "style"];\n\n/**\n * VisuallyHidden\n *\n * Provides text for screen readers that is visually hidden.\n * It is the logical opposite of the `aria-hidden` attribute.\n */\nvar VisuallyHidden = /*#__PURE__*/(0,compat_module.forwardRef)(function VisuallyHidden(_ref, ref) {\n var _ref$as = _ref.as,\n Comp = _ref$as === void 0 ? "span" : _ref$as,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return /*#__PURE__*/(0,compat_module.createElement)(Comp, _extends({\n ref: ref,\n style: _extends({\n border: 0,\n clip: "rect(0 0 0 0)",\n height: "1px",\n margin: "-1px",\n overflow: "hidden",\n padding: 0,\n position: "absolute",\n width: "1px",\n // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe\n whiteSpace: "nowrap",\n wordWrap: "normal"\n }, style)\n }, props));\n});\n/**\n * @see Docs https://reach.tech/visually-hidden#visuallyhidden-props\n */\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n/* harmony default export */ const reach_visually_hidden_esm = ((/* unused pure expression or super */ null && (VisuallyHidden)));\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/observe-rect/dist/observe-rect.esm.js\nvar props = ["bottom", "height", "left", "right", "top", "width"];\n\nvar rectChanged = function rectChanged(a, b) {\n if (a === void 0) {\n a = {};\n }\n\n if (b === void 0) {\n b = {};\n }\n\n return props.some(function (prop) {\n return a[prop] !== b[prop];\n });\n};\n\nvar observedNodes = /*#__PURE__*/new Map();\nvar rafId;\n\nvar run = function run() {\n var changedStates = [];\n observedNodes.forEach(function (state, node) {\n var newRect = node.getBoundingClientRect();\n\n if (rectChanged(newRect, state.rect)) {\n state.rect = newRect;\n changedStates.push(state);\n }\n });\n changedStates.forEach(function (state) {\n state.callbacks.forEach(function (cb) {\n return cb(state.rect);\n });\n });\n rafId = window.requestAnimationFrame(run);\n};\n\nfunction observeRect(node, cb) {\n return {\n observe: function observe() {\n var wasEmpty = observedNodes.size === 0;\n\n if (observedNodes.has(node)) {\n observedNodes.get(node).callbacks.push(cb);\n } else {\n observedNodes.set(node, {\n rect: undefined,\n hasRectChanged: false,\n callbacks: [cb]\n });\n }\n\n if (wasEmpty) run();\n },\n unobserve: function unobserve() {\n var state = observedNodes.get(node);\n\n if (state) {\n // Remove the callback\n var index = state.callbacks.indexOf(cb);\n if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference\n\n if (!state.callbacks.length) observedNodes["delete"](node); // Stop the loop\n\n if (!observedNodes.size) cancelAnimationFrame(rafId);\n }\n }\n };\n}\n\n/* harmony default export */ const observe_rect_esm = (observeRect);\n//# sourceMappingURL=observe-rect.esm.js.map\n\n;// CONCATENATED MODULE: ./node_modules/@reach/rect/dist/reach-rect.esm.js\n\n\n\n\n\n\n\n/**\n * Welcome to @reach/rect!\n *\n * Measures DOM elements (aka. bounding client rect).\n *\n * @see getBoundingClientRect https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect\n * @see Docs https://reach.tech/rect\n * @see Source https://github.com/reach/reach-ui/tree/main/packages/rect\n */\n\n/**\n * Rect\n *\n * @param props\n */\n\nvar Rect = function Rect(_ref) {\n var onChange = _ref.onChange,\n _ref$observe = _ref.observe,\n observe = _ref$observe === void 0 ? true : _ref$observe,\n children = _ref.children;\n var ref = useRef(null);\n var rect = useRect(ref, {\n observe: observe,\n onChange: onChange\n });\n return children({\n ref: ref,\n rect: rect\n });\n};\n/**\n * @see Docs https://reach.tech/rect#rect-props\n */\n\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n\n/**\n * useRect\n *\n * @param nodeRef\n * @param observe\n * @param onChange\n */\nfunction useRect(nodeRef, observeOrOptions, deprecated_onChange) {\n var observe;\n var onChange;\n\n if (isBoolean(observeOrOptions)) {\n observe = observeOrOptions;\n } else {\n var _observeOrOptions$obs;\n\n observe = (_observeOrOptions$obs = observeOrOptions == null ? void 0 : observeOrOptions.observe) != null ? _observeOrOptions$obs : true;\n onChange = observeOrOptions == null ? void 0 : observeOrOptions.onChange;\n }\n\n if (isFunction(deprecated_onChange)) {\n onChange = deprecated_onChange;\n }\n\n if (false) {}\n\n var _React$useState = (0,compat_module.useState)(nodeRef.current),\n element = _React$useState[0],\n setElement = _React$useState[1];\n\n var initialRectIsSet = (0,compat_module.useRef)(false);\n var initialRefIsSet = (0,compat_module.useRef)(false);\n\n var _React$useState2 = (0,compat_module.useState)(null),\n rect = _React$useState2[0],\n setRect = _React$useState2[1];\n\n var onChangeRef = (0,compat_module.useRef)(onChange); // eslint-disable-next-line react-hooks/exhaustive-deps\n\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.E)(function () {\n onChangeRef.current = onChange;\n\n if (nodeRef.current !== element) {\n setElement(nodeRef.current);\n }\n });\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.E)(function () {\n if (element && !initialRectIsSet.current) {\n initialRectIsSet.current = true;\n setRect(element.getBoundingClientRect());\n }\n }, [element]);\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.E)(function () {\n if (!observe) {\n return;\n }\n\n var elem = element; // State initializes before refs are placed, meaning the element state will\n // be undefined on the first render. We still want the rect on the first\n // render, so initially we\'ll use the nodeRef that was passed instead of\n // state for our measurements.\n\n if (!initialRefIsSet.current) {\n initialRefIsSet.current = true;\n elem = nodeRef.current;\n }\n\n if (!elem) {\n if (false) {}\n\n return;\n }\n\n var observer = observe_rect_esm(elem, function (rect) {\n onChangeRef.current == null ? void 0 : onChangeRef.current(rect);\n setRect(rect);\n });\n observer.observe();\n return function () {\n observer.unobserve();\n };\n }, [observe, element, nodeRef]);\n return rect;\n}\n\n/* harmony default export */ const reach_rect_esm = ((/* unused pure expression or super */ null && (Rect)));\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/tooltip/dist/reach-tooltip.esm.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction reach_tooltip_esm_extends() {\n reach_tooltip_esm_extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return reach_tooltip_esm_extends.apply(this, arguments);\n}\n\nfunction reach_tooltip_esm_objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar reach_tooltip_esm_excluded = ["children", "label", "ariaLabel", "id", "DEBUG_STYLE"],\n _excluded2 = ["label", "ariaLabel", "isVisible", "id"],\n _excluded3 = ["ariaLabel", "aria-label", "as", "id", "isVisible", "label", "position", "style", "triggerRect"],\n _excluded4 = ["type"];\n\nvar _on, _on2, _on3, _on4, _on5, _states;\nvar MOUSE_REST_TIMEOUT = 100;\nvar LEAVE_TIMEOUT = 500; ////////////////////////////////////////////////////////////////////////////////\n// States\n\nvar TooltipStates; ////////////////////////////////////////////////////////////////////////////////\n// Events\n\n(function (TooltipStates) {\n TooltipStates["Idle"] = "IDLE";\n TooltipStates["Focused"] = "FOCUSED";\n TooltipStates["Visible"] = "VISIBLE";\n TooltipStates["LeavingVisible"] = "LEAVING_VISIBLE";\n TooltipStates["Dismissed"] = "DISMISSED";\n})(TooltipStates || (TooltipStates = {}));\n\nvar TooltipEvents;\n\n(function (TooltipEvents) {\n TooltipEvents["Blur"] = "BLUR";\n TooltipEvents["Focus"] = "FOCUS";\n TooltipEvents["GlobalMouseMove"] = "GLOBAL_MOUSE_MOVE";\n TooltipEvents["MouseDown"] = "MOUSE_DOWN";\n TooltipEvents["MouseEnter"] = "MOUSE_ENTER";\n TooltipEvents["MouseLeave"] = "MOUSE_LEAVE";\n TooltipEvents["MouseMove"] = "MOUSE_MOVE";\n TooltipEvents["Rest"] = "REST";\n TooltipEvents["SelectWithKeyboard"] = "SELECT_WITH_KEYBOARD";\n TooltipEvents["TimeComplete"] = "TIME_COMPLETE";\n})(TooltipEvents || (TooltipEvents = {}));\n\nvar chart = {\n initial: TooltipStates.Idle,\n states: (_states = {}, _states[TooltipStates.Idle] = {\n enter: clearContextId,\n on: (_on = {}, _on[TooltipEvents.MouseEnter] = TooltipStates.Focused, _on[TooltipEvents.Focus] = TooltipStates.Visible, _on)\n }, _states[TooltipStates.Focused] = {\n enter: startRestTimer,\n leave: clearRestTimer,\n on: (_on2 = {}, _on2[TooltipEvents.MouseMove] = TooltipStates.Focused, _on2[TooltipEvents.MouseLeave] = TooltipStates.Idle, _on2[TooltipEvents.MouseDown] = TooltipStates.Dismissed, _on2[TooltipEvents.Blur] = TooltipStates.Idle, _on2[TooltipEvents.Rest] = TooltipStates.Visible, _on2)\n }, _states[TooltipStates.Visible] = {\n on: (_on3 = {}, _on3[TooltipEvents.Focus] = TooltipStates.Focused, _on3[TooltipEvents.MouseEnter] = TooltipStates.Focused, _on3[TooltipEvents.MouseLeave] = TooltipStates.LeavingVisible, _on3[TooltipEvents.Blur] = TooltipStates.LeavingVisible, _on3[TooltipEvents.MouseDown] = TooltipStates.Dismissed, _on3[TooltipEvents.SelectWithKeyboard] = TooltipStates.Dismissed, _on3[TooltipEvents.GlobalMouseMove] = TooltipStates.LeavingVisible, _on3)\n }, _states[TooltipStates.LeavingVisible] = {\n enter: startLeavingVisibleTimer,\n leave: function leave() {\n clearLeavingVisibleTimer();\n clearContextId();\n },\n on: (_on4 = {}, _on4[TooltipEvents.MouseEnter] = TooltipStates.Visible, _on4[TooltipEvents.Focus] = TooltipStates.Visible, _on4[TooltipEvents.TimeComplete] = TooltipStates.Idle, _on4)\n }, _states[TooltipStates.Dismissed] = {\n leave: function leave() {\n clearContextId();\n },\n on: (_on5 = {}, _on5[TooltipEvents.MouseLeave] = TooltipStates.Idle, _on5[TooltipEvents.Blur] = TooltipStates.Idle, _on5)\n }, _states)\n};\n/*\n * Chart context allows us to persist some data around, in Tooltip all we use\n * is the id of the current tooltip being interacted with.\n */\n\nvar state = {\n value: chart.initial,\n context: {\n id: null\n }\n}; ////////////////////////////////////////////////////////////////////////////////\n// Subscriptions:\n//\n// We could require apps to render a <TooltipProvider> around the app and use\n// React context to notify Tooltips of changes to our state machine, instead\n// we manage subscriptions ourselves and simplify the Tooltip API.\n//\n// Maybe if default context could take a hook (instead of just a static value)\n// that was rendered at the root for us, that\'d be cool! But it doesn\'t.\n\nvar subscriptions = [];\n\nfunction subscribe(fn) {\n subscriptions.push(fn);\n return function () {\n subscriptions.splice(subscriptions.indexOf(fn), 1);\n };\n}\n\nfunction notify() {\n subscriptions.forEach(function (fn) {\n return fn(state);\n });\n} ////////////////////////////////////////////////////////////////////////////////\n// Timeouts:\n// Manages when the user "rests" on an element. Keeps the interface from being\n// flashing tooltips all the time as the user moves the mouse around the screen.\n\n\nvar restTimeout;\n\nfunction startRestTimer() {\n window.clearTimeout(restTimeout);\n restTimeout = window.setTimeout(function () {\n send({\n type: TooltipEvents.Rest\n });\n }, MOUSE_REST_TIMEOUT);\n}\n\nfunction clearRestTimer() {\n window.clearTimeout(restTimeout);\n} // Manages the delay to hide the tooltip after rest leaves.\n\n\nvar leavingVisibleTimer;\n\nfunction startLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n leavingVisibleTimer = window.setTimeout(function () {\n return send({\n type: TooltipEvents.TimeComplete\n });\n }, LEAVE_TIMEOUT);\n}\n\nfunction clearLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n} // allows us to come on back later w/o entering something else first after the\n// user leaves or dismisses\n\n\nfunction clearContextId() {\n state.context.id = null;\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * useTooltip\n *\n * @param params\n */\n\n\nfunction useTooltip(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n idProp = _ref.id,\n onPointerEnter = _ref.onPointerEnter,\n onPointerMove = _ref.onPointerMove,\n onPointerLeave = _ref.onPointerLeave,\n onPointerDown = _ref.onPointerDown,\n onMouseEnter = _ref.onMouseEnter,\n onMouseMove = _ref.onMouseMove,\n onMouseLeave = _ref.onMouseLeave,\n onMouseDown = _ref.onMouseDown,\n onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n onKeyDown = _ref.onKeyDown,\n disabled = _ref.disabled,\n forwardedRef = _ref.ref,\n DEBUG_STYLE = _ref.DEBUG_STYLE;\n\n var id = String(useId(idProp));\n\n var _React$useState = (0,compat_module.useState)(DEBUG_STYLE ? true : isTooltipVisible(id, true)),\n isVisible = _React$useState[0],\n setIsVisible = _React$useState[1]; // hopefully they always pass a ref if they ever pass one\n\n\n var ownRef = (0,compat_module.useRef)(null);\n var ref = useComposedRefs(forwardedRef, ownRef);\n var triggerRect = useRect(ownRef, {\n observe: isVisible\n });\n (0,compat_module.useEffect)(function () {\n return subscribe(function () {\n setIsVisible(isTooltipVisible(id));\n });\n }, [id]);\n useCheckStyles("tooltip");\n (0,compat_module.useEffect)(function () {\n var ownerDocument = getOwnerDocument(ownRef.current);\n\n function listener(event) {\n if ((event.key === "Escape" || event.key === "Esc") && state.value === TooltipStates.Visible) {\n send({\n type: TooltipEvents.SelectWithKeyboard\n });\n }\n }\n\n ownerDocument.addEventListener("keydown", listener);\n return function () {\n return ownerDocument.removeEventListener("keydown", listener);\n };\n }, []);\n useDisabledTriggerOnSafari({\n disabled: disabled,\n isVisible: isVisible,\n ref: ownRef\n });\n\n function wrapMouseEvent(theirHandler, ourHandler) {\n // Use internal MouseEvent handler only if PointerEvent is not supported\n if (typeof window !== "undefined" && "PointerEvent" in window) {\n return theirHandler;\n }\n\n return composeEventHandlers(theirHandler, ourHandler);\n }\n\n function wrapPointerEventHandler(handler) {\n return function onPointerEvent(event) {\n // Handle pointer events only from mouse device\n if (event.pointerType !== "mouse") {\n return;\n }\n\n handler(event);\n };\n }\n\n function handleMouseEnter() {\n send({\n type: TooltipEvents.MouseEnter,\n id: id\n });\n }\n\n function handleMouseMove() {\n send({\n type: TooltipEvents.MouseMove,\n id: id\n });\n }\n\n function handleMouseLeave() {\n send({\n type: TooltipEvents.MouseLeave\n });\n }\n\n function handleMouseDown() {\n // Allow quick click from one tool to another\n if (state.context.id === id) {\n send({\n type: TooltipEvents.MouseDown\n });\n }\n }\n\n function handleFocus() {\n // @ts-ignore\n if (window.__REACH_DISABLE_TOOLTIPS) {\n return;\n }\n\n send({\n type: TooltipEvents.Focus,\n id: id\n });\n }\n\n function handleBlur() {\n // Allow quick click from one tool to another\n if (state.context.id === id) {\n send({\n type: TooltipEvents.Blur\n });\n }\n }\n\n function handleKeyDown(event) {\n if (event.key === "Enter" || event.key === " ") {\n send({\n type: TooltipEvents.SelectWithKeyboard\n });\n }\n }\n\n var trigger = {\n // The element that triggers the tooltip references the tooltip element with\n // `aria-describedby`.\n // https://www.w3.org/TR/wai-aria-practices-1.2/#tooltip\n "aria-describedby": isVisible ? makeId("tooltip", id) : undefined,\n "data-state": isVisible ? "tooltip-visible" : "tooltip-hidden",\n "data-reach-tooltip-trigger": "",\n ref: ref,\n onPointerEnter: composeEventHandlers(onPointerEnter, wrapPointerEventHandler(handleMouseEnter)),\n onPointerMove: composeEventHandlers(onPointerMove, wrapPointerEventHandler(handleMouseMove)),\n onPointerLeave: composeEventHandlers(onPointerLeave, wrapPointerEventHandler(handleMouseLeave)),\n onPointerDown: composeEventHandlers(onPointerDown, wrapPointerEventHandler(handleMouseDown)),\n onMouseEnter: wrapMouseEvent(onMouseEnter, handleMouseEnter),\n onMouseMove: wrapMouseEvent(onMouseMove, handleMouseMove),\n onMouseLeave: wrapMouseEvent(onMouseLeave, handleMouseLeave),\n onMouseDown: wrapMouseEvent(onMouseDown, handleMouseDown),\n onFocus: composeEventHandlers(onFocus, handleFocus),\n onBlur: composeEventHandlers(onBlur, handleBlur),\n onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown)\n };\n var tooltip = {\n id: id,\n triggerRect: triggerRect,\n isVisible: isVisible\n };\n return [trigger, tooltip, isVisible];\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Tooltip\n *\n * @see Docs https://reach.tech/tooltip#tooltip\n */\n\n\nvar Tooltip = /*#__PURE__*/(0,compat_module.forwardRef)(function (_ref2, forwardedRef) {\n var children = _ref2.children,\n label = _ref2.label,\n DEPRECATED_ariaLabel = _ref2.ariaLabel,\n id = _ref2.id,\n DEBUG_STYLE = _ref2.DEBUG_STYLE,\n props = reach_tooltip_esm_objectWithoutPropertiesLoose(_ref2, reach_tooltip_esm_excluded);\n\n var child = compat_module.Children.only(children);\n false ? 0 : void 0; // We need to pass some properties from the child into useTooltip\n // to make sure users can maintain control over the trigger\'s ref and events\n\n var _useTooltip = useTooltip({\n id: id,\n onPointerEnter: child.props.onPointerEnter,\n onPointerMove: child.props.onPointerMove,\n onPointerLeave: child.props.onPointerLeave,\n onPointerDown: child.props.onPointerDown,\n onMouseEnter: child.props.onMouseEnter,\n onMouseMove: child.props.onMouseMove,\n onMouseLeave: child.props.onMouseLeave,\n onMouseDown: child.props.onMouseDown,\n onFocus: child.props.onFocus,\n onBlur: child.props.onBlur,\n onKeyDown: child.props.onKeyDown,\n disabled: child.props.disabled,\n ref: child.ref,\n DEBUG_STYLE: DEBUG_STYLE\n }),\n trigger = _useTooltip[0],\n tooltip = _useTooltip[1];\n\n return /*#__PURE__*/(0,compat_module.createElement)(compat_module.Fragment, null, /*#__PURE__*/(0,compat_module.cloneElement)(child, trigger), /*#__PURE__*/(0,compat_module.createElement)(TooltipPopup, reach_tooltip_esm_extends({\n ref: forwardedRef,\n label: label,\n "aria-label": DEPRECATED_ariaLabel\n }, tooltip, props)));\n});\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * TooltipPopup\n *\n * @see Docs https://reach.tech/tooltip#tooltippopup\n */\n\n\nvar TooltipPopup = /*#__PURE__*/(0,compat_module.forwardRef)(function TooltipPopup(_ref3, forwardRef) {\n var label = _ref3.label,\n DEPRECATED_ariaLabel = _ref3.ariaLabel,\n isVisible = _ref3.isVisible,\n id = _ref3.id,\n props = reach_tooltip_esm_objectWithoutPropertiesLoose(_ref3, _excluded2);\n\n return isVisible ? /*#__PURE__*/(0,compat_module.createElement)(reach_portal_esm.Portal, null, /*#__PURE__*/(0,compat_module.createElement)(TooltipContent, reach_tooltip_esm_extends({\n ref: forwardRef,\n label: label,\n "aria-label": DEPRECATED_ariaLabel,\n isVisible: isVisible\n }, props, {\n id: makeId("tooltip", String(id))\n }))) : null;\n});\n\nif (false) {}\n/**\n * TooltipContent\n *\n * We need a separate component so that useRect works inside the portal.\n *\n * @see Docs https://reach.tech/tooltip#tooltipcontent\n */\n\n\nvar TooltipContent = /*#__PURE__*/(0,compat_module.forwardRef)(function TooltipContent(_ref4, forwardedRef) {\n var ariaLabel = _ref4.ariaLabel,\n realAriaLabel = _ref4["aria-label"],\n _ref4$as = _ref4.as,\n Comp = _ref4$as === void 0 ? "div" : _ref4$as,\n id = _ref4.id,\n isVisible = _ref4.isVisible,\n label = _ref4.label,\n _ref4$position = _ref4.position,\n position = _ref4$position === void 0 ? positionTooltip : _ref4$position,\n style = _ref4.style,\n triggerRect = _ref4.triggerRect,\n props = reach_tooltip_esm_objectWithoutPropertiesLoose(_ref4, _excluded3);\n\n // The element that serves as the tooltip container has role tooltip.\n // https://www.w3.org/TR/wai-aria-practices-1.2/#tooltip When an app passes\n // an `aria-label`, we actually want to implement `role="tooltip"` on a\n // visually hidden element inside of the trigger. In these cases we want the\n // screen reader user to know both the content in the tooltip, but also the\n // content in the badge. For screen reader users, the only content announced\n // to them is whatever is in the tooltip.\n var hasAriaLabel = (realAriaLabel || ariaLabel) != null;\n var ownRef = (0,compat_module.useRef)(null);\n var ref = useComposedRefs(forwardedRef, ownRef);\n var tooltipRect = useRect(ownRef, {\n observe: isVisible\n });\n return /*#__PURE__*/(0,compat_module.createElement)(compat_module.Fragment, null, /*#__PURE__*/(0,compat_module.createElement)(Comp, reach_tooltip_esm_extends({\n role: hasAriaLabel ? undefined : "tooltip"\n }, props, {\n ref: ref,\n "data-reach-tooltip": "",\n id: hasAriaLabel ? undefined : id,\n style: reach_tooltip_esm_extends({}, style, getStyles(position, triggerRect, tooltipRect))\n }), label), hasAriaLabel && /*#__PURE__*/(0,compat_module.createElement)(VisuallyHidden, {\n role: "tooltip",\n id: id\n }, realAriaLabel || ariaLabel));\n});\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n\nfunction getStyles(position, triggerRect, tooltipRect) {\n var haventMeasuredTooltipYet = !tooltipRect;\n\n if (haventMeasuredTooltipYet) {\n return {\n visibility: "hidden"\n };\n }\n\n return position(triggerRect, tooltipRect);\n} // Default offset from the trigger (e.g., if the tooltip is positioned above,\n// there will be 8px between the bottom of the tooltip and the top of the trigger).\n// It feels awkward when it\'s perfectly aligned w/ the trigger\n\n\nvar OFFSET_DEFAULT = 8;\nvar positionTooltip = function positionTooltip(triggerRect, tooltipRect, offset) {\n if (offset === void 0) {\n offset = OFFSET_DEFAULT;\n }\n\n var _getDocumentDimension = getDocumentDimensions(),\n windowWidth = _getDocumentDimension.width,\n windowHeight = _getDocumentDimension.height;\n\n if (!triggerRect || !tooltipRect) {\n return {};\n }\n\n var collisions = {\n top: triggerRect.top - tooltipRect.height < 0,\n right: windowWidth < triggerRect.left + tooltipRect.width,\n bottom: windowHeight < triggerRect.bottom + tooltipRect.height + offset,\n left: triggerRect.left - tooltipRect.width < 0\n };\n var directionRight = collisions.right && !collisions.left;\n var directionUp = collisions.bottom && !collisions.top;\n return {\n left: directionRight ? triggerRect.right - tooltipRect.width + window.pageXOffset + "px" : triggerRect.left + window.pageXOffset + "px",\n top: directionUp ? triggerRect.top - offset - tooltipRect.height + window.pageYOffset + "px" : triggerRect.top + offset + triggerRect.height + window.pageYOffset + "px"\n };\n};\n/**\n * This is a workaround for using tooltips with disabled controls in Safari.\n * Safari fires `pointerenter` but does not fire `pointerleave`, and\n * `onPointerEventLeave` added to the trigger element will not work.\n *\n * TODO: We may remove or modiify this behavior in a future version. Direction\n * from WAI-ARIA needed for guidance on handling disabled triggers. Tooltips\n * must be accessible by keyboard, and disabled form controls are generally\n * excluded from the tab sequence.\n *\n * @see https://github.com/reach/reach-ui/issues/564\n * @see https://github.com/w3c/aria-practices/issues/128#issuecomment-588625727\n */\n\nfunction useDisabledTriggerOnSafari(_ref5) {\n var disabled = _ref5.disabled,\n isVisible = _ref5.isVisible,\n ref = _ref5.ref;\n (0,compat_module.useEffect)(function () {\n if (!(typeof window !== "undefined" && "PointerEvent" in window) || !disabled || !isVisible) {\n return;\n }\n\n var ownerDocument = getOwnerDocument(ref.current);\n\n function handleMouseMove(event) {\n if (!isVisible) {\n return;\n }\n\n if (event.target instanceof Element && event.target.closest("[data-reach-tooltip-trigger][data-state=\'tooltip-visible\']")) {\n return;\n }\n\n send({\n type: TooltipEvents.GlobalMouseMove\n });\n }\n\n ownerDocument.addEventListener("mousemove", handleMouseMove);\n return function () {\n ownerDocument.removeEventListener("mousemove", handleMouseMove);\n };\n }, [disabled, isVisible, ref]);\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Send an event to our state machine to find the next state from the current\n * state + action.\n *\n * It also manages lifecycles of the machine, (enter/leave hooks on the state\n * chart)\n *\n * @param event\n * @param payload\n */\n\n\nfunction send(event) {\n var _transition = transition(state, event),\n value = _transition.value,\n context = _transition.context,\n changed = _transition.changed;\n\n if (changed) {\n state = {\n value: value,\n context: context\n };\n notify();\n }\n}\n\nfunction transition(currentState, event) {\n var stateDef = chart.states[currentState.value];\n var nextState = stateDef && stateDef.on && stateDef.on[event.type]; // Really useful for debugging\n // console.log({ event, state, nextState, contextId: context.id });\n // !nextState && console.log("no transition taken");\n\n if (!nextState) {\n return reach_tooltip_esm_extends({}, currentState, {\n changed: false\n });\n }\n\n if (stateDef && stateDef.leave) {\n stateDef.leave(currentState.context, event);\n }\n\n event.type;\n var payload = reach_tooltip_esm_objectWithoutPropertiesLoose(event, _excluded4); // TODO: Use actions instead of directly setting context\n\n\n var context = reach_tooltip_esm_extends({}, state.context, payload);\n\n var nextStateValue = typeof nextState === "string" ? nextState : nextState.target;\n var nextDef = chart.states[nextStateValue];\n\n if (nextDef && nextDef.enter) {\n nextDef.enter(currentState.context, event);\n }\n\n return {\n value: nextStateValue,\n context: context,\n changed: true\n };\n}\n\nfunction isTooltipVisible(id, initial) {\n return state.context.id === id && (initial ? state.value === TooltipStates.Visible : state.value === TooltipStates.Visible || state.value === TooltipStates.LeavingVisible);\n} ////////////////////////////////////////////////////////////////////////////////\n\n/* harmony default export */ const reach_tooltip_esm = (Tooltip);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLDJCQUFTO0FBQ1g7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixnQkFBZ0I7O0FBRXhDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esc0VBQXNFO0FBQ3RFLG1CQUFtQixnREFBZ0Q7QUFDbkU7O0FBRUE7QUFDQSxXQUFXLHlCQUFRLEdBQUc7QUFDdEI7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0JBQW9CLDhDQUE2QixxQkFBcUI7OztBQUd0RSxnQkFBZ0IseUJBQVEsR0FBRzs7QUFFM0I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFFOztBQUVGLHdEQUFlLE9BQU8sRUFBQztBQUMwRSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL0ByZWFjaC9hdXRvLWlkL2Rpc3QvcmVhY2gtYXV0by1pZC5lc20uanM/Mjg3YSIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvb3duZXItZG9jdW1lbnQvZGlzdC9yZWFjaC11dGlscy1vd25lci1kb2N1bWVudC5lc20uanM/YTc2YyIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvZ2V0LWRvY3VtZW50LWRpbWVuc2lvbnMvZGlzdC9yZWFjaC11dGlscy1nZXQtZG9jdW1lbnQtZGltZW5zaW9ucy5lc20uanM/NzlkOCIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvbWFrZS1pZC9kaXN0L3JlYWNoLXV0aWxzLW1ha2UtaWQuZXNtLmpzP2Q4ODYiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL2Rldi11dGlscy9kaXN0L3JlYWNoLXV0aWxzLWRldi11dGlscy5lc20uanM/NjViNSIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvdHlwZS1jaGVjay9kaXN0L3JlYWNoLXV0aWxzLXR5cGUtY2hlY2suZXNtLmpzP2I4ZWEiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL2NvbXBvc2UtcmVmcy9kaXN0L3JlYWNoLXV0aWxzLWNvbXBvc2UtcmVmcy5lc20uanM/YTYzMCIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvY29tcG9zZS1ldmVudC1oYW5kbGVycy9kaXN0L3JlYWNoLXV0aWxzLWNvbXBvc2UtZXZlbnQtaGFuZGxlcnMuZXNtLmpzP2YxOWMiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3Zpc3VhbGx5LWhpZGRlbi9kaXN0L3JlYWNoLXZpc3VhbGx5LWhpZGRlbi5lc20uanM/ZTk3NCIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvb2JzZXJ2ZS1yZWN0L2Rpc3Qvb2JzZXJ2ZS1yZWN0LmVzbS5qcz80NGJhIiwid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL0ByZWFjaC9yZWN0L2Rpc3QvcmVhY2gtcmVjdC5lc20uanM/Y2JmNyIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdG9vbHRpcC9kaXN0L3JlYWNoLXRvb2x0aXAuZXNtLmpzP2UyNjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICdAcmVhY2gvdXRpbHMvdXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdCc7XG5cbi8qXG4gKiBXZWxjb21lIHRvIEByZWFjaC9hdXRvLWlkIVxuXG4gKiBMZXQncyBzZWUgaWYgd2UgY2FuIG1ha2Ugc2Vuc2Ugb2Ygd2h5IHRoaXMgaG9vayBleGlzdHMgYW5kIGl0c1xuICogaW1wbGVtZW50YXRpb24uXG4gKlxuICogU29tZSBiYWNrZ3JvdW5kOlxuICogICAxLiBBY2Nlc3NpYmlsaXR5IEFQSXMgcmVseSBoZWF2aWx5IG9uIGVsZW1lbnQgSURzXG4gKiAgIDIuIFJlcXVpcmluZyBkZXZlbG9wZXJzIHRvIHB1dCBJRHMgb24gZXZlcnkgZWxlbWVudCBpbiBSZWFjaCBVSSBpcyBib3RoXG4gKiAgICAgIGN1bWJlcnNvbWUgYW5kIGVycm9yLXByb25lXG4gKiAgIDMuIFdpdGggYSBjb21wb25lbnQgbW9kZWwsIHdlIGNhbiBnZW5lcmF0ZSBJRHMgZm9yIHRoZW0hXG4gKlxuICogU29sdXRpb24gMTogR2VuZXJhdGUgcmFuZG9tIElEcy5cbiAqXG4gKiBUaGlzIHdvcmtzIGdyZWF0IGFzIGxvbmcgYXMgeW91IGRvbid0IHNlcnZlciByZW5kZXIgeW91ciBhcHAuIFdoZW4gUmVhY3QgKGluXG4gKiB0aGUgY2xpZW50KSB0cmllcyB0byByZXVzZSB0aGUgbWFya3VwIGZyb20gdGhlIHNlcnZlciwgdGhlIElEcyB3b24ndCBtYXRjaFxuICogYW5kIFJlYWN0IHdpbGwgdGhlbiByZWNyZWF0ZSB0aGUgZW50aXJlIERPTSB0cmVlLlxuICpcbiAqIFNvbHV0aW9uIDI6IEluY3JlbWVudCBhbiBpbnRlZ2VyXG4gKlxuICogVGhpcyBzb3VuZHMgZ3JlYXQuIFNpbmNlIHdlJ3JlIHJlbmRlcmluZyB0aGUgZXhhY3Qgc2FtZSB0cmVlIG9uIHRoZSBzZXJ2ZXJcbiAqIGFuZCBjbGllbnQsIHdlIGNhbiBpbmNyZW1lbnQgYSBjb3VudGVyIGFuZCBnZXQgYSBkZXRlcm1pbmlzdGljIHJlc3VsdCBiZXR3ZWVuXG4gKiBjbGllbnQgYW5kIHNlcnZlci4gQWxzbywgSlMgaW50ZWdlcnMgY2FuIGdvIHVwIHRvIG5pbmUtcXVhZHJpbGxpb24uIEknbVxuICogcHJldHR5IHN1cmUgdGhlIHRhYiB3aWxsIGJlIGNsb3NlZCBiZWZvcmUgYW4gYXBwIG5ldmVyIG5lZWRzXG4gKiAxMCBxdWFkcmlsbGlvbiBJRHMhXG4gKlxuICogUHJvYmxlbSBzb2x2ZWQsIHJpZ2h0P1xuICpcbiAqIEFoLCBidXQgdGhlcmUncyBhIGNhdGNoISBSZWFjdCdzIGNvbmN1cnJlbnQgcmVuZGVyaW5nIG1ha2VzIHRoaXMgYXBwcm9hY2hcbiAqIG5vbi1kZXRlcm1pbmlzdGljLiBXaGlsZSB0aGUgY2xpZW50IGFuZCBzZXJ2ZXIgd2lsbCBlbmQgdXAgd2l0aCB0aGUgc2FtZVxuICogZWxlbWVudHMgaW4gdGhlIGVuZCwgZGVwZW5kaW5nIG9uIHN1c3BlbnNlIGJvdW5kYXJpZXMgKGFuZCBwb3NzaWJseSBzb21lIHVzZXJcbiAqIGlucHV0IGR1cmluZyB0aGUgaW5pdGlhbCByZW5kZXIpIHRoZSBpbmNyZW1lbnRpbmcgaW50ZWdlcnMgd29uJ3QgYWx3YXlzIG1hdGNoXG4gKiB1cC5cbiAqXG4gKiBTb2x1dGlvbiAzOiBEb24ndCB1c2UgSURzIGF0IGFsbCBvbiB0aGUgc2VydmVyOyBwYXRjaCBhZnRlciBmaXJzdCByZW5kZXIuXG4gKlxuICogV2hhdCB3ZSd2ZSBkb25lIGhlcmUgaXMgc29sdXRpb24gMiB3aXRoIHNvbWUgdHJpY2tzLiBXaXRoIHRoaXMgYXBwcm9hY2gsIHRoZVxuICogSUQgcmV0dXJuZWQgaXMgYW4gZW1wdHkgc3RyaW5nIG9uIHRoZSBmaXJzdCByZW5kZXIuIFRoaXMgd2F5IHRoZSBzZXJ2ZXIgYW5kXG4gKiBjbGllbnQgaGF2ZSB0aGUgc2FtZSBtYXJrdXAgbm8gbWF0dGVyIGhvdyB3aWxkIHRoZSBjb25jdXJyZW50IHJlbmRlcmluZyBtYXlcbiAqIGhhdmUgZ290dGVuLlxuICpcbiAqIEFmdGVyIHRoZSByZW5kZXIsIHdlIHBhdGNoIHVwIHRoZSBjb21wb25lbnRzIHdpdGggYW4gaW5jcmVtZW50ZWQgSUQuIFRoaXNcbiAqIGNhdXNlcyBhIGRvdWJsZSByZW5kZXIgb24gYW55IGNvbXBvbmVudHMgd2l0aCBgdXNlSWRgLiBTaG91bGRuJ3QgYmUgYSBwcm9ibGVtXG4gKiBzaW5jZSB0aGUgY29tcG9uZW50cyB1c2luZyB0aGlzIGhvb2sgc2hvdWxkIGJlIHNtYWxsLCBhbmQgd2UncmUgb25seSB1cGRhdGluZ1xuICogdGhlIElEIGF0dHJpYnV0ZSBvbiB0aGUgRE9NLCBub3RoaW5nIGJpZyBpcyBoYXBwZW5pbmcuXG4gKlxuICogSXQgZG9lc24ndCBoYXZlIHRvIGJlIGFuIGluY3JlbWVudGVkIG51bWJlciwgdGhvdWdoLS13ZSBjb3VsZCBkbyBnZW5lcmF0ZVxuICogcmFuZG9tIHN0cmluZ3MgaW5zdGVhZCwgYnV0IGluY3JlbWVudGluZyBhIG51bWJlciBpcyBwcm9iYWJseSB0aGUgY2hlYXBlc3RcbiAqIHRoaW5nIHdlIGNhbiBkby5cbiAqXG4gKiBBZGRpdGlvbmFsbHksIHdlIG9ubHkgZG8gdGhpcyBwYXRjaHVwIG9uIHRoZSB2ZXJ5IGZpcnN0IGNsaWVudCByZW5kZXIgZXZlci5cbiAqIEFueSBjYWxscyB0byBgdXNlSWRgIHRoYXQgaGFwcGVuIGR5bmFtaWNhbGx5IGluIHRoZSBjbGllbnQgd2lsbCBiZVxuICogcG9wdWxhdGVkIGltbWVkaWF0ZWx5IHdpdGggYSB2YWx1ZS4gU28sIHdlIG9ubHkgZ2V0IHRoZSBkb3VibGUgcmVuZGVyIGFmdGVyXG4gKiBzZXJ2ZXIgaHlkcmF0aW9uIGFuZCBuZXZlciBhZ2FpbiwgU08gQkFDSyBPRkYgQUxSSUdIVD9cbiAqL1xudmFyIHNlcnZlckhhbmRvZmZDb21wbGV0ZSA9IGZhbHNlO1xudmFyIGlkID0gMDtcblxudmFyIGdlbklkID0gZnVuY3Rpb24gZ2VuSWQoKSB7XG4gIHJldHVybiArK2lkO1xufTtcbi8qKlxuICogdXNlSWRcbiAqXG4gKiBBdXRvZ2VuZXJhdGUgSURzIHRvIGZhY2lsaXRhdGUgV0FJLUFSSUEgYW5kIHNlcnZlciByZW5kZXJpbmcuXG4gKlxuICogTm90ZTogVGhlIHJldHVybmVkIElEIHdpbGwgaW5pdGlhbGx5IGJlIGBudWxsYCBhbmQgd2lsbCB1cGRhdGUgYWZ0ZXIgYVxuICogY29tcG9uZW50IG1vdW50cy4gVXNlcnMgbWF5IG5lZWQgdG8gc3VwcGx5IHRoZWlyIG93biBJRCBpZiB0aGV5IG5lZWRcbiAqIGNvbnNpc3RlbnQgdmFsdWVzIGZvciBTU1IuXG4gKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC9hdXRvLWlkXG4gKi9cblxuXG5mdW5jdGlvbiB1c2VJZChpZEZyb21Qcm9wcykge1xuICAvKlxuICAgKiBJZiB0aGlzIGluc3RhbmNlIGlzbid0IHBhcnQgb2YgdGhlIGluaXRpYWwgcmVuZGVyLCB3ZSBkb24ndCBoYXZlIHRvIGRvIHRoZVxuICAgKiBkb3VibGUgcmVuZGVyL3BhdGNoLXVwIGRhbmNlLiBXZSBjYW4ganVzdCBnZW5lcmF0ZSB0aGUgSUQgYW5kIHJldHVybiBpdC5cbiAgICovXG4gIHZhciBpbml0aWFsSWQgPSBpZEZyb21Qcm9wcyB8fCAoc2VydmVySGFuZG9mZkNvbXBsZXRlID8gZ2VuSWQoKSA6IG51bGwpO1xuXG4gIHZhciBfUmVhY3QkdXNlU3RhdGUgPSB1c2VTdGF0ZShpbml0aWFsSWQpLFxuICAgICAgaWQgPSBfUmVhY3QkdXNlU3RhdGVbMF0sXG4gICAgICBzZXRJZCA9IF9SZWFjdCR1c2VTdGF0ZVsxXTtcblxuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoaWQgPT09IG51bGwpIHtcbiAgICAgIC8qXG4gICAgICAgKiBQYXRjaCB0aGUgSUQgYWZ0ZXIgcmVuZGVyLiBXZSBkbyB0aGlzIGluIGB1c2VMYXlvdXRFZmZlY3RgIHRvIGF2b2lkIGFueVxuICAgICAgICogcmVuZGVyaW5nIGZsaWNrZXIsIHRob3VnaCBpdCdsbCBtYWtlIHRoZSBmaXJzdCByZW5kZXIgc2xvd2VyICh1bmxpa2VseVxuICAgICAgICogdG8gbWF0dGVyLCBidXQgeW91J3JlIHdlbGNvbWUgdG8gbWVhc3VyZSB5b3VyIGFwcCBhbmQgbGV0IHVzIGtub3cgaWZcbiAgICAgICAqIGl0J3MgYSBwcm9ibGVtKS5cbiAgICAgICAqL1xuICAgICAgc2V0SWQoZ2VuSWQoKSk7XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG5cbiAgfSwgW10pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChzZXJ2ZXJIYW5kb2ZmQ29tcGxldGUgPT09IGZhbHNlKSB7XG4gICAgICAvKlxuICAgICAgICogRmxhZyBhbGwgZnV0dXJlIHVzZXMgb2YgYHVzZUlkYCB0byBza2lwIHRoZSB1cGRhdGUgZGFuY2UuIFRoaXMgaXMgaW5cbiAgICAgICAqIGB1c2VFZmZlY3RgIGJlY2F1c2UgaXQgZ29lcyBhZnRlciBgdXNlTGF5b3V0RWZmZWN0YCwgZW5zdXJpbmcgd2UgZG9uJ3RcbiAgICAgICAqIGFjY2lkZW50YWxseSBiYWlsIG91dCBvZiB0aGUgcGF0Y2gtdXAgZGFuY2UgcHJlbWF0dXJlbHkuXG4gICAgICAgKi9cbiAgICAgIHNlcnZlckhhbmRvZmZDb21wbGV0ZSA9IHRydWU7XG4gICAgfVxuICB9LCBbXSk7XG4gIHJldHVybiBpZCAhPSBudWxsID8gU3RyaW5nKGlkKSA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IHsgdXNlSWQgfTtcbiIsImltcG9ydCB7IGNhblVzZURPTSB9IGZyb20gJy4uLy4uL2Nhbi11c2UtZG9tL2Rpc3QvcmVhY2gtdXRpbHMtY2FuLXVzZS1kb20uZXNtLmpzJztcblxuLyoqXG4gKiBHZXQgYW4gZWxlbWVudCdzIG93bmVyIGRvY3VtZW50LiBVc2VmdWwgd2hlbiBjb21wb25lbnRzIGFyZSB1c2VkIGluIGlmcmFtZXNcbiAqIG9yIG90aGVyIGVudmlyb25tZW50cyBsaWtlIGRldiB0b29scy5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudFxuICovXG5cbmZ1bmN0aW9uIGdldE93bmVyRG9jdW1lbnQoZWxlbWVudCkge1xuICByZXR1cm4gY2FuVXNlRE9NKCkgPyBlbGVtZW50ID8gZWxlbWVudC5vd25lckRvY3VtZW50IDogZG9jdW1lbnQgOiBudWxsO1xufVxuLyoqXG4gKiBUT0RPOiBSZW1vdmUgaW4gMS4wXG4gKi9cblxuZnVuY3Rpb24gZ2V0T3duZXJXaW5kb3coZWxlbWVudCkge1xuICB2YXIgb3duZXJEb2N1bWVudCA9IGdldE93bmVyRG9jdW1lbnQoZWxlbWVudCk7XG4gIHJldHVybiBvd25lckRvY3VtZW50ID8gb3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyB8fCB3aW5kb3cgOiBudWxsO1xufVxuXG5leHBvcnQgeyBnZXRPd25lckRvY3VtZW50LCBnZXRPd25lcldpbmRvdyB9O1xuIiwiaW1wb3J0IHsgZ2V0T3duZXJEb2N1bWVudCB9IGZyb20gJy4uLy4uL293bmVyLWRvY3VtZW50L2Rpc3QvcmVhY2gtdXRpbHMtb3duZXItZG9jdW1lbnQuZXNtLmpzJztcbmltcG9ydCAnLi4vLi4vY2FuLXVzZS1kb20vZGlzdC9yZWFjaC11dGlscy1jYW4tdXNlLWRvbS5lc20uanMnO1xuXG4vKipcbiAqIEdldCB0aGUgc2l6ZSBvZiB0aGUgd29ya2luZyBkb2N1bWVudCBtaW51cyB0aGUgc2Nyb2xsYmFyIG9mZnNldC5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudFxuICovXG5cbmZ1bmN0aW9uIGdldERvY3VtZW50RGltZW5zaW9ucyhlbGVtZW50KSB7XG4gIHZhciBfb3duZXJEb2N1bWVudCRkb2N1bWUsIF9vd25lckRvY3VtZW50JGRvY3VtZTI7XG5cbiAgdmFyIG93bmVyRG9jdW1lbnQgPSBnZXRPd25lckRvY3VtZW50KGVsZW1lbnQpO1xuICB2YXIgb3duZXJXaW5kb3cgPSBvd25lckRvY3VtZW50LmRlZmF1bHRWaWV3IHx8IHdpbmRvdztcblxuICBpZiAoIW93bmVyRG9jdW1lbnQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGg6IDAsXG4gICAgICBoZWlnaHQ6IDBcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogKF9vd25lckRvY3VtZW50JGRvY3VtZSA9IG93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKSAhPSBudWxsID8gX293bmVyRG9jdW1lbnQkZG9jdW1lIDogb3duZXJXaW5kb3cuaW5uZXJXaWR0aCxcbiAgICBoZWlnaHQ6IChfb3duZXJEb2N1bWVudCRkb2N1bWUyID0gb3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSAhPSBudWxsID8gX293bmVyRG9jdW1lbnQkZG9jdW1lMiA6IG93bmVyV2luZG93LmlubmVySGVpZ2h0XG4gIH07XG59XG5cbmV4cG9ydCB7IGdldERvY3VtZW50RGltZW5zaW9ucyB9O1xuIiwiLyoqXG4gKiBKb2lucyBzdHJpbmdzIHRvIGZvcm1hdCBJRHMgZm9yIGNvbXBvdW5kIGNvbXBvbmVudHMuXG4gKlxuICogQHBhcmFtIGFyZ3NcbiAqL1xuZnVuY3Rpb24gbWFrZUlkKCkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICB9XG5cbiAgcmV0dXJuIGFyZ3MuZmlsdGVyKGZ1bmN0aW9uICh2YWwpIHtcbiAgICByZXR1cm4gdmFsICE9IG51bGw7XG4gIH0pLmpvaW4oXCItLVwiKTtcbn1cblxuZXhwb3J0IHsgbWFrZUlkIH07XG4iLCJpbXBvcnQgeyB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3MgKi9cbnZhciBjaGVja2VkUGtncyA9IHt9O1xuLyoqXG4gKiBKdXN0IGEgbGlsIHN0YXRlIGxvZ2dlclxuICpcbiAqIEBwYXJhbSBzdGF0ZVxuICogQHBhcmFtIERFQlVHXG4gKi9cblxuZnVuY3Rpb24gdXNlU3RhdGVMb2dnZXIoc3RhdGUsIERFQlVHKSB7XG4gIGlmIChERUJVRyA9PT0gdm9pZCAwKSB7XG4gICAgREVCVUcgPSBmYWxzZTtcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICB2YXIgZGVidWdSZWYgPSB1c2VSZWYoREVCVUcpO1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBkZWJ1Z1JlZi5jdXJyZW50ID0gREVCVUc7XG4gICAgfSwgW0RFQlVHXSk7XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChkZWJ1Z1JlZi5jdXJyZW50KSB7XG4gICAgICAgIGNvbnNvbGUuZ3JvdXAoXCJTdGF0ZSBVcGRhdGVkXCIpO1xuICAgICAgICBjb25zb2xlLmxvZyhcIiVjXCIgKyBzdGF0ZSwgXCJmb250LXdlaWdodDogbm9ybWFsOyBmb250LXNpemU6IDEyMCU7IGZvbnQtc3R5bGU6IGl0YWxpYztcIik7XG4gICAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcbiAgICAgIH1cbiAgICB9LCBbc3RhdGVdKTtcbiAgfVxufVxuLyoqXG4gKiBXaGVuIGluIGRldiBtb2RlLCBjaGVja3MgdGhhdCBzdHlsZXMgZm9yIGEgZ2l2ZW4gYEByZWFjaGAgcGFja2FnZSBhcmUgbG9hZGVkLlxuICpcbiAqIEBwYXJhbSBwYWNrYWdlTmFtZSBOYW1lIG9mIHRoZSBwYWNrYWdlIHRvIGNoZWNrLlxuICogQGV4YW1wbGUgY2hlY2tTdHlsZXMoXCJkaWFsb2dcIikgd2lsbCBjaGVjayBmb3Igc3R5bGVzIGZvciBAcmVhY2gvZGlhbG9nXG4gKi9cblxuZnVuY3Rpb24gY2hlY2tTdHlsZXMocGFja2FnZU5hbWUpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIC8vIEluIENKUyBmaWxlcywgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgaXMgc3RyaXBwZWQgZnJvbSBvdXIgYnVpbGQsIGJ1dCB3ZVxuICAgIC8vIG5lZWQgaXQgdG8gcHJldmVudCBzdHlsZSBjaGVja3MgZnJvbSBjbG9nZ2luZyB1cCB1c2VyIGxvZ3Mgd2hpbGUgdGVzdGluZy5cbiAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCB1bnRpbCB3ZSBjYW4gdHdlYWsgdGhlIGJ1aWxkIGEgYml0IHRvIGFjY29tbW9kYXRlLlxuICAgIHZhciBfcmVmID0gdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgPyBwcm9jZXNzLmVudiA6IHtcbiAgICAgIE5PREVfRU5WOiBcImRldmVsb3BtZW50XCJcbiAgICB9LFxuICAgICAgICBlbnZpcm9ubWVudCA9IF9yZWYuTk9ERV9FTlY7IC8vIG9ubHkgY2hlY2sgb25jZSBwZXIgcGFja2FnZVxuXG5cbiAgICBpZiAoY2hlY2tlZFBrZ3NbcGFja2FnZU5hbWVdKSByZXR1cm47XG4gICAgY2hlY2tlZFBrZ3NbcGFja2FnZU5hbWVdID0gdHJ1ZTtcblxuICAgIGlmIChlbnZpcm9ubWVudCA9PT0gXCJkZXZlbG9wbWVudFwiICYmIHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5VmFsdWUoXCItLXJlYWNoLVwiICsgcGFja2FnZU5hbWUpLCAxMCkgIT09IDEpIHtcbiAgICAgIGNvbnNvbGUud2FybihcIkByZWFjaC9cIiArIHBhY2thZ2VOYW1lICsgXCIgc3R5bGVzIG5vdCBmb3VuZC4gSWYgeW91IGFyZSB1c2luZyBhIGJ1bmRsZXIgbGlrZSB3ZWJwYWNrIG9yIHBhcmNlbCBpbmNsdWRlIHRoaXMgaW4gdGhlIGVudHJ5IGZpbGUgb2YgeW91ciBhcHAgYmVmb3JlIGFueSBvZiB5b3VyIG93biBzdHlsZXM6XFxuICBcXG4gICAgICBpbXBvcnQgXFxcIkByZWFjaC9cIiArIHBhY2thZ2VOYW1lICsgXCIvc3R5bGVzLmNzc1xcXCI7XFxuICBcXG4gICAgT3RoZXJ3aXNlIHlvdSdsbCBuZWVkIHRvIGluY2x1ZGUgdGhlbSBzb21lIG90aGVyIHdheTpcXG4gIFxcbiAgICAgIDxsaW5rIHJlbD1cXFwic3R5bGVzaGVldFxcXCIgdHlwZT1cXFwidGV4dC9jc3NcXFwiIGhyZWY9XFxcIm5vZGVfbW9kdWxlcy9AcmVhY2gvXCIgKyBwYWNrYWdlTmFtZSArIFwiL3N0eWxlcy5jc3NcXFwiIC8+XFxuICBcXG4gICAgRm9yIG1vcmUgaW5mb3JtYXRpb24gdmlzaXQgaHR0cHM6Ly91aS5yZWFjaC50ZWNoL3N0eWxpbmcuXFxuICAgIFwiKTtcbiAgICB9XG4gIH1cbn1cbi8qKlxuICogV2hlbiBpbiBkZXYgbW9kZSwgY2hlY2tzIHRoYXQgc3R5bGVzIGZvciBhIGdpdmVuIGBAcmVhY2hgIHBhY2thZ2UgYXJlIGxvYWRlZC5cbiAqXG4gKiBAcGFyYW0gcGFja2FnZU5hbWUgTmFtZSBvZiB0aGUgcGFja2FnZSB0byBjaGVjay5cbiAqIEBleGFtcGxlIHVzZUNoZWNrU3R5bGVzKFwiZGlhbG9nXCIpIHdpbGwgY2hlY2sgZm9yIHN0eWxlcyBmb3IgQHJlYWNoL2RpYWxvZ1xuICovXG5cbmZ1bmN0aW9uIHVzZUNoZWNrU3R5bGVzKHBhY2thZ2VOYW1lKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICB2YXIgbmFtZSA9IHVzZVJlZihwYWNrYWdlTmFtZSk7XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB2b2lkIChuYW1lLmN1cnJlbnQgPSBwYWNrYWdlTmFtZSk7XG4gICAgfSwgW3BhY2thZ2VOYW1lXSk7XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBjaGVja1N0eWxlcyhuYW1lLmN1cnJlbnQpO1xuICAgIH0sIFtdKTtcbiAgfVxufVxuLyoqXG4gKiBMb2dzIGEgd2FybmluZyBpbiBkZXYgbW9kZSB3aGVuIGEgY29tcG9uZW50IHN3aXRjaGVzIGZyb20gY29udHJvbGxlZCB0b1xuICogdW5jb250cm9sbGVkLCBvciB2aWNlIHZlcnNhXG4gKlxuICogQSBzaW5nbGUgcHJvcCBzaG91bGQgdHlwaWNhbGx5IGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IGFcbiAqIGNvbXBvbmVudCBpcyBjb250cm9sbGVkIG9yIG5vdC5cbiAqXG4gKiBAcGFyYW0gY29udHJvbGxlZFZhbHVlXG4gKiBAcGFyYW0gY29udHJvbGxlZFByb3BOYW1lXG4gKiBAcGFyYW0gY29tcG9uZW50TmFtZVxuICovXG5cbmZ1bmN0aW9uIHVzZUNvbnRyb2xsZWRTd2l0Y2hXYXJuaW5nKGNvbnRyb2xsZWRWYWx1ZSwgY29udHJvbGxlZFByb3BOYW1lLCBjb21wb25lbnROYW1lKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICB2YXIgY29udHJvbGxlZFJlZiA9IHVzZVJlZihjb250cm9sbGVkVmFsdWUgIT0gbnVsbCk7XG4gICAgdmFyIG5hbWVDYWNoZSA9IHVzZVJlZih7XG4gICAgICBjb21wb25lbnROYW1lOiBjb21wb25lbnROYW1lLFxuICAgICAgY29udHJvbGxlZFByb3BOYW1lOiBjb250cm9sbGVkUHJvcE5hbWVcbiAgICB9KTtcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgbmFtZUNhY2hlLmN1cnJlbnQgPSB7XG4gICAgICAgIGNvbXBvbmVudE5hbWU6IGNvbXBvbmVudE5hbWUsXG4gICAgICAgIGNvbnRyb2xsZWRQcm9wTmFtZTogY29udHJvbGxlZFByb3BOYW1lXG4gICAgICB9O1xuICAgIH0sIFtjb21wb25lbnROYW1lLCBjb250cm9sbGVkUHJvcE5hbWVdKTtcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHdhc0NvbnRyb2xsZWQgPSBjb250cm9sbGVkUmVmLmN1cnJlbnQ7XG4gICAgICB2YXIgX25hbWVDYWNoZSRjdXJyZW50ID0gbmFtZUNhY2hlLmN1cnJlbnQsXG4gICAgICAgICAgY29tcG9uZW50TmFtZSA9IF9uYW1lQ2FjaGUkY3VycmVudC5jb21wb25lbnROYW1lLFxuICAgICAgICAgIGNvbnRyb2xsZWRQcm9wTmFtZSA9IF9uYW1lQ2FjaGUkY3VycmVudC5jb250cm9sbGVkUHJvcE5hbWU7XG4gICAgICB2YXIgaXNDb250cm9sbGVkID0gY29udHJvbGxlZFZhbHVlICE9IG51bGw7XG5cbiAgICAgIGlmICh3YXNDb250cm9sbGVkICE9PSBpc0NvbnRyb2xsZWQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkEgY29tcG9uZW50IGlzIGNoYW5naW5nIGFuIFwiICsgKHdhc0NvbnRyb2xsZWQgPyBcIlwiIDogXCJ1blwiKSArIFwiY29udHJvbGxlZCBgXCIgKyBjb250cm9sbGVkUHJvcE5hbWUgKyBcImAgc3RhdGUgb2YgXCIgKyBjb21wb25lbnROYW1lICsgXCIgdG8gYmUgXCIgKyAod2FzQ29udHJvbGxlZCA/IFwidW5cIiA6IFwiXCIpICsgXCJjb250cm9sbGVkLiBUaGlzIGlzIGxpa2VseSBjYXVzZWQgYnkgdGhlIHZhbHVlIGNoYW5naW5nIGZyb20gdW5kZWZpbmVkIHRvIGEgZGVmaW5lZCB2YWx1ZSwgd2hpY2ggc2hvdWxkIG5vdCBoYXBwZW4uIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgXCIgKyBjb21wb25lbnROYW1lICsgXCIgZWxlbWVudCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBjb21wb25lbnQuXFxuICAgICAgTW9yZSBpbmZvOiBodHRwczovL2ZiLm1lL3JlYWN0LWNvbnRyb2xsZWQtY29tcG9uZW50c1wiKTtcbiAgICAgIH1cbiAgICB9LCBbY29udHJvbGxlZFZhbHVlXSk7XG4gIH1cbn1cblxuZXhwb3J0IHsgY2hlY2tTdHlsZXMsIHVzZUNoZWNrU3R5bGVzLCB1c2VDb250cm9sbGVkU3dpdGNoV2FybmluZywgdXNlU3RhdGVMb2dnZXIgfTtcbiIsIi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IGEgdmFsdWUgaXMgYSBib29sZWFuLlxuICpcbiAqIEBwYXJhbSB2YWx1ZVxuICovXG5mdW5jdGlvbiBpc0Jvb2xlYW4odmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCI7XG59XG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCBhIHZhbHVlIGlzIGEgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIHZhbHVlXG4gKi9cblxuZnVuY3Rpb24gaXNGdW5jdGlvbih2YWx1ZSkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG4gIHJldHVybiAhISh2YWx1ZSAmJiB7fS50b1N0cmluZy5jYWxsKHZhbHVlKSA9PSBcIltvYmplY3QgRnVuY3Rpb25dXCIpO1xufVxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBvciBub3QgYSB2YWx1ZSBpcyBhIG51bWJlci5cbiAqXG4gKiBAcGFyYW0gdmFsdWVcbiAqL1xuXG5mdW5jdGlvbiBpc051bWJlcih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiICYmICFpc05hTih2YWx1ZSk7XG59XG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCBhIHZhbHVlIGlzIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB2YWx1ZVxuICovXG5cbmZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCI7XG59XG5cbmV4cG9ydCB7IGlzQm9vbGVhbiwgaXNGdW5jdGlvbiwgaXNOdW1iZXIsIGlzU3RyaW5nIH07XG4iLCJpbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlLWNoZWNrL2Rpc3QvcmVhY2gtdXRpbHMtdHlwZS1jaGVjay5lc20uanMnO1xuXG5mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikge1xuICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIGFycjJbaV0gPSBhcnJbaV07XG5cbiAgcmV0dXJuIGFycjI7XG59XG5cbmZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHtcbiAgaWYgKCFvKSByZXR1cm47XG4gIGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG4gIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTtcbiAgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTtcbiAgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7XG4gIGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbn1cblxuZnVuY3Rpb24gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXJMb29zZShvLCBhbGxvd0FycmF5TGlrZSkge1xuICB2YXIgaXQ7XG5cbiAgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwidW5kZWZpbmVkXCIgfHwgb1tTeW1ib2wuaXRlcmF0b3JdID09IG51bGwpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvKSB8fCAoaXQgPSBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobykpIHx8IGFsbG93QXJyYXlMaWtlICYmIG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSB7XG4gICAgICBpZiAoaXQpIG8gPSBpdDtcbiAgICAgIHZhciBpID0gMDtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChpID49IG8ubGVuZ3RoKSByZXR1cm4ge1xuICAgICAgICAgIGRvbmU6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkb25lOiBmYWxzZSxcbiAgICAgICAgICB2YWx1ZTogb1tpKytdXG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH1cblxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbiAgfVxuXG4gIGl0ID0gb1tTeW1ib2wuaXRlcmF0b3JdKCk7XG4gIHJldHVybiBpdC5uZXh0LmJpbmQoaXQpO1xufVxuXG4vKipcbiAqIFBhc3NlcyBvciBhc3NpZ25zIGFuIGFyYml0cmFyeSB2YWx1ZSB0byBhIHJlZiBmdW5jdGlvbiBvciBvYmplY3QuXG4gKlxuICogQHBhcmFtIHJlZlxuICogQHBhcmFtIHZhbHVlXG4gKi9cbmZ1bmN0aW9uIGFzc2lnblJlZihyZWYsIHZhbHVlKSB7XG4gIGlmIChyZWYgPT0gbnVsbCkgcmV0dXJuO1xuXG4gIGlmIChpc0Z1bmN0aW9uKHJlZikpIHtcbiAgICByZWYodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICByZWYuY3VycmVudCA9IHZhbHVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgYXNzaWduIHZhbHVlIFxcXCJcIiArIHZhbHVlICsgXCJcXFwiIHRvIHJlZiBcXFwiXCIgKyByZWYgKyBcIlxcXCJcIik7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIFBhc3NlcyBvciBhc3NpZ25zIGEgdmFsdWUgdG8gbXVsdGlwbGUgcmVmcyAodHlwaWNhbGx5IGEgRE9NIG5vZGUpLiBVc2VmdWwgZm9yXG4gKiBkZWFsaW5nIHdpdGggY29tcG9uZW50cyB0aGF0IG5lZWQgYW4gZXhwbGljaXQgcmVmIGZvciBET00gY2FsY3VsYXRpb25zIGJ1dFxuICogYWxzbyBmb3J3YXJkcyByZWZzIGFzc2lnbmVkIGJ5IGFuIGFwcC5cbiAqXG4gKiBAcGFyYW0gcmVmcyBSZWZzIHRvIGZvcmtcbiAqL1xuXG5mdW5jdGlvbiB1c2VDb21wb3NlZFJlZnMoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCByZWZzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIHJlZnNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICByZXR1cm4gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKG5vZGUpIHtcbiAgICBmb3IgKHZhciBfaXRlcmF0b3IgPSBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlckxvb3NlKHJlZnMpLCBfc3RlcDsgIShfc3RlcCA9IF9pdGVyYXRvcigpKS5kb25lOykge1xuICAgICAgdmFyIHJlZiA9IF9zdGVwLnZhbHVlO1xuICAgICAgYXNzaWduUmVmKHJlZiwgbm9kZSk7XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG5cbiAgfSwgcmVmcyk7XG59XG5cbmV4cG9ydCB7IGFzc2lnblJlZiwgdXNlQ29tcG9zZWRSZWZzIH07XG4iLCIvKipcbiAqIFdyYXBzIGEgbGliLWRlZmluZWQgZXZlbnQgaGFuZGxlciBhbmQgYSB1c2VyLWRlZmluZWQgZXZlbnQgaGFuZGxlciwgcmV0dXJuaW5nXG4gKiBhIHNpbmdsZSBoYW5kbGVyIHRoYXQgYWxsb3dzIGEgdXNlciB0byBwcmV2ZW50IGxpYi1kZWZpbmVkIGhhbmRsZXJzIGZyb21cbiAqIGZpcmluZy5cbiAqXG4gKiBAcGFyYW0gdGhlaXJIYW5kbGVyIFVzZXItc3VwcGxpZWQgZXZlbnQgaGFuZGxlclxuICogQHBhcmFtIG91ckhhbmRsZXIgTGlicmFyeS1zdXBwbGllZCBldmVudCBoYW5kbGVyXG4gKi9cbmZ1bmN0aW9uIGNvbXBvc2VFdmVudEhhbmRsZXJzKHRoZWlySGFuZGxlciwgb3VySGFuZGxlcikge1xuICByZXR1cm4gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgdGhlaXJIYW5kbGVyICYmIHRoZWlySGFuZGxlcihldmVudCk7XG5cbiAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIHJldHVybiBvdXJIYW5kbGVyKGV2ZW50KTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH07XG4iLCJpbXBvcnQgeyBmb3J3YXJkUmVmLCBjcmVhdGVFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7XG4gIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfTtcblxuICByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkge1xuICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTtcbiAgdmFyIHRhcmdldCA9IHt9O1xuICB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gIHZhciBrZXksIGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBzb3VyY2VLZXlzW2ldO1xuICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbnZhciBfZXhjbHVkZWQgPSBbXCJhc1wiLCBcInN0eWxlXCJdO1xuXG4vKipcbiAqIFZpc3VhbGx5SGlkZGVuXG4gKlxuICogUHJvdmlkZXMgdGV4dCBmb3Igc2NyZWVuIHJlYWRlcnMgdGhhdCBpcyB2aXN1YWxseSBoaWRkZW4uXG4gKiBJdCBpcyB0aGUgbG9naWNhbCBvcHBvc2l0ZSBvZiB0aGUgYGFyaWEtaGlkZGVuYCBhdHRyaWJ1dGUuXG4gKi9cbnZhciBWaXN1YWxseUhpZGRlbiA9IC8qI19fUFVSRV9fKi9mb3J3YXJkUmVmKGZ1bmN0aW9uIFZpc3VhbGx5SGlkZGVuKF9yZWYsIHJlZikge1xuICB2YXIgX3JlZiRhcyA9IF9yZWYuYXMsXG4gICAgICBDb21wID0gX3JlZiRhcyA9PT0gdm9pZCAwID8gXCJzcGFuXCIgOiBfcmVmJGFzLFxuICAgICAgX3JlZiRzdHlsZSA9IF9yZWYuc3R5bGUsXG4gICAgICBzdHlsZSA9IF9yZWYkc3R5bGUgPT09IHZvaWQgMCA/IHt9IDogX3JlZiRzdHlsZSxcbiAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3JlZiwgX2V4Y2x1ZGVkKTtcblxuICByZXR1cm4gLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoQ29tcCwgX2V4dGVuZHMoe1xuICAgIHJlZjogcmVmLFxuICAgIHN0eWxlOiBfZXh0ZW5kcyh7XG4gICAgICBib3JkZXI6IDAsXG4gICAgICBjbGlwOiBcInJlY3QoMCAwIDAgMClcIixcbiAgICAgIGhlaWdodDogXCIxcHhcIixcbiAgICAgIG1hcmdpbjogXCItMXB4XCIsXG4gICAgICBvdmVyZmxvdzogXCJoaWRkZW5cIixcbiAgICAgIHBhZGRpbmc6IDAsXG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgd2lkdGg6IFwiMXB4XCIsXG4gICAgICAvLyBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gICAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuICAgICAgd29yZFdyYXA6IFwibm9ybWFsXCJcbiAgICB9LCBzdHlsZSlcbiAgfSwgcHJvcHMpKTtcbn0pO1xuLyoqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3Zpc3VhbGx5LWhpZGRlbiN2aXN1YWxseWhpZGRlbi1wcm9wc1xuICovXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgVmlzdWFsbHlIaWRkZW4uZGlzcGxheU5hbWUgPSBcIlZpc3VhbGx5SGlkZGVuXCI7XG4gIFZpc3VhbGx5SGlkZGVuLnByb3BUeXBlcyA9IHtcbiAgICBhczogUHJvcFR5cGVzLmFueSxcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGVcbiAgfTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGRlZmF1bHQgVmlzdWFsbHlIaWRkZW47XG5leHBvcnQgeyBWaXN1YWxseUhpZGRlbiB9O1xuIiwidmFyIHByb3BzID0gW1wiYm90dG9tXCIsIFwiaGVpZ2h0XCIsIFwibGVmdFwiLCBcInJpZ2h0XCIsIFwidG9wXCIsIFwid2lkdGhcIl07XG5cbnZhciByZWN0Q2hhbmdlZCA9IGZ1bmN0aW9uIHJlY3RDaGFuZ2VkKGEsIGIpIHtcbiAgaWYgKGEgPT09IHZvaWQgMCkge1xuICAgIGEgPSB7fTtcbiAgfVxuXG4gIGlmIChiID09PSB2b2lkIDApIHtcbiAgICBiID0ge307XG4gIH1cblxuICByZXR1cm4gcHJvcHMuc29tZShmdW5jdGlvbiAocHJvcCkge1xuICAgIHJldHVybiBhW3Byb3BdICE9PSBiW3Byb3BdO1xuICB9KTtcbn07XG5cbnZhciBvYnNlcnZlZE5vZGVzID0gLyojX19QVVJFX18qL25ldyBNYXAoKTtcbnZhciByYWZJZDtcblxudmFyIHJ1biA9IGZ1bmN0aW9uIHJ1bigpIHtcbiAgdmFyIGNoYW5nZWRTdGF0ZXMgPSBbXTtcbiAgb2JzZXJ2ZWROb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChzdGF0ZSwgbm9kZSkge1xuICAgIHZhciBuZXdSZWN0ID0gbm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGlmIChyZWN0Q2hhbmdlZChuZXdSZWN0LCBzdGF0ZS5yZWN0KSkge1xuICAgICAgc3RhdGUucmVjdCA9IG5ld1JlY3Q7XG4gICAgICBjaGFuZ2VkU3RhdGVzLnB1c2goc3RhdGUpO1xuICAgIH1cbiAgfSk7XG4gIGNoYW5nZWRTdGF0ZXMuZm9yRWFjaChmdW5jdGlvbiAoc3RhdGUpIHtcbiAgICBzdGF0ZS5jYWxsYmFja3MuZm9yRWFjaChmdW5jdGlvbiAoY2IpIHtcbiAgICAgIHJldHVybiBjYihzdGF0ZS5yZWN0KTtcbiAgICB9KTtcbiAgfSk7XG4gIHJhZklkID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShydW4pO1xufTtcblxuZnVuY3Rpb24gb2JzZXJ2ZVJlY3Qobm9kZSwgY2IpIHtcbiAgcmV0dXJuIHtcbiAgICBvYnNlcnZlOiBmdW5jdGlvbiBvYnNlcnZlKCkge1xuICAgICAgdmFyIHdhc0VtcHR5ID0gb2JzZXJ2ZWROb2Rlcy5zaXplID09PSAwO1xuXG4gICAgICBpZiAob2JzZXJ2ZWROb2Rlcy5oYXMobm9kZSkpIHtcbiAgICAgICAgb2JzZXJ2ZWROb2Rlcy5nZXQobm9kZSkuY2FsbGJhY2tzLnB1c2goY2IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2JzZXJ2ZWROb2Rlcy5zZXQobm9kZSwge1xuICAgICAgICAgIHJlY3Q6IHVuZGVmaW5lZCxcbiAgICAgICAgICBoYXNSZWN0Q2hhbmdlZDogZmFsc2UsXG4gICAgICAgICAgY2FsbGJhY2tzOiBbY2JdXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAod2FzRW1wdHkpIHJ1bigpO1xuICAgIH0sXG4gICAgdW5vYnNlcnZlOiBmdW5jdGlvbiB1bm9ic2VydmUoKSB7XG4gICAgICB2YXIgc3RhdGUgPSBvYnNlcnZlZE5vZGVzLmdldChub2RlKTtcblxuICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgY2FsbGJhY2tcbiAgICAgICAgdmFyIGluZGV4ID0gc3RhdGUuY2FsbGJhY2tzLmluZGV4T2YoY2IpO1xuICAgICAgICBpZiAoaW5kZXggPj0gMCkgc3RhdGUuY2FsbGJhY2tzLnNwbGljZShpbmRleCwgMSk7IC8vIFJlbW92ZSB0aGUgbm9kZSByZWZlcmVuY2VcblxuICAgICAgICBpZiAoIXN0YXRlLmNhbGxiYWNrcy5sZW5ndGgpIG9ic2VydmVkTm9kZXNbXCJkZWxldGVcIl0obm9kZSk7IC8vIFN0b3AgdGhlIGxvb3BcblxuICAgICAgICBpZiAoIW9ic2VydmVkTm9kZXMuc2l6ZSkgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmSWQpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgb2JzZXJ2ZVJlY3Q7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1vYnNlcnZlLXJlY3QuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBvYnNlcnZlUmVjdCBmcm9tICdAcmVhY2gvb2JzZXJ2ZS1yZWN0JztcbmltcG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICdAcmVhY2gvdXRpbHMvdXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdCc7XG5pbXBvcnQgeyBpc0Jvb2xlYW4sIGlzRnVuY3Rpb24gfSBmcm9tICdAcmVhY2gvdXRpbHMvdHlwZS1jaGVjayc7XG5pbXBvcnQgd2FybmluZyBmcm9tICd0aW55LXdhcm5pbmcnO1xuXG4vKipcbiAqIFdlbGNvbWUgdG8gQHJlYWNoL3JlY3QhXG4gKlxuICogTWVhc3VyZXMgRE9NIGVsZW1lbnRzIChha2EuIGJvdW5kaW5nIGNsaWVudCByZWN0KS5cbiAqXG4gKiBAc2VlIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRWxlbWVudC9nZXRCb3VuZGluZ0NsaWVudFJlY3RcbiAqIEBzZWUgRG9jcyAgICAgICAgICAgICAgICAgIGh0dHBzOi8vcmVhY2gudGVjaC9yZWN0XG4gKiBAc2VlIFNvdXJjZSAgICAgICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vcmVhY2gvcmVhY2gtdWkvdHJlZS9tYWluL3BhY2thZ2VzL3JlY3RcbiAqL1xuXG4vKipcbiAqIFJlY3RcbiAqXG4gKiBAcGFyYW0gcHJvcHNcbiAqL1xuXG52YXIgUmVjdCA9IGZ1bmN0aW9uIFJlY3QoX3JlZikge1xuICB2YXIgb25DaGFuZ2UgPSBfcmVmLm9uQ2hhbmdlLFxuICAgICAgX3JlZiRvYnNlcnZlID0gX3JlZi5vYnNlcnZlLFxuICAgICAgb2JzZXJ2ZSA9IF9yZWYkb2JzZXJ2ZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9yZWYkb2JzZXJ2ZSxcbiAgICAgIGNoaWxkcmVuID0gX3JlZi5jaGlsZHJlbjtcbiAgdmFyIHJlZiA9IHVzZVJlZihudWxsKTtcbiAgdmFyIHJlY3QgPSB1c2VSZWN0KHJlZiwge1xuICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgb25DaGFuZ2U6IG9uQ2hhbmdlXG4gIH0pO1xuICByZXR1cm4gY2hpbGRyZW4oe1xuICAgIHJlZjogcmVmLFxuICAgIHJlY3Q6IHJlY3RcbiAgfSk7XG59O1xuLyoqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3JlY3QjcmVjdC1wcm9wc1xuICovXG5cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICBSZWN0LmRpc3BsYXlOYW1lID0gXCJSZWN0XCI7XG4gIFJlY3QucHJvcFR5cGVzID0ge1xuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9ic2VydmU6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuY1xuICB9O1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5cbi8qKlxuICogdXNlUmVjdFxuICpcbiAqIEBwYXJhbSBub2RlUmVmXG4gKiBAcGFyYW0gb2JzZXJ2ZVxuICogQHBhcmFtIG9uQ2hhbmdlXG4gKi9cbmZ1bmN0aW9uIHVzZVJlY3Qobm9kZVJlZiwgb2JzZXJ2ZU9yT3B0aW9ucywgZGVwcmVjYXRlZF9vbkNoYW5nZSkge1xuICB2YXIgb2JzZXJ2ZTtcbiAgdmFyIG9uQ2hhbmdlO1xuXG4gIGlmIChpc0Jvb2xlYW4ob2JzZXJ2ZU9yT3B0aW9ucykpIHtcbiAgICBvYnNlcnZlID0gb2JzZXJ2ZU9yT3B0aW9ucztcbiAgfSBlbHNlIHtcbiAgICB2YXIgX29ic2VydmVPck9wdGlvbnMkb2JzO1xuXG4gICAgb2JzZXJ2ZSA9IChfb2JzZXJ2ZU9yT3B0aW9ucyRvYnMgPSBvYnNlcnZlT3JPcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvYnNlcnZlT3JPcHRpb25zLm9ic2VydmUpICE9IG51bGwgPyBfb2JzZXJ2ZU9yT3B0aW9ucyRvYnMgOiB0cnVlO1xuICAgIG9uQ2hhbmdlID0gb2JzZXJ2ZU9yT3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb2JzZXJ2ZU9yT3B0aW9ucy5vbkNoYW5nZTtcbiAgfVxuXG4gIGlmIChpc0Z1bmN0aW9uKGRlcHJlY2F0ZWRfb25DaGFuZ2UpKSB7XG4gICAgb25DaGFuZ2UgPSBkZXByZWNhdGVkX29uQ2hhbmdlO1xuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKCFpc0Jvb2xlYW4ob2JzZXJ2ZU9yT3B0aW9ucyksIFwiUGFzc2luZyBgb2JzZXJ2ZWAgYXMgdGhlIHNlY29uZCBhcmd1bWVudCB0byBgdXNlUmVjdGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgUmVhY2ggVUkuIEluc3RlYWQsIHlvdSBjYW4gcGFzcyBhbiBvYmplY3Qgb2Ygb3B0aW9ucyB3aXRoIGFuIGBvYnNlcnZlYCBwcm9wZXJ0eSBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IChgdXNlUmVjdChyZWYsIHsgb2JzZXJ2ZSB9KWApLlxcblwiICsgXCJTZWUgaHR0cHM6Ly9yZWFjaC50ZWNoL3JlY3QjdXNlcmVjdC1vYnNlcnZlXCIpIDogdm9pZCAwO1xuICAgIH0sIFtvYnNlcnZlT3JPcHRpb25zXSk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuXG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHdhcm5pbmcoIWlzRnVuY3Rpb24oZGVwcmVjYXRlZF9vbkNoYW5nZSksIFwiUGFzc2luZyBgb25DaGFuZ2VgIGFzIHRoZSB0aGlyZCBhcmd1bWVudCB0byBgdXNlUmVjdGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgUmVhY2ggVUkuIEluc3RlYWQsIHlvdSBjYW4gcGFzcyBhbiBvYmplY3Qgb2Ygb3B0aW9ucyB3aXRoIGFuIGBvbkNoYW5nZWAgcHJvcGVydHkgYXMgdGhlIHNlY29uZCBhcmd1bWVudCAoYHVzZVJlY3QocmVmLCB7IG9uQ2hhbmdlIH0pYCkuXFxuXCIgKyBcIlNlZSBodHRwczovL3JlYWNoLnRlY2gvcmVjdCN1c2VyZWN0LW9uY2hhbmdlXCIpIDogdm9pZCAwO1xuICAgIH0sIFtkZXByZWNhdGVkX29uQ2hhbmdlXSk7XG4gIH1cblxuICB2YXIgX1JlYWN0JHVzZVN0YXRlID0gdXNlU3RhdGUobm9kZVJlZi5jdXJyZW50KSxcbiAgICAgIGVsZW1lbnQgPSBfUmVhY3QkdXNlU3RhdGVbMF0sXG4gICAgICBzZXRFbGVtZW50ID0gX1JlYWN0JHVzZVN0YXRlWzFdO1xuXG4gIHZhciBpbml0aWFsUmVjdElzU2V0ID0gdXNlUmVmKGZhbHNlKTtcbiAgdmFyIGluaXRpYWxSZWZJc1NldCA9IHVzZVJlZihmYWxzZSk7XG5cbiAgdmFyIF9SZWFjdCR1c2VTdGF0ZTIgPSB1c2VTdGF0ZShudWxsKSxcbiAgICAgIHJlY3QgPSBfUmVhY3QkdXNlU3RhdGUyWzBdLFxuICAgICAgc2V0UmVjdCA9IF9SZWFjdCR1c2VTdGF0ZTJbMV07XG5cbiAgdmFyIG9uQ2hhbmdlUmVmID0gdXNlUmVmKG9uQ2hhbmdlKTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuXG4gIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIG9uQ2hhbmdlUmVmLmN1cnJlbnQgPSBvbkNoYW5nZTtcblxuICAgIGlmIChub2RlUmVmLmN1cnJlbnQgIT09IGVsZW1lbnQpIHtcbiAgICAgIHNldEVsZW1lbnQobm9kZVJlZi5jdXJyZW50KTtcbiAgICB9XG4gIH0pO1xuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoZWxlbWVudCAmJiAhaW5pdGlhbFJlY3RJc1NldC5jdXJyZW50KSB7XG4gICAgICBpbml0aWFsUmVjdElzU2V0LmN1cnJlbnQgPSB0cnVlO1xuICAgICAgc2V0UmVjdChlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTtcbiAgICB9XG4gIH0sIFtlbGVtZW50XSk7XG4gIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmICghb2JzZXJ2ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBlbGVtID0gZWxlbWVudDsgLy8gU3RhdGUgaW5pdGlhbGl6ZXMgYmVmb3JlIHJlZnMgYXJlIHBsYWNlZCwgbWVhbmluZyB0aGUgZWxlbWVudCBzdGF0ZSB3aWxsXG4gICAgLy8gYmUgdW5kZWZpbmVkIG9uIHRoZSBmaXJzdCByZW5kZXIuIFdlIHN0aWxsIHdhbnQgdGhlIHJlY3Qgb24gdGhlIGZpcnN0XG4gICAgLy8gcmVuZGVyLCBzbyBpbml0aWFsbHkgd2UnbGwgdXNlIHRoZSBub2RlUmVmIHRoYXQgd2FzIHBhc3NlZCBpbnN0ZWFkIG9mXG4gICAgLy8gc3RhdGUgZm9yIG91ciBtZWFzdXJlbWVudHMuXG5cbiAgICBpZiAoIWluaXRpYWxSZWZJc1NldC5jdXJyZW50KSB7XG4gICAgICBpbml0aWFsUmVmSXNTZXQuY3VycmVudCA9IHRydWU7XG4gICAgICBlbGVtID0gbm9kZVJlZi5jdXJyZW50O1xuICAgIH1cblxuICAgIGlmICghZWxlbSkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICBjb25zb2xlLndhcm4oXCJZb3UgbmVlZCB0byBwbGFjZSB0aGUgcmVmXCIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIG9ic2VydmVyID0gb2JzZXJ2ZVJlY3QoZWxlbSwgZnVuY3Rpb24gKHJlY3QpIHtcbiAgICAgIG9uQ2hhbmdlUmVmLmN1cnJlbnQgPT0gbnVsbCA/IHZvaWQgMCA6IG9uQ2hhbmdlUmVmLmN1cnJlbnQocmVjdCk7XG4gICAgICBzZXRSZWN0KHJlY3QpO1xuICAgIH0pO1xuICAgIG9ic2VydmVyLm9ic2VydmUoKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKCk7XG4gICAgfTtcbiAgfSwgW29ic2VydmUsIGVsZW1lbnQsIG5vZGVSZWZdKTtcbiAgcmV0dXJuIHJlY3Q7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJlY3Q7XG5leHBvcnQgeyBSZWN0LCB1c2VSZWN0IH07XG4iLCJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VFZmZlY3QsIGZvcndhcmRSZWYsIENoaWxkcmVuLCBjcmVhdGVFbGVtZW50LCBGcmFnbWVudCwgY2xvbmVFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlSWQgfSBmcm9tICdAcmVhY2gvYXV0by1pZCc7XG5pbXBvcnQgeyBnZXREb2N1bWVudERpbWVuc2lvbnMgfSBmcm9tICdAcmVhY2gvdXRpbHMvZ2V0LWRvY3VtZW50LWRpbWVuc2lvbnMnO1xuaW1wb3J0IHsgZ2V0T3duZXJEb2N1bWVudCB9IGZyb20gJ0ByZWFjaC91dGlscy9vd25lci1kb2N1bWVudCc7XG5pbXBvcnQgeyBtYWtlSWQgfSBmcm9tICdAcmVhY2gvdXRpbHMvbWFrZS1pZCc7XG5pbXBvcnQgeyB1c2VDaGVja1N0eWxlcyB9IGZyb20gJ0ByZWFjaC91dGlscy9kZXYtdXRpbHMnO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSAnQHJlYWNoL3V0aWxzL2NvbXBvc2UtcmVmcyc7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJ0ByZWFjaC91dGlscy9jb21wb3NlLWV2ZW50LWhhbmRsZXJzJztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJ0ByZWFjaC9wb3J0YWwnO1xuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tICdAcmVhY2gvdmlzdWFsbHktaGlkZGVuJztcbmltcG9ydCB7IHVzZVJlY3QgfSBmcm9tICdAcmVhY2gvcmVjdCc7XG5pbXBvcnQgd2FybmluZyBmcm9tICd0aW55LXdhcm5pbmcnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7XG4gIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfTtcblxuICByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkge1xuICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTtcbiAgdmFyIHRhcmdldCA9IHt9O1xuICB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gIHZhciBrZXksIGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBzb3VyY2VLZXlzW2ldO1xuICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbnZhciBfZXhjbHVkZWQgPSBbXCJjaGlsZHJlblwiLCBcImxhYmVsXCIsIFwiYXJpYUxhYmVsXCIsIFwiaWRcIiwgXCJERUJVR19TVFlMRVwiXSxcbiAgICBfZXhjbHVkZWQyID0gW1wibGFiZWxcIiwgXCJhcmlhTGFiZWxcIiwgXCJpc1Zpc2libGVcIiwgXCJpZFwiXSxcbiAgICBfZXhjbHVkZWQzID0gW1wiYXJpYUxhYmVsXCIsIFwiYXJpYS1sYWJlbFwiLCBcImFzXCIsIFwiaWRcIiwgXCJpc1Zpc2libGVcIiwgXCJsYWJlbFwiLCBcInBvc2l0aW9uXCIsIFwic3R5bGVcIiwgXCJ0cmlnZ2VyUmVjdFwiXSxcbiAgICBfZXhjbHVkZWQ0ID0gW1widHlwZVwiXTtcblxudmFyIF9vbiwgX29uMiwgX29uMywgX29uNCwgX29uNSwgX3N0YXRlcztcbnZhciBNT1VTRV9SRVNUX1RJTUVPVVQgPSAxMDA7XG52YXIgTEVBVkVfVElNRU9VVCA9IDUwMDsgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFN0YXRlc1xuXG52YXIgVG9vbHRpcFN0YXRlczsgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEV2ZW50c1xuXG4oZnVuY3Rpb24gKFRvb2x0aXBTdGF0ZXMpIHtcbiAgVG9vbHRpcFN0YXRlc1tcIklkbGVcIl0gPSBcIklETEVcIjtcbiAgVG9vbHRpcFN0YXRlc1tcIkZvY3VzZWRcIl0gPSBcIkZPQ1VTRURcIjtcbiAgVG9vbHRpcFN0YXRlc1tcIlZpc2libGVcIl0gPSBcIlZJU0lCTEVcIjtcbiAgVG9vbHRpcFN0YXRlc1tcIkxlYXZpbmdWaXNpYmxlXCJdID0gXCJMRUFWSU5HX1ZJU0lCTEVcIjtcbiAgVG9vbHRpcFN0YXRlc1tcIkRpc21pc3NlZFwiXSA9IFwiRElTTUlTU0VEXCI7XG59KShUb29sdGlwU3RhdGVzIHx8IChUb29sdGlwU3RhdGVzID0ge30pKTtcblxudmFyIFRvb2x0aXBFdmVudHM7XG5cbihmdW5jdGlvbiAoVG9vbHRpcEV2ZW50cykge1xuICBUb29sdGlwRXZlbnRzW1wiQmx1clwiXSA9IFwiQkxVUlwiO1xuICBUb29sdGlwRXZlbnRzW1wiRm9jdXNcIl0gPSBcIkZPQ1VTXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJHbG9iYWxNb3VzZU1vdmVcIl0gPSBcIkdMT0JBTF9NT1VTRV9NT1ZFXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJNb3VzZURvd25cIl0gPSBcIk1PVVNFX0RPV05cIjtcbiAgVG9vbHRpcEV2ZW50c1tcIk1vdXNlRW50ZXJcIl0gPSBcIk1PVVNFX0VOVEVSXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJNb3VzZUxlYXZlXCJdID0gXCJNT1VTRV9MRUFWRVwiO1xuICBUb29sdGlwRXZlbnRzW1wiTW91c2VNb3ZlXCJdID0gXCJNT1VTRV9NT1ZFXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJSZXN0XCJdID0gXCJSRVNUXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJTZWxlY3RXaXRoS2V5Ym9hcmRcIl0gPSBcIlNFTEVDVF9XSVRIX0tFWUJPQVJEXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJUaW1lQ29tcGxldGVcIl0gPSBcIlRJTUVfQ09NUExFVEVcIjtcbn0pKFRvb2x0aXBFdmVudHMgfHwgKFRvb2x0aXBFdmVudHMgPSB7fSkpO1xuXG52YXIgY2hhcnQgPSB7XG4gIGluaXRpYWw6IFRvb2x0aXBTdGF0ZXMuSWRsZSxcbiAgc3RhdGVzOiAoX3N0YXRlcyA9IHt9LCBfc3RhdGVzW1Rvb2x0aXBTdGF0ZXMuSWRsZV0gPSB7XG4gICAgZW50ZXI6IGNsZWFyQ29udGV4dElkLFxuICAgIG9uOiAoX29uID0ge30sIF9vbltUb29sdGlwRXZlbnRzLk1vdXNlRW50ZXJdID0gVG9vbHRpcFN0YXRlcy5Gb2N1c2VkLCBfb25bVG9vbHRpcEV2ZW50cy5Gb2N1c10gPSBUb29sdGlwU3RhdGVzLlZpc2libGUsIF9vbilcbiAgfSwgX3N0YXRlc1tUb29sdGlwU3RhdGVzLkZvY3VzZWRdID0ge1xuICAgIGVudGVyOiBzdGFydFJlc3RUaW1lcixcbiAgICBsZWF2ZTogY2xlYXJSZXN0VGltZXIsXG4gICAgb246IChfb24yID0ge30sIF9vbjJbVG9vbHRpcEV2ZW50cy5Nb3VzZU1vdmVdID0gVG9vbHRpcFN0YXRlcy5Gb2N1c2VkLCBfb24yW1Rvb2x0aXBFdmVudHMuTW91c2VMZWF2ZV0gPSBUb29sdGlwU3RhdGVzLklkbGUsIF9vbjJbVG9vbHRpcEV2ZW50cy5Nb3VzZURvd25dID0gVG9vbHRpcFN0YXRlcy5EaXNtaXNzZWQsIF9vbjJbVG9vbHRpcEV2ZW50cy5CbHVyXSA9IFRvb2x0aXBTdGF0ZXMuSWRsZSwgX29uMltUb29sdGlwRXZlbnRzLlJlc3RdID0gVG9vbHRpcFN0YXRlcy5WaXNpYmxlLCBfb24yKVxuICB9LCBfc3RhdGVzW1Rvb2x0aXBTdGF0ZXMuVmlzaWJsZV0gPSB7XG4gICAgb246IChfb24zID0ge30sIF9vbjNbVG9vbHRpcEV2ZW50cy5Gb2N1c10gPSBUb29sdGlwU3RhdGVzLkZvY3VzZWQsIF9vbjNbVG9vbHRpcEV2ZW50cy5Nb3VzZUVudGVyXSA9IFRvb2x0aXBTdGF0ZXMuRm9jdXNlZCwgX29uM1tUb29sdGlwRXZlbnRzLk1vdXNlTGVhdmVdID0gVG9vbHRpcFN0YXRlcy5MZWF2aW5nVmlzaWJsZSwgX29uM1tUb29sdGlwRXZlbnRzLkJsdXJdID0gVG9vbHRpcFN0YXRlcy5MZWF2aW5nVmlzaWJsZSwgX29uM1tUb29sdGlwRXZlbnRzLk1vdXNlRG93bl0gPSBUb29sdGlwU3RhdGVzLkRpc21pc3NlZCwgX29uM1tUb29sdGlwRXZlbnRzLlNlbGVjdFdpdGhLZXlib2FyZF0gPSBUb29sdGlwU3RhdGVzLkRpc21pc3NlZCwgX29uM1tUb29sdGlwRXZlbnRzLkdsb2JhbE1vdXNlTW92ZV0gPSBUb29sdGlwU3RhdGVzLkxlYXZpbmdWaXNpYmxlLCBfb24zKVxuICB9LCBfc3RhdGVzW1Rvb2x0aXBTdGF0ZXMuTGVhdmluZ1Zpc2libGVdID0ge1xuICAgIGVudGVyOiBzdGFydExlYXZpbmdWaXNpYmxlVGltZXIsXG4gICAgbGVhdmU6IGZ1bmN0aW9uIGxlYXZlKCkge1xuICAgICAgY2xlYXJMZWF2aW5nVmlzaWJsZVRpbWVyKCk7XG4gICAgICBjbGVhckNvbnRleHRJZCgpO1xuICAgIH0sXG4gICAgb246IChfb240ID0ge30sIF9vbjRbVG9vbHRpcEV2ZW50cy5Nb3VzZUVudGVyXSA9IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSwgX29uNFtUb29sdGlwRXZlbnRzLkZvY3VzXSA9IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSwgX29uNFtUb29sdGlwRXZlbnRzLlRpbWVDb21wbGV0ZV0gPSBUb29sdGlwU3RhdGVzLklkbGUsIF9vbjQpXG4gIH0sIF9zdGF0ZXNbVG9vbHRpcFN0YXRlcy5EaXNtaXNzZWRdID0ge1xuICAgIGxlYXZlOiBmdW5jdGlvbiBsZWF2ZSgpIHtcbiAgICAgIGNsZWFyQ29udGV4dElkKCk7XG4gICAgfSxcbiAgICBvbjogKF9vbjUgPSB7fSwgX29uNVtUb29sdGlwRXZlbnRzLk1vdXNlTGVhdmVdID0gVG9vbHRpcFN0YXRlcy5JZGxlLCBfb241W1Rvb2x0aXBFdmVudHMuQmx1cl0gPSBUb29sdGlwU3RhdGVzLklkbGUsIF9vbjUpXG4gIH0sIF9zdGF0ZXMpXG59O1xuLypcbiAqIENoYXJ0IGNvbnRleHQgYWxsb3dzIHVzIHRvIHBlcnNpc3Qgc29tZSBkYXRhIGFyb3VuZCwgaW4gVG9vbHRpcCBhbGwgd2UgdXNlXG4gKiBpcyB0aGUgaWQgb2YgdGhlIGN1cnJlbnQgdG9vbHRpcCBiZWluZyBpbnRlcmFjdGVkIHdpdGguXG4gKi9cblxudmFyIHN0YXRlID0ge1xuICB2YWx1ZTogY2hhcnQuaW5pdGlhbCxcbiAgY29udGV4dDoge1xuICAgIGlkOiBudWxsXG4gIH1cbn07IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTdWJzY3JpcHRpb25zOlxuLy9cbi8vIFdlIGNvdWxkIHJlcXVpcmUgYXBwcyB0byByZW5kZXIgYSA8VG9vbHRpcFByb3ZpZGVyPiBhcm91bmQgdGhlIGFwcCBhbmQgdXNlXG4vLyBSZWFjdCBjb250ZXh0IHRvIG5vdGlmeSBUb29sdGlwcyBvZiBjaGFuZ2VzIHRvIG91ciBzdGF0ZSBtYWNoaW5lLCBpbnN0ZWFkXG4vLyB3ZSBtYW5hZ2Ugc3Vic2NyaXB0aW9ucyBvdXJzZWx2ZXMgYW5kIHNpbXBsaWZ5IHRoZSBUb29sdGlwIEFQSS5cbi8vXG4vLyBNYXliZSBpZiBkZWZhdWx0IGNvbnRleHQgY291bGQgdGFrZSBhIGhvb2sgKGluc3RlYWQgb2YganVzdCBhIHN0YXRpYyB2YWx1ZSlcbi8vIHRoYXQgd2FzIHJlbmRlcmVkIGF0IHRoZSByb290IGZvciB1cywgdGhhdCdkIGJlIGNvb2whIEJ1dCBpdCBkb2Vzbid0LlxuXG52YXIgc3Vic2NyaXB0aW9ucyA9IFtdO1xuXG5mdW5jdGlvbiBzdWJzY3JpYmUoZm4pIHtcbiAgc3Vic2NyaXB0aW9ucy5wdXNoKGZuKTtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBzdWJzY3JpcHRpb25zLnNwbGljZShzdWJzY3JpcHRpb25zLmluZGV4T2YoZm4pLCAxKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gbm90aWZ5KCkge1xuICBzdWJzY3JpcHRpb25zLmZvckVhY2goZnVuY3Rpb24gKGZuKSB7XG4gICAgcmV0dXJuIGZuKHN0YXRlKTtcbiAgfSk7XG59IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBUaW1lb3V0czpcbi8vIE1hbmFnZXMgd2hlbiB0aGUgdXNlciBcInJlc3RzXCIgb24gYW4gZWxlbWVudC4gS2VlcHMgdGhlIGludGVyZmFjZSBmcm9tIGJlaW5nXG4vLyBmbGFzaGluZyB0b29sdGlwcyBhbGwgdGhlIHRpbWUgYXMgdGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlIGFyb3VuZCB0aGUgc2NyZWVuLlxuXG5cbnZhciByZXN0VGltZW91dDtcblxuZnVuY3Rpb24gc3RhcnRSZXN0VGltZXIoKSB7XG4gIHdpbmRvdy5jbGVhclRpbWVvdXQocmVzdFRpbWVvdXQpO1xuICByZXN0VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICBzZW5kKHtcbiAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuUmVzdFxuICAgIH0pO1xuICB9LCBNT1VTRV9SRVNUX1RJTUVPVVQpO1xufVxuXG5mdW5jdGlvbiBjbGVhclJlc3RUaW1lcigpIHtcbiAgd2luZG93LmNsZWFyVGltZW91dChyZXN0VGltZW91dCk7XG59IC8vIE1hbmFnZXMgdGhlIGRlbGF5IHRvIGhpZGUgdGhlIHRvb2x0aXAgYWZ0ZXIgcmVzdCBsZWF2ZXMuXG5cblxudmFyIGxlYXZpbmdWaXNpYmxlVGltZXI7XG5cbmZ1bmN0aW9uIHN0YXJ0TGVhdmluZ1Zpc2libGVUaW1lcigpIHtcbiAgd2luZG93LmNsZWFyVGltZW91dChsZWF2aW5nVmlzaWJsZVRpbWVyKTtcbiAgbGVhdmluZ1Zpc2libGVUaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gc2VuZCh7XG4gICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLlRpbWVDb21wbGV0ZVxuICAgIH0pO1xuICB9LCBMRUFWRV9USU1FT1VUKTtcbn1cblxuZnVuY3Rpb24gY2xlYXJMZWF2aW5nVmlzaWJsZVRpbWVyKCkge1xuICB3aW5kb3cuY2xlYXJUaW1lb3V0KGxlYXZpbmdWaXNpYmxlVGltZXIpO1xufSAvLyBhbGxvd3MgdXMgdG8gY29tZSBvbiBiYWNrIGxhdGVyIHcvbyBlbnRlcmluZyBzb21ldGhpbmcgZWxzZSBmaXJzdCBhZnRlciB0aGVcbi8vIHVzZXIgbGVhdmVzIG9yIGRpc21pc3Nlc1xuXG5cbmZ1bmN0aW9uIGNsZWFyQ29udGV4dElkKCkge1xuICBzdGF0ZS5jb250ZXh0LmlkID0gbnVsbDtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqXG4gKiB1c2VUb29sdGlwXG4gKlxuICogQHBhcmFtIHBhcmFtc1xuICovXG5cblxuZnVuY3Rpb24gdXNlVG9vbHRpcChfdGVtcCkge1xuICB2YXIgX3JlZiA9IF90ZW1wID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wLFxuICAgICAgaWRQcm9wID0gX3JlZi5pZCxcbiAgICAgIG9uUG9pbnRlckVudGVyID0gX3JlZi5vblBvaW50ZXJFbnRlcixcbiAgICAgIG9uUG9pbnRlck1vdmUgPSBfcmVmLm9uUG9pbnRlck1vdmUsXG4gICAgICBvblBvaW50ZXJMZWF2ZSA9IF9yZWYub25Qb2ludGVyTGVhdmUsXG4gICAgICBvblBvaW50ZXJEb3duID0gX3JlZi5vblBvaW50ZXJEb3duLFxuICAgICAgb25Nb3VzZUVudGVyID0gX3JlZi5vbk1vdXNlRW50ZXIsXG4gICAgICBvbk1vdXNlTW92ZSA9IF9yZWYub25Nb3VzZU1vdmUsXG4gICAgICBvbk1vdXNlTGVhdmUgPSBfcmVmLm9uTW91c2VMZWF2ZSxcbiAgICAgIG9uTW91c2VEb3duID0gX3JlZi5vbk1vdXNlRG93bixcbiAgICAgIG9uRm9jdXMgPSBfcmVmLm9uRm9jdXMsXG4gICAgICBvbkJsdXIgPSBfcmVmLm9uQmx1cixcbiAgICAgIG9uS2V5RG93biA9IF9yZWYub25LZXlEb3duLFxuICAgICAgZGlzYWJsZWQgPSBfcmVmLmRpc2FibGVkLFxuICAgICAgZm9yd2FyZGVkUmVmID0gX3JlZi5yZWYsXG4gICAgICBERUJVR19TVFlMRSA9IF9yZWYuREVCVUdfU1RZTEU7XG5cbiAgdmFyIGlkID0gU3RyaW5nKHVzZUlkKGlkUHJvcCkpO1xuXG4gIHZhciBfUmVhY3QkdXNlU3RhdGUgPSB1c2VTdGF0ZShERUJVR19TVFlMRSA/IHRydWUgOiBpc1Rvb2x0aXBWaXNpYmxlKGlkLCB0cnVlKSksXG4gICAgICBpc1Zpc2libGUgPSBfUmVhY3QkdXNlU3RhdGVbMF0sXG4gICAgICBzZXRJc1Zpc2libGUgPSBfUmVhY3QkdXNlU3RhdGVbMV07IC8vIGhvcGVmdWxseSB0aGV5IGFsd2F5cyBwYXNzIGEgcmVmIGlmIHRoZXkgZXZlciBwYXNzIG9uZVxuXG5cbiAgdmFyIG93blJlZiA9IHVzZVJlZihudWxsKTtcbiAgdmFyIHJlZiA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIG93blJlZik7XG4gIHZhciB0cmlnZ2VyUmVjdCA9IHVzZVJlY3Qob3duUmVmLCB7XG4gICAgb2JzZXJ2ZTogaXNWaXNpYmxlXG4gIH0pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBzdWJzY3JpYmUoZnVuY3Rpb24gKCkge1xuICAgICAgc2V0SXNWaXNpYmxlKGlzVG9vbHRpcFZpc2libGUoaWQpKTtcbiAgICB9KTtcbiAgfSwgW2lkXSk7XG4gIHVzZUNoZWNrU3R5bGVzKFwidG9vbHRpcFwiKTtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgb3duZXJEb2N1bWVudCA9IGdldE93bmVyRG9jdW1lbnQob3duUmVmLmN1cnJlbnQpO1xuXG4gICAgZnVuY3Rpb24gbGlzdGVuZXIoZXZlbnQpIHtcbiAgICAgIGlmICgoZXZlbnQua2V5ID09PSBcIkVzY2FwZVwiIHx8IGV2ZW50LmtleSA9PT0gXCJFc2NcIikgJiYgc3RhdGUudmFsdWUgPT09IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSkge1xuICAgICAgICBzZW5kKHtcbiAgICAgICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLlNlbGVjdFdpdGhLZXlib2FyZFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBvd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGxpc3RlbmVyKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgbGlzdGVuZXIpO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgdXNlRGlzYWJsZWRUcmlnZ2VyT25TYWZhcmkoe1xuICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICBpc1Zpc2libGU6IGlzVmlzaWJsZSxcbiAgICByZWY6IG93blJlZlxuICB9KTtcblxuICBmdW5jdGlvbiB3cmFwTW91c2VFdmVudCh0aGVpckhhbmRsZXIsIG91ckhhbmRsZXIpIHtcbiAgICAvLyBVc2UgaW50ZXJuYWwgTW91c2VFdmVudCBoYW5kbGVyIG9ubHkgaWYgUG9pbnRlckV2ZW50IGlzIG5vdCBzdXBwb3J0ZWRcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBcIlBvaW50ZXJFdmVudFwiIGluIHdpbmRvdykge1xuICAgICAgcmV0dXJuIHRoZWlySGFuZGxlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9zZUV2ZW50SGFuZGxlcnModGhlaXJIYW5kbGVyLCBvdXJIYW5kbGVyKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHdyYXBQb2ludGVyRXZlbnRIYW5kbGVyKGhhbmRsZXIpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gb25Qb2ludGVyRXZlbnQoZXZlbnQpIHtcbiAgICAgIC8vIEhhbmRsZSBwb2ludGVyIGV2ZW50cyBvbmx5IGZyb20gbW91c2UgZGV2aWNlXG4gICAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgIT09IFwibW91c2VcIikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGhhbmRsZXIoZXZlbnQpO1xuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVNb3VzZUVudGVyKCkge1xuICAgIHNlbmQoe1xuICAgICAgdHlwZTogVG9vbHRpcEV2ZW50cy5Nb3VzZUVudGVyLFxuICAgICAgaWQ6IGlkXG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVNb3VzZU1vdmUoKSB7XG4gICAgc2VuZCh7XG4gICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLk1vdXNlTW92ZSxcbiAgICAgIGlkOiBpZFxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlTW91c2VMZWF2ZSgpIHtcbiAgICBzZW5kKHtcbiAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuTW91c2VMZWF2ZVxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlTW91c2VEb3duKCkge1xuICAgIC8vIEFsbG93IHF1aWNrIGNsaWNrIGZyb20gb25lIHRvb2wgdG8gYW5vdGhlclxuICAgIGlmIChzdGF0ZS5jb250ZXh0LmlkID09PSBpZCkge1xuICAgICAgc2VuZCh7XG4gICAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuTW91c2VEb3duXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVGb2N1cygpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaWYgKHdpbmRvdy5fX1JFQUNIX0RJU0FCTEVfVE9PTFRJUFMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZW5kKHtcbiAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuRm9jdXMsXG4gICAgICBpZDogaWRcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUJsdXIoKSB7XG4gICAgLy8gQWxsb3cgcXVpY2sgY2xpY2sgZnJvbSBvbmUgdG9vbCB0byBhbm90aGVyXG4gICAgaWYgKHN0YXRlLmNvbnRleHQuaWQgPT09IGlkKSB7XG4gICAgICBzZW5kKHtcbiAgICAgICAgdHlwZTogVG9vbHRpcEV2ZW50cy5CbHVyXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVLZXlEb3duKGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiIHx8IGV2ZW50LmtleSA9PT0gXCIgXCIpIHtcbiAgICAgIHNlbmQoe1xuICAgICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLlNlbGVjdFdpdGhLZXlib2FyZFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHRyaWdnZXIgPSB7XG4gICAgLy8gVGhlIGVsZW1lbnQgdGhhdCB0cmlnZ2VycyB0aGUgdG9vbHRpcCByZWZlcmVuY2VzIHRoZSB0b29sdGlwIGVsZW1lbnQgd2l0aFxuICAgIC8vIGBhcmlhLWRlc2NyaWJlZGJ5YC5cbiAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzLTEuMi8jdG9vbHRpcFxuICAgIFwiYXJpYS1kZXNjcmliZWRieVwiOiBpc1Zpc2libGUgPyBtYWtlSWQoXCJ0b29sdGlwXCIsIGlkKSA6IHVuZGVmaW5lZCxcbiAgICBcImRhdGEtc3RhdGVcIjogaXNWaXNpYmxlID8gXCJ0b29sdGlwLXZpc2libGVcIiA6IFwidG9vbHRpcC1oaWRkZW5cIixcbiAgICBcImRhdGEtcmVhY2gtdG9vbHRpcC10cmlnZ2VyXCI6IFwiXCIsXG4gICAgcmVmOiByZWYsXG4gICAgb25Qb2ludGVyRW50ZXI6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uUG9pbnRlckVudGVyLCB3cmFwUG9pbnRlckV2ZW50SGFuZGxlcihoYW5kbGVNb3VzZUVudGVyKSksXG4gICAgb25Qb2ludGVyTW92ZTogY29tcG9zZUV2ZW50SGFuZGxlcnMob25Qb2ludGVyTW92ZSwgd3JhcFBvaW50ZXJFdmVudEhhbmRsZXIoaGFuZGxlTW91c2VNb3ZlKSksXG4gICAgb25Qb2ludGVyTGVhdmU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uUG9pbnRlckxlYXZlLCB3cmFwUG9pbnRlckV2ZW50SGFuZGxlcihoYW5kbGVNb3VzZUxlYXZlKSksXG4gICAgb25Qb2ludGVyRG93bjogY29tcG9zZUV2ZW50SGFuZGxlcnMob25Qb2ludGVyRG93biwgd3JhcFBvaW50ZXJFdmVudEhhbmRsZXIoaGFuZGxlTW91c2VEb3duKSksXG4gICAgb25Nb3VzZUVudGVyOiB3cmFwTW91c2VFdmVudChvbk1vdXNlRW50ZXIsIGhhbmRsZU1vdXNlRW50ZXIpLFxuICAgIG9uTW91c2VNb3ZlOiB3cmFwTW91c2VFdmVudChvbk1vdXNlTW92ZSwgaGFuZGxlTW91c2VNb3ZlKSxcbiAgICBvbk1vdXNlTGVhdmU6IHdyYXBNb3VzZUV2ZW50KG9uTW91c2VMZWF2ZSwgaGFuZGxlTW91c2VMZWF2ZSksXG4gICAgb25Nb3VzZURvd246IHdyYXBNb3VzZUV2ZW50KG9uTW91c2VEb3duLCBoYW5kbGVNb3VzZURvd24pLFxuICAgIG9uRm9jdXM6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uRm9jdXMsIGhhbmRsZUZvY3VzKSxcbiAgICBvbkJsdXI6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uQmx1ciwgaGFuZGxlQmx1ciksXG4gICAgb25LZXlEb3duOiBjb21wb3NlRXZlbnRIYW5kbGVycyhvbktleURvd24sIGhhbmRsZUtleURvd24pXG4gIH07XG4gIHZhciB0b29sdGlwID0ge1xuICAgIGlkOiBpZCxcbiAgICB0cmlnZ2VyUmVjdDogdHJpZ2dlclJlY3QsXG4gICAgaXNWaXNpYmxlOiBpc1Zpc2libGVcbiAgfTtcbiAgcmV0dXJuIFt0cmlnZ2VyLCB0b29sdGlwLCBpc1Zpc2libGVdO1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIFRvb2x0aXBcbiAqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3Rvb2x0aXAjdG9vbHRpcFxuICovXG5cblxudmFyIFRvb2x0aXAgPSAvKiNfX1BVUkVfXyovZm9yd2FyZFJlZihmdW5jdGlvbiAoX3JlZjIsIGZvcndhcmRlZFJlZikge1xuICB2YXIgY2hpbGRyZW4gPSBfcmVmMi5jaGlsZHJlbixcbiAgICAgIGxhYmVsID0gX3JlZjIubGFiZWwsXG4gICAgICBERVBSRUNBVEVEX2FyaWFMYWJlbCA9IF9yZWYyLmFyaWFMYWJlbCxcbiAgICAgIGlkID0gX3JlZjIuaWQsXG4gICAgICBERUJVR19TVFlMRSA9IF9yZWYyLkRFQlVHX1NUWUxFLFxuICAgICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmMiwgX2V4Y2x1ZGVkKTtcblxuICB2YXIgY2hpbGQgPSBDaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyghREVQUkVDQVRFRF9hcmlhTGFiZWwsIFwiVGhlIGBhcmlhTGFiZWwgcHJvcCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgZnJvbSBAcmVhY2gvdG9vbHRpcCBpbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIFJlYWNoIFVJLiBQbGVhc2UgdXNlIGBhcmlhLWxhYmVsYCBpbnN0ZWFkLlwiKSA6IHZvaWQgMDsgLy8gV2UgbmVlZCB0byBwYXNzIHNvbWUgcHJvcGVydGllcyBmcm9tIHRoZSBjaGlsZCBpbnRvIHVzZVRvb2x0aXBcbiAgLy8gdG8gbWFrZSBzdXJlIHVzZXJzIGNhbiBtYWludGFpbiBjb250cm9sIG92ZXIgdGhlIHRyaWdnZXIncyByZWYgYW5kIGV2ZW50c1xuXG4gIHZhciBfdXNlVG9vbHRpcCA9IHVzZVRvb2x0aXAoe1xuICAgIGlkOiBpZCxcbiAgICBvblBvaW50ZXJFbnRlcjogY2hpbGQucHJvcHMub25Qb2ludGVyRW50ZXIsXG4gICAgb25Qb2ludGVyTW92ZTogY2hpbGQucHJvcHMub25Qb2ludGVyTW92ZSxcbiAgICBvblBvaW50ZXJMZWF2ZTogY2hpbGQucHJvcHMub25Qb2ludGVyTGVhdmUsXG4gICAgb25Qb2ludGVyRG93bjogY2hpbGQucHJvcHMub25Qb2ludGVyRG93bixcbiAgICBvbk1vdXNlRW50ZXI6IGNoaWxkLnByb3BzLm9uTW91c2VFbnRlcixcbiAgICBvbk1vdXNlTW92ZTogY2hpbGQucHJvcHMub25Nb3VzZU1vdmUsXG4gICAgb25Nb3VzZUxlYXZlOiBjaGlsZC5wcm9wcy5vbk1vdXNlTGVhdmUsXG4gICAgb25Nb3VzZURvd246IGNoaWxkLnByb3BzLm9uTW91c2VEb3duLFxuICAgIG9uRm9jdXM6IGNoaWxkLnByb3BzLm9uRm9jdXMsXG4gICAgb25CbHVyOiBjaGlsZC5wcm9wcy5vbkJsdXIsXG4gICAgb25LZXlEb3duOiBjaGlsZC5wcm9wcy5vbktleURvd24sXG4gICAgZGlzYWJsZWQ6IGNoaWxkLnByb3BzLmRpc2FibGVkLFxuICAgIHJlZjogY2hpbGQucmVmLFxuICAgIERFQlVHX1NUWUxFOiBERUJVR19TVFlMRVxuICB9KSxcbiAgICAgIHRyaWdnZXIgPSBfdXNlVG9vbHRpcFswXSxcbiAgICAgIHRvb2x0aXAgPSBfdXNlVG9vbHRpcFsxXTtcblxuICByZXR1cm4gLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoRnJhZ21lbnQsIG51bGwsIC8qI19fUFVSRV9fKi9jbG9uZUVsZW1lbnQoY2hpbGQsIHRyaWdnZXIpLCAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChUb29sdGlwUG9wdXAsIF9leHRlbmRzKHtcbiAgICByZWY6IGZvcndhcmRlZFJlZixcbiAgICBsYWJlbDogbGFiZWwsXG4gICAgXCJhcmlhLWxhYmVsXCI6IERFUFJFQ0FURURfYXJpYUxhYmVsXG4gIH0sIHRvb2x0aXAsIHByb3BzKSkpO1xufSk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgVG9vbHRpcC5kaXNwbGF5TmFtZSA9IFwiVG9vbHRpcFwiO1xuICBUb29sdGlwLnByb3BUeXBlcyA9IHtcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBsYWJlbDogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBhcmlhTGFiZWw6IFByb3BUeXBlcy5zdHJpbmdcbiAgfTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqXG4gKiBUb29sdGlwUG9wdXBcbiAqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3Rvb2x0aXAjdG9vbHRpcHBvcHVwXG4gKi9cblxuXG52YXIgVG9vbHRpcFBvcHVwID0gLyojX19QVVJFX18qL2ZvcndhcmRSZWYoZnVuY3Rpb24gVG9vbHRpcFBvcHVwKF9yZWYzLCBmb3J3YXJkUmVmKSB7XG4gIHZhciBsYWJlbCA9IF9yZWYzLmxhYmVsLFxuICAgICAgREVQUkVDQVRFRF9hcmlhTGFiZWwgPSBfcmVmMy5hcmlhTGFiZWwsXG4gICAgICBpc1Zpc2libGUgPSBfcmVmMy5pc1Zpc2libGUsXG4gICAgICBpZCA9IF9yZWYzLmlkLFxuICAgICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmMywgX2V4Y2x1ZGVkMik7XG5cbiAgcmV0dXJuIGlzVmlzaWJsZSA/IC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KFBvcnRhbCwgbnVsbCwgLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoVG9vbHRpcENvbnRlbnQsIF9leHRlbmRzKHtcbiAgICByZWY6IGZvcndhcmRSZWYsXG4gICAgbGFiZWw6IGxhYmVsLFxuICAgIFwiYXJpYS1sYWJlbFwiOiBERVBSRUNBVEVEX2FyaWFMYWJlbCxcbiAgICBpc1Zpc2libGU6IGlzVmlzaWJsZVxuICB9LCBwcm9wcywge1xuICAgIGlkOiBtYWtlSWQoXCJ0b29sdGlwXCIsIFN0cmluZyhpZCkpXG4gIH0pKSkgOiBudWxsO1xufSk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgVG9vbHRpcFBvcHVwLmRpc3BsYXlOYW1lID0gXCJUb29sdGlwUG9wdXBcIjtcbiAgVG9vbHRpcFBvcHVwLnByb3BUeXBlcyA9IHtcbiAgICBsYWJlbDogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBhcmlhTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgcG9zaXRpb246IFByb3BUeXBlcy5mdW5jXG4gIH07XG59XG4vKipcbiAqIFRvb2x0aXBDb250ZW50XG4gKlxuICogV2UgbmVlZCBhIHNlcGFyYXRlIGNvbXBvbmVudCBzbyB0aGF0IHVzZVJlY3Qgd29ya3MgaW5zaWRlIHRoZSBwb3J0YWwuXG4gKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC90b29sdGlwI3Rvb2x0aXBjb250ZW50XG4gKi9cblxuXG52YXIgVG9vbHRpcENvbnRlbnQgPSAvKiNfX1BVUkVfXyovZm9yd2FyZFJlZihmdW5jdGlvbiBUb29sdGlwQ29udGVudChfcmVmNCwgZm9yd2FyZGVkUmVmKSB7XG4gIHZhciBhcmlhTGFiZWwgPSBfcmVmNC5hcmlhTGFiZWwsXG4gICAgICByZWFsQXJpYUxhYmVsID0gX3JlZjRbXCJhcmlhLWxhYmVsXCJdLFxuICAgICAgX3JlZjQkYXMgPSBfcmVmNC5hcyxcbiAgICAgIENvbXAgPSBfcmVmNCRhcyA9PT0gdm9pZCAwID8gXCJkaXZcIiA6IF9yZWY0JGFzLFxuICAgICAgaWQgPSBfcmVmNC5pZCxcbiAgICAgIGlzVmlzaWJsZSA9IF9yZWY0LmlzVmlzaWJsZSxcbiAgICAgIGxhYmVsID0gX3JlZjQubGFiZWwsXG4gICAgICBfcmVmNCRwb3NpdGlvbiA9IF9yZWY0LnBvc2l0aW9uLFxuICAgICAgcG9zaXRpb24gPSBfcmVmNCRwb3NpdGlvbiA9PT0gdm9pZCAwID8gcG9zaXRpb25Ub29sdGlwIDogX3JlZjQkcG9zaXRpb24sXG4gICAgICBzdHlsZSA9IF9yZWY0LnN0eWxlLFxuICAgICAgdHJpZ2dlclJlY3QgPSBfcmVmNC50cmlnZ2VyUmVjdCxcbiAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3JlZjQsIF9leGNsdWRlZDMpO1xuXG4gIC8vIFRoZSBlbGVtZW50IHRoYXQgc2VydmVzIGFzIHRoZSB0b29sdGlwIGNvbnRhaW5lciBoYXMgcm9sZSB0b29sdGlwLlxuICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzLTEuMi8jdG9vbHRpcCBXaGVuIGFuIGFwcCBwYXNzZXNcbiAgLy8gYW4gYGFyaWEtbGFiZWxgLCB3ZSBhY3R1YWxseSB3YW50IHRvIGltcGxlbWVudCBgcm9sZT1cInRvb2x0aXBcImAgb24gYVxuICAvLyB2aXN1YWxseSBoaWRkZW4gZWxlbWVudCBpbnNpZGUgb2YgdGhlIHRyaWdnZXIuIEluIHRoZXNlIGNhc2VzIHdlIHdhbnQgdGhlXG4gIC8vIHNjcmVlbiByZWFkZXIgdXNlciB0byBrbm93IGJvdGggdGhlIGNvbnRlbnQgaW4gdGhlIHRvb2x0aXAsIGJ1dCBhbHNvIHRoZVxuICAvLyBjb250ZW50IGluIHRoZSBiYWRnZS4gRm9yIHNjcmVlbiByZWFkZXIgdXNlcnMsIHRoZSBvbmx5IGNvbnRlbnQgYW5ub3VuY2VkXG4gIC8vIHRvIHRoZW0gaXMgd2hhdGV2ZXIgaXMgaW4gdGhlIHRvb2x0aXAuXG4gIHZhciBoYXNBcmlhTGFiZWwgPSAocmVhbEFyaWFMYWJlbCB8fCBhcmlhTGFiZWwpICE9IG51bGw7XG4gIHZhciBvd25SZWYgPSB1c2VSZWYobnVsbCk7XG4gIHZhciByZWYgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBvd25SZWYpO1xuICB2YXIgdG9vbHRpcFJlY3QgPSB1c2VSZWN0KG93blJlZiwge1xuICAgIG9ic2VydmU6IGlzVmlzaWJsZVxuICB9KTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KEZyYWdtZW50LCBudWxsLCAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChDb21wLCBfZXh0ZW5kcyh7XG4gICAgcm9sZTogaGFzQXJpYUxhYmVsID8gdW5kZWZpbmVkIDogXCJ0b29sdGlwXCJcbiAgfSwgcHJvcHMsIHtcbiAgICByZWY6IHJlZixcbiAgICBcImRhdGEtcmVhY2gtdG9vbHRpcFwiOiBcIlwiLFxuICAgIGlkOiBoYXNBcmlhTGFiZWwgPyB1bmRlZmluZWQgOiBpZCxcbiAgICBzdHlsZTogX2V4dGVuZHMoe30sIHN0eWxlLCBnZXRTdHlsZXMocG9zaXRpb24sIHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCkpXG4gIH0pLCBsYWJlbCksIGhhc0FyaWFMYWJlbCAmJiAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChWaXN1YWxseUhpZGRlbiwge1xuICAgIHJvbGU6IFwidG9vbHRpcFwiLFxuICAgIGlkOiBpZFxuICB9LCByZWFsQXJpYUxhYmVsIHx8IGFyaWFMYWJlbCkpO1xufSk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgVG9vbHRpcENvbnRlbnQuZGlzcGxheU5hbWUgPSBcIlRvb2x0aXBDb250ZW50XCI7XG4gIFRvb2x0aXBDb250ZW50LnByb3BUeXBlcyA9IHt9O1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5cbmZ1bmN0aW9uIGdldFN0eWxlcyhwb3NpdGlvbiwgdHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KSB7XG4gIHZhciBoYXZlbnRNZWFzdXJlZFRvb2x0aXBZZXQgPSAhdG9vbHRpcFJlY3Q7XG5cbiAgaWYgKGhhdmVudE1lYXN1cmVkVG9vbHRpcFlldCkge1xuICAgIHJldHVybiB7XG4gICAgICB2aXNpYmlsaXR5OiBcImhpZGRlblwiXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBwb3NpdGlvbih0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QpO1xufSAvLyBEZWZhdWx0IG9mZnNldCBmcm9tIHRoZSB0cmlnZ2VyIChlLmcuLCBpZiB0aGUgdG9vbHRpcCBpcyBwb3NpdGlvbmVkIGFib3ZlLFxuLy8gdGhlcmUgd2lsbCBiZSA4cHggYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSB0b29sdGlwIGFuZCB0aGUgdG9wIG9mIHRoZSB0cmlnZ2VyKS5cbi8vIEl0IGZlZWxzIGF3a3dhcmQgd2hlbiBpdCdzIHBlcmZlY3RseSBhbGlnbmVkIHcvIHRoZSB0cmlnZ2VyXG5cblxudmFyIE9GRlNFVF9ERUZBVUxUID0gODtcbnZhciBwb3NpdGlvblRvb2x0aXAgPSBmdW5jdGlvbiBwb3NpdGlvblRvb2x0aXAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0LCBvZmZzZXQpIHtcbiAgaWYgKG9mZnNldCA9PT0gdm9pZCAwKSB7XG4gICAgb2Zmc2V0ID0gT0ZGU0VUX0RFRkFVTFQ7XG4gIH1cblxuICB2YXIgX2dldERvY3VtZW50RGltZW5zaW9uID0gZ2V0RG9jdW1lbnREaW1lbnNpb25zKCksXG4gICAgICB3aW5kb3dXaWR0aCA9IF9nZXREb2N1bWVudERpbWVuc2lvbi53aWR0aCxcbiAgICAgIHdpbmRvd0hlaWdodCA9IF9nZXREb2N1bWVudERpbWVuc2lvbi5oZWlnaHQ7XG5cbiAgaWYgKCF0cmlnZ2VyUmVjdCB8fCAhdG9vbHRpcFJlY3QpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICB2YXIgY29sbGlzaW9ucyA9IHtcbiAgICB0b3A6IHRyaWdnZXJSZWN0LnRvcCAtIHRvb2x0aXBSZWN0LmhlaWdodCA8IDAsXG4gICAgcmlnaHQ6IHdpbmRvd1dpZHRoIDwgdHJpZ2dlclJlY3QubGVmdCArIHRvb2x0aXBSZWN0LndpZHRoLFxuICAgIGJvdHRvbTogd2luZG93SGVpZ2h0IDwgdHJpZ2dlclJlY3QuYm90dG9tICsgdG9vbHRpcFJlY3QuaGVpZ2h0ICsgb2Zmc2V0LFxuICAgIGxlZnQ6IHRyaWdnZXJSZWN0LmxlZnQgLSB0b29sdGlwUmVjdC53aWR0aCA8IDBcbiAgfTtcbiAgdmFyIGRpcmVjdGlvblJpZ2h0ID0gY29sbGlzaW9ucy5yaWdodCAmJiAhY29sbGlzaW9ucy5sZWZ0O1xuICB2YXIgZGlyZWN0aW9uVXAgPSBjb2xsaXNpb25zLmJvdHRvbSAmJiAhY29sbGlzaW9ucy50b3A7XG4gIHJldHVybiB7XG4gICAgbGVmdDogZGlyZWN0aW9uUmlnaHQgPyB0cmlnZ2VyUmVjdC5yaWdodCAtIHRvb2x0aXBSZWN0LndpZHRoICsgd2luZG93LnBhZ2VYT2Zmc2V0ICsgXCJweFwiIDogdHJpZ2dlclJlY3QubGVmdCArIHdpbmRvdy5wYWdlWE9mZnNldCArIFwicHhcIixcbiAgICB0b3A6IGRpcmVjdGlvblVwID8gdHJpZ2dlclJlY3QudG9wIC0gb2Zmc2V0IC0gdG9vbHRpcFJlY3QuaGVpZ2h0ICsgd2luZG93LnBhZ2VZT2Zmc2V0ICsgXCJweFwiIDogdHJpZ2dlclJlY3QudG9wICsgb2Zmc2V0ICsgdHJpZ2dlclJlY3QuaGVpZ2h0ICsgd2luZG93LnBhZ2VZT2Zmc2V0ICsgXCJweFwiXG4gIH07XG59O1xuLyoqXG4gKiBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgdXNpbmcgdG9vbHRpcHMgd2l0aCBkaXNhYmxlZCBjb250cm9scyBpbiBTYWZhcmkuXG4gKiBTYWZhcmkgZmlyZXMgYHBvaW50ZXJlbnRlcmAgYnV0IGRvZXMgbm90IGZpcmUgYHBvaW50ZXJsZWF2ZWAsIGFuZFxuICogYG9uUG9pbnRlckV2ZW50TGVhdmVgIGFkZGVkIHRvIHRoZSB0cmlnZ2VyIGVsZW1lbnQgd2lsbCBub3Qgd29yay5cbiAqXG4gKiBUT0RPOiBXZSBtYXkgcmVtb3ZlIG9yIG1vZGlpZnkgdGhpcyBiZWhhdmlvciBpbiBhIGZ1dHVyZSB2ZXJzaW9uLiBEaXJlY3Rpb25cbiAqIGZyb20gV0FJLUFSSUEgbmVlZGVkIGZvciBndWlkYW5jZSBvbiBoYW5kbGluZyBkaXNhYmxlZCB0cmlnZ2Vycy4gVG9vbHRpcHNcbiAqIG11c3QgYmUgYWNjZXNzaWJsZSBieSBrZXlib2FyZCwgYW5kIGRpc2FibGVkIGZvcm0gY29udHJvbHMgYXJlIGdlbmVyYWxseVxuICogZXhjbHVkZWQgZnJvbSB0aGUgdGFiIHNlcXVlbmNlLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JlYWNoL3JlYWNoLXVpL2lzc3Vlcy81NjRcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9hcmlhLXByYWN0aWNlcy9pc3N1ZXMvMTI4I2lzc3VlY29tbWVudC01ODg2MjU3MjdcbiAqL1xuXG5mdW5jdGlvbiB1c2VEaXNhYmxlZFRyaWdnZXJPblNhZmFyaShfcmVmNSkge1xuICB2YXIgZGlzYWJsZWQgPSBfcmVmNS5kaXNhYmxlZCxcbiAgICAgIGlzVmlzaWJsZSA9IF9yZWY1LmlzVmlzaWJsZSxcbiAgICAgIHJlZiA9IF9yZWY1LnJlZjtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoISh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIFwiUG9pbnRlckV2ZW50XCIgaW4gd2luZG93KSB8fCAhZGlzYWJsZWQgfHwgIWlzVmlzaWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBvd25lckRvY3VtZW50ID0gZ2V0T3duZXJEb2N1bWVudChyZWYuY3VycmVudCk7XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVNb3VzZU1vdmUoZXZlbnQpIHtcbiAgICAgIGlmICghaXNWaXNpYmxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQgJiYgZXZlbnQudGFyZ2V0LmNsb3Nlc3QoXCJbZGF0YS1yZWFjaC10b29sdGlwLXRyaWdnZXJdW2RhdGEtc3RhdGU9J3Rvb2x0aXAtdmlzaWJsZSddXCIpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc2VuZCh7XG4gICAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuR2xvYmFsTW91c2VNb3ZlXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBvd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgaGFuZGxlTW91c2VNb3ZlKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIGhhbmRsZU1vdXNlTW92ZSk7XG4gICAgfTtcbiAgfSwgW2Rpc2FibGVkLCBpc1Zpc2libGUsIHJlZl0pO1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIFNlbmQgYW4gZXZlbnQgdG8gb3VyIHN0YXRlIG1hY2hpbmUgdG8gZmluZCB0aGUgbmV4dCBzdGF0ZSBmcm9tIHRoZSBjdXJyZW50XG4gKiBzdGF0ZSArIGFjdGlvbi5cbiAqXG4gKiBJdCBhbHNvIG1hbmFnZXMgbGlmZWN5Y2xlcyBvZiB0aGUgbWFjaGluZSwgKGVudGVyL2xlYXZlIGhvb2tzIG9uIHRoZSBzdGF0ZVxuICogY2hhcnQpXG4gKlxuICogQHBhcmFtIGV2ZW50XG4gKiBAcGFyYW0gcGF5bG9hZFxuICovXG5cblxuZnVuY3Rpb24gc2VuZChldmVudCkge1xuICB2YXIgX3RyYW5zaXRpb24gPSB0cmFuc2l0aW9uKHN0YXRlLCBldmVudCksXG4gICAgICB2YWx1ZSA9IF90cmFuc2l0aW9uLnZhbHVlLFxuICAgICAgY29udGV4dCA9IF90cmFuc2l0aW9uLmNvbnRleHQsXG4gICAgICBjaGFuZ2VkID0gX3RyYW5zaXRpb24uY2hhbmdlZDtcblxuICBpZiAoY2hhbmdlZCkge1xuICAgIHN0YXRlID0ge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH07XG4gICAgbm90aWZ5KCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhbnNpdGlvbihjdXJyZW50U3RhdGUsIGV2ZW50KSB7XG4gIHZhciBzdGF0ZURlZiA9IGNoYXJ0LnN0YXRlc1tjdXJyZW50U3RhdGUudmFsdWVdO1xuICB2YXIgbmV4dFN0YXRlID0gc3RhdGVEZWYgJiYgc3RhdGVEZWYub24gJiYgc3RhdGVEZWYub25bZXZlbnQudHlwZV07IC8vIFJlYWxseSB1c2VmdWwgZm9yIGRlYnVnZ2luZ1xuICAvLyBjb25zb2xlLmxvZyh7IGV2ZW50LCBzdGF0ZSwgbmV4dFN0YXRlLCBjb250ZXh0SWQ6IGNvbnRleHQuaWQgfSk7XG4gIC8vICFuZXh0U3RhdGUgJiYgY29uc29sZS5sb2coXCJubyB0cmFuc2l0aW9uIHRha2VuXCIpO1xuXG4gIGlmICghbmV4dFN0YXRlKSB7XG4gICAgcmV0dXJuIF9leHRlbmRzKHt9LCBjdXJyZW50U3RhdGUsIHtcbiAgICAgIGNoYW5nZWQ6IGZhbHNlXG4gICAgfSk7XG4gIH1cblxuICBpZiAoc3RhdGVEZWYgJiYgc3RhdGVEZWYubGVhdmUpIHtcbiAgICBzdGF0ZURlZi5sZWF2ZShjdXJyZW50U3RhdGUuY29udGV4dCwgZXZlbnQpO1xuICB9XG5cbiAgZXZlbnQudHlwZTtcbiAgICAgIHZhciBwYXlsb2FkID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoZXZlbnQsIF9leGNsdWRlZDQpOyAvLyBUT0RPOiBVc2UgYWN0aW9ucyBpbnN0ZWFkIG9mIGRpcmVjdGx5IHNldHRpbmcgY29udGV4dFxuXG5cbiAgdmFyIGNvbnRleHQgPSBfZXh0ZW5kcyh7fSwgc3RhdGUuY29udGV4dCwgcGF5bG9hZCk7XG5cbiAgdmFyIG5leHRTdGF0ZVZhbHVlID0gdHlwZW9mIG5leHRTdGF0ZSA9PT0gXCJzdHJpbmdcIiA/IG5leHRTdGF0ZSA6IG5leHRTdGF0ZS50YXJnZXQ7XG4gIHZhciBuZXh0RGVmID0gY2hhcnQuc3RhdGVzW25leHRTdGF0ZVZhbHVlXTtcblxuICBpZiAobmV4dERlZiAmJiBuZXh0RGVmLmVudGVyKSB7XG4gICAgbmV4dERlZi5lbnRlcihjdXJyZW50U3RhdGUuY29udGV4dCwgZXZlbnQpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB2YWx1ZTogbmV4dFN0YXRlVmFsdWUsXG4gICAgY29udGV4dDogY29udGV4dCxcbiAgICBjaGFuZ2VkOiB0cnVlXG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzVG9vbHRpcFZpc2libGUoaWQsIGluaXRpYWwpIHtcbiAgcmV0dXJuIHN0YXRlLmNvbnRleHQuaWQgPT09IGlkICYmIChpbml0aWFsID8gc3RhdGUudmFsdWUgPT09IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSA6IHN0YXRlLnZhbHVlID09PSBUb29sdGlwU3RhdGVzLlZpc2libGUgfHwgc3RhdGUudmFsdWUgPT09IFRvb2x0aXBTdGF0ZXMuTGVhdmluZ1Zpc2libGUpO1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5leHBvcnQgZGVmYXVsdCBUb29sdGlwO1xuZXhwb3J0IHsgTEVBVkVfVElNRU9VVCwgTU9VU0VfUkVTVF9USU1FT1VULCBUb29sdGlwLCBUb29sdGlwUG9wdXAsIHBvc2l0aW9uVG9vbHRpcCwgdXNlVG9vbHRpcCB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///197\n')},937:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ S: () => (/* binding */ canUseDOM)\n/* harmony export */ });\nfunction canUseDOM() {\n return !!(typeof window !== "undefined" && window.document && window.document.createElement);\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTM3LmpzIiwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0E7QUFDQTs7QUFFcUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvY2FuLXVzZS1kb20vZGlzdC9yZWFjaC11dGlscy1jYW4tdXNlLWRvbS5lc20uanM/ZjM3ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBjYW5Vc2VET00oKSB7XG4gIHJldHVybiAhISh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG59XG5cbmV4cG9ydCB7IGNhblVzZURPTSB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///937\n')},103:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ E: () => (/* binding */ useIsomorphicLayoutEffect)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(763);\n/* harmony import */ var _can_use_dom_dist_reach_utils_can_use_dom_esm_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(937);\n\n\n\n/**\n * React currently throws a warning when using useLayoutEffect on the server. To\n * get around it, we can conditionally useEffect on the server (no-op) and\n * useLayoutEffect in the browser. We occasionally need useLayoutEffect to\n * ensure we don't get a render flash for certain operations, but we may also\n * need affected components to render on the server. One example is when setting\n * a component's descendants to retrieve their index values.\n *\n * Important to note that using this hook as an escape hatch will break the\n * eslint dependency warnings unless you rename the import to `useLayoutEffect`.\n * Use sparingly only when the effect won't effect the rendered HTML to avoid\n * any server/client mismatch.\n *\n * If a useLayoutEffect is needed and the result would create a mismatch, it's\n * likely that the component in question shouldn't be rendered on the server at\n * all, so a better approach would be to lazily render those in a parent\n * component after client-side hydration.\n *\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\n *\n * @param effect\n * @param deps\n */\n\nvar useIsomorphicLayoutEffect = /*#__PURE__*/(0,_can_use_dom_dist_reach_utils_can_use_dom_esm_js__WEBPACK_IMPORTED_MODULE_1__/* .canUseDOM */ .S)() ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTAzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQW1EO0FBQytCOztBQUVsRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsNkNBQTZDLG9HQUFTLEtBQUssa0RBQWUsR0FBRyw0Q0FBUzs7QUFFakQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvdXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdC9kaXN0L3JlYWNoLXV0aWxzLXVzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QuZXNtLmpzPzE0MmQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0LCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjYW5Vc2VET00gfSBmcm9tICcuLi8uLi9jYW4tdXNlLWRvbS9kaXN0L3JlYWNoLXV0aWxzLWNhbi11c2UtZG9tLmVzbS5qcyc7XG5cbi8qKlxuICogUmVhY3QgY3VycmVudGx5IHRocm93cyBhIHdhcm5pbmcgd2hlbiB1c2luZyB1c2VMYXlvdXRFZmZlY3Qgb24gdGhlIHNlcnZlci4gVG9cbiAqIGdldCBhcm91bmQgaXQsIHdlIGNhbiBjb25kaXRpb25hbGx5IHVzZUVmZmVjdCBvbiB0aGUgc2VydmVyIChuby1vcCkgYW5kXG4gKiB1c2VMYXlvdXRFZmZlY3QgaW4gdGhlIGJyb3dzZXIuIFdlIG9jY2FzaW9uYWxseSBuZWVkIHVzZUxheW91dEVmZmVjdCB0b1xuICogZW5zdXJlIHdlIGRvbid0IGdldCBhIHJlbmRlciBmbGFzaCBmb3IgY2VydGFpbiBvcGVyYXRpb25zLCBidXQgd2UgbWF5IGFsc29cbiAqIG5lZWQgYWZmZWN0ZWQgY29tcG9uZW50cyB0byByZW5kZXIgb24gdGhlIHNlcnZlci4gT25lIGV4YW1wbGUgaXMgd2hlbiBzZXR0aW5nXG4gKiBhIGNvbXBvbmVudCdzIGRlc2NlbmRhbnRzIHRvIHJldHJpZXZlIHRoZWlyIGluZGV4IHZhbHVlcy5cbiAqXG4gKiBJbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHVzaW5nIHRoaXMgaG9vayBhcyBhbiBlc2NhcGUgaGF0Y2ggd2lsbCBicmVhayB0aGVcbiAqIGVzbGludCBkZXBlbmRlbmN5IHdhcm5pbmdzIHVubGVzcyB5b3UgcmVuYW1lIHRoZSBpbXBvcnQgdG8gYHVzZUxheW91dEVmZmVjdGAuXG4gKiBVc2Ugc3BhcmluZ2x5IG9ubHkgd2hlbiB0aGUgZWZmZWN0IHdvbid0IGVmZmVjdCB0aGUgcmVuZGVyZWQgSFRNTCB0byBhdm9pZFxuICogYW55IHNlcnZlci9jbGllbnQgbWlzbWF0Y2guXG4gKlxuICogSWYgYSB1c2VMYXlvdXRFZmZlY3QgaXMgbmVlZGVkIGFuZCB0aGUgcmVzdWx0IHdvdWxkIGNyZWF0ZSBhIG1pc21hdGNoLCBpdCdzXG4gKiBsaWtlbHkgdGhhdCB0aGUgY29tcG9uZW50IGluIHF1ZXN0aW9uIHNob3VsZG4ndCBiZSByZW5kZXJlZCBvbiB0aGUgc2VydmVyIGF0XG4gKiBhbGwsIHNvIGEgYmV0dGVyIGFwcHJvYWNoIHdvdWxkIGJlIHRvIGxhemlseSByZW5kZXIgdGhvc2UgaW4gYSBwYXJlbnRcbiAqIGNvbXBvbmVudCBhZnRlciBjbGllbnQtc2lkZSBoeWRyYXRpb24uXG4gKlxuICogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZ2FlYXJvbi9lN2Q5N2NkZjM4YTI5MDc5MjRlYTEyZTRlYmRmM2M4NVxuICogaHR0cHM6Ly9naXRodWIuY29tL3JlZHV4anMvcmVhY3QtcmVkdXgvYmxvYi9tYXN0ZXIvc3JjL3V0aWxzL3VzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QuanNcbiAqXG4gKiBAcGFyYW0gZWZmZWN0XG4gKiBAcGFyYW0gZGVwc1xuICovXG5cbnZhciB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0ID0gLyojX19QVVJFX18qL2NhblVzZURPTSgpID8gdXNlTGF5b3V0RWZmZWN0IDogdXNlRWZmZWN0O1xuXG5leHBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///103\n")},172:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }\n(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(556)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _propTypes) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireWildcard(_react);\n _propTypes = _interopRequireDefault(_propTypes);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\n function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }\n function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }\n function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\n function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }\n function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }\n function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }\n function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\n function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }\n function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); return e; }\n function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\n function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\n function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }\n function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\n var Collapsible = /*#__PURE__*/function (_Component) {\n function Collapsible(props) {\n var _this;\n _classCallCheck(this, Collapsible);\n _this = _callSuper(this, Collapsible, [props]);\n _this.state = {\n isExpanded: false\n };\n _this._toggleExpanded = _this.toggleExpanded.bind(_this);\n _this._renderShowButton = _this.renderShowButton.bind(_this);\n _this._renderHideButton = _this.renderHideButton.bind(_this);\n return _this;\n }\n _inherits(Collapsible, _Component);\n return _createClass(Collapsible, [{\n key: "toggleExpanded",\n value: function toggleExpanded() {\n this.setState({\n isExpanded: !this.state.isExpanded\n });\n }\n }, {\n key: "renderShowButton",\n value: function renderShowButton() {\n return /*#__PURE__*/_react["default"].createElement("span", {\n className: "collapsible-show-label"\n }, this.props.showLabel);\n }\n }, {\n key: "renderHideButton",\n value: function renderHideButton() {\n if (this.props.hideLabel) {\n return /*#__PURE__*/_react["default"].createElement("span", {\n className: "collapsible-hide-label"\n }, this.props.hideLabel);\n } else {\n return "";\n }\n }\n }, {\n key: "render",\n value: function render() {\n var isArray = Array.isArray(this.props.content);\n var isHidden = this.state.isExpanded ? undefined : true;\n return /*#__PURE__*/_react["default"].createElement("div", {\n className: "collapsible-container"\n }, /*#__PURE__*/_react["default"].createElement("button", {\n onClick: this._toggleExpanded,\n className: "collapsible-summary",\n type: "button",\n "aria-expanded": this.state.isExpanded ? true : false\n }, this._renderShowButton(), this._renderHideButton()), /*#__PURE__*/_react["default"].createElement("div", {\n className: "collapsible-details",\n hidden: isHidden\n }, isArray ? /*#__PURE__*/_react["default"].createElement("ul", {\n className: "items"\n }, this.props.content.map(function (c) {\n return /*#__PURE__*/_react["default"].createElement("li", {\n key: c.contentTitle\n }, /*#__PURE__*/_react["default"].createElement("p", null, /*#__PURE__*/_react["default"].createElement("b", null, c.contentTitle)), /*#__PURE__*/_react["default"].createElement("p", null, c.content));\n })) : /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("p", null, /*#__PURE__*/_react["default"].createElement("b", null, this.props.contentTitle)), /*#__PURE__*/_react["default"].createElement("p", null, this.props.content))));\n }\n }]);\n }(_react.Component);\n Collapsible.propTypes = {\n showLabel: _propTypes["default"].string.isRequired,\n hideLabel: _propTypes["default"].string.isRequired,\n content: _propTypes["default"].oneOfType([_propTypes["default"].array, _propTypes["default"].string]).isRequired,\n contentTitle: _propTypes["default"].string\n };\n var _default = _exports["default"] = Collapsible;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RyxFQUFFa0IsQ0FBQyxDQUFDQztVQUFhLGdCQUNwQmhCLE1BQUEsWUFBQUMsYUFBQSx5QkFDSUQsTUFBQSxZQUFBQyxhQUFBLFlBQUljLENBQUMsQ0FBQ0MsWUFBZ0IsQ0FDdkIsQ0FBQyxlQUNKaEIsTUFBQSxZQUFBQyxhQUFBLFlBQUljLENBQUMsQ0FBQ1AsT0FBVyxDQUNqQixDQUFDO1FBQUEsQ0FDUixDQUNELENBQUMsZ0JBRUxSLE1BQUEsWUFBQUMsYUFBQSwyQkFDSUQsTUFBQSxZQUFBQyxhQUFBLHlCQUNJRCxNQUFBLFlBQUFDLGFBQUEsWUFBSSxJQUFJLENBQUNuQixLQUFLLENBQUNrQyxZQUFnQixDQUNoQyxDQUFDLGVBQ0poQixNQUFBLFlBQUFDLGFBQUEsWUFBSSxJQUFJLENBQUNuQixLQUFLLENBQUMwQixPQUFXLENBQ3pCLENBRVIsQ0FDSixDQUFDO01BRWQ7SUFBQztFQUFBLEVBOUVxQlMsZ0JBQVM7RUFpRm5DckMsV0FBVyxDQUFDc0MsU0FBUyxHQUFHO0lBQ3BCZixTQUFTLEVBQUVnQixxQkFBUyxDQUFDQyxNQUFNLENBQUNDLFVBQVU7SUFDdENqQixTQUFTLEVBQUVlLHFCQUFTLENBQUNDLE1BQU0sQ0FBQ0MsVUFBVTtJQUN0Q2IsT0FBTyxFQUFFVyxxQkFBUyxDQUFDRyxTQUFTLENBQUMsQ0FBQ0gscUJBQVMsQ0FBQ0ksS0FBSyxFQUFFSixxQkFBUyxDQUFDQyxNQUFNLENBQUMsQ0FBQyxDQUM1REMsVUFBVTtJQUNmTCxZQUFZLEVBQUVHLHFCQUFTLENBQUNDO0VBQzVCLENBQUM7RUFBQyxJQUFBSSxRQUFBLEdBQUFDLFFBQUEsY0FFYTdDLFdBQVc7QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9FcnJvci9Db2xsYXBzaWJsZS5qc3g/NTU5YSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5cbmNsYXNzIENvbGxhcHNpYmxlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIGlzRXhwYW5kZWQ6IGZhbHNlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuX3RvZ2dsZUV4cGFuZGVkID0gdGhpcy50b2dnbGVFeHBhbmRlZC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLl9yZW5kZXJTaG93QnV0dG9uID0gdGhpcy5yZW5kZXJTaG93QnV0dG9uLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuX3JlbmRlckhpZGVCdXR0b24gPSB0aGlzLnJlbmRlckhpZGVCdXR0b24uYmluZCh0aGlzKTtcbiAgICB9XG5cbiAgICB0b2dnbGVFeHBhbmRlZCgpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBpc0V4cGFuZGVkOiAhdGhpcy5zdGF0ZS5pc0V4cGFuZGVkLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZW5kZXJTaG93QnV0dG9uKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiY29sbGFwc2libGUtc2hvdy1sYWJlbFwiPlxuICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLnNob3dMYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZW5kZXJIaWRlQnV0dG9uKCkge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5oaWRlTGFiZWwpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiY29sbGFwc2libGUtaGlkZS1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5oaWRlTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheSh0aGlzLnByb3BzLmNvbnRlbnQpO1xuICAgICAgICBjb25zdCBpc0hpZGRlbiA9IHRoaXMuc3RhdGUuaXNFeHBhbmRlZCA/IHVuZGVmaW5lZCA6IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sbGFwc2libGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLl90b2dnbGVFeHBhbmRlZH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiY29sbGFwc2libGUtc3VtbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXt0aGlzLnN0YXRlLmlzRXhwYW5kZWQgPyB0cnVlIDogZmFsc2V9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5fcmVuZGVyU2hvd0J1dHRvbigpfVxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5fcmVuZGVySGlkZUJ1dHRvbigpfVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xsYXBzaWJsZS1kZXRhaWxzXCIgaGlkZGVuPXtpc0hpZGRlbn0+XG4gICAgICAgICAgICAgICAgICAgIHtpc0FycmF5ID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cIml0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3RoaXMucHJvcHMuY29udGVudC5tYXAoKGMpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGtleT17Yy5jb250ZW50VGl0bGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+e2MuY29udGVudFRpdGxlfTwvYj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPntjLmNvbnRlbnR9PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiPnt0aGlzLnByb3BzLmNvbnRlbnRUaXRsZX08L2I+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt0aGlzLnByb3BzLmNvbnRlbnR9PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cbkNvbGxhcHNpYmxlLnByb3BUeXBlcyA9IHtcbiAgICBzaG93TGFiZWw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBoaWRlTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBjb250ZW50OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXksIFByb3BUeXBlcy5zdHJpbmddKVxuICAgICAgICAuaXNSZXF1aXJlZCxcbiAgICBjb250ZW50VGl0bGU6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb2xsYXBzaWJsZTtcbiJdLCJuYW1lcyI6WyJDb2xsYXBzaWJsZSIsIl9Db21wb25lbnQiLCJwcm9wcyIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2NhbGxTdXBlciIsInN0YXRlIiwiaXNFeHBhbmRlZCIsIl90b2dnbGVFeHBhbmRlZCIsInRvZ2dsZUV4cGFuZGVkIiwiYmluZCIsIl9yZW5kZXJTaG93QnV0dG9uIiwicmVuZGVyU2hvd0J1dHRvbiIsIl9yZW5kZXJIaWRlQnV0dG9uIiwicmVuZGVySGlkZUJ1dHRvbiIsIl9pbmhlcml0cyIsIl9jcmVhdGVDbGFzcyIsImtleSIsInZhbHVlIiwic2V0U3RhdGUiLCJfcmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwic2hvd0xhYmVsIiwiaGlkZUxhYmVsIiwicmVuZGVyIiwiaXNBcnJheSIsIkFycmF5IiwiY29udGVudCIsImlzSGlkZGVuIiwidW5kZWZpbmVkIiwib25DbGljayIsInR5cGUiLCJoaWRkZW4iLCJtYXAiLCJjIiwiY29udGVudFRpdGxlIiwiQ29tcG9uZW50IiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsIm9uZU9mVHlwZSIsImFycmF5IiwiX2RlZmF1bHQiLCJfZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///172\n')},888:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(172), __webpack_require__(556)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _Collapsible, _propTypes) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireDefault(_react);\n _Collapsible = _interopRequireDefault(_Collapsible);\n _propTypes = _interopRequireDefault(_propTypes);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n var ErrorUI = function ErrorUI(props) {\n var errorTitle = "".concat(props.type || "Error", " ").concat(props.code || "");\n var errorDetails = props.message;\n return /*#__PURE__*/_react["default"].createElement("section", {\n className: "page-error"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "responsive-container"\n }, /*#__PURE__*/_react["default"].createElement("h1", null, "We\\u2019re sorry."), /*#__PURE__*/_react["default"].createElement("p", {\n className: "h2"\n }, "We cannot access this page."), /*#__PURE__*/_react["default"].createElement(_Collapsible["default"], {\n showLabel: "Open technical details about the error",\n hideLabel: "Close technical details about the error",\n contentTitle: errorTitle,\n content: errorDetails\n })));\n };\n ErrorUI.propTypes = {\n code: _propTypes["default"].string,\n message: _propTypes["default"].oneOfType([_propTypes["default"].array, _propTypes["default"].string]),\n type: _propTypes["default"].string\n };\n var _default = _exports["default"] = ErrorUI;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODg4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUlBLElBQU1BLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFJQyxLQUFLLEVBQUs7SUFDdkIsSUFBSUMsVUFBVSxNQUFBQyxNQUFBLENBQU1GLEtBQUssQ0FBQ0csSUFBSSxJQUFJLE9BQU8sT0FBQUQsTUFBQSxDQUFJRixLQUFLLENBQUNJLElBQUksSUFBSSxFQUFFLENBQUU7SUFDL0QsSUFBSUMsWUFBWSxHQUFHTCxLQUFLLENBQUNNLE9BQU87SUFFaEMsb0JBQ0lDLE1BQUEsWUFBQUMsYUFBQTtNQUFTQyxTQUFTLEVBQUM7SUFBWSxnQkFDM0JGLE1BQUEsWUFBQUMsYUFBQTtNQUFLQyxTQUFTLEVBQUM7SUFBc0IsZ0JBQ2pDRixNQUFBLFlBQUFDLGFBQUEsYUFBSSxtQkFBZ0IsQ0FBQyxlQUNyQkQsTUFBQSxZQUFBQyxhQUFBO01BQUdDLFNBQVMsRUFBQztJQUFJLEdBQUMsNkJBQThCLENBQUMsZUFDakRGLE1BQUEsWUFBQUMsYUFBQSxDQUFDRSxZQUFBLFdBQVc7TUFDUkMsU0FBUyxFQUFDLHdDQUF3QztNQUNsREMsU0FBUyxFQUFDLHlDQUF5QztNQUNuREMsWUFBWSxFQUFFWixVQUFXO01BQ3pCYSxPQUFPLEVBQUVUO0lBQWEsQ0FDekIsQ0FDQSxDQUNBLENBQUM7RUFFbEIsQ0FBQztFQUVETixPQUFPLENBQUNnQixTQUFTLEdBQUc7SUFDaEJYLElBQUksRUFBRVkscUJBQVMsQ0FBQ0MsTUFBTTtJQUN0QlgsT0FBTyxFQUFFVSxxQkFBUyxDQUFDRSxTQUFTLENBQUMsQ0FBQ0YscUJBQVMsQ0FBQ0csS0FBSyxFQUFFSCxxQkFBUyxDQUFDQyxNQUFNLENBQUMsQ0FBQztJQUNqRWQsSUFBSSxFQUFFYSxxQkFBUyxDQUFDQztFQUNwQixDQUFDO0VBQUMsSUFBQUcsUUFBQSxHQUFBQyxRQUFBLGNBRWF0QixPQUFPO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvRXJyb3IvRXJyb3JVSS5qc3g/ZjRjZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgQ29sbGFwc2libGUgZnJvbSBcIi4vQ29sbGFwc2libGVcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIjtcblxuY29uc3QgRXJyb3JVSSA9IChwcm9wcykgPT4ge1xuICAgIGxldCBlcnJvclRpdGxlID0gYCR7cHJvcHMudHlwZSB8fCBcIkVycm9yXCJ9ICR7cHJvcHMuY29kZSB8fCBcIlwifWA7XG4gICAgbGV0IGVycm9yRGV0YWlscyA9IHByb3BzLm1lc3NhZ2U7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJwYWdlLWVycm9yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlc3BvbnNpdmUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGgxPldl4oCZcmUgc29ycnkuPC9oMT5cbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJoMlwiPldlIGNhbm5vdCBhY2Nlc3MgdGhpcyBwYWdlLjwvcD5cbiAgICAgICAgICAgICAgICA8Q29sbGFwc2libGVcbiAgICAgICAgICAgICAgICAgICAgc2hvd0xhYmVsPVwiT3BlbiB0ZWNobmljYWwgZGV0YWlscyBhYm91dCB0aGUgZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgICBoaWRlTGFiZWw9XCJDbG9zZSB0ZWNobmljYWwgZGV0YWlscyBhYm91dCB0aGUgZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgICBjb250ZW50VGl0bGU9e2Vycm9yVGl0bGV9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ9e2Vycm9yRGV0YWlsc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICApO1xufTtcblxuRXJyb3JVSS5wcm9wVHlwZXMgPSB7XG4gICAgY29kZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBtZXNzYWdlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXksIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRXJyb3JVSTtcbiJdLCJuYW1lcyI6WyJFcnJvclVJIiwicHJvcHMiLCJlcnJvclRpdGxlIiwiY29uY2F0IiwidHlwZSIsImNvZGUiLCJlcnJvckRldGFpbHMiLCJtZXNzYWdlIiwiX3JlYWN0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIl9Db2xsYXBzaWJsZSIsInNob3dMYWJlbCIsImhpZGVMYWJlbCIsImNvbnRlbnRUaXRsZSIsImNvbnRlbnQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJvbmVPZlR5cGUiLCJhcnJheSIsIl9kZWZhdWx0IiwiX2V4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///888\n')},694:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }\n(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(763), __webpack_require__(888)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _reactDom, _ErrorUI) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireDefault(_react);\n _ErrorUI = _interopRequireDefault(_ErrorUI);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\n function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }\n function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }\n function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }\n function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }\n /**\n * Renders the QPP Error Page content.\n */\n var ErrorPage = _exports["default"] = /*#__PURE__*/_createClass(\n /**\n * @param {Object} options - An object containing content and config data\n * @param {String} options.type - The error type\n * @param {String} options.code - The error code\n * @param {String} options.message - The error message\n * @param {HTMLElement} options.rootElement - Elem inside which to render\n */\n function ErrorPage(options) {\n _classCallCheck(this, ErrorPage);\n (0, _reactDom.render)(/*#__PURE__*/_react["default"].createElement(_ErrorUI["default"], {\n type: options.type,\n code: options.code,\n message: options.message\n }), options.rootElement);\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjk0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBSUE7QUFDQTtBQUNBO0VBRkEsSUFHcUJBLFNBQVMsR0FBQUMsUUFBQSwyQkFBQUMsWUFBQTtFQUMxQjtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNJLFNBQUFGLFVBQVlHLE9BQU8sRUFBRTtJQUFBQyxlQUFBLE9BQUFKLFNBQUE7SUFDakIsSUFBQUssZ0JBQU0sZUFDRkMsTUFBQSxZQUFBQyxhQUFBLENBQUNDLFFBQUEsV0FBTztNQUNKQyxJQUFJLEVBQUVOLE9BQU8sQ0FBQ00sSUFBSztNQUNuQkMsSUFBSSxFQUFFUCxPQUFPLENBQUNPLElBQUs7TUFDbkJDLE9BQU8sRUFBRVIsT0FBTyxDQUFDUTtJQUFRLENBQzVCLENBQUMsRUFDRlIsT0FBTyxDQUFDUyxXQUNaLENBQUM7RUFDTCxDQUFDO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvRXJyb3IvZXJyb3IuanM/ZjBjMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgRXJyb3JVSSBmcm9tIFwiLi9FcnJvclVJXCI7XG5cbi8qKlxuICogUmVuZGVycyB0aGUgUVBQIEVycm9yIFBhZ2UgY29udGVudC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXJyb3JQYWdlIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIEFuIG9iamVjdCBjb250YWluaW5nIGNvbnRlbnQgYW5kIGNvbmZpZyBkYXRhXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG9wdGlvbnMudHlwZSAtIFRoZSBlcnJvciB0eXBlXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG9wdGlvbnMuY29kZSAtIFRoZSBlcnJvciBjb2RlXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG9wdGlvbnMubWVzc2FnZSAtIFRoZSBlcnJvciBtZXNzYWdlXG4gICAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gb3B0aW9ucy5yb290RWxlbWVudCAtIEVsZW0gaW5zaWRlIHdoaWNoIHRvIHJlbmRlclxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgcmVuZGVyKFxuICAgICAgICAgICAgPEVycm9yVUlcbiAgICAgICAgICAgICAgICB0eXBlPXtvcHRpb25zLnR5cGV9XG4gICAgICAgICAgICAgICAgY29kZT17b3B0aW9ucy5jb2RlfVxuICAgICAgICAgICAgICAgIG1lc3NhZ2U9e29wdGlvbnMubWVzc2FnZX1cbiAgICAgICAgICAgIC8+LFxuICAgICAgICAgICAgb3B0aW9ucy5yb290RWxlbWVudFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJFcnJvclBhZ2UiLCJfZXhwb3J0cyIsIl9jcmVhdGVDbGFzcyIsIm9wdGlvbnMiLCJfY2xhc3NDYWxsQ2hlY2siLCJyZW5kZXIiLCJfcmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiX0Vycm9yVUkiLCJ0eXBlIiwiY29kZSIsIm1lc3NhZ2UiLCJyb290RWxlbWVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///694\n')},756:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(556), __webpack_require__(193)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _propTypes, _LegacyFooterUI) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireDefault(_react);\n _propTypes = _interopRequireDefault(_propTypes);\n _LegacyFooterUI = _interopRequireDefault(_LegacyFooterUI);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }\n function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\n function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\n function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }\n function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }\n var FooterUI = function FooterUI(props) {\n var isNewFooter = props.isNewFooter;\n var isIESupportPage = props.isIESupportPage;\n var signUpNowLink = props.showHcdResearch ? "/about/hcd-research" : "mailto:madie@cms.hhs.gov?subject=Sign up for feedback sessions";\n\n // Default footer assets\n var assets = _objectSpread(_objectSpread({}, {\n hhsLogo: /*#__PURE__*/_react["default"].createElement("img", {\n className: "hhs-logo",\n alt: "Department of Health & Human Services USA",\n src: "/images/hhs-logo-black.svg"\n }),\n madieLogo: /*#__PURE__*/_react["default"].createElement("img", {\n className: "qpp-logo",\n src: "/images/qpp_logo_rgb_color.png",\n alt: "MADiE Measure Authoring Development Integrated Environment logo"\n })\n }), props.assets);\n var setLink = function setLink(link) {\n return isIESupportPage ? "/" : link;\n };\n if (isNewFooter) {\n return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, !isIESupportPage && /*#__PURE__*/_react["default"].createElement("div", {\n className: "feedback-session-sign-up"\n }), /*#__PURE__*/_react["default"].createElement("footer", {\n "aria-label": "Site footer",\n className: "global-footer"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "build-version",\n id: "build-version"\n }, props.buildVersion), /*#__PURE__*/_react["default"].createElement("div", {\n className: "responsive-container"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "other-links"\n }, /*#__PURE__*/_react["default"].createElement("hr", {\n className: "divider-top"\n }), /*#__PURE__*/_react["default"].createElement("ul", {\n className: "small"\n }, /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: setLink("https://harp.cms.gov/login/terms-of-use"),\n "aria-label": "Terms of Use",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenTermsOfService",\n "data-track-label": "Terms of Use"\n }, "Terms of Use")), /*#__PURE__*/_react["default"].createElement("li", {\n className: "divider"\n }), " ", /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: setLink("https://www.cms.gov/privacy"),\n "aria-label": "Privacy Policy",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenPrivacyPolicy",\n "data-track-label": "Privacy Policy"\n }, "Privacy Policy")), /*#__PURE__*/_react["default"].createElement("li", {\n className: "divider"\n }), " ", /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: setLink("https://www.hhs.gov/web/governance/digital-strategy/it-policy-archive/hhs-rules-of-behavior-for-the-use-of-hhs-information-and-it-resources-policy.html"),\n "aria-label": "Rules of Behavior",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenRulesofBehavior",\n "data-track-label": "Rules of Behavior"\n }, "Rules of Behavior"))), /*#__PURE__*/_react["default"].createElement("hr", {\n className: "divider-bottom"\n })), /*#__PURE__*/_react["default"].createElement("div", {\n className: "qpp-hhs-logo-container"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "qpp-logo-container"\n }, assets.qppLogo), /*#__PURE__*/_react["default"].createElement("div", {\n className: "hhs-logo-container"\n }, assets.hhsLogo, /*#__PURE__*/_react["default"].createElement("p", null, "A federal government website managed and paid for by the U.S Centers for Medicare & Medicaid Services. 7500 Security Boulevard, Baltimore MD 21244"))))));\n }\n return /*#__PURE__*/_react["default"].createElement(_LegacyFooterUI["default"], {\n buildVersion: props.buildVersion,\n isFullWidth: props.isFullWidth,\n signUpNowLink: signUpNowLink\n });\n };\n FooterUI.propTypes = {\n buildVersion: _propTypes["default"].string,\n isFullWidth: _propTypes["default"].bool,\n isNewFooter: _propTypes["default"].bool,\n isIESupportPage: _propTypes["default"].bool,\n showHcdResearch: _propTypes["default"].bool,\n assets: _propTypes["default"].shape({\n cmsLogo: _propTypes["default"].element,\n madieLogo: _propTypes["default"].element\n })\n };\n var _default = _exports["default"] = FooterUI;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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ZS8uL2NvbXBvbmVudHMvRm9vdGVyL0Zvb3RlclVJLmpzeD9jZDhiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIjtcblxuaW1wb3J0IExlZ2FjeUZvb3RlclVJIGZyb20gXCIuL0xlZ2FjeUZvb3RlclVJXCI7XG5cbmNvbnN0IEZvb3RlclVJID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgaXNOZXdGb290ZXIgPSBwcm9wcy5pc05ld0Zvb3RlcjtcbiAgICBjb25zdCBpc0lFU3VwcG9ydFBhZ2UgPSBwcm9wcy5pc0lFU3VwcG9ydFBhZ2U7XG4gICAgY29uc3Qgc2lnblVwTm93TGluayA9IHByb3BzLnNob3dIY2RSZXNlYXJjaFxuICAgICAgICA/IFwiL2Fib3V0L2hjZC1yZXNlYXJjaFwiXG4gICAgICAgIDogXCJtYWlsdG86bWFkaWVAY21zLmhocy5nb3Y/c3ViamVjdD1TaWduIHVwIGZvciBmZWVkYmFjayBzZXNzaW9uc1wiO1xuXG4gICAgLy8gRGVmYXVsdCBmb290ZXIgYXNzZXRzXG4gICAgY29uc3QgYXNzZXRzID0ge1xuICAgICAgICAuLi57XG4gICAgICAgICAgICBoaHNMb2dvOiAoXG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoaHMtbG9nb1wiXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIkRlcGFydG1lbnQgb2YgSGVhbHRoICZhbXA7IEh1bWFuIFNlcnZpY2VzIFVTQVwiXG4gICAgICAgICAgICAgICAgICAgIHNyYz1cIi9pbWFnZXMvaGhzLWxvZ28tYmxhY2suc3ZnXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1hZGllTG9nbzogKFxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicXBwLWxvZ29cIlxuICAgICAgICAgICAgICAgICAgICBzcmM9XCIvaW1hZ2VzL3FwcF9sb2dvX3JnYl9jb2xvci5wbmdcIlxuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJNQURpRSBNZWFzdXJlIEF1dGhvcmluZyBEZXZlbG9wbWVudCBJbnRlZ3JhdGVkIEVudmlyb25tZW50IGxvZ29cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICAuLi5wcm9wcy5hc3NldHMsXG4gICAgfTtcblxuICAgIGNvbnN0IHNldExpbmsgPSAobGluaykgPT4ge1xuICAgICAgICByZXR1cm4gaXNJRVN1cHBvcnRQYWdlID8gXCIvXCIgOiBsaW5rO1xuICAgIH07XG5cbiAgICBpZiAoaXNOZXdGb290ZXIpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgeyFpc0lFU3VwcG9ydFBhZ2UgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZlZWRiYWNrLXNlc3Npb24tc2lnbi11cFwiIC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8Zm9vdGVyIGFyaWEtbGFiZWw9XCJTaXRlIGZvb3RlclwiIGNsYXNzTmFtZT1cImdsb2JhbC1mb290ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidWlsZC12ZXJzaW9uXCIgaWQ9XCJidWlsZC12ZXJzaW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cHJvcHMuYnVpbGRWZXJzaW9ufVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlc3BvbnNpdmUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm90aGVyLWxpbmtzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzTmFtZT1cImRpdmlkZXItdG9wXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwic21hbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtzZXRMaW5rKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImh0dHBzOi8vaGFycC5jbXMuZ292L2xvZ2luL3Rlcm1zLW9mLXVzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiVGVybXMgb2YgVXNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIk9wZW5UZXJtc09mU2VydmljZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIlRlcm1zIG9mIFVzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVybXMgb2YgVXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJkaXZpZGVyXCI+PC9saT57XCIgXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17c2V0TGluayhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJodHRwczovL3d3dy5jbXMuZ292L3ByaXZhY3lcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlByaXZhY3kgUG9saWN5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIk9wZW5Qcml2YWN5UG9saWN5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiUHJpdmFjeSBQb2xpY3lcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaXZhY3kgUG9saWN5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJkaXZpZGVyXCI+PC9saT57XCIgXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17c2V0TGluayhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJodHRwczovL3d3dy5oaHMuZ292L3dlYi9nb3Zlcm5hbmNlL2RpZ2l0YWwtc3RyYXRlZ3kvaXQtcG9saWN5LWFyY2hpdmUvaGhzLXJ1bGVzLW9mLWJlaGF2aW9yLWZvci10aGUtdXNlLW9mLWhocy1pbmZvcm1hdGlvbi1hbmQtaXQtcmVzb3VyY2VzLXBvbGljeS5odG1sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJSdWxlcyBvZiBCZWhhdmlvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuUnVsZXNvZkJlaGF2aW9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiUnVsZXMgb2YgQmVoYXZpb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVzIG9mIEJlaGF2aW9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3NOYW1lPVwiZGl2aWRlci1ib3R0b21cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInFwcC1oaHMtbG9nby1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInFwcC1sb2dvLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YXNzZXRzLnFwcExvZ299XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoaHMtbG9nby1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Fzc2V0cy5oaHNMb2dvfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgZmVkZXJhbCBnb3Zlcm5tZW50IHdlYnNpdGUgbWFuYWdlZCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhaWQgZm9yIGJ5IHRoZSBVLlMgQ2VudGVycyBmb3IgTWVkaWNhcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhbXA7IE1lZGljYWlkIFNlcnZpY2VzLiA3NTAwIFNlY3VyaXR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCb3VsZXZhcmQsIEJhbHRpbW9yZSBNRCAyMTI0NFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9mb290ZXI+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgICAgPExlZ2FjeUZvb3RlclVJXG4gICAgICAgICAgICBidWlsZFZlcnNpb249e3Byb3BzLmJ1aWxkVmVyc2lvbn1cbiAgICAgICAgICAgIGlzRnVsbFdpZHRoPXtwcm9wcy5pc0Z1bGxXaWR0aH1cbiAgICAgICAgICAgIHNpZ25VcE5vd0xpbms9e3NpZ25VcE5vd0xpbmt9XG4gICAgICAgIC8+XG4gICAgKTtcbn07XG5cbkZvb3RlclVJLnByb3BUeXBlcyA9IHtcbiAgICBidWlsZFZlcnNpb246IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgaXNGdWxsV2lkdGg6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzTmV3Rm9vdGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc0lFU3VwcG9ydFBhZ2U6IFByb3BUeXBlcy5ib29sLFxuICAgIHNob3dIY2RSZXNlYXJjaDogUHJvcFR5cGVzLmJvb2wsXG4gICAgYXNzZXRzOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgICBjbXNMb2dvOiBQcm9wVHlwZXMuZWxlbWVudCxcbiAgICAgICAgbWFkaWVMb2dvOiBQcm9wVHlwZXMuZWxlbWVudCxcbiAgICB9KSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEZvb3RlclVJO1xuIl0sIm5hbWVzIjpbIkZvb3RlclVJIiwicHJvcHMiLCJpc05ld0Zvb3RlciIsImlzSUVTdXBwb3J0UGFnZSIsInNpZ25VcE5vd0xpbmsiLCJzaG93SGNkUmVzZWFyY2giLCJhc3NldHMiLCJfb2JqZWN0U3ByZWFkIiwiaGhzTG9nbyIsIl9yZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJhbHQiLCJzcmMiLCJtYWRpZUxvZ28iLCJzZXRMaW5rIiwibGluayIsIkZyYWdtZW50IiwiaWQiLCJidWlsZFZlcnNpb24iLCJocmVmIiwicXBwTG9nbyIsIl9MZWdhY3lGb290ZXJVSSIsImlzRnVsbFdpZHRoIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiYm9vbCIsInNoYXBlIiwiY21zTG9nbyIsImVsZW1lbnQiLCJfZGVmYXVsdCIsIl9leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///756\n')},193:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(556), __webpack_require__(877)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _propTypes, _Infotip) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireDefault(_react);\n _propTypes = _interopRequireDefault(_propTypes);\n _Infotip = _interopRequireDefault(_Infotip);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n var infoTipLabel = "When dialing 711, you will automatically be connected to a TRS Communications Assistant who will relay your conversation to the help desk agent with strict confidentiality.";\n var LegacyFooterUI = function LegacyFooterUI(_ref) {\n var buildVersion = _ref.buildVersion,\n isFullWidth = _ref.isFullWidth,\n signUpNowLink = _ref.signUpNowLink;\n return /*#__PURE__*/_react["default"].createElement("footer", {\n className: "legacy-footer"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "build-version",\n id: "build-version"\n }, buildVersion), /*#__PURE__*/_react["default"].createElement("div", {\n className: "banner"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: isFullWidth ? "container-full-width" : "responsive-container"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "row"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "col-sm-12 col-md-12 col-lg-12"\n }, /*#__PURE__*/_react["default"].createElement("span", null, "Help shape the future of MADiE"), " by participating in user feedback sessions.", " ", /*#__PURE__*/_react["default"].createElement("a", {\n className: "email-note-link",\n href: signUpNowLink\n }, "Send us an email to sign up"))))), /*#__PURE__*/_react["default"].createElement("div", {\n className: isFullWidth ? "container-full-width" : "responsive-container"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "row"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: isFullWidth ? "col-sm-12 col-md-8 col-lg-8" : "col-sm-8 col-md-9 col-lg-9"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "logo-container"\n }, /*#__PURE__*/_react["default"].createElement("img", {\n src: "/images/qpp_logo_reversed.png",\n alt: "Quality Payment Program",\n className: "qpp-logo"\n }), /*#__PURE__*/_react["default"].createElement("div", {\n className: "social-container"\n }, /*#__PURE__*/_react["default"].createElement("a", {\n rel: "noopener noreferrer",\n target: "_blank",\n className: "social-link",\n href: "https://twitter.com/CMSGov",\n "aria-label": "Follow us on Twitter. This link opens in a new window."\n }, /*#__PURE__*/_react["default"].createElement("span", {\n className: "glyphicon glyphicon-twitter"\n })), /*#__PURE__*/_react["default"].createElement("a", {\n rel: "noopener noreferrer",\n target: "_blank",\n className: "social-link",\n href: "https://www.youtube.com/playlist?list=PLaV7m2-zFKpj_6fBsqav6GvFzzq9oOpkk",\n "aria-label": "Follow us on YouTube. This link opens in a new window."\n }, /*#__PURE__*/_react["default"].createElement("span", {\n className: "glyphicon glyphicon-youtube"\n })))), /*#__PURE__*/_react["default"].createElement("div", {\n className: "links"\n }, /*#__PURE__*/_react["default"].createElement("ul", null, /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: "/developers",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenDeveloperTools",\n "data-track-label": "Quality Payment Program"\n }, "Developer Tools")), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: "/about/resource-library",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenEducationAndTools",\n "data-track-label": "Education and Tools"\n }, "Resource Library")), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: "/glossary",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenGlossary",\n "data-track-label": "Glossary"\n }, "Glossary")), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: "/resources/help-and-support",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenHelpAndSupport",\n "data-track-label": "Help and Support"\n }, "Help and Support"))), /*#__PURE__*/_react["default"].createElement("ul", {\n className: "small"\n }, /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: "https://www.cms.gov/privacy",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenPrivacyDisclaimer",\n "data-track-label": "Notice of Privacy and Disclaimer"\n }, "CMS Privacy Notice")), /*#__PURE__*/_react["default"].createElement("span", {\n className: "divider"\n }), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: "https://www.cms.gov/About-CMS/Agency-Information/Aboutwebsite/Policiesforaccessibility",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenAccessibility",\n "data-track-label": "Accessibility"\n }, "Accessibility")), /*#__PURE__*/_react["default"].createElement("span", {\n className: "divider"\n }), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n className: "adobe-link",\n rel: "noopener noreferrer",\n target: "_blank",\n href: "https://get.adobe.com/reader",\n "data-track-category": "FooterNav",\n "data-track-action": "DownloadAdobeReader",\n "data-track-label": "AdobeReader"\n }, /*#__PURE__*/_react["default"].createElement("svg", {\n className: "icon"\n }, /*#__PURE__*/_react["default"].createElement("use", {\n xlinkHref: "#icon-download"\n })), "Download Adobe Reader")), /*#__PURE__*/_react["default"].createElement("span", {\n className: "divider"\n }), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: "mailto:sb-mat-help@semanticbits.com",\n className: "email-link"\n }, "sb-mat-help@semanticbits.com")), /*#__PURE__*/_react["default"].createElement("li", null, "1-866-288-8292 (TRS: 711)", /*#__PURE__*/_react["default"].createElement("div", {\n className: "footer-trs-infotip"\n }, /*#__PURE__*/_react["default"].createElement(_Infotip["default"], {\n lightIcon: true,\n label: infoTipLabel\n })))))), /*#__PURE__*/_react["default"].createElement("div", {\n className: isFullWidth ? "col-sm-12 col-md-4 col-lg-4" : "col-sm-4 col-md-3 col-lg-3"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "hhs-logo-container"\n }, /*#__PURE__*/_react["default"].createElement("img", {\n alt: "Department of Health & Human Services USA",\n src: "/images/hhs-logo-white.svg"\n }))))));\n };\n LegacyFooterUI.propTypes = {\n buildVersion: _propTypes["default"].string,\n isFullWidth: _propTypes["default"].bool,\n signUpNowLink: _propTypes["default"].string\n };\n var _default = _exports["default"] = LegacyFooterUI;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFJO0lBQzNCakIsYUFBYSxFQUFFZSxxQkFBUyxDQUFDQztFQUM3QixDQUFDO0VBQUMsSUFBQUUsUUFBQSxHQUFBQyxRQUFBLGNBRWF2QixjQUFjO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvRm9vdGVyL0xlZ2FjeUZvb3RlclVJLmpzeD84ZWM5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIjtcbmltcG9ydCBJbmZvVGlwIGZyb20gXCIuLi9JbmZvdGlwL0luZm90aXBcIjtcblxuY29uc3QgaW5mb1RpcExhYmVsID1cbiAgICBcIldoZW4gZGlhbGluZyA3MTEsIHlvdSB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgY29ubmVjdGVkIHRvIGEgVFJTIENvbW11bmljYXRpb25zIEFzc2lzdGFudCB3aG8gd2lsbCByZWxheSB5b3VyIGNvbnZlcnNhdGlvbiB0byB0aGUgaGVscCBkZXNrIGFnZW50IHdpdGggc3RyaWN0IGNvbmZpZGVudGlhbGl0eS5cIjtcblxuY29uc3QgTGVnYWN5Rm9vdGVyVUkgPSAoeyBidWlsZFZlcnNpb24sIGlzRnVsbFdpZHRoLCBzaWduVXBOb3dMaW5rIH0pID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8Zm9vdGVyIGNsYXNzTmFtZT1cImxlZ2FjeS1mb290ZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnVpbGQtdmVyc2lvblwiIGlkPVwiYnVpbGQtdmVyc2lvblwiPlxuICAgICAgICAgICAgICAgIHtidWlsZFZlcnNpb259XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmFubmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNGdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiY29udGFpbmVyLWZ1bGwtd2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJyZXNwb25zaXZlLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1zbS0xMiBjb2wtbWQtMTIgY29sLWxnLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+SGVscCBzaGFwZSB0aGUgZnV0dXJlIG9mIE1BRGlFPC9zcGFuPiBieVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpY2lwYXRpbmcgaW4gdXNlciBmZWVkYmFjayBzZXNzaW9ucy57XCIgXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwiZW1haWwtbm90ZS1saW5rXCIgaHJlZj17c2lnblVwTm93TGlua30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbmQgdXMgYW4gZW1haWwgdG8gc2lnbiB1cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgICAgICAgICAgIGlzRnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiY29udGFpbmVyLWZ1bGwtd2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBcInJlc3BvbnNpdmUtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Z1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiY29sLXNtLTEyIGNvbC1tZC04IGNvbC1sZy04XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcImNvbC1zbS04IGNvbC1tZC05IGNvbC1sZy05XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2dvLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2ltYWdlcy9xcHBfbG9nb19yZXZlcnNlZC5wbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJRdWFsaXR5IFBheW1lbnQgUHJvZ3JhbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInFwcC1sb2dvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic29jaWFsLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic29jaWFsLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vdHdpdHRlci5jb20vQ01TR292XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJGb2xsb3cgdXMgb24gVHdpdHRlci4gVGhpcyBsaW5rIG9wZW5zIGluIGEgbmV3IHdpbmRvdy5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJnbHlwaGljb24gZ2x5cGhpY29uLXR3aXR0ZXJcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNvY2lhbC1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMYVY3bTItekZLcGpfNmZCc3FhdjZHdkZ6enE5b09wa2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkZvbGxvdyB1cyBvbiBZb3VUdWJlLiBUaGlzIGxpbmsgb3BlbnMgaW4gYSBuZXcgd2luZG93LlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImdseXBoaWNvbiBnbHlwaGljb24teW91dHViZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmtzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvZGV2ZWxvcGVyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuRGV2ZWxvcGVyVG9vbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJRdWFsaXR5IFBheW1lbnQgUHJvZ3JhbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2ZWxvcGVyIFRvb2xzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi9hYm91dC9yZXNvdXJjZS1saWJyYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIk9wZW5FZHVjYXRpb25BbmRUb29sc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIkVkdWNhdGlvbiBhbmQgVG9vbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlIExpYnJhcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL2dsb3NzYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIk9wZW5HbG9zc2FyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIkdsb3NzYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHbG9zc2FyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvcmVzb3VyY2VzL2hlbHAtYW5kLXN1cHBvcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiT3BlbkhlbHBBbmRTdXBwb3J0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiSGVscCBhbmQgU3VwcG9ydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVscCBhbmQgU3VwcG9ydFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cInNtYWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3LmNtcy5nb3YvcHJpdmFjeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuUHJpdmFjeURpc2NsYWltZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJOb3RpY2Ugb2YgUHJpdmFjeSBhbmQgRGlzY2xhaW1lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01TIFByaXZhY3kgTm90aWNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRpdmlkZXJcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3LmNtcy5nb3YvQWJvdXQtQ01TL0FnZW5jeS1JbmZvcm1hdGlvbi9BYm91dHdlYnNpdGUvUG9saWNpZXNmb3JhY2Nlc3NpYmlsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIk9wZW5BY2Nlc3NpYmlsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiQWNjZXNzaWJpbGl0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjZXNzaWJpbGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkaXZpZGVyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImFkb2JlLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vZ2V0LmFkb2JlLmNvbS9yZWFkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiRG93bmxvYWRBZG9iZVJlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIkFkb2JlUmVhZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzTmFtZT1cImljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjaWNvbi1kb3dubG9hZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG93bmxvYWQgQWRvYmUgUmVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRpdmlkZXJcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIm1haWx0bzpzYi1tYXQtaGVscEBzZW1hbnRpY2JpdHMuY29tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJlbWFpbC1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYi1tYXQtaGVscEBzZW1hbnRpY2JpdHMuY29tXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEtODY2LTI4OC04MjkyIChUUlM6IDcxMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9vdGVyLXRycy1pbmZvdGlwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEluZm9UaXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlnaHRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtpbmZvVGlwTGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcImNvbC1zbS0xMiBjb2wtbWQtNCBjb2wtbGctNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJjb2wtc20tNCBjb2wtbWQtMyBjb2wtbGctM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGhzLWxvZ28tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJEZXBhcnRtZW50IG9mIEhlYWx0aCAmYW1wOyBIdW1hbiBTZXJ2aWNlcyBVU0FcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvaW1hZ2VzL2hocy1sb2dvLXdoaXRlLnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvb3Rlcj5cbiAgICApO1xufTtcblxuTGVnYWN5Rm9vdGVyVUkucHJvcFR5cGVzID0ge1xuICAgIGJ1aWxkVmVyc2lvbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBpc0Z1bGxXaWR0aDogUHJvcFR5cGVzLmJvb2wsXG4gICAgc2lnblVwTm93TGluazogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IExlZ2FjeUZvb3RlclVJO1xuIl0sIm5hbWVzIjpbImluZm9UaXBMYWJlbCIsIkxlZ2FjeUZvb3RlclVJIiwiX3JlZiIsImJ1aWxkVmVyc2lvbiIsImlzRnVsbFdpZHRoIiwic2lnblVwTm93TGluayIsIl9yZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJpZCIsImhyZWYiLCJzcmMiLCJhbHQiLCJyZWwiLCJ0YXJnZXQiLCJ4bGlua0hyZWYiLCJfSW5mb3RpcCIsImxpZ2h0SWNvbiIsImxhYmVsIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiYm9vbCIsIl9kZWZhdWx0IiwiX2V4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///193\n')},258:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }\n(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(763), __webpack_require__(756)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _reactDom, _FooterUI) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireDefault(_react);\n _FooterUI = _interopRequireDefault(_FooterUI);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\n function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }\n function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }\n function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }\n function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } /* global buildVersion */ // buildVersion above is defined in webpack.config.js\n /**\n * Renders the QPP Footer content.\n */\n var Footer = _exports["default"] = /*#__PURE__*/_createClass(\n /**\n * @param {Object} options - An object containing content and config data\n * @param {HTMLElement} options.rootElement - Elem inside which to render\n */\n function Footer(options) {\n _classCallCheck(this, Footer);\n if (options.hasOwnProperty("rootElement")) {\n (0, _reactDom.render)(/*#__PURE__*/_react["default"].createElement(_FooterUI["default"], {\n buildVersion: "1.2.40",\n isFullWidth: options.isFullWidth,\n isNewFooter: options.isNewFooter,\n showHcdResearch: options.showHcdResearch\n }), options.rootElement);\n } else {\n (0, _reactDom.render)(/*#__PURE__*/_react["default"].createElement(_FooterUI["default"], {\n buildVersion: "1.2.40"\n }), options);\n }\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjU4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0hBQUEsMEJBQ0E7RUFLQTtBQUNBO0FBQ0E7RUFGQSxJQUdxQkEsTUFBTSxHQUFBQyxRQUFBLDJCQUFBQyxZQUFBO0VBQ3ZCO0FBQ0o7QUFDQTtBQUNBO0VBQ0ksU0FBQUYsT0FBWUcsT0FBTyxFQUFFO0lBQUFDLGVBQUEsT0FBQUosTUFBQTtJQUNqQixJQUFJRyxPQUFPLENBQUNFLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFBRTtNQUN2QyxJQUFBQyxnQkFBTSxlQUNGQyxNQUFBLFlBQUFDLGFBQUEsQ0FBQ0MsU0FBQSxXQUFRO1FBQ0xDLFlBQVksRUFBRUEsUUFBYTtRQUMzQkMsV0FBVyxFQUFFUixPQUFPLENBQUNRLFdBQVk7UUFDakNDLFdBQVcsRUFBRVQsT0FBTyxDQUFDUyxXQUFZO1FBQ2pDQyxlQUFlLEVBQUVWLE9BQU8sQ0FBQ1U7TUFBZ0IsQ0FDNUMsQ0FBQyxFQUNGVixPQUFPLENBQUNXLFdBQ1osQ0FBQztJQUNMLENBQUMsTUFBTTtNQUNILElBQUFSLGdCQUFNLGVBQUNDLE1BQUEsWUFBQUMsYUFBQSxDQUFDQyxTQUFBLFdBQVE7UUFBQ0MsWUFBWSxFQUFFQSxRQUFZQTtNQUFDLENBQUUsQ0FBQyxFQUFFUCxPQUFPLENBQUM7SUFDN0Q7RUFDSixDQUFDO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvRm9vdGVyL2Zvb3Rlci5qcz80OWFlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCBidWlsZFZlcnNpb24gKi9cbi8vIGJ1aWxkVmVyc2lvbiBhYm92ZSBpcyBkZWZpbmVkIGluIHdlYnBhY2suY29uZmlnLmpzXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgRm9vdGVyVUkgZnJvbSBcIi4vRm9vdGVyVUlcIjtcblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBRUFAgRm9vdGVyIGNvbnRlbnQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvb3RlciB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBBbiBvYmplY3QgY29udGFpbmluZyBjb250ZW50IGFuZCBjb25maWcgZGF0YVxuICAgICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IG9wdGlvbnMucm9vdEVsZW1lbnQgLSBFbGVtIGluc2lkZSB3aGljaCB0byByZW5kZXJcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIGlmIChvcHRpb25zLmhhc093blByb3BlcnR5KFwicm9vdEVsZW1lbnRcIikpIHtcbiAgICAgICAgICAgIHJlbmRlcihcbiAgICAgICAgICAgICAgICA8Rm9vdGVyVUlcbiAgICAgICAgICAgICAgICAgICAgYnVpbGRWZXJzaW9uPXtidWlsZFZlcnNpb259XG4gICAgICAgICAgICAgICAgICAgIGlzRnVsbFdpZHRoPXtvcHRpb25zLmlzRnVsbFdpZHRofVxuICAgICAgICAgICAgICAgICAgICBpc05ld0Zvb3Rlcj17b3B0aW9ucy5pc05ld0Zvb3Rlcn1cbiAgICAgICAgICAgICAgICAgICAgc2hvd0hjZFJlc2VhcmNoPXtvcHRpb25zLnNob3dIY2RSZXNlYXJjaH1cbiAgICAgICAgICAgICAgICAvPixcbiAgICAgICAgICAgICAgICBvcHRpb25zLnJvb3RFbGVtZW50XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVuZGVyKDxGb290ZXJVSSBidWlsZFZlcnNpb249e2J1aWxkVmVyc2lvbn0gLz4sIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIkZvb3RlciIsIl9leHBvcnRzIiwiX2NyZWF0ZUNsYXNzIiwib3B0aW9ucyIsIl9jbGFzc0NhbGxDaGVjayIsImhhc093blByb3BlcnR5IiwicmVuZGVyIiwiX3JlYWN0IiwiY3JlYXRlRWxlbWVudCIsIl9Gb290ZXJVSSIsImJ1aWxkVmVyc2lvbiIsImlzRnVsbFdpZHRoIiwiaXNOZXdGb290ZXIiLCJzaG93SGNkUmVzZWFyY2giLCJyb290RWxlbWVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///258\n')},877:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(556), __webpack_require__(225), __webpack_require__(517)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _propTypes, _Tooltip, _InfotipIcon) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireDefault(_react);\n _propTypes = _interopRequireDefault(_propTypes);\n _Tooltip = _interopRequireDefault(_Tooltip);\n _InfotipIcon = _interopRequireDefault(_InfotipIcon);\n var _excluded = ["label", "lightIcon"];\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\n function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\n var BUTTON_SIZE = "16px";\n var buttonStyle = {\n background: "transparent",\n border: 0,\n padding: 0,\n width: BUTTON_SIZE,\n height: BUTTON_SIZE,\n WebkitTouchCallout: "none",\n WebkitUserSelect: "none",\n userSelect: "none"\n };\n\n // Use basic touch handlers for mobile "tap-to-open" ui. Mobile touch\n // is currently not supported by @reach/tooltip; this may change in future.\n // Leverages @reach/tooltip "focus" behavior to open tooltip on tap,\n // and close tooltip on second tap or loss of focus.\n // TODO: We may want to improve this by tracking touch positions to ensure\n // that a \'touchend\' event must be reasonably close to the tooltip target.\n var touchHandlers = {\n onTouchStart: function onTouchStart(e) {\n e.stopPropagation();\n },\n onTouchEnd: function onTouchEnd(e) {\n if (document.activeElement !== e.currentTarget) {\n e.preventDefault();\n e.currentTarget.focus();\n } else {\n e.preventDefault();\n e.currentTarget.blur();\n }\n }\n };\n\n /**\n * Tooltip with styled information icon\n */\n var Infotip = function Infotip(_ref) {\n var label = _ref.label,\n lightIcon = _ref.lightIcon,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], _extends({\n label: label\n }, props), /*#__PURE__*/_react["default"].createElement("button", _extends({\n type: "button",\n "aria-label": "Information",\n style: buttonStyle\n }, touchHandlers), /*#__PURE__*/_react["default"].createElement(_InfotipIcon["default"], {\n lightIcon: lightIcon,\n width: BUTTON_SIZE,\n height: BUTTON_SIZE,\n "aria-hidden": true,\n style: {\n "float": "left"\n }\n })));\n };\n Infotip.propTypes = {\n label: _propTypes["default"].string.isRequired,\n ariaLabel: _propTypes["default"].string,\n lightIcon: _propTypes["default"].bool,\n DEBUG_STYLE: _propTypes["default"].bool\n };\n Infotip.defaultProps = {\n ariaLabel: undefined,\n lightIcon: false,\n DEBUG_STYLE: undefined\n };\n var _default = _exports["default"] = Infotip;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODc3LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBS0EsSUFBTUEsV0FBVyxHQUFHLE1BQU07RUFFMUIsSUFBTUMsV0FBVyxHQUFHO0lBQ2hCQyxVQUFVLEVBQUUsYUFBYTtJQUN6QkMsTUFBTSxFQUFFLENBQUM7SUFDVEMsT0FBTyxFQUFFLENBQUM7SUFDVkMsS0FBSyxFQUFFTCxXQUFXO0lBQ2xCTSxNQUFNLEVBQUVOLFdBQVc7SUFDbkJPLGtCQUFrQixFQUFFLE1BQU07SUFDMUJDLGdCQUFnQixFQUFFLE1BQU07SUFDeEJDLFVBQVUsRUFBRTtFQUNoQixDQUFDOztFQUVEO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLElBQU1DLGFBQWEsR0FBRztJQUNsQkMsWUFBWSxFQUFFLFNBQWRBLFlBQVlBLENBQUdDLENBQUMsRUFBSztNQUNqQkEsQ0FBQyxDQUFDQyxlQUFlLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBQ0RDLFVBQVUsRUFBRSxTQUFaQSxVQUFVQSxDQUFHRixDQUFDLEVBQUs7TUFDZixJQUFJRyxRQUFRLENBQUNDLGFBQWEsS0FBS0osQ0FBQyxDQUFDSyxhQUFhLEVBQUU7UUFDNUNMLENBQUMsQ0FBQ00sY0FBYyxDQUFDLENBQUM7UUFDbEJOLENBQUMsQ0FBQ0ssYUFBYSxDQUFDRSxLQUFLLENBQUMsQ0FBQztNQUMzQixDQUFDLE1BQU07UUFDSFAsQ0FBQyxDQUFDTSxjQUFjLENBQUMsQ0FBQztRQUNsQk4sQ0FBQyxDQUFDSyxhQUFhLENBQUNHLElBQUksQ0FBQyxDQUFDO01BQzFCO0lBQ0o7RUFDSixDQUFDOztFQUVEO0FBQ0E7QUFDQTtFQUNBLElBQU1DLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFBQyxJQUFBO0lBQUEsSUFBTUMsS0FBSyxHQUFBRCxJQUFBLENBQUxDLEtBQUs7TUFBRUMsU0FBUyxHQUFBRixJQUFBLENBQVRFLFNBQVM7TUFBS0MsS0FBSyxHQUFBQyx3QkFBQSxDQUFBSixJQUFBLEVBQUFLLFNBQUE7SUFBQSxvQkFDekNDLE1BQUEsWUFBQUMsYUFBQSxDQUFDQyxRQUFBLFdBQU8sRUFBQUMsUUFBQTtNQUFDUixLQUFLLEVBQUVBO0lBQU0sR0FBS0UsS0FBSyxnQkFDNUJHLE1BQUEsWUFBQUMsYUFBQSxXQUFBRSxRQUFBO01BQ0lDLElBQUksRUFBQyxRQUFRO01BQ2IsY0FBVyxhQUFhO01BQ3hCQyxLQUFLLEVBQUVoQztJQUFZLEdBQ2ZTLGFBQWEsZ0JBRWpCa0IsTUFBQSxZQUFBQyxhQUFBLENBQUNLLFlBQUEsV0FBVztNQUNSVixTQUFTLEVBQUVBLFNBQVU7TUFDckJuQixLQUFLLEVBQUVMLFdBQVk7TUFDbkJNLE1BQU0sRUFBRU4sV0FBWTtNQUNwQixtQkFBVztNQUNYaUMsS0FBSyxFQUFFO1FBQUUsU0FBTztNQUFPO0lBQUUsQ0FDNUIsQ0FDRyxDQUNILENBQUM7RUFBQSxDQUNiO0VBRURaLE9BQU8sQ0FBQ2MsU0FBUyxHQUFHO0lBQ2hCWixLQUFLLEVBQUVhLHFCQUFTLENBQUNDLE1BQU0sQ0FBQ0MsVUFBVTtJQUNsQ0MsU0FBUyxFQUFFSCxxQkFBUyxDQUFDQyxNQUFNO0lBQzNCYixTQUFTLEVBQUVZLHFCQUFTLENBQUNJLElBQUk7SUFDekJDLFdBQVcsRUFBRUwscUJBQVMsQ0FBQ0k7RUFDM0IsQ0FBQztFQUVEbkIsT0FBTyxDQUFDcUIsWUFBWSxHQUFHO0lBQ25CSCxTQUFTLEVBQUVJLFNBQVM7SUFDcEJuQixTQUFTLEVBQUUsS0FBSztJQUNoQmlCLFdBQVcsRUFBRUU7RUFDakIsQ0FBQztFQUFDLElBQUFDLFFBQUEsR0FBQUMsUUFBQSxjQUVheEIsT0FBTztBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9jb21wb25lbnRzL0luZm90aXAvSW5mb3RpcC5qc3g/Y2M4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5pbXBvcnQgVG9vbHRpcCBmcm9tIFwiLi4vVG9vbHRpcFwiO1xuaW1wb3J0IEluZm90aXBJY29uIGZyb20gXCIuL0luZm90aXBJY29uXCI7XG5cbmNvbnN0IEJVVFRPTl9TSVpFID0gXCIxNnB4XCI7XG5cbmNvbnN0IGJ1dHRvblN0eWxlID0ge1xuICAgIGJhY2tncm91bmQ6IFwidHJhbnNwYXJlbnRcIixcbiAgICBib3JkZXI6IDAsXG4gICAgcGFkZGluZzogMCxcbiAgICB3aWR0aDogQlVUVE9OX1NJWkUsXG4gICAgaGVpZ2h0OiBCVVRUT05fU0laRSxcbiAgICBXZWJraXRUb3VjaENhbGxvdXQ6IFwibm9uZVwiLFxuICAgIFdlYmtpdFVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxufTtcblxuLy8gVXNlIGJhc2ljIHRvdWNoIGhhbmRsZXJzIGZvciBtb2JpbGUgXCJ0YXAtdG8tb3BlblwiIHVpLiAgTW9iaWxlIHRvdWNoXG4vLyBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBieSBAcmVhY2gvdG9vbHRpcDsgdGhpcyBtYXkgY2hhbmdlIGluIGZ1dHVyZS5cbi8vIExldmVyYWdlcyBAcmVhY2gvdG9vbHRpcCBcImZvY3VzXCIgYmVoYXZpb3IgdG8gb3BlbiB0b29sdGlwIG9uIHRhcCxcbi8vIGFuZCBjbG9zZSB0b29sdGlwIG9uIHNlY29uZCB0YXAgb3IgbG9zcyBvZiBmb2N1cy5cbi8vIFRPRE86IFdlIG1heSB3YW50IHRvIGltcHJvdmUgdGhpcyBieSB0cmFja2luZyB0b3VjaCBwb3NpdGlvbnMgdG8gZW5zdXJlXG4vLyB0aGF0IGEgJ3RvdWNoZW5kJyBldmVudCBtdXN0IGJlIHJlYXNvbmFibHkgY2xvc2UgdG8gdGhlIHRvb2x0aXAgdGFyZ2V0LlxuY29uc3QgdG91Y2hIYW5kbGVycyA9IHtcbiAgICBvblRvdWNoU3RhcnQ6IChlKSA9PiB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSxcbiAgICBvblRvdWNoRW5kOiAoZSkgPT4ge1xuICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gZS5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBlLmN1cnJlbnRUYXJnZXQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGUuY3VycmVudFRhcmdldC5ibHVyKCk7XG4gICAgICAgIH1cbiAgICB9LFxufTtcblxuLyoqXG4gKiBUb29sdGlwIHdpdGggc3R5bGVkIGluZm9ybWF0aW9uIGljb25cbiAqL1xuY29uc3QgSW5mb3RpcCA9ICh7IGxhYmVsLCBsaWdodEljb24sIC4uLnByb3BzIH0pID0+IChcbiAgICA8VG9vbHRpcCBsYWJlbD17bGFiZWx9IHsuLi5wcm9wc30+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkluZm9ybWF0aW9uXCJcbiAgICAgICAgICAgIHN0eWxlPXtidXR0b25TdHlsZX1cbiAgICAgICAgICAgIHsuLi50b3VjaEhhbmRsZXJzfVxuICAgICAgICA+XG4gICAgICAgICAgICA8SW5mb3RpcEljb25cbiAgICAgICAgICAgICAgICBsaWdodEljb249e2xpZ2h0SWNvbn1cbiAgICAgICAgICAgICAgICB3aWR0aD17QlVUVE9OX1NJWkV9XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXtCVVRUT05fU0laRX1cbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IGZsb2F0OiBcImxlZnRcIiB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9Ub29sdGlwPlxuKTtcblxuSW5mb3RpcC5wcm9wVHlwZXMgPSB7XG4gICAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBhcmlhTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbGlnaHRJY29uOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBERUJVR19TVFlMRTogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5JbmZvdGlwLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBhcmlhTGFiZWw6IHVuZGVmaW5lZCxcbiAgICBsaWdodEljb246IGZhbHNlLFxuICAgIERFQlVHX1NUWUxFOiB1bmRlZmluZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbmZvdGlwO1xuIl0sIm5hbWVzIjpbIkJVVFRPTl9TSVpFIiwiYnV0dG9uU3R5bGUiLCJiYWNrZ3JvdW5kIiwiYm9yZGVyIiwicGFkZGluZyIsIndpZHRoIiwiaGVpZ2h0IiwiV2Via2l0VG91Y2hDYWxsb3V0IiwiV2Via2l0VXNlclNlbGVjdCIsInVzZXJTZWxlY3QiLCJ0b3VjaEhhbmRsZXJzIiwib25Ub3VjaFN0YXJ0IiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsIm9uVG91Y2hFbmQiLCJkb2N1bWVudCIsImFjdGl2ZUVsZW1lbnQiLCJjdXJyZW50VGFyZ2V0IiwicHJldmVudERlZmF1bHQiLCJmb2N1cyIsImJsdXIiLCJJbmZvdGlwIiwiX3JlZiIsImxhYmVsIiwibGlnaHRJY29uIiwicHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJfcmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiX1Rvb2x0aXAiLCJfZXh0ZW5kcyIsInR5cGUiLCJzdHlsZSIsIl9JbmZvdGlwSWNvbiIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJhcmlhTGFiZWwiLCJib29sIiwiREVCVUdfU1RZTEUiLCJkZWZhdWx0UHJvcHMiLCJ1bmRlZmluZWQiLCJfZGVmYXVsdCIsIl9leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///877\n')},517:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(556)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _propTypes) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireDefault(_react);\n _propTypes = _interopRequireDefault(_propTypes);\n var _excluded = ["lightIcon"];\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\n function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\n var InfotipIcon = function InfotipIcon(_ref) {\n var lightIcon = _ref.lightIcon,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/_react["default"].createElement("svg", _extends({\n width: "20px",\n height: "20px",\n viewBox: "0 0 20 20",\n xmlns: "http://www.w3.org/2000/svg"\n }, props), /*#__PURE__*/_react["default"].createElement("g", {\n fill: "none",\n fillRule: "evenodd"\n }, /*#__PURE__*/_react["default"].createElement("path", {\n d: "M9.721 19.158c-4.947 0-8.973-4.126-8.973-9.196C.748 4.892 4.774.766 9.72.766c4.948 0 8.974 4.126 8.974 9.196 0 5.07-4.026 9.196-8.974 9.196z",\n fill: "#2EB1ED",\n fillRule: "nonzero"\n }), /*#__PURE__*/_react["default"].createElement("path", {\n d: "M9.721 0C4.361 0 0 4.469 0 9.962c0 5.493 4.36 9.962 9.721 9.962 5.36 0 9.722-4.469 9.722-9.962C19.443 4.469 15.082 0 9.72 0z",\n fill: lightIcon ? "#FFF" : "#04838A"\n }), /*#__PURE__*/_react["default"].createElement("path", {\n d: "M9.721 14.765c-.206 0-.374.112-.374.25v.5c0 .138.168.25.374.25.207 0 .374-.112.374-.25v-.5c0-.138-.167-.25-.374-.25zM9.764 4.706H9.72c-.792 0-1.536.29-2.1.821a2.767 2.767 0 0 0-.89 2.03c0 .197.166.356.373.356s.374-.159.374-.356c0-.577.237-1.118.668-1.523a2.268 2.268 0 0 1 1.607-.615c1.182.016 2.195.98 2.211 2.107.011.743-.373 1.427-1.028 1.83-.995.61-1.589 1.691-1.589 2.89v1.013c0 .197.168.357.374.357.207 0 .374-.16.374-.357v-1.013c0-.941.477-1.82 1.246-2.292.873-.537 1.386-1.448 1.371-2.438-.022-1.527-1.345-2.788-2.948-2.81z",\n stroke: lightIcon ? "#04838A" : "#FFF",\n strokeWidth: ".5",\n fill: lightIcon ? "#04838A" : "#FFF",\n fillRule: "nonzero"\n })));\n };\n var _default = _exports["default"] = InfotipIcon;\n InfotipIcon.propTypes = {\n lightIcon: _propTypes["default"].bool\n };\n InfotipIcon.defaultProps = {\n lightIcon: false\n };\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTE3LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUdBLElBQU1BLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFBQyxJQUFBO0lBQUEsSUFBTUMsU0FBUyxHQUFBRCxJQUFBLENBQVRDLFNBQVM7TUFBS0MsS0FBSyxHQUFBQyx3QkFBQSxDQUFBSCxJQUFBLEVBQUFJLFNBQUE7SUFBQSxvQkFDdENDLE1BQUEsWUFBQUMsYUFBQSxRQUFBQyxRQUFBO01BQ0lDLEtBQUssRUFBQyxNQUFNO01BQ1pDLE1BQU0sRUFBQyxNQUFNO01BQ2JDLE9BQU8sRUFBQyxXQUFXO01BQ25CQyxLQUFLLEVBQUM7SUFBNEIsR0FDOUJULEtBQUssZ0JBRVRHLE1BQUEsWUFBQUMsYUFBQTtNQUFHTSxJQUFJLEVBQUMsTUFBTTtNQUFDQyxRQUFRLEVBQUM7SUFBUyxnQkFDN0JSLE1BQUEsWUFBQUMsYUFBQTtNQUNJUSxDQUFDLEVBQUMsOElBQThJO01BQ2hKRixJQUFJLEVBQUMsU0FBUztNQUNkQyxRQUFRLEVBQUM7SUFBUyxDQUNyQixDQUFDLGVBQ0ZSLE1BQUEsWUFBQUMsYUFBQTtNQUNJUSxDQUFDLEVBQUMsOEhBQThIO01BQ2hJRixJQUFJLEVBQUVYLFNBQVMsR0FBRyxNQUFNLEdBQUc7SUFBVSxDQUN4QyxDQUFDLGVBQ0ZJLE1BQUEsWUFBQUMsYUFBQTtNQUNJUSxDQUFDLEVBQUMscWhCQUFxaEI7TUFDdmhCQyxNQUFNLEVBQUVkLFNBQVMsR0FBRyxTQUFTLEdBQUcsTUFBTztNQUN2Q2UsV0FBVyxFQUFDLElBQUk7TUFDaEJKLElBQUksRUFBRVgsU0FBUyxHQUFHLFNBQVMsR0FBRyxNQUFPO01BQ3JDWSxRQUFRLEVBQUM7SUFBUyxDQUNyQixDQUNGLENBQ0YsQ0FBQztFQUFBLENBQ1Q7RUFBQyxJQUFBSSxRQUFBLEdBQUFDLFFBQUEsY0FFYW5CLFdBQVc7RUFFMUJBLFdBQVcsQ0FBQ29CLFNBQVMsR0FBRztJQUNwQmxCLFNBQVMsRUFBRW1CLHFCQUFTLENBQUNDO0VBQ3pCLENBQUM7RUFFRHRCLFdBQVcsQ0FBQ3VCLFlBQVksR0FBRztJQUN2QnJCLFNBQVMsRUFBRTtFQUNmLENBQUM7QUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9JbmZvdGlwL0luZm90aXBJY29uLmpzeD82MGMyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIjtcblxuY29uc3QgSW5mb3RpcEljb24gPSAoeyBsaWdodEljb24sIC4uLnByb3BzIH0pID0+IChcbiAgICA8c3ZnXG4gICAgICAgIHdpZHRoPVwiMjBweFwiXG4gICAgICAgIGhlaWdodD1cIjIwcHhcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICAgIDxnIGZpbGw9XCJub25lXCIgZmlsbFJ1bGU9XCJldmVub2RkXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNOS43MjEgMTkuMTU4Yy00Ljk0NyAwLTguOTczLTQuMTI2LTguOTczLTkuMTk2Qy43NDggNC44OTIgNC43NzQuNzY2IDkuNzIuNzY2YzQuOTQ4IDAgOC45NzQgNC4xMjYgOC45NzQgOS4xOTYgMCA1LjA3LTQuMDI2IDkuMTk2LTguOTc0IDkuMTk2elwiXG4gICAgICAgICAgICAgICAgZmlsbD1cIiMyRUIxRURcIlxuICAgICAgICAgICAgICAgIGZpbGxSdWxlPVwibm9uemVyb1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTkuNzIxIDBDNC4zNjEgMCAwIDQuNDY5IDAgOS45NjJjMCA1LjQ5MyA0LjM2IDkuOTYyIDkuNzIxIDkuOTYyIDUuMzYgMCA5LjcyMi00LjQ2OSA5LjcyMi05Ljk2MkMxOS40NDMgNC40NjkgMTUuMDgyIDAgOS43MiAwelwiXG4gICAgICAgICAgICAgICAgZmlsbD17bGlnaHRJY29uID8gXCIjRkZGXCIgOiBcIiMwNDgzOEFcIn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNOS43MjEgMTQuNzY1Yy0uMjA2IDAtLjM3NC4xMTItLjM3NC4yNXYuNWMwIC4xMzguMTY4LjI1LjM3NC4yNS4yMDcgMCAuMzc0LS4xMTIuMzc0LS4yNXYtLjVjMC0uMTM4LS4xNjctLjI1LS4zNzQtLjI1ek05Ljc2NCA0LjcwNkg5LjcyYy0uNzkyIDAtMS41MzYuMjktMi4xLjgyMWEyLjc2NyAyLjc2NyAwIDAgMC0uODkgMi4wM2MwIC4xOTcuMTY2LjM1Ni4zNzMuMzU2cy4zNzQtLjE1OS4zNzQtLjM1NmMwLS41NzcuMjM3LTEuMTE4LjY2OC0xLjUyM2EyLjI2OCAyLjI2OCAwIDAgMSAxLjYwNy0uNjE1YzEuMTgyLjAxNiAyLjE5NS45OCAyLjIxMSAyLjEwNy4wMTEuNzQzLS4zNzMgMS40MjctMS4wMjggMS44My0uOTk1LjYxLTEuNTg5IDEuNjkxLTEuNTg5IDIuODl2MS4wMTNjMCAuMTk3LjE2OC4zNTcuMzc0LjM1Ny4yMDcgMCAuMzc0LS4xNi4zNzQtLjM1N3YtMS4wMTNjMC0uOTQxLjQ3Ny0xLjgyIDEuMjQ2LTIuMjkyLjg3My0uNTM3IDEuMzg2LTEuNDQ4IDEuMzcxLTIuNDM4LS4wMjItMS41MjctMS4zNDUtMi43ODgtMi45NDgtMi44MXpcIlxuICAgICAgICAgICAgICAgIHN0cm9rZT17bGlnaHRJY29uID8gXCIjMDQ4MzhBXCIgOiBcIiNGRkZcIn1cbiAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD1cIi41XCJcbiAgICAgICAgICAgICAgICBmaWxsPXtsaWdodEljb24gPyBcIiMwNDgzOEFcIiA6IFwiI0ZGRlwifVxuICAgICAgICAgICAgICAgIGZpbGxSdWxlPVwibm9uemVyb1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2c+XG4gICAgPC9zdmc+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBJbmZvdGlwSWNvbjtcblxuSW5mb3RpcEljb24ucHJvcFR5cGVzID0ge1xuICAgIGxpZ2h0SWNvbjogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5JbmZvdGlwSWNvbi5kZWZhdWx0UHJvcHMgPSB7XG4gICAgbGlnaHRJY29uOiBmYWxzZSxcbn07XG4iXSwibmFtZXMiOlsiSW5mb3RpcEljb24iLCJfcmVmIiwibGlnaHRJY29uIiwicHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJfcmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMiLCJ3aWR0aCIsImhlaWdodCIsInZpZXdCb3giLCJ4bWxucyIsImZpbGwiLCJmaWxsUnVsZSIsImQiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsIl9kZWZhdWx0IiwiX2V4cG9ydHMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJib29sIiwiZGVmYXVsdFByb3BzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///517\n')},582:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }\n(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(556), __webpack_require__(310), __webpack_require__(197), __webpack_require__(741)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _propTypes, _position, _tooltip, _portal) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireWildcard(_react);\n _propTypes = _interopRequireDefault(_propTypes);\n _position = _interopRequireWildcard(_position);\n _portal = _interopRequireDefault(_portal);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\n function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }\n function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\n function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }\n function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\n function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\n function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n // TODO: investigate ways to allow more styling via css? the triangle\n // positioning effect issue may need to be resolved to allow for this.\n var TEXT_COLOR = "#FFF";\n var BACKGROUND_COLOR = "#333";\n\n /**\n * Generic styled tooltip component.\n * Corresponding styles: /styles/components/_tooltip.scss\n *\n * Extends implementation from @reach/tooltip:\n * https://reacttraining.com/reach-ui/tooltip\n */\n var Tooltip = function Tooltip(_ref) {\n var children = _ref.children,\n label = _ref.label,\n ariaLabel = _ref.ariaLabel,\n DEBUG_STYLE = _ref.DEBUG_STYLE;\n var _useTooltip = (0, _tooltip.useTooltip)({\n DEBUG_STYLE: DEBUG_STYLE\n }),\n _useTooltip2 = _slicedToArray(_useTooltip, 2),\n trigger = _useTooltip2[0],\n tooltip = _useTooltip2[1];\n var isVisible = tooltip.isVisible,\n triggerRect = tooltip.triggerRect;\n var tooltipPopupRef = (0, _react.useRef)();\n var triangleRef = (0, _react.useRef)();\n (0, _react.useLayoutEffect)(function () {\n // For some reason, the forwardRef for the tooltipPopup points to an undefined\n // dom element when we first render the portal containing the triangle. Using\n // an effect here will ensure that the ref is available when applying styles.\n // TODO: investigate and make issue for @reach-ui/tooltip?\n if (isVisible && tooltipPopupRef.current && triggerRect) {\n var tooltipRect = tooltipPopupRef.current.getBoundingClientRect();\n var positionCssText = (0, _position.positionTriangle)(triggerRect, tooltipRect);\n var cssText = "\\n position: absolute;\\n width: 0;\\n height: 0;\\n ".concat(positionCssText, "\\n border-top-color: ").concat(BACKGROUND_COLOR, ";\\n border-bottom-color: ").concat(BACKGROUND_COLOR, ";\\n z-index: 1;\\n ");\n triangleRef.current.style.cssText = cssText;\n }\n });\n return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/(0, _react.cloneElement)(children, trigger), /*#__PURE__*/_react["default"].createElement(_tooltip.TooltipPopup, _extends({}, tooltip, {\n label: label,\n ariaLabel: ariaLabel,\n style: {\n background: BACKGROUND_COLOR,\n color: TEXT_COLOR\n },\n ref: tooltipPopupRef,\n position: _position["default"]\n })), isVisible && /*#__PURE__*/_react["default"].createElement(_portal["default"], null, /*#__PURE__*/_react["default"].createElement("div", {\n ref: triangleRef,\n style: {\n position: "absolute",\n width: 0,\n height: 0\n }\n })));\n };\n Tooltip.propTypes = {\n children: _propTypes["default"].node.isRequired,\n label: _propTypes["default"].node.isRequired,\n ariaLabel: _propTypes["default"].string,\n DEBUG_STYLE: _propTypes["default"].bool\n };\n Tooltip.defaultProps = {\n ariaLabel: undefined,\n DEBUG_STYLE: undefined\n };\n var _default = _exports["default"] = Tooltip;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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V0FBVyxFQUFFcUMscUJBQVMsQ0FBQ0k7RUFDM0IsQ0FBQztFQUVEOUMsT0FBTyxDQUFDK0MsWUFBWSxHQUFHO0lBQ25CM0MsU0FBUyxFQUFFNEMsU0FBUztJQUNwQjNDLFdBQVcsRUFBRTJDO0VBQ2pCLENBQUM7RUFBQyxJQUFBQyxRQUFBLEdBQUFDLFFBQUEsY0FFYWxELE9BQU87QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9Ub29sdGlwL1Rvb2x0aXAuanN4PzY5OWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IGNsb25lRWxlbWVudCwgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIjtcbmltcG9ydCBwb3NpdGlvblRpcCwgeyBwb3NpdGlvblRyaWFuZ2xlIH0gZnJvbSBcIi4vcG9zaXRpb25cIjtcbmltcG9ydCB7IHVzZVRvb2x0aXAsIFRvb2x0aXBQb3B1cCB9IGZyb20gXCJAcmVhY2gvdG9vbHRpcFwiO1xuaW1wb3J0IFBvcnRhbCBmcm9tIFwiQHJlYWNoL3BvcnRhbFwiO1xuXG4vLyBUT0RPOiBpbnZlc3RpZ2F0ZSB3YXlzIHRvIGFsbG93IG1vcmUgc3R5bGluZyB2aWEgY3NzPyB0aGUgdHJpYW5nbGVcbi8vIHBvc2l0aW9uaW5nIGVmZmVjdCBpc3N1ZSBtYXkgbmVlZCB0byBiZSByZXNvbHZlZCB0byBhbGxvdyBmb3IgdGhpcy5cbmNvbnN0IFRFWFRfQ09MT1IgPSBcIiNGRkZcIjtcbmNvbnN0IEJBQ0tHUk9VTkRfQ09MT1IgPSBcIiMzMzNcIjtcblxuLyoqXG4gKiBHZW5lcmljIHN0eWxlZCB0b29sdGlwIGNvbXBvbmVudC5cbiAqIENvcnJlc3BvbmRpbmcgc3R5bGVzOiAvc3R5bGVzL2NvbXBvbmVudHMvX3Rvb2x0aXAuc2Nzc1xuICpcbiAqIEV4dGVuZHMgaW1wbGVtZW50YXRpb24gZnJvbSBAcmVhY2gvdG9vbHRpcDpcbiAqIGh0dHBzOi8vcmVhY3R0cmFpbmluZy5jb20vcmVhY2gtdWkvdG9vbHRpcFxuICovXG5jb25zdCBUb29sdGlwID0gKHsgY2hpbGRyZW4sIGxhYmVsLCBhcmlhTGFiZWwsIERFQlVHX1NUWUxFIH0pID0+IHtcbiAgICBjb25zdCBbdHJpZ2dlciwgdG9vbHRpcF0gPSB1c2VUb29sdGlwKHsgREVCVUdfU1RZTEUgfSk7XG4gICAgY29uc3QgeyBpc1Zpc2libGUsIHRyaWdnZXJSZWN0IH0gPSB0b29sdGlwO1xuICAgIGNvbnN0IHRvb2x0aXBQb3B1cFJlZiA9IHVzZVJlZigpO1xuICAgIGNvbnN0IHRyaWFuZ2xlUmVmID0gdXNlUmVmKCk7XG5cbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICAvLyBGb3Igc29tZSByZWFzb24sIHRoZSBmb3J3YXJkUmVmIGZvciB0aGUgdG9vbHRpcFBvcHVwIHBvaW50cyB0byBhbiB1bmRlZmluZWRcbiAgICAgICAgLy8gZG9tIGVsZW1lbnQgd2hlbiB3ZSBmaXJzdCByZW5kZXIgdGhlIHBvcnRhbCBjb250YWluaW5nIHRoZSB0cmlhbmdsZS4gVXNpbmdcbiAgICAgICAgLy8gYW4gZWZmZWN0IGhlcmUgd2lsbCBlbnN1cmUgdGhhdCB0aGUgcmVmIGlzIGF2YWlsYWJsZSB3aGVuIGFwcGx5aW5nIHN0eWxlcy5cbiAgICAgICAgLy8gVE9ETzogaW52ZXN0aWdhdGUgYW5kIG1ha2UgaXNzdWUgZm9yIEByZWFjaC11aS90b29sdGlwP1xuICAgICAgICBpZiAoaXNWaXNpYmxlICYmIHRvb2x0aXBQb3B1cFJlZi5jdXJyZW50ICYmIHRyaWdnZXJSZWN0KSB7XG4gICAgICAgICAgICBjb25zdCB0b29sdGlwUmVjdCA9IHRvb2x0aXBQb3B1cFJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb25Dc3NUZXh0ID0gcG9zaXRpb25UcmlhbmdsZSh0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QpO1xuICAgICAgICAgICAgY29uc3QgY3NzVGV4dCA9IGBcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgJHtwb3NpdGlvbkNzc1RleHR9XG4gICAgICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke0JBQ0tHUk9VTkRfQ09MT1J9O1xuICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHtCQUNLR1JPVU5EX0NPTE9SfTtcbiAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgYDtcbiAgICAgICAgICAgIHRyaWFuZ2xlUmVmLmN1cnJlbnQuc3R5bGUuY3NzVGV4dCA9IGNzc1RleHQ7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICB7Y2xvbmVFbGVtZW50KGNoaWxkcmVuLCB0cmlnZ2VyKX1cbiAgICAgICAgICAgIDxUb29sdGlwUG9wdXBcbiAgICAgICAgICAgICAgICB7Li4udG9vbHRpcH1cbiAgICAgICAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgYXJpYUxhYmVsPXthcmlhTGFiZWx9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogQkFDS0dST1VORF9DT0xPUixcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IFRFWFRfQ09MT1IsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICByZWY9e3Rvb2x0aXBQb3B1cFJlZn1cbiAgICAgICAgICAgICAgICBwb3NpdGlvbj17cG9zaXRpb25UaXB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge2lzVmlzaWJsZSAmJiAoXG4gICAgICAgICAgICAgICAgPFBvcnRhbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXt0cmlhbmdsZVJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvUG9ydGFsPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgPC8+XG4gICAgKTtcbn07XG5cblRvb2x0aXAucHJvcFR5cGVzID0ge1xuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZS5pc1JlcXVpcmVkLFxuICAgIGxhYmVsOiBQcm9wVHlwZXMubm9kZS5pc1JlcXVpcmVkLFxuICAgIGFyaWFMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBERUJVR19TVFlMRTogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5Ub29sdGlwLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBhcmlhTGFiZWw6IHVuZGVmaW5lZCxcbiAgICBERUJVR19TVFlMRTogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgVG9vbHRpcDtcbiJdLCJuYW1lcyI6WyJURVhUX0NPTE9SIiwiQkFDS0dST1VORF9DT0xPUiIsIlRvb2x0aXAiLCJfcmVmIiwiY2hpbGRyZW4iLCJsYWJlbCIsImFyaWFMYWJlbCIsIkRFQlVHX1NUWUxFIiwiX3VzZVRvb2x0aXAiLCJ1c2VUb29sdGlwIiwiX3VzZVRvb2x0aXAyIiwiX3NsaWNlZFRvQXJyYXkiLCJ0cmlnZ2VyIiwidG9vbHRpcCIsImlzVmlzaWJsZSIsInRyaWdnZXJSZWN0IiwidG9vbHRpcFBvcHVwUmVmIiwidXNlUmVmIiwidHJpYW5nbGVSZWYiLCJ1c2VMYXlvdXRFZmZlY3QiLCJjdXJyZW50IiwidG9vbHRpcFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJwb3NpdGlvbkNzc1RleHQiLCJwb3NpdGlvblRyaWFuZ2xlIiwiY3NzVGV4dCIsImNvbmNhdCIsInN0eWxlIiwiX3JlYWN0IiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiY2xvbmVFbGVtZW50IiwiX3Rvb2x0aXAiLCJUb29sdGlwUG9wdXAiLCJfZXh0ZW5kcyIsImJhY2tncm91bmQiLCJjb2xvciIsInJlZiIsInBvc2l0aW9uIiwicG9zaXRpb25UaXAiLCJfcG9ydGFsIiwid2lkdGgiLCJoZWlnaHQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJub2RlIiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImJvb2wiLCJkZWZhdWx0UHJvcHMiLCJ1bmRlZmluZWQiLCJfZGVmYXVsdCIsIl9leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///582\n')},225:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(582)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _Tooltip) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _Tooltip = _interopRequireDefault(_Tooltip);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n var _default = _exports["default"] = _Tooltip["default"];\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjI1LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7dUNBRWVBLG1CQUFPO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvVG9vbHRpcC9pbmRleC5qcz8wNTRhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUb29sdGlwIGZyb20gXCIuL1Rvb2x0aXBcIjtcblxuZXhwb3J0IGRlZmF1bHQgVG9vbHRpcDtcbiJdLCJuYW1lcyI6WyJUb29sdGlwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///225\n')},310:function(module,exports){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports.positionTriangle = _exports["default"] = void 0;\n var OFFSET = 12; // modified from reach-ui/tooltip OFFSET value\n var TRIANGLE_SCALE_X = 6;\n var TRIANGLE_SCALE_Y = 8;\n var isDirectionUp = function isDirectionUp(triggerRect, tooltipRect) {\n var collisions = {\n top: triggerRect.top - tooltipRect.height < 0,\n bottom: window.innerHeight < triggerRect.bottom + tooltipRect.height + OFFSET\n };\n return !collisions.top || collisions.bottom;\n };\n\n // modified from @reach/tooltip default positioning function\n // positions Tooltip relative to trigger\n // https://github.com/reach/reach-ui/blob/master/packages/tooltip/src/index.tsx#L532\n var positionTip = function positionTip(triggerRect, tooltipRect) {\n if (!triggerRect || !tooltipRect) {\n return {};\n }\n var triggerCenter = triggerRect.left + triggerRect.width / 2;\n var left = triggerCenter - tooltipRect.width / 2;\n var maxLeft = window.innerWidth - tooltipRect.width - 2;\n var centerLeft = Math.min(Math.max(2, left), maxLeft) + window.pageXOffset;\n var directionUp = isDirectionUp(triggerRect, tooltipRect);\n return {\n left: "".concat(centerLeft, "px"),\n top: directionUp ? "".concat(triggerRect.top - OFFSET - tooltipRect.height + window.pageYOffset, "px") : "".concat(triggerRect.top + OFFSET + triggerRect.height + window.pageYOffset, "px")\n };\n };\n var _default = _exports["default"] = positionTip; // position triangle relative to tooltip position\n // TODO: figure out a better way to render these updates from within react\n // rendering. This method causes an additional repaint after the Tooltip\n // has been rendered. may require changes to @reach/tooltip.\n var positionTriangle = _exports.positionTriangle = function positionTriangle(triggerRect, tooltipRect) {\n var directionUp = isDirectionUp(triggerRect, tooltipRect);\n var triangleTop = directionUp ? triggerRect.top + window.pageYOffset - OFFSET : triggerRect.bottom + window.pageYOffset + OFFSET - TRIANGLE_SCALE_Y;\n var triangleLeft = triggerRect.left - TRIANGLE_SCALE_X + triggerRect.width / 2;\n var triangleBorder = directionUp ? "border-top: ".concat(TRIANGLE_SCALE_Y, "px solid;") : "border-bottom: ".concat(TRIANGLE_SCALE_Y, "px solid;");\n return "\\n border-left: ".concat(TRIANGLE_SCALE_X, "px solid transparent;\\n border-right: ").concat(TRIANGLE_SCALE_X, "px solid transparent;\\n left: ").concat(triangleLeft, "px;\\n top: ").concat(triangleTop, "px;\\n ").concat(triangleBorder, "\\n ");\n };\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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bkQsaUNBQUFzQixNQUFBLENBQ21CdkIsZ0JBQWdCLG1EQUFBdUIsTUFBQSxDQUNmdkIsZ0JBQWdCLDJDQUFBdUIsTUFBQSxDQUN4Qk0sWUFBWSx3QkFBQU4sTUFBQSxDQUNiSyxXQUFXLG1CQUFBTCxNQUFBLENBQ2hCTyxjQUFjO0VBRXhCLENBQUM7QUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9Ub29sdGlwL3Bvc2l0aW9uLmpzPzYxYjEiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgT0ZGU0VUID0gMTI7IC8vIG1vZGlmaWVkIGZyb20gcmVhY2gtdWkvdG9vbHRpcCBPRkZTRVQgdmFsdWVcbmNvbnN0IFRSSUFOR0xFX1NDQUxFX1ggPSA2O1xuY29uc3QgVFJJQU5HTEVfU0NBTEVfWSA9IDg7XG5cbmNvbnN0IGlzRGlyZWN0aW9uVXAgPSAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KSA9PiB7XG4gICAgY29uc3QgY29sbGlzaW9ucyA9IHtcbiAgICAgICAgdG9wOiB0cmlnZ2VyUmVjdC50b3AgLSB0b29sdGlwUmVjdC5oZWlnaHQgPCAwLFxuICAgICAgICBib3R0b206XG4gICAgICAgICAgICB3aW5kb3cuaW5uZXJIZWlnaHQgPFxuICAgICAgICAgICAgdHJpZ2dlclJlY3QuYm90dG9tICsgdG9vbHRpcFJlY3QuaGVpZ2h0ICsgT0ZGU0VULFxuICAgIH07XG5cbiAgICByZXR1cm4gIWNvbGxpc2lvbnMudG9wIHx8IGNvbGxpc2lvbnMuYm90dG9tO1xufTtcblxuLy8gbW9kaWZpZWQgZnJvbSBAcmVhY2gvdG9vbHRpcCBkZWZhdWx0IHBvc2l0aW9uaW5nIGZ1bmN0aW9uXG4vLyBwb3NpdGlvbnMgVG9vbHRpcCByZWxhdGl2ZSB0byB0cmlnZ2VyXG4vLyBodHRwczovL2dpdGh1Yi5jb20vcmVhY2gvcmVhY2gtdWkvYmxvYi9tYXN0ZXIvcGFja2FnZXMvdG9vbHRpcC9zcmMvaW5kZXgudHN4I0w1MzJcbmNvbnN0IHBvc2l0aW9uVGlwID0gKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCkgPT4ge1xuICAgIGlmICghdHJpZ2dlclJlY3QgfHwgIXRvb2x0aXBSZWN0KSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICBjb25zdCB0cmlnZ2VyQ2VudGVyID0gdHJpZ2dlclJlY3QubGVmdCArIHRyaWdnZXJSZWN0LndpZHRoIC8gMjtcbiAgICBjb25zdCBsZWZ0ID0gdHJpZ2dlckNlbnRlciAtIHRvb2x0aXBSZWN0LndpZHRoIC8gMjtcbiAgICBjb25zdCBtYXhMZWZ0ID0gd2luZG93LmlubmVyV2lkdGggLSB0b29sdGlwUmVjdC53aWR0aCAtIDI7XG4gICAgY29uc3QgY2VudGVyTGVmdCA9XG4gICAgICAgIE1hdGgubWluKE1hdGgubWF4KDIsIGxlZnQpLCBtYXhMZWZ0KSArIHdpbmRvdy5wYWdlWE9mZnNldDtcblxuICAgIGNvbnN0IGRpcmVjdGlvblVwID0gaXNEaXJlY3Rpb25VcCh0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbGVmdDogYCR7Y2VudGVyTGVmdH1weGAsXG4gICAgICAgIHRvcDogZGlyZWN0aW9uVXBcbiAgICAgICAgICAgID8gYCR7XG4gICAgICAgICAgICAgICAgICB0cmlnZ2VyUmVjdC50b3AgLVxuICAgICAgICAgICAgICAgICAgT0ZGU0VUIC1cbiAgICAgICAgICAgICAgICAgIHRvb2x0aXBSZWN0LmhlaWdodCArXG4gICAgICAgICAgICAgICAgICB3aW5kb3cucGFnZVlPZmZzZXRcbiAgICAgICAgICAgICAgfXB4YFxuICAgICAgICAgICAgOiBgJHtcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXJSZWN0LnRvcCArXG4gICAgICAgICAgICAgICAgICBPRkZTRVQgK1xuICAgICAgICAgICAgICAgICAgdHJpZ2dlclJlY3QuaGVpZ2h0ICtcbiAgICAgICAgICAgICAgICAgIHdpbmRvdy5wYWdlWU9mZnNldFxuICAgICAgICAgICAgICB9cHhgLFxuICAgIH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBwb3NpdGlvblRpcDtcblxuLy8gcG9zaXRpb24gdHJpYW5nbGUgcmVsYXRpdmUgdG8gdG9vbHRpcCBwb3NpdGlvblxuLy8gVE9ETzogZmlndXJlIG91dCBhIGJldHRlciB3YXkgdG8gcmVuZGVyIHRoZXNlIHVwZGF0ZXMgZnJvbSB3aXRoaW4gcmVhY3Rcbi8vIHJlbmRlcmluZy4gVGhpcyBtZXRob2QgY2F1c2VzIGFuIGFkZGl0aW9uYWwgcmVwYWludCBhZnRlciB0aGUgVG9vbHRpcFxuLy8gaGFzIGJlZW4gcmVuZGVyZWQuIG1heSByZXF1aXJlIGNoYW5nZXMgdG8gQHJlYWNoL3Rvb2x0aXAuXG5leHBvcnQgY29uc3QgcG9zaXRpb25UcmlhbmdsZSA9ICh0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QpID0+IHtcbiAgICBjb25zdCBkaXJlY3Rpb25VcCA9IGlzRGlyZWN0aW9uVXAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KTtcbiAgICBjb25zdCB0cmlhbmdsZVRvcCA9IGRpcmVjdGlvblVwXG4gICAgICAgID8gdHJpZ2dlclJlY3QudG9wICsgd2luZG93LnBhZ2VZT2Zmc2V0IC0gT0ZGU0VUXG4gICAgICAgIDogdHJpZ2dlclJlY3QuYm90dG9tICsgd2luZG93LnBhZ2VZT2Zmc2V0ICsgT0ZGU0VUIC0gVFJJQU5HTEVfU0NBTEVfWTtcblxuICAgIGNvbnN0IHRyaWFuZ2xlTGVmdCA9XG4gICAgICAgIHRyaWdnZXJSZWN0LmxlZnQgLSBUUklBTkdMRV9TQ0FMRV9YICsgdHJpZ2dlclJlY3Qud2lkdGggLyAyO1xuXG4gICAgY29uc3QgdHJpYW5nbGVCb3JkZXIgPSBkaXJlY3Rpb25VcFxuICAgICAgICA/IGBib3JkZXItdG9wOiAke1RSSUFOR0xFX1NDQUxFX1l9cHggc29saWQ7YFxuICAgICAgICA6IGBib3JkZXItYm90dG9tOiAke1RSSUFOR0xFX1NDQUxFX1l9cHggc29saWQ7YDtcblxuICAgIHJldHVybiBgXG4gICAgICAgIGJvcmRlci1sZWZ0OiAke1RSSUFOR0xFX1NDQUxFX1h9cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogJHtUUklBTkdMRV9TQ0FMRV9YfXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBsZWZ0OiAke3RyaWFuZ2xlTGVmdH1weDtcbiAgICAgICAgdG9wOiAke3RyaWFuZ2xlVG9wfXB4O1xuICAgICAgICAke3RyaWFuZ2xlQm9yZGVyfVxuICAgIGA7XG59O1xuIl0sIm5hbWVzIjpbIk9GRlNFVCIsIlRSSUFOR0xFX1NDQUxFX1giLCJUUklBTkdMRV9TQ0FMRV9ZIiwiaXNEaXJlY3Rpb25VcCIsInRyaWdnZXJSZWN0IiwidG9vbHRpcFJlY3QiLCJjb2xsaXNpb25zIiwidG9wIiwiaGVpZ2h0IiwiYm90dG9tIiwid2luZG93IiwiaW5uZXJIZWlnaHQiLCJwb3NpdGlvblRpcCIsInRyaWdnZXJDZW50ZXIiLCJsZWZ0Iiwid2lkdGgiLCJtYXhMZWZ0IiwiaW5uZXJXaWR0aCIsImNlbnRlckxlZnQiLCJNYXRoIiwibWluIiwibWF4IiwicGFnZVhPZmZzZXQiLCJkaXJlY3Rpb25VcCIsImNvbmNhdCIsInBhZ2VZT2Zmc2V0IiwiX2RlZmF1bHQiLCJfZXhwb3J0cyIsInBvc2l0aW9uVHJpYW5nbGUiLCJ0cmlhbmdsZVRvcCIsInRyaWFuZ2xlTGVmdCIsInRyaWFuZ2xlQm9yZGVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///310\n')},24:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(694), __webpack_require__(258), __webpack_require__(88)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _error, _footer, _whatInput) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _error = _interopRequireDefault(_error);\n _footer = _interopRequireDefault(_footer);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n var QppStyleComponents = {\n errorPage: function errorPage(options) {\n return new _error["default"](options);\n },\n footer: function footer(options) {\n return new _footer["default"](options);\n }\n };\n var _default = _exports["default"] = QppStyleComponents;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFLQSxJQUFNQSxrQkFBa0IsR0FBRztJQUN2QkMsU0FBUyxXQUFUQSxTQUFTQSxDQUFDQyxPQUFPLEVBQUU7TUFDZixPQUFPLElBQUlDLGlCQUFTLENBQUNELE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBRURFLE1BQU0sV0FBTkEsTUFBTUEsQ0FBQ0YsT0FBTyxFQUFFO01BQ1osT0FBTyxJQUFJRyxrQkFBTSxDQUFDSCxPQUFPLENBQUM7SUFDOUI7RUFDSixDQUFDO0VBQUMsSUFBQUksUUFBQSxHQUFBQyxRQUFBLGNBRWFQLGtCQUFrQjtBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9pbmRleC5qcz80MWY1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFcnJvclBhZ2UgZnJvbSBcIi4vY29tcG9uZW50cy9FcnJvci9lcnJvclwiO1xuaW1wb3J0IEZvb3RlciBmcm9tIFwiLi9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXJcIjtcblxuaW1wb3J0IFwid2hhdC1pbnB1dFwiO1xuXG5jb25zdCBRcHBTdHlsZUNvbXBvbmVudHMgPSB7XG4gICAgZXJyb3JQYWdlKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBFcnJvclBhZ2Uob3B0aW9ucyk7XG4gICAgfSxcblxuICAgIGZvb3RlcihvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBuZXcgRm9vdGVyKG9wdGlvbnMpO1xuICAgIH0sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBRcHBTdHlsZUNvbXBvbmVudHM7XG4iXSwibmFtZXMiOlsiUXBwU3R5bGVDb21wb25lbnRzIiwiZXJyb3JQYWdlIiwib3B0aW9ucyIsIkVycm9yUGFnZSIsImZvb3RlciIsIkZvb3RlciIsIl9kZWZhdWx0IiwiX2V4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///24\n')},763:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n Children: () => (/* binding */ compat_module_N),\n Component: () => (/* reexport */ k),\n Fragment: () => (/* reexport */ b),\n PureComponent: () => (/* binding */ compat_module_C),\n StrictMode: () => (/* binding */ yn),\n Suspense: () => (/* binding */ compat_module_L),\n SuspenseList: () => (/* binding */ U),\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: () => (/* binding */ on),\n cloneElement: () => (/* binding */ hn),\n createContext: () => (/* reexport */ G),\n createElement: () => (/* reexport */ _),\n createFactory: () => (/* binding */ ln),\n createPortal: () => (/* binding */ compat_module_j),\n createRef: () => (/* reexport */ m),\n "default": () => (/* binding */ Rn),\n findDOMNode: () => (/* binding */ dn),\n flushSync: () => (/* binding */ mn),\n forwardRef: () => (/* binding */ compat_module_k),\n hydrate: () => (/* binding */ compat_module_G),\n isElement: () => (/* binding */ En),\n isFragment: () => (/* binding */ an),\n isMemo: () => (/* binding */ sn),\n isValidElement: () => (/* binding */ fn),\n lazy: () => (/* binding */ compat_module_F),\n memo: () => (/* binding */ compat_module_x),\n render: () => (/* binding */ compat_module_q),\n startTransition: () => (/* binding */ _n),\n unmountComponentAtNode: () => (/* binding */ vn),\n unstable_batchedUpdates: () => (/* binding */ pn),\n useCallback: () => (/* reexport */ hooks_module_q),\n useContext: () => (/* reexport */ hooks_module_x),\n useDebugValue: () => (/* reexport */ hooks_module_P),\n useDeferredValue: () => (/* binding */ bn),\n useEffect: () => (/* reexport */ hooks_module_y),\n useErrorBoundary: () => (/* reexport */ hooks_module_b),\n useId: () => (/* reexport */ hooks_module_g),\n useImperativeHandle: () => (/* reexport */ hooks_module_F),\n useInsertionEffect: () => (/* binding */ gn),\n useLayoutEffect: () => (/* reexport */ hooks_module_),\n useMemo: () => (/* reexport */ hooks_module_T),\n useReducer: () => (/* reexport */ hooks_module_p),\n useRef: () => (/* reexport */ hooks_module_A),\n useState: () => (/* reexport */ hooks_module_h),\n useSyncExternalStore: () => (/* binding */ Cn),\n useTransition: () => (/* binding */ Sn),\n version: () => (/* binding */ cn)\n});\n\n;// CONCATENATED MODULE: ./node_modules/preact/dist/preact.module.js\nvar n,l,u,t,i,o,r,f,e,c,s,a,h={},v=[],p=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,y=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function w(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,o,r,f={};for(r in u)"key"==r?i=u[r]:"ref"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),"function"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return g(l,f,i,o,null)}function g(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==r?++u:r,__i:-1,__u:0};return null==r&&null!=l.vnode&&l.vnode(f),f}function m(){return{current:null}}function b(n){return n.children}function k(n,l){this.props=n,this.context=l}function x(n,l){if(null==l)return n.__?x(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return"function"==typeof n.type?x(n):null}function C(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return C(n)}}function M(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!P.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||r)(P)}function P(){var n,u,t,o,r,e,c,s;for(i.sort(f);n=i.shift();)n.__d&&(u=i.length,o=void 0,e=(r=(t=n).__v).__e,c=[],s=[],t.__P&&((o=d({},r)).__v=r.__v+1,l.vnode&&l.vnode(o),O(t.__P,o,r,t.__n,t.__P.namespaceURI,32&r.__u?[e]:null,c,null==e?x(r):e,!!(32&r.__u),s),o.__v=r.__v,o.__.__k[o.__i]=o,j(c,o,s),o.__e!=e&&C(o)),i.length>u&&i.sort(f));P.__r=0}function S(n,l,u,t,i,o,r,f,e,c,s){var a,p,y,d,w,_=t&&t.__k||v,g=l.length;for(u.__d=e,$(u,l,_),e=u.__d,a=0;a<g;a++)null!=(y=u.__k[a])&&(p=-1===y.__i?h:_[y.__i]||h,y.__i=a,O(n,y,p,i,o,r,f,e,c,s),d=y.__e,y.ref&&p.ref!=y.ref&&(p.ref&&N(p.ref,null,y),s.push(y.ref,y.__c||d,y)),null==w&&null!=d&&(w=d),65536&y.__u||p.__k===y.__k?e=I(y,e,n):"function"==typeof y.type&&void 0!==y.__d?e=y.__d:d&&(e=d.nextSibling),y.__d=void 0,y.__u&=-196609);u.__d=e,u.__e=w}function $(n,l,u){var t,i,o,r,f,e=l.length,c=u.length,s=c,a=0;for(n.__k=[],t=0;t<e;t++)null!=(i=l[t])&&"boolean"!=typeof i&&"function"!=typeof i?(r=t+a,(i=n.__k[t]="string"==typeof i||"number"==typeof i||"bigint"==typeof i||i.constructor==String?g(null,i,null,null,null):y(i)?g(b,{children:i},null,null,null):void 0===i.constructor&&i.__b>0?g(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i).__=n,i.__b=n.__b+1,o=null,-1!==(f=i.__i=L(i,u,r,s))&&(s--,(o=u[f])&&(o.__u|=131072)),null==o||null===o.__v?(-1==f&&a--,"function"!=typeof i.type&&(i.__u|=65536)):f!==r&&(f==r-1?a--:f==r+1?a++:(f>r?a--:a++,i.__u|=65536))):i=n.__k[t]=null;if(s)for(t=0;t<c;t++)null!=(o=u[t])&&0==(131072&o.__u)&&(o.__e==n.__d&&(n.__d=x(o)),V(o,o))}function I(n,l,u){var t,i;if("function"==typeof n.type){for(t=n.__k,i=0;t&&i<t.length;i++)t[i]&&(t[i].__=n,l=I(t[i],l,u));return l}n.__e!=l&&(l&&n.type&&!u.contains(l)&&(l=x(n)),u.insertBefore(n.__e,l||null),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8===l.nodeType);return l}function H(n,l){return l=l||[],null==n||"boolean"==typeof n||(y(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function L(n,l,u,t){var i=n.key,o=n.type,r=u-1,f=u+1,e=l[u];if(null===e||e&&i==e.key&&o===e.type&&0==(131072&e.__u))return u;if(t>(null!=e&&0==(131072&e.__u)?1:0))for(;r>=0||f<l.length;){if(r>=0){if((e=l[r])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return r;r--}if(f<l.length){if((e=l[f])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return f;f++}}return-1}function T(n,l,u){"-"===l[0]?n.setProperty(l,null==u?"":u):n[l]=null==u?"":"number"!=typeof u||p.test(l)?u:u+"px"}function A(n,l,u,t,i){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else{if("string"==typeof t&&(n.style.cssText=t=""),t)for(l in t)u&&l in u||T(n.style,l,"");if(u)for(l in u)t&&u[l]===t[l]||T(n.style,l,u[l])}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/(PointerCapture)$|Capture$/i,"$1")),l=l.toLowerCase()in n||"onFocusOut"===l||"onFocusIn"===l?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?t?u.u=t.u:(u.u=e,n.addEventListener(l,o?s:c,o)):n.removeEventListener(l,o?s:c,o);else{if("http://www.w3.org/2000/svg"==i)l=l.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!=l&&"height"!=l&&"href"!=l&&"list"!=l&&"form"!=l&&"tabIndex"!=l&&"download"!=l&&"rowSpan"!=l&&"colSpan"!=l&&"role"!=l&&"popover"!=l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null==u||!1===u&&"-"!==l[4]?n.removeAttribute(l):n.setAttribute(l,"popover"==l&&1==u?"":u))}}function F(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u.t)u.t=e++;else if(u.t<t.u)return;return t(l.event?l.event(u):u)}}}function O(n,u,t,i,o,r,f,e,c,s){var a,h,v,p,w,_,g,m,x,C,M,P,$,I,H,L,T=u.type;if(void 0!==u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),r=[e=u.__e=t.__e]),(a=l.__b)&&a(u);n:if("function"==typeof T)try{if(m=u.props,x="prototype"in T&&T.prototype.render,C=(a=T.contextType)&&i[a.__c],M=a?C?C.props.value:a.__:i,t.__c?g=(h=u.__c=t.__c).__=h.__E:(x?u.__c=h=new T(m,M):(u.__c=h=new k(m,M),h.constructor=T,h.render=q),C&&C.sub(h),h.props=m,h.state||(h.state={}),h.context=M,h.__n=i,v=h.__d=!0,h.__h=[],h._sb=[]),x&&null==h.__s&&(h.__s=h.state),x&&null!=T.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=d({},h.__s)),d(h.__s,T.getDerivedStateFromProps(m,h.__s))),p=h.props,w=h.state,h.__v=u,v)x&&null==T.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),x&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(x&&null==T.getDerivedStateFromProps&&m!==p&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(m,M),!h.__e&&(null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(m,h.__s,M)||u.__v===t.__v)){for(u.__v!==t.__v&&(h.props=m,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),P=0;P<h._sb.length;P++)h.__h.push(h._sb[P]);h._sb=[],h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(m,h.__s,M),x&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(p,w,_)})}if(h.context=M,h.props=m,h.__P=n,h.__e=!1,$=l.__r,I=0,x){for(h.state=h.__s,h.__d=!1,$&&$(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,$&&$(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++I<25);h.state=h.__s,null!=h.getChildContext&&(i=d(d({},i),h.getChildContext())),x&&!v&&null!=h.getSnapshotBeforeUpdate&&(_=h.getSnapshotBeforeUpdate(p,w)),S(n,y(L=null!=a&&a.type===b&&null==a.key?a.props.children:a)?L:[L],u,t,i,o,r,f,e,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&f.push(h),g&&(h.__E=h.__=null)}catch(n){if(u.__v=null,c||null!=r){for(u.__u|=c?160:32;e&&8===e.nodeType&&e.nextSibling;)e=e.nextSibling;r[r.indexOf(e)]=null,u.__e=e}else u.__e=t.__e,u.__k=t.__k;l.__e(n,u,t)}else null==r&&u.__v===t.__v?(u.__k=t.__k,u.__e=t.__e):u.__e=z(t.__e,u,t,i,o,r,f,c,s);(a=l.diffed)&&a(u)}function j(n,u,t){u.__d=void 0;for(var i=0;i<t.length;i++)N(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function z(u,t,i,o,r,f,e,c,s){var a,v,p,d,_,g,m,b=i.props,k=t.props,C=t.type;if("svg"===C?r="http://www.w3.org/2000/svg":"math"===C?r="http://www.w3.org/1998/Math/MathML":r||(r="http://www.w3.org/1999/xhtml"),null!=f)for(a=0;a<f.length;a++)if((_=f[a])&&"setAttribute"in _==!!C&&(C?_.localName===C:3===_.nodeType)){u=_,f[a]=null;break}if(null==u){if(null===C)return document.createTextNode(k);u=document.createElementNS(r,C,k.is&&k),c&&(l.__m&&l.__m(t,f),c=!1),f=null}if(null===C)b===k||c&&u.data===k||(u.data=k);else{if(f=f&&n.call(u.childNodes),b=i.props||h,!c&&null!=f)for(b={},a=0;a<u.attributes.length;a++)b[(_=u.attributes[a]).name]=_.value;for(a in b)if(_=b[a],"children"==a);else if("dangerouslySetInnerHTML"==a)p=_;else if(!(a in k)){if("value"==a&&"defaultValue"in k||"checked"==a&&"defaultChecked"in k)continue;A(u,a,null,_,r)}for(a in k)_=k[a],"children"==a?d=_:"dangerouslySetInnerHTML"==a?v=_:"value"==a?g=_:"checked"==a?m=_:c&&"function"!=typeof _||b[a]===_||A(u,a,_,b[a],r);if(v)c||p&&(v.__html===p.__html||v.__html===u.innerHTML)||(u.innerHTML=v.__html),t.__k=[];else if(p&&(u.innerHTML=""),S(u,y(d)?d:[d],t,i,o,"foreignObject"===C?"http://www.w3.org/1999/xhtml":r,f,e,f?f[0]:i.__k&&x(i,0),c,s),null!=f)for(a=f.length;a--;)w(f[a]);c||(a="value","progress"===C&&null==g?u.removeAttribute("value"):void 0!==g&&(g!==u[a]||"progress"===C&&!g||"option"===C&&g!==b[a])&&A(u,a,g,b[a],r),a="checked",void 0!==m&&m!==u[a]&&A(u,a,m,b[a],r))}return u}function N(n,u,t){try{if("function"==typeof n){var i="function"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function V(n,u,t){var i,o;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!==n.__e||N(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(o=0;o<i.length;o++)i[o]&&V(i[o],u,t||"function"!=typeof n.type);t||w(n.__e),n.__c=n.__=n.__e=n.__d=void 0}function q(n,l,u){return this.constructor(n,u)}function B(u,t,i){var o,r,f,e;l.__&&l.__(u,t),r=(o="function"==typeof i)?null:i&&i.__k||t.__k,f=[],e=[],O(t,u=(!o&&i||t).__k=_(b,null,[u]),r||h,h,t.namespaceURI,!o&&i?[i]:r?null:t.firstChild?n.call(t.childNodes):null,f,!o&&i?i:r?r.__e:t.firstChild,o,e),j(f,u,e)}function D(n,l){B(n,l,D)}function E(l,u,t){var i,o,r,f,e=d({},l.props);for(r in l.type&&l.type.defaultProps&&(f=l.type.defaultProps),u)"key"==r?i=u[r]:"ref"==r?o=u[r]:e[r]=void 0===u[r]&&void 0!==f?f[r]:u[r];return arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),g(l.type,e,i||l.key,o||l.ref,null)}function G(n,l){var u={__c:l="__cC"+a++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=[],(t={})[l]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=v.slice,l={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},k.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=d({},this.state),"function"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},k.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},k.prototype.render=b,i=[],r="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(n,l){return n.__v.__b-l.__v.__b},P.__r=0,e=0,c=F(!1),s=F(!0),a=0;\n//# sourceMappingURL=preact.module.js.map\n\n;// CONCATENATED MODULE: ./node_modules/preact/hooks/dist/hooks.module.js\nvar hooks_module_t,hooks_module_r,hooks_module_u,hooks_module_i,hooks_module_o=0,hooks_module_f=[],hooks_module_c=l,hooks_module_e=hooks_module_c.__b,hooks_module_a=hooks_module_c.__r,hooks_module_v=hooks_module_c.diffed,hooks_module_l=hooks_module_c.__c,hooks_module_m=hooks_module_c.unmount,hooks_module_s=hooks_module_c.__;function hooks_module_d(n,t){hooks_module_c.__h&&hooks_module_c.__h(hooks_module_r,n,hooks_module_o||t),hooks_module_o=0;var u=hooks_module_r.__H||(hooks_module_r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function hooks_module_h(n){return hooks_module_o=1,hooks_module_p(hooks_module_D,n)}function hooks_module_p(n,u,i){var o=hooks_module_d(hooks_module_t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):hooks_module_D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=hooks_module_r,!hooks_module_r.u)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!c||c.call(this,n,t,r))};hooks_module_r.u=!0;var c=hooks_module_r.shouldComponentUpdate,e=hooks_module_r.componentWillUpdate;hooks_module_r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},hooks_module_r.shouldComponentUpdate=f}return o.__N||o.__}function hooks_module_y(n,u){var i=hooks_module_d(hooks_module_t++,3);!hooks_module_c.__s&&hooks_module_C(i.__H,u)&&(i.__=n,i.i=u,hooks_module_r.__H.__h.push(i))}function hooks_module_(n,u){var i=hooks_module_d(hooks_module_t++,4);!hooks_module_c.__s&&hooks_module_C(i.__H,u)&&(i.__=n,i.i=u,hooks_module_r.__h.push(i))}function hooks_module_A(n){return hooks_module_o=5,hooks_module_T(function(){return{current:n}},[])}function hooks_module_F(n,t,r){hooks_module_o=6,hooks_module_(function(){return"function"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function hooks_module_T(n,r){var u=hooks_module_d(hooks_module_t++,7);return hooks_module_C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function hooks_module_q(n,t){return hooks_module_o=8,hooks_module_T(function(){return n},t)}function hooks_module_x(n){var u=hooks_module_r.context[n.__c],i=hooks_module_d(hooks_module_t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(hooks_module_r)),u.props.value):n.__}function hooks_module_P(n,t){hooks_module_c.useDebugValue&&hooks_module_c.useDebugValue(t?t(n):n)}function hooks_module_b(n){var u=hooks_module_d(hooks_module_t++,10),i=hooks_module_h();return u.__=n,hooks_module_r.componentDidCatch||(hooks_module_r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function hooks_module_g(){var n=hooks_module_d(hooks_module_t++,11);if(!n.__){for(var u=hooks_module_r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__="P"+i[0]+"-"+i[1]++}return n.__}function hooks_module_j(){for(var n;n=hooks_module_f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(hooks_module_z),n.__H.__h.forEach(hooks_module_B),n.__H.__h=[]}catch(t){n.__H.__h=[],hooks_module_c.__e(t,n.__v)}}hooks_module_c.__b=function(n){hooks_module_r=null,hooks_module_e&&hooks_module_e(n)},hooks_module_c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),hooks_module_s&&hooks_module_s(n,t)},hooks_module_c.__r=function(n){hooks_module_a&&hooks_module_a(n),hooks_module_t=0;var i=(hooks_module_r=n.__c).__H;i&&(hooks_module_u===hooks_module_r?(i.__h=[],hooks_module_r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.i=n.__N=void 0})):(i.__h.forEach(hooks_module_z),i.__h.forEach(hooks_module_B),i.__h=[],hooks_module_t=0)),hooks_module_u=hooks_module_r},hooks_module_c.diffed=function(n){hooks_module_v&&hooks_module_v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==hooks_module_f.push(t)&&hooks_module_i===hooks_module_c.requestAnimationFrame||((hooks_module_i=hooks_module_c.requestAnimationFrame)||hooks_module_w)(hooks_module_j)),t.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.i=void 0})),hooks_module_u=hooks_module_r=null},hooks_module_c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(hooks_module_z),n.__h=n.__h.filter(function(n){return!n.__||hooks_module_B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],hooks_module_c.__e(r,n.__v)}}),hooks_module_l&&hooks_module_l(n,t)},hooks_module_c.unmount=function(n){hooks_module_m&&hooks_module_m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{hooks_module_z(n)}catch(n){t=n}}),r.__H=void 0,t&&hooks_module_c.__e(t,r.__v))};var hooks_module_k="function"==typeof requestAnimationFrame;function hooks_module_w(n){var t,r=function(){clearTimeout(u),hooks_module_k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);hooks_module_k&&(t=requestAnimationFrame(r))}function hooks_module_z(n){var t=hooks_module_r,u=n.__c;"function"==typeof u&&(n.__c=void 0,u()),hooks_module_r=t}function hooks_module_B(n){var t=hooks_module_r;n.__c=n.__(),hooks_module_r=t}function hooks_module_C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function hooks_module_D(n,t){return"function"==typeof t?t(n):t}\n//# sourceMappingURL=hooks.module.js.map\n\n;// CONCATENATED MODULE: ./node_modules/preact/compat/dist/compat.module.js\nfunction compat_module_g(n,t){for(var e in t)n[e]=t[e];return n}function compat_module_E(n,t){for(var e in n)if("__source"!==e&&!(e in t))return!0;for(var r in t)if("__source"!==r&&n[r]!==t[r])return!0;return!1}function compat_module_C(n,t){this.props=n,this.context=t}function compat_module_x(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:compat_module_E(this.props,n)}function u(e){return this.shouldComponentUpdate=r,_(n,e)}return u.displayName="Memo("+(n.displayName||n.name)+")",u.prototype.isReactComponent=!0,u.__f=!0,u}(compat_module_C.prototype=new k).isPureReactComponent=!0,compat_module_C.prototype.shouldComponentUpdate=function(n,t){return compat_module_E(this.props,n)||compat_module_E(this.state,t)};var R=l.__b;l.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),R&&R(n)};var compat_module_w="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function compat_module_k(n){function t(t){var e=compat_module_g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=compat_module_w,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(n.displayName||n.name)+")",t}var compat_module_I=function(n,t){return null==n?null:H(H(n).map(t))},compat_module_N={map:compat_module_I,forEach:compat_module_I,count:function(n){return n?H(n).length:0},only:function(n){var t=H(n);if(1!==t.length)throw"Children.only";return t[0]},toArray:H},compat_module_M=l.__e;l.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);compat_module_M(n,t,e,r)};var compat_module_T=l.unmount;function compat_module_A(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=compat_module_g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return compat_module_A(n,t,e)})),n}function compat_module_D(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return compat_module_D(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function compat_module_L(){this.__u=0,this.t=null,this.__b=null}function compat_module_O(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function compat_module_F(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return _(r,o)}return o.displayName="Lazy",o.__f=!0,o}function U(){this.u=null,this.o=null}l.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),compat_module_T&&compat_module_T(n)},(compat_module_L.prototype=new k).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=compat_module_O(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(c):c())};e.__R=i;var c=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=compat_module_D(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},compat_module_L.prototype.componentWillUnmount=function(){this.t=[]},compat_module_L.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),o=this.__v.__k[0].__c;this.__v.__k[0]=compat_module_A(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&_(b,null,n.fallback);return i&&(i.__u&=-33),[_(b,null,e.__a?null:n.children),i]};var compat_module_V=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2]}};function W(n){return this.getChildContext=function(){return n.context},n.children}function compat_module_P(n){var e=this,r=n.i;e.componentWillUnmount=function(){B(null,e.l),e.l=null,e.i=null},e.i&&e.i!==r&&e.componentWillUnmount(),e.l||(e.i=r,e.l={nodeType:1,parentNode:r,childNodes:[],contains:function(){return!0},appendChild:function(n){this.childNodes.push(n),e.i.appendChild(n)},insertBefore:function(n,t){this.childNodes.push(n),e.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.i.removeChild(n)}}),B(_(W,{context:e.context},n.__v),e.l)}function compat_module_j(n,e){var r=_(compat_module_P,{__v:n,i:e});return r.containerInfo=e,r}(U.prototype=new k).__a=function(n){var t=this,e=compat_module_O(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),compat_module_V(t,n,r)):u()};e?e(o):o()}},U.prototype.render=function(n){this.u=null,this.o=new Map;var t=H(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},U.prototype.componentDidUpdate=U.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){compat_module_V(n,e,t)})};var compat_module_z="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,compat_module_B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,compat_module_H=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,Z=/[A-Z0-9]/g,Y="undefined"!=typeof document,compat_module_$=function(n){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function compat_module_q(n,t,e){return null==t.__k&&(t.textContent=""),B(n,t),"function"==typeof e&&e(),n?n.__c:null}function compat_module_G(n,t,e){return D(n,t),"function"==typeof e&&e(),n?n.__c:null}k.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(k.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var J=l.event;function K(){}function Q(){return this.cancelBubble}function X(){return this.defaultPrevented}l.event=function(n){return J&&(n=J(n)),n.persist=K,n.isPropagationStopped=Q,n.isDefaultPrevented=X,n.nativeEvent=n};var nn,tn={enumerable:!1,configurable:!0,get:function(){return this.class}},en=l.vnode;l.vnode=function(n){"string"==typeof n.type&&function(n){var t=n.props,e=n.type,u={},o=-1===e.indexOf("-");for(var i in t){var c=t[i];if(!("value"===i&&"defaultValue"in t&&null==c||Y&&"children"===i&&"noscript"===e||"class"===i||"className"===i)){var l=i.toLowerCase();"defaultValue"===i&&"value"in t&&null==t.value?i="value":"download"===i&&!0===c?c="":"translate"===l&&"no"===c?c=!1:"o"===l[0]&&"n"===l[1]?"ondoubleclick"===l?i="ondblclick":"onchange"!==l||"input"!==e&&"textarea"!==e||compat_module_$(t.type)?"onfocus"===l?i="onfocusin":"onblur"===l?i="onfocusout":compat_module_H.test(i)&&(i=l):l=i="oninput":o&&compat_module_B.test(i)?i=i.replace(Z,"-$&").toLowerCase():null===c&&(c=void 0),"oninput"===l&&u[i=l]&&(i="oninputCapture"),u[i]=c}}"select"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=H(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),"select"==e&&null!=u.defaultValue&&(u.value=H(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,"className",tn)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=compat_module_z,en&&en(n)};var rn=l.__r;l.__r=function(n){rn&&rn(n),nn=n.__c};var un=l.diffed;l.diffed=function(n){un&&un(n);var t=n.props,e=n.__e;null!=e&&"textarea"===n.type&&"value"in t&&t.value!==e.value&&(e.value=null==t.value?"":t.value),nn=null};var on={ReactCurrentDispatcher:{current:{readContext:function(n){return nn.__n[n.__c].props.value},useCallback:hooks_module_q,useContext:hooks_module_x,useDebugValue:hooks_module_P,useDeferredValue:bn,useEffect:hooks_module_y,useId:hooks_module_g,useImperativeHandle:hooks_module_F,useInsertionEffect:gn,useLayoutEffect:hooks_module_,useMemo:hooks_module_T,useReducer:hooks_module_p,useRef:hooks_module_A,useState:hooks_module_h,useSyncExternalStore:Cn,useTransition:Sn}}},cn="18.3.1";function ln(n){return _.bind(null,n)}function fn(n){return!!n&&n.$$typeof===compat_module_z}function an(n){return fn(n)&&n.type===b}function sn(n){return!!n&&!!n.displayName&&("string"==typeof n.displayName||n.displayName instanceof String)&&n.displayName.startsWith("Memo(")}function hn(n){return fn(n)?E.apply(null,arguments):n}function vn(n){return!!n.__k&&(B(null,n),!0)}function dn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)},mn=function(n,t){return n(t)},yn=b;function _n(n){n()}function bn(n){return n}function Sn(){return[!1,_n]}var gn=hooks_module_,En=fn;function Cn(n,t){var e=t(),r=hooks_module_h({h:{__:e,v:t}}),u=r[0].h,o=r[1];return hooks_module_(function(){u.__=e,u.v=t,xn(u)&&o({h:u})},[n,e,t]),hooks_module_y(function(){return xn(u)&&o({h:u}),n(function(){xn(u)&&o({h:u})})},[n]),e}function xn(n){var t,e,r=n.v,u=n.__;try{var o=r();return!((t=u)===(e=o)&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}}var Rn={useState:hooks_module_h,useId:hooks_module_g,useReducer:hooks_module_p,useEffect:hooks_module_y,useLayoutEffect:hooks_module_,useInsertionEffect:gn,useTransition:Sn,useDeferredValue:bn,useSyncExternalStore:Cn,startTransition:_n,useRef:hooks_module_A,useImperativeHandle:hooks_module_F,useMemo:hooks_module_T,useCallback:hooks_module_q,useContext:hooks_module_x,useDebugValue:hooks_module_P,version:"18.3.1",Children:compat_module_N,render:compat_module_q,hydrate:compat_module_G,unmountComponentAtNode:vn,createPortal:compat_module_j,createElement:_,createContext:G,createFactory:ln,cloneElement:hn,createRef:m,Fragment:b,isValidElement:fn,isElement:En,isFragment:an,isMemo:sn,findDOMNode:dn,Component:k,PureComponent:compat_module_C,memo:compat_module_x,forwardRef:compat_module_k,flushSync:mn,unstable_batchedUpdates:pn,StrictMode:yn,Suspense:compat_module_L,SuspenseList:U,lazy:compat_module_F,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:on};\n//# sourceMappingURL=compat.module.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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ZGVfbW9kdWxlcy9wcmVhY3QvZGlzdC9wcmVhY3QubW9kdWxlLmpzP2RhNjUiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvcHJlYWN0L2hvb2tzL2Rpc3QvaG9va3MubW9kdWxlLmpzPzMwZWMiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9kaXN0L2NvbXBhdC5tb2R1bGUuanM/MTVkMSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbixsLHUsdCxpLG8scixmLGUsYyxzLGEsaD17fSx2PVtdLHA9L2FjaXR8ZXgoPzpzfGd8bnxwfCQpfHJwaHxncmlkfG93c3xtbmN8bnR3fGluZVtjaF18em9vfF5vcmR8aXRlcmEvaSx5PUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gZChuLGwpe2Zvcih2YXIgdSBpbiBsKW5bdV09bFt1XTtyZXR1cm4gbn1mdW5jdGlvbiB3KG4pe24mJm4ucGFyZW50Tm9kZSYmbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pfWZ1bmN0aW9uIF8obCx1LHQpe3ZhciBpLG8scixmPXt9O2ZvcihyIGluIHUpXCJrZXlcIj09cj9pPXVbcl06XCJyZWZcIj09cj9vPXVbcl06ZltyXT11W3JdO2lmKGFyZ3VtZW50cy5sZW5ndGg+MiYmKGYuY2hpbGRyZW49YXJndW1lbnRzLmxlbmd0aD4zP24uY2FsbChhcmd1bWVudHMsMik6dCksXCJmdW5jdGlvblwiPT10eXBlb2YgbCYmbnVsbCE9bC5kZWZhdWx0UHJvcHMpZm9yKHIgaW4gbC5kZWZhdWx0UHJvcHMpdm9pZCAwPT09ZltyXSYmKGZbcl09bC5kZWZhdWx0UHJvcHNbcl0pO3JldHVybiBnKGwsZixpLG8sbnVsbCl9ZnVuY3Rpb24gZyhuLHQsaSxvLHIpe3ZhciBmPXt0eXBlOm4scHJvcHM6dCxrZXk6aSxyZWY6byxfX2s6bnVsbCxfXzpudWxsLF9fYjowLF9fZTpudWxsLF9fZDp2b2lkIDAsX19jOm51bGwsY29uc3RydWN0b3I6dm9pZCAwLF9fdjpudWxsPT1yPysrdTpyLF9faTotMSxfX3U6MH07cmV0dXJuIG51bGw9PXImJm51bGwhPWwudm5vZGUmJmwudm5vZGUoZiksZn1mdW5jdGlvbiBtKCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19ZnVuY3Rpb24gYihuKXtyZXR1cm4gbi5jaGlsZHJlbn1mdW5jdGlvbiBrKG4sbCl7dGhpcy5wcm9wcz1uLHRoaXMuY29udGV4dD1sfWZ1bmN0aW9uIHgobixsKXtpZihudWxsPT1sKXJldHVybiBuLl9fP3gobi5fXyxuLl9faSsxKTpudWxsO2Zvcih2YXIgdTtsPG4uX19rLmxlbmd0aDtsKyspaWYobnVsbCE9KHU9bi5fX2tbbF0pJiZudWxsIT11Ll9fZSlyZXR1cm4gdS5fX2U7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50eXBlP3gobik6bnVsbH1mdW5jdGlvbiBDKG4pe3ZhciBsLHU7aWYobnVsbCE9KG49bi5fXykmJm51bGwhPW4uX19jKXtmb3Iobi5fX2U9bi5fX2MuYmFzZT1udWxsLGw9MDtsPG4uX19rLmxlbmd0aDtsKyspaWYobnVsbCE9KHU9bi5fX2tbbF0pJiZudWxsIT11Ll9fZSl7bi5fX2U9bi5fX2MuYmFzZT11Ll9fZTticmVha31yZXR1cm4gQyhuKX19ZnVuY3Rpb24gTShuKXsoIW4uX19kJiYobi5fX2Q9ITApJiZpLnB1c2gobikmJiFQLl9fcisrfHxvIT09bC5kZWJvdW5jZVJlbmRlcmluZykmJigobz1sLmRlYm91bmNlUmVuZGVyaW5nKXx8cikoUCl9ZnVuY3Rpb24gUCgpe3ZhciBuLHUsdCxvLHIsZSxjLHM7Zm9yKGkuc29ydChmKTtuPWkuc2hpZnQoKTspbi5fX2QmJih1PWkubGVuZ3RoLG89dm9pZCAwLGU9KHI9KHQ9bikuX192KS5fX2UsYz1bXSxzPVtdLHQuX19QJiYoKG89ZCh7fSxyKSkuX192PXIuX192KzEsbC52bm9kZSYmbC52bm9kZShvKSxPKHQuX19QLG8scix0Ll9fbix0Ll9fUC5uYW1lc3BhY2VVUkksMzImci5fX3U/W2VdOm51bGwsYyxudWxsPT1lP3gocik6ZSwhISgzMiZyLl9fdSkscyksby5fX3Y9ci5fX3Ysby5fXy5fX2tbby5fX2ldPW8saihjLG8scyksby5fX2UhPWUmJkMobykpLGkubGVuZ3RoPnUmJmkuc29ydChmKSk7UC5fX3I9MH1mdW5jdGlvbiBTKG4sbCx1LHQsaSxvLHIsZixlLGMscyl7dmFyIGEscCx5LGQsdyxfPXQmJnQuX19rfHx2LGc9bC5sZW5ndGg7Zm9yKHUuX19kPWUsJCh1LGwsXyksZT11Ll9fZCxhPTA7YTxnO2ErKyludWxsIT0oeT11Ll9fa1thXSkmJihwPS0xPT09eS5fX2k/aDpfW3kuX19pXXx8aCx5Ll9faT1hLE8obix5LHAsaSxvLHIsZixlLGMscyksZD15Ll9fZSx5LnJlZiYmcC5yZWYhPXkucmVmJiYocC5yZWYmJk4ocC5yZWYsbnVsbCx5KSxzLnB1c2goeS5yZWYseS5fX2N8fGQseSkpLG51bGw9PXcmJm51bGwhPWQmJih3PWQpLDY1NTM2JnkuX191fHxwLl9faz09PXkuX19rP2U9SSh5LGUsbik6XCJmdW5jdGlvblwiPT10eXBlb2YgeS50eXBlJiZ2b2lkIDAhPT15Ll9fZD9lPXkuX19kOmQmJihlPWQubmV4dFNpYmxpbmcpLHkuX19kPXZvaWQgMCx5Ll9fdSY9LTE5NjYwOSk7dS5fX2Q9ZSx1Ll9fZT13fWZ1bmN0aW9uICQobixsLHUpe3ZhciB0LGksbyxyLGYsZT1sLmxlbmd0aCxjPXUubGVuZ3RoLHM9YyxhPTA7Zm9yKG4uX19rPVtdLHQ9MDt0PGU7dCsrKW51bGwhPShpPWxbdF0pJiZcImJvb2xlYW5cIiE9dHlwZW9mIGkmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGk/KHI9dCthLChpPW4uX19rW3RdPVwic3RyaW5nXCI9PXR5cGVvZiBpfHxcIm51bWJlclwiPT10eXBlb2YgaXx8XCJiaWdpbnRcIj09dHlwZW9mIGl8fGkuY29uc3RydWN0b3I9PVN0cmluZz9nKG51bGwsaSxudWxsLG51bGwsbnVsbCk6eShpKT9nKGIse2NoaWxkcmVuOml9LG51bGwsbnVsbCxudWxsKTp2b2lkIDA9PT1pLmNvbnN0cnVjdG9yJiZpLl9fYj4wP2coaS50eXBlLGkucHJvcHMsaS5rZXksaS5yZWY/aS5yZWY6bnVsbCxpLl9fdik6aSkuX189bixpLl9fYj1uLl9fYisxLG89bnVsbCwtMSE9PShmPWkuX19pPUwoaSx1LHIscykpJiYocy0tLChvPXVbZl0pJiYoby5fX3V8PTEzMTA3MikpLG51bGw9PW98fG51bGw9PT1vLl9fdj8oLTE9PWYmJmEtLSxcImZ1bmN0aW9uXCIhPXR5cGVvZiBpLnR5cGUmJihpLl9fdXw9NjU1MzYpKTpmIT09ciYmKGY9PXItMT9hLS06Zj09cisxP2ErKzooZj5yP2EtLTphKyssaS5fX3V8PTY1NTM2KSkpOmk9bi5fX2tbdF09bnVsbDtpZihzKWZvcih0PTA7dDxjO3QrKyludWxsIT0obz11W3RdKSYmMD09KDEzMTA3MiZvLl9fdSkmJihvLl9fZT09bi5fX2QmJihuLl9fZD14KG8pKSxWKG8sbykpfWZ1bmN0aW9uIEkobixsLHUpe3ZhciB0LGk7aWYoXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50eXBlKXtmb3IodD1uLl9fayxpPTA7dCYmaTx0Lmxlbmd0aDtpKyspdFtpXSYmKHRbaV0uX189bixsPUkodFtpXSxsLHUpKTtyZXR1cm4gbH1uLl9fZSE9bCYmKGwmJm4udHlwZSYmIXUuY29udGFpbnMobCkmJihsPXgobikpLHUuaW5zZXJ0QmVmb3JlKG4uX19lLGx8fG51bGwpLGw9bi5fX2UpO2Rve2w9bCYmbC5uZXh0U2libGluZ313aGlsZShudWxsIT1sJiY4PT09bC5ub2RlVHlwZSk7cmV0dXJuIGx9ZnVuY3Rpb24gSChuLGwpe3JldHVybiBsPWx8fFtdLG51bGw9PW58fFwiYm9vbGVhblwiPT10eXBlb2Ygbnx8KHkobik/bi5zb21lKGZ1bmN0aW9uKG4pe0gobixsKX0pOmwucHVzaChuKSksbH1mdW5jdGlvbiBMKG4sbCx1LHQpe3ZhciBpPW4ua2V5LG89bi50eXBlLHI9dS0xLGY9dSsxLGU9bFt1XTtpZihudWxsPT09ZXx8ZSYmaT09ZS5rZXkmJm89PT1lLnR5cGUmJjA9PSgxMzEwNzImZS5fX3UpKXJldHVybiB1O2lmKHQ+KG51bGwhPWUmJjA9PSgxMzEwNzImZS5fX3UpPzE6MCkpZm9yKDtyPj0wfHxmPGwubGVuZ3RoOyl7aWYocj49MCl7aWYoKGU9bFtyXSkmJjA9PSgxMzEwNzImZS5fX3UpJiZpPT1lLmtleSYmbz09PWUudHlwZSlyZXR1cm4gcjtyLS19aWYoZjxsLmxlbmd0aCl7aWYoKGU9bFtmXSkmJjA9PSgxMzEwNzImZS5fX3UpJiZpPT1lLmtleSYmbz09PWUudHlwZSlyZXR1cm4gZjtmKyt9fXJldHVybi0xfWZ1bmN0aW9uIFQobixsLHUpe1wiLVwiPT09bFswXT9uLnNldFByb3BlcnR5KGwsbnVsbD09dT9cIlwiOnUpOm5bbF09bnVsbD09dT9cIlwiOlwibnVtYmVyXCIhPXR5cGVvZiB1fHxwLnRlc3QobCk/dTp1K1wicHhcIn1mdW5jdGlvbiBBKG4sbCx1LHQsaSl7dmFyIG87bjppZihcInN0eWxlXCI9PT1sKWlmKFwic3RyaW5nXCI9PXR5cGVvZiB1KW4uc3R5bGUuY3NzVGV4dD11O2Vsc2V7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQmJihuLnN0eWxlLmNzc1RleHQ9dD1cIlwiKSx0KWZvcihsIGluIHQpdSYmbCBpbiB1fHxUKG4uc3R5bGUsbCxcIlwiKTtpZih1KWZvcihsIGluIHUpdCYmdVtsXT09PXRbbF18fFQobi5zdHlsZSxsLHVbbF0pfWVsc2UgaWYoXCJvXCI9PT1sWzBdJiZcIm5cIj09PWxbMV0pbz1sIT09KGw9bC5yZXBsYWNlKC8oUG9pbnRlckNhcHR1cmUpJHxDYXB0dXJlJC9pLFwiJDFcIikpLGw9bC50b0xvd2VyQ2FzZSgpaW4gbnx8XCJvbkZvY3VzT3V0XCI9PT1sfHxcIm9uRm9jdXNJblwiPT09bD9sLnRvTG93ZXJDYXNlKCkuc2xpY2UoMik6bC5zbGljZSgyKSxuLmx8fChuLmw9e30pLG4ubFtsK29dPXUsdT90P3UudT10LnU6KHUudT1lLG4uYWRkRXZlbnRMaXN0ZW5lcihsLG8/czpjLG8pKTpuLnJlbW92ZUV2ZW50TGlzdGVuZXIobCxvP3M6YyxvKTtlbHNle2lmKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj09aSlsPWwucmVwbGFjZSgveGxpbmsoSHw6aCkvLFwiaFwiKS5yZXBsYWNlKC9zTmFtZSQvLFwic1wiKTtlbHNlIGlmKFwid2lkdGhcIiE9bCYmXCJoZWlnaHRcIiE9bCYmXCJocmVmXCIhPWwmJlwibGlzdFwiIT1sJiZcImZvcm1cIiE9bCYmXCJ0YWJJbmRleFwiIT1sJiZcImRvd25sb2FkXCIhPWwmJlwicm93U3BhblwiIT1sJiZcImNvbFNwYW5cIiE9bCYmXCJyb2xlXCIhPWwmJlwicG9wb3ZlclwiIT1sJiZsIGluIG4pdHJ5e25bbF09bnVsbD09dT9cIlwiOnU7YnJlYWsgbn1jYXRjaChuKXt9XCJmdW5jdGlvblwiPT10eXBlb2YgdXx8KG51bGw9PXV8fCExPT09dSYmXCItXCIhPT1sWzRdP24ucmVtb3ZlQXR0cmlidXRlKGwpOm4uc2V0QXR0cmlidXRlKGwsXCJwb3BvdmVyXCI9PWwmJjE9PXU/XCJcIjp1KSl9fWZ1bmN0aW9uIEYobil7cmV0dXJuIGZ1bmN0aW9uKHUpe2lmKHRoaXMubCl7dmFyIHQ9dGhpcy5sW3UudHlwZStuXTtpZihudWxsPT11LnQpdS50PWUrKztlbHNlIGlmKHUudDx0LnUpcmV0dXJuO3JldHVybiB0KGwuZXZlbnQ/bC5ldmVudCh1KTp1KX19fWZ1bmN0aW9uIE8obix1LHQsaSxvLHIsZixlLGMscyl7dmFyIGEsaCx2LHAsdyxfLGcsbSx4LEMsTSxQLCQsSSxILEwsVD11LnR5cGU7aWYodm9pZCAwIT09dS5jb25zdHJ1Y3RvcilyZXR1cm4gbnVsbDsxMjgmdC5fX3UmJihjPSEhKDMyJnQuX191KSxyPVtlPXUuX19lPXQuX19lXSksKGE9bC5fX2IpJiZhKHUpO246aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgVCl0cnl7aWYobT11LnByb3BzLHg9XCJwcm90b3R5cGVcImluIFQmJlQucHJvdG90eXBlLnJlbmRlcixDPShhPVQuY29udGV4dFR5cGUpJiZpW2EuX19jXSxNPWE/Qz9DLnByb3BzLnZhbHVlOmEuX186aSx0Ll9fYz9nPShoPXUuX19jPXQuX19jKS5fXz1oLl9fRTooeD91Ll9fYz1oPW5ldyBUKG0sTSk6KHUuX19jPWg9bmV3IGsobSxNKSxoLmNvbnN0cnVjdG9yPVQsaC5yZW5kZXI9cSksQyYmQy5zdWIoaCksaC5wcm9wcz1tLGguc3RhdGV8fChoLnN0YXRlPXt9KSxoLmNvbnRleHQ9TSxoLl9fbj1pLHY9aC5fX2Q9ITAsaC5fX2g9W10saC5fc2I9W10pLHgmJm51bGw9PWguX19zJiYoaC5fX3M9aC5zdGF0ZSkseCYmbnVsbCE9VC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMmJihoLl9fcz09aC5zdGF0ZSYmKGguX19zPWQoe30saC5fX3MpKSxkKGguX19zLFQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG0saC5fX3MpKSkscD1oLnByb3BzLHc9aC5zdGF0ZSxoLl9fdj11LHYpeCYmbnVsbD09VC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMmJm51bGwhPWguY29tcG9uZW50V2lsbE1vdW50JiZoLmNvbXBvbmVudFdpbGxNb3VudCgpLHgmJm51bGwhPWguY29tcG9uZW50RGlkTW91bnQmJmguX19oLnB1c2goaC5jb21wb25lbnREaWRNb3VudCk7ZWxzZXtpZih4JiZudWxsPT1ULmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyYmbSE9PXAmJm51bGwhPWguY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmaC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG0sTSksIWguX19lJiYobnVsbCE9aC5zaG91bGRDb21wb25lbnRVcGRhdGUmJiExPT09aC5zaG91bGRDb21wb25lbnRVcGRhdGUobSxoLl9fcyxNKXx8dS5fX3Y9PT10Ll9fdikpe2Zvcih1Ll9fdiE9PXQuX192JiYoaC5wcm9wcz1tLGguc3RhdGU9aC5fX3MsaC5fX2Q9ITEpLHUuX19lPXQuX19lLHUuX19rPXQuX19rLHUuX19rLnNvbWUoZnVuY3Rpb24obil7biYmKG4uX189dSl9KSxQPTA7UDxoLl9zYi5sZW5ndGg7UCsrKWguX19oLnB1c2goaC5fc2JbUF0pO2guX3NiPVtdLGguX19oLmxlbmd0aCYmZi5wdXNoKGgpO2JyZWFrIG59bnVsbCE9aC5jb21wb25lbnRXaWxsVXBkYXRlJiZoLmNvbXBvbmVudFdpbGxVcGRhdGUobSxoLl9fcyxNKSx4JiZudWxsIT1oLmNvbXBvbmVudERpZFVwZGF0ZSYmaC5fX2gucHVzaChmdW5jdGlvbigpe2guY29tcG9uZW50RGlkVXBkYXRlKHAsdyxfKX0pfWlmKGguY29udGV4dD1NLGgucHJvcHM9bSxoLl9fUD1uLGguX19lPSExLCQ9bC5fX3IsST0wLHgpe2ZvcihoLnN0YXRlPWguX19zLGguX19kPSExLCQmJiQodSksYT1oLnJlbmRlcihoLnByb3BzLGguc3RhdGUsaC5jb250ZXh0KSxIPTA7SDxoLl9zYi5sZW5ndGg7SCsrKWguX19oLnB1c2goaC5fc2JbSF0pO2guX3NiPVtdfWVsc2UgZG97aC5fX2Q9ITEsJCYmJCh1KSxhPWgucmVuZGVyKGgucHJvcHMsaC5zdGF0ZSxoLmNvbnRleHQpLGguc3RhdGU9aC5fX3N9d2hpbGUoaC5fX2QmJisrSTwyNSk7aC5zdGF0ZT1oLl9fcyxudWxsIT1oLmdldENoaWxkQ29udGV4dCYmKGk9ZChkKHt9LGkpLGguZ2V0Q2hpbGRDb250ZXh0KCkpKSx4JiYhdiYmbnVsbCE9aC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSYmKF89aC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShwLHcpKSxTKG4seShMPW51bGwhPWEmJmEudHlwZT09PWImJm51bGw9PWEua2V5P2EucHJvcHMuY2hpbGRyZW46YSk/TDpbTF0sdSx0LGksbyxyLGYsZSxjLHMpLGguYmFzZT11Ll9fZSx1Ll9fdSY9LTE2MSxoLl9faC5sZW5ndGgmJmYucHVzaChoKSxnJiYoaC5fX0U9aC5fXz1udWxsKX1jYXRjaChuKXtpZih1Ll9fdj1udWxsLGN8fG51bGwhPXIpe2Zvcih1Ll9fdXw9Yz8xNjA6MzI7ZSYmOD09PWUubm9kZVR5cGUmJmUubmV4dFNpYmxpbmc7KWU9ZS5uZXh0U2libGluZztyW3IuaW5kZXhPZihlKV09bnVsbCx1Ll9fZT1lfWVsc2UgdS5fX2U9dC5fX2UsdS5fX2s9dC5fX2s7bC5fX2Uobix1LHQpfWVsc2UgbnVsbD09ciYmdS5fX3Y9PT10Ll9fdj8odS5fX2s9dC5fX2ssdS5fX2U9dC5fX2UpOnUuX19lPXoodC5fX2UsdSx0LGksbyxyLGYsYyxzKTsoYT1sLmRpZmZlZCkmJmEodSl9ZnVuY3Rpb24gaihuLHUsdCl7dS5fX2Q9dm9pZCAwO2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKU4odFtpXSx0WysraV0sdFsrK2ldKTtsLl9fYyYmbC5fX2ModSxuKSxuLnNvbWUoZnVuY3Rpb24odSl7dHJ5e249dS5fX2gsdS5fX2g9W10sbi5zb21lKGZ1bmN0aW9uKG4pe24uY2FsbCh1KX0pfWNhdGNoKG4pe2wuX19lKG4sdS5fX3YpfX0pfWZ1bmN0aW9uIHoodSx0LGksbyxyLGYsZSxjLHMpe3ZhciBhLHYscCxkLF8sZyxtLGI9aS5wcm9wcyxrPXQucHJvcHMsQz10LnR5cGU7aWYoXCJzdmdcIj09PUM/cj1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI6XCJtYXRoXCI9PT1DP3I9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCI6cnx8KHI9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCIpLG51bGwhPWYpZm9yKGE9MDthPGYubGVuZ3RoO2ErKylpZigoXz1mW2FdKSYmXCJzZXRBdHRyaWJ1dGVcImluIF89PSEhQyYmKEM/Xy5sb2NhbE5hbWU9PT1DOjM9PT1fLm5vZGVUeXBlKSl7dT1fLGZbYV09bnVsbDticmVha31pZihudWxsPT11KXtpZihudWxsPT09QylyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoayk7dT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMocixDLGsuaXMmJmspLGMmJihsLl9fbSYmbC5fX20odCxmKSxjPSExKSxmPW51bGx9aWYobnVsbD09PUMpYj09PWt8fGMmJnUuZGF0YT09PWt8fCh1LmRhdGE9ayk7ZWxzZXtpZihmPWYmJm4uY2FsbCh1LmNoaWxkTm9kZXMpLGI9aS5wcm9wc3x8aCwhYyYmbnVsbCE9Zilmb3IoYj17fSxhPTA7YTx1LmF0dHJpYnV0ZXMubGVuZ3RoO2ErKyliWyhfPXUuYXR0cmlidXRlc1thXSkubmFtZV09Xy52YWx1ZTtmb3IoYSBpbiBiKWlmKF89YlthXSxcImNoaWxkcmVuXCI9PWEpO2Vsc2UgaWYoXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT1hKXA9XztlbHNlIGlmKCEoYSBpbiBrKSl7aWYoXCJ2YWx1ZVwiPT1hJiZcImRlZmF1bHRWYWx1ZVwiaW4ga3x8XCJjaGVja2VkXCI9PWEmJlwiZGVmYXVsdENoZWNrZWRcImluIGspY29udGludWU7QSh1LGEsbnVsbCxfLHIpfWZvcihhIGluIGspXz1rW2FdLFwiY2hpbGRyZW5cIj09YT9kPV86XCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT1hP3Y9XzpcInZhbHVlXCI9PWE/Zz1fOlwiY2hlY2tlZFwiPT1hP209XzpjJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBffHxiW2FdPT09X3x8QSh1LGEsXyxiW2FdLHIpO2lmKHYpY3x8cCYmKHYuX19odG1sPT09cC5fX2h0bWx8fHYuX19odG1sPT09dS5pbm5lckhUTUwpfHwodS5pbm5lckhUTUw9di5fX2h0bWwpLHQuX19rPVtdO2Vsc2UgaWYocCYmKHUuaW5uZXJIVE1MPVwiXCIpLFModSx5KGQpP2Q6W2RdLHQsaSxvLFwiZm9yZWlnbk9iamVjdFwiPT09Qz9cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIjpyLGYsZSxmP2ZbMF06aS5fX2smJngoaSwwKSxjLHMpLG51bGwhPWYpZm9yKGE9Zi5sZW5ndGg7YS0tOyl3KGZbYV0pO2N8fChhPVwidmFsdWVcIixcInByb2dyZXNzXCI9PT1DJiZudWxsPT1nP3UucmVtb3ZlQXR0cmlidXRlKFwidmFsdWVcIik6dm9pZCAwIT09ZyYmKGchPT11W2FdfHxcInByb2dyZXNzXCI9PT1DJiYhZ3x8XCJvcHRpb25cIj09PUMmJmchPT1iW2FdKSYmQSh1LGEsZyxiW2FdLHIpLGE9XCJjaGVja2VkXCIsdm9pZCAwIT09bSYmbSE9PXVbYV0mJkEodSxhLG0sYlthXSxyKSl9cmV0dXJuIHV9ZnVuY3Rpb24gTihuLHUsdCl7dHJ5e2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4pe3ZhciBpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4uX191O2kmJm4uX191KCksaSYmbnVsbD09dXx8KG4uX191PW4odSkpfWVsc2Ugbi5jdXJyZW50PXV9Y2F0Y2gobil7bC5fX2Uobix0KX19ZnVuY3Rpb24gVihuLHUsdCl7dmFyIGksbztpZihsLnVubW91bnQmJmwudW5tb3VudChuKSwoaT1uLnJlZikmJihpLmN1cnJlbnQmJmkuY3VycmVudCE9PW4uX19lfHxOKGksbnVsbCx1KSksbnVsbCE9KGk9bi5fX2MpKXtpZihpLmNvbXBvbmVudFdpbGxVbm1vdW50KXRyeXtpLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2gobil7bC5fX2Uobix1KX1pLmJhc2U9aS5fX1A9bnVsbH1pZihpPW4uX19rKWZvcihvPTA7bzxpLmxlbmd0aDtvKyspaVtvXSYmVihpW29dLHUsdHx8XCJmdW5jdGlvblwiIT10eXBlb2Ygbi50eXBlKTt0fHx3KG4uX19lKSxuLl9fYz1uLl9fPW4uX19lPW4uX19kPXZvaWQgMH1mdW5jdGlvbiBxKG4sbCx1KXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3RvcihuLHUpfWZ1bmN0aW9uIEIodSx0LGkpe3ZhciBvLHIsZixlO2wuX18mJmwuX18odSx0KSxyPShvPVwiZnVuY3Rpb25cIj09dHlwZW9mIGkpP251bGw6aSYmaS5fX2t8fHQuX19rLGY9W10sZT1bXSxPKHQsdT0oIW8mJml8fHQpLl9faz1fKGIsbnVsbCxbdV0pLHJ8fGgsaCx0Lm5hbWVzcGFjZVVSSSwhbyYmaT9baV06cj9udWxsOnQuZmlyc3RDaGlsZD9uLmNhbGwodC5jaGlsZE5vZGVzKTpudWxsLGYsIW8mJmk/aTpyP3IuX19lOnQuZmlyc3RDaGlsZCxvLGUpLGooZix1LGUpfWZ1bmN0aW9uIEQobixsKXtCKG4sbCxEKX1mdW5jdGlvbiBFKGwsdSx0KXt2YXIgaSxvLHIsZixlPWQoe30sbC5wcm9wcyk7Zm9yKHIgaW4gbC50eXBlJiZsLnR5cGUuZGVmYXVsdFByb3BzJiYoZj1sLnR5cGUuZGVmYXVsdFByb3BzKSx1KVwia2V5XCI9PXI/aT11W3JdOlwicmVmXCI9PXI/bz11W3JdOmVbcl09dm9pZCAwPT09dVtyXSYmdm9pZCAwIT09Zj9mW3JdOnVbcl07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MiYmKGUuY2hpbGRyZW49YXJndW1lbnRzLmxlbmd0aD4zP24uY2FsbChhcmd1bWVudHMsMik6dCksZyhsLnR5cGUsZSxpfHxsLmtleSxvfHxsLnJlZixudWxsKX1mdW5jdGlvbiBHKG4sbCl7dmFyIHU9e19fYzpsPVwiX19jQ1wiK2ErKyxfXzpuLENvbnN1bWVyOmZ1bmN0aW9uKG4sbCl7cmV0dXJuIG4uY2hpbGRyZW4obCl9LFByb3ZpZGVyOmZ1bmN0aW9uKG4pe3ZhciB1LHQ7cmV0dXJuIHRoaXMuZ2V0Q2hpbGRDb250ZXh0fHwodT1bXSwodD17fSlbbF09dGhpcyx0aGlzLmdldENoaWxkQ29udGV4dD1mdW5jdGlvbigpe3JldHVybiB0fSx0aGlzLmNvbXBvbmVudFdpbGxVbm1vdW50PWZ1bmN0aW9uKCl7dT1udWxsfSx0aGlzLnNob3VsZENvbXBvbmVudFVwZGF0ZT1mdW5jdGlvbihuKXt0aGlzLnByb3BzLnZhbHVlIT09bi52YWx1ZSYmdS5zb21lKGZ1bmN0aW9uKG4pe24uX19lPSEwLE0obil9KX0sdGhpcy5zdWI9ZnVuY3Rpb24obil7dS5wdXNoKG4pO3ZhciBsPW4uY29tcG9uZW50V2lsbFVubW91bnQ7bi5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe3UmJnUuc3BsaWNlKHUuaW5kZXhPZihuKSwxKSxsJiZsLmNhbGwobil9fSksbi5jaGlsZHJlbn19O3JldHVybiB1LlByb3ZpZGVyLl9fPXUuQ29uc3VtZXIuY29udGV4dFR5cGU9dX1uPXYuc2xpY2UsbD17X19lOmZ1bmN0aW9uKG4sbCx1LHQpe2Zvcih2YXIgaSxvLHI7bD1sLl9fOylpZigoaT1sLl9fYykmJiFpLl9fKXRyeXtpZigobz1pLmNvbnN0cnVjdG9yKSYmbnVsbCE9by5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3ImJihpLnNldFN0YXRlKG8uZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKG4pKSxyPWkuX19kKSxudWxsIT1pLmNvbXBvbmVudERpZENhdGNoJiYoaS5jb21wb25lbnREaWRDYXRjaChuLHR8fHt9KSxyPWkuX19kKSxyKXJldHVybiBpLl9fRT1pfWNhdGNoKGwpe249bH10aHJvdyBufX0sdT0wLHQ9ZnVuY3Rpb24obil7cmV0dXJuIG51bGwhPW4mJm51bGw9PW4uY29uc3RydWN0b3J9LGsucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKG4sbCl7dmFyIHU7dT1udWxsIT10aGlzLl9fcyYmdGhpcy5fX3MhPT10aGlzLnN0YXRlP3RoaXMuX19zOnRoaXMuX19zPWQoe30sdGhpcy5zdGF0ZSksXCJmdW5jdGlvblwiPT10eXBlb2YgbiYmKG49bihkKHt9LHUpLHRoaXMucHJvcHMpKSxuJiZkKHUsbiksbnVsbCE9biYmdGhpcy5fX3YmJihsJiZ0aGlzLl9zYi5wdXNoKGwpLE0odGhpcykpfSxrLnByb3RvdHlwZS5mb3JjZVVwZGF0ZT1mdW5jdGlvbihuKXt0aGlzLl9fdiYmKHRoaXMuX19lPSEwLG4mJnRoaXMuX19oLnB1c2gobiksTSh0aGlzKSl9LGsucHJvdG90eXBlLnJlbmRlcj1iLGk9W10scj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBQcm9taXNlP1Byb21pc2UucHJvdG90eXBlLnRoZW4uYmluZChQcm9taXNlLnJlc29sdmUoKSk6c2V0VGltZW91dCxmPWZ1bmN0aW9uKG4sbCl7cmV0dXJuIG4uX192Ll9fYi1sLl9fdi5fX2J9LFAuX19yPTAsZT0wLGM9RighMSkscz1GKCEwKSxhPTA7ZXhwb3J0e2sgYXMgQ29tcG9uZW50LGIgYXMgRnJhZ21lbnQsRSBhcyBjbG9uZUVsZW1lbnQsRyBhcyBjcmVhdGVDb250ZXh0LF8gYXMgY3JlYXRlRWxlbWVudCxtIGFzIGNyZWF0ZVJlZixfIGFzIGgsRCBhcyBoeWRyYXRlLHQgYXMgaXNWYWxpZEVsZW1lbnQsbCBhcyBvcHRpb25zLEIgYXMgcmVuZGVyLEggYXMgdG9DaGlsZEFycmF5fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByZWFjdC5tb2R1bGUuanMubWFwXG4iLCJpbXBvcnR7b3B0aW9ucyBhcyBufWZyb21cInByZWFjdFwiO3ZhciB0LHIsdSxpLG89MCxmPVtdLGM9bixlPWMuX19iLGE9Yy5fX3Isdj1jLmRpZmZlZCxsPWMuX19jLG09Yy51bm1vdW50LHM9Yy5fXztmdW5jdGlvbiBkKG4sdCl7Yy5fX2gmJmMuX19oKHIsbixvfHx0KSxvPTA7dmFyIHU9ci5fX0h8fChyLl9fSD17X186W10sX19oOltdfSk7cmV0dXJuIG4+PXUuX18ubGVuZ3RoJiZ1Ll9fLnB1c2goe30pLHUuX19bbl19ZnVuY3Rpb24gaChuKXtyZXR1cm4gbz0xLHAoRCxuKX1mdW5jdGlvbiBwKG4sdSxpKXt2YXIgbz1kKHQrKywyKTtpZihvLnQ9biwhby5fX2MmJihvLl9fPVtpP2kodSk6RCh2b2lkIDAsdSksZnVuY3Rpb24obil7dmFyIHQ9by5fX04/by5fX05bMF06by5fX1swXSxyPW8udCh0LG4pO3QhPT1yJiYoby5fX049W3Isby5fX1sxXV0sby5fX2Muc2V0U3RhdGUoe30pKX1dLG8uX19jPXIsIXIudSkpe3ZhciBmPWZ1bmN0aW9uKG4sdCxyKXtpZighby5fX2MuX19IKXJldHVybiEwO3ZhciB1PW8uX19jLl9fSC5fXy5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuISFuLl9fY30pO2lmKHUuZXZlcnkoZnVuY3Rpb24obil7cmV0dXJuIW4uX19OfSkpcmV0dXJuIWN8fGMuY2FsbCh0aGlzLG4sdCxyKTt2YXIgaT0hMTtyZXR1cm4gdS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lmKG4uX19OKXt2YXIgdD1uLl9fWzBdO24uX189bi5fX04sbi5fX049dm9pZCAwLHQhPT1uLl9fWzBdJiYoaT0hMCl9fSksISghaSYmby5fX2MucHJvcHM9PT1uKSYmKCFjfHxjLmNhbGwodGhpcyxuLHQscikpfTtyLnU9ITA7dmFyIGM9ci5zaG91bGRDb21wb25lbnRVcGRhdGUsZT1yLmNvbXBvbmVudFdpbGxVcGRhdGU7ci5jb21wb25lbnRXaWxsVXBkYXRlPWZ1bmN0aW9uKG4sdCxyKXtpZih0aGlzLl9fZSl7dmFyIHU9YztjPXZvaWQgMCxmKG4sdCxyKSxjPXV9ZSYmZS5jYWxsKHRoaXMsbix0LHIpfSxyLnNob3VsZENvbXBvbmVudFVwZGF0ZT1mfXJldHVybiBvLl9fTnx8by5fX31mdW5jdGlvbiB5KG4sdSl7dmFyIGk9ZCh0KyssMyk7IWMuX19zJiZDKGkuX19ILHUpJiYoaS5fXz1uLGkuaT11LHIuX19ILl9faC5wdXNoKGkpKX1mdW5jdGlvbiBfKG4sdSl7dmFyIGk9ZCh0KyssNCk7IWMuX19zJiZDKGkuX19ILHUpJiYoaS5fXz1uLGkuaT11LHIuX19oLnB1c2goaSkpfWZ1bmN0aW9uIEEobil7cmV0dXJuIG89NSxUKGZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bn19LFtdKX1mdW5jdGlvbiBGKG4sdCxyKXtvPTYsXyhmdW5jdGlvbigpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIG4/KG4odCgpKSxmdW5jdGlvbigpe3JldHVybiBuKG51bGwpfSk6bj8obi5jdXJyZW50PXQoKSxmdW5jdGlvbigpe3JldHVybiBuLmN1cnJlbnQ9bnVsbH0pOnZvaWQgMH0sbnVsbD09cj9yOnIuY29uY2F0KG4pKX1mdW5jdGlvbiBUKG4scil7dmFyIHU9ZCh0KyssNyk7cmV0dXJuIEModS5fX0gscikmJih1Ll9fPW4oKSx1Ll9fSD1yLHUuX19oPW4pLHUuX199ZnVuY3Rpb24gcShuLHQpe3JldHVybiBvPTgsVChmdW5jdGlvbigpe3JldHVybiBufSx0KX1mdW5jdGlvbiB4KG4pe3ZhciB1PXIuY29udGV4dFtuLl9fY10saT1kKHQrKyw5KTtyZXR1cm4gaS5jPW4sdT8obnVsbD09aS5fXyYmKGkuX189ITAsdS5zdWIocikpLHUucHJvcHMudmFsdWUpOm4uX199ZnVuY3Rpb24gUChuLHQpe2MudXNlRGVidWdWYWx1ZSYmYy51c2VEZWJ1Z1ZhbHVlKHQ/dChuKTpuKX1mdW5jdGlvbiBiKG4pe3ZhciB1PWQodCsrLDEwKSxpPWgoKTtyZXR1cm4gdS5fXz1uLHIuY29tcG9uZW50RGlkQ2F0Y2h8fChyLmNvbXBvbmVudERpZENhdGNoPWZ1bmN0aW9uKG4sdCl7dS5fXyYmdS5fXyhuLHQpLGlbMV0obil9KSxbaVswXSxmdW5jdGlvbigpe2lbMV0odm9pZCAwKX1dfWZ1bmN0aW9uIGcoKXt2YXIgbj1kKHQrKywxMSk7aWYoIW4uX18pe2Zvcih2YXIgdT1yLl9fdjtudWxsIT09dSYmIXUuX19tJiZudWxsIT09dS5fXzspdT11Ll9fO3ZhciBpPXUuX19tfHwodS5fX209WzAsMF0pO24uX189XCJQXCIraVswXStcIi1cIitpWzFdKyt9cmV0dXJuIG4uX199ZnVuY3Rpb24gaigpe2Zvcih2YXIgbjtuPWYuc2hpZnQoKTspaWYobi5fX1AmJm4uX19IKXRyeXtuLl9fSC5fX2guZm9yRWFjaCh6KSxuLl9fSC5fX2guZm9yRWFjaChCKSxuLl9fSC5fX2g9W119Y2F0Y2godCl7bi5fX0guX19oPVtdLGMuX19lKHQsbi5fX3YpfX1jLl9fYj1mdW5jdGlvbihuKXtyPW51bGwsZSYmZShuKX0sYy5fXz1mdW5jdGlvbihuLHQpe24mJnQuX19rJiZ0Ll9fay5fX20mJihuLl9fbT10Ll9fay5fX20pLHMmJnMobix0KX0sYy5fX3I9ZnVuY3Rpb24obil7YSYmYShuKSx0PTA7dmFyIGk9KHI9bi5fX2MpLl9fSDtpJiYodT09PXI/KGkuX19oPVtdLHIuX19oPVtdLGkuX18uZm9yRWFjaChmdW5jdGlvbihuKXtuLl9fTiYmKG4uX189bi5fX04pLG4uaT1uLl9fTj12b2lkIDB9KSk6KGkuX19oLmZvckVhY2goeiksaS5fX2guZm9yRWFjaChCKSxpLl9faD1bXSx0PTApKSx1PXJ9LGMuZGlmZmVkPWZ1bmN0aW9uKG4pe3YmJnYobik7dmFyIHQ9bi5fX2M7dCYmdC5fX0gmJih0Ll9fSC5fX2gubGVuZ3RoJiYoMSE9PWYucHVzaCh0KSYmaT09PWMucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHwoKGk9Yy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpfHx3KShqKSksdC5fX0guX18uZm9yRWFjaChmdW5jdGlvbihuKXtuLmkmJihuLl9fSD1uLmkpLG4uaT12b2lkIDB9KSksdT1yPW51bGx9LGMuX19jPWZ1bmN0aW9uKG4sdCl7dC5zb21lKGZ1bmN0aW9uKG4pe3RyeXtuLl9faC5mb3JFYWNoKHopLG4uX19oPW4uX19oLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4hbi5fX3x8QihuKX0pfWNhdGNoKHIpe3Quc29tZShmdW5jdGlvbihuKXtuLl9faCYmKG4uX19oPVtdKX0pLHQ9W10sYy5fX2UocixuLl9fdil9fSksbCYmbChuLHQpfSxjLnVubW91bnQ9ZnVuY3Rpb24obil7bSYmbShuKTt2YXIgdCxyPW4uX19jO3ImJnIuX19IJiYoci5fX0guX18uZm9yRWFjaChmdW5jdGlvbihuKXt0cnl7eihuKX1jYXRjaChuKXt0PW59fSksci5fX0g9dm9pZCAwLHQmJmMuX19lKHQsci5fX3YpKX07dmFyIGs9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lO2Z1bmN0aW9uIHcobil7dmFyIHQscj1mdW5jdGlvbigpe2NsZWFyVGltZW91dCh1KSxrJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0KSxzZXRUaW1lb3V0KG4pfSx1PXNldFRpbWVvdXQociwxMDApO2smJih0PXJlcXVlc3RBbmltYXRpb25GcmFtZShyKSl9ZnVuY3Rpb24geihuKXt2YXIgdD1yLHU9bi5fX2M7XCJmdW5jdGlvblwiPT10eXBlb2YgdSYmKG4uX19jPXZvaWQgMCx1KCkpLHI9dH1mdW5jdGlvbiBCKG4pe3ZhciB0PXI7bi5fX2M9bi5fXygpLHI9dH1mdW5jdGlvbiBDKG4sdCl7cmV0dXJuIW58fG4ubGVuZ3RoIT09dC5sZW5ndGh8fHQuc29tZShmdW5jdGlvbih0LHIpe3JldHVybiB0IT09bltyXX0pfWZ1bmN0aW9uIEQobix0KXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Qobik6dH1leHBvcnR7cSBhcyB1c2VDYWxsYmFjayx4IGFzIHVzZUNvbnRleHQsUCBhcyB1c2VEZWJ1Z1ZhbHVlLHkgYXMgdXNlRWZmZWN0LGIgYXMgdXNlRXJyb3JCb3VuZGFyeSxnIGFzIHVzZUlkLEYgYXMgdXNlSW1wZXJhdGl2ZUhhbmRsZSxfIGFzIHVzZUxheW91dEVmZmVjdCxUIGFzIHVzZU1lbW8scCBhcyB1c2VSZWR1Y2VyLEEgYXMgdXNlUmVmLGggYXMgdXNlU3RhdGV9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aG9va3MubW9kdWxlLmpzLm1hcFxuIiwiaW1wb3J0e0NvbXBvbmVudCBhcyBuLGNyZWF0ZUVsZW1lbnQgYXMgdCxvcHRpb25zIGFzIGUsdG9DaGlsZEFycmF5IGFzIHIsRnJhZ21lbnQgYXMgdSxyZW5kZXIgYXMgbyxoeWRyYXRlIGFzIGksY3JlYXRlQ29udGV4dCBhcyBjLGNyZWF0ZVJlZiBhcyBsLGNsb25lRWxlbWVudCBhcyBmfWZyb21cInByZWFjdFwiO2V4cG9ydHtDb21wb25lbnQsRnJhZ21lbnQsY3JlYXRlQ29udGV4dCxjcmVhdGVFbGVtZW50LGNyZWF0ZVJlZn1mcm9tXCJwcmVhY3RcIjtpbXBvcnR7dXNlQ2FsbGJhY2sgYXMgYSx1c2VDb250ZXh0IGFzIHMsdXNlRGVidWdWYWx1ZSBhcyBoLHVzZUVmZmVjdCBhcyB2LHVzZUlkIGFzIGQsdXNlSW1wZXJhdGl2ZUhhbmRsZSBhcyBwLHVzZUxheW91dEVmZmVjdCBhcyBtLHVzZU1lbW8gYXMgeSx1c2VSZWR1Y2VyIGFzIF8sdXNlUmVmIGFzIGIsdXNlU3RhdGUgYXMgU31mcm9tXCJwcmVhY3QvaG9va3NcIjtleHBvcnQqZnJvbVwicHJlYWN0L2hvb2tzXCI7ZnVuY3Rpb24gZyhuLHQpe2Zvcih2YXIgZSBpbiB0KW5bZV09dFtlXTtyZXR1cm4gbn1mdW5jdGlvbiBFKG4sdCl7Zm9yKHZhciBlIGluIG4paWYoXCJfX3NvdXJjZVwiIT09ZSYmIShlIGluIHQpKXJldHVybiEwO2Zvcih2YXIgciBpbiB0KWlmKFwiX19zb3VyY2VcIiE9PXImJm5bcl0hPT10W3JdKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEMobix0KXt0aGlzLnByb3BzPW4sdGhpcy5jb250ZXh0PXR9ZnVuY3Rpb24geChuLGUpe2Z1bmN0aW9uIHIobil7dmFyIHQ9dGhpcy5wcm9wcy5yZWYscj10PT1uLnJlZjtyZXR1cm4hciYmdCYmKHQuY2FsbD90KG51bGwpOnQuY3VycmVudD1udWxsKSxlPyFlKHRoaXMucHJvcHMsbil8fCFyOkUodGhpcy5wcm9wcyxuKX1mdW5jdGlvbiB1KGUpe3JldHVybiB0aGlzLnNob3VsZENvbXBvbmVudFVwZGF0ZT1yLHQobixlKX1yZXR1cm4gdS5kaXNwbGF5TmFtZT1cIk1lbW8oXCIrKG4uZGlzcGxheU5hbWV8fG4ubmFtZSkrXCIpXCIsdS5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD0hMCx1Ll9fZj0hMCx1fShDLnByb3RvdHlwZT1uZXcgbikuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITAsQy5wcm90b3R5cGUuc2hvdWxkQ29tcG9uZW50VXBkYXRlPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIEUodGhpcy5wcm9wcyxuKXx8RSh0aGlzLnN0YXRlLHQpfTt2YXIgUj1lLl9fYjtlLl9fYj1mdW5jdGlvbihuKXtuLnR5cGUmJm4udHlwZS5fX2YmJm4ucmVmJiYobi5wcm9wcy5yZWY9bi5yZWYsbi5yZWY9bnVsbCksUiYmUihuKX07dmFyIHc9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvciYmU3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpfHwzOTExO2Z1bmN0aW9uIGsobil7ZnVuY3Rpb24gdCh0KXt2YXIgZT1nKHt9LHQpO3JldHVybiBkZWxldGUgZS5yZWYsbihlLHQucmVmfHxudWxsKX1yZXR1cm4gdC4kJHR5cGVvZj13LHQucmVuZGVyPXQsdC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD10Ll9fZj0hMCx0LmRpc3BsYXlOYW1lPVwiRm9yd2FyZFJlZihcIisobi5kaXNwbGF5TmFtZXx8bi5uYW1lKStcIilcIix0fXZhciBJPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIG51bGw9PW4/bnVsbDpyKHIobikubWFwKHQpKX0sTj17bWFwOkksZm9yRWFjaDpJLGNvdW50OmZ1bmN0aW9uKG4pe3JldHVybiBuP3IobikubGVuZ3RoOjB9LG9ubHk6ZnVuY3Rpb24obil7dmFyIHQ9cihuKTtpZigxIT09dC5sZW5ndGgpdGhyb3dcIkNoaWxkcmVuLm9ubHlcIjtyZXR1cm4gdFswXX0sdG9BcnJheTpyfSxNPWUuX19lO2UuX19lPWZ1bmN0aW9uKG4sdCxlLHIpe2lmKG4udGhlbilmb3IodmFyIHUsbz10O289by5fXzspaWYoKHU9by5fX2MpJiZ1Ll9fYylyZXR1cm4gbnVsbD09dC5fX2UmJih0Ll9fZT1lLl9fZSx0Ll9faz1lLl9fayksdS5fX2Mobix0KTtNKG4sdCxlLHIpfTt2YXIgVD1lLnVubW91bnQ7ZnVuY3Rpb24gQShuLHQsZSl7cmV0dXJuIG4mJihuLl9fYyYmbi5fX2MuX19IJiYobi5fX2MuX19ILl9fLmZvckVhY2goZnVuY3Rpb24obil7XCJmdW5jdGlvblwiPT10eXBlb2Ygbi5fX2MmJm4uX19jKCl9KSxuLl9fYy5fX0g9bnVsbCksbnVsbCE9KG49Zyh7fSxuKSkuX19jJiYobi5fX2MuX19QPT09ZSYmKG4uX19jLl9fUD10KSxuLl9fYz1udWxsKSxuLl9faz1uLl9fayYmbi5fX2subWFwKGZ1bmN0aW9uKG4pe3JldHVybiBBKG4sdCxlKX0pKSxufWZ1bmN0aW9uIEQobix0LGUpe3JldHVybiBuJiZlJiYobi5fX3Y9bnVsbCxuLl9faz1uLl9fayYmbi5fX2subWFwKGZ1bmN0aW9uKG4pe3JldHVybiBEKG4sdCxlKX0pLG4uX19jJiZuLl9fYy5fX1A9PT10JiYobi5fX2UmJmUuYXBwZW5kQ2hpbGQobi5fX2UpLG4uX19jLl9fZT0hMCxuLl9fYy5fX1A9ZSkpLG59ZnVuY3Rpb24gTCgpe3RoaXMuX191PTAsdGhpcy50PW51bGwsdGhpcy5fX2I9bnVsbH1mdW5jdGlvbiBPKG4pe3ZhciB0PW4uX18uX19jO3JldHVybiB0JiZ0Ll9fYSYmdC5fX2Eobil9ZnVuY3Rpb24gRihuKXt2YXIgZSxyLHU7ZnVuY3Rpb24gbyhvKXtpZihlfHwoZT1uKCkpLnRoZW4oZnVuY3Rpb24obil7cj1uLmRlZmF1bHR8fG59LGZ1bmN0aW9uKG4pe3U9bn0pLHUpdGhyb3cgdTtpZighcil0aHJvdyBlO3JldHVybiB0KHIsbyl9cmV0dXJuIG8uZGlzcGxheU5hbWU9XCJMYXp5XCIsby5fX2Y9ITAsb31mdW5jdGlvbiBVKCl7dGhpcy51PW51bGwsdGhpcy5vPW51bGx9ZS51bm1vdW50PWZ1bmN0aW9uKG4pe3ZhciB0PW4uX19jO3QmJnQuX19SJiZ0Ll9fUigpLHQmJjMyJm4uX191JiYobi50eXBlPW51bGwpLFQmJlQobil9LChMLnByb3RvdHlwZT1uZXcgbikuX19jPWZ1bmN0aW9uKG4sdCl7dmFyIGU9dC5fX2Mscj10aGlzO251bGw9PXIudCYmKHIudD1bXSksci50LnB1c2goZSk7dmFyIHU9TyhyLl9fdiksbz0hMSxpPWZ1bmN0aW9uKCl7b3x8KG89ITAsZS5fX1I9bnVsbCx1P3UoYyk6YygpKX07ZS5fX1I9aTt2YXIgYz1mdW5jdGlvbigpe2lmKCEtLXIuX191KXtpZihyLnN0YXRlLl9fYSl7dmFyIG49ci5zdGF0ZS5fX2E7ci5fX3YuX19rWzBdPUQobixuLl9fYy5fX1Asbi5fX2MuX19PKX12YXIgdDtmb3Ioci5zZXRTdGF0ZSh7X19hOnIuX19iPW51bGx9KTt0PXIudC5wb3AoKTspdC5mb3JjZVVwZGF0ZSgpfX07ci5fX3UrK3x8MzImdC5fX3V8fHIuc2V0U3RhdGUoe19fYTpyLl9fYj1yLl9fdi5fX2tbMF19KSxuLnRoZW4oaSxpKX0sTC5wcm90b3R5cGUuY29tcG9uZW50V2lsbFVubW91bnQ9ZnVuY3Rpb24oKXt0aGlzLnQ9W119LEwucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihuLGUpe2lmKHRoaXMuX19iKXtpZih0aGlzLl9fdi5fX2spe3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksbz10aGlzLl9fdi5fX2tbMF0uX19jO3RoaXMuX192Ll9fa1swXT1BKHRoaXMuX19iLHIsby5fX089by5fX1ApfXRoaXMuX19iPW51bGx9dmFyIGk9ZS5fX2EmJnQodSxudWxsLG4uZmFsbGJhY2spO3JldHVybiBpJiYoaS5fX3UmPS0zMyksW3QodSxudWxsLGUuX19hP251bGw6bi5jaGlsZHJlbiksaV19O3ZhciBWPWZ1bmN0aW9uKG4sdCxlKXtpZigrK2VbMV09PT1lWzBdJiZuLm8uZGVsZXRlKHQpLG4ucHJvcHMucmV2ZWFsT3JkZXImJihcInRcIiE9PW4ucHJvcHMucmV2ZWFsT3JkZXJbMF18fCFuLm8uc2l6ZSkpZm9yKGU9bi51O2U7KXtmb3IoO2UubGVuZ3RoPjM7KWUucG9wKCkoKTtpZihlWzFdPGVbMF0pYnJlYWs7bi51PWU9ZVsyXX19O2Z1bmN0aW9uIFcobil7cmV0dXJuIHRoaXMuZ2V0Q2hpbGRDb250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uY29udGV4dH0sbi5jaGlsZHJlbn1mdW5jdGlvbiBQKG4pe3ZhciBlPXRoaXMscj1uLmk7ZS5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe28obnVsbCxlLmwpLGUubD1udWxsLGUuaT1udWxsfSxlLmkmJmUuaSE9PXImJmUuY29tcG9uZW50V2lsbFVubW91bnQoKSxlLmx8fChlLmk9cixlLmw9e25vZGVUeXBlOjEscGFyZW50Tm9kZTpyLGNoaWxkTm9kZXM6W10sY29udGFpbnM6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24obil7dGhpcy5jaGlsZE5vZGVzLnB1c2gobiksZS5pLmFwcGVuZENoaWxkKG4pfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24obix0KXt0aGlzLmNoaWxkTm9kZXMucHVzaChuKSxlLmkuYXBwZW5kQ2hpbGQobil9LHJlbW92ZUNoaWxkOmZ1bmN0aW9uKG4pe3RoaXMuY2hpbGROb2Rlcy5zcGxpY2UodGhpcy5jaGlsZE5vZGVzLmluZGV4T2Yobik+Pj4xLDEpLGUuaS5yZW1vdmVDaGlsZChuKX19KSxvKHQoVyx7Y29udGV4dDplLmNvbnRleHR9LG4uX192KSxlLmwpfWZ1bmN0aW9uIGoobixlKXt2YXIgcj10KFAse19fdjpuLGk6ZX0pO3JldHVybiByLmNvbnRhaW5lckluZm89ZSxyfShVLnByb3RvdHlwZT1uZXcgbikuX19hPWZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMsZT1PKHQuX192KSxyPXQuby5nZXQobik7cmV0dXJuIHJbMF0rKyxmdW5jdGlvbih1KXt2YXIgbz1mdW5jdGlvbigpe3QucHJvcHMucmV2ZWFsT3JkZXI/KHIucHVzaCh1KSxWKHQsbixyKSk6dSgpfTtlP2Uobyk6bygpfX0sVS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKG4pe3RoaXMudT1udWxsLHRoaXMubz1uZXcgTWFwO3ZhciB0PXIobi5jaGlsZHJlbik7bi5yZXZlYWxPcmRlciYmXCJiXCI9PT1uLnJldmVhbE9yZGVyWzBdJiZ0LnJldmVyc2UoKTtmb3IodmFyIGU9dC5sZW5ndGg7ZS0tOyl0aGlzLm8uc2V0KHRbZV0sdGhpcy51PVsxLDAsdGhpcy51XSk7cmV0dXJuIG4uY2hpbGRyZW59LFUucHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZT1VLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudD1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5vLmZvckVhY2goZnVuY3Rpb24odCxlKXtWKG4sZSx0KX0pfTt2YXIgej1cInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuZm9yJiZTeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKXx8NjAxMDMsQj0vXig/OmFjY2VudHxhbGlnbm1lbnR8YXJhYmljfGJhc2VsaW5lfGNhcHxjbGlwKD8hUGF0aFUpfGNvbG9yfGRvbWluYW50fGZpbGx8Zmxvb2R8Zm9udHxnbHlwaCg/IVIpfGhvcml6fGltYWdlKCFTKXxsZXR0ZXJ8bGlnaHRpbmd8bWFya2VyKD8hSHxXfFUpfG92ZXJsaW5lfHBhaW50fHBvaW50ZXJ8c2hhcGV8c3RvcHxzdHJpa2V0aHJvdWdofHN0cm9rZXx0ZXh0KD8hTCl8dHJhbnNmb3JtfHVuZGVybGluZXx1bmljb2RlfHVuaXRzfHZ8dmVjdG9yfHZlcnR8d29yZHx3cml0aW5nfHgoPyFDKSlbQS1aXS8sSD0vXm9uKEFuaXxUcmF8VG91fEJlZm9yZUlucHxDb21wbykvLFo9L1tBLVowLTldL2csWT1cInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQsJD1mdW5jdGlvbihuKXtyZXR1cm4oXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbCgpPy9maWx8Y2hlfHJhZC86L2ZpbHxjaGV8cmEvKS50ZXN0KG4pfTtmdW5jdGlvbiBxKG4sdCxlKXtyZXR1cm4gbnVsbD09dC5fX2smJih0LnRleHRDb250ZW50PVwiXCIpLG8obix0KSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiZlKCksbj9uLl9fYzpudWxsfWZ1bmN0aW9uIEcobix0LGUpe3JldHVybiBpKG4sdCksXCJmdW5jdGlvblwiPT10eXBlb2YgZSYmZSgpLG4/bi5fX2M6bnVsbH1uLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LFtcImNvbXBvbmVudFdpbGxNb3VudFwiLFwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1wiLFwiY29tcG9uZW50V2lsbFVwZGF0ZVwiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSx0LHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbXCJVTlNBRkVfXCIrdF19LHNldDpmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyx0LHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pfX0pfSk7dmFyIEo9ZS5ldmVudDtmdW5jdGlvbiBLKCl7fWZ1bmN0aW9uIFEoKXtyZXR1cm4gdGhpcy5jYW5jZWxCdWJibGV9ZnVuY3Rpb24gWCgpe3JldHVybiB0aGlzLmRlZmF1bHRQcmV2ZW50ZWR9ZS5ldmVudD1mdW5jdGlvbihuKXtyZXR1cm4gSiYmKG49SihuKSksbi5wZXJzaXN0PUssbi5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1RLG4uaXNEZWZhdWx0UHJldmVudGVkPVgsbi5uYXRpdmVFdmVudD1ufTt2YXIgbm4sdG49e2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNsYXNzfX0sZW49ZS52bm9kZTtlLnZub2RlPWZ1bmN0aW9uKG4pe1wic3RyaW5nXCI9PXR5cGVvZiBuLnR5cGUmJmZ1bmN0aW9uKG4pe3ZhciB0PW4ucHJvcHMsZT1uLnR5cGUsdT17fSxvPS0xPT09ZS5pbmRleE9mKFwiLVwiKTtmb3IodmFyIGkgaW4gdCl7dmFyIGM9dFtpXTtpZighKFwidmFsdWVcIj09PWkmJlwiZGVmYXVsdFZhbHVlXCJpbiB0JiZudWxsPT1jfHxZJiZcImNoaWxkcmVuXCI9PT1pJiZcIm5vc2NyaXB0XCI9PT1lfHxcImNsYXNzXCI9PT1pfHxcImNsYXNzTmFtZVwiPT09aSkpe3ZhciBsPWkudG9Mb3dlckNhc2UoKTtcImRlZmF1bHRWYWx1ZVwiPT09aSYmXCJ2YWx1ZVwiaW4gdCYmbnVsbD09dC52YWx1ZT9pPVwidmFsdWVcIjpcImRvd25sb2FkXCI9PT1pJiYhMD09PWM/Yz1cIlwiOlwidHJhbnNsYXRlXCI9PT1sJiZcIm5vXCI9PT1jP2M9ITE6XCJvXCI9PT1sWzBdJiZcIm5cIj09PWxbMV0/XCJvbmRvdWJsZWNsaWNrXCI9PT1sP2k9XCJvbmRibGNsaWNrXCI6XCJvbmNoYW5nZVwiIT09bHx8XCJpbnB1dFwiIT09ZSYmXCJ0ZXh0YXJlYVwiIT09ZXx8JCh0LnR5cGUpP1wib25mb2N1c1wiPT09bD9pPVwib25mb2N1c2luXCI6XCJvbmJsdXJcIj09PWw/aT1cIm9uZm9jdXNvdXRcIjpILnRlc3QoaSkmJihpPWwpOmw9aT1cIm9uaW5wdXRcIjpvJiZCLnRlc3QoaSk/aT1pLnJlcGxhY2UoWixcIi0kJlwiKS50b0xvd2VyQ2FzZSgpOm51bGw9PT1jJiYoYz12b2lkIDApLFwib25pbnB1dFwiPT09bCYmdVtpPWxdJiYoaT1cIm9uaW5wdXRDYXB0dXJlXCIpLHVbaV09Y319XCJzZWxlY3RcIj09ZSYmdS5tdWx0aXBsZSYmQXJyYXkuaXNBcnJheSh1LnZhbHVlKSYmKHUudmFsdWU9cih0LmNoaWxkcmVuKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24ucHJvcHMuc2VsZWN0ZWQ9LTEhPXUudmFsdWUuaW5kZXhPZihuLnByb3BzLnZhbHVlKX0pKSxcInNlbGVjdFwiPT1lJiZudWxsIT11LmRlZmF1bHRWYWx1ZSYmKHUudmFsdWU9cih0LmNoaWxkcmVuKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24ucHJvcHMuc2VsZWN0ZWQ9dS5tdWx0aXBsZT8tMSE9dS5kZWZhdWx0VmFsdWUuaW5kZXhPZihuLnByb3BzLnZhbHVlKTp1LmRlZmF1bHRWYWx1ZT09bi5wcm9wcy52YWx1ZX0pKSx0LmNsYXNzJiYhdC5jbGFzc05hbWU/KHUuY2xhc3M9dC5jbGFzcyxPYmplY3QuZGVmaW5lUHJvcGVydHkodSxcImNsYXNzTmFtZVwiLHRuKSk6KHQuY2xhc3NOYW1lJiYhdC5jbGFzc3x8dC5jbGFzcyYmdC5jbGFzc05hbWUpJiYodS5jbGFzcz11LmNsYXNzTmFtZT10LmNsYXNzTmFtZSksbi5wcm9wcz11fShuKSxuLiQkdHlwZW9mPXosZW4mJmVuKG4pfTt2YXIgcm49ZS5fX3I7ZS5fX3I9ZnVuY3Rpb24obil7cm4mJnJuKG4pLG5uPW4uX19jfTt2YXIgdW49ZS5kaWZmZWQ7ZS5kaWZmZWQ9ZnVuY3Rpb24obil7dW4mJnVuKG4pO3ZhciB0PW4ucHJvcHMsZT1uLl9fZTtudWxsIT1lJiZcInRleHRhcmVhXCI9PT1uLnR5cGUmJlwidmFsdWVcImluIHQmJnQudmFsdWUhPT1lLnZhbHVlJiYoZS52YWx1ZT1udWxsPT10LnZhbHVlP1wiXCI6dC52YWx1ZSksbm49bnVsbH07dmFyIG9uPXtSZWFjdEN1cnJlbnREaXNwYXRjaGVyOntjdXJyZW50OntyZWFkQ29udGV4dDpmdW5jdGlvbihuKXtyZXR1cm4gbm4uX19uW24uX19jXS5wcm9wcy52YWx1ZX0sdXNlQ2FsbGJhY2s6YSx1c2VDb250ZXh0OnMsdXNlRGVidWdWYWx1ZTpoLHVzZURlZmVycmVkVmFsdWU6Ym4sdXNlRWZmZWN0OnYsdXNlSWQ6ZCx1c2VJbXBlcmF0aXZlSGFuZGxlOnAsdXNlSW5zZXJ0aW9uRWZmZWN0OmduLHVzZUxheW91dEVmZmVjdDptLHVzZU1lbW86eSx1c2VSZWR1Y2VyOl8sdXNlUmVmOmIsdXNlU3RhdGU6Uyx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpDbix1c2VUcmFuc2l0aW9uOlNufX19LGNuPVwiMTguMy4xXCI7ZnVuY3Rpb24gbG4obil7cmV0dXJuIHQuYmluZChudWxsLG4pfWZ1bmN0aW9uIGZuKG4pe3JldHVybiEhbiYmbi4kJHR5cGVvZj09PXp9ZnVuY3Rpb24gYW4obil7cmV0dXJuIGZuKG4pJiZuLnR5cGU9PT11fWZ1bmN0aW9uIHNuKG4pe3JldHVybiEhbiYmISFuLmRpc3BsYXlOYW1lJiYoXCJzdHJpbmdcIj09dHlwZW9mIG4uZGlzcGxheU5hbWV8fG4uZGlzcGxheU5hbWUgaW5zdGFuY2VvZiBTdHJpbmcpJiZuLmRpc3BsYXlOYW1lLnN0YXJ0c1dpdGgoXCJNZW1vKFwiKX1mdW5jdGlvbiBobihuKXtyZXR1cm4gZm4obik/Zi5hcHBseShudWxsLGFyZ3VtZW50cyk6bn1mdW5jdGlvbiB2bihuKXtyZXR1cm4hIW4uX19rJiYobyhudWxsLG4pLCEwKX1mdW5jdGlvbiBkbihuKXtyZXR1cm4gbiYmKG4uYmFzZXx8MT09PW4ubm9kZVR5cGUmJm4pfHxudWxsfXZhciBwbj1mdW5jdGlvbihuLHQpe3JldHVybiBuKHQpfSxtbj1mdW5jdGlvbihuLHQpe3JldHVybiBuKHQpfSx5bj11O2Z1bmN0aW9uIF9uKG4pe24oKX1mdW5jdGlvbiBibihuKXtyZXR1cm4gbn1mdW5jdGlvbiBTbigpe3JldHVyblshMSxfbl19dmFyIGduPW0sRW49Zm47ZnVuY3Rpb24gQ24obix0KXt2YXIgZT10KCkscj1TKHtoOntfXzplLHY6dH19KSx1PXJbMF0uaCxvPXJbMV07cmV0dXJuIG0oZnVuY3Rpb24oKXt1Ll9fPWUsdS52PXQseG4odSkmJm8oe2g6dX0pfSxbbixlLHRdKSx2KGZ1bmN0aW9uKCl7cmV0dXJuIHhuKHUpJiZvKHtoOnV9KSxuKGZ1bmN0aW9uKCl7eG4odSkmJm8oe2g6dX0pfSl9LFtuXSksZX1mdW5jdGlvbiB4bihuKXt2YXIgdCxlLHI9bi52LHU9bi5fXzt0cnl7dmFyIG89cigpO3JldHVybiEoKHQ9dSk9PT0oZT1vKSYmKDAhPT10fHwxL3Q9PTEvZSl8fHQhPXQmJmUhPWUpfWNhdGNoKG4pe3JldHVybiEwfX12YXIgUm49e3VzZVN0YXRlOlMsdXNlSWQ6ZCx1c2VSZWR1Y2VyOl8sdXNlRWZmZWN0OnYsdXNlTGF5b3V0RWZmZWN0Om0sdXNlSW5zZXJ0aW9uRWZmZWN0OmduLHVzZVRyYW5zaXRpb246U24sdXNlRGVmZXJyZWRWYWx1ZTpibix1c2VTeW5jRXh0ZXJuYWxTdG9yZTpDbixzdGFydFRyYW5zaXRpb246X24sdXNlUmVmOmIsdXNlSW1wZXJhdGl2ZUhhbmRsZTpwLHVzZU1lbW86eSx1c2VDYWxsYmFjazphLHVzZUNvbnRleHQ6cyx1c2VEZWJ1Z1ZhbHVlOmgsdmVyc2lvbjpcIjE4LjMuMVwiLENoaWxkcmVuOk4scmVuZGVyOnEsaHlkcmF0ZTpHLHVubW91bnRDb21wb25lbnRBdE5vZGU6dm4sY3JlYXRlUG9ydGFsOmosY3JlYXRlRWxlbWVudDp0LGNyZWF0ZUNvbnRleHQ6YyxjcmVhdGVGYWN0b3J5OmxuLGNsb25lRWxlbWVudDpobixjcmVhdGVSZWY6bCxGcmFnbWVudDp1LGlzVmFsaWRFbGVtZW50OmZuLGlzRWxlbWVudDpFbixpc0ZyYWdtZW50OmFuLGlzTWVtbzpzbixmaW5kRE9NTm9kZTpkbixDb21wb25lbnQ6bixQdXJlQ29tcG9uZW50OkMsbWVtbzp4LGZvcndhcmRSZWY6ayxmbHVzaFN5bmM6bW4sdW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXM6cG4sU3RyaWN0TW9kZTp5bixTdXNwZW5zZTpMLFN1c3BlbnNlTGlzdDpVLGxhenk6RixfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDpvbn07ZXhwb3J0e04gYXMgQ2hpbGRyZW4sQyBhcyBQdXJlQ29tcG9uZW50LHluIGFzIFN0cmljdE1vZGUsTCBhcyBTdXNwZW5zZSxVIGFzIFN1c3BlbnNlTGlzdCxvbiBhcyBfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCxobiBhcyBjbG9uZUVsZW1lbnQsbG4gYXMgY3JlYXRlRmFjdG9yeSxqIGFzIGNyZWF0ZVBvcnRhbCxSbiBhcyBkZWZhdWx0LGRuIGFzIGZpbmRET01Ob2RlLG1uIGFzIGZsdXNoU3luYyxrIGFzIGZvcndhcmRSZWYsRyBhcyBoeWRyYXRlLEVuIGFzIGlzRWxlbWVudCxhbiBhcyBpc0ZyYWdtZW50LHNuIGFzIGlzTWVtbyxmbiBhcyBpc1ZhbGlkRWxlbWVudCxGIGFzIGxhenkseCBhcyBtZW1vLHEgYXMgcmVuZGVyLF9uIGFzIHN0YXJ0VHJhbnNpdGlvbix2biBhcyB1bm1vdW50Q29tcG9uZW50QXROb2RlLHBuIGFzIHVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzLGJuIGFzIHVzZURlZmVycmVkVmFsdWUsZ24gYXMgdXNlSW5zZXJ0aW9uRWZmZWN0LENuIGFzIHVzZVN5bmNFeHRlcm5hbFN0b3JlLFNuIGFzIHVzZVRyYW5zaXRpb24sY24gYXMgdmVyc2lvbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb21wYXQubW9kdWxlLmpzLm1hcFxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///763\n')},313:(module,__unused_webpack_exports,__webpack_require__)=>{"use strict";eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = __webpack_require__(925);\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzEzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFFYiwyQkFBMkIsbUJBQU8sQ0FBQyxHQUE0Qjs7QUFFL0Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zLmpzP2Q3YTAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9IHJlcXVpcmUoJy4vbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0Jyk7XG5cbmZ1bmN0aW9uIGVtcHR5RnVuY3Rpb24oKSB7fVxuZnVuY3Rpb24gZW1wdHlGdW5jdGlvbldpdGhSZXNldCgpIHt9XG5lbXB0eUZ1bmN0aW9uV2l0aFJlc2V0LnJlc2V0V2FybmluZ0NhY2hlID0gZW1wdHlGdW5jdGlvbjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgZnVuY3Rpb24gc2hpbShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgIGlmIChzZWNyZXQgPT09IFJlYWN0UHJvcFR5cGVzU2VjcmV0KSB7XG4gICAgICAvLyBJdCBpcyBzdGlsbCBzYWZlIHdoZW4gY2FsbGVkIGZyb20gUmVhY3QuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAnVXNlIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcygpIHRvIGNhbGwgdGhlbS4gJyArXG4gICAgICAnUmVhZCBtb3JlIGF0IGh0dHA6Ly9mYi5tZS91c2UtY2hlY2stcHJvcC10eXBlcydcbiAgICApO1xuICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgIHRocm93IGVycjtcbiAgfTtcbiAgc2hpbS5pc1JlcXVpcmVkID0gc2hpbTtcbiAgZnVuY3Rpb24gZ2V0U2hpbSgpIHtcbiAgICByZXR1cm4gc2hpbTtcbiAgfTtcbiAgLy8gSW1wb3J0YW50IVxuICAvLyBLZWVwIHRoaXMgbGlzdCBpbiBzeW5jIHdpdGggcHJvZHVjdGlvbiB2ZXJzaW9uIGluIGAuL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzLmpzYC5cbiAgdmFyIFJlYWN0UHJvcFR5cGVzID0ge1xuICAgIGFycmF5OiBzaGltLFxuICAgIGJpZ2ludDogc2hpbSxcbiAgICBib29sOiBzaGltLFxuICAgIGZ1bmM6IHNoaW0sXG4gICAgbnVtYmVyOiBzaGltLFxuICAgIG9iamVjdDogc2hpbSxcbiAgICBzdHJpbmc6IHNoaW0sXG4gICAgc3ltYm9sOiBzaGltLFxuXG4gICAgYW55OiBzaGltLFxuICAgIGFycmF5T2Y6IGdldFNoaW0sXG4gICAgZWxlbWVudDogc2hpbSxcbiAgICBlbGVtZW50VHlwZTogc2hpbSxcbiAgICBpbnN0YW5jZU9mOiBnZXRTaGltLFxuICAgIG5vZGU6IHNoaW0sXG4gICAgb2JqZWN0T2Y6IGdldFNoaW0sXG4gICAgb25lT2Y6IGdldFNoaW0sXG4gICAgb25lT2ZUeXBlOiBnZXRTaGltLFxuICAgIHNoYXBlOiBnZXRTaGltLFxuICAgIGV4YWN0OiBnZXRTaGltLFxuXG4gICAgY2hlY2tQcm9wVHlwZXM6IGVtcHR5RnVuY3Rpb25XaXRoUmVzZXQsXG4gICAgcmVzZXRXYXJuaW5nQ2FjaGU6IGVtcHR5RnVuY3Rpb25cbiAgfTtcblxuICBSZWFjdFByb3BUeXBlcy5Qcm9wVHlwZXMgPSBSZWFjdFByb3BUeXBlcztcblxuICByZXR1cm4gUmVhY3RQcm9wVHlwZXM7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///313\n")},556:(module,__unused_webpack_exports,__webpack_require__)=>{eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (false) { var throwOnDirectAccess, ReactIs; } else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = __webpack_require__(313)();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTU2LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLEtBQXFDLEVBQUUscUNBTzFDLENBQUM7QUFDRjtBQUNBO0FBQ0EsbUJBQW1CLG1CQUFPLENBQUMsR0FBNEI7QUFDdkQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzP2Q3YmMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgZGV2ZWxvcG1lbnQgYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgdmFyIHRocm93T25EaXJlY3RBY2Nlc3MgPSB0cnVlO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMnKShSZWFjdElzLmlzRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcyk7XG59IGVsc2Uge1xuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBwcm9kdWN0aW9uIGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMnKSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///556\n")},925:module=>{"use strict";eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTI1LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFFYjs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0LmpzPzU5YjAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9ICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCc7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RQcm9wVHlwZXNTZWNyZXQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///925\n")},88:function(module){eval("/**\n * what-input - A global utility for tracking the current input method (mouse, keyboard or touch).\n * @version v5.2.12\n * @link https://github.com/ten1seven/what-input\n * @license MIT\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __nested_webpack_require_738__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_738__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__nested_webpack_require_738__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__nested_webpack_require_738__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__nested_webpack_require_738__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __nested_webpack_require_738__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = function () {\n\t /*\n\t * bail out if there is no document or window\n\t * (i.e. in a node/non-DOM environment)\n\t *\n\t * Return a stubbed API instead\n\t */\n\t if (typeof document === 'undefined' || typeof window === 'undefined') {\n\t return {\n\t // always return \"initial\" because no interaction will ever be detected\n\t ask: function ask() {\n\t return 'initial';\n\t },\n\n\t // always return null\n\t element: function element() {\n\t return null;\n\t },\n\n\t // no-op\n\t ignoreKeys: function ignoreKeys() {},\n\n\t // no-op\n\t specificKeys: function specificKeys() {},\n\n\t // no-op\n\t registerOnChange: function registerOnChange() {},\n\n\t // no-op\n\t unRegisterOnChange: function unRegisterOnChange() {}\n\t };\n\t }\n\n\t /*\n\t * variables\n\t */\n\n\t // cache document.documentElement\n\t var docElem = document.documentElement;\n\n\t // currently focused dom element\n\t var currentElement = null;\n\n\t // last used input type\n\t var currentInput = 'initial';\n\n\t // last used input intent\n\t var currentIntent = currentInput;\n\n\t // UNIX timestamp of current event\n\t var currentTimestamp = Date.now();\n\n\t // check for a `data-whatpersist` attribute on either the `html` or `body` elements, defaults to `true`\n\t var shouldPersist = false;\n\n\t // form input types\n\t var formInputs = ['button', 'input', 'select', 'textarea'];\n\n\t // empty array for holding callback functions\n\t var functionList = [];\n\n\t // list of modifier keys commonly used with the mouse and\n\t // can be safely ignored to prevent false keyboard detection\n\t var ignoreMap = [16, // shift\n\t 17, // control\n\t 18, // alt\n\t 91, // Windows key / left Apple cmd\n\t 93 // Windows menu / right Apple cmd\n\t ];\n\n\t var specificMap = [];\n\n\t // mapping of events to input types\n\t var inputMap = {\n\t keydown: 'keyboard',\n\t keyup: 'keyboard',\n\t mousedown: 'mouse',\n\t mousemove: 'mouse',\n\t MSPointerDown: 'pointer',\n\t MSPointerMove: 'pointer',\n\t pointerdown: 'pointer',\n\t pointermove: 'pointer',\n\t touchstart: 'touch',\n\t touchend: 'touch'\n\n\t // boolean: true if the page is being scrolled\n\t };var isScrolling = false;\n\n\t // store current mouse position\n\t var mousePos = {\n\t x: null,\n\t y: null\n\n\t // map of IE 10 pointer events\n\t };var pointerMap = {\n\t 2: 'touch',\n\t 3: 'touch', // treat pen like touch\n\t 4: 'mouse'\n\n\t // check support for passive event listeners\n\t };var supportsPassive = false;\n\n\t try {\n\t var opts = Object.defineProperty({}, 'passive', {\n\t get: function get() {\n\t supportsPassive = true;\n\t }\n\t });\n\n\t window.addEventListener('test', null, opts);\n\t } catch (e) {}\n\t // fail silently\n\n\n\t /*\n\t * set up\n\t */\n\n\t var setUp = function setUp() {\n\t // add correct mouse wheel event mapping to `inputMap`\n\t inputMap[detectWheel()] = 'mouse';\n\n\t addListeners();\n\t };\n\n\t /*\n\t * events\n\t */\n\n\t var addListeners = function addListeners() {\n\t // `pointermove`, `MSPointerMove`, `mousemove` and mouse wheel event binding\n\t // can only demonstrate potential, but not actual, interaction\n\t // and are treated separately\n\t var options = supportsPassive ? { passive: true, capture: true } : true;\n\n\t document.addEventListener('DOMContentLoaded', setPersist, true);\n\n\t // pointer events (mouse, pen, touch)\n\t if (window.PointerEvent) {\n\t window.addEventListener('pointerdown', setInput, true);\n\t window.addEventListener('pointermove', setIntent, true);\n\t } else if (window.MSPointerEvent) {\n\t window.addEventListener('MSPointerDown', setInput, true);\n\t window.addEventListener('MSPointerMove', setIntent, true);\n\t } else {\n\t // mouse events\n\t window.addEventListener('mousedown', setInput, true);\n\t window.addEventListener('mousemove', setIntent, true);\n\n\t // touch events\n\t if ('ontouchstart' in window) {\n\t window.addEventListener('touchstart', setInput, options);\n\t window.addEventListener('touchend', setInput, true);\n\t }\n\t }\n\n\t // mouse wheel\n\t window.addEventListener(detectWheel(), setIntent, options);\n\n\t // keyboard events\n\t window.addEventListener('keydown', setInput, true);\n\t window.addEventListener('keyup', setInput, true);\n\n\t // focus events\n\t window.addEventListener('focusin', setElement, true);\n\t window.addEventListener('focusout', clearElement, true);\n\t };\n\n\t // checks if input persistence should happen and\n\t // get saved state from session storage if true (defaults to `false`)\n\t var setPersist = function setPersist() {\n\t shouldPersist = !(docElem.getAttribute('data-whatpersist') === 'false' || document.body.getAttribute('data-whatpersist') === 'false');\n\n\t if (shouldPersist) {\n\t // check for session variables and use if available\n\t try {\n\t if (window.sessionStorage.getItem('what-input')) {\n\t currentInput = window.sessionStorage.getItem('what-input');\n\t }\n\n\t if (window.sessionStorage.getItem('what-intent')) {\n\t currentIntent = window.sessionStorage.getItem('what-intent');\n\t }\n\t } catch (e) {\n\t // fail silently\n\t }\n\t }\n\n\t // always run these so at least `initial` state is set\n\t doUpdate('input');\n\t doUpdate('intent');\n\t };\n\n\t // checks conditions before updating new input\n\t var setInput = function setInput(event) {\n\t var eventKey = event.which;\n\t var value = inputMap[event.type];\n\n\t if (value === 'pointer') {\n\t value = pointerType(event);\n\t }\n\n\t var ignoreMatch = !specificMap.length && ignoreMap.indexOf(eventKey) === -1;\n\n\t var specificMatch = specificMap.length && specificMap.indexOf(eventKey) !== -1;\n\n\t var shouldUpdate = value === 'keyboard' && eventKey && (ignoreMatch || specificMatch) || value === 'mouse' || value === 'touch';\n\n\t // prevent touch detection from being overridden by event execution order\n\t if (validateTouch(value)) {\n\t shouldUpdate = false;\n\t }\n\n\t if (shouldUpdate && currentInput !== value) {\n\t currentInput = value;\n\n\t persistInput('input', currentInput);\n\t doUpdate('input');\n\t }\n\n\t if (shouldUpdate && currentIntent !== value) {\n\t // preserve intent for keyboard interaction with form fields\n\t var activeElem = document.activeElement;\n\t var notFormInput = activeElem && activeElem.nodeName && (formInputs.indexOf(activeElem.nodeName.toLowerCase()) === -1 || activeElem.nodeName.toLowerCase() === 'button' && !checkClosest(activeElem, 'form'));\n\n\t if (notFormInput) {\n\t currentIntent = value;\n\n\t persistInput('intent', currentIntent);\n\t doUpdate('intent');\n\t }\n\t }\n\t };\n\n\t // updates the doc and `inputTypes` array with new input\n\t var doUpdate = function doUpdate(which) {\n\t docElem.setAttribute('data-what' + which, which === 'input' ? currentInput : currentIntent);\n\n\t fireFunctions(which);\n\t };\n\n\t // updates input intent for `mousemove` and `pointermove`\n\t var setIntent = function setIntent(event) {\n\t var value = inputMap[event.type];\n\n\t if (value === 'pointer') {\n\t value = pointerType(event);\n\t }\n\n\t // test to see if `mousemove` happened relative to the screen to detect scrolling versus mousemove\n\t detectScrolling(event);\n\n\t // only execute if scrolling isn't happening\n\t if ((!isScrolling && !validateTouch(value) || isScrolling && event.type === 'wheel' || event.type === 'mousewheel' || event.type === 'DOMMouseScroll') && currentIntent !== value) {\n\t currentIntent = value;\n\n\t persistInput('intent', currentIntent);\n\t doUpdate('intent');\n\t }\n\t };\n\n\t var setElement = function setElement(event) {\n\t if (!event.target.nodeName) {\n\t // If nodeName is undefined, clear the element\n\t // This can happen if click inside an <svg> element.\n\t clearElement();\n\t return;\n\t }\n\n\t currentElement = event.target.nodeName.toLowerCase();\n\t docElem.setAttribute('data-whatelement', currentElement);\n\n\t if (event.target.classList && event.target.classList.length) {\n\t docElem.setAttribute('data-whatclasses', event.target.classList.toString().replace(' ', ','));\n\t }\n\t };\n\n\t var clearElement = function clearElement() {\n\t currentElement = null;\n\n\t docElem.removeAttribute('data-whatelement');\n\t docElem.removeAttribute('data-whatclasses');\n\t };\n\n\t var persistInput = function persistInput(which, value) {\n\t if (shouldPersist) {\n\t try {\n\t window.sessionStorage.setItem('what-' + which, value);\n\t } catch (e) {\n\t // fail silently\n\t }\n\t }\n\t };\n\n\t /*\n\t * utilities\n\t */\n\n\t var pointerType = function pointerType(event) {\n\t if (typeof event.pointerType === 'number') {\n\t return pointerMap[event.pointerType];\n\t } else {\n\t // treat pen like touch\n\t return event.pointerType === 'pen' ? 'touch' : event.pointerType;\n\t }\n\t };\n\n\t // prevent touch detection from being overridden by event execution order\n\t var validateTouch = function validateTouch(value) {\n\t var timestamp = Date.now();\n\n\t var touchIsValid = value === 'mouse' && currentInput === 'touch' && timestamp - currentTimestamp < 200;\n\n\t currentTimestamp = timestamp;\n\n\t return touchIsValid;\n\t };\n\n\t // detect version of mouse wheel event to use\n\t // via https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event\n\t var detectWheel = function detectWheel() {\n\t var wheelType = null;\n\n\t // Modern browsers support \"wheel\"\n\t if ('onwheel' in document.createElement('div')) {\n\t wheelType = 'wheel';\n\t } else {\n\t // Webkit and IE support at least \"mousewheel\"\n\t // or assume that remaining browsers are older Firefox\n\t wheelType = document.onmousewheel !== undefined ? 'mousewheel' : 'DOMMouseScroll';\n\t }\n\n\t return wheelType;\n\t };\n\n\t // runs callback functions\n\t var fireFunctions = function fireFunctions(type) {\n\t for (var i = 0, len = functionList.length; i < len; i++) {\n\t if (functionList[i].type === type) {\n\t functionList[i].fn.call(undefined, type === 'input' ? currentInput : currentIntent);\n\t }\n\t }\n\t };\n\n\t // finds matching element in an object\n\t var objPos = function objPos(match) {\n\t for (var i = 0, len = functionList.length; i < len; i++) {\n\t if (functionList[i].fn === match) {\n\t return i;\n\t }\n\t }\n\t };\n\n\t var detectScrolling = function detectScrolling(event) {\n\t if (mousePos.x !== event.screenX || mousePos.y !== event.screenY) {\n\t isScrolling = false;\n\n\t mousePos.x = event.screenX;\n\t mousePos.y = event.screenY;\n\t } else {\n\t isScrolling = true;\n\t }\n\t };\n\n\t // manual version of `closest()`\n\t var checkClosest = function checkClosest(elem, tag) {\n\t var ElementPrototype = window.Element.prototype;\n\n\t if (!ElementPrototype.matches) {\n\t ElementPrototype.matches = ElementPrototype.msMatchesSelector || ElementPrototype.webkitMatchesSelector;\n\t }\n\n\t if (!ElementPrototype.closest) {\n\t do {\n\t if (elem.matches(tag)) {\n\t return elem;\n\t }\n\n\t elem = elem.parentElement || elem.parentNode;\n\t } while (elem !== null && elem.nodeType === 1);\n\n\t return null;\n\t } else {\n\t return elem.closest(tag);\n\t }\n\t };\n\n\t /*\n\t * init\n\t */\n\n\t // don't start script unless browser cuts the mustard\n\t // (also passes if polyfills are used)\n\t if ('addEventListener' in window && Array.prototype.indexOf) {\n\t setUp();\n\t }\n\n\t /*\n\t * api\n\t */\n\n\t return {\n\t // returns string: the current input type\n\t // opt: 'intent'|'input'\n\t // 'input' (default): returns the same value as the `data-whatinput` attribute\n\t // 'intent': includes `data-whatintent` value if it's different than `data-whatinput`\n\t ask: function ask(opt) {\n\t return opt === 'intent' ? currentIntent : currentInput;\n\t },\n\n\t // returns string: the currently focused element or null\n\t element: function element() {\n\t return currentElement;\n\t },\n\n\t // overwrites ignored keys with provided array\n\t ignoreKeys: function ignoreKeys(arr) {\n\t ignoreMap = arr;\n\t },\n\n\t // overwrites specific char keys to update on\n\t specificKeys: function specificKeys(arr) {\n\t specificMap = arr;\n\t },\n\n\t // attach functions to input and intent \"events\"\n\t // funct: function to fire on change\n\t // eventType: 'input'|'intent'\n\t registerOnChange: function registerOnChange(fn, eventType) {\n\t functionList.push({\n\t fn: fn,\n\t type: eventType || 'input'\n\t });\n\t },\n\n\t unRegisterOnChange: function unRegisterOnChange(fn) {\n\t var position = objPos(fn);\n\n\t if (position || position === 0) {\n\t functionList.splice(position, 1);\n\t }\n\t },\n\n\t clearStorage: function clearStorage() {\n\t window.sessionStorage.clear();\n\t }\n\t };\n\t}();\n\n/***/ })\n/******/ ])\n});\n;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODguanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQXlEO0FBQzdEO0FBQ0EsTUFBTSxFQUswQjtBQUNoQyxDQUFDO0FBQ0QscUNBQXFDO0FBQ3JDO0FBQ0E7O0FBRUE7QUFDQSxtQkFBbUIsOEJBQW1COztBQUV0QztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwwRUFBMEUsOEJBQW1COztBQUU3RjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQSxVQUFVLDhCQUFtQjs7QUFFN0I7QUFDQSxVQUFVLDhCQUFtQjs7QUFFN0I7QUFDQSxVQUFVLDhCQUFtQjs7QUFFN0I7QUFDQSxpQkFBaUIsOEJBQW1CO0FBQ3BDLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFROztBQUVSO0FBQ0E7QUFDQTtBQUNBLFFBQVE7O0FBRVI7QUFDQSwyQ0FBMkM7O0FBRTNDO0FBQ0EsK0NBQStDOztBQUUvQztBQUNBLHVEQUF1RDs7QUFFdkQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLHdDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0EsS0FBSztBQUNMOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLCtCQUErQjs7QUFFdEU7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdEQUFnRCxTQUFTO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdEQUFnRCxTQUFTO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1IsTUFBTTs7QUFFTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGLE9BQU87QUFDUDtBQUNBLENBQUM7QUFDRCIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL3doYXQtaW5wdXQvZGlzdC93aGF0LWlucHV0LmpzPzhlM2IiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiB3aGF0LWlucHV0IC0gQSBnbG9iYWwgdXRpbGl0eSBmb3IgdHJhY2tpbmcgdGhlIGN1cnJlbnQgaW5wdXQgbWV0aG9kIChtb3VzZSwga2V5Ym9hcmQgb3IgdG91Y2gpLlxuICogQHZlcnNpb24gdjUuMi4xMlxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3RlbjFzZXZlbi93aGF0LWlucHV0XG4gKiBAbGljZW5zZSBNSVRcbiAqL1xuKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoXCJ3aGF0SW5wdXRcIiwgW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wid2hhdElucHV0XCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIndoYXRJbnB1dFwiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKCkge1xucmV0dXJuIC8qKioqKiovIChmdW5jdGlvbihtb2R1bGVzKSB7IC8vIHdlYnBhY2tCb290c3RyYXBcbi8qKioqKiovIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4vKioqKioqLyBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4vKioqKioqLyBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuLyoqKioqKi8gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuLyoqKioqKi8gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG5cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbi8qKioqKiovIFx0XHRcdGV4cG9ydHM6IHt9LFxuLyoqKioqKi8gXHRcdFx0aWQ6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0bG9hZGVkOiBmYWxzZVxuLyoqKioqKi8gXHRcdH07XG5cbi8qKioqKiovIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbi8qKioqKiovIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuLyoqKioqKi8gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbi8qKioqKiovIFx0XHRtb2R1bGUubG9hZGVkID0gdHJ1ZTtcblxuLyoqKioqKi8gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4vKioqKioqLyBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHR9XG5cblxuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbi8qKioqKiovIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuLyoqKioqKi8gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbi8qKioqKiovIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oMCk7XG4vKioqKioqLyB9KVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKiovIChbXG4vKiAwICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cblx0J3VzZSBzdHJpY3QnO1xuXG5cdG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuXHQgIC8qXG5cdCAgICogYmFpbCBvdXQgaWYgdGhlcmUgaXMgbm8gZG9jdW1lbnQgb3Igd2luZG93XG5cdCAgICogKGkuZS4gaW4gYSBub2RlL25vbi1ET00gZW52aXJvbm1lbnQpXG5cdCAgICpcblx0ICAgKiBSZXR1cm4gYSBzdHViYmVkIEFQSSBpbnN0ZWFkXG5cdCAgICovXG5cdCAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcblx0ICAgIHJldHVybiB7XG5cdCAgICAgIC8vIGFsd2F5cyByZXR1cm4gXCJpbml0aWFsXCIgYmVjYXVzZSBubyBpbnRlcmFjdGlvbiB3aWxsIGV2ZXIgYmUgZGV0ZWN0ZWRcblx0ICAgICAgYXNrOiBmdW5jdGlvbiBhc2soKSB7XG5cdCAgICAgICAgcmV0dXJuICdpbml0aWFsJztcblx0ICAgICAgfSxcblxuXHQgICAgICAvLyBhbHdheXMgcmV0dXJuIG51bGxcblx0ICAgICAgZWxlbWVudDogZnVuY3Rpb24gZWxlbWVudCgpIHtcblx0ICAgICAgICByZXR1cm4gbnVsbDtcblx0ICAgICAgfSxcblxuXHQgICAgICAvLyBuby1vcFxuXHQgICAgICBpZ25vcmVLZXlzOiBmdW5jdGlvbiBpZ25vcmVLZXlzKCkge30sXG5cblx0ICAgICAgLy8gbm8tb3Bcblx0ICAgICAgc3BlY2lmaWNLZXlzOiBmdW5jdGlvbiBzcGVjaWZpY0tleXMoKSB7fSxcblxuXHQgICAgICAvLyBuby1vcFxuXHQgICAgICByZWdpc3Rlck9uQ2hhbmdlOiBmdW5jdGlvbiByZWdpc3Rlck9uQ2hhbmdlKCkge30sXG5cblx0ICAgICAgLy8gbm8tb3Bcblx0ICAgICAgdW5SZWdpc3Rlck9uQ2hhbmdlOiBmdW5jdGlvbiB1blJlZ2lzdGVyT25DaGFuZ2UoKSB7fVxuXHQgICAgfTtcblx0ICB9XG5cblx0ICAvKlxuXHQgICAqIHZhcmlhYmxlc1xuXHQgICAqL1xuXG5cdCAgLy8gY2FjaGUgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XG5cdCAgdmFyIGRvY0VsZW0gPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cblx0ICAvLyBjdXJyZW50bHkgZm9jdXNlZCBkb20gZWxlbWVudFxuXHQgIHZhciBjdXJyZW50RWxlbWVudCA9IG51bGw7XG5cblx0ICAvLyBsYXN0IHVzZWQgaW5wdXQgdHlwZVxuXHQgIHZhciBjdXJyZW50SW5wdXQgPSAnaW5pdGlhbCc7XG5cblx0ICAvLyBsYXN0IHVzZWQgaW5wdXQgaW50ZW50XG5cdCAgdmFyIGN1cnJlbnRJbnRlbnQgPSBjdXJyZW50SW5wdXQ7XG5cblx0ICAvLyBVTklYIHRpbWVzdGFtcCBvZiBjdXJyZW50IGV2ZW50XG5cdCAgdmFyIGN1cnJlbnRUaW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuXG5cdCAgLy8gY2hlY2sgZm9yIGEgYGRhdGEtd2hhdHBlcnNpc3RgIGF0dHJpYnV0ZSBvbiBlaXRoZXIgdGhlIGBodG1sYCBvciBgYm9keWAgZWxlbWVudHMsIGRlZmF1bHRzIHRvIGB0cnVlYFxuXHQgIHZhciBzaG91bGRQZXJzaXN0ID0gZmFsc2U7XG5cblx0ICAvLyBmb3JtIGlucHV0IHR5cGVzXG5cdCAgdmFyIGZvcm1JbnB1dHMgPSBbJ2J1dHRvbicsICdpbnB1dCcsICdzZWxlY3QnLCAndGV4dGFyZWEnXTtcblxuXHQgIC8vIGVtcHR5IGFycmF5IGZvciBob2xkaW5nIGNhbGxiYWNrIGZ1bmN0aW9uc1xuXHQgIHZhciBmdW5jdGlvbkxpc3QgPSBbXTtcblxuXHQgIC8vIGxpc3Qgb2YgbW9kaWZpZXIga2V5cyBjb21tb25seSB1c2VkIHdpdGggdGhlIG1vdXNlIGFuZFxuXHQgIC8vIGNhbiBiZSBzYWZlbHkgaWdub3JlZCB0byBwcmV2ZW50IGZhbHNlIGtleWJvYXJkIGRldGVjdGlvblxuXHQgIHZhciBpZ25vcmVNYXAgPSBbMTYsIC8vIHNoaWZ0XG5cdCAgMTcsIC8vIGNvbnRyb2xcblx0ICAxOCwgLy8gYWx0XG5cdCAgOTEsIC8vIFdpbmRvd3Mga2V5IC8gbGVmdCBBcHBsZSBjbWRcblx0ICA5MyAvLyBXaW5kb3dzIG1lbnUgLyByaWdodCBBcHBsZSBjbWRcblx0ICBdO1xuXG5cdCAgdmFyIHNwZWNpZmljTWFwID0gW107XG5cblx0ICAvLyBtYXBwaW5nIG9mIGV2ZW50cyB0byBpbnB1dCB0eXBlc1xuXHQgIHZhciBpbnB1dE1hcCA9IHtcblx0ICAgIGtleWRvd246ICdrZXlib2FyZCcsXG5cdCAgICBrZXl1cDogJ2tleWJvYXJkJyxcblx0ICAgIG1vdXNlZG93bjogJ21vdXNlJyxcblx0ICAgIG1vdXNlbW92ZTogJ21vdXNlJyxcblx0ICAgIE1TUG9pbnRlckRvd246ICdwb2ludGVyJyxcblx0ICAgIE1TUG9pbnRlck1vdmU6ICdwb2ludGVyJyxcblx0ICAgIHBvaW50ZXJkb3duOiAncG9pbnRlcicsXG5cdCAgICBwb2ludGVybW92ZTogJ3BvaW50ZXInLFxuXHQgICAgdG91Y2hzdGFydDogJ3RvdWNoJyxcblx0ICAgIHRvdWNoZW5kOiAndG91Y2gnXG5cblx0ICAgIC8vIGJvb2xlYW46IHRydWUgaWYgdGhlIHBhZ2UgaXMgYmVpbmcgc2Nyb2xsZWRcblx0ICB9O3ZhciBpc1Njcm9sbGluZyA9IGZhbHNlO1xuXG5cdCAgLy8gc3RvcmUgY3VycmVudCBtb3VzZSBwb3NpdGlvblxuXHQgIHZhciBtb3VzZVBvcyA9IHtcblx0ICAgIHg6IG51bGwsXG5cdCAgICB5OiBudWxsXG5cblx0ICAgIC8vIG1hcCBvZiBJRSAxMCBwb2ludGVyIGV2ZW50c1xuXHQgIH07dmFyIHBvaW50ZXJNYXAgPSB7XG5cdCAgICAyOiAndG91Y2gnLFxuXHQgICAgMzogJ3RvdWNoJywgLy8gdHJlYXQgcGVuIGxpa2UgdG91Y2hcblx0ICAgIDQ6ICdtb3VzZSdcblxuXHQgICAgLy8gY2hlY2sgc3VwcG9ydCBmb3IgcGFzc2l2ZSBldmVudCBsaXN0ZW5lcnNcblx0ICB9O3ZhciBzdXBwb3J0c1Bhc3NpdmUgPSBmYWxzZTtcblxuXHQgIHRyeSB7XG5cdCAgICB2YXIgb3B0cyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ3Bhc3NpdmUnLCB7XG5cdCAgICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuXHQgICAgICAgIHN1cHBvcnRzUGFzc2l2ZSA9IHRydWU7XG5cdCAgICAgIH1cblx0ICAgIH0pO1xuXG5cdCAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIG51bGwsIG9wdHMpO1xuXHQgIH0gY2F0Y2ggKGUpIHt9XG5cdCAgLy8gZmFpbCBzaWxlbnRseVxuXG5cblx0ICAvKlxuXHQgICAqIHNldCB1cFxuXHQgICAqL1xuXG5cdCAgdmFyIHNldFVwID0gZnVuY3Rpb24gc2V0VXAoKSB7XG5cdCAgICAvLyBhZGQgY29ycmVjdCBtb3VzZSB3aGVlbCBldmVudCBtYXBwaW5nIHRvIGBpbnB1dE1hcGBcblx0ICAgIGlucHV0TWFwW2RldGVjdFdoZWVsKCldID0gJ21vdXNlJztcblxuXHQgICAgYWRkTGlzdGVuZXJzKCk7XG5cdCAgfTtcblxuXHQgIC8qXG5cdCAgICogZXZlbnRzXG5cdCAgICovXG5cblx0ICB2YXIgYWRkTGlzdGVuZXJzID0gZnVuY3Rpb24gYWRkTGlzdGVuZXJzKCkge1xuXHQgICAgLy8gYHBvaW50ZXJtb3ZlYCwgYE1TUG9pbnRlck1vdmVgLCBgbW91c2Vtb3ZlYCBhbmQgbW91c2Ugd2hlZWwgZXZlbnQgYmluZGluZ1xuXHQgICAgLy8gY2FuIG9ubHkgZGVtb25zdHJhdGUgcG90ZW50aWFsLCBidXQgbm90IGFjdHVhbCwgaW50ZXJhY3Rpb25cblx0ICAgIC8vIGFuZCBhcmUgdHJlYXRlZCBzZXBhcmF0ZWx5XG5cdCAgICB2YXIgb3B0aW9ucyA9IHN1cHBvcnRzUGFzc2l2ZSA/IHsgcGFzc2l2ZTogdHJ1ZSwgY2FwdHVyZTogdHJ1ZSB9IDogdHJ1ZTtcblxuXHQgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIHNldFBlcnNpc3QsIHRydWUpO1xuXG5cdCAgICAvLyBwb2ludGVyIGV2ZW50cyAobW91c2UsIHBlbiwgdG91Y2gpXG5cdCAgICBpZiAod2luZG93LlBvaW50ZXJFdmVudCkge1xuXHQgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBzZXRJbnB1dCwgdHJ1ZSk7XG5cdCAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVybW92ZScsIHNldEludGVudCwgdHJ1ZSk7XG5cdCAgICB9IGVsc2UgaWYgKHdpbmRvdy5NU1BvaW50ZXJFdmVudCkge1xuXHQgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignTVNQb2ludGVyRG93bicsIHNldElucHV0LCB0cnVlKTtcblx0ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ01TUG9pbnRlck1vdmUnLCBzZXRJbnRlbnQsIHRydWUpO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgLy8gbW91c2UgZXZlbnRzXG5cdCAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBzZXRJbnB1dCwgdHJ1ZSk7XG5cdCAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBzZXRJbnRlbnQsIHRydWUpO1xuXG5cdCAgICAgIC8vIHRvdWNoIGV2ZW50c1xuXHQgICAgICBpZiAoJ29udG91Y2hzdGFydCcgaW4gd2luZG93KSB7XG5cdCAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBzZXRJbnB1dCwgb3B0aW9ucyk7XG5cdCAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgc2V0SW5wdXQsIHRydWUpO1xuXHQgICAgICB9XG5cdCAgICB9XG5cblx0ICAgIC8vIG1vdXNlIHdoZWVsXG5cdCAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihkZXRlY3RXaGVlbCgpLCBzZXRJbnRlbnQsIG9wdGlvbnMpO1xuXG5cdCAgICAvLyBrZXlib2FyZCBldmVudHNcblx0ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgc2V0SW5wdXQsIHRydWUpO1xuXHQgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgc2V0SW5wdXQsIHRydWUpO1xuXG5cdCAgICAvLyBmb2N1cyBldmVudHNcblx0ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgc2V0RWxlbWVudCwgdHJ1ZSk7XG5cdCAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNvdXQnLCBjbGVhckVsZW1lbnQsIHRydWUpO1xuXHQgIH07XG5cblx0ICAvLyBjaGVja3MgaWYgaW5wdXQgcGVyc2lzdGVuY2Ugc2hvdWxkIGhhcHBlbiBhbmRcblx0ICAvLyBnZXQgc2F2ZWQgc3RhdGUgZnJvbSBzZXNzaW9uIHN0b3JhZ2UgaWYgdHJ1ZSAoZGVmYXVsdHMgdG8gYGZhbHNlYClcblx0ICB2YXIgc2V0UGVyc2lzdCA9IGZ1bmN0aW9uIHNldFBlcnNpc3QoKSB7XG5cdCAgICBzaG91bGRQZXJzaXN0ID0gIShkb2NFbGVtLmdldEF0dHJpYnV0ZSgnZGF0YS13aGF0cGVyc2lzdCcpID09PSAnZmFsc2UnIHx8IGRvY3VtZW50LmJvZHkuZ2V0QXR0cmlidXRlKCdkYXRhLXdoYXRwZXJzaXN0JykgPT09ICdmYWxzZScpO1xuXG5cdCAgICBpZiAoc2hvdWxkUGVyc2lzdCkge1xuXHQgICAgICAvLyBjaGVjayBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMgYW5kIHVzZSBpZiBhdmFpbGFibGVcblx0ICAgICAgdHJ5IHtcblx0ICAgICAgICBpZiAod2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3doYXQtaW5wdXQnKSkge1xuXHQgICAgICAgICAgY3VycmVudElucHV0ID0gd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3doYXQtaW5wdXQnKTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAod2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3doYXQtaW50ZW50JykpIHtcblx0ICAgICAgICAgIGN1cnJlbnRJbnRlbnQgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnd2hhdC1pbnRlbnQnKTtcblx0ICAgICAgICB9XG5cdCAgICAgIH0gY2F0Y2ggKGUpIHtcblx0ICAgICAgICAvLyBmYWlsIHNpbGVudGx5XG5cdCAgICAgIH1cblx0ICAgIH1cblxuXHQgICAgLy8gYWx3YXlzIHJ1biB0aGVzZSBzbyBhdCBsZWFzdCBgaW5pdGlhbGAgc3RhdGUgaXMgc2V0XG5cdCAgICBkb1VwZGF0ZSgnaW5wdXQnKTtcblx0ICAgIGRvVXBkYXRlKCdpbnRlbnQnKTtcblx0ICB9O1xuXG5cdCAgLy8gY2hlY2tzIGNvbmRpdGlvbnMgYmVmb3JlIHVwZGF0aW5nIG5ldyBpbnB1dFxuXHQgIHZhciBzZXRJbnB1dCA9IGZ1bmN0aW9uIHNldElucHV0KGV2ZW50KSB7XG5cdCAgICB2YXIgZXZlbnRLZXkgPSBldmVudC53aGljaDtcblx0ICAgIHZhciB2YWx1ZSA9IGlucHV0TWFwW2V2ZW50LnR5cGVdO1xuXG5cdCAgICBpZiAodmFsdWUgPT09ICdwb2ludGVyJykge1xuXHQgICAgICB2YWx1ZSA9IHBvaW50ZXJUeXBlKGV2ZW50KTtcblx0ICAgIH1cblxuXHQgICAgdmFyIGlnbm9yZU1hdGNoID0gIXNwZWNpZmljTWFwLmxlbmd0aCAmJiBpZ25vcmVNYXAuaW5kZXhPZihldmVudEtleSkgPT09IC0xO1xuXG5cdCAgICB2YXIgc3BlY2lmaWNNYXRjaCA9IHNwZWNpZmljTWFwLmxlbmd0aCAmJiBzcGVjaWZpY01hcC5pbmRleE9mKGV2ZW50S2V5KSAhPT0gLTE7XG5cblx0ICAgIHZhciBzaG91bGRVcGRhdGUgPSB2YWx1ZSA9PT0gJ2tleWJvYXJkJyAmJiBldmVudEtleSAmJiAoaWdub3JlTWF0Y2ggfHwgc3BlY2lmaWNNYXRjaCkgfHwgdmFsdWUgPT09ICdtb3VzZScgfHwgdmFsdWUgPT09ICd0b3VjaCc7XG5cblx0ICAgIC8vIHByZXZlbnQgdG91Y2ggZGV0ZWN0aW9uIGZyb20gYmVpbmcgb3ZlcnJpZGRlbiBieSBldmVudCBleGVjdXRpb24gb3JkZXJcblx0ICAgIGlmICh2YWxpZGF0ZVRvdWNoKHZhbHVlKSkge1xuXHQgICAgICBzaG91bGRVcGRhdGUgPSBmYWxzZTtcblx0ICAgIH1cblxuXHQgICAgaWYgKHNob3VsZFVwZGF0ZSAmJiBjdXJyZW50SW5wdXQgIT09IHZhbHVlKSB7XG5cdCAgICAgIGN1cnJlbnRJbnB1dCA9IHZhbHVlO1xuXG5cdCAgICAgIHBlcnNpc3RJbnB1dCgnaW5wdXQnLCBjdXJyZW50SW5wdXQpO1xuXHQgICAgICBkb1VwZGF0ZSgnaW5wdXQnKTtcblx0ICAgIH1cblxuXHQgICAgaWYgKHNob3VsZFVwZGF0ZSAmJiBjdXJyZW50SW50ZW50ICE9PSB2YWx1ZSkge1xuXHQgICAgICAvLyBwcmVzZXJ2ZSBpbnRlbnQgZm9yIGtleWJvYXJkIGludGVyYWN0aW9uIHdpdGggZm9ybSBmaWVsZHNcblx0ICAgICAgdmFyIGFjdGl2ZUVsZW0gPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuXHQgICAgICB2YXIgbm90Rm9ybUlucHV0ID0gYWN0aXZlRWxlbSAmJiBhY3RpdmVFbGVtLm5vZGVOYW1lICYmIChmb3JtSW5wdXRzLmluZGV4T2YoYWN0aXZlRWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKSA9PT0gLTEgfHwgYWN0aXZlRWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYnV0dG9uJyAmJiAhY2hlY2tDbG9zZXN0KGFjdGl2ZUVsZW0sICdmb3JtJykpO1xuXG5cdCAgICAgIGlmIChub3RGb3JtSW5wdXQpIHtcblx0ICAgICAgICBjdXJyZW50SW50ZW50ID0gdmFsdWU7XG5cblx0ICAgICAgICBwZXJzaXN0SW5wdXQoJ2ludGVudCcsIGN1cnJlbnRJbnRlbnQpO1xuXHQgICAgICAgIGRvVXBkYXRlKCdpbnRlbnQnKTtcblx0ICAgICAgfVxuXHQgICAgfVxuXHQgIH07XG5cblx0ICAvLyB1cGRhdGVzIHRoZSBkb2MgYW5kIGBpbnB1dFR5cGVzYCBhcnJheSB3aXRoIG5ldyBpbnB1dFxuXHQgIHZhciBkb1VwZGF0ZSA9IGZ1bmN0aW9uIGRvVXBkYXRlKHdoaWNoKSB7XG5cdCAgICBkb2NFbGVtLnNldEF0dHJpYnV0ZSgnZGF0YS13aGF0JyArIHdoaWNoLCB3aGljaCA9PT0gJ2lucHV0JyA/IGN1cnJlbnRJbnB1dCA6IGN1cnJlbnRJbnRlbnQpO1xuXG5cdCAgICBmaXJlRnVuY3Rpb25zKHdoaWNoKTtcblx0ICB9O1xuXG5cdCAgLy8gdXBkYXRlcyBpbnB1dCBpbnRlbnQgZm9yIGBtb3VzZW1vdmVgIGFuZCBgcG9pbnRlcm1vdmVgXG5cdCAgdmFyIHNldEludGVudCA9IGZ1bmN0aW9uIHNldEludGVudChldmVudCkge1xuXHQgICAgdmFyIHZhbHVlID0gaW5wdXRNYXBbZXZlbnQudHlwZV07XG5cblx0ICAgIGlmICh2YWx1ZSA9PT0gJ3BvaW50ZXInKSB7XG5cdCAgICAgIHZhbHVlID0gcG9pbnRlclR5cGUoZXZlbnQpO1xuXHQgICAgfVxuXG5cdCAgICAvLyB0ZXN0IHRvIHNlZSBpZiBgbW91c2Vtb3ZlYCBoYXBwZW5lZCByZWxhdGl2ZSB0byB0aGUgc2NyZWVuIHRvIGRldGVjdCBzY3JvbGxpbmcgdmVyc3VzIG1vdXNlbW92ZVxuXHQgICAgZGV0ZWN0U2Nyb2xsaW5nKGV2ZW50KTtcblxuXHQgICAgLy8gb25seSBleGVjdXRlIGlmIHNjcm9sbGluZyBpc24ndCBoYXBwZW5pbmdcblx0ICAgIGlmICgoIWlzU2Nyb2xsaW5nICYmICF2YWxpZGF0ZVRvdWNoKHZhbHVlKSB8fCBpc1Njcm9sbGluZyAmJiBldmVudC50eXBlID09PSAnd2hlZWwnIHx8IGV2ZW50LnR5cGUgPT09ICdtb3VzZXdoZWVsJyB8fCBldmVudC50eXBlID09PSAnRE9NTW91c2VTY3JvbGwnKSAmJiBjdXJyZW50SW50ZW50ICE9PSB2YWx1ZSkge1xuXHQgICAgICBjdXJyZW50SW50ZW50ID0gdmFsdWU7XG5cblx0ICAgICAgcGVyc2lzdElucHV0KCdpbnRlbnQnLCBjdXJyZW50SW50ZW50KTtcblx0ICAgICAgZG9VcGRhdGUoJ2ludGVudCcpO1xuXHQgICAgfVxuXHQgIH07XG5cblx0ICB2YXIgc2V0RWxlbWVudCA9IGZ1bmN0aW9uIHNldEVsZW1lbnQoZXZlbnQpIHtcblx0ICAgIGlmICghZXZlbnQudGFyZ2V0Lm5vZGVOYW1lKSB7XG5cdCAgICAgIC8vIElmIG5vZGVOYW1lIGlzIHVuZGVmaW5lZCwgY2xlYXIgdGhlIGVsZW1lbnRcblx0ICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIGNsaWNrIGluc2lkZSBhbiA8c3ZnPiBlbGVtZW50LlxuXHQgICAgICBjbGVhckVsZW1lbnQoKTtcblx0ICAgICAgcmV0dXJuO1xuXHQgICAgfVxuXG5cdCAgICBjdXJyZW50RWxlbWVudCA9IGV2ZW50LnRhcmdldC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuXHQgICAgZG9jRWxlbS5zZXRBdHRyaWJ1dGUoJ2RhdGEtd2hhdGVsZW1lbnQnLCBjdXJyZW50RWxlbWVudCk7XG5cblx0ICAgIGlmIChldmVudC50YXJnZXQuY2xhc3NMaXN0ICYmIGV2ZW50LnRhcmdldC5jbGFzc0xpc3QubGVuZ3RoKSB7XG5cdCAgICAgIGRvY0VsZW0uc2V0QXR0cmlidXRlKCdkYXRhLXdoYXRjbGFzc2VzJywgZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC50b1N0cmluZygpLnJlcGxhY2UoJyAnLCAnLCcpKTtcblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgdmFyIGNsZWFyRWxlbWVudCA9IGZ1bmN0aW9uIGNsZWFyRWxlbWVudCgpIHtcblx0ICAgIGN1cnJlbnRFbGVtZW50ID0gbnVsbDtcblxuXHQgICAgZG9jRWxlbS5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtd2hhdGVsZW1lbnQnKTtcblx0ICAgIGRvY0VsZW0ucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXdoYXRjbGFzc2VzJyk7XG5cdCAgfTtcblxuXHQgIHZhciBwZXJzaXN0SW5wdXQgPSBmdW5jdGlvbiBwZXJzaXN0SW5wdXQod2hpY2gsIHZhbHVlKSB7XG5cdCAgICBpZiAoc2hvdWxkUGVyc2lzdCkge1xuXHQgICAgICB0cnkge1xuXHQgICAgICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCd3aGF0LScgKyB3aGljaCwgdmFsdWUpO1xuXHQgICAgICB9IGNhdGNoIChlKSB7XG5cdCAgICAgICAgLy8gZmFpbCBzaWxlbnRseVxuXHQgICAgICB9XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIC8qXG5cdCAgICogdXRpbGl0aWVzXG5cdCAgICovXG5cblx0ICB2YXIgcG9pbnRlclR5cGUgPSBmdW5jdGlvbiBwb2ludGVyVHlwZShldmVudCkge1xuXHQgICAgaWYgKHR5cGVvZiBldmVudC5wb2ludGVyVHlwZSA9PT0gJ251bWJlcicpIHtcblx0ICAgICAgcmV0dXJuIHBvaW50ZXJNYXBbZXZlbnQucG9pbnRlclR5cGVdO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgLy8gdHJlYXQgcGVuIGxpa2UgdG91Y2hcblx0ICAgICAgcmV0dXJuIGV2ZW50LnBvaW50ZXJUeXBlID09PSAncGVuJyA/ICd0b3VjaCcgOiBldmVudC5wb2ludGVyVHlwZTtcblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgLy8gcHJldmVudCB0b3VjaCBkZXRlY3Rpb24gZnJvbSBiZWluZyBvdmVycmlkZGVuIGJ5IGV2ZW50IGV4ZWN1dGlvbiBvcmRlclxuXHQgIHZhciB2YWxpZGF0ZVRvdWNoID0gZnVuY3Rpb24gdmFsaWRhdGVUb3VjaCh2YWx1ZSkge1xuXHQgICAgdmFyIHRpbWVzdGFtcCA9IERhdGUubm93KCk7XG5cblx0ICAgIHZhciB0b3VjaElzVmFsaWQgPSB2YWx1ZSA9PT0gJ21vdXNlJyAmJiBjdXJyZW50SW5wdXQgPT09ICd0b3VjaCcgJiYgdGltZXN0YW1wIC0gY3VycmVudFRpbWVzdGFtcCA8IDIwMDtcblxuXHQgICAgY3VycmVudFRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcblxuXHQgICAgcmV0dXJuIHRvdWNoSXNWYWxpZDtcblx0ICB9O1xuXG5cdCAgLy8gZGV0ZWN0IHZlcnNpb24gb2YgbW91c2Ugd2hlZWwgZXZlbnQgdG8gdXNlXG5cdCAgLy8gdmlhIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbGVtZW50L3doZWVsX2V2ZW50XG5cdCAgdmFyIGRldGVjdFdoZWVsID0gZnVuY3Rpb24gZGV0ZWN0V2hlZWwoKSB7XG5cdCAgICB2YXIgd2hlZWxUeXBlID0gbnVsbDtcblxuXHQgICAgLy8gTW9kZXJuIGJyb3dzZXJzIHN1cHBvcnQgXCJ3aGVlbFwiXG5cdCAgICBpZiAoJ29ud2hlZWwnIGluIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKSB7XG5cdCAgICAgIHdoZWVsVHlwZSA9ICd3aGVlbCc7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICAvLyBXZWJraXQgYW5kIElFIHN1cHBvcnQgYXQgbGVhc3QgXCJtb3VzZXdoZWVsXCJcblx0ICAgICAgLy8gb3IgYXNzdW1lIHRoYXQgcmVtYWluaW5nIGJyb3dzZXJzIGFyZSBvbGRlciBGaXJlZm94XG5cdCAgICAgIHdoZWVsVHlwZSA9IGRvY3VtZW50Lm9ubW91c2V3aGVlbCAhPT0gdW5kZWZpbmVkID8gJ21vdXNld2hlZWwnIDogJ0RPTU1vdXNlU2Nyb2xsJztcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIHdoZWVsVHlwZTtcblx0ICB9O1xuXG5cdCAgLy8gcnVucyBjYWxsYmFjayBmdW5jdGlvbnNcblx0ICB2YXIgZmlyZUZ1bmN0aW9ucyA9IGZ1bmN0aW9uIGZpcmVGdW5jdGlvbnModHlwZSkge1xuXHQgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGZ1bmN0aW9uTGlzdC5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuXHQgICAgICBpZiAoZnVuY3Rpb25MaXN0W2ldLnR5cGUgPT09IHR5cGUpIHtcblx0ICAgICAgICBmdW5jdGlvbkxpc3RbaV0uZm4uY2FsbCh1bmRlZmluZWQsIHR5cGUgPT09ICdpbnB1dCcgPyBjdXJyZW50SW5wdXQgOiBjdXJyZW50SW50ZW50KTtcblx0ICAgICAgfVxuXHQgICAgfVxuXHQgIH07XG5cblx0ICAvLyBmaW5kcyBtYXRjaGluZyBlbGVtZW50IGluIGFuIG9iamVjdFxuXHQgIHZhciBvYmpQb3MgPSBmdW5jdGlvbiBvYmpQb3MobWF0Y2gpIHtcblx0ICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBmdW5jdGlvbkxpc3QubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcblx0ICAgICAgaWYgKGZ1bmN0aW9uTGlzdFtpXS5mbiA9PT0gbWF0Y2gpIHtcblx0ICAgICAgICByZXR1cm4gaTtcblx0ICAgICAgfVxuXHQgICAgfVxuXHQgIH07XG5cblx0ICB2YXIgZGV0ZWN0U2Nyb2xsaW5nID0gZnVuY3Rpb24gZGV0ZWN0U2Nyb2xsaW5nKGV2ZW50KSB7XG5cdCAgICBpZiAobW91c2VQb3MueCAhPT0gZXZlbnQuc2NyZWVuWCB8fCBtb3VzZVBvcy55ICE9PSBldmVudC5zY3JlZW5ZKSB7XG5cdCAgICAgIGlzU2Nyb2xsaW5nID0gZmFsc2U7XG5cblx0ICAgICAgbW91c2VQb3MueCA9IGV2ZW50LnNjcmVlblg7XG5cdCAgICAgIG1vdXNlUG9zLnkgPSBldmVudC5zY3JlZW5ZO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgaXNTY3JvbGxpbmcgPSB0cnVlO1xuXHQgICAgfVxuXHQgIH07XG5cblx0ICAvLyBtYW51YWwgdmVyc2lvbiBvZiBgY2xvc2VzdCgpYFxuXHQgIHZhciBjaGVja0Nsb3Nlc3QgPSBmdW5jdGlvbiBjaGVja0Nsb3Nlc3QoZWxlbSwgdGFnKSB7XG5cdCAgICB2YXIgRWxlbWVudFByb3RvdHlwZSA9IHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZTtcblxuXHQgICAgaWYgKCFFbGVtZW50UHJvdG90eXBlLm1hdGNoZXMpIHtcblx0ICAgICAgRWxlbWVudFByb3RvdHlwZS5tYXRjaGVzID0gRWxlbWVudFByb3RvdHlwZS5tc01hdGNoZXNTZWxlY3RvciB8fCBFbGVtZW50UHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3Rvcjtcblx0ICAgIH1cblxuXHQgICAgaWYgKCFFbGVtZW50UHJvdG90eXBlLmNsb3Nlc3QpIHtcblx0ICAgICAgZG8ge1xuXHQgICAgICAgIGlmIChlbGVtLm1hdGNoZXModGFnKSkge1xuXHQgICAgICAgICAgcmV0dXJuIGVsZW07XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgZWxlbSA9IGVsZW0ucGFyZW50RWxlbWVudCB8fCBlbGVtLnBhcmVudE5vZGU7XG5cdCAgICAgIH0gd2hpbGUgKGVsZW0gIT09IG51bGwgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSk7XG5cblx0ICAgICAgcmV0dXJuIG51bGw7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICByZXR1cm4gZWxlbS5jbG9zZXN0KHRhZyk7XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIC8qXG5cdCAgICogaW5pdFxuXHQgICAqL1xuXG5cdCAgLy8gZG9uJ3Qgc3RhcnQgc2NyaXB0IHVubGVzcyBicm93c2VyIGN1dHMgdGhlIG11c3RhcmRcblx0ICAvLyAoYWxzbyBwYXNzZXMgaWYgcG9seWZpbGxzIGFyZSB1c2VkKVxuXHQgIGlmICgnYWRkRXZlbnRMaXN0ZW5lcicgaW4gd2luZG93ICYmIEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSB7XG5cdCAgICBzZXRVcCgpO1xuXHQgIH1cblxuXHQgIC8qXG5cdCAgICogYXBpXG5cdCAgICovXG5cblx0ICByZXR1cm4ge1xuXHQgICAgLy8gcmV0dXJucyBzdHJpbmc6IHRoZSBjdXJyZW50IGlucHV0IHR5cGVcblx0ICAgIC8vIG9wdDogJ2ludGVudCd8J2lucHV0J1xuXHQgICAgLy8gJ2lucHV0JyAoZGVmYXVsdCk6IHJldHVybnMgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIGBkYXRhLXdoYXRpbnB1dGAgYXR0cmlidXRlXG5cdCAgICAvLyAnaW50ZW50JzogaW5jbHVkZXMgYGRhdGEtd2hhdGludGVudGAgdmFsdWUgaWYgaXQncyBkaWZmZXJlbnQgdGhhbiBgZGF0YS13aGF0aW5wdXRgXG5cdCAgICBhc2s6IGZ1bmN0aW9uIGFzayhvcHQpIHtcblx0ICAgICAgcmV0dXJuIG9wdCA9PT0gJ2ludGVudCcgPyBjdXJyZW50SW50ZW50IDogY3VycmVudElucHV0O1xuXHQgICAgfSxcblxuXHQgICAgLy8gcmV0dXJucyBzdHJpbmc6IHRoZSBjdXJyZW50bHkgZm9jdXNlZCBlbGVtZW50IG9yIG51bGxcblx0ICAgIGVsZW1lbnQ6IGZ1bmN0aW9uIGVsZW1lbnQoKSB7XG5cdCAgICAgIHJldHVybiBjdXJyZW50RWxlbWVudDtcblx0ICAgIH0sXG5cblx0ICAgIC8vIG92ZXJ3cml0ZXMgaWdub3JlZCBrZXlzIHdpdGggcHJvdmlkZWQgYXJyYXlcblx0ICAgIGlnbm9yZUtleXM6IGZ1bmN0aW9uIGlnbm9yZUtleXMoYXJyKSB7XG5cdCAgICAgIGlnbm9yZU1hcCA9IGFycjtcblx0ICAgIH0sXG5cblx0ICAgIC8vIG92ZXJ3cml0ZXMgc3BlY2lmaWMgY2hhciBrZXlzIHRvIHVwZGF0ZSBvblxuXHQgICAgc3BlY2lmaWNLZXlzOiBmdW5jdGlvbiBzcGVjaWZpY0tleXMoYXJyKSB7XG5cdCAgICAgIHNwZWNpZmljTWFwID0gYXJyO1xuXHQgICAgfSxcblxuXHQgICAgLy8gYXR0YWNoIGZ1bmN0aW9ucyB0byBpbnB1dCBhbmQgaW50ZW50IFwiZXZlbnRzXCJcblx0ICAgIC8vIGZ1bmN0OiBmdW5jdGlvbiB0byBmaXJlIG9uIGNoYW5nZVxuXHQgICAgLy8gZXZlbnRUeXBlOiAnaW5wdXQnfCdpbnRlbnQnXG5cdCAgICByZWdpc3Rlck9uQ2hhbmdlOiBmdW5jdGlvbiByZWdpc3Rlck9uQ2hhbmdlKGZuLCBldmVudFR5cGUpIHtcblx0ICAgICAgZnVuY3Rpb25MaXN0LnB1c2goe1xuXHQgICAgICAgIGZuOiBmbixcblx0ICAgICAgICB0eXBlOiBldmVudFR5cGUgfHwgJ2lucHV0J1xuXHQgICAgICB9KTtcblx0ICAgIH0sXG5cblx0ICAgIHVuUmVnaXN0ZXJPbkNoYW5nZTogZnVuY3Rpb24gdW5SZWdpc3Rlck9uQ2hhbmdlKGZuKSB7XG5cdCAgICAgIHZhciBwb3NpdGlvbiA9IG9ialBvcyhmbik7XG5cblx0ICAgICAgaWYgKHBvc2l0aW9uIHx8IHBvc2l0aW9uID09PSAwKSB7XG5cdCAgICAgICAgZnVuY3Rpb25MaXN0LnNwbGljZShwb3NpdGlvbiwgMSk7XG5cdCAgICAgIH1cblx0ICAgIH0sXG5cblx0ICAgIGNsZWFyU3RvcmFnZTogZnVuY3Rpb24gY2xlYXJTdG9yYWdlKCkge1xuXHQgICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTtcblx0ICAgIH1cblx0ICB9O1xuXHR9KCk7XG5cbi8qKiovIH0pXG4vKioqKioqLyBdKVxufSk7XG47Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///88\n")}},__webpack_module_cache__={};function __webpack_require__(e){var n=__webpack_module_cache__[e];if(void 0!==n)return n.exports;var t=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.exports}__webpack_require__.d=(e,n)=>{for(var t in n)__webpack_require__.o(n,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},__webpack_require__.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__(24);QPPStyle=__webpack_exports__})();
1
+ var QPPStyle;(()=>{var __webpack_modules__={741:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n Portal: () => (/* binding */ Portal),\n "default": () => (/* binding */ reach_portal_esm)\n});\n\n// EXTERNAL MODULE: ./node_modules/preact/compat/dist/compat.module.js + 2 modules\nvar compat_module = __webpack_require__(763);\n// EXTERNAL MODULE: ./node_modules/@reach/utils/use-isomorphic-layout-effect/dist/reach-utils-use-isomorphic-layout-effect.esm.js\nvar reach_utils_use_isomorphic_layout_effect_esm = __webpack_require__(103);\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/use-force-update/dist/reach-utils-use-force-update.esm.js\n\n\n/**\n * Forces a re-render, similar to `forceUpdate` in class components.\n */\n\nfunction useForceUpdate() {\n var _useState = (0,compat_module.useState)(Object.create(null)),\n dispatch = _useState[1];\n\n return (0,compat_module.useCallback)(function () {\n dispatch(Object.create(null));\n }, []);\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/portal/dist/reach-portal.esm.js\n\n\n\n\n\n\n/**\n * Welcome to @reach/portal!\n *\n * Creates and appends a DOM node to the end of `document.body` and renders a\n * React tree into it. Useful for rendering a natural React element hierarchy\n * with a different DOM hierarchy to prevent parent styles from clipping or\n * hiding content (for popovers, dropdowns, and modals).\n *\n * @see Docs https://reach.tech/portal\n * @see Source https://github.com/reach/reach-ui/tree/main/packages/portal\n * @see React https://reactjs.org/docs/portals.html\n */\n/**\n * Portal\n *\n * @see Docs https://reach.tech/portal#portal\n */\n\nvar Portal = function Portal(_ref) {\n var children = _ref.children,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? "reach-portal" : _ref$type,\n containerRef = _ref.containerRef;\n var mountNode = (0,compat_module.useRef)(null);\n var portalNode = (0,compat_module.useRef)(null);\n var forceUpdate = useForceUpdate();\n\n if (false) {}\n\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.E)(function () {\n // This ref may be null when a hot-loader replaces components on the page\n if (!mountNode.current) return; // It\'s possible that the content of the portal has, itself, been portaled.\n // In that case, it\'s important to append to the correct document element.\n\n var ownerDocument = mountNode.current.ownerDocument;\n var body = (containerRef == null ? void 0 : containerRef.current) || ownerDocument.body;\n portalNode.current = ownerDocument == null ? void 0 : ownerDocument.createElement(type);\n body.appendChild(portalNode.current);\n forceUpdate();\n return function () {\n if (portalNode.current && body) {\n body.removeChild(portalNode.current);\n }\n };\n }, [type, forceUpdate, containerRef]);\n return portalNode.current ? /*#__PURE__*/(0,compat_module.createPortal)(children, portalNode.current) : /*#__PURE__*/(0,compat_module.createElement)("span", {\n ref: mountNode\n });\n};\n/**\n * @see Docs https://reach.tech/portal#portal-props\n */\n\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n/* harmony default export */ const reach_portal_esm = (Portal);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzQxLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQThDOztBQUU5QztBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0IsMEJBQVE7QUFDMUI7O0FBRUEsU0FBUyw2QkFBVztBQUNwQjtBQUNBLEdBQUc7QUFDSDs7QUFFMEI7OztBQ2YrQjtBQUM2QjtBQUN2QjtBQUN0QjtBQUNOOztBQUVuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0Isd0JBQU07QUFDeEIsbUJBQW1CLHdCQUFNO0FBQ3pCLG9CQUFvQixjQUFjOztBQUVsQyxNQUFNLEtBQXFDLEVBQUUsRUFRMUM7O0FBRUgsRUFBRSxpRkFBeUI7QUFDM0I7QUFDQSxvQ0FBb0M7QUFDcEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsMkNBQTJDLDhCQUFZLDhDQUE4QywrQkFBYTtBQUNsSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7O0FBR0EsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7O0FBRUYsdURBQWUsTUFBTSxFQUFDO0FBQ0oiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvdXNlLWZvcmNlLXVwZGF0ZS9kaXN0L3JlYWNoLXV0aWxzLXVzZS1mb3JjZS11cGRhdGUuZXNtLmpzPzY5MWIiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3BvcnRhbC9kaXN0L3JlYWNoLXBvcnRhbC5lc20uanM/ZGRjOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5cbi8qKlxuICogRm9yY2VzIGEgcmUtcmVuZGVyLCBzaW1pbGFyIHRvIGBmb3JjZVVwZGF0ZWAgaW4gY2xhc3MgY29tcG9uZW50cy5cbiAqL1xuXG5mdW5jdGlvbiB1c2VGb3JjZVVwZGF0ZSgpIHtcbiAgdmFyIF91c2VTdGF0ZSA9IHVzZVN0YXRlKE9iamVjdC5jcmVhdGUobnVsbCkpLFxuICAgICAgZGlzcGF0Y2ggPSBfdXNlU3RhdGVbMV07XG5cbiAgcmV0dXJuIHVzZUNhbGxiYWNrKGZ1bmN0aW9uICgpIHtcbiAgICBkaXNwYXRjaChPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAgfSwgW10pO1xufVxuXG5leHBvcnQgeyB1c2VGb3JjZVVwZGF0ZSB9O1xuIiwiaW1wb3J0IHsgdXNlUmVmLCB1c2VFZmZlY3QsIGNyZWF0ZUVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH0gZnJvbSAnQHJlYWNoL3V0aWxzL3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QnO1xuaW1wb3J0IHsgdXNlRm9yY2VVcGRhdGUgfSBmcm9tICdAcmVhY2gvdXRpbHMvdXNlLWZvcmNlLXVwZGF0ZSc7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHdhcm5pbmcgZnJvbSAndGlueS13YXJuaW5nJztcblxuLyoqXG4gKiBXZWxjb21lIHRvIEByZWFjaC9wb3J0YWwhXG4gKlxuICogQ3JlYXRlcyBhbmQgYXBwZW5kcyBhIERPTSBub2RlIHRvIHRoZSBlbmQgb2YgYGRvY3VtZW50LmJvZHlgIGFuZCByZW5kZXJzIGFcbiAqIFJlYWN0IHRyZWUgaW50byBpdC4gVXNlZnVsIGZvciByZW5kZXJpbmcgYSBuYXR1cmFsIFJlYWN0IGVsZW1lbnQgaGllcmFyY2h5XG4gKiB3aXRoIGEgZGlmZmVyZW50IERPTSBoaWVyYXJjaHkgdG8gcHJldmVudCBwYXJlbnQgc3R5bGVzIGZyb20gY2xpcHBpbmcgb3JcbiAqIGhpZGluZyBjb250ZW50IChmb3IgcG9wb3ZlcnMsIGRyb3Bkb3ducywgYW5kIG1vZGFscykuXG4gKlxuICogQHNlZSBEb2NzICAgaHR0cHM6Ly9yZWFjaC50ZWNoL3BvcnRhbFxuICogQHNlZSBTb3VyY2UgaHR0cHM6Ly9naXRodWIuY29tL3JlYWNoL3JlYWNoLXVpL3RyZWUvbWFpbi9wYWNrYWdlcy9wb3J0YWxcbiAqIEBzZWUgUmVhY3QgIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9wb3J0YWxzLmh0bWxcbiAqL1xuLyoqXG4gKiBQb3J0YWxcbiAqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3BvcnRhbCNwb3J0YWxcbiAqL1xuXG52YXIgUG9ydGFsID0gZnVuY3Rpb24gUG9ydGFsKF9yZWYpIHtcbiAgdmFyIGNoaWxkcmVuID0gX3JlZi5jaGlsZHJlbixcbiAgICAgIF9yZWYkdHlwZSA9IF9yZWYudHlwZSxcbiAgICAgIHR5cGUgPSBfcmVmJHR5cGUgPT09IHZvaWQgMCA/IFwicmVhY2gtcG9ydGFsXCIgOiBfcmVmJHR5cGUsXG4gICAgICBjb250YWluZXJSZWYgPSBfcmVmLmNvbnRhaW5lclJlZjtcbiAgdmFyIG1vdW50Tm9kZSA9IHVzZVJlZihudWxsKTtcbiAgdmFyIHBvcnRhbE5vZGUgPSB1c2VSZWYobnVsbCk7XG4gIHZhciBmb3JjZVVwZGF0ZSA9IHVzZUZvcmNlVXBkYXRlKCk7XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoY29udGFpbmVyUmVmICE9IG51bGwpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyh0eXBlb2YgY29udGFpbmVyUmVmID09PSBcIm9iamVjdFwiICYmIFwiY3VycmVudFwiIGluIGNvbnRhaW5lclJlZiwgXCJAcmVhY2gvcG9ydGFsOiBJbnZhbGlkIHZhbHVlIHBhc3NlZCB0byB0aGUgYGNvbnRhaW5lclJlZmAgb2YgYSBcIiArIFwiYFBvcnRhbGAuIFRoZSBwb3J0YWwgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgZG9jdW1lbnQgYm9keSwgYnV0IGlmIFwiICsgXCJ5b3Ugd2FudCB0byBhdHRhY2ggaXQgdG8gYW5vdGhlciBET00gbm9kZSB5b3UgbXVzdCBwYXNzIGEgdmFsaWQgXCIgKyBcIlJlYWN0IHJlZiBvYmplY3QgdG8gYGNvbnRhaW5lclJlZmAuXCIpIDogdm9pZCAwO1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKGNvbnRhaW5lclJlZiA/IGNvbnRhaW5lclJlZi5jdXJyZW50ICE9IG51bGwgOiB0cnVlLCBcIkByZWFjaC9wb3J0YWw6IEEgcmVmIHdhcyBwYXNzZWQgdG8gdGhlIGBjb250YWluZXJSZWZgIHByb3Agb2YgYSBcIiArIFwiYFBvcnRhbGAsIGJ1dCBubyBET00gbm9kZSB3YXMgYXR0YWNoZWQgdG8gaXQuIEJlIHN1cmUgdG8gcGFzcyB0aGUgXCIgKyBcInJlZiB0byBhIERPTSBjb21wb25lbnQuXFxuXFxuSWYgeW91IGFyZSBmb3J3YXJkaW5nIHRoZSByZWYgZnJvbSBcIiArIFwiYW5vdGhlciBjb21wb25lbnQsIGJlIHN1cmUgdG8gdXNlIHRoZSBSZWFjdC5mb3J3YXJkUmVmIEFQSS4gXCIgKyBcIlNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvZm9yd2FyZGluZy1yZWZzLmh0bWwuXCIpIDogdm9pZCAwO1xuICAgICAgfVxuICAgIH0sIFtjb250YWluZXJSZWZdKTtcbiAgfVxuXG4gIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIC8vIFRoaXMgcmVmIG1heSBiZSBudWxsIHdoZW4gYSBob3QtbG9hZGVyIHJlcGxhY2VzIGNvbXBvbmVudHMgb24gdGhlIHBhZ2VcbiAgICBpZiAoIW1vdW50Tm9kZS5jdXJyZW50KSByZXR1cm47IC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgY29udGVudCBvZiB0aGUgcG9ydGFsIGhhcywgaXRzZWxmLCBiZWVuIHBvcnRhbGVkLlxuICAgIC8vIEluIHRoYXQgY2FzZSwgaXQncyBpbXBvcnRhbnQgdG8gYXBwZW5kIHRvIHRoZSBjb3JyZWN0IGRvY3VtZW50IGVsZW1lbnQuXG5cbiAgICB2YXIgb3duZXJEb2N1bWVudCA9IG1vdW50Tm9kZS5jdXJyZW50Lm93bmVyRG9jdW1lbnQ7XG4gICAgdmFyIGJvZHkgPSAoY29udGFpbmVyUmVmID09IG51bGwgPyB2b2lkIDAgOiBjb250YWluZXJSZWYuY3VycmVudCkgfHwgb3duZXJEb2N1bWVudC5ib2R5O1xuICAgIHBvcnRhbE5vZGUuY3VycmVudCA9IG93bmVyRG9jdW1lbnQgPT0gbnVsbCA/IHZvaWQgMCA6IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0eXBlKTtcbiAgICBib2R5LmFwcGVuZENoaWxkKHBvcnRhbE5vZGUuY3VycmVudCk7XG4gICAgZm9yY2VVcGRhdGUoKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHBvcnRhbE5vZGUuY3VycmVudCAmJiBib2R5KSB7XG4gICAgICAgIGJvZHkucmVtb3ZlQ2hpbGQocG9ydGFsTm9kZS5jdXJyZW50KTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbdHlwZSwgZm9yY2VVcGRhdGUsIGNvbnRhaW5lclJlZl0pO1xuICByZXR1cm4gcG9ydGFsTm9kZS5jdXJyZW50ID8gLyojX19QVVJFX18qL2NyZWF0ZVBvcnRhbChjaGlsZHJlbiwgcG9ydGFsTm9kZS5jdXJyZW50KSA6IC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgcmVmOiBtb3VudE5vZGVcbiAgfSk7XG59O1xuLyoqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3BvcnRhbCNwb3J0YWwtcHJvcHNcbiAqL1xuXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgUG9ydGFsLmRpc3BsYXlOYW1lID0gXCJQb3J0YWxcIjtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGRlZmF1bHQgUG9ydGFsO1xuZXhwb3J0IHsgUG9ydGFsIH07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///741\n')},197:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n LEAVE_TIMEOUT: () => (/* binding */ LEAVE_TIMEOUT),\n MOUSE_REST_TIMEOUT: () => (/* binding */ MOUSE_REST_TIMEOUT),\n Tooltip: () => (/* binding */ Tooltip),\n TooltipPopup: () => (/* binding */ TooltipPopup),\n "default": () => (/* binding */ reach_tooltip_esm),\n positionTooltip: () => (/* binding */ positionTooltip),\n useTooltip: () => (/* binding */ useTooltip)\n});\n\n// EXTERNAL MODULE: ./node_modules/preact/compat/dist/compat.module.js + 2 modules\nvar compat_module = __webpack_require__(763);\n// EXTERNAL MODULE: ./node_modules/@reach/utils/use-isomorphic-layout-effect/dist/reach-utils-use-isomorphic-layout-effect.esm.js\nvar reach_utils_use_isomorphic_layout_effect_esm = __webpack_require__(103);\n;// CONCATENATED MODULE: ./node_modules/@reach/auto-id/dist/reach-auto-id.esm.js\n\n\n\n/*\n * Welcome to @reach/auto-id!\n\n * Let\'s see if we can make sense of why this hook exists and its\n * implementation.\n *\n * Some background:\n * 1. Accessibility APIs rely heavily on element IDs\n * 2. Requiring developers to put IDs on every element in Reach UI is both\n * cumbersome and error-prone\n * 3. With a component model, we can generate IDs for them!\n *\n * Solution 1: Generate random IDs.\n *\n * This works great as long as you don\'t server render your app. When React (in\n * the client) tries to reuse the markup from the server, the IDs won\'t match\n * and React will then recreate the entire DOM tree.\n *\n * Solution 2: Increment an integer\n *\n * This sounds great. Since we\'re rendering the exact same tree on the server\n * and client, we can increment a counter and get a deterministic result between\n * client and server. Also, JS integers can go up to nine-quadrillion. I\'m\n * pretty sure the tab will be closed before an app never needs\n * 10 quadrillion IDs!\n *\n * Problem solved, right?\n *\n * Ah, but there\'s a catch! React\'s concurrent rendering makes this approach\n * non-deterministic. While the client and server will end up with the same\n * elements in the end, depending on suspense boundaries (and possibly some user\n * input during the initial render) the incrementing integers won\'t always match\n * up.\n *\n * Solution 3: Don\'t use IDs at all on the server; patch after first render.\n *\n * What we\'ve done here is solution 2 with some tricks. With this approach, the\n * ID returned is an empty string on the first render. This way the server and\n * client have the same markup no matter how wild the concurrent rendering may\n * have gotten.\n *\n * After the render, we patch up the components with an incremented ID. This\n * causes a double render on any components with `useId`. Shouldn\'t be a problem\n * since the components using this hook should be small, and we\'re only updating\n * the ID attribute on the DOM, nothing big is happening.\n *\n * It doesn\'t have to be an incremented number, though--we could do generate\n * random strings instead, but incrementing a number is probably the cheapest\n * thing we can do.\n *\n * Additionally, we only do this patchup on the very first client render ever.\n * Any calls to `useId` that happen dynamically in the client will be\n * populated immediately with a value. So, we only get the double render after\n * server hydration and never again, SO BACK OFF ALRIGHT?\n */\nvar serverHandoffComplete = false;\nvar id = 0;\n\nvar genId = function genId() {\n return ++id;\n};\n/**\n * useId\n *\n * Autogenerate IDs to facilitate WAI-ARIA and server rendering.\n *\n * Note: The returned ID will initially be `null` and will update after a\n * component mounts. Users may need to supply their own ID if they need\n * consistent values for SSR.\n *\n * @see Docs https://reach.tech/auto-id\n */\n\n\nfunction useId(idFromProps) {\n /*\n * If this instance isn\'t part of the initial render, we don\'t have to do the\n * double render/patch-up dance. We can just generate the ID and return it.\n */\n var initialId = idFromProps || (serverHandoffComplete ? genId() : null);\n\n var _React$useState = (0,compat_module.useState)(initialId),\n id = _React$useState[0],\n setId = _React$useState[1];\n\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.E)(function () {\n if (id === null) {\n /*\n * Patch the ID after render. We do this in `useLayoutEffect` to avoid any\n * rendering flicker, though it\'ll make the first render slower (unlikely\n * to matter, but you\'re welcome to measure your app and let us know if\n * it\'s a problem).\n */\n setId(genId());\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, []);\n (0,compat_module.useEffect)(function () {\n if (serverHandoffComplete === false) {\n /*\n * Flag all future uses of `useId` to skip the update dance. This is in\n * `useEffect` because it goes after `useLayoutEffect`, ensuring we don\'t\n * accidentally bail out of the patch-up dance prematurely.\n */\n serverHandoffComplete = true;\n }\n }, []);\n return id != null ? String(id) : undefined;\n}\n\n\n\n// EXTERNAL MODULE: ./node_modules/@reach/utils/can-use-dom/dist/reach-utils-can-use-dom.esm.js\nvar reach_utils_can_use_dom_esm = __webpack_require__(937);\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/owner-document/dist/reach-utils-owner-document.esm.js\n\n\n/**\n * Get an element\'s owner document. Useful when components are used in iframes\n * or other environments like dev tools.\n *\n * @param element\n */\n\nfunction getOwnerDocument(element) {\n return (0,reach_utils_can_use_dom_esm/* canUseDOM */.S)() ? element ? element.ownerDocument : document : null;\n}\n/**\n * TODO: Remove in 1.0\n */\n\nfunction getOwnerWindow(element) {\n var ownerDocument = getOwnerDocument(element);\n return ownerDocument ? ownerDocument.defaultView || window : null;\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/get-document-dimensions/dist/reach-utils-get-document-dimensions.esm.js\n\n\n\n/**\n * Get the size of the working document minus the scrollbar offset.\n *\n * @param element\n */\n\nfunction getDocumentDimensions(element) {\n var _ownerDocument$docume, _ownerDocument$docume2;\n\n var ownerDocument = getOwnerDocument(element);\n var ownerWindow = ownerDocument.defaultView || window;\n\n if (!ownerDocument) {\n return {\n width: 0,\n height: 0\n };\n }\n\n return {\n width: (_ownerDocument$docume = ownerDocument.documentElement.clientWidth) != null ? _ownerDocument$docume : ownerWindow.innerWidth,\n height: (_ownerDocument$docume2 = ownerDocument.documentElement.clientHeight) != null ? _ownerDocument$docume2 : ownerWindow.innerHeight\n };\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/make-id/dist/reach-utils-make-id.esm.js\n/**\n * Joins strings to format IDs for compound components.\n *\n * @param args\n */\nfunction makeId() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.filter(function (val) {\n return val != null;\n }).join("--");\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/dev-utils/dist/reach-utils-dev-utils.esm.js\n\n\n/* eslint-disable react-hooks/rules-of-hooks */\nvar checkedPkgs = {};\n/**\n * Just a lil state logger\n *\n * @param state\n * @param DEBUG\n */\n\nfunction useStateLogger(state, DEBUG) {\n if (DEBUG === void 0) {\n DEBUG = false;\n }\n\n if (false) { var debugRef; }\n}\n/**\n * When in dev mode, checks that styles for a given `@reach` package are loaded.\n *\n * @param packageName Name of the package to check.\n * @example checkStyles("dialog") will check for styles for @reach/dialog\n */\n\nfunction checkStyles(packageName) {\n if (false) { var _ref, environment; }\n}\n/**\n * When in dev mode, checks that styles for a given `@reach` package are loaded.\n *\n * @param packageName Name of the package to check.\n * @example useCheckStyles("dialog") will check for styles for @reach/dialog\n */\n\nfunction useCheckStyles(packageName) {\n if (false) { var name; }\n}\n/**\n * Logs a warning in dev mode when a component switches from controlled to\n * uncontrolled, or vice versa\n *\n * A single prop should typically be used to determine whether or not a\n * component is controlled or not.\n *\n * @param controlledValue\n * @param controlledPropName\n * @param componentName\n */\n\nfunction useControlledSwitchWarning(controlledValue, controlledPropName, componentName) {\n if (false) { var nameCache, controlledRef; }\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/type-check/dist/reach-utils-type-check.esm.js\n/**\n * Checks whether or not a value is a boolean.\n *\n * @param value\n */\nfunction isBoolean(value) {\n return typeof value === "boolean";\n}\n/**\n * Checks whether or not a value is a function.\n *\n * @param value\n */\n\nfunction isFunction(value) {\n // eslint-disable-next-line eqeqeq\n return !!(value && {}.toString.call(value) == "[object Function]");\n}\n/**\n * Checks whether or not a value is a number.\n *\n * @param value\n */\n\nfunction isNumber(value) {\n return typeof value === "number" && !isNaN(value);\n}\n/**\n * Checks whether or not a value is a string.\n *\n * @param value\n */\n\nfunction isString(value) {\n return typeof value === "string";\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/compose-refs/dist/reach-utils-compose-refs.esm.js\n\n\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === "string") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === "Object" && o.constructor) n = o.constructor.name;\n if (n === "Map" || n === "Set") return Array.from(o);\n if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\n/**\n * Passes or assigns an arbitrary value to a ref function or object.\n *\n * @param ref\n * @param value\n */\nfunction assignRef(ref, value) {\n if (ref == null) return;\n\n if (isFunction(ref)) {\n ref(value);\n } else {\n try {\n ref.current = value;\n } catch (error) {\n throw new Error("Cannot assign value \\"" + value + "\\" to ref \\"" + ref + "\\"");\n }\n }\n}\n/**\n * Passes or assigns a value to multiple refs (typically a DOM node). Useful for\n * dealing with components that need an explicit ref for DOM calculations but\n * also forwards refs assigned by an app.\n *\n * @param refs Refs to fork\n */\n\nfunction useComposedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return (0,compat_module.useCallback)(function (node) {\n for (var _iterator = _createForOfIteratorHelperLoose(refs), _step; !(_step = _iterator()).done;) {\n var ref = _step.value;\n assignRef(ref, node);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, refs);\n}\n\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/utils/compose-event-handlers/dist/reach-utils-compose-event-handlers.esm.js\n/**\n * Wraps a lib-defined event handler and a user-defined event handler, returning\n * a single handler that allows a user to prevent lib-defined handlers from\n * firing.\n *\n * @param theirHandler User-supplied event handler\n * @param ourHandler Library-supplied event handler\n */\nfunction composeEventHandlers(theirHandler, ourHandler) {\n return function (event) {\n theirHandler && theirHandler(event);\n\n if (!event.defaultPrevented) {\n return ourHandler(event);\n }\n };\n}\n\n\n\n// EXTERNAL MODULE: ./node_modules/@reach/portal/dist/reach-portal.esm.js + 1 modules\nvar reach_portal_esm = __webpack_require__(741);\n;// CONCATENATED MODULE: ./node_modules/@reach/visually-hidden/dist/reach-visually-hidden.esm.js\n\n\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded = ["as", "style"];\n\n/**\n * VisuallyHidden\n *\n * Provides text for screen readers that is visually hidden.\n * It is the logical opposite of the `aria-hidden` attribute.\n */\nvar VisuallyHidden = /*#__PURE__*/(0,compat_module.forwardRef)(function VisuallyHidden(_ref, ref) {\n var _ref$as = _ref.as,\n Comp = _ref$as === void 0 ? "span" : _ref$as,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return /*#__PURE__*/(0,compat_module.createElement)(Comp, _extends({\n ref: ref,\n style: _extends({\n border: 0,\n clip: "rect(0 0 0 0)",\n height: "1px",\n margin: "-1px",\n overflow: "hidden",\n padding: 0,\n position: "absolute",\n width: "1px",\n // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe\n whiteSpace: "nowrap",\n wordWrap: "normal"\n }, style)\n }, props));\n});\n/**\n * @see Docs https://reach.tech/visually-hidden#visuallyhidden-props\n */\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n/* harmony default export */ const reach_visually_hidden_esm = ((/* unused pure expression or super */ null && (VisuallyHidden)));\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/observe-rect/dist/observe-rect.esm.js\nvar props = ["bottom", "height", "left", "right", "top", "width"];\n\nvar rectChanged = function rectChanged(a, b) {\n if (a === void 0) {\n a = {};\n }\n\n if (b === void 0) {\n b = {};\n }\n\n return props.some(function (prop) {\n return a[prop] !== b[prop];\n });\n};\n\nvar observedNodes = /*#__PURE__*/new Map();\nvar rafId;\n\nvar run = function run() {\n var changedStates = [];\n observedNodes.forEach(function (state, node) {\n var newRect = node.getBoundingClientRect();\n\n if (rectChanged(newRect, state.rect)) {\n state.rect = newRect;\n changedStates.push(state);\n }\n });\n changedStates.forEach(function (state) {\n state.callbacks.forEach(function (cb) {\n return cb(state.rect);\n });\n });\n rafId = window.requestAnimationFrame(run);\n};\n\nfunction observeRect(node, cb) {\n return {\n observe: function observe() {\n var wasEmpty = observedNodes.size === 0;\n\n if (observedNodes.has(node)) {\n observedNodes.get(node).callbacks.push(cb);\n } else {\n observedNodes.set(node, {\n rect: undefined,\n hasRectChanged: false,\n callbacks: [cb]\n });\n }\n\n if (wasEmpty) run();\n },\n unobserve: function unobserve() {\n var state = observedNodes.get(node);\n\n if (state) {\n // Remove the callback\n var index = state.callbacks.indexOf(cb);\n if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference\n\n if (!state.callbacks.length) observedNodes["delete"](node); // Stop the loop\n\n if (!observedNodes.size) cancelAnimationFrame(rafId);\n }\n }\n };\n}\n\n/* harmony default export */ const observe_rect_esm = (observeRect);\n//# sourceMappingURL=observe-rect.esm.js.map\n\n;// CONCATENATED MODULE: ./node_modules/@reach/rect/dist/reach-rect.esm.js\n\n\n\n\n\n\n\n/**\n * Welcome to @reach/rect!\n *\n * Measures DOM elements (aka. bounding client rect).\n *\n * @see getBoundingClientRect https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect\n * @see Docs https://reach.tech/rect\n * @see Source https://github.com/reach/reach-ui/tree/main/packages/rect\n */\n\n/**\n * Rect\n *\n * @param props\n */\n\nvar Rect = function Rect(_ref) {\n var onChange = _ref.onChange,\n _ref$observe = _ref.observe,\n observe = _ref$observe === void 0 ? true : _ref$observe,\n children = _ref.children;\n var ref = useRef(null);\n var rect = useRect(ref, {\n observe: observe,\n onChange: onChange\n });\n return children({\n ref: ref,\n rect: rect\n });\n};\n/**\n * @see Docs https://reach.tech/rect#rect-props\n */\n\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n\n/**\n * useRect\n *\n * @param nodeRef\n * @param observe\n * @param onChange\n */\nfunction useRect(nodeRef, observeOrOptions, deprecated_onChange) {\n var observe;\n var onChange;\n\n if (isBoolean(observeOrOptions)) {\n observe = observeOrOptions;\n } else {\n var _observeOrOptions$obs;\n\n observe = (_observeOrOptions$obs = observeOrOptions == null ? void 0 : observeOrOptions.observe) != null ? _observeOrOptions$obs : true;\n onChange = observeOrOptions == null ? void 0 : observeOrOptions.onChange;\n }\n\n if (isFunction(deprecated_onChange)) {\n onChange = deprecated_onChange;\n }\n\n if (false) {}\n\n var _React$useState = (0,compat_module.useState)(nodeRef.current),\n element = _React$useState[0],\n setElement = _React$useState[1];\n\n var initialRectIsSet = (0,compat_module.useRef)(false);\n var initialRefIsSet = (0,compat_module.useRef)(false);\n\n var _React$useState2 = (0,compat_module.useState)(null),\n rect = _React$useState2[0],\n setRect = _React$useState2[1];\n\n var onChangeRef = (0,compat_module.useRef)(onChange); // eslint-disable-next-line react-hooks/exhaustive-deps\n\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.E)(function () {\n onChangeRef.current = onChange;\n\n if (nodeRef.current !== element) {\n setElement(nodeRef.current);\n }\n });\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.E)(function () {\n if (element && !initialRectIsSet.current) {\n initialRectIsSet.current = true;\n setRect(element.getBoundingClientRect());\n }\n }, [element]);\n (0,reach_utils_use_isomorphic_layout_effect_esm/* useIsomorphicLayoutEffect */.E)(function () {\n if (!observe) {\n return;\n }\n\n var elem = element; // State initializes before refs are placed, meaning the element state will\n // be undefined on the first render. We still want the rect on the first\n // render, so initially we\'ll use the nodeRef that was passed instead of\n // state for our measurements.\n\n if (!initialRefIsSet.current) {\n initialRefIsSet.current = true;\n elem = nodeRef.current;\n }\n\n if (!elem) {\n if (false) {}\n\n return;\n }\n\n var observer = observe_rect_esm(elem, function (rect) {\n onChangeRef.current == null ? void 0 : onChangeRef.current(rect);\n setRect(rect);\n });\n observer.observe();\n return function () {\n observer.unobserve();\n };\n }, [observe, element, nodeRef]);\n return rect;\n}\n\n/* harmony default export */ const reach_rect_esm = ((/* unused pure expression or super */ null && (Rect)));\n\n\n;// CONCATENATED MODULE: ./node_modules/@reach/tooltip/dist/reach-tooltip.esm.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction reach_tooltip_esm_extends() {\n reach_tooltip_esm_extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return reach_tooltip_esm_extends.apply(this, arguments);\n}\n\nfunction reach_tooltip_esm_objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar reach_tooltip_esm_excluded = ["children", "label", "ariaLabel", "id", "DEBUG_STYLE"],\n _excluded2 = ["label", "ariaLabel", "isVisible", "id"],\n _excluded3 = ["ariaLabel", "aria-label", "as", "id", "isVisible", "label", "position", "style", "triggerRect"],\n _excluded4 = ["type"];\n\nvar _on, _on2, _on3, _on4, _on5, _states;\nvar MOUSE_REST_TIMEOUT = 100;\nvar LEAVE_TIMEOUT = 500; ////////////////////////////////////////////////////////////////////////////////\n// States\n\nvar TooltipStates; ////////////////////////////////////////////////////////////////////////////////\n// Events\n\n(function (TooltipStates) {\n TooltipStates["Idle"] = "IDLE";\n TooltipStates["Focused"] = "FOCUSED";\n TooltipStates["Visible"] = "VISIBLE";\n TooltipStates["LeavingVisible"] = "LEAVING_VISIBLE";\n TooltipStates["Dismissed"] = "DISMISSED";\n})(TooltipStates || (TooltipStates = {}));\n\nvar TooltipEvents;\n\n(function (TooltipEvents) {\n TooltipEvents["Blur"] = "BLUR";\n TooltipEvents["Focus"] = "FOCUS";\n TooltipEvents["GlobalMouseMove"] = "GLOBAL_MOUSE_MOVE";\n TooltipEvents["MouseDown"] = "MOUSE_DOWN";\n TooltipEvents["MouseEnter"] = "MOUSE_ENTER";\n TooltipEvents["MouseLeave"] = "MOUSE_LEAVE";\n TooltipEvents["MouseMove"] = "MOUSE_MOVE";\n TooltipEvents["Rest"] = "REST";\n TooltipEvents["SelectWithKeyboard"] = "SELECT_WITH_KEYBOARD";\n TooltipEvents["TimeComplete"] = "TIME_COMPLETE";\n})(TooltipEvents || (TooltipEvents = {}));\n\nvar chart = {\n initial: TooltipStates.Idle,\n states: (_states = {}, _states[TooltipStates.Idle] = {\n enter: clearContextId,\n on: (_on = {}, _on[TooltipEvents.MouseEnter] = TooltipStates.Focused, _on[TooltipEvents.Focus] = TooltipStates.Visible, _on)\n }, _states[TooltipStates.Focused] = {\n enter: startRestTimer,\n leave: clearRestTimer,\n on: (_on2 = {}, _on2[TooltipEvents.MouseMove] = TooltipStates.Focused, _on2[TooltipEvents.MouseLeave] = TooltipStates.Idle, _on2[TooltipEvents.MouseDown] = TooltipStates.Dismissed, _on2[TooltipEvents.Blur] = TooltipStates.Idle, _on2[TooltipEvents.Rest] = TooltipStates.Visible, _on2)\n }, _states[TooltipStates.Visible] = {\n on: (_on3 = {}, _on3[TooltipEvents.Focus] = TooltipStates.Focused, _on3[TooltipEvents.MouseEnter] = TooltipStates.Focused, _on3[TooltipEvents.MouseLeave] = TooltipStates.LeavingVisible, _on3[TooltipEvents.Blur] = TooltipStates.LeavingVisible, _on3[TooltipEvents.MouseDown] = TooltipStates.Dismissed, _on3[TooltipEvents.SelectWithKeyboard] = TooltipStates.Dismissed, _on3[TooltipEvents.GlobalMouseMove] = TooltipStates.LeavingVisible, _on3)\n }, _states[TooltipStates.LeavingVisible] = {\n enter: startLeavingVisibleTimer,\n leave: function leave() {\n clearLeavingVisibleTimer();\n clearContextId();\n },\n on: (_on4 = {}, _on4[TooltipEvents.MouseEnter] = TooltipStates.Visible, _on4[TooltipEvents.Focus] = TooltipStates.Visible, _on4[TooltipEvents.TimeComplete] = TooltipStates.Idle, _on4)\n }, _states[TooltipStates.Dismissed] = {\n leave: function leave() {\n clearContextId();\n },\n on: (_on5 = {}, _on5[TooltipEvents.MouseLeave] = TooltipStates.Idle, _on5[TooltipEvents.Blur] = TooltipStates.Idle, _on5)\n }, _states)\n};\n/*\n * Chart context allows us to persist some data around, in Tooltip all we use\n * is the id of the current tooltip being interacted with.\n */\n\nvar state = {\n value: chart.initial,\n context: {\n id: null\n }\n}; ////////////////////////////////////////////////////////////////////////////////\n// Subscriptions:\n//\n// We could require apps to render a <TooltipProvider> around the app and use\n// React context to notify Tooltips of changes to our state machine, instead\n// we manage subscriptions ourselves and simplify the Tooltip API.\n//\n// Maybe if default context could take a hook (instead of just a static value)\n// that was rendered at the root for us, that\'d be cool! But it doesn\'t.\n\nvar subscriptions = [];\n\nfunction subscribe(fn) {\n subscriptions.push(fn);\n return function () {\n subscriptions.splice(subscriptions.indexOf(fn), 1);\n };\n}\n\nfunction notify() {\n subscriptions.forEach(function (fn) {\n return fn(state);\n });\n} ////////////////////////////////////////////////////////////////////////////////\n// Timeouts:\n// Manages when the user "rests" on an element. Keeps the interface from being\n// flashing tooltips all the time as the user moves the mouse around the screen.\n\n\nvar restTimeout;\n\nfunction startRestTimer() {\n window.clearTimeout(restTimeout);\n restTimeout = window.setTimeout(function () {\n send({\n type: TooltipEvents.Rest\n });\n }, MOUSE_REST_TIMEOUT);\n}\n\nfunction clearRestTimer() {\n window.clearTimeout(restTimeout);\n} // Manages the delay to hide the tooltip after rest leaves.\n\n\nvar leavingVisibleTimer;\n\nfunction startLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n leavingVisibleTimer = window.setTimeout(function () {\n return send({\n type: TooltipEvents.TimeComplete\n });\n }, LEAVE_TIMEOUT);\n}\n\nfunction clearLeavingVisibleTimer() {\n window.clearTimeout(leavingVisibleTimer);\n} // allows us to come on back later w/o entering something else first after the\n// user leaves or dismisses\n\n\nfunction clearContextId() {\n state.context.id = null;\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * useTooltip\n *\n * @param params\n */\n\n\nfunction useTooltip(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n idProp = _ref.id,\n onPointerEnter = _ref.onPointerEnter,\n onPointerMove = _ref.onPointerMove,\n onPointerLeave = _ref.onPointerLeave,\n onPointerDown = _ref.onPointerDown,\n onMouseEnter = _ref.onMouseEnter,\n onMouseMove = _ref.onMouseMove,\n onMouseLeave = _ref.onMouseLeave,\n onMouseDown = _ref.onMouseDown,\n onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n onKeyDown = _ref.onKeyDown,\n disabled = _ref.disabled,\n forwardedRef = _ref.ref,\n DEBUG_STYLE = _ref.DEBUG_STYLE;\n\n var id = String(useId(idProp));\n\n var _React$useState = (0,compat_module.useState)(DEBUG_STYLE ? true : isTooltipVisible(id, true)),\n isVisible = _React$useState[0],\n setIsVisible = _React$useState[1]; // hopefully they always pass a ref if they ever pass one\n\n\n var ownRef = (0,compat_module.useRef)(null);\n var ref = useComposedRefs(forwardedRef, ownRef);\n var triggerRect = useRect(ownRef, {\n observe: isVisible\n });\n (0,compat_module.useEffect)(function () {\n return subscribe(function () {\n setIsVisible(isTooltipVisible(id));\n });\n }, [id]);\n useCheckStyles("tooltip");\n (0,compat_module.useEffect)(function () {\n var ownerDocument = getOwnerDocument(ownRef.current);\n\n function listener(event) {\n if ((event.key === "Escape" || event.key === "Esc") && state.value === TooltipStates.Visible) {\n send({\n type: TooltipEvents.SelectWithKeyboard\n });\n }\n }\n\n ownerDocument.addEventListener("keydown", listener);\n return function () {\n return ownerDocument.removeEventListener("keydown", listener);\n };\n }, []);\n useDisabledTriggerOnSafari({\n disabled: disabled,\n isVisible: isVisible,\n ref: ownRef\n });\n\n function wrapMouseEvent(theirHandler, ourHandler) {\n // Use internal MouseEvent handler only if PointerEvent is not supported\n if (typeof window !== "undefined" && "PointerEvent" in window) {\n return theirHandler;\n }\n\n return composeEventHandlers(theirHandler, ourHandler);\n }\n\n function wrapPointerEventHandler(handler) {\n return function onPointerEvent(event) {\n // Handle pointer events only from mouse device\n if (event.pointerType !== "mouse") {\n return;\n }\n\n handler(event);\n };\n }\n\n function handleMouseEnter() {\n send({\n type: TooltipEvents.MouseEnter,\n id: id\n });\n }\n\n function handleMouseMove() {\n send({\n type: TooltipEvents.MouseMove,\n id: id\n });\n }\n\n function handleMouseLeave() {\n send({\n type: TooltipEvents.MouseLeave\n });\n }\n\n function handleMouseDown() {\n // Allow quick click from one tool to another\n if (state.context.id === id) {\n send({\n type: TooltipEvents.MouseDown\n });\n }\n }\n\n function handleFocus() {\n // @ts-ignore\n if (window.__REACH_DISABLE_TOOLTIPS) {\n return;\n }\n\n send({\n type: TooltipEvents.Focus,\n id: id\n });\n }\n\n function handleBlur() {\n // Allow quick click from one tool to another\n if (state.context.id === id) {\n send({\n type: TooltipEvents.Blur\n });\n }\n }\n\n function handleKeyDown(event) {\n if (event.key === "Enter" || event.key === " ") {\n send({\n type: TooltipEvents.SelectWithKeyboard\n });\n }\n }\n\n var trigger = {\n // The element that triggers the tooltip references the tooltip element with\n // `aria-describedby`.\n // https://www.w3.org/TR/wai-aria-practices-1.2/#tooltip\n "aria-describedby": isVisible ? makeId("tooltip", id) : undefined,\n "data-state": isVisible ? "tooltip-visible" : "tooltip-hidden",\n "data-reach-tooltip-trigger": "",\n ref: ref,\n onPointerEnter: composeEventHandlers(onPointerEnter, wrapPointerEventHandler(handleMouseEnter)),\n onPointerMove: composeEventHandlers(onPointerMove, wrapPointerEventHandler(handleMouseMove)),\n onPointerLeave: composeEventHandlers(onPointerLeave, wrapPointerEventHandler(handleMouseLeave)),\n onPointerDown: composeEventHandlers(onPointerDown, wrapPointerEventHandler(handleMouseDown)),\n onMouseEnter: wrapMouseEvent(onMouseEnter, handleMouseEnter),\n onMouseMove: wrapMouseEvent(onMouseMove, handleMouseMove),\n onMouseLeave: wrapMouseEvent(onMouseLeave, handleMouseLeave),\n onMouseDown: wrapMouseEvent(onMouseDown, handleMouseDown),\n onFocus: composeEventHandlers(onFocus, handleFocus),\n onBlur: composeEventHandlers(onBlur, handleBlur),\n onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown)\n };\n var tooltip = {\n id: id,\n triggerRect: triggerRect,\n isVisible: isVisible\n };\n return [trigger, tooltip, isVisible];\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Tooltip\n *\n * @see Docs https://reach.tech/tooltip#tooltip\n */\n\n\nvar Tooltip = /*#__PURE__*/(0,compat_module.forwardRef)(function (_ref2, forwardedRef) {\n var children = _ref2.children,\n label = _ref2.label,\n DEPRECATED_ariaLabel = _ref2.ariaLabel,\n id = _ref2.id,\n DEBUG_STYLE = _ref2.DEBUG_STYLE,\n props = reach_tooltip_esm_objectWithoutPropertiesLoose(_ref2, reach_tooltip_esm_excluded);\n\n var child = compat_module.Children.only(children);\n false ? 0 : void 0; // We need to pass some properties from the child into useTooltip\n // to make sure users can maintain control over the trigger\'s ref and events\n\n var _useTooltip = useTooltip({\n id: id,\n onPointerEnter: child.props.onPointerEnter,\n onPointerMove: child.props.onPointerMove,\n onPointerLeave: child.props.onPointerLeave,\n onPointerDown: child.props.onPointerDown,\n onMouseEnter: child.props.onMouseEnter,\n onMouseMove: child.props.onMouseMove,\n onMouseLeave: child.props.onMouseLeave,\n onMouseDown: child.props.onMouseDown,\n onFocus: child.props.onFocus,\n onBlur: child.props.onBlur,\n onKeyDown: child.props.onKeyDown,\n disabled: child.props.disabled,\n ref: child.ref,\n DEBUG_STYLE: DEBUG_STYLE\n }),\n trigger = _useTooltip[0],\n tooltip = _useTooltip[1];\n\n return /*#__PURE__*/(0,compat_module.createElement)(compat_module.Fragment, null, /*#__PURE__*/(0,compat_module.cloneElement)(child, trigger), /*#__PURE__*/(0,compat_module.createElement)(TooltipPopup, reach_tooltip_esm_extends({\n ref: forwardedRef,\n label: label,\n "aria-label": DEPRECATED_ariaLabel\n }, tooltip, props)));\n});\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * TooltipPopup\n *\n * @see Docs https://reach.tech/tooltip#tooltippopup\n */\n\n\nvar TooltipPopup = /*#__PURE__*/(0,compat_module.forwardRef)(function TooltipPopup(_ref3, forwardRef) {\n var label = _ref3.label,\n DEPRECATED_ariaLabel = _ref3.ariaLabel,\n isVisible = _ref3.isVisible,\n id = _ref3.id,\n props = reach_tooltip_esm_objectWithoutPropertiesLoose(_ref3, _excluded2);\n\n return isVisible ? /*#__PURE__*/(0,compat_module.createElement)(reach_portal_esm.Portal, null, /*#__PURE__*/(0,compat_module.createElement)(TooltipContent, reach_tooltip_esm_extends({\n ref: forwardRef,\n label: label,\n "aria-label": DEPRECATED_ariaLabel,\n isVisible: isVisible\n }, props, {\n id: makeId("tooltip", String(id))\n }))) : null;\n});\n\nif (false) {}\n/**\n * TooltipContent\n *\n * We need a separate component so that useRect works inside the portal.\n *\n * @see Docs https://reach.tech/tooltip#tooltipcontent\n */\n\n\nvar TooltipContent = /*#__PURE__*/(0,compat_module.forwardRef)(function TooltipContent(_ref4, forwardedRef) {\n var ariaLabel = _ref4.ariaLabel,\n realAriaLabel = _ref4["aria-label"],\n _ref4$as = _ref4.as,\n Comp = _ref4$as === void 0 ? "div" : _ref4$as,\n id = _ref4.id,\n isVisible = _ref4.isVisible,\n label = _ref4.label,\n _ref4$position = _ref4.position,\n position = _ref4$position === void 0 ? positionTooltip : _ref4$position,\n style = _ref4.style,\n triggerRect = _ref4.triggerRect,\n props = reach_tooltip_esm_objectWithoutPropertiesLoose(_ref4, _excluded3);\n\n // The element that serves as the tooltip container has role tooltip.\n // https://www.w3.org/TR/wai-aria-practices-1.2/#tooltip When an app passes\n // an `aria-label`, we actually want to implement `role="tooltip"` on a\n // visually hidden element inside of the trigger. In these cases we want the\n // screen reader user to know both the content in the tooltip, but also the\n // content in the badge. For screen reader users, the only content announced\n // to them is whatever is in the tooltip.\n var hasAriaLabel = (realAriaLabel || ariaLabel) != null;\n var ownRef = (0,compat_module.useRef)(null);\n var ref = useComposedRefs(forwardedRef, ownRef);\n var tooltipRect = useRect(ownRef, {\n observe: isVisible\n });\n return /*#__PURE__*/(0,compat_module.createElement)(compat_module.Fragment, null, /*#__PURE__*/(0,compat_module.createElement)(Comp, reach_tooltip_esm_extends({\n role: hasAriaLabel ? undefined : "tooltip"\n }, props, {\n ref: ref,\n "data-reach-tooltip": "",\n id: hasAriaLabel ? undefined : id,\n style: reach_tooltip_esm_extends({}, style, getStyles(position, triggerRect, tooltipRect))\n }), label), hasAriaLabel && /*#__PURE__*/(0,compat_module.createElement)(VisuallyHidden, {\n role: "tooltip",\n id: id\n }, realAriaLabel || ariaLabel));\n});\n\nif (false) {} ////////////////////////////////////////////////////////////////////////////////\n\n\nfunction getStyles(position, triggerRect, tooltipRect) {\n var haventMeasuredTooltipYet = !tooltipRect;\n\n if (haventMeasuredTooltipYet) {\n return {\n visibility: "hidden"\n };\n }\n\n return position(triggerRect, tooltipRect);\n} // Default offset from the trigger (e.g., if the tooltip is positioned above,\n// there will be 8px between the bottom of the tooltip and the top of the trigger).\n// It feels awkward when it\'s perfectly aligned w/ the trigger\n\n\nvar OFFSET_DEFAULT = 8;\nvar positionTooltip = function positionTooltip(triggerRect, tooltipRect, offset) {\n if (offset === void 0) {\n offset = OFFSET_DEFAULT;\n }\n\n var _getDocumentDimension = getDocumentDimensions(),\n windowWidth = _getDocumentDimension.width,\n windowHeight = _getDocumentDimension.height;\n\n if (!triggerRect || !tooltipRect) {\n return {};\n }\n\n var collisions = {\n top: triggerRect.top - tooltipRect.height < 0,\n right: windowWidth < triggerRect.left + tooltipRect.width,\n bottom: windowHeight < triggerRect.bottom + tooltipRect.height + offset,\n left: triggerRect.left - tooltipRect.width < 0\n };\n var directionRight = collisions.right && !collisions.left;\n var directionUp = collisions.bottom && !collisions.top;\n return {\n left: directionRight ? triggerRect.right - tooltipRect.width + window.pageXOffset + "px" : triggerRect.left + window.pageXOffset + "px",\n top: directionUp ? triggerRect.top - offset - tooltipRect.height + window.pageYOffset + "px" : triggerRect.top + offset + triggerRect.height + window.pageYOffset + "px"\n };\n};\n/**\n * This is a workaround for using tooltips with disabled controls in Safari.\n * Safari fires `pointerenter` but does not fire `pointerleave`, and\n * `onPointerEventLeave` added to the trigger element will not work.\n *\n * TODO: We may remove or modiify this behavior in a future version. Direction\n * from WAI-ARIA needed for guidance on handling disabled triggers. Tooltips\n * must be accessible by keyboard, and disabled form controls are generally\n * excluded from the tab sequence.\n *\n * @see https://github.com/reach/reach-ui/issues/564\n * @see https://github.com/w3c/aria-practices/issues/128#issuecomment-588625727\n */\n\nfunction useDisabledTriggerOnSafari(_ref5) {\n var disabled = _ref5.disabled,\n isVisible = _ref5.isVisible,\n ref = _ref5.ref;\n (0,compat_module.useEffect)(function () {\n if (!(typeof window !== "undefined" && "PointerEvent" in window) || !disabled || !isVisible) {\n return;\n }\n\n var ownerDocument = getOwnerDocument(ref.current);\n\n function handleMouseMove(event) {\n if (!isVisible) {\n return;\n }\n\n if (event.target instanceof Element && event.target.closest("[data-reach-tooltip-trigger][data-state=\'tooltip-visible\']")) {\n return;\n }\n\n send({\n type: TooltipEvents.GlobalMouseMove\n });\n }\n\n ownerDocument.addEventListener("mousemove", handleMouseMove);\n return function () {\n ownerDocument.removeEventListener("mousemove", handleMouseMove);\n };\n }, [disabled, isVisible, ref]);\n} ////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Send an event to our state machine to find the next state from the current\n * state + action.\n *\n * It also manages lifecycles of the machine, (enter/leave hooks on the state\n * chart)\n *\n * @param event\n * @param payload\n */\n\n\nfunction send(event) {\n var _transition = transition(state, event),\n value = _transition.value,\n context = _transition.context,\n changed = _transition.changed;\n\n if (changed) {\n state = {\n value: value,\n context: context\n };\n notify();\n }\n}\n\nfunction transition(currentState, event) {\n var stateDef = chart.states[currentState.value];\n var nextState = stateDef && stateDef.on && stateDef.on[event.type]; // Really useful for debugging\n // console.log({ event, state, nextState, contextId: context.id });\n // !nextState && console.log("no transition taken");\n\n if (!nextState) {\n return reach_tooltip_esm_extends({}, currentState, {\n changed: false\n });\n }\n\n if (stateDef && stateDef.leave) {\n stateDef.leave(currentState.context, event);\n }\n\n event.type;\n var payload = reach_tooltip_esm_objectWithoutPropertiesLoose(event, _excluded4); // TODO: Use actions instead of directly setting context\n\n\n var context = reach_tooltip_esm_extends({}, state.context, payload);\n\n var nextStateValue = typeof nextState === "string" ? nextState : nextState.target;\n var nextDef = chart.states[nextStateValue];\n\n if (nextDef && nextDef.enter) {\n nextDef.enter(currentState.context, event);\n }\n\n return {\n value: nextStateValue,\n context: context,\n changed: true\n };\n}\n\nfunction isTooltipVisible(id, initial) {\n return state.context.id === id && (initial ? state.value === TooltipStates.Visible : state.value === TooltipStates.Visible || state.value === TooltipStates.LeavingVisible);\n} ////////////////////////////////////////////////////////////////////////////////\n\n/* harmony default export */ const reach_tooltip_esm = (Tooltip);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLDJCQUFTO0FBQ1g7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixnQkFBZ0I7O0FBRXhDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esc0VBQXNFO0FBQ3RFLG1CQUFtQixnREFBZ0Q7QUFDbkU7O0FBRUE7QUFDQSxXQUFXLHlCQUFRLEdBQUc7QUFDdEI7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0JBQW9CLDhDQUE2QixxQkFBcUI7OztBQUd0RSxnQkFBZ0IseUJBQVEsR0FBRzs7QUFFM0I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFFOztBQUVGLHdEQUFlLE9BQU8sRUFBQztBQUMwRSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL0ByZWFjaC9hdXRvLWlkL2Rpc3QvcmVhY2gtYXV0by1pZC5lc20uanM/Mjg3YSIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvb3duZXItZG9jdW1lbnQvZGlzdC9yZWFjaC11dGlscy1vd25lci1kb2N1bWVudC5lc20uanM/YTc2YyIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvZ2V0LWRvY3VtZW50LWRpbWVuc2lvbnMvZGlzdC9yZWFjaC11dGlscy1nZXQtZG9jdW1lbnQtZGltZW5zaW9ucy5lc20uanM/NzlkOCIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvbWFrZS1pZC9kaXN0L3JlYWNoLXV0aWxzLW1ha2UtaWQuZXNtLmpzP2Q4ODYiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL2Rldi11dGlscy9kaXN0L3JlYWNoLXV0aWxzLWRldi11dGlscy5lc20uanM/NjViNSIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvdHlwZS1jaGVjay9kaXN0L3JlYWNoLXV0aWxzLXR5cGUtY2hlY2suZXNtLmpzP2I4ZWEiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL2NvbXBvc2UtcmVmcy9kaXN0L3JlYWNoLXV0aWxzLWNvbXBvc2UtcmVmcy5lc20uanM/YTYzMCIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvY29tcG9zZS1ldmVudC1oYW5kbGVycy9kaXN0L3JlYWNoLXV0aWxzLWNvbXBvc2UtZXZlbnQtaGFuZGxlcnMuZXNtLmpzP2YxOWMiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3Zpc3VhbGx5LWhpZGRlbi9kaXN0L3JlYWNoLXZpc3VhbGx5LWhpZGRlbi5lc20uanM/ZTk3NCIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvb2JzZXJ2ZS1yZWN0L2Rpc3Qvb2JzZXJ2ZS1yZWN0LmVzbS5qcz80NGJhIiwid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL0ByZWFjaC9yZWN0L2Rpc3QvcmVhY2gtcmVjdC5lc20uanM/Y2JmNyIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdG9vbHRpcC9kaXN0L3JlYWNoLXRvb2x0aXAuZXNtLmpzP2UyNjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICdAcmVhY2gvdXRpbHMvdXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdCc7XG5cbi8qXG4gKiBXZWxjb21lIHRvIEByZWFjaC9hdXRvLWlkIVxuXG4gKiBMZXQncyBzZWUgaWYgd2UgY2FuIG1ha2Ugc2Vuc2Ugb2Ygd2h5IHRoaXMgaG9vayBleGlzdHMgYW5kIGl0c1xuICogaW1wbGVtZW50YXRpb24uXG4gKlxuICogU29tZSBiYWNrZ3JvdW5kOlxuICogICAxLiBBY2Nlc3NpYmlsaXR5IEFQSXMgcmVseSBoZWF2aWx5IG9uIGVsZW1lbnQgSURzXG4gKiAgIDIuIFJlcXVpcmluZyBkZXZlbG9wZXJzIHRvIHB1dCBJRHMgb24gZXZlcnkgZWxlbWVudCBpbiBSZWFjaCBVSSBpcyBib3RoXG4gKiAgICAgIGN1bWJlcnNvbWUgYW5kIGVycm9yLXByb25lXG4gKiAgIDMuIFdpdGggYSBjb21wb25lbnQgbW9kZWwsIHdlIGNhbiBnZW5lcmF0ZSBJRHMgZm9yIHRoZW0hXG4gKlxuICogU29sdXRpb24gMTogR2VuZXJhdGUgcmFuZG9tIElEcy5cbiAqXG4gKiBUaGlzIHdvcmtzIGdyZWF0IGFzIGxvbmcgYXMgeW91IGRvbid0IHNlcnZlciByZW5kZXIgeW91ciBhcHAuIFdoZW4gUmVhY3QgKGluXG4gKiB0aGUgY2xpZW50KSB0cmllcyB0byByZXVzZSB0aGUgbWFya3VwIGZyb20gdGhlIHNlcnZlciwgdGhlIElEcyB3b24ndCBtYXRjaFxuICogYW5kIFJlYWN0IHdpbGwgdGhlbiByZWNyZWF0ZSB0aGUgZW50aXJlIERPTSB0cmVlLlxuICpcbiAqIFNvbHV0aW9uIDI6IEluY3JlbWVudCBhbiBpbnRlZ2VyXG4gKlxuICogVGhpcyBzb3VuZHMgZ3JlYXQuIFNpbmNlIHdlJ3JlIHJlbmRlcmluZyB0aGUgZXhhY3Qgc2FtZSB0cmVlIG9uIHRoZSBzZXJ2ZXJcbiAqIGFuZCBjbGllbnQsIHdlIGNhbiBpbmNyZW1lbnQgYSBjb3VudGVyIGFuZCBnZXQgYSBkZXRlcm1pbmlzdGljIHJlc3VsdCBiZXR3ZWVuXG4gKiBjbGllbnQgYW5kIHNlcnZlci4gQWxzbywgSlMgaW50ZWdlcnMgY2FuIGdvIHVwIHRvIG5pbmUtcXVhZHJpbGxpb24uIEknbVxuICogcHJldHR5IHN1cmUgdGhlIHRhYiB3aWxsIGJlIGNsb3NlZCBiZWZvcmUgYW4gYXBwIG5ldmVyIG5lZWRzXG4gKiAxMCBxdWFkcmlsbGlvbiBJRHMhXG4gKlxuICogUHJvYmxlbSBzb2x2ZWQsIHJpZ2h0P1xuICpcbiAqIEFoLCBidXQgdGhlcmUncyBhIGNhdGNoISBSZWFjdCdzIGNvbmN1cnJlbnQgcmVuZGVyaW5nIG1ha2VzIHRoaXMgYXBwcm9hY2hcbiAqIG5vbi1kZXRlcm1pbmlzdGljLiBXaGlsZSB0aGUgY2xpZW50IGFuZCBzZXJ2ZXIgd2lsbCBlbmQgdXAgd2l0aCB0aGUgc2FtZVxuICogZWxlbWVudHMgaW4gdGhlIGVuZCwgZGVwZW5kaW5nIG9uIHN1c3BlbnNlIGJvdW5kYXJpZXMgKGFuZCBwb3NzaWJseSBzb21lIHVzZXJcbiAqIGlucHV0IGR1cmluZyB0aGUgaW5pdGlhbCByZW5kZXIpIHRoZSBpbmNyZW1lbnRpbmcgaW50ZWdlcnMgd29uJ3QgYWx3YXlzIG1hdGNoXG4gKiB1cC5cbiAqXG4gKiBTb2x1dGlvbiAzOiBEb24ndCB1c2UgSURzIGF0IGFsbCBvbiB0aGUgc2VydmVyOyBwYXRjaCBhZnRlciBmaXJzdCByZW5kZXIuXG4gKlxuICogV2hhdCB3ZSd2ZSBkb25lIGhlcmUgaXMgc29sdXRpb24gMiB3aXRoIHNvbWUgdHJpY2tzLiBXaXRoIHRoaXMgYXBwcm9hY2gsIHRoZVxuICogSUQgcmV0dXJuZWQgaXMgYW4gZW1wdHkgc3RyaW5nIG9uIHRoZSBmaXJzdCByZW5kZXIuIFRoaXMgd2F5IHRoZSBzZXJ2ZXIgYW5kXG4gKiBjbGllbnQgaGF2ZSB0aGUgc2FtZSBtYXJrdXAgbm8gbWF0dGVyIGhvdyB3aWxkIHRoZSBjb25jdXJyZW50IHJlbmRlcmluZyBtYXlcbiAqIGhhdmUgZ290dGVuLlxuICpcbiAqIEFmdGVyIHRoZSByZW5kZXIsIHdlIHBhdGNoIHVwIHRoZSBjb21wb25lbnRzIHdpdGggYW4gaW5jcmVtZW50ZWQgSUQuIFRoaXNcbiAqIGNhdXNlcyBhIGRvdWJsZSByZW5kZXIgb24gYW55IGNvbXBvbmVudHMgd2l0aCBgdXNlSWRgLiBTaG91bGRuJ3QgYmUgYSBwcm9ibGVtXG4gKiBzaW5jZSB0aGUgY29tcG9uZW50cyB1c2luZyB0aGlzIGhvb2sgc2hvdWxkIGJlIHNtYWxsLCBhbmQgd2UncmUgb25seSB1cGRhdGluZ1xuICogdGhlIElEIGF0dHJpYnV0ZSBvbiB0aGUgRE9NLCBub3RoaW5nIGJpZyBpcyBoYXBwZW5pbmcuXG4gKlxuICogSXQgZG9lc24ndCBoYXZlIHRvIGJlIGFuIGluY3JlbWVudGVkIG51bWJlciwgdGhvdWdoLS13ZSBjb3VsZCBkbyBnZW5lcmF0ZVxuICogcmFuZG9tIHN0cmluZ3MgaW5zdGVhZCwgYnV0IGluY3JlbWVudGluZyBhIG51bWJlciBpcyBwcm9iYWJseSB0aGUgY2hlYXBlc3RcbiAqIHRoaW5nIHdlIGNhbiBkby5cbiAqXG4gKiBBZGRpdGlvbmFsbHksIHdlIG9ubHkgZG8gdGhpcyBwYXRjaHVwIG9uIHRoZSB2ZXJ5IGZpcnN0IGNsaWVudCByZW5kZXIgZXZlci5cbiAqIEFueSBjYWxscyB0byBgdXNlSWRgIHRoYXQgaGFwcGVuIGR5bmFtaWNhbGx5IGluIHRoZSBjbGllbnQgd2lsbCBiZVxuICogcG9wdWxhdGVkIGltbWVkaWF0ZWx5IHdpdGggYSB2YWx1ZS4gU28sIHdlIG9ubHkgZ2V0IHRoZSBkb3VibGUgcmVuZGVyIGFmdGVyXG4gKiBzZXJ2ZXIgaHlkcmF0aW9uIGFuZCBuZXZlciBhZ2FpbiwgU08gQkFDSyBPRkYgQUxSSUdIVD9cbiAqL1xudmFyIHNlcnZlckhhbmRvZmZDb21wbGV0ZSA9IGZhbHNlO1xudmFyIGlkID0gMDtcblxudmFyIGdlbklkID0gZnVuY3Rpb24gZ2VuSWQoKSB7XG4gIHJldHVybiArK2lkO1xufTtcbi8qKlxuICogdXNlSWRcbiAqXG4gKiBBdXRvZ2VuZXJhdGUgSURzIHRvIGZhY2lsaXRhdGUgV0FJLUFSSUEgYW5kIHNlcnZlciByZW5kZXJpbmcuXG4gKlxuICogTm90ZTogVGhlIHJldHVybmVkIElEIHdpbGwgaW5pdGlhbGx5IGJlIGBudWxsYCBhbmQgd2lsbCB1cGRhdGUgYWZ0ZXIgYVxuICogY29tcG9uZW50IG1vdW50cy4gVXNlcnMgbWF5IG5lZWQgdG8gc3VwcGx5IHRoZWlyIG93biBJRCBpZiB0aGV5IG5lZWRcbiAqIGNvbnNpc3RlbnQgdmFsdWVzIGZvciBTU1IuXG4gKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC9hdXRvLWlkXG4gKi9cblxuXG5mdW5jdGlvbiB1c2VJZChpZEZyb21Qcm9wcykge1xuICAvKlxuICAgKiBJZiB0aGlzIGluc3RhbmNlIGlzbid0IHBhcnQgb2YgdGhlIGluaXRpYWwgcmVuZGVyLCB3ZSBkb24ndCBoYXZlIHRvIGRvIHRoZVxuICAgKiBkb3VibGUgcmVuZGVyL3BhdGNoLXVwIGRhbmNlLiBXZSBjYW4ganVzdCBnZW5lcmF0ZSB0aGUgSUQgYW5kIHJldHVybiBpdC5cbiAgICovXG4gIHZhciBpbml0aWFsSWQgPSBpZEZyb21Qcm9wcyB8fCAoc2VydmVySGFuZG9mZkNvbXBsZXRlID8gZ2VuSWQoKSA6IG51bGwpO1xuXG4gIHZhciBfUmVhY3QkdXNlU3RhdGUgPSB1c2VTdGF0ZShpbml0aWFsSWQpLFxuICAgICAgaWQgPSBfUmVhY3QkdXNlU3RhdGVbMF0sXG4gICAgICBzZXRJZCA9IF9SZWFjdCR1c2VTdGF0ZVsxXTtcblxuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoaWQgPT09IG51bGwpIHtcbiAgICAgIC8qXG4gICAgICAgKiBQYXRjaCB0aGUgSUQgYWZ0ZXIgcmVuZGVyLiBXZSBkbyB0aGlzIGluIGB1c2VMYXlvdXRFZmZlY3RgIHRvIGF2b2lkIGFueVxuICAgICAgICogcmVuZGVyaW5nIGZsaWNrZXIsIHRob3VnaCBpdCdsbCBtYWtlIHRoZSBmaXJzdCByZW5kZXIgc2xvd2VyICh1bmxpa2VseVxuICAgICAgICogdG8gbWF0dGVyLCBidXQgeW91J3JlIHdlbGNvbWUgdG8gbWVhc3VyZSB5b3VyIGFwcCBhbmQgbGV0IHVzIGtub3cgaWZcbiAgICAgICAqIGl0J3MgYSBwcm9ibGVtKS5cbiAgICAgICAqL1xuICAgICAgc2V0SWQoZ2VuSWQoKSk7XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG5cbiAgfSwgW10pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChzZXJ2ZXJIYW5kb2ZmQ29tcGxldGUgPT09IGZhbHNlKSB7XG4gICAgICAvKlxuICAgICAgICogRmxhZyBhbGwgZnV0dXJlIHVzZXMgb2YgYHVzZUlkYCB0byBza2lwIHRoZSB1cGRhdGUgZGFuY2UuIFRoaXMgaXMgaW5cbiAgICAgICAqIGB1c2VFZmZlY3RgIGJlY2F1c2UgaXQgZ29lcyBhZnRlciBgdXNlTGF5b3V0RWZmZWN0YCwgZW5zdXJpbmcgd2UgZG9uJ3RcbiAgICAgICAqIGFjY2lkZW50YWxseSBiYWlsIG91dCBvZiB0aGUgcGF0Y2gtdXAgZGFuY2UgcHJlbWF0dXJlbHkuXG4gICAgICAgKi9cbiAgICAgIHNlcnZlckhhbmRvZmZDb21wbGV0ZSA9IHRydWU7XG4gICAgfVxuICB9LCBbXSk7XG4gIHJldHVybiBpZCAhPSBudWxsID8gU3RyaW5nKGlkKSA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IHsgdXNlSWQgfTtcbiIsImltcG9ydCB7IGNhblVzZURPTSB9IGZyb20gJy4uLy4uL2Nhbi11c2UtZG9tL2Rpc3QvcmVhY2gtdXRpbHMtY2FuLXVzZS1kb20uZXNtLmpzJztcblxuLyoqXG4gKiBHZXQgYW4gZWxlbWVudCdzIG93bmVyIGRvY3VtZW50LiBVc2VmdWwgd2hlbiBjb21wb25lbnRzIGFyZSB1c2VkIGluIGlmcmFtZXNcbiAqIG9yIG90aGVyIGVudmlyb25tZW50cyBsaWtlIGRldiB0b29scy5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudFxuICovXG5cbmZ1bmN0aW9uIGdldE93bmVyRG9jdW1lbnQoZWxlbWVudCkge1xuICByZXR1cm4gY2FuVXNlRE9NKCkgPyBlbGVtZW50ID8gZWxlbWVudC5vd25lckRvY3VtZW50IDogZG9jdW1lbnQgOiBudWxsO1xufVxuLyoqXG4gKiBUT0RPOiBSZW1vdmUgaW4gMS4wXG4gKi9cblxuZnVuY3Rpb24gZ2V0T3duZXJXaW5kb3coZWxlbWVudCkge1xuICB2YXIgb3duZXJEb2N1bWVudCA9IGdldE93bmVyRG9jdW1lbnQoZWxlbWVudCk7XG4gIHJldHVybiBvd25lckRvY3VtZW50ID8gb3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyB8fCB3aW5kb3cgOiBudWxsO1xufVxuXG5leHBvcnQgeyBnZXRPd25lckRvY3VtZW50LCBnZXRPd25lcldpbmRvdyB9O1xuIiwiaW1wb3J0IHsgZ2V0T3duZXJEb2N1bWVudCB9IGZyb20gJy4uLy4uL293bmVyLWRvY3VtZW50L2Rpc3QvcmVhY2gtdXRpbHMtb3duZXItZG9jdW1lbnQuZXNtLmpzJztcbmltcG9ydCAnLi4vLi4vY2FuLXVzZS1kb20vZGlzdC9yZWFjaC11dGlscy1jYW4tdXNlLWRvbS5lc20uanMnO1xuXG4vKipcbiAqIEdldCB0aGUgc2l6ZSBvZiB0aGUgd29ya2luZyBkb2N1bWVudCBtaW51cyB0aGUgc2Nyb2xsYmFyIG9mZnNldC5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudFxuICovXG5cbmZ1bmN0aW9uIGdldERvY3VtZW50RGltZW5zaW9ucyhlbGVtZW50KSB7XG4gIHZhciBfb3duZXJEb2N1bWVudCRkb2N1bWUsIF9vd25lckRvY3VtZW50JGRvY3VtZTI7XG5cbiAgdmFyIG93bmVyRG9jdW1lbnQgPSBnZXRPd25lckRvY3VtZW50KGVsZW1lbnQpO1xuICB2YXIgb3duZXJXaW5kb3cgPSBvd25lckRvY3VtZW50LmRlZmF1bHRWaWV3IHx8IHdpbmRvdztcblxuICBpZiAoIW93bmVyRG9jdW1lbnQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGg6IDAsXG4gICAgICBoZWlnaHQ6IDBcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogKF9vd25lckRvY3VtZW50JGRvY3VtZSA9IG93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKSAhPSBudWxsID8gX293bmVyRG9jdW1lbnQkZG9jdW1lIDogb3duZXJXaW5kb3cuaW5uZXJXaWR0aCxcbiAgICBoZWlnaHQ6IChfb3duZXJEb2N1bWVudCRkb2N1bWUyID0gb3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSAhPSBudWxsID8gX293bmVyRG9jdW1lbnQkZG9jdW1lMiA6IG93bmVyV2luZG93LmlubmVySGVpZ2h0XG4gIH07XG59XG5cbmV4cG9ydCB7IGdldERvY3VtZW50RGltZW5zaW9ucyB9O1xuIiwiLyoqXG4gKiBKb2lucyBzdHJpbmdzIHRvIGZvcm1hdCBJRHMgZm9yIGNvbXBvdW5kIGNvbXBvbmVudHMuXG4gKlxuICogQHBhcmFtIGFyZ3NcbiAqL1xuZnVuY3Rpb24gbWFrZUlkKCkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICB9XG5cbiAgcmV0dXJuIGFyZ3MuZmlsdGVyKGZ1bmN0aW9uICh2YWwpIHtcbiAgICByZXR1cm4gdmFsICE9IG51bGw7XG4gIH0pLmpvaW4oXCItLVwiKTtcbn1cblxuZXhwb3J0IHsgbWFrZUlkIH07XG4iLCJpbXBvcnQgeyB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3MgKi9cbnZhciBjaGVja2VkUGtncyA9IHt9O1xuLyoqXG4gKiBKdXN0IGEgbGlsIHN0YXRlIGxvZ2dlclxuICpcbiAqIEBwYXJhbSBzdGF0ZVxuICogQHBhcmFtIERFQlVHXG4gKi9cblxuZnVuY3Rpb24gdXNlU3RhdGVMb2dnZXIoc3RhdGUsIERFQlVHKSB7XG4gIGlmIChERUJVRyA9PT0gdm9pZCAwKSB7XG4gICAgREVCVUcgPSBmYWxzZTtcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICB2YXIgZGVidWdSZWYgPSB1c2VSZWYoREVCVUcpO1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBkZWJ1Z1JlZi5jdXJyZW50ID0gREVCVUc7XG4gICAgfSwgW0RFQlVHXSk7XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChkZWJ1Z1JlZi5jdXJyZW50KSB7XG4gICAgICAgIGNvbnNvbGUuZ3JvdXAoXCJTdGF0ZSBVcGRhdGVkXCIpO1xuICAgICAgICBjb25zb2xlLmxvZyhcIiVjXCIgKyBzdGF0ZSwgXCJmb250LXdlaWdodDogbm9ybWFsOyBmb250LXNpemU6IDEyMCU7IGZvbnQtc3R5bGU6IGl0YWxpYztcIik7XG4gICAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcbiAgICAgIH1cbiAgICB9LCBbc3RhdGVdKTtcbiAgfVxufVxuLyoqXG4gKiBXaGVuIGluIGRldiBtb2RlLCBjaGVja3MgdGhhdCBzdHlsZXMgZm9yIGEgZ2l2ZW4gYEByZWFjaGAgcGFja2FnZSBhcmUgbG9hZGVkLlxuICpcbiAqIEBwYXJhbSBwYWNrYWdlTmFtZSBOYW1lIG9mIHRoZSBwYWNrYWdlIHRvIGNoZWNrLlxuICogQGV4YW1wbGUgY2hlY2tTdHlsZXMoXCJkaWFsb2dcIikgd2lsbCBjaGVjayBmb3Igc3R5bGVzIGZvciBAcmVhY2gvZGlhbG9nXG4gKi9cblxuZnVuY3Rpb24gY2hlY2tTdHlsZXMocGFja2FnZU5hbWUpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIC8vIEluIENKUyBmaWxlcywgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgaXMgc3RyaXBwZWQgZnJvbSBvdXIgYnVpbGQsIGJ1dCB3ZVxuICAgIC8vIG5lZWQgaXQgdG8gcHJldmVudCBzdHlsZSBjaGVja3MgZnJvbSBjbG9nZ2luZyB1cCB1c2VyIGxvZ3Mgd2hpbGUgdGVzdGluZy5cbiAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCB1bnRpbCB3ZSBjYW4gdHdlYWsgdGhlIGJ1aWxkIGEgYml0IHRvIGFjY29tbW9kYXRlLlxuICAgIHZhciBfcmVmID0gdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgPyBwcm9jZXNzLmVudiA6IHtcbiAgICAgIE5PREVfRU5WOiBcImRldmVsb3BtZW50XCJcbiAgICB9LFxuICAgICAgICBlbnZpcm9ubWVudCA9IF9yZWYuTk9ERV9FTlY7IC8vIG9ubHkgY2hlY2sgb25jZSBwZXIgcGFja2FnZVxuXG5cbiAgICBpZiAoY2hlY2tlZFBrZ3NbcGFja2FnZU5hbWVdKSByZXR1cm47XG4gICAgY2hlY2tlZFBrZ3NbcGFja2FnZU5hbWVdID0gdHJ1ZTtcblxuICAgIGlmIChlbnZpcm9ubWVudCA9PT0gXCJkZXZlbG9wbWVudFwiICYmIHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5VmFsdWUoXCItLXJlYWNoLVwiICsgcGFja2FnZU5hbWUpLCAxMCkgIT09IDEpIHtcbiAgICAgIGNvbnNvbGUud2FybihcIkByZWFjaC9cIiArIHBhY2thZ2VOYW1lICsgXCIgc3R5bGVzIG5vdCBmb3VuZC4gSWYgeW91IGFyZSB1c2luZyBhIGJ1bmRsZXIgbGlrZSB3ZWJwYWNrIG9yIHBhcmNlbCBpbmNsdWRlIHRoaXMgaW4gdGhlIGVudHJ5IGZpbGUgb2YgeW91ciBhcHAgYmVmb3JlIGFueSBvZiB5b3VyIG93biBzdHlsZXM6XFxuICBcXG4gICAgICBpbXBvcnQgXFxcIkByZWFjaC9cIiArIHBhY2thZ2VOYW1lICsgXCIvc3R5bGVzLmNzc1xcXCI7XFxuICBcXG4gICAgT3RoZXJ3aXNlIHlvdSdsbCBuZWVkIHRvIGluY2x1ZGUgdGhlbSBzb21lIG90aGVyIHdheTpcXG4gIFxcbiAgICAgIDxsaW5rIHJlbD1cXFwic3R5bGVzaGVldFxcXCIgdHlwZT1cXFwidGV4dC9jc3NcXFwiIGhyZWY9XFxcIm5vZGVfbW9kdWxlcy9AcmVhY2gvXCIgKyBwYWNrYWdlTmFtZSArIFwiL3N0eWxlcy5jc3NcXFwiIC8+XFxuICBcXG4gICAgRm9yIG1vcmUgaW5mb3JtYXRpb24gdmlzaXQgaHR0cHM6Ly91aS5yZWFjaC50ZWNoL3N0eWxpbmcuXFxuICAgIFwiKTtcbiAgICB9XG4gIH1cbn1cbi8qKlxuICogV2hlbiBpbiBkZXYgbW9kZSwgY2hlY2tzIHRoYXQgc3R5bGVzIGZvciBhIGdpdmVuIGBAcmVhY2hgIHBhY2thZ2UgYXJlIGxvYWRlZC5cbiAqXG4gKiBAcGFyYW0gcGFja2FnZU5hbWUgTmFtZSBvZiB0aGUgcGFja2FnZSB0byBjaGVjay5cbiAqIEBleGFtcGxlIHVzZUNoZWNrU3R5bGVzKFwiZGlhbG9nXCIpIHdpbGwgY2hlY2sgZm9yIHN0eWxlcyBmb3IgQHJlYWNoL2RpYWxvZ1xuICovXG5cbmZ1bmN0aW9uIHVzZUNoZWNrU3R5bGVzKHBhY2thZ2VOYW1lKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICB2YXIgbmFtZSA9IHVzZVJlZihwYWNrYWdlTmFtZSk7XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB2b2lkIChuYW1lLmN1cnJlbnQgPSBwYWNrYWdlTmFtZSk7XG4gICAgfSwgW3BhY2thZ2VOYW1lXSk7XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBjaGVja1N0eWxlcyhuYW1lLmN1cnJlbnQpO1xuICAgIH0sIFtdKTtcbiAgfVxufVxuLyoqXG4gKiBMb2dzIGEgd2FybmluZyBpbiBkZXYgbW9kZSB3aGVuIGEgY29tcG9uZW50IHN3aXRjaGVzIGZyb20gY29udHJvbGxlZCB0b1xuICogdW5jb250cm9sbGVkLCBvciB2aWNlIHZlcnNhXG4gKlxuICogQSBzaW5nbGUgcHJvcCBzaG91bGQgdHlwaWNhbGx5IGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IGFcbiAqIGNvbXBvbmVudCBpcyBjb250cm9sbGVkIG9yIG5vdC5cbiAqXG4gKiBAcGFyYW0gY29udHJvbGxlZFZhbHVlXG4gKiBAcGFyYW0gY29udHJvbGxlZFByb3BOYW1lXG4gKiBAcGFyYW0gY29tcG9uZW50TmFtZVxuICovXG5cbmZ1bmN0aW9uIHVzZUNvbnRyb2xsZWRTd2l0Y2hXYXJuaW5nKGNvbnRyb2xsZWRWYWx1ZSwgY29udHJvbGxlZFByb3BOYW1lLCBjb21wb25lbnROYW1lKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICB2YXIgY29udHJvbGxlZFJlZiA9IHVzZVJlZihjb250cm9sbGVkVmFsdWUgIT0gbnVsbCk7XG4gICAgdmFyIG5hbWVDYWNoZSA9IHVzZVJlZih7XG4gICAgICBjb21wb25lbnROYW1lOiBjb21wb25lbnROYW1lLFxuICAgICAgY29udHJvbGxlZFByb3BOYW1lOiBjb250cm9sbGVkUHJvcE5hbWVcbiAgICB9KTtcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgbmFtZUNhY2hlLmN1cnJlbnQgPSB7XG4gICAgICAgIGNvbXBvbmVudE5hbWU6IGNvbXBvbmVudE5hbWUsXG4gICAgICAgIGNvbnRyb2xsZWRQcm9wTmFtZTogY29udHJvbGxlZFByb3BOYW1lXG4gICAgICB9O1xuICAgIH0sIFtjb21wb25lbnROYW1lLCBjb250cm9sbGVkUHJvcE5hbWVdKTtcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHdhc0NvbnRyb2xsZWQgPSBjb250cm9sbGVkUmVmLmN1cnJlbnQ7XG4gICAgICB2YXIgX25hbWVDYWNoZSRjdXJyZW50ID0gbmFtZUNhY2hlLmN1cnJlbnQsXG4gICAgICAgICAgY29tcG9uZW50TmFtZSA9IF9uYW1lQ2FjaGUkY3VycmVudC5jb21wb25lbnROYW1lLFxuICAgICAgICAgIGNvbnRyb2xsZWRQcm9wTmFtZSA9IF9uYW1lQ2FjaGUkY3VycmVudC5jb250cm9sbGVkUHJvcE5hbWU7XG4gICAgICB2YXIgaXNDb250cm9sbGVkID0gY29udHJvbGxlZFZhbHVlICE9IG51bGw7XG5cbiAgICAgIGlmICh3YXNDb250cm9sbGVkICE9PSBpc0NvbnRyb2xsZWQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkEgY29tcG9uZW50IGlzIGNoYW5naW5nIGFuIFwiICsgKHdhc0NvbnRyb2xsZWQgPyBcIlwiIDogXCJ1blwiKSArIFwiY29udHJvbGxlZCBgXCIgKyBjb250cm9sbGVkUHJvcE5hbWUgKyBcImAgc3RhdGUgb2YgXCIgKyBjb21wb25lbnROYW1lICsgXCIgdG8gYmUgXCIgKyAod2FzQ29udHJvbGxlZCA/IFwidW5cIiA6IFwiXCIpICsgXCJjb250cm9sbGVkLiBUaGlzIGlzIGxpa2VseSBjYXVzZWQgYnkgdGhlIHZhbHVlIGNoYW5naW5nIGZyb20gdW5kZWZpbmVkIHRvIGEgZGVmaW5lZCB2YWx1ZSwgd2hpY2ggc2hvdWxkIG5vdCBoYXBwZW4uIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgXCIgKyBjb21wb25lbnROYW1lICsgXCIgZWxlbWVudCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBjb21wb25lbnQuXFxuICAgICAgTW9yZSBpbmZvOiBodHRwczovL2ZiLm1lL3JlYWN0LWNvbnRyb2xsZWQtY29tcG9uZW50c1wiKTtcbiAgICAgIH1cbiAgICB9LCBbY29udHJvbGxlZFZhbHVlXSk7XG4gIH1cbn1cblxuZXhwb3J0IHsgY2hlY2tTdHlsZXMsIHVzZUNoZWNrU3R5bGVzLCB1c2VDb250cm9sbGVkU3dpdGNoV2FybmluZywgdXNlU3RhdGVMb2dnZXIgfTtcbiIsIi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IGEgdmFsdWUgaXMgYSBib29sZWFuLlxuICpcbiAqIEBwYXJhbSB2YWx1ZVxuICovXG5mdW5jdGlvbiBpc0Jvb2xlYW4odmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCI7XG59XG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCBhIHZhbHVlIGlzIGEgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIHZhbHVlXG4gKi9cblxuZnVuY3Rpb24gaXNGdW5jdGlvbih2YWx1ZSkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG4gIHJldHVybiAhISh2YWx1ZSAmJiB7fS50b1N0cmluZy5jYWxsKHZhbHVlKSA9PSBcIltvYmplY3QgRnVuY3Rpb25dXCIpO1xufVxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBvciBub3QgYSB2YWx1ZSBpcyBhIG51bWJlci5cbiAqXG4gKiBAcGFyYW0gdmFsdWVcbiAqL1xuXG5mdW5jdGlvbiBpc051bWJlcih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiICYmICFpc05hTih2YWx1ZSk7XG59XG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCBhIHZhbHVlIGlzIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB2YWx1ZVxuICovXG5cbmZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCI7XG59XG5cbmV4cG9ydCB7IGlzQm9vbGVhbiwgaXNGdW5jdGlvbiwgaXNOdW1iZXIsIGlzU3RyaW5nIH07XG4iLCJpbXBvcnQgeyB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlLWNoZWNrL2Rpc3QvcmVhY2gtdXRpbHMtdHlwZS1jaGVjay5lc20uanMnO1xuXG5mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikge1xuICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIGFycjJbaV0gPSBhcnJbaV07XG5cbiAgcmV0dXJuIGFycjI7XG59XG5cbmZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHtcbiAgaWYgKCFvKSByZXR1cm47XG4gIGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG4gIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTtcbiAgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTtcbiAgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7XG4gIGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbn1cblxuZnVuY3Rpb24gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXJMb29zZShvLCBhbGxvd0FycmF5TGlrZSkge1xuICB2YXIgaXQ7XG5cbiAgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwidW5kZWZpbmVkXCIgfHwgb1tTeW1ib2wuaXRlcmF0b3JdID09IG51bGwpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvKSB8fCAoaXQgPSBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobykpIHx8IGFsbG93QXJyYXlMaWtlICYmIG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSB7XG4gICAgICBpZiAoaXQpIG8gPSBpdDtcbiAgICAgIHZhciBpID0gMDtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChpID49IG8ubGVuZ3RoKSByZXR1cm4ge1xuICAgICAgICAgIGRvbmU6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkb25lOiBmYWxzZSxcbiAgICAgICAgICB2YWx1ZTogb1tpKytdXG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH1cblxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbiAgfVxuXG4gIGl0ID0gb1tTeW1ib2wuaXRlcmF0b3JdKCk7XG4gIHJldHVybiBpdC5uZXh0LmJpbmQoaXQpO1xufVxuXG4vKipcbiAqIFBhc3NlcyBvciBhc3NpZ25zIGFuIGFyYml0cmFyeSB2YWx1ZSB0byBhIHJlZiBmdW5jdGlvbiBvciBvYmplY3QuXG4gKlxuICogQHBhcmFtIHJlZlxuICogQHBhcmFtIHZhbHVlXG4gKi9cbmZ1bmN0aW9uIGFzc2lnblJlZihyZWYsIHZhbHVlKSB7XG4gIGlmIChyZWYgPT0gbnVsbCkgcmV0dXJuO1xuXG4gIGlmIChpc0Z1bmN0aW9uKHJlZikpIHtcbiAgICByZWYodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICByZWYuY3VycmVudCA9IHZhbHVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgYXNzaWduIHZhbHVlIFxcXCJcIiArIHZhbHVlICsgXCJcXFwiIHRvIHJlZiBcXFwiXCIgKyByZWYgKyBcIlxcXCJcIik7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIFBhc3NlcyBvciBhc3NpZ25zIGEgdmFsdWUgdG8gbXVsdGlwbGUgcmVmcyAodHlwaWNhbGx5IGEgRE9NIG5vZGUpLiBVc2VmdWwgZm9yXG4gKiBkZWFsaW5nIHdpdGggY29tcG9uZW50cyB0aGF0IG5lZWQgYW4gZXhwbGljaXQgcmVmIGZvciBET00gY2FsY3VsYXRpb25zIGJ1dFxuICogYWxzbyBmb3J3YXJkcyByZWZzIGFzc2lnbmVkIGJ5IGFuIGFwcC5cbiAqXG4gKiBAcGFyYW0gcmVmcyBSZWZzIHRvIGZvcmtcbiAqL1xuXG5mdW5jdGlvbiB1c2VDb21wb3NlZFJlZnMoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCByZWZzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIHJlZnNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICByZXR1cm4gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKG5vZGUpIHtcbiAgICBmb3IgKHZhciBfaXRlcmF0b3IgPSBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlckxvb3NlKHJlZnMpLCBfc3RlcDsgIShfc3RlcCA9IF9pdGVyYXRvcigpKS5kb25lOykge1xuICAgICAgdmFyIHJlZiA9IF9zdGVwLnZhbHVlO1xuICAgICAgYXNzaWduUmVmKHJlZiwgbm9kZSk7XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG5cbiAgfSwgcmVmcyk7XG59XG5cbmV4cG9ydCB7IGFzc2lnblJlZiwgdXNlQ29tcG9zZWRSZWZzIH07XG4iLCIvKipcbiAqIFdyYXBzIGEgbGliLWRlZmluZWQgZXZlbnQgaGFuZGxlciBhbmQgYSB1c2VyLWRlZmluZWQgZXZlbnQgaGFuZGxlciwgcmV0dXJuaW5nXG4gKiBhIHNpbmdsZSBoYW5kbGVyIHRoYXQgYWxsb3dzIGEgdXNlciB0byBwcmV2ZW50IGxpYi1kZWZpbmVkIGhhbmRsZXJzIGZyb21cbiAqIGZpcmluZy5cbiAqXG4gKiBAcGFyYW0gdGhlaXJIYW5kbGVyIFVzZXItc3VwcGxpZWQgZXZlbnQgaGFuZGxlclxuICogQHBhcmFtIG91ckhhbmRsZXIgTGlicmFyeS1zdXBwbGllZCBldmVudCBoYW5kbGVyXG4gKi9cbmZ1bmN0aW9uIGNvbXBvc2VFdmVudEhhbmRsZXJzKHRoZWlySGFuZGxlciwgb3VySGFuZGxlcikge1xuICByZXR1cm4gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgdGhlaXJIYW5kbGVyICYmIHRoZWlySGFuZGxlcihldmVudCk7XG5cbiAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIHJldHVybiBvdXJIYW5kbGVyKGV2ZW50KTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH07XG4iLCJpbXBvcnQgeyBmb3J3YXJkUmVmLCBjcmVhdGVFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7XG4gIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfTtcblxuICByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkge1xuICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTtcbiAgdmFyIHRhcmdldCA9IHt9O1xuICB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gIHZhciBrZXksIGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBzb3VyY2VLZXlzW2ldO1xuICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbnZhciBfZXhjbHVkZWQgPSBbXCJhc1wiLCBcInN0eWxlXCJdO1xuXG4vKipcbiAqIFZpc3VhbGx5SGlkZGVuXG4gKlxuICogUHJvdmlkZXMgdGV4dCBmb3Igc2NyZWVuIHJlYWRlcnMgdGhhdCBpcyB2aXN1YWxseSBoaWRkZW4uXG4gKiBJdCBpcyB0aGUgbG9naWNhbCBvcHBvc2l0ZSBvZiB0aGUgYGFyaWEtaGlkZGVuYCBhdHRyaWJ1dGUuXG4gKi9cbnZhciBWaXN1YWxseUhpZGRlbiA9IC8qI19fUFVSRV9fKi9mb3J3YXJkUmVmKGZ1bmN0aW9uIFZpc3VhbGx5SGlkZGVuKF9yZWYsIHJlZikge1xuICB2YXIgX3JlZiRhcyA9IF9yZWYuYXMsXG4gICAgICBDb21wID0gX3JlZiRhcyA9PT0gdm9pZCAwID8gXCJzcGFuXCIgOiBfcmVmJGFzLFxuICAgICAgX3JlZiRzdHlsZSA9IF9yZWYuc3R5bGUsXG4gICAgICBzdHlsZSA9IF9yZWYkc3R5bGUgPT09IHZvaWQgMCA/IHt9IDogX3JlZiRzdHlsZSxcbiAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3JlZiwgX2V4Y2x1ZGVkKTtcblxuICByZXR1cm4gLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoQ29tcCwgX2V4dGVuZHMoe1xuICAgIHJlZjogcmVmLFxuICAgIHN0eWxlOiBfZXh0ZW5kcyh7XG4gICAgICBib3JkZXI6IDAsXG4gICAgICBjbGlwOiBcInJlY3QoMCAwIDAgMClcIixcbiAgICAgIGhlaWdodDogXCIxcHhcIixcbiAgICAgIG1hcmdpbjogXCItMXB4XCIsXG4gICAgICBvdmVyZmxvdzogXCJoaWRkZW5cIixcbiAgICAgIHBhZGRpbmc6IDAsXG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgd2lkdGg6IFwiMXB4XCIsXG4gICAgICAvLyBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gICAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuICAgICAgd29yZFdyYXA6IFwibm9ybWFsXCJcbiAgICB9LCBzdHlsZSlcbiAgfSwgcHJvcHMpKTtcbn0pO1xuLyoqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3Zpc3VhbGx5LWhpZGRlbiN2aXN1YWxseWhpZGRlbi1wcm9wc1xuICovXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgVmlzdWFsbHlIaWRkZW4uZGlzcGxheU5hbWUgPSBcIlZpc3VhbGx5SGlkZGVuXCI7XG4gIFZpc3VhbGx5SGlkZGVuLnByb3BUeXBlcyA9IHtcbiAgICBhczogUHJvcFR5cGVzLmFueSxcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGVcbiAgfTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGRlZmF1bHQgVmlzdWFsbHlIaWRkZW47XG5leHBvcnQgeyBWaXN1YWxseUhpZGRlbiB9O1xuIiwidmFyIHByb3BzID0gW1wiYm90dG9tXCIsIFwiaGVpZ2h0XCIsIFwibGVmdFwiLCBcInJpZ2h0XCIsIFwidG9wXCIsIFwid2lkdGhcIl07XG5cbnZhciByZWN0Q2hhbmdlZCA9IGZ1bmN0aW9uIHJlY3RDaGFuZ2VkKGEsIGIpIHtcbiAgaWYgKGEgPT09IHZvaWQgMCkge1xuICAgIGEgPSB7fTtcbiAgfVxuXG4gIGlmIChiID09PSB2b2lkIDApIHtcbiAgICBiID0ge307XG4gIH1cblxuICByZXR1cm4gcHJvcHMuc29tZShmdW5jdGlvbiAocHJvcCkge1xuICAgIHJldHVybiBhW3Byb3BdICE9PSBiW3Byb3BdO1xuICB9KTtcbn07XG5cbnZhciBvYnNlcnZlZE5vZGVzID0gLyojX19QVVJFX18qL25ldyBNYXAoKTtcbnZhciByYWZJZDtcblxudmFyIHJ1biA9IGZ1bmN0aW9uIHJ1bigpIHtcbiAgdmFyIGNoYW5nZWRTdGF0ZXMgPSBbXTtcbiAgb2JzZXJ2ZWROb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChzdGF0ZSwgbm9kZSkge1xuICAgIHZhciBuZXdSZWN0ID0gbm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGlmIChyZWN0Q2hhbmdlZChuZXdSZWN0LCBzdGF0ZS5yZWN0KSkge1xuICAgICAgc3RhdGUucmVjdCA9IG5ld1JlY3Q7XG4gICAgICBjaGFuZ2VkU3RhdGVzLnB1c2goc3RhdGUpO1xuICAgIH1cbiAgfSk7XG4gIGNoYW5nZWRTdGF0ZXMuZm9yRWFjaChmdW5jdGlvbiAoc3RhdGUpIHtcbiAgICBzdGF0ZS5jYWxsYmFja3MuZm9yRWFjaChmdW5jdGlvbiAoY2IpIHtcbiAgICAgIHJldHVybiBjYihzdGF0ZS5yZWN0KTtcbiAgICB9KTtcbiAgfSk7XG4gIHJhZklkID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShydW4pO1xufTtcblxuZnVuY3Rpb24gb2JzZXJ2ZVJlY3Qobm9kZSwgY2IpIHtcbiAgcmV0dXJuIHtcbiAgICBvYnNlcnZlOiBmdW5jdGlvbiBvYnNlcnZlKCkge1xuICAgICAgdmFyIHdhc0VtcHR5ID0gb2JzZXJ2ZWROb2Rlcy5zaXplID09PSAwO1xuXG4gICAgICBpZiAob2JzZXJ2ZWROb2Rlcy5oYXMobm9kZSkpIHtcbiAgICAgICAgb2JzZXJ2ZWROb2Rlcy5nZXQobm9kZSkuY2FsbGJhY2tzLnB1c2goY2IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2JzZXJ2ZWROb2Rlcy5zZXQobm9kZSwge1xuICAgICAgICAgIHJlY3Q6IHVuZGVmaW5lZCxcbiAgICAgICAgICBoYXNSZWN0Q2hhbmdlZDogZmFsc2UsXG4gICAgICAgICAgY2FsbGJhY2tzOiBbY2JdXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAod2FzRW1wdHkpIHJ1bigpO1xuICAgIH0sXG4gICAgdW5vYnNlcnZlOiBmdW5jdGlvbiB1bm9ic2VydmUoKSB7XG4gICAgICB2YXIgc3RhdGUgPSBvYnNlcnZlZE5vZGVzLmdldChub2RlKTtcblxuICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgY2FsbGJhY2tcbiAgICAgICAgdmFyIGluZGV4ID0gc3RhdGUuY2FsbGJhY2tzLmluZGV4T2YoY2IpO1xuICAgICAgICBpZiAoaW5kZXggPj0gMCkgc3RhdGUuY2FsbGJhY2tzLnNwbGljZShpbmRleCwgMSk7IC8vIFJlbW92ZSB0aGUgbm9kZSByZWZlcmVuY2VcblxuICAgICAgICBpZiAoIXN0YXRlLmNhbGxiYWNrcy5sZW5ndGgpIG9ic2VydmVkTm9kZXNbXCJkZWxldGVcIl0obm9kZSk7IC8vIFN0b3AgdGhlIGxvb3BcblxuICAgICAgICBpZiAoIW9ic2VydmVkTm9kZXMuc2l6ZSkgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmSWQpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgb2JzZXJ2ZVJlY3Q7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1vYnNlcnZlLXJlY3QuZXNtLmpzLm1hcFxuIiwiaW1wb3J0IHsgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBvYnNlcnZlUmVjdCBmcm9tICdAcmVhY2gvb2JzZXJ2ZS1yZWN0JztcbmltcG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICdAcmVhY2gvdXRpbHMvdXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdCc7XG5pbXBvcnQgeyBpc0Jvb2xlYW4sIGlzRnVuY3Rpb24gfSBmcm9tICdAcmVhY2gvdXRpbHMvdHlwZS1jaGVjayc7XG5pbXBvcnQgd2FybmluZyBmcm9tICd0aW55LXdhcm5pbmcnO1xuXG4vKipcbiAqIFdlbGNvbWUgdG8gQHJlYWNoL3JlY3QhXG4gKlxuICogTWVhc3VyZXMgRE9NIGVsZW1lbnRzIChha2EuIGJvdW5kaW5nIGNsaWVudCByZWN0KS5cbiAqXG4gKiBAc2VlIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRWxlbWVudC9nZXRCb3VuZGluZ0NsaWVudFJlY3RcbiAqIEBzZWUgRG9jcyAgICAgICAgICAgICAgICAgIGh0dHBzOi8vcmVhY2gudGVjaC9yZWN0XG4gKiBAc2VlIFNvdXJjZSAgICAgICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vcmVhY2gvcmVhY2gtdWkvdHJlZS9tYWluL3BhY2thZ2VzL3JlY3RcbiAqL1xuXG4vKipcbiAqIFJlY3RcbiAqXG4gKiBAcGFyYW0gcHJvcHNcbiAqL1xuXG52YXIgUmVjdCA9IGZ1bmN0aW9uIFJlY3QoX3JlZikge1xuICB2YXIgb25DaGFuZ2UgPSBfcmVmLm9uQ2hhbmdlLFxuICAgICAgX3JlZiRvYnNlcnZlID0gX3JlZi5vYnNlcnZlLFxuICAgICAgb2JzZXJ2ZSA9IF9yZWYkb2JzZXJ2ZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9yZWYkb2JzZXJ2ZSxcbiAgICAgIGNoaWxkcmVuID0gX3JlZi5jaGlsZHJlbjtcbiAgdmFyIHJlZiA9IHVzZVJlZihudWxsKTtcbiAgdmFyIHJlY3QgPSB1c2VSZWN0KHJlZiwge1xuICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgb25DaGFuZ2U6IG9uQ2hhbmdlXG4gIH0pO1xuICByZXR1cm4gY2hpbGRyZW4oe1xuICAgIHJlZjogcmVmLFxuICAgIHJlY3Q6IHJlY3RcbiAgfSk7XG59O1xuLyoqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3JlY3QjcmVjdC1wcm9wc1xuICovXG5cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICBSZWN0LmRpc3BsYXlOYW1lID0gXCJSZWN0XCI7XG4gIFJlY3QucHJvcFR5cGVzID0ge1xuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9ic2VydmU6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuY1xuICB9O1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5cbi8qKlxuICogdXNlUmVjdFxuICpcbiAqIEBwYXJhbSBub2RlUmVmXG4gKiBAcGFyYW0gb2JzZXJ2ZVxuICogQHBhcmFtIG9uQ2hhbmdlXG4gKi9cbmZ1bmN0aW9uIHVzZVJlY3Qobm9kZVJlZiwgb2JzZXJ2ZU9yT3B0aW9ucywgZGVwcmVjYXRlZF9vbkNoYW5nZSkge1xuICB2YXIgb2JzZXJ2ZTtcbiAgdmFyIG9uQ2hhbmdlO1xuXG4gIGlmIChpc0Jvb2xlYW4ob2JzZXJ2ZU9yT3B0aW9ucykpIHtcbiAgICBvYnNlcnZlID0gb2JzZXJ2ZU9yT3B0aW9ucztcbiAgfSBlbHNlIHtcbiAgICB2YXIgX29ic2VydmVPck9wdGlvbnMkb2JzO1xuXG4gICAgb2JzZXJ2ZSA9IChfb2JzZXJ2ZU9yT3B0aW9ucyRvYnMgPSBvYnNlcnZlT3JPcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvYnNlcnZlT3JPcHRpb25zLm9ic2VydmUpICE9IG51bGwgPyBfb2JzZXJ2ZU9yT3B0aW9ucyRvYnMgOiB0cnVlO1xuICAgIG9uQ2hhbmdlID0gb2JzZXJ2ZU9yT3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb2JzZXJ2ZU9yT3B0aW9ucy5vbkNoYW5nZTtcbiAgfVxuXG4gIGlmIChpc0Z1bmN0aW9uKGRlcHJlY2F0ZWRfb25DaGFuZ2UpKSB7XG4gICAgb25DaGFuZ2UgPSBkZXByZWNhdGVkX29uQ2hhbmdlO1xuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKCFpc0Jvb2xlYW4ob2JzZXJ2ZU9yT3B0aW9ucyksIFwiUGFzc2luZyBgb2JzZXJ2ZWAgYXMgdGhlIHNlY29uZCBhcmd1bWVudCB0byBgdXNlUmVjdGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgUmVhY2ggVUkuIEluc3RlYWQsIHlvdSBjYW4gcGFzcyBhbiBvYmplY3Qgb2Ygb3B0aW9ucyB3aXRoIGFuIGBvYnNlcnZlYCBwcm9wZXJ0eSBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IChgdXNlUmVjdChyZWYsIHsgb2JzZXJ2ZSB9KWApLlxcblwiICsgXCJTZWUgaHR0cHM6Ly9yZWFjaC50ZWNoL3JlY3QjdXNlcmVjdC1vYnNlcnZlXCIpIDogdm9pZCAwO1xuICAgIH0sIFtvYnNlcnZlT3JPcHRpb25zXSk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuXG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHdhcm5pbmcoIWlzRnVuY3Rpb24oZGVwcmVjYXRlZF9vbkNoYW5nZSksIFwiUGFzc2luZyBgb25DaGFuZ2VgIGFzIHRoZSB0aGlyZCBhcmd1bWVudCB0byBgdXNlUmVjdGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgUmVhY2ggVUkuIEluc3RlYWQsIHlvdSBjYW4gcGFzcyBhbiBvYmplY3Qgb2Ygb3B0aW9ucyB3aXRoIGFuIGBvbkNoYW5nZWAgcHJvcGVydHkgYXMgdGhlIHNlY29uZCBhcmd1bWVudCAoYHVzZVJlY3QocmVmLCB7IG9uQ2hhbmdlIH0pYCkuXFxuXCIgKyBcIlNlZSBodHRwczovL3JlYWNoLnRlY2gvcmVjdCN1c2VyZWN0LW9uY2hhbmdlXCIpIDogdm9pZCAwO1xuICAgIH0sIFtkZXByZWNhdGVkX29uQ2hhbmdlXSk7XG4gIH1cblxuICB2YXIgX1JlYWN0JHVzZVN0YXRlID0gdXNlU3RhdGUobm9kZVJlZi5jdXJyZW50KSxcbiAgICAgIGVsZW1lbnQgPSBfUmVhY3QkdXNlU3RhdGVbMF0sXG4gICAgICBzZXRFbGVtZW50ID0gX1JlYWN0JHVzZVN0YXRlWzFdO1xuXG4gIHZhciBpbml0aWFsUmVjdElzU2V0ID0gdXNlUmVmKGZhbHNlKTtcbiAgdmFyIGluaXRpYWxSZWZJc1NldCA9IHVzZVJlZihmYWxzZSk7XG5cbiAgdmFyIF9SZWFjdCR1c2VTdGF0ZTIgPSB1c2VTdGF0ZShudWxsKSxcbiAgICAgIHJlY3QgPSBfUmVhY3QkdXNlU3RhdGUyWzBdLFxuICAgICAgc2V0UmVjdCA9IF9SZWFjdCR1c2VTdGF0ZTJbMV07XG5cbiAgdmFyIG9uQ2hhbmdlUmVmID0gdXNlUmVmKG9uQ2hhbmdlKTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuXG4gIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIG9uQ2hhbmdlUmVmLmN1cnJlbnQgPSBvbkNoYW5nZTtcblxuICAgIGlmIChub2RlUmVmLmN1cnJlbnQgIT09IGVsZW1lbnQpIHtcbiAgICAgIHNldEVsZW1lbnQobm9kZVJlZi5jdXJyZW50KTtcbiAgICB9XG4gIH0pO1xuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoZWxlbWVudCAmJiAhaW5pdGlhbFJlY3RJc1NldC5jdXJyZW50KSB7XG4gICAgICBpbml0aWFsUmVjdElzU2V0LmN1cnJlbnQgPSB0cnVlO1xuICAgICAgc2V0UmVjdChlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTtcbiAgICB9XG4gIH0sIFtlbGVtZW50XSk7XG4gIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmICghb2JzZXJ2ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBlbGVtID0gZWxlbWVudDsgLy8gU3RhdGUgaW5pdGlhbGl6ZXMgYmVmb3JlIHJlZnMgYXJlIHBsYWNlZCwgbWVhbmluZyB0aGUgZWxlbWVudCBzdGF0ZSB3aWxsXG4gICAgLy8gYmUgdW5kZWZpbmVkIG9uIHRoZSBmaXJzdCByZW5kZXIuIFdlIHN0aWxsIHdhbnQgdGhlIHJlY3Qgb24gdGhlIGZpcnN0XG4gICAgLy8gcmVuZGVyLCBzbyBpbml0aWFsbHkgd2UnbGwgdXNlIHRoZSBub2RlUmVmIHRoYXQgd2FzIHBhc3NlZCBpbnN0ZWFkIG9mXG4gICAgLy8gc3RhdGUgZm9yIG91ciBtZWFzdXJlbWVudHMuXG5cbiAgICBpZiAoIWluaXRpYWxSZWZJc1NldC5jdXJyZW50KSB7XG4gICAgICBpbml0aWFsUmVmSXNTZXQuY3VycmVudCA9IHRydWU7XG4gICAgICBlbGVtID0gbm9kZVJlZi5jdXJyZW50O1xuICAgIH1cblxuICAgIGlmICghZWxlbSkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICBjb25zb2xlLndhcm4oXCJZb3UgbmVlZCB0byBwbGFjZSB0aGUgcmVmXCIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIG9ic2VydmVyID0gb2JzZXJ2ZVJlY3QoZWxlbSwgZnVuY3Rpb24gKHJlY3QpIHtcbiAgICAgIG9uQ2hhbmdlUmVmLmN1cnJlbnQgPT0gbnVsbCA/IHZvaWQgMCA6IG9uQ2hhbmdlUmVmLmN1cnJlbnQocmVjdCk7XG4gICAgICBzZXRSZWN0KHJlY3QpO1xuICAgIH0pO1xuICAgIG9ic2VydmVyLm9ic2VydmUoKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKCk7XG4gICAgfTtcbiAgfSwgW29ic2VydmUsIGVsZW1lbnQsIG5vZGVSZWZdKTtcbiAgcmV0dXJuIHJlY3Q7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJlY3Q7XG5leHBvcnQgeyBSZWN0LCB1c2VSZWN0IH07XG4iLCJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VFZmZlY3QsIGZvcndhcmRSZWYsIENoaWxkcmVuLCBjcmVhdGVFbGVtZW50LCBGcmFnbWVudCwgY2xvbmVFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlSWQgfSBmcm9tICdAcmVhY2gvYXV0by1pZCc7XG5pbXBvcnQgeyBnZXREb2N1bWVudERpbWVuc2lvbnMgfSBmcm9tICdAcmVhY2gvdXRpbHMvZ2V0LWRvY3VtZW50LWRpbWVuc2lvbnMnO1xuaW1wb3J0IHsgZ2V0T3duZXJEb2N1bWVudCB9IGZyb20gJ0ByZWFjaC91dGlscy9vd25lci1kb2N1bWVudCc7XG5pbXBvcnQgeyBtYWtlSWQgfSBmcm9tICdAcmVhY2gvdXRpbHMvbWFrZS1pZCc7XG5pbXBvcnQgeyB1c2VDaGVja1N0eWxlcyB9IGZyb20gJ0ByZWFjaC91dGlscy9kZXYtdXRpbHMnO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSAnQHJlYWNoL3V0aWxzL2NvbXBvc2UtcmVmcyc7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJ0ByZWFjaC91dGlscy9jb21wb3NlLWV2ZW50LWhhbmRsZXJzJztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJ0ByZWFjaC9wb3J0YWwnO1xuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tICdAcmVhY2gvdmlzdWFsbHktaGlkZGVuJztcbmltcG9ydCB7IHVzZVJlY3QgfSBmcm9tICdAcmVhY2gvcmVjdCc7XG5pbXBvcnQgd2FybmluZyBmcm9tICd0aW55LXdhcm5pbmcnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7XG4gIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfTtcblxuICByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkge1xuICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTtcbiAgdmFyIHRhcmdldCA9IHt9O1xuICB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gIHZhciBrZXksIGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBzb3VyY2VLZXlzW2ldO1xuICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbnZhciBfZXhjbHVkZWQgPSBbXCJjaGlsZHJlblwiLCBcImxhYmVsXCIsIFwiYXJpYUxhYmVsXCIsIFwiaWRcIiwgXCJERUJVR19TVFlMRVwiXSxcbiAgICBfZXhjbHVkZWQyID0gW1wibGFiZWxcIiwgXCJhcmlhTGFiZWxcIiwgXCJpc1Zpc2libGVcIiwgXCJpZFwiXSxcbiAgICBfZXhjbHVkZWQzID0gW1wiYXJpYUxhYmVsXCIsIFwiYXJpYS1sYWJlbFwiLCBcImFzXCIsIFwiaWRcIiwgXCJpc1Zpc2libGVcIiwgXCJsYWJlbFwiLCBcInBvc2l0aW9uXCIsIFwic3R5bGVcIiwgXCJ0cmlnZ2VyUmVjdFwiXSxcbiAgICBfZXhjbHVkZWQ0ID0gW1widHlwZVwiXTtcblxudmFyIF9vbiwgX29uMiwgX29uMywgX29uNCwgX29uNSwgX3N0YXRlcztcbnZhciBNT1VTRV9SRVNUX1RJTUVPVVQgPSAxMDA7XG52YXIgTEVBVkVfVElNRU9VVCA9IDUwMDsgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFN0YXRlc1xuXG52YXIgVG9vbHRpcFN0YXRlczsgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEV2ZW50c1xuXG4oZnVuY3Rpb24gKFRvb2x0aXBTdGF0ZXMpIHtcbiAgVG9vbHRpcFN0YXRlc1tcIklkbGVcIl0gPSBcIklETEVcIjtcbiAgVG9vbHRpcFN0YXRlc1tcIkZvY3VzZWRcIl0gPSBcIkZPQ1VTRURcIjtcbiAgVG9vbHRpcFN0YXRlc1tcIlZpc2libGVcIl0gPSBcIlZJU0lCTEVcIjtcbiAgVG9vbHRpcFN0YXRlc1tcIkxlYXZpbmdWaXNpYmxlXCJdID0gXCJMRUFWSU5HX1ZJU0lCTEVcIjtcbiAgVG9vbHRpcFN0YXRlc1tcIkRpc21pc3NlZFwiXSA9IFwiRElTTUlTU0VEXCI7XG59KShUb29sdGlwU3RhdGVzIHx8IChUb29sdGlwU3RhdGVzID0ge30pKTtcblxudmFyIFRvb2x0aXBFdmVudHM7XG5cbihmdW5jdGlvbiAoVG9vbHRpcEV2ZW50cykge1xuICBUb29sdGlwRXZlbnRzW1wiQmx1clwiXSA9IFwiQkxVUlwiO1xuICBUb29sdGlwRXZlbnRzW1wiRm9jdXNcIl0gPSBcIkZPQ1VTXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJHbG9iYWxNb3VzZU1vdmVcIl0gPSBcIkdMT0JBTF9NT1VTRV9NT1ZFXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJNb3VzZURvd25cIl0gPSBcIk1PVVNFX0RPV05cIjtcbiAgVG9vbHRpcEV2ZW50c1tcIk1vdXNlRW50ZXJcIl0gPSBcIk1PVVNFX0VOVEVSXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJNb3VzZUxlYXZlXCJdID0gXCJNT1VTRV9MRUFWRVwiO1xuICBUb29sdGlwRXZlbnRzW1wiTW91c2VNb3ZlXCJdID0gXCJNT1VTRV9NT1ZFXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJSZXN0XCJdID0gXCJSRVNUXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJTZWxlY3RXaXRoS2V5Ym9hcmRcIl0gPSBcIlNFTEVDVF9XSVRIX0tFWUJPQVJEXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJUaW1lQ29tcGxldGVcIl0gPSBcIlRJTUVfQ09NUExFVEVcIjtcbn0pKFRvb2x0aXBFdmVudHMgfHwgKFRvb2x0aXBFdmVudHMgPSB7fSkpO1xuXG52YXIgY2hhcnQgPSB7XG4gIGluaXRpYWw6IFRvb2x0aXBTdGF0ZXMuSWRsZSxcbiAgc3RhdGVzOiAoX3N0YXRlcyA9IHt9LCBfc3RhdGVzW1Rvb2x0aXBTdGF0ZXMuSWRsZV0gPSB7XG4gICAgZW50ZXI6IGNsZWFyQ29udGV4dElkLFxuICAgIG9uOiAoX29uID0ge30sIF9vbltUb29sdGlwRXZlbnRzLk1vdXNlRW50ZXJdID0gVG9vbHRpcFN0YXRlcy5Gb2N1c2VkLCBfb25bVG9vbHRpcEV2ZW50cy5Gb2N1c10gPSBUb29sdGlwU3RhdGVzLlZpc2libGUsIF9vbilcbiAgfSwgX3N0YXRlc1tUb29sdGlwU3RhdGVzLkZvY3VzZWRdID0ge1xuICAgIGVudGVyOiBzdGFydFJlc3RUaW1lcixcbiAgICBsZWF2ZTogY2xlYXJSZXN0VGltZXIsXG4gICAgb246IChfb24yID0ge30sIF9vbjJbVG9vbHRpcEV2ZW50cy5Nb3VzZU1vdmVdID0gVG9vbHRpcFN0YXRlcy5Gb2N1c2VkLCBfb24yW1Rvb2x0aXBFdmVudHMuTW91c2VMZWF2ZV0gPSBUb29sdGlwU3RhdGVzLklkbGUsIF9vbjJbVG9vbHRpcEV2ZW50cy5Nb3VzZURvd25dID0gVG9vbHRpcFN0YXRlcy5EaXNtaXNzZWQsIF9vbjJbVG9vbHRpcEV2ZW50cy5CbHVyXSA9IFRvb2x0aXBTdGF0ZXMuSWRsZSwgX29uMltUb29sdGlwRXZlbnRzLlJlc3RdID0gVG9vbHRpcFN0YXRlcy5WaXNpYmxlLCBfb24yKVxuICB9LCBfc3RhdGVzW1Rvb2x0aXBTdGF0ZXMuVmlzaWJsZV0gPSB7XG4gICAgb246IChfb24zID0ge30sIF9vbjNbVG9vbHRpcEV2ZW50cy5Gb2N1c10gPSBUb29sdGlwU3RhdGVzLkZvY3VzZWQsIF9vbjNbVG9vbHRpcEV2ZW50cy5Nb3VzZUVudGVyXSA9IFRvb2x0aXBTdGF0ZXMuRm9jdXNlZCwgX29uM1tUb29sdGlwRXZlbnRzLk1vdXNlTGVhdmVdID0gVG9vbHRpcFN0YXRlcy5MZWF2aW5nVmlzaWJsZSwgX29uM1tUb29sdGlwRXZlbnRzLkJsdXJdID0gVG9vbHRpcFN0YXRlcy5MZWF2aW5nVmlzaWJsZSwgX29uM1tUb29sdGlwRXZlbnRzLk1vdXNlRG93bl0gPSBUb29sdGlwU3RhdGVzLkRpc21pc3NlZCwgX29uM1tUb29sdGlwRXZlbnRzLlNlbGVjdFdpdGhLZXlib2FyZF0gPSBUb29sdGlwU3RhdGVzLkRpc21pc3NlZCwgX29uM1tUb29sdGlwRXZlbnRzLkdsb2JhbE1vdXNlTW92ZV0gPSBUb29sdGlwU3RhdGVzLkxlYXZpbmdWaXNpYmxlLCBfb24zKVxuICB9LCBfc3RhdGVzW1Rvb2x0aXBTdGF0ZXMuTGVhdmluZ1Zpc2libGVdID0ge1xuICAgIGVudGVyOiBzdGFydExlYXZpbmdWaXNpYmxlVGltZXIsXG4gICAgbGVhdmU6IGZ1bmN0aW9uIGxlYXZlKCkge1xuICAgICAgY2xlYXJMZWF2aW5nVmlzaWJsZVRpbWVyKCk7XG4gICAgICBjbGVhckNvbnRleHRJZCgpO1xuICAgIH0sXG4gICAgb246IChfb240ID0ge30sIF9vbjRbVG9vbHRpcEV2ZW50cy5Nb3VzZUVudGVyXSA9IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSwgX29uNFtUb29sdGlwRXZlbnRzLkZvY3VzXSA9IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSwgX29uNFtUb29sdGlwRXZlbnRzLlRpbWVDb21wbGV0ZV0gPSBUb29sdGlwU3RhdGVzLklkbGUsIF9vbjQpXG4gIH0sIF9zdGF0ZXNbVG9vbHRpcFN0YXRlcy5EaXNtaXNzZWRdID0ge1xuICAgIGxlYXZlOiBmdW5jdGlvbiBsZWF2ZSgpIHtcbiAgICAgIGNsZWFyQ29udGV4dElkKCk7XG4gICAgfSxcbiAgICBvbjogKF9vbjUgPSB7fSwgX29uNVtUb29sdGlwRXZlbnRzLk1vdXNlTGVhdmVdID0gVG9vbHRpcFN0YXRlcy5JZGxlLCBfb241W1Rvb2x0aXBFdmVudHMuQmx1cl0gPSBUb29sdGlwU3RhdGVzLklkbGUsIF9vbjUpXG4gIH0sIF9zdGF0ZXMpXG59O1xuLypcbiAqIENoYXJ0IGNvbnRleHQgYWxsb3dzIHVzIHRvIHBlcnNpc3Qgc29tZSBkYXRhIGFyb3VuZCwgaW4gVG9vbHRpcCBhbGwgd2UgdXNlXG4gKiBpcyB0aGUgaWQgb2YgdGhlIGN1cnJlbnQgdG9vbHRpcCBiZWluZyBpbnRlcmFjdGVkIHdpdGguXG4gKi9cblxudmFyIHN0YXRlID0ge1xuICB2YWx1ZTogY2hhcnQuaW5pdGlhbCxcbiAgY29udGV4dDoge1xuICAgIGlkOiBudWxsXG4gIH1cbn07IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTdWJzY3JpcHRpb25zOlxuLy9cbi8vIFdlIGNvdWxkIHJlcXVpcmUgYXBwcyB0byByZW5kZXIgYSA8VG9vbHRpcFByb3ZpZGVyPiBhcm91bmQgdGhlIGFwcCBhbmQgdXNlXG4vLyBSZWFjdCBjb250ZXh0IHRvIG5vdGlmeSBUb29sdGlwcyBvZiBjaGFuZ2VzIHRvIG91ciBzdGF0ZSBtYWNoaW5lLCBpbnN0ZWFkXG4vLyB3ZSBtYW5hZ2Ugc3Vic2NyaXB0aW9ucyBvdXJzZWx2ZXMgYW5kIHNpbXBsaWZ5IHRoZSBUb29sdGlwIEFQSS5cbi8vXG4vLyBNYXliZSBpZiBkZWZhdWx0IGNvbnRleHQgY291bGQgdGFrZSBhIGhvb2sgKGluc3RlYWQgb2YganVzdCBhIHN0YXRpYyB2YWx1ZSlcbi8vIHRoYXQgd2FzIHJlbmRlcmVkIGF0IHRoZSByb290IGZvciB1cywgdGhhdCdkIGJlIGNvb2whIEJ1dCBpdCBkb2Vzbid0LlxuXG52YXIgc3Vic2NyaXB0aW9ucyA9IFtdO1xuXG5mdW5jdGlvbiBzdWJzY3JpYmUoZm4pIHtcbiAgc3Vic2NyaXB0aW9ucy5wdXNoKGZuKTtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBzdWJzY3JpcHRpb25zLnNwbGljZShzdWJzY3JpcHRpb25zLmluZGV4T2YoZm4pLCAxKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gbm90aWZ5KCkge1xuICBzdWJzY3JpcHRpb25zLmZvckVhY2goZnVuY3Rpb24gKGZuKSB7XG4gICAgcmV0dXJuIGZuKHN0YXRlKTtcbiAgfSk7XG59IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBUaW1lb3V0czpcbi8vIE1hbmFnZXMgd2hlbiB0aGUgdXNlciBcInJlc3RzXCIgb24gYW4gZWxlbWVudC4gS2VlcHMgdGhlIGludGVyZmFjZSBmcm9tIGJlaW5nXG4vLyBmbGFzaGluZyB0b29sdGlwcyBhbGwgdGhlIHRpbWUgYXMgdGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlIGFyb3VuZCB0aGUgc2NyZWVuLlxuXG5cbnZhciByZXN0VGltZW91dDtcblxuZnVuY3Rpb24gc3RhcnRSZXN0VGltZXIoKSB7XG4gIHdpbmRvdy5jbGVhclRpbWVvdXQocmVzdFRpbWVvdXQpO1xuICByZXN0VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICBzZW5kKHtcbiAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuUmVzdFxuICAgIH0pO1xuICB9LCBNT1VTRV9SRVNUX1RJTUVPVVQpO1xufVxuXG5mdW5jdGlvbiBjbGVhclJlc3RUaW1lcigpIHtcbiAgd2luZG93LmNsZWFyVGltZW91dChyZXN0VGltZW91dCk7XG59IC8vIE1hbmFnZXMgdGhlIGRlbGF5IHRvIGhpZGUgdGhlIHRvb2x0aXAgYWZ0ZXIgcmVzdCBsZWF2ZXMuXG5cblxudmFyIGxlYXZpbmdWaXNpYmxlVGltZXI7XG5cbmZ1bmN0aW9uIHN0YXJ0TGVhdmluZ1Zpc2libGVUaW1lcigpIHtcbiAgd2luZG93LmNsZWFyVGltZW91dChsZWF2aW5nVmlzaWJsZVRpbWVyKTtcbiAgbGVhdmluZ1Zpc2libGVUaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gc2VuZCh7XG4gICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLlRpbWVDb21wbGV0ZVxuICAgIH0pO1xuICB9LCBMRUFWRV9USU1FT1VUKTtcbn1cblxuZnVuY3Rpb24gY2xlYXJMZWF2aW5nVmlzaWJsZVRpbWVyKCkge1xuICB3aW5kb3cuY2xlYXJUaW1lb3V0KGxlYXZpbmdWaXNpYmxlVGltZXIpO1xufSAvLyBhbGxvd3MgdXMgdG8gY29tZSBvbiBiYWNrIGxhdGVyIHcvbyBlbnRlcmluZyBzb21ldGhpbmcgZWxzZSBmaXJzdCBhZnRlciB0aGVcbi8vIHVzZXIgbGVhdmVzIG9yIGRpc21pc3Nlc1xuXG5cbmZ1bmN0aW9uIGNsZWFyQ29udGV4dElkKCkge1xuICBzdGF0ZS5jb250ZXh0LmlkID0gbnVsbDtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqXG4gKiB1c2VUb29sdGlwXG4gKlxuICogQHBhcmFtIHBhcmFtc1xuICovXG5cblxuZnVuY3Rpb24gdXNlVG9vbHRpcChfdGVtcCkge1xuICB2YXIgX3JlZiA9IF90ZW1wID09PSB2b2lkIDAgPyB7fSA6IF90ZW1wLFxuICAgICAgaWRQcm9wID0gX3JlZi5pZCxcbiAgICAgIG9uUG9pbnRlckVudGVyID0gX3JlZi5vblBvaW50ZXJFbnRlcixcbiAgICAgIG9uUG9pbnRlck1vdmUgPSBfcmVmLm9uUG9pbnRlck1vdmUsXG4gICAgICBvblBvaW50ZXJMZWF2ZSA9IF9yZWYub25Qb2ludGVyTGVhdmUsXG4gICAgICBvblBvaW50ZXJEb3duID0gX3JlZi5vblBvaW50ZXJEb3duLFxuICAgICAgb25Nb3VzZUVudGVyID0gX3JlZi5vbk1vdXNlRW50ZXIsXG4gICAgICBvbk1vdXNlTW92ZSA9IF9yZWYub25Nb3VzZU1vdmUsXG4gICAgICBvbk1vdXNlTGVhdmUgPSBfcmVmLm9uTW91c2VMZWF2ZSxcbiAgICAgIG9uTW91c2VEb3duID0gX3JlZi5vbk1vdXNlRG93bixcbiAgICAgIG9uRm9jdXMgPSBfcmVmLm9uRm9jdXMsXG4gICAgICBvbkJsdXIgPSBfcmVmLm9uQmx1cixcbiAgICAgIG9uS2V5RG93biA9IF9yZWYub25LZXlEb3duLFxuICAgICAgZGlzYWJsZWQgPSBfcmVmLmRpc2FibGVkLFxuICAgICAgZm9yd2FyZGVkUmVmID0gX3JlZi5yZWYsXG4gICAgICBERUJVR19TVFlMRSA9IF9yZWYuREVCVUdfU1RZTEU7XG5cbiAgdmFyIGlkID0gU3RyaW5nKHVzZUlkKGlkUHJvcCkpO1xuXG4gIHZhciBfUmVhY3QkdXNlU3RhdGUgPSB1c2VTdGF0ZShERUJVR19TVFlMRSA/IHRydWUgOiBpc1Rvb2x0aXBWaXNpYmxlKGlkLCB0cnVlKSksXG4gICAgICBpc1Zpc2libGUgPSBfUmVhY3QkdXNlU3RhdGVbMF0sXG4gICAgICBzZXRJc1Zpc2libGUgPSBfUmVhY3QkdXNlU3RhdGVbMV07IC8vIGhvcGVmdWxseSB0aGV5IGFsd2F5cyBwYXNzIGEgcmVmIGlmIHRoZXkgZXZlciBwYXNzIG9uZVxuXG5cbiAgdmFyIG93blJlZiA9IHVzZVJlZihudWxsKTtcbiAgdmFyIHJlZiA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIG93blJlZik7XG4gIHZhciB0cmlnZ2VyUmVjdCA9IHVzZVJlY3Qob3duUmVmLCB7XG4gICAgb2JzZXJ2ZTogaXNWaXNpYmxlXG4gIH0pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBzdWJzY3JpYmUoZnVuY3Rpb24gKCkge1xuICAgICAgc2V0SXNWaXNpYmxlKGlzVG9vbHRpcFZpc2libGUoaWQpKTtcbiAgICB9KTtcbiAgfSwgW2lkXSk7XG4gIHVzZUNoZWNrU3R5bGVzKFwidG9vbHRpcFwiKTtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgb3duZXJEb2N1bWVudCA9IGdldE93bmVyRG9jdW1lbnQob3duUmVmLmN1cnJlbnQpO1xuXG4gICAgZnVuY3Rpb24gbGlzdGVuZXIoZXZlbnQpIHtcbiAgICAgIGlmICgoZXZlbnQua2V5ID09PSBcIkVzY2FwZVwiIHx8IGV2ZW50LmtleSA9PT0gXCJFc2NcIikgJiYgc3RhdGUudmFsdWUgPT09IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSkge1xuICAgICAgICBzZW5kKHtcbiAgICAgICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLlNlbGVjdFdpdGhLZXlib2FyZFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBvd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGxpc3RlbmVyKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgbGlzdGVuZXIpO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgdXNlRGlzYWJsZWRUcmlnZ2VyT25TYWZhcmkoe1xuICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICBpc1Zpc2libGU6IGlzVmlzaWJsZSxcbiAgICByZWY6IG93blJlZlxuICB9KTtcblxuICBmdW5jdGlvbiB3cmFwTW91c2VFdmVudCh0aGVpckhhbmRsZXIsIG91ckhhbmRsZXIpIHtcbiAgICAvLyBVc2UgaW50ZXJuYWwgTW91c2VFdmVudCBoYW5kbGVyIG9ubHkgaWYgUG9pbnRlckV2ZW50IGlzIG5vdCBzdXBwb3J0ZWRcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBcIlBvaW50ZXJFdmVudFwiIGluIHdpbmRvdykge1xuICAgICAgcmV0dXJuIHRoZWlySGFuZGxlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9zZUV2ZW50SGFuZGxlcnModGhlaXJIYW5kbGVyLCBvdXJIYW5kbGVyKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHdyYXBQb2ludGVyRXZlbnRIYW5kbGVyKGhhbmRsZXIpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gb25Qb2ludGVyRXZlbnQoZXZlbnQpIHtcbiAgICAgIC8vIEhhbmRsZSBwb2ludGVyIGV2ZW50cyBvbmx5IGZyb20gbW91c2UgZGV2aWNlXG4gICAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgIT09IFwibW91c2VcIikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGhhbmRsZXIoZXZlbnQpO1xuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVNb3VzZUVudGVyKCkge1xuICAgIHNlbmQoe1xuICAgICAgdHlwZTogVG9vbHRpcEV2ZW50cy5Nb3VzZUVudGVyLFxuICAgICAgaWQ6IGlkXG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVNb3VzZU1vdmUoKSB7XG4gICAgc2VuZCh7XG4gICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLk1vdXNlTW92ZSxcbiAgICAgIGlkOiBpZFxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlTW91c2VMZWF2ZSgpIHtcbiAgICBzZW5kKHtcbiAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuTW91c2VMZWF2ZVxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlTW91c2VEb3duKCkge1xuICAgIC8vIEFsbG93IHF1aWNrIGNsaWNrIGZyb20gb25lIHRvb2wgdG8gYW5vdGhlclxuICAgIGlmIChzdGF0ZS5jb250ZXh0LmlkID09PSBpZCkge1xuICAgICAgc2VuZCh7XG4gICAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuTW91c2VEb3duXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVGb2N1cygpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaWYgKHdpbmRvdy5fX1JFQUNIX0RJU0FCTEVfVE9PTFRJUFMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZW5kKHtcbiAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuRm9jdXMsXG4gICAgICBpZDogaWRcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUJsdXIoKSB7XG4gICAgLy8gQWxsb3cgcXVpY2sgY2xpY2sgZnJvbSBvbmUgdG9vbCB0byBhbm90aGVyXG4gICAgaWYgKHN0YXRlLmNvbnRleHQuaWQgPT09IGlkKSB7XG4gICAgICBzZW5kKHtcbiAgICAgICAgdHlwZTogVG9vbHRpcEV2ZW50cy5CbHVyXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVLZXlEb3duKGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiIHx8IGV2ZW50LmtleSA9PT0gXCIgXCIpIHtcbiAgICAgIHNlbmQoe1xuICAgICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLlNlbGVjdFdpdGhLZXlib2FyZFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHRyaWdnZXIgPSB7XG4gICAgLy8gVGhlIGVsZW1lbnQgdGhhdCB0cmlnZ2VycyB0aGUgdG9vbHRpcCByZWZlcmVuY2VzIHRoZSB0b29sdGlwIGVsZW1lbnQgd2l0aFxuICAgIC8vIGBhcmlhLWRlc2NyaWJlZGJ5YC5cbiAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzLTEuMi8jdG9vbHRpcFxuICAgIFwiYXJpYS1kZXNjcmliZWRieVwiOiBpc1Zpc2libGUgPyBtYWtlSWQoXCJ0b29sdGlwXCIsIGlkKSA6IHVuZGVmaW5lZCxcbiAgICBcImRhdGEtc3RhdGVcIjogaXNWaXNpYmxlID8gXCJ0b29sdGlwLXZpc2libGVcIiA6IFwidG9vbHRpcC1oaWRkZW5cIixcbiAgICBcImRhdGEtcmVhY2gtdG9vbHRpcC10cmlnZ2VyXCI6IFwiXCIsXG4gICAgcmVmOiByZWYsXG4gICAgb25Qb2ludGVyRW50ZXI6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uUG9pbnRlckVudGVyLCB3cmFwUG9pbnRlckV2ZW50SGFuZGxlcihoYW5kbGVNb3VzZUVudGVyKSksXG4gICAgb25Qb2ludGVyTW92ZTogY29tcG9zZUV2ZW50SGFuZGxlcnMob25Qb2ludGVyTW92ZSwgd3JhcFBvaW50ZXJFdmVudEhhbmRsZXIoaGFuZGxlTW91c2VNb3ZlKSksXG4gICAgb25Qb2ludGVyTGVhdmU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uUG9pbnRlckxlYXZlLCB3cmFwUG9pbnRlckV2ZW50SGFuZGxlcihoYW5kbGVNb3VzZUxlYXZlKSksXG4gICAgb25Qb2ludGVyRG93bjogY29tcG9zZUV2ZW50SGFuZGxlcnMob25Qb2ludGVyRG93biwgd3JhcFBvaW50ZXJFdmVudEhhbmRsZXIoaGFuZGxlTW91c2VEb3duKSksXG4gICAgb25Nb3VzZUVudGVyOiB3cmFwTW91c2VFdmVudChvbk1vdXNlRW50ZXIsIGhhbmRsZU1vdXNlRW50ZXIpLFxuICAgIG9uTW91c2VNb3ZlOiB3cmFwTW91c2VFdmVudChvbk1vdXNlTW92ZSwgaGFuZGxlTW91c2VNb3ZlKSxcbiAgICBvbk1vdXNlTGVhdmU6IHdyYXBNb3VzZUV2ZW50KG9uTW91c2VMZWF2ZSwgaGFuZGxlTW91c2VMZWF2ZSksXG4gICAgb25Nb3VzZURvd246IHdyYXBNb3VzZUV2ZW50KG9uTW91c2VEb3duLCBoYW5kbGVNb3VzZURvd24pLFxuICAgIG9uRm9jdXM6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uRm9jdXMsIGhhbmRsZUZvY3VzKSxcbiAgICBvbkJsdXI6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uQmx1ciwgaGFuZGxlQmx1ciksXG4gICAgb25LZXlEb3duOiBjb21wb3NlRXZlbnRIYW5kbGVycyhvbktleURvd24sIGhhbmRsZUtleURvd24pXG4gIH07XG4gIHZhciB0b29sdGlwID0ge1xuICAgIGlkOiBpZCxcbiAgICB0cmlnZ2VyUmVjdDogdHJpZ2dlclJlY3QsXG4gICAgaXNWaXNpYmxlOiBpc1Zpc2libGVcbiAgfTtcbiAgcmV0dXJuIFt0cmlnZ2VyLCB0b29sdGlwLCBpc1Zpc2libGVdO1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIFRvb2x0aXBcbiAqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3Rvb2x0aXAjdG9vbHRpcFxuICovXG5cblxudmFyIFRvb2x0aXAgPSAvKiNfX1BVUkVfXyovZm9yd2FyZFJlZihmdW5jdGlvbiAoX3JlZjIsIGZvcndhcmRlZFJlZikge1xuICB2YXIgY2hpbGRyZW4gPSBfcmVmMi5jaGlsZHJlbixcbiAgICAgIGxhYmVsID0gX3JlZjIubGFiZWwsXG4gICAgICBERVBSRUNBVEVEX2FyaWFMYWJlbCA9IF9yZWYyLmFyaWFMYWJlbCxcbiAgICAgIGlkID0gX3JlZjIuaWQsXG4gICAgICBERUJVR19TVFlMRSA9IF9yZWYyLkRFQlVHX1NUWUxFLFxuICAgICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmMiwgX2V4Y2x1ZGVkKTtcblxuICB2YXIgY2hpbGQgPSBDaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyghREVQUkVDQVRFRF9hcmlhTGFiZWwsIFwiVGhlIGBhcmlhTGFiZWwgcHJvcCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgZnJvbSBAcmVhY2gvdG9vbHRpcCBpbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIFJlYWNoIFVJLiBQbGVhc2UgdXNlIGBhcmlhLWxhYmVsYCBpbnN0ZWFkLlwiKSA6IHZvaWQgMDsgLy8gV2UgbmVlZCB0byBwYXNzIHNvbWUgcHJvcGVydGllcyBmcm9tIHRoZSBjaGlsZCBpbnRvIHVzZVRvb2x0aXBcbiAgLy8gdG8gbWFrZSBzdXJlIHVzZXJzIGNhbiBtYWludGFpbiBjb250cm9sIG92ZXIgdGhlIHRyaWdnZXIncyByZWYgYW5kIGV2ZW50c1xuXG4gIHZhciBfdXNlVG9vbHRpcCA9IHVzZVRvb2x0aXAoe1xuICAgIGlkOiBpZCxcbiAgICBvblBvaW50ZXJFbnRlcjogY2hpbGQucHJvcHMub25Qb2ludGVyRW50ZXIsXG4gICAgb25Qb2ludGVyTW92ZTogY2hpbGQucHJvcHMub25Qb2ludGVyTW92ZSxcbiAgICBvblBvaW50ZXJMZWF2ZTogY2hpbGQucHJvcHMub25Qb2ludGVyTGVhdmUsXG4gICAgb25Qb2ludGVyRG93bjogY2hpbGQucHJvcHMub25Qb2ludGVyRG93bixcbiAgICBvbk1vdXNlRW50ZXI6IGNoaWxkLnByb3BzLm9uTW91c2VFbnRlcixcbiAgICBvbk1vdXNlTW92ZTogY2hpbGQucHJvcHMub25Nb3VzZU1vdmUsXG4gICAgb25Nb3VzZUxlYXZlOiBjaGlsZC5wcm9wcy5vbk1vdXNlTGVhdmUsXG4gICAgb25Nb3VzZURvd246IGNoaWxkLnByb3BzLm9uTW91c2VEb3duLFxuICAgIG9uRm9jdXM6IGNoaWxkLnByb3BzLm9uRm9jdXMsXG4gICAgb25CbHVyOiBjaGlsZC5wcm9wcy5vbkJsdXIsXG4gICAgb25LZXlEb3duOiBjaGlsZC5wcm9wcy5vbktleURvd24sXG4gICAgZGlzYWJsZWQ6IGNoaWxkLnByb3BzLmRpc2FibGVkLFxuICAgIHJlZjogY2hpbGQucmVmLFxuICAgIERFQlVHX1NUWUxFOiBERUJVR19TVFlMRVxuICB9KSxcbiAgICAgIHRyaWdnZXIgPSBfdXNlVG9vbHRpcFswXSxcbiAgICAgIHRvb2x0aXAgPSBfdXNlVG9vbHRpcFsxXTtcblxuICByZXR1cm4gLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoRnJhZ21lbnQsIG51bGwsIC8qI19fUFVSRV9fKi9jbG9uZUVsZW1lbnQoY2hpbGQsIHRyaWdnZXIpLCAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChUb29sdGlwUG9wdXAsIF9leHRlbmRzKHtcbiAgICByZWY6IGZvcndhcmRlZFJlZixcbiAgICBsYWJlbDogbGFiZWwsXG4gICAgXCJhcmlhLWxhYmVsXCI6IERFUFJFQ0FURURfYXJpYUxhYmVsXG4gIH0sIHRvb2x0aXAsIHByb3BzKSkpO1xufSk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgVG9vbHRpcC5kaXNwbGF5TmFtZSA9IFwiVG9vbHRpcFwiO1xuICBUb29sdGlwLnByb3BUeXBlcyA9IHtcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBsYWJlbDogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBhcmlhTGFiZWw6IFByb3BUeXBlcy5zdHJpbmdcbiAgfTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqXG4gKiBUb29sdGlwUG9wdXBcbiAqXG4gKiBAc2VlIERvY3MgaHR0cHM6Ly9yZWFjaC50ZWNoL3Rvb2x0aXAjdG9vbHRpcHBvcHVwXG4gKi9cblxuXG52YXIgVG9vbHRpcFBvcHVwID0gLyojX19QVVJFX18qL2ZvcndhcmRSZWYoZnVuY3Rpb24gVG9vbHRpcFBvcHVwKF9yZWYzLCBmb3J3YXJkUmVmKSB7XG4gIHZhciBsYWJlbCA9IF9yZWYzLmxhYmVsLFxuICAgICAgREVQUkVDQVRFRF9hcmlhTGFiZWwgPSBfcmVmMy5hcmlhTGFiZWwsXG4gICAgICBpc1Zpc2libGUgPSBfcmVmMy5pc1Zpc2libGUsXG4gICAgICBpZCA9IF9yZWYzLmlkLFxuICAgICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmMywgX2V4Y2x1ZGVkMik7XG5cbiAgcmV0dXJuIGlzVmlzaWJsZSA/IC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KFBvcnRhbCwgbnVsbCwgLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoVG9vbHRpcENvbnRlbnQsIF9leHRlbmRzKHtcbiAgICByZWY6IGZvcndhcmRSZWYsXG4gICAgbGFiZWw6IGxhYmVsLFxuICAgIFwiYXJpYS1sYWJlbFwiOiBERVBSRUNBVEVEX2FyaWFMYWJlbCxcbiAgICBpc1Zpc2libGU6IGlzVmlzaWJsZVxuICB9LCBwcm9wcywge1xuICAgIGlkOiBtYWtlSWQoXCJ0b29sdGlwXCIsIFN0cmluZyhpZCkpXG4gIH0pKSkgOiBudWxsO1xufSk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgVG9vbHRpcFBvcHVwLmRpc3BsYXlOYW1lID0gXCJUb29sdGlwUG9wdXBcIjtcbiAgVG9vbHRpcFBvcHVwLnByb3BUeXBlcyA9IHtcbiAgICBsYWJlbDogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgICBhcmlhTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgcG9zaXRpb246IFByb3BUeXBlcy5mdW5jXG4gIH07XG59XG4vKipcbiAqIFRvb2x0aXBDb250ZW50XG4gKlxuICogV2UgbmVlZCBhIHNlcGFyYXRlIGNvbXBvbmVudCBzbyB0aGF0IHVzZVJlY3Qgd29ya3MgaW5zaWRlIHRoZSBwb3J0YWwuXG4gKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC90b29sdGlwI3Rvb2x0aXBjb250ZW50XG4gKi9cblxuXG52YXIgVG9vbHRpcENvbnRlbnQgPSAvKiNfX1BVUkVfXyovZm9yd2FyZFJlZihmdW5jdGlvbiBUb29sdGlwQ29udGVudChfcmVmNCwgZm9yd2FyZGVkUmVmKSB7XG4gIHZhciBhcmlhTGFiZWwgPSBfcmVmNC5hcmlhTGFiZWwsXG4gICAgICByZWFsQXJpYUxhYmVsID0gX3JlZjRbXCJhcmlhLWxhYmVsXCJdLFxuICAgICAgX3JlZjQkYXMgPSBfcmVmNC5hcyxcbiAgICAgIENvbXAgPSBfcmVmNCRhcyA9PT0gdm9pZCAwID8gXCJkaXZcIiA6IF9yZWY0JGFzLFxuICAgICAgaWQgPSBfcmVmNC5pZCxcbiAgICAgIGlzVmlzaWJsZSA9IF9yZWY0LmlzVmlzaWJsZSxcbiAgICAgIGxhYmVsID0gX3JlZjQubGFiZWwsXG4gICAgICBfcmVmNCRwb3NpdGlvbiA9IF9yZWY0LnBvc2l0aW9uLFxuICAgICAgcG9zaXRpb24gPSBfcmVmNCRwb3NpdGlvbiA9PT0gdm9pZCAwID8gcG9zaXRpb25Ub29sdGlwIDogX3JlZjQkcG9zaXRpb24sXG4gICAgICBzdHlsZSA9IF9yZWY0LnN0eWxlLFxuICAgICAgdHJpZ2dlclJlY3QgPSBfcmVmNC50cmlnZ2VyUmVjdCxcbiAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3JlZjQsIF9leGNsdWRlZDMpO1xuXG4gIC8vIFRoZSBlbGVtZW50IHRoYXQgc2VydmVzIGFzIHRoZSB0b29sdGlwIGNvbnRhaW5lciBoYXMgcm9sZSB0b29sdGlwLlxuICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEtcHJhY3RpY2VzLTEuMi8jdG9vbHRpcCBXaGVuIGFuIGFwcCBwYXNzZXNcbiAgLy8gYW4gYGFyaWEtbGFiZWxgLCB3ZSBhY3R1YWxseSB3YW50IHRvIGltcGxlbWVudCBgcm9sZT1cInRvb2x0aXBcImAgb24gYVxuICAvLyB2aXN1YWxseSBoaWRkZW4gZWxlbWVudCBpbnNpZGUgb2YgdGhlIHRyaWdnZXIuIEluIHRoZXNlIGNhc2VzIHdlIHdhbnQgdGhlXG4gIC8vIHNjcmVlbiByZWFkZXIgdXNlciB0byBrbm93IGJvdGggdGhlIGNvbnRlbnQgaW4gdGhlIHRvb2x0aXAsIGJ1dCBhbHNvIHRoZVxuICAvLyBjb250ZW50IGluIHRoZSBiYWRnZS4gRm9yIHNjcmVlbiByZWFkZXIgdXNlcnMsIHRoZSBvbmx5IGNvbnRlbnQgYW5ub3VuY2VkXG4gIC8vIHRvIHRoZW0gaXMgd2hhdGV2ZXIgaXMgaW4gdGhlIHRvb2x0aXAuXG4gIHZhciBoYXNBcmlhTGFiZWwgPSAocmVhbEFyaWFMYWJlbCB8fCBhcmlhTGFiZWwpICE9IG51bGw7XG4gIHZhciBvd25SZWYgPSB1c2VSZWYobnVsbCk7XG4gIHZhciByZWYgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBvd25SZWYpO1xuICB2YXIgdG9vbHRpcFJlY3QgPSB1c2VSZWN0KG93blJlZiwge1xuICAgIG9ic2VydmU6IGlzVmlzaWJsZVxuICB9KTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KEZyYWdtZW50LCBudWxsLCAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChDb21wLCBfZXh0ZW5kcyh7XG4gICAgcm9sZTogaGFzQXJpYUxhYmVsID8gdW5kZWZpbmVkIDogXCJ0b29sdGlwXCJcbiAgfSwgcHJvcHMsIHtcbiAgICByZWY6IHJlZixcbiAgICBcImRhdGEtcmVhY2gtdG9vbHRpcFwiOiBcIlwiLFxuICAgIGlkOiBoYXNBcmlhTGFiZWwgPyB1bmRlZmluZWQgOiBpZCxcbiAgICBzdHlsZTogX2V4dGVuZHMoe30sIHN0eWxlLCBnZXRTdHlsZXMocG9zaXRpb24sIHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCkpXG4gIH0pLCBsYWJlbCksIGhhc0FyaWFMYWJlbCAmJiAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChWaXN1YWxseUhpZGRlbiwge1xuICAgIHJvbGU6IFwidG9vbHRpcFwiLFxuICAgIGlkOiBpZFxuICB9LCByZWFsQXJpYUxhYmVsIHx8IGFyaWFMYWJlbCkpO1xufSk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgVG9vbHRpcENvbnRlbnQuZGlzcGxheU5hbWUgPSBcIlRvb2x0aXBDb250ZW50XCI7XG4gIFRvb2x0aXBDb250ZW50LnByb3BUeXBlcyA9IHt9O1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5cbmZ1bmN0aW9uIGdldFN0eWxlcyhwb3NpdGlvbiwgdHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KSB7XG4gIHZhciBoYXZlbnRNZWFzdXJlZFRvb2x0aXBZZXQgPSAhdG9vbHRpcFJlY3Q7XG5cbiAgaWYgKGhhdmVudE1lYXN1cmVkVG9vbHRpcFlldCkge1xuICAgIHJldHVybiB7XG4gICAgICB2aXNpYmlsaXR5OiBcImhpZGRlblwiXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBwb3NpdGlvbih0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QpO1xufSAvLyBEZWZhdWx0IG9mZnNldCBmcm9tIHRoZSB0cmlnZ2VyIChlLmcuLCBpZiB0aGUgdG9vbHRpcCBpcyBwb3NpdGlvbmVkIGFib3ZlLFxuLy8gdGhlcmUgd2lsbCBiZSA4cHggYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSB0b29sdGlwIGFuZCB0aGUgdG9wIG9mIHRoZSB0cmlnZ2VyKS5cbi8vIEl0IGZlZWxzIGF3a3dhcmQgd2hlbiBpdCdzIHBlcmZlY3RseSBhbGlnbmVkIHcvIHRoZSB0cmlnZ2VyXG5cblxudmFyIE9GRlNFVF9ERUZBVUxUID0gODtcbnZhciBwb3NpdGlvblRvb2x0aXAgPSBmdW5jdGlvbiBwb3NpdGlvblRvb2x0aXAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0LCBvZmZzZXQpIHtcbiAgaWYgKG9mZnNldCA9PT0gdm9pZCAwKSB7XG4gICAgb2Zmc2V0ID0gT0ZGU0VUX0RFRkFVTFQ7XG4gIH1cblxuICB2YXIgX2dldERvY3VtZW50RGltZW5zaW9uID0gZ2V0RG9jdW1lbnREaW1lbnNpb25zKCksXG4gICAgICB3aW5kb3dXaWR0aCA9IF9nZXREb2N1bWVudERpbWVuc2lvbi53aWR0aCxcbiAgICAgIHdpbmRvd0hlaWdodCA9IF9nZXREb2N1bWVudERpbWVuc2lvbi5oZWlnaHQ7XG5cbiAgaWYgKCF0cmlnZ2VyUmVjdCB8fCAhdG9vbHRpcFJlY3QpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICB2YXIgY29sbGlzaW9ucyA9IHtcbiAgICB0b3A6IHRyaWdnZXJSZWN0LnRvcCAtIHRvb2x0aXBSZWN0LmhlaWdodCA8IDAsXG4gICAgcmlnaHQ6IHdpbmRvd1dpZHRoIDwgdHJpZ2dlclJlY3QubGVmdCArIHRvb2x0aXBSZWN0LndpZHRoLFxuICAgIGJvdHRvbTogd2luZG93SGVpZ2h0IDwgdHJpZ2dlclJlY3QuYm90dG9tICsgdG9vbHRpcFJlY3QuaGVpZ2h0ICsgb2Zmc2V0LFxuICAgIGxlZnQ6IHRyaWdnZXJSZWN0LmxlZnQgLSB0b29sdGlwUmVjdC53aWR0aCA8IDBcbiAgfTtcbiAgdmFyIGRpcmVjdGlvblJpZ2h0ID0gY29sbGlzaW9ucy5yaWdodCAmJiAhY29sbGlzaW9ucy5sZWZ0O1xuICB2YXIgZGlyZWN0aW9uVXAgPSBjb2xsaXNpb25zLmJvdHRvbSAmJiAhY29sbGlzaW9ucy50b3A7XG4gIHJldHVybiB7XG4gICAgbGVmdDogZGlyZWN0aW9uUmlnaHQgPyB0cmlnZ2VyUmVjdC5yaWdodCAtIHRvb2x0aXBSZWN0LndpZHRoICsgd2luZG93LnBhZ2VYT2Zmc2V0ICsgXCJweFwiIDogdHJpZ2dlclJlY3QubGVmdCArIHdpbmRvdy5wYWdlWE9mZnNldCArIFwicHhcIixcbiAgICB0b3A6IGRpcmVjdGlvblVwID8gdHJpZ2dlclJlY3QudG9wIC0gb2Zmc2V0IC0gdG9vbHRpcFJlY3QuaGVpZ2h0ICsgd2luZG93LnBhZ2VZT2Zmc2V0ICsgXCJweFwiIDogdHJpZ2dlclJlY3QudG9wICsgb2Zmc2V0ICsgdHJpZ2dlclJlY3QuaGVpZ2h0ICsgd2luZG93LnBhZ2VZT2Zmc2V0ICsgXCJweFwiXG4gIH07XG59O1xuLyoqXG4gKiBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgdXNpbmcgdG9vbHRpcHMgd2l0aCBkaXNhYmxlZCBjb250cm9scyBpbiBTYWZhcmkuXG4gKiBTYWZhcmkgZmlyZXMgYHBvaW50ZXJlbnRlcmAgYnV0IGRvZXMgbm90IGZpcmUgYHBvaW50ZXJsZWF2ZWAsIGFuZFxuICogYG9uUG9pbnRlckV2ZW50TGVhdmVgIGFkZGVkIHRvIHRoZSB0cmlnZ2VyIGVsZW1lbnQgd2lsbCBub3Qgd29yay5cbiAqXG4gKiBUT0RPOiBXZSBtYXkgcmVtb3ZlIG9yIG1vZGlpZnkgdGhpcyBiZWhhdmlvciBpbiBhIGZ1dHVyZSB2ZXJzaW9uLiBEaXJlY3Rpb25cbiAqIGZyb20gV0FJLUFSSUEgbmVlZGVkIGZvciBndWlkYW5jZSBvbiBoYW5kbGluZyBkaXNhYmxlZCB0cmlnZ2Vycy4gVG9vbHRpcHNcbiAqIG11c3QgYmUgYWNjZXNzaWJsZSBieSBrZXlib2FyZCwgYW5kIGRpc2FibGVkIGZvcm0gY29udHJvbHMgYXJlIGdlbmVyYWxseVxuICogZXhjbHVkZWQgZnJvbSB0aGUgdGFiIHNlcXVlbmNlLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JlYWNoL3JlYWNoLXVpL2lzc3Vlcy81NjRcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9hcmlhLXByYWN0aWNlcy9pc3N1ZXMvMTI4I2lzc3VlY29tbWVudC01ODg2MjU3MjdcbiAqL1xuXG5mdW5jdGlvbiB1c2VEaXNhYmxlZFRyaWdnZXJPblNhZmFyaShfcmVmNSkge1xuICB2YXIgZGlzYWJsZWQgPSBfcmVmNS5kaXNhYmxlZCxcbiAgICAgIGlzVmlzaWJsZSA9IF9yZWY1LmlzVmlzaWJsZSxcbiAgICAgIHJlZiA9IF9yZWY1LnJlZjtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoISh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIFwiUG9pbnRlckV2ZW50XCIgaW4gd2luZG93KSB8fCAhZGlzYWJsZWQgfHwgIWlzVmlzaWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBvd25lckRvY3VtZW50ID0gZ2V0T3duZXJEb2N1bWVudChyZWYuY3VycmVudCk7XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVNb3VzZU1vdmUoZXZlbnQpIHtcbiAgICAgIGlmICghaXNWaXNpYmxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQgJiYgZXZlbnQudGFyZ2V0LmNsb3Nlc3QoXCJbZGF0YS1yZWFjaC10b29sdGlwLXRyaWdnZXJdW2RhdGEtc3RhdGU9J3Rvb2x0aXAtdmlzaWJsZSddXCIpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc2VuZCh7XG4gICAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuR2xvYmFsTW91c2VNb3ZlXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBvd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgaGFuZGxlTW91c2VNb3ZlKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIGhhbmRsZU1vdXNlTW92ZSk7XG4gICAgfTtcbiAgfSwgW2Rpc2FibGVkLCBpc1Zpc2libGUsIHJlZl0pO1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIFNlbmQgYW4gZXZlbnQgdG8gb3VyIHN0YXRlIG1hY2hpbmUgdG8gZmluZCB0aGUgbmV4dCBzdGF0ZSBmcm9tIHRoZSBjdXJyZW50XG4gKiBzdGF0ZSArIGFjdGlvbi5cbiAqXG4gKiBJdCBhbHNvIG1hbmFnZXMgbGlmZWN5Y2xlcyBvZiB0aGUgbWFjaGluZSwgKGVudGVyL2xlYXZlIGhvb2tzIG9uIHRoZSBzdGF0ZVxuICogY2hhcnQpXG4gKlxuICogQHBhcmFtIGV2ZW50XG4gKiBAcGFyYW0gcGF5bG9hZFxuICovXG5cblxuZnVuY3Rpb24gc2VuZChldmVudCkge1xuICB2YXIgX3RyYW5zaXRpb24gPSB0cmFuc2l0aW9uKHN0YXRlLCBldmVudCksXG4gICAgICB2YWx1ZSA9IF90cmFuc2l0aW9uLnZhbHVlLFxuICAgICAgY29udGV4dCA9IF90cmFuc2l0aW9uLmNvbnRleHQsXG4gICAgICBjaGFuZ2VkID0gX3RyYW5zaXRpb24uY2hhbmdlZDtcblxuICBpZiAoY2hhbmdlZCkge1xuICAgIHN0YXRlID0ge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgY29udGV4dDogY29udGV4dFxuICAgIH07XG4gICAgbm90aWZ5KCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhbnNpdGlvbihjdXJyZW50U3RhdGUsIGV2ZW50KSB7XG4gIHZhciBzdGF0ZURlZiA9IGNoYXJ0LnN0YXRlc1tjdXJyZW50U3RhdGUudmFsdWVdO1xuICB2YXIgbmV4dFN0YXRlID0gc3RhdGVEZWYgJiYgc3RhdGVEZWYub24gJiYgc3RhdGVEZWYub25bZXZlbnQudHlwZV07IC8vIFJlYWxseSB1c2VmdWwgZm9yIGRlYnVnZ2luZ1xuICAvLyBjb25zb2xlLmxvZyh7IGV2ZW50LCBzdGF0ZSwgbmV4dFN0YXRlLCBjb250ZXh0SWQ6IGNvbnRleHQuaWQgfSk7XG4gIC8vICFuZXh0U3RhdGUgJiYgY29uc29sZS5sb2coXCJubyB0cmFuc2l0aW9uIHRha2VuXCIpO1xuXG4gIGlmICghbmV4dFN0YXRlKSB7XG4gICAgcmV0dXJuIF9leHRlbmRzKHt9LCBjdXJyZW50U3RhdGUsIHtcbiAgICAgIGNoYW5nZWQ6IGZhbHNlXG4gICAgfSk7XG4gIH1cblxuICBpZiAoc3RhdGVEZWYgJiYgc3RhdGVEZWYubGVhdmUpIHtcbiAgICBzdGF0ZURlZi5sZWF2ZShjdXJyZW50U3RhdGUuY29udGV4dCwgZXZlbnQpO1xuICB9XG5cbiAgZXZlbnQudHlwZTtcbiAgICAgIHZhciBwYXlsb2FkID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoZXZlbnQsIF9leGNsdWRlZDQpOyAvLyBUT0RPOiBVc2UgYWN0aW9ucyBpbnN0ZWFkIG9mIGRpcmVjdGx5IHNldHRpbmcgY29udGV4dFxuXG5cbiAgdmFyIGNvbnRleHQgPSBfZXh0ZW5kcyh7fSwgc3RhdGUuY29udGV4dCwgcGF5bG9hZCk7XG5cbiAgdmFyIG5leHRTdGF0ZVZhbHVlID0gdHlwZW9mIG5leHRTdGF0ZSA9PT0gXCJzdHJpbmdcIiA/IG5leHRTdGF0ZSA6IG5leHRTdGF0ZS50YXJnZXQ7XG4gIHZhciBuZXh0RGVmID0gY2hhcnQuc3RhdGVzW25leHRTdGF0ZVZhbHVlXTtcblxuICBpZiAobmV4dERlZiAmJiBuZXh0RGVmLmVudGVyKSB7XG4gICAgbmV4dERlZi5lbnRlcihjdXJyZW50U3RhdGUuY29udGV4dCwgZXZlbnQpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB2YWx1ZTogbmV4dFN0YXRlVmFsdWUsXG4gICAgY29udGV4dDogY29udGV4dCxcbiAgICBjaGFuZ2VkOiB0cnVlXG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzVG9vbHRpcFZpc2libGUoaWQsIGluaXRpYWwpIHtcbiAgcmV0dXJuIHN0YXRlLmNvbnRleHQuaWQgPT09IGlkICYmIChpbml0aWFsID8gc3RhdGUudmFsdWUgPT09IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSA6IHN0YXRlLnZhbHVlID09PSBUb29sdGlwU3RhdGVzLlZpc2libGUgfHwgc3RhdGUudmFsdWUgPT09IFRvb2x0aXBTdGF0ZXMuTGVhdmluZ1Zpc2libGUpO1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5leHBvcnQgZGVmYXVsdCBUb29sdGlwO1xuZXhwb3J0IHsgTEVBVkVfVElNRU9VVCwgTU9VU0VfUkVTVF9USU1FT1VULCBUb29sdGlwLCBUb29sdGlwUG9wdXAsIHBvc2l0aW9uVG9vbHRpcCwgdXNlVG9vbHRpcCB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///197\n')},937:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ S: () => (/* binding */ canUseDOM)\n/* harmony export */ });\nfunction canUseDOM() {\n return !!(typeof window !== "undefined" && window.document && window.document.createElement);\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTM3LmpzIiwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0E7QUFDQTs7QUFFcUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvY2FuLXVzZS1kb20vZGlzdC9yZWFjaC11dGlscy1jYW4tdXNlLWRvbS5lc20uanM/ZjM3ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBjYW5Vc2VET00oKSB7XG4gIHJldHVybiAhISh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG59XG5cbmV4cG9ydCB7IGNhblVzZURPTSB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///937\n')},103:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ E: () => (/* binding */ useIsomorphicLayoutEffect)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(763);\n/* harmony import */ var _can_use_dom_dist_reach_utils_can_use_dom_esm_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(937);\n\n\n\n/**\n * React currently throws a warning when using useLayoutEffect on the server. To\n * get around it, we can conditionally useEffect on the server (no-op) and\n * useLayoutEffect in the browser. We occasionally need useLayoutEffect to\n * ensure we don't get a render flash for certain operations, but we may also\n * need affected components to render on the server. One example is when setting\n * a component's descendants to retrieve their index values.\n *\n * Important to note that using this hook as an escape hatch will break the\n * eslint dependency warnings unless you rename the import to `useLayoutEffect`.\n * Use sparingly only when the effect won't effect the rendered HTML to avoid\n * any server/client mismatch.\n *\n * If a useLayoutEffect is needed and the result would create a mismatch, it's\n * likely that the component in question shouldn't be rendered on the server at\n * all, so a better approach would be to lazily render those in a parent\n * component after client-side hydration.\n *\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\n *\n * @param effect\n * @param deps\n */\n\nvar useIsomorphicLayoutEffect = /*#__PURE__*/(0,_can_use_dom_dist_reach_utils_can_use_dom_esm_js__WEBPACK_IMPORTED_MODULE_1__/* .canUseDOM */ .S)() ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTAzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQW1EO0FBQytCOztBQUVsRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsNkNBQTZDLG9HQUFTLEtBQUssa0RBQWUsR0FBRyw0Q0FBUzs7QUFFakQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvdXRpbHMvdXNlLWlzb21vcnBoaWMtbGF5b3V0LWVmZmVjdC9kaXN0L3JlYWNoLXV0aWxzLXVzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QuZXNtLmpzPzE0MmQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0LCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjYW5Vc2VET00gfSBmcm9tICcuLi8uLi9jYW4tdXNlLWRvbS9kaXN0L3JlYWNoLXV0aWxzLWNhbi11c2UtZG9tLmVzbS5qcyc7XG5cbi8qKlxuICogUmVhY3QgY3VycmVudGx5IHRocm93cyBhIHdhcm5pbmcgd2hlbiB1c2luZyB1c2VMYXlvdXRFZmZlY3Qgb24gdGhlIHNlcnZlci4gVG9cbiAqIGdldCBhcm91bmQgaXQsIHdlIGNhbiBjb25kaXRpb25hbGx5IHVzZUVmZmVjdCBvbiB0aGUgc2VydmVyIChuby1vcCkgYW5kXG4gKiB1c2VMYXlvdXRFZmZlY3QgaW4gdGhlIGJyb3dzZXIuIFdlIG9jY2FzaW9uYWxseSBuZWVkIHVzZUxheW91dEVmZmVjdCB0b1xuICogZW5zdXJlIHdlIGRvbid0IGdldCBhIHJlbmRlciBmbGFzaCBmb3IgY2VydGFpbiBvcGVyYXRpb25zLCBidXQgd2UgbWF5IGFsc29cbiAqIG5lZWQgYWZmZWN0ZWQgY29tcG9uZW50cyB0byByZW5kZXIgb24gdGhlIHNlcnZlci4gT25lIGV4YW1wbGUgaXMgd2hlbiBzZXR0aW5nXG4gKiBhIGNvbXBvbmVudCdzIGRlc2NlbmRhbnRzIHRvIHJldHJpZXZlIHRoZWlyIGluZGV4IHZhbHVlcy5cbiAqXG4gKiBJbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHVzaW5nIHRoaXMgaG9vayBhcyBhbiBlc2NhcGUgaGF0Y2ggd2lsbCBicmVhayB0aGVcbiAqIGVzbGludCBkZXBlbmRlbmN5IHdhcm5pbmdzIHVubGVzcyB5b3UgcmVuYW1lIHRoZSBpbXBvcnQgdG8gYHVzZUxheW91dEVmZmVjdGAuXG4gKiBVc2Ugc3BhcmluZ2x5IG9ubHkgd2hlbiB0aGUgZWZmZWN0IHdvbid0IGVmZmVjdCB0aGUgcmVuZGVyZWQgSFRNTCB0byBhdm9pZFxuICogYW55IHNlcnZlci9jbGllbnQgbWlzbWF0Y2guXG4gKlxuICogSWYgYSB1c2VMYXlvdXRFZmZlY3QgaXMgbmVlZGVkIGFuZCB0aGUgcmVzdWx0IHdvdWxkIGNyZWF0ZSBhIG1pc21hdGNoLCBpdCdzXG4gKiBsaWtlbHkgdGhhdCB0aGUgY29tcG9uZW50IGluIHF1ZXN0aW9uIHNob3VsZG4ndCBiZSByZW5kZXJlZCBvbiB0aGUgc2VydmVyIGF0XG4gKiBhbGwsIHNvIGEgYmV0dGVyIGFwcHJvYWNoIHdvdWxkIGJlIHRvIGxhemlseSByZW5kZXIgdGhvc2UgaW4gYSBwYXJlbnRcbiAqIGNvbXBvbmVudCBhZnRlciBjbGllbnQtc2lkZSBoeWRyYXRpb24uXG4gKlxuICogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZ2FlYXJvbi9lN2Q5N2NkZjM4YTI5MDc5MjRlYTEyZTRlYmRmM2M4NVxuICogaHR0cHM6Ly9naXRodWIuY29tL3JlZHV4anMvcmVhY3QtcmVkdXgvYmxvYi9tYXN0ZXIvc3JjL3V0aWxzL3VzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QuanNcbiAqXG4gKiBAcGFyYW0gZWZmZWN0XG4gKiBAcGFyYW0gZGVwc1xuICovXG5cbnZhciB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0ID0gLyojX19QVVJFX18qL2NhblVzZURPTSgpID8gdXNlTGF5b3V0RWZmZWN0IDogdXNlRWZmZWN0O1xuXG5leHBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH07XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///103\n")},172:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }\n(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(556)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _propTypes) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireWildcard(_react);\n _propTypes = _interopRequireDefault(_propTypes);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\n function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }\n function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }\n function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\n function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }\n function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }\n function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }\n function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\n function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }\n function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); return e; }\n function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\n function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\n function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }\n function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\n var Collapsible = /*#__PURE__*/function (_Component) {\n function Collapsible(props) {\n var _this;\n _classCallCheck(this, Collapsible);\n _this = _callSuper(this, Collapsible, [props]);\n _this.state = {\n isExpanded: false\n };\n _this._toggleExpanded = _this.toggleExpanded.bind(_this);\n _this._renderShowButton = _this.renderShowButton.bind(_this);\n _this._renderHideButton = _this.renderHideButton.bind(_this);\n return _this;\n }\n _inherits(Collapsible, _Component);\n return _createClass(Collapsible, [{\n key: "toggleExpanded",\n value: function toggleExpanded() {\n this.setState({\n isExpanded: !this.state.isExpanded\n });\n }\n }, {\n key: "renderShowButton",\n value: function renderShowButton() {\n return /*#__PURE__*/_react["default"].createElement("span", {\n className: "collapsible-show-label"\n }, this.props.showLabel);\n }\n }, {\n key: "renderHideButton",\n value: function renderHideButton() {\n if (this.props.hideLabel) {\n return /*#__PURE__*/_react["default"].createElement("span", {\n className: "collapsible-hide-label"\n }, this.props.hideLabel);\n } else {\n return "";\n }\n }\n }, {\n key: "render",\n value: function render() {\n var isArray = Array.isArray(this.props.content);\n var isHidden = this.state.isExpanded ? undefined : true;\n return /*#__PURE__*/_react["default"].createElement("div", {\n className: "collapsible-container"\n }, /*#__PURE__*/_react["default"].createElement("button", {\n onClick: this._toggleExpanded,\n className: "collapsible-summary",\n type: "button",\n "aria-expanded": this.state.isExpanded ? true : false\n }, this._renderShowButton(), this._renderHideButton()), /*#__PURE__*/_react["default"].createElement("div", {\n className: "collapsible-details",\n hidden: isHidden\n }, isArray ? /*#__PURE__*/_react["default"].createElement("ul", {\n className: "items"\n }, this.props.content.map(function (c) {\n return /*#__PURE__*/_react["default"].createElement("li", {\n key: c.contentTitle\n }, /*#__PURE__*/_react["default"].createElement("p", null, /*#__PURE__*/_react["default"].createElement("b", null, c.contentTitle)), /*#__PURE__*/_react["default"].createElement("p", null, c.content));\n })) : /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("p", null, /*#__PURE__*/_react["default"].createElement("b", null, this.props.contentTitle)), /*#__PURE__*/_react["default"].createElement("p", null, this.props.content))));\n }\n }]);\n }(_react.Component);\n Collapsible.propTypes = {\n showLabel: _propTypes["default"].string.isRequired,\n hideLabel: _propTypes["default"].string.isRequired,\n content: _propTypes["default"].oneOfType([_propTypes["default"].array, _propTypes["default"].string]).isRequired,\n contentTitle: _propTypes["default"].string\n };\n var _default = _exports["default"] = Collapsible;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RyxFQUFFa0IsQ0FBQyxDQUFDQztVQUFhLGdCQUNwQmhCLE1BQUEsWUFBQUMsYUFBQSx5QkFDSUQsTUFBQSxZQUFBQyxhQUFBLFlBQUljLENBQUMsQ0FBQ0MsWUFBZ0IsQ0FDdkIsQ0FBQyxlQUNKaEIsTUFBQSxZQUFBQyxhQUFBLFlBQUljLENBQUMsQ0FBQ1AsT0FBVyxDQUNqQixDQUFDO1FBQUEsQ0FDUixDQUNELENBQUMsZ0JBRUxSLE1BQUEsWUFBQUMsYUFBQSwyQkFDSUQsTUFBQSxZQUFBQyxhQUFBLHlCQUNJRCxNQUFBLFlBQUFDLGFBQUEsWUFBSSxJQUFJLENBQUNuQixLQUFLLENBQUNrQyxZQUFnQixDQUNoQyxDQUFDLGVBQ0poQixNQUFBLFlBQUFDLGFBQUEsWUFBSSxJQUFJLENBQUNuQixLQUFLLENBQUMwQixPQUFXLENBQ3pCLENBRVIsQ0FDSixDQUFDO01BRWQ7SUFBQztFQUFBLEVBOUVxQlMsZ0JBQVM7RUFpRm5DckMsV0FBVyxDQUFDc0MsU0FBUyxHQUFHO0lBQ3BCZixTQUFTLEVBQUVnQixxQkFBUyxDQUFDQyxNQUFNLENBQUNDLFVBQVU7SUFDdENqQixTQUFTLEVBQUVlLHFCQUFTLENBQUNDLE1BQU0sQ0FBQ0MsVUFBVTtJQUN0Q2IsT0FBTyxFQUFFVyxxQkFBUyxDQUFDRyxTQUFTLENBQUMsQ0FBQ0gscUJBQVMsQ0FBQ0ksS0FBSyxFQUFFSixxQkFBUyxDQUFDQyxNQUFNLENBQUMsQ0FBQyxDQUM1REMsVUFBVTtJQUNmTCxZQUFZLEVBQUVHLHFCQUFTLENBQUNDO0VBQzVCLENBQUM7RUFBQyxJQUFBSSxRQUFBLEdBQUFDLFFBQUEsY0FFYTdDLFdBQVc7QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9FcnJvci9Db2xsYXBzaWJsZS5qc3g/NTU5YSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5cbmNsYXNzIENvbGxhcHNpYmxlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIGlzRXhwYW5kZWQ6IGZhbHNlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuX3RvZ2dsZUV4cGFuZGVkID0gdGhpcy50b2dnbGVFeHBhbmRlZC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLl9yZW5kZXJTaG93QnV0dG9uID0gdGhpcy5yZW5kZXJTaG93QnV0dG9uLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuX3JlbmRlckhpZGVCdXR0b24gPSB0aGlzLnJlbmRlckhpZGVCdXR0b24uYmluZCh0aGlzKTtcbiAgICB9XG5cbiAgICB0b2dnbGVFeHBhbmRlZCgpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBpc0V4cGFuZGVkOiAhdGhpcy5zdGF0ZS5pc0V4cGFuZGVkLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZW5kZXJTaG93QnV0dG9uKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiY29sbGFwc2libGUtc2hvdy1sYWJlbFwiPlxuICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLnNob3dMYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZW5kZXJIaWRlQnV0dG9uKCkge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5oaWRlTGFiZWwpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiY29sbGFwc2libGUtaGlkZS1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5oaWRlTGFiZWx9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheSh0aGlzLnByb3BzLmNvbnRlbnQpO1xuICAgICAgICBjb25zdCBpc0hpZGRlbiA9IHRoaXMuc3RhdGUuaXNFeHBhbmRlZCA/IHVuZGVmaW5lZCA6IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sbGFwc2libGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLl90b2dnbGVFeHBhbmRlZH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiY29sbGFwc2libGUtc3VtbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXt0aGlzLnN0YXRlLmlzRXhwYW5kZWQgPyB0cnVlIDogZmFsc2V9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5fcmVuZGVyU2hvd0J1dHRvbigpfVxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5fcmVuZGVySGlkZUJ1dHRvbigpfVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xsYXBzaWJsZS1kZXRhaWxzXCIgaGlkZGVuPXtpc0hpZGRlbn0+XG4gICAgICAgICAgICAgICAgICAgIHtpc0FycmF5ID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cIml0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3RoaXMucHJvcHMuY29udGVudC5tYXAoKGMpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGtleT17Yy5jb250ZW50VGl0bGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+e2MuY29udGVudFRpdGxlfTwvYj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPntjLmNvbnRlbnR9PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiPnt0aGlzLnByb3BzLmNvbnRlbnRUaXRsZX08L2I+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt0aGlzLnByb3BzLmNvbnRlbnR9PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cbkNvbGxhcHNpYmxlLnByb3BUeXBlcyA9IHtcbiAgICBzaG93TGFiZWw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBoaWRlTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBjb250ZW50OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXksIFByb3BUeXBlcy5zdHJpbmddKVxuICAgICAgICAuaXNSZXF1aXJlZCxcbiAgICBjb250ZW50VGl0bGU6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb2xsYXBzaWJsZTtcbiJdLCJuYW1lcyI6WyJDb2xsYXBzaWJsZSIsIl9Db21wb25lbnQiLCJwcm9wcyIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2NhbGxTdXBlciIsInN0YXRlIiwiaXNFeHBhbmRlZCIsIl90b2dnbGVFeHBhbmRlZCIsInRvZ2dsZUV4cGFuZGVkIiwiYmluZCIsIl9yZW5kZXJTaG93QnV0dG9uIiwicmVuZGVyU2hvd0J1dHRvbiIsIl9yZW5kZXJIaWRlQnV0dG9uIiwicmVuZGVySGlkZUJ1dHRvbiIsIl9pbmhlcml0cyIsIl9jcmVhdGVDbGFzcyIsImtleSIsInZhbHVlIiwic2V0U3RhdGUiLCJfcmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwic2hvd0xhYmVsIiwiaGlkZUxhYmVsIiwicmVuZGVyIiwiaXNBcnJheSIsIkFycmF5IiwiY29udGVudCIsImlzSGlkZGVuIiwidW5kZWZpbmVkIiwib25DbGljayIsInR5cGUiLCJoaWRkZW4iLCJtYXAiLCJjIiwiY29udGVudFRpdGxlIiwiQ29tcG9uZW50IiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsIm9uZU9mVHlwZSIsImFycmF5IiwiX2RlZmF1bHQiLCJfZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///172\n')},888:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(172), __webpack_require__(556)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _Collapsible, _propTypes) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireDefault(_react);\n _Collapsible = _interopRequireDefault(_Collapsible);\n _propTypes = _interopRequireDefault(_propTypes);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n var ErrorUI = function ErrorUI(props) {\n var errorTitle = "".concat(props.type || "Error", " ").concat(props.code || "");\n var errorDetails = props.message;\n return /*#__PURE__*/_react["default"].createElement("section", {\n className: "page-error"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "responsive-container"\n }, /*#__PURE__*/_react["default"].createElement("h1", null, "We\\u2019re sorry."), /*#__PURE__*/_react["default"].createElement("p", {\n className: "h2"\n }, "We cannot access this page."), /*#__PURE__*/_react["default"].createElement(_Collapsible["default"], {\n showLabel: "Open technical details about the error",\n hideLabel: "Close technical details about the error",\n contentTitle: errorTitle,\n content: errorDetails\n })));\n };\n ErrorUI.propTypes = {\n code: _propTypes["default"].string,\n message: _propTypes["default"].oneOfType([_propTypes["default"].array, _propTypes["default"].string]),\n type: _propTypes["default"].string\n };\n var _default = _exports["default"] = ErrorUI;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODg4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUlBLElBQU1BLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFJQyxLQUFLLEVBQUs7SUFDdkIsSUFBSUMsVUFBVSxNQUFBQyxNQUFBLENBQU1GLEtBQUssQ0FBQ0csSUFBSSxJQUFJLE9BQU8sT0FBQUQsTUFBQSxDQUFJRixLQUFLLENBQUNJLElBQUksSUFBSSxFQUFFLENBQUU7SUFDL0QsSUFBSUMsWUFBWSxHQUFHTCxLQUFLLENBQUNNLE9BQU87SUFFaEMsb0JBQ0lDLE1BQUEsWUFBQUMsYUFBQTtNQUFTQyxTQUFTLEVBQUM7SUFBWSxnQkFDM0JGLE1BQUEsWUFBQUMsYUFBQTtNQUFLQyxTQUFTLEVBQUM7SUFBc0IsZ0JBQ2pDRixNQUFBLFlBQUFDLGFBQUEsYUFBSSxtQkFBZ0IsQ0FBQyxlQUNyQkQsTUFBQSxZQUFBQyxhQUFBO01BQUdDLFNBQVMsRUFBQztJQUFJLEdBQUMsNkJBQThCLENBQUMsZUFDakRGLE1BQUEsWUFBQUMsYUFBQSxDQUFDRSxZQUFBLFdBQVc7TUFDUkMsU0FBUyxFQUFDLHdDQUF3QztNQUNsREMsU0FBUyxFQUFDLHlDQUF5QztNQUNuREMsWUFBWSxFQUFFWixVQUFXO01BQ3pCYSxPQUFPLEVBQUVUO0lBQWEsQ0FDekIsQ0FDQSxDQUNBLENBQUM7RUFFbEIsQ0FBQztFQUVETixPQUFPLENBQUNnQixTQUFTLEdBQUc7SUFDaEJYLElBQUksRUFBRVkscUJBQVMsQ0FBQ0MsTUFBTTtJQUN0QlgsT0FBTyxFQUFFVSxxQkFBUyxDQUFDRSxTQUFTLENBQUMsQ0FBQ0YscUJBQVMsQ0FBQ0csS0FBSyxFQUFFSCxxQkFBUyxDQUFDQyxNQUFNLENBQUMsQ0FBQztJQUNqRWQsSUFBSSxFQUFFYSxxQkFBUyxDQUFDQztFQUNwQixDQUFDO0VBQUMsSUFBQUcsUUFBQSxHQUFBQyxRQUFBLGNBRWF0QixPQUFPO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvRXJyb3IvRXJyb3JVSS5qc3g/ZjRjZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgQ29sbGFwc2libGUgZnJvbSBcIi4vQ29sbGFwc2libGVcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIjtcblxuY29uc3QgRXJyb3JVSSA9IChwcm9wcykgPT4ge1xuICAgIGxldCBlcnJvclRpdGxlID0gYCR7cHJvcHMudHlwZSB8fCBcIkVycm9yXCJ9ICR7cHJvcHMuY29kZSB8fCBcIlwifWA7XG4gICAgbGV0IGVycm9yRGV0YWlscyA9IHByb3BzLm1lc3NhZ2U7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJwYWdlLWVycm9yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlc3BvbnNpdmUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGgxPldl4oCZcmUgc29ycnkuPC9oMT5cbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJoMlwiPldlIGNhbm5vdCBhY2Nlc3MgdGhpcyBwYWdlLjwvcD5cbiAgICAgICAgICAgICAgICA8Q29sbGFwc2libGVcbiAgICAgICAgICAgICAgICAgICAgc2hvd0xhYmVsPVwiT3BlbiB0ZWNobmljYWwgZGV0YWlscyBhYm91dCB0aGUgZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgICBoaWRlTGFiZWw9XCJDbG9zZSB0ZWNobmljYWwgZGV0YWlscyBhYm91dCB0aGUgZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgICBjb250ZW50VGl0bGU9e2Vycm9yVGl0bGV9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ9e2Vycm9yRGV0YWlsc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICApO1xufTtcblxuRXJyb3JVSS5wcm9wVHlwZXMgPSB7XG4gICAgY29kZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBtZXNzYWdlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXksIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRXJyb3JVSTtcbiJdLCJuYW1lcyI6WyJFcnJvclVJIiwicHJvcHMiLCJlcnJvclRpdGxlIiwiY29uY2F0IiwidHlwZSIsImNvZGUiLCJlcnJvckRldGFpbHMiLCJtZXNzYWdlIiwiX3JlYWN0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIl9Db2xsYXBzaWJsZSIsInNob3dMYWJlbCIsImhpZGVMYWJlbCIsImNvbnRlbnRUaXRsZSIsImNvbnRlbnQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJvbmVPZlR5cGUiLCJhcnJheSIsIl9kZWZhdWx0IiwiX2V4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///888\n')},694:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }\n(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(763), __webpack_require__(888)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _reactDom, _ErrorUI) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireDefault(_react);\n _ErrorUI = _interopRequireDefault(_ErrorUI);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\n function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }\n function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }\n function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }\n function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }\n /**\n * Renders the QPP Error Page content.\n */\n var ErrorPage = _exports["default"] = /*#__PURE__*/_createClass(\n /**\n * @param {Object} options - An object containing content and config data\n * @param {String} options.type - The error type\n * @param {String} options.code - The error code\n * @param {String} options.message - The error message\n * @param {HTMLElement} options.rootElement - Elem inside which to render\n */\n function ErrorPage(options) {\n _classCallCheck(this, ErrorPage);\n (0, _reactDom.render)(/*#__PURE__*/_react["default"].createElement(_ErrorUI["default"], {\n type: options.type,\n code: options.code,\n message: options.message\n }), options.rootElement);\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjk0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBSUE7QUFDQTtBQUNBO0VBRkEsSUFHcUJBLFNBQVMsR0FBQUMsUUFBQSwyQkFBQUMsWUFBQTtFQUMxQjtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNJLFNBQUFGLFVBQVlHLE9BQU8sRUFBRTtJQUFBQyxlQUFBLE9BQUFKLFNBQUE7SUFDakIsSUFBQUssZ0JBQU0sZUFDRkMsTUFBQSxZQUFBQyxhQUFBLENBQUNDLFFBQUEsV0FBTztNQUNKQyxJQUFJLEVBQUVOLE9BQU8sQ0FBQ00sSUFBSztNQUNuQkMsSUFBSSxFQUFFUCxPQUFPLENBQUNPLElBQUs7TUFDbkJDLE9BQU8sRUFBRVIsT0FBTyxDQUFDUTtJQUFRLENBQzVCLENBQUMsRUFDRlIsT0FBTyxDQUFDUyxXQUNaLENBQUM7RUFDTCxDQUFDO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvRXJyb3IvZXJyb3IuanM/ZjBjMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgRXJyb3JVSSBmcm9tIFwiLi9FcnJvclVJXCI7XG5cbi8qKlxuICogUmVuZGVycyB0aGUgUVBQIEVycm9yIFBhZ2UgY29udGVudC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXJyb3JQYWdlIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIEFuIG9iamVjdCBjb250YWluaW5nIGNvbnRlbnQgYW5kIGNvbmZpZyBkYXRhXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG9wdGlvbnMudHlwZSAtIFRoZSBlcnJvciB0eXBlXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG9wdGlvbnMuY29kZSAtIFRoZSBlcnJvciBjb2RlXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG9wdGlvbnMubWVzc2FnZSAtIFRoZSBlcnJvciBtZXNzYWdlXG4gICAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gb3B0aW9ucy5yb290RWxlbWVudCAtIEVsZW0gaW5zaWRlIHdoaWNoIHRvIHJlbmRlclxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgcmVuZGVyKFxuICAgICAgICAgICAgPEVycm9yVUlcbiAgICAgICAgICAgICAgICB0eXBlPXtvcHRpb25zLnR5cGV9XG4gICAgICAgICAgICAgICAgY29kZT17b3B0aW9ucy5jb2RlfVxuICAgICAgICAgICAgICAgIG1lc3NhZ2U9e29wdGlvbnMubWVzc2FnZX1cbiAgICAgICAgICAgIC8+LFxuICAgICAgICAgICAgb3B0aW9ucy5yb290RWxlbWVudFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJFcnJvclBhZ2UiLCJfZXhwb3J0cyIsIl9jcmVhdGVDbGFzcyIsIm9wdGlvbnMiLCJfY2xhc3NDYWxsQ2hlY2siLCJyZW5kZXIiLCJfcmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiX0Vycm9yVUkiLCJ0eXBlIiwiY29kZSIsIm1lc3NhZ2UiLCJyb290RWxlbWVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///694\n')},756:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(556), __webpack_require__(193)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _propTypes, _LegacyFooterUI) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireDefault(_react);\n _propTypes = _interopRequireDefault(_propTypes);\n _LegacyFooterUI = _interopRequireDefault(_LegacyFooterUI);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }\n function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\n function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\n function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }\n function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }\n var FooterUI = function FooterUI(props) {\n var isNewFooter = props.isNewFooter;\n var isIESupportPage = props.isIESupportPage;\n var signUpNowLink = props.showHcdResearch ? "/about/hcd-research" : "mailto:madie@cms.hhs.gov?subject=Sign up for feedback sessions";\n\n // Default footer assets\n var assets = _objectSpread(_objectSpread({}, {\n hhsLogo: /*#__PURE__*/_react["default"].createElement("img", {\n className: "hhs-logo",\n alt: "Department of Health & Human Services USA",\n src: "/images/hhs-logo-black.svg"\n }),\n madieLogo: /*#__PURE__*/_react["default"].createElement("img", {\n className: "qpp-logo",\n src: "/images/qpp_logo_rgb_color.png",\n alt: "MADiE Measure Authoring Development Integrated Environment logo"\n })\n }), props.assets);\n var setLink = function setLink(link) {\n return isIESupportPage ? "/" : link;\n };\n if (isNewFooter) {\n return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, !isIESupportPage && /*#__PURE__*/_react["default"].createElement("div", {\n className: "feedback-session-sign-up"\n }), /*#__PURE__*/_react["default"].createElement("footer", {\n "aria-label": "Site footer",\n className: "global-footer"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "build-version",\n id: "build-version"\n }, props.buildVersion), /*#__PURE__*/_react["default"].createElement("div", {\n className: "responsive-container"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "other-links"\n }, /*#__PURE__*/_react["default"].createElement("hr", {\n className: "divider-top"\n }), /*#__PURE__*/_react["default"].createElement("ul", {\n className: "small"\n }, /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: setLink("https://harp.cms.gov/login/terms-of-use"),\n "aria-label": "Terms of Use",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenTermsOfService",\n "data-track-label": "Terms of Use"\n }, "Terms of Use")), /*#__PURE__*/_react["default"].createElement("li", {\n className: "divider"\n }), " ", /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: setLink("https://www.cms.gov/privacy"),\n "aria-label": "Privacy Policy",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenPrivacyPolicy",\n "data-track-label": "Privacy Policy"\n }, "Privacy Policy")), /*#__PURE__*/_react["default"].createElement("li", {\n className: "divider"\n }), " ", /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: setLink("https://www.hhs.gov/web/governance/digital-strategy/it-policy-archive/hhs-rules-of-behavior-for-the-use-of-hhs-information-and-it-resources-policy.html"),\n "aria-label": "Rules of Behavior",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenRulesofBehavior",\n "data-track-label": "Rules of Behavior"\n }, "Rules of Behavior"))), /*#__PURE__*/_react["default"].createElement("hr", {\n className: "divider-bottom"\n })), /*#__PURE__*/_react["default"].createElement("div", {\n className: "qpp-hhs-logo-container"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "qpp-logo-container"\n }, assets.qppLogo), /*#__PURE__*/_react["default"].createElement("div", {\n className: "hhs-logo-container"\n }, assets.hhsLogo, /*#__PURE__*/_react["default"].createElement("p", null, "A federal government website managed and paid for by the U.S Centers for Medicare & Medicaid Services. 7500 Security Boulevard, Baltimore MD 21244"))))));\n }\n return /*#__PURE__*/_react["default"].createElement(_LegacyFooterUI["default"], {\n buildVersion: props.buildVersion,\n isFullWidth: props.isFullWidth,\n signUpNowLink: signUpNowLink\n });\n };\n FooterUI.propTypes = {\n buildVersion: _propTypes["default"].string,\n isFullWidth: _propTypes["default"].bool,\n isNewFooter: _propTypes["default"].bool,\n isIESupportPage: _propTypes["default"].bool,\n showHcdResearch: _propTypes["default"].bool,\n assets: _propTypes["default"].shape({\n cmsLogo: _propTypes["default"].element,\n madieLogo: _propTypes["default"].element\n })\n };\n var _default = _exports["default"] = FooterUI;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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ZS8uL2NvbXBvbmVudHMvRm9vdGVyL0Zvb3RlclVJLmpzeD9jZDhiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIjtcblxuaW1wb3J0IExlZ2FjeUZvb3RlclVJIGZyb20gXCIuL0xlZ2FjeUZvb3RlclVJXCI7XG5cbmNvbnN0IEZvb3RlclVJID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgaXNOZXdGb290ZXIgPSBwcm9wcy5pc05ld0Zvb3RlcjtcbiAgICBjb25zdCBpc0lFU3VwcG9ydFBhZ2UgPSBwcm9wcy5pc0lFU3VwcG9ydFBhZ2U7XG4gICAgY29uc3Qgc2lnblVwTm93TGluayA9IHByb3BzLnNob3dIY2RSZXNlYXJjaFxuICAgICAgICA/IFwiL2Fib3V0L2hjZC1yZXNlYXJjaFwiXG4gICAgICAgIDogXCJtYWlsdG86bWFkaWVAY21zLmhocy5nb3Y/c3ViamVjdD1TaWduIHVwIGZvciBmZWVkYmFjayBzZXNzaW9uc1wiO1xuXG4gICAgLy8gRGVmYXVsdCBmb290ZXIgYXNzZXRzXG4gICAgY29uc3QgYXNzZXRzID0ge1xuICAgICAgICAuLi57XG4gICAgICAgICAgICBoaHNMb2dvOiAoXG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoaHMtbG9nb1wiXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIkRlcGFydG1lbnQgb2YgSGVhbHRoICZhbXA7IEh1bWFuIFNlcnZpY2VzIFVTQVwiXG4gICAgICAgICAgICAgICAgICAgIHNyYz1cIi9pbWFnZXMvaGhzLWxvZ28tYmxhY2suc3ZnXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1hZGllTG9nbzogKFxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicXBwLWxvZ29cIlxuICAgICAgICAgICAgICAgICAgICBzcmM9XCIvaW1hZ2VzL3FwcF9sb2dvX3JnYl9jb2xvci5wbmdcIlxuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJNQURpRSBNZWFzdXJlIEF1dGhvcmluZyBEZXZlbG9wbWVudCBJbnRlZ3JhdGVkIEVudmlyb25tZW50IGxvZ29cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICAuLi5wcm9wcy5hc3NldHMsXG4gICAgfTtcblxuICAgIGNvbnN0IHNldExpbmsgPSAobGluaykgPT4ge1xuICAgICAgICByZXR1cm4gaXNJRVN1cHBvcnRQYWdlID8gXCIvXCIgOiBsaW5rO1xuICAgIH07XG5cbiAgICBpZiAoaXNOZXdGb290ZXIpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgeyFpc0lFU3VwcG9ydFBhZ2UgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZlZWRiYWNrLXNlc3Npb24tc2lnbi11cFwiIC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8Zm9vdGVyIGFyaWEtbGFiZWw9XCJTaXRlIGZvb3RlclwiIGNsYXNzTmFtZT1cImdsb2JhbC1mb290ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidWlsZC12ZXJzaW9uXCIgaWQ9XCJidWlsZC12ZXJzaW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cHJvcHMuYnVpbGRWZXJzaW9ufVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlc3BvbnNpdmUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm90aGVyLWxpbmtzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzTmFtZT1cImRpdmlkZXItdG9wXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwic21hbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtzZXRMaW5rKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImh0dHBzOi8vaGFycC5jbXMuZ292L2xvZ2luL3Rlcm1zLW9mLXVzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiVGVybXMgb2YgVXNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIk9wZW5UZXJtc09mU2VydmljZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIlRlcm1zIG9mIFVzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVybXMgb2YgVXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJkaXZpZGVyXCI+PC9saT57XCIgXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17c2V0TGluayhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJodHRwczovL3d3dy5jbXMuZ292L3ByaXZhY3lcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlByaXZhY3kgUG9saWN5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIk9wZW5Qcml2YWN5UG9saWN5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiUHJpdmFjeSBQb2xpY3lcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaXZhY3kgUG9saWN5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJkaXZpZGVyXCI+PC9saT57XCIgXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17c2V0TGluayhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJodHRwczovL3d3dy5oaHMuZ292L3dlYi9nb3Zlcm5hbmNlL2RpZ2l0YWwtc3RyYXRlZ3kvaXQtcG9saWN5LWFyY2hpdmUvaGhzLXJ1bGVzLW9mLWJlaGF2aW9yLWZvci10aGUtdXNlLW9mLWhocy1pbmZvcm1hdGlvbi1hbmQtaXQtcmVzb3VyY2VzLXBvbGljeS5odG1sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJSdWxlcyBvZiBCZWhhdmlvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuUnVsZXNvZkJlaGF2aW9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiUnVsZXMgb2YgQmVoYXZpb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVzIG9mIEJlaGF2aW9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3NOYW1lPVwiZGl2aWRlci1ib3R0b21cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInFwcC1oaHMtbG9nby1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInFwcC1sb2dvLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YXNzZXRzLnFwcExvZ299XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoaHMtbG9nby1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Fzc2V0cy5oaHNMb2dvfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgZmVkZXJhbCBnb3Zlcm5tZW50IHdlYnNpdGUgbWFuYWdlZCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhaWQgZm9yIGJ5IHRoZSBVLlMgQ2VudGVycyBmb3IgTWVkaWNhcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhbXA7IE1lZGljYWlkIFNlcnZpY2VzLiA3NTAwIFNlY3VyaXR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCb3VsZXZhcmQsIEJhbHRpbW9yZSBNRCAyMTI0NFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9mb290ZXI+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgICAgPExlZ2FjeUZvb3RlclVJXG4gICAgICAgICAgICBidWlsZFZlcnNpb249e3Byb3BzLmJ1aWxkVmVyc2lvbn1cbiAgICAgICAgICAgIGlzRnVsbFdpZHRoPXtwcm9wcy5pc0Z1bGxXaWR0aH1cbiAgICAgICAgICAgIHNpZ25VcE5vd0xpbms9e3NpZ25VcE5vd0xpbmt9XG4gICAgICAgIC8+XG4gICAgKTtcbn07XG5cbkZvb3RlclVJLnByb3BUeXBlcyA9IHtcbiAgICBidWlsZFZlcnNpb246IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgaXNGdWxsV2lkdGg6IFByb3BUeXBlcy5ib29sLFxuICAgIGlzTmV3Rm9vdGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc0lFU3VwcG9ydFBhZ2U6IFByb3BUeXBlcy5ib29sLFxuICAgIHNob3dIY2RSZXNlYXJjaDogUHJvcFR5cGVzLmJvb2wsXG4gICAgYXNzZXRzOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgICBjbXNMb2dvOiBQcm9wVHlwZXMuZWxlbWVudCxcbiAgICAgICAgbWFkaWVMb2dvOiBQcm9wVHlwZXMuZWxlbWVudCxcbiAgICB9KSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEZvb3RlclVJO1xuIl0sIm5hbWVzIjpbIkZvb3RlclVJIiwicHJvcHMiLCJpc05ld0Zvb3RlciIsImlzSUVTdXBwb3J0UGFnZSIsInNpZ25VcE5vd0xpbmsiLCJzaG93SGNkUmVzZWFyY2giLCJhc3NldHMiLCJfb2JqZWN0U3ByZWFkIiwiaGhzTG9nbyIsIl9yZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJhbHQiLCJzcmMiLCJtYWRpZUxvZ28iLCJzZXRMaW5rIiwibGluayIsIkZyYWdtZW50IiwiaWQiLCJidWlsZFZlcnNpb24iLCJocmVmIiwicXBwTG9nbyIsIl9MZWdhY3lGb290ZXJVSSIsImlzRnVsbFdpZHRoIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiYm9vbCIsInNoYXBlIiwiY21zTG9nbyIsImVsZW1lbnQiLCJfZGVmYXVsdCIsIl9leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///756\n')},193:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(556), __webpack_require__(877)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _propTypes, _Infotip) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireDefault(_react);\n _propTypes = _interopRequireDefault(_propTypes);\n _Infotip = _interopRequireDefault(_Infotip);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n var infoTipLabel = "When dialing 711, you will automatically be connected to a TRS Communications Assistant who will relay your conversation to the help desk agent with strict confidentiality.";\n var LegacyFooterUI = function LegacyFooterUI(_ref) {\n var buildVersion = _ref.buildVersion,\n isFullWidth = _ref.isFullWidth,\n signUpNowLink = _ref.signUpNowLink;\n return /*#__PURE__*/_react["default"].createElement("footer", {\n className: "legacy-footer"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "build-version",\n id: "build-version"\n }, buildVersion), /*#__PURE__*/_react["default"].createElement("div", {\n className: "banner"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: isFullWidth ? "container-full-width" : "responsive-container"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "row"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "col-sm-12 col-md-12 col-lg-12"\n }, /*#__PURE__*/_react["default"].createElement("span", null, "Help shape the future of MADiE"), " by participating in user feedback sessions.", " ", /*#__PURE__*/_react["default"].createElement("a", {\n className: "email-note-link",\n href: signUpNowLink\n }, "Send us an email to sign up"))))), /*#__PURE__*/_react["default"].createElement("div", {\n className: isFullWidth ? "container-full-width" : "responsive-container"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "row"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: isFullWidth ? "col-sm-12 col-md-8 col-lg-8" : "col-sm-8 col-md-9 col-lg-9"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "logo-container"\n }, /*#__PURE__*/_react["default"].createElement("img", {\n src: "/images/qpp_logo_reversed.png",\n alt: "Quality Payment Program",\n className: "qpp-logo"\n }), /*#__PURE__*/_react["default"].createElement("div", {\n className: "social-container"\n }, /*#__PURE__*/_react["default"].createElement("a", {\n rel: "noopener noreferrer",\n target: "_blank",\n className: "social-link",\n href: "https://twitter.com/CMSGov",\n "aria-label": "Follow us on Twitter. This link opens in a new window."\n }, /*#__PURE__*/_react["default"].createElement("span", {\n className: "glyphicon glyphicon-twitter"\n })), /*#__PURE__*/_react["default"].createElement("a", {\n rel: "noopener noreferrer",\n target: "_blank",\n className: "social-link",\n href: "https://www.youtube.com/playlist?list=PLaV7m2-zFKpj_6fBsqav6GvFzzq9oOpkk",\n "aria-label": "Follow us on YouTube. This link opens in a new window."\n }, /*#__PURE__*/_react["default"].createElement("span", {\n className: "glyphicon glyphicon-youtube"\n })))), /*#__PURE__*/_react["default"].createElement("div", {\n className: "links"\n }, /*#__PURE__*/_react["default"].createElement("ul", null, /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: "/developers",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenDeveloperTools",\n "data-track-label": "Quality Payment Program"\n }, "Developer Tools")), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: "/about/resource-library",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenEducationAndTools",\n "data-track-label": "Education and Tools"\n }, "Resource Library")), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: "/glossary",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenGlossary",\n "data-track-label": "Glossary"\n }, "Glossary")), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: "/resources/help-and-support",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenHelpAndSupport",\n "data-track-label": "Help and Support"\n }, "Help and Support"))), /*#__PURE__*/_react["default"].createElement("ul", {\n className: "small"\n }, /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: "https://www.cms.gov/privacy",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenPrivacyDisclaimer",\n "data-track-label": "Notice of Privacy and Disclaimer"\n }, "CMS Privacy Notice")), /*#__PURE__*/_react["default"].createElement("span", {\n className: "divider"\n }), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: "https://www.cms.gov/About-CMS/Agency-Information/Aboutwebsite/Policiesforaccessibility",\n "data-track-category": "FooterNav",\n "data-track-action": "OpenAccessibility",\n "data-track-label": "Accessibility"\n }, "Accessibility")), /*#__PURE__*/_react["default"].createElement("span", {\n className: "divider"\n }), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n className: "adobe-link",\n rel: "noopener noreferrer",\n target: "_blank",\n href: "https://get.adobe.com/reader",\n "data-track-category": "FooterNav",\n "data-track-action": "DownloadAdobeReader",\n "data-track-label": "AdobeReader"\n }, /*#__PURE__*/_react["default"].createElement("svg", {\n className: "icon"\n }, /*#__PURE__*/_react["default"].createElement("use", {\n xlinkHref: "#icon-download"\n })), "Download Adobe Reader")), /*#__PURE__*/_react["default"].createElement("span", {\n className: "divider"\n }), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("a", {\n href: "mailto:sb-mat-help@semanticbits.com",\n className: "email-link"\n }, "sb-mat-help@semanticbits.com")), /*#__PURE__*/_react["default"].createElement("li", null, "1-866-288-8292 (TRS: 711)", /*#__PURE__*/_react["default"].createElement("div", {\n className: "footer-trs-infotip"\n }, /*#__PURE__*/_react["default"].createElement(_Infotip["default"], {\n lightIcon: true,\n label: infoTipLabel\n })))))), /*#__PURE__*/_react["default"].createElement("div", {\n className: isFullWidth ? "col-sm-12 col-md-4 col-lg-4" : "col-sm-4 col-md-3 col-lg-3"\n }, /*#__PURE__*/_react["default"].createElement("div", {\n className: "hhs-logo-container"\n }, /*#__PURE__*/_react["default"].createElement("img", {\n alt: "Department of Health & Human Services USA",\n src: "/images/hhs-logo-white.svg"\n }))))));\n };\n LegacyFooterUI.propTypes = {\n buildVersion: _propTypes["default"].string,\n isFullWidth: _propTypes["default"].bool,\n signUpNowLink: _propTypes["default"].string\n };\n var _default = _exports["default"] = LegacyFooterUI;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFJO0lBQzNCakIsYUFBYSxFQUFFZSxxQkFBUyxDQUFDQztFQUM3QixDQUFDO0VBQUMsSUFBQUUsUUFBQSxHQUFBQyxRQUFBLGNBRWF2QixjQUFjO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvRm9vdGVyL0xlZ2FjeUZvb3RlclVJLmpzeD84ZWM5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIjtcbmltcG9ydCBJbmZvVGlwIGZyb20gXCIuLi9JbmZvdGlwL0luZm90aXBcIjtcblxuY29uc3QgaW5mb1RpcExhYmVsID1cbiAgICBcIldoZW4gZGlhbGluZyA3MTEsIHlvdSB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgY29ubmVjdGVkIHRvIGEgVFJTIENvbW11bmljYXRpb25zIEFzc2lzdGFudCB3aG8gd2lsbCByZWxheSB5b3VyIGNvbnZlcnNhdGlvbiB0byB0aGUgaGVscCBkZXNrIGFnZW50IHdpdGggc3RyaWN0IGNvbmZpZGVudGlhbGl0eS5cIjtcblxuY29uc3QgTGVnYWN5Rm9vdGVyVUkgPSAoeyBidWlsZFZlcnNpb24sIGlzRnVsbFdpZHRoLCBzaWduVXBOb3dMaW5rIH0pID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8Zm9vdGVyIGNsYXNzTmFtZT1cImxlZ2FjeS1mb290ZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnVpbGQtdmVyc2lvblwiIGlkPVwiYnVpbGQtdmVyc2lvblwiPlxuICAgICAgICAgICAgICAgIHtidWlsZFZlcnNpb259XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmFubmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNGdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiY29udGFpbmVyLWZ1bGwtd2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJyZXNwb25zaXZlLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1zbS0xMiBjb2wtbWQtMTIgY29sLWxnLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+SGVscCBzaGFwZSB0aGUgZnV0dXJlIG9mIE1BRGlFPC9zcGFuPiBieVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpY2lwYXRpbmcgaW4gdXNlciBmZWVkYmFjayBzZXNzaW9ucy57XCIgXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwiZW1haWwtbm90ZS1saW5rXCIgaHJlZj17c2lnblVwTm93TGlua30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbmQgdXMgYW4gZW1haWwgdG8gc2lnbiB1cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgICAgICAgICAgIGlzRnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiY29udGFpbmVyLWZ1bGwtd2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBcInJlc3BvbnNpdmUtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Z1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiY29sLXNtLTEyIGNvbC1tZC04IGNvbC1sZy04XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcImNvbC1zbS04IGNvbC1tZC05IGNvbC1sZy05XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2dvLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2ltYWdlcy9xcHBfbG9nb19yZXZlcnNlZC5wbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJRdWFsaXR5IFBheW1lbnQgUHJvZ3JhbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInFwcC1sb2dvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic29jaWFsLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic29jaWFsLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vdHdpdHRlci5jb20vQ01TR292XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJGb2xsb3cgdXMgb24gVHdpdHRlci4gVGhpcyBsaW5rIG9wZW5zIGluIGEgbmV3IHdpbmRvdy5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJnbHlwaGljb24gZ2x5cGhpY29uLXR3aXR0ZXJcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNvY2lhbC1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMYVY3bTItekZLcGpfNmZCc3FhdjZHdkZ6enE5b09wa2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkZvbGxvdyB1cyBvbiBZb3VUdWJlLiBUaGlzIGxpbmsgb3BlbnMgaW4gYSBuZXcgd2luZG93LlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImdseXBoaWNvbiBnbHlwaGljb24teW91dHViZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmtzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvZGV2ZWxvcGVyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuRGV2ZWxvcGVyVG9vbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJRdWFsaXR5IFBheW1lbnQgUHJvZ3JhbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2ZWxvcGVyIFRvb2xzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi9hYm91dC9yZXNvdXJjZS1saWJyYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIk9wZW5FZHVjYXRpb25BbmRUb29sc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIkVkdWNhdGlvbiBhbmQgVG9vbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlIExpYnJhcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL2dsb3NzYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIk9wZW5HbG9zc2FyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIkdsb3NzYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHbG9zc2FyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvcmVzb3VyY2VzL2hlbHAtYW5kLXN1cHBvcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiT3BlbkhlbHBBbmRTdXBwb3J0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiSGVscCBhbmQgU3VwcG9ydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVscCBhbmQgU3VwcG9ydFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cInNtYWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3LmNtcy5nb3YvcHJpdmFjeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuUHJpdmFjeURpc2NsYWltZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJOb3RpY2Ugb2YgUHJpdmFjeSBhbmQgRGlzY2xhaW1lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01TIFByaXZhY3kgTm90aWNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRpdmlkZXJcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3LmNtcy5nb3YvQWJvdXQtQ01TL0FnZW5jeS1JbmZvcm1hdGlvbi9BYm91dHdlYnNpdGUvUG9saWNpZXNmb3JhY2Nlc3NpYmlsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIk9wZW5BY2Nlc3NpYmlsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiQWNjZXNzaWJpbGl0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjZXNzaWJpbGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkaXZpZGVyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImFkb2JlLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vZ2V0LmFkb2JlLmNvbS9yZWFkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiRG93bmxvYWRBZG9iZVJlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIkFkb2JlUmVhZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzTmFtZT1cImljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGlua0hyZWY9XCIjaWNvbi1kb3dubG9hZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG93bmxvYWQgQWRvYmUgUmVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImRpdmlkZXJcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIm1haWx0bzpzYi1tYXQtaGVscEBzZW1hbnRpY2JpdHMuY29tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJlbWFpbC1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYi1tYXQtaGVscEBzZW1hbnRpY2JpdHMuY29tXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEtODY2LTI4OC04MjkyIChUUlM6IDcxMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9vdGVyLXRycy1pbmZvdGlwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEluZm9UaXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlnaHRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtpbmZvVGlwTGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcImNvbC1zbS0xMiBjb2wtbWQtNCBjb2wtbGctNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJjb2wtc20tNCBjb2wtbWQtMyBjb2wtbGctM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGhzLWxvZ28tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJEZXBhcnRtZW50IG9mIEhlYWx0aCAmYW1wOyBIdW1hbiBTZXJ2aWNlcyBVU0FcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIvaW1hZ2VzL2hocy1sb2dvLXdoaXRlLnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvb3Rlcj5cbiAgICApO1xufTtcblxuTGVnYWN5Rm9vdGVyVUkucHJvcFR5cGVzID0ge1xuICAgIGJ1aWxkVmVyc2lvbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBpc0Z1bGxXaWR0aDogUHJvcFR5cGVzLmJvb2wsXG4gICAgc2lnblVwTm93TGluazogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IExlZ2FjeUZvb3RlclVJO1xuIl0sIm5hbWVzIjpbImluZm9UaXBMYWJlbCIsIkxlZ2FjeUZvb3RlclVJIiwiX3JlZiIsImJ1aWxkVmVyc2lvbiIsImlzRnVsbFdpZHRoIiwic2lnblVwTm93TGluayIsIl9yZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJpZCIsImhyZWYiLCJzcmMiLCJhbHQiLCJyZWwiLCJ0YXJnZXQiLCJ4bGlua0hyZWYiLCJfSW5mb3RpcCIsImxpZ2h0SWNvbiIsImxhYmVsIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiYm9vbCIsIl9kZWZhdWx0IiwiX2V4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///193\n')},258:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }\n(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(763), __webpack_require__(756)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _reactDom, _FooterUI) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireDefault(_react);\n _FooterUI = _interopRequireDefault(_FooterUI);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\n function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }\n function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }\n function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }\n function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } /* global buildVersion */ // buildVersion above is defined in webpack.config.js\n /**\n * Renders the QPP Footer content.\n */\n var Footer = _exports["default"] = /*#__PURE__*/_createClass(\n /**\n * @param {Object} options - An object containing content and config data\n * @param {HTMLElement} options.rootElement - Elem inside which to render\n */\n function Footer(options) {\n _classCallCheck(this, Footer);\n if (options.hasOwnProperty("rootElement")) {\n (0, _reactDom.render)(/*#__PURE__*/_react["default"].createElement(_FooterUI["default"], {\n buildVersion: "1.2.41",\n isFullWidth: options.isFullWidth,\n isNewFooter: options.isNewFooter,\n showHcdResearch: options.showHcdResearch\n }), options.rootElement);\n } else {\n (0, _reactDom.render)(/*#__PURE__*/_react["default"].createElement(_FooterUI["default"], {\n buildVersion: "1.2.41"\n }), options);\n }\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjU4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0hBQUEsMEJBQ0E7RUFLQTtBQUNBO0FBQ0E7RUFGQSxJQUdxQkEsTUFBTSxHQUFBQyxRQUFBLDJCQUFBQyxZQUFBO0VBQ3ZCO0FBQ0o7QUFDQTtBQUNBO0VBQ0ksU0FBQUYsT0FBWUcsT0FBTyxFQUFFO0lBQUFDLGVBQUEsT0FBQUosTUFBQTtJQUNqQixJQUFJRyxPQUFPLENBQUNFLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFBRTtNQUN2QyxJQUFBQyxnQkFBTSxlQUNGQyxNQUFBLFlBQUFDLGFBQUEsQ0FBQ0MsU0FBQSxXQUFRO1FBQ0xDLFlBQVksRUFBRUEsUUFBYTtRQUMzQkMsV0FBVyxFQUFFUixPQUFPLENBQUNRLFdBQVk7UUFDakNDLFdBQVcsRUFBRVQsT0FBTyxDQUFDUyxXQUFZO1FBQ2pDQyxlQUFlLEVBQUVWLE9BQU8sQ0FBQ1U7TUFBZ0IsQ0FDNUMsQ0FBQyxFQUNGVixPQUFPLENBQUNXLFdBQ1osQ0FBQztJQUNMLENBQUMsTUFBTTtNQUNILElBQUFSLGdCQUFNLGVBQUNDLE1BQUEsWUFBQUMsYUFBQSxDQUFDQyxTQUFBLFdBQVE7UUFBQ0MsWUFBWSxFQUFFQSxRQUFZQTtNQUFDLENBQUUsQ0FBQyxFQUFFUCxPQUFPLENBQUM7SUFDN0Q7RUFDSixDQUFDO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvRm9vdGVyL2Zvb3Rlci5qcz80OWFlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCBidWlsZFZlcnNpb24gKi9cbi8vIGJ1aWxkVmVyc2lvbiBhYm92ZSBpcyBkZWZpbmVkIGluIHdlYnBhY2suY29uZmlnLmpzXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgRm9vdGVyVUkgZnJvbSBcIi4vRm9vdGVyVUlcIjtcblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBRUFAgRm9vdGVyIGNvbnRlbnQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvb3RlciB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBBbiBvYmplY3QgY29udGFpbmluZyBjb250ZW50IGFuZCBjb25maWcgZGF0YVxuICAgICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IG9wdGlvbnMucm9vdEVsZW1lbnQgLSBFbGVtIGluc2lkZSB3aGljaCB0byByZW5kZXJcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIGlmIChvcHRpb25zLmhhc093blByb3BlcnR5KFwicm9vdEVsZW1lbnRcIikpIHtcbiAgICAgICAgICAgIHJlbmRlcihcbiAgICAgICAgICAgICAgICA8Rm9vdGVyVUlcbiAgICAgICAgICAgICAgICAgICAgYnVpbGRWZXJzaW9uPXtidWlsZFZlcnNpb259XG4gICAgICAgICAgICAgICAgICAgIGlzRnVsbFdpZHRoPXtvcHRpb25zLmlzRnVsbFdpZHRofVxuICAgICAgICAgICAgICAgICAgICBpc05ld0Zvb3Rlcj17b3B0aW9ucy5pc05ld0Zvb3Rlcn1cbiAgICAgICAgICAgICAgICAgICAgc2hvd0hjZFJlc2VhcmNoPXtvcHRpb25zLnNob3dIY2RSZXNlYXJjaH1cbiAgICAgICAgICAgICAgICAvPixcbiAgICAgICAgICAgICAgICBvcHRpb25zLnJvb3RFbGVtZW50XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVuZGVyKDxGb290ZXJVSSBidWlsZFZlcnNpb249e2J1aWxkVmVyc2lvbn0gLz4sIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIkZvb3RlciIsIl9leHBvcnRzIiwiX2NyZWF0ZUNsYXNzIiwib3B0aW9ucyIsIl9jbGFzc0NhbGxDaGVjayIsImhhc093blByb3BlcnR5IiwicmVuZGVyIiwiX3JlYWN0IiwiY3JlYXRlRWxlbWVudCIsIl9Gb290ZXJVSSIsImJ1aWxkVmVyc2lvbiIsImlzRnVsbFdpZHRoIiwiaXNOZXdGb290ZXIiLCJzaG93SGNkUmVzZWFyY2giLCJyb290RWxlbWVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///258\n')},877:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(556), __webpack_require__(225), __webpack_require__(517)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _propTypes, _Tooltip, _InfotipIcon) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireDefault(_react);\n _propTypes = _interopRequireDefault(_propTypes);\n _Tooltip = _interopRequireDefault(_Tooltip);\n _InfotipIcon = _interopRequireDefault(_InfotipIcon);\n var _excluded = ["label", "lightIcon"];\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\n function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\n var BUTTON_SIZE = "16px";\n var buttonStyle = {\n background: "transparent",\n border: 0,\n padding: 0,\n width: BUTTON_SIZE,\n height: BUTTON_SIZE,\n WebkitTouchCallout: "none",\n WebkitUserSelect: "none",\n userSelect: "none"\n };\n\n // Use basic touch handlers for mobile "tap-to-open" ui. Mobile touch\n // is currently not supported by @reach/tooltip; this may change in future.\n // Leverages @reach/tooltip "focus" behavior to open tooltip on tap,\n // and close tooltip on second tap or loss of focus.\n // TODO: We may want to improve this by tracking touch positions to ensure\n // that a \'touchend\' event must be reasonably close to the tooltip target.\n var touchHandlers = {\n onTouchStart: function onTouchStart(e) {\n e.stopPropagation();\n },\n onTouchEnd: function onTouchEnd(e) {\n if (document.activeElement !== e.currentTarget) {\n e.preventDefault();\n e.currentTarget.focus();\n } else {\n e.preventDefault();\n e.currentTarget.blur();\n }\n }\n };\n\n /**\n * Tooltip with styled information icon\n */\n var Infotip = function Infotip(_ref) {\n var label = _ref.label,\n lightIcon = _ref.lightIcon,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], _extends({\n label: label\n }, props), /*#__PURE__*/_react["default"].createElement("button", _extends({\n type: "button",\n "aria-label": "Information",\n style: buttonStyle\n }, touchHandlers), /*#__PURE__*/_react["default"].createElement(_InfotipIcon["default"], {\n lightIcon: lightIcon,\n width: BUTTON_SIZE,\n height: BUTTON_SIZE,\n "aria-hidden": true,\n style: {\n "float": "left"\n }\n })));\n };\n Infotip.propTypes = {\n label: _propTypes["default"].string.isRequired,\n ariaLabel: _propTypes["default"].string,\n lightIcon: _propTypes["default"].bool,\n DEBUG_STYLE: _propTypes["default"].bool\n };\n Infotip.defaultProps = {\n ariaLabel: undefined,\n lightIcon: false,\n DEBUG_STYLE: undefined\n };\n var _default = _exports["default"] = Infotip;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODc3LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBS0EsSUFBTUEsV0FBVyxHQUFHLE1BQU07RUFFMUIsSUFBTUMsV0FBVyxHQUFHO0lBQ2hCQyxVQUFVLEVBQUUsYUFBYTtJQUN6QkMsTUFBTSxFQUFFLENBQUM7SUFDVEMsT0FBTyxFQUFFLENBQUM7SUFDVkMsS0FBSyxFQUFFTCxXQUFXO0lBQ2xCTSxNQUFNLEVBQUVOLFdBQVc7SUFDbkJPLGtCQUFrQixFQUFFLE1BQU07SUFDMUJDLGdCQUFnQixFQUFFLE1BQU07SUFDeEJDLFVBQVUsRUFBRTtFQUNoQixDQUFDOztFQUVEO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLElBQU1DLGFBQWEsR0FBRztJQUNsQkMsWUFBWSxFQUFFLFNBQWRBLFlBQVlBLENBQUdDLENBQUMsRUFBSztNQUNqQkEsQ0FBQyxDQUFDQyxlQUFlLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBQ0RDLFVBQVUsRUFBRSxTQUFaQSxVQUFVQSxDQUFHRixDQUFDLEVBQUs7TUFDZixJQUFJRyxRQUFRLENBQUNDLGFBQWEsS0FBS0osQ0FBQyxDQUFDSyxhQUFhLEVBQUU7UUFDNUNMLENBQUMsQ0FBQ00sY0FBYyxDQUFDLENBQUM7UUFDbEJOLENBQUMsQ0FBQ0ssYUFBYSxDQUFDRSxLQUFLLENBQUMsQ0FBQztNQUMzQixDQUFDLE1BQU07UUFDSFAsQ0FBQyxDQUFDTSxjQUFjLENBQUMsQ0FBQztRQUNsQk4sQ0FBQyxDQUFDSyxhQUFhLENBQUNHLElBQUksQ0FBQyxDQUFDO01BQzFCO0lBQ0o7RUFDSixDQUFDOztFQUVEO0FBQ0E7QUFDQTtFQUNBLElBQU1DLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFBQyxJQUFBO0lBQUEsSUFBTUMsS0FBSyxHQUFBRCxJQUFBLENBQUxDLEtBQUs7TUFBRUMsU0FBUyxHQUFBRixJQUFBLENBQVRFLFNBQVM7TUFBS0MsS0FBSyxHQUFBQyx3QkFBQSxDQUFBSixJQUFBLEVBQUFLLFNBQUE7SUFBQSxvQkFDekNDLE1BQUEsWUFBQUMsYUFBQSxDQUFDQyxRQUFBLFdBQU8sRUFBQUMsUUFBQTtNQUFDUixLQUFLLEVBQUVBO0lBQU0sR0FBS0UsS0FBSyxnQkFDNUJHLE1BQUEsWUFBQUMsYUFBQSxXQUFBRSxRQUFBO01BQ0lDLElBQUksRUFBQyxRQUFRO01BQ2IsY0FBVyxhQUFhO01BQ3hCQyxLQUFLLEVBQUVoQztJQUFZLEdBQ2ZTLGFBQWEsZ0JBRWpCa0IsTUFBQSxZQUFBQyxhQUFBLENBQUNLLFlBQUEsV0FBVztNQUNSVixTQUFTLEVBQUVBLFNBQVU7TUFDckJuQixLQUFLLEVBQUVMLFdBQVk7TUFDbkJNLE1BQU0sRUFBRU4sV0FBWTtNQUNwQixtQkFBVztNQUNYaUMsS0FBSyxFQUFFO1FBQUUsU0FBTztNQUFPO0lBQUUsQ0FDNUIsQ0FDRyxDQUNILENBQUM7RUFBQSxDQUNiO0VBRURaLE9BQU8sQ0FBQ2MsU0FBUyxHQUFHO0lBQ2hCWixLQUFLLEVBQUVhLHFCQUFTLENBQUNDLE1BQU0sQ0FBQ0MsVUFBVTtJQUNsQ0MsU0FBUyxFQUFFSCxxQkFBUyxDQUFDQyxNQUFNO0lBQzNCYixTQUFTLEVBQUVZLHFCQUFTLENBQUNJLElBQUk7SUFDekJDLFdBQVcsRUFBRUwscUJBQVMsQ0FBQ0k7RUFDM0IsQ0FBQztFQUVEbkIsT0FBTyxDQUFDcUIsWUFBWSxHQUFHO0lBQ25CSCxTQUFTLEVBQUVJLFNBQVM7SUFDcEJuQixTQUFTLEVBQUUsS0FBSztJQUNoQmlCLFdBQVcsRUFBRUU7RUFDakIsQ0FBQztFQUFDLElBQUFDLFFBQUEsR0FBQUMsUUFBQSxjQUVheEIsT0FBTztBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9jb21wb25lbnRzL0luZm90aXAvSW5mb3RpcC5qc3g/Y2M4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5pbXBvcnQgVG9vbHRpcCBmcm9tIFwiLi4vVG9vbHRpcFwiO1xuaW1wb3J0IEluZm90aXBJY29uIGZyb20gXCIuL0luZm90aXBJY29uXCI7XG5cbmNvbnN0IEJVVFRPTl9TSVpFID0gXCIxNnB4XCI7XG5cbmNvbnN0IGJ1dHRvblN0eWxlID0ge1xuICAgIGJhY2tncm91bmQ6IFwidHJhbnNwYXJlbnRcIixcbiAgICBib3JkZXI6IDAsXG4gICAgcGFkZGluZzogMCxcbiAgICB3aWR0aDogQlVUVE9OX1NJWkUsXG4gICAgaGVpZ2h0OiBCVVRUT05fU0laRSxcbiAgICBXZWJraXRUb3VjaENhbGxvdXQ6IFwibm9uZVwiLFxuICAgIFdlYmtpdFVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxufTtcblxuLy8gVXNlIGJhc2ljIHRvdWNoIGhhbmRsZXJzIGZvciBtb2JpbGUgXCJ0YXAtdG8tb3BlblwiIHVpLiAgTW9iaWxlIHRvdWNoXG4vLyBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBieSBAcmVhY2gvdG9vbHRpcDsgdGhpcyBtYXkgY2hhbmdlIGluIGZ1dHVyZS5cbi8vIExldmVyYWdlcyBAcmVhY2gvdG9vbHRpcCBcImZvY3VzXCIgYmVoYXZpb3IgdG8gb3BlbiB0b29sdGlwIG9uIHRhcCxcbi8vIGFuZCBjbG9zZSB0b29sdGlwIG9uIHNlY29uZCB0YXAgb3IgbG9zcyBvZiBmb2N1cy5cbi8vIFRPRE86IFdlIG1heSB3YW50IHRvIGltcHJvdmUgdGhpcyBieSB0cmFja2luZyB0b3VjaCBwb3NpdGlvbnMgdG8gZW5zdXJlXG4vLyB0aGF0IGEgJ3RvdWNoZW5kJyBldmVudCBtdXN0IGJlIHJlYXNvbmFibHkgY2xvc2UgdG8gdGhlIHRvb2x0aXAgdGFyZ2V0LlxuY29uc3QgdG91Y2hIYW5kbGVycyA9IHtcbiAgICBvblRvdWNoU3RhcnQ6IChlKSA9PiB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSxcbiAgICBvblRvdWNoRW5kOiAoZSkgPT4ge1xuICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gZS5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBlLmN1cnJlbnRUYXJnZXQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGUuY3VycmVudFRhcmdldC5ibHVyKCk7XG4gICAgICAgIH1cbiAgICB9LFxufTtcblxuLyoqXG4gKiBUb29sdGlwIHdpdGggc3R5bGVkIGluZm9ybWF0aW9uIGljb25cbiAqL1xuY29uc3QgSW5mb3RpcCA9ICh7IGxhYmVsLCBsaWdodEljb24sIC4uLnByb3BzIH0pID0+IChcbiAgICA8VG9vbHRpcCBsYWJlbD17bGFiZWx9IHsuLi5wcm9wc30+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkluZm9ybWF0aW9uXCJcbiAgICAgICAgICAgIHN0eWxlPXtidXR0b25TdHlsZX1cbiAgICAgICAgICAgIHsuLi50b3VjaEhhbmRsZXJzfVxuICAgICAgICA+XG4gICAgICAgICAgICA8SW5mb3RpcEljb25cbiAgICAgICAgICAgICAgICBsaWdodEljb249e2xpZ2h0SWNvbn1cbiAgICAgICAgICAgICAgICB3aWR0aD17QlVUVE9OX1NJWkV9XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXtCVVRUT05fU0laRX1cbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IGZsb2F0OiBcImxlZnRcIiB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9Ub29sdGlwPlxuKTtcblxuSW5mb3RpcC5wcm9wVHlwZXMgPSB7XG4gICAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBhcmlhTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbGlnaHRJY29uOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBERUJVR19TVFlMRTogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5JbmZvdGlwLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBhcmlhTGFiZWw6IHVuZGVmaW5lZCxcbiAgICBsaWdodEljb246IGZhbHNlLFxuICAgIERFQlVHX1NUWUxFOiB1bmRlZmluZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbmZvdGlwO1xuIl0sIm5hbWVzIjpbIkJVVFRPTl9TSVpFIiwiYnV0dG9uU3R5bGUiLCJiYWNrZ3JvdW5kIiwiYm9yZGVyIiwicGFkZGluZyIsIndpZHRoIiwiaGVpZ2h0IiwiV2Via2l0VG91Y2hDYWxsb3V0IiwiV2Via2l0VXNlclNlbGVjdCIsInVzZXJTZWxlY3QiLCJ0b3VjaEhhbmRsZXJzIiwib25Ub3VjaFN0YXJ0IiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsIm9uVG91Y2hFbmQiLCJkb2N1bWVudCIsImFjdGl2ZUVsZW1lbnQiLCJjdXJyZW50VGFyZ2V0IiwicHJldmVudERlZmF1bHQiLCJmb2N1cyIsImJsdXIiLCJJbmZvdGlwIiwiX3JlZiIsImxhYmVsIiwibGlnaHRJY29uIiwicHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJfcmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiX1Rvb2x0aXAiLCJfZXh0ZW5kcyIsInR5cGUiLCJzdHlsZSIsIl9JbmZvdGlwSWNvbiIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJhcmlhTGFiZWwiLCJib29sIiwiREVCVUdfU1RZTEUiLCJkZWZhdWx0UHJvcHMiLCJ1bmRlZmluZWQiLCJfZGVmYXVsdCIsIl9leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///877\n')},517:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(556)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _propTypes) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireDefault(_react);\n _propTypes = _interopRequireDefault(_propTypes);\n var _excluded = ["lightIcon"];\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\n function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\n var InfotipIcon = function InfotipIcon(_ref) {\n var lightIcon = _ref.lightIcon,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/_react["default"].createElement("svg", _extends({\n width: "20px",\n height: "20px",\n viewBox: "0 0 20 20",\n xmlns: "http://www.w3.org/2000/svg"\n }, props), /*#__PURE__*/_react["default"].createElement("g", {\n fill: "none",\n fillRule: "evenodd"\n }, /*#__PURE__*/_react["default"].createElement("path", {\n d: "M9.721 19.158c-4.947 0-8.973-4.126-8.973-9.196C.748 4.892 4.774.766 9.72.766c4.948 0 8.974 4.126 8.974 9.196 0 5.07-4.026 9.196-8.974 9.196z",\n fill: "#2EB1ED",\n fillRule: "nonzero"\n }), /*#__PURE__*/_react["default"].createElement("path", {\n d: "M9.721 0C4.361 0 0 4.469 0 9.962c0 5.493 4.36 9.962 9.721 9.962 5.36 0 9.722-4.469 9.722-9.962C19.443 4.469 15.082 0 9.72 0z",\n fill: lightIcon ? "#FFF" : "#04838A"\n }), /*#__PURE__*/_react["default"].createElement("path", {\n d: "M9.721 14.765c-.206 0-.374.112-.374.25v.5c0 .138.168.25.374.25.207 0 .374-.112.374-.25v-.5c0-.138-.167-.25-.374-.25zM9.764 4.706H9.72c-.792 0-1.536.29-2.1.821a2.767 2.767 0 0 0-.89 2.03c0 .197.166.356.373.356s.374-.159.374-.356c0-.577.237-1.118.668-1.523a2.268 2.268 0 0 1 1.607-.615c1.182.016 2.195.98 2.211 2.107.011.743-.373 1.427-1.028 1.83-.995.61-1.589 1.691-1.589 2.89v1.013c0 .197.168.357.374.357.207 0 .374-.16.374-.357v-1.013c0-.941.477-1.82 1.246-2.292.873-.537 1.386-1.448 1.371-2.438-.022-1.527-1.345-2.788-2.948-2.81z",\n stroke: lightIcon ? "#04838A" : "#FFF",\n strokeWidth: ".5",\n fill: lightIcon ? "#04838A" : "#FFF",\n fillRule: "nonzero"\n })));\n };\n var _default = _exports["default"] = InfotipIcon;\n InfotipIcon.propTypes = {\n lightIcon: _propTypes["default"].bool\n };\n InfotipIcon.defaultProps = {\n lightIcon: false\n };\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTE3LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUdBLElBQU1BLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFBQyxJQUFBO0lBQUEsSUFBTUMsU0FBUyxHQUFBRCxJQUFBLENBQVRDLFNBQVM7TUFBS0MsS0FBSyxHQUFBQyx3QkFBQSxDQUFBSCxJQUFBLEVBQUFJLFNBQUE7SUFBQSxvQkFDdENDLE1BQUEsWUFBQUMsYUFBQSxRQUFBQyxRQUFBO01BQ0lDLEtBQUssRUFBQyxNQUFNO01BQ1pDLE1BQU0sRUFBQyxNQUFNO01BQ2JDLE9BQU8sRUFBQyxXQUFXO01BQ25CQyxLQUFLLEVBQUM7SUFBNEIsR0FDOUJULEtBQUssZ0JBRVRHLE1BQUEsWUFBQUMsYUFBQTtNQUFHTSxJQUFJLEVBQUMsTUFBTTtNQUFDQyxRQUFRLEVBQUM7SUFBUyxnQkFDN0JSLE1BQUEsWUFBQUMsYUFBQTtNQUNJUSxDQUFDLEVBQUMsOElBQThJO01BQ2hKRixJQUFJLEVBQUMsU0FBUztNQUNkQyxRQUFRLEVBQUM7SUFBUyxDQUNyQixDQUFDLGVBQ0ZSLE1BQUEsWUFBQUMsYUFBQTtNQUNJUSxDQUFDLEVBQUMsOEhBQThIO01BQ2hJRixJQUFJLEVBQUVYLFNBQVMsR0FBRyxNQUFNLEdBQUc7SUFBVSxDQUN4QyxDQUFDLGVBQ0ZJLE1BQUEsWUFBQUMsYUFBQTtNQUNJUSxDQUFDLEVBQUMscWhCQUFxaEI7TUFDdmhCQyxNQUFNLEVBQUVkLFNBQVMsR0FBRyxTQUFTLEdBQUcsTUFBTztNQUN2Q2UsV0FBVyxFQUFDLElBQUk7TUFDaEJKLElBQUksRUFBRVgsU0FBUyxHQUFHLFNBQVMsR0FBRyxNQUFPO01BQ3JDWSxRQUFRLEVBQUM7SUFBUyxDQUNyQixDQUNGLENBQ0YsQ0FBQztFQUFBLENBQ1Q7RUFBQyxJQUFBSSxRQUFBLEdBQUFDLFFBQUEsY0FFYW5CLFdBQVc7RUFFMUJBLFdBQVcsQ0FBQ29CLFNBQVMsR0FBRztJQUNwQmxCLFNBQVMsRUFBRW1CLHFCQUFTLENBQUNDO0VBQ3pCLENBQUM7RUFFRHRCLFdBQVcsQ0FBQ3VCLFlBQVksR0FBRztJQUN2QnJCLFNBQVMsRUFBRTtFQUNmLENBQUM7QUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9JbmZvdGlwL0luZm90aXBJY29uLmpzeD82MGMyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIjtcblxuY29uc3QgSW5mb3RpcEljb24gPSAoeyBsaWdodEljb24sIC4uLnByb3BzIH0pID0+IChcbiAgICA8c3ZnXG4gICAgICAgIHdpZHRoPVwiMjBweFwiXG4gICAgICAgIGhlaWdodD1cIjIwcHhcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICAgIDxnIGZpbGw9XCJub25lXCIgZmlsbFJ1bGU9XCJldmVub2RkXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNOS43MjEgMTkuMTU4Yy00Ljk0NyAwLTguOTczLTQuMTI2LTguOTczLTkuMTk2Qy43NDggNC44OTIgNC43NzQuNzY2IDkuNzIuNzY2YzQuOTQ4IDAgOC45NzQgNC4xMjYgOC45NzQgOS4xOTYgMCA1LjA3LTQuMDI2IDkuMTk2LTguOTc0IDkuMTk2elwiXG4gICAgICAgICAgICAgICAgZmlsbD1cIiMyRUIxRURcIlxuICAgICAgICAgICAgICAgIGZpbGxSdWxlPVwibm9uemVyb1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTkuNzIxIDBDNC4zNjEgMCAwIDQuNDY5IDAgOS45NjJjMCA1LjQ5MyA0LjM2IDkuOTYyIDkuNzIxIDkuOTYyIDUuMzYgMCA5LjcyMi00LjQ2OSA5LjcyMi05Ljk2MkMxOS40NDMgNC40NjkgMTUuMDgyIDAgOS43MiAwelwiXG4gICAgICAgICAgICAgICAgZmlsbD17bGlnaHRJY29uID8gXCIjRkZGXCIgOiBcIiMwNDgzOEFcIn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNOS43MjEgMTQuNzY1Yy0uMjA2IDAtLjM3NC4xMTItLjM3NC4yNXYuNWMwIC4xMzguMTY4LjI1LjM3NC4yNS4yMDcgMCAuMzc0LS4xMTIuMzc0LS4yNXYtLjVjMC0uMTM4LS4xNjctLjI1LS4zNzQtLjI1ek05Ljc2NCA0LjcwNkg5LjcyYy0uNzkyIDAtMS41MzYuMjktMi4xLjgyMWEyLjc2NyAyLjc2NyAwIDAgMC0uODkgMi4wM2MwIC4xOTcuMTY2LjM1Ni4zNzMuMzU2cy4zNzQtLjE1OS4zNzQtLjM1NmMwLS41NzcuMjM3LTEuMTE4LjY2OC0xLjUyM2EyLjI2OCAyLjI2OCAwIDAgMSAxLjYwNy0uNjE1YzEuMTgyLjAxNiAyLjE5NS45OCAyLjIxMSAyLjEwNy4wMTEuNzQzLS4zNzMgMS40MjctMS4wMjggMS44My0uOTk1LjYxLTEuNTg5IDEuNjkxLTEuNTg5IDIuODl2MS4wMTNjMCAuMTk3LjE2OC4zNTcuMzc0LjM1Ny4yMDcgMCAuMzc0LS4xNi4zNzQtLjM1N3YtMS4wMTNjMC0uOTQxLjQ3Ny0xLjgyIDEuMjQ2LTIuMjkyLjg3My0uNTM3IDEuMzg2LTEuNDQ4IDEuMzcxLTIuNDM4LS4wMjItMS41MjctMS4zNDUtMi43ODgtMi45NDgtMi44MXpcIlxuICAgICAgICAgICAgICAgIHN0cm9rZT17bGlnaHRJY29uID8gXCIjMDQ4MzhBXCIgOiBcIiNGRkZcIn1cbiAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD1cIi41XCJcbiAgICAgICAgICAgICAgICBmaWxsPXtsaWdodEljb24gPyBcIiMwNDgzOEFcIiA6IFwiI0ZGRlwifVxuICAgICAgICAgICAgICAgIGZpbGxSdWxlPVwibm9uemVyb1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2c+XG4gICAgPC9zdmc+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBJbmZvdGlwSWNvbjtcblxuSW5mb3RpcEljb24ucHJvcFR5cGVzID0ge1xuICAgIGxpZ2h0SWNvbjogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5JbmZvdGlwSWNvbi5kZWZhdWx0UHJvcHMgPSB7XG4gICAgbGlnaHRJY29uOiBmYWxzZSxcbn07XG4iXSwibmFtZXMiOlsiSW5mb3RpcEljb24iLCJfcmVmIiwibGlnaHRJY29uIiwicHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJfcmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMiLCJ3aWR0aCIsImhlaWdodCIsInZpZXdCb3giLCJ4bWxucyIsImZpbGwiLCJmaWxsUnVsZSIsImQiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsIl9kZWZhdWx0IiwiX2V4cG9ydHMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJib29sIiwiZGVmYXVsdFByb3BzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///517\n')},582:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }\n(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(763), __webpack_require__(556), __webpack_require__(310), __webpack_require__(197), __webpack_require__(741)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _propTypes, _position, _tooltip, _portal) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _react = _interopRequireWildcard(_react);\n _propTypes = _interopRequireDefault(_propTypes);\n _position = _interopRequireWildcard(_position);\n _portal = _interopRequireDefault(_portal);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\n function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }\n function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\n function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }\n function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\n function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\n function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n // TODO: investigate ways to allow more styling via css? the triangle\n // positioning effect issue may need to be resolved to allow for this.\n var TEXT_COLOR = "#FFF";\n var BACKGROUND_COLOR = "#333";\n\n /**\n * Generic styled tooltip component.\n * Corresponding styles: /styles/components/_tooltip.scss\n *\n * Extends implementation from @reach/tooltip:\n * https://reacttraining.com/reach-ui/tooltip\n */\n var Tooltip = function Tooltip(_ref) {\n var children = _ref.children,\n label = _ref.label,\n ariaLabel = _ref.ariaLabel,\n DEBUG_STYLE = _ref.DEBUG_STYLE;\n var _useTooltip = (0, _tooltip.useTooltip)({\n DEBUG_STYLE: DEBUG_STYLE\n }),\n _useTooltip2 = _slicedToArray(_useTooltip, 2),\n trigger = _useTooltip2[0],\n tooltip = _useTooltip2[1];\n var isVisible = tooltip.isVisible,\n triggerRect = tooltip.triggerRect;\n var tooltipPopupRef = (0, _react.useRef)();\n var triangleRef = (0, _react.useRef)();\n (0, _react.useLayoutEffect)(function () {\n // For some reason, the forwardRef for the tooltipPopup points to an undefined\n // dom element when we first render the portal containing the triangle. Using\n // an effect here will ensure that the ref is available when applying styles.\n // TODO: investigate and make issue for @reach-ui/tooltip?\n if (isVisible && tooltipPopupRef.current && triggerRect) {\n var tooltipRect = tooltipPopupRef.current.getBoundingClientRect();\n var positionCssText = (0, _position.positionTriangle)(triggerRect, tooltipRect);\n var cssText = "\\n position: absolute;\\n width: 0;\\n height: 0;\\n ".concat(positionCssText, "\\n border-top-color: ").concat(BACKGROUND_COLOR, ";\\n border-bottom-color: ").concat(BACKGROUND_COLOR, ";\\n z-index: 1;\\n ");\n triangleRef.current.style.cssText = cssText;\n }\n });\n return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/(0, _react.cloneElement)(children, trigger), /*#__PURE__*/_react["default"].createElement(_tooltip.TooltipPopup, _extends({}, tooltip, {\n label: label,\n ariaLabel: ariaLabel,\n style: {\n background: BACKGROUND_COLOR,\n color: TEXT_COLOR\n },\n ref: tooltipPopupRef,\n position: _position["default"]\n })), isVisible && /*#__PURE__*/_react["default"].createElement(_portal["default"], null, /*#__PURE__*/_react["default"].createElement("div", {\n ref: triangleRef,\n style: {\n position: "absolute",\n width: 0,\n height: 0\n }\n })));\n };\n Tooltip.propTypes = {\n children: _propTypes["default"].node.isRequired,\n label: _propTypes["default"].node.isRequired,\n ariaLabel: _propTypes["default"].string,\n DEBUG_STYLE: _propTypes["default"].bool\n };\n Tooltip.defaultProps = {\n ariaLabel: undefined,\n DEBUG_STYLE: undefined\n };\n var _default = _exports["default"] = Tooltip;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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V0FBVyxFQUFFcUMscUJBQVMsQ0FBQ0k7RUFDM0IsQ0FBQztFQUVEOUMsT0FBTyxDQUFDK0MsWUFBWSxHQUFHO0lBQ25CM0MsU0FBUyxFQUFFNEMsU0FBUztJQUNwQjNDLFdBQVcsRUFBRTJDO0VBQ2pCLENBQUM7RUFBQyxJQUFBQyxRQUFBLEdBQUFDLFFBQUEsY0FFYWxELE9BQU87QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9Ub29sdGlwL1Rvb2x0aXAuanN4PzY5OWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IGNsb25lRWxlbWVudCwgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIjtcbmltcG9ydCBwb3NpdGlvblRpcCwgeyBwb3NpdGlvblRyaWFuZ2xlIH0gZnJvbSBcIi4vcG9zaXRpb25cIjtcbmltcG9ydCB7IHVzZVRvb2x0aXAsIFRvb2x0aXBQb3B1cCB9IGZyb20gXCJAcmVhY2gvdG9vbHRpcFwiO1xuaW1wb3J0IFBvcnRhbCBmcm9tIFwiQHJlYWNoL3BvcnRhbFwiO1xuXG4vLyBUT0RPOiBpbnZlc3RpZ2F0ZSB3YXlzIHRvIGFsbG93IG1vcmUgc3R5bGluZyB2aWEgY3NzPyB0aGUgdHJpYW5nbGVcbi8vIHBvc2l0aW9uaW5nIGVmZmVjdCBpc3N1ZSBtYXkgbmVlZCB0byBiZSByZXNvbHZlZCB0byBhbGxvdyBmb3IgdGhpcy5cbmNvbnN0IFRFWFRfQ09MT1IgPSBcIiNGRkZcIjtcbmNvbnN0IEJBQ0tHUk9VTkRfQ09MT1IgPSBcIiMzMzNcIjtcblxuLyoqXG4gKiBHZW5lcmljIHN0eWxlZCB0b29sdGlwIGNvbXBvbmVudC5cbiAqIENvcnJlc3BvbmRpbmcgc3R5bGVzOiAvc3R5bGVzL2NvbXBvbmVudHMvX3Rvb2x0aXAuc2Nzc1xuICpcbiAqIEV4dGVuZHMgaW1wbGVtZW50YXRpb24gZnJvbSBAcmVhY2gvdG9vbHRpcDpcbiAqIGh0dHBzOi8vcmVhY3R0cmFpbmluZy5jb20vcmVhY2gtdWkvdG9vbHRpcFxuICovXG5jb25zdCBUb29sdGlwID0gKHsgY2hpbGRyZW4sIGxhYmVsLCBhcmlhTGFiZWwsIERFQlVHX1NUWUxFIH0pID0+IHtcbiAgICBjb25zdCBbdHJpZ2dlciwgdG9vbHRpcF0gPSB1c2VUb29sdGlwKHsgREVCVUdfU1RZTEUgfSk7XG4gICAgY29uc3QgeyBpc1Zpc2libGUsIHRyaWdnZXJSZWN0IH0gPSB0b29sdGlwO1xuICAgIGNvbnN0IHRvb2x0aXBQb3B1cFJlZiA9IHVzZVJlZigpO1xuICAgIGNvbnN0IHRyaWFuZ2xlUmVmID0gdXNlUmVmKCk7XG5cbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICAvLyBGb3Igc29tZSByZWFzb24sIHRoZSBmb3J3YXJkUmVmIGZvciB0aGUgdG9vbHRpcFBvcHVwIHBvaW50cyB0byBhbiB1bmRlZmluZWRcbiAgICAgICAgLy8gZG9tIGVsZW1lbnQgd2hlbiB3ZSBmaXJzdCByZW5kZXIgdGhlIHBvcnRhbCBjb250YWluaW5nIHRoZSB0cmlhbmdsZS4gVXNpbmdcbiAgICAgICAgLy8gYW4gZWZmZWN0IGhlcmUgd2lsbCBlbnN1cmUgdGhhdCB0aGUgcmVmIGlzIGF2YWlsYWJsZSB3aGVuIGFwcGx5aW5nIHN0eWxlcy5cbiAgICAgICAgLy8gVE9ETzogaW52ZXN0aWdhdGUgYW5kIG1ha2UgaXNzdWUgZm9yIEByZWFjaC11aS90b29sdGlwP1xuICAgICAgICBpZiAoaXNWaXNpYmxlICYmIHRvb2x0aXBQb3B1cFJlZi5jdXJyZW50ICYmIHRyaWdnZXJSZWN0KSB7XG4gICAgICAgICAgICBjb25zdCB0b29sdGlwUmVjdCA9IHRvb2x0aXBQb3B1cFJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb25Dc3NUZXh0ID0gcG9zaXRpb25UcmlhbmdsZSh0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QpO1xuICAgICAgICAgICAgY29uc3QgY3NzVGV4dCA9IGBcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgJHtwb3NpdGlvbkNzc1RleHR9XG4gICAgICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAke0JBQ0tHUk9VTkRfQ09MT1J9O1xuICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHtCQUNLR1JPVU5EX0NPTE9SfTtcbiAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgYDtcbiAgICAgICAgICAgIHRyaWFuZ2xlUmVmLmN1cnJlbnQuc3R5bGUuY3NzVGV4dCA9IGNzc1RleHQ7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICB7Y2xvbmVFbGVtZW50KGNoaWxkcmVuLCB0cmlnZ2VyKX1cbiAgICAgICAgICAgIDxUb29sdGlwUG9wdXBcbiAgICAgICAgICAgICAgICB7Li4udG9vbHRpcH1cbiAgICAgICAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgYXJpYUxhYmVsPXthcmlhTGFiZWx9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogQkFDS0dST1VORF9DT0xPUixcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IFRFWFRfQ09MT1IsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICByZWY9e3Rvb2x0aXBQb3B1cFJlZn1cbiAgICAgICAgICAgICAgICBwb3NpdGlvbj17cG9zaXRpb25UaXB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge2lzVmlzaWJsZSAmJiAoXG4gICAgICAgICAgICAgICAgPFBvcnRhbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXt0cmlhbmdsZVJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvUG9ydGFsPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgPC8+XG4gICAgKTtcbn07XG5cblRvb2x0aXAucHJvcFR5cGVzID0ge1xuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZS5pc1JlcXVpcmVkLFxuICAgIGxhYmVsOiBQcm9wVHlwZXMubm9kZS5pc1JlcXVpcmVkLFxuICAgIGFyaWFMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBERUJVR19TVFlMRTogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5Ub29sdGlwLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBhcmlhTGFiZWw6IHVuZGVmaW5lZCxcbiAgICBERUJVR19TVFlMRTogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgVG9vbHRpcDtcbiJdLCJuYW1lcyI6WyJURVhUX0NPTE9SIiwiQkFDS0dST1VORF9DT0xPUiIsIlRvb2x0aXAiLCJfcmVmIiwiY2hpbGRyZW4iLCJsYWJlbCIsImFyaWFMYWJlbCIsIkRFQlVHX1NUWUxFIiwiX3VzZVRvb2x0aXAiLCJ1c2VUb29sdGlwIiwiX3VzZVRvb2x0aXAyIiwiX3NsaWNlZFRvQXJyYXkiLCJ0cmlnZ2VyIiwidG9vbHRpcCIsImlzVmlzaWJsZSIsInRyaWdnZXJSZWN0IiwidG9vbHRpcFBvcHVwUmVmIiwidXNlUmVmIiwidHJpYW5nbGVSZWYiLCJ1c2VMYXlvdXRFZmZlY3QiLCJjdXJyZW50IiwidG9vbHRpcFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJwb3NpdGlvbkNzc1RleHQiLCJwb3NpdGlvblRyaWFuZ2xlIiwiY3NzVGV4dCIsImNvbmNhdCIsInN0eWxlIiwiX3JlYWN0IiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiY2xvbmVFbGVtZW50IiwiX3Rvb2x0aXAiLCJUb29sdGlwUG9wdXAiLCJfZXh0ZW5kcyIsImJhY2tncm91bmQiLCJjb2xvciIsInJlZiIsInBvc2l0aW9uIiwicG9zaXRpb25UaXAiLCJfcG9ydGFsIiwid2lkdGgiLCJoZWlnaHQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJub2RlIiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImJvb2wiLCJkZWZhdWx0UHJvcHMiLCJ1bmRlZmluZWQiLCJfZGVmYXVsdCIsIl9leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///582\n')},225:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(582)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _Tooltip) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _Tooltip = _interopRequireDefault(_Tooltip);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n var _default = _exports["default"] = _Tooltip["default"];\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjI1LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7dUNBRWVBLG1CQUFPO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvVG9vbHRpcC9pbmRleC5qcz8wNTRhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUb29sdGlwIGZyb20gXCIuL1Rvb2x0aXBcIjtcblxuZXhwb3J0IGRlZmF1bHQgVG9vbHRpcDtcbiJdLCJuYW1lcyI6WyJUb29sdGlwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///225\n')},310:function(module,exports){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports.positionTriangle = _exports["default"] = void 0;\n var OFFSET = 12; // modified from reach-ui/tooltip OFFSET value\n var TRIANGLE_SCALE_X = 6;\n var TRIANGLE_SCALE_Y = 8;\n var isDirectionUp = function isDirectionUp(triggerRect, tooltipRect) {\n var collisions = {\n top: triggerRect.top - tooltipRect.height < 0,\n bottom: window.innerHeight < triggerRect.bottom + tooltipRect.height + OFFSET\n };\n return !collisions.top || collisions.bottom;\n };\n\n // modified from @reach/tooltip default positioning function\n // positions Tooltip relative to trigger\n // https://github.com/reach/reach-ui/blob/master/packages/tooltip/src/index.tsx#L532\n var positionTip = function positionTip(triggerRect, tooltipRect) {\n if (!triggerRect || !tooltipRect) {\n return {};\n }\n var triggerCenter = triggerRect.left + triggerRect.width / 2;\n var left = triggerCenter - tooltipRect.width / 2;\n var maxLeft = window.innerWidth - tooltipRect.width - 2;\n var centerLeft = Math.min(Math.max(2, left), maxLeft) + window.pageXOffset;\n var directionUp = isDirectionUp(triggerRect, tooltipRect);\n return {\n left: "".concat(centerLeft, "px"),\n top: directionUp ? "".concat(triggerRect.top - OFFSET - tooltipRect.height + window.pageYOffset, "px") : "".concat(triggerRect.top + OFFSET + triggerRect.height + window.pageYOffset, "px")\n };\n };\n var _default = _exports["default"] = positionTip; // position triangle relative to tooltip position\n // TODO: figure out a better way to render these updates from within react\n // rendering. This method causes an additional repaint after the Tooltip\n // has been rendered. may require changes to @reach/tooltip.\n var positionTriangle = _exports.positionTriangle = function positionTriangle(triggerRect, tooltipRect) {\n var directionUp = isDirectionUp(triggerRect, tooltipRect);\n var triangleTop = directionUp ? triggerRect.top + window.pageYOffset - OFFSET : triggerRect.bottom + window.pageYOffset + OFFSET - TRIANGLE_SCALE_Y;\n var triangleLeft = triggerRect.left - TRIANGLE_SCALE_X + triggerRect.width / 2;\n var triangleBorder = directionUp ? "border-top: ".concat(TRIANGLE_SCALE_Y, "px solid;") : "border-bottom: ".concat(TRIANGLE_SCALE_Y, "px solid;");\n return "\\n border-left: ".concat(TRIANGLE_SCALE_X, "px solid transparent;\\n border-right: ").concat(TRIANGLE_SCALE_X, "px solid transparent;\\n left: ").concat(triangleLeft, "px;\\n top: ").concat(triangleTop, "px;\\n ").concat(triangleBorder, "\\n ");\n };\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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bkQsaUNBQUFzQixNQUFBLENBQ21CdkIsZ0JBQWdCLG1EQUFBdUIsTUFBQSxDQUNmdkIsZ0JBQWdCLDJDQUFBdUIsTUFBQSxDQUN4Qk0sWUFBWSx3QkFBQU4sTUFBQSxDQUNiSyxXQUFXLG1CQUFBTCxNQUFBLENBQ2hCTyxjQUFjO0VBRXhCLENBQUM7QUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9Ub29sdGlwL3Bvc2l0aW9uLmpzPzYxYjEiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgT0ZGU0VUID0gMTI7IC8vIG1vZGlmaWVkIGZyb20gcmVhY2gtdWkvdG9vbHRpcCBPRkZTRVQgdmFsdWVcbmNvbnN0IFRSSUFOR0xFX1NDQUxFX1ggPSA2O1xuY29uc3QgVFJJQU5HTEVfU0NBTEVfWSA9IDg7XG5cbmNvbnN0IGlzRGlyZWN0aW9uVXAgPSAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KSA9PiB7XG4gICAgY29uc3QgY29sbGlzaW9ucyA9IHtcbiAgICAgICAgdG9wOiB0cmlnZ2VyUmVjdC50b3AgLSB0b29sdGlwUmVjdC5oZWlnaHQgPCAwLFxuICAgICAgICBib3R0b206XG4gICAgICAgICAgICB3aW5kb3cuaW5uZXJIZWlnaHQgPFxuICAgICAgICAgICAgdHJpZ2dlclJlY3QuYm90dG9tICsgdG9vbHRpcFJlY3QuaGVpZ2h0ICsgT0ZGU0VULFxuICAgIH07XG5cbiAgICByZXR1cm4gIWNvbGxpc2lvbnMudG9wIHx8IGNvbGxpc2lvbnMuYm90dG9tO1xufTtcblxuLy8gbW9kaWZpZWQgZnJvbSBAcmVhY2gvdG9vbHRpcCBkZWZhdWx0IHBvc2l0aW9uaW5nIGZ1bmN0aW9uXG4vLyBwb3NpdGlvbnMgVG9vbHRpcCByZWxhdGl2ZSB0byB0cmlnZ2VyXG4vLyBodHRwczovL2dpdGh1Yi5jb20vcmVhY2gvcmVhY2gtdWkvYmxvYi9tYXN0ZXIvcGFja2FnZXMvdG9vbHRpcC9zcmMvaW5kZXgudHN4I0w1MzJcbmNvbnN0IHBvc2l0aW9uVGlwID0gKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCkgPT4ge1xuICAgIGlmICghdHJpZ2dlclJlY3QgfHwgIXRvb2x0aXBSZWN0KSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICBjb25zdCB0cmlnZ2VyQ2VudGVyID0gdHJpZ2dlclJlY3QubGVmdCArIHRyaWdnZXJSZWN0LndpZHRoIC8gMjtcbiAgICBjb25zdCBsZWZ0ID0gdHJpZ2dlckNlbnRlciAtIHRvb2x0aXBSZWN0LndpZHRoIC8gMjtcbiAgICBjb25zdCBtYXhMZWZ0ID0gd2luZG93LmlubmVyV2lkdGggLSB0b29sdGlwUmVjdC53aWR0aCAtIDI7XG4gICAgY29uc3QgY2VudGVyTGVmdCA9XG4gICAgICAgIE1hdGgubWluKE1hdGgubWF4KDIsIGxlZnQpLCBtYXhMZWZ0KSArIHdpbmRvdy5wYWdlWE9mZnNldDtcblxuICAgIGNvbnN0IGRpcmVjdGlvblVwID0gaXNEaXJlY3Rpb25VcCh0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbGVmdDogYCR7Y2VudGVyTGVmdH1weGAsXG4gICAgICAgIHRvcDogZGlyZWN0aW9uVXBcbiAgICAgICAgICAgID8gYCR7XG4gICAgICAgICAgICAgICAgICB0cmlnZ2VyUmVjdC50b3AgLVxuICAgICAgICAgICAgICAgICAgT0ZGU0VUIC1cbiAgICAgICAgICAgICAgICAgIHRvb2x0aXBSZWN0LmhlaWdodCArXG4gICAgICAgICAgICAgICAgICB3aW5kb3cucGFnZVlPZmZzZXRcbiAgICAgICAgICAgICAgfXB4YFxuICAgICAgICAgICAgOiBgJHtcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXJSZWN0LnRvcCArXG4gICAgICAgICAgICAgICAgICBPRkZTRVQgK1xuICAgICAgICAgICAgICAgICAgdHJpZ2dlclJlY3QuaGVpZ2h0ICtcbiAgICAgICAgICAgICAgICAgIHdpbmRvdy5wYWdlWU9mZnNldFxuICAgICAgICAgICAgICB9cHhgLFxuICAgIH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBwb3NpdGlvblRpcDtcblxuLy8gcG9zaXRpb24gdHJpYW5nbGUgcmVsYXRpdmUgdG8gdG9vbHRpcCBwb3NpdGlvblxuLy8gVE9ETzogZmlndXJlIG91dCBhIGJldHRlciB3YXkgdG8gcmVuZGVyIHRoZXNlIHVwZGF0ZXMgZnJvbSB3aXRoaW4gcmVhY3Rcbi8vIHJlbmRlcmluZy4gVGhpcyBtZXRob2QgY2F1c2VzIGFuIGFkZGl0aW9uYWwgcmVwYWludCBhZnRlciB0aGUgVG9vbHRpcFxuLy8gaGFzIGJlZW4gcmVuZGVyZWQuIG1heSByZXF1aXJlIGNoYW5nZXMgdG8gQHJlYWNoL3Rvb2x0aXAuXG5leHBvcnQgY29uc3QgcG9zaXRpb25UcmlhbmdsZSA9ICh0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QpID0+IHtcbiAgICBjb25zdCBkaXJlY3Rpb25VcCA9IGlzRGlyZWN0aW9uVXAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KTtcbiAgICBjb25zdCB0cmlhbmdsZVRvcCA9IGRpcmVjdGlvblVwXG4gICAgICAgID8gdHJpZ2dlclJlY3QudG9wICsgd2luZG93LnBhZ2VZT2Zmc2V0IC0gT0ZGU0VUXG4gICAgICAgIDogdHJpZ2dlclJlY3QuYm90dG9tICsgd2luZG93LnBhZ2VZT2Zmc2V0ICsgT0ZGU0VUIC0gVFJJQU5HTEVfU0NBTEVfWTtcblxuICAgIGNvbnN0IHRyaWFuZ2xlTGVmdCA9XG4gICAgICAgIHRyaWdnZXJSZWN0LmxlZnQgLSBUUklBTkdMRV9TQ0FMRV9YICsgdHJpZ2dlclJlY3Qud2lkdGggLyAyO1xuXG4gICAgY29uc3QgdHJpYW5nbGVCb3JkZXIgPSBkaXJlY3Rpb25VcFxuICAgICAgICA/IGBib3JkZXItdG9wOiAke1RSSUFOR0xFX1NDQUxFX1l9cHggc29saWQ7YFxuICAgICAgICA6IGBib3JkZXItYm90dG9tOiAke1RSSUFOR0xFX1NDQUxFX1l9cHggc29saWQ7YDtcblxuICAgIHJldHVybiBgXG4gICAgICAgIGJvcmRlci1sZWZ0OiAke1RSSUFOR0xFX1NDQUxFX1h9cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogJHtUUklBTkdMRV9TQ0FMRV9YfXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBsZWZ0OiAke3RyaWFuZ2xlTGVmdH1weDtcbiAgICAgICAgdG9wOiAke3RyaWFuZ2xlVG9wfXB4O1xuICAgICAgICAke3RyaWFuZ2xlQm9yZGVyfVxuICAgIGA7XG59O1xuIl0sIm5hbWVzIjpbIk9GRlNFVCIsIlRSSUFOR0xFX1NDQUxFX1giLCJUUklBTkdMRV9TQ0FMRV9ZIiwiaXNEaXJlY3Rpb25VcCIsInRyaWdnZXJSZWN0IiwidG9vbHRpcFJlY3QiLCJjb2xsaXNpb25zIiwidG9wIiwiaGVpZ2h0IiwiYm90dG9tIiwid2luZG93IiwiaW5uZXJIZWlnaHQiLCJwb3NpdGlvblRpcCIsInRyaWdnZXJDZW50ZXIiLCJsZWZ0Iiwid2lkdGgiLCJtYXhMZWZ0IiwiaW5uZXJXaWR0aCIsImNlbnRlckxlZnQiLCJNYXRoIiwibWluIiwibWF4IiwicGFnZVhPZmZzZXQiLCJkaXJlY3Rpb25VcCIsImNvbmNhdCIsInBhZ2VZT2Zmc2V0IiwiX2RlZmF1bHQiLCJfZXhwb3J0cyIsInBvc2l0aW9uVHJpYW5nbGUiLCJ0cmlhbmdsZVRvcCIsInRyaWFuZ2xlTGVmdCIsInRyaWFuZ2xlQm9yZGVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///310\n')},24:function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(694), __webpack_require__(258), __webpack_require__(88)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \'function\' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else { var mod; }\n})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _error, _footer, _whatInput) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n _exports["default"] = void 0;\n _error = _interopRequireDefault(_error);\n _footer = _interopRequireDefault(_footer);\n function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }\n var QppStyleComponents = {\n errorPage: function errorPage(options) {\n return new _error["default"](options);\n },\n footer: function footer(options) {\n return new _footer["default"](options);\n }\n };\n var _default = _exports["default"] = QppStyleComponents;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFLQSxJQUFNQSxrQkFBa0IsR0FBRztJQUN2QkMsU0FBUyxXQUFUQSxTQUFTQSxDQUFDQyxPQUFPLEVBQUU7TUFDZixPQUFPLElBQUlDLGlCQUFTLENBQUNELE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBRURFLE1BQU0sV0FBTkEsTUFBTUEsQ0FBQ0YsT0FBTyxFQUFFO01BQ1osT0FBTyxJQUFJRyxrQkFBTSxDQUFDSCxPQUFPLENBQUM7SUFDOUI7RUFDSixDQUFDO0VBQUMsSUFBQUksUUFBQSxHQUFBQyxRQUFBLGNBRWFQLGtCQUFrQjtBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9pbmRleC5qcz80MWY1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFcnJvclBhZ2UgZnJvbSBcIi4vY29tcG9uZW50cy9FcnJvci9lcnJvclwiO1xuaW1wb3J0IEZvb3RlciBmcm9tIFwiLi9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXJcIjtcblxuaW1wb3J0IFwid2hhdC1pbnB1dFwiO1xuXG5jb25zdCBRcHBTdHlsZUNvbXBvbmVudHMgPSB7XG4gICAgZXJyb3JQYWdlKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBFcnJvclBhZ2Uob3B0aW9ucyk7XG4gICAgfSxcblxuICAgIGZvb3RlcihvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBuZXcgRm9vdGVyKG9wdGlvbnMpO1xuICAgIH0sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBRcHBTdHlsZUNvbXBvbmVudHM7XG4iXSwibmFtZXMiOlsiUXBwU3R5bGVDb21wb25lbnRzIiwiZXJyb3JQYWdlIiwib3B0aW9ucyIsIkVycm9yUGFnZSIsImZvb3RlciIsIkZvb3RlciIsIl9kZWZhdWx0IiwiX2V4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///24\n')},763:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n Children: () => (/* binding */ compat_module_N),\n Component: () => (/* reexport */ k),\n Fragment: () => (/* reexport */ b),\n PureComponent: () => (/* binding */ compat_module_C),\n StrictMode: () => (/* binding */ yn),\n Suspense: () => (/* binding */ compat_module_L),\n SuspenseList: () => (/* binding */ U),\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: () => (/* binding */ on),\n cloneElement: () => (/* binding */ hn),\n createContext: () => (/* reexport */ G),\n createElement: () => (/* reexport */ _),\n createFactory: () => (/* binding */ ln),\n createPortal: () => (/* binding */ compat_module_j),\n createRef: () => (/* reexport */ m),\n "default": () => (/* binding */ Rn),\n findDOMNode: () => (/* binding */ dn),\n flushSync: () => (/* binding */ mn),\n forwardRef: () => (/* binding */ compat_module_k),\n hydrate: () => (/* binding */ compat_module_G),\n isElement: () => (/* binding */ En),\n isFragment: () => (/* binding */ an),\n isMemo: () => (/* binding */ sn),\n isValidElement: () => (/* binding */ fn),\n lazy: () => (/* binding */ compat_module_F),\n memo: () => (/* binding */ compat_module_x),\n render: () => (/* binding */ compat_module_q),\n startTransition: () => (/* binding */ _n),\n unmountComponentAtNode: () => (/* binding */ vn),\n unstable_batchedUpdates: () => (/* binding */ pn),\n useCallback: () => (/* reexport */ hooks_module_q),\n useContext: () => (/* reexport */ hooks_module_x),\n useDebugValue: () => (/* reexport */ hooks_module_P),\n useDeferredValue: () => (/* binding */ bn),\n useEffect: () => (/* reexport */ hooks_module_y),\n useErrorBoundary: () => (/* reexport */ hooks_module_b),\n useId: () => (/* reexport */ hooks_module_g),\n useImperativeHandle: () => (/* reexport */ hooks_module_F),\n useInsertionEffect: () => (/* binding */ gn),\n useLayoutEffect: () => (/* reexport */ hooks_module_),\n useMemo: () => (/* reexport */ hooks_module_T),\n useReducer: () => (/* reexport */ hooks_module_p),\n useRef: () => (/* reexport */ hooks_module_A),\n useState: () => (/* reexport */ hooks_module_h),\n useSyncExternalStore: () => (/* binding */ Cn),\n useTransition: () => (/* binding */ Sn),\n version: () => (/* binding */ cn)\n});\n\n;// CONCATENATED MODULE: ./node_modules/preact/dist/preact.module.js\nvar n,l,u,t,i,o,r,f,e,c,s,a,h={},v=[],p=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,y=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function w(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,o,r,f={};for(r in u)"key"==r?i=u[r]:"ref"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),"function"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return g(l,f,i,o,null)}function g(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==r?++u:r,__i:-1,__u:0};return null==r&&null!=l.vnode&&l.vnode(f),f}function m(){return{current:null}}function b(n){return n.children}function k(n,l){this.props=n,this.context=l}function x(n,l){if(null==l)return n.__?x(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return"function"==typeof n.type?x(n):null}function C(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return C(n)}}function M(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!P.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||r)(P)}function P(){var n,u,t,o,r,e,c,s;for(i.sort(f);n=i.shift();)n.__d&&(u=i.length,o=void 0,e=(r=(t=n).__v).__e,c=[],s=[],t.__P&&((o=d({},r)).__v=r.__v+1,l.vnode&&l.vnode(o),O(t.__P,o,r,t.__n,t.__P.namespaceURI,32&r.__u?[e]:null,c,null==e?x(r):e,!!(32&r.__u),s),o.__v=r.__v,o.__.__k[o.__i]=o,j(c,o,s),o.__e!=e&&C(o)),i.length>u&&i.sort(f));P.__r=0}function S(n,l,u,t,i,o,r,f,e,c,s){var a,p,y,d,w,_=t&&t.__k||v,g=l.length;for(u.__d=e,$(u,l,_),e=u.__d,a=0;a<g;a++)null!=(y=u.__k[a])&&(p=-1===y.__i?h:_[y.__i]||h,y.__i=a,O(n,y,p,i,o,r,f,e,c,s),d=y.__e,y.ref&&p.ref!=y.ref&&(p.ref&&N(p.ref,null,y),s.push(y.ref,y.__c||d,y)),null==w&&null!=d&&(w=d),65536&y.__u||p.__k===y.__k?e=I(y,e,n):"function"==typeof y.type&&void 0!==y.__d?e=y.__d:d&&(e=d.nextSibling),y.__d=void 0,y.__u&=-196609);u.__d=e,u.__e=w}function $(n,l,u){var t,i,o,r,f,e=l.length,c=u.length,s=c,a=0;for(n.__k=[],t=0;t<e;t++)null!=(i=l[t])&&"boolean"!=typeof i&&"function"!=typeof i?(r=t+a,(i=n.__k[t]="string"==typeof i||"number"==typeof i||"bigint"==typeof i||i.constructor==String?g(null,i,null,null,null):y(i)?g(b,{children:i},null,null,null):void 0===i.constructor&&i.__b>0?g(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i).__=n,i.__b=n.__b+1,o=null,-1!==(f=i.__i=L(i,u,r,s))&&(s--,(o=u[f])&&(o.__u|=131072)),null==o||null===o.__v?(-1==f&&a--,"function"!=typeof i.type&&(i.__u|=65536)):f!==r&&(f==r-1?a--:f==r+1?a++:(f>r?a--:a++,i.__u|=65536))):i=n.__k[t]=null;if(s)for(t=0;t<c;t++)null!=(o=u[t])&&0==(131072&o.__u)&&(o.__e==n.__d&&(n.__d=x(o)),V(o,o))}function I(n,l,u){var t,i;if("function"==typeof n.type){for(t=n.__k,i=0;t&&i<t.length;i++)t[i]&&(t[i].__=n,l=I(t[i],l,u));return l}n.__e!=l&&(l&&n.type&&!u.contains(l)&&(l=x(n)),u.insertBefore(n.__e,l||null),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8===l.nodeType);return l}function H(n,l){return l=l||[],null==n||"boolean"==typeof n||(y(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function L(n,l,u,t){var i=n.key,o=n.type,r=u-1,f=u+1,e=l[u];if(null===e||e&&i==e.key&&o===e.type&&0==(131072&e.__u))return u;if(t>(null!=e&&0==(131072&e.__u)?1:0))for(;r>=0||f<l.length;){if(r>=0){if((e=l[r])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return r;r--}if(f<l.length){if((e=l[f])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return f;f++}}return-1}function T(n,l,u){"-"===l[0]?n.setProperty(l,null==u?"":u):n[l]=null==u?"":"number"!=typeof u||p.test(l)?u:u+"px"}function A(n,l,u,t,i){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else{if("string"==typeof t&&(n.style.cssText=t=""),t)for(l in t)u&&l in u||T(n.style,l,"");if(u)for(l in u)t&&u[l]===t[l]||T(n.style,l,u[l])}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/(PointerCapture)$|Capture$/i,"$1")),l=l.toLowerCase()in n||"onFocusOut"===l||"onFocusIn"===l?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?t?u.u=t.u:(u.u=e,n.addEventListener(l,o?s:c,o)):n.removeEventListener(l,o?s:c,o);else{if("http://www.w3.org/2000/svg"==i)l=l.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!=l&&"height"!=l&&"href"!=l&&"list"!=l&&"form"!=l&&"tabIndex"!=l&&"download"!=l&&"rowSpan"!=l&&"colSpan"!=l&&"role"!=l&&"popover"!=l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null==u||!1===u&&"-"!==l[4]?n.removeAttribute(l):n.setAttribute(l,"popover"==l&&1==u?"":u))}}function F(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u.t)u.t=e++;else if(u.t<t.u)return;return t(l.event?l.event(u):u)}}}function O(n,u,t,i,o,r,f,e,c,s){var a,h,v,p,w,_,g,m,x,C,M,P,$,I,H,L,T=u.type;if(void 0!==u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),r=[e=u.__e=t.__e]),(a=l.__b)&&a(u);n:if("function"==typeof T)try{if(m=u.props,x="prototype"in T&&T.prototype.render,C=(a=T.contextType)&&i[a.__c],M=a?C?C.props.value:a.__:i,t.__c?g=(h=u.__c=t.__c).__=h.__E:(x?u.__c=h=new T(m,M):(u.__c=h=new k(m,M),h.constructor=T,h.render=q),C&&C.sub(h),h.props=m,h.state||(h.state={}),h.context=M,h.__n=i,v=h.__d=!0,h.__h=[],h._sb=[]),x&&null==h.__s&&(h.__s=h.state),x&&null!=T.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=d({},h.__s)),d(h.__s,T.getDerivedStateFromProps(m,h.__s))),p=h.props,w=h.state,h.__v=u,v)x&&null==T.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),x&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(x&&null==T.getDerivedStateFromProps&&m!==p&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(m,M),!h.__e&&(null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(m,h.__s,M)||u.__v===t.__v)){for(u.__v!==t.__v&&(h.props=m,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),P=0;P<h._sb.length;P++)h.__h.push(h._sb[P]);h._sb=[],h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(m,h.__s,M),x&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(p,w,_)})}if(h.context=M,h.props=m,h.__P=n,h.__e=!1,$=l.__r,I=0,x){for(h.state=h.__s,h.__d=!1,$&&$(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,$&&$(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++I<25);h.state=h.__s,null!=h.getChildContext&&(i=d(d({},i),h.getChildContext())),x&&!v&&null!=h.getSnapshotBeforeUpdate&&(_=h.getSnapshotBeforeUpdate(p,w)),S(n,y(L=null!=a&&a.type===b&&null==a.key?a.props.children:a)?L:[L],u,t,i,o,r,f,e,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&f.push(h),g&&(h.__E=h.__=null)}catch(n){if(u.__v=null,c||null!=r){for(u.__u|=c?160:32;e&&8===e.nodeType&&e.nextSibling;)e=e.nextSibling;r[r.indexOf(e)]=null,u.__e=e}else u.__e=t.__e,u.__k=t.__k;l.__e(n,u,t)}else null==r&&u.__v===t.__v?(u.__k=t.__k,u.__e=t.__e):u.__e=z(t.__e,u,t,i,o,r,f,c,s);(a=l.diffed)&&a(u)}function j(n,u,t){u.__d=void 0;for(var i=0;i<t.length;i++)N(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function z(u,t,i,o,r,f,e,c,s){var a,v,p,d,_,g,m,b=i.props,k=t.props,C=t.type;if("svg"===C?r="http://www.w3.org/2000/svg":"math"===C?r="http://www.w3.org/1998/Math/MathML":r||(r="http://www.w3.org/1999/xhtml"),null!=f)for(a=0;a<f.length;a++)if((_=f[a])&&"setAttribute"in _==!!C&&(C?_.localName===C:3===_.nodeType)){u=_,f[a]=null;break}if(null==u){if(null===C)return document.createTextNode(k);u=document.createElementNS(r,C,k.is&&k),c&&(l.__m&&l.__m(t,f),c=!1),f=null}if(null===C)b===k||c&&u.data===k||(u.data=k);else{if(f=f&&n.call(u.childNodes),b=i.props||h,!c&&null!=f)for(b={},a=0;a<u.attributes.length;a++)b[(_=u.attributes[a]).name]=_.value;for(a in b)if(_=b[a],"children"==a);else if("dangerouslySetInnerHTML"==a)p=_;else if(!(a in k)){if("value"==a&&"defaultValue"in k||"checked"==a&&"defaultChecked"in k)continue;A(u,a,null,_,r)}for(a in k)_=k[a],"children"==a?d=_:"dangerouslySetInnerHTML"==a?v=_:"value"==a?g=_:"checked"==a?m=_:c&&"function"!=typeof _||b[a]===_||A(u,a,_,b[a],r);if(v)c||p&&(v.__html===p.__html||v.__html===u.innerHTML)||(u.innerHTML=v.__html),t.__k=[];else if(p&&(u.innerHTML=""),S(u,y(d)?d:[d],t,i,o,"foreignObject"===C?"http://www.w3.org/1999/xhtml":r,f,e,f?f[0]:i.__k&&x(i,0),c,s),null!=f)for(a=f.length;a--;)w(f[a]);c||(a="value","progress"===C&&null==g?u.removeAttribute("value"):void 0!==g&&(g!==u[a]||"progress"===C&&!g||"option"===C&&g!==b[a])&&A(u,a,g,b[a],r),a="checked",void 0!==m&&m!==u[a]&&A(u,a,m,b[a],r))}return u}function N(n,u,t){try{if("function"==typeof n){var i="function"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function V(n,u,t){var i,o;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!==n.__e||N(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(o=0;o<i.length;o++)i[o]&&V(i[o],u,t||"function"!=typeof n.type);t||w(n.__e),n.__c=n.__=n.__e=n.__d=void 0}function q(n,l,u){return this.constructor(n,u)}function B(u,t,i){var o,r,f,e;l.__&&l.__(u,t),r=(o="function"==typeof i)?null:i&&i.__k||t.__k,f=[],e=[],O(t,u=(!o&&i||t).__k=_(b,null,[u]),r||h,h,t.namespaceURI,!o&&i?[i]:r?null:t.firstChild?n.call(t.childNodes):null,f,!o&&i?i:r?r.__e:t.firstChild,o,e),j(f,u,e)}function D(n,l){B(n,l,D)}function E(l,u,t){var i,o,r,f,e=d({},l.props);for(r in l.type&&l.type.defaultProps&&(f=l.type.defaultProps),u)"key"==r?i=u[r]:"ref"==r?o=u[r]:e[r]=void 0===u[r]&&void 0!==f?f[r]:u[r];return arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),g(l.type,e,i||l.key,o||l.ref,null)}function G(n,l){var u={__c:l="__cC"+a++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=[],(t={})[l]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=v.slice,l={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},k.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=d({},this.state),"function"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},k.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},k.prototype.render=b,i=[],r="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(n,l){return n.__v.__b-l.__v.__b},P.__r=0,e=0,c=F(!1),s=F(!0),a=0;\n//# sourceMappingURL=preact.module.js.map\n\n;// CONCATENATED MODULE: ./node_modules/preact/hooks/dist/hooks.module.js\nvar hooks_module_t,hooks_module_r,hooks_module_u,hooks_module_i,hooks_module_o=0,hooks_module_f=[],hooks_module_c=l,hooks_module_e=hooks_module_c.__b,hooks_module_a=hooks_module_c.__r,hooks_module_v=hooks_module_c.diffed,hooks_module_l=hooks_module_c.__c,hooks_module_m=hooks_module_c.unmount,hooks_module_s=hooks_module_c.__;function hooks_module_d(n,t){hooks_module_c.__h&&hooks_module_c.__h(hooks_module_r,n,hooks_module_o||t),hooks_module_o=0;var u=hooks_module_r.__H||(hooks_module_r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function hooks_module_h(n){return hooks_module_o=1,hooks_module_p(hooks_module_D,n)}function hooks_module_p(n,u,i){var o=hooks_module_d(hooks_module_t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):hooks_module_D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=hooks_module_r,!hooks_module_r.u)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!c||c.call(this,n,t,r))};hooks_module_r.u=!0;var c=hooks_module_r.shouldComponentUpdate,e=hooks_module_r.componentWillUpdate;hooks_module_r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},hooks_module_r.shouldComponentUpdate=f}return o.__N||o.__}function hooks_module_y(n,u){var i=hooks_module_d(hooks_module_t++,3);!hooks_module_c.__s&&hooks_module_C(i.__H,u)&&(i.__=n,i.i=u,hooks_module_r.__H.__h.push(i))}function hooks_module_(n,u){var i=hooks_module_d(hooks_module_t++,4);!hooks_module_c.__s&&hooks_module_C(i.__H,u)&&(i.__=n,i.i=u,hooks_module_r.__h.push(i))}function hooks_module_A(n){return hooks_module_o=5,hooks_module_T(function(){return{current:n}},[])}function hooks_module_F(n,t,r){hooks_module_o=6,hooks_module_(function(){return"function"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function hooks_module_T(n,r){var u=hooks_module_d(hooks_module_t++,7);return hooks_module_C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function hooks_module_q(n,t){return hooks_module_o=8,hooks_module_T(function(){return n},t)}function hooks_module_x(n){var u=hooks_module_r.context[n.__c],i=hooks_module_d(hooks_module_t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(hooks_module_r)),u.props.value):n.__}function hooks_module_P(n,t){hooks_module_c.useDebugValue&&hooks_module_c.useDebugValue(t?t(n):n)}function hooks_module_b(n){var u=hooks_module_d(hooks_module_t++,10),i=hooks_module_h();return u.__=n,hooks_module_r.componentDidCatch||(hooks_module_r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function hooks_module_g(){var n=hooks_module_d(hooks_module_t++,11);if(!n.__){for(var u=hooks_module_r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__="P"+i[0]+"-"+i[1]++}return n.__}function hooks_module_j(){for(var n;n=hooks_module_f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(hooks_module_z),n.__H.__h.forEach(hooks_module_B),n.__H.__h=[]}catch(t){n.__H.__h=[],hooks_module_c.__e(t,n.__v)}}hooks_module_c.__b=function(n){hooks_module_r=null,hooks_module_e&&hooks_module_e(n)},hooks_module_c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),hooks_module_s&&hooks_module_s(n,t)},hooks_module_c.__r=function(n){hooks_module_a&&hooks_module_a(n),hooks_module_t=0;var i=(hooks_module_r=n.__c).__H;i&&(hooks_module_u===hooks_module_r?(i.__h=[],hooks_module_r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.i=n.__N=void 0})):(i.__h.forEach(hooks_module_z),i.__h.forEach(hooks_module_B),i.__h=[],hooks_module_t=0)),hooks_module_u=hooks_module_r},hooks_module_c.diffed=function(n){hooks_module_v&&hooks_module_v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==hooks_module_f.push(t)&&hooks_module_i===hooks_module_c.requestAnimationFrame||((hooks_module_i=hooks_module_c.requestAnimationFrame)||hooks_module_w)(hooks_module_j)),t.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.i=void 0})),hooks_module_u=hooks_module_r=null},hooks_module_c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(hooks_module_z),n.__h=n.__h.filter(function(n){return!n.__||hooks_module_B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],hooks_module_c.__e(r,n.__v)}}),hooks_module_l&&hooks_module_l(n,t)},hooks_module_c.unmount=function(n){hooks_module_m&&hooks_module_m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{hooks_module_z(n)}catch(n){t=n}}),r.__H=void 0,t&&hooks_module_c.__e(t,r.__v))};var hooks_module_k="function"==typeof requestAnimationFrame;function hooks_module_w(n){var t,r=function(){clearTimeout(u),hooks_module_k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);hooks_module_k&&(t=requestAnimationFrame(r))}function hooks_module_z(n){var t=hooks_module_r,u=n.__c;"function"==typeof u&&(n.__c=void 0,u()),hooks_module_r=t}function hooks_module_B(n){var t=hooks_module_r;n.__c=n.__(),hooks_module_r=t}function hooks_module_C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function hooks_module_D(n,t){return"function"==typeof t?t(n):t}\n//# sourceMappingURL=hooks.module.js.map\n\n;// CONCATENATED MODULE: ./node_modules/preact/compat/dist/compat.module.js\nfunction compat_module_g(n,t){for(var e in t)n[e]=t[e];return n}function compat_module_E(n,t){for(var e in n)if("__source"!==e&&!(e in t))return!0;for(var r in t)if("__source"!==r&&n[r]!==t[r])return!0;return!1}function compat_module_C(n,t){this.props=n,this.context=t}function compat_module_x(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:compat_module_E(this.props,n)}function u(e){return this.shouldComponentUpdate=r,_(n,e)}return u.displayName="Memo("+(n.displayName||n.name)+")",u.prototype.isReactComponent=!0,u.__f=!0,u}(compat_module_C.prototype=new k).isPureReactComponent=!0,compat_module_C.prototype.shouldComponentUpdate=function(n,t){return compat_module_E(this.props,n)||compat_module_E(this.state,t)};var R=l.__b;l.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),R&&R(n)};var compat_module_w="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function compat_module_k(n){function t(t){var e=compat_module_g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=compat_module_w,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(n.displayName||n.name)+")",t}var compat_module_I=function(n,t){return null==n?null:H(H(n).map(t))},compat_module_N={map:compat_module_I,forEach:compat_module_I,count:function(n){return n?H(n).length:0},only:function(n){var t=H(n);if(1!==t.length)throw"Children.only";return t[0]},toArray:H},compat_module_M=l.__e;l.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);compat_module_M(n,t,e,r)};var compat_module_T=l.unmount;function compat_module_A(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=compat_module_g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return compat_module_A(n,t,e)})),n}function compat_module_D(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return compat_module_D(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function compat_module_L(){this.__u=0,this.t=null,this.__b=null}function compat_module_O(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function compat_module_F(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return _(r,o)}return o.displayName="Lazy",o.__f=!0,o}function U(){this.u=null,this.o=null}l.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),compat_module_T&&compat_module_T(n)},(compat_module_L.prototype=new k).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=compat_module_O(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(c):c())};e.__R=i;var c=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=compat_module_D(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},compat_module_L.prototype.componentWillUnmount=function(){this.t=[]},compat_module_L.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),o=this.__v.__k[0].__c;this.__v.__k[0]=compat_module_A(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&_(b,null,n.fallback);return i&&(i.__u&=-33),[_(b,null,e.__a?null:n.children),i]};var compat_module_V=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2]}};function W(n){return this.getChildContext=function(){return n.context},n.children}function compat_module_P(n){var e=this,r=n.i;e.componentWillUnmount=function(){B(null,e.l),e.l=null,e.i=null},e.i&&e.i!==r&&e.componentWillUnmount(),e.l||(e.i=r,e.l={nodeType:1,parentNode:r,childNodes:[],contains:function(){return!0},appendChild:function(n){this.childNodes.push(n),e.i.appendChild(n)},insertBefore:function(n,t){this.childNodes.push(n),e.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.i.removeChild(n)}}),B(_(W,{context:e.context},n.__v),e.l)}function compat_module_j(n,e){var r=_(compat_module_P,{__v:n,i:e});return r.containerInfo=e,r}(U.prototype=new k).__a=function(n){var t=this,e=compat_module_O(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),compat_module_V(t,n,r)):u()};e?e(o):o()}},U.prototype.render=function(n){this.u=null,this.o=new Map;var t=H(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},U.prototype.componentDidUpdate=U.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){compat_module_V(n,e,t)})};var compat_module_z="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,compat_module_B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,compat_module_H=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,Z=/[A-Z0-9]/g,Y="undefined"!=typeof document,compat_module_$=function(n){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function compat_module_q(n,t,e){return null==t.__k&&(t.textContent=""),B(n,t),"function"==typeof e&&e(),n?n.__c:null}function compat_module_G(n,t,e){return D(n,t),"function"==typeof e&&e(),n?n.__c:null}k.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(k.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var J=l.event;function K(){}function Q(){return this.cancelBubble}function X(){return this.defaultPrevented}l.event=function(n){return J&&(n=J(n)),n.persist=K,n.isPropagationStopped=Q,n.isDefaultPrevented=X,n.nativeEvent=n};var nn,tn={enumerable:!1,configurable:!0,get:function(){return this.class}},en=l.vnode;l.vnode=function(n){"string"==typeof n.type&&function(n){var t=n.props,e=n.type,u={},o=-1===e.indexOf("-");for(var i in t){var c=t[i];if(!("value"===i&&"defaultValue"in t&&null==c||Y&&"children"===i&&"noscript"===e||"class"===i||"className"===i)){var l=i.toLowerCase();"defaultValue"===i&&"value"in t&&null==t.value?i="value":"download"===i&&!0===c?c="":"translate"===l&&"no"===c?c=!1:"o"===l[0]&&"n"===l[1]?"ondoubleclick"===l?i="ondblclick":"onchange"!==l||"input"!==e&&"textarea"!==e||compat_module_$(t.type)?"onfocus"===l?i="onfocusin":"onblur"===l?i="onfocusout":compat_module_H.test(i)&&(i=l):l=i="oninput":o&&compat_module_B.test(i)?i=i.replace(Z,"-$&").toLowerCase():null===c&&(c=void 0),"oninput"===l&&u[i=l]&&(i="oninputCapture"),u[i]=c}}"select"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=H(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),"select"==e&&null!=u.defaultValue&&(u.value=H(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,"className",tn)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=compat_module_z,en&&en(n)};var rn=l.__r;l.__r=function(n){rn&&rn(n),nn=n.__c};var un=l.diffed;l.diffed=function(n){un&&un(n);var t=n.props,e=n.__e;null!=e&&"textarea"===n.type&&"value"in t&&t.value!==e.value&&(e.value=null==t.value?"":t.value),nn=null};var on={ReactCurrentDispatcher:{current:{readContext:function(n){return nn.__n[n.__c].props.value},useCallback:hooks_module_q,useContext:hooks_module_x,useDebugValue:hooks_module_P,useDeferredValue:bn,useEffect:hooks_module_y,useId:hooks_module_g,useImperativeHandle:hooks_module_F,useInsertionEffect:gn,useLayoutEffect:hooks_module_,useMemo:hooks_module_T,useReducer:hooks_module_p,useRef:hooks_module_A,useState:hooks_module_h,useSyncExternalStore:Cn,useTransition:Sn}}},cn="18.3.1";function ln(n){return _.bind(null,n)}function fn(n){return!!n&&n.$$typeof===compat_module_z}function an(n){return fn(n)&&n.type===b}function sn(n){return!!n&&!!n.displayName&&("string"==typeof n.displayName||n.displayName instanceof String)&&n.displayName.startsWith("Memo(")}function hn(n){return fn(n)?E.apply(null,arguments):n}function vn(n){return!!n.__k&&(B(null,n),!0)}function dn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)},mn=function(n,t){return n(t)},yn=b;function _n(n){n()}function bn(n){return n}function Sn(){return[!1,_n]}var gn=hooks_module_,En=fn;function Cn(n,t){var e=t(),r=hooks_module_h({h:{__:e,v:t}}),u=r[0].h,o=r[1];return hooks_module_(function(){u.__=e,u.v=t,xn(u)&&o({h:u})},[n,e,t]),hooks_module_y(function(){return xn(u)&&o({h:u}),n(function(){xn(u)&&o({h:u})})},[n]),e}function xn(n){var t,e,r=n.v,u=n.__;try{var o=r();return!((t=u)===(e=o)&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}}var Rn={useState:hooks_module_h,useId:hooks_module_g,useReducer:hooks_module_p,useEffect:hooks_module_y,useLayoutEffect:hooks_module_,useInsertionEffect:gn,useTransition:Sn,useDeferredValue:bn,useSyncExternalStore:Cn,startTransition:_n,useRef:hooks_module_A,useImperativeHandle:hooks_module_F,useMemo:hooks_module_T,useCallback:hooks_module_q,useContext:hooks_module_x,useDebugValue:hooks_module_P,version:"18.3.1",Children:compat_module_N,render:compat_module_q,hydrate:compat_module_G,unmountComponentAtNode:vn,createPortal:compat_module_j,createElement:_,createContext:G,createFactory:ln,cloneElement:hn,createRef:m,Fragment:b,isValidElement:fn,isElement:En,isFragment:an,isMemo:sn,findDOMNode:dn,Component:k,PureComponent:compat_module_C,memo:compat_module_x,forwardRef:compat_module_k,flushSync:mn,unstable_batchedUpdates:pn,StrictMode:yn,Suspense:compat_module_L,SuspenseList:U,lazy:compat_module_F,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:on};\n//# sourceMappingURL=compat.module.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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ZGVfbW9kdWxlcy9wcmVhY3QvZGlzdC9wcmVhY3QubW9kdWxlLmpzP2RhNjUiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvcHJlYWN0L2hvb2tzL2Rpc3QvaG9va3MubW9kdWxlLmpzPzMwZWMiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9kaXN0L2NvbXBhdC5tb2R1bGUuanM/MTVkMSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbixsLHUsdCxpLG8scixmLGUsYyxzLGEsaD17fSx2PVtdLHA9L2FjaXR8ZXgoPzpzfGd8bnxwfCQpfHJwaHxncmlkfG93c3xtbmN8bnR3fGluZVtjaF18em9vfF5vcmR8aXRlcmEvaSx5PUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gZChuLGwpe2Zvcih2YXIgdSBpbiBsKW5bdV09bFt1XTtyZXR1cm4gbn1mdW5jdGlvbiB3KG4pe24mJm4ucGFyZW50Tm9kZSYmbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pfWZ1bmN0aW9uIF8obCx1LHQpe3ZhciBpLG8scixmPXt9O2ZvcihyIGluIHUpXCJrZXlcIj09cj9pPXVbcl06XCJyZWZcIj09cj9vPXVbcl06ZltyXT11W3JdO2lmKGFyZ3VtZW50cy5sZW5ndGg+MiYmKGYuY2hpbGRyZW49YXJndW1lbnRzLmxlbmd0aD4zP24uY2FsbChhcmd1bWVudHMsMik6dCksXCJmdW5jdGlvblwiPT10eXBlb2YgbCYmbnVsbCE9bC5kZWZhdWx0UHJvcHMpZm9yKHIgaW4gbC5kZWZhdWx0UHJvcHMpdm9pZCAwPT09ZltyXSYmKGZbcl09bC5kZWZhdWx0UHJvcHNbcl0pO3JldHVybiBnKGwsZixpLG8sbnVsbCl9ZnVuY3Rpb24gZyhuLHQsaSxvLHIpe3ZhciBmPXt0eXBlOm4scHJvcHM6dCxrZXk6aSxyZWY6byxfX2s6bnVsbCxfXzpudWxsLF9fYjowLF9fZTpudWxsLF9fZDp2b2lkIDAsX19jOm51bGwsY29uc3RydWN0b3I6dm9pZCAwLF9fdjpudWxsPT1yPysrdTpyLF9faTotMSxfX3U6MH07cmV0dXJuIG51bGw9PXImJm51bGwhPWwudm5vZGUmJmwudm5vZGUoZiksZn1mdW5jdGlvbiBtKCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19ZnVuY3Rpb24gYihuKXtyZXR1cm4gbi5jaGlsZHJlbn1mdW5jdGlvbiBrKG4sbCl7dGhpcy5wcm9wcz1uLHRoaXMuY29udGV4dD1sfWZ1bmN0aW9uIHgobixsKXtpZihudWxsPT1sKXJldHVybiBuLl9fP3gobi5fXyxuLl9faSsxKTpudWxsO2Zvcih2YXIgdTtsPG4uX19rLmxlbmd0aDtsKyspaWYobnVsbCE9KHU9bi5fX2tbbF0pJiZudWxsIT11Ll9fZSlyZXR1cm4gdS5fX2U7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50eXBlP3gobik6bnVsbH1mdW5jdGlvbiBDKG4pe3ZhciBsLHU7aWYobnVsbCE9KG49bi5fXykmJm51bGwhPW4uX19jKXtmb3Iobi5fX2U9bi5fX2MuYmFzZT1udWxsLGw9MDtsPG4uX19rLmxlbmd0aDtsKyspaWYobnVsbCE9KHU9bi5fX2tbbF0pJiZudWxsIT11Ll9fZSl7bi5fX2U9bi5fX2MuYmFzZT11Ll9fZTticmVha31yZXR1cm4gQyhuKX19ZnVuY3Rpb24gTShuKXsoIW4uX19kJiYobi5fX2Q9ITApJiZpLnB1c2gobikmJiFQLl9fcisrfHxvIT09bC5kZWJvdW5jZVJlbmRlcmluZykmJigobz1sLmRlYm91bmNlUmVuZGVyaW5nKXx8cikoUCl9ZnVuY3Rpb24gUCgpe3ZhciBuLHUsdCxvLHIsZSxjLHM7Zm9yKGkuc29ydChmKTtuPWkuc2hpZnQoKTspbi5fX2QmJih1PWkubGVuZ3RoLG89dm9pZCAwLGU9KHI9KHQ9bikuX192KS5fX2UsYz1bXSxzPVtdLHQuX19QJiYoKG89ZCh7fSxyKSkuX192PXIuX192KzEsbC52bm9kZSYmbC52bm9kZShvKSxPKHQuX19QLG8scix0Ll9fbix0Ll9fUC5uYW1lc3BhY2VVUkksMzImci5fX3U/W2VdOm51bGwsYyxudWxsPT1lP3gocik6ZSwhISgzMiZyLl9fdSkscyksby5fX3Y9ci5fX3Ysby5fXy5fX2tbby5fX2ldPW8saihjLG8scyksby5fX2UhPWUmJkMobykpLGkubGVuZ3RoPnUmJmkuc29ydChmKSk7UC5fX3I9MH1mdW5jdGlvbiBTKG4sbCx1LHQsaSxvLHIsZixlLGMscyl7dmFyIGEscCx5LGQsdyxfPXQmJnQuX19rfHx2LGc9bC5sZW5ndGg7Zm9yKHUuX19kPWUsJCh1LGwsXyksZT11Ll9fZCxhPTA7YTxnO2ErKyludWxsIT0oeT11Ll9fa1thXSkmJihwPS0xPT09eS5fX2k/aDpfW3kuX19pXXx8aCx5Ll9faT1hLE8obix5LHAsaSxvLHIsZixlLGMscyksZD15Ll9fZSx5LnJlZiYmcC5yZWYhPXkucmVmJiYocC5yZWYmJk4ocC5yZWYsbnVsbCx5KSxzLnB1c2goeS5yZWYseS5fX2N8fGQseSkpLG51bGw9PXcmJm51bGwhPWQmJih3PWQpLDY1NTM2JnkuX191fHxwLl9faz09PXkuX19rP2U9SSh5LGUsbik6XCJmdW5jdGlvblwiPT10eXBlb2YgeS50eXBlJiZ2b2lkIDAhPT15Ll9fZD9lPXkuX19kOmQmJihlPWQubmV4dFNpYmxpbmcpLHkuX19kPXZvaWQgMCx5Ll9fdSY9LTE5NjYwOSk7dS5fX2Q9ZSx1Ll9fZT13fWZ1bmN0aW9uICQobixsLHUpe3ZhciB0LGksbyxyLGYsZT1sLmxlbmd0aCxjPXUubGVuZ3RoLHM9YyxhPTA7Zm9yKG4uX19rPVtdLHQ9MDt0PGU7dCsrKW51bGwhPShpPWxbdF0pJiZcImJvb2xlYW5cIiE9dHlwZW9mIGkmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGk/KHI9dCthLChpPW4uX19rW3RdPVwic3RyaW5nXCI9PXR5cGVvZiBpfHxcIm51bWJlclwiPT10eXBlb2YgaXx8XCJiaWdpbnRcIj09dHlwZW9mIGl8fGkuY29uc3RydWN0b3I9PVN0cmluZz9nKG51bGwsaSxudWxsLG51bGwsbnVsbCk6eShpKT9nKGIse2NoaWxkcmVuOml9LG51bGwsbnVsbCxudWxsKTp2b2lkIDA9PT1pLmNvbnN0cnVjdG9yJiZpLl9fYj4wP2coaS50eXBlLGkucHJvcHMsaS5rZXksaS5yZWY/aS5yZWY6bnVsbCxpLl9fdik6aSkuX189bixpLl9fYj1uLl9fYisxLG89bnVsbCwtMSE9PShmPWkuX19pPUwoaSx1LHIscykpJiYocy0tLChvPXVbZl0pJiYoby5fX3V8PTEzMTA3MikpLG51bGw9PW98fG51bGw9PT1vLl9fdj8oLTE9PWYmJmEtLSxcImZ1bmN0aW9uXCIhPXR5cGVvZiBpLnR5cGUmJihpLl9fdXw9NjU1MzYpKTpmIT09ciYmKGY9PXItMT9hLS06Zj09cisxP2ErKzooZj5yP2EtLTphKyssaS5fX3V8PTY1NTM2KSkpOmk9bi5fX2tbdF09bnVsbDtpZihzKWZvcih0PTA7dDxjO3QrKyludWxsIT0obz11W3RdKSYmMD09KDEzMTA3MiZvLl9fdSkmJihvLl9fZT09bi5fX2QmJihuLl9fZD14KG8pKSxWKG8sbykpfWZ1bmN0aW9uIEkobixsLHUpe3ZhciB0LGk7aWYoXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50eXBlKXtmb3IodD1uLl9fayxpPTA7dCYmaTx0Lmxlbmd0aDtpKyspdFtpXSYmKHRbaV0uX189bixsPUkodFtpXSxsLHUpKTtyZXR1cm4gbH1uLl9fZSE9bCYmKGwmJm4udHlwZSYmIXUuY29udGFpbnMobCkmJihsPXgobikpLHUuaW5zZXJ0QmVmb3JlKG4uX19lLGx8fG51bGwpLGw9bi5fX2UpO2Rve2w9bCYmbC5uZXh0U2libGluZ313aGlsZShudWxsIT1sJiY4PT09bC5ub2RlVHlwZSk7cmV0dXJuIGx9ZnVuY3Rpb24gSChuLGwpe3JldHVybiBsPWx8fFtdLG51bGw9PW58fFwiYm9vbGVhblwiPT10eXBlb2Ygbnx8KHkobik/bi5zb21lKGZ1bmN0aW9uKG4pe0gobixsKX0pOmwucHVzaChuKSksbH1mdW5jdGlvbiBMKG4sbCx1LHQpe3ZhciBpPW4ua2V5LG89bi50eXBlLHI9dS0xLGY9dSsxLGU9bFt1XTtpZihudWxsPT09ZXx8ZSYmaT09ZS5rZXkmJm89PT1lLnR5cGUmJjA9PSgxMzEwNzImZS5fX3UpKXJldHVybiB1O2lmKHQ+KG51bGwhPWUmJjA9PSgxMzEwNzImZS5fX3UpPzE6MCkpZm9yKDtyPj0wfHxmPGwubGVuZ3RoOyl7aWYocj49MCl7aWYoKGU9bFtyXSkmJjA9PSgxMzEwNzImZS5fX3UpJiZpPT1lLmtleSYmbz09PWUudHlwZSlyZXR1cm4gcjtyLS19aWYoZjxsLmxlbmd0aCl7aWYoKGU9bFtmXSkmJjA9PSgxMzEwNzImZS5fX3UpJiZpPT1lLmtleSYmbz09PWUudHlwZSlyZXR1cm4gZjtmKyt9fXJldHVybi0xfWZ1bmN0aW9uIFQobixsLHUpe1wiLVwiPT09bFswXT9uLnNldFByb3BlcnR5KGwsbnVsbD09dT9cIlwiOnUpOm5bbF09bnVsbD09dT9cIlwiOlwibnVtYmVyXCIhPXR5cGVvZiB1fHxwLnRlc3QobCk/dTp1K1wicHhcIn1mdW5jdGlvbiBBKG4sbCx1LHQsaSl7dmFyIG87bjppZihcInN0eWxlXCI9PT1sKWlmKFwic3RyaW5nXCI9PXR5cGVvZiB1KW4uc3R5bGUuY3NzVGV4dD11O2Vsc2V7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQmJihuLnN0eWxlLmNzc1RleHQ9dD1cIlwiKSx0KWZvcihsIGluIHQpdSYmbCBpbiB1fHxUKG4uc3R5bGUsbCxcIlwiKTtpZih1KWZvcihsIGluIHUpdCYmdVtsXT09PXRbbF18fFQobi5zdHlsZSxsLHVbbF0pfWVsc2UgaWYoXCJvXCI9PT1sWzBdJiZcIm5cIj09PWxbMV0pbz1sIT09KGw9bC5yZXBsYWNlKC8oUG9pbnRlckNhcHR1cmUpJHxDYXB0dXJlJC9pLFwiJDFcIikpLGw9bC50b0xvd2VyQ2FzZSgpaW4gbnx8XCJvbkZvY3VzT3V0XCI9PT1sfHxcIm9uRm9jdXNJblwiPT09bD9sLnRvTG93ZXJDYXNlKCkuc2xpY2UoMik6bC5zbGljZSgyKSxuLmx8fChuLmw9e30pLG4ubFtsK29dPXUsdT90P3UudT10LnU6KHUudT1lLG4uYWRkRXZlbnRMaXN0ZW5lcihsLG8/czpjLG8pKTpuLnJlbW92ZUV2ZW50TGlzdGVuZXIobCxvP3M6YyxvKTtlbHNle2lmKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj09aSlsPWwucmVwbGFjZSgveGxpbmsoSHw6aCkvLFwiaFwiKS5yZXBsYWNlKC9zTmFtZSQvLFwic1wiKTtlbHNlIGlmKFwid2lkdGhcIiE9bCYmXCJoZWlnaHRcIiE9bCYmXCJocmVmXCIhPWwmJlwibGlzdFwiIT1sJiZcImZvcm1cIiE9bCYmXCJ0YWJJbmRleFwiIT1sJiZcImRvd25sb2FkXCIhPWwmJlwicm93U3BhblwiIT1sJiZcImNvbFNwYW5cIiE9bCYmXCJyb2xlXCIhPWwmJlwicG9wb3ZlclwiIT1sJiZsIGluIG4pdHJ5e25bbF09bnVsbD09dT9cIlwiOnU7YnJlYWsgbn1jYXRjaChuKXt9XCJmdW5jdGlvblwiPT10eXBlb2YgdXx8KG51bGw9PXV8fCExPT09dSYmXCItXCIhPT1sWzRdP24ucmVtb3ZlQXR0cmlidXRlKGwpOm4uc2V0QXR0cmlidXRlKGwsXCJwb3BvdmVyXCI9PWwmJjE9PXU/XCJcIjp1KSl9fWZ1bmN0aW9uIEYobil7cmV0dXJuIGZ1bmN0aW9uKHUpe2lmKHRoaXMubCl7dmFyIHQ9dGhpcy5sW3UudHlwZStuXTtpZihudWxsPT11LnQpdS50PWUrKztlbHNlIGlmKHUudDx0LnUpcmV0dXJuO3JldHVybiB0KGwuZXZlbnQ/bC5ldmVudCh1KTp1KX19fWZ1bmN0aW9uIE8obix1LHQsaSxvLHIsZixlLGMscyl7dmFyIGEsaCx2LHAsdyxfLGcsbSx4LEMsTSxQLCQsSSxILEwsVD11LnR5cGU7aWYodm9pZCAwIT09dS5jb25zdHJ1Y3RvcilyZXR1cm4gbnVsbDsxMjgmdC5fX3UmJihjPSEhKDMyJnQuX191KSxyPVtlPXUuX19lPXQuX19lXSksKGE9bC5fX2IpJiZhKHUpO246aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgVCl0cnl7aWYobT11LnByb3BzLHg9XCJwcm90b3R5cGVcImluIFQmJlQucHJvdG90eXBlLnJlbmRlcixDPShhPVQuY29udGV4dFR5cGUpJiZpW2EuX19jXSxNPWE/Qz9DLnByb3BzLnZhbHVlOmEuX186aSx0Ll9fYz9nPShoPXUuX19jPXQuX19jKS5fXz1oLl9fRTooeD91Ll9fYz1oPW5ldyBUKG0sTSk6KHUuX19jPWg9bmV3IGsobSxNKSxoLmNvbnN0cnVjdG9yPVQsaC5yZW5kZXI9cSksQyYmQy5zdWIoaCksaC5wcm9wcz1tLGguc3RhdGV8fChoLnN0YXRlPXt9KSxoLmNvbnRleHQ9TSxoLl9fbj1pLHY9aC5fX2Q9ITAsaC5fX2g9W10saC5fc2I9W10pLHgmJm51bGw9PWguX19zJiYoaC5fX3M9aC5zdGF0ZSkseCYmbnVsbCE9VC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMmJihoLl9fcz09aC5zdGF0ZSYmKGguX19zPWQoe30saC5fX3MpKSxkKGguX19zLFQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG0saC5fX3MpKSkscD1oLnByb3BzLHc9aC5zdGF0ZSxoLl9fdj11LHYpeCYmbnVsbD09VC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMmJm51bGwhPWguY29tcG9uZW50V2lsbE1vdW50JiZoLmNvbXBvbmVudFdpbGxNb3VudCgpLHgmJm51bGwhPWguY29tcG9uZW50RGlkTW91bnQmJmguX19oLnB1c2goaC5jb21wb25lbnREaWRNb3VudCk7ZWxzZXtpZih4JiZudWxsPT1ULmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyYmbSE9PXAmJm51bGwhPWguY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmaC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG0sTSksIWguX19lJiYobnVsbCE9aC5zaG91bGRDb21wb25lbnRVcGRhdGUmJiExPT09aC5zaG91bGRDb21wb25lbnRVcGRhdGUobSxoLl9fcyxNKXx8dS5fX3Y9PT10Ll9fdikpe2Zvcih1Ll9fdiE9PXQuX192JiYoaC5wcm9wcz1tLGguc3RhdGU9aC5fX3MsaC5fX2Q9ITEpLHUuX19lPXQuX19lLHUuX19rPXQuX19rLHUuX19rLnNvbWUoZnVuY3Rpb24obil7biYmKG4uX189dSl9KSxQPTA7UDxoLl9zYi5sZW5ndGg7UCsrKWguX19oLnB1c2goaC5fc2JbUF0pO2guX3NiPVtdLGguX19oLmxlbmd0aCYmZi5wdXNoKGgpO2JyZWFrIG59bnVsbCE9aC5jb21wb25lbnRXaWxsVXBkYXRlJiZoLmNvbXBvbmVudFdpbGxVcGRhdGUobSxoLl9fcyxNKSx4JiZudWxsIT1oLmNvbXBvbmVudERpZFVwZGF0ZSYmaC5fX2gucHVzaChmdW5jdGlvbigpe2guY29tcG9uZW50RGlkVXBkYXRlKHAsdyxfKX0pfWlmKGguY29udGV4dD1NLGgucHJvcHM9bSxoLl9fUD1uLGguX19lPSExLCQ9bC5fX3IsST0wLHgpe2ZvcihoLnN0YXRlPWguX19zLGguX19kPSExLCQmJiQodSksYT1oLnJlbmRlcihoLnByb3BzLGguc3RhdGUsaC5jb250ZXh0KSxIPTA7SDxoLl9zYi5sZW5ndGg7SCsrKWguX19oLnB1c2goaC5fc2JbSF0pO2guX3NiPVtdfWVsc2UgZG97aC5fX2Q9ITEsJCYmJCh1KSxhPWgucmVuZGVyKGgucHJvcHMsaC5zdGF0ZSxoLmNvbnRleHQpLGguc3RhdGU9aC5fX3N9d2hpbGUoaC5fX2QmJisrSTwyNSk7aC5zdGF0ZT1oLl9fcyxudWxsIT1oLmdldENoaWxkQ29udGV4dCYmKGk9ZChkKHt9LGkpLGguZ2V0Q2hpbGRDb250ZXh0KCkpKSx4JiYhdiYmbnVsbCE9aC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSYmKF89aC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShwLHcpKSxTKG4seShMPW51bGwhPWEmJmEudHlwZT09PWImJm51bGw9PWEua2V5P2EucHJvcHMuY2hpbGRyZW46YSk/TDpbTF0sdSx0LGksbyxyLGYsZSxjLHMpLGguYmFzZT11Ll9fZSx1Ll9fdSY9LTE2MSxoLl9faC5sZW5ndGgmJmYucHVzaChoKSxnJiYoaC5fX0U9aC5fXz1udWxsKX1jYXRjaChuKXtpZih1Ll9fdj1udWxsLGN8fG51bGwhPXIpe2Zvcih1Ll9fdXw9Yz8xNjA6MzI7ZSYmOD09PWUubm9kZVR5cGUmJmUubmV4dFNpYmxpbmc7KWU9ZS5uZXh0U2libGluZztyW3IuaW5kZXhPZihlKV09bnVsbCx1Ll9fZT1lfWVsc2UgdS5fX2U9dC5fX2UsdS5fX2s9dC5fX2s7bC5fX2Uobix1LHQpfWVsc2UgbnVsbD09ciYmdS5fX3Y9PT10Ll9fdj8odS5fX2s9dC5fX2ssdS5fX2U9dC5fX2UpOnUuX19lPXoodC5fX2UsdSx0LGksbyxyLGYsYyxzKTsoYT1sLmRpZmZlZCkmJmEodSl9ZnVuY3Rpb24gaihuLHUsdCl7dS5fX2Q9dm9pZCAwO2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKU4odFtpXSx0WysraV0sdFsrK2ldKTtsLl9fYyYmbC5fX2ModSxuKSxuLnNvbWUoZnVuY3Rpb24odSl7dHJ5e249dS5fX2gsdS5fX2g9W10sbi5zb21lKGZ1bmN0aW9uKG4pe24uY2FsbCh1KX0pfWNhdGNoKG4pe2wuX19lKG4sdS5fX3YpfX0pfWZ1bmN0aW9uIHoodSx0LGksbyxyLGYsZSxjLHMpe3ZhciBhLHYscCxkLF8sZyxtLGI9aS5wcm9wcyxrPXQucHJvcHMsQz10LnR5cGU7aWYoXCJzdmdcIj09PUM/cj1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI6XCJtYXRoXCI9PT1DP3I9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCI6cnx8KHI9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCIpLG51bGwhPWYpZm9yKGE9MDthPGYubGVuZ3RoO2ErKylpZigoXz1mW2FdKSYmXCJzZXRBdHRyaWJ1dGVcImluIF89PSEhQyYmKEM/Xy5sb2NhbE5hbWU9PT1DOjM9PT1fLm5vZGVUeXBlKSl7dT1fLGZbYV09bnVsbDticmVha31pZihudWxsPT11KXtpZihudWxsPT09QylyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoayk7dT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMocixDLGsuaXMmJmspLGMmJihsLl9fbSYmbC5fX20odCxmKSxjPSExKSxmPW51bGx9aWYobnVsbD09PUMpYj09PWt8fGMmJnUuZGF0YT09PWt8fCh1LmRhdGE9ayk7ZWxzZXtpZihmPWYmJm4uY2FsbCh1LmNoaWxkTm9kZXMpLGI9aS5wcm9wc3x8aCwhYyYmbnVsbCE9Zilmb3IoYj17fSxhPTA7YTx1LmF0dHJpYnV0ZXMubGVuZ3RoO2ErKyliWyhfPXUuYXR0cmlidXRlc1thXSkubmFtZV09Xy52YWx1ZTtmb3IoYSBpbiBiKWlmKF89YlthXSxcImNoaWxkcmVuXCI9PWEpO2Vsc2UgaWYoXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT1hKXA9XztlbHNlIGlmKCEoYSBpbiBrKSl7aWYoXCJ2YWx1ZVwiPT1hJiZcImRlZmF1bHRWYWx1ZVwiaW4ga3x8XCJjaGVja2VkXCI9PWEmJlwiZGVmYXVsdENoZWNrZWRcImluIGspY29udGludWU7QSh1LGEsbnVsbCxfLHIpfWZvcihhIGluIGspXz1rW2FdLFwiY2hpbGRyZW5cIj09YT9kPV86XCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT1hP3Y9XzpcInZhbHVlXCI9PWE/Zz1fOlwiY2hlY2tlZFwiPT1hP209XzpjJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBffHxiW2FdPT09X3x8QSh1LGEsXyxiW2FdLHIpO2lmKHYpY3x8cCYmKHYuX19odG1sPT09cC5fX2h0bWx8fHYuX19odG1sPT09dS5pbm5lckhUTUwpfHwodS5pbm5lckhUTUw9di5fX2h0bWwpLHQuX19rPVtdO2Vsc2UgaWYocCYmKHUuaW5uZXJIVE1MPVwiXCIpLFModSx5KGQpP2Q6W2RdLHQsaSxvLFwiZm9yZWlnbk9iamVjdFwiPT09Qz9cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIjpyLGYsZSxmP2ZbMF06aS5fX2smJngoaSwwKSxjLHMpLG51bGwhPWYpZm9yKGE9Zi5sZW5ndGg7YS0tOyl3KGZbYV0pO2N8fChhPVwidmFsdWVcIixcInByb2dyZXNzXCI9PT1DJiZudWxsPT1nP3UucmVtb3ZlQXR0cmlidXRlKFwidmFsdWVcIik6dm9pZCAwIT09ZyYmKGchPT11W2FdfHxcInByb2dyZXNzXCI9PT1DJiYhZ3x8XCJvcHRpb25cIj09PUMmJmchPT1iW2FdKSYmQSh1LGEsZyxiW2FdLHIpLGE9XCJjaGVja2VkXCIsdm9pZCAwIT09bSYmbSE9PXVbYV0mJkEodSxhLG0sYlthXSxyKSl9cmV0dXJuIHV9ZnVuY3Rpb24gTihuLHUsdCl7dHJ5e2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4pe3ZhciBpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4uX191O2kmJm4uX191KCksaSYmbnVsbD09dXx8KG4uX191PW4odSkpfWVsc2Ugbi5jdXJyZW50PXV9Y2F0Y2gobil7bC5fX2Uobix0KX19ZnVuY3Rpb24gVihuLHUsdCl7dmFyIGksbztpZihsLnVubW91bnQmJmwudW5tb3VudChuKSwoaT1uLnJlZikmJihpLmN1cnJlbnQmJmkuY3VycmVudCE9PW4uX19lfHxOKGksbnVsbCx1KSksbnVsbCE9KGk9bi5fX2MpKXtpZihpLmNvbXBvbmVudFdpbGxVbm1vdW50KXRyeXtpLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2gobil7bC5fX2Uobix1KX1pLmJhc2U9aS5fX1A9bnVsbH1pZihpPW4uX19rKWZvcihvPTA7bzxpLmxlbmd0aDtvKyspaVtvXSYmVihpW29dLHUsdHx8XCJmdW5jdGlvblwiIT10eXBlb2Ygbi50eXBlKTt0fHx3KG4uX19lKSxuLl9fYz1uLl9fPW4uX19lPW4uX19kPXZvaWQgMH1mdW5jdGlvbiBxKG4sbCx1KXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3RvcihuLHUpfWZ1bmN0aW9uIEIodSx0LGkpe3ZhciBvLHIsZixlO2wuX18mJmwuX18odSx0KSxyPShvPVwiZnVuY3Rpb25cIj09dHlwZW9mIGkpP251bGw6aSYmaS5fX2t8fHQuX19rLGY9W10sZT1bXSxPKHQsdT0oIW8mJml8fHQpLl9faz1fKGIsbnVsbCxbdV0pLHJ8fGgsaCx0Lm5hbWVzcGFjZVVSSSwhbyYmaT9baV06cj9udWxsOnQuZmlyc3RDaGlsZD9uLmNhbGwodC5jaGlsZE5vZGVzKTpudWxsLGYsIW8mJmk/aTpyP3IuX19lOnQuZmlyc3RDaGlsZCxvLGUpLGooZix1LGUpfWZ1bmN0aW9uIEQobixsKXtCKG4sbCxEKX1mdW5jdGlvbiBFKGwsdSx0KXt2YXIgaSxvLHIsZixlPWQoe30sbC5wcm9wcyk7Zm9yKHIgaW4gbC50eXBlJiZsLnR5cGUuZGVmYXVsdFByb3BzJiYoZj1sLnR5cGUuZGVmYXVsdFByb3BzKSx1KVwia2V5XCI9PXI/aT11W3JdOlwicmVmXCI9PXI/bz11W3JdOmVbcl09dm9pZCAwPT09dVtyXSYmdm9pZCAwIT09Zj9mW3JdOnVbcl07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MiYmKGUuY2hpbGRyZW49YXJndW1lbnRzLmxlbmd0aD4zP24uY2FsbChhcmd1bWVudHMsMik6dCksZyhsLnR5cGUsZSxpfHxsLmtleSxvfHxsLnJlZixudWxsKX1mdW5jdGlvbiBHKG4sbCl7dmFyIHU9e19fYzpsPVwiX19jQ1wiK2ErKyxfXzpuLENvbnN1bWVyOmZ1bmN0aW9uKG4sbCl7cmV0dXJuIG4uY2hpbGRyZW4obCl9LFByb3ZpZGVyOmZ1bmN0aW9uKG4pe3ZhciB1LHQ7cmV0dXJuIHRoaXMuZ2V0Q2hpbGRDb250ZXh0fHwodT1bXSwodD17fSlbbF09dGhpcyx0aGlzLmdldENoaWxkQ29udGV4dD1mdW5jdGlvbigpe3JldHVybiB0fSx0aGlzLmNvbXBvbmVudFdpbGxVbm1vdW50PWZ1bmN0aW9uKCl7dT1udWxsfSx0aGlzLnNob3VsZENvbXBvbmVudFVwZGF0ZT1mdW5jdGlvbihuKXt0aGlzLnByb3BzLnZhbHVlIT09bi52YWx1ZSYmdS5zb21lKGZ1bmN0aW9uKG4pe24uX19lPSEwLE0obil9KX0sdGhpcy5zdWI9ZnVuY3Rpb24obil7dS5wdXNoKG4pO3ZhciBsPW4uY29tcG9uZW50V2lsbFVubW91bnQ7bi5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe3UmJnUuc3BsaWNlKHUuaW5kZXhPZihuKSwxKSxsJiZsLmNhbGwobil9fSksbi5jaGlsZHJlbn19O3JldHVybiB1LlByb3ZpZGVyLl9fPXUuQ29uc3VtZXIuY29udGV4dFR5cGU9dX1uPXYuc2xpY2UsbD17X19lOmZ1bmN0aW9uKG4sbCx1LHQpe2Zvcih2YXIgaSxvLHI7bD1sLl9fOylpZigoaT1sLl9fYykmJiFpLl9fKXRyeXtpZigobz1pLmNvbnN0cnVjdG9yKSYmbnVsbCE9by5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3ImJihpLnNldFN0YXRlKG8uZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKG4pKSxyPWkuX19kKSxudWxsIT1pLmNvbXBvbmVudERpZENhdGNoJiYoaS5jb21wb25lbnREaWRDYXRjaChuLHR8fHt9KSxyPWkuX19kKSxyKXJldHVybiBpLl9fRT1pfWNhdGNoKGwpe249bH10aHJvdyBufX0sdT0wLHQ9ZnVuY3Rpb24obil7cmV0dXJuIG51bGwhPW4mJm51bGw9PW4uY29uc3RydWN0b3J9LGsucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKG4sbCl7dmFyIHU7dT1udWxsIT10aGlzLl9fcyYmdGhpcy5fX3MhPT10aGlzLnN0YXRlP3RoaXMuX19zOnRoaXMuX19zPWQoe30sdGhpcy5zdGF0ZSksXCJmdW5jdGlvblwiPT10eXBlb2YgbiYmKG49bihkKHt9LHUpLHRoaXMucHJvcHMpKSxuJiZkKHUsbiksbnVsbCE9biYmdGhpcy5fX3YmJihsJiZ0aGlzLl9zYi5wdXNoKGwpLE0odGhpcykpfSxrLnByb3RvdHlwZS5mb3JjZVVwZGF0ZT1mdW5jdGlvbihuKXt0aGlzLl9fdiYmKHRoaXMuX19lPSEwLG4mJnRoaXMuX19oLnB1c2gobiksTSh0aGlzKSl9LGsucHJvdG90eXBlLnJlbmRlcj1iLGk9W10scj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBQcm9taXNlP1Byb21pc2UucHJvdG90eXBlLnRoZW4uYmluZChQcm9taXNlLnJlc29sdmUoKSk6c2V0VGltZW91dCxmPWZ1bmN0aW9uKG4sbCl7cmV0dXJuIG4uX192Ll9fYi1sLl9fdi5fX2J9LFAuX19yPTAsZT0wLGM9RighMSkscz1GKCEwKSxhPTA7ZXhwb3J0e2sgYXMgQ29tcG9uZW50LGIgYXMgRnJhZ21lbnQsRSBhcyBjbG9uZUVsZW1lbnQsRyBhcyBjcmVhdGVDb250ZXh0LF8gYXMgY3JlYXRlRWxlbWVudCxtIGFzIGNyZWF0ZVJlZixfIGFzIGgsRCBhcyBoeWRyYXRlLHQgYXMgaXNWYWxpZEVsZW1lbnQsbCBhcyBvcHRpb25zLEIgYXMgcmVuZGVyLEggYXMgdG9DaGlsZEFycmF5fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByZWFjdC5tb2R1bGUuanMubWFwXG4iLCJpbXBvcnR7b3B0aW9ucyBhcyBufWZyb21cInByZWFjdFwiO3ZhciB0LHIsdSxpLG89MCxmPVtdLGM9bixlPWMuX19iLGE9Yy5fX3Isdj1jLmRpZmZlZCxsPWMuX19jLG09Yy51bm1vdW50LHM9Yy5fXztmdW5jdGlvbiBkKG4sdCl7Yy5fX2gmJmMuX19oKHIsbixvfHx0KSxvPTA7dmFyIHU9ci5fX0h8fChyLl9fSD17X186W10sX19oOltdfSk7cmV0dXJuIG4+PXUuX18ubGVuZ3RoJiZ1Ll9fLnB1c2goe30pLHUuX19bbl19ZnVuY3Rpb24gaChuKXtyZXR1cm4gbz0xLHAoRCxuKX1mdW5jdGlvbiBwKG4sdSxpKXt2YXIgbz1kKHQrKywyKTtpZihvLnQ9biwhby5fX2MmJihvLl9fPVtpP2kodSk6RCh2b2lkIDAsdSksZnVuY3Rpb24obil7dmFyIHQ9by5fX04/by5fX05bMF06by5fX1swXSxyPW8udCh0LG4pO3QhPT1yJiYoby5fX049W3Isby5fX1sxXV0sby5fX2Muc2V0U3RhdGUoe30pKX1dLG8uX19jPXIsIXIudSkpe3ZhciBmPWZ1bmN0aW9uKG4sdCxyKXtpZighby5fX2MuX19IKXJldHVybiEwO3ZhciB1PW8uX19jLl9fSC5fXy5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuISFuLl9fY30pO2lmKHUuZXZlcnkoZnVuY3Rpb24obil7cmV0dXJuIW4uX19OfSkpcmV0dXJuIWN8fGMuY2FsbCh0aGlzLG4sdCxyKTt2YXIgaT0hMTtyZXR1cm4gdS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lmKG4uX19OKXt2YXIgdD1uLl9fWzBdO24uX189bi5fX04sbi5fX049dm9pZCAwLHQhPT1uLl9fWzBdJiYoaT0hMCl9fSksISghaSYmby5fX2MucHJvcHM9PT1uKSYmKCFjfHxjLmNhbGwodGhpcyxuLHQscikpfTtyLnU9ITA7dmFyIGM9ci5zaG91bGRDb21wb25lbnRVcGRhdGUsZT1yLmNvbXBvbmVudFdpbGxVcGRhdGU7ci5jb21wb25lbnRXaWxsVXBkYXRlPWZ1bmN0aW9uKG4sdCxyKXtpZih0aGlzLl9fZSl7dmFyIHU9YztjPXZvaWQgMCxmKG4sdCxyKSxjPXV9ZSYmZS5jYWxsKHRoaXMsbix0LHIpfSxyLnNob3VsZENvbXBvbmVudFVwZGF0ZT1mfXJldHVybiBvLl9fTnx8by5fX31mdW5jdGlvbiB5KG4sdSl7dmFyIGk9ZCh0KyssMyk7IWMuX19zJiZDKGkuX19ILHUpJiYoaS5fXz1uLGkuaT11LHIuX19ILl9faC5wdXNoKGkpKX1mdW5jdGlvbiBfKG4sdSl7dmFyIGk9ZCh0KyssNCk7IWMuX19zJiZDKGkuX19ILHUpJiYoaS5fXz1uLGkuaT11LHIuX19oLnB1c2goaSkpfWZ1bmN0aW9uIEEobil7cmV0dXJuIG89NSxUKGZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bn19LFtdKX1mdW5jdGlvbiBGKG4sdCxyKXtvPTYsXyhmdW5jdGlvbigpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIG4/KG4odCgpKSxmdW5jdGlvbigpe3JldHVybiBuKG51bGwpfSk6bj8obi5jdXJyZW50PXQoKSxmdW5jdGlvbigpe3JldHVybiBuLmN1cnJlbnQ9bnVsbH0pOnZvaWQgMH0sbnVsbD09cj9yOnIuY29uY2F0KG4pKX1mdW5jdGlvbiBUKG4scil7dmFyIHU9ZCh0KyssNyk7cmV0dXJuIEModS5fX0gscikmJih1Ll9fPW4oKSx1Ll9fSD1yLHUuX19oPW4pLHUuX199ZnVuY3Rpb24gcShuLHQpe3JldHVybiBvPTgsVChmdW5jdGlvbigpe3JldHVybiBufSx0KX1mdW5jdGlvbiB4KG4pe3ZhciB1PXIuY29udGV4dFtuLl9fY10saT1kKHQrKyw5KTtyZXR1cm4gaS5jPW4sdT8obnVsbD09aS5fXyYmKGkuX189ITAsdS5zdWIocikpLHUucHJvcHMudmFsdWUpOm4uX199ZnVuY3Rpb24gUChuLHQpe2MudXNlRGVidWdWYWx1ZSYmYy51c2VEZWJ1Z1ZhbHVlKHQ/dChuKTpuKX1mdW5jdGlvbiBiKG4pe3ZhciB1PWQodCsrLDEwKSxpPWgoKTtyZXR1cm4gdS5fXz1uLHIuY29tcG9uZW50RGlkQ2F0Y2h8fChyLmNvbXBvbmVudERpZENhdGNoPWZ1bmN0aW9uKG4sdCl7dS5fXyYmdS5fXyhuLHQpLGlbMV0obil9KSxbaVswXSxmdW5jdGlvbigpe2lbMV0odm9pZCAwKX1dfWZ1bmN0aW9uIGcoKXt2YXIgbj1kKHQrKywxMSk7aWYoIW4uX18pe2Zvcih2YXIgdT1yLl9fdjtudWxsIT09dSYmIXUuX19tJiZudWxsIT09dS5fXzspdT11Ll9fO3ZhciBpPXUuX19tfHwodS5fX209WzAsMF0pO24uX189XCJQXCIraVswXStcIi1cIitpWzFdKyt9cmV0dXJuIG4uX199ZnVuY3Rpb24gaigpe2Zvcih2YXIgbjtuPWYuc2hpZnQoKTspaWYobi5fX1AmJm4uX19IKXRyeXtuLl9fSC5fX2guZm9yRWFjaCh6KSxuLl9fSC5fX2guZm9yRWFjaChCKSxuLl9fSC5fX2g9W119Y2F0Y2godCl7bi5fX0guX19oPVtdLGMuX19lKHQsbi5fX3YpfX1jLl9fYj1mdW5jdGlvbihuKXtyPW51bGwsZSYmZShuKX0sYy5fXz1mdW5jdGlvbihuLHQpe24mJnQuX19rJiZ0Ll9fay5fX20mJihuLl9fbT10Ll9fay5fX20pLHMmJnMobix0KX0sYy5fX3I9ZnVuY3Rpb24obil7YSYmYShuKSx0PTA7dmFyIGk9KHI9bi5fX2MpLl9fSDtpJiYodT09PXI/KGkuX19oPVtdLHIuX19oPVtdLGkuX18uZm9yRWFjaChmdW5jdGlvbihuKXtuLl9fTiYmKG4uX189bi5fX04pLG4uaT1uLl9fTj12b2lkIDB9KSk6KGkuX19oLmZvckVhY2goeiksaS5fX2guZm9yRWFjaChCKSxpLl9faD1bXSx0PTApKSx1PXJ9LGMuZGlmZmVkPWZ1bmN0aW9uKG4pe3YmJnYobik7dmFyIHQ9bi5fX2M7dCYmdC5fX0gmJih0Ll9fSC5fX2gubGVuZ3RoJiYoMSE9PWYucHVzaCh0KSYmaT09PWMucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHwoKGk9Yy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpfHx3KShqKSksdC5fX0guX18uZm9yRWFjaChmdW5jdGlvbihuKXtuLmkmJihuLl9fSD1uLmkpLG4uaT12b2lkIDB9KSksdT1yPW51bGx9LGMuX19jPWZ1bmN0aW9uKG4sdCl7dC5zb21lKGZ1bmN0aW9uKG4pe3RyeXtuLl9faC5mb3JFYWNoKHopLG4uX19oPW4uX19oLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4hbi5fX3x8QihuKX0pfWNhdGNoKHIpe3Quc29tZShmdW5jdGlvbihuKXtuLl9faCYmKG4uX19oPVtdKX0pLHQ9W10sYy5fX2UocixuLl9fdil9fSksbCYmbChuLHQpfSxjLnVubW91bnQ9ZnVuY3Rpb24obil7bSYmbShuKTt2YXIgdCxyPW4uX19jO3ImJnIuX19IJiYoci5fX0guX18uZm9yRWFjaChmdW5jdGlvbihuKXt0cnl7eihuKX1jYXRjaChuKXt0PW59fSksci5fX0g9dm9pZCAwLHQmJmMuX19lKHQsci5fX3YpKX07dmFyIGs9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lO2Z1bmN0aW9uIHcobil7dmFyIHQscj1mdW5jdGlvbigpe2NsZWFyVGltZW91dCh1KSxrJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0KSxzZXRUaW1lb3V0KG4pfSx1PXNldFRpbWVvdXQociwxMDApO2smJih0PXJlcXVlc3RBbmltYXRpb25GcmFtZShyKSl9ZnVuY3Rpb24geihuKXt2YXIgdD1yLHU9bi5fX2M7XCJmdW5jdGlvblwiPT10eXBlb2YgdSYmKG4uX19jPXZvaWQgMCx1KCkpLHI9dH1mdW5jdGlvbiBCKG4pe3ZhciB0PXI7bi5fX2M9bi5fXygpLHI9dH1mdW5jdGlvbiBDKG4sdCl7cmV0dXJuIW58fG4ubGVuZ3RoIT09dC5sZW5ndGh8fHQuc29tZShmdW5jdGlvbih0LHIpe3JldHVybiB0IT09bltyXX0pfWZ1bmN0aW9uIEQobix0KXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Qobik6dH1leHBvcnR7cSBhcyB1c2VDYWxsYmFjayx4IGFzIHVzZUNvbnRleHQsUCBhcyB1c2VEZWJ1Z1ZhbHVlLHkgYXMgdXNlRWZmZWN0LGIgYXMgdXNlRXJyb3JCb3VuZGFyeSxnIGFzIHVzZUlkLEYgYXMgdXNlSW1wZXJhdGl2ZUhhbmRsZSxfIGFzIHVzZUxheW91dEVmZmVjdCxUIGFzIHVzZU1lbW8scCBhcyB1c2VSZWR1Y2VyLEEgYXMgdXNlUmVmLGggYXMgdXNlU3RhdGV9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aG9va3MubW9kdWxlLmpzLm1hcFxuIiwiaW1wb3J0e0NvbXBvbmVudCBhcyBuLGNyZWF0ZUVsZW1lbnQgYXMgdCxvcHRpb25zIGFzIGUsdG9DaGlsZEFycmF5IGFzIHIsRnJhZ21lbnQgYXMgdSxyZW5kZXIgYXMgbyxoeWRyYXRlIGFzIGksY3JlYXRlQ29udGV4dCBhcyBjLGNyZWF0ZVJlZiBhcyBsLGNsb25lRWxlbWVudCBhcyBmfWZyb21cInByZWFjdFwiO2V4cG9ydHtDb21wb25lbnQsRnJhZ21lbnQsY3JlYXRlQ29udGV4dCxjcmVhdGVFbGVtZW50LGNyZWF0ZVJlZn1mcm9tXCJwcmVhY3RcIjtpbXBvcnR7dXNlQ2FsbGJhY2sgYXMgYSx1c2VDb250ZXh0IGFzIHMsdXNlRGVidWdWYWx1ZSBhcyBoLHVzZUVmZmVjdCBhcyB2LHVzZUlkIGFzIGQsdXNlSW1wZXJhdGl2ZUhhbmRsZSBhcyBwLHVzZUxheW91dEVmZmVjdCBhcyBtLHVzZU1lbW8gYXMgeSx1c2VSZWR1Y2VyIGFzIF8sdXNlUmVmIGFzIGIsdXNlU3RhdGUgYXMgU31mcm9tXCJwcmVhY3QvaG9va3NcIjtleHBvcnQqZnJvbVwicHJlYWN0L2hvb2tzXCI7ZnVuY3Rpb24gZyhuLHQpe2Zvcih2YXIgZSBpbiB0KW5bZV09dFtlXTtyZXR1cm4gbn1mdW5jdGlvbiBFKG4sdCl7Zm9yKHZhciBlIGluIG4paWYoXCJfX3NvdXJjZVwiIT09ZSYmIShlIGluIHQpKXJldHVybiEwO2Zvcih2YXIgciBpbiB0KWlmKFwiX19zb3VyY2VcIiE9PXImJm5bcl0hPT10W3JdKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEMobix0KXt0aGlzLnByb3BzPW4sdGhpcy5jb250ZXh0PXR9ZnVuY3Rpb24geChuLGUpe2Z1bmN0aW9uIHIobil7dmFyIHQ9dGhpcy5wcm9wcy5yZWYscj10PT1uLnJlZjtyZXR1cm4hciYmdCYmKHQuY2FsbD90KG51bGwpOnQuY3VycmVudD1udWxsKSxlPyFlKHRoaXMucHJvcHMsbil8fCFyOkUodGhpcy5wcm9wcyxuKX1mdW5jdGlvbiB1KGUpe3JldHVybiB0aGlzLnNob3VsZENvbXBvbmVudFVwZGF0ZT1yLHQobixlKX1yZXR1cm4gdS5kaXNwbGF5TmFtZT1cIk1lbW8oXCIrKG4uZGlzcGxheU5hbWV8fG4ubmFtZSkrXCIpXCIsdS5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD0hMCx1Ll9fZj0hMCx1fShDLnByb3RvdHlwZT1uZXcgbikuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITAsQy5wcm90b3R5cGUuc2hvdWxkQ29tcG9uZW50VXBkYXRlPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIEUodGhpcy5wcm9wcyxuKXx8RSh0aGlzLnN0YXRlLHQpfTt2YXIgUj1lLl9fYjtlLl9fYj1mdW5jdGlvbihuKXtuLnR5cGUmJm4udHlwZS5fX2YmJm4ucmVmJiYobi5wcm9wcy5yZWY9bi5yZWYsbi5yZWY9bnVsbCksUiYmUihuKX07dmFyIHc9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvciYmU3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpfHwzOTExO2Z1bmN0aW9uIGsobil7ZnVuY3Rpb24gdCh0KXt2YXIgZT1nKHt9LHQpO3JldHVybiBkZWxldGUgZS5yZWYsbihlLHQucmVmfHxudWxsKX1yZXR1cm4gdC4kJHR5cGVvZj13LHQucmVuZGVyPXQsdC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD10Ll9fZj0hMCx0LmRpc3BsYXlOYW1lPVwiRm9yd2FyZFJlZihcIisobi5kaXNwbGF5TmFtZXx8bi5uYW1lKStcIilcIix0fXZhciBJPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIG51bGw9PW4/bnVsbDpyKHIobikubWFwKHQpKX0sTj17bWFwOkksZm9yRWFjaDpJLGNvdW50OmZ1bmN0aW9uKG4pe3JldHVybiBuP3IobikubGVuZ3RoOjB9LG9ubHk6ZnVuY3Rpb24obil7dmFyIHQ9cihuKTtpZigxIT09dC5sZW5ndGgpdGhyb3dcIkNoaWxkcmVuLm9ubHlcIjtyZXR1cm4gdFswXX0sdG9BcnJheTpyfSxNPWUuX19lO2UuX19lPWZ1bmN0aW9uKG4sdCxlLHIpe2lmKG4udGhlbilmb3IodmFyIHUsbz10O289by5fXzspaWYoKHU9by5fX2MpJiZ1Ll9fYylyZXR1cm4gbnVsbD09dC5fX2UmJih0Ll9fZT1lLl9fZSx0Ll9faz1lLl9fayksdS5fX2Mobix0KTtNKG4sdCxlLHIpfTt2YXIgVD1lLnVubW91bnQ7ZnVuY3Rpb24gQShuLHQsZSl7cmV0dXJuIG4mJihuLl9fYyYmbi5fX2MuX19IJiYobi5fX2MuX19ILl9fLmZvckVhY2goZnVuY3Rpb24obil7XCJmdW5jdGlvblwiPT10eXBlb2Ygbi5fX2MmJm4uX19jKCl9KSxuLl9fYy5fX0g9bnVsbCksbnVsbCE9KG49Zyh7fSxuKSkuX19jJiYobi5fX2MuX19QPT09ZSYmKG4uX19jLl9fUD10KSxuLl9fYz1udWxsKSxuLl9faz1uLl9fayYmbi5fX2subWFwKGZ1bmN0aW9uKG4pe3JldHVybiBBKG4sdCxlKX0pKSxufWZ1bmN0aW9uIEQobix0LGUpe3JldHVybiBuJiZlJiYobi5fX3Y9bnVsbCxuLl9faz1uLl9fayYmbi5fX2subWFwKGZ1bmN0aW9uKG4pe3JldHVybiBEKG4sdCxlKX0pLG4uX19jJiZuLl9fYy5fX1A9PT10JiYobi5fX2UmJmUuYXBwZW5kQ2hpbGQobi5fX2UpLG4uX19jLl9fZT0hMCxuLl9fYy5fX1A9ZSkpLG59ZnVuY3Rpb24gTCgpe3RoaXMuX191PTAsdGhpcy50PW51bGwsdGhpcy5fX2I9bnVsbH1mdW5jdGlvbiBPKG4pe3ZhciB0PW4uX18uX19jO3JldHVybiB0JiZ0Ll9fYSYmdC5fX2Eobil9ZnVuY3Rpb24gRihuKXt2YXIgZSxyLHU7ZnVuY3Rpb24gbyhvKXtpZihlfHwoZT1uKCkpLnRoZW4oZnVuY3Rpb24obil7cj1uLmRlZmF1bHR8fG59LGZ1bmN0aW9uKG4pe3U9bn0pLHUpdGhyb3cgdTtpZighcil0aHJvdyBlO3JldHVybiB0KHIsbyl9cmV0dXJuIG8uZGlzcGxheU5hbWU9XCJMYXp5XCIsby5fX2Y9ITAsb31mdW5jdGlvbiBVKCl7dGhpcy51PW51bGwsdGhpcy5vPW51bGx9ZS51bm1vdW50PWZ1bmN0aW9uKG4pe3ZhciB0PW4uX19jO3QmJnQuX19SJiZ0Ll9fUigpLHQmJjMyJm4uX191JiYobi50eXBlPW51bGwpLFQmJlQobil9LChMLnByb3RvdHlwZT1uZXcgbikuX19jPWZ1bmN0aW9uKG4sdCl7dmFyIGU9dC5fX2Mscj10aGlzO251bGw9PXIudCYmKHIudD1bXSksci50LnB1c2goZSk7dmFyIHU9TyhyLl9fdiksbz0hMSxpPWZ1bmN0aW9uKCl7b3x8KG89ITAsZS5fX1I9bnVsbCx1P3UoYyk6YygpKX07ZS5fX1I9aTt2YXIgYz1mdW5jdGlvbigpe2lmKCEtLXIuX191KXtpZihyLnN0YXRlLl9fYSl7dmFyIG49ci5zdGF0ZS5fX2E7ci5fX3YuX19rWzBdPUQobixuLl9fYy5fX1Asbi5fX2MuX19PKX12YXIgdDtmb3Ioci5zZXRTdGF0ZSh7X19hOnIuX19iPW51bGx9KTt0PXIudC5wb3AoKTspdC5mb3JjZVVwZGF0ZSgpfX07ci5fX3UrK3x8MzImdC5fX3V8fHIuc2V0U3RhdGUoe19fYTpyLl9fYj1yLl9fdi5fX2tbMF19KSxuLnRoZW4oaSxpKX0sTC5wcm90b3R5cGUuY29tcG9uZW50V2lsbFVubW91bnQ9ZnVuY3Rpb24oKXt0aGlzLnQ9W119LEwucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihuLGUpe2lmKHRoaXMuX19iKXtpZih0aGlzLl9fdi5fX2spe3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksbz10aGlzLl9fdi5fX2tbMF0uX19jO3RoaXMuX192Ll9fa1swXT1BKHRoaXMuX19iLHIsby5fX089by5fX1ApfXRoaXMuX19iPW51bGx9dmFyIGk9ZS5fX2EmJnQodSxudWxsLG4uZmFsbGJhY2spO3JldHVybiBpJiYoaS5fX3UmPS0zMyksW3QodSxudWxsLGUuX19hP251bGw6bi5jaGlsZHJlbiksaV19O3ZhciBWPWZ1bmN0aW9uKG4sdCxlKXtpZigrK2VbMV09PT1lWzBdJiZuLm8uZGVsZXRlKHQpLG4ucHJvcHMucmV2ZWFsT3JkZXImJihcInRcIiE9PW4ucHJvcHMucmV2ZWFsT3JkZXJbMF18fCFuLm8uc2l6ZSkpZm9yKGU9bi51O2U7KXtmb3IoO2UubGVuZ3RoPjM7KWUucG9wKCkoKTtpZihlWzFdPGVbMF0pYnJlYWs7bi51PWU9ZVsyXX19O2Z1bmN0aW9uIFcobil7cmV0dXJuIHRoaXMuZ2V0Q2hpbGRDb250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uY29udGV4dH0sbi5jaGlsZHJlbn1mdW5jdGlvbiBQKG4pe3ZhciBlPXRoaXMscj1uLmk7ZS5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe28obnVsbCxlLmwpLGUubD1udWxsLGUuaT1udWxsfSxlLmkmJmUuaSE9PXImJmUuY29tcG9uZW50V2lsbFVubW91bnQoKSxlLmx8fChlLmk9cixlLmw9e25vZGVUeXBlOjEscGFyZW50Tm9kZTpyLGNoaWxkTm9kZXM6W10sY29udGFpbnM6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24obil7dGhpcy5jaGlsZE5vZGVzLnB1c2gobiksZS5pLmFwcGVuZENoaWxkKG4pfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24obix0KXt0aGlzLmNoaWxkTm9kZXMucHVzaChuKSxlLmkuYXBwZW5kQ2hpbGQobil9LHJlbW92ZUNoaWxkOmZ1bmN0aW9uKG4pe3RoaXMuY2hpbGROb2Rlcy5zcGxpY2UodGhpcy5jaGlsZE5vZGVzLmluZGV4T2Yobik+Pj4xLDEpLGUuaS5yZW1vdmVDaGlsZChuKX19KSxvKHQoVyx7Y29udGV4dDplLmNvbnRleHR9LG4uX192KSxlLmwpfWZ1bmN0aW9uIGoobixlKXt2YXIgcj10KFAse19fdjpuLGk6ZX0pO3JldHVybiByLmNvbnRhaW5lckluZm89ZSxyfShVLnByb3RvdHlwZT1uZXcgbikuX19hPWZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMsZT1PKHQuX192KSxyPXQuby5nZXQobik7cmV0dXJuIHJbMF0rKyxmdW5jdGlvbih1KXt2YXIgbz1mdW5jdGlvbigpe3QucHJvcHMucmV2ZWFsT3JkZXI/KHIucHVzaCh1KSxWKHQsbixyKSk6dSgpfTtlP2Uobyk6bygpfX0sVS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKG4pe3RoaXMudT1udWxsLHRoaXMubz1uZXcgTWFwO3ZhciB0PXIobi5jaGlsZHJlbik7bi5yZXZlYWxPcmRlciYmXCJiXCI9PT1uLnJldmVhbE9yZGVyWzBdJiZ0LnJldmVyc2UoKTtmb3IodmFyIGU9dC5sZW5ndGg7ZS0tOyl0aGlzLm8uc2V0KHRbZV0sdGhpcy51PVsxLDAsdGhpcy51XSk7cmV0dXJuIG4uY2hpbGRyZW59LFUucHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZT1VLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudD1mdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5vLmZvckVhY2goZnVuY3Rpb24odCxlKXtWKG4sZSx0KX0pfTt2YXIgej1cInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuZm9yJiZTeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKXx8NjAxMDMsQj0vXig/OmFjY2VudHxhbGlnbm1lbnR8YXJhYmljfGJhc2VsaW5lfGNhcHxjbGlwKD8hUGF0aFUpfGNvbG9yfGRvbWluYW50fGZpbGx8Zmxvb2R8Zm9udHxnbHlwaCg/IVIpfGhvcml6fGltYWdlKCFTKXxsZXR0ZXJ8bGlnaHRpbmd8bWFya2VyKD8hSHxXfFUpfG92ZXJsaW5lfHBhaW50fHBvaW50ZXJ8c2hhcGV8c3RvcHxzdHJpa2V0aHJvdWdofHN0cm9rZXx0ZXh0KD8hTCl8dHJhbnNmb3JtfHVuZGVybGluZXx1bmljb2RlfHVuaXRzfHZ8dmVjdG9yfHZlcnR8d29yZHx3cml0aW5nfHgoPyFDKSlbQS1aXS8sSD0vXm9uKEFuaXxUcmF8VG91fEJlZm9yZUlucHxDb21wbykvLFo9L1tBLVowLTldL2csWT1cInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQsJD1mdW5jdGlvbihuKXtyZXR1cm4oXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbCgpPy9maWx8Y2hlfHJhZC86L2ZpbHxjaGV8cmEvKS50ZXN0KG4pfTtmdW5jdGlvbiBxKG4sdCxlKXtyZXR1cm4gbnVsbD09dC5fX2smJih0LnRleHRDb250ZW50PVwiXCIpLG8obix0KSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiZlKCksbj9uLl9fYzpudWxsfWZ1bmN0aW9uIEcobix0LGUpe3JldHVybiBpKG4sdCksXCJmdW5jdGlvblwiPT10eXBlb2YgZSYmZSgpLG4/bi5fX2M6bnVsbH1uLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LFtcImNvbXBvbmVudFdpbGxNb3VudFwiLFwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1wiLFwiY29tcG9uZW50V2lsbFVwZGF0ZVwiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSx0LHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbXCJVTlNBRkVfXCIrdF19LHNldDpmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyx0LHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pfX0pfSk7dmFyIEo9ZS5ldmVudDtmdW5jdGlvbiBLKCl7fWZ1bmN0aW9uIFEoKXtyZXR1cm4gdGhpcy5jYW5jZWxCdWJibGV9ZnVuY3Rpb24gWCgpe3JldHVybiB0aGlzLmRlZmF1bHRQcmV2ZW50ZWR9ZS5ldmVudD1mdW5jdGlvbihuKXtyZXR1cm4gSiYmKG49SihuKSksbi5wZXJzaXN0PUssbi5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1RLG4uaXNEZWZhdWx0UHJldmVudGVkPVgsbi5uYXRpdmVFdmVudD1ufTt2YXIgbm4sdG49e2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNsYXNzfX0sZW49ZS52bm9kZTtlLnZub2RlPWZ1bmN0aW9uKG4pe1wic3RyaW5nXCI9PXR5cGVvZiBuLnR5cGUmJmZ1bmN0aW9uKG4pe3ZhciB0PW4ucHJvcHMsZT1uLnR5cGUsdT17fSxvPS0xPT09ZS5pbmRleE9mKFwiLVwiKTtmb3IodmFyIGkgaW4gdCl7dmFyIGM9dFtpXTtpZighKFwidmFsdWVcIj09PWkmJlwiZGVmYXVsdFZhbHVlXCJpbiB0JiZudWxsPT1jfHxZJiZcImNoaWxkcmVuXCI9PT1pJiZcIm5vc2NyaXB0XCI9PT1lfHxcImNsYXNzXCI9PT1pfHxcImNsYXNzTmFtZVwiPT09aSkpe3ZhciBsPWkudG9Mb3dlckNhc2UoKTtcImRlZmF1bHRWYWx1ZVwiPT09aSYmXCJ2YWx1ZVwiaW4gdCYmbnVsbD09dC52YWx1ZT9pPVwidmFsdWVcIjpcImRvd25sb2FkXCI9PT1pJiYhMD09PWM/Yz1cIlwiOlwidHJhbnNsYXRlXCI9PT1sJiZcIm5vXCI9PT1jP2M9ITE6XCJvXCI9PT1sWzBdJiZcIm5cIj09PWxbMV0/XCJvbmRvdWJsZWNsaWNrXCI9PT1sP2k9XCJvbmRibGNsaWNrXCI6XCJvbmNoYW5nZVwiIT09bHx8XCJpbnB1dFwiIT09ZSYmXCJ0ZXh0YXJlYVwiIT09ZXx8JCh0LnR5cGUpP1wib25mb2N1c1wiPT09bD9pPVwib25mb2N1c2luXCI6XCJvbmJsdXJcIj09PWw/aT1cIm9uZm9jdXNvdXRcIjpILnRlc3QoaSkmJihpPWwpOmw9aT1cIm9uaW5wdXRcIjpvJiZCLnRlc3QoaSk/aT1pLnJlcGxhY2UoWixcIi0kJlwiKS50b0xvd2VyQ2FzZSgpOm51bGw9PT1jJiYoYz12b2lkIDApLFwib25pbnB1dFwiPT09bCYmdVtpPWxdJiYoaT1cIm9uaW5wdXRDYXB0dXJlXCIpLHVbaV09Y319XCJzZWxlY3RcIj09ZSYmdS5tdWx0aXBsZSYmQXJyYXkuaXNBcnJheSh1LnZhbHVlKSYmKHUudmFsdWU9cih0LmNoaWxkcmVuKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24ucHJvcHMuc2VsZWN0ZWQ9LTEhPXUudmFsdWUuaW5kZXhPZihuLnByb3BzLnZhbHVlKX0pKSxcInNlbGVjdFwiPT1lJiZudWxsIT11LmRlZmF1bHRWYWx1ZSYmKHUudmFsdWU9cih0LmNoaWxkcmVuKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24ucHJvcHMuc2VsZWN0ZWQ9dS5tdWx0aXBsZT8tMSE9dS5kZWZhdWx0VmFsdWUuaW5kZXhPZihuLnByb3BzLnZhbHVlKTp1LmRlZmF1bHRWYWx1ZT09bi5wcm9wcy52YWx1ZX0pKSx0LmNsYXNzJiYhdC5jbGFzc05hbWU/KHUuY2xhc3M9dC5jbGFzcyxPYmplY3QuZGVmaW5lUHJvcGVydHkodSxcImNsYXNzTmFtZVwiLHRuKSk6KHQuY2xhc3NOYW1lJiYhdC5jbGFzc3x8dC5jbGFzcyYmdC5jbGFzc05hbWUpJiYodS5jbGFzcz11LmNsYXNzTmFtZT10LmNsYXNzTmFtZSksbi5wcm9wcz11fShuKSxuLiQkdHlwZW9mPXosZW4mJmVuKG4pfTt2YXIgcm49ZS5fX3I7ZS5fX3I9ZnVuY3Rpb24obil7cm4mJnJuKG4pLG5uPW4uX19jfTt2YXIgdW49ZS5kaWZmZWQ7ZS5kaWZmZWQ9ZnVuY3Rpb24obil7dW4mJnVuKG4pO3ZhciB0PW4ucHJvcHMsZT1uLl9fZTtudWxsIT1lJiZcInRleHRhcmVhXCI9PT1uLnR5cGUmJlwidmFsdWVcImluIHQmJnQudmFsdWUhPT1lLnZhbHVlJiYoZS52YWx1ZT1udWxsPT10LnZhbHVlP1wiXCI6dC52YWx1ZSksbm49bnVsbH07dmFyIG9uPXtSZWFjdEN1cnJlbnREaXNwYXRjaGVyOntjdXJyZW50OntyZWFkQ29udGV4dDpmdW5jdGlvbihuKXtyZXR1cm4gbm4uX19uW24uX19jXS5wcm9wcy52YWx1ZX0sdXNlQ2FsbGJhY2s6YSx1c2VDb250ZXh0OnMsdXNlRGVidWdWYWx1ZTpoLHVzZURlZmVycmVkVmFsdWU6Ym4sdXNlRWZmZWN0OnYsdXNlSWQ6ZCx1c2VJbXBlcmF0aXZlSGFuZGxlOnAsdXNlSW5zZXJ0aW9uRWZmZWN0OmduLHVzZUxheW91dEVmZmVjdDptLHVzZU1lbW86eSx1c2VSZWR1Y2VyOl8sdXNlUmVmOmIsdXNlU3RhdGU6Uyx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpDbix1c2VUcmFuc2l0aW9uOlNufX19LGNuPVwiMTguMy4xXCI7ZnVuY3Rpb24gbG4obil7cmV0dXJuIHQuYmluZChudWxsLG4pfWZ1bmN0aW9uIGZuKG4pe3JldHVybiEhbiYmbi4kJHR5cGVvZj09PXp9ZnVuY3Rpb24gYW4obil7cmV0dXJuIGZuKG4pJiZuLnR5cGU9PT11fWZ1bmN0aW9uIHNuKG4pe3JldHVybiEhbiYmISFuLmRpc3BsYXlOYW1lJiYoXCJzdHJpbmdcIj09dHlwZW9mIG4uZGlzcGxheU5hbWV8fG4uZGlzcGxheU5hbWUgaW5zdGFuY2VvZiBTdHJpbmcpJiZuLmRpc3BsYXlOYW1lLnN0YXJ0c1dpdGgoXCJNZW1vKFwiKX1mdW5jdGlvbiBobihuKXtyZXR1cm4gZm4obik/Zi5hcHBseShudWxsLGFyZ3VtZW50cyk6bn1mdW5jdGlvbiB2bihuKXtyZXR1cm4hIW4uX19rJiYobyhudWxsLG4pLCEwKX1mdW5jdGlvbiBkbihuKXtyZXR1cm4gbiYmKG4uYmFzZXx8MT09PW4ubm9kZVR5cGUmJm4pfHxudWxsfXZhciBwbj1mdW5jdGlvbihuLHQpe3JldHVybiBuKHQpfSxtbj1mdW5jdGlvbihuLHQpe3JldHVybiBuKHQpfSx5bj11O2Z1bmN0aW9uIF9uKG4pe24oKX1mdW5jdGlvbiBibihuKXtyZXR1cm4gbn1mdW5jdGlvbiBTbigpe3JldHVyblshMSxfbl19dmFyIGduPW0sRW49Zm47ZnVuY3Rpb24gQ24obix0KXt2YXIgZT10KCkscj1TKHtoOntfXzplLHY6dH19KSx1PXJbMF0uaCxvPXJbMV07cmV0dXJuIG0oZnVuY3Rpb24oKXt1Ll9fPWUsdS52PXQseG4odSkmJm8oe2g6dX0pfSxbbixlLHRdKSx2KGZ1bmN0aW9uKCl7cmV0dXJuIHhuKHUpJiZvKHtoOnV9KSxuKGZ1bmN0aW9uKCl7eG4odSkmJm8oe2g6dX0pfSl9LFtuXSksZX1mdW5jdGlvbiB4bihuKXt2YXIgdCxlLHI9bi52LHU9bi5fXzt0cnl7dmFyIG89cigpO3JldHVybiEoKHQ9dSk9PT0oZT1vKSYmKDAhPT10fHwxL3Q9PTEvZSl8fHQhPXQmJmUhPWUpfWNhdGNoKG4pe3JldHVybiEwfX12YXIgUm49e3VzZVN0YXRlOlMsdXNlSWQ6ZCx1c2VSZWR1Y2VyOl8sdXNlRWZmZWN0OnYsdXNlTGF5b3V0RWZmZWN0Om0sdXNlSW5zZXJ0aW9uRWZmZWN0OmduLHVzZVRyYW5zaXRpb246U24sdXNlRGVmZXJyZWRWYWx1ZTpibix1c2VTeW5jRXh0ZXJuYWxTdG9yZTpDbixzdGFydFRyYW5zaXRpb246X24sdXNlUmVmOmIsdXNlSW1wZXJhdGl2ZUhhbmRsZTpwLHVzZU1lbW86eSx1c2VDYWxsYmFjazphLHVzZUNvbnRleHQ6cyx1c2VEZWJ1Z1ZhbHVlOmgsdmVyc2lvbjpcIjE4LjMuMVwiLENoaWxkcmVuOk4scmVuZGVyOnEsaHlkcmF0ZTpHLHVubW91bnRDb21wb25lbnRBdE5vZGU6dm4sY3JlYXRlUG9ydGFsOmosY3JlYXRlRWxlbWVudDp0LGNyZWF0ZUNvbnRleHQ6YyxjcmVhdGVGYWN0b3J5OmxuLGNsb25lRWxlbWVudDpobixjcmVhdGVSZWY6bCxGcmFnbWVudDp1LGlzVmFsaWRFbGVtZW50OmZuLGlzRWxlbWVudDpFbixpc0ZyYWdtZW50OmFuLGlzTWVtbzpzbixmaW5kRE9NTm9kZTpkbixDb21wb25lbnQ6bixQdXJlQ29tcG9uZW50OkMsbWVtbzp4LGZvcndhcmRSZWY6ayxmbHVzaFN5bmM6bW4sdW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXM6cG4sU3RyaWN0TW9kZTp5bixTdXNwZW5zZTpMLFN1c3BlbnNlTGlzdDpVLGxhenk6RixfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDpvbn07ZXhwb3J0e04gYXMgQ2hpbGRyZW4sQyBhcyBQdXJlQ29tcG9uZW50LHluIGFzIFN0cmljdE1vZGUsTCBhcyBTdXNwZW5zZSxVIGFzIFN1c3BlbnNlTGlzdCxvbiBhcyBfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCxobiBhcyBjbG9uZUVsZW1lbnQsbG4gYXMgY3JlYXRlRmFjdG9yeSxqIGFzIGNyZWF0ZVBvcnRhbCxSbiBhcyBkZWZhdWx0LGRuIGFzIGZpbmRET01Ob2RlLG1uIGFzIGZsdXNoU3luYyxrIGFzIGZvcndhcmRSZWYsRyBhcyBoeWRyYXRlLEVuIGFzIGlzRWxlbWVudCxhbiBhcyBpc0ZyYWdtZW50LHNuIGFzIGlzTWVtbyxmbiBhcyBpc1ZhbGlkRWxlbWVudCxGIGFzIGxhenkseCBhcyBtZW1vLHEgYXMgcmVuZGVyLF9uIGFzIHN0YXJ0VHJhbnNpdGlvbix2biBhcyB1bm1vdW50Q29tcG9uZW50QXROb2RlLHBuIGFzIHVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzLGJuIGFzIHVzZURlZmVycmVkVmFsdWUsZ24gYXMgdXNlSW5zZXJ0aW9uRWZmZWN0LENuIGFzIHVzZVN5bmNFeHRlcm5hbFN0b3JlLFNuIGFzIHVzZVRyYW5zaXRpb24sY24gYXMgdmVyc2lvbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb21wYXQubW9kdWxlLmpzLm1hcFxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///763\n')},313:(module,__unused_webpack_exports,__webpack_require__)=>{"use strict";eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = __webpack_require__(925);\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzEzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFFYiwyQkFBMkIsbUJBQU8sQ0FBQyxHQUE0Qjs7QUFFL0Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zLmpzP2Q3YTAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9IHJlcXVpcmUoJy4vbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0Jyk7XG5cbmZ1bmN0aW9uIGVtcHR5RnVuY3Rpb24oKSB7fVxuZnVuY3Rpb24gZW1wdHlGdW5jdGlvbldpdGhSZXNldCgpIHt9XG5lbXB0eUZ1bmN0aW9uV2l0aFJlc2V0LnJlc2V0V2FybmluZ0NhY2hlID0gZW1wdHlGdW5jdGlvbjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgZnVuY3Rpb24gc2hpbShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgIGlmIChzZWNyZXQgPT09IFJlYWN0UHJvcFR5cGVzU2VjcmV0KSB7XG4gICAgICAvLyBJdCBpcyBzdGlsbCBzYWZlIHdoZW4gY2FsbGVkIGZyb20gUmVhY3QuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAnVXNlIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcygpIHRvIGNhbGwgdGhlbS4gJyArXG4gICAgICAnUmVhZCBtb3JlIGF0IGh0dHA6Ly9mYi5tZS91c2UtY2hlY2stcHJvcC10eXBlcydcbiAgICApO1xuICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgIHRocm93IGVycjtcbiAgfTtcbiAgc2hpbS5pc1JlcXVpcmVkID0gc2hpbTtcbiAgZnVuY3Rpb24gZ2V0U2hpbSgpIHtcbiAgICByZXR1cm4gc2hpbTtcbiAgfTtcbiAgLy8gSW1wb3J0YW50IVxuICAvLyBLZWVwIHRoaXMgbGlzdCBpbiBzeW5jIHdpdGggcHJvZHVjdGlvbiB2ZXJzaW9uIGluIGAuL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzLmpzYC5cbiAgdmFyIFJlYWN0UHJvcFR5cGVzID0ge1xuICAgIGFycmF5OiBzaGltLFxuICAgIGJpZ2ludDogc2hpbSxcbiAgICBib29sOiBzaGltLFxuICAgIGZ1bmM6IHNoaW0sXG4gICAgbnVtYmVyOiBzaGltLFxuICAgIG9iamVjdDogc2hpbSxcbiAgICBzdHJpbmc6IHNoaW0sXG4gICAgc3ltYm9sOiBzaGltLFxuXG4gICAgYW55OiBzaGltLFxuICAgIGFycmF5T2Y6IGdldFNoaW0sXG4gICAgZWxlbWVudDogc2hpbSxcbiAgICBlbGVtZW50VHlwZTogc2hpbSxcbiAgICBpbnN0YW5jZU9mOiBnZXRTaGltLFxuICAgIG5vZGU6IHNoaW0sXG4gICAgb2JqZWN0T2Y6IGdldFNoaW0sXG4gICAgb25lT2Y6IGdldFNoaW0sXG4gICAgb25lT2ZUeXBlOiBnZXRTaGltLFxuICAgIHNoYXBlOiBnZXRTaGltLFxuICAgIGV4YWN0OiBnZXRTaGltLFxuXG4gICAgY2hlY2tQcm9wVHlwZXM6IGVtcHR5RnVuY3Rpb25XaXRoUmVzZXQsXG4gICAgcmVzZXRXYXJuaW5nQ2FjaGU6IGVtcHR5RnVuY3Rpb25cbiAgfTtcblxuICBSZWFjdFByb3BUeXBlcy5Qcm9wVHlwZXMgPSBSZWFjdFByb3BUeXBlcztcblxuICByZXR1cm4gUmVhY3RQcm9wVHlwZXM7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///313\n")},556:(module,__unused_webpack_exports,__webpack_require__)=>{eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (false) { var throwOnDirectAccess, ReactIs; } else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = __webpack_require__(313)();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTU2LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLEtBQXFDLEVBQUUscUNBTzFDLENBQUM7QUFDRjtBQUNBO0FBQ0EsbUJBQW1CLG1CQUFPLENBQUMsR0FBNEI7QUFDdkQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzP2Q3YmMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgZGV2ZWxvcG1lbnQgYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgdmFyIHRocm93T25EaXJlY3RBY2Nlc3MgPSB0cnVlO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMnKShSZWFjdElzLmlzRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcyk7XG59IGVsc2Uge1xuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBwcm9kdWN0aW9uIGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMnKSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///556\n")},925:module=>{"use strict";eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTI1LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFFYjs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0LmpzPzU5YjAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9ICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCc7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RQcm9wVHlwZXNTZWNyZXQ7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///925\n")},88:function(module){eval("/**\n * what-input - A global utility for tracking the current input method (mouse, keyboard or touch).\n * @version v5.2.12\n * @link https://github.com/ten1seven/what-input\n * @license MIT\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __nested_webpack_require_738__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_738__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__nested_webpack_require_738__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__nested_webpack_require_738__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__nested_webpack_require_738__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __nested_webpack_require_738__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = function () {\n\t /*\n\t * bail out if there is no document or window\n\t * (i.e. in a node/non-DOM environment)\n\t *\n\t * Return a stubbed API instead\n\t */\n\t if (typeof document === 'undefined' || typeof window === 'undefined') {\n\t return {\n\t // always return \"initial\" because no interaction will ever be detected\n\t ask: function ask() {\n\t return 'initial';\n\t },\n\n\t // always return null\n\t element: function element() {\n\t return null;\n\t },\n\n\t // no-op\n\t ignoreKeys: function ignoreKeys() {},\n\n\t // no-op\n\t specificKeys: function specificKeys() {},\n\n\t // no-op\n\t registerOnChange: function registerOnChange() {},\n\n\t // no-op\n\t unRegisterOnChange: function unRegisterOnChange() {}\n\t };\n\t }\n\n\t /*\n\t * variables\n\t */\n\n\t // cache document.documentElement\n\t var docElem = document.documentElement;\n\n\t // currently focused dom element\n\t var currentElement = null;\n\n\t // last used input type\n\t var currentInput = 'initial';\n\n\t // last used input intent\n\t var currentIntent = currentInput;\n\n\t // UNIX timestamp of current event\n\t var currentTimestamp = Date.now();\n\n\t // check for a `data-whatpersist` attribute on either the `html` or `body` elements, defaults to `true`\n\t var shouldPersist = false;\n\n\t // form input types\n\t var formInputs = ['button', 'input', 'select', 'textarea'];\n\n\t // empty array for holding callback functions\n\t var functionList = [];\n\n\t // list of modifier keys commonly used with the mouse and\n\t // can be safely ignored to prevent false keyboard detection\n\t var ignoreMap = [16, // shift\n\t 17, // control\n\t 18, // alt\n\t 91, // Windows key / left Apple cmd\n\t 93 // Windows menu / right Apple cmd\n\t ];\n\n\t var specificMap = [];\n\n\t // mapping of events to input types\n\t var inputMap = {\n\t keydown: 'keyboard',\n\t keyup: 'keyboard',\n\t mousedown: 'mouse',\n\t mousemove: 'mouse',\n\t MSPointerDown: 'pointer',\n\t MSPointerMove: 'pointer',\n\t pointerdown: 'pointer',\n\t pointermove: 'pointer',\n\t touchstart: 'touch',\n\t touchend: 'touch'\n\n\t // boolean: true if the page is being scrolled\n\t };var isScrolling = false;\n\n\t // store current mouse position\n\t var mousePos = {\n\t x: null,\n\t y: null\n\n\t // map of IE 10 pointer events\n\t };var pointerMap = {\n\t 2: 'touch',\n\t 3: 'touch', // treat pen like touch\n\t 4: 'mouse'\n\n\t // check support for passive event listeners\n\t };var supportsPassive = false;\n\n\t try {\n\t var opts = Object.defineProperty({}, 'passive', {\n\t get: function get() {\n\t supportsPassive = true;\n\t }\n\t });\n\n\t window.addEventListener('test', null, opts);\n\t } catch (e) {}\n\t // fail silently\n\n\n\t /*\n\t * set up\n\t */\n\n\t var setUp = function setUp() {\n\t // add correct mouse wheel event mapping to `inputMap`\n\t inputMap[detectWheel()] = 'mouse';\n\n\t addListeners();\n\t };\n\n\t /*\n\t * events\n\t */\n\n\t var addListeners = function addListeners() {\n\t // `pointermove`, `MSPointerMove`, `mousemove` and mouse wheel event binding\n\t // can only demonstrate potential, but not actual, interaction\n\t // and are treated separately\n\t var options = supportsPassive ? { passive: true, capture: true } : true;\n\n\t document.addEventListener('DOMContentLoaded', setPersist, true);\n\n\t // pointer events (mouse, pen, touch)\n\t if (window.PointerEvent) {\n\t window.addEventListener('pointerdown', setInput, true);\n\t window.addEventListener('pointermove', setIntent, true);\n\t } else if (window.MSPointerEvent) {\n\t window.addEventListener('MSPointerDown', setInput, true);\n\t window.addEventListener('MSPointerMove', setIntent, true);\n\t } else {\n\t // mouse events\n\t window.addEventListener('mousedown', setInput, true);\n\t window.addEventListener('mousemove', setIntent, true);\n\n\t // touch events\n\t if ('ontouchstart' in window) {\n\t window.addEventListener('touchstart', setInput, options);\n\t window.addEventListener('touchend', setInput, true);\n\t }\n\t }\n\n\t // mouse wheel\n\t window.addEventListener(detectWheel(), setIntent, options);\n\n\t // keyboard events\n\t window.addEventListener('keydown', setInput, true);\n\t window.addEventListener('keyup', setInput, true);\n\n\t // focus events\n\t window.addEventListener('focusin', setElement, true);\n\t window.addEventListener('focusout', clearElement, true);\n\t };\n\n\t // checks if input persistence should happen and\n\t // get saved state from session storage if true (defaults to `false`)\n\t var setPersist = function setPersist() {\n\t shouldPersist = !(docElem.getAttribute('data-whatpersist') === 'false' || document.body.getAttribute('data-whatpersist') === 'false');\n\n\t if (shouldPersist) {\n\t // check for session variables and use if available\n\t try {\n\t if (window.sessionStorage.getItem('what-input')) {\n\t currentInput = window.sessionStorage.getItem('what-input');\n\t }\n\n\t if (window.sessionStorage.getItem('what-intent')) {\n\t currentIntent = window.sessionStorage.getItem('what-intent');\n\t }\n\t } catch (e) {\n\t // fail silently\n\t }\n\t }\n\n\t // always run these so at least `initial` state is set\n\t doUpdate('input');\n\t doUpdate('intent');\n\t };\n\n\t // checks conditions before updating new input\n\t var setInput = function setInput(event) {\n\t var eventKey = event.which;\n\t var value = inputMap[event.type];\n\n\t if (value === 'pointer') {\n\t value = pointerType(event);\n\t }\n\n\t var ignoreMatch = !specificMap.length && ignoreMap.indexOf(eventKey) === -1;\n\n\t var specificMatch = specificMap.length && specificMap.indexOf(eventKey) !== -1;\n\n\t var shouldUpdate = value === 'keyboard' && eventKey && (ignoreMatch || specificMatch) || value === 'mouse' || value === 'touch';\n\n\t // prevent touch detection from being overridden by event execution order\n\t if (validateTouch(value)) {\n\t shouldUpdate = false;\n\t }\n\n\t if (shouldUpdate && currentInput !== value) {\n\t currentInput = value;\n\n\t persistInput('input', currentInput);\n\t doUpdate('input');\n\t }\n\n\t if (shouldUpdate && currentIntent !== value) {\n\t // preserve intent for keyboard interaction with form fields\n\t var activeElem = document.activeElement;\n\t var notFormInput = activeElem && activeElem.nodeName && (formInputs.indexOf(activeElem.nodeName.toLowerCase()) === -1 || activeElem.nodeName.toLowerCase() === 'button' && !checkClosest(activeElem, 'form'));\n\n\t if (notFormInput) {\n\t currentIntent = value;\n\n\t persistInput('intent', currentIntent);\n\t doUpdate('intent');\n\t }\n\t }\n\t };\n\n\t // updates the doc and `inputTypes` array with new input\n\t var doUpdate = function doUpdate(which) {\n\t docElem.setAttribute('data-what' + which, which === 'input' ? currentInput : currentIntent);\n\n\t fireFunctions(which);\n\t };\n\n\t // updates input intent for `mousemove` and `pointermove`\n\t var setIntent = function setIntent(event) {\n\t var value = inputMap[event.type];\n\n\t if (value === 'pointer') {\n\t value = pointerType(event);\n\t }\n\n\t // test to see if `mousemove` happened relative to the screen to detect scrolling versus mousemove\n\t detectScrolling(event);\n\n\t // only execute if scrolling isn't happening\n\t if ((!isScrolling && !validateTouch(value) || isScrolling && event.type === 'wheel' || event.type === 'mousewheel' || event.type === 'DOMMouseScroll') && currentIntent !== value) {\n\t currentIntent = value;\n\n\t persistInput('intent', currentIntent);\n\t doUpdate('intent');\n\t }\n\t };\n\n\t var setElement = function setElement(event) {\n\t if (!event.target.nodeName) {\n\t // If nodeName is undefined, clear the element\n\t // This can happen if click inside an <svg> element.\n\t clearElement();\n\t return;\n\t }\n\n\t currentElement = event.target.nodeName.toLowerCase();\n\t docElem.setAttribute('data-whatelement', currentElement);\n\n\t if (event.target.classList && event.target.classList.length) {\n\t docElem.setAttribute('data-whatclasses', event.target.classList.toString().replace(' ', ','));\n\t }\n\t };\n\n\t var clearElement = function clearElement() {\n\t currentElement = null;\n\n\t docElem.removeAttribute('data-whatelement');\n\t docElem.removeAttribute('data-whatclasses');\n\t };\n\n\t var persistInput = function persistInput(which, value) {\n\t if (shouldPersist) {\n\t try {\n\t window.sessionStorage.setItem('what-' + which, value);\n\t } catch (e) {\n\t // fail silently\n\t }\n\t }\n\t };\n\n\t /*\n\t * utilities\n\t */\n\n\t var pointerType = function pointerType(event) {\n\t if (typeof event.pointerType === 'number') {\n\t return pointerMap[event.pointerType];\n\t } else {\n\t // treat pen like touch\n\t return event.pointerType === 'pen' ? 'touch' : event.pointerType;\n\t }\n\t };\n\n\t // prevent touch detection from being overridden by event execution order\n\t var validateTouch = function validateTouch(value) {\n\t var timestamp = Date.now();\n\n\t var touchIsValid = value === 'mouse' && currentInput === 'touch' && timestamp - currentTimestamp < 200;\n\n\t currentTimestamp = timestamp;\n\n\t return touchIsValid;\n\t };\n\n\t // detect version of mouse wheel event to use\n\t // via https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event\n\t var detectWheel = function detectWheel() {\n\t var wheelType = null;\n\n\t // Modern browsers support \"wheel\"\n\t if ('onwheel' in document.createElement('div')) {\n\t wheelType = 'wheel';\n\t } else {\n\t // Webkit and IE support at least \"mousewheel\"\n\t // or assume that remaining browsers are older Firefox\n\t wheelType = document.onmousewheel !== undefined ? 'mousewheel' : 'DOMMouseScroll';\n\t }\n\n\t return wheelType;\n\t };\n\n\t // runs callback functions\n\t var fireFunctions = function fireFunctions(type) {\n\t for (var i = 0, len = functionList.length; i < len; i++) {\n\t if (functionList[i].type === type) {\n\t functionList[i].fn.call(undefined, type === 'input' ? currentInput : currentIntent);\n\t }\n\t }\n\t };\n\n\t // finds matching element in an object\n\t var objPos = function objPos(match) {\n\t for (var i = 0, len = functionList.length; i < len; i++) {\n\t if (functionList[i].fn === match) {\n\t return i;\n\t }\n\t }\n\t };\n\n\t var detectScrolling = function detectScrolling(event) {\n\t if (mousePos.x !== event.screenX || mousePos.y !== event.screenY) {\n\t isScrolling = false;\n\n\t mousePos.x = event.screenX;\n\t mousePos.y = event.screenY;\n\t } else {\n\t isScrolling = true;\n\t }\n\t };\n\n\t // manual version of `closest()`\n\t var checkClosest = function checkClosest(elem, tag) {\n\t var ElementPrototype = window.Element.prototype;\n\n\t if (!ElementPrototype.matches) {\n\t ElementPrototype.matches = ElementPrototype.msMatchesSelector || ElementPrototype.webkitMatchesSelector;\n\t }\n\n\t if (!ElementPrototype.closest) {\n\t do {\n\t if (elem.matches(tag)) {\n\t return elem;\n\t }\n\n\t elem = elem.parentElement || elem.parentNode;\n\t } while (elem !== null && elem.nodeType === 1);\n\n\t return null;\n\t } else {\n\t return elem.closest(tag);\n\t }\n\t };\n\n\t /*\n\t * init\n\t */\n\n\t // don't start script unless browser cuts the mustard\n\t // (also passes if polyfills are used)\n\t if ('addEventListener' in window && Array.prototype.indexOf) {\n\t setUp();\n\t }\n\n\t /*\n\t * api\n\t */\n\n\t return {\n\t // returns string: the current input type\n\t // opt: 'intent'|'input'\n\t // 'input' (default): returns the same value as the `data-whatinput` attribute\n\t // 'intent': includes `data-whatintent` value if it's different than `data-whatinput`\n\t ask: function ask(opt) {\n\t return opt === 'intent' ? currentIntent : currentInput;\n\t },\n\n\t // returns string: the currently focused element or null\n\t element: function element() {\n\t return currentElement;\n\t },\n\n\t // overwrites ignored keys with provided array\n\t ignoreKeys: function ignoreKeys(arr) {\n\t ignoreMap = arr;\n\t },\n\n\t // overwrites specific char keys to update on\n\t specificKeys: function specificKeys(arr) {\n\t specificMap = arr;\n\t },\n\n\t // attach functions to input and intent \"events\"\n\t // funct: function to fire on change\n\t // eventType: 'input'|'intent'\n\t registerOnChange: function registerOnChange(fn, eventType) {\n\t functionList.push({\n\t fn: fn,\n\t type: eventType || 'input'\n\t });\n\t },\n\n\t unRegisterOnChange: function unRegisterOnChange(fn) {\n\t var position = objPos(fn);\n\n\t if (position || position === 0) {\n\t functionList.splice(position, 1);\n\t }\n\t },\n\n\t clearStorage: function clearStorage() {\n\t window.sessionStorage.clear();\n\t }\n\t };\n\t}();\n\n/***/ })\n/******/ ])\n});\n;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODguanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQXlEO0FBQzdEO0FBQ0EsTUFBTSxFQUswQjtBQUNoQyxDQUFDO0FBQ0QscUNBQXFDO0FBQ3JDO0FBQ0E7O0FBRUE7QUFDQSxtQkFBbUIsOEJBQW1COztBQUV0QztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwwRUFBMEUsOEJBQW1COztBQUU3RjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQSxVQUFVLDhCQUFtQjs7QUFFN0I7QUFDQSxVQUFVLDhCQUFtQjs7QUFFN0I7QUFDQSxVQUFVLDhCQUFtQjs7QUFFN0I7QUFDQSxpQkFBaUIsOEJBQW1CO0FBQ3BDLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFROztBQUVSO0FBQ0E7QUFDQTtBQUNBLFFBQVE7O0FBRVI7QUFDQSwyQ0FBMkM7O0FBRTNDO0FBQ0EsK0NBQStDOztBQUUvQztBQUNBLHVEQUF1RDs7QUFFdkQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLHdDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0EsS0FBSztBQUNMOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLCtCQUErQjs7QUFFdEU7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdEQUFnRCxTQUFTO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdEQUFnRCxTQUFTO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1IsTUFBTTs7QUFFTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGLE9BQU87QUFDUDtBQUNBLENBQUM7QUFDRCIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL3doYXQtaW5wdXQvZGlzdC93aGF0LWlucHV0LmpzPzhlM2IiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiB3aGF0LWlucHV0IC0gQSBnbG9iYWwgdXRpbGl0eSBmb3IgdHJhY2tpbmcgdGhlIGN1cnJlbnQgaW5wdXQgbWV0aG9kIChtb3VzZSwga2V5Ym9hcmQgb3IgdG91Y2gpLlxuICogQHZlcnNpb24gdjUuMi4xMlxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3RlbjFzZXZlbi93aGF0LWlucHV0XG4gKiBAbGljZW5zZSBNSVRcbiAqL1xuKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoXCJ3aGF0SW5wdXRcIiwgW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wid2hhdElucHV0XCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIndoYXRJbnB1dFwiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKCkge1xucmV0dXJuIC8qKioqKiovIChmdW5jdGlvbihtb2R1bGVzKSB7IC8vIHdlYnBhY2tCb290c3RyYXBcbi8qKioqKiovIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4vKioqKioqLyBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4vKioqKioqLyBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuLyoqKioqKi8gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuLyoqKioqKi8gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG5cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbi8qKioqKiovIFx0XHRcdGV4cG9ydHM6IHt9LFxuLyoqKioqKi8gXHRcdFx0aWQ6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0bG9hZGVkOiBmYWxzZVxuLyoqKioqKi8gXHRcdH07XG5cbi8qKioqKiovIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbi8qKioqKiovIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuLyoqKioqKi8gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbi8qKioqKiovIFx0XHRtb2R1bGUubG9hZGVkID0gdHJ1ZTtcblxuLyoqKioqKi8gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4vKioqKioqLyBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHR9XG5cblxuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbi8qKioqKiovIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuLyoqKioqKi8gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbi8qKioqKiovIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oMCk7XG4vKioqKioqLyB9KVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKiovIChbXG4vKiAwICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cblx0J3VzZSBzdHJpY3QnO1xuXG5cdG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuXHQgIC8qXG5cdCAgICogYmFpbCBvdXQgaWYgdGhlcmUgaXMgbm8gZG9jdW1lbnQgb3Igd2luZG93XG5cdCAgICogKGkuZS4gaW4gYSBub2RlL25vbi1ET00gZW52aXJvbm1lbnQpXG5cdCAgICpcblx0ICAgKiBSZXR1cm4gYSBzdHViYmVkIEFQSSBpbnN0ZWFkXG5cdCAgICovXG5cdCAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcblx0ICAgIHJldHVybiB7XG5cdCAgICAgIC8vIGFsd2F5cyByZXR1cm4gXCJpbml0aWFsXCIgYmVjYXVzZSBubyBpbnRlcmFjdGlvbiB3aWxsIGV2ZXIgYmUgZGV0ZWN0ZWRcblx0ICAgICAgYXNrOiBmdW5jdGlvbiBhc2soKSB7XG5cdCAgICAgICAgcmV0dXJuICdpbml0aWFsJztcblx0ICAgICAgfSxcblxuXHQgICAgICAvLyBhbHdheXMgcmV0dXJuIG51bGxcblx0ICAgICAgZWxlbWVudDogZnVuY3Rpb24gZWxlbWVudCgpIHtcblx0ICAgICAgICByZXR1cm4gbnVsbDtcblx0ICAgICAgfSxcblxuXHQgICAgICAvLyBuby1vcFxuXHQgICAgICBpZ25vcmVLZXlzOiBmdW5jdGlvbiBpZ25vcmVLZXlzKCkge30sXG5cblx0ICAgICAgLy8gbm8tb3Bcblx0ICAgICAgc3BlY2lmaWNLZXlzOiBmdW5jdGlvbiBzcGVjaWZpY0tleXMoKSB7fSxcblxuXHQgICAgICAvLyBuby1vcFxuXHQgICAgICByZWdpc3Rlck9uQ2hhbmdlOiBmdW5jdGlvbiByZWdpc3Rlck9uQ2hhbmdlKCkge30sXG5cblx0ICAgICAgLy8gbm8tb3Bcblx0ICAgICAgdW5SZWdpc3Rlck9uQ2hhbmdlOiBmdW5jdGlvbiB1blJlZ2lzdGVyT25DaGFuZ2UoKSB7fVxuXHQgICAgfTtcblx0ICB9XG5cblx0ICAvKlxuXHQgICAqIHZhcmlhYmxlc1xuXHQgICAqL1xuXG5cdCAgLy8gY2FjaGUgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XG5cdCAgdmFyIGRvY0VsZW0gPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cblx0ICAvLyBjdXJyZW50bHkgZm9jdXNlZCBkb20gZWxlbWVudFxuXHQgIHZhciBjdXJyZW50RWxlbWVudCA9IG51bGw7XG5cblx0ICAvLyBsYXN0IHVzZWQgaW5wdXQgdHlwZVxuXHQgIHZhciBjdXJyZW50SW5wdXQgPSAnaW5pdGlhbCc7XG5cblx0ICAvLyBsYXN0IHVzZWQgaW5wdXQgaW50ZW50XG5cdCAgdmFyIGN1cnJlbnRJbnRlbnQgPSBjdXJyZW50SW5wdXQ7XG5cblx0ICAvLyBVTklYIHRpbWVzdGFtcCBvZiBjdXJyZW50IGV2ZW50XG5cdCAgdmFyIGN1cnJlbnRUaW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuXG5cdCAgLy8gY2hlY2sgZm9yIGEgYGRhdGEtd2hhdHBlcnNpc3RgIGF0dHJpYnV0ZSBvbiBlaXRoZXIgdGhlIGBodG1sYCBvciBgYm9keWAgZWxlbWVudHMsIGRlZmF1bHRzIHRvIGB0cnVlYFxuXHQgIHZhciBzaG91bGRQZXJzaXN0ID0gZmFsc2U7XG5cblx0ICAvLyBmb3JtIGlucHV0IHR5cGVzXG5cdCAgdmFyIGZvcm1JbnB1dHMgPSBbJ2J1dHRvbicsICdpbnB1dCcsICdzZWxlY3QnLCAndGV4dGFyZWEnXTtcblxuXHQgIC8vIGVtcHR5IGFycmF5IGZvciBob2xkaW5nIGNhbGxiYWNrIGZ1bmN0aW9uc1xuXHQgIHZhciBmdW5jdGlvbkxpc3QgPSBbXTtcblxuXHQgIC8vIGxpc3Qgb2YgbW9kaWZpZXIga2V5cyBjb21tb25seSB1c2VkIHdpdGggdGhlIG1vdXNlIGFuZFxuXHQgIC8vIGNhbiBiZSBzYWZlbHkgaWdub3JlZCB0byBwcmV2ZW50IGZhbHNlIGtleWJvYXJkIGRldGVjdGlvblxuXHQgIHZhciBpZ25vcmVNYXAgPSBbMTYsIC8vIHNoaWZ0XG5cdCAgMTcsIC8vIGNvbnRyb2xcblx0ICAxOCwgLy8gYWx0XG5cdCAgOTEsIC8vIFdpbmRvd3Mga2V5IC8gbGVmdCBBcHBsZSBjbWRcblx0ICA5MyAvLyBXaW5kb3dzIG1lbnUgLyByaWdodCBBcHBsZSBjbWRcblx0ICBdO1xuXG5cdCAgdmFyIHNwZWNpZmljTWFwID0gW107XG5cblx0ICAvLyBtYXBwaW5nIG9mIGV2ZW50cyB0byBpbnB1dCB0eXBlc1xuXHQgIHZhciBpbnB1dE1hcCA9IHtcblx0ICAgIGtleWRvd246ICdrZXlib2FyZCcsXG5cdCAgICBrZXl1cDogJ2tleWJvYXJkJyxcblx0ICAgIG1vdXNlZG93bjogJ21vdXNlJyxcblx0ICAgIG1vdXNlbW92ZTogJ21vdXNlJyxcblx0ICAgIE1TUG9pbnRlckRvd246ICdwb2ludGVyJyxcblx0ICAgIE1TUG9pbnRlck1vdmU6ICdwb2ludGVyJyxcblx0ICAgIHBvaW50ZXJkb3duOiAncG9pbnRlcicsXG5cdCAgICBwb2ludGVybW92ZTogJ3BvaW50ZXInLFxuXHQgICAgdG91Y2hzdGFydDogJ3RvdWNoJyxcblx0ICAgIHRvdWNoZW5kOiAndG91Y2gnXG5cblx0ICAgIC8vIGJvb2xlYW46IHRydWUgaWYgdGhlIHBhZ2UgaXMgYmVpbmcgc2Nyb2xsZWRcblx0ICB9O3ZhciBpc1Njcm9sbGluZyA9IGZhbHNlO1xuXG5cdCAgLy8gc3RvcmUgY3VycmVudCBtb3VzZSBwb3NpdGlvblxuXHQgIHZhciBtb3VzZVBvcyA9IHtcblx0ICAgIHg6IG51bGwsXG5cdCAgICB5OiBudWxsXG5cblx0ICAgIC8vIG1hcCBvZiBJRSAxMCBwb2ludGVyIGV2ZW50c1xuXHQgIH07dmFyIHBvaW50ZXJNYXAgPSB7XG5cdCAgICAyOiAndG91Y2gnLFxuXHQgICAgMzogJ3RvdWNoJywgLy8gdHJlYXQgcGVuIGxpa2UgdG91Y2hcblx0ICAgIDQ6ICdtb3VzZSdcblxuXHQgICAgLy8gY2hlY2sgc3VwcG9ydCBmb3IgcGFzc2l2ZSBldmVudCBsaXN0ZW5lcnNcblx0ICB9O3ZhciBzdXBwb3J0c1Bhc3NpdmUgPSBmYWxzZTtcblxuXHQgIHRyeSB7XG5cdCAgICB2YXIgb3B0cyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ3Bhc3NpdmUnLCB7XG5cdCAgICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuXHQgICAgICAgIHN1cHBvcnRzUGFzc2l2ZSA9IHRydWU7XG5cdCAgICAgIH1cblx0ICAgIH0pO1xuXG5cdCAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIG51bGwsIG9wdHMpO1xuXHQgIH0gY2F0Y2ggKGUpIHt9XG5cdCAgLy8gZmFpbCBzaWxlbnRseVxuXG5cblx0ICAvKlxuXHQgICAqIHNldCB1cFxuXHQgICAqL1xuXG5cdCAgdmFyIHNldFVwID0gZnVuY3Rpb24gc2V0VXAoKSB7XG5cdCAgICAvLyBhZGQgY29ycmVjdCBtb3VzZSB3aGVlbCBldmVudCBtYXBwaW5nIHRvIGBpbnB1dE1hcGBcblx0ICAgIGlucHV0TWFwW2RldGVjdFdoZWVsKCldID0gJ21vdXNlJztcblxuXHQgICAgYWRkTGlzdGVuZXJzKCk7XG5cdCAgfTtcblxuXHQgIC8qXG5cdCAgICogZXZlbnRzXG5cdCAgICovXG5cblx0ICB2YXIgYWRkTGlzdGVuZXJzID0gZnVuY3Rpb24gYWRkTGlzdGVuZXJzKCkge1xuXHQgICAgLy8gYHBvaW50ZXJtb3ZlYCwgYE1TUG9pbnRlck1vdmVgLCBgbW91c2Vtb3ZlYCBhbmQgbW91c2Ugd2hlZWwgZXZlbnQgYmluZGluZ1xuXHQgICAgLy8gY2FuIG9ubHkgZGVtb25zdHJhdGUgcG90ZW50aWFsLCBidXQgbm90IGFjdHVhbCwgaW50ZXJhY3Rpb25cblx0ICAgIC8vIGFuZCBhcmUgdHJlYXRlZCBzZXBhcmF0ZWx5XG5cdCAgICB2YXIgb3B0aW9ucyA9IHN1cHBvcnRzUGFzc2l2ZSA/IHsgcGFzc2l2ZTogdHJ1ZSwgY2FwdHVyZTogdHJ1ZSB9IDogdHJ1ZTtcblxuXHQgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIHNldFBlcnNpc3QsIHRydWUpO1xuXG5cdCAgICAvLyBwb2ludGVyIGV2ZW50cyAobW91c2UsIHBlbiwgdG91Y2gpXG5cdCAgICBpZiAod2luZG93LlBvaW50ZXJFdmVudCkge1xuXHQgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBzZXRJbnB1dCwgdHJ1ZSk7XG5cdCAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVybW92ZScsIHNldEludGVudCwgdHJ1ZSk7XG5cdCAgICB9IGVsc2UgaWYgKHdpbmRvdy5NU1BvaW50ZXJFdmVudCkge1xuXHQgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignTVNQb2ludGVyRG93bicsIHNldElucHV0LCB0cnVlKTtcblx0ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ01TUG9pbnRlck1vdmUnLCBzZXRJbnRlbnQsIHRydWUpO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgLy8gbW91c2UgZXZlbnRzXG5cdCAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBzZXRJbnB1dCwgdHJ1ZSk7XG5cdCAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBzZXRJbnRlbnQsIHRydWUpO1xuXG5cdCAgICAgIC8vIHRvdWNoIGV2ZW50c1xuXHQgICAgICBpZiAoJ29udG91Y2hzdGFydCcgaW4gd2luZG93KSB7XG5cdCAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBzZXRJbnB1dCwgb3B0aW9ucyk7XG5cdCAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgc2V0SW5wdXQsIHRydWUpO1xuXHQgICAgICB9XG5cdCAgICB9XG5cblx0ICAgIC8vIG1vdXNlIHdoZWVsXG5cdCAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihkZXRlY3RXaGVlbCgpLCBzZXRJbnRlbnQsIG9wdGlvbnMpO1xuXG5cdCAgICAvLyBrZXlib2FyZCBldmVudHNcblx0ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgc2V0SW5wdXQsIHRydWUpO1xuXHQgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgc2V0SW5wdXQsIHRydWUpO1xuXG5cdCAgICAvLyBmb2N1cyBldmVudHNcblx0ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgc2V0RWxlbWVudCwgdHJ1ZSk7XG5cdCAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNvdXQnLCBjbGVhckVsZW1lbnQsIHRydWUpO1xuXHQgIH07XG5cblx0ICAvLyBjaGVja3MgaWYgaW5wdXQgcGVyc2lzdGVuY2Ugc2hvdWxkIGhhcHBlbiBhbmRcblx0ICAvLyBnZXQgc2F2ZWQgc3RhdGUgZnJvbSBzZXNzaW9uIHN0b3JhZ2UgaWYgdHJ1ZSAoZGVmYXVsdHMgdG8gYGZhbHNlYClcblx0ICB2YXIgc2V0UGVyc2lzdCA9IGZ1bmN0aW9uIHNldFBlcnNpc3QoKSB7XG5cdCAgICBzaG91bGRQZXJzaXN0ID0gIShkb2NFbGVtLmdldEF0dHJpYnV0ZSgnZGF0YS13aGF0cGVyc2lzdCcpID09PSAnZmFsc2UnIHx8IGRvY3VtZW50LmJvZHkuZ2V0QXR0cmlidXRlKCdkYXRhLXdoYXRwZXJzaXN0JykgPT09ICdmYWxzZScpO1xuXG5cdCAgICBpZiAoc2hvdWxkUGVyc2lzdCkge1xuXHQgICAgICAvLyBjaGVjayBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMgYW5kIHVzZSBpZiBhdmFpbGFibGVcblx0ICAgICAgdHJ5IHtcblx0ICAgICAgICBpZiAod2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3doYXQtaW5wdXQnKSkge1xuXHQgICAgICAgICAgY3VycmVudElucHV0ID0gd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3doYXQtaW5wdXQnKTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBpZiAod2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3doYXQtaW50ZW50JykpIHtcblx0ICAgICAgICAgIGN1cnJlbnRJbnRlbnQgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnd2hhdC1pbnRlbnQnKTtcblx0ICAgICAgICB9XG5cdCAgICAgIH0gY2F0Y2ggKGUpIHtcblx0ICAgICAgICAvLyBmYWlsIHNpbGVudGx5XG5cdCAgICAgIH1cblx0ICAgIH1cblxuXHQgICAgLy8gYWx3YXlzIHJ1biB0aGVzZSBzbyBhdCBsZWFzdCBgaW5pdGlhbGAgc3RhdGUgaXMgc2V0XG5cdCAgICBkb1VwZGF0ZSgnaW5wdXQnKTtcblx0ICAgIGRvVXBkYXRlKCdpbnRlbnQnKTtcblx0ICB9O1xuXG5cdCAgLy8gY2hlY2tzIGNvbmRpdGlvbnMgYmVmb3JlIHVwZGF0aW5nIG5ldyBpbnB1dFxuXHQgIHZhciBzZXRJbnB1dCA9IGZ1bmN0aW9uIHNldElucHV0KGV2ZW50KSB7XG5cdCAgICB2YXIgZXZlbnRLZXkgPSBldmVudC53aGljaDtcblx0ICAgIHZhciB2YWx1ZSA9IGlucHV0TWFwW2V2ZW50LnR5cGVdO1xuXG5cdCAgICBpZiAodmFsdWUgPT09ICdwb2ludGVyJykge1xuXHQgICAgICB2YWx1ZSA9IHBvaW50ZXJUeXBlKGV2ZW50KTtcblx0ICAgIH1cblxuXHQgICAgdmFyIGlnbm9yZU1hdGNoID0gIXNwZWNpZmljTWFwLmxlbmd0aCAmJiBpZ25vcmVNYXAuaW5kZXhPZihldmVudEtleSkgPT09IC0xO1xuXG5cdCAgICB2YXIgc3BlY2lmaWNNYXRjaCA9IHNwZWNpZmljTWFwLmxlbmd0aCAmJiBzcGVjaWZpY01hcC5pbmRleE9mKGV2ZW50S2V5KSAhPT0gLTE7XG5cblx0ICAgIHZhciBzaG91bGRVcGRhdGUgPSB2YWx1ZSA9PT0gJ2tleWJvYXJkJyAmJiBldmVudEtleSAmJiAoaWdub3JlTWF0Y2ggfHwgc3BlY2lmaWNNYXRjaCkgfHwgdmFsdWUgPT09ICdtb3VzZScgfHwgdmFsdWUgPT09ICd0b3VjaCc7XG5cblx0ICAgIC8vIHByZXZlbnQgdG91Y2ggZGV0ZWN0aW9uIGZyb20gYmVpbmcgb3ZlcnJpZGRlbiBieSBldmVudCBleGVjdXRpb24gb3JkZXJcblx0ICAgIGlmICh2YWxpZGF0ZVRvdWNoKHZhbHVlKSkge1xuXHQgICAgICBzaG91bGRVcGRhdGUgPSBmYWxzZTtcblx0ICAgIH1cblxuXHQgICAgaWYgKHNob3VsZFVwZGF0ZSAmJiBjdXJyZW50SW5wdXQgIT09IHZhbHVlKSB7XG5cdCAgICAgIGN1cnJlbnRJbnB1dCA9IHZhbHVlO1xuXG5cdCAgICAgIHBlcnNpc3RJbnB1dCgnaW5wdXQnLCBjdXJyZW50SW5wdXQpO1xuXHQgICAgICBkb1VwZGF0ZSgnaW5wdXQnKTtcblx0ICAgIH1cblxuXHQgICAgaWYgKHNob3VsZFVwZGF0ZSAmJiBjdXJyZW50SW50ZW50ICE9PSB2YWx1ZSkge1xuXHQgICAgICAvLyBwcmVzZXJ2ZSBpbnRlbnQgZm9yIGtleWJvYXJkIGludGVyYWN0aW9uIHdpdGggZm9ybSBmaWVsZHNcblx0ICAgICAgdmFyIGFjdGl2ZUVsZW0gPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuXHQgICAgICB2YXIgbm90Rm9ybUlucHV0ID0gYWN0aXZlRWxlbSAmJiBhY3RpdmVFbGVtLm5vZGVOYW1lICYmIChmb3JtSW5wdXRzLmluZGV4T2YoYWN0aXZlRWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKSA9PT0gLTEgfHwgYWN0aXZlRWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYnV0dG9uJyAmJiAhY2hlY2tDbG9zZXN0KGFjdGl2ZUVsZW0sICdmb3JtJykpO1xuXG5cdCAgICAgIGlmIChub3RGb3JtSW5wdXQpIHtcblx0ICAgICAgICBjdXJyZW50SW50ZW50ID0gdmFsdWU7XG5cblx0ICAgICAgICBwZXJzaXN0SW5wdXQoJ2ludGVudCcsIGN1cnJlbnRJbnRlbnQpO1xuXHQgICAgICAgIGRvVXBkYXRlKCdpbnRlbnQnKTtcblx0ICAgICAgfVxuXHQgICAgfVxuXHQgIH07XG5cblx0ICAvLyB1cGRhdGVzIHRoZSBkb2MgYW5kIGBpbnB1dFR5cGVzYCBhcnJheSB3aXRoIG5ldyBpbnB1dFxuXHQgIHZhciBkb1VwZGF0ZSA9IGZ1bmN0aW9uIGRvVXBkYXRlKHdoaWNoKSB7XG5cdCAgICBkb2NFbGVtLnNldEF0dHJpYnV0ZSgnZGF0YS13aGF0JyArIHdoaWNoLCB3aGljaCA9PT0gJ2lucHV0JyA/IGN1cnJlbnRJbnB1dCA6IGN1cnJlbnRJbnRlbnQpO1xuXG5cdCAgICBmaXJlRnVuY3Rpb25zKHdoaWNoKTtcblx0ICB9O1xuXG5cdCAgLy8gdXBkYXRlcyBpbnB1dCBpbnRlbnQgZm9yIGBtb3VzZW1vdmVgIGFuZCBgcG9pbnRlcm1vdmVgXG5cdCAgdmFyIHNldEludGVudCA9IGZ1bmN0aW9uIHNldEludGVudChldmVudCkge1xuXHQgICAgdmFyIHZhbHVlID0gaW5wdXRNYXBbZXZlbnQudHlwZV07XG5cblx0ICAgIGlmICh2YWx1ZSA9PT0gJ3BvaW50ZXInKSB7XG5cdCAgICAgIHZhbHVlID0gcG9pbnRlclR5cGUoZXZlbnQpO1xuXHQgICAgfVxuXG5cdCAgICAvLyB0ZXN0IHRvIHNlZSBpZiBgbW91c2Vtb3ZlYCBoYXBwZW5lZCByZWxhdGl2ZSB0byB0aGUgc2NyZWVuIHRvIGRldGVjdCBzY3JvbGxpbmcgdmVyc3VzIG1vdXNlbW92ZVxuXHQgICAgZGV0ZWN0U2Nyb2xsaW5nKGV2ZW50KTtcblxuXHQgICAgLy8gb25seSBleGVjdXRlIGlmIHNjcm9sbGluZyBpc24ndCBoYXBwZW5pbmdcblx0ICAgIGlmICgoIWlzU2Nyb2xsaW5nICYmICF2YWxpZGF0ZVRvdWNoKHZhbHVlKSB8fCBpc1Njcm9sbGluZyAmJiBldmVudC50eXBlID09PSAnd2hlZWwnIHx8IGV2ZW50LnR5cGUgPT09ICdtb3VzZXdoZWVsJyB8fCBldmVudC50eXBlID09PSAnRE9NTW91c2VTY3JvbGwnKSAmJiBjdXJyZW50SW50ZW50ICE9PSB2YWx1ZSkge1xuXHQgICAgICBjdXJyZW50SW50ZW50ID0gdmFsdWU7XG5cblx0ICAgICAgcGVyc2lzdElucHV0KCdpbnRlbnQnLCBjdXJyZW50SW50ZW50KTtcblx0ICAgICAgZG9VcGRhdGUoJ2ludGVudCcpO1xuXHQgICAgfVxuXHQgIH07XG5cblx0ICB2YXIgc2V0RWxlbWVudCA9IGZ1bmN0aW9uIHNldEVsZW1lbnQoZXZlbnQpIHtcblx0ICAgIGlmICghZXZlbnQudGFyZ2V0Lm5vZGVOYW1lKSB7XG5cdCAgICAgIC8vIElmIG5vZGVOYW1lIGlzIHVuZGVmaW5lZCwgY2xlYXIgdGhlIGVsZW1lbnRcblx0ICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIGNsaWNrIGluc2lkZSBhbiA8c3ZnPiBlbGVtZW50LlxuXHQgICAgICBjbGVhckVsZW1lbnQoKTtcblx0ICAgICAgcmV0dXJuO1xuXHQgICAgfVxuXG5cdCAgICBjdXJyZW50RWxlbWVudCA9IGV2ZW50LnRhcmdldC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuXHQgICAgZG9jRWxlbS5zZXRBdHRyaWJ1dGUoJ2RhdGEtd2hhdGVsZW1lbnQnLCBjdXJyZW50RWxlbWVudCk7XG5cblx0ICAgIGlmIChldmVudC50YXJnZXQuY2xhc3NMaXN0ICYmIGV2ZW50LnRhcmdldC5jbGFzc0xpc3QubGVuZ3RoKSB7XG5cdCAgICAgIGRvY0VsZW0uc2V0QXR0cmlidXRlKCdkYXRhLXdoYXRjbGFzc2VzJywgZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC50b1N0cmluZygpLnJlcGxhY2UoJyAnLCAnLCcpKTtcblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgdmFyIGNsZWFyRWxlbWVudCA9IGZ1bmN0aW9uIGNsZWFyRWxlbWVudCgpIHtcblx0ICAgIGN1cnJlbnRFbGVtZW50ID0gbnVsbDtcblxuXHQgICAgZG9jRWxlbS5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtd2hhdGVsZW1lbnQnKTtcblx0ICAgIGRvY0VsZW0ucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXdoYXRjbGFzc2VzJyk7XG5cdCAgfTtcblxuXHQgIHZhciBwZXJzaXN0SW5wdXQgPSBmdW5jdGlvbiBwZXJzaXN0SW5wdXQod2hpY2gsIHZhbHVlKSB7XG5cdCAgICBpZiAoc2hvdWxkUGVyc2lzdCkge1xuXHQgICAgICB0cnkge1xuXHQgICAgICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCd3aGF0LScgKyB3aGljaCwgdmFsdWUpO1xuXHQgICAgICB9IGNhdGNoIChlKSB7XG5cdCAgICAgICAgLy8gZmFpbCBzaWxlbnRseVxuXHQgICAgICB9XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIC8qXG5cdCAgICogdXRpbGl0aWVzXG5cdCAgICovXG5cblx0ICB2YXIgcG9pbnRlclR5cGUgPSBmdW5jdGlvbiBwb2ludGVyVHlwZShldmVudCkge1xuXHQgICAgaWYgKHR5cGVvZiBldmVudC5wb2ludGVyVHlwZSA9PT0gJ251bWJlcicpIHtcblx0ICAgICAgcmV0dXJuIHBvaW50ZXJNYXBbZXZlbnQucG9pbnRlclR5cGVdO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgLy8gdHJlYXQgcGVuIGxpa2UgdG91Y2hcblx0ICAgICAgcmV0dXJuIGV2ZW50LnBvaW50ZXJUeXBlID09PSAncGVuJyA/ICd0b3VjaCcgOiBldmVudC5wb2ludGVyVHlwZTtcblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgLy8gcHJldmVudCB0b3VjaCBkZXRlY3Rpb24gZnJvbSBiZWluZyBvdmVycmlkZGVuIGJ5IGV2ZW50IGV4ZWN1dGlvbiBvcmRlclxuXHQgIHZhciB2YWxpZGF0ZVRvdWNoID0gZnVuY3Rpb24gdmFsaWRhdGVUb3VjaCh2YWx1ZSkge1xuXHQgICAgdmFyIHRpbWVzdGFtcCA9IERhdGUubm93KCk7XG5cblx0ICAgIHZhciB0b3VjaElzVmFsaWQgPSB2YWx1ZSA9PT0gJ21vdXNlJyAmJiBjdXJyZW50SW5wdXQgPT09ICd0b3VjaCcgJiYgdGltZXN0YW1wIC0gY3VycmVudFRpbWVzdGFtcCA8IDIwMDtcblxuXHQgICAgY3VycmVudFRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcblxuXHQgICAgcmV0dXJuIHRvdWNoSXNWYWxpZDtcblx0ICB9O1xuXG5cdCAgLy8gZGV0ZWN0IHZlcnNpb24gb2YgbW91c2Ugd2hlZWwgZXZlbnQgdG8gdXNlXG5cdCAgLy8gdmlhIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbGVtZW50L3doZWVsX2V2ZW50XG5cdCAgdmFyIGRldGVjdFdoZWVsID0gZnVuY3Rpb24gZGV0ZWN0V2hlZWwoKSB7XG5cdCAgICB2YXIgd2hlZWxUeXBlID0gbnVsbDtcblxuXHQgICAgLy8gTW9kZXJuIGJyb3dzZXJzIHN1cHBvcnQgXCJ3aGVlbFwiXG5cdCAgICBpZiAoJ29ud2hlZWwnIGluIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKSB7XG5cdCAgICAgIHdoZWVsVHlwZSA9ICd3aGVlbCc7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICAvLyBXZWJraXQgYW5kIElFIHN1cHBvcnQgYXQgbGVhc3QgXCJtb3VzZXdoZWVsXCJcblx0ICAgICAgLy8gb3IgYXNzdW1lIHRoYXQgcmVtYWluaW5nIGJyb3dzZXJzIGFyZSBvbGRlciBGaXJlZm94XG5cdCAgICAgIHdoZWVsVHlwZSA9IGRvY3VtZW50Lm9ubW91c2V3aGVlbCAhPT0gdW5kZWZpbmVkID8gJ21vdXNld2hlZWwnIDogJ0RPTU1vdXNlU2Nyb2xsJztcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIHdoZWVsVHlwZTtcblx0ICB9O1xuXG5cdCAgLy8gcnVucyBjYWxsYmFjayBmdW5jdGlvbnNcblx0ICB2YXIgZmlyZUZ1bmN0aW9ucyA9IGZ1bmN0aW9uIGZpcmVGdW5jdGlvbnModHlwZSkge1xuXHQgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGZ1bmN0aW9uTGlzdC5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuXHQgICAgICBpZiAoZnVuY3Rpb25MaXN0W2ldLnR5cGUgPT09IHR5cGUpIHtcblx0ICAgICAgICBmdW5jdGlvbkxpc3RbaV0uZm4uY2FsbCh1bmRlZmluZWQsIHR5cGUgPT09ICdpbnB1dCcgPyBjdXJyZW50SW5wdXQgOiBjdXJyZW50SW50ZW50KTtcblx0ICAgICAgfVxuXHQgICAgfVxuXHQgIH07XG5cblx0ICAvLyBmaW5kcyBtYXRjaGluZyBlbGVtZW50IGluIGFuIG9iamVjdFxuXHQgIHZhciBvYmpQb3MgPSBmdW5jdGlvbiBvYmpQb3MobWF0Y2gpIHtcblx0ICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBmdW5jdGlvbkxpc3QubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcblx0ICAgICAgaWYgKGZ1bmN0aW9uTGlzdFtpXS5mbiA9PT0gbWF0Y2gpIHtcblx0ICAgICAgICByZXR1cm4gaTtcblx0ICAgICAgfVxuXHQgICAgfVxuXHQgIH07XG5cblx0ICB2YXIgZGV0ZWN0U2Nyb2xsaW5nID0gZnVuY3Rpb24gZGV0ZWN0U2Nyb2xsaW5nKGV2ZW50KSB7XG5cdCAgICBpZiAobW91c2VQb3MueCAhPT0gZXZlbnQuc2NyZWVuWCB8fCBtb3VzZVBvcy55ICE9PSBldmVudC5zY3JlZW5ZKSB7XG5cdCAgICAgIGlzU2Nyb2xsaW5nID0gZmFsc2U7XG5cblx0ICAgICAgbW91c2VQb3MueCA9IGV2ZW50LnNjcmVlblg7XG5cdCAgICAgIG1vdXNlUG9zLnkgPSBldmVudC5zY3JlZW5ZO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgaXNTY3JvbGxpbmcgPSB0cnVlO1xuXHQgICAgfVxuXHQgIH07XG5cblx0ICAvLyBtYW51YWwgdmVyc2lvbiBvZiBgY2xvc2VzdCgpYFxuXHQgIHZhciBjaGVja0Nsb3Nlc3QgPSBmdW5jdGlvbiBjaGVja0Nsb3Nlc3QoZWxlbSwgdGFnKSB7XG5cdCAgICB2YXIgRWxlbWVudFByb3RvdHlwZSA9IHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZTtcblxuXHQgICAgaWYgKCFFbGVtZW50UHJvdG90eXBlLm1hdGNoZXMpIHtcblx0ICAgICAgRWxlbWVudFByb3RvdHlwZS5tYXRjaGVzID0gRWxlbWVudFByb3RvdHlwZS5tc01hdGNoZXNTZWxlY3RvciB8fCBFbGVtZW50UHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3Rvcjtcblx0ICAgIH1cblxuXHQgICAgaWYgKCFFbGVtZW50UHJvdG90eXBlLmNsb3Nlc3QpIHtcblx0ICAgICAgZG8ge1xuXHQgICAgICAgIGlmIChlbGVtLm1hdGNoZXModGFnKSkge1xuXHQgICAgICAgICAgcmV0dXJuIGVsZW07XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgZWxlbSA9IGVsZW0ucGFyZW50RWxlbWVudCB8fCBlbGVtLnBhcmVudE5vZGU7XG5cdCAgICAgIH0gd2hpbGUgKGVsZW0gIT09IG51bGwgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSk7XG5cblx0ICAgICAgcmV0dXJuIG51bGw7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICByZXR1cm4gZWxlbS5jbG9zZXN0KHRhZyk7XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIC8qXG5cdCAgICogaW5pdFxuXHQgICAqL1xuXG5cdCAgLy8gZG9uJ3Qgc3RhcnQgc2NyaXB0IHVubGVzcyBicm93c2VyIGN1dHMgdGhlIG11c3RhcmRcblx0ICAvLyAoYWxzbyBwYXNzZXMgaWYgcG9seWZpbGxzIGFyZSB1c2VkKVxuXHQgIGlmICgnYWRkRXZlbnRMaXN0ZW5lcicgaW4gd2luZG93ICYmIEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSB7XG5cdCAgICBzZXRVcCgpO1xuXHQgIH1cblxuXHQgIC8qXG5cdCAgICogYXBpXG5cdCAgICovXG5cblx0ICByZXR1cm4ge1xuXHQgICAgLy8gcmV0dXJucyBzdHJpbmc6IHRoZSBjdXJyZW50IGlucHV0IHR5cGVcblx0ICAgIC8vIG9wdDogJ2ludGVudCd8J2lucHV0J1xuXHQgICAgLy8gJ2lucHV0JyAoZGVmYXVsdCk6IHJldHVybnMgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIGBkYXRhLXdoYXRpbnB1dGAgYXR0cmlidXRlXG5cdCAgICAvLyAnaW50ZW50JzogaW5jbHVkZXMgYGRhdGEtd2hhdGludGVudGAgdmFsdWUgaWYgaXQncyBkaWZmZXJlbnQgdGhhbiBgZGF0YS13aGF0aW5wdXRgXG5cdCAgICBhc2s6IGZ1bmN0aW9uIGFzayhvcHQpIHtcblx0ICAgICAgcmV0dXJuIG9wdCA9PT0gJ2ludGVudCcgPyBjdXJyZW50SW50ZW50IDogY3VycmVudElucHV0O1xuXHQgICAgfSxcblxuXHQgICAgLy8gcmV0dXJucyBzdHJpbmc6IHRoZSBjdXJyZW50bHkgZm9jdXNlZCBlbGVtZW50IG9yIG51bGxcblx0ICAgIGVsZW1lbnQ6IGZ1bmN0aW9uIGVsZW1lbnQoKSB7XG5cdCAgICAgIHJldHVybiBjdXJyZW50RWxlbWVudDtcblx0ICAgIH0sXG5cblx0ICAgIC8vIG92ZXJ3cml0ZXMgaWdub3JlZCBrZXlzIHdpdGggcHJvdmlkZWQgYXJyYXlcblx0ICAgIGlnbm9yZUtleXM6IGZ1bmN0aW9uIGlnbm9yZUtleXMoYXJyKSB7XG5cdCAgICAgIGlnbm9yZU1hcCA9IGFycjtcblx0ICAgIH0sXG5cblx0ICAgIC8vIG92ZXJ3cml0ZXMgc3BlY2lmaWMgY2hhciBrZXlzIHRvIHVwZGF0ZSBvblxuXHQgICAgc3BlY2lmaWNLZXlzOiBmdW5jdGlvbiBzcGVjaWZpY0tleXMoYXJyKSB7XG5cdCAgICAgIHNwZWNpZmljTWFwID0gYXJyO1xuXHQgICAgfSxcblxuXHQgICAgLy8gYXR0YWNoIGZ1bmN0aW9ucyB0byBpbnB1dCBhbmQgaW50ZW50IFwiZXZlbnRzXCJcblx0ICAgIC8vIGZ1bmN0OiBmdW5jdGlvbiB0byBmaXJlIG9uIGNoYW5nZVxuXHQgICAgLy8gZXZlbnRUeXBlOiAnaW5wdXQnfCdpbnRlbnQnXG5cdCAgICByZWdpc3Rlck9uQ2hhbmdlOiBmdW5jdGlvbiByZWdpc3Rlck9uQ2hhbmdlKGZuLCBldmVudFR5cGUpIHtcblx0ICAgICAgZnVuY3Rpb25MaXN0LnB1c2goe1xuXHQgICAgICAgIGZuOiBmbixcblx0ICAgICAgICB0eXBlOiBldmVudFR5cGUgfHwgJ2lucHV0J1xuXHQgICAgICB9KTtcblx0ICAgIH0sXG5cblx0ICAgIHVuUmVnaXN0ZXJPbkNoYW5nZTogZnVuY3Rpb24gdW5SZWdpc3Rlck9uQ2hhbmdlKGZuKSB7XG5cdCAgICAgIHZhciBwb3NpdGlvbiA9IG9ialBvcyhmbik7XG5cblx0ICAgICAgaWYgKHBvc2l0aW9uIHx8IHBvc2l0aW9uID09PSAwKSB7XG5cdCAgICAgICAgZnVuY3Rpb25MaXN0LnNwbGljZShwb3NpdGlvbiwgMSk7XG5cdCAgICAgIH1cblx0ICAgIH0sXG5cblx0ICAgIGNsZWFyU3RvcmFnZTogZnVuY3Rpb24gY2xlYXJTdG9yYWdlKCkge1xuXHQgICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTtcblx0ICAgIH1cblx0ICB9O1xuXHR9KCk7XG5cbi8qKiovIH0pXG4vKioqKioqLyBdKVxufSk7XG47Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///88\n")}},__webpack_module_cache__={};function __webpack_require__(e){var n=__webpack_module_cache__[e];if(void 0!==n)return n.exports;var t=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.exports}__webpack_require__.d=(e,n)=>{for(var t in n)__webpack_require__.o(n,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},__webpack_require__.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__(24);QPPStyle=__webpack_exports__})();