@madie/madie-design-system 1.2.97 → 1.2.99

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;// ./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;// ./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) // removed by dead control flow\n{}\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) // removed by dead control flow\n{} ////////////////////////////////////////////////////////////////////////////////\n\n/* harmony default export */ const reach_portal_esm = (Portal);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzQxLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQThDOztBQUU5QztBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0IsMEJBQVE7QUFDMUI7O0FBRUEsU0FBUyw2QkFBVztBQUNwQjtBQUNBLEdBQUc7QUFDSDs7QUFFMEI7OztBQ2YrQjtBQUM2QjtBQUN2QjtBQUN0QjtBQUNOOztBQUVuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0Isd0JBQU07QUFDeEIsbUJBQW1CLHdCQUFNO0FBQ3pCLG9CQUFvQixjQUFjOztBQUVsQyxNQUFNLEtBQXFDLEVBQUU7QUFBQSxFQVExQzs7QUFFSCxFQUFFLGtGQUF5QjtBQUMzQjtBQUNBLG9DQUFvQztBQUNwQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCwyQ0FBMkMsOEJBQVksOENBQThDLCtCQUFhO0FBQ2xIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQSxJQUFJLEtBQXFDLEVBQUU7QUFBQSxFQUUxQyxDQUFDOztBQUVGLHVEQUFlLE1BQU0sRUFBQztBQUNKIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL3VzZS1mb3JjZS11cGRhdGUvZGlzdC9yZWFjaC11dGlscy11c2UtZm9yY2UtdXBkYXRlLmVzbS5qcz82OTFiIiwid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL0ByZWFjaC9wb3J0YWwvZGlzdC9yZWFjaC1wb3J0YWwuZXNtLmpzP2RkYzgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuXG4vKipcbiAqIEZvcmNlcyBhIHJlLXJlbmRlciwgc2ltaWxhciB0byBgZm9yY2VVcGRhdGVgIGluIGNsYXNzIGNvbXBvbmVudHMuXG4gKi9cblxuZnVuY3Rpb24gdXNlRm9yY2VVcGRhdGUoKSB7XG4gIHZhciBfdXNlU3RhdGUgPSB1c2VTdGF0ZShPYmplY3QuY3JlYXRlKG51bGwpKSxcbiAgICAgIGRpc3BhdGNoID0gX3VzZVN0YXRlWzFdO1xuXG4gIHJldHVybiB1c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgZGlzcGF0Y2goT2JqZWN0LmNyZWF0ZShudWxsKSk7XG4gIH0sIFtdKTtcbn1cblxuZXhwb3J0IHsgdXNlRm9yY2VVcGRhdGUgfTtcbiIsImltcG9ydCB7IHVzZVJlZiwgdXNlRWZmZWN0LCBjcmVhdGVFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCB9IGZyb20gJ0ByZWFjaC91dGlscy91c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0JztcbmltcG9ydCB7IHVzZUZvcmNlVXBkYXRlIH0gZnJvbSAnQHJlYWNoL3V0aWxzL3VzZS1mb3JjZS11cGRhdGUnO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB3YXJuaW5nIGZyb20gJ3Rpbnktd2FybmluZyc7XG5cbi8qKlxuICogV2VsY29tZSB0byBAcmVhY2gvcG9ydGFsIVxuICpcbiAqIENyZWF0ZXMgYW5kIGFwcGVuZHMgYSBET00gbm9kZSB0byB0aGUgZW5kIG9mIGBkb2N1bWVudC5ib2R5YCBhbmQgcmVuZGVycyBhXG4gKiBSZWFjdCB0cmVlIGludG8gaXQuIFVzZWZ1bCBmb3IgcmVuZGVyaW5nIGEgbmF0dXJhbCBSZWFjdCBlbGVtZW50IGhpZXJhcmNoeVxuICogd2l0aCBhIGRpZmZlcmVudCBET00gaGllcmFyY2h5IHRvIHByZXZlbnQgcGFyZW50IHN0eWxlcyBmcm9tIGNsaXBwaW5nIG9yXG4gKiBoaWRpbmcgY29udGVudCAoZm9yIHBvcG92ZXJzLCBkcm9wZG93bnMsIGFuZCBtb2RhbHMpLlxuICpcbiAqIEBzZWUgRG9jcyAgIGh0dHBzOi8vcmVhY2gudGVjaC9wb3J0YWxcbiAqIEBzZWUgU291cmNlIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjaC9yZWFjaC11aS90cmVlL21haW4vcGFja2FnZXMvcG9ydGFsXG4gKiBAc2VlIFJlYWN0ICBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcG9ydGFscy5odG1sXG4gKi9cbi8qKlxuICogUG9ydGFsXG4gKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC9wb3J0YWwjcG9ydGFsXG4gKi9cblxudmFyIFBvcnRhbCA9IGZ1bmN0aW9uIFBvcnRhbChfcmVmKSB7XG4gIHZhciBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW4sXG4gICAgICBfcmVmJHR5cGUgPSBfcmVmLnR5cGUsXG4gICAgICB0eXBlID0gX3JlZiR0eXBlID09PSB2b2lkIDAgPyBcInJlYWNoLXBvcnRhbFwiIDogX3JlZiR0eXBlLFxuICAgICAgY29udGFpbmVyUmVmID0gX3JlZi5jb250YWluZXJSZWY7XG4gIHZhciBtb3VudE5vZGUgPSB1c2VSZWYobnVsbCk7XG4gIHZhciBwb3J0YWxOb2RlID0gdXNlUmVmKG51bGwpO1xuICB2YXIgZm9yY2VVcGRhdGUgPSB1c2VGb3JjZVVwZGF0ZSgpO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKGNvbnRhaW5lclJlZiAhPSBudWxsKSB7XG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHdhcm5pbmcodHlwZW9mIGNvbnRhaW5lclJlZiA9PT0gXCJvYmplY3RcIiAmJiBcImN1cnJlbnRcIiBpbiBjb250YWluZXJSZWYsIFwiQHJlYWNoL3BvcnRhbDogSW52YWxpZCB2YWx1ZSBwYXNzZWQgdG8gdGhlIGBjb250YWluZXJSZWZgIG9mIGEgXCIgKyBcImBQb3J0YWxgLiBUaGUgcG9ydGFsIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIGRvY3VtZW50IGJvZHksIGJ1dCBpZiBcIiArIFwieW91IHdhbnQgdG8gYXR0YWNoIGl0IHRvIGFub3RoZXIgRE9NIG5vZGUgeW91IG11c3QgcGFzcyBhIHZhbGlkIFwiICsgXCJSZWFjdCByZWYgb2JqZWN0IHRvIGBjb250YWluZXJSZWZgLlwiKSA6IHZvaWQgMDtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyhjb250YWluZXJSZWYgPyBjb250YWluZXJSZWYuY3VycmVudCAhPSBudWxsIDogdHJ1ZSwgXCJAcmVhY2gvcG9ydGFsOiBBIHJlZiB3YXMgcGFzc2VkIHRvIHRoZSBgY29udGFpbmVyUmVmYCBwcm9wIG9mIGEgXCIgKyBcImBQb3J0YWxgLCBidXQgbm8gRE9NIG5vZGUgd2FzIGF0dGFjaGVkIHRvIGl0LiBCZSBzdXJlIHRvIHBhc3MgdGhlIFwiICsgXCJyZWYgdG8gYSBET00gY29tcG9uZW50LlxcblxcbklmIHlvdSBhcmUgZm9yd2FyZGluZyB0aGUgcmVmIGZyb20gXCIgKyBcImFub3RoZXIgY29tcG9uZW50LCBiZSBzdXJlIHRvIHVzZSB0aGUgUmVhY3QuZm9yd2FyZFJlZiBBUEkuIFwiICsgXCJTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2ZvcndhcmRpbmctcmVmcy5odG1sLlwiKSA6IHZvaWQgMDtcbiAgICAgIH1cbiAgICB9LCBbY29udGFpbmVyUmVmXSk7XG4gIH1cblxuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAvLyBUaGlzIHJlZiBtYXkgYmUgbnVsbCB3aGVuIGEgaG90LWxvYWRlciByZXBsYWNlcyBjb21wb25lbnRzIG9uIHRoZSBwYWdlXG4gICAgaWYgKCFtb3VudE5vZGUuY3VycmVudCkgcmV0dXJuOyAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGNvbnRlbnQgb2YgdGhlIHBvcnRhbCBoYXMsIGl0c2VsZiwgYmVlbiBwb3J0YWxlZC5cbiAgICAvLyBJbiB0aGF0IGNhc2UsIGl0J3MgaW1wb3J0YW50IHRvIGFwcGVuZCB0byB0aGUgY29ycmVjdCBkb2N1bWVudCBlbGVtZW50LlxuXG4gICAgdmFyIG93bmVyRG9jdW1lbnQgPSBtb3VudE5vZGUuY3VycmVudC5vd25lckRvY3VtZW50O1xuICAgIHZhciBib2R5ID0gKGNvbnRhaW5lclJlZiA9PSBudWxsID8gdm9pZCAwIDogY29udGFpbmVyUmVmLmN1cnJlbnQpIHx8IG93bmVyRG9jdW1lbnQuYm9keTtcbiAgICBwb3J0YWxOb2RlLmN1cnJlbnQgPSBvd25lckRvY3VtZW50ID09IG51bGwgPyB2b2lkIDAgOiBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodHlwZSk7XG4gICAgYm9keS5hcHBlbmRDaGlsZChwb3J0YWxOb2RlLmN1cnJlbnQpO1xuICAgIGZvcmNlVXBkYXRlKCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChwb3J0YWxOb2RlLmN1cnJlbnQgJiYgYm9keSkge1xuICAgICAgICBib2R5LnJlbW92ZUNoaWxkKHBvcnRhbE5vZGUuY3VycmVudCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW3R5cGUsIGZvcmNlVXBkYXRlLCBjb250YWluZXJSZWZdKTtcbiAgcmV0dXJuIHBvcnRhbE5vZGUuY3VycmVudCA/IC8qI19fUFVSRV9fKi9jcmVhdGVQb3J0YWwoY2hpbGRyZW4sIHBvcnRhbE5vZGUuY3VycmVudCkgOiAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgIHJlZjogbW91bnROb2RlXG4gIH0pO1xufTtcbi8qKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC9wb3J0YWwjcG9ydGFsLXByb3BzXG4gKi9cblxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIFBvcnRhbC5kaXNwbGF5TmFtZSA9IFwiUG9ydGFsXCI7XG59IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBkZWZhdWx0IFBvcnRhbDtcbmV4cG9ydCB7IFBvcnRhbCB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///741\n\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;// ./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;// ./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;// ./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;// ./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;// ./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 = (/* unused pure expression or super */ null && ({}));\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) // removed by dead control flow\n{ 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) // removed by dead control flow\n{ 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) // removed by dead control flow\n{ 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) // removed by dead control flow\n{ var nameCache, controlledRef; }\n}\n\n\n\n;// ./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;// ./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;// ./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;// ./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) // removed by dead control flow\n{} ////////////////////////////////////////////////////////////////////////////////\n\n/* harmony default export */ const reach_visually_hidden_esm = ((/* unused pure expression or super */ null && (VisuallyHidden)));\n\n\n;// ./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;// ./node_modules/@reach/rect/dist/reach-rect.esm.js\n/* unused harmony import specifier */ var useRef;\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) // removed by dead control flow\n{} ////////////////////////////////////////////////////////////////////////////////\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) // removed by dead control flow\n{}\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) // removed by dead control flow\n{}\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;// ./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) // removed by dead control flow\n{} ////////////////////////////////////////////////////////////////////////////////\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) // removed by dead control flow\n{}\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) // removed by dead control flow\n{} ////////////////////////////////////////////////////////////////////////////////\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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Q0E7O0FBRUEsOEJBQThCLHFCQUFxQjtBQUNuRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSwyQkFBUztBQUNYO0FBQ0E7QUFDQTs7QUFFQSx3QkFBd0IsZ0JBQWdCOztBQUV4QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHNFQUFzRTtBQUN0RSxtQkFBbUIsZ0RBQWdEO0FBQ25FOztBQUVBO0FBQ0EsV0FBVyx5QkFBUSxHQUFHO0FBQ3RCO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG9CQUFvQiw4Q0FBNkIscUJBQXFCOzs7QUFHdEUsZ0JBQWdCLHlCQUFRLEdBQUc7O0FBRTNCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRix3REFBZSxPQUFPLEVBQUM7QUFDMEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvYXV0by1pZC9kaXN0L3JlYWNoLWF1dG8taWQuZXNtLmpzPzI4N2EiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL293bmVyLWRvY3VtZW50L2Rpc3QvcmVhY2gtdXRpbHMtb3duZXItZG9jdW1lbnQuZXNtLmpzP2E3NmMiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL2dldC1kb2N1bWVudC1kaW1lbnNpb25zL2Rpc3QvcmVhY2gtdXRpbHMtZ2V0LWRvY3VtZW50LWRpbWVuc2lvbnMuZXNtLmpzPzc5ZDgiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL21ha2UtaWQvZGlzdC9yZWFjaC11dGlscy1tYWtlLWlkLmVzbS5qcz9kODg2Iiwid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL0ByZWFjaC91dGlscy9kZXYtdXRpbHMvZGlzdC9yZWFjaC11dGlscy1kZXYtdXRpbHMuZXNtLmpzPzY1YjUiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL3R5cGUtY2hlY2svZGlzdC9yZWFjaC11dGlscy10eXBlLWNoZWNrLmVzbS5qcz9iOGVhIiwid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL0ByZWFjaC91dGlscy9jb21wb3NlLXJlZnMvZGlzdC9yZWFjaC11dGlscy1jb21wb3NlLXJlZnMuZXNtLmpzP2E2MzAiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL2NvbXBvc2UtZXZlbnQtaGFuZGxlcnMvZGlzdC9yZWFjaC11dGlscy1jb21wb3NlLWV2ZW50LWhhbmRsZXJzLmVzbS5qcz9mMTljIiwid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL0ByZWFjaC92aXN1YWxseS1oaWRkZW4vZGlzdC9yZWFjaC12aXN1YWxseS1oaWRkZW4uZXNtLmpzP2U5NzQiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL29ic2VydmUtcmVjdC9kaXN0L29ic2VydmUtcmVjdC5lc20uanM/NDRiYSIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvcmVjdC9kaXN0L3JlYWNoLXJlY3QuZXNtLmpzP2NiZjciLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3Rvb2x0aXAvZGlzdC9yZWFjaC10b29sdGlwLmVzbS5qcz9lMjY4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH0gZnJvbSAnQHJlYWNoL3V0aWxzL3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QnO1xuXG4vKlxuICogV2VsY29tZSB0byBAcmVhY2gvYXV0by1pZCFcblxuICogTGV0J3Mgc2VlIGlmIHdlIGNhbiBtYWtlIHNlbnNlIG9mIHdoeSB0aGlzIGhvb2sgZXhpc3RzIGFuZCBpdHNcbiAqIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIFNvbWUgYmFja2dyb3VuZDpcbiAqICAgMS4gQWNjZXNzaWJpbGl0eSBBUElzIHJlbHkgaGVhdmlseSBvbiBlbGVtZW50IElEc1xuICogICAyLiBSZXF1aXJpbmcgZGV2ZWxvcGVycyB0byBwdXQgSURzIG9uIGV2ZXJ5IGVsZW1lbnQgaW4gUmVhY2ggVUkgaXMgYm90aFxuICogICAgICBjdW1iZXJzb21lIGFuZCBlcnJvci1wcm9uZVxuICogICAzLiBXaXRoIGEgY29tcG9uZW50IG1vZGVsLCB3ZSBjYW4gZ2VuZXJhdGUgSURzIGZvciB0aGVtIVxuICpcbiAqIFNvbHV0aW9uIDE6IEdlbmVyYXRlIHJhbmRvbSBJRHMuXG4gKlxuICogVGhpcyB3b3JrcyBncmVhdCBhcyBsb25nIGFzIHlvdSBkb24ndCBzZXJ2ZXIgcmVuZGVyIHlvdXIgYXBwLiBXaGVuIFJlYWN0IChpblxuICogdGhlIGNsaWVudCkgdHJpZXMgdG8gcmV1c2UgdGhlIG1hcmt1cCBmcm9tIHRoZSBzZXJ2ZXIsIHRoZSBJRHMgd29uJ3QgbWF0Y2hcbiAqIGFuZCBSZWFjdCB3aWxsIHRoZW4gcmVjcmVhdGUgdGhlIGVudGlyZSBET00gdHJlZS5cbiAqXG4gKiBTb2x1dGlvbiAyOiBJbmNyZW1lbnQgYW4gaW50ZWdlclxuICpcbiAqIFRoaXMgc291bmRzIGdyZWF0LiBTaW5jZSB3ZSdyZSByZW5kZXJpbmcgdGhlIGV4YWN0IHNhbWUgdHJlZSBvbiB0aGUgc2VydmVyXG4gKiBhbmQgY2xpZW50LCB3ZSBjYW4gaW5jcmVtZW50IGEgY291bnRlciBhbmQgZ2V0IGEgZGV0ZXJtaW5pc3RpYyByZXN1bHQgYmV0d2VlblxuICogY2xpZW50IGFuZCBzZXJ2ZXIuIEFsc28sIEpTIGludGVnZXJzIGNhbiBnbyB1cCB0byBuaW5lLXF1YWRyaWxsaW9uLiBJJ21cbiAqIHByZXR0eSBzdXJlIHRoZSB0YWIgd2lsbCBiZSBjbG9zZWQgYmVmb3JlIGFuIGFwcCBuZXZlciBuZWVkc1xuICogMTAgcXVhZHJpbGxpb24gSURzIVxuICpcbiAqIFByb2JsZW0gc29sdmVkLCByaWdodD9cbiAqXG4gKiBBaCwgYnV0IHRoZXJlJ3MgYSBjYXRjaCEgUmVhY3QncyBjb25jdXJyZW50IHJlbmRlcmluZyBtYWtlcyB0aGlzIGFwcHJvYWNoXG4gKiBub24tZGV0ZXJtaW5pc3RpYy4gV2hpbGUgdGhlIGNsaWVudCBhbmQgc2VydmVyIHdpbGwgZW5kIHVwIHdpdGggdGhlIHNhbWVcbiAqIGVsZW1lbnRzIGluIHRoZSBlbmQsIGRlcGVuZGluZyBvbiBzdXNwZW5zZSBib3VuZGFyaWVzIChhbmQgcG9zc2libHkgc29tZSB1c2VyXG4gKiBpbnB1dCBkdXJpbmcgdGhlIGluaXRpYWwgcmVuZGVyKSB0aGUgaW5jcmVtZW50aW5nIGludGVnZXJzIHdvbid0IGFsd2F5cyBtYXRjaFxuICogdXAuXG4gKlxuICogU29sdXRpb24gMzogRG9uJ3QgdXNlIElEcyBhdCBhbGwgb24gdGhlIHNlcnZlcjsgcGF0Y2ggYWZ0ZXIgZmlyc3QgcmVuZGVyLlxuICpcbiAqIFdoYXQgd2UndmUgZG9uZSBoZXJlIGlzIHNvbHV0aW9uIDIgd2l0aCBzb21lIHRyaWNrcy4gV2l0aCB0aGlzIGFwcHJvYWNoLCB0aGVcbiAqIElEIHJldHVybmVkIGlzIGFuIGVtcHR5IHN0cmluZyBvbiB0aGUgZmlyc3QgcmVuZGVyLiBUaGlzIHdheSB0aGUgc2VydmVyIGFuZFxuICogY2xpZW50IGhhdmUgdGhlIHNhbWUgbWFya3VwIG5vIG1hdHRlciBob3cgd2lsZCB0aGUgY29uY3VycmVudCByZW5kZXJpbmcgbWF5XG4gKiBoYXZlIGdvdHRlbi5cbiAqXG4gKiBBZnRlciB0aGUgcmVuZGVyLCB3ZSBwYXRjaCB1cCB0aGUgY29tcG9uZW50cyB3aXRoIGFuIGluY3JlbWVudGVkIElELiBUaGlzXG4gKiBjYXVzZXMgYSBkb3VibGUgcmVuZGVyIG9uIGFueSBjb21wb25lbnRzIHdpdGggYHVzZUlkYC4gU2hvdWxkbid0IGJlIGEgcHJvYmxlbVxuICogc2luY2UgdGhlIGNvbXBvbmVudHMgdXNpbmcgdGhpcyBob29rIHNob3VsZCBiZSBzbWFsbCwgYW5kIHdlJ3JlIG9ubHkgdXBkYXRpbmdcbiAqIHRoZSBJRCBhdHRyaWJ1dGUgb24gdGhlIERPTSwgbm90aGluZyBiaWcgaXMgaGFwcGVuaW5nLlxuICpcbiAqIEl0IGRvZXNuJ3QgaGF2ZSB0byBiZSBhbiBpbmNyZW1lbnRlZCBudW1iZXIsIHRob3VnaC0td2UgY291bGQgZG8gZ2VuZXJhdGVcbiAqIHJhbmRvbSBzdHJpbmdzIGluc3RlYWQsIGJ1dCBpbmNyZW1lbnRpbmcgYSBudW1iZXIgaXMgcHJvYmFibHkgdGhlIGNoZWFwZXN0XG4gKiB0aGluZyB3ZSBjYW4gZG8uXG4gKlxuICogQWRkaXRpb25hbGx5LCB3ZSBvbmx5IGRvIHRoaXMgcGF0Y2h1cCBvbiB0aGUgdmVyeSBmaXJzdCBjbGllbnQgcmVuZGVyIGV2ZXIuXG4gKiBBbnkgY2FsbHMgdG8gYHVzZUlkYCB0aGF0IGhhcHBlbiBkeW5hbWljYWxseSBpbiB0aGUgY2xpZW50IHdpbGwgYmVcbiAqIHBvcHVsYXRlZCBpbW1lZGlhdGVseSB3aXRoIGEgdmFsdWUuIFNvLCB3ZSBvbmx5IGdldCB0aGUgZG91YmxlIHJlbmRlciBhZnRlclxuICogc2VydmVyIGh5ZHJhdGlvbiBhbmQgbmV2ZXIgYWdhaW4sIFNPIEJBQ0sgT0ZGIEFMUklHSFQ/XG4gKi9cbnZhciBzZXJ2ZXJIYW5kb2ZmQ29tcGxldGUgPSBmYWxzZTtcbnZhciBpZCA9IDA7XG5cbnZhciBnZW5JZCA9IGZ1bmN0aW9uIGdlbklkKCkge1xuICByZXR1cm4gKytpZDtcbn07XG4vKipcbiAqIHVzZUlkXG4gKlxuICogQXV0b2dlbmVyYXRlIElEcyB0byBmYWNpbGl0YXRlIFdBSS1BUklBIGFuZCBzZXJ2ZXIgcmVuZGVyaW5nLlxuICpcbiAqIE5vdGU6IFRoZSByZXR1cm5lZCBJRCB3aWxsIGluaXRpYWxseSBiZSBgbnVsbGAgYW5kIHdpbGwgdXBkYXRlIGFmdGVyIGFcbiAqIGNvbXBvbmVudCBtb3VudHMuIFVzZXJzIG1heSBuZWVkIHRvIHN1cHBseSB0aGVpciBvd24gSUQgaWYgdGhleSBuZWVkXG4gKiBjb25zaXN0ZW50IHZhbHVlcyBmb3IgU1NSLlxuICpcbiAqIEBzZWUgRG9jcyBodHRwczovL3JlYWNoLnRlY2gvYXV0by1pZFxuICovXG5cblxuZnVuY3Rpb24gdXNlSWQoaWRGcm9tUHJvcHMpIHtcbiAgLypcbiAgICogSWYgdGhpcyBpbnN0YW5jZSBpc24ndCBwYXJ0IG9mIHRoZSBpbml0aWFsIHJlbmRlciwgd2UgZG9uJ3QgaGF2ZSB0byBkbyB0aGVcbiAgICogZG91YmxlIHJlbmRlci9wYXRjaC11cCBkYW5jZS4gV2UgY2FuIGp1c3QgZ2VuZXJhdGUgdGhlIElEIGFuZCByZXR1cm4gaXQuXG4gICAqL1xuICB2YXIgaW5pdGlhbElkID0gaWRGcm9tUHJvcHMgfHwgKHNlcnZlckhhbmRvZmZDb21wbGV0ZSA/IGdlbklkKCkgOiBudWxsKTtcblxuICB2YXIgX1JlYWN0JHVzZVN0YXRlID0gdXNlU3RhdGUoaW5pdGlhbElkKSxcbiAgICAgIGlkID0gX1JlYWN0JHVzZVN0YXRlWzBdLFxuICAgICAgc2V0SWQgPSBfUmVhY3QkdXNlU3RhdGVbMV07XG5cbiAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGlkID09PSBudWxsKSB7XG4gICAgICAvKlxuICAgICAgICogUGF0Y2ggdGhlIElEIGFmdGVyIHJlbmRlci4gV2UgZG8gdGhpcyBpbiBgdXNlTGF5b3V0RWZmZWN0YCB0byBhdm9pZCBhbnlcbiAgICAgICAqIHJlbmRlcmluZyBmbGlja2VyLCB0aG91Z2ggaXQnbGwgbWFrZSB0aGUgZmlyc3QgcmVuZGVyIHNsb3dlciAodW5saWtlbHlcbiAgICAgICAqIHRvIG1hdHRlciwgYnV0IHlvdSdyZSB3ZWxjb21lIHRvIG1lYXN1cmUgeW91ciBhcHAgYW5kIGxldCB1cyBrbm93IGlmXG4gICAgICAgKiBpdCdzIGEgcHJvYmxlbSkuXG4gICAgICAgKi9cbiAgICAgIHNldElkKGdlbklkKCkpO1xuICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuXG4gIH0sIFtdKTtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoc2VydmVySGFuZG9mZkNvbXBsZXRlID09PSBmYWxzZSkge1xuICAgICAgLypcbiAgICAgICAqIEZsYWcgYWxsIGZ1dHVyZSB1c2VzIG9mIGB1c2VJZGAgdG8gc2tpcCB0aGUgdXBkYXRlIGRhbmNlLiBUaGlzIGlzIGluXG4gICAgICAgKiBgdXNlRWZmZWN0YCBiZWNhdXNlIGl0IGdvZXMgYWZ0ZXIgYHVzZUxheW91dEVmZmVjdGAsIGVuc3VyaW5nIHdlIGRvbid0XG4gICAgICAgKiBhY2NpZGVudGFsbHkgYmFpbCBvdXQgb2YgdGhlIHBhdGNoLXVwIGRhbmNlIHByZW1hdHVyZWx5LlxuICAgICAgICovXG4gICAgICBzZXJ2ZXJIYW5kb2ZmQ29tcGxldGUgPSB0cnVlO1xuICAgIH1cbiAgfSwgW10pO1xuICByZXR1cm4gaWQgIT0gbnVsbCA/IFN0cmluZyhpZCkgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCB7IHVzZUlkIH07XG4iLCJpbXBvcnQgeyBjYW5Vc2VET00gfSBmcm9tICcuLi8uLi9jYW4tdXNlLWRvbS9kaXN0L3JlYWNoLXV0aWxzLWNhbi11c2UtZG9tLmVzbS5qcyc7XG5cbi8qKlxuICogR2V0IGFuIGVsZW1lbnQncyBvd25lciBkb2N1bWVudC4gVXNlZnVsIHdoZW4gY29tcG9uZW50cyBhcmUgdXNlZCBpbiBpZnJhbWVzXG4gKiBvciBvdGhlciBlbnZpcm9ubWVudHMgbGlrZSBkZXYgdG9vbHMuXG4gKlxuICogQHBhcmFtIGVsZW1lbnRcbiAqL1xuXG5mdW5jdGlvbiBnZXRPd25lckRvY3VtZW50KGVsZW1lbnQpIHtcbiAgcmV0dXJuIGNhblVzZURPTSgpID8gZWxlbWVudCA/IGVsZW1lbnQub3duZXJEb2N1bWVudCA6IGRvY3VtZW50IDogbnVsbDtcbn1cbi8qKlxuICogVE9ETzogUmVtb3ZlIGluIDEuMFxuICovXG5cbmZ1bmN0aW9uIGdldE93bmVyV2luZG93KGVsZW1lbnQpIHtcbiAgdmFyIG93bmVyRG9jdW1lbnQgPSBnZXRPd25lckRvY3VtZW50KGVsZW1lbnQpO1xuICByZXR1cm4gb3duZXJEb2N1bWVudCA/IG93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgfHwgd2luZG93IDogbnVsbDtcbn1cblxuZXhwb3J0IHsgZ2V0T3duZXJEb2N1bWVudCwgZ2V0T3duZXJXaW5kb3cgfTtcbiIsImltcG9ydCB7IGdldE93bmVyRG9jdW1lbnQgfSBmcm9tICcuLi8uLi9vd25lci1kb2N1bWVudC9kaXN0L3JlYWNoLXV0aWxzLW93bmVyLWRvY3VtZW50LmVzbS5qcyc7XG5pbXBvcnQgJy4uLy4uL2Nhbi11c2UtZG9tL2Rpc3QvcmVhY2gtdXRpbHMtY2FuLXVzZS1kb20uZXNtLmpzJztcblxuLyoqXG4gKiBHZXQgdGhlIHNpemUgb2YgdGhlIHdvcmtpbmcgZG9jdW1lbnQgbWludXMgdGhlIHNjcm9sbGJhciBvZmZzZXQuXG4gKlxuICogQHBhcmFtIGVsZW1lbnRcbiAqL1xuXG5mdW5jdGlvbiBnZXREb2N1bWVudERpbWVuc2lvbnMoZWxlbWVudCkge1xuICB2YXIgX293bmVyRG9jdW1lbnQkZG9jdW1lLCBfb3duZXJEb2N1bWVudCRkb2N1bWUyO1xuXG4gIHZhciBvd25lckRvY3VtZW50ID0gZ2V0T3duZXJEb2N1bWVudChlbGVtZW50KTtcbiAgdmFyIG93bmVyV2luZG93ID0gb3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyB8fCB3aW5kb3c7XG5cbiAgaWYgKCFvd25lckRvY3VtZW50KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpZHRoOiAwLFxuICAgICAgaGVpZ2h0OiAwXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgd2lkdGg6IChfb3duZXJEb2N1bWVudCRkb2N1bWUgPSBvd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkgIT0gbnVsbCA/IF9vd25lckRvY3VtZW50JGRvY3VtZSA6IG93bmVyV2luZG93LmlubmVyV2lkdGgsXG4gICAgaGVpZ2h0OiAoX293bmVyRG9jdW1lbnQkZG9jdW1lMiA9IG93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkgIT0gbnVsbCA/IF9vd25lckRvY3VtZW50JGRvY3VtZTIgOiBvd25lcldpbmRvdy5pbm5lckhlaWdodFxuICB9O1xufVxuXG5leHBvcnQgeyBnZXREb2N1bWVudERpbWVuc2lvbnMgfTtcbiIsIi8qKlxuICogSm9pbnMgc3RyaW5ncyB0byBmb3JtYXQgSURzIGZvciBjb21wb3VuZCBjb21wb25lbnRzLlxuICpcbiAqIEBwYXJhbSBhcmdzXG4gKi9cbmZ1bmN0aW9uIG1ha2VJZCgpIHtcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgfVxuXG4gIHJldHVybiBhcmdzLmZpbHRlcihmdW5jdGlvbiAodmFsKSB7XG4gICAgcmV0dXJuIHZhbCAhPSBudWxsO1xuICB9KS5qb2luKFwiLS1cIik7XG59XG5cbmV4cG9ydCB7IG1ha2VJZCB9O1xuIiwiaW1wb3J0IHsgdXNlUmVmLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzICovXG52YXIgY2hlY2tlZFBrZ3MgPSB7fTtcbi8qKlxuICogSnVzdCBhIGxpbCBzdGF0ZSBsb2dnZXJcbiAqXG4gKiBAcGFyYW0gc3RhdGVcbiAqIEBwYXJhbSBERUJVR1xuICovXG5cbmZ1bmN0aW9uIHVzZVN0YXRlTG9nZ2VyKHN0YXRlLCBERUJVRykge1xuICBpZiAoREVCVUcgPT09IHZvaWQgMCkge1xuICAgIERFQlVHID0gZmFsc2U7XG4gIH1cblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgdmFyIGRlYnVnUmVmID0gdXNlUmVmKERFQlVHKTtcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgZGVidWdSZWYuY3VycmVudCA9IERFQlVHO1xuICAgIH0sIFtERUJVR10pO1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoZGVidWdSZWYuY3VycmVudCkge1xuICAgICAgICBjb25zb2xlLmdyb3VwKFwiU3RhdGUgVXBkYXRlZFwiKTtcbiAgICAgICAgY29uc29sZS5sb2coXCIlY1wiICsgc3RhdGUsIFwiZm9udC13ZWlnaHQ6IG5vcm1hbDsgZm9udC1zaXplOiAxMjAlOyBmb250LXN0eWxlOiBpdGFsaWM7XCIpO1xuICAgICAgICBjb25zb2xlLmdyb3VwRW5kKCk7XG4gICAgICB9XG4gICAgfSwgW3N0YXRlXSk7XG4gIH1cbn1cbi8qKlxuICogV2hlbiBpbiBkZXYgbW9kZSwgY2hlY2tzIHRoYXQgc3R5bGVzIGZvciBhIGdpdmVuIGBAcmVhY2hgIHBhY2thZ2UgYXJlIGxvYWRlZC5cbiAqXG4gKiBAcGFyYW0gcGFja2FnZU5hbWUgTmFtZSBvZiB0aGUgcGFja2FnZSB0byBjaGVjay5cbiAqIEBleGFtcGxlIGNoZWNrU3R5bGVzKFwiZGlhbG9nXCIpIHdpbGwgY2hlY2sgZm9yIHN0eWxlcyBmb3IgQHJlYWNoL2RpYWxvZ1xuICovXG5cbmZ1bmN0aW9uIGNoZWNrU3R5bGVzKHBhY2thZ2VOYW1lKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAvLyBJbiBDSlMgZmlsZXMsIHByb2Nlc3MuZW52Lk5PREVfRU5WIGlzIHN0cmlwcGVkIGZyb20gb3VyIGJ1aWxkLCBidXQgd2VcbiAgICAvLyBuZWVkIGl0IHRvIHByZXZlbnQgc3R5bGUgY2hlY2tzIGZyb20gY2xvZ2dpbmcgdXAgdXNlciBsb2dzIHdoaWxlIHRlc3RpbmcuXG4gICAgLy8gVGhpcyBpcyBhIHdvcmthcm91bmQgdW50aWwgd2UgY2FuIHR3ZWFrIHRoZSBidWlsZCBhIGJpdCB0byBhY2NvbW1vZGF0ZS5cbiAgICB2YXIgX3JlZiA9IHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiID8gcHJvY2Vzcy5lbnYgOiB7XG4gICAgICBOT0RFX0VOVjogXCJkZXZlbG9wbWVudFwiXG4gICAgfSxcbiAgICAgICAgZW52aXJvbm1lbnQgPSBfcmVmLk5PREVfRU5WOyAvLyBvbmx5IGNoZWNrIG9uY2UgcGVyIHBhY2thZ2VcblxuXG4gICAgaWYgKGNoZWNrZWRQa2dzW3BhY2thZ2VOYW1lXSkgcmV0dXJuO1xuICAgIGNoZWNrZWRQa2dzW3BhY2thZ2VOYW1lXSA9IHRydWU7XG5cbiAgICBpZiAoZW52aXJvbm1lbnQgPT09IFwiZGV2ZWxvcG1lbnRcIiAmJiBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eVZhbHVlKFwiLS1yZWFjaC1cIiArIHBhY2thZ2VOYW1lKSwgMTApICE9PSAxKSB7XG4gICAgICBjb25zb2xlLndhcm4oXCJAcmVhY2gvXCIgKyBwYWNrYWdlTmFtZSArIFwiIHN0eWxlcyBub3QgZm91bmQuIElmIHlvdSBhcmUgdXNpbmcgYSBidW5kbGVyIGxpa2Ugd2VicGFjayBvciBwYXJjZWwgaW5jbHVkZSB0aGlzIGluIHRoZSBlbnRyeSBmaWxlIG9mIHlvdXIgYXBwIGJlZm9yZSBhbnkgb2YgeW91ciBvd24gc3R5bGVzOlxcbiAgXFxuICAgICAgaW1wb3J0IFxcXCJAcmVhY2gvXCIgKyBwYWNrYWdlTmFtZSArIFwiL3N0eWxlcy5jc3NcXFwiO1xcbiAgXFxuICAgIE90aGVyd2lzZSB5b3UnbGwgbmVlZCB0byBpbmNsdWRlIHRoZW0gc29tZSBvdGhlciB3YXk6XFxuICBcXG4gICAgICA8bGluayByZWw9XFxcInN0eWxlc2hlZXRcXFwiIHR5cGU9XFxcInRleHQvY3NzXFxcIiBocmVmPVxcXCJub2RlX21vZHVsZXMvQHJlYWNoL1wiICsgcGFja2FnZU5hbWUgKyBcIi9zdHlsZXMuY3NzXFxcIiAvPlxcbiAgXFxuICAgIEZvciBtb3JlIGluZm9ybWF0aW9uIHZpc2l0IGh0dHBzOi8vdWkucmVhY2gudGVjaC9zdHlsaW5nLlxcbiAgICBcIik7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIFdoZW4gaW4gZGV2IG1vZGUsIGNoZWNrcyB0aGF0IHN0eWxlcyBmb3IgYSBnaXZlbiBgQHJlYWNoYCBwYWNrYWdlIGFyZSBsb2FkZWQuXG4gKlxuICogQHBhcmFtIHBhY2thZ2VOYW1lIE5hbWUgb2YgdGhlIHBhY2thZ2UgdG8gY2hlY2suXG4gKiBAZXhhbXBsZSB1c2VDaGVja1N0eWxlcyhcImRpYWxvZ1wiKSB3aWxsIGNoZWNrIGZvciBzdHlsZXMgZm9yIEByZWFjaC9kaWFsb2dcbiAqL1xuXG5mdW5jdGlvbiB1c2VDaGVja1N0eWxlcyhwYWNrYWdlTmFtZSkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgdmFyIG5hbWUgPSB1c2VSZWYocGFja2FnZU5hbWUpO1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gdm9pZCAobmFtZS5jdXJyZW50ID0gcGFja2FnZU5hbWUpO1xuICAgIH0sIFtwYWNrYWdlTmFtZV0pO1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gY2hlY2tTdHlsZXMobmFtZS5jdXJyZW50KTtcbiAgICB9LCBbXSk7XG4gIH1cbn1cbi8qKlxuICogTG9ncyBhIHdhcm5pbmcgaW4gZGV2IG1vZGUgd2hlbiBhIGNvbXBvbmVudCBzd2l0Y2hlcyBmcm9tIGNvbnRyb2xsZWQgdG9cbiAqIHVuY29udHJvbGxlZCwgb3IgdmljZSB2ZXJzYVxuICpcbiAqIEEgc2luZ2xlIHByb3Agc2hvdWxkIHR5cGljYWxseSBiZSB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCBhXG4gKiBjb21wb25lbnQgaXMgY29udHJvbGxlZCBvciBub3QuXG4gKlxuICogQHBhcmFtIGNvbnRyb2xsZWRWYWx1ZVxuICogQHBhcmFtIGNvbnRyb2xsZWRQcm9wTmFtZVxuICogQHBhcmFtIGNvbXBvbmVudE5hbWVcbiAqL1xuXG5mdW5jdGlvbiB1c2VDb250cm9sbGVkU3dpdGNoV2FybmluZyhjb250cm9sbGVkVmFsdWUsIGNvbnRyb2xsZWRQcm9wTmFtZSwgY29tcG9uZW50TmFtZSkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgdmFyIGNvbnRyb2xsZWRSZWYgPSB1c2VSZWYoY29udHJvbGxlZFZhbHVlICE9IG51bGwpO1xuICAgIHZhciBuYW1lQ2FjaGUgPSB1c2VSZWYoe1xuICAgICAgY29tcG9uZW50TmFtZTogY29tcG9uZW50TmFtZSxcbiAgICAgIGNvbnRyb2xsZWRQcm9wTmFtZTogY29udHJvbGxlZFByb3BOYW1lXG4gICAgfSk7XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIG5hbWVDYWNoZS5jdXJyZW50ID0ge1xuICAgICAgICBjb21wb25lbnROYW1lOiBjb21wb25lbnROYW1lLFxuICAgICAgICBjb250cm9sbGVkUHJvcE5hbWU6IGNvbnRyb2xsZWRQcm9wTmFtZVxuICAgICAgfTtcbiAgICB9LCBbY29tcG9uZW50TmFtZSwgY29udHJvbGxlZFByb3BOYW1lXSk7XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciB3YXNDb250cm9sbGVkID0gY29udHJvbGxlZFJlZi5jdXJyZW50O1xuICAgICAgdmFyIF9uYW1lQ2FjaGUkY3VycmVudCA9IG5hbWVDYWNoZS5jdXJyZW50LFxuICAgICAgICAgIGNvbXBvbmVudE5hbWUgPSBfbmFtZUNhY2hlJGN1cnJlbnQuY29tcG9uZW50TmFtZSxcbiAgICAgICAgICBjb250cm9sbGVkUHJvcE5hbWUgPSBfbmFtZUNhY2hlJGN1cnJlbnQuY29udHJvbGxlZFByb3BOYW1lO1xuICAgICAgdmFyIGlzQ29udHJvbGxlZCA9IGNvbnRyb2xsZWRWYWx1ZSAhPSBudWxsO1xuXG4gICAgICBpZiAod2FzQ29udHJvbGxlZCAhPT0gaXNDb250cm9sbGVkKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJBIGNvbXBvbmVudCBpcyBjaGFuZ2luZyBhbiBcIiArICh3YXNDb250cm9sbGVkID8gXCJcIiA6IFwidW5cIikgKyBcImNvbnRyb2xsZWQgYFwiICsgY29udHJvbGxlZFByb3BOYW1lICsgXCJgIHN0YXRlIG9mIFwiICsgY29tcG9uZW50TmFtZSArIFwiIHRvIGJlIFwiICsgKHdhc0NvbnRyb2xsZWQgPyBcInVuXCIgOiBcIlwiKSArIFwiY29udHJvbGxlZC4gVGhpcyBpcyBsaWtlbHkgY2F1c2VkIGJ5IHRoZSB2YWx1ZSBjaGFuZ2luZyBmcm9tIHVuZGVmaW5lZCB0byBhIGRlZmluZWQgdmFsdWUsIHdoaWNoIHNob3VsZCBub3QgaGFwcGVuLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIFwiICsgY29tcG9uZW50TmFtZSArIFwiIGVsZW1lbnQgZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgY29tcG9uZW50LlxcbiAgICAgIE1vcmUgaW5mbzogaHR0cHM6Ly9mYi5tZS9yZWFjdC1jb250cm9sbGVkLWNvbXBvbmVudHNcIik7XG4gICAgICB9XG4gICAgfSwgW2NvbnRyb2xsZWRWYWx1ZV0pO1xuICB9XG59XG5cbmV4cG9ydCB7IGNoZWNrU3R5bGVzLCB1c2VDaGVja1N0eWxlcywgdXNlQ29udHJvbGxlZFN3aXRjaFdhcm5pbmcsIHVzZVN0YXRlTG9nZ2VyIH07XG4iLCIvKipcbiAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCBhIHZhbHVlIGlzIGEgYm9vbGVhbi5cbiAqXG4gKiBAcGFyYW0gdmFsdWVcbiAqL1xuZnVuY3Rpb24gaXNCb29sZWFuKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiO1xufVxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBvciBub3QgYSB2YWx1ZSBpcyBhIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB2YWx1ZVxuICovXG5cbmZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWUpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICByZXR1cm4gISEodmFsdWUgJiYge30udG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gXCJbb2JqZWN0IEZ1bmN0aW9uXVwiKTtcbn1cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IGEgdmFsdWUgaXMgYSBudW1iZXIuXG4gKlxuICogQHBhcmFtIHZhbHVlXG4gKi9cblxuZnVuY3Rpb24gaXNOdW1iZXIodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiAmJiAhaXNOYU4odmFsdWUpO1xufVxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBvciBub3QgYSB2YWx1ZSBpcyBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gdmFsdWVcbiAqL1xuXG5mdW5jdGlvbiBpc1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiO1xufVxuXG5leHBvcnQgeyBpc0Jvb2xlYW4sIGlzRnVuY3Rpb24sIGlzTnVtYmVyLCBpc1N0cmluZyB9O1xuIiwiaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZS1jaGVjay9kaXN0L3JlYWNoLXV0aWxzLXR5cGUtY2hlY2suZXNtLmpzJztcblxuZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkoYXJyLCBsZW4pIHtcbiAgaWYgKGxlbiA9PSBudWxsIHx8IGxlbiA+IGFyci5sZW5ndGgpIGxlbiA9IGFyci5sZW5ndGg7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBuZXcgQXJyYXkobGVuKTsgaSA8IGxlbjsgaSsrKSBhcnIyW2ldID0gYXJyW2ldO1xuXG4gIHJldHVybiBhcnIyO1xufVxuXG5mdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobywgbWluTGVuKSB7XG4gIGlmICghbykgcmV0dXJuO1xuICBpZiAodHlwZW9mIG8gPT09IFwic3RyaW5nXCIpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xuICB2YXIgbiA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LCAtMSk7XG4gIGlmIChuID09PSBcIk9iamVjdFwiICYmIG8uY29uc3RydWN0b3IpIG4gPSBvLmNvbnN0cnVjdG9yLm5hbWU7XG4gIGlmIChuID09PSBcIk1hcFwiIHx8IG4gPT09IFwiU2V0XCIpIHJldHVybiBBcnJheS5mcm9tKG8pO1xuICBpZiAobiA9PT0gXCJBcmd1bWVudHNcIiB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSkgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG59XG5cbmZ1bmN0aW9uIF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyTG9vc2UobywgYWxsb3dBcnJheUxpa2UpIHtcbiAgdmFyIGl0O1xuXG4gIGlmICh0eXBlb2YgU3ltYm9sID09PSBcInVuZGVmaW5lZFwiIHx8IG9bU3ltYm9sLml0ZXJhdG9yXSA9PSBudWxsKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkobykgfHwgKGl0ID0gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8pKSB8fCBhbGxvd0FycmF5TGlrZSAmJiBvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgaWYgKGl0KSBvID0gaXQ7XG4gICAgICB2YXIgaSA9IDA7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoaSA+PSBvLmxlbmd0aCkgcmV0dXJuIHtcbiAgICAgICAgICBkb25lOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZG9uZTogZmFsc2UsXG4gICAgICAgICAgdmFsdWU6IG9baSsrXVxuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7XG4gIH1cblxuICBpdCA9IG9bU3ltYm9sLml0ZXJhdG9yXSgpO1xuICByZXR1cm4gaXQubmV4dC5iaW5kKGl0KTtcbn1cblxuLyoqXG4gKiBQYXNzZXMgb3IgYXNzaWducyBhbiBhcmJpdHJhcnkgdmFsdWUgdG8gYSByZWYgZnVuY3Rpb24gb3Igb2JqZWN0LlxuICpcbiAqIEBwYXJhbSByZWZcbiAqIEBwYXJhbSB2YWx1ZVxuICovXG5mdW5jdGlvbiBhc3NpZ25SZWYocmVmLCB2YWx1ZSkge1xuICBpZiAocmVmID09IG51bGwpIHJldHVybjtcblxuICBpZiAoaXNGdW5jdGlvbihyZWYpKSB7XG4gICAgcmVmKHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGFzc2lnbiB2YWx1ZSBcXFwiXCIgKyB2YWx1ZSArIFwiXFxcIiB0byByZWYgXFxcIlwiICsgcmVmICsgXCJcXFwiXCIpO1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBQYXNzZXMgb3IgYXNzaWducyBhIHZhbHVlIHRvIG11bHRpcGxlIHJlZnMgKHR5cGljYWxseSBhIERPTSBub2RlKS4gVXNlZnVsIGZvclxuICogZGVhbGluZyB3aXRoIGNvbXBvbmVudHMgdGhhdCBuZWVkIGFuIGV4cGxpY2l0IHJlZiBmb3IgRE9NIGNhbGN1bGF0aW9ucyBidXRcbiAqIGFsc28gZm9yd2FyZHMgcmVmcyBhc3NpZ25lZCBieSBhbiBhcHAuXG4gKlxuICogQHBhcmFtIHJlZnMgUmVmcyB0byBmb3JrXG4gKi9cblxuZnVuY3Rpb24gdXNlQ29tcG9zZWRSZWZzKCkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgcmVmcyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICByZWZzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICB9XG5cbiAgcmV0dXJuIHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChub2RlKSB7XG4gICAgZm9yICh2YXIgX2l0ZXJhdG9yID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXJMb29zZShyZWZzKSwgX3N0ZXA7ICEoX3N0ZXAgPSBfaXRlcmF0b3IoKSkuZG9uZTspIHtcbiAgICAgIHZhciByZWYgPSBfc3RlcC52YWx1ZTtcbiAgICAgIGFzc2lnblJlZihyZWYsIG5vZGUpO1xuICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuXG4gIH0sIHJlZnMpO1xufVxuXG5leHBvcnQgeyBhc3NpZ25SZWYsIHVzZUNvbXBvc2VkUmVmcyB9O1xuIiwiLyoqXG4gKiBXcmFwcyBhIGxpYi1kZWZpbmVkIGV2ZW50IGhhbmRsZXIgYW5kIGEgdXNlci1kZWZpbmVkIGV2ZW50IGhhbmRsZXIsIHJldHVybmluZ1xuICogYSBzaW5nbGUgaGFuZGxlciB0aGF0IGFsbG93cyBhIHVzZXIgdG8gcHJldmVudCBsaWItZGVmaW5lZCBoYW5kbGVycyBmcm9tXG4gKiBmaXJpbmcuXG4gKlxuICogQHBhcmFtIHRoZWlySGFuZGxlciBVc2VyLXN1cHBsaWVkIGV2ZW50IGhhbmRsZXJcbiAqIEBwYXJhbSBvdXJIYW5kbGVyIExpYnJhcnktc3VwcGxpZWQgZXZlbnQgaGFuZGxlclxuICovXG5mdW5jdGlvbiBjb21wb3NlRXZlbnRIYW5kbGVycyh0aGVpckhhbmRsZXIsIG91ckhhbmRsZXIpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChldmVudCkge1xuICAgIHRoZWlySGFuZGxlciAmJiB0aGVpckhhbmRsZXIoZXZlbnQpO1xuXG4gICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICByZXR1cm4gb3VySGFuZGxlcihldmVudCk7XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9O1xuIiwiaW1wb3J0IHsgZm9yd2FyZFJlZiwgY3JlYXRlRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkge1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldO1xuXG4gICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH07XG5cbiAgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHtcbiAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307XG4gIHZhciB0YXJnZXQgPSB7fTtcbiAgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuICB2YXIga2V5LCBpO1xuXG4gIGZvciAoaSA9IDA7IGkgPCBzb3VyY2VLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAga2V5ID0gc291cmNlS2V5c1tpXTtcbiAgICBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlO1xuICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG52YXIgX2V4Y2x1ZGVkID0gW1wiYXNcIiwgXCJzdHlsZVwiXTtcblxuLyoqXG4gKiBWaXN1YWxseUhpZGRlblxuICpcbiAqIFByb3ZpZGVzIHRleHQgZm9yIHNjcmVlbiByZWFkZXJzIHRoYXQgaXMgdmlzdWFsbHkgaGlkZGVuLlxuICogSXQgaXMgdGhlIGxvZ2ljYWwgb3Bwb3NpdGUgb2YgdGhlIGBhcmlhLWhpZGRlbmAgYXR0cmlidXRlLlxuICovXG52YXIgVmlzdWFsbHlIaWRkZW4gPSAvKiNfX1BVUkVfXyovZm9yd2FyZFJlZihmdW5jdGlvbiBWaXN1YWxseUhpZGRlbihfcmVmLCByZWYpIHtcbiAgdmFyIF9yZWYkYXMgPSBfcmVmLmFzLFxuICAgICAgQ29tcCA9IF9yZWYkYXMgPT09IHZvaWQgMCA/IFwic3BhblwiIDogX3JlZiRhcyxcbiAgICAgIF9yZWYkc3R5bGUgPSBfcmVmLnN0eWxlLFxuICAgICAgc3R5bGUgPSBfcmVmJHN0eWxlID09PSB2b2lkIDAgPyB7fSA6IF9yZWYkc3R5bGUsXG4gICAgICBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKF9yZWYsIF9leGNsdWRlZCk7XG5cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KENvbXAsIF9leHRlbmRzKHtcbiAgICByZWY6IHJlZixcbiAgICBzdHlsZTogX2V4dGVuZHMoe1xuICAgICAgYm9yZGVyOiAwLFxuICAgICAgY2xpcDogXCJyZWN0KDAgMCAwIDApXCIsXG4gICAgICBoZWlnaHQ6IFwiMXB4XCIsXG4gICAgICBtYXJnaW46IFwiLTFweFwiLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgICBwYWRkaW5nOiAwLFxuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHdpZHRoOiBcIjFweFwiLFxuICAgICAgLy8gaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICAgICAgd2hpdGVTcGFjZTogXCJub3dyYXBcIixcbiAgICAgIHdvcmRXcmFwOiBcIm5vcm1hbFwiXG4gICAgfSwgc3R5bGUpXG4gIH0sIHByb3BzKSk7XG59KTtcbi8qKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC92aXN1YWxseS1oaWRkZW4jdmlzdWFsbHloaWRkZW4tcHJvcHNcbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIFZpc3VhbGx5SGlkZGVuLmRpc3BsYXlOYW1lID0gXCJWaXN1YWxseUhpZGRlblwiO1xuICBWaXN1YWxseUhpZGRlbi5wcm9wVHlwZXMgPSB7XG4gICAgYXM6IFByb3BUeXBlcy5hbnksXG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlXG4gIH07XG59IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBkZWZhdWx0IFZpc3VhbGx5SGlkZGVuO1xuZXhwb3J0IHsgVmlzdWFsbHlIaWRkZW4gfTtcbiIsInZhciBwcm9wcyA9IFtcImJvdHRvbVwiLCBcImhlaWdodFwiLCBcImxlZnRcIiwgXCJyaWdodFwiLCBcInRvcFwiLCBcIndpZHRoXCJdO1xuXG52YXIgcmVjdENoYW5nZWQgPSBmdW5jdGlvbiByZWN0Q2hhbmdlZChhLCBiKSB7XG4gIGlmIChhID09PSB2b2lkIDApIHtcbiAgICBhID0ge307XG4gIH1cblxuICBpZiAoYiA9PT0gdm9pZCAwKSB7XG4gICAgYiA9IHt9O1xuICB9XG5cbiAgcmV0dXJuIHByb3BzLnNvbWUoZnVuY3Rpb24gKHByb3ApIHtcbiAgICByZXR1cm4gYVtwcm9wXSAhPT0gYltwcm9wXTtcbiAgfSk7XG59O1xuXG52YXIgb2JzZXJ2ZWROb2RlcyA9IC8qI19fUFVSRV9fKi9uZXcgTWFwKCk7XG52YXIgcmFmSWQ7XG5cbnZhciBydW4gPSBmdW5jdGlvbiBydW4oKSB7XG4gIHZhciBjaGFuZ2VkU3RhdGVzID0gW107XG4gIG9ic2VydmVkTm9kZXMuZm9yRWFjaChmdW5jdGlvbiAoc3RhdGUsIG5vZGUpIHtcbiAgICB2YXIgbmV3UmVjdCA9IG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBpZiAocmVjdENoYW5nZWQobmV3UmVjdCwgc3RhdGUucmVjdCkpIHtcbiAgICAgIHN0YXRlLnJlY3QgPSBuZXdSZWN0O1xuICAgICAgY2hhbmdlZFN0YXRlcy5wdXNoKHN0YXRlKTtcbiAgICB9XG4gIH0pO1xuICBjaGFuZ2VkU3RhdGVzLmZvckVhY2goZnVuY3Rpb24gKHN0YXRlKSB7XG4gICAgc3RhdGUuY2FsbGJhY2tzLmZvckVhY2goZnVuY3Rpb24gKGNiKSB7XG4gICAgICByZXR1cm4gY2Ioc3RhdGUucmVjdCk7XG4gICAgfSk7XG4gIH0pO1xuICByYWZJZCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUocnVuKTtcbn07XG5cbmZ1bmN0aW9uIG9ic2VydmVSZWN0KG5vZGUsIGNiKSB7XG4gIHJldHVybiB7XG4gICAgb2JzZXJ2ZTogZnVuY3Rpb24gb2JzZXJ2ZSgpIHtcbiAgICAgIHZhciB3YXNFbXB0eSA9IG9ic2VydmVkTm9kZXMuc2l6ZSA9PT0gMDtcblxuICAgICAgaWYgKG9ic2VydmVkTm9kZXMuaGFzKG5vZGUpKSB7XG4gICAgICAgIG9ic2VydmVkTm9kZXMuZ2V0KG5vZGUpLmNhbGxiYWNrcy5wdXNoKGNiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9ic2VydmVkTm9kZXMuc2V0KG5vZGUsIHtcbiAgICAgICAgICByZWN0OiB1bmRlZmluZWQsXG4gICAgICAgICAgaGFzUmVjdENoYW5nZWQ6IGZhbHNlLFxuICAgICAgICAgIGNhbGxiYWNrczogW2NiXVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHdhc0VtcHR5KSBydW4oKTtcbiAgICB9LFxuICAgIHVub2JzZXJ2ZTogZnVuY3Rpb24gdW5vYnNlcnZlKCkge1xuICAgICAgdmFyIHN0YXRlID0gb2JzZXJ2ZWROb2Rlcy5nZXQobm9kZSk7XG5cbiAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICAvLyBSZW1vdmUgdGhlIGNhbGxiYWNrXG4gICAgICAgIHZhciBpbmRleCA9IHN0YXRlLmNhbGxiYWNrcy5pbmRleE9mKGNiKTtcbiAgICAgICAgaWYgKGluZGV4ID49IDApIHN0YXRlLmNhbGxiYWNrcy5zcGxpY2UoaW5kZXgsIDEpOyAvLyBSZW1vdmUgdGhlIG5vZGUgcmVmZXJlbmNlXG5cbiAgICAgICAgaWYgKCFzdGF0ZS5jYWxsYmFja3MubGVuZ3RoKSBvYnNlcnZlZE5vZGVzW1wiZGVsZXRlXCJdKG5vZGUpOyAvLyBTdG9wIHRoZSBsb29wXG5cbiAgICAgICAgaWYgKCFvYnNlcnZlZE5vZGVzLnNpemUpIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJhZklkKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IG9ic2VydmVSZWN0O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9b2JzZXJ2ZS1yZWN0LmVzbS5qcy5tYXBcbiIsImltcG9ydCB7IHVzZVJlZiwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgb2JzZXJ2ZVJlY3QgZnJvbSAnQHJlYWNoL29ic2VydmUtcmVjdCc7XG5pbXBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH0gZnJvbSAnQHJlYWNoL3V0aWxzL3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QnO1xuaW1wb3J0IHsgaXNCb29sZWFuLCBpc0Z1bmN0aW9uIH0gZnJvbSAnQHJlYWNoL3V0aWxzL3R5cGUtY2hlY2snO1xuaW1wb3J0IHdhcm5pbmcgZnJvbSAndGlueS13YXJuaW5nJztcblxuLyoqXG4gKiBXZWxjb21lIHRvIEByZWFjaC9yZWN0IVxuICpcbiAqIE1lYXN1cmVzIERPTSBlbGVtZW50cyAoYWthLiBib3VuZGluZyBjbGllbnQgcmVjdCkuXG4gKlxuICogQHNlZSBnZXRCb3VuZGluZ0NsaWVudFJlY3QgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0VsZW1lbnQvZ2V0Qm91bmRpbmdDbGllbnRSZWN0XG4gKiBAc2VlIERvY3MgICAgICAgICAgICAgICAgICBodHRwczovL3JlYWNoLnRlY2gvcmVjdFxuICogQHNlZSBTb3VyY2UgICAgICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3JlYWNoL3JlYWNoLXVpL3RyZWUvbWFpbi9wYWNrYWdlcy9yZWN0XG4gKi9cblxuLyoqXG4gKiBSZWN0XG4gKlxuICogQHBhcmFtIHByb3BzXG4gKi9cblxudmFyIFJlY3QgPSBmdW5jdGlvbiBSZWN0KF9yZWYpIHtcbiAgdmFyIG9uQ2hhbmdlID0gX3JlZi5vbkNoYW5nZSxcbiAgICAgIF9yZWYkb2JzZXJ2ZSA9IF9yZWYub2JzZXJ2ZSxcbiAgICAgIG9ic2VydmUgPSBfcmVmJG9ic2VydmUgPT09IHZvaWQgMCA/IHRydWUgOiBfcmVmJG9ic2VydmUsXG4gICAgICBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW47XG4gIHZhciByZWYgPSB1c2VSZWYobnVsbCk7XG4gIHZhciByZWN0ID0gdXNlUmVjdChyZWYsIHtcbiAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgIG9uQ2hhbmdlOiBvbkNoYW5nZVxuICB9KTtcbiAgcmV0dXJuIGNoaWxkcmVuKHtcbiAgICByZWY6IHJlZixcbiAgICByZWN0OiByZWN0XG4gIH0pO1xufTtcbi8qKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC9yZWN0I3JlY3QtcHJvcHNcbiAqL1xuXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgUmVjdC5kaXNwbGF5TmFtZSA9IFwiUmVjdFwiO1xuICBSZWN0LnByb3BUeXBlcyA9IHtcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvYnNlcnZlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmNcbiAgfTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuXG4vKipcbiAqIHVzZVJlY3RcbiAqXG4gKiBAcGFyYW0gbm9kZVJlZlxuICogQHBhcmFtIG9ic2VydmVcbiAqIEBwYXJhbSBvbkNoYW5nZVxuICovXG5mdW5jdGlvbiB1c2VSZWN0KG5vZGVSZWYsIG9ic2VydmVPck9wdGlvbnMsIGRlcHJlY2F0ZWRfb25DaGFuZ2UpIHtcbiAgdmFyIG9ic2VydmU7XG4gIHZhciBvbkNoYW5nZTtcblxuICBpZiAoaXNCb29sZWFuKG9ic2VydmVPck9wdGlvbnMpKSB7XG4gICAgb2JzZXJ2ZSA9IG9ic2VydmVPck9wdGlvbnM7XG4gIH0gZWxzZSB7XG4gICAgdmFyIF9vYnNlcnZlT3JPcHRpb25zJG9icztcblxuICAgIG9ic2VydmUgPSAoX29ic2VydmVPck9wdGlvbnMkb2JzID0gb2JzZXJ2ZU9yT3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb2JzZXJ2ZU9yT3B0aW9ucy5vYnNlcnZlKSAhPSBudWxsID8gX29ic2VydmVPck9wdGlvbnMkb2JzIDogdHJ1ZTtcbiAgICBvbkNoYW5nZSA9IG9ic2VydmVPck9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9ic2VydmVPck9wdGlvbnMub25DaGFuZ2U7XG4gIH1cblxuICBpZiAoaXNGdW5jdGlvbihkZXByZWNhdGVkX29uQ2hhbmdlKSkge1xuICAgIG9uQ2hhbmdlID0gZGVwcmVjYXRlZF9vbkNoYW5nZTtcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyghaXNCb29sZWFuKG9ic2VydmVPck9wdGlvbnMpLCBcIlBhc3NpbmcgYG9ic2VydmVgIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gYHVzZVJlY3RgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIFJlYWNoIFVJLiBJbnN0ZWFkLCB5b3UgY2FuIHBhc3MgYW4gb2JqZWN0IG9mIG9wdGlvbnMgd2l0aCBhbiBgb2JzZXJ2ZWAgcHJvcGVydHkgYXMgdGhlIHNlY29uZCBhcmd1bWVudCAoYHVzZVJlY3QocmVmLCB7IG9ic2VydmUgfSlgKS5cXG5cIiArIFwiU2VlIGh0dHBzOi8vcmVhY2gudGVjaC9yZWN0I3VzZXJlY3Qtb2JzZXJ2ZVwiKSA6IHZvaWQgMDtcbiAgICB9LCBbb2JzZXJ2ZU9yT3B0aW9uc10pOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcblxuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKCFpc0Z1bmN0aW9uKGRlcHJlY2F0ZWRfb25DaGFuZ2UpLCBcIlBhc3NpbmcgYG9uQ2hhbmdlYCBhcyB0aGUgdGhpcmQgYXJndW1lbnQgdG8gYHVzZVJlY3RgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIFJlYWNoIFVJLiBJbnN0ZWFkLCB5b3UgY2FuIHBhc3MgYW4gb2JqZWN0IG9mIG9wdGlvbnMgd2l0aCBhbiBgb25DaGFuZ2VgIHByb3BlcnR5IGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgKGB1c2VSZWN0KHJlZiwgeyBvbkNoYW5nZSB9KWApLlxcblwiICsgXCJTZWUgaHR0cHM6Ly9yZWFjaC50ZWNoL3JlY3QjdXNlcmVjdC1vbmNoYW5nZVwiKSA6IHZvaWQgMDtcbiAgICB9LCBbZGVwcmVjYXRlZF9vbkNoYW5nZV0pO1xuICB9XG5cbiAgdmFyIF9SZWFjdCR1c2VTdGF0ZSA9IHVzZVN0YXRlKG5vZGVSZWYuY3VycmVudCksXG4gICAgICBlbGVtZW50ID0gX1JlYWN0JHVzZVN0YXRlWzBdLFxuICAgICAgc2V0RWxlbWVudCA9IF9SZWFjdCR1c2VTdGF0ZVsxXTtcblxuICB2YXIgaW5pdGlhbFJlY3RJc1NldCA9IHVzZVJlZihmYWxzZSk7XG4gIHZhciBpbml0aWFsUmVmSXNTZXQgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIHZhciBfUmVhY3QkdXNlU3RhdGUyID0gdXNlU3RhdGUobnVsbCksXG4gICAgICByZWN0ID0gX1JlYWN0JHVzZVN0YXRlMlswXSxcbiAgICAgIHNldFJlY3QgPSBfUmVhY3QkdXNlU3RhdGUyWzFdO1xuXG4gIHZhciBvbkNoYW5nZVJlZiA9IHVzZVJlZihvbkNoYW5nZSk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcblxuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBvbkNoYW5nZVJlZi5jdXJyZW50ID0gb25DaGFuZ2U7XG5cbiAgICBpZiAobm9kZVJlZi5jdXJyZW50ICE9PSBlbGVtZW50KSB7XG4gICAgICBzZXRFbGVtZW50KG5vZGVSZWYuY3VycmVudCk7XG4gICAgfVxuICB9KTtcbiAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGVsZW1lbnQgJiYgIWluaXRpYWxSZWN0SXNTZXQuY3VycmVudCkge1xuICAgICAgaW5pdGlhbFJlY3RJc1NldC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIHNldFJlY3QoZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7XG4gICAgfVxuICB9LCBbZWxlbWVudF0pO1xuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIW9ic2VydmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgZWxlbSA9IGVsZW1lbnQ7IC8vIFN0YXRlIGluaXRpYWxpemVzIGJlZm9yZSByZWZzIGFyZSBwbGFjZWQsIG1lYW5pbmcgdGhlIGVsZW1lbnQgc3RhdGUgd2lsbFxuICAgIC8vIGJlIHVuZGVmaW5lZCBvbiB0aGUgZmlyc3QgcmVuZGVyLiBXZSBzdGlsbCB3YW50IHRoZSByZWN0IG9uIHRoZSBmaXJzdFxuICAgIC8vIHJlbmRlciwgc28gaW5pdGlhbGx5IHdlJ2xsIHVzZSB0aGUgbm9kZVJlZiB0aGF0IHdhcyBwYXNzZWQgaW5zdGVhZCBvZlxuICAgIC8vIHN0YXRlIGZvciBvdXIgbWVhc3VyZW1lbnRzLlxuXG4gICAgaWYgKCFpbml0aWFsUmVmSXNTZXQuY3VycmVudCkge1xuICAgICAgaW5pdGlhbFJlZklzU2V0LmN1cnJlbnQgPSB0cnVlO1xuICAgICAgZWxlbSA9IG5vZGVSZWYuY3VycmVudDtcbiAgICB9XG5cbiAgICBpZiAoIWVsZW0pIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFwiWW91IG5lZWQgdG8gcGxhY2UgdGhlIHJlZlwiKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBvYnNlcnZlciA9IG9ic2VydmVSZWN0KGVsZW0sIGZ1bmN0aW9uIChyZWN0KSB7XG4gICAgICBvbkNoYW5nZVJlZi5jdXJyZW50ID09IG51bGwgPyB2b2lkIDAgOiBvbkNoYW5nZVJlZi5jdXJyZW50KHJlY3QpO1xuICAgICAgc2V0UmVjdChyZWN0KTtcbiAgICB9KTtcbiAgICBvYnNlcnZlci5vYnNlcnZlKCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIG9ic2VydmVyLnVub2JzZXJ2ZSgpO1xuICAgIH07XG4gIH0sIFtvYnNlcnZlLCBlbGVtZW50LCBub2RlUmVmXSk7XG4gIHJldHVybiByZWN0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBSZWN0O1xuZXhwb3J0IHsgUmVjdCwgdXNlUmVjdCB9O1xuIiwiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZVJlZiwgdXNlRWZmZWN0LCBmb3J3YXJkUmVmLCBDaGlsZHJlbiwgY3JlYXRlRWxlbWVudCwgRnJhZ21lbnQsIGNsb25lRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSAnQHJlYWNoL2F1dG8taWQnO1xuaW1wb3J0IHsgZ2V0RG9jdW1lbnREaW1lbnNpb25zIH0gZnJvbSAnQHJlYWNoL3V0aWxzL2dldC1kb2N1bWVudC1kaW1lbnNpb25zJztcbmltcG9ydCB7IGdldE93bmVyRG9jdW1lbnQgfSBmcm9tICdAcmVhY2gvdXRpbHMvb3duZXItZG9jdW1lbnQnO1xuaW1wb3J0IHsgbWFrZUlkIH0gZnJvbSAnQHJlYWNoL3V0aWxzL21ha2UtaWQnO1xuaW1wb3J0IHsgdXNlQ2hlY2tTdHlsZXMgfSBmcm9tICdAcmVhY2gvdXRpbHMvZGV2LXV0aWxzJztcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gJ0ByZWFjaC91dGlscy9jb21wb3NlLXJlZnMnO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tICdAcmVhY2gvdXRpbHMvY29tcG9zZS1ldmVudC1oYW5kbGVycyc7XG5pbXBvcnQgeyBQb3J0YWwgfSBmcm9tICdAcmVhY2gvcG9ydGFsJztcbmltcG9ydCB7IFZpc3VhbGx5SGlkZGVuIH0gZnJvbSAnQHJlYWNoL3Zpc3VhbGx5LWhpZGRlbic7XG5pbXBvcnQgeyB1c2VSZWN0IH0gZnJvbSAnQHJlYWNoL3JlY3QnO1xuaW1wb3J0IHdhcm5pbmcgZnJvbSAndGlueS13YXJuaW5nJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkge1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldO1xuXG4gICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH07XG5cbiAgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHtcbiAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307XG4gIHZhciB0YXJnZXQgPSB7fTtcbiAgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuICB2YXIga2V5LCBpO1xuXG4gIGZvciAoaSA9IDA7IGkgPCBzb3VyY2VLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAga2V5ID0gc291cmNlS2V5c1tpXTtcbiAgICBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlO1xuICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG52YXIgX2V4Y2x1ZGVkID0gW1wiY2hpbGRyZW5cIiwgXCJsYWJlbFwiLCBcImFyaWFMYWJlbFwiLCBcImlkXCIsIFwiREVCVUdfU1RZTEVcIl0sXG4gICAgX2V4Y2x1ZGVkMiA9IFtcImxhYmVsXCIsIFwiYXJpYUxhYmVsXCIsIFwiaXNWaXNpYmxlXCIsIFwiaWRcIl0sXG4gICAgX2V4Y2x1ZGVkMyA9IFtcImFyaWFMYWJlbFwiLCBcImFyaWEtbGFiZWxcIiwgXCJhc1wiLCBcImlkXCIsIFwiaXNWaXNpYmxlXCIsIFwibGFiZWxcIiwgXCJwb3NpdGlvblwiLCBcInN0eWxlXCIsIFwidHJpZ2dlclJlY3RcIl0sXG4gICAgX2V4Y2x1ZGVkNCA9IFtcInR5cGVcIl07XG5cbnZhciBfb24sIF9vbjIsIF9vbjMsIF9vbjQsIF9vbjUsIF9zdGF0ZXM7XG52YXIgTU9VU0VfUkVTVF9USU1FT1VUID0gMTAwO1xudmFyIExFQVZFX1RJTUVPVVQgPSA1MDA7IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTdGF0ZXNcblxudmFyIFRvb2x0aXBTdGF0ZXM7IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBFdmVudHNcblxuKGZ1bmN0aW9uIChUb29sdGlwU3RhdGVzKSB7XG4gIFRvb2x0aXBTdGF0ZXNbXCJJZGxlXCJdID0gXCJJRExFXCI7XG4gIFRvb2x0aXBTdGF0ZXNbXCJGb2N1c2VkXCJdID0gXCJGT0NVU0VEXCI7XG4gIFRvb2x0aXBTdGF0ZXNbXCJWaXNpYmxlXCJdID0gXCJWSVNJQkxFXCI7XG4gIFRvb2x0aXBTdGF0ZXNbXCJMZWF2aW5nVmlzaWJsZVwiXSA9IFwiTEVBVklOR19WSVNJQkxFXCI7XG4gIFRvb2x0aXBTdGF0ZXNbXCJEaXNtaXNzZWRcIl0gPSBcIkRJU01JU1NFRFwiO1xufSkoVG9vbHRpcFN0YXRlcyB8fCAoVG9vbHRpcFN0YXRlcyA9IHt9KSk7XG5cbnZhciBUb29sdGlwRXZlbnRzO1xuXG4oZnVuY3Rpb24gKFRvb2x0aXBFdmVudHMpIHtcbiAgVG9vbHRpcEV2ZW50c1tcIkJsdXJcIl0gPSBcIkJMVVJcIjtcbiAgVG9vbHRpcEV2ZW50c1tcIkZvY3VzXCJdID0gXCJGT0NVU1wiO1xuICBUb29sdGlwRXZlbnRzW1wiR2xvYmFsTW91c2VNb3ZlXCJdID0gXCJHTE9CQUxfTU9VU0VfTU9WRVwiO1xuICBUb29sdGlwRXZlbnRzW1wiTW91c2VEb3duXCJdID0gXCJNT1VTRV9ET1dOXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJNb3VzZUVudGVyXCJdID0gXCJNT1VTRV9FTlRFUlwiO1xuICBUb29sdGlwRXZlbnRzW1wiTW91c2VMZWF2ZVwiXSA9IFwiTU9VU0VfTEVBVkVcIjtcbiAgVG9vbHRpcEV2ZW50c1tcIk1vdXNlTW92ZVwiXSA9IFwiTU9VU0VfTU9WRVwiO1xuICBUb29sdGlwRXZlbnRzW1wiUmVzdFwiXSA9IFwiUkVTVFwiO1xuICBUb29sdGlwRXZlbnRzW1wiU2VsZWN0V2l0aEtleWJvYXJkXCJdID0gXCJTRUxFQ1RfV0lUSF9LRVlCT0FSRFwiO1xuICBUb29sdGlwRXZlbnRzW1wiVGltZUNvbXBsZXRlXCJdID0gXCJUSU1FX0NPTVBMRVRFXCI7XG59KShUb29sdGlwRXZlbnRzIHx8IChUb29sdGlwRXZlbnRzID0ge30pKTtcblxudmFyIGNoYXJ0ID0ge1xuICBpbml0aWFsOiBUb29sdGlwU3RhdGVzLklkbGUsXG4gIHN0YXRlczogKF9zdGF0ZXMgPSB7fSwgX3N0YXRlc1tUb29sdGlwU3RhdGVzLklkbGVdID0ge1xuICAgIGVudGVyOiBjbGVhckNvbnRleHRJZCxcbiAgICBvbjogKF9vbiA9IHt9LCBfb25bVG9vbHRpcEV2ZW50cy5Nb3VzZUVudGVyXSA9IFRvb2x0aXBTdGF0ZXMuRm9jdXNlZCwgX29uW1Rvb2x0aXBFdmVudHMuRm9jdXNdID0gVG9vbHRpcFN0YXRlcy5WaXNpYmxlLCBfb24pXG4gIH0sIF9zdGF0ZXNbVG9vbHRpcFN0YXRlcy5Gb2N1c2VkXSA9IHtcbiAgICBlbnRlcjogc3RhcnRSZXN0VGltZXIsXG4gICAgbGVhdmU6IGNsZWFyUmVzdFRpbWVyLFxuICAgIG9uOiAoX29uMiA9IHt9LCBfb24yW1Rvb2x0aXBFdmVudHMuTW91c2VNb3ZlXSA9IFRvb2x0aXBTdGF0ZXMuRm9jdXNlZCwgX29uMltUb29sdGlwRXZlbnRzLk1vdXNlTGVhdmVdID0gVG9vbHRpcFN0YXRlcy5JZGxlLCBfb24yW1Rvb2x0aXBFdmVudHMuTW91c2VEb3duXSA9IFRvb2x0aXBTdGF0ZXMuRGlzbWlzc2VkLCBfb24yW1Rvb2x0aXBFdmVudHMuQmx1cl0gPSBUb29sdGlwU3RhdGVzLklkbGUsIF9vbjJbVG9vbHRpcEV2ZW50cy5SZXN0XSA9IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSwgX29uMilcbiAgfSwgX3N0YXRlc1tUb29sdGlwU3RhdGVzLlZpc2libGVdID0ge1xuICAgIG9uOiAoX29uMyA9IHt9LCBfb24zW1Rvb2x0aXBFdmVudHMuRm9jdXNdID0gVG9vbHRpcFN0YXRlcy5Gb2N1c2VkLCBfb24zW1Rvb2x0aXBFdmVudHMuTW91c2VFbnRlcl0gPSBUb29sdGlwU3RhdGVzLkZvY3VzZWQsIF9vbjNbVG9vbHRpcEV2ZW50cy5Nb3VzZUxlYXZlXSA9IFRvb2x0aXBTdGF0ZXMuTGVhdmluZ1Zpc2libGUsIF9vbjNbVG9vbHRpcEV2ZW50cy5CbHVyXSA9IFRvb2x0aXBTdGF0ZXMuTGVhdmluZ1Zpc2libGUsIF9vbjNbVG9vbHRpcEV2ZW50cy5Nb3VzZURvd25dID0gVG9vbHRpcFN0YXRlcy5EaXNtaXNzZWQsIF9vbjNbVG9vbHRpcEV2ZW50cy5TZWxlY3RXaXRoS2V5Ym9hcmRdID0gVG9vbHRpcFN0YXRlcy5EaXNtaXNzZWQsIF9vbjNbVG9vbHRpcEV2ZW50cy5HbG9iYWxNb3VzZU1vdmVdID0gVG9vbHRpcFN0YXRlcy5MZWF2aW5nVmlzaWJsZSwgX29uMylcbiAgfSwgX3N0YXRlc1tUb29sdGlwU3RhdGVzLkxlYXZpbmdWaXNpYmxlXSA9IHtcbiAgICBlbnRlcjogc3RhcnRMZWF2aW5nVmlzaWJsZVRpbWVyLFxuICAgIGxlYXZlOiBmdW5jdGlvbiBsZWF2ZSgpIHtcbiAgICAgIGNsZWFyTGVhdmluZ1Zpc2libGVUaW1lcigpO1xuICAgICAgY2xlYXJDb250ZXh0SWQoKTtcbiAgICB9LFxuICAgIG9uOiAoX29uNCA9IHt9LCBfb240W1Rvb2x0aXBFdmVudHMuTW91c2VFbnRlcl0gPSBUb29sdGlwU3RhdGVzLlZpc2libGUsIF9vbjRbVG9vbHRpcEV2ZW50cy5Gb2N1c10gPSBUb29sdGlwU3RhdGVzLlZpc2libGUsIF9vbjRbVG9vbHRpcEV2ZW50cy5UaW1lQ29tcGxldGVdID0gVG9vbHRpcFN0YXRlcy5JZGxlLCBfb240KVxuICB9LCBfc3RhdGVzW1Rvb2x0aXBTdGF0ZXMuRGlzbWlzc2VkXSA9IHtcbiAgICBsZWF2ZTogZnVuY3Rpb24gbGVhdmUoKSB7XG4gICAgICBjbGVhckNvbnRleHRJZCgpO1xuICAgIH0sXG4gICAgb246IChfb241ID0ge30sIF9vbjVbVG9vbHRpcEV2ZW50cy5Nb3VzZUxlYXZlXSA9IFRvb2x0aXBTdGF0ZXMuSWRsZSwgX29uNVtUb29sdGlwRXZlbnRzLkJsdXJdID0gVG9vbHRpcFN0YXRlcy5JZGxlLCBfb241KVxuICB9LCBfc3RhdGVzKVxufTtcbi8qXG4gKiBDaGFydCBjb250ZXh0IGFsbG93cyB1cyB0byBwZXJzaXN0IHNvbWUgZGF0YSBhcm91bmQsIGluIFRvb2x0aXAgYWxsIHdlIHVzZVxuICogaXMgdGhlIGlkIG9mIHRoZSBjdXJyZW50IHRvb2x0aXAgYmVpbmcgaW50ZXJhY3RlZCB3aXRoLlxuICovXG5cbnZhciBzdGF0ZSA9IHtcbiAgdmFsdWU6IGNoYXJ0LmluaXRpYWwsXG4gIGNvbnRleHQ6IHtcbiAgICBpZDogbnVsbFxuICB9XG59OyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gU3Vic2NyaXB0aW9uczpcbi8vXG4vLyBXZSBjb3VsZCByZXF1aXJlIGFwcHMgdG8gcmVuZGVyIGEgPFRvb2x0aXBQcm92aWRlcj4gYXJvdW5kIHRoZSBhcHAgYW5kIHVzZVxuLy8gUmVhY3QgY29udGV4dCB0byBub3RpZnkgVG9vbHRpcHMgb2YgY2hhbmdlcyB0byBvdXIgc3RhdGUgbWFjaGluZSwgaW5zdGVhZFxuLy8gd2UgbWFuYWdlIHN1YnNjcmlwdGlvbnMgb3Vyc2VsdmVzIGFuZCBzaW1wbGlmeSB0aGUgVG9vbHRpcCBBUEkuXG4vL1xuLy8gTWF5YmUgaWYgZGVmYXVsdCBjb250ZXh0IGNvdWxkIHRha2UgYSBob29rIChpbnN0ZWFkIG9mIGp1c3QgYSBzdGF0aWMgdmFsdWUpXG4vLyB0aGF0IHdhcyByZW5kZXJlZCBhdCB0aGUgcm9vdCBmb3IgdXMsIHRoYXQnZCBiZSBjb29sISBCdXQgaXQgZG9lc24ndC5cblxudmFyIHN1YnNjcmlwdGlvbnMgPSBbXTtcblxuZnVuY3Rpb24gc3Vic2NyaWJlKGZuKSB7XG4gIHN1YnNjcmlwdGlvbnMucHVzaChmbik7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgc3Vic2NyaXB0aW9ucy5zcGxpY2Uoc3Vic2NyaXB0aW9ucy5pbmRleE9mKGZuKSwgMSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIG5vdGlmeSgpIHtcbiAgc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChmbikge1xuICAgIHJldHVybiBmbihzdGF0ZSk7XG4gIH0pO1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVGltZW91dHM6XG4vLyBNYW5hZ2VzIHdoZW4gdGhlIHVzZXIgXCJyZXN0c1wiIG9uIGFuIGVsZW1lbnQuIEtlZXBzIHRoZSBpbnRlcmZhY2UgZnJvbSBiZWluZ1xuLy8gZmxhc2hpbmcgdG9vbHRpcHMgYWxsIHRoZSB0aW1lIGFzIHRoZSB1c2VyIG1vdmVzIHRoZSBtb3VzZSBhcm91bmQgdGhlIHNjcmVlbi5cblxuXG52YXIgcmVzdFRpbWVvdXQ7XG5cbmZ1bmN0aW9uIHN0YXJ0UmVzdFRpbWVyKCkge1xuICB3aW5kb3cuY2xlYXJUaW1lb3V0KHJlc3RUaW1lb3V0KTtcbiAgcmVzdFRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgc2VuZCh7XG4gICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLlJlc3RcbiAgICB9KTtcbiAgfSwgTU9VU0VfUkVTVF9USU1FT1VUKTtcbn1cblxuZnVuY3Rpb24gY2xlYXJSZXN0VGltZXIoKSB7XG4gIHdpbmRvdy5jbGVhclRpbWVvdXQocmVzdFRpbWVvdXQpO1xufSAvLyBNYW5hZ2VzIHRoZSBkZWxheSB0byBoaWRlIHRoZSB0b29sdGlwIGFmdGVyIHJlc3QgbGVhdmVzLlxuXG5cbnZhciBsZWF2aW5nVmlzaWJsZVRpbWVyO1xuXG5mdW5jdGlvbiBzdGFydExlYXZpbmdWaXNpYmxlVGltZXIoKSB7XG4gIHdpbmRvdy5jbGVhclRpbWVvdXQobGVhdmluZ1Zpc2libGVUaW1lcik7XG4gIGxlYXZpbmdWaXNpYmxlVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHNlbmQoe1xuICAgICAgdHlwZTogVG9vbHRpcEV2ZW50cy5UaW1lQ29tcGxldGVcbiAgICB9KTtcbiAgfSwgTEVBVkVfVElNRU9VVCk7XG59XG5cbmZ1bmN0aW9uIGNsZWFyTGVhdmluZ1Zpc2libGVUaW1lcigpIHtcbiAgd2luZG93LmNsZWFyVGltZW91dChsZWF2aW5nVmlzaWJsZVRpbWVyKTtcbn0gLy8gYWxsb3dzIHVzIHRvIGNvbWUgb24gYmFjayBsYXRlciB3L28gZW50ZXJpbmcgc29tZXRoaW5nIGVsc2UgZmlyc3QgYWZ0ZXIgdGhlXG4vLyB1c2VyIGxlYXZlcyBvciBkaXNtaXNzZXNcblxuXG5mdW5jdGlvbiBjbGVhckNvbnRleHRJZCgpIHtcbiAgc3RhdGUuY29udGV4dC5pZCA9IG51bGw7XG59IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8qKlxuICogdXNlVG9vbHRpcFxuICpcbiAqIEBwYXJhbSBwYXJhbXNcbiAqL1xuXG5cbmZ1bmN0aW9uIHVzZVRvb2x0aXAoX3RlbXApIHtcbiAgdmFyIF9yZWYgPSBfdGVtcCA9PT0gdm9pZCAwID8ge30gOiBfdGVtcCxcbiAgICAgIGlkUHJvcCA9IF9yZWYuaWQsXG4gICAgICBvblBvaW50ZXJFbnRlciA9IF9yZWYub25Qb2ludGVyRW50ZXIsXG4gICAgICBvblBvaW50ZXJNb3ZlID0gX3JlZi5vblBvaW50ZXJNb3ZlLFxuICAgICAgb25Qb2ludGVyTGVhdmUgPSBfcmVmLm9uUG9pbnRlckxlYXZlLFxuICAgICAgb25Qb2ludGVyRG93biA9IF9yZWYub25Qb2ludGVyRG93bixcbiAgICAgIG9uTW91c2VFbnRlciA9IF9yZWYub25Nb3VzZUVudGVyLFxuICAgICAgb25Nb3VzZU1vdmUgPSBfcmVmLm9uTW91c2VNb3ZlLFxuICAgICAgb25Nb3VzZUxlYXZlID0gX3JlZi5vbk1vdXNlTGVhdmUsXG4gICAgICBvbk1vdXNlRG93biA9IF9yZWYub25Nb3VzZURvd24sXG4gICAgICBvbkZvY3VzID0gX3JlZi5vbkZvY3VzLFxuICAgICAgb25CbHVyID0gX3JlZi5vbkJsdXIsXG4gICAgICBvbktleURvd24gPSBfcmVmLm9uS2V5RG93bixcbiAgICAgIGRpc2FibGVkID0gX3JlZi5kaXNhYmxlZCxcbiAgICAgIGZvcndhcmRlZFJlZiA9IF9yZWYucmVmLFxuICAgICAgREVCVUdfU1RZTEUgPSBfcmVmLkRFQlVHX1NUWUxFO1xuXG4gIHZhciBpZCA9IFN0cmluZyh1c2VJZChpZFByb3ApKTtcblxuICB2YXIgX1JlYWN0JHVzZVN0YXRlID0gdXNlU3RhdGUoREVCVUdfU1RZTEUgPyB0cnVlIDogaXNUb29sdGlwVmlzaWJsZShpZCwgdHJ1ZSkpLFxuICAgICAgaXNWaXNpYmxlID0gX1JlYWN0JHVzZVN0YXRlWzBdLFxuICAgICAgc2V0SXNWaXNpYmxlID0gX1JlYWN0JHVzZVN0YXRlWzFdOyAvLyBob3BlZnVsbHkgdGhleSBhbHdheXMgcGFzcyBhIHJlZiBpZiB0aGV5IGV2ZXIgcGFzcyBvbmVcblxuXG4gIHZhciBvd25SZWYgPSB1c2VSZWYobnVsbCk7XG4gIHZhciByZWYgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBvd25SZWYpO1xuICB2YXIgdHJpZ2dlclJlY3QgPSB1c2VSZWN0KG93blJlZiwge1xuICAgIG9ic2VydmU6IGlzVmlzaWJsZVxuICB9KTtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gc3Vic2NyaWJlKGZ1bmN0aW9uICgpIHtcbiAgICAgIHNldElzVmlzaWJsZShpc1Rvb2x0aXBWaXNpYmxlKGlkKSk7XG4gICAgfSk7XG4gIH0sIFtpZF0pO1xuICB1c2VDaGVja1N0eWxlcyhcInRvb2x0aXBcIik7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG93bmVyRG9jdW1lbnQgPSBnZXRPd25lckRvY3VtZW50KG93blJlZi5jdXJyZW50KTtcblxuICAgIGZ1bmN0aW9uIGxpc3RlbmVyKGV2ZW50KSB7XG4gICAgICBpZiAoKGV2ZW50LmtleSA9PT0gXCJFc2NhcGVcIiB8fCBldmVudC5rZXkgPT09IFwiRXNjXCIpICYmIHN0YXRlLnZhbHVlID09PSBUb29sdGlwU3RhdGVzLlZpc2libGUpIHtcbiAgICAgICAgc2VuZCh7XG4gICAgICAgICAgdHlwZTogVG9vbHRpcEV2ZW50cy5TZWxlY3RXaXRoS2V5Ym9hcmRcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBsaXN0ZW5lcik7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGxpc3RlbmVyKTtcbiAgICB9O1xuICB9LCBbXSk7XG4gIHVzZURpc2FibGVkVHJpZ2dlck9uU2FmYXJpKHtcbiAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgaXNWaXNpYmxlOiBpc1Zpc2libGUsXG4gICAgcmVmOiBvd25SZWZcbiAgfSk7XG5cbiAgZnVuY3Rpb24gd3JhcE1vdXNlRXZlbnQodGhlaXJIYW5kbGVyLCBvdXJIYW5kbGVyKSB7XG4gICAgLy8gVXNlIGludGVybmFsIE1vdXNlRXZlbnQgaGFuZGxlciBvbmx5IGlmIFBvaW50ZXJFdmVudCBpcyBub3Qgc3VwcG9ydGVkXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgXCJQb2ludGVyRXZlbnRcIiBpbiB3aW5kb3cpIHtcbiAgICAgIHJldHVybiB0aGVpckhhbmRsZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBvc2VFdmVudEhhbmRsZXJzKHRoZWlySGFuZGxlciwgb3VySGFuZGxlcik7XG4gIH1cblxuICBmdW5jdGlvbiB3cmFwUG9pbnRlckV2ZW50SGFuZGxlcihoYW5kbGVyKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIG9uUG9pbnRlckV2ZW50KGV2ZW50KSB7XG4gICAgICAvLyBIYW5kbGUgcG9pbnRlciBldmVudHMgb25seSBmcm9tIG1vdXNlIGRldmljZVxuICAgICAgaWYgKGV2ZW50LnBvaW50ZXJUeXBlICE9PSBcIm1vdXNlXCIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBoYW5kbGVyKGV2ZW50KTtcbiAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlTW91c2VFbnRlcigpIHtcbiAgICBzZW5kKHtcbiAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuTW91c2VFbnRlcixcbiAgICAgIGlkOiBpZFxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlTW91c2VNb3ZlKCkge1xuICAgIHNlbmQoe1xuICAgICAgdHlwZTogVG9vbHRpcEV2ZW50cy5Nb3VzZU1vdmUsXG4gICAgICBpZDogaWRcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZU1vdXNlTGVhdmUoKSB7XG4gICAgc2VuZCh7XG4gICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLk1vdXNlTGVhdmVcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZU1vdXNlRG93bigpIHtcbiAgICAvLyBBbGxvdyBxdWljayBjbGljayBmcm9tIG9uZSB0b29sIHRvIGFub3RoZXJcbiAgICBpZiAoc3RhdGUuY29udGV4dC5pZCA9PT0gaWQpIHtcbiAgICAgIHNlbmQoe1xuICAgICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLk1vdXNlRG93blxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlRm9jdXMoKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlmICh3aW5kb3cuX19SRUFDSF9ESVNBQkxFX1RPT0xUSVBTKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2VuZCh7XG4gICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLkZvY3VzLFxuICAgICAgaWQ6IGlkXG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVCbHVyKCkge1xuICAgIC8vIEFsbG93IHF1aWNrIGNsaWNrIGZyb20gb25lIHRvb2wgdG8gYW5vdGhlclxuICAgIGlmIChzdGF0ZS5jb250ZXh0LmlkID09PSBpZCkge1xuICAgICAgc2VuZCh7XG4gICAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuQmx1clxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlS2V5RG93bihldmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09IFwiRW50ZXJcIiB8fCBldmVudC5rZXkgPT09IFwiIFwiKSB7XG4gICAgICBzZW5kKHtcbiAgICAgICAgdHlwZTogVG9vbHRpcEV2ZW50cy5TZWxlY3RXaXRoS2V5Ym9hcmRcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHZhciB0cmlnZ2VyID0ge1xuICAgIC8vIFRoZSBlbGVtZW50IHRoYXQgdHJpZ2dlcnMgdGhlIHRvb2x0aXAgcmVmZXJlbmNlcyB0aGUgdG9vbHRpcCBlbGVtZW50IHdpdGhcbiAgICAvLyBgYXJpYS1kZXNjcmliZWRieWAuXG4gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLXByYWN0aWNlcy0xLjIvI3Rvb2x0aXBcbiAgICBcImFyaWEtZGVzY3JpYmVkYnlcIjogaXNWaXNpYmxlID8gbWFrZUlkKFwidG9vbHRpcFwiLCBpZCkgOiB1bmRlZmluZWQsXG4gICAgXCJkYXRhLXN0YXRlXCI6IGlzVmlzaWJsZSA/IFwidG9vbHRpcC12aXNpYmxlXCIgOiBcInRvb2x0aXAtaGlkZGVuXCIsXG4gICAgXCJkYXRhLXJlYWNoLXRvb2x0aXAtdHJpZ2dlclwiOiBcIlwiLFxuICAgIHJlZjogcmVmLFxuICAgIG9uUG9pbnRlckVudGVyOiBjb21wb3NlRXZlbnRIYW5kbGVycyhvblBvaW50ZXJFbnRlciwgd3JhcFBvaW50ZXJFdmVudEhhbmRsZXIoaGFuZGxlTW91c2VFbnRlcikpLFxuICAgIG9uUG9pbnRlck1vdmU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uUG9pbnRlck1vdmUsIHdyYXBQb2ludGVyRXZlbnRIYW5kbGVyKGhhbmRsZU1vdXNlTW92ZSkpLFxuICAgIG9uUG9pbnRlckxlYXZlOiBjb21wb3NlRXZlbnRIYW5kbGVycyhvblBvaW50ZXJMZWF2ZSwgd3JhcFBvaW50ZXJFdmVudEhhbmRsZXIoaGFuZGxlTW91c2VMZWF2ZSkpLFxuICAgIG9uUG9pbnRlckRvd246IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uUG9pbnRlckRvd24sIHdyYXBQb2ludGVyRXZlbnRIYW5kbGVyKGhhbmRsZU1vdXNlRG93bikpLFxuICAgIG9uTW91c2VFbnRlcjogd3JhcE1vdXNlRXZlbnQob25Nb3VzZUVudGVyLCBoYW5kbGVNb3VzZUVudGVyKSxcbiAgICBvbk1vdXNlTW92ZTogd3JhcE1vdXNlRXZlbnQob25Nb3VzZU1vdmUsIGhhbmRsZU1vdXNlTW92ZSksXG4gICAgb25Nb3VzZUxlYXZlOiB3cmFwTW91c2VFdmVudChvbk1vdXNlTGVhdmUsIGhhbmRsZU1vdXNlTGVhdmUpLFxuICAgIG9uTW91c2VEb3duOiB3cmFwTW91c2VFdmVudChvbk1vdXNlRG93biwgaGFuZGxlTW91c2VEb3duKSxcbiAgICBvbkZvY3VzOiBjb21wb3NlRXZlbnRIYW5kbGVycyhvbkZvY3VzLCBoYW5kbGVGb2N1cyksXG4gICAgb25CbHVyOiBjb21wb3NlRXZlbnRIYW5kbGVycyhvbkJsdXIsIGhhbmRsZUJsdXIpLFxuICAgIG9uS2V5RG93bjogY29tcG9zZUV2ZW50SGFuZGxlcnMob25LZXlEb3duLCBoYW5kbGVLZXlEb3duKVxuICB9O1xuICB2YXIgdG9vbHRpcCA9IHtcbiAgICBpZDogaWQsXG4gICAgdHJpZ2dlclJlY3Q6IHRyaWdnZXJSZWN0LFxuICAgIGlzVmlzaWJsZTogaXNWaXNpYmxlXG4gIH07XG4gIHJldHVybiBbdHJpZ2dlciwgdG9vbHRpcCwgaXNWaXNpYmxlXTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqXG4gKiBUb29sdGlwXG4gKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC90b29sdGlwI3Rvb2x0aXBcbiAqL1xuXG5cbnZhciBUb29sdGlwID0gLyojX19QVVJFX18qL2ZvcndhcmRSZWYoZnVuY3Rpb24gKF9yZWYyLCBmb3J3YXJkZWRSZWYpIHtcbiAgdmFyIGNoaWxkcmVuID0gX3JlZjIuY2hpbGRyZW4sXG4gICAgICBsYWJlbCA9IF9yZWYyLmxhYmVsLFxuICAgICAgREVQUkVDQVRFRF9hcmlhTGFiZWwgPSBfcmVmMi5hcmlhTGFiZWwsXG4gICAgICBpZCA9IF9yZWYyLmlkLFxuICAgICAgREVCVUdfU1RZTEUgPSBfcmVmMi5ERUJVR19TVFlMRSxcbiAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3JlZjIsIF9leGNsdWRlZCk7XG5cbiAgdmFyIGNoaWxkID0gQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XG4gIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHdhcm5pbmcoIURFUFJFQ0FURURfYXJpYUxhYmVsLCBcIlRoZSBgYXJpYUxhYmVsIHByb3AgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGZyb20gQHJlYWNoL3Rvb2x0aXAgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiBSZWFjaCBVSS4gUGxlYXNlIHVzZSBgYXJpYS1sYWJlbGAgaW5zdGVhZC5cIikgOiB2b2lkIDA7IC8vIFdlIG5lZWQgdG8gcGFzcyBzb21lIHByb3BlcnRpZXMgZnJvbSB0aGUgY2hpbGQgaW50byB1c2VUb29sdGlwXG4gIC8vIHRvIG1ha2Ugc3VyZSB1c2VycyBjYW4gbWFpbnRhaW4gY29udHJvbCBvdmVyIHRoZSB0cmlnZ2VyJ3MgcmVmIGFuZCBldmVudHNcblxuICB2YXIgX3VzZVRvb2x0aXAgPSB1c2VUb29sdGlwKHtcbiAgICBpZDogaWQsXG4gICAgb25Qb2ludGVyRW50ZXI6IGNoaWxkLnByb3BzLm9uUG9pbnRlckVudGVyLFxuICAgIG9uUG9pbnRlck1vdmU6IGNoaWxkLnByb3BzLm9uUG9pbnRlck1vdmUsXG4gICAgb25Qb2ludGVyTGVhdmU6IGNoaWxkLnByb3BzLm9uUG9pbnRlckxlYXZlLFxuICAgIG9uUG9pbnRlckRvd246IGNoaWxkLnByb3BzLm9uUG9pbnRlckRvd24sXG4gICAgb25Nb3VzZUVudGVyOiBjaGlsZC5wcm9wcy5vbk1vdXNlRW50ZXIsXG4gICAgb25Nb3VzZU1vdmU6IGNoaWxkLnByb3BzLm9uTW91c2VNb3ZlLFxuICAgIG9uTW91c2VMZWF2ZTogY2hpbGQucHJvcHMub25Nb3VzZUxlYXZlLFxuICAgIG9uTW91c2VEb3duOiBjaGlsZC5wcm9wcy5vbk1vdXNlRG93bixcbiAgICBvbkZvY3VzOiBjaGlsZC5wcm9wcy5vbkZvY3VzLFxuICAgIG9uQmx1cjogY2hpbGQucHJvcHMub25CbHVyLFxuICAgIG9uS2V5RG93bjogY2hpbGQucHJvcHMub25LZXlEb3duLFxuICAgIGRpc2FibGVkOiBjaGlsZC5wcm9wcy5kaXNhYmxlZCxcbiAgICByZWY6IGNoaWxkLnJlZixcbiAgICBERUJVR19TVFlMRTogREVCVUdfU1RZTEVcbiAgfSksXG4gICAgICB0cmlnZ2VyID0gX3VzZVRvb2x0aXBbMF0sXG4gICAgICB0b29sdGlwID0gX3VzZVRvb2x0aXBbMV07XG5cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KEZyYWdtZW50LCBudWxsLCAvKiNfX1BVUkVfXyovY2xvbmVFbGVtZW50KGNoaWxkLCB0cmlnZ2VyKSwgLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoVG9vbHRpcFBvcHVwLCBfZXh0ZW5kcyh7XG4gICAgcmVmOiBmb3J3YXJkZWRSZWYsXG4gICAgbGFiZWw6IGxhYmVsLFxuICAgIFwiYXJpYS1sYWJlbFwiOiBERVBSRUNBVEVEX2FyaWFMYWJlbFxuICB9LCB0b29sdGlwLCBwcm9wcykpKTtcbn0pO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIFRvb2x0aXAuZGlzcGxheU5hbWUgPSBcIlRvb2x0aXBcIjtcbiAgVG9vbHRpcC5wcm9wVHlwZXMgPSB7XG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gICAgbGFiZWw6IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gICAgYXJpYUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nXG4gIH07XG59IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8qKlxuICogVG9vbHRpcFBvcHVwXG4gKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC90b29sdGlwI3Rvb2x0aXBwb3B1cFxuICovXG5cblxudmFyIFRvb2x0aXBQb3B1cCA9IC8qI19fUFVSRV9fKi9mb3J3YXJkUmVmKGZ1bmN0aW9uIFRvb2x0aXBQb3B1cChfcmVmMywgZm9yd2FyZFJlZikge1xuICB2YXIgbGFiZWwgPSBfcmVmMy5sYWJlbCxcbiAgICAgIERFUFJFQ0FURURfYXJpYUxhYmVsID0gX3JlZjMuYXJpYUxhYmVsLFxuICAgICAgaXNWaXNpYmxlID0gX3JlZjMuaXNWaXNpYmxlLFxuICAgICAgaWQgPSBfcmVmMy5pZCxcbiAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3JlZjMsIF9leGNsdWRlZDIpO1xuXG4gIHJldHVybiBpc1Zpc2libGUgPyAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChQb3J0YWwsIG51bGwsIC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KFRvb2x0aXBDb250ZW50LCBfZXh0ZW5kcyh7XG4gICAgcmVmOiBmb3J3YXJkUmVmLFxuICAgIGxhYmVsOiBsYWJlbCxcbiAgICBcImFyaWEtbGFiZWxcIjogREVQUkVDQVRFRF9hcmlhTGFiZWwsXG4gICAgaXNWaXNpYmxlOiBpc1Zpc2libGVcbiAgfSwgcHJvcHMsIHtcbiAgICBpZDogbWFrZUlkKFwidG9vbHRpcFwiLCBTdHJpbmcoaWQpKVxuICB9KSkpIDogbnVsbDtcbn0pO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIFRvb2x0aXBQb3B1cC5kaXNwbGF5TmFtZSA9IFwiVG9vbHRpcFBvcHVwXCI7XG4gIFRvb2x0aXBQb3B1cC5wcm9wVHlwZXMgPSB7XG4gICAgbGFiZWw6IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gICAgYXJpYUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHBvc2l0aW9uOiBQcm9wVHlwZXMuZnVuY1xuICB9O1xufVxuLyoqXG4gKiBUb29sdGlwQ29udGVudFxuICpcbiAqIFdlIG5lZWQgYSBzZXBhcmF0ZSBjb21wb25lbnQgc28gdGhhdCB1c2VSZWN0IHdvcmtzIGluc2lkZSB0aGUgcG9ydGFsLlxuICpcbiAqIEBzZWUgRG9jcyBodHRwczovL3JlYWNoLnRlY2gvdG9vbHRpcCN0b29sdGlwY29udGVudFxuICovXG5cblxudmFyIFRvb2x0aXBDb250ZW50ID0gLyojX19QVVJFX18qL2ZvcndhcmRSZWYoZnVuY3Rpb24gVG9vbHRpcENvbnRlbnQoX3JlZjQsIGZvcndhcmRlZFJlZikge1xuICB2YXIgYXJpYUxhYmVsID0gX3JlZjQuYXJpYUxhYmVsLFxuICAgICAgcmVhbEFyaWFMYWJlbCA9IF9yZWY0W1wiYXJpYS1sYWJlbFwiXSxcbiAgICAgIF9yZWY0JGFzID0gX3JlZjQuYXMsXG4gICAgICBDb21wID0gX3JlZjQkYXMgPT09IHZvaWQgMCA/IFwiZGl2XCIgOiBfcmVmNCRhcyxcbiAgICAgIGlkID0gX3JlZjQuaWQsXG4gICAgICBpc1Zpc2libGUgPSBfcmVmNC5pc1Zpc2libGUsXG4gICAgICBsYWJlbCA9IF9yZWY0LmxhYmVsLFxuICAgICAgX3JlZjQkcG9zaXRpb24gPSBfcmVmNC5wb3NpdGlvbixcbiAgICAgIHBvc2l0aW9uID0gX3JlZjQkcG9zaXRpb24gPT09IHZvaWQgMCA/IHBvc2l0aW9uVG9vbHRpcCA6IF9yZWY0JHBvc2l0aW9uLFxuICAgICAgc3R5bGUgPSBfcmVmNC5zdHlsZSxcbiAgICAgIHRyaWdnZXJSZWN0ID0gX3JlZjQudHJpZ2dlclJlY3QsXG4gICAgICBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKF9yZWY0LCBfZXhjbHVkZWQzKTtcblxuICAvLyBUaGUgZWxlbWVudCB0aGF0IHNlcnZlcyBhcyB0aGUgdG9vbHRpcCBjb250YWluZXIgaGFzIHJvbGUgdG9vbHRpcC5cbiAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLXByYWN0aWNlcy0xLjIvI3Rvb2x0aXAgV2hlbiBhbiBhcHAgcGFzc2VzXG4gIC8vIGFuIGBhcmlhLWxhYmVsYCwgd2UgYWN0dWFsbHkgd2FudCB0byBpbXBsZW1lbnQgYHJvbGU9XCJ0b29sdGlwXCJgIG9uIGFcbiAgLy8gdmlzdWFsbHkgaGlkZGVuIGVsZW1lbnQgaW5zaWRlIG9mIHRoZSB0cmlnZ2VyLiBJbiB0aGVzZSBjYXNlcyB3ZSB3YW50IHRoZVxuICAvLyBzY3JlZW4gcmVhZGVyIHVzZXIgdG8ga25vdyBib3RoIHRoZSBjb250ZW50IGluIHRoZSB0b29sdGlwLCBidXQgYWxzbyB0aGVcbiAgLy8gY29udGVudCBpbiB0aGUgYmFkZ2UuIEZvciBzY3JlZW4gcmVhZGVyIHVzZXJzLCB0aGUgb25seSBjb250ZW50IGFubm91bmNlZFxuICAvLyB0byB0aGVtIGlzIHdoYXRldmVyIGlzIGluIHRoZSB0b29sdGlwLlxuICB2YXIgaGFzQXJpYUxhYmVsID0gKHJlYWxBcmlhTGFiZWwgfHwgYXJpYUxhYmVsKSAhPSBudWxsO1xuICB2YXIgb3duUmVmID0gdXNlUmVmKG51bGwpO1xuICB2YXIgcmVmID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgb3duUmVmKTtcbiAgdmFyIHRvb2x0aXBSZWN0ID0gdXNlUmVjdChvd25SZWYsIHtcbiAgICBvYnNlcnZlOiBpc1Zpc2libGVcbiAgfSk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChGcmFnbWVudCwgbnVsbCwgLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoQ29tcCwgX2V4dGVuZHMoe1xuICAgIHJvbGU6IGhhc0FyaWFMYWJlbCA/IHVuZGVmaW5lZCA6IFwidG9vbHRpcFwiXG4gIH0sIHByb3BzLCB7XG4gICAgcmVmOiByZWYsXG4gICAgXCJkYXRhLXJlYWNoLXRvb2x0aXBcIjogXCJcIixcbiAgICBpZDogaGFzQXJpYUxhYmVsID8gdW5kZWZpbmVkIDogaWQsXG4gICAgc3R5bGU6IF9leHRlbmRzKHt9LCBzdHlsZSwgZ2V0U3R5bGVzKHBvc2l0aW9uLCB0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QpKVxuICB9KSwgbGFiZWwpLCBoYXNBcmlhTGFiZWwgJiYgLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoVmlzdWFsbHlIaWRkZW4sIHtcbiAgICByb2xlOiBcInRvb2x0aXBcIixcbiAgICBpZDogaWRcbiAgfSwgcmVhbEFyaWFMYWJlbCB8fCBhcmlhTGFiZWwpKTtcbn0pO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIFRvb2x0aXBDb250ZW50LmRpc3BsYXlOYW1lID0gXCJUb29sdGlwQ29udGVudFwiO1xuICBUb29sdGlwQ29udGVudC5wcm9wVHlwZXMgPSB7fTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuXG5mdW5jdGlvbiBnZXRTdHlsZXMocG9zaXRpb24sIHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCkge1xuICB2YXIgaGF2ZW50TWVhc3VyZWRUb29sdGlwWWV0ID0gIXRvb2x0aXBSZWN0O1xuXG4gIGlmIChoYXZlbnRNZWFzdXJlZFRvb2x0aXBZZXQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmlzaWJpbGl0eTogXCJoaWRkZW5cIlxuICAgIH07XG4gIH1cblxuICByZXR1cm4gcG9zaXRpb24odHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KTtcbn0gLy8gRGVmYXVsdCBvZmZzZXQgZnJvbSB0aGUgdHJpZ2dlciAoZS5nLiwgaWYgdGhlIHRvb2x0aXAgaXMgcG9zaXRpb25lZCBhYm92ZSxcbi8vIHRoZXJlIHdpbGwgYmUgOHB4IGJldHdlZW4gdGhlIGJvdHRvbSBvZiB0aGUgdG9vbHRpcCBhbmQgdGhlIHRvcCBvZiB0aGUgdHJpZ2dlcikuXG4vLyBJdCBmZWVscyBhd2t3YXJkIHdoZW4gaXQncyBwZXJmZWN0bHkgYWxpZ25lZCB3LyB0aGUgdHJpZ2dlclxuXG5cbnZhciBPRkZTRVRfREVGQVVMVCA9IDg7XG52YXIgcG9zaXRpb25Ub29sdGlwID0gZnVuY3Rpb24gcG9zaXRpb25Ub29sdGlwKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCwgb2Zmc2V0KSB7XG4gIGlmIChvZmZzZXQgPT09IHZvaWQgMCkge1xuICAgIG9mZnNldCA9IE9GRlNFVF9ERUZBVUxUO1xuICB9XG5cbiAgdmFyIF9nZXREb2N1bWVudERpbWVuc2lvbiA9IGdldERvY3VtZW50RGltZW5zaW9ucygpLFxuICAgICAgd2luZG93V2lkdGggPSBfZ2V0RG9jdW1lbnREaW1lbnNpb24ud2lkdGgsXG4gICAgICB3aW5kb3dIZWlnaHQgPSBfZ2V0RG9jdW1lbnREaW1lbnNpb24uaGVpZ2h0O1xuXG4gIGlmICghdHJpZ2dlclJlY3QgfHwgIXRvb2x0aXBSZWN0KSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgdmFyIGNvbGxpc2lvbnMgPSB7XG4gICAgdG9wOiB0cmlnZ2VyUmVjdC50b3AgLSB0b29sdGlwUmVjdC5oZWlnaHQgPCAwLFxuICAgIHJpZ2h0OiB3aW5kb3dXaWR0aCA8IHRyaWdnZXJSZWN0LmxlZnQgKyB0b29sdGlwUmVjdC53aWR0aCxcbiAgICBib3R0b206IHdpbmRvd0hlaWdodCA8IHRyaWdnZXJSZWN0LmJvdHRvbSArIHRvb2x0aXBSZWN0LmhlaWdodCArIG9mZnNldCxcbiAgICBsZWZ0OiB0cmlnZ2VyUmVjdC5sZWZ0IC0gdG9vbHRpcFJlY3Qud2lkdGggPCAwXG4gIH07XG4gIHZhciBkaXJlY3Rpb25SaWdodCA9IGNvbGxpc2lvbnMucmlnaHQgJiYgIWNvbGxpc2lvbnMubGVmdDtcbiAgdmFyIGRpcmVjdGlvblVwID0gY29sbGlzaW9ucy5ib3R0b20gJiYgIWNvbGxpc2lvbnMudG9wO1xuICByZXR1cm4ge1xuICAgIGxlZnQ6IGRpcmVjdGlvblJpZ2h0ID8gdHJpZ2dlclJlY3QucmlnaHQgLSB0b29sdGlwUmVjdC53aWR0aCArIHdpbmRvdy5wYWdlWE9mZnNldCArIFwicHhcIiA6IHRyaWdnZXJSZWN0LmxlZnQgKyB3aW5kb3cucGFnZVhPZmZzZXQgKyBcInB4XCIsXG4gICAgdG9wOiBkaXJlY3Rpb25VcCA/IHRyaWdnZXJSZWN0LnRvcCAtIG9mZnNldCAtIHRvb2x0aXBSZWN0LmhlaWdodCArIHdpbmRvdy5wYWdlWU9mZnNldCArIFwicHhcIiA6IHRyaWdnZXJSZWN0LnRvcCArIG9mZnNldCArIHRyaWdnZXJSZWN0LmhlaWdodCArIHdpbmRvdy5wYWdlWU9mZnNldCArIFwicHhcIlxuICB9O1xufTtcbi8qKlxuICogVGhpcyBpcyBhIHdvcmthcm91bmQgZm9yIHVzaW5nIHRvb2x0aXBzIHdpdGggZGlzYWJsZWQgY29udHJvbHMgaW4gU2FmYXJpLlxuICogU2FmYXJpIGZpcmVzIGBwb2ludGVyZW50ZXJgIGJ1dCBkb2VzIG5vdCBmaXJlIGBwb2ludGVybGVhdmVgLCBhbmRcbiAqIGBvblBvaW50ZXJFdmVudExlYXZlYCBhZGRlZCB0byB0aGUgdHJpZ2dlciBlbGVtZW50IHdpbGwgbm90IHdvcmsuXG4gKlxuICogVE9ETzogV2UgbWF5IHJlbW92ZSBvciBtb2RpaWZ5IHRoaXMgYmVoYXZpb3IgaW4gYSBmdXR1cmUgdmVyc2lvbi4gRGlyZWN0aW9uXG4gKiBmcm9tIFdBSS1BUklBIG5lZWRlZCBmb3IgZ3VpZGFuY2Ugb24gaGFuZGxpbmcgZGlzYWJsZWQgdHJpZ2dlcnMuIFRvb2x0aXBzXG4gKiBtdXN0IGJlIGFjY2Vzc2libGUgYnkga2V5Ym9hcmQsIGFuZCBkaXNhYmxlZCBmb3JtIGNvbnRyb2xzIGFyZSBnZW5lcmFsbHlcbiAqIGV4Y2x1ZGVkIGZyb20gdGhlIHRhYiBzZXF1ZW5jZS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjaC9yZWFjaC11aS9pc3N1ZXMvNTY0XG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvYXJpYS1wcmFjdGljZXMvaXNzdWVzLzEyOCNpc3N1ZWNvbW1lbnQtNTg4NjI1NzI3XG4gKi9cblxuZnVuY3Rpb24gdXNlRGlzYWJsZWRUcmlnZ2VyT25TYWZhcmkoX3JlZjUpIHtcbiAgdmFyIGRpc2FibGVkID0gX3JlZjUuZGlzYWJsZWQsXG4gICAgICBpc1Zpc2libGUgPSBfcmVmNS5pc1Zpc2libGUsXG4gICAgICByZWYgPSBfcmVmNS5yZWY7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCEodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBcIlBvaW50ZXJFdmVudFwiIGluIHdpbmRvdykgfHwgIWRpc2FibGVkIHx8ICFpc1Zpc2libGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgb3duZXJEb2N1bWVudCA9IGdldE93bmVyRG9jdW1lbnQocmVmLmN1cnJlbnQpO1xuXG4gICAgZnVuY3Rpb24gaGFuZGxlTW91c2VNb3ZlKGV2ZW50KSB7XG4gICAgICBpZiAoIWlzVmlzaWJsZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChldmVudC50YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50ICYmIGV2ZW50LnRhcmdldC5jbG9zZXN0KFwiW2RhdGEtcmVhY2gtdG9vbHRpcC10cmlnZ2VyXVtkYXRhLXN0YXRlPSd0b29sdGlwLXZpc2libGUnXVwiKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHNlbmQoe1xuICAgICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLkdsb2JhbE1vdXNlTW92ZVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIGhhbmRsZU1vdXNlTW92ZSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCBoYW5kbGVNb3VzZU1vdmUpO1xuICAgIH07XG4gIH0sIFtkaXNhYmxlZCwgaXNWaXNpYmxlLCByZWZdKTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqXG4gKiBTZW5kIGFuIGV2ZW50IHRvIG91ciBzdGF0ZSBtYWNoaW5lIHRvIGZpbmQgdGhlIG5leHQgc3RhdGUgZnJvbSB0aGUgY3VycmVudFxuICogc3RhdGUgKyBhY3Rpb24uXG4gKlxuICogSXQgYWxzbyBtYW5hZ2VzIGxpZmVjeWNsZXMgb2YgdGhlIG1hY2hpbmUsIChlbnRlci9sZWF2ZSBob29rcyBvbiB0aGUgc3RhdGVcbiAqIGNoYXJ0KVxuICpcbiAqIEBwYXJhbSBldmVudFxuICogQHBhcmFtIHBheWxvYWRcbiAqL1xuXG5cbmZ1bmN0aW9uIHNlbmQoZXZlbnQpIHtcbiAgdmFyIF90cmFuc2l0aW9uID0gdHJhbnNpdGlvbihzdGF0ZSwgZXZlbnQpLFxuICAgICAgdmFsdWUgPSBfdHJhbnNpdGlvbi52YWx1ZSxcbiAgICAgIGNvbnRleHQgPSBfdHJhbnNpdGlvbi5jb250ZXh0LFxuICAgICAgY2hhbmdlZCA9IF90cmFuc2l0aW9uLmNoYW5nZWQ7XG5cbiAgaWYgKGNoYW5nZWQpIHtcbiAgICBzdGF0ZSA9IHtcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGNvbnRleHQ6IGNvbnRleHRcbiAgICB9O1xuICAgIG5vdGlmeSgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRyYW5zaXRpb24oY3VycmVudFN0YXRlLCBldmVudCkge1xuICB2YXIgc3RhdGVEZWYgPSBjaGFydC5zdGF0ZXNbY3VycmVudFN0YXRlLnZhbHVlXTtcbiAgdmFyIG5leHRTdGF0ZSA9IHN0YXRlRGVmICYmIHN0YXRlRGVmLm9uICYmIHN0YXRlRGVmLm9uW2V2ZW50LnR5cGVdOyAvLyBSZWFsbHkgdXNlZnVsIGZvciBkZWJ1Z2dpbmdcbiAgLy8gY29uc29sZS5sb2coeyBldmVudCwgc3RhdGUsIG5leHRTdGF0ZSwgY29udGV4dElkOiBjb250ZXh0LmlkIH0pO1xuICAvLyAhbmV4dFN0YXRlICYmIGNvbnNvbGUubG9nKFwibm8gdHJhbnNpdGlvbiB0YWtlblwiKTtcblxuICBpZiAoIW5leHRTdGF0ZSkge1xuICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgY3VycmVudFN0YXRlLCB7XG4gICAgICBjaGFuZ2VkOiBmYWxzZVxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHN0YXRlRGVmICYmIHN0YXRlRGVmLmxlYXZlKSB7XG4gICAgc3RhdGVEZWYubGVhdmUoY3VycmVudFN0YXRlLmNvbnRleHQsIGV2ZW50KTtcbiAgfVxuXG4gIGV2ZW50LnR5cGU7XG4gICAgICB2YXIgcGF5bG9hZCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKGV2ZW50LCBfZXhjbHVkZWQ0KTsgLy8gVE9ETzogVXNlIGFjdGlvbnMgaW5zdGVhZCBvZiBkaXJlY3RseSBzZXR0aW5nIGNvbnRleHRcblxuXG4gIHZhciBjb250ZXh0ID0gX2V4dGVuZHMoe30sIHN0YXRlLmNvbnRleHQsIHBheWxvYWQpO1xuXG4gIHZhciBuZXh0U3RhdGVWYWx1ZSA9IHR5cGVvZiBuZXh0U3RhdGUgPT09IFwic3RyaW5nXCIgPyBuZXh0U3RhdGUgOiBuZXh0U3RhdGUudGFyZ2V0O1xuICB2YXIgbmV4dERlZiA9IGNoYXJ0LnN0YXRlc1tuZXh0U3RhdGVWYWx1ZV07XG5cbiAgaWYgKG5leHREZWYgJiYgbmV4dERlZi5lbnRlcikge1xuICAgIG5leHREZWYuZW50ZXIoY3VycmVudFN0YXRlLmNvbnRleHQsIGV2ZW50KTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdmFsdWU6IG5leHRTdGF0ZVZhbHVlLFxuICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgY2hhbmdlZDogdHJ1ZVxuICB9O1xufVxuXG5mdW5jdGlvbiBpc1Rvb2x0aXBWaXNpYmxlKGlkLCBpbml0aWFsKSB7XG4gIHJldHVybiBzdGF0ZS5jb250ZXh0LmlkID09PSBpZCAmJiAoaW5pdGlhbCA/IHN0YXRlLnZhbHVlID09PSBUb29sdGlwU3RhdGVzLlZpc2libGUgOiBzdGF0ZS52YWx1ZSA9PT0gVG9vbHRpcFN0YXRlcy5WaXNpYmxlIHx8IHN0YXRlLnZhbHVlID09PSBUb29sdGlwU3RhdGVzLkxlYXZpbmdWaXNpYmxlKTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGRlZmF1bHQgVG9vbHRpcDtcbmV4cG9ydCB7IExFQVZFX1RJTUVPVVQsIE1PVVNFX1JFU1RfVElNRU9VVCwgVG9vbHRpcCwgVG9vbHRpcFBvcHVwLCBwb3NpdGlvblRvb2x0aXAsIHVzZVRvb2x0aXAgfTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///197\n\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\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\n}")},172(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 // removed by dead control flow\n{ 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 _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }\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\n}')},888(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 // removed by dead control flow\n{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODg4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFJQSxJQUFNQSxPQUFPLEdBQUcsU0FBVkEsT0FBT0EsQ0FBSUMsS0FBSyxFQUFLO0lBQ3ZCLElBQUlDLFVBQVUsTUFBQUMsTUFBQSxDQUFNRixLQUFLLENBQUNHLElBQUksSUFBSSxPQUFPLE9BQUFELE1BQUEsQ0FBSUYsS0FBSyxDQUFDSSxJQUFJLElBQUksRUFBRSxDQUFFO0lBQy9ELElBQUlDLFlBQVksR0FBR0wsS0FBSyxDQUFDTSxPQUFPO0lBRWhDLG9CQUNJQyxNQUFBLFlBQUFDLGFBQUE7TUFBU0MsU0FBUyxFQUFDO0lBQVksZ0JBQzNCRixNQUFBLFlBQUFDLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQXNCLGdCQUNqQ0YsTUFBQSxZQUFBQyxhQUFBLGFBQUksbUJBQWdCLENBQUMsZUFDckJELE1BQUEsWUFBQUMsYUFBQTtNQUFHQyxTQUFTLEVBQUM7SUFBSSxHQUFDLDZCQUE4QixDQUFDLGVBQ2pERixNQUFBLFlBQUFDLGFBQUEsQ0FBQ0UsWUFBQSxXQUFXO01BQ1JDLFNBQVMsRUFBQyx3Q0FBd0M7TUFDbERDLFNBQVMsRUFBQyx5Q0FBeUM7TUFDbkRDLFlBQVksRUFBRVosVUFBVztNQUN6QmEsT0FBTyxFQUFFVDtJQUFhLENBQ3pCLENBQ0EsQ0FDQSxDQUFDO0VBRWxCLENBQUM7RUFFRE4sT0FBTyxDQUFDZ0IsU0FBUyxHQUFHO0lBQ2hCWCxJQUFJLEVBQUVZLHFCQUFTLENBQUNDLE1BQU07SUFDdEJYLE9BQU8sRUFBRVUscUJBQVMsQ0FBQ0UsU0FBUyxDQUFDLENBQUNGLHFCQUFTLENBQUNHLEtBQUssRUFBRUgscUJBQVMsQ0FBQ0MsTUFBTSxDQUFDLENBQUM7SUFDakVkLElBQUksRUFBRWEscUJBQVMsQ0FBQ0M7RUFDcEIsQ0FBQztFQUFDLElBQUFHLFFBQUEsR0FBQUMsUUFBQSxjQUVhdEIsT0FBTztBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9jb21wb25lbnRzL0Vycm9yL0Vycm9yVUkuanN4P2Y0Y2UiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IENvbGxhcHNpYmxlIGZyb20gXCIuL0NvbGxhcHNpYmxlXCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5cbmNvbnN0IEVycm9yVUkgPSAocHJvcHMpID0+IHtcbiAgICBsZXQgZXJyb3JUaXRsZSA9IGAke3Byb3BzLnR5cGUgfHwgXCJFcnJvclwifSAke3Byb3BzLmNvZGUgfHwgXCJcIn1gO1xuICAgIGxldCBlcnJvckRldGFpbHMgPSBwcm9wcy5tZXNzYWdlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicGFnZS1lcnJvclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZXNwb25zaXZlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxoMT5XZeKAmXJlIHNvcnJ5LjwvaDE+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaDJcIj5XZSBjYW5ub3QgYWNjZXNzIHRoaXMgcGFnZS48L3A+XG4gICAgICAgICAgICAgICAgPENvbGxhcHNpYmxlXG4gICAgICAgICAgICAgICAgICAgIHNob3dMYWJlbD1cIk9wZW4gdGVjaG5pY2FsIGRldGFpbHMgYWJvdXQgdGhlIGVycm9yXCJcbiAgICAgICAgICAgICAgICAgICAgaGlkZUxhYmVsPVwiQ2xvc2UgdGVjaG5pY2FsIGRldGFpbHMgYWJvdXQgdGhlIGVycm9yXCJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudFRpdGxlPXtlcnJvclRpdGxlfVxuICAgICAgICAgICAgICAgICAgICBjb250ZW50PXtlcnJvckRldGFpbHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgKTtcbn07XG5cbkVycm9yVUkucHJvcFR5cGVzID0ge1xuICAgIGNvZGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbWVzc2FnZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFycmF5LCBQcm9wVHlwZXMuc3RyaW5nXSksXG4gICAgdHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEVycm9yVUk7XG4iXSwibmFtZXMiOlsiRXJyb3JVSSIsInByb3BzIiwiZXJyb3JUaXRsZSIsImNvbmNhdCIsInR5cGUiLCJjb2RlIiwiZXJyb3JEZXRhaWxzIiwibWVzc2FnZSIsIl9yZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJfQ29sbGFwc2libGUiLCJzaG93TGFiZWwiLCJoaWRlTGFiZWwiLCJjb250ZW50VGl0bGUiLCJjb250ZW50IiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwib25lT2ZUeXBlIiwiYXJyYXkiLCJfZGVmYXVsdCIsIl9leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///888\n\n}')},694(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 // removed by dead control flow\n{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjk0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUlBO0FBQ0E7QUFDQTtFQUZBLElBR3FCQSxTQUFTLEdBQUFDLFFBQUEsMkJBQUFDLFlBQUE7RUFDMUI7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDSSxTQUFBRixVQUFZRyxPQUFPLEVBQUU7SUFBQUMsZUFBQSxPQUFBSixTQUFBO0lBQ2pCLElBQUFLLGdCQUFNLGVBQ0ZDLE1BQUEsWUFBQUMsYUFBQSxDQUFDQyxRQUFBLFdBQU87TUFDSkMsSUFBSSxFQUFFTixPQUFPLENBQUNNLElBQUs7TUFDbkJDLElBQUksRUFBRVAsT0FBTyxDQUFDTyxJQUFLO01BQ25CQyxPQUFPLEVBQUVSLE9BQU8sQ0FBQ1E7SUFBUSxDQUM1QixDQUFDLEVBQ0ZSLE9BQU8sQ0FBQ1MsV0FDWixDQUFDO0VBQ0wsQ0FBQztBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9jb21wb25lbnRzL0Vycm9yL2Vycm9yLmpzP2YwYzAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IEVycm9yVUkgZnJvbSBcIi4vRXJyb3JVSVwiO1xuXG4vKipcbiAqIFJlbmRlcnMgdGhlIFFQUCBFcnJvciBQYWdlIGNvbnRlbnQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVycm9yUGFnZSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBBbiBvYmplY3QgY29udGFpbmluZyBjb250ZW50IGFuZCBjb25maWcgZGF0YVxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRpb25zLnR5cGUgLSBUaGUgZXJyb3IgdHlwZVxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRpb25zLmNvZGUgLSBUaGUgZXJyb3IgY29kZVxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRpb25zLm1lc3NhZ2UgLSBUaGUgZXJyb3IgbWVzc2FnZVxuICAgICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IG9wdGlvbnMucm9vdEVsZW1lbnQgLSBFbGVtIGluc2lkZSB3aGljaCB0byByZW5kZXJcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHJlbmRlcihcbiAgICAgICAgICAgIDxFcnJvclVJXG4gICAgICAgICAgICAgICAgdHlwZT17b3B0aW9ucy50eXBlfVxuICAgICAgICAgICAgICAgIGNvZGU9e29wdGlvbnMuY29kZX1cbiAgICAgICAgICAgICAgICBtZXNzYWdlPXtvcHRpb25zLm1lc3NhZ2V9XG4gICAgICAgICAgICAvPixcbiAgICAgICAgICAgIG9wdGlvbnMucm9vdEVsZW1lbnRcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsiRXJyb3JQYWdlIiwiX2V4cG9ydHMiLCJfY3JlYXRlQ2xhc3MiLCJvcHRpb25zIiwiX2NsYXNzQ2FsbENoZWNrIiwicmVuZGVyIiwiX3JlYWN0IiwiY3JlYXRlRWxlbWVudCIsIl9FcnJvclVJIiwidHlwZSIsImNvZGUiLCJtZXNzYWdlIiwicm9vdEVsZW1lbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///694\n\n}')},756(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 // removed by dead control flow\n{ 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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bGUvLi9jb21wb25lbnRzL0Zvb3Rlci9Gb290ZXJVSS5qc3g/Y2Q4YiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5cbmltcG9ydCBMZWdhY3lGb290ZXJVSSBmcm9tIFwiLi9MZWdhY3lGb290ZXJVSVwiO1xuXG5jb25zdCBGb290ZXJVSSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGlzTmV3Rm9vdGVyID0gcHJvcHMuaXNOZXdGb290ZXI7XG4gICAgY29uc3QgaXNJRVN1cHBvcnRQYWdlID0gcHJvcHMuaXNJRVN1cHBvcnRQYWdlO1xuICAgIGNvbnN0IHNpZ25VcE5vd0xpbmsgPSBwcm9wcy5zaG93SGNkUmVzZWFyY2hcbiAgICAgICAgPyBcIi9hYm91dC9oY2QtcmVzZWFyY2hcIlxuICAgICAgICA6IFwibWFpbHRvOm1hZGllQGNtcy5oaHMuZ292P3N1YmplY3Q9U2lnbiB1cCBmb3IgZmVlZGJhY2sgc2Vzc2lvbnNcIjtcblxuICAgIC8vIERlZmF1bHQgZm9vdGVyIGFzc2V0c1xuICAgIGNvbnN0IGFzc2V0cyA9IHtcbiAgICAgICAgLi4ue1xuICAgICAgICAgICAgaGhzTG9nbzogKFxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaGhzLWxvZ29cIlxuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJEZXBhcnRtZW50IG9mIEhlYWx0aCAmYW1wOyBIdW1hbiBTZXJ2aWNlcyBVU0FcIlxuICAgICAgICAgICAgICAgICAgICBzcmM9XCIvaW1hZ2VzL2hocy1sb2dvLWJsYWNrLnN2Z1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBtYWRpZUxvZ286IChcbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInFwcC1sb2dvXCJcbiAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2ltYWdlcy9xcHBfbG9nb19yZ2JfY29sb3IucG5nXCJcbiAgICAgICAgICAgICAgICAgICAgYWx0PVwiTUFEaUUgTWVhc3VyZSBBdXRob3JpbmcgRGV2ZWxvcG1lbnQgSW50ZWdyYXRlZCBFbnZpcm9ubWVudCBsb2dvXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4ucHJvcHMuYXNzZXRzLFxuICAgIH07XG5cbiAgICBjb25zdCBzZXRMaW5rID0gKGxpbmspID0+IHtcbiAgICAgICAgcmV0dXJuIGlzSUVTdXBwb3J0UGFnZSA/IFwiL1wiIDogbGluaztcbiAgICB9O1xuXG4gICAgaWYgKGlzTmV3Rm9vdGVyKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHshaXNJRVN1cHBvcnRQYWdlICYmIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmZWVkYmFjay1zZXNzaW9uLXNpZ24tdXBcIiAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPGZvb3RlciBhcmlhLWxhYmVsPVwiU2l0ZSBmb290ZXJcIiBjbGFzc05hbWU9XCJnbG9iYWwtZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnVpbGQtdmVyc2lvblwiIGlkPVwiYnVpbGQtdmVyc2lvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3Byb3BzLmJ1aWxkVmVyc2lvbn1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZXNwb25zaXZlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJvdGhlci1saW5rc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzc05hbWU9XCJkaXZpZGVyLXRvcFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cInNtYWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17c2V0TGluayhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJodHRwczovL2hhcnAuY21zLmdvdi9sb2dpbi90ZXJtcy1vZi11c2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlRlcm1zIG9mIFVzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuVGVybXNPZlNlcnZpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJUZXJtcyBvZiBVc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlcm1zIG9mIFVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwiZGl2aWRlclwiPjwvbGk+e1wiIFwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e3NldExpbmsoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaHR0cHM6Ly93d3cuY21zLmdvdi9wcml2YWN5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJQcml2YWN5IFBvbGljeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuUHJpdmFjeVBvbGljeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIlByaXZhY3kgUG9saWN5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcml2YWN5IFBvbGljeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwiZGl2aWRlclwiPjwvbGk+e1wiIFwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e3NldExpbmsoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaHR0cHM6Ly93d3cuaGhzLmdvdi93ZWIvZ292ZXJuYW5jZS9kaWdpdGFsLXN0cmF0ZWd5L2l0LXBvbGljeS1hcmNoaXZlL2hocy1ydWxlcy1vZi1iZWhhdmlvci1mb3ItdGhlLXVzZS1vZi1oaHMtaW5mb3JtYXRpb24tYW5kLWl0LXJlc291cmNlcy1wb2xpY3kuaHRtbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiUnVsZXMgb2YgQmVoYXZpb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiT3BlblJ1bGVzb2ZCZWhhdmlvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIlJ1bGVzIG9mIEJlaGF2aW9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlcyBvZiBCZWhhdmlvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzTmFtZT1cImRpdmlkZXItYm90dG9tXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJxcHAtaGhzLWxvZ28tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJxcHAtbG9nby1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Fzc2V0cy5xcHBMb2dvfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGhzLWxvZ28tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthc3NldHMuaGhzTG9nb31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIGZlZGVyYWwgZ292ZXJubWVudCB3ZWJzaXRlIG1hbmFnZWQgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWlkIGZvciBieSB0aGUgVS5TIENlbnRlcnMgZm9yIE1lZGljYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYW1wOyBNZWRpY2FpZCBTZXJ2aWNlcy4gNzUwMCBTZWN1cml0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQm91bGV2YXJkLCBCYWx0aW1vcmUgTUQgMjEyNDRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZm9vdGVyPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAgIDxMZWdhY3lGb290ZXJVSVxuICAgICAgICAgICAgYnVpbGRWZXJzaW9uPXtwcm9wcy5idWlsZFZlcnNpb259XG4gICAgICAgICAgICBpc0Z1bGxXaWR0aD17cHJvcHMuaXNGdWxsV2lkdGh9XG4gICAgICAgICAgICBzaWduVXBOb3dMaW5rPXtzaWduVXBOb3dMaW5rfVxuICAgICAgICAvPlxuICAgICk7XG59O1xuXG5Gb290ZXJVSS5wcm9wVHlwZXMgPSB7XG4gICAgYnVpbGRWZXJzaW9uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGlzRnVsbFdpZHRoOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0Zvb3RlcjogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNJRVN1cHBvcnRQYWdlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzaG93SGNkUmVzZWFyY2g6IFByb3BUeXBlcy5ib29sLFxuICAgIGFzc2V0czogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgICAgY21zTG9nbzogUHJvcFR5cGVzLmVsZW1lbnQsXG4gICAgICAgIG1hZGllTG9nbzogUHJvcFR5cGVzLmVsZW1lbnQsXG4gICAgfSksXG59O1xuXG5leHBvcnQgZGVmYXVsdCBGb290ZXJVSTtcbiJdLCJuYW1lcyI6WyJGb290ZXJVSSIsInByb3BzIiwiaXNOZXdGb290ZXIiLCJpc0lFU3VwcG9ydFBhZ2UiLCJzaWduVXBOb3dMaW5rIiwic2hvd0hjZFJlc2VhcmNoIiwiYXNzZXRzIiwiX29iamVjdFNwcmVhZCIsImhoc0xvZ28iLCJfcmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiYWx0Iiwic3JjIiwibWFkaWVMb2dvIiwic2V0TGluayIsImxpbmsiLCJGcmFnbWVudCIsImlkIiwiYnVpbGRWZXJzaW9uIiwiaHJlZiIsInFwcExvZ28iLCJfTGVnYWN5Rm9vdGVyVUkiLCJpc0Z1bGxXaWR0aCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImJvb2wiLCJzaGFwZSIsImNtc0xvZ28iLCJlbGVtZW50IiwiX2RlZmF1bHQiLCJfZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///756\n\n}')},193(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 // removed by dead control flow\n{ 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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SUFBSTtJQUMzQmpCLGFBQWEsRUFBRWUscUJBQVMsQ0FBQ0M7RUFDN0IsQ0FBQztFQUFDLElBQUFFLFFBQUEsR0FBQUMsUUFBQSxjQUVhdkIsY0FBYztBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9jb21wb25lbnRzL0Zvb3Rlci9MZWdhY3lGb290ZXJVSS5qc3g/OGVjOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5pbXBvcnQgSW5mb1RpcCBmcm9tIFwiLi4vSW5mb3RpcC9JbmZvdGlwXCI7XG5cbmNvbnN0IGluZm9UaXBMYWJlbCA9XG4gICAgXCJXaGVuIGRpYWxpbmcgNzExLCB5b3Ugd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGNvbm5lY3RlZCB0byBhIFRSUyBDb21tdW5pY2F0aW9ucyBBc3Npc3RhbnQgd2hvIHdpbGwgcmVsYXkgeW91ciBjb252ZXJzYXRpb24gdG8gdGhlIGhlbHAgZGVzayBhZ2VudCB3aXRoIHN0cmljdCBjb25maWRlbnRpYWxpdHkuXCI7XG5cbmNvbnN0IExlZ2FjeUZvb3RlclVJID0gKHsgYnVpbGRWZXJzaW9uLCBpc0Z1bGxXaWR0aCwgc2lnblVwTm93TGluayB9KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGZvb3RlciBjbGFzc05hbWU9XCJsZWdhY3ktZm9vdGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJ1aWxkLXZlcnNpb25cIiBpZD1cImJ1aWxkLXZlcnNpb25cIj5cbiAgICAgICAgICAgICAgICB7YnVpbGRWZXJzaW9ufVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJhbm5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcImNvbnRhaW5lci1mdWxsLXdpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwicmVzcG9uc2l2ZS1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtc20tMTIgY29sLW1kLTEyIGNvbC1sZy0xMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkhlbHAgc2hhcGUgdGhlIGZ1dHVyZSBvZiBNQURpRTwvc3Bhbj4gYnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWNpcGF0aW5nIGluIHVzZXIgZmVlZGJhY2sgc2Vzc2lvbnMue1wiIFwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImVtYWlsLW5vdGUtbGlua1wiIGhyZWY9e3NpZ25VcE5vd0xpbmt9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZW5kIHVzIGFuIGVtYWlsIHRvIHNpZ24gdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgICAgICAgICBpc0Z1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcImNvbnRhaW5lci1mdWxsLXdpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJyZXNwb25zaXZlLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcImNvbC1zbS0xMiBjb2wtbWQtOCBjb2wtbGctOFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJjb2wtc20tOCBjb2wtbWQtOSBjb2wtbGctOVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibG9nby1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9pbWFnZXMvcXBwX2xvZ29fcmV2ZXJzZWQucG5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUXVhbGl0eSBQYXltZW50IFByb2dyYW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJxcHAtbG9nb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNvY2lhbC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNvY2lhbC1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3R3aXR0ZXIuY29tL0NNU0dvdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRm9sbG93IHVzIG9uIFR3aXR0ZXIuIFRoaXMgbGluayBvcGVucyBpbiBhIG5ldyB3aW5kb3cuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZ2x5cGhpY29uIGdseXBoaWNvbi10d2l0dGVyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzb2NpYWwtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTGFWN20yLXpGS3BqXzZmQnNxYXY2R3ZGenpxOW9PcGtrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJGb2xsb3cgdXMgb24gWW91VHViZS4gVGhpcyBsaW5rIG9wZW5zIGluIGEgbmV3IHdpbmRvdy5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJnbHlwaGljb24gZ2x5cGhpY29uLXlvdXR1YmVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5rc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL2RldmVsb3BlcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiT3BlbkRldmVsb3BlclRvb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiUXVhbGl0eSBQYXltZW50IFByb2dyYW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldmVsb3BlciBUb29sc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvYWJvdXQvcmVzb3VyY2UtbGlicmFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuRWR1Y2F0aW9uQW5kVG9vbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJFZHVjYXRpb24gYW5kIFRvb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZSBMaWJyYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi9nbG9zc2FyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuR2xvc3NhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJHbG9zc2FyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2xvc3NhcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL3Jlc291cmNlcy9oZWxwLWFuZC1zdXBwb3J0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIk9wZW5IZWxwQW5kU3VwcG9ydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIkhlbHAgYW5kIFN1cHBvcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhlbHAgYW5kIFN1cHBvcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJzbWFsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5jbXMuZ292L3ByaXZhY3lcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiT3BlblByaXZhY3lEaXNjbGFpbWVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiTm90aWNlIG9mIFByaXZhY3kgYW5kIERpc2NsYWltZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNUyBQcml2YWN5IE5vdGljZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkaXZpZGVyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5jbXMuZ292L0Fib3V0LUNNUy9BZ2VuY3ktSW5mb3JtYXRpb24vQWJvdXR3ZWJzaXRlL1BvbGljaWVzZm9yYWNjZXNzaWJpbGl0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuQWNjZXNzaWJpbGl0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIkFjY2Vzc2liaWxpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjY2Vzc2liaWxpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGl2aWRlclwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhZG9iZS1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2dldC5hZG9iZS5jb20vcmVhZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIkRvd25sb2FkQWRvYmVSZWFkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJBZG9iZVJlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJpY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2ljb24tZG93bmxvYWRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvd25sb2FkIEFkb2JlIFJlYWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkaXZpZGVyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJtYWlsdG86c2ItbWF0LWhlbHBAc2VtYW50aWNiaXRzLmNvbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZW1haWwtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2ItbWF0LWhlbHBAc2VtYW50aWNiaXRzLmNvbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLTg2Ni0yODgtODI5MiAoVFJTOiA3MTEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvb3Rlci10cnMtaW5mb3RpcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmZvVGlwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpZ2h0SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17aW5mb1RpcExhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJjb2wtc20tMTIgY29sLW1kLTQgY29sLWxnLTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiY29sLXNtLTQgY29sLW1kLTMgY29sLWxnLTNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhocy1sb2dvLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiRGVwYXJ0bWVudCBvZiBIZWFsdGggJmFtcDsgSHVtYW4gU2VydmljZXMgVVNBXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2ltYWdlcy9oaHMtbG9nby13aGl0ZS5zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb290ZXI+XG4gICAgKTtcbn07XG5cbkxlZ2FjeUZvb3RlclVJLnByb3BUeXBlcyA9IHtcbiAgICBidWlsZFZlcnNpb246IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgaXNGdWxsV2lkdGg6IFByb3BUeXBlcy5ib29sLFxuICAgIHNpZ25VcE5vd0xpbms6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBMZWdhY3lGb290ZXJVSTtcbiJdLCJuYW1lcyI6WyJpbmZvVGlwTGFiZWwiLCJMZWdhY3lGb290ZXJVSSIsIl9yZWYiLCJidWlsZFZlcnNpb24iLCJpc0Z1bGxXaWR0aCIsInNpZ25VcE5vd0xpbmsiLCJfcmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiaWQiLCJocmVmIiwic3JjIiwiYWx0IiwicmVsIiwidGFyZ2V0IiwieGxpbmtIcmVmIiwiX0luZm90aXAiLCJsaWdodEljb24iLCJsYWJlbCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImJvb2wiLCJfZGVmYXVsdCIsIl9leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///193\n\n}')},258(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 // removed by dead control flow\n{ 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.97",\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.97"\n }), options);\n }\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjU4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NIQUFBLDBCQUNBO0VBS0E7QUFDQTtBQUNBO0VBRkEsSUFHcUJBLE1BQU0sR0FBQUMsUUFBQSwyQkFBQUMsWUFBQTtFQUN2QjtBQUNKO0FBQ0E7QUFDQTtFQUNJLFNBQUFGLE9BQVlHLE9BQU8sRUFBRTtJQUFBQyxlQUFBLE9BQUFKLE1BQUE7SUFDakIsSUFBSUcsT0FBTyxDQUFDRSxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUU7TUFDdkMsSUFBQUMsZ0JBQU0sZUFDRkMsTUFBQSxZQUFBQyxhQUFBLENBQUNDLFNBQUEsV0FBUTtRQUNMQyxZQUFZLEVBQUVBLFFBQWE7UUFDM0JDLFdBQVcsRUFBRVIsT0FBTyxDQUFDUSxXQUFZO1FBQ2pDQyxXQUFXLEVBQUVULE9BQU8sQ0FBQ1MsV0FBWTtRQUNqQ0MsZUFBZSxFQUFFVixPQUFPLENBQUNVO01BQWdCLENBQzVDLENBQUMsRUFDRlYsT0FBTyxDQUFDVyxXQUNaLENBQUM7SUFDTCxDQUFDLE1BQU07TUFDSCxJQUFBUixnQkFBTSxlQUFDQyxNQUFBLFlBQUFDLGFBQUEsQ0FBQ0MsU0FBQSxXQUFRO1FBQUNDLFlBQVksRUFBRUEsUUFBWUE7TUFBQyxDQUFFLENBQUMsRUFBRVAsT0FBTyxDQUFDO0lBQzdEO0VBQ0osQ0FBQztBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXIuanM/NDlhZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgYnVpbGRWZXJzaW9uICovXG4vLyBidWlsZFZlcnNpb24gYWJvdmUgaXMgZGVmaW5lZCBpbiB3ZWJwYWNrLmNvbmZpZy5qc1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IEZvb3RlclVJIGZyb20gXCIuL0Zvb3RlclVJXCI7XG5cbi8qKlxuICogUmVuZGVycyB0aGUgUVBQIEZvb3RlciBjb250ZW50LlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGb290ZXIge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgY29udGVudCBhbmQgY29uZmlnIGRhdGFcbiAgICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBvcHRpb25zLnJvb3RFbGVtZW50IC0gRWxlbSBpbnNpZGUgd2hpY2ggdG8gcmVuZGVyXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBpZiAob3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShcInJvb3RFbGVtZW50XCIpKSB7XG4gICAgICAgICAgICByZW5kZXIoXG4gICAgICAgICAgICAgICAgPEZvb3RlclVJXG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkVmVyc2lvbj17YnVpbGRWZXJzaW9ufVxuICAgICAgICAgICAgICAgICAgICBpc0Z1bGxXaWR0aD17b3B0aW9ucy5pc0Z1bGxXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgaXNOZXdGb290ZXI9e29wdGlvbnMuaXNOZXdGb290ZXJ9XG4gICAgICAgICAgICAgICAgICAgIHNob3dIY2RSZXNlYXJjaD17b3B0aW9ucy5zaG93SGNkUmVzZWFyY2h9XG4gICAgICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5yb290RWxlbWVudFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlbmRlcig8Rm9vdGVyVUkgYnVpbGRWZXJzaW9uPXtidWlsZFZlcnNpb259IC8+LCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJGb290ZXIiLCJfZXhwb3J0cyIsIl9jcmVhdGVDbGFzcyIsIm9wdGlvbnMiLCJfY2xhc3NDYWxsQ2hlY2siLCJoYXNPd25Qcm9wZXJ0eSIsInJlbmRlciIsIl9yZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJfRm9vdGVyVUkiLCJidWlsZFZlcnNpb24iLCJpc0Z1bGxXaWR0aCIsImlzTmV3Rm9vdGVyIiwic2hvd0hjZFJlc2VhcmNoIiwicm9vdEVsZW1lbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///258\n\n}')},877(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 // removed by dead control flow\n{ 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 n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(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 (-1 !== e.indexOf(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODc3LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUtBLElBQU1BLFdBQVcsR0FBRyxNQUFNO0VBRTFCLElBQU1DLFdBQVcsR0FBRztJQUNoQkMsVUFBVSxFQUFFLGFBQWE7SUFDekJDLE1BQU0sRUFBRSxDQUFDO0lBQ1RDLE9BQU8sRUFBRSxDQUFDO0lBQ1ZDLEtBQUssRUFBRUwsV0FBVztJQUNsQk0sTUFBTSxFQUFFTixXQUFXO0lBQ25CTyxrQkFBa0IsRUFBRSxNQUFNO0lBQzFCQyxnQkFBZ0IsRUFBRSxNQUFNO0lBQ3hCQyxVQUFVLEVBQUU7RUFDaEIsQ0FBQzs7RUFFRDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxJQUFNQyxhQUFhLEdBQUc7SUFDbEJDLFlBQVksRUFBRSxTQUFkQSxZQUFZQSxDQUFHQyxDQUFDLEVBQUs7TUFDakJBLENBQUMsQ0FBQ0MsZUFBZSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUNEQyxVQUFVLEVBQUUsU0FBWkEsVUFBVUEsQ0FBR0YsQ0FBQyxFQUFLO01BQ2YsSUFBSUcsUUFBUSxDQUFDQyxhQUFhLEtBQUtKLENBQUMsQ0FBQ0ssYUFBYSxFQUFFO1FBQzVDTCxDQUFDLENBQUNNLGNBQWMsQ0FBQyxDQUFDO1FBQ2xCTixDQUFDLENBQUNLLGFBQWEsQ0FBQ0UsS0FBSyxDQUFDLENBQUM7TUFDM0IsQ0FBQyxNQUFNO1FBQ0hQLENBQUMsQ0FBQ00sY0FBYyxDQUFDLENBQUM7UUFDbEJOLENBQUMsQ0FBQ0ssYUFBYSxDQUFDRyxJQUFJLENBQUMsQ0FBQztNQUMxQjtJQUNKO0VBQ0osQ0FBQzs7RUFFRDtBQUNBO0FBQ0E7RUFDQSxJQUFNQyxPQUFPLEdBQUcsU0FBVkEsT0FBT0EsQ0FBQUMsSUFBQTtJQUFBLElBQU1DLEtBQUssR0FBQUQsSUFBQSxDQUFMQyxLQUFLO01BQUVDLFNBQVMsR0FBQUYsSUFBQSxDQUFURSxTQUFTO01BQUtDLEtBQUssR0FBQUMsd0JBQUEsQ0FBQUosSUFBQSxFQUFBSyxTQUFBO0lBQUEsb0JBQ3pDQyxNQUFBLFlBQUFDLGFBQUEsQ0FBQ0MsUUFBQSxXQUFPLEVBQUFDLFFBQUE7TUFBQ1IsS0FBSyxFQUFFQTtJQUFNLEdBQUtFLEtBQUssZ0JBQzVCRyxNQUFBLFlBQUFDLGFBQUEsV0FBQUUsUUFBQTtNQUNJQyxJQUFJLEVBQUMsUUFBUTtNQUNiLGNBQVcsYUFBYTtNQUN4QkMsS0FBSyxFQUFFaEM7SUFBWSxHQUNmUyxhQUFhLGdCQUVqQmtCLE1BQUEsWUFBQUMsYUFBQSxDQUFDSyxZQUFBLFdBQVc7TUFDUlYsU0FBUyxFQUFFQSxTQUFVO01BQ3JCbkIsS0FBSyxFQUFFTCxXQUFZO01BQ25CTSxNQUFNLEVBQUVOLFdBQVk7TUFDcEIsbUJBQVc7TUFDWGlDLEtBQUssRUFBRTtRQUFFLFNBQU87TUFBTztJQUFFLENBQzVCLENBQ0csQ0FDSCxDQUFDO0VBQUEsQ0FDYjtFQUVEWixPQUFPLENBQUNjLFNBQVMsR0FBRztJQUNoQlosS0FBSyxFQUFFYSxxQkFBUyxDQUFDQyxNQUFNLENBQUNDLFVBQVU7SUFDbENDLFNBQVMsRUFBRUgscUJBQVMsQ0FBQ0MsTUFBTTtJQUMzQmIsU0FBUyxFQUFFWSxxQkFBUyxDQUFDSSxJQUFJO0lBQ3pCQyxXQUFXLEVBQUVMLHFCQUFTLENBQUNJO0VBQzNCLENBQUM7RUFFRG5CLE9BQU8sQ0FBQ3FCLFlBQVksR0FBRztJQUNuQkgsU0FBUyxFQUFFSSxTQUFTO0lBQ3BCbkIsU0FBUyxFQUFFLEtBQUs7SUFDaEJpQixXQUFXLEVBQUVFO0VBQ2pCLENBQUM7RUFBQyxJQUFBQyxRQUFBLEdBQUFDLFFBQUEsY0FFYXhCLE9BQU87QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9JbmZvdGlwL0luZm90aXAuanN4P2NjODgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IFRvb2x0aXAgZnJvbSBcIi4uL1Rvb2x0aXBcIjtcbmltcG9ydCBJbmZvdGlwSWNvbiBmcm9tIFwiLi9JbmZvdGlwSWNvblwiO1xuXG5jb25zdCBCVVRUT05fU0laRSA9IFwiMTZweFwiO1xuXG5jb25zdCBidXR0b25TdHlsZSA9IHtcbiAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgYm9yZGVyOiAwLFxuICAgIHBhZGRpbmc6IDAsXG4gICAgd2lkdGg6IEJVVFRPTl9TSVpFLFxuICAgIGhlaWdodDogQlVUVE9OX1NJWkUsXG4gICAgV2Via2l0VG91Y2hDYWxsb3V0OiBcIm5vbmVcIixcbiAgICBXZWJraXRVc2VyU2VsZWN0OiBcIm5vbmVcIixcbiAgICB1c2VyU2VsZWN0OiBcIm5vbmVcIixcbn07XG5cbi8vIFVzZSBiYXNpYyB0b3VjaCBoYW5kbGVycyBmb3IgbW9iaWxlIFwidGFwLXRvLW9wZW5cIiB1aS4gIE1vYmlsZSB0b3VjaFxuLy8gaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgYnkgQHJlYWNoL3Rvb2x0aXA7IHRoaXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuXG4vLyBMZXZlcmFnZXMgQHJlYWNoL3Rvb2x0aXAgXCJmb2N1c1wiIGJlaGF2aW9yIHRvIG9wZW4gdG9vbHRpcCBvbiB0YXAsXG4vLyBhbmQgY2xvc2UgdG9vbHRpcCBvbiBzZWNvbmQgdGFwIG9yIGxvc3Mgb2YgZm9jdXMuXG4vLyBUT0RPOiBXZSBtYXkgd2FudCB0byBpbXByb3ZlIHRoaXMgYnkgdHJhY2tpbmcgdG91Y2ggcG9zaXRpb25zIHRvIGVuc3VyZVxuLy8gdGhhdCBhICd0b3VjaGVuZCcgZXZlbnQgbXVzdCBiZSByZWFzb25hYmx5IGNsb3NlIHRvIHRoZSB0b29sdGlwIHRhcmdldC5cbmNvbnN0IHRvdWNoSGFuZGxlcnMgPSB7XG4gICAgb25Ub3VjaFN0YXJ0OiAoZSkgPT4ge1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0sXG4gICAgb25Ub3VjaEVuZDogKGUpID0+IHtcbiAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IGUuY3VycmVudFRhcmdldCkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5jdXJyZW50VGFyZ2V0LmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBlLmN1cnJlbnRUYXJnZXQuYmx1cigpO1xuICAgICAgICB9XG4gICAgfSxcbn07XG5cbi8qKlxuICogVG9vbHRpcCB3aXRoIHN0eWxlZCBpbmZvcm1hdGlvbiBpY29uXG4gKi9cbmNvbnN0IEluZm90aXAgPSAoeyBsYWJlbCwgbGlnaHRJY29uLCAuLi5wcm9wcyB9KSA9PiAoXG4gICAgPFRvb2x0aXAgbGFiZWw9e2xhYmVsfSB7Li4ucHJvcHN9PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJJbmZvcm1hdGlvblwiXG4gICAgICAgICAgICBzdHlsZT17YnV0dG9uU3R5bGV9XG4gICAgICAgICAgICB7Li4udG91Y2hIYW5kbGVyc31cbiAgICAgICAgPlxuICAgICAgICAgICAgPEluZm90aXBJY29uXG4gICAgICAgICAgICAgICAgbGlnaHRJY29uPXtsaWdodEljb259XG4gICAgICAgICAgICAgICAgd2lkdGg9e0JVVFRPTl9TSVpFfVxuICAgICAgICAgICAgICAgIGhlaWdodD17QlVUVE9OX1NJWkV9XG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICBzdHlsZT17eyBmbG9hdDogXCJsZWZ0XCIgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvVG9vbHRpcD5cbik7XG5cbkluZm90aXAucHJvcFR5cGVzID0ge1xuICAgIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgYXJpYUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGxpZ2h0SWNvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgREVCVUdfU1RZTEU6IFByb3BUeXBlcy5ib29sLFxufTtcblxuSW5mb3RpcC5kZWZhdWx0UHJvcHMgPSB7XG4gICAgYXJpYUxhYmVsOiB1bmRlZmluZWQsXG4gICAgbGlnaHRJY29uOiBmYWxzZSxcbiAgICBERUJVR19TVFlMRTogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgSW5mb3RpcDtcbiJdLCJuYW1lcyI6WyJCVVRUT05fU0laRSIsImJ1dHRvblN0eWxlIiwiYmFja2dyb3VuZCIsImJvcmRlciIsInBhZGRpbmciLCJ3aWR0aCIsImhlaWdodCIsIldlYmtpdFRvdWNoQ2FsbG91dCIsIldlYmtpdFVzZXJTZWxlY3QiLCJ1c2VyU2VsZWN0IiwidG91Y2hIYW5kbGVycyIsIm9uVG91Y2hTdGFydCIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJvblRvdWNoRW5kIiwiZG9jdW1lbnQiLCJhY3RpdmVFbGVtZW50IiwiY3VycmVudFRhcmdldCIsInByZXZlbnREZWZhdWx0IiwiZm9jdXMiLCJibHVyIiwiSW5mb3RpcCIsIl9yZWYiLCJsYWJlbCIsImxpZ2h0SWNvbiIsInByb3BzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwiX3JlYWN0IiwiY3JlYXRlRWxlbWVudCIsIl9Ub29sdGlwIiwiX2V4dGVuZHMiLCJ0eXBlIiwic3R5bGUiLCJfSW5mb3RpcEljb24iLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJpc1JlcXVpcmVkIiwiYXJpYUxhYmVsIiwiYm9vbCIsIkRFQlVHX1NUWUxFIiwiZGVmYXVsdFByb3BzIiwidW5kZWZpbmVkIiwiX2RlZmF1bHQiLCJfZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///877\n\n}')},517(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 // removed by dead control flow\n{ 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 n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(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 (-1 !== e.indexOf(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTE3LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFHQSxJQUFNQSxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQUMsSUFBQTtJQUFBLElBQU1DLFNBQVMsR0FBQUQsSUFBQSxDQUFUQyxTQUFTO01BQUtDLEtBQUssR0FBQUMsd0JBQUEsQ0FBQUgsSUFBQSxFQUFBSSxTQUFBO0lBQUEsb0JBQ3RDQyxNQUFBLFlBQUFDLGFBQUEsUUFBQUMsUUFBQTtNQUNJQyxLQUFLLEVBQUMsTUFBTTtNQUNaQyxNQUFNLEVBQUMsTUFBTTtNQUNiQyxPQUFPLEVBQUMsV0FBVztNQUNuQkMsS0FBSyxFQUFDO0lBQTRCLEdBQzlCVCxLQUFLLGdCQUVURyxNQUFBLFlBQUFDLGFBQUE7TUFBR00sSUFBSSxFQUFDLE1BQU07TUFBQ0MsUUFBUSxFQUFDO0lBQVMsZ0JBQzdCUixNQUFBLFlBQUFDLGFBQUE7TUFDSVEsQ0FBQyxFQUFDLDhJQUE4STtNQUNoSkYsSUFBSSxFQUFDLFNBQVM7TUFDZEMsUUFBUSxFQUFDO0lBQVMsQ0FDckIsQ0FBQyxlQUNGUixNQUFBLFlBQUFDLGFBQUE7TUFDSVEsQ0FBQyxFQUFDLDhIQUE4SDtNQUNoSUYsSUFBSSxFQUFFWCxTQUFTLEdBQUcsTUFBTSxHQUFHO0lBQVUsQ0FDeEMsQ0FBQyxlQUNGSSxNQUFBLFlBQUFDLGFBQUE7TUFDSVEsQ0FBQyxFQUFDLHFoQkFBcWhCO01BQ3ZoQkMsTUFBTSxFQUFFZCxTQUFTLEdBQUcsU0FBUyxHQUFHLE1BQU87TUFDdkNlLFdBQVcsRUFBQyxJQUFJO01BQ2hCSixJQUFJLEVBQUVYLFNBQVMsR0FBRyxTQUFTLEdBQUcsTUFBTztNQUNyQ1ksUUFBUSxFQUFDO0lBQVMsQ0FDckIsQ0FDRixDQUNGLENBQUM7RUFBQSxDQUNUO0VBQUMsSUFBQUksUUFBQSxHQUFBQyxRQUFBLGNBRWFuQixXQUFXO0VBRTFCQSxXQUFXLENBQUNvQixTQUFTLEdBQUc7SUFDcEJsQixTQUFTLEVBQUVtQixxQkFBUyxDQUFDQztFQUN6QixDQUFDO0VBRUR0QixXQUFXLENBQUN1QixZQUFZLEdBQUc7SUFDdkJyQixTQUFTLEVBQUU7RUFDZixDQUFDO0FBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvSW5mb3RpcC9JbmZvdGlwSWNvbi5qc3g/NjBjMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5cbmNvbnN0IEluZm90aXBJY29uID0gKHsgbGlnaHRJY29uLCAuLi5wcm9wcyB9KSA9PiAoXG4gICAgPHN2Z1xuICAgICAgICB3aWR0aD1cIjIwcHhcIlxuICAgICAgICBoZWlnaHQ9XCIyMHB4XCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAgICA8ZyBmaWxsPVwibm9uZVwiIGZpbGxSdWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTkuNzIxIDE5LjE1OGMtNC45NDcgMC04Ljk3My00LjEyNi04Ljk3My05LjE5NkMuNzQ4IDQuODkyIDQuNzc0Ljc2NiA5LjcyLjc2NmM0Ljk0OCAwIDguOTc0IDQuMTI2IDguOTc0IDkuMTk2IDAgNS4wNy00LjAyNiA5LjE5Ni04Ljk3NCA5LjE5NnpcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCIjMkVCMUVEXCJcbiAgICAgICAgICAgICAgICBmaWxsUnVsZT1cIm5vbnplcm9cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk05LjcyMSAwQzQuMzYxIDAgMCA0LjQ2OSAwIDkuOTYyYzAgNS40OTMgNC4zNiA5Ljk2MiA5LjcyMSA5Ljk2MiA1LjM2IDAgOS43MjItNC40NjkgOS43MjItOS45NjJDMTkuNDQzIDQuNDY5IDE1LjA4MiAwIDkuNzIgMHpcIlxuICAgICAgICAgICAgICAgIGZpbGw9e2xpZ2h0SWNvbiA/IFwiI0ZGRlwiIDogXCIjMDQ4MzhBXCJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTkuNzIxIDE0Ljc2NWMtLjIwNiAwLS4zNzQuMTEyLS4zNzQuMjV2LjVjMCAuMTM4LjE2OC4yNS4zNzQuMjUuMjA3IDAgLjM3NC0uMTEyLjM3NC0uMjV2LS41YzAtLjEzOC0uMTY3LS4yNS0uMzc0LS4yNXpNOS43NjQgNC43MDZIOS43MmMtLjc5MiAwLTEuNTM2LjI5LTIuMS44MjFhMi43NjcgMi43NjcgMCAwIDAtLjg5IDIuMDNjMCAuMTk3LjE2Ni4zNTYuMzczLjM1NnMuMzc0LS4xNTkuMzc0LS4zNTZjMC0uNTc3LjIzNy0xLjExOC42NjgtMS41MjNhMi4yNjggMi4yNjggMCAwIDEgMS42MDctLjYxNWMxLjE4Mi4wMTYgMi4xOTUuOTggMi4yMTEgMi4xMDcuMDExLjc0My0uMzczIDEuNDI3LTEuMDI4IDEuODMtLjk5NS42MS0xLjU4OSAxLjY5MS0xLjU4OSAyLjg5djEuMDEzYzAgLjE5Ny4xNjguMzU3LjM3NC4zNTcuMjA3IDAgLjM3NC0uMTYuMzc0LS4zNTd2LTEuMDEzYzAtLjk0MS40NzctMS44MiAxLjI0Ni0yLjI5Mi44NzMtLjUzNyAxLjM4Ni0xLjQ0OCAxLjM3MS0yLjQzOC0uMDIyLTEuNTI3LTEuMzQ1LTIuNzg4LTIuOTQ4LTIuODF6XCJcbiAgICAgICAgICAgICAgICBzdHJva2U9e2xpZ2h0SWNvbiA/IFwiIzA0ODM4QVwiIDogXCIjRkZGXCJ9XG4gICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9XCIuNVwiXG4gICAgICAgICAgICAgICAgZmlsbD17bGlnaHRJY29uID8gXCIjMDQ4MzhBXCIgOiBcIiNGRkZcIn1cbiAgICAgICAgICAgICAgICBmaWxsUnVsZT1cIm5vbnplcm9cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9nPlxuICAgIDwvc3ZnPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgSW5mb3RpcEljb247XG5cbkluZm90aXBJY29uLnByb3BUeXBlcyA9IHtcbiAgICBsaWdodEljb246IFByb3BUeXBlcy5ib29sLFxufTtcblxuSW5mb3RpcEljb24uZGVmYXVsdFByb3BzID0ge1xuICAgIGxpZ2h0SWNvbjogZmFsc2UsXG59O1xuIl0sIm5hbWVzIjpbIkluZm90aXBJY29uIiwiX3JlZiIsImxpZ2h0SWNvbiIsInByb3BzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwiX3JlYWN0IiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94IiwieG1sbnMiLCJmaWxsIiwiZmlsbFJ1bGUiLCJkIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJfZGVmYXVsdCIsIl9leHBvcnRzIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiYm9vbCIsImRlZmF1bHRQcm9wcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///517\n\n}')},582(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 // removed by dead control flow\n{ 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 _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }\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\n}')},225(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 // removed by dead control flow\n{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjI1LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O3VDQUVlQSxtQkFBTztBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9jb21wb25lbnRzL1Rvb2x0aXAvaW5kZXguanM/MDU0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVG9vbHRpcCBmcm9tIFwiLi9Ub29sdGlwXCI7XG5cbmV4cG9ydCBkZWZhdWx0IFRvb2x0aXA7XG4iXSwibmFtZXMiOlsiVG9vbHRpcCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///225\n\n}')},310(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 // removed by dead control flow\n{ 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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RW5ELGlDQUFBc0IsTUFBQSxDQUNtQnZCLGdCQUFnQixtREFBQXVCLE1BQUEsQ0FDZnZCLGdCQUFnQiwyQ0FBQXVCLE1BQUEsQ0FDeEJNLFlBQVksd0JBQUFOLE1BQUEsQ0FDYkssV0FBVyxtQkFBQUwsTUFBQSxDQUNoQk8sY0FBYztFQUV4QixDQUFDO0FBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvVG9vbHRpcC9wb3NpdGlvbi5qcz82MWIxIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IE9GRlNFVCA9IDEyOyAvLyBtb2RpZmllZCBmcm9tIHJlYWNoLXVpL3Rvb2x0aXAgT0ZGU0VUIHZhbHVlXG5jb25zdCBUUklBTkdMRV9TQ0FMRV9YID0gNjtcbmNvbnN0IFRSSUFOR0xFX1NDQUxFX1kgPSA4O1xuXG5jb25zdCBpc0RpcmVjdGlvblVwID0gKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCkgPT4ge1xuICAgIGNvbnN0IGNvbGxpc2lvbnMgPSB7XG4gICAgICAgIHRvcDogdHJpZ2dlclJlY3QudG9wIC0gdG9vbHRpcFJlY3QuaGVpZ2h0IDwgMCxcbiAgICAgICAgYm90dG9tOlxuICAgICAgICAgICAgd2luZG93LmlubmVySGVpZ2h0IDxcbiAgICAgICAgICAgIHRyaWdnZXJSZWN0LmJvdHRvbSArIHRvb2x0aXBSZWN0LmhlaWdodCArIE9GRlNFVCxcbiAgICB9O1xuXG4gICAgcmV0dXJuICFjb2xsaXNpb25zLnRvcCB8fCBjb2xsaXNpb25zLmJvdHRvbTtcbn07XG5cbi8vIG1vZGlmaWVkIGZyb20gQHJlYWNoL3Rvb2x0aXAgZGVmYXVsdCBwb3NpdGlvbmluZyBmdW5jdGlvblxuLy8gcG9zaXRpb25zIFRvb2x0aXAgcmVsYXRpdmUgdG8gdHJpZ2dlclxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3JlYWNoL3JlYWNoLXVpL2Jsb2IvbWFzdGVyL3BhY2thZ2VzL3Rvb2x0aXAvc3JjL2luZGV4LnRzeCNMNTMyXG5jb25zdCBwb3NpdGlvblRpcCA9ICh0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QpID0+IHtcbiAgICBpZiAoIXRyaWdnZXJSZWN0IHx8ICF0b29sdGlwUmVjdCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29uc3QgdHJpZ2dlckNlbnRlciA9IHRyaWdnZXJSZWN0LmxlZnQgKyB0cmlnZ2VyUmVjdC53aWR0aCAvIDI7XG4gICAgY29uc3QgbGVmdCA9IHRyaWdnZXJDZW50ZXIgLSB0b29sdGlwUmVjdC53aWR0aCAvIDI7XG4gICAgY29uc3QgbWF4TGVmdCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gdG9vbHRpcFJlY3Qud2lkdGggLSAyO1xuICAgIGNvbnN0IGNlbnRlckxlZnQgPVxuICAgICAgICBNYXRoLm1pbihNYXRoLm1heCgyLCBsZWZ0KSwgbWF4TGVmdCkgKyB3aW5kb3cucGFnZVhPZmZzZXQ7XG5cbiAgICBjb25zdCBkaXJlY3Rpb25VcCA9IGlzRGlyZWN0aW9uVXAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGxlZnQ6IGAke2NlbnRlckxlZnR9cHhgLFxuICAgICAgICB0b3A6IGRpcmVjdGlvblVwXG4gICAgICAgICAgICA/IGAke1xuICAgICAgICAgICAgICAgICAgdHJpZ2dlclJlY3QudG9wIC1cbiAgICAgICAgICAgICAgICAgIE9GRlNFVCAtXG4gICAgICAgICAgICAgICAgICB0b29sdGlwUmVjdC5oZWlnaHQgK1xuICAgICAgICAgICAgICAgICAgd2luZG93LnBhZ2VZT2Zmc2V0XG4gICAgICAgICAgICAgIH1weGBcbiAgICAgICAgICAgIDogYCR7XG4gICAgICAgICAgICAgICAgICB0cmlnZ2VyUmVjdC50b3AgK1xuICAgICAgICAgICAgICAgICAgT0ZGU0VUICtcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXJSZWN0LmhlaWdodCArXG4gICAgICAgICAgICAgICAgICB3aW5kb3cucGFnZVlPZmZzZXRcbiAgICAgICAgICAgICAgfXB4YCxcbiAgICB9O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgcG9zaXRpb25UaXA7XG5cbi8vIHBvc2l0aW9uIHRyaWFuZ2xlIHJlbGF0aXZlIHRvIHRvb2x0aXAgcG9zaXRpb25cbi8vIFRPRE86IGZpZ3VyZSBvdXQgYSBiZXR0ZXIgd2F5IHRvIHJlbmRlciB0aGVzZSB1cGRhdGVzIGZyb20gd2l0aGluIHJlYWN0XG4vLyByZW5kZXJpbmcuIFRoaXMgbWV0aG9kIGNhdXNlcyBhbiBhZGRpdGlvbmFsIHJlcGFpbnQgYWZ0ZXIgdGhlIFRvb2x0aXBcbi8vIGhhcyBiZWVuIHJlbmRlcmVkLiBtYXkgcmVxdWlyZSBjaGFuZ2VzIHRvIEByZWFjaC90b29sdGlwLlxuZXhwb3J0IGNvbnN0IHBvc2l0aW9uVHJpYW5nbGUgPSAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KSA9PiB7XG4gICAgY29uc3QgZGlyZWN0aW9uVXAgPSBpc0RpcmVjdGlvblVwKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCk7XG4gICAgY29uc3QgdHJpYW5nbGVUb3AgPSBkaXJlY3Rpb25VcFxuICAgICAgICA/IHRyaWdnZXJSZWN0LnRvcCArIHdpbmRvdy5wYWdlWU9mZnNldCAtIE9GRlNFVFxuICAgICAgICA6IHRyaWdnZXJSZWN0LmJvdHRvbSArIHdpbmRvdy5wYWdlWU9mZnNldCArIE9GRlNFVCAtIFRSSUFOR0xFX1NDQUxFX1k7XG5cbiAgICBjb25zdCB0cmlhbmdsZUxlZnQgPVxuICAgICAgICB0cmlnZ2VyUmVjdC5sZWZ0IC0gVFJJQU5HTEVfU0NBTEVfWCArIHRyaWdnZXJSZWN0LndpZHRoIC8gMjtcblxuICAgIGNvbnN0IHRyaWFuZ2xlQm9yZGVyID0gZGlyZWN0aW9uVXBcbiAgICAgICAgPyBgYm9yZGVyLXRvcDogJHtUUklBTkdMRV9TQ0FMRV9ZfXB4IHNvbGlkO2BcbiAgICAgICAgOiBgYm9yZGVyLWJvdHRvbTogJHtUUklBTkdMRV9TQ0FMRV9ZfXB4IHNvbGlkO2A7XG5cbiAgICByZXR1cm4gYFxuICAgICAgICBib3JkZXItbGVmdDogJHtUUklBTkdMRV9TQ0FMRV9YfXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmlnaHQ6ICR7VFJJQU5HTEVfU0NBTEVfWH1weCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgbGVmdDogJHt0cmlhbmdsZUxlZnR9cHg7XG4gICAgICAgIHRvcDogJHt0cmlhbmdsZVRvcH1weDtcbiAgICAgICAgJHt0cmlhbmdsZUJvcmRlcn1cbiAgICBgO1xufTtcbiJdLCJuYW1lcyI6WyJPRkZTRVQiLCJUUklBTkdMRV9TQ0FMRV9YIiwiVFJJQU5HTEVfU0NBTEVfWSIsImlzRGlyZWN0aW9uVXAiLCJ0cmlnZ2VyUmVjdCIsInRvb2x0aXBSZWN0IiwiY29sbGlzaW9ucyIsInRvcCIsImhlaWdodCIsImJvdHRvbSIsIndpbmRvdyIsImlubmVySGVpZ2h0IiwicG9zaXRpb25UaXAiLCJ0cmlnZ2VyQ2VudGVyIiwibGVmdCIsIndpZHRoIiwibWF4TGVmdCIsImlubmVyV2lkdGgiLCJjZW50ZXJMZWZ0IiwiTWF0aCIsIm1pbiIsIm1heCIsInBhZ2VYT2Zmc2V0IiwiZGlyZWN0aW9uVXAiLCJjb25jYXQiLCJwYWdlWU9mZnNldCIsIl9kZWZhdWx0IiwiX2V4cG9ydHMiLCJwb3NpdGlvblRyaWFuZ2xlIiwidHJpYW5nbGVUb3AiLCJ0cmlhbmdsZUxlZnQiLCJ0cmlhbmdsZUJvcmRlciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///310\n\n}')},24(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 // removed by dead control flow\n{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBS0EsSUFBTUEsa0JBQWtCLEdBQUc7SUFDdkJDLFNBQVMsV0FBVEEsU0FBU0EsQ0FBQ0MsT0FBTyxFQUFFO01BQ2YsT0FBTyxJQUFJQyxpQkFBUyxDQUFDRCxPQUFPLENBQUM7SUFDakMsQ0FBQztJQUVERSxNQUFNLFdBQU5BLE1BQU1BLENBQUNGLE9BQU8sRUFBRTtNQUNaLE9BQU8sSUFBSUcsa0JBQU0sQ0FBQ0gsT0FBTyxDQUFDO0lBQzlCO0VBQ0osQ0FBQztFQUFDLElBQUFJLFFBQUEsR0FBQUMsUUFBQSxjQUVhUCxrQkFBa0I7QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vaW5kZXguanM/NDFmNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRXJyb3JQYWdlIGZyb20gXCIuL2NvbXBvbmVudHMvRXJyb3IvZXJyb3JcIjtcbmltcG9ydCBGb290ZXIgZnJvbSBcIi4vY29tcG9uZW50cy9Gb290ZXIvZm9vdGVyXCI7XG5cbmltcG9ydCBcIndoYXQtaW5wdXRcIjtcblxuY29uc3QgUXBwU3R5bGVDb21wb25lbnRzID0ge1xuICAgIGVycm9yUGFnZShvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBuZXcgRXJyb3JQYWdlKG9wdGlvbnMpO1xuICAgIH0sXG5cbiAgICBmb290ZXIob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmV3IEZvb3RlcihvcHRpb25zKTtcbiAgICB9LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgUXBwU3R5bGVDb21wb25lbnRzO1xuIl0sIm5hbWVzIjpbIlFwcFN0eWxlQ29tcG9uZW50cyIsImVycm9yUGFnZSIsIm9wdGlvbnMiLCJFcnJvclBhZ2UiLCJmb290ZXIiLCJGb290ZXIiLCJfZGVmYXVsdCIsIl9leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///24\n\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_L),\n Component: () => (/* reexport */ C),\n Fragment: () => (/* reexport */ S),\n PureComponent: () => (/* binding */ compat_module_M),\n StrictMode: () => (/* reexport */ S),\n Suspense: () => (/* binding */ compat_module_P),\n SuspenseList: () => (/* binding */ compat_module_B),\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: () => (/* binding */ an),\n cloneElement: () => (/* binding */ mn),\n createContext: () => (/* reexport */ X),\n createElement: () => (/* reexport */ k),\n createFactory: () => (/* binding */ sn),\n createPortal: () => (/* binding */ compat_module_$),\n createRef: () => (/* reexport */ M),\n "default": () => (/* binding */ gn),\n findDOMNode: () => (/* binding */ yn),\n flushSync: () => (/* binding */ bn),\n forwardRef: () => (/* binding */ compat_module_D),\n hydrate: () => (/* binding */ tn),\n isElement: () => (/* binding */ Sn),\n isFragment: () => (/* binding */ vn),\n isMemo: () => (/* binding */ dn),\n isValidElement: () => (/* binding */ hn),\n lazy: () => (/* binding */ compat_module_z),\n memo: () => (/* binding */ compat_module_N),\n render: () => (/* binding */ nn),\n startTransition: () => (/* binding */ compat_module_x),\n unmountComponentAtNode: () => (/* binding */ pn),\n unstable_batchedUpdates: () => (/* binding */ _n),\n useCallback: () => (/* reexport */ hooks_module_q),\n useContext: () => (/* reexport */ hooks_module_x),\n useDebugValue: () => (/* reexport */ hooks_module_P),\n useDeferredValue: () => (/* binding */ compat_module_w),\n useEffect: () => (/* reexport */ hooks_module_h),\n useErrorBoundary: () => (/* reexport */ hooks_module_b),\n useId: () => (/* reexport */ hooks_module_g),\n useImperativeHandle: () => (/* reexport */ hooks_module_F),\n useInsertionEffect: () => (/* binding */ compat_module_I),\n useLayoutEffect: () => (/* reexport */ hooks_module_),\n useMemo: () => (/* reexport */ hooks_module_T),\n useReducer: () => (/* reexport */ hooks_module_y),\n useRef: () => (/* reexport */ hooks_module_A),\n useState: () => (/* reexport */ hooks_module_d),\n useSyncExternalStore: () => (/* binding */ compat_module_C),\n useTransition: () => (/* binding */ compat_module_k),\n version: () => (/* binding */ cn)\n});\n\n;// ./node_modules/preact/dist/preact.module.js\nvar n,l,u,t,i,r,o,e,f,c,a,s,h,p,v,y,d={},w=[],_=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,g=Array.isArray;function m(n,l){for(var u in l)n[u]=l[u];return n}function b(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function k(l,u,t){var i,r,o,e={};for(o in u)"key"==o?i=u[o]:"ref"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),"function"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return x(l,e,i,r,null)}function x(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function M(){return{current:null}}function S(n){return n.children}function C(n,l){this.props=n,this.context=l}function $(n,l){if(null==l)return n.__?$(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?$(n):null}function I(n){if(n.__P&&n.__d){var u=n.__v,t=u.__e,i=[],r=[],o=m({},u);o.__v=u.__v+1,l.vnode&&l.vnode(o),q(n.__P,o,u,n.__n,n.__P.namespaceURI,32&u.__u?[t]:null,i,null==t?$(u):t,!!(32&u.__u),r),o.__v=u.__v,o.__.__k[o.__i]=o,D(i,o,r),u.__e=u.__=null,o.__e!=t&&P(o)}}function P(n){if(null!=(n=n.__)&&null!=n.__c)return n.__e=n.__c.base=null,n.__k.some(function(l){if(null!=l&&null!=l.__e)return n.__e=n.__c.base=l.__e}),P(n)}function A(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!H.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)(H)}function H(){try{for(var n,l=1;i.length;)i.length>l&&i.sort(e),n=i.shift(),l=i.length,I(n)}finally{i.length=H.__r=0}}function L(n,l,u,t,i,r,o,e,f,c,a){var s,h,p,v,y,_,g=t&&t.__k||w,m=l.length;for(f=T(u,l,g,f,m),s=0;s<m;s++)null!=(p=u.__k[s])&&(h=-1!=p.__i&&g[p.__i]||d,p.__i=s,_=q(n,p,h,i,r,o,e,f,c,a),v=p.__e,p.ref&&h.ref!=p.ref&&(h.ref&&J(h.ref,null,p),a.push(p.ref,p.__c||v,p)),null==y&&null!=v&&(y=v),4&p.__u?(f=j(p,f,n),h.__e&&(h.__e=null)):"function"==typeof p.type&&void 0!==_?f=_:v&&(f=v.nextSibling),p.__u&=-7);return u.__e=y,f}function T(n,l,u,t,i){var r,o,e,f,c,a=u.length,s=a,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&"boolean"!=typeof o&&"function"!=typeof o?("string"==typeof o||"number"==typeof o||"bigint"==typeof o||o.constructor==String?o=n.__k[r]=x(null,o,null,null,null):g(o)?o=n.__k[r]=x(S,{children:o},null,null,null):void 0===o.constructor&&o.__b>0?o=n.__k[r]=x(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):n.__k[r]=o,f=r+h,o.__=n,o.__b=n.__b+1,e=null,-1!=(c=o.__i=O(o,u,f,s))&&(s--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>a?h--:i<a&&h++),"function"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(s)for(r=0;r<a;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=$(e)),K(e,e));return t}function j(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=j(t[i],l,u));return l}n.__e!=l&&(l&&n.type&&!l.parentNode&&(l=$(n)),l=u.insertBefore(n.__e,l||null));do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function F(n,l){return l=l||[],null==n||"boolean"==typeof n||(g(n)?n.some(function(n){F(n,l)}):l.push(n)),l}function O(n,l,u,t){var i,r,o,e=n.key,f=n.type,c=l[u],a=null!=c&&0==(2&c.__u);if(null===c&&null==e||a&&e==c.key&&f==c.type)return u;if(t>(a?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;)if(null!=(c=l[o=i>=0?i--:r++])&&0==(2&c.__u)&&e==c.key&&f==c.type)return o;return-1}function z(n,l,u){"-"==l[0]?n.setProperty(l,null==u?"":u):n[l]=null==u?"":"number"!=typeof u||_.test(l)?u:u+"px"}function N(n,l,u,t,i){var r,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||z(n.style,l,"");if(u)for(l in u)t&&u[l]==t[l]||z(n.style,l,u[l])}else if("o"==l[0]&&"n"==l[1])r=l!=(l=l.replace(s,"$1")),o=l.toLowerCase(),l=o in n||"onFocusOut"==l||"onFocusIn"==l?o.slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u[a]=t[a]:(u[a]=h,n.addEventListener(l,r?v:p,r)):n.removeEventListener(l,r?v:p,r);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 V(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u[c])u[c]=h++;else if(u[c]<t[a])return;return t(l.event?l.event(u):u)}}}function q(n,u,t,i,r,o,e,f,c,a){var s,h,p,v,y,d,_,k,x,M,I,P,A,H,T,j,F=u.type;if(void 0!==u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(s=l.__b)&&s(u);n:if("function"==typeof F){h=e.length;try{if(x=u.props,M=F.prototype&&F.prototype.render,I=(s=F.contextType)&&i[s.__c],P=s?I?I.props.value:s.__:i,t.__c?k=(p=u.__c=t.__c).__=p.__E:(M?u.__c=p=new F(x,P):(u.__c=p=new C(x,P),p.constructor=F,p.render=Q),I&&I.sub(p),p.state||(p.state={}),p.__n=i,v=p.__d=!0,p.__h=[],p._sb=[]),M&&null==p.__s&&(p.__s=p.state),M&&null!=F.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=m({},p.__s)),m(p.__s,F.getDerivedStateFromProps(x,p.__s))),y=p.props,d=p.state,p.__v=u,v)M&&null==F.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),M&&null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(M&&null==F.getDerivedStateFromProps&&x!==y&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(x,P),u.__v==t.__v||!p.__e&&null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(x,p.__s,P)){u.__v!=t.__v&&(p.props=x,p.state=p.__s,p.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),w.push.apply(p.__h,p._sb),p._sb=[],p.__h.length&&e.push(p),f=$(t);break n}null!=p.componentWillUpdate&&p.componentWillUpdate(x,p.__s,P),M&&null!=p.componentDidUpdate&&p.__h.push(function(){p.componentDidUpdate(y,d,_)})}if(p.context=P,p.props=x,p.__P=n,p.__e=!1,A=l.__r,H=0,M)p.state=p.__s,p.__d=!1,A&&A(u),s=p.render(p.props,p.state,p.context),w.push.apply(p.__h,p._sb),p._sb=[];else do{p.__d=!1,A&&A(u),s=p.render(p.props,p.state,p.context),p.state=p.__s}while(p.__d&&++H<25);p.state=p.__s,null!=p.getChildContext&&(i=m(m({},i),p.getChildContext())),M&&!v&&null!=p.getSnapshotBeforeUpdate&&(_=p.getSnapshotBeforeUpdate(y,d)),T=null!=s&&s.type===S&&null==s.key?E(s.props.children):s,f=L(n,g(T)?T:[T],u,t,i,r,o,e,f,c,a),p.base=u.__e,u.__u&=-161,p.__h.length&&e.push(p),k&&(p.__E=p.__=null)}catch(n){if(e.length=h,u.__v=null,c||null!=o){if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;null!=o&&(o[o.indexOf(f)]=null),u.__e=f}else if(null!=o)for(j=o.length;j--;)b(o[j])}else u.__e=t.__e;null==u.__k&&(u.__k=t.__k||[]),n.then||B(u),l.__e(n,u,t)}}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=G(t.__e,u,t,i,r,o,e,c,a);return(s=l.diffed)&&s(u),128&u.__u?void 0:f}function B(n){n&&(n.__c&&(n.__c.__e=!0),n.__k&&n.__k.some(B))}function D(n,u,t){for(var i=0;i<t.length;i++)J(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 E(n){return"object"!=typeof n||null==n||n.__b>0?n:g(n)?n.map(E):void 0!==n.constructor?null:m({},n)}function G(u,t,i,r,o,e,f,c,a){var s,h,p,v,y,w,_,m=i.props||d,k=t.props,x=t.type;if("svg"==x?o="http://www.w3.org/2000/svg":"math"==x?o="http://www.w3.org/1998/Math/MathML":o||(o="http://www.w3.org/1999/xhtml"),null!=e)for(s=0;s<e.length;s++)if((y=e[s])&&"setAttribute"in y==!!x&&(x?y.localName==x:3==y.nodeType)){u=y,e[s]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)m===k||c&&u.data==k||(u.data=k);else{if(e="textarea"==x&&null!=k.defaultValue?null:e&&n.call(u.childNodes),!c&&null!=e)for(m={},s=0;s<u.attributes.length;s++)m[(y=u.attributes[s]).name]=y.value;for(s in m)y=m[s],"dangerouslySetInnerHTML"==s?p=y:"children"==s||s in k||"value"==s&&"defaultValue"in k||"checked"==s&&"defaultChecked"in k||N(u,s,null,y,o);for(s in k)y=k[s],"children"==s?v=y:"dangerouslySetInnerHTML"==s?h=y:"value"==s?w=y:"checked"==s?_=y:c&&"function"!=typeof y||m[s]===y||N(u,s,y,m[s],o);if(h)c||p&&(h.__html==p.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(p&&(u.innerHTML=""),L("template"==t.type?u.content:u,g(v)?v:[v],t,i,r,"foreignObject"==x?"http://www.w3.org/1999/xhtml":o,e,f,e?e[0]:i.__k&&$(i,0),c,a),null!=e)for(s=e.length;s--;)b(e[s]);c&&"textarea"!=x||(s="value","progress"==x&&null==w?u.removeAttribute("value"):null!=w&&(w!==u[s]||"progress"==x&&!w||"option"==x&&w!=m[s])&&N(u,s,w,m[s],o),s="checked",null!=_&&_!=u[s]&&N(u,s,_,m[s],o))}return u}function J(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 K(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||J(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=i.__n=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&K(i[r],u,t||"function"!=typeof n.type);t||b(n.__e),n.__c=n.__=n.__e=void 0}function Q(n,l,u){return this.constructor(n,u)}function R(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r="function"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],q(t,u=(!r&&i||t).__k=k(S,null,[u]),o||d,d,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),D(e,u,f),u.props.children=null}function U(n,l){R(n,l,U)}function W(l,u,t){var i,r,o,e,f=m({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)"key"==o?i=u[o]:"ref"==o?r=u[o]:f[o]=void 0===u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),x(l.type,f,i||l.key,r||l.ref,null)}function X(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,A(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c="__cC"+y++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=w.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&void 0===n.constructor},C.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=m({},this.state),"function"==typeof n&&(n=n(m({},u),this.props)),n&&m(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),A(this))},C.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),A(this))},C.prototype.render=S,i=[],o="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},H.__r=0,f=Math.random().toString(8),c="__d"+f,a="__a"+f,s=/(PointerCapture)$|Capture$/i,h=0,p=V(!1),v=V(!0),y=0;\n//# sourceMappingURL=preact.module.js.map\n\n;// ./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_p=hooks_module_c.__;function hooks_module_s(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_d(n){return hooks_module_o=1,hooks_module_y(hooks_module_D,n)}function hooks_module_y(n,u,i){var o=hooks_module_s(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.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=!1,i=o.__c.props!==n;if(o.__c.__H.__.some(function(n){if(n.__N){u=!0;var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c){var f=c.call(this,n,t,r);return u?f||i:f}return!u||i};hooks_module_r.__f=!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_h(n,u){var i=hooks_module_s(hooks_module_t++,3);!hooks_module_c.__s&&hooks_module_C(i.__H,u)&&(i.__=n,i.u=u,hooks_module_r.__H.__h.push(i))}function hooks_module_(n,u){var i=hooks_module_s(hooks_module_t++,4);!hooks_module_c.__s&&hooks_module_C(i.__H,u)&&(i.__=n,i.u=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(){if("function"==typeof n){var r=n(t());return function(){n(null),r&&"function"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function hooks_module_T(n,r){var u=hooks_module_s(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_s(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_s(hooks_module_t++,10),i=hooks_module_d();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_s(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();){var t=n.__H;if(n.__P&&t)try{t.__h.some(hooks_module_z),t.__h.some(hooks_module_B),t.__h=[]}catch(r){t.__h=[],hooks_module_c.__e(r,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_p&&hooks_module_p(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.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.some(hooks_module_z),i.__h.some(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.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),hooks_module_u=hooks_module_r=null},hooks_module_c.__c=function(n,t){t.some(function(n){try{n.__h.some(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.__.some(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,35);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;// ./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){var e=t(),r=hooks_module_d({t:{__:e,u:t}}),u=r[0].t,o=r[1];return hooks_module_(function(){u.__=e,u.u=t,compat_module_R(u)&&o({t:u})},[n,e,t]),hooks_module_h(function(){return compat_module_R(u)&&o({t:u}),n(function(){compat_module_R(u)&&o({t:u})})},[n]),e}function compat_module_R(n){try{return!((t=n.__)===(e=n.u())&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}// removed by dead control flow\n var t, e; }function compat_module_x(n){n()}function compat_module_w(n){return n}function compat_module_k(){return[!1,compat_module_x]}var compat_module_I=hooks_module_;function compat_module_M(n,t){this.props=n,this.context=t}function compat_module_N(n,e){function r(n){var t=this.props.ref;return t!=n.ref&&t&&("function"==typeof t?t(null):t.current=null),e?!e(this.props,n)||t!=n.ref:compat_module_E(this.props,n)}function u(e){return this.shouldComponentUpdate=r,k(n,e)}return u.displayName="Memo("+(n.displayName||n.name)+")",u.__f=u.prototype.isReactComponent=!0,u.type=n,u}(compat_module_M.prototype=new C).isPureReactComponent=!0,compat_module_M.prototype.shouldComponentUpdate=function(n,t){return compat_module_E(this.props,n)||compat_module_E(this.state,t)};var compat_module_T=l.__b;l.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),compat_module_T&&compat_module_T(n)};var compat_module_A="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function compat_module_D(n){function t(t){var e=compat_module_g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=compat_module_A,t.render=n,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(n.displayName||n.name)+")",t}var compat_module_F=function(n,t){return null==n?null:F(F(n).map(t))},compat_module_L={map:compat_module_F,forEach:compat_module_F,count:function(n){return n?F(n).length:0},only:function(n){var t=F(n);if(1!==t.length)throw"Children.only";return t[0]},toArray:F},compat_module_O=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_O(n,t,e,r)};var compat_module_U=l.unmount;function compat_module_V(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.__e=!0,n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return compat_module_V(n,t,e)})),n}function compat_module_W(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return compat_module_W(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_P(){this.__u=0,this.o=null,this.__b=null}function compat_module_j(n){var t=n.__&&n.__.__c;return t&&t.__a&&t.__a(n)}function compat_module_z(n){var e,r,u,o=null;function i(i){if(e||(e=n()).then(function(n){n&&(o=n.default||n),u=!0},function(n){r=n,u=!0}),r)throw r;if(!u)throw e;return o?k(o,i):null}return i.displayName="Lazy",i.__f=!0,i}function compat_module_B(){this.i=null,this.l=null}l.unmount=function(n){var t=n.__c;t&&(t.__z=!0),t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),compat_module_U&&compat_module_U(n)},(compat_module_P.prototype=new C).__c=function(n,t){var e=t.__c,r=this;null==r.o&&(r.o=[]),r.o.push(e);var u=compat_module_j(r.__v),o=!1,i=function(){o||r.__z||(o=!0,e.__R=null,u?u(f):f())};e.__R=i;var l=e.__P;e.__P=null;var f=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=compat_module_W(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.o.pop();)t.__P=l,t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},compat_module_P.prototype.componentWillUnmount=function(){this.o=[]},compat_module_P.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_V(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&k(S,null,n.fallback);return i&&(i.__u&=-33),[k(S,null,e.__a?null:n.children),i]};var compat_module_H=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.i=e=e[2]}};function Z(n){return this.getChildContext=function(){return n.context},n.children}function Y(n){var e=this,r=n.h;if(e.componentWillUnmount=function(){R(null,e.v),e.v=null,e.h=null},e.h&&e.h!==r&&e.componentWillUnmount(),!e.v){for(var u=e.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;e.h=r,e.v={nodeType:1,parentNode:r,childNodes:[],__k:{__m:u.__m},contains:function(){return!0},namespaceURI:r.namespaceURI,insertBefore:function(n,t){this.childNodes.push(n),e.h.insertBefore(n,t)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.h.removeChild(n)}}}R(k(Z,{context:e.context},n.__v),e.v)}function compat_module_$(n,e){var r=k(Y,{__v:n,h:e});return r.containerInfo=e,r}(compat_module_B.prototype=new C).__a=function(n){var t=this,e=compat_module_j(t.__v),r=t.l.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),compat_module_H(t,n,r)):u()};e?e(o):o()}},compat_module_B.prototype.render=function(n){this.i=null,this.l=new Map;var t=F(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.l.set(t[e],this.i=[1,0,this.i]);return n.children},compat_module_B.prototype.componentDidUpdate=compat_module_B.prototype.componentDidMount=function(){var n=this;this.l.forEach(function(t,e){compat_module_H(n,e,t)})};var compat_module_q="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,compat_module_G=/^(?: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_J=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,compat_module_K=/[A-Z0-9]/g,compat_module_Q="undefined"!=typeof document,compat_module_X=function(n){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function nn(n,t,e){return null==t.__k&&(t.textContent=""),R(n,t),"function"==typeof e&&e(),n?n.__c:null}function tn(n,t,e){return U(n,t),"function"==typeof e&&e(),n?n.__c:null}C.prototype.isReactComponent=!0,["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(C.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var en=l.event;l.event=function(n){return en&&(n=en(n)),n.persist=function(){},n.isPropagationStopped=function(){return this.cancelBubble},n.isDefaultPrevented=function(){return this.defaultPrevented},n.nativeEvent=n};var rn,un={configurable:!0,get:function(){return this.class}},on=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 l=t[i];if(!("value"===i&&"defaultValue"in t&&null==l||compat_module_Q&&"children"===i&&"noscript"===e||"class"===i||"className"===i)){var f=i.toLowerCase();"defaultValue"===i&&"value"in t&&null==t.value?i="value":"download"===i&&!0===l?l="":"translate"===f&&"no"===l?l=!1:"o"===f[0]&&"n"===f[1]?"ondoubleclick"===f?i="ondblclick":"onchange"!==f||"input"!==e&&"textarea"!==e||compat_module_X(t.type)?"onfocus"===f?i="onfocusin":"onblur"===f?i="onfocusout":compat_module_J.test(i)&&(i=f):f=i="oninput":o&&compat_module_G.test(i)?i=i.replace(compat_module_K,"-$&").toLowerCase():null===l&&(l=void 0),"oninput"===f&&u[i=f]&&(i="oninputCapture"),u[i]=l}}"select"==e&&(u.multiple&&Array.isArray(u.value)&&(u.value=F(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),null!=u.defaultValue&&(u.value=F(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",un)):t.className&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=compat_module_q,on&&on(n)};var ln=l.__r;l.__r=function(n){ln&&ln(n),rn=n.__c};var fn=l.diffed;l.diffed=function(n){fn&&fn(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),rn=null};var an={ReactCurrentDispatcher:{current:{readContext:function(n){return rn.__n[n.__c].props.value},useCallback:hooks_module_q,useContext:hooks_module_x,useDebugValue:hooks_module_P,useDeferredValue:compat_module_w,useEffect:hooks_module_h,useId:hooks_module_g,useImperativeHandle:hooks_module_F,useInsertionEffect:compat_module_I,useLayoutEffect:hooks_module_,useMemo:hooks_module_T,useReducer:hooks_module_y,useRef:hooks_module_A,useState:hooks_module_d,useSyncExternalStore:compat_module_C,useTransition:compat_module_k}}},cn="18.3.1";function sn(n){return k.bind(null,n)}function hn(n){return!!n&&n.$$typeof===compat_module_q}function vn(n){return hn(n)&&n.type===S}function dn(n){return!!n&&"string"==typeof n.displayName&&0==n.displayName.indexOf("Memo(")}function mn(n){return hn(n)?W.apply(null,arguments):n}function pn(n){return!!n.__k&&(R(null,n),!0)}function yn(n){return n&&(n.base||1===n.nodeType&&n)||null}var _n=function(n,t){return n(t)},bn=function(n,t){var r,u=l.debounceRendering;l.debounceRendering=function(n){r=n};try{var o=n(t);return r&&r(),o}finally{l.debounceRendering=u}},Sn=hn,gn={useState:hooks_module_d,useId:hooks_module_g,useReducer:hooks_module_y,useEffect:hooks_module_h,useLayoutEffect:hooks_module_,useInsertionEffect:compat_module_I,useTransition:compat_module_k,useDeferredValue:compat_module_w,useSyncExternalStore:compat_module_C,startTransition:compat_module_x,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_L,render:nn,hydrate:tn,unmountComponentAtNode:pn,createPortal:compat_module_$,createElement:k,createContext:X,createFactory:sn,cloneElement:mn,createRef:M,Fragment:S,isValidElement:hn,isElement:Sn,isFragment:vn,isMemo:dn,findDOMNode:yn,Component:C,PureComponent:compat_module_M,memo:compat_module_N,forwardRef:compat_module_D,flushSync:bn,unstable_batchedUpdates:_n,StrictMode:S,Suspense:compat_module_P,SuspenseList:compat_module_B,lazy:compat_module_z,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:an};\n//# sourceMappingURL=compat.module.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUMsZUFBZSxlQUFDLGtCQUFrQixlQUFDLHNCQUFzQixlQUFDLGlCQUFpQixlQUFDLFFBQVEsY0FBQyxxQkFBcUIsY0FBQyxTQUFTLGNBQUMsYUFBYSxjQUFDLFlBQVksY0FBQyxlQUFlLGNBQUMsMkJBQTJCLGVBQUMsNkRBQTZELGVBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyw0Q0FBNEMsQ0FBQyxVQUFVLENBQUMsaUZBQWlGLENBQUMsZUFBZSxlQUFDLE1BQU0sZUFBQyxZQUFZLGVBQUMsb0RBQW9ELENBQUMsVUFBVSxlQUFDLGNBQWMsZUFBQyxNQUFNLGVBQUMsd0RBQThsQjtBQUNqaFUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9wcmVhY3QvZGlzdC9wcmVhY3QubW9kdWxlLmpzP2RhNjUiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvcHJlYWN0L2hvb2tzL2Rpc3QvaG9va3MubW9kdWxlLmpzPzMwZWMiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9kaXN0L2NvbXBhdC5tb2R1bGUuanM/MTVkMSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbixsLHUsdCxpLHIsbyxlLGYsYyxhLHMsaCxwLHYseSxkPXt9LHc9W10sXz0vYWNpdHxleCg/OnN8Z3xufHB8JCl8cnBofGdyaWR8b3dzfG1uY3xudHd8aW5lW2NoXXx6b298Xm9yZHxpdGVyYS9pLGc9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiBtKG4sbCl7Zm9yKHZhciB1IGluIGwpblt1XT1sW3VdO3JldHVybiBufWZ1bmN0aW9uIGIobil7biYmbi5wYXJlbnROb2RlJiZuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobil9ZnVuY3Rpb24gayhsLHUsdCl7dmFyIGkscixvLGU9e307Zm9yKG8gaW4gdSlcImtleVwiPT1vP2k9dVtvXTpcInJlZlwiPT1vP3I9dVtvXTplW29dPXVbb107aWYoYXJndW1lbnRzLmxlbmd0aD4yJiYoZS5jaGlsZHJlbj1hcmd1bWVudHMubGVuZ3RoPjM/bi5jYWxsKGFyZ3VtZW50cywyKTp0KSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBsJiZudWxsIT1sLmRlZmF1bHRQcm9wcylmb3IobyBpbiBsLmRlZmF1bHRQcm9wcyl2b2lkIDA9PT1lW29dJiYoZVtvXT1sLmRlZmF1bHRQcm9wc1tvXSk7cmV0dXJuIHgobCxlLGkscixudWxsKX1mdW5jdGlvbiB4KG4sdCxpLHIsbyl7dmFyIGU9e3R5cGU6bixwcm9wczp0LGtleTppLHJlZjpyLF9fazpudWxsLF9fOm51bGwsX19iOjAsX19lOm51bGwsX19jOm51bGwsY29uc3RydWN0b3I6dm9pZCAwLF9fdjpudWxsPT1vPysrdTpvLF9faTotMSxfX3U6MH07cmV0dXJuIG51bGw9PW8mJm51bGwhPWwudm5vZGUmJmwudm5vZGUoZSksZX1mdW5jdGlvbiBNKCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19ZnVuY3Rpb24gUyhuKXtyZXR1cm4gbi5jaGlsZHJlbn1mdW5jdGlvbiBDKG4sbCl7dGhpcy5wcm9wcz1uLHRoaXMuY29udGV4dD1sfWZ1bmN0aW9uICQobixsKXtpZihudWxsPT1sKXJldHVybiBuLl9fPyQobi5fXyxuLl9faSsxKTpudWxsO2Zvcih2YXIgdTtsPG4uX19rLmxlbmd0aDtsKyspaWYobnVsbCE9KHU9bi5fX2tbbF0pJiZudWxsIT11Ll9fZSlyZXR1cm4gdS5fX2U7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50eXBlPyQobik6bnVsbH1mdW5jdGlvbiBJKG4pe2lmKG4uX19QJiZuLl9fZCl7dmFyIHU9bi5fX3YsdD11Ll9fZSxpPVtdLHI9W10sbz1tKHt9LHUpO28uX192PXUuX192KzEsbC52bm9kZSYmbC52bm9kZShvKSxxKG4uX19QLG8sdSxuLl9fbixuLl9fUC5uYW1lc3BhY2VVUkksMzImdS5fX3U/W3RdOm51bGwsaSxudWxsPT10PyQodSk6dCwhISgzMiZ1Ll9fdSksciksby5fX3Y9dS5fX3Ysby5fXy5fX2tbby5fX2ldPW8sRChpLG8sciksdS5fX2U9dS5fXz1udWxsLG8uX19lIT10JiZQKG8pfX1mdW5jdGlvbiBQKG4pe2lmKG51bGwhPShuPW4uX18pJiZudWxsIT1uLl9fYylyZXR1cm4gbi5fX2U9bi5fX2MuYmFzZT1udWxsLG4uX19rLnNvbWUoZnVuY3Rpb24obCl7aWYobnVsbCE9bCYmbnVsbCE9bC5fX2UpcmV0dXJuIG4uX19lPW4uX19jLmJhc2U9bC5fX2V9KSxQKG4pfWZ1bmN0aW9uIEEobil7KCFuLl9fZCYmKG4uX19kPSEwKSYmaS5wdXNoKG4pJiYhSC5fX3IrK3x8ciE9bC5kZWJvdW5jZVJlbmRlcmluZykmJigocj1sLmRlYm91bmNlUmVuZGVyaW5nKXx8bykoSCl9ZnVuY3Rpb24gSCgpe3RyeXtmb3IodmFyIG4sbD0xO2kubGVuZ3RoOylpLmxlbmd0aD5sJiZpLnNvcnQoZSksbj1pLnNoaWZ0KCksbD1pLmxlbmd0aCxJKG4pfWZpbmFsbHl7aS5sZW5ndGg9SC5fX3I9MH19ZnVuY3Rpb24gTChuLGwsdSx0LGkscixvLGUsZixjLGEpe3ZhciBzLGgscCx2LHksXyxnPXQmJnQuX19rfHx3LG09bC5sZW5ndGg7Zm9yKGY9VCh1LGwsZyxmLG0pLHM9MDtzPG07cysrKW51bGwhPShwPXUuX19rW3NdKSYmKGg9LTEhPXAuX19pJiZnW3AuX19pXXx8ZCxwLl9faT1zLF89cShuLHAsaCxpLHIsbyxlLGYsYyxhKSx2PXAuX19lLHAucmVmJiZoLnJlZiE9cC5yZWYmJihoLnJlZiYmSihoLnJlZixudWxsLHApLGEucHVzaChwLnJlZixwLl9fY3x8dixwKSksbnVsbD09eSYmbnVsbCE9diYmKHk9diksNCZwLl9fdT8oZj1qKHAsZixuKSxoLl9fZSYmKGguX19lPW51bGwpKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBwLnR5cGUmJnZvaWQgMCE9PV8/Zj1fOnYmJihmPXYubmV4dFNpYmxpbmcpLHAuX191Jj0tNyk7cmV0dXJuIHUuX19lPXksZn1mdW5jdGlvbiBUKG4sbCx1LHQsaSl7dmFyIHIsbyxlLGYsYyxhPXUubGVuZ3RoLHM9YSxoPTA7Zm9yKG4uX19rPW5ldyBBcnJheShpKSxyPTA7cjxpO3IrKyludWxsIT0obz1sW3JdKSYmXCJib29sZWFuXCIhPXR5cGVvZiBvJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBvPyhcInN0cmluZ1wiPT10eXBlb2Ygb3x8XCJudW1iZXJcIj09dHlwZW9mIG98fFwiYmlnaW50XCI9PXR5cGVvZiBvfHxvLmNvbnN0cnVjdG9yPT1TdHJpbmc/bz1uLl9fa1tyXT14KG51bGwsbyxudWxsLG51bGwsbnVsbCk6ZyhvKT9vPW4uX19rW3JdPXgoUyx7Y2hpbGRyZW46b30sbnVsbCxudWxsLG51bGwpOnZvaWQgMD09PW8uY29uc3RydWN0b3ImJm8uX19iPjA/bz1uLl9fa1tyXT14KG8udHlwZSxvLnByb3BzLG8ua2V5LG8ucmVmP28ucmVmOm51bGwsby5fX3YpOm4uX19rW3JdPW8sZj1yK2gsby5fXz1uLG8uX19iPW4uX19iKzEsZT1udWxsLC0xIT0oYz1vLl9faT1PKG8sdSxmLHMpKSYmKHMtLSwoZT11W2NdKSYmKGUuX191fD0yKSksbnVsbD09ZXx8bnVsbD09ZS5fX3Y/KC0xPT1jJiYoaT5hP2gtLTppPGEmJmgrKyksXCJmdW5jdGlvblwiIT10eXBlb2Ygby50eXBlJiYoby5fX3V8PTQpKTpjIT1mJiYoYz09Zi0xP2gtLTpjPT1mKzE/aCsrOihjPmY/aC0tOmgrKyxvLl9fdXw9NCkpKTpuLl9fa1tyXT1udWxsO2lmKHMpZm9yKHI9MDtyPGE7cisrKW51bGwhPShlPXVbcl0pJiYwPT0oMiZlLl9fdSkmJihlLl9fZT09dCYmKHQ9JChlKSksSyhlLGUpKTtyZXR1cm4gdH1mdW5jdGlvbiBqKG4sbCx1KXt2YXIgdCxpO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4udHlwZSl7Zm9yKHQ9bi5fX2ssaT0wO3QmJmk8dC5sZW5ndGg7aSsrKXRbaV0mJih0W2ldLl9fPW4sbD1qKHRbaV0sbCx1KSk7cmV0dXJuIGx9bi5fX2UhPWwmJihsJiZuLnR5cGUmJiFsLnBhcmVudE5vZGUmJihsPSQobikpLGw9dS5pbnNlcnRCZWZvcmUobi5fX2UsbHx8bnVsbCkpO2Rve2w9bCYmbC5uZXh0U2libGluZ313aGlsZShudWxsIT1sJiY4PT1sLm5vZGVUeXBlKTtyZXR1cm4gbH1mdW5jdGlvbiBGKG4sbCl7cmV0dXJuIGw9bHx8W10sbnVsbD09bnx8XCJib29sZWFuXCI9PXR5cGVvZiBufHwoZyhuKT9uLnNvbWUoZnVuY3Rpb24obil7RihuLGwpfSk6bC5wdXNoKG4pKSxsfWZ1bmN0aW9uIE8obixsLHUsdCl7dmFyIGkscixvLGU9bi5rZXksZj1uLnR5cGUsYz1sW3VdLGE9bnVsbCE9YyYmMD09KDImYy5fX3UpO2lmKG51bGw9PT1jJiZudWxsPT1lfHxhJiZlPT1jLmtleSYmZj09Yy50eXBlKXJldHVybiB1O2lmKHQ+KGE/MTowKSlmb3IoaT11LTEscj11KzE7aT49MHx8cjxsLmxlbmd0aDspaWYobnVsbCE9KGM9bFtvPWk+PTA/aS0tOnIrK10pJiYwPT0oMiZjLl9fdSkmJmU9PWMua2V5JiZmPT1jLnR5cGUpcmV0dXJuIG87cmV0dXJuLTF9ZnVuY3Rpb24geihuLGwsdSl7XCItXCI9PWxbMF0/bi5zZXRQcm9wZXJ0eShsLG51bGw9PXU/XCJcIjp1KTpuW2xdPW51bGw9PXU/XCJcIjpcIm51bWJlclwiIT10eXBlb2YgdXx8Xy50ZXN0KGwpP3U6dStcInB4XCJ9ZnVuY3Rpb24gTihuLGwsdSx0LGkpe3ZhciByLG87bjppZihcInN0eWxlXCI9PWwpaWYoXCJzdHJpbmdcIj09dHlwZW9mIHUpbi5zdHlsZS5jc3NUZXh0PXU7ZWxzZXtpZihcInN0cmluZ1wiPT10eXBlb2YgdCYmKG4uc3R5bGUuY3NzVGV4dD10PVwiXCIpLHQpZm9yKGwgaW4gdCl1JiZsIGluIHV8fHoobi5zdHlsZSxsLFwiXCIpO2lmKHUpZm9yKGwgaW4gdSl0JiZ1W2xdPT10W2xdfHx6KG4uc3R5bGUsbCx1W2xdKX1lbHNlIGlmKFwib1wiPT1sWzBdJiZcIm5cIj09bFsxXSlyPWwhPShsPWwucmVwbGFjZShzLFwiJDFcIikpLG89bC50b0xvd2VyQ2FzZSgpLGw9byBpbiBufHxcIm9uRm9jdXNPdXRcIj09bHx8XCJvbkZvY3VzSW5cIj09bD9vLnNsaWNlKDIpOmwuc2xpY2UoMiksbi5sfHwobi5sPXt9KSxuLmxbbCtyXT11LHU/dD91W2FdPXRbYV06KHVbYV09aCxuLmFkZEV2ZW50TGlzdGVuZXIobCxyP3Y6cCxyKSk6bi5yZW1vdmVFdmVudExpc3RlbmVyKGwscj92OnAscik7ZWxzZXtpZihcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI9PWkpbD1sLnJlcGxhY2UoL3hsaW5rKEh8OmgpLyxcImhcIikucmVwbGFjZSgvc05hbWUkLyxcInNcIik7ZWxzZSBpZihcIndpZHRoXCIhPWwmJlwiaGVpZ2h0XCIhPWwmJlwiaHJlZlwiIT1sJiZcImxpc3RcIiE9bCYmXCJmb3JtXCIhPWwmJlwidGFiSW5kZXhcIiE9bCYmXCJkb3dubG9hZFwiIT1sJiZcInJvd1NwYW5cIiE9bCYmXCJjb2xTcGFuXCIhPWwmJlwicm9sZVwiIT1sJiZcInBvcG92ZXJcIiE9bCYmbCBpbiBuKXRyeXtuW2xdPW51bGw9PXU/XCJcIjp1O2JyZWFrIG59Y2F0Y2gobil7fVwiZnVuY3Rpb25cIj09dHlwZW9mIHV8fChudWxsPT11fHwhMT09PXUmJlwiLVwiIT1sWzRdP24ucmVtb3ZlQXR0cmlidXRlKGwpOm4uc2V0QXR0cmlidXRlKGwsXCJwb3BvdmVyXCI9PWwmJjE9PXU/XCJcIjp1KSl9fWZ1bmN0aW9uIFYobil7cmV0dXJuIGZ1bmN0aW9uKHUpe2lmKHRoaXMubCl7dmFyIHQ9dGhpcy5sW3UudHlwZStuXTtpZihudWxsPT11W2NdKXVbY109aCsrO2Vsc2UgaWYodVtjXTx0W2FdKXJldHVybjtyZXR1cm4gdChsLmV2ZW50P2wuZXZlbnQodSk6dSl9fX1mdW5jdGlvbiBxKG4sdSx0LGkscixvLGUsZixjLGEpe3ZhciBzLGgscCx2LHksZCxfLGsseCxNLEksUCxBLEgsVCxqLEY9dS50eXBlO2lmKHZvaWQgMCE9PXUuY29uc3RydWN0b3IpcmV0dXJuIG51bGw7MTI4JnQuX191JiYoYz0hISgzMiZ0Ll9fdSksbz1bZj11Ll9fZT10Ll9fZV0pLChzPWwuX19iKSYmcyh1KTtuOmlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIEYpe2g9ZS5sZW5ndGg7dHJ5e2lmKHg9dS5wcm9wcyxNPUYucHJvdG90eXBlJiZGLnByb3RvdHlwZS5yZW5kZXIsST0ocz1GLmNvbnRleHRUeXBlKSYmaVtzLl9fY10sUD1zP0k/SS5wcm9wcy52YWx1ZTpzLl9fOmksdC5fX2M/az0ocD11Ll9fYz10Ll9fYykuX189cC5fX0U6KE0/dS5fX2M9cD1uZXcgRih4LFApOih1Ll9fYz1wPW5ldyBDKHgsUCkscC5jb25zdHJ1Y3Rvcj1GLHAucmVuZGVyPVEpLEkmJkkuc3ViKHApLHAuc3RhdGV8fChwLnN0YXRlPXt9KSxwLl9fbj1pLHY9cC5fX2Q9ITAscC5fX2g9W10scC5fc2I9W10pLE0mJm51bGw9PXAuX19zJiYocC5fX3M9cC5zdGF0ZSksTSYmbnVsbCE9Ri5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMmJihwLl9fcz09cC5zdGF0ZSYmKHAuX19zPW0oe30scC5fX3MpKSxtKHAuX19zLEYuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKHgscC5fX3MpKSkseT1wLnByb3BzLGQ9cC5zdGF0ZSxwLl9fdj11LHYpTSYmbnVsbD09Ri5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMmJm51bGwhPXAuY29tcG9uZW50V2lsbE1vdW50JiZwLmNvbXBvbmVudFdpbGxNb3VudCgpLE0mJm51bGwhPXAuY29tcG9uZW50RGlkTW91bnQmJnAuX19oLnB1c2gocC5jb21wb25lbnREaWRNb3VudCk7ZWxzZXtpZihNJiZudWxsPT1GLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyYmeCE9PXkmJm51bGwhPXAuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmcC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHgsUCksdS5fX3Y9PXQuX192fHwhcC5fX2UmJm51bGwhPXAuc2hvdWxkQ29tcG9uZW50VXBkYXRlJiYhMT09PXAuc2hvdWxkQ29tcG9uZW50VXBkYXRlKHgscC5fX3MsUCkpe3UuX192IT10Ll9fdiYmKHAucHJvcHM9eCxwLnN0YXRlPXAuX19zLHAuX19kPSExKSx1Ll9fZT10Ll9fZSx1Ll9faz10Ll9fayx1Ll9fay5zb21lKGZ1bmN0aW9uKG4pe24mJihuLl9fPXUpfSksdy5wdXNoLmFwcGx5KHAuX19oLHAuX3NiKSxwLl9zYj1bXSxwLl9faC5sZW5ndGgmJmUucHVzaChwKSxmPSQodCk7YnJlYWsgbn1udWxsIT1wLmNvbXBvbmVudFdpbGxVcGRhdGUmJnAuY29tcG9uZW50V2lsbFVwZGF0ZSh4LHAuX19zLFApLE0mJm51bGwhPXAuY29tcG9uZW50RGlkVXBkYXRlJiZwLl9faC5wdXNoKGZ1bmN0aW9uKCl7cC5jb21wb25lbnREaWRVcGRhdGUoeSxkLF8pfSl9aWYocC5jb250ZXh0PVAscC5wcm9wcz14LHAuX19QPW4scC5fX2U9ITEsQT1sLl9fcixIPTAsTSlwLnN0YXRlPXAuX19zLHAuX19kPSExLEEmJkEodSkscz1wLnJlbmRlcihwLnByb3BzLHAuc3RhdGUscC5jb250ZXh0KSx3LnB1c2guYXBwbHkocC5fX2gscC5fc2IpLHAuX3NiPVtdO2Vsc2UgZG97cC5fX2Q9ITEsQSYmQSh1KSxzPXAucmVuZGVyKHAucHJvcHMscC5zdGF0ZSxwLmNvbnRleHQpLHAuc3RhdGU9cC5fX3N9d2hpbGUocC5fX2QmJisrSDwyNSk7cC5zdGF0ZT1wLl9fcyxudWxsIT1wLmdldENoaWxkQ29udGV4dCYmKGk9bShtKHt9LGkpLHAuZ2V0Q2hpbGRDb250ZXh0KCkpKSxNJiYhdiYmbnVsbCE9cC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSYmKF89cC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSh5LGQpKSxUPW51bGwhPXMmJnMudHlwZT09PVMmJm51bGw9PXMua2V5P0Uocy5wcm9wcy5jaGlsZHJlbik6cyxmPUwobixnKFQpP1Q6W1RdLHUsdCxpLHIsbyxlLGYsYyxhKSxwLmJhc2U9dS5fX2UsdS5fX3UmPS0xNjEscC5fX2gubGVuZ3RoJiZlLnB1c2gocCksayYmKHAuX19FPXAuX189bnVsbCl9Y2F0Y2gobil7aWYoZS5sZW5ndGg9aCx1Ll9fdj1udWxsLGN8fG51bGwhPW8pe2lmKG4udGhlbil7Zm9yKHUuX191fD1jPzE2MDoxMjg7ZiYmOD09Zi5ub2RlVHlwZSYmZi5uZXh0U2libGluZzspZj1mLm5leHRTaWJsaW5nO251bGwhPW8mJihvW28uaW5kZXhPZihmKV09bnVsbCksdS5fX2U9Zn1lbHNlIGlmKG51bGwhPW8pZm9yKGo9by5sZW5ndGg7ai0tOyliKG9bal0pfWVsc2UgdS5fX2U9dC5fX2U7bnVsbD09dS5fX2smJih1Ll9faz10Ll9fa3x8W10pLG4udGhlbnx8Qih1KSxsLl9fZShuLHUsdCl9fWVsc2UgbnVsbD09byYmdS5fX3Y9PXQuX192Pyh1Ll9faz10Ll9fayx1Ll9fZT10Ll9fZSk6Zj11Ll9fZT1HKHQuX19lLHUsdCxpLHIsbyxlLGMsYSk7cmV0dXJuKHM9bC5kaWZmZWQpJiZzKHUpLDEyOCZ1Ll9fdT92b2lkIDA6Zn1mdW5jdGlvbiBCKG4pe24mJihuLl9fYyYmKG4uX19jLl9fZT0hMCksbi5fX2smJm4uX19rLnNvbWUoQikpfWZ1bmN0aW9uIEQobix1LHQpe2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKUoodFtpXSx0WysraV0sdFsrK2ldKTtsLl9fYyYmbC5fX2ModSxuKSxuLnNvbWUoZnVuY3Rpb24odSl7dHJ5e249dS5fX2gsdS5fX2g9W10sbi5zb21lKGZ1bmN0aW9uKG4pe24uY2FsbCh1KX0pfWNhdGNoKG4pe2wuX19lKG4sdS5fX3YpfX0pfWZ1bmN0aW9uIEUobil7cmV0dXJuXCJvYmplY3RcIiE9dHlwZW9mIG58fG51bGw9PW58fG4uX19iPjA/bjpnKG4pP24ubWFwKEUpOnZvaWQgMCE9PW4uY29uc3RydWN0b3I/bnVsbDptKHt9LG4pfWZ1bmN0aW9uIEcodSx0LGkscixvLGUsZixjLGEpe3ZhciBzLGgscCx2LHksdyxfLG09aS5wcm9wc3x8ZCxrPXQucHJvcHMseD10LnR5cGU7aWYoXCJzdmdcIj09eD9vPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjpcIm1hdGhcIj09eD9vPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiOm98fChvPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiKSxudWxsIT1lKWZvcihzPTA7czxlLmxlbmd0aDtzKyspaWYoKHk9ZVtzXSkmJlwic2V0QXR0cmlidXRlXCJpbiB5PT0hIXgmJih4P3kubG9jYWxOYW1lPT14OjM9PXkubm9kZVR5cGUpKXt1PXksZVtzXT1udWxsO2JyZWFrfWlmKG51bGw9PXUpe2lmKG51bGw9PXgpcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGspO3U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG8seCxrLmlzJiZrKSxjJiYobC5fX20mJmwuX19tKHQsZSksYz0hMSksZT1udWxsfWlmKG51bGw9PXgpbT09PWt8fGMmJnUuZGF0YT09a3x8KHUuZGF0YT1rKTtlbHNle2lmKGU9XCJ0ZXh0YXJlYVwiPT14JiZudWxsIT1rLmRlZmF1bHRWYWx1ZT9udWxsOmUmJm4uY2FsbCh1LmNoaWxkTm9kZXMpLCFjJiZudWxsIT1lKWZvcihtPXt9LHM9MDtzPHUuYXR0cmlidXRlcy5sZW5ndGg7cysrKW1bKHk9dS5hdHRyaWJ1dGVzW3NdKS5uYW1lXT15LnZhbHVlO2ZvcihzIGluIG0peT1tW3NdLFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09cz9wPXk6XCJjaGlsZHJlblwiPT1zfHxzIGluIGt8fFwidmFsdWVcIj09cyYmXCJkZWZhdWx0VmFsdWVcImluIGt8fFwiY2hlY2tlZFwiPT1zJiZcImRlZmF1bHRDaGVja2VkXCJpbiBrfHxOKHUscyxudWxsLHksbyk7Zm9yKHMgaW4gayl5PWtbc10sXCJjaGlsZHJlblwiPT1zP3Y9eTpcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PXM/aD15OlwidmFsdWVcIj09cz93PXk6XCJjaGVja2VkXCI9PXM/Xz15OmMmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHl8fG1bc109PT15fHxOKHUscyx5LG1bc10sbyk7aWYoaCljfHxwJiYoaC5fX2h0bWw9PXAuX19odG1sfHxoLl9faHRtbD09dS5pbm5lckhUTUwpfHwodS5pbm5lckhUTUw9aC5fX2h0bWwpLHQuX19rPVtdO2Vsc2UgaWYocCYmKHUuaW5uZXJIVE1MPVwiXCIpLEwoXCJ0ZW1wbGF0ZVwiPT10LnR5cGU/dS5jb250ZW50OnUsZyh2KT92Olt2XSx0LGkscixcImZvcmVpZ25PYmplY3RcIj09eD9cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIjpvLGUsZixlP2VbMF06aS5fX2smJiQoaSwwKSxjLGEpLG51bGwhPWUpZm9yKHM9ZS5sZW5ndGg7cy0tOyliKGVbc10pO2MmJlwidGV4dGFyZWFcIiE9eHx8KHM9XCJ2YWx1ZVwiLFwicHJvZ3Jlc3NcIj09eCYmbnVsbD09dz91LnJlbW92ZUF0dHJpYnV0ZShcInZhbHVlXCIpOm51bGwhPXcmJih3IT09dVtzXXx8XCJwcm9ncmVzc1wiPT14JiYhd3x8XCJvcHRpb25cIj09eCYmdyE9bVtzXSkmJk4odSxzLHcsbVtzXSxvKSxzPVwiY2hlY2tlZFwiLG51bGwhPV8mJl8hPXVbc10mJk4odSxzLF8sbVtzXSxvKSl9cmV0dXJuIHV9ZnVuY3Rpb24gSihuLHUsdCl7dHJ5e2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4pe3ZhciBpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4uX191O2kmJm4uX191KCksaSYmbnVsbD09dXx8KG4uX191PW4odSkpfWVsc2Ugbi5jdXJyZW50PXV9Y2F0Y2gobil7bC5fX2Uobix0KX19ZnVuY3Rpb24gSyhuLHUsdCl7dmFyIGkscjtpZihsLnVubW91bnQmJmwudW5tb3VudChuKSwoaT1uLnJlZikmJihpLmN1cnJlbnQmJmkuY3VycmVudCE9bi5fX2V8fEooaSxudWxsLHUpKSxudWxsIT0oaT1uLl9fYykpe2lmKGkuY29tcG9uZW50V2lsbFVubW91bnQpdHJ5e2kuY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaChuKXtsLl9fZShuLHUpfWkuYmFzZT1pLl9fUD1pLl9fbj1udWxsfWlmKGk9bi5fX2spZm9yKHI9MDtyPGkubGVuZ3RoO3IrKylpW3JdJiZLKGlbcl0sdSx0fHxcImZ1bmN0aW9uXCIhPXR5cGVvZiBuLnR5cGUpO3R8fGIobi5fX2UpLG4uX19jPW4uX189bi5fX2U9dm9pZCAwfWZ1bmN0aW9uIFEobixsLHUpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yKG4sdSl9ZnVuY3Rpb24gUih1LHQsaSl7dmFyIHIsbyxlLGY7dD09ZG9jdW1lbnQmJih0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCksbC5fXyYmbC5fXyh1LHQpLG89KHI9XCJmdW5jdGlvblwiPT10eXBlb2YgaSk/bnVsbDppJiZpLl9fa3x8dC5fX2ssZT1bXSxmPVtdLHEodCx1PSghciYmaXx8dCkuX19rPWsoUyxudWxsLFt1XSksb3x8ZCxkLHQubmFtZXNwYWNlVVJJLCFyJiZpP1tpXTpvP251bGw6dC5maXJzdENoaWxkP24uY2FsbCh0LmNoaWxkTm9kZXMpOm51bGwsZSwhciYmaT9pOm8/by5fX2U6dC5maXJzdENoaWxkLHIsZiksRChlLHUsZiksdS5wcm9wcy5jaGlsZHJlbj1udWxsfWZ1bmN0aW9uIFUobixsKXtSKG4sbCxVKX1mdW5jdGlvbiBXKGwsdSx0KXt2YXIgaSxyLG8sZSxmPW0oe30sbC5wcm9wcyk7Zm9yKG8gaW4gbC50eXBlJiZsLnR5cGUuZGVmYXVsdFByb3BzJiYoZT1sLnR5cGUuZGVmYXVsdFByb3BzKSx1KVwia2V5XCI9PW8/aT11W29dOlwicmVmXCI9PW8/cj11W29dOmZbb109dm9pZCAwPT09dVtvXSYmbnVsbCE9ZT9lW29dOnVbb107cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MiYmKGYuY2hpbGRyZW49YXJndW1lbnRzLmxlbmd0aD4zP24uY2FsbChhcmd1bWVudHMsMik6dCkseChsLnR5cGUsZixpfHxsLmtleSxyfHxsLnJlZixudWxsKX1mdW5jdGlvbiBYKG4pe2Z1bmN0aW9uIGwobil7dmFyIHUsdDtyZXR1cm4gdGhpcy5nZXRDaGlsZENvbnRleHR8fCh1PW5ldyBTZXQsKHQ9e30pW2wuX19jXT10aGlzLHRoaXMuZ2V0Q2hpbGRDb250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHR9LHRoaXMuY29tcG9uZW50V2lsbFVubW91bnQ9ZnVuY3Rpb24oKXt1PW51bGx9LHRoaXMuc2hvdWxkQ29tcG9uZW50VXBkYXRlPWZ1bmN0aW9uKG4pe3RoaXMucHJvcHMudmFsdWUhPW4udmFsdWUmJnUuZm9yRWFjaChmdW5jdGlvbihuKXtuLl9fZT0hMCxBKG4pfSl9LHRoaXMuc3ViPWZ1bmN0aW9uKG4pe3UuYWRkKG4pO3ZhciBsPW4uY29tcG9uZW50V2lsbFVubW91bnQ7bi5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe3UmJnUuZGVsZXRlKG4pLGwmJmwuY2FsbChuKX19KSxuLmNoaWxkcmVufXJldHVybiBsLl9fYz1cIl9fY0NcIit5KyssbC5fXz1uLGwuUHJvdmlkZXI9bC5fX2w9KGwuQ29uc3VtZXI9ZnVuY3Rpb24obixsKXtyZXR1cm4gbi5jaGlsZHJlbihsKX0pLmNvbnRleHRUeXBlPWwsbH1uPXcuc2xpY2UsbD17X19lOmZ1bmN0aW9uKG4sbCx1LHQpe2Zvcih2YXIgaSxyLG87bD1sLl9fOylpZigoaT1sLl9fYykmJiFpLl9fKXRyeXtpZigocj1pLmNvbnN0cnVjdG9yKSYmbnVsbCE9ci5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3ImJihpLnNldFN0YXRlKHIuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKG4pKSxvPWkuX19kKSxudWxsIT1pLmNvbXBvbmVudERpZENhdGNoJiYoaS5jb21wb25lbnREaWRDYXRjaChuLHR8fHt9KSxvPWkuX19kKSxvKXJldHVybiBpLl9fRT1pfWNhdGNoKGwpe249bH10aHJvdyBufX0sdT0wLHQ9ZnVuY3Rpb24obil7cmV0dXJuIG51bGwhPW4mJnZvaWQgMD09PW4uY29uc3RydWN0b3J9LEMucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKG4sbCl7dmFyIHU7dT1udWxsIT10aGlzLl9fcyYmdGhpcy5fX3MhPXRoaXMuc3RhdGU/dGhpcy5fX3M6dGhpcy5fX3M9bSh7fSx0aGlzLnN0YXRlKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBuJiYobj1uKG0oe30sdSksdGhpcy5wcm9wcykpLG4mJm0odSxuKSxudWxsIT1uJiZ0aGlzLl9fdiYmKGwmJnRoaXMuX3NiLnB1c2gobCksQSh0aGlzKSl9LEMucHJvdG90eXBlLmZvcmNlVXBkYXRlPWZ1bmN0aW9uKG4pe3RoaXMuX192JiYodGhpcy5fX2U9ITAsbiYmdGhpcy5fX2gucHVzaChuKSxBKHRoaXMpKX0sQy5wcm90b3R5cGUucmVuZGVyPVMsaT1bXSxvPVwiZnVuY3Rpb25cIj09dHlwZW9mIFByb21pc2U/UHJvbWlzZS5wcm90b3R5cGUudGhlbi5iaW5kKFByb21pc2UucmVzb2x2ZSgpKTpzZXRUaW1lb3V0LGU9ZnVuY3Rpb24obixsKXtyZXR1cm4gbi5fX3YuX19iLWwuX192Ll9fYn0sSC5fX3I9MCxmPU1hdGgucmFuZG9tKCkudG9TdHJpbmcoOCksYz1cIl9fZFwiK2YsYT1cIl9fYVwiK2Yscz0vKFBvaW50ZXJDYXB0dXJlKSR8Q2FwdHVyZSQvaSxoPTAscD1WKCExKSx2PVYoITApLHk9MDtleHBvcnR7QyBhcyBDb21wb25lbnQsUyBhcyBGcmFnbWVudCxXIGFzIGNsb25lRWxlbWVudCxYIGFzIGNyZWF0ZUNvbnRleHQsayBhcyBjcmVhdGVFbGVtZW50LE0gYXMgY3JlYXRlUmVmLGsgYXMgaCxVIGFzIGh5ZHJhdGUsdCBhcyBpc1ZhbGlkRWxlbWVudCxsIGFzIG9wdGlvbnMsUiBhcyByZW5kZXIsRiBhcyB0b0NoaWxkQXJyYXl9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJlYWN0Lm1vZHVsZS5qcy5tYXBcbiIsImltcG9ydHtvcHRpb25zIGFzIG59ZnJvbVwicHJlYWN0XCI7dmFyIHQscix1LGksbz0wLGY9W10sYz1uLGU9Yy5fX2IsYT1jLl9fcix2PWMuZGlmZmVkLGw9Yy5fX2MsbT1jLnVubW91bnQscD1jLl9fO2Z1bmN0aW9uIHMobix0KXtjLl9faCYmYy5fX2gocixuLG98fHQpLG89MDt2YXIgdT1yLl9fSHx8KHIuX19IPXtfXzpbXSxfX2g6W119KTtyZXR1cm4gbj49dS5fXy5sZW5ndGgmJnUuX18ucHVzaCh7fSksdS5fX1tuXX1mdW5jdGlvbiBkKG4pe3JldHVybiBvPTEseShELG4pfWZ1bmN0aW9uIHkobix1LGkpe3ZhciBvPXModCsrLDIpO2lmKG8udD1uLCFvLl9fYyYmKG8uX189W2k/aSh1KTpEKHZvaWQgMCx1KSxmdW5jdGlvbihuKXt2YXIgdD1vLl9fTj9vLl9fTlswXTpvLl9fWzBdLHI9by50KHQsbik7dCE9PXImJihvLl9fTj1bcixvLl9fWzFdXSxvLl9fYy5zZXRTdGF0ZSh7fSkpfV0sby5fX2M9ciwhci5fX2YpKXt2YXIgZj1mdW5jdGlvbihuLHQscil7aWYoIW8uX19jLl9fSClyZXR1cm4hMDt2YXIgdT0hMSxpPW8uX19jLnByb3BzIT09bjtpZihvLl9fYy5fX0guX18uc29tZShmdW5jdGlvbihuKXtpZihuLl9fTil7dT0hMDt2YXIgdD1uLl9fWzBdO24uX189bi5fX04sbi5fX049dm9pZCAwLHQhPT1uLl9fWzBdJiYoaT0hMCl9fSksYyl7dmFyIGY9Yy5jYWxsKHRoaXMsbix0LHIpO3JldHVybiB1P2Z8fGk6Zn1yZXR1cm4hdXx8aX07ci5fX2Y9ITA7dmFyIGM9ci5zaG91bGRDb21wb25lbnRVcGRhdGUsZT1yLmNvbXBvbmVudFdpbGxVcGRhdGU7ci5jb21wb25lbnRXaWxsVXBkYXRlPWZ1bmN0aW9uKG4sdCxyKXtpZih0aGlzLl9fZSl7dmFyIHU9YztjPXZvaWQgMCxmKG4sdCxyKSxjPXV9ZSYmZS5jYWxsKHRoaXMsbix0LHIpfSxyLnNob3VsZENvbXBvbmVudFVwZGF0ZT1mfXJldHVybiBvLl9fTnx8by5fX31mdW5jdGlvbiBoKG4sdSl7dmFyIGk9cyh0KyssMyk7IWMuX19zJiZDKGkuX19ILHUpJiYoaS5fXz1uLGkudT11LHIuX19ILl9faC5wdXNoKGkpKX1mdW5jdGlvbiBfKG4sdSl7dmFyIGk9cyh0KyssNCk7IWMuX19zJiZDKGkuX19ILHUpJiYoaS5fXz1uLGkudT11LHIuX19oLnB1c2goaSkpfWZ1bmN0aW9uIEEobil7cmV0dXJuIG89NSxUKGZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bn19LFtdKX1mdW5jdGlvbiBGKG4sdCxyKXtvPTYsXyhmdW5jdGlvbigpe2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4pe3ZhciByPW4odCgpKTtyZXR1cm4gZnVuY3Rpb24oKXtuKG51bGwpLHImJlwiZnVuY3Rpb25cIj09dHlwZW9mIHImJnIoKX19aWYobilyZXR1cm4gbi5jdXJyZW50PXQoKSxmdW5jdGlvbigpe3JldHVybiBuLmN1cnJlbnQ9bnVsbH19LG51bGw9PXI/cjpyLmNvbmNhdChuKSl9ZnVuY3Rpb24gVChuLHIpe3ZhciB1PXModCsrLDcpO3JldHVybiBDKHUuX19ILHIpJiYodS5fXz1uKCksdS5fX0g9cix1Ll9faD1uKSx1Ll9ffWZ1bmN0aW9uIHEobix0KXtyZXR1cm4gbz04LFQoZnVuY3Rpb24oKXtyZXR1cm4gbn0sdCl9ZnVuY3Rpb24geChuKXt2YXIgdT1yLmNvbnRleHRbbi5fX2NdLGk9cyh0KyssOSk7cmV0dXJuIGkuYz1uLHU/KG51bGw9PWkuX18mJihpLl9fPSEwLHUuc3ViKHIpKSx1LnByb3BzLnZhbHVlKTpuLl9ffWZ1bmN0aW9uIFAobix0KXtjLnVzZURlYnVnVmFsdWUmJmMudXNlRGVidWdWYWx1ZSh0P3Qobik6bil9ZnVuY3Rpb24gYihuKXt2YXIgdT1zKHQrKywxMCksaT1kKCk7cmV0dXJuIHUuX189bixyLmNvbXBvbmVudERpZENhdGNofHwoci5jb21wb25lbnREaWRDYXRjaD1mdW5jdGlvbihuLHQpe3UuX18mJnUuX18obix0KSxpWzFdKG4pfSksW2lbMF0sZnVuY3Rpb24oKXtpWzFdKHZvaWQgMCl9XX1mdW5jdGlvbiBnKCl7dmFyIG49cyh0KyssMTEpO2lmKCFuLl9fKXtmb3IodmFyIHU9ci5fX3Y7bnVsbCE9PXUmJiF1Ll9fbSYmbnVsbCE9PXUuX187KXU9dS5fXzt2YXIgaT11Ll9fbXx8KHUuX19tPVswLDBdKTtuLl9fPVwiUFwiK2lbMF0rXCItXCIraVsxXSsrfXJldHVybiBuLl9ffWZ1bmN0aW9uIGooKXtmb3IodmFyIG47bj1mLnNoaWZ0KCk7KXt2YXIgdD1uLl9fSDtpZihuLl9fUCYmdCl0cnl7dC5fX2guc29tZSh6KSx0Ll9faC5zb21lKEIpLHQuX19oPVtdfWNhdGNoKHIpe3QuX19oPVtdLGMuX19lKHIsbi5fX3YpfX19Yy5fX2I9ZnVuY3Rpb24obil7cj1udWxsLGUmJmUobil9LGMuX189ZnVuY3Rpb24obix0KXtuJiZ0Ll9fayYmdC5fX2suX19tJiYobi5fX209dC5fX2suX19tKSxwJiZwKG4sdCl9LGMuX19yPWZ1bmN0aW9uKG4pe2EmJmEobiksdD0wO3ZhciBpPShyPW4uX19jKS5fX0g7aSYmKHU9PT1yPyhpLl9faD1bXSxyLl9faD1bXSxpLl9fLnNvbWUoZnVuY3Rpb24obil7bi5fX04mJihuLl9fPW4uX19OKSxuLnU9bi5fX049dm9pZCAwfSkpOihpLl9faC5zb21lKHopLGkuX19oLnNvbWUoQiksaS5fX2g9W10sdD0wKSksdT1yfSxjLmRpZmZlZD1mdW5jdGlvbihuKXt2JiZ2KG4pO3ZhciB0PW4uX19jO3QmJnQuX19IJiYodC5fX0guX19oLmxlbmd0aCYmKDEhPT1mLnB1c2godCkmJmk9PT1jLnJlcXVlc3RBbmltYXRpb25GcmFtZXx8KChpPWMucmVxdWVzdEFuaW1hdGlvbkZyYW1lKXx8dykoaikpLHQuX19ILl9fLnNvbWUoZnVuY3Rpb24obil7bi51JiYobi5fX0g9bi51LG4udT12b2lkIDApfSkpLHU9cj1udWxsfSxjLl9fYz1mdW5jdGlvbihuLHQpe3Quc29tZShmdW5jdGlvbihuKXt0cnl7bi5fX2guc29tZSh6KSxuLl9faD1uLl9faC5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuIW4uX198fEIobil9KX1jYXRjaChyKXt0LnNvbWUoZnVuY3Rpb24obil7bi5fX2gmJihuLl9faD1bXSl9KSx0PVtdLGMuX19lKHIsbi5fX3YpfX0pLGwmJmwobix0KX0sYy51bm1vdW50PWZ1bmN0aW9uKG4pe20mJm0obik7dmFyIHQscj1uLl9fYztyJiZyLl9fSCYmKHIuX19ILl9fLnNvbWUoZnVuY3Rpb24obil7dHJ5e3oobil9Y2F0Y2gobil7dD1ufX0pLHIuX19IPXZvaWQgMCx0JiZjLl9fZSh0LHIuX192KSl9O3ZhciBrPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZTtmdW5jdGlvbiB3KG4pe3ZhciB0LHI9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodSksayYmY2FuY2VsQW5pbWF0aW9uRnJhbWUodCksc2V0VGltZW91dChuKX0sdT1zZXRUaW1lb3V0KHIsMzUpO2smJih0PXJlcXVlc3RBbmltYXRpb25GcmFtZShyKSl9ZnVuY3Rpb24geihuKXt2YXIgdD1yLHU9bi5fX2M7XCJmdW5jdGlvblwiPT10eXBlb2YgdSYmKG4uX19jPXZvaWQgMCx1KCkpLHI9dH1mdW5jdGlvbiBCKG4pe3ZhciB0PXI7bi5fX2M9bi5fXygpLHI9dH1mdW5jdGlvbiBDKG4sdCl7cmV0dXJuIW58fG4ubGVuZ3RoIT09dC5sZW5ndGh8fHQuc29tZShmdW5jdGlvbih0LHIpe3JldHVybiB0IT09bltyXX0pfWZ1bmN0aW9uIEQobix0KXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Qobik6dH1leHBvcnR7cSBhcyB1c2VDYWxsYmFjayx4IGFzIHVzZUNvbnRleHQsUCBhcyB1c2VEZWJ1Z1ZhbHVlLGggYXMgdXNlRWZmZWN0LGIgYXMgdXNlRXJyb3JCb3VuZGFyeSxnIGFzIHVzZUlkLEYgYXMgdXNlSW1wZXJhdGl2ZUhhbmRsZSxfIGFzIHVzZUxheW91dEVmZmVjdCxUIGFzIHVzZU1lbW8seSBhcyB1c2VSZWR1Y2VyLEEgYXMgdXNlUmVmLGQgYXMgdXNlU3RhdGV9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aG9va3MubW9kdWxlLmpzLm1hcFxuIiwiaW1wb3J0e0NvbXBvbmVudCBhcyBuLGNyZWF0ZUVsZW1lbnQgYXMgdCxvcHRpb25zIGFzIGUsdG9DaGlsZEFycmF5IGFzIHIsRnJhZ21lbnQgYXMgdSxyZW5kZXIgYXMgbyxoeWRyYXRlIGFzIGksY3JlYXRlQ29udGV4dCBhcyBsLGNyZWF0ZVJlZiBhcyBmLGNsb25lRWxlbWVudCBhcyBhfWZyb21cInByZWFjdFwiO2V4cG9ydHtDb21wb25lbnQsRnJhZ21lbnQsRnJhZ21lbnQgYXMgU3RyaWN0TW9kZSxjcmVhdGVDb250ZXh0LGNyZWF0ZUVsZW1lbnQsY3JlYXRlUmVmfWZyb21cInByZWFjdFwiO2ltcG9ydHt1c2VTdGF0ZSBhcyBjLHVzZUxheW91dEVmZmVjdCBhcyBzLHVzZUVmZmVjdCBhcyBoLHVzZUNhbGxiYWNrIGFzIHYsdXNlQ29udGV4dCBhcyBkLHVzZURlYnVnVmFsdWUgYXMgbSx1c2VJZCBhcyBwLHVzZUltcGVyYXRpdmVIYW5kbGUgYXMgeSx1c2VNZW1vIGFzIF8sdXNlUmVkdWNlciBhcyBiLHVzZVJlZiBhcyBTfWZyb21cInByZWFjdC9ob29rc1wiO2V4cG9ydCpmcm9tXCJwcmVhY3QvaG9va3NcIjtmdW5jdGlvbiBnKG4sdCl7Zm9yKHZhciBlIGluIHQpbltlXT10W2VdO3JldHVybiBufWZ1bmN0aW9uIEUobix0KXtmb3IodmFyIGUgaW4gbilpZihcIl9fc291cmNlXCIhPT1lJiYhKGUgaW4gdCkpcmV0dXJuITA7Zm9yKHZhciByIGluIHQpaWYoXCJfX3NvdXJjZVwiIT09ciYmbltyXSE9PXRbcl0pcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gQyhuLHQpe3ZhciBlPXQoKSxyPWMoe3Q6e19fOmUsdTp0fX0pLHU9clswXS50LG89clsxXTtyZXR1cm4gcyhmdW5jdGlvbigpe3UuX189ZSx1LnU9dCxSKHUpJiZvKHt0OnV9KX0sW24sZSx0XSksaChmdW5jdGlvbigpe3JldHVybiBSKHUpJiZvKHt0OnV9KSxuKGZ1bmN0aW9uKCl7Uih1KSYmbyh7dDp1fSl9KX0sW25dKSxlfWZ1bmN0aW9uIFIobil7dHJ5e3JldHVybiEoKHQ9bi5fXyk9PT0oZT1uLnUoKSkmJigwIT09dHx8MS90PT0xL2UpfHx0IT10JiZlIT1lKX1jYXRjaChuKXtyZXR1cm4hMH12YXIgdCxlfWZ1bmN0aW9uIHgobil7bigpfWZ1bmN0aW9uIHcobil7cmV0dXJuIG59ZnVuY3Rpb24gaygpe3JldHVyblshMSx4XX12YXIgST1zO2Z1bmN0aW9uIE0obix0KXt0aGlzLnByb3BzPW4sdGhpcy5jb250ZXh0PXR9ZnVuY3Rpb24gTihuLGUpe2Z1bmN0aW9uIHIobil7dmFyIHQ9dGhpcy5wcm9wcy5yZWY7cmV0dXJuIHQhPW4ucmVmJiZ0JiYoXCJmdW5jdGlvblwiPT10eXBlb2YgdD90KG51bGwpOnQuY3VycmVudD1udWxsKSxlPyFlKHRoaXMucHJvcHMsbil8fHQhPW4ucmVmOkUodGhpcy5wcm9wcyxuKX1mdW5jdGlvbiB1KGUpe3JldHVybiB0aGlzLnNob3VsZENvbXBvbmVudFVwZGF0ZT1yLHQobixlKX1yZXR1cm4gdS5kaXNwbGF5TmFtZT1cIk1lbW8oXCIrKG4uZGlzcGxheU5hbWV8fG4ubmFtZSkrXCIpXCIsdS5fX2Y9dS5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD0hMCx1LnR5cGU9bix1fShNLnByb3RvdHlwZT1uZXcgbikuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITAsTS5wcm90b3R5cGUuc2hvdWxkQ29tcG9uZW50VXBkYXRlPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIEUodGhpcy5wcm9wcyxuKXx8RSh0aGlzLnN0YXRlLHQpfTt2YXIgVD1lLl9fYjtlLl9fYj1mdW5jdGlvbihuKXtuLnR5cGUmJm4udHlwZS5fX2YmJm4ucmVmJiYobi5wcm9wcy5yZWY9bi5yZWYsbi5yZWY9bnVsbCksVCYmVChuKX07dmFyIEE9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvciYmU3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpfHwzOTExO2Z1bmN0aW9uIEQobil7ZnVuY3Rpb24gdCh0KXt2YXIgZT1nKHt9LHQpO3JldHVybiBkZWxldGUgZS5yZWYsbihlLHQucmVmfHxudWxsKX1yZXR1cm4gdC4kJHR5cGVvZj1BLHQucmVuZGVyPW4sdC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD10Ll9fZj0hMCx0LmRpc3BsYXlOYW1lPVwiRm9yd2FyZFJlZihcIisobi5kaXNwbGF5TmFtZXx8bi5uYW1lKStcIilcIix0fXZhciBGPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIG51bGw9PW4/bnVsbDpyKHIobikubWFwKHQpKX0sTD17bWFwOkYsZm9yRWFjaDpGLGNvdW50OmZ1bmN0aW9uKG4pe3JldHVybiBuP3IobikubGVuZ3RoOjB9LG9ubHk6ZnVuY3Rpb24obil7dmFyIHQ9cihuKTtpZigxIT09dC5sZW5ndGgpdGhyb3dcIkNoaWxkcmVuLm9ubHlcIjtyZXR1cm4gdFswXX0sdG9BcnJheTpyfSxPPWUuX19lO2UuX19lPWZ1bmN0aW9uKG4sdCxlLHIpe2lmKG4udGhlbilmb3IodmFyIHUsbz10O289by5fXzspaWYoKHU9by5fX2MpJiZ1Ll9fYylyZXR1cm4gbnVsbD09dC5fX2UmJih0Ll9fZT1lLl9fZSx0Ll9faz1lLl9fa3x8W10pLHUuX19jKG4sdCk7TyhuLHQsZSxyKX07dmFyIFU9ZS51bm1vdW50O2Z1bmN0aW9uIFYobix0LGUpe3JldHVybiBuJiYobi5fX2MmJm4uX19jLl9fSCYmKG4uX19jLl9fSC5fXy5mb3JFYWNoKGZ1bmN0aW9uKG4pe1wiZnVuY3Rpb25cIj09dHlwZW9mIG4uX19jJiZuLl9fYygpfSksbi5fX2MuX19IPW51bGwpLG51bGwhPShuPWcoe30sbikpLl9fYyYmKG4uX19jLl9fUD09PWUmJihuLl9fYy5fX1A9dCksbi5fX2MuX19lPSEwLG4uX19jPW51bGwpLG4uX19rPW4uX19rJiZuLl9fay5tYXAoZnVuY3Rpb24obil7cmV0dXJuIFYobix0LGUpfSkpLG59ZnVuY3Rpb24gVyhuLHQsZSl7cmV0dXJuIG4mJmUmJihuLl9fdj1udWxsLG4uX19rPW4uX19rJiZuLl9fay5tYXAoZnVuY3Rpb24obil7cmV0dXJuIFcobix0LGUpfSksbi5fX2MmJm4uX19jLl9fUD09PXQmJihuLl9fZSYmZS5hcHBlbmRDaGlsZChuLl9fZSksbi5fX2MuX19lPSEwLG4uX19jLl9fUD1lKSksbn1mdW5jdGlvbiBQKCl7dGhpcy5fX3U9MCx0aGlzLm89bnVsbCx0aGlzLl9fYj1udWxsfWZ1bmN0aW9uIGoobil7dmFyIHQ9bi5fXyYmbi5fXy5fX2M7cmV0dXJuIHQmJnQuX19hJiZ0Ll9fYShuKX1mdW5jdGlvbiB6KG4pe3ZhciBlLHIsdSxvPW51bGw7ZnVuY3Rpb24gaShpKXtpZihlfHwoZT1uKCkpLnRoZW4oZnVuY3Rpb24obil7biYmKG89bi5kZWZhdWx0fHxuKSx1PSEwfSxmdW5jdGlvbihuKXtyPW4sdT0hMH0pLHIpdGhyb3cgcjtpZighdSl0aHJvdyBlO3JldHVybiBvP3QobyxpKTpudWxsfXJldHVybiBpLmRpc3BsYXlOYW1lPVwiTGF6eVwiLGkuX19mPSEwLGl9ZnVuY3Rpb24gQigpe3RoaXMuaT1udWxsLHRoaXMubD1udWxsfWUudW5tb3VudD1mdW5jdGlvbihuKXt2YXIgdD1uLl9fYzt0JiYodC5fX3o9ITApLHQmJnQuX19SJiZ0Ll9fUigpLHQmJjMyJm4uX191JiYobi50eXBlPW51bGwpLFUmJlUobil9LChQLnByb3RvdHlwZT1uZXcgbikuX19jPWZ1bmN0aW9uKG4sdCl7dmFyIGU9dC5fX2Mscj10aGlzO251bGw9PXIubyYmKHIubz1bXSksci5vLnB1c2goZSk7dmFyIHU9aihyLl9fdiksbz0hMSxpPWZ1bmN0aW9uKCl7b3x8ci5fX3p8fChvPSEwLGUuX19SPW51bGwsdT91KGYpOmYoKSl9O2UuX19SPWk7dmFyIGw9ZS5fX1A7ZS5fX1A9bnVsbDt2YXIgZj1mdW5jdGlvbigpe2lmKCEtLXIuX191KXtpZihyLnN0YXRlLl9fYSl7dmFyIG49ci5zdGF0ZS5fX2E7ci5fX3YuX19rWzBdPVcobixuLl9fYy5fX1Asbi5fX2MuX19PKX12YXIgdDtmb3Ioci5zZXRTdGF0ZSh7X19hOnIuX19iPW51bGx9KTt0PXIuby5wb3AoKTspdC5fX1A9bCx0LmZvcmNlVXBkYXRlKCl9fTtyLl9fdSsrfHwzMiZ0Ll9fdXx8ci5zZXRTdGF0ZSh7X19hOnIuX19iPXIuX192Ll9fa1swXX0pLG4udGhlbihpLGkpfSxQLnByb3RvdHlwZS5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe3RoaXMubz1bXX0sUC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKG4sZSl7aWYodGhpcy5fX2Ipe2lmKHRoaXMuX192Ll9fayl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSxvPXRoaXMuX192Ll9fa1swXS5fX2M7dGhpcy5fX3YuX19rWzBdPVYodGhpcy5fX2IscixvLl9fTz1vLl9fUCl9dGhpcy5fX2I9bnVsbH12YXIgaT1lLl9fYSYmdCh1LG51bGwsbi5mYWxsYmFjayk7cmV0dXJuIGkmJihpLl9fdSY9LTMzKSxbdCh1LG51bGwsZS5fX2E/bnVsbDpuLmNoaWxkcmVuKSxpXX07dmFyIEg9ZnVuY3Rpb24obix0LGUpe2lmKCsrZVsxXT09PWVbMF0mJm4ubC5kZWxldGUodCksbi5wcm9wcy5yZXZlYWxPcmRlciYmKFwidFwiIT09bi5wcm9wcy5yZXZlYWxPcmRlclswXXx8IW4ubC5zaXplKSlmb3IoZT1uLmk7ZTspe2Zvcig7ZS5sZW5ndGg+MzspZS5wb3AoKSgpO2lmKGVbMV08ZVswXSlicmVhaztuLmk9ZT1lWzJdfX07ZnVuY3Rpb24gWihuKXtyZXR1cm4gdGhpcy5nZXRDaGlsZENvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5jb250ZXh0fSxuLmNoaWxkcmVufWZ1bmN0aW9uIFkobil7dmFyIGU9dGhpcyxyPW4uaDtpZihlLmNvbXBvbmVudFdpbGxVbm1vdW50PWZ1bmN0aW9uKCl7byhudWxsLGUudiksZS52PW51bGwsZS5oPW51bGx9LGUuaCYmZS5oIT09ciYmZS5jb21wb25lbnRXaWxsVW5tb3VudCgpLCFlLnYpe2Zvcih2YXIgdT1lLl9fdjtudWxsIT09dSYmIXUuX19tJiZudWxsIT09dS5fXzspdT11Ll9fO2UuaD1yLGUudj17bm9kZVR5cGU6MSxwYXJlbnROb2RlOnIsY2hpbGROb2RlczpbXSxfX2s6e19fbTp1Ll9fbX0sY29udGFpbnM6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sbmFtZXNwYWNlVVJJOnIubmFtZXNwYWNlVVJJLGluc2VydEJlZm9yZTpmdW5jdGlvbihuLHQpe3RoaXMuY2hpbGROb2Rlcy5wdXNoKG4pLGUuaC5pbnNlcnRCZWZvcmUobix0KX0scmVtb3ZlQ2hpbGQ6ZnVuY3Rpb24obil7dGhpcy5jaGlsZE5vZGVzLnNwbGljZSh0aGlzLmNoaWxkTm9kZXMuaW5kZXhPZihuKT4+PjEsMSksZS5oLnJlbW92ZUNoaWxkKG4pfX19byh0KFose2NvbnRleHQ6ZS5jb250ZXh0fSxuLl9fdiksZS52KX1mdW5jdGlvbiAkKG4sZSl7dmFyIHI9dChZLHtfX3Y6bixoOmV9KTtyZXR1cm4gci5jb250YWluZXJJbmZvPWUscn0oQi5wcm90b3R5cGU9bmV3IG4pLl9fYT1mdW5jdGlvbihuKXt2YXIgdD10aGlzLGU9aih0Ll9fdikscj10LmwuZ2V0KG4pO3JldHVybiByWzBdKyssZnVuY3Rpb24odSl7dmFyIG89ZnVuY3Rpb24oKXt0LnByb3BzLnJldmVhbE9yZGVyPyhyLnB1c2godSksSCh0LG4scikpOnUoKX07ZT9lKG8pOm8oKX19LEIucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihuKXt0aGlzLmk9bnVsbCx0aGlzLmw9bmV3IE1hcDt2YXIgdD1yKG4uY2hpbGRyZW4pO24ucmV2ZWFsT3JkZXImJlwiYlwiPT09bi5yZXZlYWxPcmRlclswXSYmdC5yZXZlcnNlKCk7Zm9yKHZhciBlPXQubGVuZ3RoO2UtLTspdGhpcy5sLnNldCh0W2VdLHRoaXMuaT1bMSwwLHRoaXMuaV0pO3JldHVybiBuLmNoaWxkcmVufSxCLnByb3RvdHlwZS5jb21wb25lbnREaWRVcGRhdGU9Qi5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQ9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3RoaXMubC5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7SChuLGUsdCl9KX07dmFyIHE9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvciYmU3ltYm9sLmZvcihcInJlYWN0LmVsZW1lbnRcIil8fDYwMTAzLEc9L14oPzphY2NlbnR8YWxpZ25tZW50fGFyYWJpY3xiYXNlbGluZXxjYXB8Y2xpcCg/IVBhdGhVKXxjb2xvcnxkb21pbmFudHxmaWxsfGZsb29kfGZvbnR8Z2x5cGgoPyFSKXxob3JpenxpbWFnZSghUyl8bGV0dGVyfGxpZ2h0aW5nfG1hcmtlcig/IUh8V3xVKXxvdmVybGluZXxwYWludHxwb2ludGVyfHNoYXBlfHN0b3B8c3RyaWtldGhyb3VnaHxzdHJva2V8dGV4dCg/IUwpfHRyYW5zZm9ybXx1bmRlcmxpbmV8dW5pY29kZXx1bml0c3x2fHZlY3Rvcnx2ZXJ0fHdvcmR8d3JpdGluZ3x4KD8hQykpW0EtWl0vLEo9L15vbihBbml8VHJhfFRvdXxCZWZvcmVJbnB8Q29tcG8pLyxLPS9bQS1aMC05XS9nLFE9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGRvY3VtZW50LFg9ZnVuY3Rpb24obil7cmV0dXJuKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2woKT8vZmlsfGNoZXxyYWQvOi9maWx8Y2hlfHJhLykudGVzdChuKX07ZnVuY3Rpb24gbm4obix0LGUpe3JldHVybiBudWxsPT10Ll9fayYmKHQudGV4dENvbnRlbnQ9XCJcIiksbyhuLHQpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJmUoKSxuP24uX19jOm51bGx9ZnVuY3Rpb24gdG4obix0LGUpe3JldHVybiBpKG4sdCksXCJmdW5jdGlvblwiPT10eXBlb2YgZSYmZSgpLG4/bi5fX2M6bnVsbH1uLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PSEwLFtcImNvbXBvbmVudFdpbGxNb3VudFwiLFwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1wiLFwiY29tcG9uZW50V2lsbFVwZGF0ZVwiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSx0LHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbXCJVTlNBRkVfXCIrdF19LHNldDpmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyx0LHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pfX0pfSk7dmFyIGVuPWUuZXZlbnQ7ZS5ldmVudD1mdW5jdGlvbihuKXtyZXR1cm4gZW4mJihuPWVuKG4pKSxuLnBlcnNpc3Q9ZnVuY3Rpb24oKXt9LG4uaXNQcm9wYWdhdGlvblN0b3BwZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYW5jZWxCdWJibGV9LG4uaXNEZWZhdWx0UHJldmVudGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVmYXVsdFByZXZlbnRlZH0sbi5uYXRpdmVFdmVudD1ufTt2YXIgcm4sdW49e2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbGFzc319LG9uPWUudm5vZGU7ZS52bm9kZT1mdW5jdGlvbihuKXtcInN0cmluZ1wiPT10eXBlb2Ygbi50eXBlJiZmdW5jdGlvbihuKXt2YXIgdD1uLnByb3BzLGU9bi50eXBlLHU9e30sbz0tMT09ZS5pbmRleE9mKFwiLVwiKTtmb3IodmFyIGkgaW4gdCl7dmFyIGw9dFtpXTtpZighKFwidmFsdWVcIj09PWkmJlwiZGVmYXVsdFZhbHVlXCJpbiB0JiZudWxsPT1sfHxRJiZcImNoaWxkcmVuXCI9PT1pJiZcIm5vc2NyaXB0XCI9PT1lfHxcImNsYXNzXCI9PT1pfHxcImNsYXNzTmFtZVwiPT09aSkpe3ZhciBmPWkudG9Mb3dlckNhc2UoKTtcImRlZmF1bHRWYWx1ZVwiPT09aSYmXCJ2YWx1ZVwiaW4gdCYmbnVsbD09dC52YWx1ZT9pPVwidmFsdWVcIjpcImRvd25sb2FkXCI9PT1pJiYhMD09PWw/bD1cIlwiOlwidHJhbnNsYXRlXCI9PT1mJiZcIm5vXCI9PT1sP2w9ITE6XCJvXCI9PT1mWzBdJiZcIm5cIj09PWZbMV0/XCJvbmRvdWJsZWNsaWNrXCI9PT1mP2k9XCJvbmRibGNsaWNrXCI6XCJvbmNoYW5nZVwiIT09Znx8XCJpbnB1dFwiIT09ZSYmXCJ0ZXh0YXJlYVwiIT09ZXx8WCh0LnR5cGUpP1wib25mb2N1c1wiPT09Zj9pPVwib25mb2N1c2luXCI6XCJvbmJsdXJcIj09PWY/aT1cIm9uZm9jdXNvdXRcIjpKLnRlc3QoaSkmJihpPWYpOmY9aT1cIm9uaW5wdXRcIjpvJiZHLnRlc3QoaSk/aT1pLnJlcGxhY2UoSyxcIi0kJlwiKS50b0xvd2VyQ2FzZSgpOm51bGw9PT1sJiYobD12b2lkIDApLFwib25pbnB1dFwiPT09ZiYmdVtpPWZdJiYoaT1cIm9uaW5wdXRDYXB0dXJlXCIpLHVbaV09bH19XCJzZWxlY3RcIj09ZSYmKHUubXVsdGlwbGUmJkFycmF5LmlzQXJyYXkodS52YWx1ZSkmJih1LnZhbHVlPXIodC5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbihuKXtuLnByb3BzLnNlbGVjdGVkPS0xIT11LnZhbHVlLmluZGV4T2Yobi5wcm9wcy52YWx1ZSl9KSksbnVsbCE9dS5kZWZhdWx0VmFsdWUmJih1LnZhbHVlPXIodC5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbihuKXtuLnByb3BzLnNlbGVjdGVkPXUubXVsdGlwbGU/LTEhPXUuZGVmYXVsdFZhbHVlLmluZGV4T2Yobi5wcm9wcy52YWx1ZSk6dS5kZWZhdWx0VmFsdWU9PW4ucHJvcHMudmFsdWV9KSkpLHQuY2xhc3MmJiF0LmNsYXNzTmFtZT8odS5jbGFzcz10LmNsYXNzLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LFwiY2xhc3NOYW1lXCIsdW4pKTp0LmNsYXNzTmFtZSYmKHUuY2xhc3M9dS5jbGFzc05hbWU9dC5jbGFzc05hbWUpLG4ucHJvcHM9dX0obiksbi4kJHR5cGVvZj1xLG9uJiZvbihuKX07dmFyIGxuPWUuX19yO2UuX19yPWZ1bmN0aW9uKG4pe2xuJiZsbihuKSxybj1uLl9fY307dmFyIGZuPWUuZGlmZmVkO2UuZGlmZmVkPWZ1bmN0aW9uKG4pe2ZuJiZmbihuKTt2YXIgdD1uLnByb3BzLGU9bi5fX2U7bnVsbCE9ZSYmXCJ0ZXh0YXJlYVwiPT09bi50eXBlJiZcInZhbHVlXCJpbiB0JiZ0LnZhbHVlIT09ZS52YWx1ZSYmKGUudmFsdWU9bnVsbD09dC52YWx1ZT9cIlwiOnQudmFsdWUpLHJuPW51bGx9O3ZhciBhbj17UmVhY3RDdXJyZW50RGlzcGF0Y2hlcjp7Y3VycmVudDp7cmVhZENvbnRleHQ6ZnVuY3Rpb24obil7cmV0dXJuIHJuLl9fbltuLl9fY10ucHJvcHMudmFsdWV9LHVzZUNhbGxiYWNrOnYsdXNlQ29udGV4dDpkLHVzZURlYnVnVmFsdWU6bSx1c2VEZWZlcnJlZFZhbHVlOncsdXNlRWZmZWN0OmgsdXNlSWQ6cCx1c2VJbXBlcmF0aXZlSGFuZGxlOnksdXNlSW5zZXJ0aW9uRWZmZWN0OkksdXNlTGF5b3V0RWZmZWN0OnMsdXNlTWVtbzpfLHVzZVJlZHVjZXI6Yix1c2VSZWY6Uyx1c2VTdGF0ZTpjLHVzZVN5bmNFeHRlcm5hbFN0b3JlOkMsdXNlVHJhbnNpdGlvbjprfX19LGNuPVwiMTguMy4xXCI7ZnVuY3Rpb24gc24obil7cmV0dXJuIHQuYmluZChudWxsLG4pfWZ1bmN0aW9uIGhuKG4pe3JldHVybiEhbiYmbi4kJHR5cGVvZj09PXF9ZnVuY3Rpb24gdm4obil7cmV0dXJuIGhuKG4pJiZuLnR5cGU9PT11fWZ1bmN0aW9uIGRuKG4pe3JldHVybiEhbiYmXCJzdHJpbmdcIj09dHlwZW9mIG4uZGlzcGxheU5hbWUmJjA9PW4uZGlzcGxheU5hbWUuaW5kZXhPZihcIk1lbW8oXCIpfWZ1bmN0aW9uIG1uKG4pe3JldHVybiBobihuKT9hLmFwcGx5KG51bGwsYXJndW1lbnRzKTpufWZ1bmN0aW9uIHBuKG4pe3JldHVybiEhbi5fX2smJihvKG51bGwsbiksITApfWZ1bmN0aW9uIHluKG4pe3JldHVybiBuJiYobi5iYXNlfHwxPT09bi5ub2RlVHlwZSYmbil8fG51bGx9dmFyIF9uPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4odCl9LGJuPWZ1bmN0aW9uKG4sdCl7dmFyIHIsdT1lLmRlYm91bmNlUmVuZGVyaW5nO2UuZGVib3VuY2VSZW5kZXJpbmc9ZnVuY3Rpb24obil7cj1ufTt0cnl7dmFyIG89bih0KTtyZXR1cm4gciYmcigpLG99ZmluYWxseXtlLmRlYm91bmNlUmVuZGVyaW5nPXV9fSxTbj1obixnbj17dXNlU3RhdGU6Yyx1c2VJZDpwLHVzZVJlZHVjZXI6Yix1c2VFZmZlY3Q6aCx1c2VMYXlvdXRFZmZlY3Q6cyx1c2VJbnNlcnRpb25FZmZlY3Q6SSx1c2VUcmFuc2l0aW9uOmssdXNlRGVmZXJyZWRWYWx1ZTp3LHVzZVN5bmNFeHRlcm5hbFN0b3JlOkMsc3RhcnRUcmFuc2l0aW9uOngsdXNlUmVmOlMsdXNlSW1wZXJhdGl2ZUhhbmRsZTp5LHVzZU1lbW86Xyx1c2VDYWxsYmFjazp2LHVzZUNvbnRleHQ6ZCx1c2VEZWJ1Z1ZhbHVlOm0sdmVyc2lvbjpcIjE4LjMuMVwiLENoaWxkcmVuOkwscmVuZGVyOm5uLGh5ZHJhdGU6dG4sdW5tb3VudENvbXBvbmVudEF0Tm9kZTpwbixjcmVhdGVQb3J0YWw6JCxjcmVhdGVFbGVtZW50OnQsY3JlYXRlQ29udGV4dDpsLGNyZWF0ZUZhY3Rvcnk6c24sY2xvbmVFbGVtZW50Om1uLGNyZWF0ZVJlZjpmLEZyYWdtZW50OnUsaXNWYWxpZEVsZW1lbnQ6aG4saXNFbGVtZW50OlNuLGlzRnJhZ21lbnQ6dm4saXNNZW1vOmRuLGZpbmRET01Ob2RlOnluLENvbXBvbmVudDpuLFB1cmVDb21wb25lbnQ6TSxtZW1vOk4sZm9yd2FyZFJlZjpELGZsdXNoU3luYzpibix1bnN0YWJsZV9iYXRjaGVkVXBkYXRlczpfbixTdHJpY3RNb2RlOnUsU3VzcGVuc2U6UCxTdXNwZW5zZUxpc3Q6QixsYXp5OnosX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ6YW59O2V4cG9ydHtMIGFzIENoaWxkcmVuLE0gYXMgUHVyZUNvbXBvbmVudCxQIGFzIFN1c3BlbnNlLEIgYXMgU3VzcGVuc2VMaXN0LGFuIGFzIF9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVELG1uIGFzIGNsb25lRWxlbWVudCxzbiBhcyBjcmVhdGVGYWN0b3J5LCQgYXMgY3JlYXRlUG9ydGFsLGduIGFzIGRlZmF1bHQseW4gYXMgZmluZERPTU5vZGUsYm4gYXMgZmx1c2hTeW5jLEQgYXMgZm9yd2FyZFJlZix0biBhcyBoeWRyYXRlLFNuIGFzIGlzRWxlbWVudCx2biBhcyBpc0ZyYWdtZW50LGRuIGFzIGlzTWVtbyxobiBhcyBpc1ZhbGlkRWxlbWVudCx6IGFzIGxhenksTiBhcyBtZW1vLG5uIGFzIHJlbmRlcix4IGFzIHN0YXJ0VHJhbnNpdGlvbixwbiBhcyB1bm1vdW50Q29tcG9uZW50QXROb2RlLF9uIGFzIHVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzLHcgYXMgdXNlRGVmZXJyZWRWYWx1ZSxJIGFzIHVzZUluc2VydGlvbkVmZmVjdCxDIGFzIHVzZVN5bmNFeHRlcm5hbFN0b3JlLGsgYXMgdXNlVHJhbnNpdGlvbixjbiBhcyB2ZXJzaW9ufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbXBhdC5tb2R1bGUuanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///763\n\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\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) // removed by dead control flow\n{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTU2LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLEtBQXFDLEVBQUU7QUFBQSxxQ0FPMUMsQ0FBQztBQUNGO0FBQ0E7QUFDQSxtQkFBbUIsbUJBQU8sQ0FBQyxHQUE0QjtBQUN2RCIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvaW5kZXguanM/ZDdiYyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBSZWFjdElzID0gcmVxdWlyZSgncmVhY3QtaXMnKTtcblxuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBkZXZlbG9wbWVudCBiZWhhdmlvci5cbiAgLy8gaHR0cDovL2ZiLm1lL3Byb3AtdHlwZXMtaW4tcHJvZFxuICB2YXIgdGhyb3dPbkRpcmVjdEFjY2VzcyA9IHRydWU7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFR5cGVDaGVja2VycycpKFJlYWN0SXMuaXNFbGVtZW50LCB0aHJvd09uRGlyZWN0QWNjZXNzKTtcbn0gZWxzZSB7XG4gIC8vIEJ5IGV4cGxpY2l0bHkgdXNpbmcgYHByb3AtdHlwZXNgIHlvdSBhcmUgb3B0aW5nIGludG8gbmV3IHByb2R1Y3Rpb24gYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2ZhY3RvcnlXaXRoVGhyb3dpbmdTaGltcycpKCk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///556\n\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\n}")},88(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 // removed by dead control flow\n{}\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODguanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQXlEO0FBQzdEO0FBQ0EsTUFBTTtBQUFBLEVBSzBCO0FBQ2hDLENBQUM7QUFDRCxxQ0FBcUM7QUFDckM7QUFDQTs7QUFFQTtBQUNBLG1CQUFtQiw4QkFBbUI7O0FBRXRDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDBFQUEwRSw4QkFBbUI7O0FBRTdGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBLFVBQVUsOEJBQW1COztBQUU3QjtBQUNBLFVBQVUsOEJBQW1COztBQUU3QjtBQUNBLFVBQVUsOEJBQW1COztBQUU3QjtBQUNBLGlCQUFpQiw4QkFBbUI7QUFDcEMsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7O0FBRVI7QUFDQTtBQUNBO0FBQ0EsUUFBUTs7QUFFUjtBQUNBLDJDQUEyQzs7QUFFM0M7QUFDQSwrQ0FBK0M7O0FBRS9DO0FBQ0EsdURBQXVEOztBQUV2RDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLOztBQUVMO0FBQ0Esd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQSxLQUFLO0FBQ0w7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsK0JBQStCOztBQUV0RTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZ0RBQWdELFNBQVM7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZ0RBQWdELFNBQVM7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUixNQUFNOztBQUVOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUYsT0FBTztBQUNQO0FBQ0EsQ0FBQztBQUNEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvd2hhdC1pbnB1dC9kaXN0L3doYXQtaW5wdXQuanM/OGUzYiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIHdoYXQtaW5wdXQgLSBBIGdsb2JhbCB1dGlsaXR5IGZvciB0cmFja2luZyB0aGUgY3VycmVudCBpbnB1dCBtZXRob2QgKG1vdXNlLCBrZXlib2FyZCBvciB0b3VjaCkuXG4gKiBAdmVyc2lvbiB2NS4yLjEyXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vdGVuMXNldmVuL3doYXQtaW5wdXRcbiAqIEBsaWNlbnNlIE1JVFxuICovXG4oZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShcIndoYXRJbnB1dFwiLCBbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJ3aGF0SW5wdXRcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wid2hhdElucHV0XCJdID0gZmFjdG9yeSgpO1xufSkodGhpcywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gLyoqKioqKi8gKGZ1bmN0aW9uKG1vZHVsZXMpIHsgLy8gd2VicGFja0Jvb3RzdHJhcFxuLyoqKioqKi8gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbi8qKioqKiovIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbi8qKioqKiovIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4vKioqKioqLyBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4vKioqKioqLyBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4vKioqKioqLyBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcblxuLyoqKioqKi8gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4vKioqKioqLyBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuLyoqKioqKi8gXHRcdFx0ZXhwb3J0czoge30sXG4vKioqKioqLyBcdFx0XHRpZDogbW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRsb2FkZWQ6IGZhbHNlXG4vKioqKioqLyBcdFx0fTtcblxuLyoqKioqKi8gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuLyoqKioqKi8gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4vKioqKioqLyBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuLyoqKioqKi8gXHRcdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuXG4vKioqKioqLyBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbi8qKioqKiovIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4vKioqKioqLyBcdH1cblxuXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuLyoqKioqKi8gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG4vKioqKioqLyBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLyoqKioqKi8gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qKioqKiovIH0pXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gKFtcbi8qIDAgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxuXHQndXNlIHN0cmljdCc7XG5cblx0bW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XG5cdCAgLypcblx0ICAgKiBiYWlsIG91dCBpZiB0aGVyZSBpcyBubyBkb2N1bWVudCBvciB3aW5kb3dcblx0ICAgKiAoaS5lLiBpbiBhIG5vZGUvbm9uLURPTSBlbnZpcm9ubWVudClcblx0ICAgKlxuXHQgICAqIFJldHVybiBhIHN0dWJiZWQgQVBJIGluc3RlYWRcblx0ICAgKi9cblx0ICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuXHQgICAgcmV0dXJuIHtcblx0ICAgICAgLy8gYWx3YXlzIHJldHVybiBcImluaXRpYWxcIiBiZWNhdXNlIG5vIGludGVyYWN0aW9uIHdpbGwgZXZlciBiZSBkZXRlY3RlZFxuXHQgICAgICBhc2s6IGZ1bmN0aW9uIGFzaygpIHtcblx0ICAgICAgICByZXR1cm4gJ2luaXRpYWwnO1xuXHQgICAgICB9LFxuXG5cdCAgICAgIC8vIGFsd2F5cyByZXR1cm4gbnVsbFxuXHQgICAgICBlbGVtZW50OiBmdW5jdGlvbiBlbGVtZW50KCkge1xuXHQgICAgICAgIHJldHVybiBudWxsO1xuXHQgICAgICB9LFxuXG5cdCAgICAgIC8vIG5vLW9wXG5cdCAgICAgIGlnbm9yZUtleXM6IGZ1bmN0aW9uIGlnbm9yZUtleXMoKSB7fSxcblxuXHQgICAgICAvLyBuby1vcFxuXHQgICAgICBzcGVjaWZpY0tleXM6IGZ1bmN0aW9uIHNwZWNpZmljS2V5cygpIHt9LFxuXG5cdCAgICAgIC8vIG5vLW9wXG5cdCAgICAgIHJlZ2lzdGVyT25DaGFuZ2U6IGZ1bmN0aW9uIHJlZ2lzdGVyT25DaGFuZ2UoKSB7fSxcblxuXHQgICAgICAvLyBuby1vcFxuXHQgICAgICB1blJlZ2lzdGVyT25DaGFuZ2U6IGZ1bmN0aW9uIHVuUmVnaXN0ZXJPbkNoYW5nZSgpIHt9XG5cdCAgICB9O1xuXHQgIH1cblxuXHQgIC8qXG5cdCAgICogdmFyaWFibGVzXG5cdCAgICovXG5cblx0ICAvLyBjYWNoZSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcblx0ICB2YXIgZG9jRWxlbSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblxuXHQgIC8vIGN1cnJlbnRseSBmb2N1c2VkIGRvbSBlbGVtZW50XG5cdCAgdmFyIGN1cnJlbnRFbGVtZW50ID0gbnVsbDtcblxuXHQgIC8vIGxhc3QgdXNlZCBpbnB1dCB0eXBlXG5cdCAgdmFyIGN1cnJlbnRJbnB1dCA9ICdpbml0aWFsJztcblxuXHQgIC8vIGxhc3QgdXNlZCBpbnB1dCBpbnRlbnRcblx0ICB2YXIgY3VycmVudEludGVudCA9IGN1cnJlbnRJbnB1dDtcblxuXHQgIC8vIFVOSVggdGltZXN0YW1wIG9mIGN1cnJlbnQgZXZlbnRcblx0ICB2YXIgY3VycmVudFRpbWVzdGFtcCA9IERhdGUubm93KCk7XG5cblx0ICAvLyBjaGVjayBmb3IgYSBgZGF0YS13aGF0cGVyc2lzdGAgYXR0cmlidXRlIG9uIGVpdGhlciB0aGUgYGh0bWxgIG9yIGBib2R5YCBlbGVtZW50cywgZGVmYXVsdHMgdG8gYHRydWVgXG5cdCAgdmFyIHNob3VsZFBlcnNpc3QgPSBmYWxzZTtcblxuXHQgIC8vIGZvcm0gaW5wdXQgdHlwZXNcblx0ICB2YXIgZm9ybUlucHV0cyA9IFsnYnV0dG9uJywgJ2lucHV0JywgJ3NlbGVjdCcsICd0ZXh0YXJlYSddO1xuXG5cdCAgLy8gZW1wdHkgYXJyYXkgZm9yIGhvbGRpbmcgY2FsbGJhY2sgZnVuY3Rpb25zXG5cdCAgdmFyIGZ1bmN0aW9uTGlzdCA9IFtdO1xuXG5cdCAgLy8gbGlzdCBvZiBtb2RpZmllciBrZXlzIGNvbW1vbmx5IHVzZWQgd2l0aCB0aGUgbW91c2UgYW5kXG5cdCAgLy8gY2FuIGJlIHNhZmVseSBpZ25vcmVkIHRvIHByZXZlbnQgZmFsc2Uga2V5Ym9hcmQgZGV0ZWN0aW9uXG5cdCAgdmFyIGlnbm9yZU1hcCA9IFsxNiwgLy8gc2hpZnRcblx0ICAxNywgLy8gY29udHJvbFxuXHQgIDE4LCAvLyBhbHRcblx0ICA5MSwgLy8gV2luZG93cyBrZXkgLyBsZWZ0IEFwcGxlIGNtZFxuXHQgIDkzIC8vIFdpbmRvd3MgbWVudSAvIHJpZ2h0IEFwcGxlIGNtZFxuXHQgIF07XG5cblx0ICB2YXIgc3BlY2lmaWNNYXAgPSBbXTtcblxuXHQgIC8vIG1hcHBpbmcgb2YgZXZlbnRzIHRvIGlucHV0IHR5cGVzXG5cdCAgdmFyIGlucHV0TWFwID0ge1xuXHQgICAga2V5ZG93bjogJ2tleWJvYXJkJyxcblx0ICAgIGtleXVwOiAna2V5Ym9hcmQnLFxuXHQgICAgbW91c2Vkb3duOiAnbW91c2UnLFxuXHQgICAgbW91c2Vtb3ZlOiAnbW91c2UnLFxuXHQgICAgTVNQb2ludGVyRG93bjogJ3BvaW50ZXInLFxuXHQgICAgTVNQb2ludGVyTW92ZTogJ3BvaW50ZXInLFxuXHQgICAgcG9pbnRlcmRvd246ICdwb2ludGVyJyxcblx0ICAgIHBvaW50ZXJtb3ZlOiAncG9pbnRlcicsXG5cdCAgICB0b3VjaHN0YXJ0OiAndG91Y2gnLFxuXHQgICAgdG91Y2hlbmQ6ICd0b3VjaCdcblxuXHQgICAgLy8gYm9vbGVhbjogdHJ1ZSBpZiB0aGUgcGFnZSBpcyBiZWluZyBzY3JvbGxlZFxuXHQgIH07dmFyIGlzU2Nyb2xsaW5nID0gZmFsc2U7XG5cblx0ICAvLyBzdG9yZSBjdXJyZW50IG1vdXNlIHBvc2l0aW9uXG5cdCAgdmFyIG1vdXNlUG9zID0ge1xuXHQgICAgeDogbnVsbCxcblx0ICAgIHk6IG51bGxcblxuXHQgICAgLy8gbWFwIG9mIElFIDEwIHBvaW50ZXIgZXZlbnRzXG5cdCAgfTt2YXIgcG9pbnRlck1hcCA9IHtcblx0ICAgIDI6ICd0b3VjaCcsXG5cdCAgICAzOiAndG91Y2gnLCAvLyB0cmVhdCBwZW4gbGlrZSB0b3VjaFxuXHQgICAgNDogJ21vdXNlJ1xuXG5cdCAgICAvLyBjaGVjayBzdXBwb3J0IGZvciBwYXNzaXZlIGV2ZW50IGxpc3RlbmVyc1xuXHQgIH07dmFyIHN1cHBvcnRzUGFzc2l2ZSA9IGZhbHNlO1xuXG5cdCAgdHJ5IHtcblx0ICAgIHZhciBvcHRzID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAncGFzc2l2ZScsIHtcblx0ICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG5cdCAgICAgICAgc3VwcG9ydHNQYXNzaXZlID0gdHJ1ZTtcblx0ICAgICAgfVxuXHQgICAgfSk7XG5cblx0ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0ZXN0JywgbnVsbCwgb3B0cyk7XG5cdCAgfSBjYXRjaCAoZSkge31cblx0ICAvLyBmYWlsIHNpbGVudGx5XG5cblxuXHQgIC8qXG5cdCAgICogc2V0IHVwXG5cdCAgICovXG5cblx0ICB2YXIgc2V0VXAgPSBmdW5jdGlvbiBzZXRVcCgpIHtcblx0ICAgIC8vIGFkZCBjb3JyZWN0IG1vdXNlIHdoZWVsIGV2ZW50IG1hcHBpbmcgdG8gYGlucHV0TWFwYFxuXHQgICAgaW5wdXRNYXBbZGV0ZWN0V2hlZWwoKV0gPSAnbW91c2UnO1xuXG5cdCAgICBhZGRMaXN0ZW5lcnMoKTtcblx0ICB9O1xuXG5cdCAgLypcblx0ICAgKiBldmVudHNcblx0ICAgKi9cblxuXHQgIHZhciBhZGRMaXN0ZW5lcnMgPSBmdW5jdGlvbiBhZGRMaXN0ZW5lcnMoKSB7XG5cdCAgICAvLyBgcG9pbnRlcm1vdmVgLCBgTVNQb2ludGVyTW92ZWAsIGBtb3VzZW1vdmVgIGFuZCBtb3VzZSB3aGVlbCBldmVudCBiaW5kaW5nXG5cdCAgICAvLyBjYW4gb25seSBkZW1vbnN0cmF0ZSBwb3RlbnRpYWwsIGJ1dCBub3QgYWN0dWFsLCBpbnRlcmFjdGlvblxuXHQgICAgLy8gYW5kIGFyZSB0cmVhdGVkIHNlcGFyYXRlbHlcblx0ICAgIHZhciBvcHRpb25zID0gc3VwcG9ydHNQYXNzaXZlID8geyBwYXNzaXZlOiB0cnVlLCBjYXB0dXJlOiB0cnVlIH0gOiB0cnVlO1xuXG5cdCAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgc2V0UGVyc2lzdCwgdHJ1ZSk7XG5cblx0ICAgIC8vIHBvaW50ZXIgZXZlbnRzIChtb3VzZSwgcGVuLCB0b3VjaClcblx0ICAgIGlmICh3aW5kb3cuUG9pbnRlckV2ZW50KSB7XG5cdCAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIHNldElucHV0LCB0cnVlKTtcblx0ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgc2V0SW50ZW50LCB0cnVlKTtcblx0ICAgIH0gZWxzZSBpZiAod2luZG93Lk1TUG9pbnRlckV2ZW50KSB7XG5cdCAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdNU1BvaW50ZXJEb3duJywgc2V0SW5wdXQsIHRydWUpO1xuXHQgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignTVNQb2ludGVyTW92ZScsIHNldEludGVudCwgdHJ1ZSk7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICAvLyBtb3VzZSBldmVudHNcblx0ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHNldElucHV0LCB0cnVlKTtcblx0ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHNldEludGVudCwgdHJ1ZSk7XG5cblx0ICAgICAgLy8gdG91Y2ggZXZlbnRzXG5cdCAgICAgIGlmICgnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cpIHtcblx0ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHNldElucHV0LCBvcHRpb25zKTtcblx0ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBzZXRJbnB1dCwgdHJ1ZSk7XG5cdCAgICAgIH1cblx0ICAgIH1cblxuXHQgICAgLy8gbW91c2Ugd2hlZWxcblx0ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKGRldGVjdFdoZWVsKCksIHNldEludGVudCwgb3B0aW9ucyk7XG5cblx0ICAgIC8vIGtleWJvYXJkIGV2ZW50c1xuXHQgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBzZXRJbnB1dCwgdHJ1ZSk7XG5cdCAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBzZXRJbnB1dCwgdHJ1ZSk7XG5cblx0ICAgIC8vIGZvY3VzIGV2ZW50c1xuXHQgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBzZXRFbGVtZW50LCB0cnVlKTtcblx0ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIGNsZWFyRWxlbWVudCwgdHJ1ZSk7XG5cdCAgfTtcblxuXHQgIC8vIGNoZWNrcyBpZiBpbnB1dCBwZXJzaXN0ZW5jZSBzaG91bGQgaGFwcGVuIGFuZFxuXHQgIC8vIGdldCBzYXZlZCBzdGF0ZSBmcm9tIHNlc3Npb24gc3RvcmFnZSBpZiB0cnVlIChkZWZhdWx0cyB0byBgZmFsc2VgKVxuXHQgIHZhciBzZXRQZXJzaXN0ID0gZnVuY3Rpb24gc2V0UGVyc2lzdCgpIHtcblx0ICAgIHNob3VsZFBlcnNpc3QgPSAhKGRvY0VsZW0uZ2V0QXR0cmlidXRlKCdkYXRhLXdoYXRwZXJzaXN0JykgPT09ICdmYWxzZScgfHwgZG9jdW1lbnQuYm9keS5nZXRBdHRyaWJ1dGUoJ2RhdGEtd2hhdHBlcnNpc3QnKSA9PT0gJ2ZhbHNlJyk7XG5cblx0ICAgIGlmIChzaG91bGRQZXJzaXN0KSB7XG5cdCAgICAgIC8vIGNoZWNrIGZvciBzZXNzaW9uIHZhcmlhYmxlcyBhbmQgdXNlIGlmIGF2YWlsYWJsZVxuXHQgICAgICB0cnkge1xuXHQgICAgICAgIGlmICh3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnd2hhdC1pbnB1dCcpKSB7XG5cdCAgICAgICAgICBjdXJyZW50SW5wdXQgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnd2hhdC1pbnB1dCcpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnd2hhdC1pbnRlbnQnKSkge1xuXHQgICAgICAgICAgY3VycmVudEludGVudCA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd3aGF0LWludGVudCcpO1xuXHQgICAgICAgIH1cblx0ICAgICAgfSBjYXRjaCAoZSkge1xuXHQgICAgICAgIC8vIGZhaWwgc2lsZW50bHlcblx0ICAgICAgfVxuXHQgICAgfVxuXG5cdCAgICAvLyBhbHdheXMgcnVuIHRoZXNlIHNvIGF0IGxlYXN0IGBpbml0aWFsYCBzdGF0ZSBpcyBzZXRcblx0ICAgIGRvVXBkYXRlKCdpbnB1dCcpO1xuXHQgICAgZG9VcGRhdGUoJ2ludGVudCcpO1xuXHQgIH07XG5cblx0ICAvLyBjaGVja3MgY29uZGl0aW9ucyBiZWZvcmUgdXBkYXRpbmcgbmV3IGlucHV0XG5cdCAgdmFyIHNldElucHV0ID0gZnVuY3Rpb24gc2V0SW5wdXQoZXZlbnQpIHtcblx0ICAgIHZhciBldmVudEtleSA9IGV2ZW50LndoaWNoO1xuXHQgICAgdmFyIHZhbHVlID0gaW5wdXRNYXBbZXZlbnQudHlwZV07XG5cblx0ICAgIGlmICh2YWx1ZSA9PT0gJ3BvaW50ZXInKSB7XG5cdCAgICAgIHZhbHVlID0gcG9pbnRlclR5cGUoZXZlbnQpO1xuXHQgICAgfVxuXG5cdCAgICB2YXIgaWdub3JlTWF0Y2ggPSAhc3BlY2lmaWNNYXAubGVuZ3RoICYmIGlnbm9yZU1hcC5pbmRleE9mKGV2ZW50S2V5KSA9PT0gLTE7XG5cblx0ICAgIHZhciBzcGVjaWZpY01hdGNoID0gc3BlY2lmaWNNYXAubGVuZ3RoICYmIHNwZWNpZmljTWFwLmluZGV4T2YoZXZlbnRLZXkpICE9PSAtMTtcblxuXHQgICAgdmFyIHNob3VsZFVwZGF0ZSA9IHZhbHVlID09PSAna2V5Ym9hcmQnICYmIGV2ZW50S2V5ICYmIChpZ25vcmVNYXRjaCB8fCBzcGVjaWZpY01hdGNoKSB8fCB2YWx1ZSA9PT0gJ21vdXNlJyB8fCB2YWx1ZSA9PT0gJ3RvdWNoJztcblxuXHQgICAgLy8gcHJldmVudCB0b3VjaCBkZXRlY3Rpb24gZnJvbSBiZWluZyBvdmVycmlkZGVuIGJ5IGV2ZW50IGV4ZWN1dGlvbiBvcmRlclxuXHQgICAgaWYgKHZhbGlkYXRlVG91Y2godmFsdWUpKSB7XG5cdCAgICAgIHNob3VsZFVwZGF0ZSA9IGZhbHNlO1xuXHQgICAgfVxuXG5cdCAgICBpZiAoc2hvdWxkVXBkYXRlICYmIGN1cnJlbnRJbnB1dCAhPT0gdmFsdWUpIHtcblx0ICAgICAgY3VycmVudElucHV0ID0gdmFsdWU7XG5cblx0ICAgICAgcGVyc2lzdElucHV0KCdpbnB1dCcsIGN1cnJlbnRJbnB1dCk7XG5cdCAgICAgIGRvVXBkYXRlKCdpbnB1dCcpO1xuXHQgICAgfVxuXG5cdCAgICBpZiAoc2hvdWxkVXBkYXRlICYmIGN1cnJlbnRJbnRlbnQgIT09IHZhbHVlKSB7XG5cdCAgICAgIC8vIHByZXNlcnZlIGludGVudCBmb3Iga2V5Ym9hcmQgaW50ZXJhY3Rpb24gd2l0aCBmb3JtIGZpZWxkc1xuXHQgICAgICB2YXIgYWN0aXZlRWxlbSA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cdCAgICAgIHZhciBub3RGb3JtSW5wdXQgPSBhY3RpdmVFbGVtICYmIGFjdGl2ZUVsZW0ubm9kZU5hbWUgJiYgKGZvcm1JbnB1dHMuaW5kZXhPZihhY3RpdmVFbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpID09PSAtMSB8fCBhY3RpdmVFbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdidXR0b24nICYmICFjaGVja0Nsb3Nlc3QoYWN0aXZlRWxlbSwgJ2Zvcm0nKSk7XG5cblx0ICAgICAgaWYgKG5vdEZvcm1JbnB1dCkge1xuXHQgICAgICAgIGN1cnJlbnRJbnRlbnQgPSB2YWx1ZTtcblxuXHQgICAgICAgIHBlcnNpc3RJbnB1dCgnaW50ZW50JywgY3VycmVudEludGVudCk7XG5cdCAgICAgICAgZG9VcGRhdGUoJ2ludGVudCcpO1xuXHQgICAgICB9XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIC8vIHVwZGF0ZXMgdGhlIGRvYyBhbmQgYGlucHV0VHlwZXNgIGFycmF5IHdpdGggbmV3IGlucHV0XG5cdCAgdmFyIGRvVXBkYXRlID0gZnVuY3Rpb24gZG9VcGRhdGUod2hpY2gpIHtcblx0ICAgIGRvY0VsZW0uc2V0QXR0cmlidXRlKCdkYXRhLXdoYXQnICsgd2hpY2gsIHdoaWNoID09PSAnaW5wdXQnID8gY3VycmVudElucHV0IDogY3VycmVudEludGVudCk7XG5cblx0ICAgIGZpcmVGdW5jdGlvbnMod2hpY2gpO1xuXHQgIH07XG5cblx0ICAvLyB1cGRhdGVzIGlucHV0IGludGVudCBmb3IgYG1vdXNlbW92ZWAgYW5kIGBwb2ludGVybW92ZWBcblx0ICB2YXIgc2V0SW50ZW50ID0gZnVuY3Rpb24gc2V0SW50ZW50KGV2ZW50KSB7XG5cdCAgICB2YXIgdmFsdWUgPSBpbnB1dE1hcFtldmVudC50eXBlXTtcblxuXHQgICAgaWYgKHZhbHVlID09PSAncG9pbnRlcicpIHtcblx0ICAgICAgdmFsdWUgPSBwb2ludGVyVHlwZShldmVudCk7XG5cdCAgICB9XG5cblx0ICAgIC8vIHRlc3QgdG8gc2VlIGlmIGBtb3VzZW1vdmVgIGhhcHBlbmVkIHJlbGF0aXZlIHRvIHRoZSBzY3JlZW4gdG8gZGV0ZWN0IHNjcm9sbGluZyB2ZXJzdXMgbW91c2Vtb3ZlXG5cdCAgICBkZXRlY3RTY3JvbGxpbmcoZXZlbnQpO1xuXG5cdCAgICAvLyBvbmx5IGV4ZWN1dGUgaWYgc2Nyb2xsaW5nIGlzbid0IGhhcHBlbmluZ1xuXHQgICAgaWYgKCghaXNTY3JvbGxpbmcgJiYgIXZhbGlkYXRlVG91Y2godmFsdWUpIHx8IGlzU2Nyb2xsaW5nICYmIGV2ZW50LnR5cGUgPT09ICd3aGVlbCcgfHwgZXZlbnQudHlwZSA9PT0gJ21vdXNld2hlZWwnIHx8IGV2ZW50LnR5cGUgPT09ICdET01Nb3VzZVNjcm9sbCcpICYmIGN1cnJlbnRJbnRlbnQgIT09IHZhbHVlKSB7XG5cdCAgICAgIGN1cnJlbnRJbnRlbnQgPSB2YWx1ZTtcblxuXHQgICAgICBwZXJzaXN0SW5wdXQoJ2ludGVudCcsIGN1cnJlbnRJbnRlbnQpO1xuXHQgICAgICBkb1VwZGF0ZSgnaW50ZW50Jyk7XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIHZhciBzZXRFbGVtZW50ID0gZnVuY3Rpb24gc2V0RWxlbWVudChldmVudCkge1xuXHQgICAgaWYgKCFldmVudC50YXJnZXQubm9kZU5hbWUpIHtcblx0ICAgICAgLy8gSWYgbm9kZU5hbWUgaXMgdW5kZWZpbmVkLCBjbGVhciB0aGUgZWxlbWVudFxuXHQgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgY2xpY2sgaW5zaWRlIGFuIDxzdmc+IGVsZW1lbnQuXG5cdCAgICAgIGNsZWFyRWxlbWVudCgpO1xuXHQgICAgICByZXR1cm47XG5cdCAgICB9XG5cblx0ICAgIGN1cnJlbnRFbGVtZW50ID0gZXZlbnQudGFyZ2V0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cdCAgICBkb2NFbGVtLnNldEF0dHJpYnV0ZSgnZGF0YS13aGF0ZWxlbWVudCcsIGN1cnJlbnRFbGVtZW50KTtcblxuXHQgICAgaWYgKGV2ZW50LnRhcmdldC5jbGFzc0xpc3QgJiYgZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5sZW5ndGgpIHtcblx0ICAgICAgZG9jRWxlbS5zZXRBdHRyaWJ1dGUoJ2RhdGEtd2hhdGNsYXNzZXMnLCBldmVudC50YXJnZXQuY2xhc3NMaXN0LnRvU3RyaW5nKCkucmVwbGFjZSgnICcsICcsJykpO1xuXHQgICAgfVxuXHQgIH07XG5cblx0ICB2YXIgY2xlYXJFbGVtZW50ID0gZnVuY3Rpb24gY2xlYXJFbGVtZW50KCkge1xuXHQgICAgY3VycmVudEVsZW1lbnQgPSBudWxsO1xuXG5cdCAgICBkb2NFbGVtLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS13aGF0ZWxlbWVudCcpO1xuXHQgICAgZG9jRWxlbS5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtd2hhdGNsYXNzZXMnKTtcblx0ICB9O1xuXG5cdCAgdmFyIHBlcnNpc3RJbnB1dCA9IGZ1bmN0aW9uIHBlcnNpc3RJbnB1dCh3aGljaCwgdmFsdWUpIHtcblx0ICAgIGlmIChzaG91bGRQZXJzaXN0KSB7XG5cdCAgICAgIHRyeSB7XG5cdCAgICAgICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3doYXQtJyArIHdoaWNoLCB2YWx1ZSk7XG5cdCAgICAgIH0gY2F0Y2ggKGUpIHtcblx0ICAgICAgICAvLyBmYWlsIHNpbGVudGx5XG5cdCAgICAgIH1cblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgLypcblx0ICAgKiB1dGlsaXRpZXNcblx0ICAgKi9cblxuXHQgIHZhciBwb2ludGVyVHlwZSA9IGZ1bmN0aW9uIHBvaW50ZXJUeXBlKGV2ZW50KSB7XG5cdCAgICBpZiAodHlwZW9mIGV2ZW50LnBvaW50ZXJUeXBlID09PSAnbnVtYmVyJykge1xuXHQgICAgICByZXR1cm4gcG9pbnRlck1hcFtldmVudC5wb2ludGVyVHlwZV07XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICAvLyB0cmVhdCBwZW4gbGlrZSB0b3VjaFxuXHQgICAgICByZXR1cm4gZXZlbnQucG9pbnRlclR5cGUgPT09ICdwZW4nID8gJ3RvdWNoJyA6IGV2ZW50LnBvaW50ZXJUeXBlO1xuXHQgICAgfVxuXHQgIH07XG5cblx0ICAvLyBwcmV2ZW50IHRvdWNoIGRldGVjdGlvbiBmcm9tIGJlaW5nIG92ZXJyaWRkZW4gYnkgZXZlbnQgZXhlY3V0aW9uIG9yZGVyXG5cdCAgdmFyIHZhbGlkYXRlVG91Y2ggPSBmdW5jdGlvbiB2YWxpZGF0ZVRvdWNoKHZhbHVlKSB7XG5cdCAgICB2YXIgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcblxuXHQgICAgdmFyIHRvdWNoSXNWYWxpZCA9IHZhbHVlID09PSAnbW91c2UnICYmIGN1cnJlbnRJbnB1dCA9PT0gJ3RvdWNoJyAmJiB0aW1lc3RhbXAgLSBjdXJyZW50VGltZXN0YW1wIDwgMjAwO1xuXG5cdCAgICBjdXJyZW50VGltZXN0YW1wID0gdGltZXN0YW1wO1xuXG5cdCAgICByZXR1cm4gdG91Y2hJc1ZhbGlkO1xuXHQgIH07XG5cblx0ICAvLyBkZXRlY3QgdmVyc2lvbiBvZiBtb3VzZSB3aGVlbCBldmVudCB0byB1c2Vcblx0ICAvLyB2aWEgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0VsZW1lbnQvd2hlZWxfZXZlbnRcblx0ICB2YXIgZGV0ZWN0V2hlZWwgPSBmdW5jdGlvbiBkZXRlY3RXaGVlbCgpIHtcblx0ICAgIHZhciB3aGVlbFR5cGUgPSBudWxsO1xuXG5cdCAgICAvLyBNb2Rlcm4gYnJvd3NlcnMgc3VwcG9ydCBcIndoZWVsXCJcblx0ICAgIGlmICgnb253aGVlbCcgaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpIHtcblx0ICAgICAgd2hlZWxUeXBlID0gJ3doZWVsJztcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIC8vIFdlYmtpdCBhbmQgSUUgc3VwcG9ydCBhdCBsZWFzdCBcIm1vdXNld2hlZWxcIlxuXHQgICAgICAvLyBvciBhc3N1bWUgdGhhdCByZW1haW5pbmcgYnJvd3NlcnMgYXJlIG9sZGVyIEZpcmVmb3hcblx0ICAgICAgd2hlZWxUeXBlID0gZG9jdW1lbnQub25tb3VzZXdoZWVsICE9PSB1bmRlZmluZWQgPyAnbW91c2V3aGVlbCcgOiAnRE9NTW91c2VTY3JvbGwnO1xuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gd2hlZWxUeXBlO1xuXHQgIH07XG5cblx0ICAvLyBydW5zIGNhbGxiYWNrIGZ1bmN0aW9uc1xuXHQgIHZhciBmaXJlRnVuY3Rpb25zID0gZnVuY3Rpb24gZmlyZUZ1bmN0aW9ucyh0eXBlKSB7XG5cdCAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gZnVuY3Rpb25MaXN0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG5cdCAgICAgIGlmIChmdW5jdGlvbkxpc3RbaV0udHlwZSA9PT0gdHlwZSkge1xuXHQgICAgICAgIGZ1bmN0aW9uTGlzdFtpXS5mbi5jYWxsKHVuZGVmaW5lZCwgdHlwZSA9PT0gJ2lucHV0JyA/IGN1cnJlbnRJbnB1dCA6IGN1cnJlbnRJbnRlbnQpO1xuXHQgICAgICB9XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIC8vIGZpbmRzIG1hdGNoaW5nIGVsZW1lbnQgaW4gYW4gb2JqZWN0XG5cdCAgdmFyIG9ialBvcyA9IGZ1bmN0aW9uIG9ialBvcyhtYXRjaCkge1xuXHQgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGZ1bmN0aW9uTGlzdC5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuXHQgICAgICBpZiAoZnVuY3Rpb25MaXN0W2ldLmZuID09PSBtYXRjaCkge1xuXHQgICAgICAgIHJldHVybiBpO1xuXHQgICAgICB9XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIHZhciBkZXRlY3RTY3JvbGxpbmcgPSBmdW5jdGlvbiBkZXRlY3RTY3JvbGxpbmcoZXZlbnQpIHtcblx0ICAgIGlmIChtb3VzZVBvcy54ICE9PSBldmVudC5zY3JlZW5YIHx8IG1vdXNlUG9zLnkgIT09IGV2ZW50LnNjcmVlblkpIHtcblx0ICAgICAgaXNTY3JvbGxpbmcgPSBmYWxzZTtcblxuXHQgICAgICBtb3VzZVBvcy54ID0gZXZlbnQuc2NyZWVuWDtcblx0ICAgICAgbW91c2VQb3MueSA9IGV2ZW50LnNjcmVlblk7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICBpc1Njcm9sbGluZyA9IHRydWU7XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIC8vIG1hbnVhbCB2ZXJzaW9uIG9mIGBjbG9zZXN0KClgXG5cdCAgdmFyIGNoZWNrQ2xvc2VzdCA9IGZ1bmN0aW9uIGNoZWNrQ2xvc2VzdChlbGVtLCB0YWcpIHtcblx0ICAgIHZhciBFbGVtZW50UHJvdG90eXBlID0gd2luZG93LkVsZW1lbnQucHJvdG90eXBlO1xuXG5cdCAgICBpZiAoIUVsZW1lbnRQcm90b3R5cGUubWF0Y2hlcykge1xuXHQgICAgICBFbGVtZW50UHJvdG90eXBlLm1hdGNoZXMgPSBFbGVtZW50UHJvdG90eXBlLm1zTWF0Y2hlc1NlbGVjdG9yIHx8IEVsZW1lbnRQcm90b3R5cGUud2Via2l0TWF0Y2hlc1NlbGVjdG9yO1xuXHQgICAgfVxuXG5cdCAgICBpZiAoIUVsZW1lbnRQcm90b3R5cGUuY2xvc2VzdCkge1xuXHQgICAgICBkbyB7XG5cdCAgICAgICAgaWYgKGVsZW0ubWF0Y2hlcyh0YWcpKSB7XG5cdCAgICAgICAgICByZXR1cm4gZWxlbTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBlbGVtID0gZWxlbS5wYXJlbnRFbGVtZW50IHx8IGVsZW0ucGFyZW50Tm9kZTtcblx0ICAgICAgfSB3aGlsZSAoZWxlbSAhPT0gbnVsbCAmJiBlbGVtLm5vZGVUeXBlID09PSAxKTtcblxuXHQgICAgICByZXR1cm4gbnVsbDtcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIHJldHVybiBlbGVtLmNsb3Nlc3QodGFnKTtcblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgLypcblx0ICAgKiBpbml0XG5cdCAgICovXG5cblx0ICAvLyBkb24ndCBzdGFydCBzY3JpcHQgdW5sZXNzIGJyb3dzZXIgY3V0cyB0aGUgbXVzdGFyZFxuXHQgIC8vIChhbHNvIHBhc3NlcyBpZiBwb2x5ZmlsbHMgYXJlIHVzZWQpXG5cdCAgaWYgKCdhZGRFdmVudExpc3RlbmVyJyBpbiB3aW5kb3cgJiYgQXJyYXkucHJvdG90eXBlLmluZGV4T2YpIHtcblx0ICAgIHNldFVwKCk7XG5cdCAgfVxuXG5cdCAgLypcblx0ICAgKiBhcGlcblx0ICAgKi9cblxuXHQgIHJldHVybiB7XG5cdCAgICAvLyByZXR1cm5zIHN0cmluZzogdGhlIGN1cnJlbnQgaW5wdXQgdHlwZVxuXHQgICAgLy8gb3B0OiAnaW50ZW50J3wnaW5wdXQnXG5cdCAgICAvLyAnaW5wdXQnIChkZWZhdWx0KTogcmV0dXJucyB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgYGRhdGEtd2hhdGlucHV0YCBhdHRyaWJ1dGVcblx0ICAgIC8vICdpbnRlbnQnOiBpbmNsdWRlcyBgZGF0YS13aGF0aW50ZW50YCB2YWx1ZSBpZiBpdCdzIGRpZmZlcmVudCB0aGFuIGBkYXRhLXdoYXRpbnB1dGBcblx0ICAgIGFzazogZnVuY3Rpb24gYXNrKG9wdCkge1xuXHQgICAgICByZXR1cm4gb3B0ID09PSAnaW50ZW50JyA/IGN1cnJlbnRJbnRlbnQgOiBjdXJyZW50SW5wdXQ7XG5cdCAgICB9LFxuXG5cdCAgICAvLyByZXR1cm5zIHN0cmluZzogdGhlIGN1cnJlbnRseSBmb2N1c2VkIGVsZW1lbnQgb3IgbnVsbFxuXHQgICAgZWxlbWVudDogZnVuY3Rpb24gZWxlbWVudCgpIHtcblx0ICAgICAgcmV0dXJuIGN1cnJlbnRFbGVtZW50O1xuXHQgICAgfSxcblxuXHQgICAgLy8gb3ZlcndyaXRlcyBpZ25vcmVkIGtleXMgd2l0aCBwcm92aWRlZCBhcnJheVxuXHQgICAgaWdub3JlS2V5czogZnVuY3Rpb24gaWdub3JlS2V5cyhhcnIpIHtcblx0ICAgICAgaWdub3JlTWFwID0gYXJyO1xuXHQgICAgfSxcblxuXHQgICAgLy8gb3ZlcndyaXRlcyBzcGVjaWZpYyBjaGFyIGtleXMgdG8gdXBkYXRlIG9uXG5cdCAgICBzcGVjaWZpY0tleXM6IGZ1bmN0aW9uIHNwZWNpZmljS2V5cyhhcnIpIHtcblx0ICAgICAgc3BlY2lmaWNNYXAgPSBhcnI7XG5cdCAgICB9LFxuXG5cdCAgICAvLyBhdHRhY2ggZnVuY3Rpb25zIHRvIGlucHV0IGFuZCBpbnRlbnQgXCJldmVudHNcIlxuXHQgICAgLy8gZnVuY3Q6IGZ1bmN0aW9uIHRvIGZpcmUgb24gY2hhbmdlXG5cdCAgICAvLyBldmVudFR5cGU6ICdpbnB1dCd8J2ludGVudCdcblx0ICAgIHJlZ2lzdGVyT25DaGFuZ2U6IGZ1bmN0aW9uIHJlZ2lzdGVyT25DaGFuZ2UoZm4sIGV2ZW50VHlwZSkge1xuXHQgICAgICBmdW5jdGlvbkxpc3QucHVzaCh7XG5cdCAgICAgICAgZm46IGZuLFxuXHQgICAgICAgIHR5cGU6IGV2ZW50VHlwZSB8fCAnaW5wdXQnXG5cdCAgICAgIH0pO1xuXHQgICAgfSxcblxuXHQgICAgdW5SZWdpc3Rlck9uQ2hhbmdlOiBmdW5jdGlvbiB1blJlZ2lzdGVyT25DaGFuZ2UoZm4pIHtcblx0ICAgICAgdmFyIHBvc2l0aW9uID0gb2JqUG9zKGZuKTtcblxuXHQgICAgICBpZiAocG9zaXRpb24gfHwgcG9zaXRpb24gPT09IDApIHtcblx0ICAgICAgICBmdW5jdGlvbkxpc3Quc3BsaWNlKHBvc2l0aW9uLCAxKTtcblx0ICAgICAgfVxuXHQgICAgfSxcblxuXHQgICAgY2xlYXJTdG9yYWdlOiBmdW5jdGlvbiBjbGVhclN0b3JhZ2UoKSB7XG5cdCAgICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xuXHQgICAgfVxuXHQgIH07XG5cdH0oKTtcblxuLyoqKi8gfSlcbi8qKioqKiovIF0pXG59KTtcbjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///88\n\n}")}};const __webpack_module_cache__={};function __webpack_require__(e){const n=__webpack_module_cache__[e];if(void 0!==n)return n.exports;const 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=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};let __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;// ./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;// ./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) // removed by dead control flow\n{}\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) // removed by dead control flow\n{} ////////////////////////////////////////////////////////////////////////////////\n\n/* harmony default export */ const reach_portal_esm = (Portal);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzQxLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQThDOztBQUU5QztBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0IsMEJBQVE7QUFDMUI7O0FBRUEsU0FBUyw2QkFBVztBQUNwQjtBQUNBLEdBQUc7QUFDSDs7QUFFMEI7OztBQ2YrQjtBQUM2QjtBQUN2QjtBQUN0QjtBQUNOOztBQUVuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0Isd0JBQU07QUFDeEIsbUJBQW1CLHdCQUFNO0FBQ3pCLG9CQUFvQixjQUFjOztBQUVsQyxNQUFNLEtBQXFDLEVBQUU7QUFBQSxFQVExQzs7QUFFSCxFQUFFLGtGQUF5QjtBQUMzQjtBQUNBLG9DQUFvQztBQUNwQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCwyQ0FBMkMsOEJBQVksOENBQThDLCtCQUFhO0FBQ2xIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQSxJQUFJLEtBQXFDLEVBQUU7QUFBQSxFQUUxQyxDQUFDOztBQUVGLHVEQUFlLE1BQU0sRUFBQztBQUNKIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL3VzZS1mb3JjZS11cGRhdGUvZGlzdC9yZWFjaC11dGlscy11c2UtZm9yY2UtdXBkYXRlLmVzbS5qcz82OTFiIiwid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL0ByZWFjaC9wb3J0YWwvZGlzdC9yZWFjaC1wb3J0YWwuZXNtLmpzP2RkYzgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuXG4vKipcbiAqIEZvcmNlcyBhIHJlLXJlbmRlciwgc2ltaWxhciB0byBgZm9yY2VVcGRhdGVgIGluIGNsYXNzIGNvbXBvbmVudHMuXG4gKi9cblxuZnVuY3Rpb24gdXNlRm9yY2VVcGRhdGUoKSB7XG4gIHZhciBfdXNlU3RhdGUgPSB1c2VTdGF0ZShPYmplY3QuY3JlYXRlKG51bGwpKSxcbiAgICAgIGRpc3BhdGNoID0gX3VzZVN0YXRlWzFdO1xuXG4gIHJldHVybiB1c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgZGlzcGF0Y2goT2JqZWN0LmNyZWF0ZShudWxsKSk7XG4gIH0sIFtdKTtcbn1cblxuZXhwb3J0IHsgdXNlRm9yY2VVcGRhdGUgfTtcbiIsImltcG9ydCB7IHVzZVJlZiwgdXNlRWZmZWN0LCBjcmVhdGVFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCB9IGZyb20gJ0ByZWFjaC91dGlscy91c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0JztcbmltcG9ydCB7IHVzZUZvcmNlVXBkYXRlIH0gZnJvbSAnQHJlYWNoL3V0aWxzL3VzZS1mb3JjZS11cGRhdGUnO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB3YXJuaW5nIGZyb20gJ3Rpbnktd2FybmluZyc7XG5cbi8qKlxuICogV2VsY29tZSB0byBAcmVhY2gvcG9ydGFsIVxuICpcbiAqIENyZWF0ZXMgYW5kIGFwcGVuZHMgYSBET00gbm9kZSB0byB0aGUgZW5kIG9mIGBkb2N1bWVudC5ib2R5YCBhbmQgcmVuZGVycyBhXG4gKiBSZWFjdCB0cmVlIGludG8gaXQuIFVzZWZ1bCBmb3IgcmVuZGVyaW5nIGEgbmF0dXJhbCBSZWFjdCBlbGVtZW50IGhpZXJhcmNoeVxuICogd2l0aCBhIGRpZmZlcmVudCBET00gaGllcmFyY2h5IHRvIHByZXZlbnQgcGFyZW50IHN0eWxlcyBmcm9tIGNsaXBwaW5nIG9yXG4gKiBoaWRpbmcgY29udGVudCAoZm9yIHBvcG92ZXJzLCBkcm9wZG93bnMsIGFuZCBtb2RhbHMpLlxuICpcbiAqIEBzZWUgRG9jcyAgIGh0dHBzOi8vcmVhY2gudGVjaC9wb3J0YWxcbiAqIEBzZWUgU291cmNlIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjaC9yZWFjaC11aS90cmVlL21haW4vcGFja2FnZXMvcG9ydGFsXG4gKiBAc2VlIFJlYWN0ICBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcG9ydGFscy5odG1sXG4gKi9cbi8qKlxuICogUG9ydGFsXG4gKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC9wb3J0YWwjcG9ydGFsXG4gKi9cblxudmFyIFBvcnRhbCA9IGZ1bmN0aW9uIFBvcnRhbChfcmVmKSB7XG4gIHZhciBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW4sXG4gICAgICBfcmVmJHR5cGUgPSBfcmVmLnR5cGUsXG4gICAgICB0eXBlID0gX3JlZiR0eXBlID09PSB2b2lkIDAgPyBcInJlYWNoLXBvcnRhbFwiIDogX3JlZiR0eXBlLFxuICAgICAgY29udGFpbmVyUmVmID0gX3JlZi5jb250YWluZXJSZWY7XG4gIHZhciBtb3VudE5vZGUgPSB1c2VSZWYobnVsbCk7XG4gIHZhciBwb3J0YWxOb2RlID0gdXNlUmVmKG51bGwpO1xuICB2YXIgZm9yY2VVcGRhdGUgPSB1c2VGb3JjZVVwZGF0ZSgpO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKGNvbnRhaW5lclJlZiAhPSBudWxsKSB7XG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHdhcm5pbmcodHlwZW9mIGNvbnRhaW5lclJlZiA9PT0gXCJvYmplY3RcIiAmJiBcImN1cnJlbnRcIiBpbiBjb250YWluZXJSZWYsIFwiQHJlYWNoL3BvcnRhbDogSW52YWxpZCB2YWx1ZSBwYXNzZWQgdG8gdGhlIGBjb250YWluZXJSZWZgIG9mIGEgXCIgKyBcImBQb3J0YWxgLiBUaGUgcG9ydGFsIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIGRvY3VtZW50IGJvZHksIGJ1dCBpZiBcIiArIFwieW91IHdhbnQgdG8gYXR0YWNoIGl0IHRvIGFub3RoZXIgRE9NIG5vZGUgeW91IG11c3QgcGFzcyBhIHZhbGlkIFwiICsgXCJSZWFjdCByZWYgb2JqZWN0IHRvIGBjb250YWluZXJSZWZgLlwiKSA6IHZvaWQgMDtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyhjb250YWluZXJSZWYgPyBjb250YWluZXJSZWYuY3VycmVudCAhPSBudWxsIDogdHJ1ZSwgXCJAcmVhY2gvcG9ydGFsOiBBIHJlZiB3YXMgcGFzc2VkIHRvIHRoZSBgY29udGFpbmVyUmVmYCBwcm9wIG9mIGEgXCIgKyBcImBQb3J0YWxgLCBidXQgbm8gRE9NIG5vZGUgd2FzIGF0dGFjaGVkIHRvIGl0LiBCZSBzdXJlIHRvIHBhc3MgdGhlIFwiICsgXCJyZWYgdG8gYSBET00gY29tcG9uZW50LlxcblxcbklmIHlvdSBhcmUgZm9yd2FyZGluZyB0aGUgcmVmIGZyb20gXCIgKyBcImFub3RoZXIgY29tcG9uZW50LCBiZSBzdXJlIHRvIHVzZSB0aGUgUmVhY3QuZm9yd2FyZFJlZiBBUEkuIFwiICsgXCJTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2ZvcndhcmRpbmctcmVmcy5odG1sLlwiKSA6IHZvaWQgMDtcbiAgICAgIH1cbiAgICB9LCBbY29udGFpbmVyUmVmXSk7XG4gIH1cblxuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAvLyBUaGlzIHJlZiBtYXkgYmUgbnVsbCB3aGVuIGEgaG90LWxvYWRlciByZXBsYWNlcyBjb21wb25lbnRzIG9uIHRoZSBwYWdlXG4gICAgaWYgKCFtb3VudE5vZGUuY3VycmVudCkgcmV0dXJuOyAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGNvbnRlbnQgb2YgdGhlIHBvcnRhbCBoYXMsIGl0c2VsZiwgYmVlbiBwb3J0YWxlZC5cbiAgICAvLyBJbiB0aGF0IGNhc2UsIGl0J3MgaW1wb3J0YW50IHRvIGFwcGVuZCB0byB0aGUgY29ycmVjdCBkb2N1bWVudCBlbGVtZW50LlxuXG4gICAgdmFyIG93bmVyRG9jdW1lbnQgPSBtb3VudE5vZGUuY3VycmVudC5vd25lckRvY3VtZW50O1xuICAgIHZhciBib2R5ID0gKGNvbnRhaW5lclJlZiA9PSBudWxsID8gdm9pZCAwIDogY29udGFpbmVyUmVmLmN1cnJlbnQpIHx8IG93bmVyRG9jdW1lbnQuYm9keTtcbiAgICBwb3J0YWxOb2RlLmN1cnJlbnQgPSBvd25lckRvY3VtZW50ID09IG51bGwgPyB2b2lkIDAgOiBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodHlwZSk7XG4gICAgYm9keS5hcHBlbmRDaGlsZChwb3J0YWxOb2RlLmN1cnJlbnQpO1xuICAgIGZvcmNlVXBkYXRlKCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChwb3J0YWxOb2RlLmN1cnJlbnQgJiYgYm9keSkge1xuICAgICAgICBib2R5LnJlbW92ZUNoaWxkKHBvcnRhbE5vZGUuY3VycmVudCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW3R5cGUsIGZvcmNlVXBkYXRlLCBjb250YWluZXJSZWZdKTtcbiAgcmV0dXJuIHBvcnRhbE5vZGUuY3VycmVudCA/IC8qI19fUFVSRV9fKi9jcmVhdGVQb3J0YWwoY2hpbGRyZW4sIHBvcnRhbE5vZGUuY3VycmVudCkgOiAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgIHJlZjogbW91bnROb2RlXG4gIH0pO1xufTtcbi8qKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC9wb3J0YWwjcG9ydGFsLXByb3BzXG4gKi9cblxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIFBvcnRhbC5kaXNwbGF5TmFtZSA9IFwiUG9ydGFsXCI7XG59IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBkZWZhdWx0IFBvcnRhbDtcbmV4cG9ydCB7IFBvcnRhbCB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///741\n\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;// ./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;// ./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;// ./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;// ./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;// ./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 = (/* unused pure expression or super */ null && ({}));\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) // removed by dead control flow\n{ 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) // removed by dead control flow\n{ 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) // removed by dead control flow\n{ 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) // removed by dead control flow\n{ var nameCache, controlledRef; }\n}\n\n\n\n;// ./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;// ./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;// ./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;// ./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) // removed by dead control flow\n{} ////////////////////////////////////////////////////////////////////////////////\n\n/* harmony default export */ const reach_visually_hidden_esm = ((/* unused pure expression or super */ null && (VisuallyHidden)));\n\n\n;// ./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;// ./node_modules/@reach/rect/dist/reach-rect.esm.js\n/* unused harmony import specifier */ var useRef;\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) // removed by dead control flow\n{} ////////////////////////////////////////////////////////////////////////////////\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) // removed by dead control flow\n{}\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) // removed by dead control flow\n{}\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;// ./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) // removed by dead control flow\n{} ////////////////////////////////////////////////////////////////////////////////\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) // removed by dead control flow\n{}\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) // removed by dead control flow\n{} ////////////////////////////////////////////////////////////////////////////////\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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Q0E7O0FBRUEsOEJBQThCLHFCQUFxQjtBQUNuRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRSwyQkFBUztBQUNYO0FBQ0E7QUFDQTs7QUFFQSx3QkFBd0IsZ0JBQWdCOztBQUV4QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHNFQUFzRTtBQUN0RSxtQkFBbUIsZ0RBQWdEO0FBQ25FOztBQUVBO0FBQ0EsV0FBVyx5QkFBUSxHQUFHO0FBQ3RCO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG9CQUFvQiw4Q0FBNkIscUJBQXFCOzs7QUFHdEUsZ0JBQWdCLHlCQUFRLEdBQUc7O0FBRTNCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRix3REFBZSxPQUFPLEVBQUM7QUFDMEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvYXV0by1pZC9kaXN0L3JlYWNoLWF1dG8taWQuZXNtLmpzPzI4N2EiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL293bmVyLWRvY3VtZW50L2Rpc3QvcmVhY2gtdXRpbHMtb3duZXItZG9jdW1lbnQuZXNtLmpzP2E3NmMiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL2dldC1kb2N1bWVudC1kaW1lbnNpb25zL2Rpc3QvcmVhY2gtdXRpbHMtZ2V0LWRvY3VtZW50LWRpbWVuc2lvbnMuZXNtLmpzPzc5ZDgiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL21ha2UtaWQvZGlzdC9yZWFjaC11dGlscy1tYWtlLWlkLmVzbS5qcz9kODg2Iiwid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL0ByZWFjaC91dGlscy9kZXYtdXRpbHMvZGlzdC9yZWFjaC11dGlscy1kZXYtdXRpbHMuZXNtLmpzPzY1YjUiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL3R5cGUtY2hlY2svZGlzdC9yZWFjaC11dGlscy10eXBlLWNoZWNrLmVzbS5qcz9iOGVhIiwid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL0ByZWFjaC91dGlscy9jb21wb3NlLXJlZnMvZGlzdC9yZWFjaC11dGlscy1jb21wb3NlLXJlZnMuZXNtLmpzP2E2MzAiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3V0aWxzL2NvbXBvc2UtZXZlbnQtaGFuZGxlcnMvZGlzdC9yZWFjaC11dGlscy1jb21wb3NlLWV2ZW50LWhhbmRsZXJzLmVzbS5qcz9mMTljIiwid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL0ByZWFjaC92aXN1YWxseS1oaWRkZW4vZGlzdC9yZWFjaC12aXN1YWxseS1oaWRkZW4uZXNtLmpzP2U5NzQiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL29ic2VydmUtcmVjdC9kaXN0L29ic2VydmUtcmVjdC5lc20uanM/NDRiYSIsIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9AcmVhY2gvcmVjdC9kaXN0L3JlYWNoLXJlY3QuZXNtLmpzP2NiZjciLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvQHJlYWNoL3Rvb2x0aXAvZGlzdC9yZWFjaC10b29sdGlwLmVzbS5qcz9lMjY4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH0gZnJvbSAnQHJlYWNoL3V0aWxzL3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QnO1xuXG4vKlxuICogV2VsY29tZSB0byBAcmVhY2gvYXV0by1pZCFcblxuICogTGV0J3Mgc2VlIGlmIHdlIGNhbiBtYWtlIHNlbnNlIG9mIHdoeSB0aGlzIGhvb2sgZXhpc3RzIGFuZCBpdHNcbiAqIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIFNvbWUgYmFja2dyb3VuZDpcbiAqICAgMS4gQWNjZXNzaWJpbGl0eSBBUElzIHJlbHkgaGVhdmlseSBvbiBlbGVtZW50IElEc1xuICogICAyLiBSZXF1aXJpbmcgZGV2ZWxvcGVycyB0byBwdXQgSURzIG9uIGV2ZXJ5IGVsZW1lbnQgaW4gUmVhY2ggVUkgaXMgYm90aFxuICogICAgICBjdW1iZXJzb21lIGFuZCBlcnJvci1wcm9uZVxuICogICAzLiBXaXRoIGEgY29tcG9uZW50IG1vZGVsLCB3ZSBjYW4gZ2VuZXJhdGUgSURzIGZvciB0aGVtIVxuICpcbiAqIFNvbHV0aW9uIDE6IEdlbmVyYXRlIHJhbmRvbSBJRHMuXG4gKlxuICogVGhpcyB3b3JrcyBncmVhdCBhcyBsb25nIGFzIHlvdSBkb24ndCBzZXJ2ZXIgcmVuZGVyIHlvdXIgYXBwLiBXaGVuIFJlYWN0IChpblxuICogdGhlIGNsaWVudCkgdHJpZXMgdG8gcmV1c2UgdGhlIG1hcmt1cCBmcm9tIHRoZSBzZXJ2ZXIsIHRoZSBJRHMgd29uJ3QgbWF0Y2hcbiAqIGFuZCBSZWFjdCB3aWxsIHRoZW4gcmVjcmVhdGUgdGhlIGVudGlyZSBET00gdHJlZS5cbiAqXG4gKiBTb2x1dGlvbiAyOiBJbmNyZW1lbnQgYW4gaW50ZWdlclxuICpcbiAqIFRoaXMgc291bmRzIGdyZWF0LiBTaW5jZSB3ZSdyZSByZW5kZXJpbmcgdGhlIGV4YWN0IHNhbWUgdHJlZSBvbiB0aGUgc2VydmVyXG4gKiBhbmQgY2xpZW50LCB3ZSBjYW4gaW5jcmVtZW50IGEgY291bnRlciBhbmQgZ2V0IGEgZGV0ZXJtaW5pc3RpYyByZXN1bHQgYmV0d2VlblxuICogY2xpZW50IGFuZCBzZXJ2ZXIuIEFsc28sIEpTIGludGVnZXJzIGNhbiBnbyB1cCB0byBuaW5lLXF1YWRyaWxsaW9uLiBJJ21cbiAqIHByZXR0eSBzdXJlIHRoZSB0YWIgd2lsbCBiZSBjbG9zZWQgYmVmb3JlIGFuIGFwcCBuZXZlciBuZWVkc1xuICogMTAgcXVhZHJpbGxpb24gSURzIVxuICpcbiAqIFByb2JsZW0gc29sdmVkLCByaWdodD9cbiAqXG4gKiBBaCwgYnV0IHRoZXJlJ3MgYSBjYXRjaCEgUmVhY3QncyBjb25jdXJyZW50IHJlbmRlcmluZyBtYWtlcyB0aGlzIGFwcHJvYWNoXG4gKiBub24tZGV0ZXJtaW5pc3RpYy4gV2hpbGUgdGhlIGNsaWVudCBhbmQgc2VydmVyIHdpbGwgZW5kIHVwIHdpdGggdGhlIHNhbWVcbiAqIGVsZW1lbnRzIGluIHRoZSBlbmQsIGRlcGVuZGluZyBvbiBzdXNwZW5zZSBib3VuZGFyaWVzIChhbmQgcG9zc2libHkgc29tZSB1c2VyXG4gKiBpbnB1dCBkdXJpbmcgdGhlIGluaXRpYWwgcmVuZGVyKSB0aGUgaW5jcmVtZW50aW5nIGludGVnZXJzIHdvbid0IGFsd2F5cyBtYXRjaFxuICogdXAuXG4gKlxuICogU29sdXRpb24gMzogRG9uJ3QgdXNlIElEcyBhdCBhbGwgb24gdGhlIHNlcnZlcjsgcGF0Y2ggYWZ0ZXIgZmlyc3QgcmVuZGVyLlxuICpcbiAqIFdoYXQgd2UndmUgZG9uZSBoZXJlIGlzIHNvbHV0aW9uIDIgd2l0aCBzb21lIHRyaWNrcy4gV2l0aCB0aGlzIGFwcHJvYWNoLCB0aGVcbiAqIElEIHJldHVybmVkIGlzIGFuIGVtcHR5IHN0cmluZyBvbiB0aGUgZmlyc3QgcmVuZGVyLiBUaGlzIHdheSB0aGUgc2VydmVyIGFuZFxuICogY2xpZW50IGhhdmUgdGhlIHNhbWUgbWFya3VwIG5vIG1hdHRlciBob3cgd2lsZCB0aGUgY29uY3VycmVudCByZW5kZXJpbmcgbWF5XG4gKiBoYXZlIGdvdHRlbi5cbiAqXG4gKiBBZnRlciB0aGUgcmVuZGVyLCB3ZSBwYXRjaCB1cCB0aGUgY29tcG9uZW50cyB3aXRoIGFuIGluY3JlbWVudGVkIElELiBUaGlzXG4gKiBjYXVzZXMgYSBkb3VibGUgcmVuZGVyIG9uIGFueSBjb21wb25lbnRzIHdpdGggYHVzZUlkYC4gU2hvdWxkbid0IGJlIGEgcHJvYmxlbVxuICogc2luY2UgdGhlIGNvbXBvbmVudHMgdXNpbmcgdGhpcyBob29rIHNob3VsZCBiZSBzbWFsbCwgYW5kIHdlJ3JlIG9ubHkgdXBkYXRpbmdcbiAqIHRoZSBJRCBhdHRyaWJ1dGUgb24gdGhlIERPTSwgbm90aGluZyBiaWcgaXMgaGFwcGVuaW5nLlxuICpcbiAqIEl0IGRvZXNuJ3QgaGF2ZSB0byBiZSBhbiBpbmNyZW1lbnRlZCBudW1iZXIsIHRob3VnaC0td2UgY291bGQgZG8gZ2VuZXJhdGVcbiAqIHJhbmRvbSBzdHJpbmdzIGluc3RlYWQsIGJ1dCBpbmNyZW1lbnRpbmcgYSBudW1iZXIgaXMgcHJvYmFibHkgdGhlIGNoZWFwZXN0XG4gKiB0aGluZyB3ZSBjYW4gZG8uXG4gKlxuICogQWRkaXRpb25hbGx5LCB3ZSBvbmx5IGRvIHRoaXMgcGF0Y2h1cCBvbiB0aGUgdmVyeSBmaXJzdCBjbGllbnQgcmVuZGVyIGV2ZXIuXG4gKiBBbnkgY2FsbHMgdG8gYHVzZUlkYCB0aGF0IGhhcHBlbiBkeW5hbWljYWxseSBpbiB0aGUgY2xpZW50IHdpbGwgYmVcbiAqIHBvcHVsYXRlZCBpbW1lZGlhdGVseSB3aXRoIGEgdmFsdWUuIFNvLCB3ZSBvbmx5IGdldCB0aGUgZG91YmxlIHJlbmRlciBhZnRlclxuICogc2VydmVyIGh5ZHJhdGlvbiBhbmQgbmV2ZXIgYWdhaW4sIFNPIEJBQ0sgT0ZGIEFMUklHSFQ/XG4gKi9cbnZhciBzZXJ2ZXJIYW5kb2ZmQ29tcGxldGUgPSBmYWxzZTtcbnZhciBpZCA9IDA7XG5cbnZhciBnZW5JZCA9IGZ1bmN0aW9uIGdlbklkKCkge1xuICByZXR1cm4gKytpZDtcbn07XG4vKipcbiAqIHVzZUlkXG4gKlxuICogQXV0b2dlbmVyYXRlIElEcyB0byBmYWNpbGl0YXRlIFdBSS1BUklBIGFuZCBzZXJ2ZXIgcmVuZGVyaW5nLlxuICpcbiAqIE5vdGU6IFRoZSByZXR1cm5lZCBJRCB3aWxsIGluaXRpYWxseSBiZSBgbnVsbGAgYW5kIHdpbGwgdXBkYXRlIGFmdGVyIGFcbiAqIGNvbXBvbmVudCBtb3VudHMuIFVzZXJzIG1heSBuZWVkIHRvIHN1cHBseSB0aGVpciBvd24gSUQgaWYgdGhleSBuZWVkXG4gKiBjb25zaXN0ZW50IHZhbHVlcyBmb3IgU1NSLlxuICpcbiAqIEBzZWUgRG9jcyBodHRwczovL3JlYWNoLnRlY2gvYXV0by1pZFxuICovXG5cblxuZnVuY3Rpb24gdXNlSWQoaWRGcm9tUHJvcHMpIHtcbiAgLypcbiAgICogSWYgdGhpcyBpbnN0YW5jZSBpc24ndCBwYXJ0IG9mIHRoZSBpbml0aWFsIHJlbmRlciwgd2UgZG9uJ3QgaGF2ZSB0byBkbyB0aGVcbiAgICogZG91YmxlIHJlbmRlci9wYXRjaC11cCBkYW5jZS4gV2UgY2FuIGp1c3QgZ2VuZXJhdGUgdGhlIElEIGFuZCByZXR1cm4gaXQuXG4gICAqL1xuICB2YXIgaW5pdGlhbElkID0gaWRGcm9tUHJvcHMgfHwgKHNlcnZlckhhbmRvZmZDb21wbGV0ZSA/IGdlbklkKCkgOiBudWxsKTtcblxuICB2YXIgX1JlYWN0JHVzZVN0YXRlID0gdXNlU3RhdGUoaW5pdGlhbElkKSxcbiAgICAgIGlkID0gX1JlYWN0JHVzZVN0YXRlWzBdLFxuICAgICAgc2V0SWQgPSBfUmVhY3QkdXNlU3RhdGVbMV07XG5cbiAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGlkID09PSBudWxsKSB7XG4gICAgICAvKlxuICAgICAgICogUGF0Y2ggdGhlIElEIGFmdGVyIHJlbmRlci4gV2UgZG8gdGhpcyBpbiBgdXNlTGF5b3V0RWZmZWN0YCB0byBhdm9pZCBhbnlcbiAgICAgICAqIHJlbmRlcmluZyBmbGlja2VyLCB0aG91Z2ggaXQnbGwgbWFrZSB0aGUgZmlyc3QgcmVuZGVyIHNsb3dlciAodW5saWtlbHlcbiAgICAgICAqIHRvIG1hdHRlciwgYnV0IHlvdSdyZSB3ZWxjb21lIHRvIG1lYXN1cmUgeW91ciBhcHAgYW5kIGxldCB1cyBrbm93IGlmXG4gICAgICAgKiBpdCdzIGEgcHJvYmxlbSkuXG4gICAgICAgKi9cbiAgICAgIHNldElkKGdlbklkKCkpO1xuICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuXG4gIH0sIFtdKTtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoc2VydmVySGFuZG9mZkNvbXBsZXRlID09PSBmYWxzZSkge1xuICAgICAgLypcbiAgICAgICAqIEZsYWcgYWxsIGZ1dHVyZSB1c2VzIG9mIGB1c2VJZGAgdG8gc2tpcCB0aGUgdXBkYXRlIGRhbmNlLiBUaGlzIGlzIGluXG4gICAgICAgKiBgdXNlRWZmZWN0YCBiZWNhdXNlIGl0IGdvZXMgYWZ0ZXIgYHVzZUxheW91dEVmZmVjdGAsIGVuc3VyaW5nIHdlIGRvbid0XG4gICAgICAgKiBhY2NpZGVudGFsbHkgYmFpbCBvdXQgb2YgdGhlIHBhdGNoLXVwIGRhbmNlIHByZW1hdHVyZWx5LlxuICAgICAgICovXG4gICAgICBzZXJ2ZXJIYW5kb2ZmQ29tcGxldGUgPSB0cnVlO1xuICAgIH1cbiAgfSwgW10pO1xuICByZXR1cm4gaWQgIT0gbnVsbCA/IFN0cmluZyhpZCkgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCB7IHVzZUlkIH07XG4iLCJpbXBvcnQgeyBjYW5Vc2VET00gfSBmcm9tICcuLi8uLi9jYW4tdXNlLWRvbS9kaXN0L3JlYWNoLXV0aWxzLWNhbi11c2UtZG9tLmVzbS5qcyc7XG5cbi8qKlxuICogR2V0IGFuIGVsZW1lbnQncyBvd25lciBkb2N1bWVudC4gVXNlZnVsIHdoZW4gY29tcG9uZW50cyBhcmUgdXNlZCBpbiBpZnJhbWVzXG4gKiBvciBvdGhlciBlbnZpcm9ubWVudHMgbGlrZSBkZXYgdG9vbHMuXG4gKlxuICogQHBhcmFtIGVsZW1lbnRcbiAqL1xuXG5mdW5jdGlvbiBnZXRPd25lckRvY3VtZW50KGVsZW1lbnQpIHtcbiAgcmV0dXJuIGNhblVzZURPTSgpID8gZWxlbWVudCA/IGVsZW1lbnQub3duZXJEb2N1bWVudCA6IGRvY3VtZW50IDogbnVsbDtcbn1cbi8qKlxuICogVE9ETzogUmVtb3ZlIGluIDEuMFxuICovXG5cbmZ1bmN0aW9uIGdldE93bmVyV2luZG93KGVsZW1lbnQpIHtcbiAgdmFyIG93bmVyRG9jdW1lbnQgPSBnZXRPd25lckRvY3VtZW50KGVsZW1lbnQpO1xuICByZXR1cm4gb3duZXJEb2N1bWVudCA/IG93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgfHwgd2luZG93IDogbnVsbDtcbn1cblxuZXhwb3J0IHsgZ2V0T3duZXJEb2N1bWVudCwgZ2V0T3duZXJXaW5kb3cgfTtcbiIsImltcG9ydCB7IGdldE93bmVyRG9jdW1lbnQgfSBmcm9tICcuLi8uLi9vd25lci1kb2N1bWVudC9kaXN0L3JlYWNoLXV0aWxzLW93bmVyLWRvY3VtZW50LmVzbS5qcyc7XG5pbXBvcnQgJy4uLy4uL2Nhbi11c2UtZG9tL2Rpc3QvcmVhY2gtdXRpbHMtY2FuLXVzZS1kb20uZXNtLmpzJztcblxuLyoqXG4gKiBHZXQgdGhlIHNpemUgb2YgdGhlIHdvcmtpbmcgZG9jdW1lbnQgbWludXMgdGhlIHNjcm9sbGJhciBvZmZzZXQuXG4gKlxuICogQHBhcmFtIGVsZW1lbnRcbiAqL1xuXG5mdW5jdGlvbiBnZXREb2N1bWVudERpbWVuc2lvbnMoZWxlbWVudCkge1xuICB2YXIgX293bmVyRG9jdW1lbnQkZG9jdW1lLCBfb3duZXJEb2N1bWVudCRkb2N1bWUyO1xuXG4gIHZhciBvd25lckRvY3VtZW50ID0gZ2V0T3duZXJEb2N1bWVudChlbGVtZW50KTtcbiAgdmFyIG93bmVyV2luZG93ID0gb3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyB8fCB3aW5kb3c7XG5cbiAgaWYgKCFvd25lckRvY3VtZW50KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpZHRoOiAwLFxuICAgICAgaGVpZ2h0OiAwXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgd2lkdGg6IChfb3duZXJEb2N1bWVudCRkb2N1bWUgPSBvd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkgIT0gbnVsbCA/IF9vd25lckRvY3VtZW50JGRvY3VtZSA6IG93bmVyV2luZG93LmlubmVyV2lkdGgsXG4gICAgaGVpZ2h0OiAoX293bmVyRG9jdW1lbnQkZG9jdW1lMiA9IG93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkgIT0gbnVsbCA/IF9vd25lckRvY3VtZW50JGRvY3VtZTIgOiBvd25lcldpbmRvdy5pbm5lckhlaWdodFxuICB9O1xufVxuXG5leHBvcnQgeyBnZXREb2N1bWVudERpbWVuc2lvbnMgfTtcbiIsIi8qKlxuICogSm9pbnMgc3RyaW5ncyB0byBmb3JtYXQgSURzIGZvciBjb21wb3VuZCBjb21wb25lbnRzLlxuICpcbiAqIEBwYXJhbSBhcmdzXG4gKi9cbmZ1bmN0aW9uIG1ha2VJZCgpIHtcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgfVxuXG4gIHJldHVybiBhcmdzLmZpbHRlcihmdW5jdGlvbiAodmFsKSB7XG4gICAgcmV0dXJuIHZhbCAhPSBudWxsO1xuICB9KS5qb2luKFwiLS1cIik7XG59XG5cbmV4cG9ydCB7IG1ha2VJZCB9O1xuIiwiaW1wb3J0IHsgdXNlUmVmLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzICovXG52YXIgY2hlY2tlZFBrZ3MgPSB7fTtcbi8qKlxuICogSnVzdCBhIGxpbCBzdGF0ZSBsb2dnZXJcbiAqXG4gKiBAcGFyYW0gc3RhdGVcbiAqIEBwYXJhbSBERUJVR1xuICovXG5cbmZ1bmN0aW9uIHVzZVN0YXRlTG9nZ2VyKHN0YXRlLCBERUJVRykge1xuICBpZiAoREVCVUcgPT09IHZvaWQgMCkge1xuICAgIERFQlVHID0gZmFsc2U7XG4gIH1cblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgdmFyIGRlYnVnUmVmID0gdXNlUmVmKERFQlVHKTtcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgZGVidWdSZWYuY3VycmVudCA9IERFQlVHO1xuICAgIH0sIFtERUJVR10pO1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoZGVidWdSZWYuY3VycmVudCkge1xuICAgICAgICBjb25zb2xlLmdyb3VwKFwiU3RhdGUgVXBkYXRlZFwiKTtcbiAgICAgICAgY29uc29sZS5sb2coXCIlY1wiICsgc3RhdGUsIFwiZm9udC13ZWlnaHQ6IG5vcm1hbDsgZm9udC1zaXplOiAxMjAlOyBmb250LXN0eWxlOiBpdGFsaWM7XCIpO1xuICAgICAgICBjb25zb2xlLmdyb3VwRW5kKCk7XG4gICAgICB9XG4gICAgfSwgW3N0YXRlXSk7XG4gIH1cbn1cbi8qKlxuICogV2hlbiBpbiBkZXYgbW9kZSwgY2hlY2tzIHRoYXQgc3R5bGVzIGZvciBhIGdpdmVuIGBAcmVhY2hgIHBhY2thZ2UgYXJlIGxvYWRlZC5cbiAqXG4gKiBAcGFyYW0gcGFja2FnZU5hbWUgTmFtZSBvZiB0aGUgcGFja2FnZSB0byBjaGVjay5cbiAqIEBleGFtcGxlIGNoZWNrU3R5bGVzKFwiZGlhbG9nXCIpIHdpbGwgY2hlY2sgZm9yIHN0eWxlcyBmb3IgQHJlYWNoL2RpYWxvZ1xuICovXG5cbmZ1bmN0aW9uIGNoZWNrU3R5bGVzKHBhY2thZ2VOYW1lKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAvLyBJbiBDSlMgZmlsZXMsIHByb2Nlc3MuZW52Lk5PREVfRU5WIGlzIHN0cmlwcGVkIGZyb20gb3VyIGJ1aWxkLCBidXQgd2VcbiAgICAvLyBuZWVkIGl0IHRvIHByZXZlbnQgc3R5bGUgY2hlY2tzIGZyb20gY2xvZ2dpbmcgdXAgdXNlciBsb2dzIHdoaWxlIHRlc3RpbmcuXG4gICAgLy8gVGhpcyBpcyBhIHdvcmthcm91bmQgdW50aWwgd2UgY2FuIHR3ZWFrIHRoZSBidWlsZCBhIGJpdCB0byBhY2NvbW1vZGF0ZS5cbiAgICB2YXIgX3JlZiA9IHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiID8gcHJvY2Vzcy5lbnYgOiB7XG4gICAgICBOT0RFX0VOVjogXCJkZXZlbG9wbWVudFwiXG4gICAgfSxcbiAgICAgICAgZW52aXJvbm1lbnQgPSBfcmVmLk5PREVfRU5WOyAvLyBvbmx5IGNoZWNrIG9uY2UgcGVyIHBhY2thZ2VcblxuXG4gICAgaWYgKGNoZWNrZWRQa2dzW3BhY2thZ2VOYW1lXSkgcmV0dXJuO1xuICAgIGNoZWNrZWRQa2dzW3BhY2thZ2VOYW1lXSA9IHRydWU7XG5cbiAgICBpZiAoZW52aXJvbm1lbnQgPT09IFwiZGV2ZWxvcG1lbnRcIiAmJiBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eVZhbHVlKFwiLS1yZWFjaC1cIiArIHBhY2thZ2VOYW1lKSwgMTApICE9PSAxKSB7XG4gICAgICBjb25zb2xlLndhcm4oXCJAcmVhY2gvXCIgKyBwYWNrYWdlTmFtZSArIFwiIHN0eWxlcyBub3QgZm91bmQuIElmIHlvdSBhcmUgdXNpbmcgYSBidW5kbGVyIGxpa2Ugd2VicGFjayBvciBwYXJjZWwgaW5jbHVkZSB0aGlzIGluIHRoZSBlbnRyeSBmaWxlIG9mIHlvdXIgYXBwIGJlZm9yZSBhbnkgb2YgeW91ciBvd24gc3R5bGVzOlxcbiAgXFxuICAgICAgaW1wb3J0IFxcXCJAcmVhY2gvXCIgKyBwYWNrYWdlTmFtZSArIFwiL3N0eWxlcy5jc3NcXFwiO1xcbiAgXFxuICAgIE90aGVyd2lzZSB5b3UnbGwgbmVlZCB0byBpbmNsdWRlIHRoZW0gc29tZSBvdGhlciB3YXk6XFxuICBcXG4gICAgICA8bGluayByZWw9XFxcInN0eWxlc2hlZXRcXFwiIHR5cGU9XFxcInRleHQvY3NzXFxcIiBocmVmPVxcXCJub2RlX21vZHVsZXMvQHJlYWNoL1wiICsgcGFja2FnZU5hbWUgKyBcIi9zdHlsZXMuY3NzXFxcIiAvPlxcbiAgXFxuICAgIEZvciBtb3JlIGluZm9ybWF0aW9uIHZpc2l0IGh0dHBzOi8vdWkucmVhY2gudGVjaC9zdHlsaW5nLlxcbiAgICBcIik7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIFdoZW4gaW4gZGV2IG1vZGUsIGNoZWNrcyB0aGF0IHN0eWxlcyBmb3IgYSBnaXZlbiBgQHJlYWNoYCBwYWNrYWdlIGFyZSBsb2FkZWQuXG4gKlxuICogQHBhcmFtIHBhY2thZ2VOYW1lIE5hbWUgb2YgdGhlIHBhY2thZ2UgdG8gY2hlY2suXG4gKiBAZXhhbXBsZSB1c2VDaGVja1N0eWxlcyhcImRpYWxvZ1wiKSB3aWxsIGNoZWNrIGZvciBzdHlsZXMgZm9yIEByZWFjaC9kaWFsb2dcbiAqL1xuXG5mdW5jdGlvbiB1c2VDaGVja1N0eWxlcyhwYWNrYWdlTmFtZSkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgdmFyIG5hbWUgPSB1c2VSZWYocGFja2FnZU5hbWUpO1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gdm9pZCAobmFtZS5jdXJyZW50ID0gcGFja2FnZU5hbWUpO1xuICAgIH0sIFtwYWNrYWdlTmFtZV0pO1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gY2hlY2tTdHlsZXMobmFtZS5jdXJyZW50KTtcbiAgICB9LCBbXSk7XG4gIH1cbn1cbi8qKlxuICogTG9ncyBhIHdhcm5pbmcgaW4gZGV2IG1vZGUgd2hlbiBhIGNvbXBvbmVudCBzd2l0Y2hlcyBmcm9tIGNvbnRyb2xsZWQgdG9cbiAqIHVuY29udHJvbGxlZCwgb3IgdmljZSB2ZXJzYVxuICpcbiAqIEEgc2luZ2xlIHByb3Agc2hvdWxkIHR5cGljYWxseSBiZSB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCBhXG4gKiBjb21wb25lbnQgaXMgY29udHJvbGxlZCBvciBub3QuXG4gKlxuICogQHBhcmFtIGNvbnRyb2xsZWRWYWx1ZVxuICogQHBhcmFtIGNvbnRyb2xsZWRQcm9wTmFtZVxuICogQHBhcmFtIGNvbXBvbmVudE5hbWVcbiAqL1xuXG5mdW5jdGlvbiB1c2VDb250cm9sbGVkU3dpdGNoV2FybmluZyhjb250cm9sbGVkVmFsdWUsIGNvbnRyb2xsZWRQcm9wTmFtZSwgY29tcG9uZW50TmFtZSkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgdmFyIGNvbnRyb2xsZWRSZWYgPSB1c2VSZWYoY29udHJvbGxlZFZhbHVlICE9IG51bGwpO1xuICAgIHZhciBuYW1lQ2FjaGUgPSB1c2VSZWYoe1xuICAgICAgY29tcG9uZW50TmFtZTogY29tcG9uZW50TmFtZSxcbiAgICAgIGNvbnRyb2xsZWRQcm9wTmFtZTogY29udHJvbGxlZFByb3BOYW1lXG4gICAgfSk7XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIG5hbWVDYWNoZS5jdXJyZW50ID0ge1xuICAgICAgICBjb21wb25lbnROYW1lOiBjb21wb25lbnROYW1lLFxuICAgICAgICBjb250cm9sbGVkUHJvcE5hbWU6IGNvbnRyb2xsZWRQcm9wTmFtZVxuICAgICAgfTtcbiAgICB9LCBbY29tcG9uZW50TmFtZSwgY29udHJvbGxlZFByb3BOYW1lXSk7XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciB3YXNDb250cm9sbGVkID0gY29udHJvbGxlZFJlZi5jdXJyZW50O1xuICAgICAgdmFyIF9uYW1lQ2FjaGUkY3VycmVudCA9IG5hbWVDYWNoZS5jdXJyZW50LFxuICAgICAgICAgIGNvbXBvbmVudE5hbWUgPSBfbmFtZUNhY2hlJGN1cnJlbnQuY29tcG9uZW50TmFtZSxcbiAgICAgICAgICBjb250cm9sbGVkUHJvcE5hbWUgPSBfbmFtZUNhY2hlJGN1cnJlbnQuY29udHJvbGxlZFByb3BOYW1lO1xuICAgICAgdmFyIGlzQ29udHJvbGxlZCA9IGNvbnRyb2xsZWRWYWx1ZSAhPSBudWxsO1xuXG4gICAgICBpZiAod2FzQ29udHJvbGxlZCAhPT0gaXNDb250cm9sbGVkKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJBIGNvbXBvbmVudCBpcyBjaGFuZ2luZyBhbiBcIiArICh3YXNDb250cm9sbGVkID8gXCJcIiA6IFwidW5cIikgKyBcImNvbnRyb2xsZWQgYFwiICsgY29udHJvbGxlZFByb3BOYW1lICsgXCJgIHN0YXRlIG9mIFwiICsgY29tcG9uZW50TmFtZSArIFwiIHRvIGJlIFwiICsgKHdhc0NvbnRyb2xsZWQgPyBcInVuXCIgOiBcIlwiKSArIFwiY29udHJvbGxlZC4gVGhpcyBpcyBsaWtlbHkgY2F1c2VkIGJ5IHRoZSB2YWx1ZSBjaGFuZ2luZyBmcm9tIHVuZGVmaW5lZCB0byBhIGRlZmluZWQgdmFsdWUsIHdoaWNoIHNob3VsZCBub3QgaGFwcGVuLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIFwiICsgY29tcG9uZW50TmFtZSArIFwiIGVsZW1lbnQgZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgY29tcG9uZW50LlxcbiAgICAgIE1vcmUgaW5mbzogaHR0cHM6Ly9mYi5tZS9yZWFjdC1jb250cm9sbGVkLWNvbXBvbmVudHNcIik7XG4gICAgICB9XG4gICAgfSwgW2NvbnRyb2xsZWRWYWx1ZV0pO1xuICB9XG59XG5cbmV4cG9ydCB7IGNoZWNrU3R5bGVzLCB1c2VDaGVja1N0eWxlcywgdXNlQ29udHJvbGxlZFN3aXRjaFdhcm5pbmcsIHVzZVN0YXRlTG9nZ2VyIH07XG4iLCIvKipcbiAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCBhIHZhbHVlIGlzIGEgYm9vbGVhbi5cbiAqXG4gKiBAcGFyYW0gdmFsdWVcbiAqL1xuZnVuY3Rpb24gaXNCb29sZWFuKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiO1xufVxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBvciBub3QgYSB2YWx1ZSBpcyBhIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB2YWx1ZVxuICovXG5cbmZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWUpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICByZXR1cm4gISEodmFsdWUgJiYge30udG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gXCJbb2JqZWN0IEZ1bmN0aW9uXVwiKTtcbn1cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IGEgdmFsdWUgaXMgYSBudW1iZXIuXG4gKlxuICogQHBhcmFtIHZhbHVlXG4gKi9cblxuZnVuY3Rpb24gaXNOdW1iZXIodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiAmJiAhaXNOYU4odmFsdWUpO1xufVxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBvciBub3QgYSB2YWx1ZSBpcyBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gdmFsdWVcbiAqL1xuXG5mdW5jdGlvbiBpc1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiO1xufVxuXG5leHBvcnQgeyBpc0Jvb2xlYW4sIGlzRnVuY3Rpb24sIGlzTnVtYmVyLCBpc1N0cmluZyB9O1xuIiwiaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZS1jaGVjay9kaXN0L3JlYWNoLXV0aWxzLXR5cGUtY2hlY2suZXNtLmpzJztcblxuZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkoYXJyLCBsZW4pIHtcbiAgaWYgKGxlbiA9PSBudWxsIHx8IGxlbiA+IGFyci5sZW5ndGgpIGxlbiA9IGFyci5sZW5ndGg7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBuZXcgQXJyYXkobGVuKTsgaSA8IGxlbjsgaSsrKSBhcnIyW2ldID0gYXJyW2ldO1xuXG4gIHJldHVybiBhcnIyO1xufVxuXG5mdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobywgbWluTGVuKSB7XG4gIGlmICghbykgcmV0dXJuO1xuICBpZiAodHlwZW9mIG8gPT09IFwic3RyaW5nXCIpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xuICB2YXIgbiA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LCAtMSk7XG4gIGlmIChuID09PSBcIk9iamVjdFwiICYmIG8uY29uc3RydWN0b3IpIG4gPSBvLmNvbnN0cnVjdG9yLm5hbWU7XG4gIGlmIChuID09PSBcIk1hcFwiIHx8IG4gPT09IFwiU2V0XCIpIHJldHVybiBBcnJheS5mcm9tKG8pO1xuICBpZiAobiA9PT0gXCJBcmd1bWVudHNcIiB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSkgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG59XG5cbmZ1bmN0aW9uIF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyTG9vc2UobywgYWxsb3dBcnJheUxpa2UpIHtcbiAgdmFyIGl0O1xuXG4gIGlmICh0eXBlb2YgU3ltYm9sID09PSBcInVuZGVmaW5lZFwiIHx8IG9bU3ltYm9sLml0ZXJhdG9yXSA9PSBudWxsKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkobykgfHwgKGl0ID0gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8pKSB8fCBhbGxvd0FycmF5TGlrZSAmJiBvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgaWYgKGl0KSBvID0gaXQ7XG4gICAgICB2YXIgaSA9IDA7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoaSA+PSBvLmxlbmd0aCkgcmV0dXJuIHtcbiAgICAgICAgICBkb25lOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZG9uZTogZmFsc2UsXG4gICAgICAgICAgdmFsdWU6IG9baSsrXVxuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7XG4gIH1cblxuICBpdCA9IG9bU3ltYm9sLml0ZXJhdG9yXSgpO1xuICByZXR1cm4gaXQubmV4dC5iaW5kKGl0KTtcbn1cblxuLyoqXG4gKiBQYXNzZXMgb3IgYXNzaWducyBhbiBhcmJpdHJhcnkgdmFsdWUgdG8gYSByZWYgZnVuY3Rpb24gb3Igb2JqZWN0LlxuICpcbiAqIEBwYXJhbSByZWZcbiAqIEBwYXJhbSB2YWx1ZVxuICovXG5mdW5jdGlvbiBhc3NpZ25SZWYocmVmLCB2YWx1ZSkge1xuICBpZiAocmVmID09IG51bGwpIHJldHVybjtcblxuICBpZiAoaXNGdW5jdGlvbihyZWYpKSB7XG4gICAgcmVmKHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGFzc2lnbiB2YWx1ZSBcXFwiXCIgKyB2YWx1ZSArIFwiXFxcIiB0byByZWYgXFxcIlwiICsgcmVmICsgXCJcXFwiXCIpO1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBQYXNzZXMgb3IgYXNzaWducyBhIHZhbHVlIHRvIG11bHRpcGxlIHJlZnMgKHR5cGljYWxseSBhIERPTSBub2RlKS4gVXNlZnVsIGZvclxuICogZGVhbGluZyB3aXRoIGNvbXBvbmVudHMgdGhhdCBuZWVkIGFuIGV4cGxpY2l0IHJlZiBmb3IgRE9NIGNhbGN1bGF0aW9ucyBidXRcbiAqIGFsc28gZm9yd2FyZHMgcmVmcyBhc3NpZ25lZCBieSBhbiBhcHAuXG4gKlxuICogQHBhcmFtIHJlZnMgUmVmcyB0byBmb3JrXG4gKi9cblxuZnVuY3Rpb24gdXNlQ29tcG9zZWRSZWZzKCkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgcmVmcyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICByZWZzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICB9XG5cbiAgcmV0dXJuIHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChub2RlKSB7XG4gICAgZm9yICh2YXIgX2l0ZXJhdG9yID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXJMb29zZShyZWZzKSwgX3N0ZXA7ICEoX3N0ZXAgPSBfaXRlcmF0b3IoKSkuZG9uZTspIHtcbiAgICAgIHZhciByZWYgPSBfc3RlcC52YWx1ZTtcbiAgICAgIGFzc2lnblJlZihyZWYsIG5vZGUpO1xuICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuXG4gIH0sIHJlZnMpO1xufVxuXG5leHBvcnQgeyBhc3NpZ25SZWYsIHVzZUNvbXBvc2VkUmVmcyB9O1xuIiwiLyoqXG4gKiBXcmFwcyBhIGxpYi1kZWZpbmVkIGV2ZW50IGhhbmRsZXIgYW5kIGEgdXNlci1kZWZpbmVkIGV2ZW50IGhhbmRsZXIsIHJldHVybmluZ1xuICogYSBzaW5nbGUgaGFuZGxlciB0aGF0IGFsbG93cyBhIHVzZXIgdG8gcHJldmVudCBsaWItZGVmaW5lZCBoYW5kbGVycyBmcm9tXG4gKiBmaXJpbmcuXG4gKlxuICogQHBhcmFtIHRoZWlySGFuZGxlciBVc2VyLXN1cHBsaWVkIGV2ZW50IGhhbmRsZXJcbiAqIEBwYXJhbSBvdXJIYW5kbGVyIExpYnJhcnktc3VwcGxpZWQgZXZlbnQgaGFuZGxlclxuICovXG5mdW5jdGlvbiBjb21wb3NlRXZlbnRIYW5kbGVycyh0aGVpckhhbmRsZXIsIG91ckhhbmRsZXIpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChldmVudCkge1xuICAgIHRoZWlySGFuZGxlciAmJiB0aGVpckhhbmRsZXIoZXZlbnQpO1xuXG4gICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICByZXR1cm4gb3VySGFuZGxlcihldmVudCk7XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9O1xuIiwiaW1wb3J0IHsgZm9yd2FyZFJlZiwgY3JlYXRlRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkge1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldO1xuXG4gICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH07XG5cbiAgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHtcbiAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307XG4gIHZhciB0YXJnZXQgPSB7fTtcbiAgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuICB2YXIga2V5LCBpO1xuXG4gIGZvciAoaSA9IDA7IGkgPCBzb3VyY2VLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAga2V5ID0gc291cmNlS2V5c1tpXTtcbiAgICBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlO1xuICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG52YXIgX2V4Y2x1ZGVkID0gW1wiYXNcIiwgXCJzdHlsZVwiXTtcblxuLyoqXG4gKiBWaXN1YWxseUhpZGRlblxuICpcbiAqIFByb3ZpZGVzIHRleHQgZm9yIHNjcmVlbiByZWFkZXJzIHRoYXQgaXMgdmlzdWFsbHkgaGlkZGVuLlxuICogSXQgaXMgdGhlIGxvZ2ljYWwgb3Bwb3NpdGUgb2YgdGhlIGBhcmlhLWhpZGRlbmAgYXR0cmlidXRlLlxuICovXG52YXIgVmlzdWFsbHlIaWRkZW4gPSAvKiNfX1BVUkVfXyovZm9yd2FyZFJlZihmdW5jdGlvbiBWaXN1YWxseUhpZGRlbihfcmVmLCByZWYpIHtcbiAgdmFyIF9yZWYkYXMgPSBfcmVmLmFzLFxuICAgICAgQ29tcCA9IF9yZWYkYXMgPT09IHZvaWQgMCA/IFwic3BhblwiIDogX3JlZiRhcyxcbiAgICAgIF9yZWYkc3R5bGUgPSBfcmVmLnN0eWxlLFxuICAgICAgc3R5bGUgPSBfcmVmJHN0eWxlID09PSB2b2lkIDAgPyB7fSA6IF9yZWYkc3R5bGUsXG4gICAgICBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKF9yZWYsIF9leGNsdWRlZCk7XG5cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KENvbXAsIF9leHRlbmRzKHtcbiAgICByZWY6IHJlZixcbiAgICBzdHlsZTogX2V4dGVuZHMoe1xuICAgICAgYm9yZGVyOiAwLFxuICAgICAgY2xpcDogXCJyZWN0KDAgMCAwIDApXCIsXG4gICAgICBoZWlnaHQ6IFwiMXB4XCIsXG4gICAgICBtYXJnaW46IFwiLTFweFwiLFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgICBwYWRkaW5nOiAwLFxuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHdpZHRoOiBcIjFweFwiLFxuICAgICAgLy8gaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICAgICAgd2hpdGVTcGFjZTogXCJub3dyYXBcIixcbiAgICAgIHdvcmRXcmFwOiBcIm5vcm1hbFwiXG4gICAgfSwgc3R5bGUpXG4gIH0sIHByb3BzKSk7XG59KTtcbi8qKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC92aXN1YWxseS1oaWRkZW4jdmlzdWFsbHloaWRkZW4tcHJvcHNcbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIFZpc3VhbGx5SGlkZGVuLmRpc3BsYXlOYW1lID0gXCJWaXN1YWxseUhpZGRlblwiO1xuICBWaXN1YWxseUhpZGRlbi5wcm9wVHlwZXMgPSB7XG4gICAgYXM6IFByb3BUeXBlcy5hbnksXG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlXG4gIH07XG59IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBkZWZhdWx0IFZpc3VhbGx5SGlkZGVuO1xuZXhwb3J0IHsgVmlzdWFsbHlIaWRkZW4gfTtcbiIsInZhciBwcm9wcyA9IFtcImJvdHRvbVwiLCBcImhlaWdodFwiLCBcImxlZnRcIiwgXCJyaWdodFwiLCBcInRvcFwiLCBcIndpZHRoXCJdO1xuXG52YXIgcmVjdENoYW5nZWQgPSBmdW5jdGlvbiByZWN0Q2hhbmdlZChhLCBiKSB7XG4gIGlmIChhID09PSB2b2lkIDApIHtcbiAgICBhID0ge307XG4gIH1cblxuICBpZiAoYiA9PT0gdm9pZCAwKSB7XG4gICAgYiA9IHt9O1xuICB9XG5cbiAgcmV0dXJuIHByb3BzLnNvbWUoZnVuY3Rpb24gKHByb3ApIHtcbiAgICByZXR1cm4gYVtwcm9wXSAhPT0gYltwcm9wXTtcbiAgfSk7XG59O1xuXG52YXIgb2JzZXJ2ZWROb2RlcyA9IC8qI19fUFVSRV9fKi9uZXcgTWFwKCk7XG52YXIgcmFmSWQ7XG5cbnZhciBydW4gPSBmdW5jdGlvbiBydW4oKSB7XG4gIHZhciBjaGFuZ2VkU3RhdGVzID0gW107XG4gIG9ic2VydmVkTm9kZXMuZm9yRWFjaChmdW5jdGlvbiAoc3RhdGUsIG5vZGUpIHtcbiAgICB2YXIgbmV3UmVjdCA9IG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBpZiAocmVjdENoYW5nZWQobmV3UmVjdCwgc3RhdGUucmVjdCkpIHtcbiAgICAgIHN0YXRlLnJlY3QgPSBuZXdSZWN0O1xuICAgICAgY2hhbmdlZFN0YXRlcy5wdXNoKHN0YXRlKTtcbiAgICB9XG4gIH0pO1xuICBjaGFuZ2VkU3RhdGVzLmZvckVhY2goZnVuY3Rpb24gKHN0YXRlKSB7XG4gICAgc3RhdGUuY2FsbGJhY2tzLmZvckVhY2goZnVuY3Rpb24gKGNiKSB7XG4gICAgICByZXR1cm4gY2Ioc3RhdGUucmVjdCk7XG4gICAgfSk7XG4gIH0pO1xuICByYWZJZCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUocnVuKTtcbn07XG5cbmZ1bmN0aW9uIG9ic2VydmVSZWN0KG5vZGUsIGNiKSB7XG4gIHJldHVybiB7XG4gICAgb2JzZXJ2ZTogZnVuY3Rpb24gb2JzZXJ2ZSgpIHtcbiAgICAgIHZhciB3YXNFbXB0eSA9IG9ic2VydmVkTm9kZXMuc2l6ZSA9PT0gMDtcblxuICAgICAgaWYgKG9ic2VydmVkTm9kZXMuaGFzKG5vZGUpKSB7XG4gICAgICAgIG9ic2VydmVkTm9kZXMuZ2V0KG5vZGUpLmNhbGxiYWNrcy5wdXNoKGNiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9ic2VydmVkTm9kZXMuc2V0KG5vZGUsIHtcbiAgICAgICAgICByZWN0OiB1bmRlZmluZWQsXG4gICAgICAgICAgaGFzUmVjdENoYW5nZWQ6IGZhbHNlLFxuICAgICAgICAgIGNhbGxiYWNrczogW2NiXVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHdhc0VtcHR5KSBydW4oKTtcbiAgICB9LFxuICAgIHVub2JzZXJ2ZTogZnVuY3Rpb24gdW5vYnNlcnZlKCkge1xuICAgICAgdmFyIHN0YXRlID0gb2JzZXJ2ZWROb2Rlcy5nZXQobm9kZSk7XG5cbiAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICAvLyBSZW1vdmUgdGhlIGNhbGxiYWNrXG4gICAgICAgIHZhciBpbmRleCA9IHN0YXRlLmNhbGxiYWNrcy5pbmRleE9mKGNiKTtcbiAgICAgICAgaWYgKGluZGV4ID49IDApIHN0YXRlLmNhbGxiYWNrcy5zcGxpY2UoaW5kZXgsIDEpOyAvLyBSZW1vdmUgdGhlIG5vZGUgcmVmZXJlbmNlXG5cbiAgICAgICAgaWYgKCFzdGF0ZS5jYWxsYmFja3MubGVuZ3RoKSBvYnNlcnZlZE5vZGVzW1wiZGVsZXRlXCJdKG5vZGUpOyAvLyBTdG9wIHRoZSBsb29wXG5cbiAgICAgICAgaWYgKCFvYnNlcnZlZE5vZGVzLnNpemUpIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJhZklkKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IG9ic2VydmVSZWN0O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9b2JzZXJ2ZS1yZWN0LmVzbS5qcy5tYXBcbiIsImltcG9ydCB7IHVzZVJlZiwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgb2JzZXJ2ZVJlY3QgZnJvbSAnQHJlYWNoL29ic2VydmUtcmVjdCc7XG5pbXBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH0gZnJvbSAnQHJlYWNoL3V0aWxzL3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QnO1xuaW1wb3J0IHsgaXNCb29sZWFuLCBpc0Z1bmN0aW9uIH0gZnJvbSAnQHJlYWNoL3V0aWxzL3R5cGUtY2hlY2snO1xuaW1wb3J0IHdhcm5pbmcgZnJvbSAndGlueS13YXJuaW5nJztcblxuLyoqXG4gKiBXZWxjb21lIHRvIEByZWFjaC9yZWN0IVxuICpcbiAqIE1lYXN1cmVzIERPTSBlbGVtZW50cyAoYWthLiBib3VuZGluZyBjbGllbnQgcmVjdCkuXG4gKlxuICogQHNlZSBnZXRCb3VuZGluZ0NsaWVudFJlY3QgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0VsZW1lbnQvZ2V0Qm91bmRpbmdDbGllbnRSZWN0XG4gKiBAc2VlIERvY3MgICAgICAgICAgICAgICAgICBodHRwczovL3JlYWNoLnRlY2gvcmVjdFxuICogQHNlZSBTb3VyY2UgICAgICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3JlYWNoL3JlYWNoLXVpL3RyZWUvbWFpbi9wYWNrYWdlcy9yZWN0XG4gKi9cblxuLyoqXG4gKiBSZWN0XG4gKlxuICogQHBhcmFtIHByb3BzXG4gKi9cblxudmFyIFJlY3QgPSBmdW5jdGlvbiBSZWN0KF9yZWYpIHtcbiAgdmFyIG9uQ2hhbmdlID0gX3JlZi5vbkNoYW5nZSxcbiAgICAgIF9yZWYkb2JzZXJ2ZSA9IF9yZWYub2JzZXJ2ZSxcbiAgICAgIG9ic2VydmUgPSBfcmVmJG9ic2VydmUgPT09IHZvaWQgMCA/IHRydWUgOiBfcmVmJG9ic2VydmUsXG4gICAgICBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW47XG4gIHZhciByZWYgPSB1c2VSZWYobnVsbCk7XG4gIHZhciByZWN0ID0gdXNlUmVjdChyZWYsIHtcbiAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgIG9uQ2hhbmdlOiBvbkNoYW5nZVxuICB9KTtcbiAgcmV0dXJuIGNoaWxkcmVuKHtcbiAgICByZWY6IHJlZixcbiAgICByZWN0OiByZWN0XG4gIH0pO1xufTtcbi8qKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC9yZWN0I3JlY3QtcHJvcHNcbiAqL1xuXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgUmVjdC5kaXNwbGF5TmFtZSA9IFwiUmVjdFwiO1xuICBSZWN0LnByb3BUeXBlcyA9IHtcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvYnNlcnZlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmNcbiAgfTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuXG4vKipcbiAqIHVzZVJlY3RcbiAqXG4gKiBAcGFyYW0gbm9kZVJlZlxuICogQHBhcmFtIG9ic2VydmVcbiAqIEBwYXJhbSBvbkNoYW5nZVxuICovXG5mdW5jdGlvbiB1c2VSZWN0KG5vZGVSZWYsIG9ic2VydmVPck9wdGlvbnMsIGRlcHJlY2F0ZWRfb25DaGFuZ2UpIHtcbiAgdmFyIG9ic2VydmU7XG4gIHZhciBvbkNoYW5nZTtcblxuICBpZiAoaXNCb29sZWFuKG9ic2VydmVPck9wdGlvbnMpKSB7XG4gICAgb2JzZXJ2ZSA9IG9ic2VydmVPck9wdGlvbnM7XG4gIH0gZWxzZSB7XG4gICAgdmFyIF9vYnNlcnZlT3JPcHRpb25zJG9icztcblxuICAgIG9ic2VydmUgPSAoX29ic2VydmVPck9wdGlvbnMkb2JzID0gb2JzZXJ2ZU9yT3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb2JzZXJ2ZU9yT3B0aW9ucy5vYnNlcnZlKSAhPSBudWxsID8gX29ic2VydmVPck9wdGlvbnMkb2JzIDogdHJ1ZTtcbiAgICBvbkNoYW5nZSA9IG9ic2VydmVPck9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9ic2VydmVPck9wdGlvbnMub25DaGFuZ2U7XG4gIH1cblxuICBpZiAoaXNGdW5jdGlvbihkZXByZWNhdGVkX29uQ2hhbmdlKSkge1xuICAgIG9uQ2hhbmdlID0gZGVwcmVjYXRlZF9vbkNoYW5nZTtcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyghaXNCb29sZWFuKG9ic2VydmVPck9wdGlvbnMpLCBcIlBhc3NpbmcgYG9ic2VydmVgIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gYHVzZVJlY3RgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIFJlYWNoIFVJLiBJbnN0ZWFkLCB5b3UgY2FuIHBhc3MgYW4gb2JqZWN0IG9mIG9wdGlvbnMgd2l0aCBhbiBgb2JzZXJ2ZWAgcHJvcGVydHkgYXMgdGhlIHNlY29uZCBhcmd1bWVudCAoYHVzZVJlY3QocmVmLCB7IG9ic2VydmUgfSlgKS5cXG5cIiArIFwiU2VlIGh0dHBzOi8vcmVhY2gudGVjaC9yZWN0I3VzZXJlY3Qtb2JzZXJ2ZVwiKSA6IHZvaWQgMDtcbiAgICB9LCBbb2JzZXJ2ZU9yT3B0aW9uc10pOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcblxuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKCFpc0Z1bmN0aW9uKGRlcHJlY2F0ZWRfb25DaGFuZ2UpLCBcIlBhc3NpbmcgYG9uQ2hhbmdlYCBhcyB0aGUgdGhpcmQgYXJndW1lbnQgdG8gYHVzZVJlY3RgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIFJlYWNoIFVJLiBJbnN0ZWFkLCB5b3UgY2FuIHBhc3MgYW4gb2JqZWN0IG9mIG9wdGlvbnMgd2l0aCBhbiBgb25DaGFuZ2VgIHByb3BlcnR5IGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgKGB1c2VSZWN0KHJlZiwgeyBvbkNoYW5nZSB9KWApLlxcblwiICsgXCJTZWUgaHR0cHM6Ly9yZWFjaC50ZWNoL3JlY3QjdXNlcmVjdC1vbmNoYW5nZVwiKSA6IHZvaWQgMDtcbiAgICB9LCBbZGVwcmVjYXRlZF9vbkNoYW5nZV0pO1xuICB9XG5cbiAgdmFyIF9SZWFjdCR1c2VTdGF0ZSA9IHVzZVN0YXRlKG5vZGVSZWYuY3VycmVudCksXG4gICAgICBlbGVtZW50ID0gX1JlYWN0JHVzZVN0YXRlWzBdLFxuICAgICAgc2V0RWxlbWVudCA9IF9SZWFjdCR1c2VTdGF0ZVsxXTtcblxuICB2YXIgaW5pdGlhbFJlY3RJc1NldCA9IHVzZVJlZihmYWxzZSk7XG4gIHZhciBpbml0aWFsUmVmSXNTZXQgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIHZhciBfUmVhY3QkdXNlU3RhdGUyID0gdXNlU3RhdGUobnVsbCksXG4gICAgICByZWN0ID0gX1JlYWN0JHVzZVN0YXRlMlswXSxcbiAgICAgIHNldFJlY3QgPSBfUmVhY3QkdXNlU3RhdGUyWzFdO1xuXG4gIHZhciBvbkNoYW5nZVJlZiA9IHVzZVJlZihvbkNoYW5nZSk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcblxuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBvbkNoYW5nZVJlZi5jdXJyZW50ID0gb25DaGFuZ2U7XG5cbiAgICBpZiAobm9kZVJlZi5jdXJyZW50ICE9PSBlbGVtZW50KSB7XG4gICAgICBzZXRFbGVtZW50KG5vZGVSZWYuY3VycmVudCk7XG4gICAgfVxuICB9KTtcbiAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGVsZW1lbnQgJiYgIWluaXRpYWxSZWN0SXNTZXQuY3VycmVudCkge1xuICAgICAgaW5pdGlhbFJlY3RJc1NldC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIHNldFJlY3QoZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7XG4gICAgfVxuICB9LCBbZWxlbWVudF0pO1xuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIW9ic2VydmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgZWxlbSA9IGVsZW1lbnQ7IC8vIFN0YXRlIGluaXRpYWxpemVzIGJlZm9yZSByZWZzIGFyZSBwbGFjZWQsIG1lYW5pbmcgdGhlIGVsZW1lbnQgc3RhdGUgd2lsbFxuICAgIC8vIGJlIHVuZGVmaW5lZCBvbiB0aGUgZmlyc3QgcmVuZGVyLiBXZSBzdGlsbCB3YW50IHRoZSByZWN0IG9uIHRoZSBmaXJzdFxuICAgIC8vIHJlbmRlciwgc28gaW5pdGlhbGx5IHdlJ2xsIHVzZSB0aGUgbm9kZVJlZiB0aGF0IHdhcyBwYXNzZWQgaW5zdGVhZCBvZlxuICAgIC8vIHN0YXRlIGZvciBvdXIgbWVhc3VyZW1lbnRzLlxuXG4gICAgaWYgKCFpbml0aWFsUmVmSXNTZXQuY3VycmVudCkge1xuICAgICAgaW5pdGlhbFJlZklzU2V0LmN1cnJlbnQgPSB0cnVlO1xuICAgICAgZWxlbSA9IG5vZGVSZWYuY3VycmVudDtcbiAgICB9XG5cbiAgICBpZiAoIWVsZW0pIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFwiWW91IG5lZWQgdG8gcGxhY2UgdGhlIHJlZlwiKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBvYnNlcnZlciA9IG9ic2VydmVSZWN0KGVsZW0sIGZ1bmN0aW9uIChyZWN0KSB7XG4gICAgICBvbkNoYW5nZVJlZi5jdXJyZW50ID09IG51bGwgPyB2b2lkIDAgOiBvbkNoYW5nZVJlZi5jdXJyZW50KHJlY3QpO1xuICAgICAgc2V0UmVjdChyZWN0KTtcbiAgICB9KTtcbiAgICBvYnNlcnZlci5vYnNlcnZlKCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIG9ic2VydmVyLnVub2JzZXJ2ZSgpO1xuICAgIH07XG4gIH0sIFtvYnNlcnZlLCBlbGVtZW50LCBub2RlUmVmXSk7XG4gIHJldHVybiByZWN0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBSZWN0O1xuZXhwb3J0IHsgUmVjdCwgdXNlUmVjdCB9O1xuIiwiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZVJlZiwgdXNlRWZmZWN0LCBmb3J3YXJkUmVmLCBDaGlsZHJlbiwgY3JlYXRlRWxlbWVudCwgRnJhZ21lbnQsIGNsb25lRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSAnQHJlYWNoL2F1dG8taWQnO1xuaW1wb3J0IHsgZ2V0RG9jdW1lbnREaW1lbnNpb25zIH0gZnJvbSAnQHJlYWNoL3V0aWxzL2dldC1kb2N1bWVudC1kaW1lbnNpb25zJztcbmltcG9ydCB7IGdldE93bmVyRG9jdW1lbnQgfSBmcm9tICdAcmVhY2gvdXRpbHMvb3duZXItZG9jdW1lbnQnO1xuaW1wb3J0IHsgbWFrZUlkIH0gZnJvbSAnQHJlYWNoL3V0aWxzL21ha2UtaWQnO1xuaW1wb3J0IHsgdXNlQ2hlY2tTdHlsZXMgfSBmcm9tICdAcmVhY2gvdXRpbHMvZGV2LXV0aWxzJztcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gJ0ByZWFjaC91dGlscy9jb21wb3NlLXJlZnMnO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tICdAcmVhY2gvdXRpbHMvY29tcG9zZS1ldmVudC1oYW5kbGVycyc7XG5pbXBvcnQgeyBQb3J0YWwgfSBmcm9tICdAcmVhY2gvcG9ydGFsJztcbmltcG9ydCB7IFZpc3VhbGx5SGlkZGVuIH0gZnJvbSAnQHJlYWNoL3Zpc3VhbGx5LWhpZGRlbic7XG5pbXBvcnQgeyB1c2VSZWN0IH0gZnJvbSAnQHJlYWNoL3JlY3QnO1xuaW1wb3J0IHdhcm5pbmcgZnJvbSAndGlueS13YXJuaW5nJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkge1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldO1xuXG4gICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH07XG5cbiAgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHtcbiAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307XG4gIHZhciB0YXJnZXQgPSB7fTtcbiAgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuICB2YXIga2V5LCBpO1xuXG4gIGZvciAoaSA9IDA7IGkgPCBzb3VyY2VLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAga2V5ID0gc291cmNlS2V5c1tpXTtcbiAgICBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlO1xuICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG52YXIgX2V4Y2x1ZGVkID0gW1wiY2hpbGRyZW5cIiwgXCJsYWJlbFwiLCBcImFyaWFMYWJlbFwiLCBcImlkXCIsIFwiREVCVUdfU1RZTEVcIl0sXG4gICAgX2V4Y2x1ZGVkMiA9IFtcImxhYmVsXCIsIFwiYXJpYUxhYmVsXCIsIFwiaXNWaXNpYmxlXCIsIFwiaWRcIl0sXG4gICAgX2V4Y2x1ZGVkMyA9IFtcImFyaWFMYWJlbFwiLCBcImFyaWEtbGFiZWxcIiwgXCJhc1wiLCBcImlkXCIsIFwiaXNWaXNpYmxlXCIsIFwibGFiZWxcIiwgXCJwb3NpdGlvblwiLCBcInN0eWxlXCIsIFwidHJpZ2dlclJlY3RcIl0sXG4gICAgX2V4Y2x1ZGVkNCA9IFtcInR5cGVcIl07XG5cbnZhciBfb24sIF9vbjIsIF9vbjMsIF9vbjQsIF9vbjUsIF9zdGF0ZXM7XG52YXIgTU9VU0VfUkVTVF9USU1FT1VUID0gMTAwO1xudmFyIExFQVZFX1RJTUVPVVQgPSA1MDA7IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTdGF0ZXNcblxudmFyIFRvb2x0aXBTdGF0ZXM7IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBFdmVudHNcblxuKGZ1bmN0aW9uIChUb29sdGlwU3RhdGVzKSB7XG4gIFRvb2x0aXBTdGF0ZXNbXCJJZGxlXCJdID0gXCJJRExFXCI7XG4gIFRvb2x0aXBTdGF0ZXNbXCJGb2N1c2VkXCJdID0gXCJGT0NVU0VEXCI7XG4gIFRvb2x0aXBTdGF0ZXNbXCJWaXNpYmxlXCJdID0gXCJWSVNJQkxFXCI7XG4gIFRvb2x0aXBTdGF0ZXNbXCJMZWF2aW5nVmlzaWJsZVwiXSA9IFwiTEVBVklOR19WSVNJQkxFXCI7XG4gIFRvb2x0aXBTdGF0ZXNbXCJEaXNtaXNzZWRcIl0gPSBcIkRJU01JU1NFRFwiO1xufSkoVG9vbHRpcFN0YXRlcyB8fCAoVG9vbHRpcFN0YXRlcyA9IHt9KSk7XG5cbnZhciBUb29sdGlwRXZlbnRzO1xuXG4oZnVuY3Rpb24gKFRvb2x0aXBFdmVudHMpIHtcbiAgVG9vbHRpcEV2ZW50c1tcIkJsdXJcIl0gPSBcIkJMVVJcIjtcbiAgVG9vbHRpcEV2ZW50c1tcIkZvY3VzXCJdID0gXCJGT0NVU1wiO1xuICBUb29sdGlwRXZlbnRzW1wiR2xvYmFsTW91c2VNb3ZlXCJdID0gXCJHTE9CQUxfTU9VU0VfTU9WRVwiO1xuICBUb29sdGlwRXZlbnRzW1wiTW91c2VEb3duXCJdID0gXCJNT1VTRV9ET1dOXCI7XG4gIFRvb2x0aXBFdmVudHNbXCJNb3VzZUVudGVyXCJdID0gXCJNT1VTRV9FTlRFUlwiO1xuICBUb29sdGlwRXZlbnRzW1wiTW91c2VMZWF2ZVwiXSA9IFwiTU9VU0VfTEVBVkVcIjtcbiAgVG9vbHRpcEV2ZW50c1tcIk1vdXNlTW92ZVwiXSA9IFwiTU9VU0VfTU9WRVwiO1xuICBUb29sdGlwRXZlbnRzW1wiUmVzdFwiXSA9IFwiUkVTVFwiO1xuICBUb29sdGlwRXZlbnRzW1wiU2VsZWN0V2l0aEtleWJvYXJkXCJdID0gXCJTRUxFQ1RfV0lUSF9LRVlCT0FSRFwiO1xuICBUb29sdGlwRXZlbnRzW1wiVGltZUNvbXBsZXRlXCJdID0gXCJUSU1FX0NPTVBMRVRFXCI7XG59KShUb29sdGlwRXZlbnRzIHx8IChUb29sdGlwRXZlbnRzID0ge30pKTtcblxudmFyIGNoYXJ0ID0ge1xuICBpbml0aWFsOiBUb29sdGlwU3RhdGVzLklkbGUsXG4gIHN0YXRlczogKF9zdGF0ZXMgPSB7fSwgX3N0YXRlc1tUb29sdGlwU3RhdGVzLklkbGVdID0ge1xuICAgIGVudGVyOiBjbGVhckNvbnRleHRJZCxcbiAgICBvbjogKF9vbiA9IHt9LCBfb25bVG9vbHRpcEV2ZW50cy5Nb3VzZUVudGVyXSA9IFRvb2x0aXBTdGF0ZXMuRm9jdXNlZCwgX29uW1Rvb2x0aXBFdmVudHMuRm9jdXNdID0gVG9vbHRpcFN0YXRlcy5WaXNpYmxlLCBfb24pXG4gIH0sIF9zdGF0ZXNbVG9vbHRpcFN0YXRlcy5Gb2N1c2VkXSA9IHtcbiAgICBlbnRlcjogc3RhcnRSZXN0VGltZXIsXG4gICAgbGVhdmU6IGNsZWFyUmVzdFRpbWVyLFxuICAgIG9uOiAoX29uMiA9IHt9LCBfb24yW1Rvb2x0aXBFdmVudHMuTW91c2VNb3ZlXSA9IFRvb2x0aXBTdGF0ZXMuRm9jdXNlZCwgX29uMltUb29sdGlwRXZlbnRzLk1vdXNlTGVhdmVdID0gVG9vbHRpcFN0YXRlcy5JZGxlLCBfb24yW1Rvb2x0aXBFdmVudHMuTW91c2VEb3duXSA9IFRvb2x0aXBTdGF0ZXMuRGlzbWlzc2VkLCBfb24yW1Rvb2x0aXBFdmVudHMuQmx1cl0gPSBUb29sdGlwU3RhdGVzLklkbGUsIF9vbjJbVG9vbHRpcEV2ZW50cy5SZXN0XSA9IFRvb2x0aXBTdGF0ZXMuVmlzaWJsZSwgX29uMilcbiAgfSwgX3N0YXRlc1tUb29sdGlwU3RhdGVzLlZpc2libGVdID0ge1xuICAgIG9uOiAoX29uMyA9IHt9LCBfb24zW1Rvb2x0aXBFdmVudHMuRm9jdXNdID0gVG9vbHRpcFN0YXRlcy5Gb2N1c2VkLCBfb24zW1Rvb2x0aXBFdmVudHMuTW91c2VFbnRlcl0gPSBUb29sdGlwU3RhdGVzLkZvY3VzZWQsIF9vbjNbVG9vbHRpcEV2ZW50cy5Nb3VzZUxlYXZlXSA9IFRvb2x0aXBTdGF0ZXMuTGVhdmluZ1Zpc2libGUsIF9vbjNbVG9vbHRpcEV2ZW50cy5CbHVyXSA9IFRvb2x0aXBTdGF0ZXMuTGVhdmluZ1Zpc2libGUsIF9vbjNbVG9vbHRpcEV2ZW50cy5Nb3VzZURvd25dID0gVG9vbHRpcFN0YXRlcy5EaXNtaXNzZWQsIF9vbjNbVG9vbHRpcEV2ZW50cy5TZWxlY3RXaXRoS2V5Ym9hcmRdID0gVG9vbHRpcFN0YXRlcy5EaXNtaXNzZWQsIF9vbjNbVG9vbHRpcEV2ZW50cy5HbG9iYWxNb3VzZU1vdmVdID0gVG9vbHRpcFN0YXRlcy5MZWF2aW5nVmlzaWJsZSwgX29uMylcbiAgfSwgX3N0YXRlc1tUb29sdGlwU3RhdGVzLkxlYXZpbmdWaXNpYmxlXSA9IHtcbiAgICBlbnRlcjogc3RhcnRMZWF2aW5nVmlzaWJsZVRpbWVyLFxuICAgIGxlYXZlOiBmdW5jdGlvbiBsZWF2ZSgpIHtcbiAgICAgIGNsZWFyTGVhdmluZ1Zpc2libGVUaW1lcigpO1xuICAgICAgY2xlYXJDb250ZXh0SWQoKTtcbiAgICB9LFxuICAgIG9uOiAoX29uNCA9IHt9LCBfb240W1Rvb2x0aXBFdmVudHMuTW91c2VFbnRlcl0gPSBUb29sdGlwU3RhdGVzLlZpc2libGUsIF9vbjRbVG9vbHRpcEV2ZW50cy5Gb2N1c10gPSBUb29sdGlwU3RhdGVzLlZpc2libGUsIF9vbjRbVG9vbHRpcEV2ZW50cy5UaW1lQ29tcGxldGVdID0gVG9vbHRpcFN0YXRlcy5JZGxlLCBfb240KVxuICB9LCBfc3RhdGVzW1Rvb2x0aXBTdGF0ZXMuRGlzbWlzc2VkXSA9IHtcbiAgICBsZWF2ZTogZnVuY3Rpb24gbGVhdmUoKSB7XG4gICAgICBjbGVhckNvbnRleHRJZCgpO1xuICAgIH0sXG4gICAgb246IChfb241ID0ge30sIF9vbjVbVG9vbHRpcEV2ZW50cy5Nb3VzZUxlYXZlXSA9IFRvb2x0aXBTdGF0ZXMuSWRsZSwgX29uNVtUb29sdGlwRXZlbnRzLkJsdXJdID0gVG9vbHRpcFN0YXRlcy5JZGxlLCBfb241KVxuICB9LCBfc3RhdGVzKVxufTtcbi8qXG4gKiBDaGFydCBjb250ZXh0IGFsbG93cyB1cyB0byBwZXJzaXN0IHNvbWUgZGF0YSBhcm91bmQsIGluIFRvb2x0aXAgYWxsIHdlIHVzZVxuICogaXMgdGhlIGlkIG9mIHRoZSBjdXJyZW50IHRvb2x0aXAgYmVpbmcgaW50ZXJhY3RlZCB3aXRoLlxuICovXG5cbnZhciBzdGF0ZSA9IHtcbiAgdmFsdWU6IGNoYXJ0LmluaXRpYWwsXG4gIGNvbnRleHQ6IHtcbiAgICBpZDogbnVsbFxuICB9XG59OyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gU3Vic2NyaXB0aW9uczpcbi8vXG4vLyBXZSBjb3VsZCByZXF1aXJlIGFwcHMgdG8gcmVuZGVyIGEgPFRvb2x0aXBQcm92aWRlcj4gYXJvdW5kIHRoZSBhcHAgYW5kIHVzZVxuLy8gUmVhY3QgY29udGV4dCB0byBub3RpZnkgVG9vbHRpcHMgb2YgY2hhbmdlcyB0byBvdXIgc3RhdGUgbWFjaGluZSwgaW5zdGVhZFxuLy8gd2UgbWFuYWdlIHN1YnNjcmlwdGlvbnMgb3Vyc2VsdmVzIGFuZCBzaW1wbGlmeSB0aGUgVG9vbHRpcCBBUEkuXG4vL1xuLy8gTWF5YmUgaWYgZGVmYXVsdCBjb250ZXh0IGNvdWxkIHRha2UgYSBob29rIChpbnN0ZWFkIG9mIGp1c3QgYSBzdGF0aWMgdmFsdWUpXG4vLyB0aGF0IHdhcyByZW5kZXJlZCBhdCB0aGUgcm9vdCBmb3IgdXMsIHRoYXQnZCBiZSBjb29sISBCdXQgaXQgZG9lc24ndC5cblxudmFyIHN1YnNjcmlwdGlvbnMgPSBbXTtcblxuZnVuY3Rpb24gc3Vic2NyaWJlKGZuKSB7XG4gIHN1YnNjcmlwdGlvbnMucHVzaChmbik7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgc3Vic2NyaXB0aW9ucy5zcGxpY2Uoc3Vic2NyaXB0aW9ucy5pbmRleE9mKGZuKSwgMSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIG5vdGlmeSgpIHtcbiAgc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChmbikge1xuICAgIHJldHVybiBmbihzdGF0ZSk7XG4gIH0pO1xufSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVGltZW91dHM6XG4vLyBNYW5hZ2VzIHdoZW4gdGhlIHVzZXIgXCJyZXN0c1wiIG9uIGFuIGVsZW1lbnQuIEtlZXBzIHRoZSBpbnRlcmZhY2UgZnJvbSBiZWluZ1xuLy8gZmxhc2hpbmcgdG9vbHRpcHMgYWxsIHRoZSB0aW1lIGFzIHRoZSB1c2VyIG1vdmVzIHRoZSBtb3VzZSBhcm91bmQgdGhlIHNjcmVlbi5cblxuXG52YXIgcmVzdFRpbWVvdXQ7XG5cbmZ1bmN0aW9uIHN0YXJ0UmVzdFRpbWVyKCkge1xuICB3aW5kb3cuY2xlYXJUaW1lb3V0KHJlc3RUaW1lb3V0KTtcbiAgcmVzdFRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgc2VuZCh7XG4gICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLlJlc3RcbiAgICB9KTtcbiAgfSwgTU9VU0VfUkVTVF9USU1FT1VUKTtcbn1cblxuZnVuY3Rpb24gY2xlYXJSZXN0VGltZXIoKSB7XG4gIHdpbmRvdy5jbGVhclRpbWVvdXQocmVzdFRpbWVvdXQpO1xufSAvLyBNYW5hZ2VzIHRoZSBkZWxheSB0byBoaWRlIHRoZSB0b29sdGlwIGFmdGVyIHJlc3QgbGVhdmVzLlxuXG5cbnZhciBsZWF2aW5nVmlzaWJsZVRpbWVyO1xuXG5mdW5jdGlvbiBzdGFydExlYXZpbmdWaXNpYmxlVGltZXIoKSB7XG4gIHdpbmRvdy5jbGVhclRpbWVvdXQobGVhdmluZ1Zpc2libGVUaW1lcik7XG4gIGxlYXZpbmdWaXNpYmxlVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHNlbmQoe1xuICAgICAgdHlwZTogVG9vbHRpcEV2ZW50cy5UaW1lQ29tcGxldGVcbiAgICB9KTtcbiAgfSwgTEVBVkVfVElNRU9VVCk7XG59XG5cbmZ1bmN0aW9uIGNsZWFyTGVhdmluZ1Zpc2libGVUaW1lcigpIHtcbiAgd2luZG93LmNsZWFyVGltZW91dChsZWF2aW5nVmlzaWJsZVRpbWVyKTtcbn0gLy8gYWxsb3dzIHVzIHRvIGNvbWUgb24gYmFjayBsYXRlciB3L28gZW50ZXJpbmcgc29tZXRoaW5nIGVsc2UgZmlyc3QgYWZ0ZXIgdGhlXG4vLyB1c2VyIGxlYXZlcyBvciBkaXNtaXNzZXNcblxuXG5mdW5jdGlvbiBjbGVhckNvbnRleHRJZCgpIHtcbiAgc3RhdGUuY29udGV4dC5pZCA9IG51bGw7XG59IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8qKlxuICogdXNlVG9vbHRpcFxuICpcbiAqIEBwYXJhbSBwYXJhbXNcbiAqL1xuXG5cbmZ1bmN0aW9uIHVzZVRvb2x0aXAoX3RlbXApIHtcbiAgdmFyIF9yZWYgPSBfdGVtcCA9PT0gdm9pZCAwID8ge30gOiBfdGVtcCxcbiAgICAgIGlkUHJvcCA9IF9yZWYuaWQsXG4gICAgICBvblBvaW50ZXJFbnRlciA9IF9yZWYub25Qb2ludGVyRW50ZXIsXG4gICAgICBvblBvaW50ZXJNb3ZlID0gX3JlZi5vblBvaW50ZXJNb3ZlLFxuICAgICAgb25Qb2ludGVyTGVhdmUgPSBfcmVmLm9uUG9pbnRlckxlYXZlLFxuICAgICAgb25Qb2ludGVyRG93biA9IF9yZWYub25Qb2ludGVyRG93bixcbiAgICAgIG9uTW91c2VFbnRlciA9IF9yZWYub25Nb3VzZUVudGVyLFxuICAgICAgb25Nb3VzZU1vdmUgPSBfcmVmLm9uTW91c2VNb3ZlLFxuICAgICAgb25Nb3VzZUxlYXZlID0gX3JlZi5vbk1vdXNlTGVhdmUsXG4gICAgICBvbk1vdXNlRG93biA9IF9yZWYub25Nb3VzZURvd24sXG4gICAgICBvbkZvY3VzID0gX3JlZi5vbkZvY3VzLFxuICAgICAgb25CbHVyID0gX3JlZi5vbkJsdXIsXG4gICAgICBvbktleURvd24gPSBfcmVmLm9uS2V5RG93bixcbiAgICAgIGRpc2FibGVkID0gX3JlZi5kaXNhYmxlZCxcbiAgICAgIGZvcndhcmRlZFJlZiA9IF9yZWYucmVmLFxuICAgICAgREVCVUdfU1RZTEUgPSBfcmVmLkRFQlVHX1NUWUxFO1xuXG4gIHZhciBpZCA9IFN0cmluZyh1c2VJZChpZFByb3ApKTtcblxuICB2YXIgX1JlYWN0JHVzZVN0YXRlID0gdXNlU3RhdGUoREVCVUdfU1RZTEUgPyB0cnVlIDogaXNUb29sdGlwVmlzaWJsZShpZCwgdHJ1ZSkpLFxuICAgICAgaXNWaXNpYmxlID0gX1JlYWN0JHVzZVN0YXRlWzBdLFxuICAgICAgc2V0SXNWaXNpYmxlID0gX1JlYWN0JHVzZVN0YXRlWzFdOyAvLyBob3BlZnVsbHkgdGhleSBhbHdheXMgcGFzcyBhIHJlZiBpZiB0aGV5IGV2ZXIgcGFzcyBvbmVcblxuXG4gIHZhciBvd25SZWYgPSB1c2VSZWYobnVsbCk7XG4gIHZhciByZWYgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBvd25SZWYpO1xuICB2YXIgdHJpZ2dlclJlY3QgPSB1c2VSZWN0KG93blJlZiwge1xuICAgIG9ic2VydmU6IGlzVmlzaWJsZVxuICB9KTtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gc3Vic2NyaWJlKGZ1bmN0aW9uICgpIHtcbiAgICAgIHNldElzVmlzaWJsZShpc1Rvb2x0aXBWaXNpYmxlKGlkKSk7XG4gICAgfSk7XG4gIH0sIFtpZF0pO1xuICB1c2VDaGVja1N0eWxlcyhcInRvb2x0aXBcIik7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG93bmVyRG9jdW1lbnQgPSBnZXRPd25lckRvY3VtZW50KG93blJlZi5jdXJyZW50KTtcblxuICAgIGZ1bmN0aW9uIGxpc3RlbmVyKGV2ZW50KSB7XG4gICAgICBpZiAoKGV2ZW50LmtleSA9PT0gXCJFc2NhcGVcIiB8fCBldmVudC5rZXkgPT09IFwiRXNjXCIpICYmIHN0YXRlLnZhbHVlID09PSBUb29sdGlwU3RhdGVzLlZpc2libGUpIHtcbiAgICAgICAgc2VuZCh7XG4gICAgICAgICAgdHlwZTogVG9vbHRpcEV2ZW50cy5TZWxlY3RXaXRoS2V5Ym9hcmRcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBsaXN0ZW5lcik7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGxpc3RlbmVyKTtcbiAgICB9O1xuICB9LCBbXSk7XG4gIHVzZURpc2FibGVkVHJpZ2dlck9uU2FmYXJpKHtcbiAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgaXNWaXNpYmxlOiBpc1Zpc2libGUsXG4gICAgcmVmOiBvd25SZWZcbiAgfSk7XG5cbiAgZnVuY3Rpb24gd3JhcE1vdXNlRXZlbnQodGhlaXJIYW5kbGVyLCBvdXJIYW5kbGVyKSB7XG4gICAgLy8gVXNlIGludGVybmFsIE1vdXNlRXZlbnQgaGFuZGxlciBvbmx5IGlmIFBvaW50ZXJFdmVudCBpcyBub3Qgc3VwcG9ydGVkXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgXCJQb2ludGVyRXZlbnRcIiBpbiB3aW5kb3cpIHtcbiAgICAgIHJldHVybiB0aGVpckhhbmRsZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBvc2VFdmVudEhhbmRsZXJzKHRoZWlySGFuZGxlciwgb3VySGFuZGxlcik7XG4gIH1cblxuICBmdW5jdGlvbiB3cmFwUG9pbnRlckV2ZW50SGFuZGxlcihoYW5kbGVyKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIG9uUG9pbnRlckV2ZW50KGV2ZW50KSB7XG4gICAgICAvLyBIYW5kbGUgcG9pbnRlciBldmVudHMgb25seSBmcm9tIG1vdXNlIGRldmljZVxuICAgICAgaWYgKGV2ZW50LnBvaW50ZXJUeXBlICE9PSBcIm1vdXNlXCIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBoYW5kbGVyKGV2ZW50KTtcbiAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlTW91c2VFbnRlcigpIHtcbiAgICBzZW5kKHtcbiAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuTW91c2VFbnRlcixcbiAgICAgIGlkOiBpZFxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlTW91c2VNb3ZlKCkge1xuICAgIHNlbmQoe1xuICAgICAgdHlwZTogVG9vbHRpcEV2ZW50cy5Nb3VzZU1vdmUsXG4gICAgICBpZDogaWRcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZU1vdXNlTGVhdmUoKSB7XG4gICAgc2VuZCh7XG4gICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLk1vdXNlTGVhdmVcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZU1vdXNlRG93bigpIHtcbiAgICAvLyBBbGxvdyBxdWljayBjbGljayBmcm9tIG9uZSB0b29sIHRvIGFub3RoZXJcbiAgICBpZiAoc3RhdGUuY29udGV4dC5pZCA9PT0gaWQpIHtcbiAgICAgIHNlbmQoe1xuICAgICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLk1vdXNlRG93blxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlRm9jdXMoKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlmICh3aW5kb3cuX19SRUFDSF9ESVNBQkxFX1RPT0xUSVBTKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2VuZCh7XG4gICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLkZvY3VzLFxuICAgICAgaWQ6IGlkXG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVCbHVyKCkge1xuICAgIC8vIEFsbG93IHF1aWNrIGNsaWNrIGZyb20gb25lIHRvb2wgdG8gYW5vdGhlclxuICAgIGlmIChzdGF0ZS5jb250ZXh0LmlkID09PSBpZCkge1xuICAgICAgc2VuZCh7XG4gICAgICAgIHR5cGU6IFRvb2x0aXBFdmVudHMuQmx1clxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlS2V5RG93bihldmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09IFwiRW50ZXJcIiB8fCBldmVudC5rZXkgPT09IFwiIFwiKSB7XG4gICAgICBzZW5kKHtcbiAgICAgICAgdHlwZTogVG9vbHRpcEV2ZW50cy5TZWxlY3RXaXRoS2V5Ym9hcmRcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHZhciB0cmlnZ2VyID0ge1xuICAgIC8vIFRoZSBlbGVtZW50IHRoYXQgdHJpZ2dlcnMgdGhlIHRvb2x0aXAgcmVmZXJlbmNlcyB0aGUgdG9vbHRpcCBlbGVtZW50IHdpdGhcbiAgICAvLyBgYXJpYS1kZXNjcmliZWRieWAuXG4gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLXByYWN0aWNlcy0xLjIvI3Rvb2x0aXBcbiAgICBcImFyaWEtZGVzY3JpYmVkYnlcIjogaXNWaXNpYmxlID8gbWFrZUlkKFwidG9vbHRpcFwiLCBpZCkgOiB1bmRlZmluZWQsXG4gICAgXCJkYXRhLXN0YXRlXCI6IGlzVmlzaWJsZSA/IFwidG9vbHRpcC12aXNpYmxlXCIgOiBcInRvb2x0aXAtaGlkZGVuXCIsXG4gICAgXCJkYXRhLXJlYWNoLXRvb2x0aXAtdHJpZ2dlclwiOiBcIlwiLFxuICAgIHJlZjogcmVmLFxuICAgIG9uUG9pbnRlckVudGVyOiBjb21wb3NlRXZlbnRIYW5kbGVycyhvblBvaW50ZXJFbnRlciwgd3JhcFBvaW50ZXJFdmVudEhhbmRsZXIoaGFuZGxlTW91c2VFbnRlcikpLFxuICAgIG9uUG9pbnRlck1vdmU6IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uUG9pbnRlck1vdmUsIHdyYXBQb2ludGVyRXZlbnRIYW5kbGVyKGhhbmRsZU1vdXNlTW92ZSkpLFxuICAgIG9uUG9pbnRlckxlYXZlOiBjb21wb3NlRXZlbnRIYW5kbGVycyhvblBvaW50ZXJMZWF2ZSwgd3JhcFBvaW50ZXJFdmVudEhhbmRsZXIoaGFuZGxlTW91c2VMZWF2ZSkpLFxuICAgIG9uUG9pbnRlckRvd246IGNvbXBvc2VFdmVudEhhbmRsZXJzKG9uUG9pbnRlckRvd24sIHdyYXBQb2ludGVyRXZlbnRIYW5kbGVyKGhhbmRsZU1vdXNlRG93bikpLFxuICAgIG9uTW91c2VFbnRlcjogd3JhcE1vdXNlRXZlbnQob25Nb3VzZUVudGVyLCBoYW5kbGVNb3VzZUVudGVyKSxcbiAgICBvbk1vdXNlTW92ZTogd3JhcE1vdXNlRXZlbnQob25Nb3VzZU1vdmUsIGhhbmRsZU1vdXNlTW92ZSksXG4gICAgb25Nb3VzZUxlYXZlOiB3cmFwTW91c2VFdmVudChvbk1vdXNlTGVhdmUsIGhhbmRsZU1vdXNlTGVhdmUpLFxuICAgIG9uTW91c2VEb3duOiB3cmFwTW91c2VFdmVudChvbk1vdXNlRG93biwgaGFuZGxlTW91c2VEb3duKSxcbiAgICBvbkZvY3VzOiBjb21wb3NlRXZlbnRIYW5kbGVycyhvbkZvY3VzLCBoYW5kbGVGb2N1cyksXG4gICAgb25CbHVyOiBjb21wb3NlRXZlbnRIYW5kbGVycyhvbkJsdXIsIGhhbmRsZUJsdXIpLFxuICAgIG9uS2V5RG93bjogY29tcG9zZUV2ZW50SGFuZGxlcnMob25LZXlEb3duLCBoYW5kbGVLZXlEb3duKVxuICB9O1xuICB2YXIgdG9vbHRpcCA9IHtcbiAgICBpZDogaWQsXG4gICAgdHJpZ2dlclJlY3Q6IHRyaWdnZXJSZWN0LFxuICAgIGlzVmlzaWJsZTogaXNWaXNpYmxlXG4gIH07XG4gIHJldHVybiBbdHJpZ2dlciwgdG9vbHRpcCwgaXNWaXNpYmxlXTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqXG4gKiBUb29sdGlwXG4gKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC90b29sdGlwI3Rvb2x0aXBcbiAqL1xuXG5cbnZhciBUb29sdGlwID0gLyojX19QVVJFX18qL2ZvcndhcmRSZWYoZnVuY3Rpb24gKF9yZWYyLCBmb3J3YXJkZWRSZWYpIHtcbiAgdmFyIGNoaWxkcmVuID0gX3JlZjIuY2hpbGRyZW4sXG4gICAgICBsYWJlbCA9IF9yZWYyLmxhYmVsLFxuICAgICAgREVQUkVDQVRFRF9hcmlhTGFiZWwgPSBfcmVmMi5hcmlhTGFiZWwsXG4gICAgICBpZCA9IF9yZWYyLmlkLFxuICAgICAgREVCVUdfU1RZTEUgPSBfcmVmMi5ERUJVR19TVFlMRSxcbiAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3JlZjIsIF9leGNsdWRlZCk7XG5cbiAgdmFyIGNoaWxkID0gQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XG4gIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHdhcm5pbmcoIURFUFJFQ0FURURfYXJpYUxhYmVsLCBcIlRoZSBgYXJpYUxhYmVsIHByb3AgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGZyb20gQHJlYWNoL3Rvb2x0aXAgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiBSZWFjaCBVSS4gUGxlYXNlIHVzZSBgYXJpYS1sYWJlbGAgaW5zdGVhZC5cIikgOiB2b2lkIDA7IC8vIFdlIG5lZWQgdG8gcGFzcyBzb21lIHByb3BlcnRpZXMgZnJvbSB0aGUgY2hpbGQgaW50byB1c2VUb29sdGlwXG4gIC8vIHRvIG1ha2Ugc3VyZSB1c2VycyBjYW4gbWFpbnRhaW4gY29udHJvbCBvdmVyIHRoZSB0cmlnZ2VyJ3MgcmVmIGFuZCBldmVudHNcblxuICB2YXIgX3VzZVRvb2x0aXAgPSB1c2VUb29sdGlwKHtcbiAgICBpZDogaWQsXG4gICAgb25Qb2ludGVyRW50ZXI6IGNoaWxkLnByb3BzLm9uUG9pbnRlckVudGVyLFxuICAgIG9uUG9pbnRlck1vdmU6IGNoaWxkLnByb3BzLm9uUG9pbnRlck1vdmUsXG4gICAgb25Qb2ludGVyTGVhdmU6IGNoaWxkLnByb3BzLm9uUG9pbnRlckxlYXZlLFxuICAgIG9uUG9pbnRlckRvd246IGNoaWxkLnByb3BzLm9uUG9pbnRlckRvd24sXG4gICAgb25Nb3VzZUVudGVyOiBjaGlsZC5wcm9wcy5vbk1vdXNlRW50ZXIsXG4gICAgb25Nb3VzZU1vdmU6IGNoaWxkLnByb3BzLm9uTW91c2VNb3ZlLFxuICAgIG9uTW91c2VMZWF2ZTogY2hpbGQucHJvcHMub25Nb3VzZUxlYXZlLFxuICAgIG9uTW91c2VEb3duOiBjaGlsZC5wcm9wcy5vbk1vdXNlRG93bixcbiAgICBvbkZvY3VzOiBjaGlsZC5wcm9wcy5vbkZvY3VzLFxuICAgIG9uQmx1cjogY2hpbGQucHJvcHMub25CbHVyLFxuICAgIG9uS2V5RG93bjogY2hpbGQucHJvcHMub25LZXlEb3duLFxuICAgIGRpc2FibGVkOiBjaGlsZC5wcm9wcy5kaXNhYmxlZCxcbiAgICByZWY6IGNoaWxkLnJlZixcbiAgICBERUJVR19TVFlMRTogREVCVUdfU1RZTEVcbiAgfSksXG4gICAgICB0cmlnZ2VyID0gX3VzZVRvb2x0aXBbMF0sXG4gICAgICB0b29sdGlwID0gX3VzZVRvb2x0aXBbMV07XG5cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KEZyYWdtZW50LCBudWxsLCAvKiNfX1BVUkVfXyovY2xvbmVFbGVtZW50KGNoaWxkLCB0cmlnZ2VyKSwgLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoVG9vbHRpcFBvcHVwLCBfZXh0ZW5kcyh7XG4gICAgcmVmOiBmb3J3YXJkZWRSZWYsXG4gICAgbGFiZWw6IGxhYmVsLFxuICAgIFwiYXJpYS1sYWJlbFwiOiBERVBSRUNBVEVEX2FyaWFMYWJlbFxuICB9LCB0b29sdGlwLCBwcm9wcykpKTtcbn0pO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIFRvb2x0aXAuZGlzcGxheU5hbWUgPSBcIlRvb2x0aXBcIjtcbiAgVG9vbHRpcC5wcm9wVHlwZXMgPSB7XG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gICAgbGFiZWw6IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gICAgYXJpYUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nXG4gIH07XG59IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8qKlxuICogVG9vbHRpcFBvcHVwXG4gKlxuICogQHNlZSBEb2NzIGh0dHBzOi8vcmVhY2gudGVjaC90b29sdGlwI3Rvb2x0aXBwb3B1cFxuICovXG5cblxudmFyIFRvb2x0aXBQb3B1cCA9IC8qI19fUFVSRV9fKi9mb3J3YXJkUmVmKGZ1bmN0aW9uIFRvb2x0aXBQb3B1cChfcmVmMywgZm9yd2FyZFJlZikge1xuICB2YXIgbGFiZWwgPSBfcmVmMy5sYWJlbCxcbiAgICAgIERFUFJFQ0FURURfYXJpYUxhYmVsID0gX3JlZjMuYXJpYUxhYmVsLFxuICAgICAgaXNWaXNpYmxlID0gX3JlZjMuaXNWaXNpYmxlLFxuICAgICAgaWQgPSBfcmVmMy5pZCxcbiAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3JlZjMsIF9leGNsdWRlZDIpO1xuXG4gIHJldHVybiBpc1Zpc2libGUgPyAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChQb3J0YWwsIG51bGwsIC8qI19fUFVSRV9fKi9jcmVhdGVFbGVtZW50KFRvb2x0aXBDb250ZW50LCBfZXh0ZW5kcyh7XG4gICAgcmVmOiBmb3J3YXJkUmVmLFxuICAgIGxhYmVsOiBsYWJlbCxcbiAgICBcImFyaWEtbGFiZWxcIjogREVQUkVDQVRFRF9hcmlhTGFiZWwsXG4gICAgaXNWaXNpYmxlOiBpc1Zpc2libGVcbiAgfSwgcHJvcHMsIHtcbiAgICBpZDogbWFrZUlkKFwidG9vbHRpcFwiLCBTdHJpbmcoaWQpKVxuICB9KSkpIDogbnVsbDtcbn0pO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIFRvb2x0aXBQb3B1cC5kaXNwbGF5TmFtZSA9IFwiVG9vbHRpcFBvcHVwXCI7XG4gIFRvb2x0aXBQb3B1cC5wcm9wVHlwZXMgPSB7XG4gICAgbGFiZWw6IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gICAgYXJpYUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHBvc2l0aW9uOiBQcm9wVHlwZXMuZnVuY1xuICB9O1xufVxuLyoqXG4gKiBUb29sdGlwQ29udGVudFxuICpcbiAqIFdlIG5lZWQgYSBzZXBhcmF0ZSBjb21wb25lbnQgc28gdGhhdCB1c2VSZWN0IHdvcmtzIGluc2lkZSB0aGUgcG9ydGFsLlxuICpcbiAqIEBzZWUgRG9jcyBodHRwczovL3JlYWNoLnRlY2gvdG9vbHRpcCN0b29sdGlwY29udGVudFxuICovXG5cblxudmFyIFRvb2x0aXBDb250ZW50ID0gLyojX19QVVJFX18qL2ZvcndhcmRSZWYoZnVuY3Rpb24gVG9vbHRpcENvbnRlbnQoX3JlZjQsIGZvcndhcmRlZFJlZikge1xuICB2YXIgYXJpYUxhYmVsID0gX3JlZjQuYXJpYUxhYmVsLFxuICAgICAgcmVhbEFyaWFMYWJlbCA9IF9yZWY0W1wiYXJpYS1sYWJlbFwiXSxcbiAgICAgIF9yZWY0JGFzID0gX3JlZjQuYXMsXG4gICAgICBDb21wID0gX3JlZjQkYXMgPT09IHZvaWQgMCA/IFwiZGl2XCIgOiBfcmVmNCRhcyxcbiAgICAgIGlkID0gX3JlZjQuaWQsXG4gICAgICBpc1Zpc2libGUgPSBfcmVmNC5pc1Zpc2libGUsXG4gICAgICBsYWJlbCA9IF9yZWY0LmxhYmVsLFxuICAgICAgX3JlZjQkcG9zaXRpb24gPSBfcmVmNC5wb3NpdGlvbixcbiAgICAgIHBvc2l0aW9uID0gX3JlZjQkcG9zaXRpb24gPT09IHZvaWQgMCA/IHBvc2l0aW9uVG9vbHRpcCA6IF9yZWY0JHBvc2l0aW9uLFxuICAgICAgc3R5bGUgPSBfcmVmNC5zdHlsZSxcbiAgICAgIHRyaWdnZXJSZWN0ID0gX3JlZjQudHJpZ2dlclJlY3QsXG4gICAgICBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKF9yZWY0LCBfZXhjbHVkZWQzKTtcblxuICAvLyBUaGUgZWxlbWVudCB0aGF0IHNlcnZlcyBhcyB0aGUgdG9vbHRpcCBjb250YWluZXIgaGFzIHJvbGUgdG9vbHRpcC5cbiAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLXByYWN0aWNlcy0xLjIvI3Rvb2x0aXAgV2hlbiBhbiBhcHAgcGFzc2VzXG4gIC8vIGFuIGBhcmlhLWxhYmVsYCwgd2UgYWN0dWFsbHkgd2FudCB0byBpbXBsZW1lbnQgYHJvbGU9XCJ0b29sdGlwXCJgIG9uIGFcbiAgLy8gdmlzdWFsbHkgaGlkZGVuIGVsZW1lbnQgaW5zaWRlIG9mIHRoZSB0cmlnZ2VyLiBJbiB0aGVzZSBjYXNlcyB3ZSB3YW50IHRoZVxuICAvLyBzY3JlZW4gcmVhZGVyIHVzZXIgdG8ga25vdyBib3RoIHRoZSBjb250ZW50IGluIHRoZSB0b29sdGlwLCBidXQgYWxzbyB0aGVcbiAgLy8gY29udGVudCBpbiB0aGUgYmFkZ2UuIEZvciBzY3JlZW4gcmVhZGVyIHVzZXJzLCB0aGUgb25seSBjb250ZW50IGFubm91bmNlZFxuICAvLyB0byB0aGVtIGlzIHdoYXRldmVyIGlzIGluIHRoZSB0b29sdGlwLlxuICB2YXIgaGFzQXJpYUxhYmVsID0gKHJlYWxBcmlhTGFiZWwgfHwgYXJpYUxhYmVsKSAhPSBudWxsO1xuICB2YXIgb3duUmVmID0gdXNlUmVmKG51bGwpO1xuICB2YXIgcmVmID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgb3duUmVmKTtcbiAgdmFyIHRvb2x0aXBSZWN0ID0gdXNlUmVjdChvd25SZWYsIHtcbiAgICBvYnNlcnZlOiBpc1Zpc2libGVcbiAgfSk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovY3JlYXRlRWxlbWVudChGcmFnbWVudCwgbnVsbCwgLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoQ29tcCwgX2V4dGVuZHMoe1xuICAgIHJvbGU6IGhhc0FyaWFMYWJlbCA/IHVuZGVmaW5lZCA6IFwidG9vbHRpcFwiXG4gIH0sIHByb3BzLCB7XG4gICAgcmVmOiByZWYsXG4gICAgXCJkYXRhLXJlYWNoLXRvb2x0aXBcIjogXCJcIixcbiAgICBpZDogaGFzQXJpYUxhYmVsID8gdW5kZWZpbmVkIDogaWQsXG4gICAgc3R5bGU6IF9leHRlbmRzKHt9LCBzdHlsZSwgZ2V0U3R5bGVzKHBvc2l0aW9uLCB0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QpKVxuICB9KSwgbGFiZWwpLCBoYXNBcmlhTGFiZWwgJiYgLyojX19QVVJFX18qL2NyZWF0ZUVsZW1lbnQoVmlzdWFsbHlIaWRkZW4sIHtcbiAgICByb2xlOiBcInRvb2x0aXBcIixcbiAgICBpZDogaWRcbiAgfSwgcmVhbEFyaWFMYWJlbCB8fCBhcmlhTGFiZWwpKTtcbn0pO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIFRvb2x0aXBDb250ZW50LmRpc3BsYXlOYW1lID0gXCJUb29sdGlwQ29udGVudFwiO1xuICBUb29sdGlwQ29udGVudC5wcm9wVHlwZXMgPSB7fTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuXG5mdW5jdGlvbiBnZXRTdHlsZXMocG9zaXRpb24sIHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCkge1xuICB2YXIgaGF2ZW50TWVhc3VyZWRUb29sdGlwWWV0ID0gIXRvb2x0aXBSZWN0O1xuXG4gIGlmIChoYXZlbnRNZWFzdXJlZFRvb2x0aXBZZXQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmlzaWJpbGl0eTogXCJoaWRkZW5cIlxuICAgIH07XG4gIH1cblxuICByZXR1cm4gcG9zaXRpb24odHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KTtcbn0gLy8gRGVmYXVsdCBvZmZzZXQgZnJvbSB0aGUgdHJpZ2dlciAoZS5nLiwgaWYgdGhlIHRvb2x0aXAgaXMgcG9zaXRpb25lZCBhYm92ZSxcbi8vIHRoZXJlIHdpbGwgYmUgOHB4IGJldHdlZW4gdGhlIGJvdHRvbSBvZiB0aGUgdG9vbHRpcCBhbmQgdGhlIHRvcCBvZiB0aGUgdHJpZ2dlcikuXG4vLyBJdCBmZWVscyBhd2t3YXJkIHdoZW4gaXQncyBwZXJmZWN0bHkgYWxpZ25lZCB3LyB0aGUgdHJpZ2dlclxuXG5cbnZhciBPRkZTRVRfREVGQVVMVCA9IDg7XG52YXIgcG9zaXRpb25Ub29sdGlwID0gZnVuY3Rpb24gcG9zaXRpb25Ub29sdGlwKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCwgb2Zmc2V0KSB7XG4gIGlmIChvZmZzZXQgPT09IHZvaWQgMCkge1xuICAgIG9mZnNldCA9IE9GRlNFVF9ERUZBVUxUO1xuICB9XG5cbiAgdmFyIF9nZXREb2N1bWVudERpbWVuc2lvbiA9IGdldERvY3VtZW50RGltZW5zaW9ucygpLFxuICAgICAgd2luZG93V2lkdGggPSBfZ2V0RG9jdW1lbnREaW1lbnNpb24ud2lkdGgsXG4gICAgICB3aW5kb3dIZWlnaHQgPSBfZ2V0RG9jdW1lbnREaW1lbnNpb24uaGVpZ2h0O1xuXG4gIGlmICghdHJpZ2dlclJlY3QgfHwgIXRvb2x0aXBSZWN0KSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgdmFyIGNvbGxpc2lvbnMgPSB7XG4gICAgdG9wOiB0cmlnZ2VyUmVjdC50b3AgLSB0b29sdGlwUmVjdC5oZWlnaHQgPCAwLFxuICAgIHJpZ2h0OiB3aW5kb3dXaWR0aCA8IHRyaWdnZXJSZWN0LmxlZnQgKyB0b29sdGlwUmVjdC53aWR0aCxcbiAgICBib3R0b206IHdpbmRvd0hlaWdodCA8IHRyaWdnZXJSZWN0LmJvdHRvbSArIHRvb2x0aXBSZWN0LmhlaWdodCArIG9mZnNldCxcbiAgICBsZWZ0OiB0cmlnZ2VyUmVjdC5sZWZ0IC0gdG9vbHRpcFJlY3Qud2lkdGggPCAwXG4gIH07XG4gIHZhciBkaXJlY3Rpb25SaWdodCA9IGNvbGxpc2lvbnMucmlnaHQgJiYgIWNvbGxpc2lvbnMubGVmdDtcbiAgdmFyIGRpcmVjdGlvblVwID0gY29sbGlzaW9ucy5ib3R0b20gJiYgIWNvbGxpc2lvbnMudG9wO1xuICByZXR1cm4ge1xuICAgIGxlZnQ6IGRpcmVjdGlvblJpZ2h0ID8gdHJpZ2dlclJlY3QucmlnaHQgLSB0b29sdGlwUmVjdC53aWR0aCArIHdpbmRvdy5wYWdlWE9mZnNldCArIFwicHhcIiA6IHRyaWdnZXJSZWN0LmxlZnQgKyB3aW5kb3cucGFnZVhPZmZzZXQgKyBcInB4XCIsXG4gICAgdG9wOiBkaXJlY3Rpb25VcCA/IHRyaWdnZXJSZWN0LnRvcCAtIG9mZnNldCAtIHRvb2x0aXBSZWN0LmhlaWdodCArIHdpbmRvdy5wYWdlWU9mZnNldCArIFwicHhcIiA6IHRyaWdnZXJSZWN0LnRvcCArIG9mZnNldCArIHRyaWdnZXJSZWN0LmhlaWdodCArIHdpbmRvdy5wYWdlWU9mZnNldCArIFwicHhcIlxuICB9O1xufTtcbi8qKlxuICogVGhpcyBpcyBhIHdvcmthcm91bmQgZm9yIHVzaW5nIHRvb2x0aXBzIHdpdGggZGlzYWJsZWQgY29udHJvbHMgaW4gU2FmYXJpLlxuICogU2FmYXJpIGZpcmVzIGBwb2ludGVyZW50ZXJgIGJ1dCBkb2VzIG5vdCBmaXJlIGBwb2ludGVybGVhdmVgLCBhbmRcbiAqIGBvblBvaW50ZXJFdmVudExlYXZlYCBhZGRlZCB0byB0aGUgdHJpZ2dlciBlbGVtZW50IHdpbGwgbm90IHdvcmsuXG4gKlxuICogVE9ETzogV2UgbWF5IHJlbW92ZSBvciBtb2RpaWZ5IHRoaXMgYmVoYXZpb3IgaW4gYSBmdXR1cmUgdmVyc2lvbi4gRGlyZWN0aW9uXG4gKiBmcm9tIFdBSS1BUklBIG5lZWRlZCBmb3IgZ3VpZGFuY2Ugb24gaGFuZGxpbmcgZGlzYWJsZWQgdHJpZ2dlcnMuIFRvb2x0aXBzXG4gKiBtdXN0IGJlIGFjY2Vzc2libGUgYnkga2V5Ym9hcmQsIGFuZCBkaXNhYmxlZCBmb3JtIGNvbnRyb2xzIGFyZSBnZW5lcmFsbHlcbiAqIGV4Y2x1ZGVkIGZyb20gdGhlIHRhYiBzZXF1ZW5jZS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjaC9yZWFjaC11aS9pc3N1ZXMvNTY0XG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvYXJpYS1wcmFjdGljZXMvaXNzdWVzLzEyOCNpc3N1ZWNvbW1lbnQtNTg4NjI1NzI3XG4gKi9cblxuZnVuY3Rpb24gdXNlRGlzYWJsZWRUcmlnZ2VyT25TYWZhcmkoX3JlZjUpIHtcbiAgdmFyIGRpc2FibGVkID0gX3JlZjUuZGlzYWJsZWQsXG4gICAgICBpc1Zpc2libGUgPSBfcmVmNS5pc1Zpc2libGUsXG4gICAgICByZWYgPSBfcmVmNS5yZWY7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCEodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBcIlBvaW50ZXJFdmVudFwiIGluIHdpbmRvdykgfHwgIWRpc2FibGVkIHx8ICFpc1Zpc2libGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgb3duZXJEb2N1bWVudCA9IGdldE93bmVyRG9jdW1lbnQocmVmLmN1cnJlbnQpO1xuXG4gICAgZnVuY3Rpb24gaGFuZGxlTW91c2VNb3ZlKGV2ZW50KSB7XG4gICAgICBpZiAoIWlzVmlzaWJsZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChldmVudC50YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50ICYmIGV2ZW50LnRhcmdldC5jbG9zZXN0KFwiW2RhdGEtcmVhY2gtdG9vbHRpcC10cmlnZ2VyXVtkYXRhLXN0YXRlPSd0b29sdGlwLXZpc2libGUnXVwiKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHNlbmQoe1xuICAgICAgICB0eXBlOiBUb29sdGlwRXZlbnRzLkdsb2JhbE1vdXNlTW92ZVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIGhhbmRsZU1vdXNlTW92ZSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCBoYW5kbGVNb3VzZU1vdmUpO1xuICAgIH07XG4gIH0sIFtkaXNhYmxlZCwgaXNWaXNpYmxlLCByZWZdKTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqXG4gKiBTZW5kIGFuIGV2ZW50IHRvIG91ciBzdGF0ZSBtYWNoaW5lIHRvIGZpbmQgdGhlIG5leHQgc3RhdGUgZnJvbSB0aGUgY3VycmVudFxuICogc3RhdGUgKyBhY3Rpb24uXG4gKlxuICogSXQgYWxzbyBtYW5hZ2VzIGxpZmVjeWNsZXMgb2YgdGhlIG1hY2hpbmUsIChlbnRlci9sZWF2ZSBob29rcyBvbiB0aGUgc3RhdGVcbiAqIGNoYXJ0KVxuICpcbiAqIEBwYXJhbSBldmVudFxuICogQHBhcmFtIHBheWxvYWRcbiAqL1xuXG5cbmZ1bmN0aW9uIHNlbmQoZXZlbnQpIHtcbiAgdmFyIF90cmFuc2l0aW9uID0gdHJhbnNpdGlvbihzdGF0ZSwgZXZlbnQpLFxuICAgICAgdmFsdWUgPSBfdHJhbnNpdGlvbi52YWx1ZSxcbiAgICAgIGNvbnRleHQgPSBfdHJhbnNpdGlvbi5jb250ZXh0LFxuICAgICAgY2hhbmdlZCA9IF90cmFuc2l0aW9uLmNoYW5nZWQ7XG5cbiAgaWYgKGNoYW5nZWQpIHtcbiAgICBzdGF0ZSA9IHtcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGNvbnRleHQ6IGNvbnRleHRcbiAgICB9O1xuICAgIG5vdGlmeSgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRyYW5zaXRpb24oY3VycmVudFN0YXRlLCBldmVudCkge1xuICB2YXIgc3RhdGVEZWYgPSBjaGFydC5zdGF0ZXNbY3VycmVudFN0YXRlLnZhbHVlXTtcbiAgdmFyIG5leHRTdGF0ZSA9IHN0YXRlRGVmICYmIHN0YXRlRGVmLm9uICYmIHN0YXRlRGVmLm9uW2V2ZW50LnR5cGVdOyAvLyBSZWFsbHkgdXNlZnVsIGZvciBkZWJ1Z2dpbmdcbiAgLy8gY29uc29sZS5sb2coeyBldmVudCwgc3RhdGUsIG5leHRTdGF0ZSwgY29udGV4dElkOiBjb250ZXh0LmlkIH0pO1xuICAvLyAhbmV4dFN0YXRlICYmIGNvbnNvbGUubG9nKFwibm8gdHJhbnNpdGlvbiB0YWtlblwiKTtcblxuICBpZiAoIW5leHRTdGF0ZSkge1xuICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgY3VycmVudFN0YXRlLCB7XG4gICAgICBjaGFuZ2VkOiBmYWxzZVxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHN0YXRlRGVmICYmIHN0YXRlRGVmLmxlYXZlKSB7XG4gICAgc3RhdGVEZWYubGVhdmUoY3VycmVudFN0YXRlLmNvbnRleHQsIGV2ZW50KTtcbiAgfVxuXG4gIGV2ZW50LnR5cGU7XG4gICAgICB2YXIgcGF5bG9hZCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKGV2ZW50LCBfZXhjbHVkZWQ0KTsgLy8gVE9ETzogVXNlIGFjdGlvbnMgaW5zdGVhZCBvZiBkaXJlY3RseSBzZXR0aW5nIGNvbnRleHRcblxuXG4gIHZhciBjb250ZXh0ID0gX2V4dGVuZHMoe30sIHN0YXRlLmNvbnRleHQsIHBheWxvYWQpO1xuXG4gIHZhciBuZXh0U3RhdGVWYWx1ZSA9IHR5cGVvZiBuZXh0U3RhdGUgPT09IFwic3RyaW5nXCIgPyBuZXh0U3RhdGUgOiBuZXh0U3RhdGUudGFyZ2V0O1xuICB2YXIgbmV4dERlZiA9IGNoYXJ0LnN0YXRlc1tuZXh0U3RhdGVWYWx1ZV07XG5cbiAgaWYgKG5leHREZWYgJiYgbmV4dERlZi5lbnRlcikge1xuICAgIG5leHREZWYuZW50ZXIoY3VycmVudFN0YXRlLmNvbnRleHQsIGV2ZW50KTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdmFsdWU6IG5leHRTdGF0ZVZhbHVlLFxuICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgY2hhbmdlZDogdHJ1ZVxuICB9O1xufVxuXG5mdW5jdGlvbiBpc1Rvb2x0aXBWaXNpYmxlKGlkLCBpbml0aWFsKSB7XG4gIHJldHVybiBzdGF0ZS5jb250ZXh0LmlkID09PSBpZCAmJiAoaW5pdGlhbCA/IHN0YXRlLnZhbHVlID09PSBUb29sdGlwU3RhdGVzLlZpc2libGUgOiBzdGF0ZS52YWx1ZSA9PT0gVG9vbHRpcFN0YXRlcy5WaXNpYmxlIHx8IHN0YXRlLnZhbHVlID09PSBUb29sdGlwU3RhdGVzLkxlYXZpbmdWaXNpYmxlKTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGRlZmF1bHQgVG9vbHRpcDtcbmV4cG9ydCB7IExFQVZFX1RJTUVPVVQsIE1PVVNFX1JFU1RfVElNRU9VVCwgVG9vbHRpcCwgVG9vbHRpcFBvcHVwLCBwb3NpdGlvblRvb2x0aXAsIHVzZVRvb2x0aXAgfTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///197\n\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\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\n}")},172(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 // removed by dead control flow\n{ 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 _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }\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\n}')},888(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 // removed by dead control flow\n{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODg4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFJQSxJQUFNQSxPQUFPLEdBQUcsU0FBVkEsT0FBT0EsQ0FBSUMsS0FBSyxFQUFLO0lBQ3ZCLElBQUlDLFVBQVUsTUFBQUMsTUFBQSxDQUFNRixLQUFLLENBQUNHLElBQUksSUFBSSxPQUFPLE9BQUFELE1BQUEsQ0FBSUYsS0FBSyxDQUFDSSxJQUFJLElBQUksRUFBRSxDQUFFO0lBQy9ELElBQUlDLFlBQVksR0FBR0wsS0FBSyxDQUFDTSxPQUFPO0lBRWhDLG9CQUNJQyxNQUFBLFlBQUFDLGFBQUE7TUFBU0MsU0FBUyxFQUFDO0lBQVksZ0JBQzNCRixNQUFBLFlBQUFDLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQXNCLGdCQUNqQ0YsTUFBQSxZQUFBQyxhQUFBLGFBQUksbUJBQWdCLENBQUMsZUFDckJELE1BQUEsWUFBQUMsYUFBQTtNQUFHQyxTQUFTLEVBQUM7SUFBSSxHQUFDLDZCQUE4QixDQUFDLGVBQ2pERixNQUFBLFlBQUFDLGFBQUEsQ0FBQ0UsWUFBQSxXQUFXO01BQ1JDLFNBQVMsRUFBQyx3Q0FBd0M7TUFDbERDLFNBQVMsRUFBQyx5Q0FBeUM7TUFDbkRDLFlBQVksRUFBRVosVUFBVztNQUN6QmEsT0FBTyxFQUFFVDtJQUFhLENBQ3pCLENBQ0EsQ0FDQSxDQUFDO0VBRWxCLENBQUM7RUFFRE4sT0FBTyxDQUFDZ0IsU0FBUyxHQUFHO0lBQ2hCWCxJQUFJLEVBQUVZLHFCQUFTLENBQUNDLE1BQU07SUFDdEJYLE9BQU8sRUFBRVUscUJBQVMsQ0FBQ0UsU0FBUyxDQUFDLENBQUNGLHFCQUFTLENBQUNHLEtBQUssRUFBRUgscUJBQVMsQ0FBQ0MsTUFBTSxDQUFDLENBQUM7SUFDakVkLElBQUksRUFBRWEscUJBQVMsQ0FBQ0M7RUFDcEIsQ0FBQztFQUFDLElBQUFHLFFBQUEsR0FBQUMsUUFBQSxjQUVhdEIsT0FBTztBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9jb21wb25lbnRzL0Vycm9yL0Vycm9yVUkuanN4P2Y0Y2UiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IENvbGxhcHNpYmxlIGZyb20gXCIuL0NvbGxhcHNpYmxlXCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5cbmNvbnN0IEVycm9yVUkgPSAocHJvcHMpID0+IHtcbiAgICBsZXQgZXJyb3JUaXRsZSA9IGAke3Byb3BzLnR5cGUgfHwgXCJFcnJvclwifSAke3Byb3BzLmNvZGUgfHwgXCJcIn1gO1xuICAgIGxldCBlcnJvckRldGFpbHMgPSBwcm9wcy5tZXNzYWdlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicGFnZS1lcnJvclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZXNwb25zaXZlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxoMT5XZeKAmXJlIHNvcnJ5LjwvaDE+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiaDJcIj5XZSBjYW5ub3QgYWNjZXNzIHRoaXMgcGFnZS48L3A+XG4gICAgICAgICAgICAgICAgPENvbGxhcHNpYmxlXG4gICAgICAgICAgICAgICAgICAgIHNob3dMYWJlbD1cIk9wZW4gdGVjaG5pY2FsIGRldGFpbHMgYWJvdXQgdGhlIGVycm9yXCJcbiAgICAgICAgICAgICAgICAgICAgaGlkZUxhYmVsPVwiQ2xvc2UgdGVjaG5pY2FsIGRldGFpbHMgYWJvdXQgdGhlIGVycm9yXCJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudFRpdGxlPXtlcnJvclRpdGxlfVxuICAgICAgICAgICAgICAgICAgICBjb250ZW50PXtlcnJvckRldGFpbHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgKTtcbn07XG5cbkVycm9yVUkucHJvcFR5cGVzID0ge1xuICAgIGNvZGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbWVzc2FnZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFycmF5LCBQcm9wVHlwZXMuc3RyaW5nXSksXG4gICAgdHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEVycm9yVUk7XG4iXSwibmFtZXMiOlsiRXJyb3JVSSIsInByb3BzIiwiZXJyb3JUaXRsZSIsImNvbmNhdCIsInR5cGUiLCJjb2RlIiwiZXJyb3JEZXRhaWxzIiwibWVzc2FnZSIsIl9yZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJfQ29sbGFwc2libGUiLCJzaG93TGFiZWwiLCJoaWRlTGFiZWwiLCJjb250ZW50VGl0bGUiLCJjb250ZW50IiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwib25lT2ZUeXBlIiwiYXJyYXkiLCJfZGVmYXVsdCIsIl9leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///888\n\n}')},694(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 // removed by dead control flow\n{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjk0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUlBO0FBQ0E7QUFDQTtFQUZBLElBR3FCQSxTQUFTLEdBQUFDLFFBQUEsMkJBQUFDLFlBQUE7RUFDMUI7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDSSxTQUFBRixVQUFZRyxPQUFPLEVBQUU7SUFBQUMsZUFBQSxPQUFBSixTQUFBO0lBQ2pCLElBQUFLLGdCQUFNLGVBQ0ZDLE1BQUEsWUFBQUMsYUFBQSxDQUFDQyxRQUFBLFdBQU87TUFDSkMsSUFBSSxFQUFFTixPQUFPLENBQUNNLElBQUs7TUFDbkJDLElBQUksRUFBRVAsT0FBTyxDQUFDTyxJQUFLO01BQ25CQyxPQUFPLEVBQUVSLE9BQU8sQ0FBQ1E7SUFBUSxDQUM1QixDQUFDLEVBQ0ZSLE9BQU8sQ0FBQ1MsV0FDWixDQUFDO0VBQ0wsQ0FBQztBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9jb21wb25lbnRzL0Vycm9yL2Vycm9yLmpzP2YwYzAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IEVycm9yVUkgZnJvbSBcIi4vRXJyb3JVSVwiO1xuXG4vKipcbiAqIFJlbmRlcnMgdGhlIFFQUCBFcnJvciBQYWdlIGNvbnRlbnQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVycm9yUGFnZSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBBbiBvYmplY3QgY29udGFpbmluZyBjb250ZW50IGFuZCBjb25maWcgZGF0YVxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRpb25zLnR5cGUgLSBUaGUgZXJyb3IgdHlwZVxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRpb25zLmNvZGUgLSBUaGUgZXJyb3IgY29kZVxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRpb25zLm1lc3NhZ2UgLSBUaGUgZXJyb3IgbWVzc2FnZVxuICAgICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IG9wdGlvbnMucm9vdEVsZW1lbnQgLSBFbGVtIGluc2lkZSB3aGljaCB0byByZW5kZXJcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHJlbmRlcihcbiAgICAgICAgICAgIDxFcnJvclVJXG4gICAgICAgICAgICAgICAgdHlwZT17b3B0aW9ucy50eXBlfVxuICAgICAgICAgICAgICAgIGNvZGU9e29wdGlvbnMuY29kZX1cbiAgICAgICAgICAgICAgICBtZXNzYWdlPXtvcHRpb25zLm1lc3NhZ2V9XG4gICAgICAgICAgICAvPixcbiAgICAgICAgICAgIG9wdGlvbnMucm9vdEVsZW1lbnRcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsiRXJyb3JQYWdlIiwiX2V4cG9ydHMiLCJfY3JlYXRlQ2xhc3MiLCJvcHRpb25zIiwiX2NsYXNzQ2FsbENoZWNrIiwicmVuZGVyIiwiX3JlYWN0IiwiY3JlYXRlRWxlbWVudCIsIl9FcnJvclVJIiwidHlwZSIsImNvZGUiLCJtZXNzYWdlIiwicm9vdEVsZW1lbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///694\n\n}')},756(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 // removed by dead control flow\n{ 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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bGUvLi9jb21wb25lbnRzL0Zvb3Rlci9Gb290ZXJVSS5qc3g/Y2Q4YiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5cbmltcG9ydCBMZWdhY3lGb290ZXJVSSBmcm9tIFwiLi9MZWdhY3lGb290ZXJVSVwiO1xuXG5jb25zdCBGb290ZXJVSSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGlzTmV3Rm9vdGVyID0gcHJvcHMuaXNOZXdGb290ZXI7XG4gICAgY29uc3QgaXNJRVN1cHBvcnRQYWdlID0gcHJvcHMuaXNJRVN1cHBvcnRQYWdlO1xuICAgIGNvbnN0IHNpZ25VcE5vd0xpbmsgPSBwcm9wcy5zaG93SGNkUmVzZWFyY2hcbiAgICAgICAgPyBcIi9hYm91dC9oY2QtcmVzZWFyY2hcIlxuICAgICAgICA6IFwibWFpbHRvOm1hZGllQGNtcy5oaHMuZ292P3N1YmplY3Q9U2lnbiB1cCBmb3IgZmVlZGJhY2sgc2Vzc2lvbnNcIjtcblxuICAgIC8vIERlZmF1bHQgZm9vdGVyIGFzc2V0c1xuICAgIGNvbnN0IGFzc2V0cyA9IHtcbiAgICAgICAgLi4ue1xuICAgICAgICAgICAgaGhzTG9nbzogKFxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaGhzLWxvZ29cIlxuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJEZXBhcnRtZW50IG9mIEhlYWx0aCAmYW1wOyBIdW1hbiBTZXJ2aWNlcyBVU0FcIlxuICAgICAgICAgICAgICAgICAgICBzcmM9XCIvaW1hZ2VzL2hocy1sb2dvLWJsYWNrLnN2Z1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBtYWRpZUxvZ286IChcbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInFwcC1sb2dvXCJcbiAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2ltYWdlcy9xcHBfbG9nb19yZ2JfY29sb3IucG5nXCJcbiAgICAgICAgICAgICAgICAgICAgYWx0PVwiTUFEaUUgTWVhc3VyZSBBdXRob3JpbmcgRGV2ZWxvcG1lbnQgSW50ZWdyYXRlZCBFbnZpcm9ubWVudCBsb2dvXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4ucHJvcHMuYXNzZXRzLFxuICAgIH07XG5cbiAgICBjb25zdCBzZXRMaW5rID0gKGxpbmspID0+IHtcbiAgICAgICAgcmV0dXJuIGlzSUVTdXBwb3J0UGFnZSA/IFwiL1wiIDogbGluaztcbiAgICB9O1xuXG4gICAgaWYgKGlzTmV3Rm9vdGVyKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHshaXNJRVN1cHBvcnRQYWdlICYmIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmZWVkYmFjay1zZXNzaW9uLXNpZ24tdXBcIiAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPGZvb3RlciBhcmlhLWxhYmVsPVwiU2l0ZSBmb290ZXJcIiBjbGFzc05hbWU9XCJnbG9iYWwtZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnVpbGQtdmVyc2lvblwiIGlkPVwiYnVpbGQtdmVyc2lvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3Byb3BzLmJ1aWxkVmVyc2lvbn1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZXNwb25zaXZlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJvdGhlci1saW5rc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxociBjbGFzc05hbWU9XCJkaXZpZGVyLXRvcFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cInNtYWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17c2V0TGluayhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJodHRwczovL2hhcnAuY21zLmdvdi9sb2dpbi90ZXJtcy1vZi11c2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlRlcm1zIG9mIFVzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuVGVybXNPZlNlcnZpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJUZXJtcyBvZiBVc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlcm1zIG9mIFVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwiZGl2aWRlclwiPjwvbGk+e1wiIFwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e3NldExpbmsoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaHR0cHM6Ly93d3cuY21zLmdvdi9wcml2YWN5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJQcml2YWN5IFBvbGljeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuUHJpdmFjeVBvbGljeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIlByaXZhY3kgUG9saWN5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcml2YWN5IFBvbGljeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3NOYW1lPVwiZGl2aWRlclwiPjwvbGk+e1wiIFwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e3NldExpbmsoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaHR0cHM6Ly93d3cuaGhzLmdvdi93ZWIvZ292ZXJuYW5jZS9kaWdpdGFsLXN0cmF0ZWd5L2l0LXBvbGljeS1hcmNoaXZlL2hocy1ydWxlcy1vZi1iZWhhdmlvci1mb3ItdGhlLXVzZS1vZi1oaHMtaW5mb3JtYXRpb24tYW5kLWl0LXJlc291cmNlcy1wb2xpY3kuaHRtbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiUnVsZXMgb2YgQmVoYXZpb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiT3BlblJ1bGVzb2ZCZWhhdmlvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIlJ1bGVzIG9mIEJlaGF2aW9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlcyBvZiBCZWhhdmlvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGhyIGNsYXNzTmFtZT1cImRpdmlkZXItYm90dG9tXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJxcHAtaGhzLWxvZ28tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJxcHAtbG9nby1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Fzc2V0cy5xcHBMb2dvfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGhzLWxvZ28tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthc3NldHMuaGhzTG9nb31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIGZlZGVyYWwgZ292ZXJubWVudCB3ZWJzaXRlIG1hbmFnZWQgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWlkIGZvciBieSB0aGUgVS5TIENlbnRlcnMgZm9yIE1lZGljYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYW1wOyBNZWRpY2FpZCBTZXJ2aWNlcy4gNzUwMCBTZWN1cml0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQm91bGV2YXJkLCBCYWx0aW1vcmUgTUQgMjEyNDRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZm9vdGVyPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAgIDxMZWdhY3lGb290ZXJVSVxuICAgICAgICAgICAgYnVpbGRWZXJzaW9uPXtwcm9wcy5idWlsZFZlcnNpb259XG4gICAgICAgICAgICBpc0Z1bGxXaWR0aD17cHJvcHMuaXNGdWxsV2lkdGh9XG4gICAgICAgICAgICBzaWduVXBOb3dMaW5rPXtzaWduVXBOb3dMaW5rfVxuICAgICAgICAvPlxuICAgICk7XG59O1xuXG5Gb290ZXJVSS5wcm9wVHlwZXMgPSB7XG4gICAgYnVpbGRWZXJzaW9uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGlzRnVsbFdpZHRoOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBpc05ld0Zvb3RlcjogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNJRVN1cHBvcnRQYWdlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzaG93SGNkUmVzZWFyY2g6IFByb3BUeXBlcy5ib29sLFxuICAgIGFzc2V0czogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgICAgY21zTG9nbzogUHJvcFR5cGVzLmVsZW1lbnQsXG4gICAgICAgIG1hZGllTG9nbzogUHJvcFR5cGVzLmVsZW1lbnQsXG4gICAgfSksXG59O1xuXG5leHBvcnQgZGVmYXVsdCBGb290ZXJVSTtcbiJdLCJuYW1lcyI6WyJGb290ZXJVSSIsInByb3BzIiwiaXNOZXdGb290ZXIiLCJpc0lFU3VwcG9ydFBhZ2UiLCJzaWduVXBOb3dMaW5rIiwic2hvd0hjZFJlc2VhcmNoIiwiYXNzZXRzIiwiX29iamVjdFNwcmVhZCIsImhoc0xvZ28iLCJfcmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiYWx0Iiwic3JjIiwibWFkaWVMb2dvIiwic2V0TGluayIsImxpbmsiLCJGcmFnbWVudCIsImlkIiwiYnVpbGRWZXJzaW9uIiwiaHJlZiIsInFwcExvZ28iLCJfTGVnYWN5Rm9vdGVyVUkiLCJpc0Z1bGxXaWR0aCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImJvb2wiLCJzaGFwZSIsImNtc0xvZ28iLCJlbGVtZW50IiwiX2RlZmF1bHQiLCJfZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///756\n\n}')},193(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 // removed by dead control flow\n{ 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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SUFBSTtJQUMzQmpCLGFBQWEsRUFBRWUscUJBQVMsQ0FBQ0M7RUFDN0IsQ0FBQztFQUFDLElBQUFFLFFBQUEsR0FBQUMsUUFBQSxjQUVhdkIsY0FBYztBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9jb21wb25lbnRzL0Zvb3Rlci9MZWdhY3lGb290ZXJVSS5qc3g/OGVjOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5pbXBvcnQgSW5mb1RpcCBmcm9tIFwiLi4vSW5mb3RpcC9JbmZvdGlwXCI7XG5cbmNvbnN0IGluZm9UaXBMYWJlbCA9XG4gICAgXCJXaGVuIGRpYWxpbmcgNzExLCB5b3Ugd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGNvbm5lY3RlZCB0byBhIFRSUyBDb21tdW5pY2F0aW9ucyBBc3Npc3RhbnQgd2hvIHdpbGwgcmVsYXkgeW91ciBjb252ZXJzYXRpb24gdG8gdGhlIGhlbHAgZGVzayBhZ2VudCB3aXRoIHN0cmljdCBjb25maWRlbnRpYWxpdHkuXCI7XG5cbmNvbnN0IExlZ2FjeUZvb3RlclVJID0gKHsgYnVpbGRWZXJzaW9uLCBpc0Z1bGxXaWR0aCwgc2lnblVwTm93TGluayB9KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGZvb3RlciBjbGFzc05hbWU9XCJsZWdhY3ktZm9vdGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJ1aWxkLXZlcnNpb25cIiBpZD1cImJ1aWxkLXZlcnNpb25cIj5cbiAgICAgICAgICAgICAgICB7YnVpbGRWZXJzaW9ufVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJhbm5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcImNvbnRhaW5lci1mdWxsLXdpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwicmVzcG9uc2l2ZS1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtc20tMTIgY29sLW1kLTEyIGNvbC1sZy0xMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkhlbHAgc2hhcGUgdGhlIGZ1dHVyZSBvZiBNQURpRTwvc3Bhbj4gYnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWNpcGF0aW5nIGluIHVzZXIgZmVlZGJhY2sgc2Vzc2lvbnMue1wiIFwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImVtYWlsLW5vdGUtbGlua1wiIGhyZWY9e3NpZ25VcE5vd0xpbmt9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZW5kIHVzIGFuIGVtYWlsIHRvIHNpZ24gdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgICAgICAgICBpc0Z1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcImNvbnRhaW5lci1mdWxsLXdpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJyZXNwb25zaXZlLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcImNvbC1zbS0xMiBjb2wtbWQtOCBjb2wtbGctOFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJjb2wtc20tOCBjb2wtbWQtOSBjb2wtbGctOVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibG9nby1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9pbWFnZXMvcXBwX2xvZ29fcmV2ZXJzZWQucG5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUXVhbGl0eSBQYXltZW50IFByb2dyYW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJxcHAtbG9nb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNvY2lhbC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNvY2lhbC1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3R3aXR0ZXIuY29tL0NNU0dvdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRm9sbG93IHVzIG9uIFR3aXR0ZXIuIFRoaXMgbGluayBvcGVucyBpbiBhIG5ldyB3aW5kb3cuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZ2x5cGhpY29uIGdseXBoaWNvbi10d2l0dGVyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzb2NpYWwtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTGFWN20yLXpGS3BqXzZmQnNxYXY2R3ZGenpxOW9PcGtrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJGb2xsb3cgdXMgb24gWW91VHViZS4gVGhpcyBsaW5rIG9wZW5zIGluIGEgbmV3IHdpbmRvdy5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJnbHlwaGljb24gZ2x5cGhpY29uLXlvdXR1YmVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaW5rc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL2RldmVsb3BlcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiT3BlbkRldmVsb3BlclRvb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiUXVhbGl0eSBQYXltZW50IFByb2dyYW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldmVsb3BlciBUb29sc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvYWJvdXQvcmVzb3VyY2UtbGlicmFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuRWR1Y2F0aW9uQW5kVG9vbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJFZHVjYXRpb24gYW5kIFRvb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZSBMaWJyYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi9nbG9zc2FyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuR2xvc3NhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJHbG9zc2FyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2xvc3NhcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL3Jlc291cmNlcy9oZWxwLWFuZC1zdXBwb3J0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIk9wZW5IZWxwQW5kU3VwcG9ydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIkhlbHAgYW5kIFN1cHBvcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhlbHAgYW5kIFN1cHBvcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJzbWFsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5jbXMuZ292L3ByaXZhY3lcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stY2F0ZWdvcnk9XCJGb290ZXJOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stYWN0aW9uPVwiT3BlblByaXZhY3lEaXNjbGFpbWVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWxhYmVsPVwiTm90aWNlIG9mIFByaXZhY3kgYW5kIERpc2NsYWltZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNUyBQcml2YWN5IE5vdGljZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkaXZpZGVyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5jbXMuZ292L0Fib3V0LUNNUy9BZ2VuY3ktSW5mb3JtYXRpb24vQWJvdXR3ZWJzaXRlL1BvbGljaWVzZm9yYWNjZXNzaWJpbGl0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1jYXRlZ29yeT1cIkZvb3Rlck5hdlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1hY3Rpb249XCJPcGVuQWNjZXNzaWJpbGl0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10cmFjay1sYWJlbD1cIkFjY2Vzc2liaWxpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjY2Vzc2liaWxpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZGl2aWRlclwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhZG9iZS1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2dldC5hZG9iZS5jb20vcmVhZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWNhdGVnb3J5PVwiRm9vdGVyTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRyYWNrLWFjdGlvbj1cIkRvd25sb2FkQWRvYmVSZWFkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdHJhY2stbGFiZWw9XCJBZG9iZVJlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJpY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbmtIcmVmPVwiI2ljb24tZG93bmxvYWRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvd25sb2FkIEFkb2JlIFJlYWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkaXZpZGVyXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJtYWlsdG86c2ItbWF0LWhlbHBAc2VtYW50aWNiaXRzLmNvbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZW1haWwtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2ItbWF0LWhlbHBAc2VtYW50aWNiaXRzLmNvbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLTg2Ni0yODgtODI5MiAoVFJTOiA3MTEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvb3Rlci10cnMtaW5mb3RpcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmZvVGlwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpZ2h0SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17aW5mb1RpcExhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJjb2wtc20tMTIgY29sLW1kLTQgY29sLWxnLTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiY29sLXNtLTQgY29sLW1kLTMgY29sLWxnLTNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhocy1sb2dvLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiRGVwYXJ0bWVudCBvZiBIZWFsdGggJmFtcDsgSHVtYW4gU2VydmljZXMgVVNBXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2ltYWdlcy9oaHMtbG9nby13aGl0ZS5zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb290ZXI+XG4gICAgKTtcbn07XG5cbkxlZ2FjeUZvb3RlclVJLnByb3BUeXBlcyA9IHtcbiAgICBidWlsZFZlcnNpb246IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgaXNGdWxsV2lkdGg6IFByb3BUeXBlcy5ib29sLFxuICAgIHNpZ25VcE5vd0xpbms6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBMZWdhY3lGb290ZXJVSTtcbiJdLCJuYW1lcyI6WyJpbmZvVGlwTGFiZWwiLCJMZWdhY3lGb290ZXJVSSIsIl9yZWYiLCJidWlsZFZlcnNpb24iLCJpc0Z1bGxXaWR0aCIsInNpZ25VcE5vd0xpbmsiLCJfcmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiaWQiLCJocmVmIiwic3JjIiwiYWx0IiwicmVsIiwidGFyZ2V0IiwieGxpbmtIcmVmIiwiX0luZm90aXAiLCJsaWdodEljb24iLCJsYWJlbCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImJvb2wiLCJfZGVmYXVsdCIsIl9leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///193\n\n}')},258(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 // removed by dead control flow\n{ 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.99",\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.99"\n }), options);\n }\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjU4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NIQUFBLDBCQUNBO0VBS0E7QUFDQTtBQUNBO0VBRkEsSUFHcUJBLE1BQU0sR0FBQUMsUUFBQSwyQkFBQUMsWUFBQTtFQUN2QjtBQUNKO0FBQ0E7QUFDQTtFQUNJLFNBQUFGLE9BQVlHLE9BQU8sRUFBRTtJQUFBQyxlQUFBLE9BQUFKLE1BQUE7SUFDakIsSUFBSUcsT0FBTyxDQUFDRSxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUU7TUFDdkMsSUFBQUMsZ0JBQU0sZUFDRkMsTUFBQSxZQUFBQyxhQUFBLENBQUNDLFNBQUEsV0FBUTtRQUNMQyxZQUFZLEVBQUVBLFFBQWE7UUFDM0JDLFdBQVcsRUFBRVIsT0FBTyxDQUFDUSxXQUFZO1FBQ2pDQyxXQUFXLEVBQUVULE9BQU8sQ0FBQ1MsV0FBWTtRQUNqQ0MsZUFBZSxFQUFFVixPQUFPLENBQUNVO01BQWdCLENBQzVDLENBQUMsRUFDRlYsT0FBTyxDQUFDVyxXQUNaLENBQUM7SUFDTCxDQUFDLE1BQU07TUFDSCxJQUFBUixnQkFBTSxlQUFDQyxNQUFBLFlBQUFDLGFBQUEsQ0FBQ0MsU0FBQSxXQUFRO1FBQUNDLFlBQVksRUFBRUEsUUFBWUE7TUFBQyxDQUFFLENBQUMsRUFBRVAsT0FBTyxDQUFDO0lBQzdEO0VBQ0osQ0FBQztBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9jb21wb25lbnRzL0Zvb3Rlci9mb290ZXIuanM/NDlhZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgYnVpbGRWZXJzaW9uICovXG4vLyBidWlsZFZlcnNpb24gYWJvdmUgaXMgZGVmaW5lZCBpbiB3ZWJwYWNrLmNvbmZpZy5qc1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IEZvb3RlclVJIGZyb20gXCIuL0Zvb3RlclVJXCI7XG5cbi8qKlxuICogUmVuZGVycyB0aGUgUVBQIEZvb3RlciBjb250ZW50LlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGb290ZXIge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgY29udGVudCBhbmQgY29uZmlnIGRhdGFcbiAgICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBvcHRpb25zLnJvb3RFbGVtZW50IC0gRWxlbSBpbnNpZGUgd2hpY2ggdG8gcmVuZGVyXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBpZiAob3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShcInJvb3RFbGVtZW50XCIpKSB7XG4gICAgICAgICAgICByZW5kZXIoXG4gICAgICAgICAgICAgICAgPEZvb3RlclVJXG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkVmVyc2lvbj17YnVpbGRWZXJzaW9ufVxuICAgICAgICAgICAgICAgICAgICBpc0Z1bGxXaWR0aD17b3B0aW9ucy5pc0Z1bGxXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgaXNOZXdGb290ZXI9e29wdGlvbnMuaXNOZXdGb290ZXJ9XG4gICAgICAgICAgICAgICAgICAgIHNob3dIY2RSZXNlYXJjaD17b3B0aW9ucy5zaG93SGNkUmVzZWFyY2h9XG4gICAgICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5yb290RWxlbWVudFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlbmRlcig8Rm9vdGVyVUkgYnVpbGRWZXJzaW9uPXtidWlsZFZlcnNpb259IC8+LCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJGb290ZXIiLCJfZXhwb3J0cyIsIl9jcmVhdGVDbGFzcyIsIm9wdGlvbnMiLCJfY2xhc3NDYWxsQ2hlY2siLCJoYXNPd25Qcm9wZXJ0eSIsInJlbmRlciIsIl9yZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJfRm9vdGVyVUkiLCJidWlsZFZlcnNpb24iLCJpc0Z1bGxXaWR0aCIsImlzTmV3Rm9vdGVyIiwic2hvd0hjZFJlc2VhcmNoIiwicm9vdEVsZW1lbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///258\n\n}')},877(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 // removed by dead control flow\n{ 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 n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(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 (-1 !== e.indexOf(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODc3LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUtBLElBQU1BLFdBQVcsR0FBRyxNQUFNO0VBRTFCLElBQU1DLFdBQVcsR0FBRztJQUNoQkMsVUFBVSxFQUFFLGFBQWE7SUFDekJDLE1BQU0sRUFBRSxDQUFDO0lBQ1RDLE9BQU8sRUFBRSxDQUFDO0lBQ1ZDLEtBQUssRUFBRUwsV0FBVztJQUNsQk0sTUFBTSxFQUFFTixXQUFXO0lBQ25CTyxrQkFBa0IsRUFBRSxNQUFNO0lBQzFCQyxnQkFBZ0IsRUFBRSxNQUFNO0lBQ3hCQyxVQUFVLEVBQUU7RUFDaEIsQ0FBQzs7RUFFRDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxJQUFNQyxhQUFhLEdBQUc7SUFDbEJDLFlBQVksRUFBRSxTQUFkQSxZQUFZQSxDQUFHQyxDQUFDLEVBQUs7TUFDakJBLENBQUMsQ0FBQ0MsZUFBZSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUNEQyxVQUFVLEVBQUUsU0FBWkEsVUFBVUEsQ0FBR0YsQ0FBQyxFQUFLO01BQ2YsSUFBSUcsUUFBUSxDQUFDQyxhQUFhLEtBQUtKLENBQUMsQ0FBQ0ssYUFBYSxFQUFFO1FBQzVDTCxDQUFDLENBQUNNLGNBQWMsQ0FBQyxDQUFDO1FBQ2xCTixDQUFDLENBQUNLLGFBQWEsQ0FBQ0UsS0FBSyxDQUFDLENBQUM7TUFDM0IsQ0FBQyxNQUFNO1FBQ0hQLENBQUMsQ0FBQ00sY0FBYyxDQUFDLENBQUM7UUFDbEJOLENBQUMsQ0FBQ0ssYUFBYSxDQUFDRyxJQUFJLENBQUMsQ0FBQztNQUMxQjtJQUNKO0VBQ0osQ0FBQzs7RUFFRDtBQUNBO0FBQ0E7RUFDQSxJQUFNQyxPQUFPLEdBQUcsU0FBVkEsT0FBT0EsQ0FBQUMsSUFBQTtJQUFBLElBQU1DLEtBQUssR0FBQUQsSUFBQSxDQUFMQyxLQUFLO01BQUVDLFNBQVMsR0FBQUYsSUFBQSxDQUFURSxTQUFTO01BQUtDLEtBQUssR0FBQUMsd0JBQUEsQ0FBQUosSUFBQSxFQUFBSyxTQUFBO0lBQUEsb0JBQ3pDQyxNQUFBLFlBQUFDLGFBQUEsQ0FBQ0MsUUFBQSxXQUFPLEVBQUFDLFFBQUE7TUFBQ1IsS0FBSyxFQUFFQTtJQUFNLEdBQUtFLEtBQUssZ0JBQzVCRyxNQUFBLFlBQUFDLGFBQUEsV0FBQUUsUUFBQTtNQUNJQyxJQUFJLEVBQUMsUUFBUTtNQUNiLGNBQVcsYUFBYTtNQUN4QkMsS0FBSyxFQUFFaEM7SUFBWSxHQUNmUyxhQUFhLGdCQUVqQmtCLE1BQUEsWUFBQUMsYUFBQSxDQUFDSyxZQUFBLFdBQVc7TUFDUlYsU0FBUyxFQUFFQSxTQUFVO01BQ3JCbkIsS0FBSyxFQUFFTCxXQUFZO01BQ25CTSxNQUFNLEVBQUVOLFdBQVk7TUFDcEIsbUJBQVc7TUFDWGlDLEtBQUssRUFBRTtRQUFFLFNBQU87TUFBTztJQUFFLENBQzVCLENBQ0csQ0FDSCxDQUFDO0VBQUEsQ0FDYjtFQUVEWixPQUFPLENBQUNjLFNBQVMsR0FBRztJQUNoQlosS0FBSyxFQUFFYSxxQkFBUyxDQUFDQyxNQUFNLENBQUNDLFVBQVU7SUFDbENDLFNBQVMsRUFBRUgscUJBQVMsQ0FBQ0MsTUFBTTtJQUMzQmIsU0FBUyxFQUFFWSxxQkFBUyxDQUFDSSxJQUFJO0lBQ3pCQyxXQUFXLEVBQUVMLHFCQUFTLENBQUNJO0VBQzNCLENBQUM7RUFFRG5CLE9BQU8sQ0FBQ3FCLFlBQVksR0FBRztJQUNuQkgsU0FBUyxFQUFFSSxTQUFTO0lBQ3BCbkIsU0FBUyxFQUFFLEtBQUs7SUFDaEJpQixXQUFXLEVBQUVFO0VBQ2pCLENBQUM7RUFBQyxJQUFBQyxRQUFBLEdBQUFDLFFBQUEsY0FFYXhCLE9BQU87QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vY29tcG9uZW50cy9JbmZvdGlwL0luZm90aXAuanN4P2NjODgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IFRvb2x0aXAgZnJvbSBcIi4uL1Rvb2x0aXBcIjtcbmltcG9ydCBJbmZvdGlwSWNvbiBmcm9tIFwiLi9JbmZvdGlwSWNvblwiO1xuXG5jb25zdCBCVVRUT05fU0laRSA9IFwiMTZweFwiO1xuXG5jb25zdCBidXR0b25TdHlsZSA9IHtcbiAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgYm9yZGVyOiAwLFxuICAgIHBhZGRpbmc6IDAsXG4gICAgd2lkdGg6IEJVVFRPTl9TSVpFLFxuICAgIGhlaWdodDogQlVUVE9OX1NJWkUsXG4gICAgV2Via2l0VG91Y2hDYWxsb3V0OiBcIm5vbmVcIixcbiAgICBXZWJraXRVc2VyU2VsZWN0OiBcIm5vbmVcIixcbiAgICB1c2VyU2VsZWN0OiBcIm5vbmVcIixcbn07XG5cbi8vIFVzZSBiYXNpYyB0b3VjaCBoYW5kbGVycyBmb3IgbW9iaWxlIFwidGFwLXRvLW9wZW5cIiB1aS4gIE1vYmlsZSB0b3VjaFxuLy8gaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgYnkgQHJlYWNoL3Rvb2x0aXA7IHRoaXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuXG4vLyBMZXZlcmFnZXMgQHJlYWNoL3Rvb2x0aXAgXCJmb2N1c1wiIGJlaGF2aW9yIHRvIG9wZW4gdG9vbHRpcCBvbiB0YXAsXG4vLyBhbmQgY2xvc2UgdG9vbHRpcCBvbiBzZWNvbmQgdGFwIG9yIGxvc3Mgb2YgZm9jdXMuXG4vLyBUT0RPOiBXZSBtYXkgd2FudCB0byBpbXByb3ZlIHRoaXMgYnkgdHJhY2tpbmcgdG91Y2ggcG9zaXRpb25zIHRvIGVuc3VyZVxuLy8gdGhhdCBhICd0b3VjaGVuZCcgZXZlbnQgbXVzdCBiZSByZWFzb25hYmx5IGNsb3NlIHRvIHRoZSB0b29sdGlwIHRhcmdldC5cbmNvbnN0IHRvdWNoSGFuZGxlcnMgPSB7XG4gICAgb25Ub3VjaFN0YXJ0OiAoZSkgPT4ge1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0sXG4gICAgb25Ub3VjaEVuZDogKGUpID0+IHtcbiAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IGUuY3VycmVudFRhcmdldCkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5jdXJyZW50VGFyZ2V0LmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBlLmN1cnJlbnRUYXJnZXQuYmx1cigpO1xuICAgICAgICB9XG4gICAgfSxcbn07XG5cbi8qKlxuICogVG9vbHRpcCB3aXRoIHN0eWxlZCBpbmZvcm1hdGlvbiBpY29uXG4gKi9cbmNvbnN0IEluZm90aXAgPSAoeyBsYWJlbCwgbGlnaHRJY29uLCAuLi5wcm9wcyB9KSA9PiAoXG4gICAgPFRvb2x0aXAgbGFiZWw9e2xhYmVsfSB7Li4ucHJvcHN9PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJJbmZvcm1hdGlvblwiXG4gICAgICAgICAgICBzdHlsZT17YnV0dG9uU3R5bGV9XG4gICAgICAgICAgICB7Li4udG91Y2hIYW5kbGVyc31cbiAgICAgICAgPlxuICAgICAgICAgICAgPEluZm90aXBJY29uXG4gICAgICAgICAgICAgICAgbGlnaHRJY29uPXtsaWdodEljb259XG4gICAgICAgICAgICAgICAgd2lkdGg9e0JVVFRPTl9TSVpFfVxuICAgICAgICAgICAgICAgIGhlaWdodD17QlVUVE9OX1NJWkV9XG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgICAgICBzdHlsZT17eyBmbG9hdDogXCJsZWZ0XCIgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvVG9vbHRpcD5cbik7XG5cbkluZm90aXAucHJvcFR5cGVzID0ge1xuICAgIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgYXJpYUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGxpZ2h0SWNvbjogUHJvcFR5cGVzLmJvb2wsXG4gICAgREVCVUdfU1RZTEU6IFByb3BUeXBlcy5ib29sLFxufTtcblxuSW5mb3RpcC5kZWZhdWx0UHJvcHMgPSB7XG4gICAgYXJpYUxhYmVsOiB1bmRlZmluZWQsXG4gICAgbGlnaHRJY29uOiBmYWxzZSxcbiAgICBERUJVR19TVFlMRTogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgSW5mb3RpcDtcbiJdLCJuYW1lcyI6WyJCVVRUT05fU0laRSIsImJ1dHRvblN0eWxlIiwiYmFja2dyb3VuZCIsImJvcmRlciIsInBhZGRpbmciLCJ3aWR0aCIsImhlaWdodCIsIldlYmtpdFRvdWNoQ2FsbG91dCIsIldlYmtpdFVzZXJTZWxlY3QiLCJ1c2VyU2VsZWN0IiwidG91Y2hIYW5kbGVycyIsIm9uVG91Y2hTdGFydCIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJvblRvdWNoRW5kIiwiZG9jdW1lbnQiLCJhY3RpdmVFbGVtZW50IiwiY3VycmVudFRhcmdldCIsInByZXZlbnREZWZhdWx0IiwiZm9jdXMiLCJibHVyIiwiSW5mb3RpcCIsIl9yZWYiLCJsYWJlbCIsImxpZ2h0SWNvbiIsInByb3BzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwiX3JlYWN0IiwiY3JlYXRlRWxlbWVudCIsIl9Ub29sdGlwIiwiX2V4dGVuZHMiLCJ0eXBlIiwic3R5bGUiLCJfSW5mb3RpcEljb24iLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJpc1JlcXVpcmVkIiwiYXJpYUxhYmVsIiwiYm9vbCIsIkRFQlVHX1NUWUxFIiwiZGVmYXVsdFByb3BzIiwidW5kZWZpbmVkIiwiX2RlZmF1bHQiLCJfZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///877\n\n}')},517(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 // removed by dead control flow\n{ 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 n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(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 (-1 !== e.indexOf(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTE3LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFHQSxJQUFNQSxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQUMsSUFBQTtJQUFBLElBQU1DLFNBQVMsR0FBQUQsSUFBQSxDQUFUQyxTQUFTO01BQUtDLEtBQUssR0FBQUMsd0JBQUEsQ0FBQUgsSUFBQSxFQUFBSSxTQUFBO0lBQUEsb0JBQ3RDQyxNQUFBLFlBQUFDLGFBQUEsUUFBQUMsUUFBQTtNQUNJQyxLQUFLLEVBQUMsTUFBTTtNQUNaQyxNQUFNLEVBQUMsTUFBTTtNQUNiQyxPQUFPLEVBQUMsV0FBVztNQUNuQkMsS0FBSyxFQUFDO0lBQTRCLEdBQzlCVCxLQUFLLGdCQUVURyxNQUFBLFlBQUFDLGFBQUE7TUFBR00sSUFBSSxFQUFDLE1BQU07TUFBQ0MsUUFBUSxFQUFDO0lBQVMsZ0JBQzdCUixNQUFBLFlBQUFDLGFBQUE7TUFDSVEsQ0FBQyxFQUFDLDhJQUE4STtNQUNoSkYsSUFBSSxFQUFDLFNBQVM7TUFDZEMsUUFBUSxFQUFDO0lBQVMsQ0FDckIsQ0FBQyxlQUNGUixNQUFBLFlBQUFDLGFBQUE7TUFDSVEsQ0FBQyxFQUFDLDhIQUE4SDtNQUNoSUYsSUFBSSxFQUFFWCxTQUFTLEdBQUcsTUFBTSxHQUFHO0lBQVUsQ0FDeEMsQ0FBQyxlQUNGSSxNQUFBLFlBQUFDLGFBQUE7TUFDSVEsQ0FBQyxFQUFDLHFoQkFBcWhCO01BQ3ZoQkMsTUFBTSxFQUFFZCxTQUFTLEdBQUcsU0FBUyxHQUFHLE1BQU87TUFDdkNlLFdBQVcsRUFBQyxJQUFJO01BQ2hCSixJQUFJLEVBQUVYLFNBQVMsR0FBRyxTQUFTLEdBQUcsTUFBTztNQUNyQ1ksUUFBUSxFQUFDO0lBQVMsQ0FDckIsQ0FDRixDQUNGLENBQUM7RUFBQSxDQUNUO0VBQUMsSUFBQUksUUFBQSxHQUFBQyxRQUFBLGNBRWFuQixXQUFXO0VBRTFCQSxXQUFXLENBQUNvQixTQUFTLEdBQUc7SUFDcEJsQixTQUFTLEVBQUVtQixxQkFBUyxDQUFDQztFQUN6QixDQUFDO0VBRUR0QixXQUFXLENBQUN1QixZQUFZLEdBQUc7SUFDdkJyQixTQUFTLEVBQUU7RUFDZixDQUFDO0FBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvSW5mb3RpcC9JbmZvdGlwSWNvbi5qc3g/NjBjMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5cbmNvbnN0IEluZm90aXBJY29uID0gKHsgbGlnaHRJY29uLCAuLi5wcm9wcyB9KSA9PiAoXG4gICAgPHN2Z1xuICAgICAgICB3aWR0aD1cIjIwcHhcIlxuICAgICAgICBoZWlnaHQ9XCIyMHB4XCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAgICA8ZyBmaWxsPVwibm9uZVwiIGZpbGxSdWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTkuNzIxIDE5LjE1OGMtNC45NDcgMC04Ljk3My00LjEyNi04Ljk3My05LjE5NkMuNzQ4IDQuODkyIDQuNzc0Ljc2NiA5LjcyLjc2NmM0Ljk0OCAwIDguOTc0IDQuMTI2IDguOTc0IDkuMTk2IDAgNS4wNy00LjAyNiA5LjE5Ni04Ljk3NCA5LjE5NnpcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCIjMkVCMUVEXCJcbiAgICAgICAgICAgICAgICBmaWxsUnVsZT1cIm5vbnplcm9cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk05LjcyMSAwQzQuMzYxIDAgMCA0LjQ2OSAwIDkuOTYyYzAgNS40OTMgNC4zNiA5Ljk2MiA5LjcyMSA5Ljk2MiA1LjM2IDAgOS43MjItNC40NjkgOS43MjItOS45NjJDMTkuNDQzIDQuNDY5IDE1LjA4MiAwIDkuNzIgMHpcIlxuICAgICAgICAgICAgICAgIGZpbGw9e2xpZ2h0SWNvbiA/IFwiI0ZGRlwiIDogXCIjMDQ4MzhBXCJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTkuNzIxIDE0Ljc2NWMtLjIwNiAwLS4zNzQuMTEyLS4zNzQuMjV2LjVjMCAuMTM4LjE2OC4yNS4zNzQuMjUuMjA3IDAgLjM3NC0uMTEyLjM3NC0uMjV2LS41YzAtLjEzOC0uMTY3LS4yNS0uMzc0LS4yNXpNOS43NjQgNC43MDZIOS43MmMtLjc5MiAwLTEuNTM2LjI5LTIuMS44MjFhMi43NjcgMi43NjcgMCAwIDAtLjg5IDIuMDNjMCAuMTk3LjE2Ni4zNTYuMzczLjM1NnMuMzc0LS4xNTkuMzc0LS4zNTZjMC0uNTc3LjIzNy0xLjExOC42NjgtMS41MjNhMi4yNjggMi4yNjggMCAwIDEgMS42MDctLjYxNWMxLjE4Mi4wMTYgMi4xOTUuOTggMi4yMTEgMi4xMDcuMDExLjc0My0uMzczIDEuNDI3LTEuMDI4IDEuODMtLjk5NS42MS0xLjU4OSAxLjY5MS0xLjU4OSAyLjg5djEuMDEzYzAgLjE5Ny4xNjguMzU3LjM3NC4zNTcuMjA3IDAgLjM3NC0uMTYuMzc0LS4zNTd2LTEuMDEzYzAtLjk0MS40NzctMS44MiAxLjI0Ni0yLjI5Mi44NzMtLjUzNyAxLjM4Ni0xLjQ0OCAxLjM3MS0yLjQzOC0uMDIyLTEuNTI3LTEuMzQ1LTIuNzg4LTIuOTQ4LTIuODF6XCJcbiAgICAgICAgICAgICAgICBzdHJva2U9e2xpZ2h0SWNvbiA/IFwiIzA0ODM4QVwiIDogXCIjRkZGXCJ9XG4gICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9XCIuNVwiXG4gICAgICAgICAgICAgICAgZmlsbD17bGlnaHRJY29uID8gXCIjMDQ4MzhBXCIgOiBcIiNGRkZcIn1cbiAgICAgICAgICAgICAgICBmaWxsUnVsZT1cIm5vbnplcm9cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9nPlxuICAgIDwvc3ZnPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgSW5mb3RpcEljb247XG5cbkluZm90aXBJY29uLnByb3BUeXBlcyA9IHtcbiAgICBsaWdodEljb246IFByb3BUeXBlcy5ib29sLFxufTtcblxuSW5mb3RpcEljb24uZGVmYXVsdFByb3BzID0ge1xuICAgIGxpZ2h0SWNvbjogZmFsc2UsXG59O1xuIl0sIm5hbWVzIjpbIkluZm90aXBJY29uIiwiX3JlZiIsImxpZ2h0SWNvbiIsInByb3BzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwiX3JlYWN0IiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94IiwieG1sbnMiLCJmaWxsIiwiZmlsbFJ1bGUiLCJkIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJfZGVmYXVsdCIsIl9leHBvcnRzIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiYm9vbCIsImRlZmF1bHRQcm9wcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///517\n\n}')},582(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 // removed by dead control flow\n{ 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 _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }\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\n}')},225(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 // removed by dead control flow\n{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjI1LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O3VDQUVlQSxtQkFBTztBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9jb21wb25lbnRzL1Rvb2x0aXAvaW5kZXguanM/MDU0YSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVG9vbHRpcCBmcm9tIFwiLi9Ub29sdGlwXCI7XG5cbmV4cG9ydCBkZWZhdWx0IFRvb2x0aXA7XG4iXSwibmFtZXMiOlsiVG9vbHRpcCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///225\n\n}')},310(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 // removed by dead control flow\n{ 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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RW5ELGlDQUFBc0IsTUFBQSxDQUNtQnZCLGdCQUFnQixtREFBQXVCLE1BQUEsQ0FDZnZCLGdCQUFnQiwyQ0FBQXVCLE1BQUEsQ0FDeEJNLFlBQVksd0JBQUFOLE1BQUEsQ0FDYkssV0FBVyxtQkFBQUwsTUFBQSxDQUNoQk8sY0FBYztFQUV4QixDQUFDO0FBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL2NvbXBvbmVudHMvVG9vbHRpcC9wb3NpdGlvbi5qcz82MWIxIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IE9GRlNFVCA9IDEyOyAvLyBtb2RpZmllZCBmcm9tIHJlYWNoLXVpL3Rvb2x0aXAgT0ZGU0VUIHZhbHVlXG5jb25zdCBUUklBTkdMRV9TQ0FMRV9YID0gNjtcbmNvbnN0IFRSSUFOR0xFX1NDQUxFX1kgPSA4O1xuXG5jb25zdCBpc0RpcmVjdGlvblVwID0gKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCkgPT4ge1xuICAgIGNvbnN0IGNvbGxpc2lvbnMgPSB7XG4gICAgICAgIHRvcDogdHJpZ2dlclJlY3QudG9wIC0gdG9vbHRpcFJlY3QuaGVpZ2h0IDwgMCxcbiAgICAgICAgYm90dG9tOlxuICAgICAgICAgICAgd2luZG93LmlubmVySGVpZ2h0IDxcbiAgICAgICAgICAgIHRyaWdnZXJSZWN0LmJvdHRvbSArIHRvb2x0aXBSZWN0LmhlaWdodCArIE9GRlNFVCxcbiAgICB9O1xuXG4gICAgcmV0dXJuICFjb2xsaXNpb25zLnRvcCB8fCBjb2xsaXNpb25zLmJvdHRvbTtcbn07XG5cbi8vIG1vZGlmaWVkIGZyb20gQHJlYWNoL3Rvb2x0aXAgZGVmYXVsdCBwb3NpdGlvbmluZyBmdW5jdGlvblxuLy8gcG9zaXRpb25zIFRvb2x0aXAgcmVsYXRpdmUgdG8gdHJpZ2dlclxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3JlYWNoL3JlYWNoLXVpL2Jsb2IvbWFzdGVyL3BhY2thZ2VzL3Rvb2x0aXAvc3JjL2luZGV4LnRzeCNMNTMyXG5jb25zdCBwb3NpdGlvblRpcCA9ICh0cmlnZ2VyUmVjdCwgdG9vbHRpcFJlY3QpID0+IHtcbiAgICBpZiAoIXRyaWdnZXJSZWN0IHx8ICF0b29sdGlwUmVjdCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29uc3QgdHJpZ2dlckNlbnRlciA9IHRyaWdnZXJSZWN0LmxlZnQgKyB0cmlnZ2VyUmVjdC53aWR0aCAvIDI7XG4gICAgY29uc3QgbGVmdCA9IHRyaWdnZXJDZW50ZXIgLSB0b29sdGlwUmVjdC53aWR0aCAvIDI7XG4gICAgY29uc3QgbWF4TGVmdCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gdG9vbHRpcFJlY3Qud2lkdGggLSAyO1xuICAgIGNvbnN0IGNlbnRlckxlZnQgPVxuICAgICAgICBNYXRoLm1pbihNYXRoLm1heCgyLCBsZWZ0KSwgbWF4TGVmdCkgKyB3aW5kb3cucGFnZVhPZmZzZXQ7XG5cbiAgICBjb25zdCBkaXJlY3Rpb25VcCA9IGlzRGlyZWN0aW9uVXAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGxlZnQ6IGAke2NlbnRlckxlZnR9cHhgLFxuICAgICAgICB0b3A6IGRpcmVjdGlvblVwXG4gICAgICAgICAgICA/IGAke1xuICAgICAgICAgICAgICAgICAgdHJpZ2dlclJlY3QudG9wIC1cbiAgICAgICAgICAgICAgICAgIE9GRlNFVCAtXG4gICAgICAgICAgICAgICAgICB0b29sdGlwUmVjdC5oZWlnaHQgK1xuICAgICAgICAgICAgICAgICAgd2luZG93LnBhZ2VZT2Zmc2V0XG4gICAgICAgICAgICAgIH1weGBcbiAgICAgICAgICAgIDogYCR7XG4gICAgICAgICAgICAgICAgICB0cmlnZ2VyUmVjdC50b3AgK1xuICAgICAgICAgICAgICAgICAgT0ZGU0VUICtcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXJSZWN0LmhlaWdodCArXG4gICAgICAgICAgICAgICAgICB3aW5kb3cucGFnZVlPZmZzZXRcbiAgICAgICAgICAgICAgfXB4YCxcbiAgICB9O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgcG9zaXRpb25UaXA7XG5cbi8vIHBvc2l0aW9uIHRyaWFuZ2xlIHJlbGF0aXZlIHRvIHRvb2x0aXAgcG9zaXRpb25cbi8vIFRPRE86IGZpZ3VyZSBvdXQgYSBiZXR0ZXIgd2F5IHRvIHJlbmRlciB0aGVzZSB1cGRhdGVzIGZyb20gd2l0aGluIHJlYWN0XG4vLyByZW5kZXJpbmcuIFRoaXMgbWV0aG9kIGNhdXNlcyBhbiBhZGRpdGlvbmFsIHJlcGFpbnQgYWZ0ZXIgdGhlIFRvb2x0aXBcbi8vIGhhcyBiZWVuIHJlbmRlcmVkLiBtYXkgcmVxdWlyZSBjaGFuZ2VzIHRvIEByZWFjaC90b29sdGlwLlxuZXhwb3J0IGNvbnN0IHBvc2l0aW9uVHJpYW5nbGUgPSAodHJpZ2dlclJlY3QsIHRvb2x0aXBSZWN0KSA9PiB7XG4gICAgY29uc3QgZGlyZWN0aW9uVXAgPSBpc0RpcmVjdGlvblVwKHRyaWdnZXJSZWN0LCB0b29sdGlwUmVjdCk7XG4gICAgY29uc3QgdHJpYW5nbGVUb3AgPSBkaXJlY3Rpb25VcFxuICAgICAgICA/IHRyaWdnZXJSZWN0LnRvcCArIHdpbmRvdy5wYWdlWU9mZnNldCAtIE9GRlNFVFxuICAgICAgICA6IHRyaWdnZXJSZWN0LmJvdHRvbSArIHdpbmRvdy5wYWdlWU9mZnNldCArIE9GRlNFVCAtIFRSSUFOR0xFX1NDQUxFX1k7XG5cbiAgICBjb25zdCB0cmlhbmdsZUxlZnQgPVxuICAgICAgICB0cmlnZ2VyUmVjdC5sZWZ0IC0gVFJJQU5HTEVfU0NBTEVfWCArIHRyaWdnZXJSZWN0LndpZHRoIC8gMjtcblxuICAgIGNvbnN0IHRyaWFuZ2xlQm9yZGVyID0gZGlyZWN0aW9uVXBcbiAgICAgICAgPyBgYm9yZGVyLXRvcDogJHtUUklBTkdMRV9TQ0FMRV9ZfXB4IHNvbGlkO2BcbiAgICAgICAgOiBgYm9yZGVyLWJvdHRvbTogJHtUUklBTkdMRV9TQ0FMRV9ZfXB4IHNvbGlkO2A7XG5cbiAgICByZXR1cm4gYFxuICAgICAgICBib3JkZXItbGVmdDogJHtUUklBTkdMRV9TQ0FMRV9YfXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmlnaHQ6ICR7VFJJQU5HTEVfU0NBTEVfWH1weCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgbGVmdDogJHt0cmlhbmdsZUxlZnR9cHg7XG4gICAgICAgIHRvcDogJHt0cmlhbmdsZVRvcH1weDtcbiAgICAgICAgJHt0cmlhbmdsZUJvcmRlcn1cbiAgICBgO1xufTtcbiJdLCJuYW1lcyI6WyJPRkZTRVQiLCJUUklBTkdMRV9TQ0FMRV9YIiwiVFJJQU5HTEVfU0NBTEVfWSIsImlzRGlyZWN0aW9uVXAiLCJ0cmlnZ2VyUmVjdCIsInRvb2x0aXBSZWN0IiwiY29sbGlzaW9ucyIsInRvcCIsImhlaWdodCIsImJvdHRvbSIsIndpbmRvdyIsImlubmVySGVpZ2h0IiwicG9zaXRpb25UaXAiLCJ0cmlnZ2VyQ2VudGVyIiwibGVmdCIsIndpZHRoIiwibWF4TGVmdCIsImlubmVyV2lkdGgiLCJjZW50ZXJMZWZ0IiwiTWF0aCIsIm1pbiIsIm1heCIsInBhZ2VYT2Zmc2V0IiwiZGlyZWN0aW9uVXAiLCJjb25jYXQiLCJwYWdlWU9mZnNldCIsIl9kZWZhdWx0IiwiX2V4cG9ydHMiLCJwb3NpdGlvblRyaWFuZ2xlIiwidHJpYW5nbGVUb3AiLCJ0cmlhbmdsZUxlZnQiLCJ0cmlhbmdsZUJvcmRlciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///310\n\n}')},24(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 // removed by dead control flow\n{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBS0EsSUFBTUEsa0JBQWtCLEdBQUc7SUFDdkJDLFNBQVMsV0FBVEEsU0FBU0EsQ0FBQ0MsT0FBTyxFQUFFO01BQ2YsT0FBTyxJQUFJQyxpQkFBUyxDQUFDRCxPQUFPLENBQUM7SUFDakMsQ0FBQztJQUVERSxNQUFNLFdBQU5BLE1BQU1BLENBQUNGLE9BQU8sRUFBRTtNQUNaLE9BQU8sSUFBSUcsa0JBQU0sQ0FBQ0gsT0FBTyxDQUFDO0lBQzlCO0VBQ0osQ0FBQztFQUFDLElBQUFJLFFBQUEsR0FBQUMsUUFBQSxjQUVhUCxrQkFBa0I7QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vaW5kZXguanM/NDFmNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRXJyb3JQYWdlIGZyb20gXCIuL2NvbXBvbmVudHMvRXJyb3IvZXJyb3JcIjtcbmltcG9ydCBGb290ZXIgZnJvbSBcIi4vY29tcG9uZW50cy9Gb290ZXIvZm9vdGVyXCI7XG5cbmltcG9ydCBcIndoYXQtaW5wdXRcIjtcblxuY29uc3QgUXBwU3R5bGVDb21wb25lbnRzID0ge1xuICAgIGVycm9yUGFnZShvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBuZXcgRXJyb3JQYWdlKG9wdGlvbnMpO1xuICAgIH0sXG5cbiAgICBmb290ZXIob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmV3IEZvb3RlcihvcHRpb25zKTtcbiAgICB9LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgUXBwU3R5bGVDb21wb25lbnRzO1xuIl0sIm5hbWVzIjpbIlFwcFN0eWxlQ29tcG9uZW50cyIsImVycm9yUGFnZSIsIm9wdGlvbnMiLCJFcnJvclBhZ2UiLCJmb290ZXIiLCJGb290ZXIiLCJfZGVmYXVsdCIsIl9leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///24\n\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_L),\n Component: () => (/* reexport */ C),\n Fragment: () => (/* reexport */ S),\n PureComponent: () => (/* binding */ compat_module_M),\n StrictMode: () => (/* reexport */ S),\n Suspense: () => (/* binding */ compat_module_P),\n SuspenseList: () => (/* binding */ compat_module_B),\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: () => (/* binding */ an),\n cloneElement: () => (/* binding */ mn),\n createContext: () => (/* reexport */ X),\n createElement: () => (/* reexport */ k),\n createFactory: () => (/* binding */ sn),\n createPortal: () => (/* binding */ compat_module_$),\n createRef: () => (/* reexport */ M),\n "default": () => (/* binding */ gn),\n findDOMNode: () => (/* binding */ yn),\n flushSync: () => (/* binding */ bn),\n forwardRef: () => (/* binding */ compat_module_D),\n hydrate: () => (/* binding */ tn),\n isElement: () => (/* binding */ Sn),\n isFragment: () => (/* binding */ vn),\n isMemo: () => (/* binding */ dn),\n isValidElement: () => (/* binding */ hn),\n lazy: () => (/* binding */ compat_module_z),\n memo: () => (/* binding */ compat_module_N),\n render: () => (/* binding */ nn),\n startTransition: () => (/* binding */ compat_module_x),\n unmountComponentAtNode: () => (/* binding */ pn),\n unstable_batchedUpdates: () => (/* binding */ _n),\n useCallback: () => (/* reexport */ hooks_module_q),\n useContext: () => (/* reexport */ hooks_module_x),\n useDebugValue: () => (/* reexport */ hooks_module_P),\n useDeferredValue: () => (/* binding */ compat_module_w),\n useEffect: () => (/* reexport */ hooks_module_h),\n useErrorBoundary: () => (/* reexport */ hooks_module_b),\n useId: () => (/* reexport */ hooks_module_g),\n useImperativeHandle: () => (/* reexport */ hooks_module_F),\n useInsertionEffect: () => (/* binding */ compat_module_I),\n useLayoutEffect: () => (/* reexport */ hooks_module_),\n useMemo: () => (/* reexport */ hooks_module_T),\n useReducer: () => (/* reexport */ hooks_module_y),\n useRef: () => (/* reexport */ hooks_module_A),\n useState: () => (/* reexport */ hooks_module_d),\n useSyncExternalStore: () => (/* binding */ compat_module_C),\n useTransition: () => (/* binding */ compat_module_k),\n version: () => (/* binding */ cn)\n});\n\n;// ./node_modules/preact/dist/preact.module.js\nvar n,l,u,t,i,r,o,e,f,c,a,s,h,p,v,y,d={},w=[],_=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,g=Array.isArray;function m(n,l){for(var u in l)n[u]=l[u];return n}function b(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function k(l,u,t){var i,r,o,e={};for(o in u)"key"==o?i=u[o]:"ref"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),"function"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return x(l,e,i,r,null)}function x(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function M(){return{current:null}}function S(n){return n.children}function C(n,l){this.props=n,this.context=l}function $(n,l){if(null==l)return n.__?$(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?$(n):null}function I(n){if(n.__P&&n.__d){var u=n.__v,t=u.__e,i=[],r=[],o=m({},u);o.__v=u.__v+1,l.vnode&&l.vnode(o),q(n.__P,o,u,n.__n,n.__P.namespaceURI,32&u.__u?[t]:null,i,null==t?$(u):t,!!(32&u.__u),r),o.__v=u.__v,o.__.__k[o.__i]=o,D(i,o,r),u.__e=u.__=null,o.__e!=t&&P(o)}}function P(n){if(null!=(n=n.__)&&null!=n.__c)return n.__e=n.__c.base=null,n.__k.some(function(l){if(null!=l&&null!=l.__e)return n.__e=n.__c.base=l.__e}),P(n)}function A(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!H.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)(H)}function H(){try{for(var n,l=1;i.length;)i.length>l&&i.sort(e),n=i.shift(),l=i.length,I(n)}finally{i.length=H.__r=0}}function L(n,l,u,t,i,r,o,e,f,c,a){var s,h,p,v,y,_,g=t&&t.__k||w,m=l.length;for(f=T(u,l,g,f,m),s=0;s<m;s++)null!=(p=u.__k[s])&&(h=-1!=p.__i&&g[p.__i]||d,p.__i=s,_=q(n,p,h,i,r,o,e,f,c,a),v=p.__e,p.ref&&h.ref!=p.ref&&(h.ref&&J(h.ref,null,p),a.push(p.ref,p.__c||v,p)),null==y&&null!=v&&(y=v),4&p.__u?(f=j(p,f,n),h.__e&&(h.__e=null)):"function"==typeof p.type&&void 0!==_?f=_:v&&(f=v.nextSibling),p.__u&=-7);return u.__e=y,f}function T(n,l,u,t,i){var r,o,e,f,c,a=u.length,s=a,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&"boolean"!=typeof o&&"function"!=typeof o?("string"==typeof o||"number"==typeof o||"bigint"==typeof o||o.constructor==String?o=n.__k[r]=x(null,o,null,null,null):g(o)?o=n.__k[r]=x(S,{children:o},null,null,null):void 0===o.constructor&&o.__b>0?o=n.__k[r]=x(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):n.__k[r]=o,f=r+h,o.__=n,o.__b=n.__b+1,e=null,-1!=(c=o.__i=O(o,u,f,s))&&(s--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>a?h--:i<a&&h++),"function"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(s)for(r=0;r<a;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=$(e)),K(e,e));return t}function j(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=j(t[i],l,u));return l}n.__e!=l&&(l&&n.type&&!l.parentNode&&(l=$(n)),l=u.insertBefore(n.__e,l||null));do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function F(n,l){return l=l||[],null==n||"boolean"==typeof n||(g(n)?n.some(function(n){F(n,l)}):l.push(n)),l}function O(n,l,u,t){var i,r,o,e=n.key,f=n.type,c=l[u],a=null!=c&&0==(2&c.__u);if(null===c&&null==e||a&&e==c.key&&f==c.type)return u;if(t>(a?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;)if(null!=(c=l[o=i>=0?i--:r++])&&0==(2&c.__u)&&e==c.key&&f==c.type)return o;return-1}function z(n,l,u){"-"==l[0]?n.setProperty(l,null==u?"":u):n[l]=null==u?"":"number"!=typeof u||_.test(l)?u:u+"px"}function N(n,l,u,t,i){var r,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||z(n.style,l,"");if(u)for(l in u)t&&u[l]==t[l]||z(n.style,l,u[l])}else if("o"==l[0]&&"n"==l[1])r=l!=(l=l.replace(s,"$1")),o=l.toLowerCase(),l=o in n||"onFocusOut"==l||"onFocusIn"==l?o.slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u[a]=t[a]:(u[a]=h,n.addEventListener(l,r?v:p,r)):n.removeEventListener(l,r?v:p,r);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 V(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u[c])u[c]=h++;else if(u[c]<t[a])return;return t(l.event?l.event(u):u)}}}function q(n,u,t,i,r,o,e,f,c,a){var s,h,p,v,y,d,_,k,x,M,I,P,A,H,T,j,F=u.type;if(void 0!==u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(s=l.__b)&&s(u);n:if("function"==typeof F){h=e.length;try{if(x=u.props,M=F.prototype&&F.prototype.render,I=(s=F.contextType)&&i[s.__c],P=s?I?I.props.value:s.__:i,t.__c?k=(p=u.__c=t.__c).__=p.__E:(M?u.__c=p=new F(x,P):(u.__c=p=new C(x,P),p.constructor=F,p.render=Q),I&&I.sub(p),p.state||(p.state={}),p.__n=i,v=p.__d=!0,p.__h=[],p._sb=[]),M&&null==p.__s&&(p.__s=p.state),M&&null!=F.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=m({},p.__s)),m(p.__s,F.getDerivedStateFromProps(x,p.__s))),y=p.props,d=p.state,p.__v=u,v)M&&null==F.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),M&&null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(M&&null==F.getDerivedStateFromProps&&x!==y&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(x,P),u.__v==t.__v||!p.__e&&null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(x,p.__s,P)){u.__v!=t.__v&&(p.props=x,p.state=p.__s,p.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),w.push.apply(p.__h,p._sb),p._sb=[],p.__h.length&&e.push(p),f=$(t);break n}null!=p.componentWillUpdate&&p.componentWillUpdate(x,p.__s,P),M&&null!=p.componentDidUpdate&&p.__h.push(function(){p.componentDidUpdate(y,d,_)})}if(p.context=P,p.props=x,p.__P=n,p.__e=!1,A=l.__r,H=0,M)p.state=p.__s,p.__d=!1,A&&A(u),s=p.render(p.props,p.state,p.context),w.push.apply(p.__h,p._sb),p._sb=[];else do{p.__d=!1,A&&A(u),s=p.render(p.props,p.state,p.context),p.state=p.__s}while(p.__d&&++H<25);p.state=p.__s,null!=p.getChildContext&&(i=m(m({},i),p.getChildContext())),M&&!v&&null!=p.getSnapshotBeforeUpdate&&(_=p.getSnapshotBeforeUpdate(y,d)),T=null!=s&&s.type===S&&null==s.key?E(s.props.children):s,f=L(n,g(T)?T:[T],u,t,i,r,o,e,f,c,a),p.base=u.__e,u.__u&=-161,p.__h.length&&e.push(p),k&&(p.__E=p.__=null)}catch(n){if(e.length=h,u.__v=null,c||null!=o){if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;null!=o&&(o[o.indexOf(f)]=null),u.__e=f}else if(null!=o)for(j=o.length;j--;)b(o[j])}else u.__e=t.__e;null==u.__k&&(u.__k=t.__k||[]),n.then||B(u),l.__e(n,u,t)}}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=G(t.__e,u,t,i,r,o,e,c,a);return(s=l.diffed)&&s(u),128&u.__u?void 0:f}function B(n){n&&(n.__c&&(n.__c.__e=!0),n.__k&&n.__k.some(B))}function D(n,u,t){for(var i=0;i<t.length;i++)J(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 E(n){return"object"!=typeof n||null==n||n.__b>0?n:g(n)?n.map(E):void 0!==n.constructor?null:m({},n)}function G(u,t,i,r,o,e,f,c,a){var s,h,p,v,y,w,_,m=i.props||d,k=t.props,x=t.type;if("svg"==x?o="http://www.w3.org/2000/svg":"math"==x?o="http://www.w3.org/1998/Math/MathML":o||(o="http://www.w3.org/1999/xhtml"),null!=e)for(s=0;s<e.length;s++)if((y=e[s])&&"setAttribute"in y==!!x&&(x?y.localName==x:3==y.nodeType)){u=y,e[s]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)m===k||c&&u.data==k||(u.data=k);else{if(e="textarea"==x&&null!=k.defaultValue?null:e&&n.call(u.childNodes),!c&&null!=e)for(m={},s=0;s<u.attributes.length;s++)m[(y=u.attributes[s]).name]=y.value;for(s in m)y=m[s],"dangerouslySetInnerHTML"==s?p=y:"children"==s||s in k||"value"==s&&"defaultValue"in k||"checked"==s&&"defaultChecked"in k||N(u,s,null,y,o);for(s in k)y=k[s],"children"==s?v=y:"dangerouslySetInnerHTML"==s?h=y:"value"==s?w=y:"checked"==s?_=y:c&&"function"!=typeof y||m[s]===y||N(u,s,y,m[s],o);if(h)c||p&&(h.__html==p.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(p&&(u.innerHTML=""),L("template"==t.type?u.content:u,g(v)?v:[v],t,i,r,"foreignObject"==x?"http://www.w3.org/1999/xhtml":o,e,f,e?e[0]:i.__k&&$(i,0),c,a),null!=e)for(s=e.length;s--;)b(e[s]);c&&"textarea"!=x||(s="value","progress"==x&&null==w?u.removeAttribute("value"):null!=w&&(w!==u[s]||"progress"==x&&!w||"option"==x&&w!=m[s])&&N(u,s,w,m[s],o),s="checked",null!=_&&_!=u[s]&&N(u,s,_,m[s],o))}return u}function J(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 K(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||J(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=i.__n=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&K(i[r],u,t||"function"!=typeof n.type);t||b(n.__e),n.__c=n.__=n.__e=void 0}function Q(n,l,u){return this.constructor(n,u)}function R(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r="function"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],q(t,u=(!r&&i||t).__k=k(S,null,[u]),o||d,d,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),D(e,u,f),u.props.children=null}function U(n,l){R(n,l,U)}function W(l,u,t){var i,r,o,e,f=m({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)"key"==o?i=u[o]:"ref"==o?r=u[o]:f[o]=void 0===u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),x(l.type,f,i||l.key,r||l.ref,null)}function X(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,A(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c="__cC"+y++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=w.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&void 0===n.constructor},C.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=m({},this.state),"function"==typeof n&&(n=n(m({},u),this.props)),n&&m(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),A(this))},C.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),A(this))},C.prototype.render=S,i=[],o="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},H.__r=0,f=Math.random().toString(8),c="__d"+f,a="__a"+f,s=/(PointerCapture)$|Capture$/i,h=0,p=V(!1),v=V(!0),y=0;\n//# sourceMappingURL=preact.module.js.map\n\n;// ./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_p=hooks_module_c.__;function hooks_module_s(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_d(n){return hooks_module_o=1,hooks_module_y(hooks_module_D,n)}function hooks_module_y(n,u,i){var o=hooks_module_s(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.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=!1,i=o.__c.props!==n;if(o.__c.__H.__.some(function(n){if(n.__N){u=!0;var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c){var f=c.call(this,n,t,r);return u?f||i:f}return!u||i};hooks_module_r.__f=!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_h(n,u){var i=hooks_module_s(hooks_module_t++,3);!hooks_module_c.__s&&hooks_module_C(i.__H,u)&&(i.__=n,i.u=u,hooks_module_r.__H.__h.push(i))}function hooks_module_(n,u){var i=hooks_module_s(hooks_module_t++,4);!hooks_module_c.__s&&hooks_module_C(i.__H,u)&&(i.__=n,i.u=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(){if("function"==typeof n){var r=n(t());return function(){n(null),r&&"function"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function hooks_module_T(n,r){var u=hooks_module_s(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_s(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_s(hooks_module_t++,10),i=hooks_module_d();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_s(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();){var t=n.__H;if(n.__P&&t)try{t.__h.some(hooks_module_z),t.__h.some(hooks_module_B),t.__h=[]}catch(r){t.__h=[],hooks_module_c.__e(r,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_p&&hooks_module_p(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.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.some(hooks_module_z),i.__h.some(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.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),hooks_module_u=hooks_module_r=null},hooks_module_c.__c=function(n,t){t.some(function(n){try{n.__h.some(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.__.some(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,35);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;// ./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){var e=t(),r=hooks_module_d({t:{__:e,u:t}}),u=r[0].t,o=r[1];return hooks_module_(function(){u.__=e,u.u=t,compat_module_R(u)&&o({t:u})},[n,e,t]),hooks_module_h(function(){return compat_module_R(u)&&o({t:u}),n(function(){compat_module_R(u)&&o({t:u})})},[n]),e}function compat_module_R(n){try{return!((t=n.__)===(e=n.u())&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}// removed by dead control flow\n var t, e; }function compat_module_x(n){n()}function compat_module_w(n){return n}function compat_module_k(){return[!1,compat_module_x]}var compat_module_I=hooks_module_;function compat_module_M(n,t){this.props=n,this.context=t}function compat_module_N(n,e){function r(n){var t=this.props.ref;return t!=n.ref&&t&&("function"==typeof t?t(null):t.current=null),e?!e(this.props,n)||t!=n.ref:compat_module_E(this.props,n)}function u(e){return this.shouldComponentUpdate=r,k(n,e)}return u.displayName="Memo("+(n.displayName||n.name)+")",u.__f=u.prototype.isReactComponent=!0,u.type=n,u}(compat_module_M.prototype=new C).isPureReactComponent=!0,compat_module_M.prototype.shouldComponentUpdate=function(n,t){return compat_module_E(this.props,n)||compat_module_E(this.state,t)};var compat_module_T=l.__b;l.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),compat_module_T&&compat_module_T(n)};var compat_module_A="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function compat_module_D(n){function t(t){var e=compat_module_g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=compat_module_A,t.render=n,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(n.displayName||n.name)+")",t}var compat_module_F=function(n,t){return null==n?null:F(F(n).map(t))},compat_module_L={map:compat_module_F,forEach:compat_module_F,count:function(n){return n?F(n).length:0},only:function(n){var t=F(n);if(1!==t.length)throw"Children.only";return t[0]},toArray:F},compat_module_O=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_O(n,t,e,r)};var compat_module_U=l.unmount;function compat_module_V(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.__e=!0,n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return compat_module_V(n,t,e)})),n}function compat_module_W(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return compat_module_W(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_P(){this.__u=0,this.o=null,this.__b=null}function compat_module_j(n){var t=n.__&&n.__.__c;return t&&t.__a&&t.__a(n)}function compat_module_z(n){var e,r,u,o=null;function i(i){if(e||(e=n()).then(function(n){n&&(o=n.default||n),u=!0},function(n){r=n,u=!0}),r)throw r;if(!u)throw e;return o?k(o,i):null}return i.displayName="Lazy",i.__f=!0,i}function compat_module_B(){this.i=null,this.l=null}l.unmount=function(n){var t=n.__c;t&&(t.__z=!0),t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),compat_module_U&&compat_module_U(n)},(compat_module_P.prototype=new C).__c=function(n,t){var e=t.__c,r=this;null==r.o&&(r.o=[]),r.o.push(e);var u=compat_module_j(r.__v),o=!1,i=function(){o||r.__z||(o=!0,e.__R=null,u?u(f):f())};e.__R=i;var l=e.__P;e.__P=null;var f=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=compat_module_W(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.o.pop();)t.__P=l,t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},compat_module_P.prototype.componentWillUnmount=function(){this.o=[]},compat_module_P.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_V(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&k(S,null,n.fallback);return i&&(i.__u&=-33),[k(S,null,e.__a?null:n.children),i]};var compat_module_H=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.i=e=e[2]}};function Z(n){return this.getChildContext=function(){return n.context},n.children}function Y(n){var e=this,r=n.h;if(e.componentWillUnmount=function(){R(null,e.v),e.v=null,e.h=null},e.h&&e.h!==r&&e.componentWillUnmount(),!e.v){for(var u=e.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;e.h=r,e.v={nodeType:1,parentNode:r,childNodes:[],__k:{__m:u.__m},contains:function(){return!0},namespaceURI:r.namespaceURI,insertBefore:function(n,t){this.childNodes.push(n),e.h.insertBefore(n,t)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.h.removeChild(n)}}}R(k(Z,{context:e.context},n.__v),e.v)}function compat_module_$(n,e){var r=k(Y,{__v:n,h:e});return r.containerInfo=e,r}(compat_module_B.prototype=new C).__a=function(n){var t=this,e=compat_module_j(t.__v),r=t.l.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),compat_module_H(t,n,r)):u()};e?e(o):o()}},compat_module_B.prototype.render=function(n){this.i=null,this.l=new Map;var t=F(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.l.set(t[e],this.i=[1,0,this.i]);return n.children},compat_module_B.prototype.componentDidUpdate=compat_module_B.prototype.componentDidMount=function(){var n=this;this.l.forEach(function(t,e){compat_module_H(n,e,t)})};var compat_module_q="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,compat_module_G=/^(?: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_J=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,compat_module_K=/[A-Z0-9]/g,compat_module_Q="undefined"!=typeof document,compat_module_X=function(n){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function nn(n,t,e){return null==t.__k&&(t.textContent=""),R(n,t),"function"==typeof e&&e(),n?n.__c:null}function tn(n,t,e){return U(n,t),"function"==typeof e&&e(),n?n.__c:null}C.prototype.isReactComponent=!0,["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(C.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var en=l.event;l.event=function(n){return en&&(n=en(n)),n.persist=function(){},n.isPropagationStopped=function(){return this.cancelBubble},n.isDefaultPrevented=function(){return this.defaultPrevented},n.nativeEvent=n};var rn,un={configurable:!0,get:function(){return this.class}},on=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 l=t[i];if(!("value"===i&&"defaultValue"in t&&null==l||compat_module_Q&&"children"===i&&"noscript"===e||"class"===i||"className"===i)){var f=i.toLowerCase();"defaultValue"===i&&"value"in t&&null==t.value?i="value":"download"===i&&!0===l?l="":"translate"===f&&"no"===l?l=!1:"o"===f[0]&&"n"===f[1]?"ondoubleclick"===f?i="ondblclick":"onchange"!==f||"input"!==e&&"textarea"!==e||compat_module_X(t.type)?"onfocus"===f?i="onfocusin":"onblur"===f?i="onfocusout":compat_module_J.test(i)&&(i=f):f=i="oninput":o&&compat_module_G.test(i)?i=i.replace(compat_module_K,"-$&").toLowerCase():null===l&&(l=void 0),"oninput"===f&&u[i=f]&&(i="oninputCapture"),u[i]=l}}"select"==e&&(u.multiple&&Array.isArray(u.value)&&(u.value=F(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),null!=u.defaultValue&&(u.value=F(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",un)):t.className&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=compat_module_q,on&&on(n)};var ln=l.__r;l.__r=function(n){ln&&ln(n),rn=n.__c};var fn=l.diffed;l.diffed=function(n){fn&&fn(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),rn=null};var an={ReactCurrentDispatcher:{current:{readContext:function(n){return rn.__n[n.__c].props.value},useCallback:hooks_module_q,useContext:hooks_module_x,useDebugValue:hooks_module_P,useDeferredValue:compat_module_w,useEffect:hooks_module_h,useId:hooks_module_g,useImperativeHandle:hooks_module_F,useInsertionEffect:compat_module_I,useLayoutEffect:hooks_module_,useMemo:hooks_module_T,useReducer:hooks_module_y,useRef:hooks_module_A,useState:hooks_module_d,useSyncExternalStore:compat_module_C,useTransition:compat_module_k}}},cn="18.3.1";function sn(n){return k.bind(null,n)}function hn(n){return!!n&&n.$$typeof===compat_module_q}function vn(n){return hn(n)&&n.type===S}function dn(n){return!!n&&"string"==typeof n.displayName&&0==n.displayName.indexOf("Memo(")}function mn(n){return hn(n)?W.apply(null,arguments):n}function pn(n){return!!n.__k&&(R(null,n),!0)}function yn(n){return n&&(n.base||1===n.nodeType&&n)||null}var _n=function(n,t){return n(t)},bn=function(n,t){var r,u=l.debounceRendering;l.debounceRendering=function(n){r=n};try{var o=n(t);return r&&r(),o}finally{l.debounceRendering=u}},Sn=hn,gn={useState:hooks_module_d,useId:hooks_module_g,useReducer:hooks_module_y,useEffect:hooks_module_h,useLayoutEffect:hooks_module_,useInsertionEffect:compat_module_I,useTransition:compat_module_k,useDeferredValue:compat_module_w,useSyncExternalStore:compat_module_C,startTransition:compat_module_x,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_L,render:nn,hydrate:tn,unmountComponentAtNode:pn,createPortal:compat_module_$,createElement:k,createContext:X,createFactory:sn,cloneElement:mn,createRef:M,Fragment:S,isValidElement:hn,isElement:Sn,isFragment:vn,isMemo:dn,findDOMNode:yn,Component:C,PureComponent:compat_module_M,memo:compat_module_N,forwardRef:compat_module_D,flushSync:bn,unstable_batchedUpdates:_n,StrictMode:S,Suspense:compat_module_P,SuspenseList:compat_module_B,lazy:compat_module_z,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:an};\n//# sourceMappingURL=compat.module.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNzYzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdDQUF3Qyw0RkFBNEYsZ0JBQWdCLHlCQUF5QixTQUFTLGNBQWMsNkNBQTZDLGtCQUFrQixlQUFlLHFEQUFxRCx3TEFBd0wsdUJBQXVCLHNCQUFzQixPQUFPLHVIQUF1SCw0Q0FBNEMsYUFBYSxPQUFPLGNBQWMsY0FBYyxrQkFBa0IsZ0JBQWdCLDRCQUE0QixnQkFBZ0IsNENBQTRDLFVBQVUsZUFBZSxvREFBb0QsMENBQTBDLGNBQWMsaUJBQWlCLG9DQUFvQyxJQUFJLGlNQUFpTSxjQUFjLG1GQUFtRixzREFBc0QsT0FBTyxjQUFjLG1HQUFtRyxhQUFhLElBQUksY0FBYyxTQUFTLG1EQUFtRCxRQUFRLGtCQUFrQixrQ0FBa0MseUNBQXlDLHVCQUF1QixJQUFJLDZTQUE2UyxpQkFBaUIsc0JBQXNCLGlDQUFpQywyQkFBMkIsSUFBSSwwTUFBME0sV0FBVyx3V0FBd1csYUFBYSxJQUFJLDhEQUE4RCxTQUFTLGtCQUFrQixRQUFRLDhCQUE4QixnQkFBZ0IsY0FBYyxvQ0FBb0MsU0FBUywrRUFBK0UsR0FBRyxtQkFBbUIsOEJBQThCLFNBQVMsZ0JBQWdCLHNFQUFzRSxPQUFPLGVBQWUsb0JBQW9CLDBEQUEwRCxzREFBc0QsNkJBQTZCLGlCQUFpQiw0RUFBNEUsU0FBUyxrQkFBa0IsK0ZBQStGLHNCQUFzQixRQUFRLHdEQUF3RCxLQUFLLHNGQUFzRixpREFBaUQsc0pBQXNKLG1HQUFtRyxLQUFLLHdGQUF3RixnS0FBZ0ssa0JBQWtCLFFBQVEsVUFBVSxtSEFBbUgsY0FBYyxtQkFBbUIsV0FBVyx1QkFBdUIsdUJBQXVCLHlCQUF5QixpQ0FBaUMsZ0NBQWdDLDZDQUE2QyxzQ0FBc0MsOERBQThELDJCQUEyQixXQUFXLElBQUksK09BQStPLHlJQUF5SSwyT0FBMk8sS0FBSyxpTkFBaU4sZ0dBQWdHLFlBQVksb0VBQW9FLFFBQVEsbUhBQW1ILDRCQUE0QixFQUFFLGdLQUFnSyxRQUFRLHFFQUFxRSxxQkFBcUIsZ0RBQWdELHdRQUF3USxTQUFTLHFDQUFxQyxXQUFXLHFCQUFxQixnQ0FBZ0MsaUJBQWlCLHdDQUF3QywrQkFBK0IsSUFBSSxTQUFTLGlCQUFpQiwwREFBMEQsc0ZBQXNGLDRDQUE0QyxjQUFjLGdEQUFnRCxrQkFBa0IsWUFBWSxXQUFXLDBCQUEwQixxQ0FBcUMsSUFBSSxvQ0FBb0MsVUFBVSxFQUFFLFNBQVMsZ0JBQWdCLEVBQUUsY0FBYywyRkFBMkYsSUFBSSw4QkFBOEIsa0RBQWtELGtKQUFrSixXQUFXLDRFQUE0RSxjQUFjLE1BQU0sWUFBWSw2Q0FBNkMsMkVBQTJFLDJDQUEyQyxLQUFLLDBGQUEwRixLQUFLLHNCQUFzQix3Q0FBd0MsOEpBQThKLHdKQUF3Six3RkFBd0YsdUxBQXVMLElBQUksU0FBUyw0TUFBNE0sU0FBUyxrQkFBa0IsSUFBSSx5QkFBeUIsK0JBQStCLG9DQUFvQyxpQkFBaUIsU0FBUyxZQUFZLGtCQUFrQixRQUFRLGtHQUFrRyw4QkFBOEIseUJBQXlCLFNBQVMsV0FBVyx3QkFBd0IsbUJBQW1CLFdBQVcsaURBQWlELG9DQUFvQyxrQkFBa0IsNkJBQTZCLGtCQUFrQixZQUFZLHdTQUF3UyxnQkFBZ0IsU0FBUyxrQkFBa0Isa0JBQWtCLFVBQVUsc0lBQXNJLG9IQUFvSCxjQUFjLGNBQWMsUUFBUSw2Q0FBNkMsOENBQThDLFNBQVMsc0NBQXNDLE9BQU8sd0NBQXdDLGlEQUFpRCxjQUFjLEVBQUUsc0JBQXNCLFNBQVMsNkJBQTZCLGtDQUFrQyw2QkFBNkIsYUFBYSwwRUFBMEUscUJBQXFCLGtCQUFrQixhQUFhLHNCQUFzQixjQUFjLE9BQU8seUJBQXlCLG1LQUFtSyw0QkFBNEIsU0FBUyxJQUFJLFNBQVMsbUJBQW1CLHVDQUF1QyxvQ0FBb0MsTUFBTSw2REFBNkQsNENBQTRDLDRFQUE0RSxxQ0FBcUMsb0RBQW9ELGtJQUFrSSwyQkFBMkIsaUhBQWdUO0FBQ2w0Vzs7O0FDRGlDLElBQUksY0FBQyxDQUFDLGNBQUMsQ0FBQyxjQUFDLENBQUMsY0FBQyxDQUFDLGNBQUMsR0FBRyxjQUFDLElBQUksY0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFDLENBQUMsY0FBQyxLQUFLLGNBQUMsQ0FBQyxjQUFDLEtBQUssY0FBQyxDQUFDLGNBQUMsUUFBUSxjQUFDLENBQUMsY0FBQyxLQUFLLGNBQUMsQ0FBQyxjQUFDLFNBQVMsY0FBQyxDQUFDLGNBQUMsSUFBSSxTQUFTLGNBQUMsTUFBTSxjQUFDLE1BQU0sY0FBQyxLQUFLLGNBQUMsR0FBRyxjQUFDLEtBQUssY0FBQyxHQUFHLE1BQU0sY0FBQyxPQUFPLGNBQUMsTUFBTSxhQUFhLEVBQUUsbUNBQW1DLFVBQVUsU0FBUyxjQUFDLElBQUksT0FBTyxjQUFDLEdBQUcsY0FBQyxDQUFDLGNBQUMsSUFBSSxTQUFTLGNBQUMsUUFBUSxNQUFNLGNBQUMsQ0FBQyxjQUFDLE1BQU0sK0JBQStCLGNBQUMsdUJBQXVCLHdDQUF3QywyQ0FBMkMsR0FBRyxRQUFRLGNBQUMsRUFBRSxjQUFDLE9BQU8sc0JBQXNCLHVCQUF1QiwyQkFBMkIsaUNBQWlDLFVBQVUsS0FBSyxjQUFjLDZDQUE2QyxLQUFLLHlCQUF5QixnQkFBZ0IsYUFBYSxjQUFDLFFBQVEsTUFBTSxjQUFDLHlCQUF5QixjQUFDLHFCQUFxQixjQUFDLHFDQUFxQyxhQUFhLFFBQVEsc0JBQXNCLHNCQUFzQixDQUFDLGNBQUMseUJBQXlCLG1CQUFtQixTQUFTLGNBQUMsTUFBTSxNQUFNLGNBQUMsQ0FBQyxjQUFDLE1BQU0sQ0FBQyxjQUFDLE1BQU0sY0FBQyx5QkFBeUIsY0FBQyxrQkFBa0IsU0FBUyxhQUFDLE1BQU0sTUFBTSxjQUFDLENBQUMsY0FBQyxNQUFNLENBQUMsY0FBQyxNQUFNLGNBQUMseUJBQXlCLGNBQUMsY0FBYyxTQUFTLGNBQUMsSUFBSSxPQUFPLGNBQUMsR0FBRyxjQUFDLFlBQVksT0FBTyxXQUFXLEtBQUssU0FBUyxjQUFDLFFBQVEsY0FBQyxHQUFHLGFBQUMsWUFBWSx5QkFBeUIsYUFBYSxrQkFBa0Isc0NBQXNDLHFDQUFxQyx1QkFBdUIsd0JBQXdCLFNBQVMsY0FBQyxNQUFNLE1BQU0sY0FBQyxDQUFDLGNBQUMsTUFBTSxPQUFPLGNBQUMsMkNBQTJDLFNBQVMsY0FBQyxNQUFNLE9BQU8sY0FBQyxHQUFHLGNBQUMsWUFBWSxTQUFTLElBQUksU0FBUyxjQUFDLElBQUksTUFBTSxjQUFDLGtCQUFrQixjQUFDLENBQUMsY0FBQyxNQUFNLDJDQUEyQyxjQUFDLHVCQUF1QixTQUFTLGNBQUMsTUFBTSxjQUFDLGdCQUFnQixjQUFDLHlCQUF5QixTQUFTLGNBQUMsSUFBSSxNQUFNLGNBQUMsQ0FBQyxjQUFDLFNBQVMsY0FBQyxHQUFHLGNBQWMsY0FBQyxxQkFBcUIsY0FBQyxpQ0FBaUMsd0JBQXdCLG1CQUFtQixhQUFhLEVBQUUsU0FBUyxjQUFDLEdBQUcsTUFBTSxjQUFDLENBQUMsY0FBQyxPQUFPLFVBQVUsVUFBVSxjQUFDLEtBQUssOEJBQThCLFFBQVEsMkJBQTJCLHlCQUF5QixZQUFZLFNBQVMsY0FBQyxHQUFHLFVBQVUsRUFBRSxjQUFDLFNBQVMsRUFBRSxZQUFZLGdCQUFnQixXQUFXLGNBQUMsYUFBYSxjQUFDLFdBQVcsU0FBUyxTQUFTLGNBQUMsZ0JBQWdCLGNBQUMsaUJBQWlCLGNBQUMsTUFBTSxjQUFDLEVBQUUsY0FBQyxJQUFJLENBQUMsY0FBQyxrQkFBa0IsdUNBQXVDLGNBQUMsRUFBRSxjQUFDLE1BQU0sQ0FBQyxjQUFDLGlCQUFpQixjQUFDLEVBQUUsY0FBQyxJQUFJLGNBQUMsR0FBRyxPQUFPLGNBQUMsWUFBWSxJQUFJLGNBQUMsR0FBRyxjQUFDLFdBQVcsY0FBQyw4QkFBOEIscUNBQXFDLGVBQWUsY0FBQyxhQUFhLGNBQUMsV0FBVyxjQUFDLEtBQUssY0FBQyxDQUFDLGNBQUMsQ0FBQyxDQUFDLGNBQUMsb0JBQW9CLGNBQUMsRUFBRSxjQUFDLElBQUksWUFBWSxrQ0FBa0MsY0FBQyxVQUFVLGNBQUMsR0FBRyxjQUFDLDBCQUEwQixjQUFDLENBQUMsY0FBQyx5QkFBeUIsY0FBQyxFQUFFLGNBQUMsNkJBQTZCLDRCQUE0QixHQUFHLGNBQUMsQ0FBQyxjQUFDLE1BQU0sQ0FBQyxjQUFDLG1CQUFtQixtQkFBbUIsSUFBSSxXQUFXLGNBQUMsaUNBQWlDLGFBQWEsY0FBQyxJQUFJLEVBQUUsU0FBUyxtQkFBbUIsa0JBQWtCLE9BQU8sY0FBQyxlQUFlLEVBQUUsY0FBQyxFQUFFLGNBQUMsTUFBTSxDQUFDLGNBQUMscUJBQXFCLGNBQUMsRUFBRSxjQUFDLElBQUksY0FBYyxxQ0FBcUMsSUFBSSxjQUFDLElBQUksU0FBUyxLQUFLLGtCQUFrQixjQUFDLGdCQUFnQixJQUFJLGNBQUMsMENBQTBDLFNBQVMsY0FBQyxJQUFJLG1CQUFtQixnQkFBZ0IsY0FBQyx3Q0FBd0Msb0JBQW9CLGNBQUMsK0JBQStCLFNBQVMsY0FBQyxJQUFJLE1BQU0sY0FBQyxTQUFTLHlDQUF5QyxjQUFDLEdBQUcsU0FBUyxjQUFDLElBQUksTUFBTSxjQUFDLENBQUMsYUFBYSxjQUFDLEdBQUcsU0FBUyxjQUFDLE1BQU0sb0RBQW9ELGdCQUFnQixFQUFFLFNBQVMsY0FBQyxNQUFNLGtDQUFtUDtBQUNyaEg7OztBQ0QyZixTQUFTLGVBQUMsTUFBTSx5QkFBeUIsU0FBUyxTQUFTLGVBQUMsTUFBTSxxREFBcUQsdURBQXVELFNBQVMsU0FBUyxlQUFDLE1BQU0sWUFBWSxjQUFDLEVBQUUsR0FBRyxVQUFVLGtCQUFrQixPQUFPLGFBQUMsWUFBWSxhQUFhLGVBQUMsUUFBUSxJQUFJLEVBQUUsVUFBVSxjQUFDLFlBQVksT0FBTyxlQUFDLFFBQVEsSUFBSSxlQUFlLGVBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxRQUFRLFNBQVMsZUFBQyxJQUFJLElBQUksNkRBQTZELFNBQVMsU0FBUztBQUFBLFdBQU8sQ0FBQyxTQUFTLGVBQUMsSUFBSSxJQUFJLFNBQVMsZUFBQyxJQUFJLFNBQVMsU0FBUyxlQUFDLEdBQUcsVUFBVSxlQUFDLEVBQUUsSUFBSSxlQUFDLENBQUMsYUFBQyxDQUFDLFNBQVMsZUFBQyxNQUFNLDRCQUE0QixTQUFTLGVBQUMsTUFBTSxjQUFjLHFCQUFxQiwrRkFBK0YsZUFBQyxlQUFlLGNBQWMsb0NBQW9DLENBQUMsTUFBTSwwR0FBMEcsQ0FBQyxlQUFDLGVBQWUsQ0FBQywwQkFBMEIsZUFBQywrQ0FBK0MsT0FBTyxlQUFDLGdCQUFnQixlQUFDLGdCQUFnQixJQUFJLGVBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsMERBQTBELGVBQUMsRUFBRSxlQUFDLEtBQUssSUFBSSxlQUFDLCtFQUErRSxTQUFTLGVBQUMsSUFBSSxjQUFjLE1BQU0sZUFBQyxHQUFHLElBQUkscUNBQXFDLGtCQUFrQixlQUFDLDRHQUE0RyxJQUFJLGVBQUMsZUFBZSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLGVBQUMsRUFBRSxJQUFJLGVBQUMsU0FBUyxlQUFDLG1CQUFtQixTQUFTLENBQUMsYUFBYSxrQkFBa0IsTUFBTSxDQUFDLElBQUkscUNBQXFDLFlBQVksU0FBUyxDQUFDLENBQUMsQ0FBQyxlQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLHdCQUF3QixPQUFPLGtGQUFrRixlQUFDLFdBQVcsSUFBSSxlQUFDLENBQUMsQ0FBQyxTQUFTLFNBQVMsZUFBQyxRQUFRLCtEQUErRCxrQ0FBa0MsMkJBQTJCLGVBQUMsR0FBRyxvR0FBb0csT0FBTyxlQUFDLFFBQVEsS0FBSyxTQUFTLGVBQUMsUUFBUSw0REFBNEQsT0FBTyxlQUFDLFFBQVEsa0ZBQWtGLFNBQVMsZUFBQyxHQUFHLHFDQUFxQyxTQUFTLGVBQUMsSUFBSSxxQkFBcUIsMEJBQTBCLFNBQVMsZUFBQyxJQUFJLGlCQUFpQixjQUFjLCtCQUErQix5QkFBeUIsYUFBYSxTQUFTLFlBQVksY0FBYyxTQUFTLENBQUMsV0FBVyx1Q0FBdUMsU0FBUyxlQUFDLEdBQUcsd0JBQXdCLENBQUMscUJBQXFCLFlBQVksMkRBQTJELGVBQUMsRUFBRSxlQUFDLElBQUksRUFBRSxlQUFDLGVBQWUsQ0FBQyxvQkFBb0IsbUJBQW1CLGdDQUFnQyxNQUFNLGVBQUMsMEJBQTBCLHdDQUF3QyxRQUFRLFlBQVksV0FBVyxpQkFBaUIsYUFBYSxnQkFBZ0Isa0JBQWtCLGFBQWEsZUFBQyx3QkFBd0IsTUFBTSxnQkFBZ0IsZUFBZSxFQUFFLFlBQVksMkJBQTJCLCtCQUErQix1QkFBdUIsY0FBYyxDQUFDLGVBQUMsMkNBQTJDLFVBQVUsQ0FBQyxlQUFDLGdDQUFnQyxhQUFhLGlCQUFpQiwwREFBMEQsZ0JBQWdCLGVBQUMseUJBQXlCLGNBQWMsYUFBYSxDQUFDLENBQUMsQ0FBQyxrQkFBa0Isd0JBQXdCLENBQUMsQ0FBQyxDQUFDLGlDQUFpQyxJQUFJLGVBQUMsaUJBQWlCLHlHQUF5RyxFQUFFLEVBQUUsS0FBSyxXQUFXLFdBQVcsbUJBQW1CLGFBQWEsY0FBYyx1Q0FBdUMsaUJBQWlCLFlBQVksY0FBYyxpQkFBaUIscUNBQXFDLENBQUMsNkJBQTZCLDhDQUE4QyxnQkFBZ0IsOEJBQThCLFFBQVEsV0FBVywyQ0FBMkMsVUFBVSxxQkFBcUIsU0FBUyx3REFBd0QsOENBQThDLHlCQUF5Qiw4RUFBOEUsQ0FBQyxDQUFDLENBQUMsSUFBSSxrQkFBa0IsYUFBYSxTQUFTLGVBQUMsTUFBTSxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsMkJBQTJCLENBQUMsZUFBQyxlQUFlLENBQUMsa0JBQWtCLGFBQWEsZUFBQyxxQkFBcUIsMEJBQTBCLGlCQUFpQiwrQkFBK0IsZUFBQyxjQUFjLFlBQVksQ0FBQyxlQUFDLDhCQUE4QiwyQkFBMkIsTUFBTSxDQUFDLGFBQWEsbURBQW1ELG1CQUFtQixJQUFJLHNDQUFzQyxrQkFBa0IsQ0FBQyxlQUFDLDhCQUE4QixlQUFDLHdDQUF3QyxXQUFXLDZCQUE2QixlQUFDLFFBQVEsR0FBRyxJQUFJLGVBQUMsNEVBQTRFLGVBQUMsK1JBQStSLGVBQUMsb0NBQW9DLGVBQUMsYUFBYSxlQUFDLDhCQUE4QixlQUFDLGFBQWEsa0dBQWtHLG1CQUFtQix1Q0FBdUMsQ0FBQyw2Q0FBNkMsbUJBQW1CLE9BQU8sQ0FBQyw2Q0FBNkMsQ0FBQyw0SEFBNEgsc0JBQXNCLENBQUMsY0FBYywrQkFBK0IseUJBQXlCLGlCQUFpQiw4QkFBOEIsb0NBQW9DLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLDJDQUEyQyxtQ0FBbUMseUJBQXlCLGlDQUFpQyw2QkFBNkIsa0JBQWtCLFdBQVcsK0JBQStCLG1CQUFtQixJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixxQ0FBcUMsMkJBQTJCLHNCQUFzQixnQkFBZ0IsV0FBVywrQ0FBK0MsZUFBQyxpRUFBaUUsc0JBQXNCLDJOQUEyTixlQUFDLGlFQUFpRSxlQUFDLGlDQUFpQyxlQUFDLHFCQUFxQixlQUFDLCtGQUErRiwyREFBMkQsQ0FBQyxpQ0FBaUMsb0RBQW9ELGtDQUFrQyxDQUFDLGlDQUFpQyxvR0FBb0csNklBQTZJLGVBQWUsZUFBQyxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLG9CQUFvQixPQUFPLENBQUMsUUFBUSxDQUFDLG9CQUFvQixVQUFVLHNCQUFzQiwwR0FBMEcsUUFBUSx3QkFBd0IsU0FBUyx3QkFBd0IsaUNBQWlDLGFBQWEsY0FBQyxZQUFZLGNBQUMsZUFBZSxjQUFDLGtCQUFrQixlQUFDLFdBQVcsY0FBQyxPQUFPLGNBQUMscUJBQXFCLGNBQUMsb0JBQW9CLGVBQUMsaUJBQWlCLGFBQUMsU0FBUyxjQUFDLFlBQVksY0FBQyxRQUFRLGNBQUMsVUFBVSxjQUFDLHNCQUFzQixlQUFDLGVBQWUsZUFBQyxHQUFHLGFBQWEsZUFBZSxPQUFPLENBQUMsY0FBYyxlQUFlLHdCQUF3QixlQUFDLENBQUMsZUFBZSx1QkFBdUIsQ0FBQyxDQUFDLGVBQWUsNkVBQTZFLGVBQWUsYUFBYSxDQUFDLHlCQUF5QixlQUFlLGdCQUFnQixDQUFDLGFBQWEsZUFBZSw0Q0FBNEMscUJBQXFCLFlBQVksa0JBQWtCLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQywrQkFBK0IsS0FBSyxJQUFJLFdBQVcsZ0JBQWdCLFFBQVEsQ0FBQyxzQkFBc0IsV0FBVyxTQUFTLGNBQUMsT0FBTyxjQUFDLFlBQVksY0FBQyxXQUFXLGNBQUMsaUJBQWlCLGFBQUMsb0JBQW9CLGVBQUMsZUFBZSxlQUFDLGtCQUFrQixlQUFDLHNCQUFzQixlQUFDLGlCQUFpQixlQUFDLFFBQVEsY0FBQyxxQkFBcUIsY0FBQyxTQUFTLGNBQUMsYUFBYSxjQUFDLFlBQVksY0FBQyxlQUFlLGNBQUMsMkJBQTJCLGVBQUMsNkRBQTZELGVBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyw0Q0FBNEMsQ0FBQyxVQUFVLENBQUMsaUZBQWlGLENBQUMsZUFBZSxlQUFDLE1BQU0sZUFBQyxZQUFZLGVBQUMsb0RBQW9ELENBQUMsVUFBVSxlQUFDLGNBQWMsZUFBQyxNQUFNLGVBQUMsd0RBQThsQjtBQUNqaFUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9RUFBTdHlsZS8uL25vZGVfbW9kdWxlcy9wcmVhY3QvZGlzdC9wcmVhY3QubW9kdWxlLmpzP2RhNjUiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvcHJlYWN0L2hvb2tzL2Rpc3QvaG9va3MubW9kdWxlLmpzPzMwZWMiLCJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvcHJlYWN0L2NvbXBhdC9kaXN0L2NvbXBhdC5tb2R1bGUuanM/MTVkMSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbixsLHUsdCxpLHIsbyxlLGYsYyxhLHMsaCxwLHYseSxkPXt9LHc9W10sXz0vYWNpdHxleCg/OnN8Z3xufHB8JCl8cnBofGdyaWR8b3dzfG1uY3xudHd8aW5lW2NoXXx6b298Xm9yZHxpdGVyYS9pLGc9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiBtKG4sbCl7Zm9yKHZhciB1IGluIGwpblt1XT1sW3VdO3JldHVybiBufWZ1bmN0aW9uIGIobil7biYmbi5wYXJlbnROb2RlJiZuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobil9ZnVuY3Rpb24gayhsLHUsdCl7dmFyIGkscixvLGU9e307Zm9yKG8gaW4gdSlcImtleVwiPT1vP2k9dVtvXTpcInJlZlwiPT1vP3I9dVtvXTplW29dPXVbb107aWYoYXJndW1lbnRzLmxlbmd0aD4yJiYoZS5jaGlsZHJlbj1hcmd1bWVudHMubGVuZ3RoPjM/bi5jYWxsKGFyZ3VtZW50cywyKTp0KSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBsJiZudWxsIT1sLmRlZmF1bHRQcm9wcylmb3IobyBpbiBsLmRlZmF1bHRQcm9wcyl2b2lkIDA9PT1lW29dJiYoZVtvXT1sLmRlZmF1bHRQcm9wc1tvXSk7cmV0dXJuIHgobCxlLGkscixudWxsKX1mdW5jdGlvbiB4KG4sdCxpLHIsbyl7dmFyIGU9e3R5cGU6bixwcm9wczp0LGtleTppLHJlZjpyLF9fazpudWxsLF9fOm51bGwsX19iOjAsX19lOm51bGwsX19jOm51bGwsY29uc3RydWN0b3I6dm9pZCAwLF9fdjpudWxsPT1vPysrdTpvLF9faTotMSxfX3U6MH07cmV0dXJuIG51bGw9PW8mJm51bGwhPWwudm5vZGUmJmwudm5vZGUoZSksZX1mdW5jdGlvbiBNKCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19ZnVuY3Rpb24gUyhuKXtyZXR1cm4gbi5jaGlsZHJlbn1mdW5jdGlvbiBDKG4sbCl7dGhpcy5wcm9wcz1uLHRoaXMuY29udGV4dD1sfWZ1bmN0aW9uICQobixsKXtpZihudWxsPT1sKXJldHVybiBuLl9fPyQobi5fXyxuLl9faSsxKTpudWxsO2Zvcih2YXIgdTtsPG4uX19rLmxlbmd0aDtsKyspaWYobnVsbCE9KHU9bi5fX2tbbF0pJiZudWxsIT11Ll9fZSlyZXR1cm4gdS5fX2U7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50eXBlPyQobik6bnVsbH1mdW5jdGlvbiBJKG4pe2lmKG4uX19QJiZuLl9fZCl7dmFyIHU9bi5fX3YsdD11Ll9fZSxpPVtdLHI9W10sbz1tKHt9LHUpO28uX192PXUuX192KzEsbC52bm9kZSYmbC52bm9kZShvKSxxKG4uX19QLG8sdSxuLl9fbixuLl9fUC5uYW1lc3BhY2VVUkksMzImdS5fX3U/W3RdOm51bGwsaSxudWxsPT10PyQodSk6dCwhISgzMiZ1Ll9fdSksciksby5fX3Y9dS5fX3Ysby5fXy5fX2tbby5fX2ldPW8sRChpLG8sciksdS5fX2U9dS5fXz1udWxsLG8uX19lIT10JiZQKG8pfX1mdW5jdGlvbiBQKG4pe2lmKG51bGwhPShuPW4uX18pJiZudWxsIT1uLl9fYylyZXR1cm4gbi5fX2U9bi5fX2MuYmFzZT1udWxsLG4uX19rLnNvbWUoZnVuY3Rpb24obCl7aWYobnVsbCE9bCYmbnVsbCE9bC5fX2UpcmV0dXJuIG4uX19lPW4uX19jLmJhc2U9bC5fX2V9KSxQKG4pfWZ1bmN0aW9uIEEobil7KCFuLl9fZCYmKG4uX19kPSEwKSYmaS5wdXNoKG4pJiYhSC5fX3IrK3x8ciE9bC5kZWJvdW5jZVJlbmRlcmluZykmJigocj1sLmRlYm91bmNlUmVuZGVyaW5nKXx8bykoSCl9ZnVuY3Rpb24gSCgpe3RyeXtmb3IodmFyIG4sbD0xO2kubGVuZ3RoOylpLmxlbmd0aD5sJiZpLnNvcnQoZSksbj1pLnNoaWZ0KCksbD1pLmxlbmd0aCxJKG4pfWZpbmFsbHl7aS5sZW5ndGg9SC5fX3I9MH19ZnVuY3Rpb24gTChuLGwsdSx0LGkscixvLGUsZixjLGEpe3ZhciBzLGgscCx2LHksXyxnPXQmJnQuX19rfHx3LG09bC5sZW5ndGg7Zm9yKGY9VCh1LGwsZyxmLG0pLHM9MDtzPG07cysrKW51bGwhPShwPXUuX19rW3NdKSYmKGg9LTEhPXAuX19pJiZnW3AuX19pXXx8ZCxwLl9faT1zLF89cShuLHAsaCxpLHIsbyxlLGYsYyxhKSx2PXAuX19lLHAucmVmJiZoLnJlZiE9cC5yZWYmJihoLnJlZiYmSihoLnJlZixudWxsLHApLGEucHVzaChwLnJlZixwLl9fY3x8dixwKSksbnVsbD09eSYmbnVsbCE9diYmKHk9diksNCZwLl9fdT8oZj1qKHAsZixuKSxoLl9fZSYmKGguX19lPW51bGwpKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBwLnR5cGUmJnZvaWQgMCE9PV8/Zj1fOnYmJihmPXYubmV4dFNpYmxpbmcpLHAuX191Jj0tNyk7cmV0dXJuIHUuX19lPXksZn1mdW5jdGlvbiBUKG4sbCx1LHQsaSl7dmFyIHIsbyxlLGYsYyxhPXUubGVuZ3RoLHM9YSxoPTA7Zm9yKG4uX19rPW5ldyBBcnJheShpKSxyPTA7cjxpO3IrKyludWxsIT0obz1sW3JdKSYmXCJib29sZWFuXCIhPXR5cGVvZiBvJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBvPyhcInN0cmluZ1wiPT10eXBlb2Ygb3x8XCJudW1iZXJcIj09dHlwZW9mIG98fFwiYmlnaW50XCI9PXR5cGVvZiBvfHxvLmNvbnN0cnVjdG9yPT1TdHJpbmc/bz1uLl9fa1tyXT14KG51bGwsbyxudWxsLG51bGwsbnVsbCk6ZyhvKT9vPW4uX19rW3JdPXgoUyx7Y2hpbGRyZW46b30sbnVsbCxudWxsLG51bGwpOnZvaWQgMD09PW8uY29uc3RydWN0b3ImJm8uX19iPjA/bz1uLl9fa1tyXT14KG8udHlwZSxvLnByb3BzLG8ua2V5LG8ucmVmP28ucmVmOm51bGwsby5fX3YpOm4uX19rW3JdPW8sZj1yK2gsby5fXz1uLG8uX19iPW4uX19iKzEsZT1udWxsLC0xIT0oYz1vLl9faT1PKG8sdSxmLHMpKSYmKHMtLSwoZT11W2NdKSYmKGUuX191fD0yKSksbnVsbD09ZXx8bnVsbD09ZS5fX3Y/KC0xPT1jJiYoaT5hP2gtLTppPGEmJmgrKyksXCJmdW5jdGlvblwiIT10eXBlb2Ygby50eXBlJiYoby5fX3V8PTQpKTpjIT1mJiYoYz09Zi0xP2gtLTpjPT1mKzE/aCsrOihjPmY/aC0tOmgrKyxvLl9fdXw9NCkpKTpuLl9fa1tyXT1udWxsO2lmKHMpZm9yKHI9MDtyPGE7cisrKW51bGwhPShlPXVbcl0pJiYwPT0oMiZlLl9fdSkmJihlLl9fZT09dCYmKHQ9JChlKSksSyhlLGUpKTtyZXR1cm4gdH1mdW5jdGlvbiBqKG4sbCx1KXt2YXIgdCxpO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4udHlwZSl7Zm9yKHQ9bi5fX2ssaT0wO3QmJmk8dC5sZW5ndGg7aSsrKXRbaV0mJih0W2ldLl9fPW4sbD1qKHRbaV0sbCx1KSk7cmV0dXJuIGx9bi5fX2UhPWwmJihsJiZuLnR5cGUmJiFsLnBhcmVudE5vZGUmJihsPSQobikpLGw9dS5pbnNlcnRCZWZvcmUobi5fX2UsbHx8bnVsbCkpO2Rve2w9bCYmbC5uZXh0U2libGluZ313aGlsZShudWxsIT1sJiY4PT1sLm5vZGVUeXBlKTtyZXR1cm4gbH1mdW5jdGlvbiBGKG4sbCl7cmV0dXJuIGw9bHx8W10sbnVsbD09bnx8XCJib29sZWFuXCI9PXR5cGVvZiBufHwoZyhuKT9uLnNvbWUoZnVuY3Rpb24obil7RihuLGwpfSk6bC5wdXNoKG4pKSxsfWZ1bmN0aW9uIE8obixsLHUsdCl7dmFyIGkscixvLGU9bi5rZXksZj1uLnR5cGUsYz1sW3VdLGE9bnVsbCE9YyYmMD09KDImYy5fX3UpO2lmKG51bGw9PT1jJiZudWxsPT1lfHxhJiZlPT1jLmtleSYmZj09Yy50eXBlKXJldHVybiB1O2lmKHQ+KGE/MTowKSlmb3IoaT11LTEscj11KzE7aT49MHx8cjxsLmxlbmd0aDspaWYobnVsbCE9KGM9bFtvPWk+PTA/aS0tOnIrK10pJiYwPT0oMiZjLl9fdSkmJmU9PWMua2V5JiZmPT1jLnR5cGUpcmV0dXJuIG87cmV0dXJuLTF9ZnVuY3Rpb24geihuLGwsdSl7XCItXCI9PWxbMF0/bi5zZXRQcm9wZXJ0eShsLG51bGw9PXU/XCJcIjp1KTpuW2xdPW51bGw9PXU/XCJcIjpcIm51bWJlclwiIT10eXBlb2YgdXx8Xy50ZXN0KGwpP3U6dStcInB4XCJ9ZnVuY3Rpb24gTihuLGwsdSx0LGkpe3ZhciByLG87bjppZihcInN0eWxlXCI9PWwpaWYoXCJzdHJpbmdcIj09dHlwZW9mIHUpbi5zdHlsZS5jc3NUZXh0PXU7ZWxzZXtpZihcInN0cmluZ1wiPT10eXBlb2YgdCYmKG4uc3R5bGUuY3NzVGV4dD10PVwiXCIpLHQpZm9yKGwgaW4gdCl1JiZsIGluIHV8fHoobi5zdHlsZSxsLFwiXCIpO2lmKHUpZm9yKGwgaW4gdSl0JiZ1W2xdPT10W2xdfHx6KG4uc3R5bGUsbCx1W2xdKX1lbHNlIGlmKFwib1wiPT1sWzBdJiZcIm5cIj09bFsxXSlyPWwhPShsPWwucmVwbGFjZShzLFwiJDFcIikpLG89bC50b0xvd2VyQ2FzZSgpLGw9byBpbiBufHxcIm9uRm9jdXNPdXRcIj09bHx8XCJvbkZvY3VzSW5cIj09bD9vLnNsaWNlKDIpOmwuc2xpY2UoMiksbi5sfHwobi5sPXt9KSxuLmxbbCtyXT11LHU/dD91W2FdPXRbYV06KHVbYV09aCxuLmFkZEV2ZW50TGlzdGVuZXIobCxyP3Y6cCxyKSk6bi5yZW1vdmVFdmVudExpc3RlbmVyKGwscj92OnAscik7ZWxzZXtpZihcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI9PWkpbD1sLnJlcGxhY2UoL3hsaW5rKEh8OmgpLyxcImhcIikucmVwbGFjZSgvc05hbWUkLyxcInNcIik7ZWxzZSBpZihcIndpZHRoXCIhPWwmJlwiaGVpZ2h0XCIhPWwmJlwiaHJlZlwiIT1sJiZcImxpc3RcIiE9bCYmXCJmb3JtXCIhPWwmJlwidGFiSW5kZXhcIiE9bCYmXCJkb3dubG9hZFwiIT1sJiZcInJvd1NwYW5cIiE9bCYmXCJjb2xTcGFuXCIhPWwmJlwicm9sZVwiIT1sJiZcInBvcG92ZXJcIiE9bCYmbCBpbiBuKXRyeXtuW2xdPW51bGw9PXU/XCJcIjp1O2JyZWFrIG59Y2F0Y2gobil7fVwiZnVuY3Rpb25cIj09dHlwZW9mIHV8fChudWxsPT11fHwhMT09PXUmJlwiLVwiIT1sWzRdP24ucmVtb3ZlQXR0cmlidXRlKGwpOm4uc2V0QXR0cmlidXRlKGwsXCJwb3BvdmVyXCI9PWwmJjE9PXU/XCJcIjp1KSl9fWZ1bmN0aW9uIFYobil7cmV0dXJuIGZ1bmN0aW9uKHUpe2lmKHRoaXMubCl7dmFyIHQ9dGhpcy5sW3UudHlwZStuXTtpZihudWxsPT11W2NdKXVbY109aCsrO2Vsc2UgaWYodVtjXTx0W2FdKXJldHVybjtyZXR1cm4gdChsLmV2ZW50P2wuZXZlbnQodSk6dSl9fX1mdW5jdGlvbiBxKG4sdSx0LGkscixvLGUsZixjLGEpe3ZhciBzLGgscCx2LHksZCxfLGsseCxNLEksUCxBLEgsVCxqLEY9dS50eXBlO2lmKHZvaWQgMCE9PXUuY29uc3RydWN0b3IpcmV0dXJuIG51bGw7MTI4JnQuX191JiYoYz0hISgzMiZ0Ll9fdSksbz1bZj11Ll9fZT10Ll9fZV0pLChzPWwuX19iKSYmcyh1KTtuOmlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIEYpe2g9ZS5sZW5ndGg7dHJ5e2lmKHg9dS5wcm9wcyxNPUYucHJvdG90eXBlJiZGLnByb3RvdHlwZS5yZW5kZXIsST0ocz1GLmNvbnRleHRUeXBlKSYmaVtzLl9fY10sUD1zP0k/SS5wcm9wcy52YWx1ZTpzLl9fOmksdC5fX2M/az0ocD11Ll9fYz10Ll9fYykuX189cC5fX0U6KE0/dS5fX2M9cD1uZXcgRih4LFApOih1Ll9fYz1wPW5ldyBDKHgsUCkscC5jb25zdHJ1Y3Rvcj1GLHAucmVuZGVyPVEpLEkmJkkuc3ViKHApLHAuc3RhdGV8fChwLnN0YXRlPXt9KSxwLl9fbj1pLHY9cC5fX2Q9ITAscC5fX2g9W10scC5fc2I9W10pLE0mJm51bGw9PXAuX19zJiYocC5fX3M9cC5zdGF0ZSksTSYmbnVsbCE9Ri5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMmJihwLl9fcz09cC5zdGF0ZSYmKHAuX19zPW0oe30scC5fX3MpKSxtKHAuX19zLEYuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKHgscC5fX3MpKSkseT1wLnByb3BzLGQ9cC5zdGF0ZSxwLl9fdj11LHYpTSYmbnVsbD09Ri5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMmJm51bGwhPXAuY29tcG9uZW50V2lsbE1vdW50JiZwLmNvbXBvbmVudFdpbGxNb3VudCgpLE0mJm51bGwhPXAuY29tcG9uZW50RGlkTW91bnQmJnAuX19oLnB1c2gocC5jb21wb25lbnREaWRNb3VudCk7ZWxzZXtpZihNJiZudWxsPT1GLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyYmeCE9PXkmJm51bGwhPXAuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmcC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHgsUCksdS5fX3Y9PXQuX192fHwhcC5fX2UmJm51bGwhPXAuc2hvdWxkQ29tcG9uZW50VXBkYXRlJiYhMT09PXAuc2hvdWxkQ29tcG9uZW50VXBkYXRlKHgscC5fX3MsUCkpe3UuX192IT10Ll9fdiYmKHAucHJvcHM9eCxwLnN0YXRlPXAuX19zLHAuX19kPSExKSx1Ll9fZT10Ll9fZSx1Ll9faz10Ll9fayx1Ll9fay5zb21lKGZ1bmN0aW9uKG4pe24mJihuLl9fPXUpfSksdy5wdXNoLmFwcGx5KHAuX19oLHAuX3NiKSxwLl9zYj1bXSxwLl9faC5sZW5ndGgmJmUucHVzaChwKSxmPSQodCk7YnJlYWsgbn1udWxsIT1wLmNvbXBvbmVudFdpbGxVcGRhdGUmJnAuY29tcG9uZW50V2lsbFVwZGF0ZSh4LHAuX19zLFApLE0mJm51bGwhPXAuY29tcG9uZW50RGlkVXBkYXRlJiZwLl9faC5wdXNoKGZ1bmN0aW9uKCl7cC5jb21wb25lbnREaWRVcGRhdGUoeSxkLF8pfSl9aWYocC5jb250ZXh0PVAscC5wcm9wcz14LHAuX19QPW4scC5fX2U9ITEsQT1sLl9fcixIPTAsTSlwLnN0YXRlPXAuX19zLHAuX19kPSExLEEmJkEodSkscz1wLnJlbmRlcihwLnByb3BzLHAuc3RhdGUscC5jb250ZXh0KSx3LnB1c2guYXBwbHkocC5fX2gscC5fc2IpLHAuX3NiPVtdO2Vsc2UgZG97cC5fX2Q9ITEsQSYmQSh1KSxzPXAucmVuZGVyKHAucHJvcHMscC5zdGF0ZSxwLmNvbnRleHQpLHAuc3RhdGU9cC5fX3N9d2hpbGUocC5fX2QmJisrSDwyNSk7cC5zdGF0ZT1wLl9fcyxudWxsIT1wLmdldENoaWxkQ29udGV4dCYmKGk9bShtKHt9LGkpLHAuZ2V0Q2hpbGRDb250ZXh0KCkpKSxNJiYhdiYmbnVsbCE9cC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSYmKF89cC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSh5LGQpKSxUPW51bGwhPXMmJnMudHlwZT09PVMmJm51bGw9PXMua2V5P0Uocy5wcm9wcy5jaGlsZHJlbik6cyxmPUwobixnKFQpP1Q6W1RdLHUsdCxpLHIsbyxlLGYsYyxhKSxwLmJhc2U9dS5fX2UsdS5fX3UmPS0xNjEscC5fX2gubGVuZ3RoJiZlLnB1c2gocCksayYmKHAuX19FPXAuX189bnVsbCl9Y2F0Y2gobil7aWYoZS5sZW5ndGg9aCx1Ll9fdj1udWxsLGN8fG51bGwhPW8pe2lmKG4udGhlbil7Zm9yKHUuX191fD1jPzE2MDoxMjg7ZiYmOD09Zi5ub2RlVHlwZSYmZi5uZXh0U2libGluZzspZj1mLm5leHRTaWJsaW5nO251bGwhPW8mJihvW28uaW5kZXhPZihmKV09bnVsbCksdS5fX2U9Zn1lbHNlIGlmKG51bGwhPW8pZm9yKGo9by5sZW5ndGg7ai0tOyliKG9bal0pfWVsc2UgdS5fX2U9dC5fX2U7bnVsbD09dS5fX2smJih1Ll9faz10Ll9fa3x8W10pLG4udGhlbnx8Qih1KSxsLl9fZShuLHUsdCl9fWVsc2UgbnVsbD09byYmdS5fX3Y9PXQuX192Pyh1Ll9faz10Ll9fayx1Ll9fZT10Ll9fZSk6Zj11Ll9fZT1HKHQuX19lLHUsdCxpLHIsbyxlLGMsYSk7cmV0dXJuKHM9bC5kaWZmZWQpJiZzKHUpLDEyOCZ1Ll9fdT92b2lkIDA6Zn1mdW5jdGlvbiBCKG4pe24mJihuLl9fYyYmKG4uX19jLl9fZT0hMCksbi5fX2smJm4uX19rLnNvbWUoQikpfWZ1bmN0aW9uIEQobix1LHQpe2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKUoodFtpXSx0WysraV0sdFsrK2ldKTtsLl9fYyYmbC5fX2ModSxuKSxuLnNvbWUoZnVuY3Rpb24odSl7dHJ5e249dS5fX2gsdS5fX2g9W10sbi5zb21lKGZ1bmN0aW9uKG4pe24uY2FsbCh1KX0pfWNhdGNoKG4pe2wuX19lKG4sdS5fX3YpfX0pfWZ1bmN0aW9uIEUobil7cmV0dXJuXCJvYmplY3RcIiE9dHlwZW9mIG58fG51bGw9PW58fG4uX19iPjA/bjpnKG4pP24ubWFwKEUpOnZvaWQgMCE9PW4uY29uc3RydWN0b3I/bnVsbDptKHt9LG4pfWZ1bmN0aW9uIEcodSx0LGkscixvLGUsZixjLGEpe3ZhciBzLGgscCx2LHksdyxfLG09aS5wcm9wc3x8ZCxrPXQucHJvcHMseD10LnR5cGU7aWYoXCJzdmdcIj09eD9vPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjpcIm1hdGhcIj09eD9vPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiOm98fChvPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiKSxudWxsIT1lKWZvcihzPTA7czxlLmxlbmd0aDtzKyspaWYoKHk9ZVtzXSkmJlwic2V0QXR0cmlidXRlXCJpbiB5PT0hIXgmJih4P3kubG9jYWxOYW1lPT14OjM9PXkubm9kZVR5cGUpKXt1PXksZVtzXT1udWxsO2JyZWFrfWlmKG51bGw9PXUpe2lmKG51bGw9PXgpcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGspO3U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG8seCxrLmlzJiZrKSxjJiYobC5fX20mJmwuX19tKHQsZSksYz0hMSksZT1udWxsfWlmKG51bGw9PXgpbT09PWt8fGMmJnUuZGF0YT09a3x8KHUuZGF0YT1rKTtlbHNle2lmKGU9XCJ0ZXh0YXJlYVwiPT14JiZudWxsIT1rLmRlZmF1bHRWYWx1ZT9udWxsOmUmJm4uY2FsbCh1LmNoaWxkTm9kZXMpLCFjJiZudWxsIT1lKWZvcihtPXt9LHM9MDtzPHUuYXR0cmlidXRlcy5sZW5ndGg7cysrKW1bKHk9dS5hdHRyaWJ1dGVzW3NdKS5uYW1lXT15LnZhbHVlO2ZvcihzIGluIG0peT1tW3NdLFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09cz9wPXk6XCJjaGlsZHJlblwiPT1zfHxzIGluIGt8fFwidmFsdWVcIj09cyYmXCJkZWZhdWx0VmFsdWVcImluIGt8fFwiY2hlY2tlZFwiPT1zJiZcImRlZmF1bHRDaGVja2VkXCJpbiBrfHxOKHUscyxudWxsLHksbyk7Zm9yKHMgaW4gayl5PWtbc10sXCJjaGlsZHJlblwiPT1zP3Y9eTpcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PXM/aD15OlwidmFsdWVcIj09cz93PXk6XCJjaGVja2VkXCI9PXM/Xz15OmMmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHl8fG1bc109PT15fHxOKHUscyx5LG1bc10sbyk7aWYoaCljfHxwJiYoaC5fX2h0bWw9PXAuX19odG1sfHxoLl9faHRtbD09dS5pbm5lckhUTUwpfHwodS5pbm5lckhUTUw9aC5fX2h0bWwpLHQuX19rPVtdO2Vsc2UgaWYocCYmKHUuaW5uZXJIVE1MPVwiXCIpLEwoXCJ0ZW1wbGF0ZVwiPT10LnR5cGU/dS5jb250ZW50OnUsZyh2KT92Olt2XSx0LGkscixcImZvcmVpZ25PYmplY3RcIj09eD9cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIjpvLGUsZixlP2VbMF06aS5fX2smJiQoaSwwKSxjLGEpLG51bGwhPWUpZm9yKHM9ZS5sZW5ndGg7cy0tOyliKGVbc10pO2MmJlwidGV4dGFyZWFcIiE9eHx8KHM9XCJ2YWx1ZVwiLFwicHJvZ3Jlc3NcIj09eCYmbnVsbD09dz91LnJlbW92ZUF0dHJpYnV0ZShcInZhbHVlXCIpOm51bGwhPXcmJih3IT09dVtzXXx8XCJwcm9ncmVzc1wiPT14JiYhd3x8XCJvcHRpb25cIj09eCYmdyE9bVtzXSkmJk4odSxzLHcsbVtzXSxvKSxzPVwiY2hlY2tlZFwiLG51bGwhPV8mJl8hPXVbc10mJk4odSxzLF8sbVtzXSxvKSl9cmV0dXJuIHV9ZnVuY3Rpb24gSihuLHUsdCl7dHJ5e2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4pe3ZhciBpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4uX191O2kmJm4uX191KCksaSYmbnVsbD09dXx8KG4uX191PW4odSkpfWVsc2Ugbi5jdXJyZW50PXV9Y2F0Y2gobil7bC5fX2Uobix0KX19ZnVuY3Rpb24gSyhuLHUsdCl7dmFyIGkscjtpZihsLnVubW91bnQmJmwudW5tb3VudChuKSwoaT1uLnJlZikmJihpLmN1cnJlbnQmJmkuY3VycmVudCE9bi5fX2V8fEooaSxudWxsLHUpKSxudWxsIT0oaT1uLl9fYykpe2lmKGkuY29tcG9uZW50V2lsbFVubW91bnQpdHJ5e2kuY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaChuKXtsLl9fZShuLHUpfWkuYmFzZT1pLl9fUD1pLl9fbj1udWxsfWlmKGk9bi5fX2spZm9yKHI9MDtyPGkubGVuZ3RoO3IrKylpW3JdJiZLKGlbcl0sdSx0fHxcImZ1bmN0aW9uXCIhPXR5cGVvZiBuLnR5cGUpO3R8fGIobi5fX2UpLG4uX19jPW4uX189bi5fX2U9dm9pZCAwfWZ1bmN0aW9uIFEobixsLHUpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yKG4sdSl9ZnVuY3Rpb24gUih1LHQsaSl7dmFyIHIsbyxlLGY7dD09ZG9jdW1lbnQmJih0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCksbC5fXyYmbC5fXyh1LHQpLG89KHI9XCJmdW5jdGlvblwiPT10eXBlb2YgaSk/bnVsbDppJiZpLl9fa3x8dC5fX2ssZT1bXSxmPVtdLHEodCx1PSghciYmaXx8dCkuX19rPWsoUyxudWxsLFt1XSksb3x8ZCxkLHQubmFtZXNwYWNlVVJJLCFyJiZpP1tpXTpvP251bGw6dC5maXJzdENoaWxkP24uY2FsbCh0LmNoaWxkTm9kZXMpOm51bGwsZSwhciYmaT9pOm8/by5fX2U6dC5maXJzdENoaWxkLHIsZiksRChlLHUsZiksdS5wcm9wcy5jaGlsZHJlbj1udWxsfWZ1bmN0aW9uIFUobixsKXtSKG4sbCxVKX1mdW5jdGlvbiBXKGwsdSx0KXt2YXIgaSxyLG8sZSxmPW0oe30sbC5wcm9wcyk7Zm9yKG8gaW4gbC50eXBlJiZsLnR5cGUuZGVmYXVsdFByb3BzJiYoZT1sLnR5cGUuZGVmYXVsdFByb3BzKSx1KVwia2V5XCI9PW8/aT11W29dOlwicmVmXCI9PW8/cj11W29dOmZbb109dm9pZCAwPT09dVtvXSYmbnVsbCE9ZT9lW29dOnVbb107cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MiYmKGYuY2hpbGRyZW49YXJndW1lbnRzLmxlbmd0aD4zP24uY2FsbChhcmd1bWVudHMsMik6dCkseChsLnR5cGUsZixpfHxsLmtleSxyfHxsLnJlZixudWxsKX1mdW5jdGlvbiBYKG4pe2Z1bmN0aW9uIGwobil7dmFyIHUsdDtyZXR1cm4gdGhpcy5nZXRDaGlsZENvbnRleHR8fCh1PW5ldyBTZXQsKHQ9e30pW2wuX19jXT10aGlzLHRoaXMuZ2V0Q2hpbGRDb250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHR9LHRoaXMuY29tcG9uZW50V2lsbFVubW91bnQ9ZnVuY3Rpb24oKXt1PW51bGx9LHRoaXMuc2hvdWxkQ29tcG9uZW50VXBkYXRlPWZ1bmN0aW9uKG4pe3RoaXMucHJvcHMudmFsdWUhPW4udmFsdWUmJnUuZm9yRWFjaChmdW5jdGlvbihuKXtuLl9fZT0hMCxBKG4pfSl9LHRoaXMuc3ViPWZ1bmN0aW9uKG4pe3UuYWRkKG4pO3ZhciBsPW4uY29tcG9uZW50V2lsbFVubW91bnQ7bi5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe3UmJnUuZGVsZXRlKG4pLGwmJmwuY2FsbChuKX19KSxuLmNoaWxkcmVufXJldHVybiBsLl9fYz1cIl9fY0NcIit5KyssbC5fXz1uLGwuUHJvdmlkZXI9bC5fX2w9KGwuQ29uc3VtZXI9ZnVuY3Rpb24obixsKXtyZXR1cm4gbi5jaGlsZHJlbihsKX0pLmNvbnRleHRUeXBlPWwsbH1uPXcuc2xpY2UsbD17X19lOmZ1bmN0aW9uKG4sbCx1LHQpe2Zvcih2YXIgaSxyLG87bD1sLl9fOylpZigoaT1sLl9fYykmJiFpLl9fKXRyeXtpZigocj1pLmNvbnN0cnVjdG9yKSYmbnVsbCE9ci5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3ImJihpLnNldFN0YXRlKHIuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKG4pKSxvPWkuX19kKSxudWxsIT1pLmNvbXBvbmVudERpZENhdGNoJiYoaS5jb21wb25lbnREaWRDYXRjaChuLHR8fHt9KSxvPWkuX19kKSxvKXJldHVybiBpLl9fRT1pfWNhdGNoKGwpe249bH10aHJvdyBufX0sdT0wLHQ9ZnVuY3Rpb24obil7cmV0dXJuIG51bGwhPW4mJnZvaWQgMD09PW4uY29uc3RydWN0b3J9LEMucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKG4sbCl7dmFyIHU7dT1udWxsIT10aGlzLl9fcyYmdGhpcy5fX3MhPXRoaXMuc3RhdGU/dGhpcy5fX3M6dGhpcy5fX3M9bSh7fSx0aGlzLnN0YXRlKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBuJiYobj1uKG0oe30sdSksdGhpcy5wcm9wcykpLG4mJm0odSxuKSxudWxsIT1uJiZ0aGlzLl9fdiYmKGwmJnRoaXMuX3NiLnB1c2gobCksQSh0aGlzKSl9LEMucHJvdG90eXBlLmZvcmNlVXBkYXRlPWZ1bmN0aW9uKG4pe3RoaXMuX192JiYodGhpcy5fX2U9ITAsbiYmdGhpcy5fX2gucHVzaChuKSxBKHRoaXMpKX0sQy5wcm90b3R5cGUucmVuZGVyPVMsaT1bXSxvPVwiZnVuY3Rpb25cIj09dHlwZW9mIFByb21pc2U/UHJvbWlzZS5wcm90b3R5cGUudGhlbi5iaW5kKFByb21pc2UucmVzb2x2ZSgpKTpzZXRUaW1lb3V0LGU9ZnVuY3Rpb24obixsKXtyZXR1cm4gbi5fX3YuX19iLWwuX192Ll9fYn0sSC5fX3I9MCxmPU1hdGgucmFuZG9tKCkudG9TdHJpbmcoOCksYz1cIl9fZFwiK2YsYT1cIl9fYVwiK2Yscz0vKFBvaW50ZXJDYXB0dXJlKSR8Q2FwdHVyZSQvaSxoPTAscD1WKCExKSx2PVYoITApLHk9MDtleHBvcnR7QyBhcyBDb21wb25lbnQsUyBhcyBGcmFnbWVudCxXIGFzIGNsb25lRWxlbWVudCxYIGFzIGNyZWF0ZUNvbnRleHQsayBhcyBjcmVhdGVFbGVtZW50LE0gYXMgY3JlYXRlUmVmLGsgYXMgaCxVIGFzIGh5ZHJhdGUsdCBhcyBpc1ZhbGlkRWxlbWVudCxsIGFzIG9wdGlvbnMsUiBhcyByZW5kZXIsRiBhcyB0b0NoaWxkQXJyYXl9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJlYWN0Lm1vZHVsZS5qcy5tYXBcbiIsImltcG9ydHtvcHRpb25zIGFzIG59ZnJvbVwicHJlYWN0XCI7dmFyIHQscix1LGksbz0wLGY9W10sYz1uLGU9Yy5fX2IsYT1jLl9fcix2PWMuZGlmZmVkLGw9Yy5fX2MsbT1jLnVubW91bnQscD1jLl9fO2Z1bmN0aW9uIHMobix0KXtjLl9faCYmYy5fX2gocixuLG98fHQpLG89MDt2YXIgdT1yLl9fSHx8KHIuX19IPXtfXzpbXSxfX2g6W119KTtyZXR1cm4gbj49dS5fXy5sZW5ndGgmJnUuX18ucHVzaCh7fSksdS5fX1tuXX1mdW5jdGlvbiBkKG4pe3JldHVybiBvPTEseShELG4pfWZ1bmN0aW9uIHkobix1LGkpe3ZhciBvPXModCsrLDIpO2lmKG8udD1uLCFvLl9fYyYmKG8uX189W2k/aSh1KTpEKHZvaWQgMCx1KSxmdW5jdGlvbihuKXt2YXIgdD1vLl9fTj9vLl9fTlswXTpvLl9fWzBdLHI9by50KHQsbik7dCE9PXImJihvLl9fTj1bcixvLl9fWzFdXSxvLl9fYy5zZXRTdGF0ZSh7fSkpfV0sby5fX2M9ciwhci5fX2YpKXt2YXIgZj1mdW5jdGlvbihuLHQscil7aWYoIW8uX19jLl9fSClyZXR1cm4hMDt2YXIgdT0hMSxpPW8uX19jLnByb3BzIT09bjtpZihvLl9fYy5fX0guX18uc29tZShmdW5jdGlvbihuKXtpZihuLl9fTil7dT0hMDt2YXIgdD1uLl9fWzBdO24uX189bi5fX04sbi5fX049dm9pZCAwLHQhPT1uLl9fWzBdJiYoaT0hMCl9fSksYyl7dmFyIGY9Yy5jYWxsKHRoaXMsbix0LHIpO3JldHVybiB1P2Z8fGk6Zn1yZXR1cm4hdXx8aX07ci5fX2Y9ITA7dmFyIGM9ci5zaG91bGRDb21wb25lbnRVcGRhdGUsZT1yLmNvbXBvbmVudFdpbGxVcGRhdGU7ci5jb21wb25lbnRXaWxsVXBkYXRlPWZ1bmN0aW9uKG4sdCxyKXtpZih0aGlzLl9fZSl7dmFyIHU9YztjPXZvaWQgMCxmKG4sdCxyKSxjPXV9ZSYmZS5jYWxsKHRoaXMsbix0LHIpfSxyLnNob3VsZENvbXBvbmVudFVwZGF0ZT1mfXJldHVybiBvLl9fTnx8by5fX31mdW5jdGlvbiBoKG4sdSl7dmFyIGk9cyh0KyssMyk7IWMuX19zJiZDKGkuX19ILHUpJiYoaS5fXz1uLGkudT11LHIuX19ILl9faC5wdXNoKGkpKX1mdW5jdGlvbiBfKG4sdSl7dmFyIGk9cyh0KyssNCk7IWMuX19zJiZDKGkuX19ILHUpJiYoaS5fXz1uLGkudT11LHIuX19oLnB1c2goaSkpfWZ1bmN0aW9uIEEobil7cmV0dXJuIG89NSxUKGZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bn19LFtdKX1mdW5jdGlvbiBGKG4sdCxyKXtvPTYsXyhmdW5jdGlvbigpe2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4pe3ZhciByPW4odCgpKTtyZXR1cm4gZnVuY3Rpb24oKXtuKG51bGwpLHImJlwiZnVuY3Rpb25cIj09dHlwZW9mIHImJnIoKX19aWYobilyZXR1cm4gbi5jdXJyZW50PXQoKSxmdW5jdGlvbigpe3JldHVybiBuLmN1cnJlbnQ9bnVsbH19LG51bGw9PXI/cjpyLmNvbmNhdChuKSl9ZnVuY3Rpb24gVChuLHIpe3ZhciB1PXModCsrLDcpO3JldHVybiBDKHUuX19ILHIpJiYodS5fXz1uKCksdS5fX0g9cix1Ll9faD1uKSx1Ll9ffWZ1bmN0aW9uIHEobix0KXtyZXR1cm4gbz04LFQoZnVuY3Rpb24oKXtyZXR1cm4gbn0sdCl9ZnVuY3Rpb24geChuKXt2YXIgdT1yLmNvbnRleHRbbi5fX2NdLGk9cyh0KyssOSk7cmV0dXJuIGkuYz1uLHU/KG51bGw9PWkuX18mJihpLl9fPSEwLHUuc3ViKHIpKSx1LnByb3BzLnZhbHVlKTpuLl9ffWZ1bmN0aW9uIFAobix0KXtjLnVzZURlYnVnVmFsdWUmJmMudXNlRGVidWdWYWx1ZSh0P3Qobik6bil9ZnVuY3Rpb24gYihuKXt2YXIgdT1zKHQrKywxMCksaT1kKCk7cmV0dXJuIHUuX189bixyLmNvbXBvbmVudERpZENhdGNofHwoci5jb21wb25lbnREaWRDYXRjaD1mdW5jdGlvbihuLHQpe3UuX18mJnUuX18obix0KSxpWzFdKG4pfSksW2lbMF0sZnVuY3Rpb24oKXtpWzFdKHZvaWQgMCl9XX1mdW5jdGlvbiBnKCl7dmFyIG49cyh0KyssMTEpO2lmKCFuLl9fKXtmb3IodmFyIHU9ci5fX3Y7bnVsbCE9PXUmJiF1Ll9fbSYmbnVsbCE9PXUuX187KXU9dS5fXzt2YXIgaT11Ll9fbXx8KHUuX19tPVswLDBdKTtuLl9fPVwiUFwiK2lbMF0rXCItXCIraVsxXSsrfXJldHVybiBuLl9ffWZ1bmN0aW9uIGooKXtmb3IodmFyIG47bj1mLnNoaWZ0KCk7KXt2YXIgdD1uLl9fSDtpZihuLl9fUCYmdCl0cnl7dC5fX2guc29tZSh6KSx0Ll9faC5zb21lKEIpLHQuX19oPVtdfWNhdGNoKHIpe3QuX19oPVtdLGMuX19lKHIsbi5fX3YpfX19Yy5fX2I9ZnVuY3Rpb24obil7cj1udWxsLGUmJmUobil9LGMuX189ZnVuY3Rpb24obix0KXtuJiZ0Ll9fayYmdC5fX2suX19tJiYobi5fX209dC5fX2suX19tKSxwJiZwKG4sdCl9LGMuX19yPWZ1bmN0aW9uKG4pe2EmJmEobiksdD0wO3ZhciBpPShyPW4uX19jKS5fX0g7aSYmKHU9PT1yPyhpLl9faD1bXSxyLl9faD1bXSxpLl9fLnNvbWUoZnVuY3Rpb24obil7bi5fX04mJihuLl9fPW4uX19OKSxuLnU9bi5fX049dm9pZCAwfSkpOihpLl9faC5zb21lKHopLGkuX19oLnNvbWUoQiksaS5fX2g9W10sdD0wKSksdT1yfSxjLmRpZmZlZD1mdW5jdGlvbihuKXt2JiZ2KG4pO3ZhciB0PW4uX19jO3QmJnQuX19IJiYodC5fX0guX19oLmxlbmd0aCYmKDEhPT1mLnB1c2godCkmJmk9PT1jLnJlcXVlc3RBbmltYXRpb25GcmFtZXx8KChpPWMucmVxdWVzdEFuaW1hdGlvbkZyYW1lKXx8dykoaikpLHQuX19ILl9fLnNvbWUoZnVuY3Rpb24obil7bi51JiYobi5fX0g9bi51LG4udT12b2lkIDApfSkpLHU9cj1udWxsfSxjLl9fYz1mdW5jdGlvbihuLHQpe3Quc29tZShmdW5jdGlvbihuKXt0cnl7bi5fX2guc29tZSh6KSxuLl9faD1uLl9faC5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuIW4uX198fEIobil9KX1jYXRjaChyKXt0LnNvbWUoZnVuY3Rpb24obil7bi5fX2gmJihuLl9faD1bXSl9KSx0PVtdLGMuX19lKHIsbi5fX3YpfX0pLGwmJmwobix0KX0sYy51bm1vdW50PWZ1bmN0aW9uKG4pe20mJm0obik7dmFyIHQscj1uLl9fYztyJiZyLl9fSCYmKHIuX19ILl9fLnNvbWUoZnVuY3Rpb24obil7dHJ5e3oobil9Y2F0Y2gobil7dD1ufX0pLHIuX19IPXZvaWQgMCx0JiZjLl9fZSh0LHIuX192KSl9O3ZhciBrPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZTtmdW5jdGlvbiB3KG4pe3ZhciB0LHI9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodSksayYmY2FuY2VsQW5pbWF0aW9uRnJhbWUodCksc2V0VGltZW91dChuKX0sdT1zZXRUaW1lb3V0KHIsMzUpO2smJih0PXJlcXVlc3RBbmltYXRpb25GcmFtZShyKSl9ZnVuY3Rpb24geihuKXt2YXIgdD1yLHU9bi5fX2M7XCJmdW5jdGlvblwiPT10eXBlb2YgdSYmKG4uX19jPXZvaWQgMCx1KCkpLHI9dH1mdW5jdGlvbiBCKG4pe3ZhciB0PXI7bi5fX2M9bi5fXygpLHI9dH1mdW5jdGlvbiBDKG4sdCl7cmV0dXJuIW58fG4ubGVuZ3RoIT09dC5sZW5ndGh8fHQuc29tZShmdW5jdGlvbih0LHIpe3JldHVybiB0IT09bltyXX0pfWZ1bmN0aW9uIEQobix0KXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Qobik6dH1leHBvcnR7cSBhcyB1c2VDYWxsYmFjayx4IGFzIHVzZUNvbnRleHQsUCBhcyB1c2VEZWJ1Z1ZhbHVlLGggYXMgdXNlRWZmZWN0LGIgYXMgdXNlRXJyb3JCb3VuZGFyeSxnIGFzIHVzZUlkLEYgYXMgdXNlSW1wZXJhdGl2ZUhhbmRsZSxfIGFzIHVzZUxheW91dEVmZmVjdCxUIGFzIHVzZU1lbW8seSBhcyB1c2VSZWR1Y2VyLEEgYXMgdXNlUmVmLGQgYXMgdXNlU3RhdGV9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aG9va3MubW9kdWxlLmpzLm1hcFxuIiwiaW1wb3J0e0NvbXBvbmVudCBhcyBuLGNyZWF0ZUVsZW1lbnQgYXMgdCxvcHRpb25zIGFzIGUsdG9DaGlsZEFycmF5IGFzIHIsRnJhZ21lbnQgYXMgdSxyZW5kZXIgYXMgbyxoeWRyYXRlIGFzIGksY3JlYXRlQ29udGV4dCBhcyBsLGNyZWF0ZVJlZiBhcyBmLGNsb25lRWxlbWVudCBhcyBhfWZyb21cInByZWFjdFwiO2V4cG9ydHtDb21wb25lbnQsRnJhZ21lbnQsRnJhZ21lbnQgYXMgU3RyaWN0TW9kZSxjcmVhdGVDb250ZXh0LGNyZWF0ZUVsZW1lbnQsY3JlYXRlUmVmfWZyb21cInByZWFjdFwiO2ltcG9ydHt1c2VTdGF0ZSBhcyBjLHVzZUxheW91dEVmZmVjdCBhcyBzLHVzZUVmZmVjdCBhcyBoLHVzZUNhbGxiYWNrIGFzIHYsdXNlQ29udGV4dCBhcyBkLHVzZURlYnVnVmFsdWUgYXMgbSx1c2VJZCBhcyBwLHVzZUltcGVyYXRpdmVIYW5kbGUgYXMgeSx1c2VNZW1vIGFzIF8sdXNlUmVkdWNlciBhcyBiLHVzZVJlZiBhcyBTfWZyb21cInByZWFjdC9ob29rc1wiO2V4cG9ydCpmcm9tXCJwcmVhY3QvaG9va3NcIjtmdW5jdGlvbiBnKG4sdCl7Zm9yKHZhciBlIGluIHQpbltlXT10W2VdO3JldHVybiBufWZ1bmN0aW9uIEUobix0KXtmb3IodmFyIGUgaW4gbilpZihcIl9fc291cmNlXCIhPT1lJiYhKGUgaW4gdCkpcmV0dXJuITA7Zm9yKHZhciByIGluIHQpaWYoXCJfX3NvdXJjZVwiIT09ciYmbltyXSE9PXRbcl0pcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gQyhuLHQpe3ZhciBlPXQoKSxyPWMoe3Q6e19fOmUsdTp0fX0pLHU9clswXS50LG89clsxXTtyZXR1cm4gcyhmdW5jdGlvbigpe3UuX189ZSx1LnU9dCxSKHUpJiZvKHt0OnV9KX0sW24sZSx0XSksaChmdW5jdGlvbigpe3JldHVybiBSKHUpJiZvKHt0OnV9KSxuKGZ1bmN0aW9uKCl7Uih1KSYmbyh7dDp1fSl9KX0sW25dKSxlfWZ1bmN0aW9uIFIobil7dHJ5e3JldHVybiEoKHQ9bi5fXyk9PT0oZT1uLnUoKSkmJigwIT09dHx8MS90PT0xL2UpfHx0IT10JiZlIT1lKX1jYXRjaChuKXtyZXR1cm4hMH12YXIgdCxlfWZ1bmN0aW9uIHgobil7bigpfWZ1bmN0aW9uIHcobil7cmV0dXJuIG59ZnVuY3Rpb24gaygpe3JldHVyblshMSx4XX12YXIgST1zO2Z1bmN0aW9uIE0obix0KXt0aGlzLnByb3BzPW4sdGhpcy5jb250ZXh0PXR9ZnVuY3Rpb24gTihuLGUpe2Z1bmN0aW9uIHIobil7dmFyIHQ9dGhpcy5wcm9wcy5yZWY7cmV0dXJuIHQhPW4ucmVmJiZ0JiYoXCJmdW5jdGlvblwiPT10eXBlb2YgdD90KG51bGwpOnQuY3VycmVudD1udWxsKSxlPyFlKHRoaXMucHJvcHMsbil8fHQhPW4ucmVmOkUodGhpcy5wcm9wcyxuKX1mdW5jdGlvbiB1KGUpe3JldHVybiB0aGlzLnNob3VsZENvbXBvbmVudFVwZGF0ZT1yLHQobixlKX1yZXR1cm4gdS5kaXNwbGF5TmFtZT1cIk1lbW8oXCIrKG4uZGlzcGxheU5hbWV8fG4ubmFtZSkrXCIpXCIsdS5fX2Y9dS5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD0hMCx1LnR5cGU9bix1fShNLnByb3RvdHlwZT1uZXcgbikuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITAsTS5wcm90b3R5cGUuc2hvdWxkQ29tcG9uZW50VXBkYXRlPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIEUodGhpcy5wcm9wcyxuKXx8RSh0aGlzLnN0YXRlLHQpfTt2YXIgVD1lLl9fYjtlLl9fYj1mdW5jdGlvbihuKXtuLnR5cGUmJm4udHlwZS5fX2YmJm4ucmVmJiYobi5wcm9wcy5yZWY9bi5yZWYsbi5yZWY9bnVsbCksVCYmVChuKX07dmFyIEE9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvciYmU3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpfHwzOTExO2Z1bmN0aW9uIEQobil7ZnVuY3Rpb24gdCh0KXt2YXIgZT1nKHt9LHQpO3JldHVybiBkZWxldGUgZS5yZWYsbihlLHQucmVmfHxudWxsKX1yZXR1cm4gdC4kJHR5cGVvZj1BLHQucmVuZGVyPW4sdC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD10Ll9fZj0hMCx0LmRpc3BsYXlOYW1lPVwiRm9yd2FyZFJlZihcIisobi5kaXNwbGF5TmFtZXx8bi5uYW1lKStcIilcIix0fXZhciBGPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIG51bGw9PW4/bnVsbDpyKHIobikubWFwKHQpKX0sTD17bWFwOkYsZm9yRWFjaDpGLGNvdW50OmZ1bmN0aW9uKG4pe3JldHVybiBuP3IobikubGVuZ3RoOjB9LG9ubHk6ZnVuY3Rpb24obil7dmFyIHQ9cihuKTtpZigxIT09dC5sZW5ndGgpdGhyb3dcIkNoaWxkcmVuLm9ubHlcIjtyZXR1cm4gdFswXX0sdG9BcnJheTpyfSxPPWUuX19lO2UuX19lPWZ1bmN0aW9uKG4sdCxlLHIpe2lmKG4udGhlbilmb3IodmFyIHUsbz10O289by5fXzspaWYoKHU9by5fX2MpJiZ1Ll9fYylyZXR1cm4gbnVsbD09dC5fX2UmJih0Ll9fZT1lLl9fZSx0Ll9faz1lLl9fa3x8W10pLHUuX19jKG4sdCk7TyhuLHQsZSxyKX07dmFyIFU9ZS51bm1vdW50O2Z1bmN0aW9uIFYobix0LGUpe3JldHVybiBuJiYobi5fX2MmJm4uX19jLl9fSCYmKG4uX19jLl9fSC5fXy5mb3JFYWNoKGZ1bmN0aW9uKG4pe1wiZnVuY3Rpb25cIj09dHlwZW9mIG4uX19jJiZuLl9fYygpfSksbi5fX2MuX19IPW51bGwpLG51bGwhPShuPWcoe30sbikpLl9fYyYmKG4uX19jLl9fUD09PWUmJihuLl9fYy5fX1A9dCksbi5fX2MuX19lPSEwLG4uX19jPW51bGwpLG4uX19rPW4uX19rJiZuLl9fay5tYXAoZnVuY3Rpb24obil7cmV0dXJuIFYobix0LGUpfSkpLG59ZnVuY3Rpb24gVyhuLHQsZSl7cmV0dXJuIG4mJmUmJihuLl9fdj1udWxsLG4uX19rPW4uX19rJiZuLl9fay5tYXAoZnVuY3Rpb24obil7cmV0dXJuIFcobix0LGUpfSksbi5fX2MmJm4uX19jLl9fUD09PXQmJihuLl9fZSYmZS5hcHBlbmRDaGlsZChuLl9fZSksbi5fX2MuX19lPSEwLG4uX19jLl9fUD1lKSksbn1mdW5jdGlvbiBQKCl7dGhpcy5fX3U9MCx0aGlzLm89bnVsbCx0aGlzLl9fYj1udWxsfWZ1bmN0aW9uIGoobil7dmFyIHQ9bi5fXyYmbi5fXy5fX2M7cmV0dXJuIHQmJnQuX19hJiZ0Ll9fYShuKX1mdW5jdGlvbiB6KG4pe3ZhciBlLHIsdSxvPW51bGw7ZnVuY3Rpb24gaShpKXtpZihlfHwoZT1uKCkpLnRoZW4oZnVuY3Rpb24obil7biYmKG89bi5kZWZhdWx0fHxuKSx1PSEwfSxmdW5jdGlvbihuKXtyPW4sdT0hMH0pLHIpdGhyb3cgcjtpZighdSl0aHJvdyBlO3JldHVybiBvP3QobyxpKTpudWxsfXJldHVybiBpLmRpc3BsYXlOYW1lPVwiTGF6eVwiLGkuX19mPSEwLGl9ZnVuY3Rpb24gQigpe3RoaXMuaT1udWxsLHRoaXMubD1udWxsfWUudW5tb3VudD1mdW5jdGlvbihuKXt2YXIgdD1uLl9fYzt0JiYodC5fX3o9ITApLHQmJnQuX19SJiZ0Ll9fUigpLHQmJjMyJm4uX191JiYobi50eXBlPW51bGwpLFUmJlUobil9LChQLnByb3RvdHlwZT1uZXcgbikuX19jPWZ1bmN0aW9uKG4sdCl7dmFyIGU9dC5fX2Mscj10aGlzO251bGw9PXIubyYmKHIubz1bXSksci5vLnB1c2goZSk7dmFyIHU9aihyLl9fdiksbz0hMSxpPWZ1bmN0aW9uKCl7b3x8ci5fX3p8fChvPSEwLGUuX19SPW51bGwsdT91KGYpOmYoKSl9O2UuX19SPWk7dmFyIGw9ZS5fX1A7ZS5fX1A9bnVsbDt2YXIgZj1mdW5jdGlvbigpe2lmKCEtLXIuX191KXtpZihyLnN0YXRlLl9fYSl7dmFyIG49ci5zdGF0ZS5fX2E7ci5fX3YuX19rWzBdPVcobixuLl9fYy5fX1Asbi5fX2MuX19PKX12YXIgdDtmb3Ioci5zZXRTdGF0ZSh7X19hOnIuX19iPW51bGx9KTt0PXIuby5wb3AoKTspdC5fX1A9bCx0LmZvcmNlVXBkYXRlKCl9fTtyLl9fdSsrfHwzMiZ0Ll9fdXx8ci5zZXRTdGF0ZSh7X19hOnIuX19iPXIuX192Ll9fa1swXX0pLG4udGhlbihpLGkpfSxQLnByb3RvdHlwZS5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe3RoaXMubz1bXX0sUC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKG4sZSl7aWYodGhpcy5fX2Ipe2lmKHRoaXMuX192Ll9fayl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSxvPXRoaXMuX192Ll9fa1swXS5fX2M7dGhpcy5fX3YuX19rWzBdPVYodGhpcy5fX2IscixvLl9fTz1vLl9fUCl9dGhpcy5fX2I9bnVsbH12YXIgaT1lLl9fYSYmdCh1LG51bGwsbi5mYWxsYmFjayk7cmV0dXJuIGkmJihpLl9fdSY9LTMzKSxbdCh1LG51bGwsZS5fX2E/bnVsbDpuLmNoaWxkcmVuKSxpXX07dmFyIEg9ZnVuY3Rpb24obix0LGUpe2lmKCsrZVsxXT09PWVbMF0mJm4ubC5kZWxldGUodCksbi5wcm9wcy5yZXZlYWxPcmRlciYmKFwidFwiIT09bi5wcm9wcy5yZXZlYWxPcmRlclswXXx8IW4ubC5zaXplKSlmb3IoZT1uLmk7ZTspe2Zvcig7ZS5sZW5ndGg+MzspZS5wb3AoKSgpO2lmKGVbMV08ZVswXSlicmVhaztuLmk9ZT1lWzJdfX07ZnVuY3Rpb24gWihuKXtyZXR1cm4gdGhpcy5nZXRDaGlsZENvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5jb250ZXh0fSxuLmNoaWxkcmVufWZ1bmN0aW9uIFkobil7dmFyIGU9dGhpcyxyPW4uaDtpZihlLmNvbXBvbmVudFdpbGxVbm1vdW50PWZ1bmN0aW9uKCl7byhudWxsLGUudiksZS52PW51bGwsZS5oPW51bGx9LGUuaCYmZS5oIT09ciYmZS5jb21wb25lbnRXaWxsVW5tb3VudCgpLCFlLnYpe2Zvcih2YXIgdT1lLl9fdjtudWxsIT09dSYmIXUuX19tJiZudWxsIT09dS5fXzspdT11Ll9fO2UuaD1yLGUudj17bm9kZVR5cGU6MSxwYXJlbnROb2RlOnIsY2hpbGROb2RlczpbXSxfX2s6e19fbTp1Ll9fbX0sY29udGFpbnM6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sbmFtZXNwYWNlVVJJOnIubmFtZXNwYWNlVVJJLGluc2VydEJlZm9yZTpmdW5jdGlvbihuLHQpe3RoaXMuY2hpbGROb2Rlcy5wdXNoKG4pLGUuaC5pbnNlcnRCZWZvcmUobix0KX0scmVtb3ZlQ2hpbGQ6ZnVuY3Rpb24obil7dGhpcy5jaGlsZE5vZGVzLnNwbGljZSh0aGlzLmNoaWxkTm9kZXMuaW5kZXhPZihuKT4+PjEsMSksZS5oLnJlbW92ZUNoaWxkKG4pfX19byh0KFose2NvbnRleHQ6ZS5jb250ZXh0fSxuLl9fdiksZS52KX1mdW5jdGlvbiAkKG4sZSl7dmFyIHI9dChZLHtfX3Y6bixoOmV9KTtyZXR1cm4gci5jb250YWluZXJJbmZvPWUscn0oQi5wcm90b3R5cGU9bmV3IG4pLl9fYT1mdW5jdGlvbihuKXt2YXIgdD10aGlzLGU9aih0Ll9fdikscj10LmwuZ2V0KG4pO3JldHVybiByWzBdKyssZnVuY3Rpb24odSl7dmFyIG89ZnVuY3Rpb24oKXt0LnByb3BzLnJldmVhbE9yZGVyPyhyLnB1c2godSksSCh0LG4scikpOnUoKX07ZT9lKG8pOm8oKX19LEIucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihuKXt0aGlzLmk9bnVsbCx0aGlzLmw9bmV3IE1hcDt2YXIgdD1yKG4uY2hpbGRyZW4pO24ucmV2ZWFsT3JkZXImJlwiYlwiPT09bi5yZXZlYWxPcmRlclswXSYmdC5yZXZlcnNlKCk7Zm9yKHZhciBlPXQubGVuZ3RoO2UtLTspdGhpcy5sLnNldCh0W2VdLHRoaXMuaT1bMSwwLHRoaXMuaV0pO3JldHVybiBuLmNoaWxkcmVufSxCLnByb3RvdHlwZS5jb21wb25lbnREaWRVcGRhdGU9Qi5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQ9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3RoaXMubC5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7SChuLGUsdCl9KX07dmFyIHE9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvciYmU3ltYm9sLmZvcihcInJlYWN0LmVsZW1lbnRcIil8fDYwMTAzLEc9L14oPzphY2NlbnR8YWxpZ25tZW50fGFyYWJpY3xiYXNlbGluZXxjYXB8Y2xpcCg/IVBhdGhVKXxjb2xvcnxkb21pbmFudHxmaWxsfGZsb29kfGZvbnR8Z2x5cGgoPyFSKXxob3JpenxpbWFnZSghUyl8bGV0dGVyfGxpZ2h0aW5nfG1hcmtlcig/IUh8V3xVKXxvdmVybGluZXxwYWludHxwb2ludGVyfHNoYXBlfHN0b3B8c3RyaWtldGhyb3VnaHxzdHJva2V8dGV4dCg/IUwpfHRyYW5zZm9ybXx1bmRlcmxpbmV8dW5pY29kZXx1bml0c3x2fHZlY3Rvcnx2ZXJ0fHdvcmR8d3JpdGluZ3x4KD8hQykpW0EtWl0vLEo9L15vbihBbml8VHJhfFRvdXxCZWZvcmVJbnB8Q29tcG8pLyxLPS9bQS1aMC05XS9nLFE9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGRvY3VtZW50LFg9ZnVuY3Rpb24obil7cmV0dXJuKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2woKT8vZmlsfGNoZXxyYWQvOi9maWx8Y2hlfHJhLykudGVzdChuKX07ZnVuY3Rpb24gbm4obix0LGUpe3JldHVybiBudWxsPT10Ll9fayYmKHQudGV4dENvbnRlbnQ9XCJcIiksbyhuLHQpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJmUoKSxuP24uX19jOm51bGx9ZnVuY3Rpb24gdG4obix0LGUpe3JldHVybiBpKG4sdCksXCJmdW5jdGlvblwiPT10eXBlb2YgZSYmZSgpLG4/bi5fX2M6bnVsbH1uLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PSEwLFtcImNvbXBvbmVudFdpbGxNb3VudFwiLFwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1wiLFwiY29tcG9uZW50V2lsbFVwZGF0ZVwiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSx0LHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbXCJVTlNBRkVfXCIrdF19LHNldDpmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyx0LHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pfX0pfSk7dmFyIGVuPWUuZXZlbnQ7ZS5ldmVudD1mdW5jdGlvbihuKXtyZXR1cm4gZW4mJihuPWVuKG4pKSxuLnBlcnNpc3Q9ZnVuY3Rpb24oKXt9LG4uaXNQcm9wYWdhdGlvblN0b3BwZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYW5jZWxCdWJibGV9LG4uaXNEZWZhdWx0UHJldmVudGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVmYXVsdFByZXZlbnRlZH0sbi5uYXRpdmVFdmVudD1ufTt2YXIgcm4sdW49e2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbGFzc319LG9uPWUudm5vZGU7ZS52bm9kZT1mdW5jdGlvbihuKXtcInN0cmluZ1wiPT10eXBlb2Ygbi50eXBlJiZmdW5jdGlvbihuKXt2YXIgdD1uLnByb3BzLGU9bi50eXBlLHU9e30sbz0tMT09ZS5pbmRleE9mKFwiLVwiKTtmb3IodmFyIGkgaW4gdCl7dmFyIGw9dFtpXTtpZighKFwidmFsdWVcIj09PWkmJlwiZGVmYXVsdFZhbHVlXCJpbiB0JiZudWxsPT1sfHxRJiZcImNoaWxkcmVuXCI9PT1pJiZcIm5vc2NyaXB0XCI9PT1lfHxcImNsYXNzXCI9PT1pfHxcImNsYXNzTmFtZVwiPT09aSkpe3ZhciBmPWkudG9Mb3dlckNhc2UoKTtcImRlZmF1bHRWYWx1ZVwiPT09aSYmXCJ2YWx1ZVwiaW4gdCYmbnVsbD09dC52YWx1ZT9pPVwidmFsdWVcIjpcImRvd25sb2FkXCI9PT1pJiYhMD09PWw/bD1cIlwiOlwidHJhbnNsYXRlXCI9PT1mJiZcIm5vXCI9PT1sP2w9ITE6XCJvXCI9PT1mWzBdJiZcIm5cIj09PWZbMV0/XCJvbmRvdWJsZWNsaWNrXCI9PT1mP2k9XCJvbmRibGNsaWNrXCI6XCJvbmNoYW5nZVwiIT09Znx8XCJpbnB1dFwiIT09ZSYmXCJ0ZXh0YXJlYVwiIT09ZXx8WCh0LnR5cGUpP1wib25mb2N1c1wiPT09Zj9pPVwib25mb2N1c2luXCI6XCJvbmJsdXJcIj09PWY/aT1cIm9uZm9jdXNvdXRcIjpKLnRlc3QoaSkmJihpPWYpOmY9aT1cIm9uaW5wdXRcIjpvJiZHLnRlc3QoaSk/aT1pLnJlcGxhY2UoSyxcIi0kJlwiKS50b0xvd2VyQ2FzZSgpOm51bGw9PT1sJiYobD12b2lkIDApLFwib25pbnB1dFwiPT09ZiYmdVtpPWZdJiYoaT1cIm9uaW5wdXRDYXB0dXJlXCIpLHVbaV09bH19XCJzZWxlY3RcIj09ZSYmKHUubXVsdGlwbGUmJkFycmF5LmlzQXJyYXkodS52YWx1ZSkmJih1LnZhbHVlPXIodC5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbihuKXtuLnByb3BzLnNlbGVjdGVkPS0xIT11LnZhbHVlLmluZGV4T2Yobi5wcm9wcy52YWx1ZSl9KSksbnVsbCE9dS5kZWZhdWx0VmFsdWUmJih1LnZhbHVlPXIodC5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbihuKXtuLnByb3BzLnNlbGVjdGVkPXUubXVsdGlwbGU/LTEhPXUuZGVmYXVsdFZhbHVlLmluZGV4T2Yobi5wcm9wcy52YWx1ZSk6dS5kZWZhdWx0VmFsdWU9PW4ucHJvcHMudmFsdWV9KSkpLHQuY2xhc3MmJiF0LmNsYXNzTmFtZT8odS5jbGFzcz10LmNsYXNzLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LFwiY2xhc3NOYW1lXCIsdW4pKTp0LmNsYXNzTmFtZSYmKHUuY2xhc3M9dS5jbGFzc05hbWU9dC5jbGFzc05hbWUpLG4ucHJvcHM9dX0obiksbi4kJHR5cGVvZj1xLG9uJiZvbihuKX07dmFyIGxuPWUuX19yO2UuX19yPWZ1bmN0aW9uKG4pe2xuJiZsbihuKSxybj1uLl9fY307dmFyIGZuPWUuZGlmZmVkO2UuZGlmZmVkPWZ1bmN0aW9uKG4pe2ZuJiZmbihuKTt2YXIgdD1uLnByb3BzLGU9bi5fX2U7bnVsbCE9ZSYmXCJ0ZXh0YXJlYVwiPT09bi50eXBlJiZcInZhbHVlXCJpbiB0JiZ0LnZhbHVlIT09ZS52YWx1ZSYmKGUudmFsdWU9bnVsbD09dC52YWx1ZT9cIlwiOnQudmFsdWUpLHJuPW51bGx9O3ZhciBhbj17UmVhY3RDdXJyZW50RGlzcGF0Y2hlcjp7Y3VycmVudDp7cmVhZENvbnRleHQ6ZnVuY3Rpb24obil7cmV0dXJuIHJuLl9fbltuLl9fY10ucHJvcHMudmFsdWV9LHVzZUNhbGxiYWNrOnYsdXNlQ29udGV4dDpkLHVzZURlYnVnVmFsdWU6bSx1c2VEZWZlcnJlZFZhbHVlOncsdXNlRWZmZWN0OmgsdXNlSWQ6cCx1c2VJbXBlcmF0aXZlSGFuZGxlOnksdXNlSW5zZXJ0aW9uRWZmZWN0OkksdXNlTGF5b3V0RWZmZWN0OnMsdXNlTWVtbzpfLHVzZVJlZHVjZXI6Yix1c2VSZWY6Uyx1c2VTdGF0ZTpjLHVzZVN5bmNFeHRlcm5hbFN0b3JlOkMsdXNlVHJhbnNpdGlvbjprfX19LGNuPVwiMTguMy4xXCI7ZnVuY3Rpb24gc24obil7cmV0dXJuIHQuYmluZChudWxsLG4pfWZ1bmN0aW9uIGhuKG4pe3JldHVybiEhbiYmbi4kJHR5cGVvZj09PXF9ZnVuY3Rpb24gdm4obil7cmV0dXJuIGhuKG4pJiZuLnR5cGU9PT11fWZ1bmN0aW9uIGRuKG4pe3JldHVybiEhbiYmXCJzdHJpbmdcIj09dHlwZW9mIG4uZGlzcGxheU5hbWUmJjA9PW4uZGlzcGxheU5hbWUuaW5kZXhPZihcIk1lbW8oXCIpfWZ1bmN0aW9uIG1uKG4pe3JldHVybiBobihuKT9hLmFwcGx5KG51bGwsYXJndW1lbnRzKTpufWZ1bmN0aW9uIHBuKG4pe3JldHVybiEhbi5fX2smJihvKG51bGwsbiksITApfWZ1bmN0aW9uIHluKG4pe3JldHVybiBuJiYobi5iYXNlfHwxPT09bi5ub2RlVHlwZSYmbil8fG51bGx9dmFyIF9uPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4odCl9LGJuPWZ1bmN0aW9uKG4sdCl7dmFyIHIsdT1lLmRlYm91bmNlUmVuZGVyaW5nO2UuZGVib3VuY2VSZW5kZXJpbmc9ZnVuY3Rpb24obil7cj1ufTt0cnl7dmFyIG89bih0KTtyZXR1cm4gciYmcigpLG99ZmluYWxseXtlLmRlYm91bmNlUmVuZGVyaW5nPXV9fSxTbj1obixnbj17dXNlU3RhdGU6Yyx1c2VJZDpwLHVzZVJlZHVjZXI6Yix1c2VFZmZlY3Q6aCx1c2VMYXlvdXRFZmZlY3Q6cyx1c2VJbnNlcnRpb25FZmZlY3Q6SSx1c2VUcmFuc2l0aW9uOmssdXNlRGVmZXJyZWRWYWx1ZTp3LHVzZVN5bmNFeHRlcm5hbFN0b3JlOkMsc3RhcnRUcmFuc2l0aW9uOngsdXNlUmVmOlMsdXNlSW1wZXJhdGl2ZUhhbmRsZTp5LHVzZU1lbW86Xyx1c2VDYWxsYmFjazp2LHVzZUNvbnRleHQ6ZCx1c2VEZWJ1Z1ZhbHVlOm0sdmVyc2lvbjpcIjE4LjMuMVwiLENoaWxkcmVuOkwscmVuZGVyOm5uLGh5ZHJhdGU6dG4sdW5tb3VudENvbXBvbmVudEF0Tm9kZTpwbixjcmVhdGVQb3J0YWw6JCxjcmVhdGVFbGVtZW50OnQsY3JlYXRlQ29udGV4dDpsLGNyZWF0ZUZhY3Rvcnk6c24sY2xvbmVFbGVtZW50Om1uLGNyZWF0ZVJlZjpmLEZyYWdtZW50OnUsaXNWYWxpZEVsZW1lbnQ6aG4saXNFbGVtZW50OlNuLGlzRnJhZ21lbnQ6dm4saXNNZW1vOmRuLGZpbmRET01Ob2RlOnluLENvbXBvbmVudDpuLFB1cmVDb21wb25lbnQ6TSxtZW1vOk4sZm9yd2FyZFJlZjpELGZsdXNoU3luYzpibix1bnN0YWJsZV9iYXRjaGVkVXBkYXRlczpfbixTdHJpY3RNb2RlOnUsU3VzcGVuc2U6UCxTdXNwZW5zZUxpc3Q6QixsYXp5OnosX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ6YW59O2V4cG9ydHtMIGFzIENoaWxkcmVuLE0gYXMgUHVyZUNvbXBvbmVudCxQIGFzIFN1c3BlbnNlLEIgYXMgU3VzcGVuc2VMaXN0LGFuIGFzIF9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVELG1uIGFzIGNsb25lRWxlbWVudCxzbiBhcyBjcmVhdGVGYWN0b3J5LCQgYXMgY3JlYXRlUG9ydGFsLGduIGFzIGRlZmF1bHQseW4gYXMgZmluZERPTU5vZGUsYm4gYXMgZmx1c2hTeW5jLEQgYXMgZm9yd2FyZFJlZix0biBhcyBoeWRyYXRlLFNuIGFzIGlzRWxlbWVudCx2biBhcyBpc0ZyYWdtZW50LGRuIGFzIGlzTWVtbyxobiBhcyBpc1ZhbGlkRWxlbWVudCx6IGFzIGxhenksTiBhcyBtZW1vLG5uIGFzIHJlbmRlcix4IGFzIHN0YXJ0VHJhbnNpdGlvbixwbiBhcyB1bm1vdW50Q29tcG9uZW50QXROb2RlLF9uIGFzIHVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzLHcgYXMgdXNlRGVmZXJyZWRWYWx1ZSxJIGFzIHVzZUluc2VydGlvbkVmZmVjdCxDIGFzIHVzZVN5bmNFeHRlcm5hbFN0b3JlLGsgYXMgdXNlVHJhbnNpdGlvbixjbiBhcyB2ZXJzaW9ufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbXBhdC5tb2R1bGUuanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///763\n\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\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) // removed by dead control flow\n{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTU2LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLEtBQXFDLEVBQUU7QUFBQSxxQ0FPMUMsQ0FBQztBQUNGO0FBQ0E7QUFDQSxtQkFBbUIsbUJBQU8sQ0FBQyxHQUE0QjtBQUN2RCIsInNvdXJjZXMiOlsid2VicGFjazovL1FQUFN0eWxlLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvaW5kZXguanM/ZDdiYyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBSZWFjdElzID0gcmVxdWlyZSgncmVhY3QtaXMnKTtcblxuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBkZXZlbG9wbWVudCBiZWhhdmlvci5cbiAgLy8gaHR0cDovL2ZiLm1lL3Byb3AtdHlwZXMtaW4tcHJvZFxuICB2YXIgdGhyb3dPbkRpcmVjdEFjY2VzcyA9IHRydWU7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFR5cGVDaGVja2VycycpKFJlYWN0SXMuaXNFbGVtZW50LCB0aHJvd09uRGlyZWN0QWNjZXNzKTtcbn0gZWxzZSB7XG4gIC8vIEJ5IGV4cGxpY2l0bHkgdXNpbmcgYHByb3AtdHlwZXNgIHlvdSBhcmUgb3B0aW5nIGludG8gbmV3IHByb2R1Y3Rpb24gYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2ZhY3RvcnlXaXRoVGhyb3dpbmdTaGltcycpKCk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///556\n\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\n}")},88(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 // removed by dead control flow\n{}\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODguanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQXlEO0FBQzdEO0FBQ0EsTUFBTTtBQUFBLEVBSzBCO0FBQ2hDLENBQUM7QUFDRCxxQ0FBcUM7QUFDckM7QUFDQTs7QUFFQTtBQUNBLG1CQUFtQiw4QkFBbUI7O0FBRXRDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDBFQUEwRSw4QkFBbUI7O0FBRTdGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBLFVBQVUsOEJBQW1COztBQUU3QjtBQUNBLFVBQVUsOEJBQW1COztBQUU3QjtBQUNBLFVBQVUsOEJBQW1COztBQUU3QjtBQUNBLGlCQUFpQiw4QkFBbUI7QUFDcEMsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7O0FBRVI7QUFDQTtBQUNBO0FBQ0EsUUFBUTs7QUFFUjtBQUNBLDJDQUEyQzs7QUFFM0M7QUFDQSwrQ0FBK0M7O0FBRS9DO0FBQ0EsdURBQXVEOztBQUV2RDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLOztBQUVMO0FBQ0Esd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQSxLQUFLO0FBQ0w7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsK0JBQStCOztBQUV0RTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZ0RBQWdELFNBQVM7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZ0RBQWdELFNBQVM7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUixNQUFNOztBQUVOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUYsT0FBTztBQUNQO0FBQ0EsQ0FBQztBQUNEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vUVBQU3R5bGUvLi9ub2RlX21vZHVsZXMvd2hhdC1pbnB1dC9kaXN0L3doYXQtaW5wdXQuanM/OGUzYiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIHdoYXQtaW5wdXQgLSBBIGdsb2JhbCB1dGlsaXR5IGZvciB0cmFja2luZyB0aGUgY3VycmVudCBpbnB1dCBtZXRob2QgKG1vdXNlLCBrZXlib2FyZCBvciB0b3VjaCkuXG4gKiBAdmVyc2lvbiB2NS4yLjEyXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vdGVuMXNldmVuL3doYXQtaW5wdXRcbiAqIEBsaWNlbnNlIE1JVFxuICovXG4oZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShcIndoYXRJbnB1dFwiLCBbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJ3aGF0SW5wdXRcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wid2hhdElucHV0XCJdID0gZmFjdG9yeSgpO1xufSkodGhpcywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gLyoqKioqKi8gKGZ1bmN0aW9uKG1vZHVsZXMpIHsgLy8gd2VicGFja0Jvb3RzdHJhcFxuLyoqKioqKi8gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbi8qKioqKiovIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbi8qKioqKiovIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4vKioqKioqLyBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4vKioqKioqLyBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4vKioqKioqLyBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcblxuLyoqKioqKi8gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4vKioqKioqLyBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuLyoqKioqKi8gXHRcdFx0ZXhwb3J0czoge30sXG4vKioqKioqLyBcdFx0XHRpZDogbW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRsb2FkZWQ6IGZhbHNlXG4vKioqKioqLyBcdFx0fTtcblxuLyoqKioqKi8gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuLyoqKioqKi8gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4vKioqKioqLyBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuLyoqKioqKi8gXHRcdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuXG4vKioqKioqLyBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbi8qKioqKiovIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4vKioqKioqLyBcdH1cblxuXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuLyoqKioqKi8gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG4vKioqKioqLyBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLyoqKioqKi8gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qKioqKiovIH0pXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gKFtcbi8qIDAgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxuXHQndXNlIHN0cmljdCc7XG5cblx0bW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XG5cdCAgLypcblx0ICAgKiBiYWlsIG91dCBpZiB0aGVyZSBpcyBubyBkb2N1bWVudCBvciB3aW5kb3dcblx0ICAgKiAoaS5lLiBpbiBhIG5vZGUvbm9uLURPTSBlbnZpcm9ubWVudClcblx0ICAgKlxuXHQgICAqIFJldHVybiBhIHN0dWJiZWQgQVBJIGluc3RlYWRcblx0ICAgKi9cblx0ICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuXHQgICAgcmV0dXJuIHtcblx0ICAgICAgLy8gYWx3YXlzIHJldHVybiBcImluaXRpYWxcIiBiZWNhdXNlIG5vIGludGVyYWN0aW9uIHdpbGwgZXZlciBiZSBkZXRlY3RlZFxuXHQgICAgICBhc2s6IGZ1bmN0aW9uIGFzaygpIHtcblx0ICAgICAgICByZXR1cm4gJ2luaXRpYWwnO1xuXHQgICAgICB9LFxuXG5cdCAgICAgIC8vIGFsd2F5cyByZXR1cm4gbnVsbFxuXHQgICAgICBlbGVtZW50OiBmdW5jdGlvbiBlbGVtZW50KCkge1xuXHQgICAgICAgIHJldHVybiBudWxsO1xuXHQgICAgICB9LFxuXG5cdCAgICAgIC8vIG5vLW9wXG5cdCAgICAgIGlnbm9yZUtleXM6IGZ1bmN0aW9uIGlnbm9yZUtleXMoKSB7fSxcblxuXHQgICAgICAvLyBuby1vcFxuXHQgICAgICBzcGVjaWZpY0tleXM6IGZ1bmN0aW9uIHNwZWNpZmljS2V5cygpIHt9LFxuXG5cdCAgICAgIC8vIG5vLW9wXG5cdCAgICAgIHJlZ2lzdGVyT25DaGFuZ2U6IGZ1bmN0aW9uIHJlZ2lzdGVyT25DaGFuZ2UoKSB7fSxcblxuXHQgICAgICAvLyBuby1vcFxuXHQgICAgICB1blJlZ2lzdGVyT25DaGFuZ2U6IGZ1bmN0aW9uIHVuUmVnaXN0ZXJPbkNoYW5nZSgpIHt9XG5cdCAgICB9O1xuXHQgIH1cblxuXHQgIC8qXG5cdCAgICogdmFyaWFibGVzXG5cdCAgICovXG5cblx0ICAvLyBjYWNoZSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcblx0ICB2YXIgZG9jRWxlbSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblxuXHQgIC8vIGN1cnJlbnRseSBmb2N1c2VkIGRvbSBlbGVtZW50XG5cdCAgdmFyIGN1cnJlbnRFbGVtZW50ID0gbnVsbDtcblxuXHQgIC8vIGxhc3QgdXNlZCBpbnB1dCB0eXBlXG5cdCAgdmFyIGN1cnJlbnRJbnB1dCA9ICdpbml0aWFsJztcblxuXHQgIC8vIGxhc3QgdXNlZCBpbnB1dCBpbnRlbnRcblx0ICB2YXIgY3VycmVudEludGVudCA9IGN1cnJlbnRJbnB1dDtcblxuXHQgIC8vIFVOSVggdGltZXN0YW1wIG9mIGN1cnJlbnQgZXZlbnRcblx0ICB2YXIgY3VycmVudFRpbWVzdGFtcCA9IERhdGUubm93KCk7XG5cblx0ICAvLyBjaGVjayBmb3IgYSBgZGF0YS13aGF0cGVyc2lzdGAgYXR0cmlidXRlIG9uIGVpdGhlciB0aGUgYGh0bWxgIG9yIGBib2R5YCBlbGVtZW50cywgZGVmYXVsdHMgdG8gYHRydWVgXG5cdCAgdmFyIHNob3VsZFBlcnNpc3QgPSBmYWxzZTtcblxuXHQgIC8vIGZvcm0gaW5wdXQgdHlwZXNcblx0ICB2YXIgZm9ybUlucHV0cyA9IFsnYnV0dG9uJywgJ2lucHV0JywgJ3NlbGVjdCcsICd0ZXh0YXJlYSddO1xuXG5cdCAgLy8gZW1wdHkgYXJyYXkgZm9yIGhvbGRpbmcgY2FsbGJhY2sgZnVuY3Rpb25zXG5cdCAgdmFyIGZ1bmN0aW9uTGlzdCA9IFtdO1xuXG5cdCAgLy8gbGlzdCBvZiBtb2RpZmllciBrZXlzIGNvbW1vbmx5IHVzZWQgd2l0aCB0aGUgbW91c2UgYW5kXG5cdCAgLy8gY2FuIGJlIHNhZmVseSBpZ25vcmVkIHRvIHByZXZlbnQgZmFsc2Uga2V5Ym9hcmQgZGV0ZWN0aW9uXG5cdCAgdmFyIGlnbm9yZU1hcCA9IFsxNiwgLy8gc2hpZnRcblx0ICAxNywgLy8gY29udHJvbFxuXHQgIDE4LCAvLyBhbHRcblx0ICA5MSwgLy8gV2luZG93cyBrZXkgLyBsZWZ0IEFwcGxlIGNtZFxuXHQgIDkzIC8vIFdpbmRvd3MgbWVudSAvIHJpZ2h0IEFwcGxlIGNtZFxuXHQgIF07XG5cblx0ICB2YXIgc3BlY2lmaWNNYXAgPSBbXTtcblxuXHQgIC8vIG1hcHBpbmcgb2YgZXZlbnRzIHRvIGlucHV0IHR5cGVzXG5cdCAgdmFyIGlucHV0TWFwID0ge1xuXHQgICAga2V5ZG93bjogJ2tleWJvYXJkJyxcblx0ICAgIGtleXVwOiAna2V5Ym9hcmQnLFxuXHQgICAgbW91c2Vkb3duOiAnbW91c2UnLFxuXHQgICAgbW91c2Vtb3ZlOiAnbW91c2UnLFxuXHQgICAgTVNQb2ludGVyRG93bjogJ3BvaW50ZXInLFxuXHQgICAgTVNQb2ludGVyTW92ZTogJ3BvaW50ZXInLFxuXHQgICAgcG9pbnRlcmRvd246ICdwb2ludGVyJyxcblx0ICAgIHBvaW50ZXJtb3ZlOiAncG9pbnRlcicsXG5cdCAgICB0b3VjaHN0YXJ0OiAndG91Y2gnLFxuXHQgICAgdG91Y2hlbmQ6ICd0b3VjaCdcblxuXHQgICAgLy8gYm9vbGVhbjogdHJ1ZSBpZiB0aGUgcGFnZSBpcyBiZWluZyBzY3JvbGxlZFxuXHQgIH07dmFyIGlzU2Nyb2xsaW5nID0gZmFsc2U7XG5cblx0ICAvLyBzdG9yZSBjdXJyZW50IG1vdXNlIHBvc2l0aW9uXG5cdCAgdmFyIG1vdXNlUG9zID0ge1xuXHQgICAgeDogbnVsbCxcblx0ICAgIHk6IG51bGxcblxuXHQgICAgLy8gbWFwIG9mIElFIDEwIHBvaW50ZXIgZXZlbnRzXG5cdCAgfTt2YXIgcG9pbnRlck1hcCA9IHtcblx0ICAgIDI6ICd0b3VjaCcsXG5cdCAgICAzOiAndG91Y2gnLCAvLyB0cmVhdCBwZW4gbGlrZSB0b3VjaFxuXHQgICAgNDogJ21vdXNlJ1xuXG5cdCAgICAvLyBjaGVjayBzdXBwb3J0IGZvciBwYXNzaXZlIGV2ZW50IGxpc3RlbmVyc1xuXHQgIH07dmFyIHN1cHBvcnRzUGFzc2l2ZSA9IGZhbHNlO1xuXG5cdCAgdHJ5IHtcblx0ICAgIHZhciBvcHRzID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAncGFzc2l2ZScsIHtcblx0ICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG5cdCAgICAgICAgc3VwcG9ydHNQYXNzaXZlID0gdHJ1ZTtcblx0ICAgICAgfVxuXHQgICAgfSk7XG5cblx0ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0ZXN0JywgbnVsbCwgb3B0cyk7XG5cdCAgfSBjYXRjaCAoZSkge31cblx0ICAvLyBmYWlsIHNpbGVudGx5XG5cblxuXHQgIC8qXG5cdCAgICogc2V0IHVwXG5cdCAgICovXG5cblx0ICB2YXIgc2V0VXAgPSBmdW5jdGlvbiBzZXRVcCgpIHtcblx0ICAgIC8vIGFkZCBjb3JyZWN0IG1vdXNlIHdoZWVsIGV2ZW50IG1hcHBpbmcgdG8gYGlucHV0TWFwYFxuXHQgICAgaW5wdXRNYXBbZGV0ZWN0V2hlZWwoKV0gPSAnbW91c2UnO1xuXG5cdCAgICBhZGRMaXN0ZW5lcnMoKTtcblx0ICB9O1xuXG5cdCAgLypcblx0ICAgKiBldmVudHNcblx0ICAgKi9cblxuXHQgIHZhciBhZGRMaXN0ZW5lcnMgPSBmdW5jdGlvbiBhZGRMaXN0ZW5lcnMoKSB7XG5cdCAgICAvLyBgcG9pbnRlcm1vdmVgLCBgTVNQb2ludGVyTW92ZWAsIGBtb3VzZW1vdmVgIGFuZCBtb3VzZSB3aGVlbCBldmVudCBiaW5kaW5nXG5cdCAgICAvLyBjYW4gb25seSBkZW1vbnN0cmF0ZSBwb3RlbnRpYWwsIGJ1dCBub3QgYWN0dWFsLCBpbnRlcmFjdGlvblxuXHQgICAgLy8gYW5kIGFyZSB0cmVhdGVkIHNlcGFyYXRlbHlcblx0ICAgIHZhciBvcHRpb25zID0gc3VwcG9ydHNQYXNzaXZlID8geyBwYXNzaXZlOiB0cnVlLCBjYXB0dXJlOiB0cnVlIH0gOiB0cnVlO1xuXG5cdCAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgc2V0UGVyc2lzdCwgdHJ1ZSk7XG5cblx0ICAgIC8vIHBvaW50ZXIgZXZlbnRzIChtb3VzZSwgcGVuLCB0b3VjaClcblx0ICAgIGlmICh3aW5kb3cuUG9pbnRlckV2ZW50KSB7XG5cdCAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIHNldElucHV0LCB0cnVlKTtcblx0ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgc2V0SW50ZW50LCB0cnVlKTtcblx0ICAgIH0gZWxzZSBpZiAod2luZG93Lk1TUG9pbnRlckV2ZW50KSB7XG5cdCAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdNU1BvaW50ZXJEb3duJywgc2V0SW5wdXQsIHRydWUpO1xuXHQgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignTVNQb2ludGVyTW92ZScsIHNldEludGVudCwgdHJ1ZSk7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICAvLyBtb3VzZSBldmVudHNcblx0ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHNldElucHV0LCB0cnVlKTtcblx0ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHNldEludGVudCwgdHJ1ZSk7XG5cblx0ICAgICAgLy8gdG91Y2ggZXZlbnRzXG5cdCAgICAgIGlmICgnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cpIHtcblx0ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHNldElucHV0LCBvcHRpb25zKTtcblx0ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBzZXRJbnB1dCwgdHJ1ZSk7XG5cdCAgICAgIH1cblx0ICAgIH1cblxuXHQgICAgLy8gbW91c2Ugd2hlZWxcblx0ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKGRldGVjdFdoZWVsKCksIHNldEludGVudCwgb3B0aW9ucyk7XG5cblx0ICAgIC8vIGtleWJvYXJkIGV2ZW50c1xuXHQgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBzZXRJbnB1dCwgdHJ1ZSk7XG5cdCAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBzZXRJbnB1dCwgdHJ1ZSk7XG5cblx0ICAgIC8vIGZvY3VzIGV2ZW50c1xuXHQgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBzZXRFbGVtZW50LCB0cnVlKTtcblx0ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIGNsZWFyRWxlbWVudCwgdHJ1ZSk7XG5cdCAgfTtcblxuXHQgIC8vIGNoZWNrcyBpZiBpbnB1dCBwZXJzaXN0ZW5jZSBzaG91bGQgaGFwcGVuIGFuZFxuXHQgIC8vIGdldCBzYXZlZCBzdGF0ZSBmcm9tIHNlc3Npb24gc3RvcmFnZSBpZiB0cnVlIChkZWZhdWx0cyB0byBgZmFsc2VgKVxuXHQgIHZhciBzZXRQZXJzaXN0ID0gZnVuY3Rpb24gc2V0UGVyc2lzdCgpIHtcblx0ICAgIHNob3VsZFBlcnNpc3QgPSAhKGRvY0VsZW0uZ2V0QXR0cmlidXRlKCdkYXRhLXdoYXRwZXJzaXN0JykgPT09ICdmYWxzZScgfHwgZG9jdW1lbnQuYm9keS5nZXRBdHRyaWJ1dGUoJ2RhdGEtd2hhdHBlcnNpc3QnKSA9PT0gJ2ZhbHNlJyk7XG5cblx0ICAgIGlmIChzaG91bGRQZXJzaXN0KSB7XG5cdCAgICAgIC8vIGNoZWNrIGZvciBzZXNzaW9uIHZhcmlhYmxlcyBhbmQgdXNlIGlmIGF2YWlsYWJsZVxuXHQgICAgICB0cnkge1xuXHQgICAgICAgIGlmICh3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnd2hhdC1pbnB1dCcpKSB7XG5cdCAgICAgICAgICBjdXJyZW50SW5wdXQgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnd2hhdC1pbnB1dCcpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGlmICh3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnd2hhdC1pbnRlbnQnKSkge1xuXHQgICAgICAgICAgY3VycmVudEludGVudCA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd3aGF0LWludGVudCcpO1xuXHQgICAgICAgIH1cblx0ICAgICAgfSBjYXRjaCAoZSkge1xuXHQgICAgICAgIC8vIGZhaWwgc2lsZW50bHlcblx0ICAgICAgfVxuXHQgICAgfVxuXG5cdCAgICAvLyBhbHdheXMgcnVuIHRoZXNlIHNvIGF0IGxlYXN0IGBpbml0aWFsYCBzdGF0ZSBpcyBzZXRcblx0ICAgIGRvVXBkYXRlKCdpbnB1dCcpO1xuXHQgICAgZG9VcGRhdGUoJ2ludGVudCcpO1xuXHQgIH07XG5cblx0ICAvLyBjaGVja3MgY29uZGl0aW9ucyBiZWZvcmUgdXBkYXRpbmcgbmV3IGlucHV0XG5cdCAgdmFyIHNldElucHV0ID0gZnVuY3Rpb24gc2V0SW5wdXQoZXZlbnQpIHtcblx0ICAgIHZhciBldmVudEtleSA9IGV2ZW50LndoaWNoO1xuXHQgICAgdmFyIHZhbHVlID0gaW5wdXRNYXBbZXZlbnQudHlwZV07XG5cblx0ICAgIGlmICh2YWx1ZSA9PT0gJ3BvaW50ZXInKSB7XG5cdCAgICAgIHZhbHVlID0gcG9pbnRlclR5cGUoZXZlbnQpO1xuXHQgICAgfVxuXG5cdCAgICB2YXIgaWdub3JlTWF0Y2ggPSAhc3BlY2lmaWNNYXAubGVuZ3RoICYmIGlnbm9yZU1hcC5pbmRleE9mKGV2ZW50S2V5KSA9PT0gLTE7XG5cblx0ICAgIHZhciBzcGVjaWZpY01hdGNoID0gc3BlY2lmaWNNYXAubGVuZ3RoICYmIHNwZWNpZmljTWFwLmluZGV4T2YoZXZlbnRLZXkpICE9PSAtMTtcblxuXHQgICAgdmFyIHNob3VsZFVwZGF0ZSA9IHZhbHVlID09PSAna2V5Ym9hcmQnICYmIGV2ZW50S2V5ICYmIChpZ25vcmVNYXRjaCB8fCBzcGVjaWZpY01hdGNoKSB8fCB2YWx1ZSA9PT0gJ21vdXNlJyB8fCB2YWx1ZSA9PT0gJ3RvdWNoJztcblxuXHQgICAgLy8gcHJldmVudCB0b3VjaCBkZXRlY3Rpb24gZnJvbSBiZWluZyBvdmVycmlkZGVuIGJ5IGV2ZW50IGV4ZWN1dGlvbiBvcmRlclxuXHQgICAgaWYgKHZhbGlkYXRlVG91Y2godmFsdWUpKSB7XG5cdCAgICAgIHNob3VsZFVwZGF0ZSA9IGZhbHNlO1xuXHQgICAgfVxuXG5cdCAgICBpZiAoc2hvdWxkVXBkYXRlICYmIGN1cnJlbnRJbnB1dCAhPT0gdmFsdWUpIHtcblx0ICAgICAgY3VycmVudElucHV0ID0gdmFsdWU7XG5cblx0ICAgICAgcGVyc2lzdElucHV0KCdpbnB1dCcsIGN1cnJlbnRJbnB1dCk7XG5cdCAgICAgIGRvVXBkYXRlKCdpbnB1dCcpO1xuXHQgICAgfVxuXG5cdCAgICBpZiAoc2hvdWxkVXBkYXRlICYmIGN1cnJlbnRJbnRlbnQgIT09IHZhbHVlKSB7XG5cdCAgICAgIC8vIHByZXNlcnZlIGludGVudCBmb3Iga2V5Ym9hcmQgaW50ZXJhY3Rpb24gd2l0aCBmb3JtIGZpZWxkc1xuXHQgICAgICB2YXIgYWN0aXZlRWxlbSA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cdCAgICAgIHZhciBub3RGb3JtSW5wdXQgPSBhY3RpdmVFbGVtICYmIGFjdGl2ZUVsZW0ubm9kZU5hbWUgJiYgKGZvcm1JbnB1dHMuaW5kZXhPZihhY3RpdmVFbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpID09PSAtMSB8fCBhY3RpdmVFbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdidXR0b24nICYmICFjaGVja0Nsb3Nlc3QoYWN0aXZlRWxlbSwgJ2Zvcm0nKSk7XG5cblx0ICAgICAgaWYgKG5vdEZvcm1JbnB1dCkge1xuXHQgICAgICAgIGN1cnJlbnRJbnRlbnQgPSB2YWx1ZTtcblxuXHQgICAgICAgIHBlcnNpc3RJbnB1dCgnaW50ZW50JywgY3VycmVudEludGVudCk7XG5cdCAgICAgICAgZG9VcGRhdGUoJ2ludGVudCcpO1xuXHQgICAgICB9XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIC8vIHVwZGF0ZXMgdGhlIGRvYyBhbmQgYGlucHV0VHlwZXNgIGFycmF5IHdpdGggbmV3IGlucHV0XG5cdCAgdmFyIGRvVXBkYXRlID0gZnVuY3Rpb24gZG9VcGRhdGUod2hpY2gpIHtcblx0ICAgIGRvY0VsZW0uc2V0QXR0cmlidXRlKCdkYXRhLXdoYXQnICsgd2hpY2gsIHdoaWNoID09PSAnaW5wdXQnID8gY3VycmVudElucHV0IDogY3VycmVudEludGVudCk7XG5cblx0ICAgIGZpcmVGdW5jdGlvbnMod2hpY2gpO1xuXHQgIH07XG5cblx0ICAvLyB1cGRhdGVzIGlucHV0IGludGVudCBmb3IgYG1vdXNlbW92ZWAgYW5kIGBwb2ludGVybW92ZWBcblx0ICB2YXIgc2V0SW50ZW50ID0gZnVuY3Rpb24gc2V0SW50ZW50KGV2ZW50KSB7XG5cdCAgICB2YXIgdmFsdWUgPSBpbnB1dE1hcFtldmVudC50eXBlXTtcblxuXHQgICAgaWYgKHZhbHVlID09PSAncG9pbnRlcicpIHtcblx0ICAgICAgdmFsdWUgPSBwb2ludGVyVHlwZShldmVudCk7XG5cdCAgICB9XG5cblx0ICAgIC8vIHRlc3QgdG8gc2VlIGlmIGBtb3VzZW1vdmVgIGhhcHBlbmVkIHJlbGF0aXZlIHRvIHRoZSBzY3JlZW4gdG8gZGV0ZWN0IHNjcm9sbGluZyB2ZXJzdXMgbW91c2Vtb3ZlXG5cdCAgICBkZXRlY3RTY3JvbGxpbmcoZXZlbnQpO1xuXG5cdCAgICAvLyBvbmx5IGV4ZWN1dGUgaWYgc2Nyb2xsaW5nIGlzbid0IGhhcHBlbmluZ1xuXHQgICAgaWYgKCghaXNTY3JvbGxpbmcgJiYgIXZhbGlkYXRlVG91Y2godmFsdWUpIHx8IGlzU2Nyb2xsaW5nICYmIGV2ZW50LnR5cGUgPT09ICd3aGVlbCcgfHwgZXZlbnQudHlwZSA9PT0gJ21vdXNld2hlZWwnIHx8IGV2ZW50LnR5cGUgPT09ICdET01Nb3VzZVNjcm9sbCcpICYmIGN1cnJlbnRJbnRlbnQgIT09IHZhbHVlKSB7XG5cdCAgICAgIGN1cnJlbnRJbnRlbnQgPSB2YWx1ZTtcblxuXHQgICAgICBwZXJzaXN0SW5wdXQoJ2ludGVudCcsIGN1cnJlbnRJbnRlbnQpO1xuXHQgICAgICBkb1VwZGF0ZSgnaW50ZW50Jyk7XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIHZhciBzZXRFbGVtZW50ID0gZnVuY3Rpb24gc2V0RWxlbWVudChldmVudCkge1xuXHQgICAgaWYgKCFldmVudC50YXJnZXQubm9kZU5hbWUpIHtcblx0ICAgICAgLy8gSWYgbm9kZU5hbWUgaXMgdW5kZWZpbmVkLCBjbGVhciB0aGUgZWxlbWVudFxuXHQgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgY2xpY2sgaW5zaWRlIGFuIDxzdmc+IGVsZW1lbnQuXG5cdCAgICAgIGNsZWFyRWxlbWVudCgpO1xuXHQgICAgICByZXR1cm47XG5cdCAgICB9XG5cblx0ICAgIGN1cnJlbnRFbGVtZW50ID0gZXZlbnQudGFyZ2V0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cdCAgICBkb2NFbGVtLnNldEF0dHJpYnV0ZSgnZGF0YS13aGF0ZWxlbWVudCcsIGN1cnJlbnRFbGVtZW50KTtcblxuXHQgICAgaWYgKGV2ZW50LnRhcmdldC5jbGFzc0xpc3QgJiYgZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5sZW5ndGgpIHtcblx0ICAgICAgZG9jRWxlbS5zZXRBdHRyaWJ1dGUoJ2RhdGEtd2hhdGNsYXNzZXMnLCBldmVudC50YXJnZXQuY2xhc3NMaXN0LnRvU3RyaW5nKCkucmVwbGFjZSgnICcsICcsJykpO1xuXHQgICAgfVxuXHQgIH07XG5cblx0ICB2YXIgY2xlYXJFbGVtZW50ID0gZnVuY3Rpb24gY2xlYXJFbGVtZW50KCkge1xuXHQgICAgY3VycmVudEVsZW1lbnQgPSBudWxsO1xuXG5cdCAgICBkb2NFbGVtLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS13aGF0ZWxlbWVudCcpO1xuXHQgICAgZG9jRWxlbS5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtd2hhdGNsYXNzZXMnKTtcblx0ICB9O1xuXG5cdCAgdmFyIHBlcnNpc3RJbnB1dCA9IGZ1bmN0aW9uIHBlcnNpc3RJbnB1dCh3aGljaCwgdmFsdWUpIHtcblx0ICAgIGlmIChzaG91bGRQZXJzaXN0KSB7XG5cdCAgICAgIHRyeSB7XG5cdCAgICAgICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3doYXQtJyArIHdoaWNoLCB2YWx1ZSk7XG5cdCAgICAgIH0gY2F0Y2ggKGUpIHtcblx0ICAgICAgICAvLyBmYWlsIHNpbGVudGx5XG5cdCAgICAgIH1cblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgLypcblx0ICAgKiB1dGlsaXRpZXNcblx0ICAgKi9cblxuXHQgIHZhciBwb2ludGVyVHlwZSA9IGZ1bmN0aW9uIHBvaW50ZXJUeXBlKGV2ZW50KSB7XG5cdCAgICBpZiAodHlwZW9mIGV2ZW50LnBvaW50ZXJUeXBlID09PSAnbnVtYmVyJykge1xuXHQgICAgICByZXR1cm4gcG9pbnRlck1hcFtldmVudC5wb2ludGVyVHlwZV07XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICAvLyB0cmVhdCBwZW4gbGlrZSB0b3VjaFxuXHQgICAgICByZXR1cm4gZXZlbnQucG9pbnRlclR5cGUgPT09ICdwZW4nID8gJ3RvdWNoJyA6IGV2ZW50LnBvaW50ZXJUeXBlO1xuXHQgICAgfVxuXHQgIH07XG5cblx0ICAvLyBwcmV2ZW50IHRvdWNoIGRldGVjdGlvbiBmcm9tIGJlaW5nIG92ZXJyaWRkZW4gYnkgZXZlbnQgZXhlY3V0aW9uIG9yZGVyXG5cdCAgdmFyIHZhbGlkYXRlVG91Y2ggPSBmdW5jdGlvbiB2YWxpZGF0ZVRvdWNoKHZhbHVlKSB7XG5cdCAgICB2YXIgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcblxuXHQgICAgdmFyIHRvdWNoSXNWYWxpZCA9IHZhbHVlID09PSAnbW91c2UnICYmIGN1cnJlbnRJbnB1dCA9PT0gJ3RvdWNoJyAmJiB0aW1lc3RhbXAgLSBjdXJyZW50VGltZXN0YW1wIDwgMjAwO1xuXG5cdCAgICBjdXJyZW50VGltZXN0YW1wID0gdGltZXN0YW1wO1xuXG5cdCAgICByZXR1cm4gdG91Y2hJc1ZhbGlkO1xuXHQgIH07XG5cblx0ICAvLyBkZXRlY3QgdmVyc2lvbiBvZiBtb3VzZSB3aGVlbCBldmVudCB0byB1c2Vcblx0ICAvLyB2aWEgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0VsZW1lbnQvd2hlZWxfZXZlbnRcblx0ICB2YXIgZGV0ZWN0V2hlZWwgPSBmdW5jdGlvbiBkZXRlY3RXaGVlbCgpIHtcblx0ICAgIHZhciB3aGVlbFR5cGUgPSBudWxsO1xuXG5cdCAgICAvLyBNb2Rlcm4gYnJvd3NlcnMgc3VwcG9ydCBcIndoZWVsXCJcblx0ICAgIGlmICgnb253aGVlbCcgaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpIHtcblx0ICAgICAgd2hlZWxUeXBlID0gJ3doZWVsJztcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIC8vIFdlYmtpdCBhbmQgSUUgc3VwcG9ydCBhdCBsZWFzdCBcIm1vdXNld2hlZWxcIlxuXHQgICAgICAvLyBvciBhc3N1bWUgdGhhdCByZW1haW5pbmcgYnJvd3NlcnMgYXJlIG9sZGVyIEZpcmVmb3hcblx0ICAgICAgd2hlZWxUeXBlID0gZG9jdW1lbnQub25tb3VzZXdoZWVsICE9PSB1bmRlZmluZWQgPyAnbW91c2V3aGVlbCcgOiAnRE9NTW91c2VTY3JvbGwnO1xuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gd2hlZWxUeXBlO1xuXHQgIH07XG5cblx0ICAvLyBydW5zIGNhbGxiYWNrIGZ1bmN0aW9uc1xuXHQgIHZhciBmaXJlRnVuY3Rpb25zID0gZnVuY3Rpb24gZmlyZUZ1bmN0aW9ucyh0eXBlKSB7XG5cdCAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gZnVuY3Rpb25MaXN0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG5cdCAgICAgIGlmIChmdW5jdGlvbkxpc3RbaV0udHlwZSA9PT0gdHlwZSkge1xuXHQgICAgICAgIGZ1bmN0aW9uTGlzdFtpXS5mbi5jYWxsKHVuZGVmaW5lZCwgdHlwZSA9PT0gJ2lucHV0JyA/IGN1cnJlbnRJbnB1dCA6IGN1cnJlbnRJbnRlbnQpO1xuXHQgICAgICB9XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIC8vIGZpbmRzIG1hdGNoaW5nIGVsZW1lbnQgaW4gYW4gb2JqZWN0XG5cdCAgdmFyIG9ialBvcyA9IGZ1bmN0aW9uIG9ialBvcyhtYXRjaCkge1xuXHQgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGZ1bmN0aW9uTGlzdC5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuXHQgICAgICBpZiAoZnVuY3Rpb25MaXN0W2ldLmZuID09PSBtYXRjaCkge1xuXHQgICAgICAgIHJldHVybiBpO1xuXHQgICAgICB9XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIHZhciBkZXRlY3RTY3JvbGxpbmcgPSBmdW5jdGlvbiBkZXRlY3RTY3JvbGxpbmcoZXZlbnQpIHtcblx0ICAgIGlmIChtb3VzZVBvcy54ICE9PSBldmVudC5zY3JlZW5YIHx8IG1vdXNlUG9zLnkgIT09IGV2ZW50LnNjcmVlblkpIHtcblx0ICAgICAgaXNTY3JvbGxpbmcgPSBmYWxzZTtcblxuXHQgICAgICBtb3VzZVBvcy54ID0gZXZlbnQuc2NyZWVuWDtcblx0ICAgICAgbW91c2VQb3MueSA9IGV2ZW50LnNjcmVlblk7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICBpc1Njcm9sbGluZyA9IHRydWU7XG5cdCAgICB9XG5cdCAgfTtcblxuXHQgIC8vIG1hbnVhbCB2ZXJzaW9uIG9mIGBjbG9zZXN0KClgXG5cdCAgdmFyIGNoZWNrQ2xvc2VzdCA9IGZ1bmN0aW9uIGNoZWNrQ2xvc2VzdChlbGVtLCB0YWcpIHtcblx0ICAgIHZhciBFbGVtZW50UHJvdG90eXBlID0gd2luZG93LkVsZW1lbnQucHJvdG90eXBlO1xuXG5cdCAgICBpZiAoIUVsZW1lbnRQcm90b3R5cGUubWF0Y2hlcykge1xuXHQgICAgICBFbGVtZW50UHJvdG90eXBlLm1hdGNoZXMgPSBFbGVtZW50UHJvdG90eXBlLm1zTWF0Y2hlc1NlbGVjdG9yIHx8IEVsZW1lbnRQcm90b3R5cGUud2Via2l0TWF0Y2hlc1NlbGVjdG9yO1xuXHQgICAgfVxuXG5cdCAgICBpZiAoIUVsZW1lbnRQcm90b3R5cGUuY2xvc2VzdCkge1xuXHQgICAgICBkbyB7XG5cdCAgICAgICAgaWYgKGVsZW0ubWF0Y2hlcyh0YWcpKSB7XG5cdCAgICAgICAgICByZXR1cm4gZWxlbTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBlbGVtID0gZWxlbS5wYXJlbnRFbGVtZW50IHx8IGVsZW0ucGFyZW50Tm9kZTtcblx0ICAgICAgfSB3aGlsZSAoZWxlbSAhPT0gbnVsbCAmJiBlbGVtLm5vZGVUeXBlID09PSAxKTtcblxuXHQgICAgICByZXR1cm4gbnVsbDtcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIHJldHVybiBlbGVtLmNsb3Nlc3QodGFnKTtcblx0ICAgIH1cblx0ICB9O1xuXG5cdCAgLypcblx0ICAgKiBpbml0XG5cdCAgICovXG5cblx0ICAvLyBkb24ndCBzdGFydCBzY3JpcHQgdW5sZXNzIGJyb3dzZXIgY3V0cyB0aGUgbXVzdGFyZFxuXHQgIC8vIChhbHNvIHBhc3NlcyBpZiBwb2x5ZmlsbHMgYXJlIHVzZWQpXG5cdCAgaWYgKCdhZGRFdmVudExpc3RlbmVyJyBpbiB3aW5kb3cgJiYgQXJyYXkucHJvdG90eXBlLmluZGV4T2YpIHtcblx0ICAgIHNldFVwKCk7XG5cdCAgfVxuXG5cdCAgLypcblx0ICAgKiBhcGlcblx0ICAgKi9cblxuXHQgIHJldHVybiB7XG5cdCAgICAvLyByZXR1cm5zIHN0cmluZzogdGhlIGN1cnJlbnQgaW5wdXQgdHlwZVxuXHQgICAgLy8gb3B0OiAnaW50ZW50J3wnaW5wdXQnXG5cdCAgICAvLyAnaW5wdXQnIChkZWZhdWx0KTogcmV0dXJucyB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgYGRhdGEtd2hhdGlucHV0YCBhdHRyaWJ1dGVcblx0ICAgIC8vICdpbnRlbnQnOiBpbmNsdWRlcyBgZGF0YS13aGF0aW50ZW50YCB2YWx1ZSBpZiBpdCdzIGRpZmZlcmVudCB0aGFuIGBkYXRhLXdoYXRpbnB1dGBcblx0ICAgIGFzazogZnVuY3Rpb24gYXNrKG9wdCkge1xuXHQgICAgICByZXR1cm4gb3B0ID09PSAnaW50ZW50JyA/IGN1cnJlbnRJbnRlbnQgOiBjdXJyZW50SW5wdXQ7XG5cdCAgICB9LFxuXG5cdCAgICAvLyByZXR1cm5zIHN0cmluZzogdGhlIGN1cnJlbnRseSBmb2N1c2VkIGVsZW1lbnQgb3IgbnVsbFxuXHQgICAgZWxlbWVudDogZnVuY3Rpb24gZWxlbWVudCgpIHtcblx0ICAgICAgcmV0dXJuIGN1cnJlbnRFbGVtZW50O1xuXHQgICAgfSxcblxuXHQgICAgLy8gb3ZlcndyaXRlcyBpZ25vcmVkIGtleXMgd2l0aCBwcm92aWRlZCBhcnJheVxuXHQgICAgaWdub3JlS2V5czogZnVuY3Rpb24gaWdub3JlS2V5cyhhcnIpIHtcblx0ICAgICAgaWdub3JlTWFwID0gYXJyO1xuXHQgICAgfSxcblxuXHQgICAgLy8gb3ZlcndyaXRlcyBzcGVjaWZpYyBjaGFyIGtleXMgdG8gdXBkYXRlIG9uXG5cdCAgICBzcGVjaWZpY0tleXM6IGZ1bmN0aW9uIHNwZWNpZmljS2V5cyhhcnIpIHtcblx0ICAgICAgc3BlY2lmaWNNYXAgPSBhcnI7XG5cdCAgICB9LFxuXG5cdCAgICAvLyBhdHRhY2ggZnVuY3Rpb25zIHRvIGlucHV0IGFuZCBpbnRlbnQgXCJldmVudHNcIlxuXHQgICAgLy8gZnVuY3Q6IGZ1bmN0aW9uIHRvIGZpcmUgb24gY2hhbmdlXG5cdCAgICAvLyBldmVudFR5cGU6ICdpbnB1dCd8J2ludGVudCdcblx0ICAgIHJlZ2lzdGVyT25DaGFuZ2U6IGZ1bmN0aW9uIHJlZ2lzdGVyT25DaGFuZ2UoZm4sIGV2ZW50VHlwZSkge1xuXHQgICAgICBmdW5jdGlvbkxpc3QucHVzaCh7XG5cdCAgICAgICAgZm46IGZuLFxuXHQgICAgICAgIHR5cGU6IGV2ZW50VHlwZSB8fCAnaW5wdXQnXG5cdCAgICAgIH0pO1xuXHQgICAgfSxcblxuXHQgICAgdW5SZWdpc3Rlck9uQ2hhbmdlOiBmdW5jdGlvbiB1blJlZ2lzdGVyT25DaGFuZ2UoZm4pIHtcblx0ICAgICAgdmFyIHBvc2l0aW9uID0gb2JqUG9zKGZuKTtcblxuXHQgICAgICBpZiAocG9zaXRpb24gfHwgcG9zaXRpb24gPT09IDApIHtcblx0ICAgICAgICBmdW5jdGlvbkxpc3Quc3BsaWNlKHBvc2l0aW9uLCAxKTtcblx0ICAgICAgfVxuXHQgICAgfSxcblxuXHQgICAgY2xlYXJTdG9yYWdlOiBmdW5jdGlvbiBjbGVhclN0b3JhZ2UoKSB7XG5cdCAgICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xuXHQgICAgfVxuXHQgIH07XG5cdH0oKTtcblxuLyoqKi8gfSlcbi8qKioqKiovIF0pXG59KTtcbjsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///88\n\n}")}};const __webpack_module_cache__={};function __webpack_require__(e){const n=__webpack_module_cache__[e];if(void 0!==n)return n.exports;const 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=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};let __webpack_exports__=__webpack_require__(24);QPPStyle=__webpack_exports__})();