File: /home/dfwparty/mattymcfun.com/wp-content/plugins/ultimate-elementor/build/main.js
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
/******/ (function() { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js":
/*!*********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
\*********************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _arrayLikeToArray; }\n/* harmony export */ });\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlMaWtlVG9BcnJheS5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBLGdDQUFnQyxPQUFPO0FBQ3ZDO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5TGlrZVRvQXJyYXkuanM/MmMwMiJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShyLCBhKSB7XG4gIChudWxsID09IGEgfHwgYSA+IHIubGVuZ3RoKSAmJiAoYSA9IHIubGVuZ3RoKTtcbiAgZm9yICh2YXIgZSA9IDAsIG4gPSBBcnJheShhKTsgZSA8IGE7IGUrKykgbltlXSA9IHJbZV07XG4gIHJldHVybiBuO1xufVxuZXhwb3J0IHsgX2FycmF5TGlrZVRvQXJyYXkgYXMgZGVmYXVsdCB9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js":
/*!*******************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***!
\*******************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _arrayWithHoles; }\n/* harmony export */ });\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRoSG9sZXMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRoSG9sZXMuanM/NWZiMiJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfYXJyYXlXaXRoSG9sZXMocikge1xuICBpZiAoQXJyYXkuaXNBcnJheShyKSkgcmV0dXJuIHI7XG59XG5leHBvcnQgeyBfYXJyYXlXaXRoSG9sZXMgYXMgZGVmYXVsdCB9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js":
/*!**********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***!
\**********************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _arrayWithoutHoles; }\n/* harmony export */ });\n/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(r);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRob3V0SG9sZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBcUQ7QUFDckQ7QUFDQSwrQkFBK0IsZ0VBQWdCO0FBQy9DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hcnJheVdpdGhvdXRIb2xlcy5qcz84YWU3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhcnJheUxpa2VUb0FycmF5IGZyb20gXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIjtcbmZ1bmN0aW9uIF9hcnJheVdpdGhvdXRIb2xlcyhyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHIpKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShyKTtcbn1cbmV4cG9ydCB7IF9hcnJheVdpdGhvdXRIb2xlcyBhcyBkZWZhdWx0IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js":
/*!**************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***!
\**************************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _assertThisInitialized; }\n/* harmony export */ });\nfunction _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzP2VkMTkiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChlKSB7XG4gIGlmICh2b2lkIDAgPT09IGUpIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtcbiAgcmV0dXJuIGU7XG59XG5leHBvcnQgeyBfYXNzZXJ0VGhpc0luaXRpYWxpemVkIGFzIGRlZmF1bHQgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js":
/*!*********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js ***!
\*********************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _asyncToGenerator; }\n/* harmony export */ });\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzPzU1NjkiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKG4sIHQsIGUsIHIsIG8sIGEsIGMpIHtcbiAgdHJ5IHtcbiAgICB2YXIgaSA9IG5bYV0oYyksXG4gICAgICB1ID0gaS52YWx1ZTtcbiAgfSBjYXRjaCAobikge1xuICAgIHJldHVybiB2b2lkIGUobik7XG4gIH1cbiAgaS5kb25lID8gdCh1KSA6IFByb21pc2UucmVzb2x2ZSh1KS50aGVuKHIsIG8pO1xufVxuZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3Iobikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciB0ID0gdGhpcyxcbiAgICAgIGUgPSBhcmd1bWVudHM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyLCBvKSB7XG4gICAgICB2YXIgYSA9IG4uYXBwbHkodCwgZSk7XG4gICAgICBmdW5jdGlvbiBfbmV4dChuKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChhLCByLCBvLCBfbmV4dCwgX3Rocm93LCBcIm5leHRcIiwgbik7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBfdGhyb3cobikge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoYSwgciwgbywgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBuKTtcbiAgICAgIH1cbiAgICAgIF9uZXh0KHZvaWQgMCk7XG4gICAgfSk7XG4gIH07XG59XG5leHBvcnQgeyBfYXN5bmNUb0dlbmVyYXRvciBhcyBkZWZhdWx0IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js":
/*!*******************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***!
\*******************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _classCallCheck; }\n/* harmony export */ });\nfunction _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2suanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2suanM/MDE5MSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soYSwgbikge1xuICBpZiAoIShhIGluc3RhbmNlb2YgbikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG59XG5leHBvcnQgeyBfY2xhc3NDYWxsQ2hlY2sgYXMgZGVmYXVsdCB9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/createClass.js":
/*!****************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/createClass.js ***!
\****************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _createClass; }\n/* harmony export */ });\n/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ \"./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js\");\n\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3MuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBK0M7QUFDL0M7QUFDQSxrQkFBa0IsY0FBYztBQUNoQztBQUNBLHdIQUF3SCw2REFBYTtBQUNySTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzcy5qcz9jZmUxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0b1Byb3BlcnR5S2V5IGZyb20gXCIuL3RvUHJvcGVydHlLZXkuanNcIjtcbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKGUsIHIpIHtcbiAgZm9yICh2YXIgdCA9IDA7IHQgPCByLmxlbmd0aDsgdCsrKSB7XG4gICAgdmFyIG8gPSByW3RdO1xuICAgIG8uZW51bWVyYWJsZSA9IG8uZW51bWVyYWJsZSB8fCAhMSwgby5jb25maWd1cmFibGUgPSAhMCwgXCJ2YWx1ZVwiIGluIG8gJiYgKG8ud3JpdGFibGUgPSAhMCksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCB0b1Byb3BlcnR5S2V5KG8ua2V5KSwgbyk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhlLCByLCB0KSB7XG4gIHJldHVybiByICYmIF9kZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLCByKSwgdCAmJiBfZGVmaW5lUHJvcGVydGllcyhlLCB0KSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIFwicHJvdG90eXBlXCIsIHtcbiAgICB3cml0YWJsZTogITFcbiAgfSksIGU7XG59XG5leHBvcnQgeyBfY3JlYXRlQ2xhc3MgYXMgZGVmYXVsdCB9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/createClass.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js":
/*!*******************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
\*******************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _defineProperty; }\n/* harmony export */ });\n/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ \"./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js\");\n\nfunction _defineProperty(e, r, t) {\n return (r = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBK0M7QUFDL0M7QUFDQSxjQUFjLDZEQUFhO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eS5qcz9mYmFiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0b1Byb3BlcnR5S2V5IGZyb20gXCIuL3RvUHJvcGVydHlLZXkuanNcIjtcbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShlLCByLCB0KSB7XG4gIHJldHVybiAociA9IHRvUHJvcGVydHlLZXkocikpIGluIGUgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgciwge1xuICAgIHZhbHVlOiB0LFxuICAgIGVudW1lcmFibGU6ICEwLFxuICAgIGNvbmZpZ3VyYWJsZTogITAsXG4gICAgd3JpdGFibGU6ICEwXG4gIH0pIDogZVtyXSA9IHQsIGU7XG59XG5leHBvcnQgeyBfZGVmaW5lUHJvcGVydHkgYXMgZGVmYXVsdCB9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/extends.js":
/*!************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/extends.js ***!
\************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _extends; }\n/* harmony export */ });\nfunction _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBLG9CQUFvQixzQkFBc0I7QUFDMUM7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kcy5qcz8xMDQ3Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICByZXR1cm4gX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAobikge1xuICAgIGZvciAodmFyIGUgPSAxOyBlIDwgYXJndW1lbnRzLmxlbmd0aDsgZSsrKSB7XG4gICAgICB2YXIgdCA9IGFyZ3VtZW50c1tlXTtcbiAgICAgIGZvciAodmFyIHIgaW4gdCkgKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsIHIpICYmIChuW3JdID0gdFtyXSk7XG4gICAgfVxuICAgIHJldHVybiBuO1xuICB9LCBfZXh0ZW5kcy5hcHBseShudWxsLCBhcmd1bWVudHMpO1xufVxuZXhwb3J0IHsgX2V4dGVuZHMgYXMgZGVmYXVsdCB9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/extends.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js":
/*!*******************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***!
\*******************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _getPrototypeOf; }\n/* harmony export */ });\nfunction _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZ2V0UHJvdG90eXBlT2YuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZ2V0UHJvdG90eXBlT2YuanM/YjIyZSJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YodCkge1xuICByZXR1cm4gX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKSA6IGZ1bmN0aW9uICh0KSB7XG4gICAgcmV0dXJuIHQuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZih0KTtcbiAgfSwgX2dldFByb3RvdHlwZU9mKHQpO1xufVxuZXhwb3J0IHsgX2dldFByb3RvdHlwZU9mIGFzIGRlZmF1bHQgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/inherits.js":
/*!*************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/inherits.js ***!
\*************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _inherits; }\n/* harmony export */ });\n/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\");\n\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(t, e);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBaUQ7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUcsUUFBUSw4REFBYztBQUN6QiIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMuanM/ZTkyMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2V0UHJvdG90eXBlT2YgZnJvbSBcIi4vc2V0UHJvdG90eXBlT2YuanNcIjtcbmZ1bmN0aW9uIF9pbmhlcml0cyh0LCBlKSB7XG4gIGlmIChcImZ1bmN0aW9uXCIgIT0gdHlwZW9mIGUgJiYgbnVsbCAhPT0gZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO1xuICB0LnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoZSAmJiBlLnByb3RvdHlwZSwge1xuICAgIGNvbnN0cnVjdG9yOiB7XG4gICAgICB2YWx1ZTogdCxcbiAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgIGNvbmZpZ3VyYWJsZTogITBcbiAgICB9XG4gIH0pLCBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgXCJwcm90b3R5cGVcIiwge1xuICAgIHdyaXRhYmxlOiAhMVxuICB9KSwgZSAmJiBzZXRQcm90b3R5cGVPZih0LCBlKTtcbn1cbmV4cG9ydCB7IF9pbmhlcml0cyBhcyBkZWZhdWx0IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/inherits.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArray.js":
/*!********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
\********************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _iterableToArray; }\n/* harmony export */ });\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2l0ZXJhYmxlVG9BcnJheS5qcz9kMzliIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkocikge1xuICBpZiAoXCJ1bmRlZmluZWRcIiAhPSB0eXBlb2YgU3ltYm9sICYmIG51bGwgIT0gcltTeW1ib2wuaXRlcmF0b3JdIHx8IG51bGwgIT0gcltcIkBAaXRlcmF0b3JcIl0pIHJldHVybiBBcnJheS5mcm9tKHIpO1xufVxuZXhwb3J0IHsgX2l0ZXJhYmxlVG9BcnJheSBhcyBkZWZhdWx0IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js":
/*!*************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js ***!
\*************************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _iterableToArrayLimit; }\n/* harmony export */ });\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5TGltaXQuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLFlBQVksa0VBQWtFO0FBQ3RGLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5TGltaXQuanM/NDkwNiJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5TGltaXQociwgbCkge1xuICB2YXIgdCA9IG51bGwgPT0gciA/IG51bGwgOiBcInVuZGVmaW5lZFwiICE9IHR5cGVvZiBTeW1ib2wgJiYgcltTeW1ib2wuaXRlcmF0b3JdIHx8IHJbXCJAQGl0ZXJhdG9yXCJdO1xuICBpZiAobnVsbCAhPSB0KSB7XG4gICAgdmFyIGUsXG4gICAgICBuLFxuICAgICAgaSxcbiAgICAgIHUsXG4gICAgICBhID0gW10sXG4gICAgICBmID0gITAsXG4gICAgICBvID0gITE7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChpID0gKHQgPSB0LmNhbGwocikpLm5leHQsIDAgPT09IGwpIHtcbiAgICAgICAgaWYgKE9iamVjdCh0KSAhPT0gdCkgcmV0dXJuO1xuICAgICAgICBmID0gITE7XG4gICAgICB9IGVsc2UgZm9yICg7ICEoZiA9IChlID0gaS5jYWxsKHQpKS5kb25lKSAmJiAoYS5wdXNoKGUudmFsdWUpLCBhLmxlbmd0aCAhPT0gbCk7IGYgPSAhMCk7XG4gICAgfSBjYXRjaCAocikge1xuICAgICAgbyA9ICEwLCBuID0gcjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKCFmICYmIG51bGwgIT0gdFtcInJldHVyblwiXSAmJiAodSA9IHRbXCJyZXR1cm5cIl0oKSwgT2JqZWN0KHUpICE9PSB1KSkgcmV0dXJuO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKG8pIHRocm93IG47XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhO1xuICB9XG59XG5leHBvcnQgeyBfaXRlcmFibGVUb0FycmF5TGltaXQgYXMgZGVmYXVsdCB9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js":
/*!********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***!
\********************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _nonIterableRest; }\n/* harmony export */ });\nfunction _nonIterableRest() {\n 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}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vbm9uSXRlcmFibGVSZXN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL25vbkl0ZXJhYmxlUmVzdC5qcz82ZTg3Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9ub25JdGVyYWJsZVJlc3QoKSB7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7XG59XG5leHBvcnQgeyBfbm9uSXRlcmFibGVSZXN0IGFzIGRlZmF1bHQgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js":
/*!**********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***!
\**********************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _nonIterableSpread; }\n/* harmony export */ });\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vbm9uSXRlcmFibGVTcHJlYWQuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vbm9uSXRlcmFibGVTcHJlYWQuanM/Y2M5NCJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfbm9uSXRlcmFibGVTcHJlYWQoKSB7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpO1xufVxuZXhwb3J0IHsgX25vbkl0ZXJhYmxlU3ByZWFkIGFzIGRlZmF1bHQgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js":
/*!******************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***!
\******************************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _possibleConstructorReturn; }\n/* harmony export */ });\n/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assertThisInitialized.js */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n\n\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return (0,_assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(t);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBa0M7QUFDNkI7QUFDL0Q7QUFDQSx3QkFBd0Isc0RBQU87QUFDL0I7QUFDQSxTQUFTLHFFQUFxQjtBQUM5QiIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qcz8wY2U1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfdHlwZW9mIGZyb20gXCIuL3R5cGVvZi5qc1wiO1xuaW1wb3J0IGFzc2VydFRoaXNJbml0aWFsaXplZCBmcm9tIFwiLi9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanNcIjtcbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHQsIGUpIHtcbiAgaWYgKGUgJiYgKFwib2JqZWN0XCIgPT0gX3R5cGVvZihlKSB8fCBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIGUpKSByZXR1cm4gZTtcbiAgaWYgKHZvaWQgMCAhPT0gZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkXCIpO1xuICByZXR1cm4gYXNzZXJ0VGhpc0luaXRpYWxpemVkKHQpO1xufVxuZXhwb3J0IHsgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4gYXMgZGVmYXVsdCB9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js":
/*!*******************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***!
\*******************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _setPrototypeOf; }\n/* harmony export */ });\nfunction _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2V0UHJvdG90eXBlT2YuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2V0UHJvdG90eXBlT2YuanM/ZmExZiJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YodCwgZSkge1xuICByZXR1cm4gX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKSA6IGZ1bmN0aW9uICh0LCBlKSB7XG4gICAgcmV0dXJuIHQuX19wcm90b19fID0gZSwgdDtcbiAgfSwgX3NldFByb3RvdHlwZU9mKHQsIGUpO1xufVxuZXhwb3J0IHsgX3NldFByb3RvdHlwZU9mIGFzIGRlZmF1bHQgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js":
/*!******************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js ***!
\******************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _slicedToArray; }\n/* harmony export */ });\n/* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\");\n/* harmony import */ var _iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArrayLimit.js */ \"./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\");\n/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest.js */ \"./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\");\n\n\n\n\nfunction _slicedToArray(r, e) {\n return (0,_arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(r) || (0,_iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(r, e) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(r, e) || (0,_nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFpRDtBQUNZO0FBQ1k7QUFDdEI7QUFDbkQ7QUFDQSxTQUFTLDhEQUFjLE9BQU8sb0VBQW9CLFVBQVUsMEVBQTBCLFVBQVUsK0RBQWU7QUFDL0ciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXkuanM/MzZlOCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXJyYXlXaXRoSG9sZXMgZnJvbSBcIi4vYXJyYXlXaXRoSG9sZXMuanNcIjtcbmltcG9ydCBpdGVyYWJsZVRvQXJyYXlMaW1pdCBmcm9tIFwiLi9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qc1wiO1xuaW1wb3J0IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IGZyb20gXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgbm9uSXRlcmFibGVSZXN0IGZyb20gXCIuL25vbkl0ZXJhYmxlUmVzdC5qc1wiO1xuZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkociwgZSkge1xuICByZXR1cm4gYXJyYXlXaXRoSG9sZXMocikgfHwgaXRlcmFibGVUb0FycmF5TGltaXQociwgZSkgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkociwgZSkgfHwgbm9uSXRlcmFibGVSZXN0KCk7XG59XG5leHBvcnQgeyBfc2xpY2VkVG9BcnJheSBhcyBkZWZhdWx0IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js":
/*!**********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***!
\**********************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _toConsumableArray; }\n/* harmony export */ });\n/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\");\n/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\");\n/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ \"./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\");\n\n\n\n\nfunction _toConsumableArray(r) {\n return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(r) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(r) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(r) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Db25zdW1hYmxlQXJyYXkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBdUQ7QUFDSjtBQUNzQjtBQUNsQjtBQUN2RDtBQUNBLFNBQVMsaUVBQWlCLE9BQU8sK0RBQWUsT0FBTywwRUFBMEIsT0FBTyxpRUFBaUI7QUFDekciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5LmpzP2Y3NDAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFycmF5V2l0aG91dEhvbGVzIGZyb20gXCIuL2FycmF5V2l0aG91dEhvbGVzLmpzXCI7XG5pbXBvcnQgaXRlcmFibGVUb0FycmF5IGZyb20gXCIuL2l0ZXJhYmxlVG9BcnJheS5qc1wiO1xuaW1wb3J0IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IGZyb20gXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgbm9uSXRlcmFibGVTcHJlYWQgZnJvbSBcIi4vbm9uSXRlcmFibGVTcHJlYWQuanNcIjtcbmZ1bmN0aW9uIF90b0NvbnN1bWFibGVBcnJheShyKSB7XG4gIHJldHVybiBhcnJheVdpdGhvdXRIb2xlcyhyKSB8fCBpdGVyYWJsZVRvQXJyYXkocikgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkocikgfHwgbm9uSXRlcmFibGVTcHJlYWQoKTtcbn1cbmV4cG9ydCB7IF90b0NvbnN1bWFibGVBcnJheSBhcyBkZWZhdWx0IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/toPrimitive.js":
/*!****************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***!
\****************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ toPrimitive; }\n/* harmony export */ });\n/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n\nfunction toPrimitive(t, r) {\n if (\"object\" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9QcmltaXRpdmUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBa0M7QUFDbEM7QUFDQSxrQkFBa0Isc0RBQU87QUFDekI7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHNEQUFPO0FBQzNCO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b1ByaW1pdGl2ZS5qcz8zYmVlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfdHlwZW9mIGZyb20gXCIuL3R5cGVvZi5qc1wiO1xuZnVuY3Rpb24gdG9QcmltaXRpdmUodCwgcikge1xuICBpZiAoXCJvYmplY3RcIiAhPSBfdHlwZW9mKHQpIHx8ICF0KSByZXR1cm4gdDtcbiAgdmFyIGUgPSB0W1N5bWJvbC50b1ByaW1pdGl2ZV07XG4gIGlmICh2b2lkIDAgIT09IGUpIHtcbiAgICB2YXIgaSA9IGUuY2FsbCh0LCByIHx8IFwiZGVmYXVsdFwiKTtcbiAgICBpZiAoXCJvYmplY3RcIiAhPSBfdHlwZW9mKGkpKSByZXR1cm4gaTtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIik7XG4gIH1cbiAgcmV0dXJuIChcInN0cmluZ1wiID09PSByID8gU3RyaW5nIDogTnVtYmVyKSh0KTtcbn1cbmV4cG9ydCB7IHRvUHJpbWl0aXZlIGFzIGRlZmF1bHQgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/toPrimitive.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js":
/*!******************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***!
\******************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ toPropertyKey; }\n/* harmony export */ });\n/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ \"./node_modules/@babel/runtime/helpers/esm/toPrimitive.js\");\n\n\nfunction toPropertyKey(t) {\n var i = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(t, \"string\");\n return \"symbol\" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(i) ? i : i + \"\";\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Qcm9wZXJ0eUtleS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBa0M7QUFDUztBQUMzQztBQUNBLFVBQVUsMkRBQVc7QUFDckIscUJBQXFCLHNEQUFPO0FBQzVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b1Byb3BlcnR5S2V5LmpzPzQzN2UiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF90eXBlb2YgZnJvbSBcIi4vdHlwZW9mLmpzXCI7XG5pbXBvcnQgdG9QcmltaXRpdmUgZnJvbSBcIi4vdG9QcmltaXRpdmUuanNcIjtcbmZ1bmN0aW9uIHRvUHJvcGVydHlLZXkodCkge1xuICB2YXIgaSA9IHRvUHJpbWl0aXZlKHQsIFwic3RyaW5nXCIpO1xuICByZXR1cm4gXCJzeW1ib2xcIiA9PSBfdHlwZW9mKGkpID8gaSA6IGkgKyBcIlwiO1xufVxuZXhwb3J0IHsgdG9Qcm9wZXJ0eUtleSBhcyBkZWZhdWx0IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/typeof.js":
/*!***********************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/typeof.js ***!
\***********************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _typeof; }\n/* harmony export */ });\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZi5qcz81MzI0Il0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF90eXBlb2Yobykge1xuICBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7XG5cbiAgcmV0dXJuIF90eXBlb2YgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBcInN5bWJvbFwiID09IHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPyBmdW5jdGlvbiAobykge1xuICAgIHJldHVybiB0eXBlb2YgbztcbiAgfSA6IGZ1bmN0aW9uIChvKSB7XG4gICAgcmV0dXJuIG8gJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgby5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG8gIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG87XG4gIH0sIF90eXBlb2Yobyk7XG59XG5leHBvcnQgeyBfdHlwZW9mIGFzIGRlZmF1bHQgfTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/typeof.js\n");
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js":
/*!*******************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***!
\*******************************************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _unsupportedIterableToArray; }\n/* harmony export */ });\n/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n 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) ? (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(r, a) : void 0;\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBcUQ7QUFDckQ7QUFDQTtBQUNBLHFDQUFxQyxnRUFBZ0I7QUFDckQsY0FBYztBQUNkLCtMQUErTCxnRUFBZ0I7QUFDL007QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanM/YmY4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXJyYXlMaWtlVG9BcnJheSBmcm9tIFwiLi9hcnJheUxpa2VUb0FycmF5LmpzXCI7XG5mdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkociwgYSkge1xuICBpZiAocikge1xuICAgIGlmIChcInN0cmluZ1wiID09IHR5cGVvZiByKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShyLCBhKTtcbiAgICB2YXIgdCA9IHt9LnRvU3RyaW5nLmNhbGwocikuc2xpY2UoOCwgLTEpO1xuICAgIHJldHVybiBcIk9iamVjdFwiID09PSB0ICYmIHIuY29uc3RydWN0b3IgJiYgKHQgPSByLmNvbnN0cnVjdG9yLm5hbWUpLCBcIk1hcFwiID09PSB0IHx8IFwiU2V0XCIgPT09IHQgPyBBcnJheS5mcm9tKHIpIDogXCJBcmd1bWVudHNcIiA9PT0gdCB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSA/IGFycmF5TGlrZVRvQXJyYXkociwgYSkgOiB2b2lkIDA7XG4gIH1cbn1cbmV4cG9ydCB7IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSBhcyBkZWZhdWx0IH07Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n");
/***/ }),
/***/ "./node_modules/@bsf/force-ui/dist/force-ui.js":
/*!*****************************************************!*\
!*** ./node_modules/@bsf/force-ui/dist/force-ui.js ***!
\*****************************************************/
/***/ (function(module) {
eval("!function(e,t){ true?module.exports=t():0}(\"undefined\"!=typeof self?self:this,(function(){return function(){\"use strict\";var e={316:function(e,t,n){function r(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}n.d(t,{A:function(){return i}});var o=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,i=r((function(e){return o.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91}))},20:function(e,t,n){var r=n(609),o=Symbol.for(\"react.element\"),i=Symbol.for(\"react.fragment\"),s=Object.prototype.hasOwnProperty,a=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,i={},c=null,u=null;for(r in void 0!==n&&(c=\"\"+n),void 0!==t.key&&(c=\"\"+t.key),void 0!==t.ref&&(u=t.ref),t)s.call(t,r)&&!l.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===i[r]&&(i[r]=t[r]);return{$$typeof:o,type:e,key:c,ref:u,props:i,_owner:a.current}}t.Fragment=i,t.jsx=c,t.jsxs=c},848:function(e,t,n){e.exports=n(20)},609:function(e){e.exports=window.React}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if(\"object\"==typeof globalThis)return globalThis;try{return this||new Function(\"return this\")()}catch(e){if(\"object\"==typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var r={};n.r(r),n.d(r,{Alert:function(){return Gh},Avatar:function(){return oi},Badge:function(){return Zo},Breadcrumb:function(){return kk},Button:function(){return de},ButtonGroup:function(){return Pi},Checkbox:function(){return Me},Container:function(){return qh},DatePicker:function(){return FO},Dialog:function(){return qk},Drawer:function(){return CC},DropdownMenu:function(){return GE},EditorInput:function(){return NS},Input:function(){return fi},Label:function(){return gi},Loader:function(){return bi},Menu:function(){return ZS},Pagination:function(){return GC},ProgressBar:function(){return xi},ProgressSteps:function(){return zS},RadioButton:function(){return Ko},SearchBox:function(){return ME},Select:function(){return Nm},Sidebar:function(){return ck},Skeleton:function(){return VS},Switch:function(){return be},Tabs:function(){return am},TextArea:function(){return ri},Title:function(){return yi},Toaster:function(){return mh},Tooltip:function(){return Do},Topbar:function(){return nE},toast:function(){return Hm}});var o={};n.r(o),n.d(o,{Button:function(){return XC},CaptionLabel:function(){return ZC},Chevron:function(){return JC},Day:function(){return QC},DayButton:function(){return e_},Dropdown:function(){return t_},DropdownNav:function(){return n_},Footer:function(){return r_},Month:function(){return o_},MonthCaption:function(){return i_},MonthGrid:function(){return s_},Months:function(){return a_},MonthsDropdown:function(){return u_},Nav:function(){return d_},NextMonthButton:function(){return f_},Option:function(){return m_},PreviousMonthButton:function(){return h_},Root:function(){return p_},Select:function(){return g_},Week:function(){return y_},WeekNumber:function(){return x_},WeekNumberHeader:function(){return w_},Weekday:function(){return v_},Weekdays:function(){return b_},Weeks:function(){return S_},YearsDropdown:function(){return k_}});var i={};n.r(i),n.d(i,{formatCaption:function(){return LP},formatDay:function(){return zP},formatMonthCaption:function(){return FP},formatMonthDropdown:function(){return BP},formatWeekNumber:function(){return WP},formatWeekNumberHeader:function(){return VP},formatWeekdayName:function(){return UP},formatYearCaption:function(){return YP},formatYearDropdown:function(){return $P}});var s={};n.r(s),n.d(s,{labelCaption:function(){return KP},labelDay:function(){return XP},labelDayButton:function(){return GP},labelGrid:function(){return HP},labelGridcell:function(){return qP},labelMonthDropdown:function(){return JP},labelNav:function(){return ZP},labelNext:function(){return QP},labelPrevious:function(){return eO},labelWeekNumber:function(){return nO},labelWeekNumberHeader:function(){return rO},labelWeekday:function(){return tO},labelYearDropdown:function(){return oO}});var a=n(609),l=n.n(a);const c=e=>{const t=m(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{const n=e.split(\"-\");return\"\"===n[0]&&1!==n.length&&n.shift(),u(n,t)||f(e)},getConflictingClassGroupIds:(e,t)=>{const o=n[e]||[];return t&&r[e]?[...o,...r[e]]:o}}},u=(e,t)=>{if(0===e.length)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),o=r?u(e.slice(1),r):void 0;if(o)return o;if(0===t.validators.length)return;const i=e.join(\"-\");return t.validators.find((({validator:e})=>e(i)))?.classGroupId},d=/^\\[(.+)\\]$/,f=e=>{if(d.test(e)){const t=d.exec(e)[1],n=t?.substring(0,t.indexOf(\":\"));if(n)return\"arbitrary..\"+n}},m=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return y(Object.entries(e.classGroups),n).forEach((([e,n])=>{h(n,r,e,t)})),r},h=(e,t,n,r)=>{e.forEach((e=>{if(\"string\"!=typeof e){if(\"function\"==typeof e)return g(e)?void h(e(r),t,n,r):void t.validators.push({validator:e,classGroupId:n});Object.entries(e).forEach((([e,o])=>{h(o,p(t,e),n,r)}))}else(\"\"===e?t:p(t,e)).classGroupId=n}))},p=(e,t)=>{let n=e;return t.split(\"-\").forEach((e=>{n.nextPart.has(e)||n.nextPart.set(e,{nextPart:new Map,validators:[]}),n=n.nextPart.get(e)})),n},g=e=>e.isThemeGetter,y=(e,t)=>t?e.map((([e,n])=>[e,n.map((e=>\"string\"==typeof e?t+e:\"object\"==typeof e?Object.fromEntries(Object.entries(e).map((([e,n])=>[t+e,n]))):e))])):e,v=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const o=(o,i)=>{n.set(o,i),t++,t>e&&(t=0,r=n,n=new Map)};return{get(e){let t=n.get(e);return void 0!==t?t:void 0!==(t=r.get(e))?(o(e,t),t):void 0},set(e,t){n.has(e)?n.set(e,t):o(e,t)}}},b=e=>{const{separator:t,experimentalParseClassName:n}=e,r=1===t.length,o=t[0],i=t.length,s=e=>{const n=[];let s,a=0,l=0;for(let c=0;c<e.length;c++){let u=e[c];if(0===a){if(u===o&&(r||e.slice(c,c+i)===t)){n.push(e.slice(l,c)),l=c+i;continue}if(\"/\"===u){s=c;continue}}\"[\"===u?a++:\"]\"===u&&a--}const c=0===n.length?e:e.substring(l),u=c.startsWith(\"!\");return{modifiers:n,hasImportantModifier:u,baseClassName:u?c.substring(1):c,maybePostfixModifierPosition:s&&s>l?s-l:void 0}};return n?e=>n({className:e,parseClassName:s}):s},x=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach((e=>{\"[\"===e[0]?(t.push(...n.sort(),e),n=[]):n.push(e)})),t.push(...n.sort()),t},w=/\\s+/;function S(){let e,t,n=0,r=\"\";for(;n<arguments.length;)(e=arguments[n++])&&(t=k(e))&&(r&&(r+=\" \"),r+=t);return r}const k=e=>{if(\"string\"==typeof e)return e;let t,n=\"\";for(let r=0;r<e.length;r++)e[r]&&(t=k(e[r]))&&(n&&(n+=\" \"),n+=t);return n};function E(e,...t){let n,r,o,i=function(a){const l=t.reduce(((e,t)=>t(e)),e());return n=(e=>({cache:v(e.cacheSize),parseClassName:b(e),...c(e)}))(l),r=n.cache.get,o=n.cache.set,i=s,s(a)};function s(e){const t=r(e);if(t)return t;const i=((e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:o}=t,i=[],s=e.trim().split(w);let a=\"\";for(let e=s.length-1;e>=0;e-=1){const t=s[e],{modifiers:l,hasImportantModifier:c,baseClassName:u,maybePostfixModifierPosition:d}=n(t);let f=Boolean(d),m=r(f?u.substring(0,d):u);if(!m){if(!f){a=t+(a.length>0?\" \"+a:a);continue}if(m=r(u),!m){a=t+(a.length>0?\" \"+a:a);continue}f=!1}const h=x(l).join(\":\"),p=c?h+\"!\":h,g=p+m;if(i.includes(g))continue;i.push(g);const y=o(m,f);for(let e=0;e<y.length;++e){const t=y[e];i.push(p+t)}a=t+(a.length>0?\" \"+a:a)}return a})(e,n);return o(e,i),i}return function(){return i(S.apply(null,arguments))}}const C=e=>{const t=t=>t[e]||[];return t.isThemeGetter=!0,t},_=/^\\[(?:([a-z-]+):)?(.+)\\]$/i,P=/^\\d+\\/\\d+$/,O=new Set([\"px\",\"full\",\"screen\"]),N=/^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/,T=/\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/,M=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/,R=/^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/,D=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/,j=e=>I(e)||O.has(e)||P.test(e),A=e=>G(e,\"length\",X),I=e=>Boolean(e)&&!Number.isNaN(Number(e)),L=e=>G(e,\"number\",I),F=e=>Boolean(e)&&Number.isInteger(Number(e)),z=e=>e.endsWith(\"%\")&&I(e.slice(0,-1)),B=e=>_.test(e),W=e=>N.test(e),V=new Set([\"length\",\"size\",\"percentage\"]),U=e=>G(e,V,Z),$=e=>G(e,\"position\",Z),Y=new Set([\"image\",\"url\"]),H=e=>G(e,Y,Q),K=e=>G(e,\"\",J),q=()=>!0,G=(e,t,n)=>{const r=_.exec(e);return!!r&&(r[1]?\"string\"==typeof t?r[1]===t:t.has(r[1]):n(r[2]))},X=e=>T.test(e)&&!M.test(e),Z=()=>!1,J=e=>R.test(e),Q=e=>D.test(e),ee=(Symbol.toStringTag,()=>{const e=C(\"colors\"),t=C(\"spacing\"),n=C(\"blur\"),r=C(\"brightness\"),o=C(\"borderColor\"),i=C(\"borderRadius\"),s=C(\"borderSpacing\"),a=C(\"borderWidth\"),l=C(\"contrast\"),c=C(\"grayscale\"),u=C(\"hueRotate\"),d=C(\"invert\"),f=C(\"gap\"),m=C(\"gradientColorStops\"),h=C(\"gradientColorStopPositions\"),p=C(\"inset\"),g=C(\"margin\"),y=C(\"opacity\"),v=C(\"padding\"),b=C(\"saturate\"),x=C(\"scale\"),w=C(\"sepia\"),S=C(\"skew\"),k=C(\"space\"),E=C(\"translate\"),_=()=>[\"auto\",B,t],P=()=>[B,t],O=()=>[\"\",j,A],N=()=>[\"auto\",I,B],T=()=>[\"\",\"0\",B],M=()=>[I,B];return{cacheSize:500,separator:\":\",theme:{colors:[q],spacing:[j,A],blur:[\"none\",\"\",W,B],brightness:M(),borderColor:[e],borderRadius:[\"none\",\"\",\"full\",W,B],borderSpacing:P(),borderWidth:O(),contrast:M(),grayscale:T(),hueRotate:M(),invert:T(),gap:P(),gradientColorStops:[e],gradientColorStopPositions:[z,A],inset:_(),margin:_(),opacity:M(),padding:P(),saturate:M(),scale:M(),sepia:T(),skew:M(),space:P(),translate:P()},classGroups:{aspect:[{aspect:[\"auto\",\"square\",\"video\",B]}],container:[\"container\"],columns:[{columns:[W]}],\"break-after\":[{\"break-after\":[\"auto\",\"avoid\",\"all\",\"avoid-page\",\"page\",\"left\",\"right\",\"column\"]}],\"break-before\":[{\"break-before\":[\"auto\",\"avoid\",\"all\",\"avoid-page\",\"page\",\"left\",\"right\",\"column\"]}],\"break-inside\":[{\"break-inside\":[\"auto\",\"avoid\",\"avoid-page\",\"avoid-column\"]}],\"box-decoration\":[{\"box-decoration\":[\"slice\",\"clone\"]}],box:[{box:[\"border\",\"content\"]}],display:[\"block\",\"inline-block\",\"inline\",\"flex\",\"inline-flex\",\"table\",\"inline-table\",\"table-caption\",\"table-cell\",\"table-column\",\"table-column-group\",\"table-footer-group\",\"table-header-group\",\"table-row-group\",\"table-row\",\"flow-root\",\"grid\",\"inline-grid\",\"contents\",\"list-item\",\"hidden\"],float:[{float:[\"right\",\"left\",\"none\",\"start\",\"end\"]}],clear:[{clear:[\"left\",\"right\",\"both\",\"none\",\"start\",\"end\"]}],isolation:[\"isolate\",\"isolation-auto\"],\"object-fit\":[{object:[\"contain\",\"cover\",\"fill\",\"none\",\"scale-down\"]}],\"object-position\":[{object:[\"bottom\",\"center\",\"left\",\"left-bottom\",\"left-top\",\"right\",\"right-bottom\",\"right-top\",\"top\",B]}],overflow:[{overflow:[\"auto\",\"hidden\",\"clip\",\"visible\",\"scroll\"]}],\"overflow-x\":[{\"overflow-x\":[\"auto\",\"hidden\",\"clip\",\"visible\",\"scroll\"]}],\"overflow-y\":[{\"overflow-y\":[\"auto\",\"hidden\",\"clip\",\"visible\",\"scroll\"]}],overscroll:[{overscroll:[\"auto\",\"contain\",\"none\"]}],\"overscroll-x\":[{\"overscroll-x\":[\"auto\",\"contain\",\"none\"]}],\"overscroll-y\":[{\"overscroll-y\":[\"auto\",\"contain\",\"none\"]}],position:[\"static\",\"fixed\",\"absolute\",\"relative\",\"sticky\"],inset:[{inset:[p]}],\"inset-x\":[{\"inset-x\":[p]}],\"inset-y\":[{\"inset-y\":[p]}],start:[{start:[p]}],end:[{end:[p]}],top:[{top:[p]}],right:[{right:[p]}],bottom:[{bottom:[p]}],left:[{left:[p]}],visibility:[\"visible\",\"invisible\",\"collapse\"],z:[{z:[\"auto\",F,B]}],basis:[{basis:_()}],\"flex-direction\":[{flex:[\"row\",\"row-reverse\",\"col\",\"col-reverse\"]}],\"flex-wrap\":[{flex:[\"wrap\",\"wrap-reverse\",\"nowrap\"]}],flex:[{flex:[\"1\",\"auto\",\"initial\",\"none\",B]}],grow:[{grow:T()}],shrink:[{shrink:T()}],order:[{order:[\"first\",\"last\",\"none\",F,B]}],\"grid-cols\":[{\"grid-cols\":[q]}],\"col-start-end\":[{col:[\"auto\",{span:[\"full\",F,B]},B]}],\"col-start\":[{\"col-start\":N()}],\"col-end\":[{\"col-end\":N()}],\"grid-rows\":[{\"grid-rows\":[q]}],\"row-start-end\":[{row:[\"auto\",{span:[F,B]},B]}],\"row-start\":[{\"row-start\":N()}],\"row-end\":[{\"row-end\":N()}],\"grid-flow\":[{\"grid-flow\":[\"row\",\"col\",\"dense\",\"row-dense\",\"col-dense\"]}],\"auto-cols\":[{\"auto-cols\":[\"auto\",\"min\",\"max\",\"fr\",B]}],\"auto-rows\":[{\"auto-rows\":[\"auto\",\"min\",\"max\",\"fr\",B]}],gap:[{gap:[f]}],\"gap-x\":[{\"gap-x\":[f]}],\"gap-y\":[{\"gap-y\":[f]}],\"justify-content\":[{justify:[\"normal\",\"start\",\"end\",\"center\",\"between\",\"around\",\"evenly\",\"stretch\"]}],\"justify-items\":[{\"justify-items\":[\"start\",\"end\",\"center\",\"stretch\"]}],\"justify-self\":[{\"justify-self\":[\"auto\",\"start\",\"end\",\"center\",\"stretch\"]}],\"align-content\":[{content:[\"normal\",\"start\",\"end\",\"center\",\"between\",\"around\",\"evenly\",\"stretch\",\"baseline\"]}],\"align-items\":[{items:[\"start\",\"end\",\"center\",\"baseline\",\"stretch\"]}],\"align-self\":[{self:[\"auto\",\"start\",\"end\",\"center\",\"stretch\",\"baseline\"]}],\"place-content\":[{\"place-content\":[\"start\",\"end\",\"center\",\"between\",\"around\",\"evenly\",\"stretch\",\"baseline\"]}],\"place-items\":[{\"place-items\":[\"start\",\"end\",\"center\",\"baseline\",\"stretch\"]}],\"place-self\":[{\"place-self\":[\"auto\",\"start\",\"end\",\"center\",\"stretch\"]}],p:[{p:[v]}],px:[{px:[v]}],py:[{py:[v]}],ps:[{ps:[v]}],pe:[{pe:[v]}],pt:[{pt:[v]}],pr:[{pr:[v]}],pb:[{pb:[v]}],pl:[{pl:[v]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],\"space-x\":[{\"space-x\":[k]}],\"space-x-reverse\":[\"space-x-reverse\"],\"space-y\":[{\"space-y\":[k]}],\"space-y-reverse\":[\"space-y-reverse\"],w:[{w:[\"auto\",\"min\",\"max\",\"fit\",\"svw\",\"lvw\",\"dvw\",B,t]}],\"min-w\":[{\"min-w\":[B,t,\"min\",\"max\",\"fit\"]}],\"max-w\":[{\"max-w\":[B,t,\"none\",\"full\",\"min\",\"max\",\"fit\",\"prose\",{screen:[W]},W]}],h:[{h:[B,t,\"auto\",\"min\",\"max\",\"fit\",\"svh\",\"lvh\",\"dvh\"]}],\"min-h\":[{\"min-h\":[B,t,\"min\",\"max\",\"fit\",\"svh\",\"lvh\",\"dvh\"]}],\"max-h\":[{\"max-h\":[B,t,\"min\",\"max\",\"fit\",\"svh\",\"lvh\",\"dvh\"]}],size:[{size:[B,t,\"auto\",\"min\",\"max\",\"fit\"]}],\"font-size\":[{text:[\"base\",W,A]}],\"font-smoothing\":[\"antialiased\",\"subpixel-antialiased\"],\"font-style\":[\"italic\",\"not-italic\"],\"font-weight\":[{font:[\"thin\",\"extralight\",\"light\",\"normal\",\"medium\",\"semibold\",\"bold\",\"extrabold\",\"black\",L]}],\"font-family\":[{font:[q]}],\"fvn-normal\":[\"normal-nums\"],\"fvn-ordinal\":[\"ordinal\"],\"fvn-slashed-zero\":[\"slashed-zero\"],\"fvn-figure\":[\"lining-nums\",\"oldstyle-nums\"],\"fvn-spacing\":[\"proportional-nums\",\"tabular-nums\"],\"fvn-fraction\":[\"diagonal-fractions\",\"stacked-fractons\"],tracking:[{tracking:[\"tighter\",\"tight\",\"normal\",\"wide\",\"wider\",\"widest\",B]}],\"line-clamp\":[{\"line-clamp\":[\"none\",I,L]}],leading:[{leading:[\"none\",\"tight\",\"snug\",\"normal\",\"relaxed\",\"loose\",j,B]}],\"list-image\":[{\"list-image\":[\"none\",B]}],\"list-style-type\":[{list:[\"none\",\"disc\",\"decimal\",B]}],\"list-style-position\":[{list:[\"inside\",\"outside\"]}],\"placeholder-color\":[{placeholder:[e]}],\"placeholder-opacity\":[{\"placeholder-opacity\":[y]}],\"text-alignment\":[{text:[\"left\",\"center\",\"right\",\"justify\",\"start\",\"end\"]}],\"text-color\":[{text:[e]}],\"text-opacity\":[{\"text-opacity\":[y]}],\"text-decoration\":[\"underline\",\"overline\",\"line-through\",\"no-underline\"],\"text-decoration-style\":[{decoration:[\"solid\",\"dashed\",\"dotted\",\"double\",\"none\",\"wavy\"]}],\"text-decoration-thickness\":[{decoration:[\"auto\",\"from-font\",j,A]}],\"underline-offset\":[{\"underline-offset\":[\"auto\",j,B]}],\"text-decoration-color\":[{decoration:[e]}],\"text-transform\":[\"uppercase\",\"lowercase\",\"capitalize\",\"normal-case\"],\"text-overflow\":[\"truncate\",\"text-ellipsis\",\"text-clip\"],\"text-wrap\":[{text:[\"wrap\",\"nowrap\",\"balance\",\"pretty\"]}],indent:[{indent:P()}],\"vertical-align\":[{align:[\"baseline\",\"top\",\"middle\",\"bottom\",\"text-top\",\"text-bottom\",\"sub\",\"super\",B]}],whitespace:[{whitespace:[\"normal\",\"nowrap\",\"pre\",\"pre-line\",\"pre-wrap\",\"break-spaces\"]}],break:[{break:[\"normal\",\"words\",\"all\",\"keep\"]}],hyphens:[{hyphens:[\"none\",\"manual\",\"auto\"]}],content:[{content:[\"none\",B]}],\"bg-attachment\":[{bg:[\"fixed\",\"local\",\"scroll\"]}],\"bg-clip\":[{\"bg-clip\":[\"border\",\"padding\",\"content\",\"text\"]}],\"bg-opacity\":[{\"bg-opacity\":[y]}],\"bg-origin\":[{\"bg-origin\":[\"border\",\"padding\",\"content\"]}],\"bg-position\":[{bg:[\"bottom\",\"center\",\"left\",\"left-bottom\",\"left-top\",\"right\",\"right-bottom\",\"right-top\",\"top\",$]}],\"bg-repeat\":[{bg:[\"no-repeat\",{repeat:[\"\",\"x\",\"y\",\"round\",\"space\"]}]}],\"bg-size\":[{bg:[\"auto\",\"cover\",\"contain\",U]}],\"bg-image\":[{bg:[\"none\",{\"gradient-to\":[\"t\",\"tr\",\"r\",\"br\",\"b\",\"bl\",\"l\",\"tl\"]},H]}],\"bg-color\":[{bg:[e]}],\"gradient-from-pos\":[{from:[h]}],\"gradient-via-pos\":[{via:[h]}],\"gradient-to-pos\":[{to:[h]}],\"gradient-from\":[{from:[m]}],\"gradient-via\":[{via:[m]}],\"gradient-to\":[{to:[m]}],rounded:[{rounded:[i]}],\"rounded-s\":[{\"rounded-s\":[i]}],\"rounded-e\":[{\"rounded-e\":[i]}],\"rounded-t\":[{\"rounded-t\":[i]}],\"rounded-r\":[{\"rounded-r\":[i]}],\"rounded-b\":[{\"rounded-b\":[i]}],\"rounded-l\":[{\"rounded-l\":[i]}],\"rounded-ss\":[{\"rounded-ss\":[i]}],\"rounded-se\":[{\"rounded-se\":[i]}],\"rounded-ee\":[{\"rounded-ee\":[i]}],\"rounded-es\":[{\"rounded-es\":[i]}],\"rounded-tl\":[{\"rounded-tl\":[i]}],\"rounded-tr\":[{\"rounded-tr\":[i]}],\"rounded-br\":[{\"rounded-br\":[i]}],\"rounded-bl\":[{\"rounded-bl\":[i]}],\"border-w\":[{border:[a]}],\"border-w-x\":[{\"border-x\":[a]}],\"border-w-y\":[{\"border-y\":[a]}],\"border-w-s\":[{\"border-s\":[a]}],\"border-w-e\":[{\"border-e\":[a]}],\"border-w-t\":[{\"border-t\":[a]}],\"border-w-r\":[{\"border-r\":[a]}],\"border-w-b\":[{\"border-b\":[a]}],\"border-w-l\":[{\"border-l\":[a]}],\"border-opacity\":[{\"border-opacity\":[y]}],\"border-style\":[{border:[\"solid\",\"dashed\",\"dotted\",\"double\",\"none\",\"hidden\"]}],\"divide-x\":[{\"divide-x\":[a]}],\"divide-x-reverse\":[\"divide-x-reverse\"],\"divide-y\":[{\"divide-y\":[a]}],\"divide-y-reverse\":[\"divide-y-reverse\"],\"divide-opacity\":[{\"divide-opacity\":[y]}],\"divide-style\":[{divide:[\"solid\",\"dashed\",\"dotted\",\"double\",\"none\"]}],\"border-color\":[{border:[o]}],\"border-color-x\":[{\"border-x\":[o]}],\"border-color-y\":[{\"border-y\":[o]}],\"border-color-t\":[{\"border-t\":[o]}],\"border-color-r\":[{\"border-r\":[o]}],\"border-color-b\":[{\"border-b\":[o]}],\"border-color-l\":[{\"border-l\":[o]}],\"divide-color\":[{divide:[o]}],\"outline-style\":[{outline:[\"\",\"solid\",\"dashed\",\"dotted\",\"double\",\"none\"]}],\"outline-offset\":[{\"outline-offset\":[j,B]}],\"outline-w\":[{outline:[j,A]}],\"outline-color\":[{outline:[e]}],\"ring-w\":[{ring:O()}],\"ring-w-inset\":[\"ring-inset\"],\"ring-color\":[{ring:[e]}],\"ring-opacity\":[{\"ring-opacity\":[y]}],\"ring-offset-w\":[{\"ring-offset\":[j,A]}],\"ring-offset-color\":[{\"ring-offset\":[e]}],shadow:[{shadow:[\"\",\"inner\",\"none\",W,K]}],\"shadow-color\":[{shadow:[q]}],opacity:[{opacity:[y]}],\"mix-blend\":[{\"mix-blend\":[\"normal\",\"multiply\",\"screen\",\"overlay\",\"darken\",\"lighten\",\"color-dodge\",\"color-burn\",\"hard-light\",\"soft-light\",\"difference\",\"exclusion\",\"hue\",\"saturation\",\"color\",\"luminosity\",\"plus-lighter\",\"plus-darker\"]}],\"bg-blend\":[{\"bg-blend\":[\"normal\",\"multiply\",\"screen\",\"overlay\",\"darken\",\"lighten\",\"color-dodge\",\"color-burn\",\"hard-light\",\"soft-light\",\"difference\",\"exclusion\",\"hue\",\"saturation\",\"color\",\"luminosity\"]}],filter:[{filter:[\"\",\"none\"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[l]}],\"drop-shadow\":[{\"drop-shadow\":[\"\",\"none\",W,B]}],grayscale:[{grayscale:[c]}],\"hue-rotate\":[{\"hue-rotate\":[u]}],invert:[{invert:[d]}],saturate:[{saturate:[b]}],sepia:[{sepia:[w]}],\"backdrop-filter\":[{\"backdrop-filter\":[\"\",\"none\"]}],\"backdrop-blur\":[{\"backdrop-blur\":[n]}],\"backdrop-brightness\":[{\"backdrop-brightness\":[r]}],\"backdrop-contrast\":[{\"backdrop-contrast\":[l]}],\"backdrop-grayscale\":[{\"backdrop-grayscale\":[c]}],\"backdrop-hue-rotate\":[{\"backdrop-hue-rotate\":[u]}],\"backdrop-invert\":[{\"backdrop-invert\":[d]}],\"backdrop-opacity\":[{\"backdrop-opacity\":[y]}],\"backdrop-saturate\":[{\"backdrop-saturate\":[b]}],\"backdrop-sepia\":[{\"backdrop-sepia\":[w]}],\"border-collapse\":[{border:[\"collapse\",\"separate\"]}],\"border-spacing\":[{\"border-spacing\":[s]}],\"border-spacing-x\":[{\"border-spacing-x\":[s]}],\"border-spacing-y\":[{\"border-spacing-y\":[s]}],\"table-layout\":[{table:[\"auto\",\"fixed\"]}],caption:[{caption:[\"top\",\"bottom\"]}],transition:[{transition:[\"none\",\"all\",\"\",\"colors\",\"opacity\",\"shadow\",\"transform\",B]}],duration:[{duration:M()}],ease:[{ease:[\"linear\",\"in\",\"out\",\"in-out\",B]}],delay:[{delay:M()}],animate:[{animate:[\"none\",\"spin\",\"ping\",\"pulse\",\"bounce\",B]}],transform:[{transform:[\"\",\"gpu\",\"none\"]}],scale:[{scale:[x]}],\"scale-x\":[{\"scale-x\":[x]}],\"scale-y\":[{\"scale-y\":[x]}],rotate:[{rotate:[F,B]}],\"translate-x\":[{\"translate-x\":[E]}],\"translate-y\":[{\"translate-y\":[E]}],\"skew-x\":[{\"skew-x\":[S]}],\"skew-y\":[{\"skew-y\":[S]}],\"transform-origin\":[{origin:[\"center\",\"top\",\"top-right\",\"right\",\"bottom-right\",\"bottom\",\"bottom-left\",\"left\",\"top-left\",B]}],accent:[{accent:[\"auto\",e]}],appearance:[{appearance:[\"none\",\"auto\"]}],cursor:[{cursor:[\"auto\",\"default\",\"pointer\",\"wait\",\"text\",\"move\",\"help\",\"not-allowed\",\"none\",\"context-menu\",\"progress\",\"cell\",\"crosshair\",\"vertical-text\",\"alias\",\"copy\",\"no-drop\",\"grab\",\"grabbing\",\"all-scroll\",\"col-resize\",\"row-resize\",\"n-resize\",\"e-resize\",\"s-resize\",\"w-resize\",\"ne-resize\",\"nw-resize\",\"se-resize\",\"sw-resize\",\"ew-resize\",\"ns-resize\",\"nesw-resize\",\"nwse-resize\",\"zoom-in\",\"zoom-out\",B]}],\"caret-color\":[{caret:[e]}],\"pointer-events\":[{\"pointer-events\":[\"none\",\"auto\"]}],resize:[{resize:[\"none\",\"y\",\"x\",\"\"]}],\"scroll-behavior\":[{scroll:[\"auto\",\"smooth\"]}],\"scroll-m\":[{\"scroll-m\":P()}],\"scroll-mx\":[{\"scroll-mx\":P()}],\"scroll-my\":[{\"scroll-my\":P()}],\"scroll-ms\":[{\"scroll-ms\":P()}],\"scroll-me\":[{\"scroll-me\":P()}],\"scroll-mt\":[{\"scroll-mt\":P()}],\"scroll-mr\":[{\"scroll-mr\":P()}],\"scroll-mb\":[{\"scroll-mb\":P()}],\"scroll-ml\":[{\"scroll-ml\":P()}],\"scroll-p\":[{\"scroll-p\":P()}],\"scroll-px\":[{\"scroll-px\":P()}],\"scroll-py\":[{\"scroll-py\":P()}],\"scroll-ps\":[{\"scroll-ps\":P()}],\"scroll-pe\":[{\"scroll-pe\":P()}],\"scroll-pt\":[{\"scroll-pt\":P()}],\"scroll-pr\":[{\"scroll-pr\":P()}],\"scroll-pb\":[{\"scroll-pb\":P()}],\"scroll-pl\":[{\"scroll-pl\":P()}],\"snap-align\":[{snap:[\"start\",\"end\",\"center\",\"align-none\"]}],\"snap-stop\":[{snap:[\"normal\",\"always\"]}],\"snap-type\":[{snap:[\"none\",\"x\",\"y\",\"both\"]}],\"snap-strictness\":[{snap:[\"mandatory\",\"proximity\"]}],touch:[{touch:[\"auto\",\"none\",\"manipulation\"]}],\"touch-x\":[{\"touch-pan\":[\"x\",\"left\",\"right\"]}],\"touch-y\":[{\"touch-pan\":[\"y\",\"up\",\"down\"]}],\"touch-pz\":[\"touch-pinch-zoom\"],select:[{select:[\"none\",\"text\",\"all\",\"auto\"]}],\"will-change\":[{\"will-change\":[\"auto\",\"scroll\",\"contents\",\"transform\",B]}],fill:[{fill:[e,\"none\"]}],\"stroke-w\":[{stroke:[j,A,L]}],stroke:[{stroke:[e,\"none\"]}],sr:[\"sr-only\",\"not-sr-only\"],\"forced-color-adjust\":[{\"forced-color-adjust\":[\"auto\",\"none\"]}]},conflictingClassGroups:{overflow:[\"overflow-x\",\"overflow-y\"],overscroll:[\"overscroll-x\",\"overscroll-y\"],inset:[\"inset-x\",\"inset-y\",\"start\",\"end\",\"top\",\"right\",\"bottom\",\"left\"],\"inset-x\":[\"right\",\"left\"],\"inset-y\":[\"top\",\"bottom\"],flex:[\"basis\",\"grow\",\"shrink\"],gap:[\"gap-x\",\"gap-y\"],p:[\"px\",\"py\",\"ps\",\"pe\",\"pt\",\"pr\",\"pb\",\"pl\"],px:[\"pr\",\"pl\"],py:[\"pt\",\"pb\"],m:[\"mx\",\"my\",\"ms\",\"me\",\"mt\",\"mr\",\"mb\",\"ml\"],mx:[\"mr\",\"ml\"],my:[\"mt\",\"mb\"],size:[\"w\",\"h\"],\"font-size\":[\"leading\"],\"fvn-normal\":[\"fvn-ordinal\",\"fvn-slashed-zero\",\"fvn-figure\",\"fvn-spacing\",\"fvn-fraction\"],\"fvn-ordinal\":[\"fvn-normal\"],\"fvn-slashed-zero\":[\"fvn-normal\"],\"fvn-figure\":[\"fvn-normal\"],\"fvn-spacing\":[\"fvn-normal\"],\"fvn-fraction\":[\"fvn-normal\"],\"line-clamp\":[\"display\",\"overflow\"],rounded:[\"rounded-s\",\"rounded-e\",\"rounded-t\",\"rounded-r\",\"rounded-b\",\"rounded-l\",\"rounded-ss\",\"rounded-se\",\"rounded-ee\",\"rounded-es\",\"rounded-tl\",\"rounded-tr\",\"rounded-br\",\"rounded-bl\"],\"rounded-s\":[\"rounded-ss\",\"rounded-es\"],\"rounded-e\":[\"rounded-se\",\"rounded-ee\"],\"rounded-t\":[\"rounded-tl\",\"rounded-tr\"],\"rounded-r\":[\"rounded-tr\",\"rounded-br\"],\"rounded-b\":[\"rounded-br\",\"rounded-bl\"],\"rounded-l\":[\"rounded-tl\",\"rounded-bl\"],\"border-spacing\":[\"border-spacing-x\",\"border-spacing-y\"],\"border-w\":[\"border-w-s\",\"border-w-e\",\"border-w-t\",\"border-w-r\",\"border-w-b\",\"border-w-l\"],\"border-w-x\":[\"border-w-r\",\"border-w-l\"],\"border-w-y\":[\"border-w-t\",\"border-w-b\"],\"border-color\":[\"border-color-t\",\"border-color-r\",\"border-color-b\",\"border-color-l\"],\"border-color-x\":[\"border-color-r\",\"border-color-l\"],\"border-color-y\":[\"border-color-t\",\"border-color-b\"],\"scroll-m\":[\"scroll-mx\",\"scroll-my\",\"scroll-ms\",\"scroll-me\",\"scroll-mt\",\"scroll-mr\",\"scroll-mb\",\"scroll-ml\"],\"scroll-mx\":[\"scroll-mr\",\"scroll-ml\"],\"scroll-my\":[\"scroll-mt\",\"scroll-mb\"],\"scroll-p\":[\"scroll-px\",\"scroll-py\",\"scroll-ps\",\"scroll-pe\",\"scroll-pt\",\"scroll-pr\",\"scroll-pb\",\"scroll-pl\"],\"scroll-px\":[\"scroll-pr\",\"scroll-pl\"],\"scroll-py\":[\"scroll-pt\",\"scroll-pb\"],touch:[\"touch-x\",\"touch-y\",\"touch-pz\"],\"touch-x\":[\"touch\"],\"touch-y\":[\"touch\"],\"touch-pz\":[\"touch\"]},conflictingClassGroupModifiers:{\"font-size\":[\"leading\"]}}}),te=E(ee);function ne(e){var t,n,r=\"\";if(\"string\"==typeof e||\"number\"==typeof e)r+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=ne(e[t]))&&(r&&(r+=\" \"),r+=n)}else for(n in e)e[n]&&(r&&(r+=\" \"),r+=n);return r}function re(){for(var e,t,n=0,r=\"\",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=ne(e))&&(r&&(r+=\" \"),r+=t);return r}var oe=function(){return te(re.apply(void 0,arguments))},ie=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return t.forEach((function(e){return null==e?void 0:e.apply(void 0,n)}))}},se=function(e){var t={0:\"gap-0\",xxs:\"gap-1\",xs:\"gap-2\",sm:\"gap-3\",md:\"gap-4\",lg:\"gap-5\",xl:\"gap-6\",\"2xl\":\"gap-8\"};return t[e]||t.md},ae={1:\"grid-cols-1\",2:\"grid-cols-2\",3:\"grid-cols-3\",4:\"grid-cols-4\",5:\"grid-cols-5\",6:\"grid-cols-6\",7:\"grid-cols-7\",8:\"grid-cols-8\",9:\"grid-cols-9\",10:\"grid-cols-10\",11:\"grid-cols-11\",12:\"grid-cols-12\"},le=[\"variant\",\"size\",\"type\",\"tag\",\"className\",\"children\",\"disabled\",\"destructive\",\"icon\",\"iconPosition\",\"loading\"];function ce(){return ce=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ce.apply(null,arguments)}var ue=(0,a.forwardRef)((function(e,t){var n,r,o,i,s=e.variant,a=void 0===s?\"primary\":s,c=e.size,u=void 0===c?\"md\":c,d=e.type,f=void 0===d?\"button\":d,m=e.tag,h=void 0===m?\"button\":m,p=e.className,g=e.children,y=e.disabled,v=void 0!==y&&y,b=e.destructive,x=void 0!==b&&b,w=e.icon,S=void 0===w?null:w,k=e.iconPosition,E=void 0===k?\"left\":k,C=e.loading,_=void 0!==C&&C,P=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,le),O=_?\"opacity-50 disabled:cursor-not-allowed\":\"\",N=null===(n={primary:\"text-text-on-color bg-button-primary hover:bg-button-primary-hover outline-button-primary hover:outline-button-primary-hover disabled:bg-button-disabled disabled:outline-button-disabled\",secondary:\"text-text-on-color bg-button-secondary hover:bg-button-secondary-hover outline-button-secondary hover:outline-button-secondary-hover disabled:bg-button-disabled disabled:outline-button-disabled\",outline:\"text-button-tertiary-color outline-border-subtle bg-button-tertiary hover:bg-button-tertiary-hover hover:outline-border-subtle disabled:bg-button-tertiary disabled:outline-border-disabled\",ghost:\"text-text-primary bg-transparent outline-transparent hover:bg-button-tertiary-hover\",link:\"outline-none text-link-primary bg-transparent hover:text-link-primary-hover hover:underline p-0 border-0 leading-none\"})||void 0===n?void 0:n[a],T=x&&!v?null===(r={primary:\"bg-button-danger hover:bg-button-danger-hover outline-button-danger hover:outline-button-danger-hover\",outline:\"text-button-danger outline outline-1 outline-button-danger hover:outline-button-danger bg-button-tertiary hover:bg-field-background-error\",ghost:\"text-button-danger hover:bg-field-background-error\",link:\"text-button-danger hover:text-button-danger-secondary\"})||void 0===r?void 0:r[a]:\"\",M=null===(o={xs:\"p-1 rounded [&>svg]:size-4\",sm:\"p-2 rounded [&>svg]:size-4 gap-0.5\",md:\"p-2.5 rounded-md text-sm [&>svg]:size-5 gap-1\",lg:\"p-3 rounded-lg text-base [&>svg]:size-6 gap-1\"})||void 0===o?void 0:o[u],R=null,D=\"\";S&&(D=\"flex items-center justify-center\",\"left\"===E?i=S:R=S);var j=h;return l().createElement(j,ce({ref:t,type:f,className:oe(D,\"outline outline-1 border-none cursor-pointer transition-colors duration-300 ease-in-out text-xs font-semibold focus:ring-2 focus:ring-toggle-on focus:ring-offset-2 disabled:text-text-disabled\",M,N,T,O,p),disabled:v},P),i,l().createElement(\"span\",{className:\"px-1\"},g),R)})),de=ue;let fe=(e=21)=>{let t=\"\",n=crypto.getRandomValues(new Uint8Array(e));for(;e--;)t+=\"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\"[63&n[e]];return t};var me=[\"id\",\"onChange\",\"value\",\"defaultValue\",\"size\",\"disabled\",\"label\",\"name\",\"className\"];function he(){return he=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},he.apply(null,arguments)}function pe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var ge=function(e){var t=e.label,n=e.switchId,r=e.disabled,o=void 0!==r&&r,i=e.children,s=e.size;if((0,a.isValidElement)(t))return React.createElement(\"div\",{className:oe(\"inline-flex items-center gap-3\",\"items-start\")},i,t);var l,c,u,d,f,m=!(null!=t&&t.heading||null!=t&&t.description),h=null!=t&&t.heading&&null!=t&&t.description?\"items-start\":\"items-center\";return m?i:React.createElement(\"div\",{className:oe(\"inline-flex\",h,\"gap-3\")},i,React.createElement(\"label\",{htmlFor:n,className:oe(!o&&\"cursor-pointer\")},(u=void 0===(c=(l=t||{}).heading)?\"\":c,f=void 0===(d=l.description)?\"\":d,React.createElement(\"div\",{className:\"space-y-1.5\"},u&&React.createElement(\"p\",{className:oe(\"text-text-primary m-0\",{sm:\"text-sm leading-4 font-medium\",md:\"text-base leading-5 font-medium\",lg:\"text-lg leading-6 font-medium\"}[s],o&&\"text-text-disabled\")},u),f&&React.createElement(\"p\",{className:oe(\"text-text-secondary text-sm font-normal leading-5 m-0\",o&&\"text-text-disabled\")},f)))))},ye=function(e,t){var n,r,o=e.id,i=e.onChange,s=e.value,l=e.defaultValue,c=void 0!==l&&l,u=e.size,d=void 0===u?\"lg\":u,f=e.disabled,m=void 0!==f&&f,h=e.label,p=void 0===h?{heading:\"\",description:\"\"}:h,g=e.name,y=e.className,v=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,me),b=(0,a.useMemo)((function(){return void 0!==s}),[s]),x=(0,a.useMemo)((function(){return o||\"switch-\".concat(fe())}),[]),w=(n=(0,a.useState)(c),r=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(n,r)||function(e,t){if(e){if(\"string\"==typeof e)return pe(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?pe(e,t):void 0}}(n,r)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),S=w[0],k=w[1],E=\"primary\",C=(0,a.useCallback)((function(){return b?s:S}),[b,s,S]),_={primary:{input:\"bg-toggle-off hover:bg-toggle-off-hover checked:bg-toggle-on focus:ring focus:ring-toggle-on focus:ring-offset-4 checked:hover:bg-toggle-on border border-solid border-toggle-off-border checked:border-toggle-on-border shadow-toggleContainer focus:outline-none checked:focus:border-toggle-on-border focus:border-toggle-off-border\",toggleDial:\"bg-toggle-dial-background shadow-toggleDial\"}},P={lg:{container:\"w-11 h-6\",toggleDial:\"size-4 peer-checked:translate-x-5\"},md:{container:\"w-10 h-5\",toggleDial:\"size-3 peer-checked:translate-x-5\"},sm:{container:\"w-8 h-4\",toggleDial:\"size-2.5 peer-checked:translate-x-3.5\"}};return React.createElement(ge,{label:p,switchId:x,disabled:m,size:d},React.createElement(\"div\",{className:oe(\"relative inline-block cursor-pointer rounded-full shrink-0\",P[d].container,y)},React.createElement(\"input\",he({ref:t,id:x,type:\"checkbox\",className:oe(\"peer appearance-none absolute bg-blue-gray-100 rounded-full cursor-pointer transition-colors duration-300 h-full w-full before:content-[''] checked:before:content-[''] m-0 checked:[background-image:none]\",_[E].input,m&&\"bg-toggle-off-disabled disabled:border-transparent shadow-none disabled:cursor-not-allowed\"),checked:C(),onChange:function(e){if(!m){var t=e.target.checked;b||k(t),\"function\"==typeof i&&i(t)}},disabled:m,name:g},v)),React.createElement(\"label\",{htmlFor:x,className:oe(\"bg-white border border-blue-gray-100 rounded-full absolute cursor-pointer shadow-md before:content[''] before:transition-opacity before:opacity-0 hover:before:opacity-10 before:hidden border-none transition-all duration-300 top-2/4 left-1 -translate-y-2/4 before:w-10 before:h-10 before:rounded-full before:absolute before:top-2/4 before:left-2/4 before:-translate-y-2/4 before:-translate-x-2/4\",P[d].toggleDial,_[E].toggleDial,m&&\"peer-disabled:cursor-not-allowed\")})))},ve=(0,a.forwardRef)(ye);ve.displayName=\"Switch\";var be=ve;const xe=(...e)=>e.filter(((e,t,n)=>Boolean(e)&&n.indexOf(e)===t)).join(\" \");var we={xmlns:\"http://www.w3.org/2000/svg\",width:24,height:24,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:2,strokeLinecap:\"round\",strokeLinejoin:\"round\"};const Se=(0,a.forwardRef)((({color:e=\"currentColor\",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:o=\"\",children:i,iconNode:s,...l},c)=>(0,a.createElement)(\"svg\",{ref:c,...we,width:t,height:t,stroke:e,strokeWidth:r?24*Number(n)/Number(t):n,className:xe(\"lucide\",o),...l},[...s.map((([e,t])=>(0,a.createElement)(e,t))),...Array.isArray(i)?i:[i]]))),ke=(e,t)=>{const n=(0,a.forwardRef)((({className:n,...r},o)=>{return(0,a.createElement)(Se,{ref:o,iconNode:t,className:xe(`lucide-${i=e,i.replace(/([a-z0-9])([A-Z])/g,\"$1-$2\").toLowerCase()}`,n),...r});var i}));return n.displayName=`${e}`,n},Ee=ke(\"Minus\",[[\"path\",{d:\"M5 12h14\",key:\"1ays0h\"}]]),Ce=ke(\"Check\",[[\"path\",{d:\"M20 6 9 17l-5-5\",key:\"1gmf2c\"}]]);var _e=[\"id\",\"label\",\"defaultChecked\",\"checked\",\"onChange\",\"value\",\"indeterminate\",\"disabled\",\"size\"];function Pe(){return Pe=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Pe.apply(null,arguments)}function Oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var Ne=function(e,t){var n,r,o,i,s=e.id,l=e.label,c=e.defaultChecked,u=void 0!==c&&c,d=e.checked,f=e.onChange,m=(e.value,e.indeterminate),h=e.disabled,p=e.size,g=void 0===p?\"md\":p,y=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,_e),v=(0,a.useMemo)((function(){return s||\"checkbox-\".concat(fe())}),[s]),b=(0,a.useMemo)((function(){return void 0!==d}),[d]),x=(o=(0,a.useState)(u||!1),i=2,function(e){if(Array.isArray(e))return e}(o)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(o,i)||function(e,t){if(e){if(\"string\"==typeof e)return Oe(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Oe(e,t):void 0}}(o,i)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),w=x[0],S=x[1],k=\"primary\",E={sm:{checkbox:\"size-4 rounded gap-1\",icon:\"size-3\",text:\"text-sm\",description:\"text-xs\",gap:\"gap-0.5\"},md:{checkbox:\"size-5 rounded gap-1\",icon:\"size-4\",text:\"text-base\",description:\"text-sm\",gap:\"gap-1\"}},C={primary:{checkbox:\"border-border-strong hover:border-border-interactive checked:border-border-interactive bg-white checked:bg-toggle-on checked:hover:bg-toggle-on-hover checked:hover:border-toggle-on-hover focus:ring-2 focus:ring-offset-4 focus:ring-focus\",icon:\"text-white\"}},_=(0,a.useCallback)((function(){return b?d:w}),[b,d,w]),P=(0,a.useCallback)((function(){return(0,a.isValidElement)(l)?l:l.heading||l.description?React.createElement(\"div\",{className:E[g].gap},l.heading&&React.createElement(\"p\",{className:oe(\"text-text-primary font-medium leading-4 m-0\",E[g].text,E[g].gap)},l.heading),l.description&&React.createElement(\"p\",{className:oe(\"text-text-secondary font-normal leading-5 m-0\",E[g].description)},l.description)):null}),[l,g]);return React.createElement(\"div\",{className:oe(\"inline-flex items-center gap-2\",!!l&&\"items-start\")},React.createElement(\"label\",{className:oe(\"relative flex items-center rounded-full p-0.5\",!h&&\"cursor-pointer\"),htmlFor:v},React.createElement(\"input\",Pe({ref:t,id:v,type:\"checkbox\",className:oe(\"peer relative cursor-pointer appearance-none transition-all m-0 before:content-[''] checked:before:content-[''] checked:before:hidden before:hidden !border-1.5 border-solid\",C[k].checkbox,E[g].checkbox,h&&\"disabled:bg-white checked:disabled:bg-white disabled:border-border-disabled checked:disabled:border-border-disabled\"),checked:_(),onChange:function(e){if(!h){var t=e.target.checked;b||S(t),\"function\"==typeof f&&f(t)}},disabled:h},y)),React.createElement(\"span\",{className:oe(\"pointer-events-none inline-flex items-center absolute top-2/4 left-2/4 -translate-y-2/4 -translate-x-2/4 text-white opacity-0 transition-opacity peer-checked:opacity-100\",C[k].icon,h&&\"peer-disabled:text-border-disabled\")},m?React.createElement(Ee,{className:oe(null===(n=E[g])||void 0===n?void 0:n.icon)}):React.createElement(Ce,{className:oe(null===(r=E[g])||void 0===r?void 0:r.icon)}))),!!l&&React.createElement(\"label\",{className:oe(!h&&\"cursor-pointer\"),htmlFor:v},P()))},Te=(0,a.forwardRef)(Ne);Te.displayName=\"Checkbox\";var Me=Te;const Re=ke(\"Info\",[[\"circle\",{cx:\"12\",cy:\"12\",r:\"10\",key:\"1mglay\"}],[\"path\",{d:\"M12 16v-4\",key:\"1dtifu\"}],[\"path\",{d:\"M12 8h.01\",key:\"e9boi3\"}]]);var De={primary:{checkbox:\"border-border-strong hover:border-border-interactive checked:border-border-interactive bg-white checked:bg-toggle-on checked:hover:bg-toggle-on-hover checked:hover:border-toggle-on-hover focus:ring-2 focus:ring-offset-4 focus:ring-focus\",icon:\"text-white\"}},je={sm:\"text-sm leading-5\",md:\"text-base leading-6\"},Ae={sm:{checkbox:\"size-4\",icon:\"size-1.5\",info:\"size-4\"},md:{checkbox:\"size-5\",icon:\"size-2\",info:\"size-5\"}},Ie={xs:\"py-1 px-1 text-sm gap-0.5 [&>svg]:size-4\",sm:\"py-1 px-1.5 text-base gap-1 [&>svg]:size-4\",md:\"py-2 px-2.5 text-base gap-1 [&>svg]:size-5\",lg:\"py-2.5 px-3 text-base gap-1 [&>svg]:size-6\"};function Le(e){return Be(e)?(e.nodeName||\"\").toLowerCase():\"#document\"}function Fe(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function ze(e){var t;return null==(t=(Be(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function Be(e){return e instanceof Node||e instanceof Fe(e).Node}function We(e){return e instanceof Element||e instanceof Fe(e).Element}function Ve(e){return e instanceof HTMLElement||e instanceof Fe(e).HTMLElement}function Ue(e){return\"undefined\"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof Fe(e).ShadowRoot)}function $e(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=Xe(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&![\"inline\",\"contents\"].includes(o)}function Ye(e){return[\"table\",\"td\",\"th\"].includes(Le(e))}function He(e){return[\":popover-open\",\":modal\"].some((t=>{try{return e.matches(t)}catch(e){return!1}}))}function Ke(e){const t=qe(),n=We(e)?Xe(e):e;return\"none\"!==n.transform||\"none\"!==n.perspective||!!n.containerType&&\"normal\"!==n.containerType||!t&&!!n.backdropFilter&&\"none\"!==n.backdropFilter||!t&&!!n.filter&&\"none\"!==n.filter||[\"transform\",\"perspective\",\"filter\"].some((e=>(n.willChange||\"\").includes(e)))||[\"paint\",\"layout\",\"strict\",\"content\"].some((e=>(n.contain||\"\").includes(e)))}function qe(){return!(\"undefined\"==typeof CSS||!CSS.supports)&&CSS.supports(\"-webkit-backdrop-filter\",\"none\")}function Ge(e){return[\"html\",\"body\",\"#document\"].includes(Le(e))}function Xe(e){return Fe(e).getComputedStyle(e)}function Ze(e){return We(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Je(e){if(\"html\"===Le(e))return e;const t=e.assignedSlot||e.parentNode||Ue(e)&&e.host||ze(e);return Ue(t)?t.host:t}function Qe(e){const t=Je(e);return Ge(t)?e.ownerDocument?e.ownerDocument.body:e.body:Ve(t)&&$e(t)?t:Qe(t)}function et(e,t,n){var r;void 0===t&&(t=[]),void 0===n&&(n=!0);const o=Qe(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),s=Fe(o);if(i){const e=tt(s);return t.concat(s,s.visualViewport||[],$e(o)?o:[],e&&n?et(e):[])}return t.concat(o,et(o,[],n))}function tt(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function nt(e){let t=e.activeElement;for(;null!=(null==(n=t)||null==(n=n.shadowRoot)?void 0:n.activeElement);){var n;t=t.shadowRoot.activeElement}return t}function rt(e,t){if(!e||!t)return!1;const n=null==t.getRootNode?void 0:t.getRootNode();if(e.contains(t))return!0;if(n&&Ue(n)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function ot(){const e=navigator.userAgentData;return null!=e&&e.platform?e.platform:navigator.platform}function it(){const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map((e=>{let{brand:t,version:n}=e;return t+\"/\"+n})).join(\" \"):navigator.userAgent}function st(e){return!(0!==e.mozInputSource||!e.isTrusted)||(ct()&&e.pointerType?\"click\"===e.type&&1===e.buttons:0===e.detail&&!e.pointerType)}function at(e){return!it().includes(\"jsdom/\")&&(!ct()&&0===e.width&&0===e.height||ct()&&1===e.width&&1===e.height&&0===e.pressure&&0===e.detail&&\"mouse\"===e.pointerType||e.width<1&&e.height<1&&0===e.pressure&&0===e.detail&&\"touch\"===e.pointerType)}function lt(){return/apple/i.test(navigator.vendor)}function ct(){const e=/android/i;return e.test(ot())||e.test(it())}function ut(){return ot().toLowerCase().startsWith(\"mac\")&&!navigator.maxTouchPoints}function dt(e,t){const n=[\"mouse\",\"pen\"];return t||n.push(\"\",void 0),n.includes(e)}function ft(e){return(null==e?void 0:e.ownerDocument)||document}function mt(e,t){if(null==t)return!1;if(\"composedPath\"in e)return e.composedPath().includes(t);const n=e;return null!=n.target&&t.contains(n.target)}function ht(e){return\"composedPath\"in e?e.composedPath()[0]:e.target}const pt=\"input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";function gt(e){return Ve(e)&&e.matches(pt)}function yt(e){e.preventDefault(),e.stopPropagation()}function vt(e){return!!e&&\"combobox\"===e.getAttribute(\"role\")&>(e)}const bt=Math.min,xt=Math.max,wt=Math.round,St=Math.floor,kt=e=>({x:e,y:e}),Et={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"},Ct={start:\"end\",end:\"start\"};function _t(e,t,n){return xt(e,bt(t,n))}function Pt(e,t){return\"function\"==typeof e?e(t):e}function Ot(e){return e.split(\"-\")[0]}function Nt(e){return e.split(\"-\")[1]}function Tt(e){return\"x\"===e?\"y\":\"x\"}function Mt(e){return\"y\"===e?\"height\":\"width\"}function Rt(e){return[\"top\",\"bottom\"].includes(Ot(e))?\"y\":\"x\"}function Dt(e){return Tt(Rt(e))}function jt(e){return e.replace(/start|end/g,(e=>Ct[e]))}function At(e){return e.replace(/left|right|bottom|top/g,(e=>Et[e]))}function It(e){return\"number\"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}function Lt(e){const{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}var Ft=[\"input:not([inert])\",\"select:not([inert])\",\"textarea:not([inert])\",\"a[href]:not([inert])\",\"button:not([inert])\",\"[tabindex]:not(slot):not([inert])\",\"audio[controls]:not([inert])\",\"video[controls]:not([inert])\",'[contenteditable]:not([contenteditable=\"false\"]):not([inert])',\"details>summary:first-of-type:not([inert])\",\"details:not([inert])\"].join(\",\"),zt=\"undefined\"==typeof Element,Bt=zt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Wt=!zt&&Element.prototype.getRootNode?function(e){var t;return null==e||null===(t=e.getRootNode)||void 0===t?void 0:t.call(e)}:function(e){return null==e?void 0:e.ownerDocument},Vt=function e(t,n){var r;void 0===n&&(n=!0);var o=null==t||null===(r=t.getAttribute)||void 0===r?void 0:r.call(t,\"inert\");return\"\"===o||\"true\"===o||n&&t&&e(t.parentNode)},Ut=function e(t,n,r){for(var o=[],i=Array.from(t);i.length;){var s=i.shift();if(!Vt(s,!1))if(\"SLOT\"===s.tagName){var a=s.assignedElements(),l=e(a.length?a:s.children,!0,r);r.flatten?o.push.apply(o,l):o.push({scopeParent:s,candidates:l})}else{Bt.call(s,Ft)&&r.filter(s)&&(n||!t.includes(s))&&o.push(s);var c=s.shadowRoot||\"function\"==typeof r.getShadowRoot&&r.getShadowRoot(s),u=!Vt(c,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(s));if(c&&u){var d=e(!0===c?s.children:c.children,!0,r);r.flatten?o.push.apply(o,d):o.push({scopeParent:s,candidates:d})}else i.unshift.apply(i,s.children)}}return o},$t=function(e){return!isNaN(parseInt(e.getAttribute(\"tabindex\"),10))},Yt=function(e){if(!e)throw new Error(\"No node provided\");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||function(e){var t,n=null==e||null===(t=e.getAttribute)||void 0===t?void 0:t.call(e,\"contenteditable\");return\"\"===n||\"true\"===n}(e))&&!$t(e)?0:e.tabIndex},Ht=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},Kt=function(e){return\"INPUT\"===e.tagName},qt=function(e){var t=e.getBoundingClientRect(),n=t.width,r=t.height;return 0===n&&0===r},Gt=function(e,t){return!(t.disabled||Vt(t)||function(e){return Kt(e)&&\"hidden\"===e.type}(t)||function(e,t){var n=t.displayCheck,r=t.getShadowRoot;if(\"hidden\"===getComputedStyle(e).visibility)return!0;var o=Bt.call(e,\"details>summary:first-of-type\")?e.parentElement:e;if(Bt.call(o,\"details:not([open]) *\"))return!0;if(n&&\"full\"!==n&&\"legacy-full\"!==n){if(\"non-zero-area\"===n)return qt(e)}else{if(\"function\"==typeof r){for(var i=e;e;){var s=e.parentElement,a=Wt(e);if(s&&!s.shadowRoot&&!0===r(s))return qt(e);e=e.assignedSlot?e.assignedSlot:s||a===e.ownerDocument?s:a.host}e=i}if(function(e){var t,n,r,o,i=e&&Wt(e),s=null===(t=i)||void 0===t?void 0:t.host,a=!1;if(i&&i!==e)for(a=!!(null!==(n=s)&&void 0!==n&&null!==(r=n.ownerDocument)&&void 0!==r&&r.contains(s)||null!=e&&null!==(o=e.ownerDocument)&&void 0!==o&&o.contains(e));!a&&s;){var l,c,u;a=!(null===(c=s=null===(l=i=Wt(s))||void 0===l?void 0:l.host)||void 0===c||null===(u=c.ownerDocument)||void 0===u||!u.contains(s))}return a}(e))return!e.getClientRects().length;if(\"legacy-full\"!==n)return!0}return!1}(t,e)||function(e){return\"DETAILS\"===e.tagName&&Array.prototype.slice.apply(e.children).some((function(e){return\"SUMMARY\"===e.tagName}))}(t)||function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(\"FIELDSET\"===t.tagName&&t.disabled){for(var n=0;n<t.children.length;n++){var r=t.children.item(n);if(\"LEGEND\"===r.tagName)return!!Bt.call(t,\"fieldset[disabled] *\")||!r.contains(e)}return!0}t=t.parentElement}return!1}(t))},Xt=function(e,t){return!(function(e){return function(e){return Kt(e)&&\"radio\"===e.type}(e)&&!function(e){if(!e.name)return!0;var t,n=e.form||Wt(e),r=function(e){return n.querySelectorAll('input[type=\"radio\"][name=\"'+e+'\"]')};if(\"undefined\"!=typeof window&&void 0!==window.CSS&&\"function\"==typeof window.CSS.escape)t=r(window.CSS.escape(e.name));else try{t=r(e.name)}catch(e){return console.error(\"Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s\",e.message),!1}var o=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]}(t,e.form);return!o||o===e}(e)}(t)||Yt(t)<0||!Gt(e,t))},Zt=function(e){var t=parseInt(e.getAttribute(\"tabindex\"),10);return!!(isNaN(t)||t>=0)},Jt=function e(t){var n=[],r=[];return t.forEach((function(t,o){var i=!!t.scopeParent,s=i?t.scopeParent:t,a=function(e,t){var n=Yt(e);return n<0&&t&&!$t(e)?0:n}(s,i),l=i?e(t.candidates):s;0===a?i?n.push.apply(n,l):n.push(s):r.push({documentOrder:o,tabIndex:a,item:t,isScope:i,content:l})})),r.sort(Ht).reduce((function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e}),[]).concat(n)},Qt=function(e,t){var n;return n=(t=t||{}).getShadowRoot?Ut([e],t.includeContainer,{filter:Xt.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:Zt}):function(e,t,n){if(Vt(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(Ft));return t&&Bt.call(e,Ft)&&r.unshift(e),r.filter(n)}(e,t.includeContainer,Xt.bind(null,t)),Jt(n)},en=function(e,t){if(t=t||{},!e)throw new Error(\"No node provided\");return!1!==Bt.call(e,Ft)&&Xt(t,e)},tn=window.ReactDOM;function nn(e,t,n){let{reference:r,floating:o}=e;const i=Rt(t),s=Dt(t),a=Mt(s),l=Ot(t),c=\"y\"===i,u=r.x+r.width/2-o.width/2,d=r.y+r.height/2-o.height/2,f=r[a]/2-o[a]/2;let m;switch(l){case\"top\":m={x:u,y:r.y-o.height};break;case\"bottom\":m={x:u,y:r.y+r.height};break;case\"right\":m={x:r.x+r.width,y:d};break;case\"left\":m={x:r.x-o.width,y:d};break;default:m={x:r.x,y:r.y}}switch(Nt(t)){case\"start\":m[s]-=f*(n&&c?-1:1);break;case\"end\":m[s]+=f*(n&&c?-1:1)}return m}async function rn(e,t){var n;void 0===t&&(t={});const{x:r,y:o,platform:i,rects:s,elements:a,strategy:l}=e,{boundary:c=\"clippingAncestors\",rootBoundary:u=\"viewport\",elementContext:d=\"floating\",altBoundary:f=!1,padding:m=0}=Pt(t,e),h=It(m),p=a[f?\"floating\"===d?\"reference\":\"floating\":d],g=Lt(await i.getClippingRect({element:null==(n=await(null==i.isElement?void 0:i.isElement(p)))||n?p:p.contextElement||await(null==i.getDocumentElement?void 0:i.getDocumentElement(a.floating)),boundary:c,rootBoundary:u,strategy:l})),y=\"floating\"===d?{x:r,y:o,width:s.floating.width,height:s.floating.height}:s.reference,v=await(null==i.getOffsetParent?void 0:i.getOffsetParent(a.floating)),b=await(null==i.isElement?void 0:i.isElement(v))&&await(null==i.getScale?void 0:i.getScale(v))||{x:1,y:1},x=Lt(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:a,rect:y,offsetParent:v,strategy:l}):y);return{top:(g.top-x.top+h.top)/b.y,bottom:(x.bottom-g.bottom+h.bottom)/b.y,left:(g.left-x.left+h.left)/b.x,right:(x.right-g.right+h.right)/b.x}}function on(e){const t=Xe(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=Ve(e),i=o?e.offsetWidth:n,s=o?e.offsetHeight:r,a=wt(n)!==i||wt(r)!==s;return a&&(n=i,r=s),{width:n,height:r,$:a}}function sn(e){return We(e)?e:e.contextElement}function an(e){const t=sn(e);if(!Ve(t))return kt(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:i}=on(t);let s=(i?wt(n.width):n.width)/r,a=(i?wt(n.height):n.height)/o;return s&&Number.isFinite(s)||(s=1),a&&Number.isFinite(a)||(a=1),{x:s,y:a}}const ln=kt(0);function cn(e){const t=Fe(e);return qe()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:ln}function un(e,t,n,r){void 0===t&&(t=!1),void 0===n&&(n=!1);const o=e.getBoundingClientRect(),i=sn(e);let s=kt(1);t&&(r?We(r)&&(s=an(r)):s=an(e));const a=function(e,t,n){return void 0===t&&(t=!1),!(!n||t&&n!==Fe(e))&&t}(i,n,r)?cn(i):kt(0);let l=(o.left+a.x)/s.x,c=(o.top+a.y)/s.y,u=o.width/s.x,d=o.height/s.y;if(i){const e=Fe(i),t=r&&We(r)?Fe(r):r;let n=e,o=tt(n);for(;o&&r&&t!==n;){const e=an(o),t=o.getBoundingClientRect(),r=Xe(o),i=t.left+(o.clientLeft+parseFloat(r.paddingLeft))*e.x,s=t.top+(o.clientTop+parseFloat(r.paddingTop))*e.y;l*=e.x,c*=e.y,u*=e.x,d*=e.y,l+=i,c+=s,n=Fe(o),o=tt(n)}}return Lt({width:u,height:d,x:l,y:c})}function dn(e){return un(ze(e)).left+Ze(e).scrollLeft}function fn(e,t,n){let r;if(\"viewport\"===t)r=function(e,t){const n=Fe(e),r=ze(e),o=n.visualViewport;let i=r.clientWidth,s=r.clientHeight,a=0,l=0;if(o){i=o.width,s=o.height;const e=qe();(!e||e&&\"fixed\"===t)&&(a=o.offsetLeft,l=o.offsetTop)}return{width:i,height:s,x:a,y:l}}(e,n);else if(\"document\"===t)r=function(e){const t=ze(e),n=Ze(e),r=e.ownerDocument.body,o=xt(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),i=xt(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let s=-n.scrollLeft+dn(e);const a=-n.scrollTop;return\"rtl\"===Xe(r).direction&&(s+=xt(t.clientWidth,r.clientWidth)-o),{width:o,height:i,x:s,y:a}}(ze(e));else if(We(t))r=function(e,t){const n=un(e,!0,\"fixed\"===t),r=n.top+e.clientTop,o=n.left+e.clientLeft,i=Ve(e)?an(e):kt(1);return{width:e.clientWidth*i.x,height:e.clientHeight*i.y,x:o*i.x,y:r*i.y}}(t,n);else{const n=cn(e);r={...t,x:t.x-n.x,y:t.y-n.y}}return Lt(r)}function mn(e,t){const n=Je(e);return!(n===t||!We(n)||Ge(n))&&(\"fixed\"===Xe(n).position||mn(n,t))}function hn(e,t,n){const r=Ve(t),o=ze(t),i=\"fixed\"===n,s=un(e,!0,i,t);let a={scrollLeft:0,scrollTop:0};const l=kt(0);if(r||!r&&!i)if((\"body\"!==Le(t)||$e(o))&&(a=Ze(t)),r){const e=un(t,!0,i,t);l.x=e.x+t.clientLeft,l.y=e.y+t.clientTop}else o&&(l.x=dn(o));return{x:s.left+a.scrollLeft-l.x,y:s.top+a.scrollTop-l.y,width:s.width,height:s.height}}function pn(e){return\"static\"===Xe(e).position}function gn(e,t){return Ve(e)&&\"fixed\"!==Xe(e).position?t?t(e):e.offsetParent:null}function yn(e,t){const n=Fe(e);if(He(e))return n;if(!Ve(e)){let t=Je(e);for(;t&&!Ge(t);){if(We(t)&&!pn(t))return t;t=Je(t)}return n}let r=gn(e,t);for(;r&&Ye(r)&&pn(r);)r=gn(r,t);return r&&Ge(r)&&pn(r)&&!Ke(r)?n:r||function(e){let t=Je(e);for(;Ve(t)&&!Ge(t);){if(Ke(t))return t;if(He(t))return null;t=Je(t)}return null}(e)||n}const vn={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e;const i=\"fixed\"===o,s=ze(r),a=!!t&&He(t.floating);if(r===s||a&&i)return n;let l={scrollLeft:0,scrollTop:0},c=kt(1);const u=kt(0),d=Ve(r);if((d||!d&&!i)&&((\"body\"!==Le(r)||$e(s))&&(l=Ze(r)),Ve(r))){const e=un(r);c=an(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-l.scrollLeft*c.x+u.x,y:n.y*c.y-l.scrollTop*c.y+u.y}},getDocumentElement:ze,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const i=[...\"clippingAncestors\"===n?He(t)?[]:function(e,t){const n=t.get(e);if(n)return n;let r=et(e,[],!1).filter((e=>We(e)&&\"body\"!==Le(e))),o=null;const i=\"fixed\"===Xe(e).position;let s=i?Je(e):e;for(;We(s)&&!Ge(s);){const t=Xe(s),n=Ke(s);n||\"fixed\"!==t.position||(o=null),(i?!n&&!o:!n&&\"static\"===t.position&&o&&[\"absolute\",\"fixed\"].includes(o.position)||$e(s)&&!n&&mn(e,s))?r=r.filter((e=>e!==s)):o=t,s=Je(s)}return t.set(e,r),r}(t,this._c):[].concat(n),r],s=i[0],a=i.reduce(((e,n)=>{const r=fn(t,n,o);return e.top=xt(r.top,e.top),e.right=bt(r.right,e.right),e.bottom=bt(r.bottom,e.bottom),e.left=xt(r.left,e.left),e}),fn(t,s,o));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}},getOffsetParent:yn,getElementRects:async function(e){const t=this.getOffsetParent||yn,n=this.getDimensions,r=await n(e.floating);return{reference:hn(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){const{width:t,height:n}=on(e);return{width:t,height:n}},getScale:an,isElement:We,isRTL:function(e){return\"rtl\"===Xe(e).direction}};function bn(e,t,n,r){void 0===r&&(r={});const{ancestorScroll:o=!0,ancestorResize:i=!0,elementResize:s=\"function\"==typeof ResizeObserver,layoutShift:a=\"function\"==typeof IntersectionObserver,animationFrame:l=!1}=r,c=sn(e),u=o||i?[...c?et(c):[],...et(t)]:[];u.forEach((e=>{o&&e.addEventListener(\"scroll\",n,{passive:!0}),i&&e.addEventListener(\"resize\",n)}));const d=c&&a?function(e,t){let n,r=null;const o=ze(e);function i(){var e;clearTimeout(n),null==(e=r)||e.disconnect(),r=null}return function s(a,l){void 0===a&&(a=!1),void 0===l&&(l=1),i();const{left:c,top:u,width:d,height:f}=e.getBoundingClientRect();if(a||t(),!d||!f)return;const m={rootMargin:-St(u)+\"px \"+-St(o.clientWidth-(c+d))+\"px \"+-St(o.clientHeight-(u+f))+\"px \"+-St(c)+\"px\",threshold:xt(0,bt(1,l))||1};let h=!0;function p(e){const t=e[0].intersectionRatio;if(t!==l){if(!h)return s();t?s(!1,t):n=setTimeout((()=>{s(!1,1e-7)}),1e3)}h=!1}try{r=new IntersectionObserver(p,{...m,root:o.ownerDocument})}catch(e){r=new IntersectionObserver(p,m)}r.observe(e)}(!0),i}(c,n):null;let f,m=-1,h=null;s&&(h=new ResizeObserver((e=>{let[r]=e;r&&r.target===c&&h&&(h.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame((()=>{var e;null==(e=h)||e.observe(t)}))),n()})),c&&!l&&h.observe(c),h.observe(t));let p=l?un(e):null;return l&&function t(){const r=un(e);!p||r.x===p.x&&r.y===p.y&&r.width===p.width&&r.height===p.height||n(),p=r,f=requestAnimationFrame(t)}(),n(),()=>{var e;u.forEach((e=>{o&&e.removeEventListener(\"scroll\",n),i&&e.removeEventListener(\"resize\",n)})),null==d||d(),null==(e=h)||e.disconnect(),h=null,l&&cancelAnimationFrame(f)}}const xn=function(e){return void 0===e&&(e=0),{name:\"offset\",options:e,async fn(t){var n,r;const{x:o,y:i,placement:s,middlewareData:a}=t,l=await async function(e,t){const{placement:n,platform:r,elements:o}=e,i=await(null==r.isRTL?void 0:r.isRTL(o.floating)),s=Ot(n),a=Nt(n),l=\"y\"===Rt(n),c=[\"left\",\"top\"].includes(s)?-1:1,u=i&&l?-1:1,d=Pt(t,e);let{mainAxis:f,crossAxis:m,alignmentAxis:h}=\"number\"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...d};return a&&\"number\"==typeof h&&(m=\"end\"===a?-1*h:h),l?{x:m*u,y:f*c}:{x:f*c,y:m*u}}(t,e);return s===(null==(n=a.offset)?void 0:n.placement)&&null!=(r=a.arrow)&&r.alignmentOffset?{}:{x:o+l.x,y:i+l.y,data:{...l,placement:s}}}}},wn=function(e){return void 0===e&&(e={}),{name:\"shift\",options:e,async fn(t){const{x:n,y:r,placement:o}=t,{mainAxis:i=!0,crossAxis:s=!1,limiter:a={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=Pt(e,t),c={x:n,y:r},u=await rn(t,l),d=Rt(Ot(o)),f=Tt(d);let m=c[f],h=c[d];if(i){const e=\"y\"===f?\"bottom\":\"right\";m=_t(m+u[\"y\"===f?\"top\":\"left\"],m,m-u[e])}if(s){const e=\"y\"===d?\"bottom\":\"right\";h=_t(h+u[\"y\"===d?\"top\":\"left\"],h,h-u[e])}const p=a.fn({...t,[f]:m,[d]:h});return{...p,data:{x:p.x-n,y:p.y-r}}}}},Sn=function(e){return void 0===e&&(e={}),{name:\"flip\",options:e,async fn(t){var n,r;const{placement:o,middlewareData:i,rects:s,initialPlacement:a,platform:l,elements:c}=t,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:f,fallbackStrategy:m=\"bestFit\",fallbackAxisSideDirection:h=\"none\",flipAlignment:p=!0,...g}=Pt(e,t);if(null!=(n=i.arrow)&&n.alignmentOffset)return{};const y=Ot(o),v=Rt(a),b=Ot(a)===a,x=await(null==l.isRTL?void 0:l.isRTL(c.floating)),w=f||(b||!p?[At(a)]:function(e){const t=At(e);return[jt(e),t,jt(t)]}(a)),S=\"none\"!==h;!f&&S&&w.push(...function(e,t,n,r){const o=Nt(e);let i=function(e,t,n){const r=[\"left\",\"right\"],o=[\"right\",\"left\"],i=[\"top\",\"bottom\"],s=[\"bottom\",\"top\"];switch(e){case\"top\":case\"bottom\":return n?t?o:r:t?r:o;case\"left\":case\"right\":return t?i:s;default:return[]}}(Ot(e),\"start\"===n,r);return o&&(i=i.map((e=>e+\"-\"+o)),t&&(i=i.concat(i.map(jt)))),i}(a,p,h,x));const k=[a,...w],E=await rn(t,g),C=[];let _=(null==(r=i.flip)?void 0:r.overflows)||[];if(u&&C.push(E[y]),d){const e=function(e,t,n){void 0===n&&(n=!1);const r=Nt(e),o=Dt(e),i=Mt(o);let s=\"x\"===o?r===(n?\"end\":\"start\")?\"right\":\"left\":\"start\"===r?\"bottom\":\"top\";return t.reference[i]>t.floating[i]&&(s=At(s)),[s,At(s)]}(o,s,x);C.push(E[e[0]],E[e[1]])}if(_=[..._,{placement:o,overflows:C}],!C.every((e=>e<=0))){var P,O;const e=((null==(P=i.flip)?void 0:P.index)||0)+1,t=k[e];if(t)return{data:{index:e,overflows:_},reset:{placement:t}};let n=null==(O=_.filter((e=>e.overflows[0]<=0)).sort(((e,t)=>e.overflows[1]-t.overflows[1]))[0])?void 0:O.placement;if(!n)switch(m){case\"bestFit\":{var N;const e=null==(N=_.filter((e=>{if(S){const t=Rt(e.placement);return t===v||\"y\"===t}return!0})).map((e=>[e.placement,e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)])).sort(((e,t)=>e[1]-t[1]))[0])?void 0:N[0];e&&(n=e);break}case\"initialPlacement\":n=a}if(o!==n)return{reset:{placement:n}}}return{}}}},kn=function(e){return void 0===e&&(e={}),{name:\"size\",options:e,async fn(t){const{placement:n,rects:r,platform:o,elements:i}=t,{apply:s=()=>{},...a}=Pt(e,t),l=await rn(t,a),c=Ot(n),u=Nt(n),d=\"y\"===Rt(n),{width:f,height:m}=r.floating;let h,p;\"top\"===c||\"bottom\"===c?(h=c,p=u===(await(null==o.isRTL?void 0:o.isRTL(i.floating))?\"start\":\"end\")?\"left\":\"right\"):(p=c,h=\"end\"===u?\"top\":\"bottom\");const g=m-l.top-l.bottom,y=f-l.left-l.right,v=bt(m-l[h],g),b=bt(f-l[p],y),x=!t.middlewareData.shift;let w=v,S=b;if(d?S=u||x?bt(b,y):y:w=u||x?bt(v,g):g,x&&!u){const e=xt(l.left,0),t=xt(l.right,0),n=xt(l.top,0),r=xt(l.bottom,0);d?S=f-2*(0!==e||0!==t?e+t:xt(l.left,l.right)):w=m-2*(0!==n||0!==r?n+r:xt(l.top,l.bottom))}await s({...t,availableWidth:S,availableHeight:w});const k=await o.getDimensions(i.floating);return f!==k.width||m!==k.height?{reset:{rects:!0}}:{}}}},En=e=>({name:\"arrow\",options:e,async fn(t){const{x:n,y:r,placement:o,rects:i,platform:s,elements:a,middlewareData:l}=t,{element:c,padding:u=0}=Pt(e,t)||{};if(null==c)return{};const d=It(u),f={x:n,y:r},m=Dt(o),h=Mt(m),p=await s.getDimensions(c),g=\"y\"===m,y=g?\"top\":\"left\",v=g?\"bottom\":\"right\",b=g?\"clientHeight\":\"clientWidth\",x=i.reference[h]+i.reference[m]-f[m]-i.floating[h],w=f[m]-i.reference[m],S=await(null==s.getOffsetParent?void 0:s.getOffsetParent(c));let k=S?S[b]:0;k&&await(null==s.isElement?void 0:s.isElement(S))||(k=a.floating[b]||i.floating[h]);const E=x/2-w/2,C=k/2-p[h]/2-1,_=bt(d[y],C),P=bt(d[v],C),O=_,N=k-p[h]-P,T=k/2-p[h]/2+E,M=_t(O,T,N),R=!l.arrow&&null!=Nt(o)&&T!==M&&i.reference[h]/2-(T<O?_:P)-p[h]/2<0,D=R?T<O?T-O:T-N:0;return{[m]:f[m]+D,data:{[m]:M,centerOffset:T-M-D,...R&&{alignmentOffset:D}},reset:R}}}),Cn=(e,t,n)=>{const r=new Map,o={platform:vn,...n},i={...o.platform,_c:r};return(async(e,t,n)=>{const{placement:r=\"bottom\",strategy:o=\"absolute\",middleware:i=[],platform:s}=n,a=i.filter(Boolean),l=await(null==s.isRTL?void 0:s.isRTL(t));let c=await s.getElementRects({reference:e,floating:t,strategy:o}),{x:u,y:d}=nn(c,r,l),f=r,m={},h=0;for(let n=0;n<a.length;n++){const{name:i,fn:p}=a[n],{x:g,y:y,data:v,reset:b}=await p({x:u,y:d,initialPlacement:r,placement:f,strategy:o,middlewareData:m,rects:c,platform:s,elements:{reference:e,floating:t}});u=null!=g?g:u,d=null!=y?y:d,m={...m,[i]:{...m[i],...v}},b&&h<=50&&(h++,\"object\"==typeof b&&(b.placement&&(f=b.placement),b.rects&&(c=!0===b.rects?await s.getElementRects({reference:e,floating:t,strategy:o}):b.rects),({x:u,y:d}=nn(c,f,l))),n=-1)}return{x:u,y:d,placement:f,strategy:o,middlewareData:m}})(e,t,{...o,platform:i})};var Pn=\"undefined\"!=typeof document?a.useLayoutEffect:a.useEffect;function On(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(\"function\"==typeof e&&e.toString()===t.toString())return!0;let n,r,o;if(e&&t&&\"object\"==typeof e){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;0!=r--;)if(!On(e[r],t[r]))return!1;return!0}if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(r=n;0!=r--;)if(!{}.hasOwnProperty.call(t,o[r]))return!1;for(r=n;0!=r--;){const n=o[r];if(!(\"_owner\"===n&&e.$$typeof||On(e[n],t[n])))return!1}return!0}return e!=e&&t!=t}function Nn(e){return\"undefined\"==typeof window?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Tn(e,t){const n=Nn(e);return Math.round(t*n)/n}function Mn(e){const t=a.useRef(e);return Pn((()=>{t.current=e})),t}const Rn=e=>({name:\"arrow\",options:e,fn(t){const{element:n,padding:r}=\"function\"==typeof e?e(t):e;return n&&(o=n,{}.hasOwnProperty.call(o,\"current\"))?null!=n.current?En({element:n.current,padding:r}).fn(t):{}:n?En({element:n,padding:r}).fn(t):{};var o}}),Dn=(e,t)=>({...xn(e),options:[e,t]}),jn=(e,t)=>({...wn(e),options:[e,t]}),An=(e,t)=>({...Sn(e),options:[e,t]}),In=(e,t)=>({...kn(e),options:[e,t]}),Ln={...a},Fn=Ln.useInsertionEffect||(e=>e());function zn(e){const t=a.useRef((()=>{}));return Fn((()=>{t.current=e})),a.useCallback((function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return null==t.current?void 0:t.current(...n)}),[])}const Bn=\"ArrowUp\",Wn=\"ArrowDown\",Vn=\"ArrowLeft\",Un=\"ArrowRight\";function $n(e,t,n){return Math.floor(e/t)!==n}function Yn(e,t){return t<0||t>=e.current.length}function Hn(e,t){return qn(e,{disabledIndices:t})}function Kn(e,t){return qn(e,{decrement:!0,startingIndex:e.current.length,disabledIndices:t})}function qn(e,t){let{startingIndex:n=-1,decrement:r=!1,disabledIndices:o,amount:i=1}=void 0===t?{}:t;const s=e.current;let a=n;do{a+=r?-i:i}while(a>=0&&a<=s.length-1&&Zn(s,a,o));return a}function Gn(e,t,n,r,o){if(-1===e)return-1;const i=n.indexOf(e),s=t[e];switch(o){case\"tl\":return i;case\"tr\":return s?i+s.width-1:i;case\"bl\":return s?i+(s.height-1)*r:i;case\"br\":return n.lastIndexOf(e)}}function Xn(e,t){return t.flatMap(((t,n)=>e.includes(t)?[n]:[]))}function Zn(e,t,n){if(n)return n.includes(t);const r=e[t];return null==r||r.hasAttribute(\"disabled\")||\"true\"===r.getAttribute(\"aria-disabled\")}let Jn=0;function Qn(e,t){void 0===t&&(t={});const{preventScroll:n=!1,cancelPrevious:r=!0,sync:o=!1}=t;r&&cancelAnimationFrame(Jn);const i=()=>null==e?void 0:e.focus({preventScroll:n});o?i():Jn=requestAnimationFrame(i)}var er=\"undefined\"!=typeof document?a.useLayoutEffect:a.useEffect;function tr(){return tr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},tr.apply(this,arguments)}let nr=!1,rr=0;const or=()=>\"floating-ui-\"+Math.random().toString(36).slice(2,6)+rr++,ir=Ln.useId||function(){const[e,t]=a.useState((()=>nr?or():void 0));return er((()=>{null==e&&t(or())}),[]),a.useEffect((()=>{nr=!0}),[]),e},sr=a.forwardRef((function(e,t){const{context:{placement:n,elements:{floating:r},middlewareData:{arrow:o,shift:i}},width:s=14,height:l=7,tipRadius:c=0,strokeWidth:u=0,staticOffset:d,stroke:f,d:m,style:{transform:h,...p}={},...g}=e,y=ir(),[v,b]=a.useState(!1);if(er((()=>{r&&\"rtl\"===Xe(r).direction&&b(!0)}),[r]),!r)return null;const[x,w]=n.split(\"-\"),S=\"top\"===x||\"bottom\"===x;let k=d;(S&&null!=i&&i.x||!S&&null!=i&&i.y)&&(k=null);const E=2*u,C=E/2,_=s/2*(c/-8+1),P=l/2*c/4,O=!!m,N=k&&\"end\"===w?\"bottom\":\"top\";let T=k&&\"end\"===w?\"right\":\"left\";k&&v&&(T=\"end\"===w?\"left\":\"right\");const M=null!=(null==o?void 0:o.x)?k||o.x:\"\",R=null!=(null==o?void 0:o.y)?k||o.y:\"\",D=m||\"M0,0 H\"+s+\" L\"+(s-_)+\",\"+(l-P)+\" Q\"+s/2+\",\"+l+\" \"+_+\",\"+(l-P)+\" Z\",j={top:O?\"rotate(180deg)\":\"\",left:O?\"rotate(90deg)\":\"rotate(-90deg)\",bottom:O?\"\":\"rotate(180deg)\",right:O?\"rotate(-90deg)\":\"rotate(90deg)\"}[x];return a.createElement(\"svg\",tr({},g,{\"aria-hidden\":!0,ref:t,width:O?s:s+E,height:s,viewBox:\"0 0 \"+s+\" \"+(l>s?l:s),style:{position:\"absolute\",pointerEvents:\"none\",[T]:M,[N]:R,[x]:S||O?\"100%\":\"calc(100% - \"+E/2+\"px)\",transform:\"\"+j+(null!=h?h:\"\"),...p}}),E>0&&a.createElement(\"path\",{clipPath:\"url(#\"+y+\")\",fill:\"none\",stroke:f,strokeWidth:E+(m?0:1),d:D}),a.createElement(\"path\",{stroke:E&&!m?g.fill:\"none\",d:D}),a.createElement(\"clipPath\",{id:y},a.createElement(\"rect\",{x:-C,y:C*(O?-1:1),width:s+E,height:s})))}));const ar=a.createContext(null),lr=a.createContext(null),cr=()=>{var e;return(null==(e=a.useContext(ar))?void 0:e.id)||null},ur=()=>a.useContext(lr);function dr(e){return\"data-floating-ui-\"+e}function fr(e){const t=(0,a.useRef)(e);return er((()=>{t.current=e})),t}const mr=dr(\"safe-polygon\");function hr(e,t,n){return n&&!dt(n)?0:\"number\"==typeof e?e:null==e?void 0:e[t]}function pr(e,t){let n=e.filter((e=>{var n;return e.parentId===t&&(null==(n=e.context)?void 0:n.open)})),r=n;for(;r.length;)r=e.filter((e=>{var t;return null==(t=r)?void 0:t.some((t=>{var n;return e.parentId===t.id&&(null==(n=e.context)?void 0:n.open)}))})),n=n.concat(r);return n}let gr=new WeakMap,yr=new WeakSet,vr={},br=0;const xr=()=>\"undefined\"!=typeof HTMLElement&&\"inert\"in HTMLElement.prototype,wr=e=>e&&(e.host||wr(e.parentNode)),Sr=(e,t)=>t.map((t=>{if(e.contains(t))return t;const n=wr(t);return e.contains(n)?n:null})).filter((e=>null!=e));function kr(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);const r=ft(e[0]).body;return function(e,t,n,r){const o=\"data-floating-ui-inert\",i=r?\"inert\":n?\"aria-hidden\":null,s=Sr(t,e),a=new Set,l=new Set(s),c=[];vr[o]||(vr[o]=new WeakMap);const u=vr[o];return s.forEach((function e(t){t&&!a.has(t)&&(a.add(t),t.parentNode&&e(t.parentNode))})),function e(t){t&&!l.has(t)&&[].forEach.call(t.children,(t=>{if(\"script\"!==Le(t))if(a.has(t))e(t);else{const e=i?t.getAttribute(i):null,n=null!==e&&\"false\"!==e,r=(gr.get(t)||0)+1,s=(u.get(t)||0)+1;gr.set(t,r),u.set(t,s),c.push(t),1===r&&n&&yr.add(t),1===s&&t.setAttribute(o,\"\"),!n&&i&&t.setAttribute(i,\"true\")}}))}(t),a.clear(),br++,()=>{c.forEach((e=>{const t=(gr.get(e)||0)-1,n=(u.get(e)||0)-1;gr.set(e,t),u.set(e,n),t||(!yr.has(e)&&i&&e.removeAttribute(i),yr.delete(e)),n||e.removeAttribute(o)})),br--,br||(gr=new WeakMap,gr=new WeakMap,yr=new WeakSet,vr={})}}(e.concat(Array.from(r.querySelectorAll(\"[aria-live]\"))),r,t,n)}const Er=()=>({getShadowRoot:!0,displayCheck:\"function\"==typeof ResizeObserver&&ResizeObserver.toString().includes(\"[native code]\")?\"full\":\"none\"});function Cr(e,t){const n=Qt(e,Er());\"prev\"===t&&n.reverse();const r=n.indexOf(nt(ft(e)));return n.slice(r+1)[0]}function _r(){return Cr(document.body,\"next\")}function Pr(){return Cr(document.body,\"prev\")}function Or(e,t){const n=t||e.currentTarget,r=e.relatedTarget;return!r||!rt(n,r)}function Nr(e){Qt(e,Er()).forEach((e=>{e.dataset.tabindex=e.getAttribute(\"tabindex\")||\"\",e.setAttribute(\"tabindex\",\"-1\")}))}function Tr(e){e.querySelectorAll(\"[data-tabindex]\").forEach((e=>{const t=e.dataset.tabindex;delete e.dataset.tabindex,t?e.setAttribute(\"tabindex\",t):e.removeAttribute(\"tabindex\")}))}const Mr={border:0,clip:\"rect(0 0 0 0)\",height:\"1px\",margin:\"-1px\",overflow:\"hidden\",padding:0,position:\"fixed\",whiteSpace:\"nowrap\",width:\"1px\",top:0,left:0};function Rr(e){\"Tab\"===e.key&&(e.target,clearTimeout(void 0))}const Dr=a.forwardRef((function(e,t){const[n,r]=a.useState();er((()=>(lt()&&r(\"button\"),document.addEventListener(\"keydown\",Rr),()=>{document.removeEventListener(\"keydown\",Rr)})),[]);const o={ref:t,tabIndex:0,role:n,\"aria-hidden\":!n||void 0,[dr(\"focus-guard\")]:\"\",style:Mr};return a.createElement(\"span\",tr({},e,o))})),jr=a.createContext(null),Ar=dr(\"portal\");function Ir(e){const{children:t,id:n,root:r=null,preserveTabOrder:o=!0}=e,i=function(e){void 0===e&&(e={});const{id:t,root:n}=e,r=ir(),o=Lr(),[i,s]=a.useState(null),l=a.useRef(null);return er((()=>()=>{null==i||i.remove(),queueMicrotask((()=>{l.current=null}))}),[i]),er((()=>{if(!r)return;if(l.current)return;const e=t?document.getElementById(t):null;if(!e)return;const n=document.createElement(\"div\");n.id=r,n.setAttribute(Ar,\"\"),e.appendChild(n),l.current=n,s(n)}),[t,r]),er((()=>{if(!r)return;if(l.current)return;let e=n||(null==o?void 0:o.portalNode);e&&!We(e)&&(e=e.current),e=e||document.body;let i=null;t&&(i=document.createElement(\"div\"),i.id=t,e.appendChild(i));const a=document.createElement(\"div\");a.id=r,a.setAttribute(Ar,\"\"),e=i||e,e.appendChild(a),l.current=a,s(a)}),[t,n,r,o]),i}({id:n,root:r}),[s,l]=a.useState(null),c=a.useRef(null),u=a.useRef(null),d=a.useRef(null),f=a.useRef(null),m=null==s?void 0:s.modal,h=null==s?void 0:s.open,p=!!s&&!s.modal&&s.open&&o&&!(!r&&!i);return a.useEffect((()=>{if(i&&o&&!m)return i.addEventListener(\"focusin\",e,!0),i.addEventListener(\"focusout\",e,!0),()=>{i.removeEventListener(\"focusin\",e,!0),i.removeEventListener(\"focusout\",e,!0)};function e(e){i&&Or(e)&&(\"focusin\"===e.type?Tr:Nr)(i)}}),[i,o,m]),a.useEffect((()=>{i&&(h||Tr(i))}),[h,i]),a.createElement(jr.Provider,{value:a.useMemo((()=>({preserveTabOrder:o,beforeOutsideRef:c,afterOutsideRef:u,beforeInsideRef:d,afterInsideRef:f,portalNode:i,setFocusManagerState:l})),[o,i])},p&&i&&a.createElement(Dr,{\"data-type\":\"outside\",ref:c,onFocus:e=>{if(Or(e,i)){var t;null==(t=d.current)||t.focus()}else{const e=Pr()||(null==s?void 0:s.refs.domReference.current);null==e||e.focus()}}}),p&&i&&a.createElement(\"span\",{\"aria-owns\":i.id,style:Mr}),i&&tn.createPortal(t,i),p&&i&&a.createElement(Dr,{\"data-type\":\"outside\",ref:u,onFocus:e=>{if(Or(e,i)){var t;null==(t=f.current)||t.focus()}else{const t=_r()||(null==s?void 0:s.refs.domReference.current);null==t||t.focus(),(null==s?void 0:s.closeOnFocusOut)&&(null==s||s.onOpenChange(!1,e.nativeEvent,\"focus-out\"))}}}))}const Lr=()=>a.useContext(jr),Fr=\"data-floating-ui-focusable\";function zr(e){return e?e.hasAttribute(Fr)?e:e.querySelector(\"[\"+Fr+\"]\")||e:null}const Br=20;let Wr=[];function Vr(e){Wr=Wr.filter((e=>e.isConnected));let t=e;if(t&&\"body\"!==Le(t)){if(!en(t,Er())){const e=Qt(t,Er())[0];e&&(t=e)}Wr.push(t),Wr.length>Br&&(Wr=Wr.slice(-Br))}}function Ur(){return Wr.slice().reverse().find((e=>e.isConnected))}const $r=a.forwardRef((function(e,t){return a.createElement(\"button\",tr({},e,{type:\"button\",ref:t,tabIndex:-1,style:Mr}))}));function Yr(e){const{context:t,children:n,disabled:r=!1,order:o=[\"content\"],guards:i=!0,initialFocus:s=0,returnFocus:l=!0,restoreFocus:c=!1,modal:u=!0,visuallyHiddenDismiss:d=!1,closeOnFocusOut:f=!0}=e,{open:m,refs:h,nodeId:p,onOpenChange:g,events:y,dataRef:v,floatingId:b,elements:{domReference:x,floating:w}}=t,S=\"number\"==typeof s&&s<0,k=vt(x)&&S,E=!xr()||i,C=fr(o),_=fr(s),P=fr(l),O=ur(),N=Lr(),T=a.useRef(null),M=a.useRef(null),R=a.useRef(!1),D=a.useRef(!1),j=a.useRef(-1),A=null!=N,I=zr(w),L=zn((function(e){return void 0===e&&(e=I),e?Qt(e,Er()):[]})),F=zn((e=>{const t=L(e);return C.current.map((e=>x&&\"reference\"===e?x:I&&\"floating\"===e?I:t)).filter(Boolean).flat()}));function z(e){return!r&&d&&u?a.createElement($r,{ref:\"start\"===e?T:M,onClick:e=>g(!1,e.nativeEvent)},\"string\"==typeof d?d:\"Dismiss\"):null}a.useEffect((()=>{R.current=!1}),[r]),a.useEffect((()=>{if(r)return;if(!u)return;function e(e){if(\"Tab\"===e.key){rt(I,nt(ft(I)))&&0===L().length&&!k&&yt(e);const t=F(),n=ht(e);\"reference\"===C.current[0]&&n===x&&(yt(e),e.shiftKey?Qn(t[t.length-1]):Qn(t[1])),\"floating\"===C.current[1]&&n===I&&e.shiftKey&&(yt(e),Qn(t[0]))}}const t=ft(I);return t.addEventListener(\"keydown\",e),()=>{t.removeEventListener(\"keydown\",e)}}),[r,x,I,u,C,k,L,F]),a.useEffect((()=>{if(!r&&w)return w.addEventListener(\"focusin\",e),()=>{w.removeEventListener(\"focusin\",e)};function e(e){const t=ht(e),n=L().indexOf(t);-1!==n&&(j.current=n)}}),[r,w,L]),a.useEffect((()=>{if(!r&&f)return w&&Ve(x)?(x.addEventListener(\"focusout\",t),x.addEventListener(\"pointerdown\",e),w.addEventListener(\"focusout\",t),()=>{x.removeEventListener(\"focusout\",t),x.removeEventListener(\"pointerdown\",e),w.removeEventListener(\"focusout\",t)}):void 0;function e(){D.current=!0,setTimeout((()=>{D.current=!1}))}function t(e){const t=e.relatedTarget;queueMicrotask((()=>{const n=!(rt(x,t)||rt(w,t)||rt(t,w)||rt(null==N?void 0:N.portalNode,t)||null!=t&&t.hasAttribute(dr(\"focus-guard\"))||O&&(pr(O.nodesRef.current,p).find((e=>{var n,r;return rt(null==(n=e.context)?void 0:n.elements.floating,t)||rt(null==(r=e.context)?void 0:r.elements.domReference,t)}))||function(e,t){var n;let r=[],o=null==(n=e.find((e=>e.id===t)))?void 0:n.parentId;for(;o;){const t=e.find((e=>e.id===o));o=null==t?void 0:t.parentId,t&&(r=r.concat(t))}return r}(O.nodesRef.current,p).find((e=>{var n,r;return(null==(n=e.context)?void 0:n.elements.floating)===t||(null==(r=e.context)?void 0:r.elements.domReference)===t}))));if(c&&n&&nt(ft(I))===ft(I).body){Ve(I)&&I.focus();const e=j.current,t=L(),n=t[e]||t[t.length-1]||I;Ve(n)&&n.focus()}!k&&u||!t||!n||D.current||t===Ur()||(R.current=!0,g(!1,e,\"focus-out\"))}))}}),[r,x,w,I,u,p,O,N,g,f,c,L,k]),a.useEffect((()=>{var e;if(r)return;const t=Array.from((null==N||null==(e=N.portalNode)?void 0:e.querySelectorAll(\"[\"+dr(\"portal\")+\"]\"))||[]);if(w){const e=[w,...t,T.current,M.current,C.current.includes(\"reference\")||k?x:null].filter((e=>null!=e)),n=u||k?kr(e,E,!E):kr(e);return()=>{n()}}}),[r,x,w,u,C,N,k,E]),er((()=>{if(r||!Ve(I))return;const e=nt(ft(I));queueMicrotask((()=>{const t=F(I),n=_.current,r=(\"number\"==typeof n?t[n]:n.current)||I,o=rt(I,e);S||o||!m||Qn(r,{preventScroll:r===I})}))}),[r,m,I,S,F,_]),er((()=>{if(r||!I)return;let e=!1;const t=ft(I),n=nt(t);let o=v.current.openEvent;const i=h.domReference.current;function s(t){let{open:n,reason:r,event:i,nested:s}=t;n&&(o=i),\"escape-key\"===r&&h.domReference.current&&Vr(h.domReference.current),\"hover\"===r&&\"mouseleave\"===i.type&&(R.current=!0),\"outside-press\"===r&&(s?(R.current=!1,e=!0):R.current=!(st(i)||at(i)))}return Vr(n),y.on(\"openchange\",s),()=>{y.off(\"openchange\",s);const r=nt(t),a=rt(w,r)||O&&pr(O.nodesRef.current,p).some((e=>{var t;return rt(null==(t=e.context)?void 0:t.elements.floating,r)}));(a||o&&[\"click\",\"mousedown\"].includes(o.type))&&h.domReference.current&&Vr(h.domReference.current);const l=i||n,c=Qt(ft(l).body,Er());queueMicrotask((()=>{let n=Ur();!n&&Ve(l)&&w&&(n=function(e,t,n){const r=e.indexOf(t);function o(t){const o=dr(\"focus-guard\");let i=r+(t?1:0),s=e[i];for(;s&&(!s.isConnected||s.hasAttribute(o)||rt(n,s));)t?i++:i--,s=e[i];return s}return o(!0)||o(!1)}(c,l,w)),P.current&&!R.current&&Ve(n)&&(n===r||r===t.body||a)&&n.focus({preventScroll:e})}))}}),[r,w,I,P,v,h,y,O,p]),er((()=>{if(!r&&N)return N.setFocusManagerState({modal:u,closeOnFocusOut:f,open:m,onOpenChange:g,refs:h}),()=>{N.setFocusManagerState(null)}}),[r,N,u,m,g,h,f]),er((()=>{if(r)return;if(!I)return;if(\"function\"!=typeof MutationObserver)return;if(S)return;const e=()=>{const e=I.getAttribute(\"tabindex\"),t=L(),n=nt(ft(w)),r=t.indexOf(n);-1!==r&&(j.current=r),C.current.includes(\"floating\")||n!==h.domReference.current&&0===t.length?\"0\"!==e&&I.setAttribute(\"tabindex\",\"0\"):\"-1\"!==e&&I.setAttribute(\"tabindex\",\"-1\")};e();const t=new MutationObserver(e);return t.observe(I,{childList:!0,subtree:!0,attributes:!0}),()=>{t.disconnect()}}),[r,w,I,h,C,L,S]);const B=!r&&E&&(!u||!k)&&(A||u);return a.createElement(a.Fragment,null,B&&a.createElement(Dr,{\"data-type\":\"inside\",ref:null==N?void 0:N.beforeInsideRef,onFocus:e=>{if(u){const e=F();Qn(\"reference\"===o[0]?e[0]:e[e.length-1])}else if(null!=N&&N.preserveTabOrder&&N.portalNode)if(R.current=!1,Or(e,N.portalNode)){const e=_r()||x;null==e||e.focus()}else{var t;null==(t=N.beforeOutsideRef.current)||t.focus()}}}),!k&&z(\"start\"),n,z(\"end\"),B&&a.createElement(Dr,{\"data-type\":\"inside\",ref:null==N?void 0:N.afterInsideRef,onFocus:e=>{if(u)Qn(F()[0]);else if(null!=N&&N.preserveTabOrder&&N.portalNode)if(f&&(R.current=!0),Or(e,N.portalNode)){const e=Pr()||x;null==e||e.focus()}else{var t;null==(t=N.afterOutsideRef.current)||t.focus()}}}))}function Hr(e){return Ve(e.target)&&\"BUTTON\"===e.target.tagName}function Kr(e){return gt(e)}function qr(e,t){void 0===t&&(t={});const{open:n,onOpenChange:r,dataRef:o,elements:{domReference:i}}=e,{enabled:s=!0,event:l=\"click\",toggle:c=!0,ignoreMouse:u=!1,keyboardHandlers:d=!0}=t,f=a.useRef(),m=a.useRef(!1),h=a.useMemo((()=>({onPointerDown(e){f.current=e.pointerType},onMouseDown(e){const t=f.current;0===e.button&&\"click\"!==l&&(dt(t,!0)&&u||(!n||!c||o.current.openEvent&&\"mousedown\"!==o.current.openEvent.type?(e.preventDefault(),r(!0,e.nativeEvent,\"click\")):r(!1,e.nativeEvent,\"click\")))},onClick(e){const t=f.current;\"mousedown\"===l&&f.current?f.current=void 0:dt(t,!0)&&u||(!n||!c||o.current.openEvent&&\"click\"!==o.current.openEvent.type?r(!0,e.nativeEvent,\"click\"):r(!1,e.nativeEvent,\"click\"))},onKeyDown(e){f.current=void 0,e.defaultPrevented||!d||Hr(e)||(\" \"!==e.key||Kr(i)||(e.preventDefault(),m.current=!0),\"Enter\"===e.key&&r(!n||!c,e.nativeEvent,\"click\"))},onKeyUp(e){e.defaultPrevented||!d||Hr(e)||Kr(i)||\" \"===e.key&&m.current&&(m.current=!1,r(!n||!c,e.nativeEvent,\"click\"))}})),[o,i,l,u,d,r,n,c]);return a.useMemo((()=>s?{reference:h}:{}),[s,h])}const Gr={pointerdown:\"onPointerDown\",mousedown:\"onMouseDown\",click:\"onClick\"},Xr={pointerdown:\"onPointerDownCapture\",mousedown:\"onMouseDownCapture\",click:\"onClickCapture\"},Zr=e=>{var t,n;return{escapeKey:\"boolean\"==typeof e?e:null!=(t=null==e?void 0:e.escapeKey)&&t,outsidePress:\"boolean\"==typeof e?e:null==(n=null==e?void 0:e.outsidePress)||n}};function Jr(e,t){void 0===t&&(t={});const{open:n,onOpenChange:r,elements:o,dataRef:i}=e,{enabled:s=!0,escapeKey:l=!0,outsidePress:c=!0,outsidePressEvent:u=\"pointerdown\",referencePress:d=!1,referencePressEvent:f=\"pointerdown\",ancestorScroll:m=!1,bubbles:h,capture:p}=t,g=ur(),y=zn(\"function\"==typeof c?c:()=>!1),v=\"function\"==typeof c?y:c,b=a.useRef(!1),x=a.useRef(!1),{escapeKey:w,outsidePress:S}=Zr(h),{escapeKey:k,outsidePress:E}=Zr(p),C=zn((e=>{var t;if(!n||!s||!l||\"Escape\"!==e.key)return;const o=null==(t=i.current.floatingContext)?void 0:t.nodeId,a=g?pr(g.nodesRef.current,o):[];if(!w&&(e.stopPropagation(),a.length>0)){let e=!0;if(a.forEach((t=>{var n;null==(n=t.context)||!n.open||t.context.dataRef.current.__escapeKeyBubbles||(e=!1)})),!e)return}r(!1,function(e){return\"nativeEvent\"in e}(e)?e.nativeEvent:e,\"escape-key\")})),_=zn((e=>{var t;const n=()=>{var t;C(e),null==(t=ht(e))||t.removeEventListener(\"keydown\",n)};null==(t=ht(e))||t.addEventListener(\"keydown\",n)})),P=zn((e=>{var t;const n=b.current;b.current=!1;const s=x.current;if(x.current=!1,\"click\"===u&&s)return;if(n)return;if(\"function\"==typeof v&&!v(e))return;const a=ht(e),l=\"[\"+dr(\"inert\")+\"]\",c=ft(o.floating).querySelectorAll(l);let d=We(a)?a:null;for(;d&&!Ge(d);){const e=Je(d);if(Ge(e)||!We(e))break;d=e}if(c.length&&We(a)&&!a.matches(\"html,body\")&&!rt(a,o.floating)&&Array.from(c).every((e=>!rt(d,e))))return;if(Ve(a)&&T){const t=a.clientWidth>0&&a.scrollWidth>a.clientWidth,n=a.clientHeight>0&&a.scrollHeight>a.clientHeight;let r=n&&e.offsetX>a.clientWidth;if(n&&\"rtl\"===Xe(a).direction&&(r=e.offsetX<=a.offsetWidth-a.clientWidth),r||t&&e.offsetY>a.clientHeight)return}const f=null==(t=i.current.floatingContext)?void 0:t.nodeId,m=g&&pr(g.nodesRef.current,f).some((t=>{var n;return mt(e,null==(n=t.context)?void 0:n.elements.floating)}));if(mt(e,o.floating)||mt(e,o.domReference)||m)return;const h=g?pr(g.nodesRef.current,f):[];if(h.length>0){let e=!0;if(h.forEach((t=>{var n;null==(n=t.context)||!n.open||t.context.dataRef.current.__outsidePressBubbles||(e=!1)})),!e)return}r(!1,e,\"outside-press\")})),O=zn((e=>{var t;const n=()=>{var t;P(e),null==(t=ht(e))||t.removeEventListener(u,n)};null==(t=ht(e))||t.addEventListener(u,n)}));a.useEffect((()=>{if(!n||!s)return;function e(e){r(!1,e,\"ancestor-scroll\")}i.current.__escapeKeyBubbles=w,i.current.__outsidePressBubbles=S;const t=ft(o.floating);l&&t.addEventListener(\"keydown\",k?_:C,k),v&&t.addEventListener(u,E?O:P,E);let a=[];return m&&(We(o.domReference)&&(a=et(o.domReference)),We(o.floating)&&(a=a.concat(et(o.floating))),!We(o.reference)&&o.reference&&o.reference.contextElement&&(a=a.concat(et(o.reference.contextElement)))),a=a.filter((e=>{var n;return e!==(null==(n=t.defaultView)?void 0:n.visualViewport)})),a.forEach((t=>{t.addEventListener(\"scroll\",e,{passive:!0})})),()=>{l&&t.removeEventListener(\"keydown\",k?_:C,k),v&&t.removeEventListener(u,E?O:P,E),a.forEach((t=>{t.removeEventListener(\"scroll\",e)}))}}),[i,o,l,v,u,n,r,m,s,w,S,C,k,_,P,E,O]),a.useEffect((()=>{b.current=!1}),[v,u]);const N=a.useMemo((()=>({onKeyDown:C,[Gr[f]]:e=>{d&&r(!1,e.nativeEvent,\"reference-press\")}})),[C,r,d,f]),T=a.useMemo((()=>({onKeyDown:C,onMouseDown(){x.current=!0},onMouseUp(){x.current=!0},[Xr[u]]:()=>{b.current=!0}})),[C,u]);return a.useMemo((()=>s?{reference:N,floating:T}:{}),[s,N,T])}function Qr(e){void 0===e&&(e={});const{nodeId:t}=e,n=function(e){const{open:t=!1,onOpenChange:n,elements:r}=e,o=ir(),i=a.useRef({}),[s]=a.useState((()=>function(){const e=new Map;return{emit(t,n){var r;null==(r=e.get(t))||r.forEach((e=>e(n)))},on(t,n){e.set(t,[...e.get(t)||[],n])},off(t,n){var r;e.set(t,(null==(r=e.get(t))?void 0:r.filter((e=>e!==n)))||[])}}}())),l=null!=cr(),[c,u]=a.useState(r.reference),d=zn(((e,t,r)=>{i.current.openEvent=e?t:void 0,s.emit(\"openchange\",{open:e,event:t,reason:r,nested:l}),null==n||n(e,t,r)})),f=a.useMemo((()=>({setPositionReference:u})),[]),m=a.useMemo((()=>({reference:c||r.reference||null,floating:r.floating||null,domReference:r.reference})),[c,r.reference,r.floating]);return a.useMemo((()=>({dataRef:i,open:t,onOpenChange:d,elements:m,events:s,floatingId:o,refs:f})),[t,d,m,s,o,f])}({...e,elements:{reference:null,floating:null,...e.elements}}),r=e.rootContext||n,o=r.elements,[i,s]=a.useState(null),[l,c]=a.useState(null),u=(null==o?void 0:o.reference)||i,d=a.useRef(null),f=ur();er((()=>{u&&(d.current=u)}),[u]);const m=function(e){void 0===e&&(e={});const{placement:t=\"bottom\",strategy:n=\"absolute\",middleware:r=[],platform:o,elements:{reference:i,floating:s}={},transform:l=!0,whileElementsMounted:c,open:u}=e,[d,f]=a.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[m,h]=a.useState(r);On(m,r)||h(r);const[p,g]=a.useState(null),[y,v]=a.useState(null),b=a.useCallback((e=>{e!==k.current&&(k.current=e,g(e))}),[]),x=a.useCallback((e=>{e!==E.current&&(E.current=e,v(e))}),[]),w=i||p,S=s||y,k=a.useRef(null),E=a.useRef(null),C=a.useRef(d),_=null!=c,P=Mn(c),O=Mn(o),N=a.useCallback((()=>{if(!k.current||!E.current)return;const e={placement:t,strategy:n,middleware:m};O.current&&(e.platform=O.current),Cn(k.current,E.current,e).then((e=>{const t={...e,isPositioned:!0};T.current&&!On(C.current,t)&&(C.current=t,tn.flushSync((()=>{f(t)})))}))}),[m,t,n,O]);Pn((()=>{!1===u&&C.current.isPositioned&&(C.current.isPositioned=!1,f((e=>({...e,isPositioned:!1}))))}),[u]);const T=a.useRef(!1);Pn((()=>(T.current=!0,()=>{T.current=!1})),[]),Pn((()=>{if(w&&(k.current=w),S&&(E.current=S),w&&S){if(P.current)return P.current(w,S,N);N()}}),[w,S,N,P,_]);const M=a.useMemo((()=>({reference:k,floating:E,setReference:b,setFloating:x})),[b,x]),R=a.useMemo((()=>({reference:w,floating:S})),[w,S]),D=a.useMemo((()=>{const e={position:n,left:0,top:0};if(!R.floating)return e;const t=Tn(R.floating,d.x),r=Tn(R.floating,d.y);return l?{...e,transform:\"translate(\"+t+\"px, \"+r+\"px)\",...Nn(R.floating)>=1.5&&{willChange:\"transform\"}}:{position:n,left:t,top:r}}),[n,l,R.floating,d.x,d.y]);return a.useMemo((()=>({...d,update:N,refs:M,elements:R,floatingStyles:D})),[d,N,M,R,D])}({...e,elements:{...o,...l&&{reference:l}}}),h=a.useCallback((e=>{const t=We(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),contextElement:e}:e;c(t),m.refs.setReference(t)}),[m.refs]),p=a.useCallback((e=>{(We(e)||null===e)&&(d.current=e,s(e)),(We(m.refs.reference.current)||null===m.refs.reference.current||null!==e&&!We(e))&&m.refs.setReference(e)}),[m.refs]),g=a.useMemo((()=>({...m.refs,setReference:p,setPositionReference:h,domReference:d})),[m.refs,p,h]),y=a.useMemo((()=>({...m.elements,domReference:u})),[m.elements,u]),v=a.useMemo((()=>({...m,...r,refs:g,elements:y,nodeId:t})),[m,g,y,t,r]);return er((()=>{r.dataRef.current.floatingContext=v;const e=null==f?void 0:f.nodesRef.current.find((e=>e.id===t));e&&(e.context=v)})),a.useMemo((()=>({...m,context:v,refs:g,elements:y})),[m,g,y,v])}const eo=\"active\",to=\"selected\";function no(e,t,n){const r=new Map,o=\"item\"===n;let i=e;if(o&&e){const{[eo]:t,[to]:__,...n}=e;i=n}return{...\"floating\"===n&&{tabIndex:-1,[Fr]:\"\"},...i,...t.map((t=>{const r=t?t[n]:null;return\"function\"==typeof r?e?r(e):null:r})).concat(e).reduce(((e,t)=>t?(Object.entries(t).forEach((t=>{let[n,i]=t;var s;o&&[eo,to].includes(n)||(0===n.indexOf(\"on\")?(r.has(n)||r.set(n,[]),\"function\"==typeof i&&(null==(s=r.get(n))||s.push(i),e[n]=function(){for(var e,t=arguments.length,o=new Array(t),i=0;i<t;i++)o[i]=arguments[i];return null==(e=r.get(n))?void 0:e.map((e=>e(...o))).find((e=>void 0!==e))})):e[n]=i)})),e):e),{})}}function ro(e){void 0===e&&(e=[]);const t=e.map((e=>null==e?void 0:e.reference)),n=e.map((e=>null==e?void 0:e.floating)),r=e.map((e=>null==e?void 0:e.item)),o=a.useCallback((t=>no(t,e,\"reference\")),t),i=a.useCallback((t=>no(t,e,\"floating\")),n),s=a.useCallback((t=>no(t,e,\"item\")),r);return a.useMemo((()=>({getReferenceProps:o,getFloatingProps:i,getItemProps:s})),[o,i,s])}let oo=!1;function io(e,t,n){switch(e){case\"vertical\":return t;case\"horizontal\":return n;default:return t||n}}function so(e,t){return io(t,e===Bn||e===Wn,e===Vn||e===Un)}function ao(e,t,n){return io(t,e===Wn,n?e===Vn:e===Un)||\"Enter\"===e||\" \"===e||\"\"===e}function lo(e,t,n){return io(t,n?e===Un:e===Vn,e===Bn)}function co(e,t){const{open:n,onOpenChange:r,elements:o}=e,{listRef:i,activeIndex:s,onNavigate:l=()=>{},enabled:c=!0,selectedIndex:u=null,allowEscape:d=!1,loop:f=!1,nested:m=!1,rtl:h=!1,virtual:p=!1,focusItemOnOpen:g=\"auto\",focusItemOnHover:y=!0,openOnArrowKeyDown:v=!0,disabledIndices:b,orientation:x=\"vertical\",cols:w=1,scrollItemIntoView:S=!0,virtualItemRef:k,itemSizes:E,dense:C=!1}=t,_=fr(zr(o.floating)),P=cr(),O=ur(),N=zn(l),T=a.useRef(g),M=a.useRef(null!=u?u:-1),R=a.useRef(null),D=a.useRef(!0),j=a.useRef(N),A=a.useRef(!!o.floating),I=a.useRef(n),L=a.useRef(!1),F=a.useRef(!1),z=fr(b),B=fr(n),W=fr(S),V=fr(u),[U,$]=a.useState(),[Y,H]=a.useState(),K=zn((function(e,t,n){function r(e){p?($(e.id),null==O||O.events.emit(\"virtualfocus\",e),k&&(k.current=e)):Qn(e,{preventScroll:!0,sync:!(!ut()||!lt())&&(oo||L.current)})}void 0===n&&(n=!1);const o=e.current[t.current];o&&r(o),requestAnimationFrame((()=>{const i=e.current[t.current]||o;if(!i)return;o||r(i);const s=W.current;s&&G&&(n||!D.current)&&(null==i.scrollIntoView||i.scrollIntoView(\"boolean\"==typeof s?{block:\"nearest\",inline:\"nearest\"}:s))}))}));er((()=>{document.createElement(\"div\").focus({get preventScroll(){return oo=!0,!1}})}),[]),er((()=>{c&&(n&&o.floating?T.current&&null!=u&&(F.current=!0,M.current=u,N(u)):A.current&&(M.current=-1,j.current(null)))}),[c,n,o.floating,u,N]),er((()=>{if(c&&n&&o.floating)if(null==s){if(L.current=!1,null!=V.current)return;if(A.current&&(M.current=-1,K(i,M)),(!I.current||!A.current)&&T.current&&(null!=R.current||!0===T.current&&null==R.current)){let e=0;const t=()=>{null==i.current[0]?(e<2&&(e?requestAnimationFrame:queueMicrotask)(t),e++):(M.current=null==R.current||ao(R.current,x,h)||m?Hn(i,z.current):Kn(i,z.current),R.current=null,N(M.current))};t()}}else Yn(i,s)||(M.current=s,K(i,M,F.current),F.current=!1)}),[c,n,o.floating,s,V,m,i,x,h,N,K,z]),er((()=>{var e;if(!c||o.floating||!O||p||!A.current)return;const t=O.nodesRef.current,n=null==(e=t.find((e=>e.id===P)))||null==(e=e.context)?void 0:e.elements.floating,r=nt(ft(o.floating)),i=t.some((e=>e.context&&rt(e.context.elements.floating,r)));n&&!i&&D.current&&n.focus({preventScroll:!0})}),[c,o.floating,O,P,p]),er((()=>{if(c&&O&&p&&!P)return O.events.on(\"virtualfocus\",e),()=>{O.events.off(\"virtualfocus\",e)};function e(e){H(e.id),k&&(k.current=e)}}),[c,O,p,P,k]),er((()=>{j.current=N,A.current=!!o.floating})),er((()=>{n||(R.current=null)}),[n]),er((()=>{I.current=n}),[n]);const q=null!=s,G=a.useMemo((()=>{function e(e){if(!n)return;const t=i.current.indexOf(e);-1!==t&&N(t)}return{onFocus(t){let{currentTarget:n}=t;e(n)},onClick:e=>{let{currentTarget:t}=e;return t.focus({preventScroll:!0})},...y&&{onMouseMove(t){let{currentTarget:n}=t;e(n)},onPointerLeave(e){let{pointerType:t}=e;D.current&&\"touch\"!==t&&(M.current=-1,K(i,M),N(null),p||Qn(_.current,{preventScroll:!0}))}}}}),[n,_,K,y,i,N,p]),X=zn((e=>{if(D.current=!1,L.current=!0,!B.current&&e.currentTarget===_.current)return;if(m&&lo(e.key,x,h))return yt(e),r(!1,e.nativeEvent,\"list-navigation\"),void(Ve(o.domReference)&&!p&&o.domReference.focus());const t=M.current,s=Hn(i,b),a=Kn(i,b);if(\"Home\"===e.key&&(yt(e),M.current=s,N(M.current)),\"End\"===e.key&&(yt(e),M.current=a,N(M.current)),w>1){const t=E||Array.from({length:i.current.length},(()=>({width:1,height:1}))),n=function(e,t,n){const r=[];let o=0;return e.forEach(((e,i)=>{let{width:s,height:a}=e,l=!1;for(n&&(o=0);!l;){const e=[];for(let n=0;n<s;n++)for(let r=0;r<a;r++)e.push(o+n+r*t);o%t+s<=t&&e.every((e=>null==r[e]))?(e.forEach((e=>{r[e]=i})),l=!0):o++}})),[...r]}(t,w,C),r=n.findIndex((e=>null!=e&&!Zn(i.current,e,b))),o=n.reduce(((e,t,n)=>null==t||Zn(i.current,t,b)?e:n),-1),l=n[function(e,t){let{event:n,orientation:r,loop:o,cols:i,disabledIndices:s,minIndex:a,maxIndex:l,prevIndex:c,stopEvent:u=!1}=t,d=c;if(n.key===Bn){if(u&&yt(n),-1===c)d=l;else if(d=qn(e,{startingIndex:d,amount:i,decrement:!0,disabledIndices:s}),o&&(c-i<a||d<0)){const e=c%i,t=l%i,n=l-(t-e);d=t===e?l:t>e?n:n-i}Yn(e,d)&&(d=c)}if(n.key===Wn&&(u&&yt(n),-1===c?d=a:(d=qn(e,{startingIndex:c,amount:i,disabledIndices:s}),o&&c+i>l&&(d=qn(e,{startingIndex:c%i-i,amount:i,disabledIndices:s}))),Yn(e,d)&&(d=c)),\"both\"===r){const t=St(c/i);n.key===Un&&(u&&yt(n),c%i!=i-1?(d=qn(e,{startingIndex:c,disabledIndices:s}),o&&$n(d,i,t)&&(d=qn(e,{startingIndex:c-c%i-1,disabledIndices:s}))):o&&(d=qn(e,{startingIndex:c-c%i-1,disabledIndices:s})),$n(d,i,t)&&(d=c)),n.key===Vn&&(u&&yt(n),c%i!=0?(d=qn(e,{startingIndex:c,decrement:!0,disabledIndices:s}),o&&$n(d,i,t)&&(d=qn(e,{startingIndex:c+(i-c%i),decrement:!0,disabledIndices:s}))):o&&(d=qn(e,{startingIndex:c+(i-c%i),decrement:!0,disabledIndices:s})),$n(d,i,t)&&(d=c));const r=St(l/i)===t;Yn(e,d)&&(d=o&&r?n.key===Vn?l:qn(e,{startingIndex:c-c%i-1,disabledIndices:s}):c)}return d}({current:n.map((e=>null!=e?i.current[e]:null))},{event:e,orientation:x,loop:f,cols:w,disabledIndices:Xn([...b||i.current.map(((e,t)=>Zn(i.current,t)?t:void 0)),void 0],n),minIndex:r,maxIndex:o,prevIndex:Gn(M.current>a?s:M.current,t,n,w,e.key===Wn?\"bl\":e.key===Un?\"tr\":\"tl\"),stopEvent:!0})];if(null!=l&&(M.current=l,N(M.current)),\"both\"===x)return}if(so(e.key,x)){if(yt(e),n&&!p&&nt(e.currentTarget.ownerDocument)===e.currentTarget)return M.current=ao(e.key,x,h)?s:a,void N(M.current);ao(e.key,x,h)?M.current=f?t>=a?d&&t!==i.current.length?-1:s:qn(i,{startingIndex:t,disabledIndices:b}):Math.min(a,qn(i,{startingIndex:t,disabledIndices:b})):M.current=f?t<=s?d&&-1!==t?i.current.length:a:qn(i,{startingIndex:t,decrement:!0,disabledIndices:b}):Math.max(s,qn(i,{startingIndex:t,decrement:!0,disabledIndices:b})),Yn(i,M.current)?N(null):N(M.current)}})),Z=a.useMemo((()=>p&&n&&q&&{\"aria-activedescendant\":Y||U}),[p,n,q,Y,U]),J=a.useMemo((()=>({\"aria-orientation\":\"both\"===x?void 0:x,...!vt(o.domReference)&&Z,onKeyDown:X,onPointerMove(){D.current=!0}})),[Z,X,o.domReference,x]),Q=a.useMemo((()=>{function e(e){\"auto\"===g&&st(e.nativeEvent)&&(T.current=!0)}return{...Z,onKeyDown(e){D.current=!1;const t=0===e.key.indexOf(\"Arrow\"),o=function(e,t,n){return io(t,n?e===Vn:e===Un,e===Wn)}(e.key,x,h),s=lo(e.key,x,h),a=so(e.key,x),l=(m?o:a)||\"Enter\"===e.key||\"\"===e.key.trim();if(p&&n){const n=null==O?void 0:O.nodesRef.current.find((e=>null==e.parentId)),r=O&&n?function(e,t){let n,r=-1;return function t(o,i){i>r&&(n=o,r=i),pr(e,o).forEach((e=>{t(e.id,i+1)}))}(t,0),e.find((e=>e.id===n))}(O.nodesRef.current,n.id):null;if(t&&r&&k){const t=new KeyboardEvent(\"keydown\",{key:e.key,bubbles:!0});if(o||s){var c,d;const n=(null==(c=r.context)?void 0:c.elements.domReference)===e.currentTarget,a=s&&!n?null==(d=r.context)?void 0:d.elements.domReference:o?i.current.find((e=>(null==e?void 0:e.id)===U)):null;a&&(yt(e),a.dispatchEvent(t),H(void 0))}var f;if(a&&r.context&&r.context.open&&r.parentId&&e.currentTarget!==r.context.elements.domReference)return yt(e),void(null==(f=r.context.elements.domReference)||f.dispatchEvent(t))}return X(e)}(n||v||!t)&&(l&&(R.current=m&&a?null:e.key),m?o&&(yt(e),n?(M.current=Hn(i,z.current),N(M.current)):r(!0,e.nativeEvent,\"list-navigation\")):a&&(null!=u&&(M.current=u),yt(e),!n&&v?r(!0,e.nativeEvent,\"list-navigation\"):X(e),n&&N(M.current)))},onFocus(){n&&!p&&N(null)},onPointerDown:function(e){T.current=g,\"auto\"===g&&at(e.nativeEvent)&&(T.current=!0)},onMouseDown:e,onClick:e}}),[U,Z,X,z,g,i,m,N,r,n,v,x,h,u,O,p,k]);return a.useMemo((()=>c?{reference:Q,floating:J,item:G}:{}),[c,Q,J,G])}const uo=new Map([[\"select\",\"listbox\"],[\"combobox\",\"listbox\"],[\"label\",!1]]);function fo(e,t){var n;void 0===t&&(t={});const{open:r,floatingId:o}=e,{enabled:i=!0,role:s=\"dialog\"}=t,l=null!=(n=uo.get(s))?n:s,c=ir(),u=null!=cr(),d=a.useMemo((()=>\"tooltip\"===l||\"label\"===s?{[\"aria-\"+(\"label\"===s?\"labelledby\":\"describedby\")]:r?o:void 0}:{\"aria-expanded\":r?\"true\":\"false\",\"aria-haspopup\":\"alertdialog\"===l?\"dialog\":l,\"aria-controls\":r?o:void 0,...\"listbox\"===l&&{role:\"combobox\"},...\"menu\"===l&&{id:c},...\"menu\"===l&&u&&{role:\"menuitem\"},...\"select\"===s&&{\"aria-autocomplete\":\"none\"},...\"combobox\"===s&&{\"aria-autocomplete\":\"list\"}}),[l,o,u,r,c,s]),f=a.useMemo((()=>{const e={id:o,...l&&{role:l}};return\"tooltip\"===l||\"label\"===s?e:{...e,...\"menu\"===l&&{\"aria-labelledby\":c}}}),[l,o,c,s]),m=a.useCallback((e=>{let{active:t,selected:n}=e;const r={role:\"option\",...t&&{id:o+\"-option\"}};switch(s){case\"select\":return{...r,\"aria-selected\":t&&n};case\"combobox\":return{...r,...t&&{\"aria-selected\":!0}}}return{}}),[o,s]);return a.useMemo((()=>i?{reference:d,floating:f,item:m}:{}),[i,d,f,m])}const mo=e=>e.replace(/[A-Z]+(?![a-z])|[A-Z]/g,((e,t)=>(t?\"-\":\"\")+e.toLowerCase()));function ho(e,t){return\"function\"==typeof e?e(t):e}function po(e,t){void 0===t&&(t={});const{initial:n={opacity:0},open:r,close:o,common:i,duration:s=250}=t,l=e.placement,c=l.split(\"-\")[0],u=a.useMemo((()=>({side:c,placement:l})),[c,l]),d=\"number\"==typeof s,f=(d?s:s.open)||0,m=(d?s:s.close)||0,[h,p]=a.useState((()=>({...ho(i,u),...ho(n,u)}))),{isMounted:g,status:y}=function(e,t){void 0===t&&(t={});const{open:n,elements:{floating:r}}=e,{duration:o=250}=t,i=(\"number\"==typeof o?o:o.close)||0,[s,l]=a.useState(\"unmounted\"),c=function(e,t){const[n,r]=a.useState(e);return e&&!n&&r(!0),a.useEffect((()=>{if(!e&&n){const e=setTimeout((()=>r(!1)),t);return()=>clearTimeout(e)}}),[e,n,t]),n}(n,i);return c||\"close\"!==s||l(\"unmounted\"),er((()=>{if(r){if(n){l(\"initial\");const e=requestAnimationFrame((()=>{l(\"open\")}));return()=>{cancelAnimationFrame(e)}}l(\"close\")}}),[n,r]),{isMounted:c,status:s}}(e,{duration:s}),v=fr(n),b=fr(r),x=fr(o),w=fr(i);return er((()=>{const e=ho(v.current,u),t=ho(x.current,u),n=ho(w.current,u),r=ho(b.current,u)||Object.keys(e).reduce(((e,t)=>(e[t]=\"\",e)),{});if(\"initial\"===y&&p((t=>({transitionProperty:t.transitionProperty,...n,...e}))),\"open\"===y&&p({transitionProperty:Object.keys(r).map(mo).join(\",\"),transitionDuration:f+\"ms\",...n,...r}),\"close\"===y){const r=t||e;p({transitionProperty:Object.keys(r).map(mo).join(\",\"),transitionDuration:m+\"ms\",...n,...r})}}),[m,x,v,b,w,f,y,u]),{isMounted:g,styles:h}}function go(e,t){const[n,r]=e;let o=!1;const i=t.length;for(let e=0,s=i-1;e<i;s=e++){const[i,a]=t[e]||[0,0],[l,c]=t[s]||[0,0];a>=r!=c>=r&&n<=(l-i)*(r-a)/(c-a)+i&&(o=!o)}return o}function yo(e){void 0===e&&(e={});const{buffer:t=.5,blockPointerEvents:n=!1,requireIntent:r=!0}=e;let o,i=!1,s=null,a=null,l=performance.now();const c=e=>{let{x:n,y:c,placement:u,elements:d,onClose:f,nodeId:m,tree:h}=e;return function(e){function p(){clearTimeout(o),f()}if(clearTimeout(o),!d.domReference||!d.floating||null==u||null==n||null==c)return;const{clientX:g,clientY:y}=e,v=[g,y],b=ht(e),x=\"mouseleave\"===e.type,w=rt(d.floating,b),S=rt(d.domReference,b),k=d.domReference.getBoundingClientRect(),E=d.floating.getBoundingClientRect(),C=u.split(\"-\")[0],_=n>E.right-E.width/2,P=c>E.bottom-E.height/2,O=function(e,t){return e[0]>=t.x&&e[0]<=t.x+t.width&&e[1]>=t.y&&e[1]<=t.y+t.height}(v,k),N=E.width>k.width,T=E.height>k.height,M=(N?k:E).left,R=(N?k:E).right,D=(T?k:E).top,j=(T?k:E).bottom;if(w&&(i=!0,!x))return;if(S&&(i=!1),S&&!x)return void(i=!0);if(x&&We(e.relatedTarget)&&rt(d.floating,e.relatedTarget))return;if(h&&pr(h.nodesRef.current,m).some((e=>{let{context:t}=e;return null==t?void 0:t.open})))return;if(\"top\"===C&&c>=k.bottom-1||\"bottom\"===C&&c<=k.top+1||\"left\"===C&&n>=k.right-1||\"right\"===C&&n<=k.left+1)return p();let A=[];switch(C){case\"top\":A=[[M,k.top+1],[M,E.bottom-1],[R,E.bottom-1],[R,k.top+1]];break;case\"bottom\":A=[[M,E.top+1],[M,k.bottom-1],[R,k.bottom-1],[R,E.top+1]];break;case\"left\":A=[[E.right-1,j],[E.right-1,D],[k.left+1,D],[k.left+1,j]];break;case\"right\":A=[[k.right-1,j],[k.right-1,D],[E.left+1,D],[E.left+1,j]]}if(!go([g,y],A)){if(i&&!O)return p();if(!x&&r){const t=function(e,t){const n=performance.now(),r=n-l;if(null===s||null===a||0===r)return s=e,a=t,l=n,null;const o=e-s,i=t-a,c=Math.sqrt(o*o+i*i);return s=e,a=t,l=n,c/r}(e.clientX,e.clientY);if(null!==t&&t<.1)return p()}go([g,y],function(e){let[n,r]=e;switch(C){case\"top\":return[[N?n+t/2:_?n+4*t:n-4*t,r+t+1],[N?n-t/2:_?n+4*t:n-4*t,r+t+1],[E.left,_||N?E.bottom-t:E.top],[E.right,_?N?E.bottom-t:E.top:E.bottom-t]];case\"bottom\":return[[N?n+t/2:_?n+4*t:n-4*t,r-t],[N?n-t/2:_?n+4*t:n-4*t,r-t],[E.left,_||N?E.top+t:E.bottom],[E.right,_?N?E.top+t:E.bottom:E.top+t]];case\"left\":{const e=[n+t+1,T?r+t/2:P?r+4*t:r-4*t],o=[n+t+1,T?r-t/2:P?r+4*t:r-4*t];return[[P||T?E.right-t:E.left,E.top],[P?T?E.right-t:E.left:E.right-t,E.bottom],e,o]}case\"right\":return[[n-t,T?r+t/2:P?r+4*t:r-4*t],[n-t,T?r-t/2:P?r+4*t:r-4*t],[P||T?E.left+t:E.right,E.top],[P?T?E.left+t:E.right:E.left+t,E.bottom]]}}([n,c]))?!i&&r&&(o=window.setTimeout(p,40)):p()}}};return c.__options={blockPointerEvents:n},c}const vo=ke(\"TriangleAlert\",[[\"path\",{d:\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\",key:\"wmoenq\"}],[\"path\",{d:\"M12 9v4\",key:\"juzpu7\"}],[\"path\",{d:\"M12 17h.01\",key:\"p32p05\"}]]),bo=ke(\"Trash2\",[[\"path\",{d:\"M3 6h18\",key:\"d0wm0j\"}],[\"path\",{d:\"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\",key:\"4alrt4\"}],[\"path\",{d:\"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\",key:\"v07s0e\"}],[\"line\",{x1:\"10\",x2:\"10\",y1:\"11\",y2:\"17\",key:\"1uufr5\"}],[\"line\",{x1:\"14\",x2:\"14\",y1:\"11\",y2:\"17\",key:\"xtxkd\"}]]);var xo=\"light\",wo=\"neutral\",So=function(e){var t=e.icon,n=void 0===t?null:t,r=e.theme,o=void 0===r?xo:r,i=e.variant,s=void 0===i?wo:i,l=\"[&>svg]:h-5 [&>svg]:w-5\",c=function(e){var t=e.theme,n=void 0===t?xo:t,r=e.variant;return{info:\"light\"===n?\"text-support-info\":\"text-support-info-inverse\",success:\"light\"===n?\"text-support-success\":\"text-support-success-inverse\",warning:\"light\"===n?\"text-support-warning\":\"text-support-warning-inverse\",error:\"light\"===n?\"text-support-error\":\"text-support-error-inverse\"}[void 0===r?wo:r]||(\"light\"===n?\"text-icon-secondary\":\"text-icon-inverse\")}({theme:o,variant:s});if(n&&(0,a.isValidElement)(n))return(0,a.cloneElement)(n,{className:oe(l,c,n.props.className)});var u={neutral:React.createElement(Re,{className:oe(l,c)}),info:React.createElement(Re,{className:oe(l,c)}),success:React.createElement(Ce,{className:oe(l,c)}),warning:React.createElement(vo,{className:oe(l,c)}),error:React.createElement(bo,{className:oe(l,c)})};return u[s]||u.neutral},ko=function(e){var t=e.actionType,n=void 0===t?\"button\":t,r=e.onAction,o=void 0===r?function(){}:r,i=e.actionLabel,s=void 0===i?\"\":i,a=e.theme,l=void 0===a?xo:a,c=\"focus:ring-0 focus:ring-offset-0 ring-offset-0 focus:outline-none\",u=\"text-button-primary border-button-primary hover:border-button-primary hover:text-button-primary-hover\";switch(\"dark\"===l&&(u=\"text-text-inverse border-text-inverse hover:border-text-inverse hover:text-text-inverse\"),n){case\"button\":return React.createElement(de,{variant:\"outline\",size:\"xs\",onClick:o,className:oe(\"rounded\",c,u,\"dark\"===l?\"bg-transparent hover:bg-transparent\":\"bg-white hover:bg-white\")},s);case\"link\":return React.createElement(de,{variant:\"link\",size:\"xs\",onClick:o,className:oe(c,u)},s);default:return null}},Eo=function(e){var t=e.theme,n=void 0===t?xo:t,r=e.title,o=void 0===r?\"\":r;return!o&&isNaN(o)?null:React.createElement(\"span\",{className:oe(\"block\",{light:\"text-text-primary\",dark:\"text-text-inverse\"}[n],\"text-sm leading-5 font-semibold\")},o)},Co=function(e){var t=e.theme,n=void 0===t?xo:t,r=e.content,o=void 0===r?\"\":r;return!o&&isNaN(o)?null:React.createElement(\"span\",{className:oe({light:\"text-text-primary\",dark:\"text-text-inverse\"}[n],\"block text-sm [&_*]:text-sm leading-5 [&_*]:leading-5 font-normal\")},o)},_o=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){t.forEach((function(t){\"function\"==typeof t?t(e):t&&(t.current=e)}))}};function Po(e){return Po=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},Po(e)}function Oo(){return Oo=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Oo.apply(null,arguments)}function No(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function To(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?No(Object(n),!0).forEach((function(t){Mo(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):No(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Mo(e,t,n){return(t=function(e){var t=function(e){if(\"object\"!=Po(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,\"string\");if(\"object\"!=Po(n))return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"==Po(t)?t:t+\"\"}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ro(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var Do=function(e){var t,n,r,o,i=e.variant,s=void 0===i?\"dark\":i,c=e.placement,u=void 0===c?\"bottom\":c,d=e.title,f=void 0===d?\"\":d,m=e.content,h=e.arrow,p=void 0!==h&&h,g=e.open,y=e.setOpen,v=e.children,b=e.className,x=e.tooltipPortalRoot,w=void 0===x?null:x,S=e.tooltipPortalId,k=void 0===S?\"\":S,E=e.boundary,C=void 0===E?\"clippingAncestors\":E,_=e.strategy,P=void 0===_?\"fixed\":_,O=e.offset,N=void 0===O?8:O,T=e.triggers,M=void 0===T?[\"hover\",\"focus\"]:T,R=e.interactive,D=void 0!==R&&R,j=(0,a.useMemo)((function(){return\"boolean\"==typeof g&&\"function\"==typeof y}),[g,y]),A=(r=(0,a.useState)(!1),o=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(r,o)||function(e,t){if(e){if(\"string\"==typeof e)return Ro(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ro(e,t):void 0}}(r,o)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),I=A[0],L=A[1],F=(0,a.useRef)(null),z=Qr({open:j?g:I,onOpenChange:j?y:L,placement:u,strategy:P,middleware:[Dn(N),An({boundary:C}),jn({boundary:C}),(n={element:F},{...Rn(n),options:[n,undefined]})],whileElementsMounted:bn}),B=z.refs,W=z.floatingStyles,V=z.context,U=qr(V,{enabled:!j&&M.includes(\"click\")}),$=function(e,t){void 0===t&&(t={});const{open:n,onOpenChange:r,dataRef:o,events:i,elements:s}=e,{enabled:l=!0,delay:c=0,handleClose:u=null,mouseOnly:d=!1,restMs:f=0,move:m=!0}=t,h=ur(),p=cr(),g=fr(u),y=fr(c),v=fr(n),b=a.useRef(),x=a.useRef(-1),w=a.useRef(),S=a.useRef(-1),k=a.useRef(!0),E=a.useRef(!1),C=a.useRef((()=>{})),_=a.useCallback((()=>{var e;const t=null==(e=o.current.openEvent)?void 0:e.type;return(null==t?void 0:t.includes(\"mouse\"))&&\"mousedown\"!==t}),[o]);a.useEffect((()=>{if(l)return i.on(\"openchange\",e),()=>{i.off(\"openchange\",e)};function e(e){let{open:t}=e;t||(clearTimeout(x.current),clearTimeout(S.current),k.current=!0)}}),[l,i]),a.useEffect((()=>{if(!l)return;if(!g.current)return;if(!n)return;function e(e){_()&&r(!1,e,\"hover\")}const t=ft(s.floating).documentElement;return t.addEventListener(\"mouseleave\",e),()=>{t.removeEventListener(\"mouseleave\",e)}}),[s.floating,n,r,l,g,_]);const P=a.useCallback((function(e,t,n){void 0===t&&(t=!0),void 0===n&&(n=\"hover\");const o=hr(y.current,\"close\",b.current);o&&!w.current?(clearTimeout(x.current),x.current=window.setTimeout((()=>r(!1,e,n)),o)):t&&(clearTimeout(x.current),r(!1,e,n))}),[y,r]),O=zn((()=>{C.current(),w.current=void 0})),N=zn((()=>{if(E.current){const e=ft(s.floating).body;e.style.pointerEvents=\"\",e.removeAttribute(mr),E.current=!1}}));a.useEffect((()=>{if(l&&We(s.domReference)){var e;const t=s.domReference;return n&&t.addEventListener(\"mouseleave\",c),null==(e=s.floating)||e.addEventListener(\"mouseleave\",c),m&&t.addEventListener(\"mousemove\",i,{once:!0}),t.addEventListener(\"mouseenter\",i),t.addEventListener(\"mouseleave\",a),()=>{var e;n&&t.removeEventListener(\"mouseleave\",c),null==(e=s.floating)||e.removeEventListener(\"mouseleave\",c),m&&t.removeEventListener(\"mousemove\",i),t.removeEventListener(\"mouseenter\",i),t.removeEventListener(\"mouseleave\",a)}}function t(){return!!o.current.openEvent&&[\"click\",\"mousedown\"].includes(o.current.openEvent.type)}function i(e){if(clearTimeout(x.current),k.current=!1,d&&!dt(b.current)||f>0&&!hr(y.current,\"open\"))return;const t=hr(y.current,\"open\",b.current);t?x.current=window.setTimeout((()=>{v.current||r(!0,e,\"hover\")}),t):r(!0,e,\"hover\")}function a(e){if(t())return;C.current();const r=ft(s.floating);if(clearTimeout(S.current),g.current&&o.current.floatingContext){n||clearTimeout(x.current),w.current=g.current({...o.current.floatingContext,tree:h,x:e.clientX,y:e.clientY,onClose(){N(),O(),P(e,!0,\"safe-polygon\")}});const t=w.current;return r.addEventListener(\"mousemove\",t),void(C.current=()=>{r.removeEventListener(\"mousemove\",t)})}(\"touch\"!==b.current||!rt(s.floating,e.relatedTarget))&&P(e)}function c(e){t()||o.current.floatingContext&&(null==g.current||g.current({...o.current.floatingContext,tree:h,x:e.clientX,y:e.clientY,onClose(){N(),O(),P(e)}})(e))}}),[s,l,e,d,f,m,P,O,N,r,n,v,h,y,g,o]),er((()=>{var e;if(l&&n&&null!=(e=g.current)&&e.__options.blockPointerEvents&&_()){E.current=!0;const e=s.floating;if(We(s.domReference)&&e){var t;const n=ft(s.floating).body;n.setAttribute(mr,\"\");const r=s.domReference,o=null==h||null==(t=h.nodesRef.current.find((e=>e.id===p)))||null==(t=t.context)?void 0:t.elements.floating;return o&&(o.style.pointerEvents=\"\"),n.style.pointerEvents=\"none\",r.style.pointerEvents=\"auto\",e.style.pointerEvents=\"auto\",()=>{n.style.pointerEvents=\"\",r.style.pointerEvents=\"\",e.style.pointerEvents=\"\"}}}}),[l,n,p,s,h,g,_]),er((()=>{n||(b.current=void 0,O(),N())}),[n,O,N]),a.useEffect((()=>()=>{O(),clearTimeout(x.current),clearTimeout(S.current),N()}),[l,s.domReference,O,N]);const T=a.useMemo((()=>{function e(e){b.current=e.pointerType}return{onPointerDown:e,onPointerEnter:e,onMouseMove(e){const{nativeEvent:t}=e;function o(){k.current||v.current||r(!0,t,\"hover\")}d&&!dt(b.current)||n||0===f||(clearTimeout(S.current),\"touch\"===b.current?o():S.current=window.setTimeout(o,f))}}}),[d,r,n,v,f]),M=a.useMemo((()=>({onMouseEnter(){clearTimeout(x.current)},onMouseLeave(e){P(e.nativeEvent,!1)}})),[P]);return a.useMemo((()=>l?{reference:T,floating:M}:{}),[l,T,M])}(V,To({move:!1,enabled:!j&&M.includes(\"hover\")},D&&{handleClose:yo()})),Y=function(e,t){void 0===t&&(t={});const{open:n,onOpenChange:r,events:o,dataRef:i,elements:s}=e,{enabled:l=!0,visibleOnly:c=!0}=t,u=a.useRef(!1),d=a.useRef(),f=a.useRef(!0);a.useEffect((()=>{if(!l)return;const e=Fe(s.domReference);function t(){!n&&Ve(s.domReference)&&s.domReference===nt(ft(s.domReference))&&(u.current=!0)}function r(){f.current=!0}return e.addEventListener(\"blur\",t),e.addEventListener(\"keydown\",r,!0),()=>{e.removeEventListener(\"blur\",t),e.removeEventListener(\"keydown\",r,!0)}}),[s.domReference,n,l]),a.useEffect((()=>{if(l)return o.on(\"openchange\",e),()=>{o.off(\"openchange\",e)};function e(e){let{reason:t}=e;\"reference-press\"!==t&&\"escape-key\"!==t||(u.current=!0)}}),[o,l]),a.useEffect((()=>()=>{clearTimeout(d.current)}),[]);const m=a.useMemo((()=>({onPointerDown(e){at(e.nativeEvent)||(f.current=!1)},onMouseLeave(){u.current=!1},onFocus(e){if(u.current)return;const t=ht(e.nativeEvent);if(c&&We(t))try{if(lt()&&ut())throw Error();if(!t.matches(\":focus-visible\"))return}catch(e){if(!f.current&&!gt(t))return}r(!0,e.nativeEvent,\"focus\")},onBlur(e){u.current=!1;const t=e.relatedTarget,n=e.nativeEvent,o=We(t)&&t.hasAttribute(dr(\"focus-guard\"))&&\"outside\"===t.getAttribute(\"data-type\");d.current=window.setTimeout((()=>{var e;const a=nt(s.domReference?s.domReference.ownerDocument:document);(t||a!==s.domReference)&&(rt(null==(e=i.current.floatingContext)?void 0:e.refs.floating.current,a)||rt(s.domReference,a)||o||r(!1,n,\"focus\"))}))}})),[i,s.domReference,r,c]);return a.useMemo((()=>l?{reference:m}:{}),[l,m])}(V,{enabled:!j&&M.includes(\"focus\")}),H=ro([U,$,Y,Jr(V),fo(V,{role:\"tooltip\"})]),K=H.getReferenceProps,q=H.getFloatingProps,G=po(V,{duration:150,initial:{opacity:0},open:{opacity:1},close:{opacity:0}}),X=G.isMounted,Z=G.styles,J=null===(t={light:\"bg-tooltip-background-light text-text-primary\",dark:\"bg-tooltip-background-dark text-text-on-color\"})||void 0===t?void 0:t[s],Q=\"dark\"===s?\"text-tooltip-background-dark\":\"text-tooltip-background-light\";return l().createElement(l().Fragment,null,(0,a.isValidElement)(v)&&(0,a.cloneElement)(v,To(To({},v.props),{},{ref:_o(v.ref,B.setReference),className:oe(v.props.className)},K())),l().createElement(Ir,{id:k,root:w},X&&l().createElement(\"div\",Oo({className:oe(\"absolute z-20 py-2 px-3 rounded-md text-xs leading-4 shadow-soft-shadow-lg\",J,\"max-w-80 w-fit\",b),ref:B.setFloating,style:To(To({},W),Z)},q()),l().createElement(\"div\",null,!!f&&l().createElement(\"span\",{className:\"font-semibold\"},f),!!m&&l().createElement(\"div\",{className:\"font-normal\"},m)),p&&l().createElement(sr,{ref:F,context:V,placement:u,className:oe(\"fill-current\",Q)}))))},jo=[\"id\",\"label\",\"value\",\"children\",\"disabled\",\"icon\",\"inlineIcon\",\"hideSelection\",\"reversePosition\",\"borderOn\",\"borderOnActive\",\"badgeItem\",\"useSwitch\",\"info\",\"minWidth\"],Ao=[\"id\",\"children\",\"value\",\"disabled\",\"size\"];function Io(){return Io=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Io.apply(null,arguments)}function Lo(e){return Lo=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},Lo(e)}function Fo(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function zo(e,t){if(e){if(\"string\"==typeof e)return Bo(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Bo(e,t):void 0}}function Bo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var Wo=(0,a.createContext)(),Vo=function(){return(0,a.useContext)(Wo)},Uo=function(e){var t,n=e.children,r=e.name,o=e.style,i=void 0===o?\"simple\":o,s=e.size,c=void 0===s?\"md\":s,u=e.value,d=e.defaultValue,f=e.by,m=void 0===f?\"id\":f,h=e.as,p=void 0===h?\"div\":h,g=e.onChange,y=e.className,v=e.disableGroup,b=void 0!==v&&v,x=e.vertical,w=void 0!==x&&x,S=e.columns,k=void 0===S?4:S,E=e.multiSelection,C=void 0!==E&&E,_=e.gapClassname,P=void 0===_?\"gap-2\":_,O=(0,a.useMemo)((function(){return void 0!==u}),[u]),N=(0,a.useMemo)((function(){return r||\"radio-button-group-\".concat(fe())}),[r]);t=O?u:C?null!=d?d:[]:d;var T,M,R=(T=(0,a.useState)(t),M=2,function(e){if(Array.isArray(e))return e}(T)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(T,M)||zo(T,M)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),D=R[0],j=R[1],A=(0,a.useCallback)((function(e){if(C)j((function(t){var n=t.includes(e)?t.filter((function(t){return t!==e})):[].concat(function(e){return function(e){if(Array.isArray(e))return Bo(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||zo(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}(t),[e]);return\"function\"==typeof g&&g(n),n}));else{if(O||j(e),\"function\"!=typeof g)return;g(e)}}),[g]);y=oe(\"grid grid-cols-4\",ae[k],P,\"tile\"===i&&\"gap-0\",w&&\"grid-cols-1\",y);var I=oe(\"tile\"===i?\"border border-border-subtle border-solid rounded-md shadow-sm\":\"gap-6\",y),L=function(){return l().createElement(Wo.Provider,{value:{name:N,value:O?u:D,by:m,onChange:A,isControlled:O,disableAll:b,style:i,columns:k,multiSelection:C,size:c}},l().Children.map(n,(function(e){return(0,a.isValidElement)(e)?e:null})))};return l().createElement(l().Fragment,null,\"tile\"===i?l().createElement(\"div\",{className:I},L()):l().createElement(p,p===a.Fragment?{}:{className:y},L()))};Uo.displayName=\"RadioButton.Group\";var $o=function(e,t){var n,r,o=e.id,i=e.label,s=e.value,c=e.children,u=e.disabled,d=e.icon,f=void 0===d?null:d,m=e.inlineIcon,h=void 0!==m&&m,p=e.hideSelection,g=void 0!==p&&p,y=e.reversePosition,v=void 0!==y&&y,b=e.borderOn,x=void 0!==b&&b,w=e.borderOnActive,S=void 0===w||w,k=e.badgeItem,E=void 0===k?null:k,C=e.useSwitch,_=void 0!==C&&C,P=e.info,O=void 0===P?null:P,N=e.minWidth,T=void 0===N||N,M=Fo(e,jo),R=M.buttonWrapperClasses,D=Vo(),j=D.name,A=D.value,I=D.by,L=D.onChange,F=D.disableAll,z=D.checked,B=D.multiSelection,W=D.size,V=\"primary\",U=(0,a.useMemo)((function(){return o||\"radio-button-\".concat(fe())}),[o]),$=(0,a.useMemo)((function(){return F||u}),[F,u]),Y=(0,a.useMemo)((function(){return B?Array.isArray(A)&&A.includes(s):void 0!==z?z:Lo(A)===Lo(s)&&(\"string\"==typeof A?A===s:Array.isArray(A)?A.includes(s):A[I]===s[I])}),[A,s,z]),H=(0,a.useCallback)((function(){return(0,a.isValidElement)(i)?i:i.heading?l().createElement(\"div\",{className:oe(!h&&\"space-y-1.5 mt-[2px]\",v&&(_?\"ml-10\":\"ml-4\"),h&&\"flex gap-2\",h&&!i.description&&\"items-center\")},f&&l().createElement(l().Fragment,null,f),l().createElement(\"div\",{className:oe(\"space-y-1.5\")},l().createElement(\"p\",{className:oe(\"text-text-primary font-medium m-0\",je[W],u&&\"text-text-disabled cursor-not-allowed\")},i.heading),i.description&&l().createElement(\"p\",{className:\"text-text-tertiary text-sm font-normal leading-5 m-0\"},i.description))):null}),[i]);if(\"tile\"===D.style)return l().createElement(Ho,{id:o,label:i,value:s,disabled:u,size:W},c);var K=function(){$||(B?_&&L(s,!Y):L(s))};return l().createElement(\"label\",{className:oe(\"inline-flex items-center relative cursor-pointer transition-all duration-300\",!!i&&\"items-start justify-between\",T&&\"min-w-[180px]\",x&&\"border border-border-subtle border-solid rounded-md shadow-sm hover:ring-2 hover:ring-border-interactive\",S&&x&&Y&&\"ring-2 ring-border-interactive\",\"sm\"===W?\"px-3 py-3\":\"px-4 py-4\",\"pr-12\",$&&\"cursor-not-allowed opacity-40\",R),htmlFor:U,onClick:K},!!i&&l().createElement(\"label\",{className:oe(\"cursor-pointer\",$&&\"cursor-not-allowed\"),htmlFor:U},H()),!!O&&l().createElement(\"div\",{className:\"absolute mr-0.5 bottom-1.5 right-3\"},l().createElement(Do,{arrow:!0,triggers:[\"hover\",\"focus\"],placement:\"top\",title:null==O?void 0:O.heading,content:null==O?void 0:O.description},l().createElement(Re,{className:oe(\"text-text-primary\",null===(n=Ae[W])||void 0===n?void 0:n.info)}))),l().createElement(\"label\",{className:oe(\"absolute mr-0.5 right-3 flex items-center cursor-pointer rounded-full gap-2\",v&&\"left-0\",$&&\"cursor-not-allowed\",h&&\"mr-3\"),onClick:K},!!E&&E,!g&&(_?l().createElement(be,{defaultValue:!1,size:\"md\"===W?\"lg\":\"sm\",onChange:function(){B?L(s,!Y):L(s)},checked:Y}):l().createElement(\"span\",{className:\"relative p-0.5\"},l().createElement(\"input\",Io({ref:t,id:U,type:B?\"checkbox\":\"radio\",className:oe(\"peer flex relative cursor-pointer appearance-none transition-all m-0 before:content-[''] checked:before:content-[''] checked:before:hidden before:hidden !border-1.5 border-solid\",!B&&\"rounded-full\",De[V].checkbox,Ae[W].checkbox,$&&\"disabled:bg-white checked:disabled:bg-white disabled:border-border-disabled checked:disabled:border-border-disabled cursor-not-allowed\"),name:j,value:s,onChange:function(e){return L(e.target.value)},checked:Y,disabled:$},M)),l().createElement(\"span\",{className:oe(\"inline-flex items-center absolute top-2/4 left-2/4 -translate-y-2/4 -translate-x-2/4 text-white opacity-0 transition-opacity peer-checked:opacity-100\",De[V].icon,$&&\"peer-disabled:text-border-disabled cursor-not-allowed\")},B?l().createElement(Ce,{className:\"sm\"===W?\"size-3\":\"size-4\"}):l().createElement(\"div\",{className:oe(\"rounded-full bg-current\",\"sm\"===W&&\"mt-[0.5px]\",null===(r=Ae[W])||void 0===r?void 0:r.icon)}))))))},Yo=(0,a.forwardRef)($o);Yo.displayName=\"RadioButton.Button\";var Ho=function(e){var t=e.id,n=e.children,r=e.value,o=e.disabled,i=e.size,s=void 0===i?\"md\":i,c=Fo(e,Ao),u=Vo()||{},d=u.name,f=u.value,m=u.by,h=u.onChange,p=u.disableAll,g=u.checked,y=(0,a.useMemo)((function(){return t||\"radio-button-\".concat(fe())}),[t]),v=(0,a.useMemo)((function(){return p||o}),[p,o]),b=(0,a.useMemo)((function(){return void 0!==g?g:Lo(f)===Lo(r)&&(\"string\"==typeof f?f===r:Array.isArray(f)?f.includes(r):f[m]===r[m])}),[f,r,g,m]),x=oe(\"bg-background-primary text-primary cursor-pointer flex items-center justify-center\",\"hover:bg-button-tertiary-hover\",\"focus:outline-none\",v?\"text-text-disabled cursor-not-allowed\":\"\",Ie[s],\"border-0 border-r border-border-subtle border-solid\");return l().createElement(l().Fragment,null,l().createElement(\"button\",Io({type:\"button\",id:y,className:oe(x,\"first:rounded-tl first:rounded-bl first:border-0 first:border-r first:border-border-subtle last:rounded-tr last:rounded-br last:border-0\",b&&\"bg-button-disabled\"),onClick:function(){h&&h(r)},disabled:v},c),l().createElement(\"input\",{type:\"hidden\",value:r,name:d,checked:b,onChange:h}),n))},Ko=Object.assign(Yo,{Group:Uo,Button:Yo});const qo=ke(\"X\",[[\"path\",{d:\"M18 6 6 18\",key:\"1bl5f8\"}],[\"path\",{d:\"m6 6 12 12\",key:\"d8bk6v\"}]]);var Go=function(e,t){var n=e.label,r=void 0===n?\"\":n,o=e.size,i=void 0===o?\"sm\":o,s=e.className,a=void 0===s?\"\":s,l=e.type,c=void 0===l?\"pill\":l,u=e.variant,d=void 0===u?\"neutral\":u,f=e.icon,m=void 0===f?null:f,h=e.disabled,p=void 0!==h&&h,g=e.onClose,y=void 0===g?function(){}:g,v=e.closable,b=void 0!==v&&v,x=e.onMouseDown,w=void 0===x?function(){}:x,S={neutral:\"bg-badge-background-gray hover:bg-badge-hover-gray text-badge-color-gray border-badge-border-gray\",red:\"bg-badge-background-red hover:bg-badge-hover-red text-badge-color-red border-badge-border-red\",yellow:\"bg-badge-background-yellow hover:bg-badge-hover-yellow text-badge-color-yellow border-badge-border-yellow\",green:\"bg-badge-background-green hover:bg-badge-hover-green text-badge-color-green border-badge-border-green\",blue:\"bg-badge-background-sky hover:bg-badge-hover-sky text-badge-color-sky border-badge-border-sky\",inverse:\"bg-background-inverse hover:bg-badge-hover-inverse text-text-inverse border-background-inverse\",disabled:\"bg-badge-background-disabled hover:bg-badge-hover-disabled text-badge-color-disabled border-badge-border-disabled disabled cursor-not-allowed\"},k=\"\",E=\"group relative justify-center flex items-center cursor-pointer\",C={xxs:\"[&>svg]:size-3\",xs:\"[&>svg]:size-3\",sm:\"[&>svg]:size-3\",md:\"[&>svg]:size-4\",lg:\"[&>svg]:size-5\"};return p?(k=S.disabled,E+=\" cursor-not-allowed disabled\"):k=S[d],r?React.createElement(\"span\",{className:oe(\"font-medium border-badge-border-gray flex items-center justify-center border border-solid box-border\",{xxs:\"py-0.5 px-0.5 text-xs h-4\",xs:\"py-0.5 px-1 text-xs h-5\",sm:\"py-1 px-1.5 text-xs h-6\",md:\"py-1 px-1.5 text-sm h-7\",lg:\"py-1 px-1.5 text-base h-8\"}[i],{pill:\"rounded-full\",rounded:\"rounded\"}[c],\"gap-0.5\",k,a),ref:t},m?React.createElement(\"span\",{className:oe(\"justify-center flex items-center\",C[i])},m):null,React.createElement(\"span\",{className:\"px-1\"},r),b&&React.createElement(\"span\",{className:oe(E,C[i]),onClick:p?null:y,onMouseDown:w,role:\"button\",tabIndex:0},React.createElement(\"span\",{className:\"sr-only\"},\"Remove \".concat(r)),React.createElement(qo,null),React.createElement(\"span\",{className:\"absolute -inset-1\"}))):null},Xo=(0,a.forwardRef)(Go);Xo.displayName=\"Badge\";var Zo=Xo,Jo=[\"id\",\"defaultValue\",\"value\",\"size\",\"className\",\"disabled\",\"onChange\",\"error\",\"onError\"];function Qo(){return Qo=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Qo.apply(null,arguments)}function ei(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var ti=function(e,t){var n,r,o=e.id,i=e.defaultValue,s=void 0===i?\"\":i,l=e.value,c=e.size,u=void 0===c?\"sm\":c,d=e.className,f=void 0===d?\"\":d,m=e.disabled,h=void 0!==m&&m,p=e.onChange,g=void 0===p?function(){}:p,y=e.error,v=void 0!==y&&y,b=e.onError,x=void 0===b?function(){}:b,w=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Jo),S=(0,a.useMemo)((function(){return o||\"input-textarea-\".concat(fe())}),[o]),k=(0,a.useMemo)((function(){return void 0!==l}),[l]),E=(n=(0,a.useState)(s),r=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(n,r)||function(e,t){if(e){if(\"string\"==typeof e)return ei(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ei(e,t):void 0}}(n,r)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),C=E[0],_=E[1],P=(0,a.useCallback)((function(){return k?l:C}),[k,l,C]),O=h?\"hover:border-border-disabled\":\"hover:border-border-strong\",N=v?\"focus:border-focus-error-border focus:ring-field-color-error border-focus-error-border\":\"\",T=h?\"border-border-disabled bg-field-background-disabled cursor-not-allowed text-text-disabled\":\"\";return React.createElement(\"textarea\",Qo({ref:t,id:S,className:oe(\"py-2 rounded border border-solid border-border-subtle bg-field-secondary-background font-normal placeholder-text-tertiary text-text-primary focus:outline-none\",T,{sm:\"px-3 rounded text-xs\",md:\"px-3 rounded-md text-sm\",lg:\"px-4 rounded-lg text-base\"}[u],\"focus:border-focus-border focus:ring-2 focus:ring-toggle-on focus:ring-offset-2\",O,N,f),disabled:h,onChange:function(e){if(!h){var t=e.target.value;k||_(t),\"function\"==typeof g&&g(t)}},onInvalid:x,value:P()},w))},ni=(0,a.forwardRef)(ti);ni.displayName=\"TextArea\";var ri=ni,oi=function(e){var t,n,r,o,i=e.variant,s=void 0===i?\"primary\":i,a=e.size,l=void 0===a?\"md\":a,c=e.border,u=void 0===c?\"subtle\":c,d=e.url,f=void 0===d?\"\":d,m=e.children,h=e.className,p=null===(t={white:\"text-text-primary bg-background-primary\",gray:\"text-text-primary bg-background-secondary\",primary:\"text-text-on-color bg-background-brand\",primaryLight:\"text-text-primary bg-brand-background-50\",dark:\"text-text-on-color bg-button-secondary\"})||void 0===t?void 0:t[s],g=null===(n={xxs:\"size-5 [&>svg]:size-3 text-xs\",xs:\"size-6 [&>svg]:size-4 text-sm\",sm:\"size-8 [&>svg]:size-5 text-base\",md:\"size-10 [&>svg]:size-6 text-lg\",lg:\"size-12 [&>svg]:size-12 text-lg\"})||void 0===n?void 0:n[l],y=null===(r={none:\"\",subtle:\"ring-1 ring-border-transparent-subtle\",ring:\"ring ring-border-subtle\"})||void 0===r?void 0:r[f&&\"none\"===u?\"subtle\":u],v=f?\"bg-cover bg-center\":\"\";return React.createElement(\"div\",{className:oe(\"rounded-full overflow-hidden flex items-center justify-center\",!f&&p,g,y,v,h),style:f?{backgroundImage:\"url(\".concat(f,\")\")}:{}},m?\"string\"==typeof m?null==m||null===(o=m[0])||void 0===o?void 0:o.toUpperCase():m:null)};const ii=ke(\"Upload\",[[\"path\",{d:\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\",key:\"ih7n3h\"}],[\"polyline\",{points:\"17 8 12 3 7 8\",key:\"t8dd8p\"}],[\"line\",{x1:\"12\",x2:\"12\",y1:\"3\",y2:\"15\",key:\"widbto\"}]]);var si=[\"id\",\"type\",\"defaultValue\",\"value\",\"size\",\"className\",\"disabled\",\"onChange\",\"error\",\"onError\",\"prefix\",\"suffix\",\"label\"];function ai(){return ai=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ai.apply(null,arguments)}function li(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return ci(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ci(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function ci(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var ui=function(e,t){var n=e.id,r=e.type,o=void 0===r?\"text\":r,i=e.defaultValue,s=void 0===i?\"\":i,l=e.value,c=e.size,u=void 0===c?\"sm\":c,d=e.className,f=void 0===d?\"\":d,m=e.disabled,h=void 0!==m&&m,p=e.onChange,g=void 0===p?function(){}:p,y=e.error,v=void 0!==y&&y,b=e.onError,x=void 0===b?function(){}:b,w=e.prefix,S=void 0===w?null:w,k=e.suffix,E=void 0===k?null:k,C=e.label,_=void 0===C?\"\":C,P=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,si),O=(0,a.useRef)(null),N=(0,a.useMemo)((function(){return n||\"input-\".concat(o,\"-\").concat(fe())}),[n]),T=(0,a.useMemo)((function(){return void 0!==l}),[l]),M=li((0,a.useState)(s),2),R=M[0],D=M[1],j=li((0,a.useState)(null),2),A=j[0],I=j[1],L=(0,a.useCallback)((function(){return T?l:R}),[T,l,R]),F=function(e){var t;h||(\"file\"===o?(t=e.target.files).length>0?I(t[0].name):I(null):t=e.target.value,T||\"file\"===o||D(t),\"function\"==typeof g&&g(t))},z=function(){I(null),O.current&&(O.current.value=null),g(null)},B=\"bg-field-secondary-background font-normal placeholder-text-tertiary text-text-primary w-full outline outline-1 outline-border-subtle border-none\",W={xs:\"px-2 py-1 rounded\",sm:\"p-3 py-2 rounded\",md:\"p-3.5 py-2.5 rounded-md\",lg:\"p-4 py-3 rounded-lg\"},V={xs:\"text-xs font-medium\",sm:\"text-sm font-medium\",md:\"text-sm font-medium\",lg:\"text-base font-medium\"},U={xs:\"text-xs\",sm:\"text-xs\",md:\"text-sm\",lg:\"text-base\"},$={sm:S?\"pl-8\":\"\",md:S?\"pl-9\":\"\",lg:S?\"pl-10\":\"\"},Y={sm:E?\"pr-8\":\"\",md:E?\"pr-9\":\"\",lg:E?\"pr-10\":\"\"},H=h?\"hover:outline-border-disabled\":\"hover:outline-border-strong\",K=\"focus:outline-focus-border focus:ring-2 focus:ring-toggle-on focus:ring-offset-2\",q=v?\"focus:outline-focus-error-border focus:ring-field-color-error outline-focus-error-border\":\"\",G=v?\"focus:outline-focus-error-border focus:ring-field-color-error outline-focus-error-border\":\"\",X=h?\"outline-border-disabled bg-field-background-disabled cursor-not-allowed text-text-disabled\":\"\",Z=h?\"outline-border-disabled cursor-not-allowed text-text-disabled file:text-text-tertiary\":\"\",J=\"font-normal placeholder-text-tertiary text-text-primary pointer-events-none absolute inset-y-0 flex flex-1 items-center [&>svg]:h-4 [&>svg]:w-4\",Q=h?\"font-normal placeholder-text-tertiary text-icon-disabled pointer-events-none absolute inset-y-0 flex flex-1 items-center\":\"font-normal placeholder-text-tertiary text-field-placeholder pointer-events-none absolute inset-y-0 flex flex-1 items-center\",ee={xs:\"[&>svg]:size-4\",sm:\"[&>svg]:size-4\",md:\"[&>svg]:size-5\",lg:\"[&>svg]:size-6\"},te=A?\"file:border-0 file:bg-transparent pr-10\":\"text-text-tertiary file:border-0 file:bg-transparent pr-10\";return\"file\"===o?React.createElement(\"div\",{className:\"flex flex-col items-start gap-1.5 [&_*]:box-border box-border\"},React.createElement(\"label\",{className:oe(V[u],\"text-field-label\"),htmlFor:N},_),React.createElement(\"div\",{className:oe(\"w-full relative flex focus-within:z-10\",f)},React.createElement(\"input\",ai({ref:t,id:N,type:\"file\",className:oe(B,Z,W[u],U[u],K,H,G,te),disabled:h,onChange:F,onInvalid:x},P)),React.createElement(\"div\",{className:oe(Q,\"right-0 pr-3\",ee[u])},React.createElement(ii,null)))):React.createElement(\"div\",{className:\"flex flex-col items-start gap-1.5 [&_*]:box-border box-border\"},React.createElement(\"label\",{className:oe(V[u],\"text-field-label\"),htmlFor:N},_),React.createElement(\"div\",{className:oe(\"w-full relative flex focus-within:z-10\",f)},S?React.createElement(\"div\",{className:oe(J,\"left-0 pl-3\",U[u])},S):null,React.createElement(\"input\",ai({ref:O,id:N,type:o,className:oe(B,X,W[u],U[u],$[u],Y[u],K,H,q),disabled:h,onChange:F,onInvalid:x,value:L()},P)),\"file\"===o?A?React.createElement(\"div\",{className:oe(Q,\"right-0 pr-3 cursor-pointer z-20 pointer-events-auto\",ee[u]),onClick:z,role:\"button\",tabIndex:0,onKeyDown:function(e){\"Enter\"!==e.key&&\" \"!==e.key||z()}},React.createElement(qo,null)):React.createElement(\"div\",{className:oe(Q,\"right-0 pr-3\",ee[u])},React.createElement(ii,null)):E?React.createElement(\"div\",{className:oe(J,\"right-0 pr-3\",U[u])},E):null))},di=(0,a.forwardRef)(ui);di.displayName=\"Input\";var fi=di,mi=[\"children\",\"tag\",\"size\",\"className\",\"variant\",\"required\"];function hi(){return hi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},hi.apply(null,arguments)}var pi=(0,a.forwardRef)((function(e,t){var n=e.children,r=void 0===n?null:n,o=e.tag,i=void 0===o?\"label\":o,s=e.size,a=void 0===s?\"sm\":s,c=e.className,u=void 0===c?\"\":c,d=e.variant,f=void 0===d?\"neutral\":d,m=e.required,h=void 0!==m&&m,p=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,mi);if(!r)return null;var g=\"\";h&&(g=\"after:content-['*'] after:text-field-required after:ml-0.5\");var y=i;return l().createElement(y,hi({ref:t,className:oe(\"font-medium text-field-label flex items-center gap-0.5\",{xs:\"text-xs [&>*]:text-xs [&>svg]:h-3 [&>svg]:w-3\",sm:\"text-sm [&>*]:text-sm [&>svg]:h-4 [&>svg]:w-4\",md:\"text-base [&>*]:text-base [&>svg]:h-5 [&>svg]:w-5\"}[a],{neutral:\"text-field-label [&>*]:text-field-label\",help:\"text-field-helper [&>*]:text-field-helper\",error:\"text-support-error [&>*]:text-support-error\",disabled:\"text-field-color-disabled disabled cursor-not-allowed [&>*]:text-field-color-disabled\"}[f],g,u)},p),r)})),gi=pi,yi=function(e){var t=e.title,n=void 0===t?null:t,r=e.description,o=void 0===r?null:r,i=e.icon,s=void 0===i?null:i,a=e.iconPosition,l=void 0===a?\"right\":a,c=e.tag,u=void 0===c?\"h2\":c,d=e.size,f=void 0===d?\"sm\":d,m=e.className,h=void 0===m?\"\":m,p={xs:\"gap-1 [&>svg]:size-3.5\",sm:\"gap-1 [&>svg]:size-4\",md:\"gap-1.5 [&>svg]:size-5\",lg:\"gap-1.5 [&>svg]:size-5\"};if(!n)return null;var g=function(){var e=u;return React.createElement(e,{className:oe(\"font-semibold p-0 m-0\",{xs:\"text-base [&>*]:text-base gap-1\",sm:\"text-lg [&>*]:text-lg gap-1\",md:\"text-xl [&>*]:text-xl gap-1.5\",lg:\"text-2xl [&>*]:text-2xl gap-1.5\"}[f])},n)};return o?React.createElement(\"div\",{className:h},React.createElement(\"div\",null,s&&\"left\"===l&&React.createElement(\"div\",{className:oe(\"flex items-center\",p[f])},s,g()),s&&\"right\"===l&&React.createElement(\"div\",{className:oe(\"flex items-center\",p[f])},g(),s),!s&&g()),React.createElement(\"p\",{className:oe(\"text-text-secondary font-normal my-0\",{xs:\"text-sm\",sm:\"text-sm\",md:\"text-base\",lg:\"text-base\"}[f])},o)):React.createElement(\"div\",{className:h},s&&\"left\"===l&&React.createElement(\"div\",{className:oe(\"flex items-center\",p[f])},s,g()),s&&\"right\"===l&&React.createElement(\"div\",{className:oe(\"flex items-center\",p[f])},g(),s),!s&&g())};const vi=ke(\"LoaderCircle\",[[\"path\",{d:\"M21 12a9 9 0 1 1-6.219-8.56\",key:\"13zald\"}]]);var bi=function(e){var t,n,r=e.variant,o=void 0===r?\"primary\":r,i=e.size,s=void 0===i?\"md\":i,a=e.icon,l=void 0===a?null:a,c=e.className,u=void 0===c?\"\":c,d=null===(t={primary:\"text-brand-primary-600 bg-background-primary\",secondary:\"text-background-primary bg-brand-primary-600\"})||void 0===t?void 0:t[o],f=null===(n={sm:\"[&>svg]:h-4 [&>svg]:w-4\",md:\"[&>svg]:h-5 [&>svg]:w-5\",lg:\"[&>svg]:h-6 [&>svg]:w-6\",xl:\"[&>svg]:h-8 [&>svg]:w-8\"})||void 0===n?void 0:n[s];return React.createElement(\"span\",{className:oe(\"flex\",f,d,u)},l||React.createElement(vi,{className:\"animate-spin\"}))},xi=function(e){var t=e.progress,n=void 0===t?0:t,r=e.speed,o=void 0===r?200:r,i=e.className,s=void 0===i?\"\":i;if(!n)return null;var a=n;n<0&&(a=0),n>100&&(a=100);var l=\"translateX(-\".concat(100-a,\"%)\"),c=\"h-2 rounded-full bg-background-brand absolute left-0 top-0 w-full bottom-0 origin-left transition-transform duration-\".concat(o,\" ease-linear\");return React.createElement(\"div\",{className:oe(\"h-2 rounded-full bg-misc-progress-background overflow-hidden relative\",s),role:\"progressbar\",\"aria-valuenow\":a,\"aria-valuemin\":\"0\",\"aria-valuemax\":\"100\"},React.createElement(\"div\",{className:c,style:{transform:l}}))},wi=[\"slug\",\"text\",\"icon\",\"className\",\"disabled\",\"isFirstChild\",\"isLastChild\"];function Si(){return Si=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Si.apply(null,arguments)}var ki=(0,a.createContext)(),Ei=function(e,t){var n=(0,a.useContext)(ki),r=e.slug,o=e.text,i=e.icon,s=e.className,c=e.disabled,u=void 0!==c&&c,d=e.isFirstChild,f=e.isLastChild,m=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,wi);if(!n)throw new Error(\"Button should be used inside Button Group\");var h=n.activeItem,p=n.onChange,g=n.size,y=n.iconPosition,v=oe(\"bg-background-primary text-primary cursor-pointer flex items-center justify-center\",\"hover:bg-button-tertiary-hover\",\"focus:outline-none\",u?\"text-text-disabled cursor-not-allowed\":\"\",{xs:\"py-1 px-1 text-sm gap-0.5 [&>svg]:size-4\",sm:\"py-2 px-2 text-base gap-1 [&>svg]:size-4\",md:\"py-2.5 px-2.5 text-base gap-1 [&>svg]:size-5\"}[g],\"border-0 border-r border-border-subtle border-solid\",h===r?\"bg-button-disabled\":\"\",d?\"rounded-tl rounded-bl border-0 border-r border-border-subtle\":\"\",f?\"rounded-tr rounded-br border-0\":\"\",s);return l().createElement(\"button\",Si({ref:t,className:v,disabled:u,onClick:function(e){p(e,{slug:r,text:o})}},m),\"left\"===y&&i&&l().createElement(\"span\",{className:\"mr-1\"},i),o,\"right\"===y&&i&&l().createElement(\"span\",{className:\"ml-1\"},i))},Ci=(0,a.forwardRef)(Ei);Ci.displayName=\"Button\";var _i={Group:function(e){var t=e.children,n=e.activeItem,r=void 0===n?null:n,o=e.onChange,i=e.className,s=e.size,c=void 0===s?\"md\":s,u=e.iconPosition,d=void 0===u?\"left\":u,f=(0,a.useCallback)((function(e,t){o&&o({event:e,value:t})}),[o]),m=oe(\"box-border flex border border-border-subtle border-solid rounded\",i);return l().createElement(\"div\",{className:m},l().createElement(ki.Provider,{value:{activeItem:r,onChange:f,size:c,iconPosition:d}},l().Children.map(t,(function(e,n){if(!(0,a.isValidElement)(e))return null;var r=0===n,o=n===l().Children.count(t)-1;return l().cloneElement(e,{index:n,isFirstChild:r,isLastChild:o})}))))},Button:Ci},Pi=_i;function Oi(e){if(\"undefined\"==typeof Proxy)return e;const t=new Map;return new Proxy(e,{get:(n,r)=>(t.has(r)||t.set(r,e(r)),t.get(r))})}function Ni(e){return null!==e&&\"object\"==typeof e&&\"function\"==typeof e.start}const Ti=e=>Array.isArray(e);function Mi(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;r<n;r++)if(t[r]!==e[r])return!1;return!0}function Ri(e){return\"string\"==typeof e||Array.isArray(e)}function Di(e){const t=[{},{}];return null==e||e.values.forEach(((e,n)=>{t[0][n]=e.get(),t[1][n]=e.getVelocity()})),t}function ji(e,t,n,r){if(\"function\"==typeof t){const[o,i]=Di(r);t=t(void 0!==n?n:e.custom,o,i)}if(\"string\"==typeof t&&(t=e.variants&&e.variants[t]),\"function\"==typeof t){const[o,i]=Di(r);t=t(void 0!==n?n:e.custom,o,i)}return t}function Ai(e,t,n){const r=e.getProps();return ji(r,t,void 0!==n?n:r.custom,e)}const Ii=[\"animate\",\"whileInView\",\"whileFocus\",\"whileHover\",\"whileTap\",\"whileDrag\",\"exit\"],Li=[\"initial\",...Ii],Fi=[\"transformPerspective\",\"x\",\"y\",\"z\",\"translateX\",\"translateY\",\"translateZ\",\"scale\",\"scaleX\",\"scaleY\",\"rotate\",\"rotateX\",\"rotateY\",\"rotateZ\",\"skew\",\"skewX\",\"skewY\"],zi=new Set(Fi),Bi=e=>1e3*e,Wi=e=>e/1e3,Vi={type:\"spring\",stiffness:500,damping:25,restSpeed:10},Ui={type:\"keyframes\",duration:.8},$i={type:\"keyframes\",ease:[.25,.1,.35,1],duration:.3},Yi=(e,{keyframes:t})=>t.length>2?Ui:zi.has(e)?e.startsWith(\"scale\")?{type:\"spring\",stiffness:550,damping:0===t[1]?2*Math.sqrt(550):30,restSpeed:10}:Vi:$i;function Hi(e,t){return e[t]||e.default||e}const Ki=e=>null!==e;function qi(e,{repeat:t,repeatType:n=\"loop\"},r){const o=e.filter(Ki),i=t&&\"loop\"!==n&&t%2==1?0:o.length-1;return i&&void 0!==r?r:o[i]}const Gi=e=>e,Xi=[\"read\",\"resolveKeyframes\",\"update\",\"preRender\",\"render\",\"postRender\"];function Zi(e,t){let n=!1,r=!0;const o={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,s=Xi.reduce(((e,t)=>(e[t]=function(e){let t=new Set,n=new Set,r=!1,o=!1;const i=new WeakSet;let s={delta:0,timestamp:0,isProcessing:!1};function a(t){i.has(t)&&(l.schedule(t),e()),t(s)}const l={schedule:(e,o=!1,s=!1)=>{const a=s&&r?t:n;return o&&i.add(e),a.has(e)||a.add(e),e},cancel:e=>{n.delete(e),i.delete(e)},process:e=>{s=e,r?o=!0:(r=!0,[t,n]=[n,t],n.clear(),t.forEach(a),r=!1,o&&(o=!1,l.process(e)))}};return l}(i),e)),{}),{read:a,resolveKeyframes:l,update:c,preRender:u,render:d,postRender:f}=s,m=()=>{const i=performance.now();n=!1,o.delta=r?1e3/60:Math.max(Math.min(i-o.timestamp,40),1),o.timestamp=i,o.isProcessing=!0,a.process(o),l.process(o),c.process(o),u.process(o),d.process(o),f.process(o),o.isProcessing=!1,n&&t&&(r=!1,e(m))};return{schedule:Xi.reduce(((t,i)=>{const a=s[i];return t[i]=(t,i=!1,s=!1)=>(n||(n=!0,r=!0,o.isProcessing||e(m)),a.schedule(t,i,s)),t}),{}),cancel:e=>{for(let t=0;t<Xi.length;t++)s[Xi[t]].cancel(e)},state:o,steps:s}}const{schedule:Ji,cancel:Qi,state:es,steps:ts}=Zi(\"undefined\"!=typeof requestAnimationFrame?requestAnimationFrame:Gi,!0),ns=e=>/^0[^.\\s]+$/u.test(e);let rs=Gi,os=Gi;const is=e=>/^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/u.test(e),ss=e=>t=>\"string\"==typeof t&&t.startsWith(e),as=ss(\"--\"),ls=ss(\"var(--\"),cs=e=>!!ls(e)&&us.test(e.split(\"/*\")[0].trim()),us=/var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu,ds=/^var\\(--(?:([\\w-]+)|([\\w-]+), ?([a-zA-Z\\d ()%#.,-]+))\\)/u;function fs(e,t,n=1){os(n<=4,`Max CSS variable fallback depth detected in property \"${e}\". This may indicate a circular fallback dependency.`);const[r,o]=function(e){const t=ds.exec(e);if(!t)return[,];const[,n,r,o]=t;return[`--${null!=n?n:r}`,o]}(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const e=i.trim();return is(e)?parseFloat(e):e}return cs(o)?fs(o,t,n+1):o}const ms=(e,t,n)=>n>t?t:n<e?e:n,hs={test:e=>\"number\"==typeof e,parse:parseFloat,transform:e=>e},ps={...hs,transform:e=>ms(0,1,e)},gs={...hs,default:1},ys=e=>Math.round(1e5*e)/1e5,vs=/-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu,bs=/(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu,xs=/^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;function ws(e){return\"string\"==typeof e}const Ss=e=>({test:t=>ws(t)&&t.endsWith(e)&&1===t.split(\" \").length,parse:parseFloat,transform:t=>`${t}${e}`}),ks=Ss(\"deg\"),Es=Ss(\"%\"),Cs=Ss(\"px\"),_s=Ss(\"vh\"),Ps=Ss(\"vw\"),Os={...Es,parse:e=>Es.parse(e)/100,transform:e=>Es.transform(100*e)},Ns=new Set([\"width\",\"height\",\"top\",\"left\",\"right\",\"bottom\",\"x\",\"y\",\"translateX\",\"translateY\"]),Ts=e=>e===hs||e===Cs,Ms=(e,t)=>parseFloat(e.split(\", \")[t]),Rs=(e,t)=>(n,{transform:r})=>{if(\"none\"===r||!r)return 0;const o=r.match(/^matrix3d\\((.+)\\)$/u);if(o)return Ms(o[1],t);{const t=r.match(/^matrix\\((.+)\\)$/u);return t?Ms(t[1],e):0}},Ds=new Set([\"x\",\"y\",\"z\"]),js=Fi.filter((e=>!Ds.has(e))),As={width:({x:e},{paddingLeft:t=\"0\",paddingRight:n=\"0\"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t=\"0\",paddingBottom:n=\"0\"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:Rs(4,13),y:Rs(5,14)};As.translateX=As.x,As.translateY=As.y;const Is=e=>t=>t.test(e),Ls=[hs,Cs,Es,ks,Ps,_s,{test:e=>\"auto\"===e,parse:e=>e}],Fs=e=>Ls.find(Is(e)),zs=new Set;let Bs=!1,Ws=!1;function Vs(){if(Ws){const e=Array.from(zs).filter((e=>e.needsMeasurement)),t=new Set(e.map((e=>e.element))),n=new Map;t.forEach((e=>{const t=function(e){const t=[];return js.forEach((n=>{const r=e.getValue(n);void 0!==r&&(t.push([n,r.get()]),r.set(n.startsWith(\"scale\")?1:0))})),t}(e);t.length&&(n.set(e,t),e.render())})),e.forEach((e=>e.measureInitialState())),t.forEach((e=>{e.render();const t=n.get(e);t&&t.forEach((([t,n])=>{var r;null===(r=e.getValue(t))||void 0===r||r.set(n)}))})),e.forEach((e=>e.measureEndState())),e.forEach((e=>{void 0!==e.suspendedScrollY&&window.scrollTo(0,e.suspendedScrollY)}))}Ws=!1,Bs=!1,zs.forEach((e=>e.complete())),zs.clear()}function Us(){zs.forEach((e=>{e.readKeyframes(),e.needsMeasurement&&(Ws=!0)}))}class $s{constructor(e,t,n,r,o,i=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...e],this.onComplete=t,this.name=n,this.motionValue=r,this.element=o,this.isAsync=i}scheduleResolve(){this.isScheduled=!0,this.isAsync?(zs.add(this),Bs||(Bs=!0,Ji.read(Us),Ji.resolveKeyframes(Vs))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:e,name:t,element:n,motionValue:r}=this;for(let o=0;o<e.length;o++)if(null===e[o])if(0===o){const o=null==r?void 0:r.get(),i=e[e.length-1];if(void 0!==o)e[0]=o;else if(n&&t){const r=n.readValue(t,i);null!=r&&(e[0]=r)}void 0===e[0]&&(e[0]=i),r&&void 0===o&&r.set(e[0])}else e[o]=e[o-1]}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(){this.isComplete=!0,this.onComplete(this.unresolvedKeyframes,this.finalKeyframe),zs.delete(this)}cancel(){this.isComplete||(this.isScheduled=!1,zs.delete(this))}resume(){this.isComplete||this.scheduleResolve()}}const Ys=(e,t)=>n=>Boolean(ws(n)&&xs.test(n)&&n.startsWith(e)||t&&!function(e){return null==e}(n)&&Object.prototype.hasOwnProperty.call(n,t)),Hs=(e,t,n)=>r=>{if(!ws(r))return r;const[o,i,s,a]=r.match(vs);return{[e]:parseFloat(o),[t]:parseFloat(i),[n]:parseFloat(s),alpha:void 0!==a?parseFloat(a):1}},Ks={...hs,transform:e=>Math.round((e=>ms(0,255,e))(e))},qs={test:Ys(\"rgb\",\"red\"),parse:Hs(\"red\",\"green\",\"blue\"),transform:({red:e,green:t,blue:n,alpha:r=1})=>\"rgba(\"+Ks.transform(e)+\", \"+Ks.transform(t)+\", \"+Ks.transform(n)+\", \"+ys(ps.transform(r))+\")\"},Gs={test:Ys(\"#\"),parse:function(e){let t=\"\",n=\"\",r=\"\",o=\"\";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),o=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),o=e.substring(4,5),t+=t,n+=n,r+=r,o+=o),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:o?parseInt(o,16)/255:1}},transform:qs.transform},Xs={test:Ys(\"hsl\",\"hue\"),parse:Hs(\"hue\",\"saturation\",\"lightness\"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>\"hsla(\"+Math.round(e)+\", \"+Es.transform(ys(t))+\", \"+Es.transform(ys(n))+\", \"+ys(ps.transform(r))+\")\"},Zs={test:e=>qs.test(e)||Gs.test(e)||Xs.test(e),parse:e=>qs.test(e)?qs.parse(e):Xs.test(e)?Xs.parse(e):Gs.parse(e),transform:e=>ws(e)?e:e.hasOwnProperty(\"red\")?qs.transform(e):Xs.transform(e)},Js=\"number\",Qs=\"color\",ea=\"var\",ta=\"var(\",na=\"${}\",ra=/var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu;function oa(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},o=[];let i=0;const s=t.replace(ra,(e=>(Zs.test(e)?(r.color.push(i),o.push(Qs),n.push(Zs.parse(e))):e.startsWith(ta)?(r.var.push(i),o.push(ea),n.push(e)):(r.number.push(i),o.push(Js),n.push(parseFloat(e))),++i,na))).split(na);return{values:n,split:s,indexes:r,types:o}}function ia(e){return oa(e).values}function sa(e){const{split:t,types:n}=oa(e),r=t.length;return e=>{let o=\"\";for(let i=0;i<r;i++)if(o+=t[i],void 0!==e[i]){const t=n[i];o+=t===Js?ys(e[i]):t===Qs?Zs.transform(e[i]):e[i]}return o}}const aa=e=>\"number\"==typeof e?0:e,la={test:function(e){var t,n;return isNaN(e)&&ws(e)&&((null===(t=e.match(vs))||void 0===t?void 0:t.length)||0)+((null===(n=e.match(bs))||void 0===n?void 0:n.length)||0)>0},parse:ia,createTransformer:sa,getAnimatableNone:function(e){const t=ia(e);return sa(e)(t.map(aa))}},ca=new Set([\"brightness\",\"contrast\",\"saturate\",\"opacity\"]);function ua(e){const[t,n]=e.slice(0,-1).split(\"(\");if(\"drop-shadow\"===t)return e;const[r]=n.match(vs)||[];if(!r)return e;const o=n.replace(r,\"\");let i=ca.has(t)?1:0;return r!==n&&(i*=100),t+\"(\"+i+o+\")\"}const da=/\\b([a-z-]*)\\(.*?\\)/gu,fa={...la,getAnimatableNone:e=>{const t=e.match(da);return t?t.map(ua).join(\" \"):e}},ma={...hs,transform:Math.round},ha={borderWidth:Cs,borderTopWidth:Cs,borderRightWidth:Cs,borderBottomWidth:Cs,borderLeftWidth:Cs,borderRadius:Cs,radius:Cs,borderTopLeftRadius:Cs,borderTopRightRadius:Cs,borderBottomRightRadius:Cs,borderBottomLeftRadius:Cs,width:Cs,maxWidth:Cs,height:Cs,maxHeight:Cs,size:Cs,top:Cs,right:Cs,bottom:Cs,left:Cs,padding:Cs,paddingTop:Cs,paddingRight:Cs,paddingBottom:Cs,paddingLeft:Cs,margin:Cs,marginTop:Cs,marginRight:Cs,marginBottom:Cs,marginLeft:Cs,rotate:ks,rotateX:ks,rotateY:ks,rotateZ:ks,scale:gs,scaleX:gs,scaleY:gs,scaleZ:gs,skew:ks,skewX:ks,skewY:ks,distance:Cs,translateX:Cs,translateY:Cs,translateZ:Cs,x:Cs,y:Cs,z:Cs,perspective:Cs,transformPerspective:Cs,opacity:ps,originX:Os,originY:Os,originZ:Cs,zIndex:ma,backgroundPositionX:Cs,backgroundPositionY:Cs,fillOpacity:ps,strokeOpacity:ps,numOctaves:ma},pa={...ha,color:Zs,backgroundColor:Zs,outlineColor:Zs,fill:Zs,stroke:Zs,borderColor:Zs,borderTopColor:Zs,borderRightColor:Zs,borderBottomColor:Zs,borderLeftColor:Zs,filter:fa,WebkitFilter:fa},ga=e=>pa[e];function ya(e,t){let n=ga(e);return n!==fa&&(n=la),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const va=new Set([\"auto\",\"none\",\"0\"]);class ba extends $s{constructor(e,t,n,r,o){super(e,t,n,r,o,!0)}readKeyframes(){const{unresolvedKeyframes:e,element:t,name:n}=this;if(!t||!t.current)return;super.readKeyframes();for(let n=0;n<e.length;n++){let r=e[n];if(\"string\"==typeof r&&(r=r.trim(),cs(r))){const o=fs(r,t.current);void 0!==o&&(e[n]=o),n===e.length-1&&(this.finalKeyframe=r)}}if(this.resolveNoneKeyframes(),!Ns.has(n)||2!==e.length)return;const[r,o]=e,i=Fs(r),s=Fs(o);if(i!==s)if(Ts(i)&&Ts(s))for(let t=0;t<e.length;t++){const n=e[t];\"string\"==typeof n&&(e[t]=parseFloat(n))}else this.needsMeasurement=!0}resolveNoneKeyframes(){const{unresolvedKeyframes:e,name:t}=this,n=[];for(let t=0;t<e.length;t++)(\"number\"==typeof(r=e[t])?0===r:null===r||\"none\"===r||\"0\"===r||ns(r))&&n.push(t);var r;n.length&&function(e,t,n){let r,o=0;for(;o<e.length&&!r;){const t=e[o];\"string\"==typeof t&&!va.has(t)&&oa(t).values.length&&(r=e[o]),o++}if(r&&n)for(const o of t)e[o]=ya(n,r)}(e,n,t)}measureInitialState(){const{element:e,unresolvedKeyframes:t,name:n}=this;if(!e||!e.current)return;\"height\"===n&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=As[n](e.measureViewportBox(),window.getComputedStyle(e.current)),t[0]=this.measuredOrigin;const r=t[t.length-1];void 0!==r&&e.getValue(n,r).jump(r,!1)}measureEndState(){var e;const{element:t,name:n,unresolvedKeyframes:r}=this;if(!t||!t.current)return;const o=t.getValue(n);o&&o.jump(this.measuredOrigin,!1);const i=r.length-1,s=r[i];r[i]=As[n](t.measureViewportBox(),window.getComputedStyle(t.current)),null!==s&&void 0===this.finalKeyframe&&(this.finalKeyframe=s),(null===(e=this.removedTransforms)||void 0===e?void 0:e.length)&&this.removedTransforms.forEach((([e,n])=>{t.getValue(e).set(n)})),this.resolveNoneKeyframes()}}function xa(e){let t;return()=>(void 0===t&&(t=e()),t)}let wa;function Sa(){wa=void 0}const ka={now:()=>(void 0===wa&&ka.set(es.isProcessing?es.timestamp:performance.now()),wa),set:e=>{wa=e,queueMicrotask(Sa)}},Ea=(e,t)=>!(\"zIndex\"===t||\"number\"!=typeof e&&!Array.isArray(e)&&(\"string\"!=typeof e||!la.test(e)&&\"0\"!==e||e.startsWith(\"url(\")));class Ca{constructor({autoplay:e=!0,delay:t=0,type:n=\"keyframes\",repeat:r=0,repeatDelay:o=0,repeatType:i=\"loop\",...s}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=ka.now(),this.options={autoplay:e,delay:t,type:n,repeat:r,repeatDelay:o,repeatType:i,...s},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt&&this.resolvedAt-this.createdAt>40?this.resolvedAt:this.createdAt}get resolved(){return this._resolved||this.hasAttemptedResolve||(Us(),Vs()),this._resolved}onKeyframesResolved(e,t){this.resolvedAt=ka.now(),this.hasAttemptedResolve=!0;const{name:n,type:r,velocity:o,delay:i,onComplete:s,onUpdate:a,isGenerator:l}=this.options;if(!l&&!function(e,t,n,r){const o=e[0];if(null===o)return!1;if(\"display\"===t||\"visibility\"===t)return!0;const i=e[e.length-1],s=Ea(o,t),a=Ea(i,t);return rs(s===a,`You are trying to animate ${t} from \"${o}\" to \"${i}\". ${o} is not an animatable value - to enable this animation set ${o} to a value animatable to ${i} via the \\`style\\` property.`),!(!s||!a)&&(function(e){const t=e[0];if(1===e.length)return!0;for(let n=0;n<e.length;n++)if(e[n]!==t)return!0}(e)||\"spring\"===n&&r)}(e,n,r,o)){if(!i)return null==a||a(qi(e,this.options,t)),null==s||s(),void this.resolveFinishedPromise();this.options.duration=0}const c=this.initPlayback(e,t);!1!==c&&(this._resolved={keyframes:e,finalKeyframe:t,...c},this.onPostResolved())}onPostResolved(){}then(e,t){return this.currentFinishedPromise.then(e,t)}updateFinishedPromise(){this.currentFinishedPromise=new Promise((e=>{this.resolveFinishedPromise=e}))}}function _a(e,t){return t?e*(1e3/t):0}const Pa=5;function Oa(e,t,n){const r=Math.max(t-Pa,0);return _a(n-e(r),t-r)}const Na=.001,Ta=.01,Ma=10,Ra=.05,Da=1;const ja=12;function Aa(e,t){return e*Math.sqrt(1-t*t)}const Ia=[\"duration\",\"bounce\"],La=[\"stiffness\",\"damping\",\"mass\"];function Fa(e,t){return t.some((t=>void 0!==e[t]))}function za({keyframes:e,restDelta:t,restSpeed:n,...r}){const o=e[0],i=e[e.length-1],s={done:!1,value:o},{stiffness:a,damping:l,mass:c,duration:u,velocity:d,isResolvedFromDuration:f}=function(e){let t={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...e};if(!Fa(e,La)&&Fa(e,Ia)){const n=function({duration:e=800,bounce:t=.25,velocity:n=0,mass:r=1}){let o,i;rs(e<=Bi(Ma),\"Spring duration must be 10 seconds or less\");let s=1-t;s=ms(Ra,Da,s),e=ms(Ta,Ma,Wi(e)),s<1?(o=t=>{const r=t*s,o=r*e,i=r-n,a=Aa(t,s),l=Math.exp(-o);return Na-i/a*l},i=t=>{const r=t*s*e,i=r*n+n,a=Math.pow(s,2)*Math.pow(t,2)*e,l=Math.exp(-r),c=Aa(Math.pow(t,2),s);return(-o(t)+Na>0?-1:1)*((i-a)*l)/c}):(o=t=>Math.exp(-t*e)*((t-n)*e+1)-Na,i=t=>Math.exp(-t*e)*(e*e*(n-t)));const a=function(e,t,n){let r=n;for(let n=1;n<ja;n++)r-=e(r)/t(r);return r}(o,i,5/e);if(e=Bi(e),isNaN(a))return{stiffness:100,damping:10,duration:e};{const t=Math.pow(a,2)*r;return{stiffness:t,damping:2*s*Math.sqrt(r*t),duration:e}}}(e);t={...t,...n,mass:1},t.isResolvedFromDuration=!0}return t}({...r,velocity:-Wi(r.velocity||0)}),m=d||0,h=l/(2*Math.sqrt(a*c)),p=i-o,g=Wi(Math.sqrt(a/c)),y=Math.abs(p)<5;let v;if(n||(n=y?.01:2),t||(t=y?.005:.5),h<1){const e=Aa(g,h);v=t=>{const n=Math.exp(-h*g*t);return i-n*((m+h*g*p)/e*Math.sin(e*t)+p*Math.cos(e*t))}}else if(1===h)v=e=>i-Math.exp(-g*e)*(p+(m+g*p)*e);else{const e=g*Math.sqrt(h*h-1);v=t=>{const n=Math.exp(-h*g*t),r=Math.min(e*t,300);return i-n*((m+h*g*p)*Math.sinh(r)+e*p*Math.cosh(r))/e}}return{calculatedDuration:f&&u||null,next:e=>{const r=v(e);if(f)s.done=e>=u;else{let o=0;h<1&&(o=0===e?Bi(m):Oa(v,e,r));const a=Math.abs(o)<=n,l=Math.abs(i-r)<=t;s.done=a&&l}return s.value=s.done?i:r,s}}}function Ba({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:o=10,bounceStiffness:i=500,modifyTarget:s,min:a,max:l,restDelta:c=.5,restSpeed:u}){const d=e[0],f={done:!1,value:d},m=e=>void 0===a?l:void 0===l||Math.abs(a-e)<Math.abs(l-e)?a:l;let h=n*t;const p=d+h,g=void 0===s?p:s(p);g!==p&&(h=g-d);const y=e=>-h*Math.exp(-e/r),v=e=>g+y(e),b=e=>{const t=y(e),n=v(e);f.done=Math.abs(t)<=c,f.value=f.done?g:n};let x,w;const S=e=>{(e=>void 0!==a&&e<a||void 0!==l&&e>l)(f.value)&&(x=e,w=za({keyframes:[f.value,m(f.value)],velocity:Oa(v,e,f.value),damping:o,stiffness:i,restDelta:c,restSpeed:u}))};return S(0),{calculatedDuration:null,next:e=>{let t=!1;return w||void 0!==x||(t=!0,b(e),S(e)),void 0!==x&&e>=x?w.next(e-x):(!t&&b(e),f)}}}const Wa=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e;function Va(e,t,n,r){if(e===t&&n===r)return Gi;return o=>0===o||1===o?o:Wa(function(e,t,n,r,o){let i,s,a=0;do{s=t+(n-t)/2,i=Wa(s,r,o)-e,i>0?n=s:t=s}while(Math.abs(i)>1e-7&&++a<12);return s}(o,0,1,e,n),t,r)}const Ua=Va(.42,0,1,1),$a=Va(0,0,.58,1),Ya=Va(.42,0,.58,1),Ha=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,Ka=e=>t=>1-e(1-t),qa=e=>1-Math.sin(Math.acos(e)),Ga=Ka(qa),Xa=Ha(qa),Za=Va(.33,1.53,.69,.99),Ja=Ka(Za),Qa=Ha(Ja),el={linear:Gi,easeIn:Ua,easeInOut:Ya,easeOut:$a,circIn:qa,circInOut:Xa,circOut:Ga,backIn:Ja,backInOut:Qa,backOut:Za,anticipate:e=>(e*=2)<1?.5*Ja(e):.5*(2-Math.pow(2,-10*(e-1)))},tl=e=>{if(Array.isArray(e)){os(4===e.length,\"Cubic bezier arrays must contain four numerical values.\");const[t,n,r,o]=e;return Va(t,n,r,o)}return\"string\"==typeof e?(os(void 0!==el[e],`Invalid easing type '${e}'`),el[e]):e},nl=(e,t)=>n=>t(e(n)),rl=(...e)=>e.reduce(nl),ol=(e,t,n)=>{const r=t-e;return 0===r?1:(n-e)/r},il=(e,t,n)=>e+(t-e)*n;function sl(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function al(e,t){return n=>n>0?t:e}const ll=(e,t,n)=>{const r=e*e,o=n*(t*t-r)+r;return o<0?0:Math.sqrt(o)},cl=[Gs,qs,Xs];function ul(e){const t=(e=>cl.find((t=>t.test(e))))(e);if(rs(Boolean(t),`'${e}' is not an animatable color. Use the equivalent color code instead.`),!Boolean(t))return!1;let n=t.parse(e);return t===Xs&&(n=function({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,n/=100;let o=0,i=0,s=0;if(t/=100){const r=n<.5?n*(1+t):n+t-n*t,a=2*n-r;o=sl(a,r,e+1/3),i=sl(a,r,e),s=sl(a,r,e-1/3)}else o=i=s=n;return{red:Math.round(255*o),green:Math.round(255*i),blue:Math.round(255*s),alpha:r}}(n)),n}const dl=(e,t)=>{const n=ul(e),r=ul(t);if(!n||!r)return al(e,t);const o={...n};return e=>(o.red=ll(n.red,r.red,e),o.green=ll(n.green,r.green,e),o.blue=ll(n.blue,r.blue,e),o.alpha=il(n.alpha,r.alpha,e),qs.transform(o))},fl=new Set([\"none\",\"hidden\"]);function ml(e,t){return n=>il(e,t,n)}function hl(e){return\"number\"==typeof e?ml:\"string\"==typeof e?cs(e)?al:Zs.test(e)?dl:yl:Array.isArray(e)?pl:\"object\"==typeof e?Zs.test(e)?dl:gl:al}function pl(e,t){const n=[...e],r=n.length,o=e.map(((e,n)=>hl(e)(e,t[n])));return e=>{for(let t=0;t<r;t++)n[t]=o[t](e);return n}}function gl(e,t){const n={...e,...t},r={};for(const o in n)void 0!==e[o]&&void 0!==t[o]&&(r[o]=hl(e[o])(e[o],t[o]));return e=>{for(const t in r)n[t]=r[t](e);return n}}const yl=(e,t)=>{const n=la.createTransformer(t),r=oa(e),o=oa(t);return r.indexes.var.length===o.indexes.var.length&&r.indexes.color.length===o.indexes.color.length&&r.indexes.number.length>=o.indexes.number.length?fl.has(e)&&!o.values.length||fl.has(t)&&!r.values.length?function(e,t){return fl.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}(e,t):rl(pl(function(e,t){var n;const r=[],o={color:0,var:0,number:0};for(let i=0;i<t.values.length;i++){const s=t.types[i],a=e.indexes[s][o[s]],l=null!==(n=e.values[a])&&void 0!==n?n:0;r[i]=l,o[s]++}return r}(r,o),o.values),n):(rs(!0,`Complex values '${e}' and '${t}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`),al(e,t))};function vl(e,t,n){return\"number\"==typeof e&&\"number\"==typeof t&&\"number\"==typeof n?il(e,t,n):hl(e)(e,t)}function bl({duration:e=300,keyframes:t,times:n,ease:r=\"easeInOut\"}){const o=(e=>Array.isArray(e)&&\"number\"!=typeof e[0])(r)?r.map(tl):tl(r),i={done:!1,value:t[0]},s=function(e,t){return e.map((e=>e*t))}(n&&n.length===t.length?n:function(e){const t=[0];return function(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const o=ol(0,t,r);e.push(il(n,1,o))}}(t,e.length-1),t}(t),e),a=function(e,t,{clamp:n=!0,ease:r,mixer:o}={}){const i=e.length;if(os(i===t.length,\"Both input and output ranges must be the same length\"),1===i)return()=>t[0];if(2===i&&e[0]===e[1])return()=>t[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const s=function(e,t,n){const r=[],o=n||vl,i=e.length-1;for(let n=0;n<i;n++){let i=o(e[n],e[n+1]);if(t){const e=Array.isArray(t)?t[n]||Gi:t;i=rl(e,i)}r.push(i)}return r}(t,r,o),a=s.length,l=t=>{let n=0;if(a>1)for(;n<e.length-2&&!(t<e[n+1]);n++);const r=ol(e[n],e[n+1],t);return s[n](r)};return n?t=>l(ms(e[0],e[i-1],t)):l}(s,t,{ease:Array.isArray(o)?o:(l=t,c=o,l.map((()=>c||Ya)).splice(0,l.length-1))});var l,c;return{calculatedDuration:e,next:t=>(i.value=a(t),i.done=t>=e,i)}}const xl=e=>{const t=({timestamp:t})=>e(t);return{start:()=>Ji.update(t,!0),stop:()=>Qi(t),now:()=>es.isProcessing?es.timestamp:ka.now()}},wl={decay:Ba,inertia:Ba,tween:bl,keyframes:bl,spring:za},Sl=e=>e/100;class kl extends Ca{constructor(e){super(e),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState=\"running\",this.startTime=null,this.state=\"idle\",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,\"idle\"===this.state)return;this.teardown();const{onStop:e}=this.options;e&&e()};const{name:t,motionValue:n,element:r,keyframes:o}=this.options,i=(null==r?void 0:r.KeyframeResolver)||$s;this.resolver=new i(o,((e,t)=>this.onKeyframesResolved(e,t)),t,n,r),this.resolver.scheduleResolve()}initPlayback(e){const{type:t=\"keyframes\",repeat:n=0,repeatDelay:r=0,repeatType:o,velocity:i=0}=this.options,s=wl[t]||bl;let a,l;s!==bl&&\"number\"!=typeof e[0]&&(a=rl(Sl,vl(e[0],e[1])),e=[0,100]);const c=s({...this.options,keyframes:e});\"mirror\"===o&&(l=s({...this.options,keyframes:[...e].reverse(),velocity:-i})),null===c.calculatedDuration&&(c.calculatedDuration=function(e){let t=0,n=e.next(t);for(;!n.done&&t<2e4;)t+=50,n=e.next(t);return t>=2e4?1/0:t}(c));const{calculatedDuration:u}=c,d=u+r;return{generator:c,mirroredGenerator:l,mapPercentToKeyframes:a,calculatedDuration:u,resolvedDuration:d,totalDuration:d*(n+1)-r}}onPostResolved(){const{autoplay:e=!0}=this.options;this.play(),\"paused\"!==this.pendingPlayState&&e?this.state=this.pendingPlayState:this.pause()}tick(e,t=!1){const{resolved:n}=this;if(!n){const{keyframes:e}=this.options;return{done:!0,value:e[e.length-1]}}const{finalKeyframe:r,generator:o,mirroredGenerator:i,mapPercentToKeyframes:s,keyframes:a,calculatedDuration:l,totalDuration:c,resolvedDuration:u}=n;if(null===this.startTime)return o.next(0);const{delay:d,repeat:f,repeatType:m,repeatDelay:h,onUpdate:p}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,e):this.speed<0&&(this.startTime=Math.min(e-c/this.speed,this.startTime)),t?this.currentTime=e:null!==this.holdTime?this.currentTime=this.holdTime:this.currentTime=Math.round(e-this.startTime)*this.speed;const g=this.currentTime-d*(this.speed>=0?1:-1),y=this.speed>=0?g<0:g>c;this.currentTime=Math.max(g,0),\"finished\"===this.state&&null===this.holdTime&&(this.currentTime=c);let v=this.currentTime,b=o;if(f){const e=Math.min(this.currentTime,c)/u;let t=Math.floor(e),n=e%1;!n&&e>=1&&(n=1),1===n&&t--,t=Math.min(t,f+1),Boolean(t%2)&&(\"reverse\"===m?(n=1-n,h&&(n-=h/u)):\"mirror\"===m&&(b=i)),v=ms(0,1,n)*u}const x=y?{done:!1,value:a[0]}:b.next(v);s&&(x.value=s(x.value));let{done:w}=x;y||null===l||(w=this.speed>=0?this.currentTime>=c:this.currentTime<=0);const S=null===this.holdTime&&(\"finished\"===this.state||\"running\"===this.state&&w);return S&&void 0!==r&&(x.value=qi(a,this.options,r)),p&&p(x.value),S&&this.finish(),x}get duration(){const{resolved:e}=this;return e?Wi(e.calculatedDuration):0}get time(){return Wi(this.currentTime)}set time(e){e=Bi(e),this.currentTime=e,null!==this.holdTime||0===this.speed?this.holdTime=e:this.driver&&(this.startTime=this.driver.now()-e/this.speed)}get speed(){return this.playbackSpeed}set speed(e){const t=this.playbackSpeed!==e;this.playbackSpeed=e,t&&(this.time=Wi(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved)return void(this.pendingPlayState=\"running\");if(this.isStopped)return;const{driver:e=xl,onPlay:t,startTime:n}=this.options;this.driver||(this.driver=e((e=>this.tick(e)))),t&&t();const r=this.driver.now();null!==this.holdTime?this.startTime=r-this.holdTime:this.startTime?\"finished\"===this.state&&(this.startTime=r):this.startTime=null!=n?n:this.calcStartTime(),\"finished\"===this.state&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state=\"running\",this.driver.start()}pause(){var e;this._resolved?(this.state=\"paused\",this.holdTime=null!==(e=this.currentTime)&&void 0!==e?e:0):this.pendingPlayState=\"paused\"}complete(){\"running\"!==this.state&&this.play(),this.pendingPlayState=this.state=\"finished\",this.holdTime=null}finish(){this.teardown(),this.state=\"finished\";const{onComplete:e}=this.options;e&&e()}cancel(){null!==this.cancelTime&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state=\"idle\",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(e){return this.startTime=0,this.tick(e,!0)}}const El=new Set([\"opacity\",\"clipPath\",\"filter\",\"transform\"]),Cl=e=>Array.isArray(e)&&\"number\"==typeof e[0];function _l(e){return Boolean(!e||\"string\"==typeof e&&e in Ol||Cl(e)||Array.isArray(e)&&e.every(_l))}const Pl=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,Ol={linear:\"linear\",ease:\"ease\",easeIn:\"ease-in\",easeOut:\"ease-out\",easeInOut:\"ease-in-out\",circIn:Pl([0,.65,.55,1]),circOut:Pl([.55,0,1,.45]),backIn:Pl([.31,.01,.66,-.59]),backOut:Pl([.33,1.53,.69,.99])};function Nl(e){return Tl(e)||Ol.easeOut}function Tl(e){return e?Cl(e)?Pl(e):Array.isArray(e)?e.map(Nl):Ol[e]:void 0}const Ml=xa((()=>Object.hasOwnProperty.call(Element.prototype,\"animate\")));class Rl extends Ca{constructor(e){super(e);const{name:t,motionValue:n,element:r,keyframes:o}=this.options;this.resolver=new ba(o,((e,t)=>this.onKeyframesResolved(e,t)),t,n,r),this.resolver.scheduleResolve()}initPlayback(e,t){var n;let{duration:r=300,times:o,ease:i,type:s,motionValue:a,name:l,startTime:c}=this.options;if(!(null===(n=a.owner)||void 0===n?void 0:n.current))return!1;if(\"spring\"===(u=this.options).type||!_l(u.ease)){const{onComplete:t,onUpdate:n,motionValue:a,element:l,...c}=this.options,u=function(e,t){const n=new kl({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const o=[];let i=0;for(;!r.done&&i<2e4;)r=n.sample(i),o.push(r.value),i+=10;return{times:void 0,keyframes:o,duration:i-10,ease:\"linear\"}}(e,c);1===(e=u.keyframes).length&&(e[1]=e[0]),r=u.duration,o=u.times,i=u.ease,s=\"keyframes\"}var u;const d=function(e,t,n,{delay:r=0,duration:o=300,repeat:i=0,repeatType:s=\"loop\",ease:a,times:l}={}){const c={[t]:n};l&&(c.offset=l);const u=Tl(a);return Array.isArray(u)&&(c.easing=u),e.animate(c,{delay:r,duration:o,easing:Array.isArray(u)?\"linear\":u,fill:\"both\",iterations:i+1,direction:\"reverse\"===s?\"alternate\":\"normal\"})}(a.owner.current,l,e,{...this.options,duration:r,times:o,ease:i});return d.startTime=null!=c?c:this.calcStartTime(),this.pendingTimeline?(d.timeline=this.pendingTimeline,this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:n}=this.options;a.set(qi(e,this.options,t)),n&&n(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:r,times:o,type:s,ease:i,keyframes:e}}get duration(){const{resolved:e}=this;if(!e)return 0;const{duration:t}=e;return Wi(t)}get time(){const{resolved:e}=this;if(!e)return 0;const{animation:t}=e;return Wi(t.currentTime||0)}set time(e){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.currentTime=Bi(e)}get speed(){const{resolved:e}=this;if(!e)return 1;const{animation:t}=e;return t.playbackRate}set speed(e){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playbackRate=e}get state(){const{resolved:e}=this;if(!e)return\"idle\";const{animation:t}=e;return t.playState}get startTime(){const{resolved:e}=this;if(!e)return null;const{animation:t}=e;return t.startTime}attachTimeline(e){if(this._resolved){const{resolved:t}=this;if(!t)return Gi;const{animation:n}=t;n.timeline=e,n.onfinish=null}else this.pendingTimeline=e;return Gi}play(){if(this.isStopped)return;const{resolved:e}=this;if(!e)return;const{animation:t}=e;\"finished\"===t.playState&&this.updateFinishedPromise(),t.play()}pause(){const{resolved:e}=this;if(!e)return;const{animation:t}=e;t.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,\"idle\"===this.state)return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:e}=this;if(!e)return;const{animation:t,keyframes:n,duration:r,type:o,ease:i,times:s}=e;if(\"idle\"===t.playState||\"finished\"===t.playState)return;if(this.time){const{motionValue:e,onUpdate:t,onComplete:a,element:l,...c}=this.options,u=new kl({...c,keyframes:n,duration:r,type:o,ease:i,times:s,isGenerator:!0}),d=Bi(this.time);e.setWithVelocity(u.sample(d-10).value,u.sample(d).value,10)}const{onStop:a}=this.options;a&&a(),this.cancel()}complete(){const{resolved:e}=this;e&&e.animation.finish()}cancel(){const{resolved:e}=this;e&&e.animation.cancel()}static supports(e){const{motionValue:t,name:n,repeatDelay:r,repeatType:o,damping:i,type:s}=e;return Ml()&&n&&El.has(n)&&t&&t.owner&&t.owner.current instanceof HTMLElement&&!t.owner.getProps().onUpdate&&!r&&\"mirror\"!==o&&0!==i&&\"inertia\"!==s}}const Dl=xa((()=>void 0!==window.ScrollTimeline));class jl{constructor(e){this.stop=()=>this.runAll(\"stop\"),this.animations=e.filter(Boolean)}then(e,t){return Promise.all(this.animations).then(e).catch(t)}getAll(e){return this.animations[0][e]}setAll(e,t){for(let n=0;n<this.animations.length;n++)this.animations[n][e]=t}attachTimeline(e){const t=this.animations.map((t=>{if(!Dl()||!t.attachTimeline)return t.pause(),function(e,n){let r;const o=()=>{const{currentTime:e}=n,o=(null===e?0:e.value)/100;r!==o&&(e=>{t.time=t.duration*e})(o),r=o};return Ji.update(o,!0),()=>Qi(o)}(0,e);t.attachTimeline(e)}));return()=>{t.forEach(((e,t)=>{e&&e(),this.animations[t].stop()}))}}get time(){return this.getAll(\"time\")}set time(e){this.setAll(\"time\",e)}get speed(){return this.getAll(\"speed\")}set speed(e){this.setAll(\"speed\",e)}get startTime(){return this.getAll(\"startTime\")}get duration(){let e=0;for(let t=0;t<this.animations.length;t++)e=Math.max(e,this.animations[t].duration);return e}runAll(e){this.animations.forEach((t=>t[e]()))}play(){this.runAll(\"play\")}pause(){this.runAll(\"pause\")}cancel(){this.runAll(\"cancel\")}complete(){this.runAll(\"complete\")}}const Al=(e,t,n,r={},o,i,s)=>a=>{const l=Hi(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u-=Bi(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:\"easeOut\",velocity:t.getVelocity(),...l,delay:-u,onUpdate:e=>{t.set(e),l.onUpdate&&l.onUpdate(e)},onComplete:()=>{a(),l.onComplete&&l.onComplete(),s&&s()},onStop:s,name:e,motionValue:t,element:i?void 0:o};(function({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:o,repeat:i,repeatType:s,repeatDelay:a,from:l,elapsed:c,...u}){return!!Object.keys(u).length})(l)||(d={...d,...Yi(e,d)}),d.duration&&(d.duration=Bi(d.duration)),d.repeatDelay&&(d.repeatDelay=Bi(d.repeatDelay)),void 0!==d.from&&(d.keyframes[0]=d.from);let f=!1;if((!1===d.type||0===d.duration&&!d.repeatDelay)&&(d.duration=0,0===d.delay&&(f=!0)),f&&!i&&void 0!==t.get()){const e=qi(d.keyframes,l);if(void 0!==e)return Ji.update((()=>{d.onUpdate(e),d.onComplete()})),new jl([])}return!i&&Rl.supports(d)?new Rl(d):new kl(d)},Il=e=>Boolean(e&&\"object\"==typeof e&&e.mix&&e.toValue),Ll=e=>Ti(e)?e[e.length-1]||0:e;function Fl(e,t){-1===e.indexOf(t)&&e.push(t)}function zl(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class Bl{constructor(){this.subscriptions=[]}add(e){return Fl(this.subscriptions,e),()=>zl(this.subscriptions,e)}notify(e,t,n){const r=this.subscriptions.length;if(r)if(1===r)this.subscriptions[0](e,t,n);else for(let o=0;o<r;o++){const r=this.subscriptions[o];r&&r(e,t,n)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}const Wl={current:void 0};class Vl{constructor(e,t={}){this.version=\"11.4.0\",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(e,t=!0)=>{const n=ka.now();this.updatedAt!==n&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(e),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),t&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(e),this.owner=t.owner}setCurrent(e){var t;this.current=e,this.updatedAt=ka.now(),null===this.canTrackVelocity&&void 0!==e&&(this.canTrackVelocity=(t=this.current,!isNaN(parseFloat(t))))}setPrevFrameValue(e=this.current){this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt}onChange(e){return this.on(\"change\",e)}on(e,t){this.events[e]||(this.events[e]=new Bl);const n=this.events[e].add(t);return\"change\"===e?()=>{n(),Ji.read((()=>{this.events.change.getSize()||this.stop()}))}:n}clearListeners(){for(const e in this.events)this.events[e].clear()}attach(e,t){this.passiveEffect=e,this.stopPassiveEffect=t}set(e,t=!0){t&&this.passiveEffect?this.passiveEffect(e,this.updateAndNotify):this.updateAndNotify(e,t)}setWithVelocity(e,t,n){this.set(t),this.prev=void 0,this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt-n}jump(e,t=!0){this.updateAndNotify(e),this.prev=e,this.prevUpdatedAt=this.prevFrameValue=void 0,t&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return Wl.current&&Wl.current.push(this),this.current}getPrevious(){return this.prev}getVelocity(){const e=ka.now();if(!this.canTrackVelocity||void 0===this.prevFrameValue||e-this.updatedAt>30)return 0;const t=Math.min(this.updatedAt-this.prevUpdatedAt,30);return _a(parseFloat(this.current)-parseFloat(this.prevFrameValue),t)}start(e){return this.stop(),new Promise((t=>{this.hasAnimated=!0,this.animation=e(t),this.events.animationStart&&this.events.animationStart.notify()})).then((()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()}))}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Ul(e,t){return new Vl(e,t)}function $l(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,Ul(n))}const Yl=e=>e.replace(/([a-z])([A-Z])/gu,\"$1-$2\").toLowerCase(),Hl=\"data-\"+Yl(\"framerAppearId\");function Kl(e){return e.props[Hl]}function ql(e){return zi.has(e)?\"transform\":El.has(e)?Yl(e):void 0}class Gl extends Vl{constructor(){super(...arguments),this.output=[],this.counts=new Map}add(e){const t=ql(e);if(!t)return;const n=this.counts.get(t)||0;this.counts.set(t,n+1),0===n&&(this.output.push(t),this.update());let r=!1;return()=>{if(r)return;r=!0;const e=this.counts.get(t)-1;this.counts.set(t,e),0===e&&(zl(this.output,t),this.update())}}update(){this.set(this.output.length?this.output.join(\", \"):\"auto\")}}const Xl=e=>Boolean(e&&e.getVelocity);function Zl(e,t){var n;if(!e.applyWillChange)return;let r=e.getValue(\"willChange\");return r||(null===(n=e.props.style)||void 0===n?void 0:n.willChange)||(r=new Gl(\"auto\"),e.addValue(\"willChange\",r)),o=r,Boolean(Xl(o)&&o.add)?r.add(t):void 0;var o}function Jl({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&!0!==t[n];return t[n]=!1,r}function Ql(e,t,{delay:n=0,transitionOverride:r,type:o}={}){var i;let{transition:s=e.getDefaultTransition(),transitionEnd:a,...l}=t;r&&(s=r);const c=[],u=o&&e.animationState&&e.animationState.getState()[o];for(const t in l){const r=e.getValue(t,null!==(i=e.latestValues[t])&&void 0!==i?i:null),o=l[t];if(void 0===o||u&&Jl(u,t))continue;const a={delay:n,...Hi(s||{},t)};let d=!1;if(window.MotionHandoffAnimation){const n=Kl(e);if(n){const e=window.MotionHandoffAnimation(n,t,Ji);null!==e&&(a.startTime=e,d=!0)}}r.start(Al(t,r,o,e.shouldReduceMotion&&zi.has(t)?{type:!1}:a,e,d,Zl(e,t)));const f=r.animation;f&&c.push(f)}return a&&Promise.all(c).then((()=>{Ji.update((()=>{a&&function(e,t){const n=Ai(e,t);let{transitionEnd:r={},transition:o={},...i}=n||{};i={...i,...r};for(const t in i)$l(e,t,Ll(i[t]))}(e,a)}))})),c}function ec(e,t,n={}){var r;const o=Ai(e,t,\"exit\"===n.type?null===(r=e.presenceContext)||void 0===r?void 0:r.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=o||{};n.transitionOverride&&(i=n.transitionOverride);const s=o?()=>Promise.all(Ql(e,o,n)):()=>Promise.resolve(),a=e.variantChildren&&e.variantChildren.size?(r=0)=>{const{delayChildren:o=0,staggerChildren:s,staggerDirection:a}=i;return function(e,t,n=0,r=0,o=1,i){const s=[],a=(e.variantChildren.size-1)*r,l=1===o?(e=0)=>e*r:(e=0)=>a-e*r;return Array.from(e.variantChildren).sort(tc).forEach(((e,r)=>{e.notify(\"AnimationStart\",t),s.push(ec(e,t,{...i,delay:n+l(r)}).then((()=>e.notify(\"AnimationComplete\",t))))})),Promise.all(s)}(e,t,o+r,s,a,n)}:()=>Promise.resolve(),{when:l}=i;if(l){const[e,t]=\"beforeChildren\"===l?[s,a]:[a,s];return e().then((()=>t()))}return Promise.all([s(),a(n.delay)])}function tc(e,t){return e.sortNodePosition(t)}const nc=[...Ii].reverse(),rc=Ii.length;function oc(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function ic(){return{animate:oc(!0),whileInView:oc(),whileHover:oc(),whileTap:oc(),whileDrag:oc(),whileFocus:oc(),exit:oc()}}class sc{constructor(e){this.isMounted=!1,this.node=e}update(){}}let ac=0;const lc={animation:{Feature:class extends sc{constructor(e){super(e),e.animationState||(e.animationState=function(e){let t=function(e){return t=>Promise.all(t.map((({animation:t,options:n})=>function(e,t,n={}){let r;if(e.notify(\"AnimationStart\",t),Array.isArray(t)){const o=t.map((t=>ec(e,t,n)));r=Promise.all(o)}else if(\"string\"==typeof t)r=ec(e,t,n);else{const o=\"function\"==typeof t?Ai(e,t,n.custom):t;r=Promise.all(Ql(e,o,n))}return r.then((()=>{e.notify(\"AnimationComplete\",t)}))}(e,t,n))))}(e),n=ic(),r=!0;const o=t=>(n,r)=>{var o;const i=Ai(e,r,\"exit\"===t?null===(o=e.presenceContext)||void 0===o?void 0:o.custom:void 0);if(i){const{transition:e,transitionEnd:t,...r}=i;n={...n,...r,...t}}return n};function i(i){const s=e.getProps(),a=e.getVariantContext(!0)||{},l=[],c=new Set;let u={},d=1/0;for(let t=0;t<rc;t++){const h=nc[t],p=n[h],g=void 0!==s[h]?s[h]:a[h],y=Ri(g),v=h===i?p.isActive:null;!1===v&&(d=t);let b=g===a[h]&&g!==s[h]&&y;if(b&&r&&e.manuallyAnimateOnMount&&(b=!1),p.protectedKeys={...u},!p.isActive&&null===v||!g&&!p.prevProp||Ni(g)||\"boolean\"==typeof g)continue;let x=(f=p.prevProp,(\"string\"==typeof(m=g)?m!==f:!!Array.isArray(m)&&!Mi(m,f))||h===i&&p.isActive&&!b&&y||t>d&&y),w=!1;const S=Array.isArray(g)?g:[g];let k=S.reduce(o(h),{});!1===v&&(k={});const{prevResolvedValues:E={}}=p,C={...E,...k},_=t=>{x=!0,c.has(t)&&(w=!0,c.delete(t)),p.needsAnimating[t]=!0;const n=e.getValue(t);n&&(n.liveStyle=!1)};for(const e in C){const t=k[e],n=E[e];if(u.hasOwnProperty(e))continue;let r=!1;r=Ti(t)&&Ti(n)?!Mi(t,n):t!==n,r?null!=t?_(e):c.add(e):void 0!==t&&c.has(e)?_(e):p.protectedKeys[e]=!0}p.prevProp=g,p.prevResolvedValues=k,p.isActive&&(u={...u,...k}),r&&e.blockInitialAnimation&&(x=!1),!x||b&&!w||l.push(...S.map((e=>({animation:e,options:{type:h}}))))}var f,m;if(c.size){const t={};c.forEach((n=>{const r=e.getBaseTarget(n),o=e.getValue(n);o&&(o.liveStyle=!0),t[n]=null!=r?r:null})),l.push({animation:t})}let h=Boolean(l.length);return!r||!1!==s.initial&&s.initial!==s.animate||e.manuallyAnimateOnMount||(h=!1),r=!1,h?t(l):Promise.resolve()}return{animateChanges:i,setActive:function(t,r){var o;if(n[t].isActive===r)return Promise.resolve();null===(o=e.variantChildren)||void 0===o||o.forEach((e=>{var n;return null===(n=e.animationState)||void 0===n?void 0:n.setActive(t,r)})),n[t].isActive=r;const s=i(t);for(const e in n)n[e].protectedKeys={};return s},setAnimateFunction:function(n){t=n(e)},getState:()=>n,reset:()=>{n=ic(),r=!0}}}(e))}updateAnimationControlsSubscription(){const{animate:e}=this.node.getProps();Ni(e)&&(this.unmountControls=e.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:e}=this.node.getProps(),{animate:t}=this.node.prevProps||{};e!==t&&this.updateAnimationControlsSubscription()}unmount(){var e;this.node.animationState.reset(),null===(e=this.unmountControls)||void 0===e||e.call(this)}}},exit:{Feature:class extends sc{constructor(){super(...arguments),this.id=ac++}update(){if(!this.node.presenceContext)return;const{isPresent:e,onExitComplete:t}=this.node.presenceContext,{isPresent:n}=this.node.prevPresenceContext||{};if(!this.node.animationState||e===n)return;const r=this.node.animationState.setActive(\"exit\",!e);t&&!e&&r.then((()=>t(this.id)))}mount(){const{register:e}=this.node.presenceContext||{};e&&(this.unmount=e(this.id))}unmount(){}}}},cc=e=>\"mouse\"===e.pointerType?\"number\"!=typeof e.button||e.button<=0:!1!==e.isPrimary;function uc(e,t=\"page\"){return{point:{x:e[`${t}X`],y:e[`${t}Y`]}}}const dc=e=>t=>cc(t)&&e(t,uc(t));function fc(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function mc(e,t,n,r){return fc(e,t,dc(n),r)}const hc=(e,t)=>Math.abs(e-t);class pc{constructor(e,t,{transformPagePoint:n,contextWindow:r,dragSnapToOrigin:o=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!this.lastMoveEvent||!this.lastMoveEventInfo)return;const e=vc(this.lastMoveEventInfo,this.history),t=null!==this.startEvent,n=function(e,t){const n=hc(e.x,t.x),r=hc(e.y,t.y);return Math.sqrt(n**2+r**2)}(e.offset,{x:0,y:0})>=3;if(!t&&!n)return;const{point:r}=e,{timestamp:o}=es;this.history.push({...r,timestamp:o});const{onStart:i,onMove:s}=this.handlers;t||(i&&i(this.lastMoveEvent,e),this.startEvent=this.lastMoveEvent),s&&s(this.lastMoveEvent,e)},this.handlePointerMove=(e,t)=>{this.lastMoveEvent=e,this.lastMoveEventInfo=gc(t,this.transformPagePoint),Ji.update(this.updatePoint,!0)},this.handlePointerUp=(e,t)=>{this.end();const{onEnd:n,onSessionEnd:r,resumeAnimation:o}=this.handlers;if(this.dragSnapToOrigin&&o&&o(),!this.lastMoveEvent||!this.lastMoveEventInfo)return;const i=vc(\"pointercancel\"===e.type?this.lastMoveEventInfo:gc(t,this.transformPagePoint),this.history);this.startEvent&&n&&n(e,i),r&&r(e,i)},!cc(e))return;this.dragSnapToOrigin=o,this.handlers=t,this.transformPagePoint=n,this.contextWindow=r||window;const i=gc(uc(e),this.transformPagePoint),{point:s}=i,{timestamp:a}=es;this.history=[{...s,timestamp:a}];const{onSessionStart:l}=t;l&&l(e,vc(i,this.history)),this.removeListeners=rl(mc(this.contextWindow,\"pointermove\",this.handlePointerMove),mc(this.contextWindow,\"pointerup\",this.handlePointerUp),mc(this.contextWindow,\"pointercancel\",this.handlePointerUp))}updateHandlers(e){this.handlers=e}end(){this.removeListeners&&this.removeListeners(),Qi(this.updatePoint)}}function gc(e,t){return t?{point:t(e.point)}:e}function yc(e,t){return{x:e.x-t.x,y:e.y-t.y}}function vc({point:e},t){return{point:e,delta:yc(e,xc(t)),offset:yc(e,bc(t)),velocity:wc(t,.1)}}function bc(e){return e[0]}function xc(e){return e[e.length-1]}function wc(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const o=xc(e);for(;n>=0&&(r=e[n],!(o.timestamp-r.timestamp>Bi(t)));)n--;if(!r)return{x:0,y:0};const i=Wi(o.timestamp-r.timestamp);if(0===i)return{x:0,y:0};const s={x:(o.x-r.x)/i,y:(o.y-r.y)/i};return s.x===1/0&&(s.x=0),s.y===1/0&&(s.y=0),s}function Sc(e){let t=null;return()=>null===t&&(t=e,()=>{t=null})}const kc=Sc(\"dragHorizontal\"),Ec=Sc(\"dragVertical\");function Cc(e){let t=!1;if(\"y\"===e)t=Ec();else if(\"x\"===e)t=kc();else{const e=kc(),n=Ec();e&&n?t=()=>{e(),n()}:(e&&e(),n&&n())}return t}function _c(){const e=Cc(!0);return!e||(e(),!1)}function Pc(e){return e&&\"object\"==typeof e&&Object.prototype.hasOwnProperty.call(e,\"current\")}const Oc=.9999,Nc=1.0001,Tc=-.01,Mc=.01;function Rc(e){return e.max-e.min}function Dc(e,t,n,r=.5){e.origin=r,e.originPoint=il(t.min,t.max,e.origin),e.scale=Rc(n)/Rc(t),e.translate=il(n.min,n.max,e.origin)-e.originPoint,(e.scale>=Oc&&e.scale<=Nc||isNaN(e.scale))&&(e.scale=1),(e.translate>=Tc&&e.translate<=Mc||isNaN(e.translate))&&(e.translate=0)}function jc(e,t,n,r){Dc(e.x,t.x,n.x,r?r.originX:void 0),Dc(e.y,t.y,n.y,r?r.originY:void 0)}function Ac(e,t,n){e.min=n.min+t.min,e.max=e.min+Rc(t)}function Ic(e,t,n){e.min=t.min-n.min,e.max=e.min+Rc(t)}function Lc(e,t,n){Ic(e.x,t.x,n.x),Ic(e.y,t.y,n.y)}function Fc(e,t,n){return{min:void 0!==t?e.min+t:void 0,max:void 0!==n?e.max+n-(e.max-e.min):void 0}}function zc(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.min<e.max-e.min&&([n,r]=[r,n]),{min:n,max:r}}const Bc=.35;function Wc(e,t,n){return{min:Vc(e,t),max:Vc(e,n)}}function Vc(e,t){return\"number\"==typeof e?e:e[t]||0}const Uc=()=>({x:{translate:0,scale:1,origin:0,originPoint:0},y:{translate:0,scale:1,origin:0,originPoint:0}}),$c=()=>({x:{min:0,max:0},y:{min:0,max:0}});function Yc(e){return[e(\"x\"),e(\"y\")]}function Hc({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function Kc(e){return void 0===e||1===e}function qc({scale:e,scaleX:t,scaleY:n}){return!Kc(e)||!Kc(t)||!Kc(n)}function Gc(e){return qc(e)||Xc(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Xc(e){return Zc(e.x)||Zc(e.y)}function Zc(e){return e&&\"0%\"!==e}function Jc(e,t,n){return n+t*(e-n)}function Qc(e,t,n,r,o){return void 0!==o&&(e=Jc(e,o,r)),Jc(e,n,r)+t}function eu(e,t=0,n=1,r,o){e.min=Qc(e.min,t,n,r,o),e.max=Qc(e.max,t,n,r,o)}function tu(e,{x:t,y:n}){eu(e.x,t.translate,t.scale,t.originPoint),eu(e.y,n.translate,n.scale,n.originPoint)}const nu=.999999999999,ru=1.0000000000001;function ou(e,t){e.min=e.min+t,e.max=e.max+t}function iu(e,t,n,r,o=.5){eu(e,t,n,il(e.min,e.max,o),r)}function su(e,t){iu(e.x,t.x,t.scaleX,t.scale,t.originX),iu(e.y,t.y,t.scaleY,t.scale,t.originY)}function au(e,t){return Hc(function(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}(e.getBoundingClientRect(),t))}const lu=({current:e})=>e?e.ownerDocument.defaultView:null,cu=new WeakMap;class uu{constructor(e){this.openGlobalLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=$c(),this.visualElement=e}start(e,{snapToCursor:t=!1}={}){const{presenceContext:n}=this.visualElement;if(n&&!1===n.isPresent)return;const{dragSnapToOrigin:r}=this.getProps();this.panSession=new pc(e,{onSessionStart:e=>{const{dragSnapToOrigin:n}=this.getProps();n?this.pauseAnimation():this.stopAnimation(),t&&this.snapToCursor(uc(e,\"page\").point)},onStart:(e,t)=>{var n;const{drag:r,dragPropagation:o,onDragStart:i}=this.getProps();if(r&&!o&&(this.openGlobalLock&&this.openGlobalLock(),this.openGlobalLock=Cc(r),!this.openGlobalLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Yc((e=>{let t=this.getAxisMotionValue(e).get()||0;if(Es.test(t)){const{projection:n}=this.visualElement;if(n&&n.layout){const r=n.layout.layoutBox[e];r&&(t=Rc(r)*(parseFloat(t)/100))}}this.originPoint[e]=t})),i&&Ji.postRender((()=>i(e,t))),null===(n=this.removeWillChange)||void 0===n||n.call(this),this.removeWillChange=Zl(this.visualElement,\"transform\");const{animationState:s}=this.visualElement;s&&s.setActive(\"whileDrag\",!0)},onMove:(e,t)=>{const{dragPropagation:n,dragDirectionLock:r,onDirectionLock:o,onDrag:i}=this.getProps();if(!n&&!this.openGlobalLock)return;const{offset:s}=t;if(r&&null===this.currentDirection)return this.currentDirection=function(e,t=10){let n=null;return Math.abs(e.y)>t?n=\"y\":Math.abs(e.x)>t&&(n=\"x\"),n}(s),void(null!==this.currentDirection&&o&&o(this.currentDirection));this.updateAxis(\"x\",t.point,s),this.updateAxis(\"y\",t.point,s),this.visualElement.render(),i&&i(e,t)},onSessionEnd:(e,t)=>this.stop(e,t),resumeAnimation:()=>Yc((e=>{var t;return\"paused\"===this.getAnimationState(e)&&(null===(t=this.getAxisMotionValue(e).animation)||void 0===t?void 0:t.play())}))},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:r,contextWindow:lu(this.visualElement)})}stop(e,t){var n;null===(n=this.removeWillChange)||void 0===n||n.call(this);const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:o}=t;this.startAnimation(o);const{onDragEnd:i}=this.getProps();i&&Ji.postRender((()=>i(e,t)))}cancel(){this.isDragging=!1;const{projection:e,animationState:t}=this.visualElement;e&&(e.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:n}=this.getProps();!n&&this.openGlobalLock&&(this.openGlobalLock(),this.openGlobalLock=null),t&&t.setActive(\"whileDrag\",!1)}updateAxis(e,t,n){const{drag:r}=this.getProps();if(!n||!du(e,r,this.currentDirection))return;const o=this.getAxisMotionValue(e);let i=this.originPoint[e]+n[e];this.constraints&&this.constraints[e]&&(i=function(e,{min:t,max:n},r){return void 0!==t&&e<t?e=r?il(t,e,r.min):Math.max(e,t):void 0!==n&&e>n&&(e=r?il(n,e,r.max):Math.min(e,n)),e}(i,this.constraints[e],this.elastic[e])),o.set(i)}resolveConstraints(){var e;const{dragConstraints:t,dragElastic:n}=this.getProps(),r=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):null===(e=this.visualElement.projection)||void 0===e?void 0:e.layout,o=this.constraints;t&&Pc(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):this.constraints=!(!t||!r)&&function(e,{top:t,left:n,bottom:r,right:o}){return{x:Fc(e.x,n,o),y:Fc(e.y,t,r)}}(r.layoutBox,t),this.elastic=function(e=Bc){return!1===e?e=0:!0===e&&(e=Bc),{x:Wc(e,\"left\",\"right\"),y:Wc(e,\"top\",\"bottom\")}}(n),o!==this.constraints&&r&&this.constraints&&!this.hasMutatedConstraints&&Yc((e=>{!1!==this.constraints&&this.getAxisMotionValue(e)&&(this.constraints[e]=function(e,t){const n={};return void 0!==t.min&&(n.min=t.min-e.min),void 0!==t.max&&(n.max=t.max-e.min),n}(r.layoutBox[e],this.constraints[e]))}))}resolveRefConstraints(){const{dragConstraints:e,onMeasureDragConstraints:t}=this.getProps();if(!e||!Pc(e))return!1;const n=e.current;os(null!==n,\"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\");const{projection:r}=this.visualElement;if(!r||!r.layout)return!1;const o=function(e,t,n){const r=au(e,n),{scroll:o}=t;return o&&(ou(r.x,o.offset.x),ou(r.y,o.offset.y)),r}(n,r.root,this.visualElement.getTransformPagePoint());let i=function(e,t){return{x:zc(e.x,t.x),y:zc(e.y,t.y)}}(r.layout.layoutBox,o);if(t){const e=t(function({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}(i));this.hasMutatedConstraints=!!e,e&&(i=Hc(e))}return i}startAnimation(e){const{drag:t,dragMomentum:n,dragElastic:r,dragTransition:o,dragSnapToOrigin:i,onDragTransitionEnd:s}=this.getProps(),a=this.constraints||{},l=Yc((s=>{if(!du(s,t,this.currentDirection))return;let l=a&&a[s]||{};i&&(l={min:0,max:0});const c=r?200:1e6,u=r?40:1e7,d={type:\"inertia\",velocity:n?e[s]:0,bounceStiffness:c,bounceDamping:u,timeConstant:750,restDelta:1,restSpeed:10,...o,...l};return this.startAxisValueAnimation(s,d)}));return Promise.all(l).then(s)}startAxisValueAnimation(e,t){const n=this.getAxisMotionValue(e);return n.start(Al(e,n,0,t,this.visualElement,!1,Zl(this.visualElement,e)))}stopAnimation(){Yc((e=>this.getAxisMotionValue(e).stop()))}pauseAnimation(){Yc((e=>{var t;return null===(t=this.getAxisMotionValue(e).animation)||void 0===t?void 0:t.pause()}))}getAnimationState(e){var t;return null===(t=this.getAxisMotionValue(e).animation)||void 0===t?void 0:t.state}getAxisMotionValue(e){const t=`_drag${e.toUpperCase()}`,n=this.visualElement.getProps();return n[t]||this.visualElement.getValue(e,(n.initial?n.initial[e]:void 0)||0)}snapToCursor(e){Yc((t=>{const{drag:n}=this.getProps();if(!du(t,n,this.currentDirection))return;const{projection:r}=this.visualElement,o=this.getAxisMotionValue(t);if(r&&r.layout){const{min:n,max:i}=r.layout.layoutBox[t];o.set(e[t]-il(n,i,.5))}}))}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:e,dragConstraints:t}=this.getProps(),{projection:n}=this.visualElement;if(!Pc(t)||!n||!this.constraints)return;this.stopAnimation();const r={x:0,y:0};Yc((e=>{const t=this.getAxisMotionValue(e);if(t&&!1!==this.constraints){const n=t.get();r[e]=function(e,t){let n=.5;const r=Rc(e),o=Rc(t);return o>r?n=ol(t.min,t.max-r,e.min):r>o&&(n=ol(e.min,e.max-o,t.min)),ms(0,1,n)}({min:n,max:n},this.constraints[e])}}));const{transformTemplate:o}=this.visualElement.getProps();this.visualElement.current.style.transform=o?o({},\"\"):\"none\",n.root&&n.root.updateScroll(),n.updateLayout(),this.resolveConstraints(),Yc((t=>{if(!du(t,e,null))return;const n=this.getAxisMotionValue(t),{min:o,max:i}=this.constraints[t];n.set(il(o,i,r[t]))}))}addListeners(){if(!this.visualElement.current)return;cu.set(this.visualElement,this);const e=mc(this.visualElement.current,\"pointerdown\",(e=>{const{drag:t,dragListener:n=!0}=this.getProps();t&&n&&this.start(e)})),t=()=>{const{dragConstraints:e}=this.getProps();Pc(e)&&e.current&&(this.constraints=this.resolveRefConstraints())},{projection:n}=this.visualElement,r=n.addEventListener(\"measure\",t);n&&!n.layout&&(n.root&&n.root.updateScroll(),n.updateLayout()),Ji.read(t);const o=fc(window,\"resize\",(()=>this.scalePositionWithinConstraints())),i=n.addEventListener(\"didUpdate\",(({delta:e,hasLayoutChanged:t})=>{this.isDragging&&t&&(Yc((t=>{const n=this.getAxisMotionValue(t);n&&(this.originPoint[t]+=e[t].translate,n.set(n.get()+e[t].translate))})),this.visualElement.render())}));return()=>{o(),e(),r(),i&&i()}}getProps(){const e=this.visualElement.getProps(),{drag:t=!1,dragDirectionLock:n=!1,dragPropagation:r=!1,dragConstraints:o=!1,dragElastic:i=Bc,dragMomentum:s=!0}=e;return{...e,drag:t,dragDirectionLock:n,dragPropagation:r,dragConstraints:o,dragElastic:i,dragMomentum:s}}}function du(e,t,n){return!(!0!==t&&t!==e||null!==n&&n!==e)}const fu=e=>(t,n)=>{e&&Ji.postRender((()=>e(t,n)))};var mu=n(848);const hu=(0,a.createContext)(null),pu=(0,a.createContext)({}),gu=(0,a.createContext)({}),yu={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function vu(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const bu={correct:(e,t)=>{if(!t.target)return e;if(\"string\"==typeof e){if(!Cs.test(e))return e;e=parseFloat(e)}return`${vu(e,t.target.x)}% ${vu(e,t.target.y)}%`}},xu={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,o=la.parse(e);if(o.length>5)return r;const i=la.createTransformer(e),s=\"number\"!=typeof o[0]?1:0,a=n.x.scale*t.x,l=n.y.scale*t.y;o[0+s]/=a,o[1+s]/=l;const c=il(a,l,.5);return\"number\"==typeof o[2+s]&&(o[2+s]/=c),\"number\"==typeof o[3+s]&&(o[3+s]/=c),i(o)}},wu={},{schedule:Su,cancel:ku}=Zi(queueMicrotask,!1);class Eu extends a.Component{componentDidMount(){const{visualElement:e,layoutGroup:t,switchLayoutGroup:n,layoutId:r}=this.props,{projection:o}=e;var i;i=_u,Object.assign(wu,i),o&&(t.group&&t.group.add(o),n&&n.register&&r&&n.register(o),o.root.didUpdate(),o.addEventListener(\"animationComplete\",(()=>{this.safeToRemove()})),o.setOptions({...o.options,onExitComplete:()=>this.safeToRemove()})),yu.hasEverUpdated=!0}getSnapshotBeforeUpdate(e){const{layoutDependency:t,visualElement:n,drag:r,isPresent:o}=this.props,i=n.projection;return i?(i.isPresent=o,r||e.layoutDependency!==t||void 0===t?i.willUpdate():this.safeToRemove(),e.isPresent!==o&&(o?i.promote():i.relegate()||Ji.postRender((()=>{const e=i.getStack();e&&e.members.length||this.safeToRemove()}))),null):null}componentDidUpdate(){const{projection:e}=this.props.visualElement;e&&(e.root.didUpdate(),Su.postRender((()=>{!e.currentAnimation&&e.isLead()&&this.safeToRemove()})))}componentWillUnmount(){const{visualElement:e,layoutGroup:t,switchLayoutGroup:n}=this.props,{projection:r}=e;r&&(r.scheduleCheckAfterUnmount(),t&&t.group&&t.group.remove(r),n&&n.deregister&&n.deregister(r))}safeToRemove(){const{safeToRemove:e}=this.props;e&&e()}render(){return null}}function Cu(e){const[t,n]=function(){const e=(0,a.useContext)(hu);if(null===e)return[!0,null];const{isPresent:t,onExitComplete:n,register:r}=e,o=(0,a.useId)();(0,a.useEffect)((()=>r(o)),[]);const i=(0,a.useCallback)((()=>n&&n(o)),[o,n]);return!t&&n?[!1,i]:[!0]}(),r=(0,a.useContext)(pu);return(0,mu.jsx)(Eu,{...e,layoutGroup:r,switchLayoutGroup:(0,a.useContext)(gu),isPresent:t,safeToRemove:n})}const _u={borderRadius:{...bu,applyTo:[\"borderTopLeftRadius\",\"borderTopRightRadius\",\"borderBottomLeftRadius\",\"borderBottomRightRadius\"]},borderTopLeftRadius:bu,borderTopRightRadius:bu,borderBottomLeftRadius:bu,borderBottomRightRadius:bu,boxShadow:xu},Pu=[\"TopLeft\",\"TopRight\",\"BottomLeft\",\"BottomRight\"],Ou=Pu.length,Nu=e=>\"string\"==typeof e?parseFloat(e):e,Tu=e=>\"number\"==typeof e||Cs.test(e);function Mu(e,t){return void 0!==e[t]?e[t]:e.borderRadius}const Ru=ju(0,.5,Ga),Du=ju(.5,.95,Gi);function ju(e,t,n){return r=>r<e?0:r>t?1:n(ol(e,t,r))}function Au(e,t){e.min=t.min,e.max=t.max}function Iu(e,t){Au(e.x,t.x),Au(e.y,t.y)}function Lu(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Fu(e,t,n,r,o){return e=Jc(e-=t,1/n,r),void 0!==o&&(e=Jc(e,1/o,r)),e}function zu(e,t,[n,r,o],i,s){!function(e,t=0,n=1,r=.5,o,i=e,s=e){if(Es.test(t)&&(t=parseFloat(t),t=il(s.min,s.max,t/100)-s.min),\"number\"!=typeof t)return;let a=il(i.min,i.max,r);e===i&&(a-=t),e.min=Fu(e.min,t,n,a,o),e.max=Fu(e.max,t,n,a,o)}(e,t[n],t[r],t[o],t.scale,i,s)}const Bu=[\"x\",\"scaleX\",\"originX\"],Wu=[\"y\",\"scaleY\",\"originY\"];function Vu(e,t,n,r){zu(e.x,t,Bu,n?n.x:void 0,r?r.x:void 0),zu(e.y,t,Wu,n?n.y:void 0,r?r.y:void 0)}function Uu(e){return 0===e.translate&&1===e.scale}function $u(e){return Uu(e.x)&&Uu(e.y)}function Yu(e,t){return e.min===t.min&&e.max===t.max}function Hu(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function Ku(e,t){return Hu(e.x,t.x)&&Hu(e.y,t.y)}function qu(e){return Rc(e.x)/Rc(e.y)}function Gu(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class Xu{constructor(){this.members=[]}add(e){Fl(this.members,e),e.scheduleRender()}remove(e){if(zl(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){const e=this.members[this.members.length-1];e&&this.promote(e)}}relegate(e){const t=this.members.findIndex((t=>e===t));if(0===t)return!1;let n;for(let e=t;e>=0;e--){const t=this.members[e];if(!1!==t.isPresent){n=t;break}}return!!n&&(this.promote(n),!0)}promote(e,t){const n=this.lead;if(e!==n&&(this.prevLead=n,this.lead=e,e.show(),n)){n.instance&&n.scheduleRender(),e.scheduleRender(),e.resumeFrom=n,t&&(e.resumeFrom.preserveOpacity=!0),n.snapshot&&(e.snapshot=n.snapshot,e.snapshot.latestValues=n.animationValues||n.latestValues),e.root&&e.root.isUpdating&&(e.isLayoutDirty=!0);const{crossfade:r}=e.options;!1===r&&n.hide()}}exitAnimationComplete(){this.members.forEach((e=>{const{options:t,resumingFrom:n}=e;t.onExitComplete&&t.onExitComplete(),n&&n.options.onExitComplete&&n.options.onExitComplete()}))}scheduleRender(){this.members.forEach((e=>{e.instance&&e.scheduleRender(!1)}))}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}const Zu=(e,t)=>e.depth-t.depth;class Ju{constructor(){this.children=[],this.isDirty=!1}add(e){Fl(this.children,e),this.isDirty=!0}remove(e){zl(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(Zu),this.isDirty=!1,this.children.forEach(e)}}function Qu(e){const t=Xl(e)?e.get():e;return Il(t)?t.toValue():t}const ed={type:\"projectionFrame\",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},td=\"undefined\"!=typeof window&&void 0!==window.MotionDebug,nd=[\"\",\"X\",\"Y\",\"Z\"],rd={visibility:\"hidden\"};let od=0;function id(e,t,n,r){const{latestValues:o}=t;o[e]&&(n[e]=o[e],t.setStaticValue(e,0),r&&(r[e]=0))}function sd(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=Kl(t);if(window.MotionHasOptimisedAnimation(n,\"transform\")){const{layout:t,layoutId:r}=e.options;window.MotionCancelOptimisedAnimation(n,\"transform\",Ji,!(t||r))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&sd(r)}function ad({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:o}){return class{constructor(e={},n=(null==t?void 0:t())){this.id=od++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,td&&(ed.totalNodes=ed.resolvedTargetDeltas=ed.recalculatedProjection=0),this.nodes.forEach(ud),this.nodes.forEach(yd),this.nodes.forEach(vd),this.nodes.forEach(dd),td&&window.MotionDebug.record(ed)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=e,this.root=n?n.root||n:this,this.path=n?[...n.path,n]:[],this.parent=n,this.depth=n?n.depth+1:0;for(let e=0;e<this.path.length;e++)this.path[e].shouldResetTransform=!0;this.root===this&&(this.nodes=new Ju)}addEventListener(e,t){return this.eventHandlers.has(e)||this.eventHandlers.set(e,new Bl),this.eventHandlers.get(e).add(t)}notifyListeners(e,...t){const n=this.eventHandlers.get(e);n&&n.notify(...t)}hasListeners(e){return this.eventHandlers.has(e)}mount(t,n=this.root.hasTreeAnimated){if(this.instance)return;var r;this.isSVG=(r=t)instanceof SVGElement&&\"svg\"!==r.tagName,this.instance=t;const{layoutId:o,layout:i,visualElement:s}=this.options;if(s&&!s.current&&s.mount(t),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),n&&(i||o)&&(this.isLayoutDirty=!0),e){let n;const r=()=>this.root.updateBlockedByResize=!1;e(t,(()=>{this.root.updateBlockedByResize=!0,n&&n(),n=function(e){const t=ka.now(),n=({timestamp:r})=>{const o=r-t;o>=250&&(Qi(n),e(o-250))};return Ji.read(n,!0),()=>Qi(n)}(r),yu.hasAnimatedSinceResize&&(yu.hasAnimatedSinceResize=!1,this.nodes.forEach(gd))}))}o&&this.root.registerSharedNode(o,this),!1!==this.options.animate&&s&&(o||i)&&this.addEventListener(\"didUpdate\",(({delta:e,hasLayoutChanged:t,hasRelativeTargetChanged:n,layout:r})=>{if(this.isTreeAnimationBlocked())return this.target=void 0,void(this.relativeTarget=void 0);const o=this.options.transition||s.getDefaultTransition()||Ed,{onLayoutAnimationStart:i,onLayoutAnimationComplete:a}=s.getProps(),l=!this.targetLayout||!Ku(this.targetLayout,r)||n,c=!t&&n;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||c||t&&(l||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(e,c);const t={...Hi(o,\"layout\"),onPlay:i,onComplete:a};(s.shouldReduceMotion||this.options.layoutRoot)&&(t.delay=0,t.type=!1),this.startAnimation(t)}else t||gd(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=r}))}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const e=this.getStack();e&&e.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,Qi(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(bd),this.animationId++)}getTransformTemplate(){const{visualElement:e}=this.options;return e&&e.getProps().transformTemplate}willUpdate(e=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked())return void(this.options.onExitComplete&&this.options.onExitComplete());if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&sd(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let e=0;e<this.path.length;e++){const t=this.path[e];t.shouldResetTransform=!0,t.updateScroll(\"snapshot\"),t.options.layoutRoot&&t.willUpdate(!1)}const{layoutId:t,layout:n}=this.options;if(void 0===t&&!n)return;const r=this.getTransformTemplate();this.prevTransformTemplateValue=r?r(this.latestValues,\"\"):void 0,this.updateSnapshot(),e&&this.notifyListeners(\"willUpdate\")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked())return this.unblockUpdate(),this.clearAllSnapshots(),void this.nodes.forEach(md);this.isUpdating||this.nodes.forEach(hd),this.isUpdating=!1,this.nodes.forEach(pd),this.nodes.forEach(ld),this.nodes.forEach(cd),this.clearAllSnapshots();const e=ka.now();es.delta=ms(0,1e3/60,e-es.timestamp),es.timestamp=e,es.isProcessing=!0,ts.update.process(es),ts.preRender.process(es),ts.render.process(es),es.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,Su.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(fd),this.sharedNodes.forEach(xd)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,Ji.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){Ji.postRender((()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()}))}updateSnapshot(){!this.snapshot&&this.instance&&(this.snapshot=this.measure())}updateLayout(){if(!this.instance)return;if(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead()||this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let e=0;e<this.path.length;e++)this.path[e].updateScroll();const e=this.layout;this.layout=this.measure(!1),this.layoutCorrected=$c(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners(\"measure\",this.layout.layoutBox);const{visualElement:t}=this.options;t&&t.notify(\"LayoutMeasure\",this.layout.layoutBox,e?e.layoutBox:void 0)}updateScroll(e=\"measure\"){let t=Boolean(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===e&&(t=!1),t){const t=r(this.instance);this.scroll={animationId:this.root.animationId,phase:e,isRoot:t,offset:n(this.instance),wasRoot:this.scroll?this.scroll.isRoot:t}}}resetTransform(){if(!o)return;const e=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,t=this.projectionDelta&&!$u(this.projectionDelta),n=this.getTransformTemplate(),r=n?n(this.latestValues,\"\"):void 0,i=r!==this.prevTransformTemplateValue;e&&(t||Gc(this.latestValues)||i)&&(o(this.instance,r),this.shouldResetTransform=!1,this.scheduleRender())}measure(e=!0){const t=this.measurePageBox();let n=this.removeElementScroll(t);var r;return e&&(n=this.removeTransform(n)),Pd((r=n).x),Pd(r.y),{animationId:this.root.animationId,measuredBox:t,layoutBox:n,latestValues:{},source:this.id}}measurePageBox(){var e;const{visualElement:t}=this.options;if(!t)return $c();const n=t.measureViewportBox();if(!(null===(e=this.scroll)||void 0===e?void 0:e.wasRoot)&&!this.path.some(Nd)){const{scroll:e}=this.root;e&&(ou(n.x,e.offset.x),ou(n.y,e.offset.y))}return n}removeElementScroll(e){var t;const n=$c();if(Iu(n,e),null===(t=this.scroll)||void 0===t?void 0:t.wasRoot)return n;for(let t=0;t<this.path.length;t++){const r=this.path[t],{scroll:o,options:i}=r;r!==this.root&&o&&i.layoutScroll&&(o.wasRoot&&Iu(n,e),ou(n.x,o.offset.x),ou(n.y,o.offset.y))}return n}applyTransform(e,t=!1){const n=$c();Iu(n,e);for(let e=0;e<this.path.length;e++){const r=this.path[e];!t&&r.options.layoutScroll&&r.scroll&&r!==r.root&&su(n,{x:-r.scroll.offset.x,y:-r.scroll.offset.y}),Gc(r.latestValues)&&su(n,r.latestValues)}return Gc(this.latestValues)&&su(n,this.latestValues),n}removeTransform(e){const t=$c();Iu(t,e);for(let e=0;e<this.path.length;e++){const n=this.path[e];if(!n.instance)continue;if(!Gc(n.latestValues))continue;qc(n.latestValues)&&n.updateSnapshot();const r=$c();Iu(r,n.measurePageBox()),Vu(t,n.latestValues,n.snapshot?n.snapshot.layoutBox:void 0,r)}return Gc(this.latestValues)&&Vu(t,this.latestValues),t}setTargetDelta(e){this.targetDelta=e,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(e){this.options={...this.options,...e,crossfade:void 0===e.crossfade||e.crossfade}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==es.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(e=!1){var t;const n=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=n.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=n.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=n.isSharedProjectionDirty);const r=Boolean(this.resumingFrom)||this!==n;if(!(e||r&&this.isSharedProjectionDirty||this.isProjectionDirty||(null===(t=this.parent)||void 0===t?void 0:t.isProjectionDirty)||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:o,layoutId:i}=this.options;if(this.layout&&(o||i)){if(this.resolvedRelativeTargetAt=es.timestamp,!this.targetDelta&&!this.relativeTarget){const e=this.getClosestProjectingParent();e&&e.layout&&1!==this.animationProgress?(this.relativeParent=e,this.forceRelativeParentToResolveTarget(),this.relativeTarget=$c(),this.relativeTargetOrigin=$c(),Lc(this.relativeTargetOrigin,this.layout.layoutBox,e.layout.layoutBox),Iu(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}if(this.relativeTarget||this.targetDelta){var s,a,l;if(this.target||(this.target=$c(),this.targetWithTransforms=$c()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),s=this.target,a=this.relativeTarget,l=this.relativeParent.target,Ac(s.x,a.x,l.x),Ac(s.y,a.y,l.y)):this.targetDelta?(Boolean(this.resumingFrom)?this.target=this.applyTransform(this.layout.layoutBox):Iu(this.target,this.layout.layoutBox),tu(this.target,this.targetDelta)):Iu(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget){this.attemptToResolveRelativeTarget=!1;const e=this.getClosestProjectingParent();e&&Boolean(e.resumingFrom)===Boolean(this.resumingFrom)&&!e.options.layoutScroll&&e.target&&1!==this.animationProgress?(this.relativeParent=e,this.forceRelativeParentToResolveTarget(),this.relativeTarget=$c(),this.relativeTargetOrigin=$c(),Lc(this.relativeTargetOrigin,this.target,e.target),Iu(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}td&&ed.resolvedTargetDeltas++}}}getClosestProjectingParent(){if(this.parent&&!qc(this.parent.latestValues)&&!Xc(this.parent.latestValues))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return Boolean((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}calcProjection(){var e;const t=this.getLead(),n=Boolean(this.resumingFrom)||this!==t;let r=!0;if((this.isProjectionDirty||(null===(e=this.parent)||void 0===e?void 0:e.isProjectionDirty))&&(r=!1),n&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(r=!1),this.resolvedRelativeTargetAt===es.timestamp&&(r=!1),r)return;const{layout:o,layoutId:i}=this.options;if(this.isTreeAnimating=Boolean(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!o&&!i)return;Iu(this.layoutCorrected,this.layout.layoutBox);const s=this.treeScale.x,a=this.treeScale.y;!function(e,t,n,r=!1){const o=n.length;if(!o)return;let i,s;t.x=t.y=1;for(let a=0;a<o;a++){i=n[a],s=i.projectionDelta;const{visualElement:o}=i.options;o&&o.props.style&&\"contents\"===o.props.style.display||(r&&i.options.layoutScroll&&i.scroll&&i!==i.root&&su(e,{x:-i.scroll.offset.x,y:-i.scroll.offset.y}),s&&(t.x*=s.x.scale,t.y*=s.y.scale,tu(e,s)),r&&Gc(i.latestValues)&&su(e,i.latestValues))}t.x<ru&&t.x>nu&&(t.x=1),t.y<ru&&t.y>nu&&(t.y=1)}(this.layoutCorrected,this.treeScale,this.path,n),!t.layout||t.target||1===this.treeScale.x&&1===this.treeScale.y||(t.target=t.layout.layoutBox,t.targetWithTransforms=$c());const{target:l}=t;l?(this.projectionDelta&&this.prevProjectionDelta?(Lu(this.prevProjectionDelta.x,this.projectionDelta.x),Lu(this.prevProjectionDelta.y,this.projectionDelta.y)):this.createProjectionDeltas(),jc(this.projectionDelta,this.layoutCorrected,l,this.latestValues),this.treeScale.x===s&&this.treeScale.y===a&&Gu(this.projectionDelta.x,this.prevProjectionDelta.x)&&Gu(this.projectionDelta.y,this.prevProjectionDelta.y)||(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners(\"projectionUpdate\",l)),td&&ed.recalculatedProjection++):this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender())}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(e=!0){var t;if(null===(t=this.options.visualElement)||void 0===t||t.scheduleRender(),e){const e=this.getStack();e&&e.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=Uc(),this.projectionDelta=Uc(),this.projectionDeltaWithTransform=Uc()}setAnimationOrigin(e,t=!1){const n=this.snapshot,r=n?n.latestValues:{},o={...this.latestValues},i=Uc();this.relativeParent&&this.relativeParent.options.layoutRoot||(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!t;const s=$c(),a=(n?n.source:void 0)!==(this.layout?this.layout.source:void 0),l=this.getStack(),c=!l||l.members.length<=1,u=Boolean(a&&!c&&!0===this.options.crossfade&&!this.path.some(kd));let d;this.animationProgress=0,this.mixTargetDelta=t=>{const n=t/1e3;var l,f,m,h,p,g;wd(i.x,e.x,n),wd(i.y,e.y,n),this.setTargetDelta(i),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Lc(s,this.layout.layoutBox,this.relativeParent.layout.layoutBox),m=this.relativeTarget,h=this.relativeTargetOrigin,p=s,g=n,Sd(m.x,h.x,p.x,g),Sd(m.y,h.y,p.y,g),d&&(l=this.relativeTarget,f=d,Yu(l.x,f.x)&&Yu(l.y,f.y))&&(this.isProjectionDirty=!1),d||(d=$c()),Iu(d,this.relativeTarget)),a&&(this.animationValues=o,function(e,t,n,r,o,i){o?(e.opacity=il(0,void 0!==n.opacity?n.opacity:1,Ru(r)),e.opacityExit=il(void 0!==t.opacity?t.opacity:1,0,Du(r))):i&&(e.opacity=il(void 0!==t.opacity?t.opacity:1,void 0!==n.opacity?n.opacity:1,r));for(let o=0;o<Ou;o++){const i=`border${Pu[o]}Radius`;let s=Mu(t,i),a=Mu(n,i);void 0===s&&void 0===a||(s||(s=0),a||(a=0),0===s||0===a||Tu(s)===Tu(a)?(e[i]=Math.max(il(Nu(s),Nu(a),r),0),(Es.test(a)||Es.test(s))&&(e[i]+=\"%\")):e[i]=a)}(t.rotate||n.rotate)&&(e.rotate=il(t.rotate||0,n.rotate||0,r))}(o,r,this.latestValues,n,u,c)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=n},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(e){this.notifyListeners(\"animationStart\"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(Qi(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Ji.update((()=>{yu.hasAnimatedSinceResize=!0,this.currentAnimation=function(e,t,n){const r=Xl(0)?0:Ul(0);return r.start(Al(\"\",r,1e3,n)),r.animation}(0,0,{...e,onUpdate:t=>{this.mixTargetDelta(t),e.onUpdate&&e.onUpdate(t)},onComplete:()=>{e.onComplete&&e.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0}))}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const e=this.getStack();e&&e.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners(\"animationComplete\")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(1e3),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const e=this.getLead();let{targetWithTransforms:t,target:n,layout:r,latestValues:o}=e;if(t&&n&&r){if(this!==e&&this.layout&&r&&Od(this.options.animationType,this.layout.layoutBox,r.layoutBox)){n=this.target||$c();const t=Rc(this.layout.layoutBox.x);n.x.min=e.target.x.min,n.x.max=n.x.min+t;const r=Rc(this.layout.layoutBox.y);n.y.min=e.target.y.min,n.y.max=n.y.min+r}Iu(t,n),su(t,o),jc(this.projectionDeltaWithTransform,this.layoutCorrected,t,o)}}registerSharedNode(e,t){this.sharedNodes.has(e)||this.sharedNodes.set(e,new Xu),this.sharedNodes.get(e).add(t);const n=t.options.initialPromotionConfig;t.promote({transition:n?n.transition:void 0,preserveFollowOpacity:n&&n.shouldPreserveFollowOpacity?n.shouldPreserveFollowOpacity(t):void 0})}isLead(){const e=this.getStack();return!e||e.lead===this}getLead(){var e;const{layoutId:t}=this.options;return t&&(null===(e=this.getStack())||void 0===e?void 0:e.lead)||this}getPrevLead(){var e;const{layoutId:t}=this.options;return t?null===(e=this.getStack())||void 0===e?void 0:e.prevLead:void 0}getStack(){const{layoutId:e}=this.options;if(e)return this.root.sharedNodes.get(e)}promote({needsReset:e,transition:t,preserveFollowOpacity:n}={}){const r=this.getStack();r&&r.promote(this,n),e&&(this.projectionDelta=void 0,this.needsReset=!0),t&&this.setOptions({transition:t})}relegate(){const e=this.getStack();return!!e&&e.relegate(this)}resetSkewAndRotation(){const{visualElement:e}=this.options;if(!e)return;let t=!1;const{latestValues:n}=e;if((n.z||n.rotate||n.rotateX||n.rotateY||n.rotateZ||n.skewX||n.skewY)&&(t=!0),!t)return;const r={};n.z&&id(\"z\",e,r,this.animationValues);for(let t=0;t<nd.length;t++)id(`rotate${nd[t]}`,e,r,this.animationValues),id(`skew${nd[t]}`,e,r,this.animationValues);e.render();for(const t in r)e.setStaticValue(t,r[t]),this.animationValues&&(this.animationValues[t]=r[t]);e.scheduleRender()}getProjectionStyles(e){var t,n;if(!this.instance||this.isSVG)return;if(!this.isVisible)return rd;const r={visibility:\"\"},o=this.getTransformTemplate();if(this.needsReset)return this.needsReset=!1,r.opacity=\"\",r.pointerEvents=Qu(null==e?void 0:e.pointerEvents)||\"\",r.transform=o?o(this.latestValues,\"\"):\"none\",r;const i=this.getLead();if(!this.projectionDelta||!this.layout||!i.target){const t={};return this.options.layoutId&&(t.opacity=void 0!==this.latestValues.opacity?this.latestValues.opacity:1,t.pointerEvents=Qu(null==e?void 0:e.pointerEvents)||\"\"),this.hasProjected&&!Gc(this.latestValues)&&(t.transform=o?o({},\"\"):\"none\",this.hasProjected=!1),t}const s=i.animationValues||i.latestValues;this.applyTransformsToTarget(),r.transform=function(e,t,n){let r=\"\";const o=e.x.translate/t.x,i=e.y.translate/t.y,s=(null==n?void 0:n.z)||0;if((o||i||s)&&(r=`translate3d(${o}px, ${i}px, ${s}px) `),1===t.x&&1===t.y||(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:e,rotate:t,rotateX:o,rotateY:i,skewX:s,skewY:a}=n;e&&(r=`perspective(${e}px) ${r}`),t&&(r+=`rotate(${t}deg) `),o&&(r+=`rotateX(${o}deg) `),i&&(r+=`rotateY(${i}deg) `),s&&(r+=`skewX(${s}deg) `),a&&(r+=`skewY(${a}deg) `)}const a=e.x.scale*t.x,l=e.y.scale*t.y;return 1===a&&1===l||(r+=`scale(${a}, ${l})`),r||\"none\"}(this.projectionDeltaWithTransform,this.treeScale,s),o&&(r.transform=o(s,r.transform));const{x:a,y:l}=this.projectionDelta;r.transformOrigin=`${100*a.origin}% ${100*l.origin}% 0`,i.animationValues?r.opacity=i===this?null!==(n=null!==(t=s.opacity)&&void 0!==t?t:this.latestValues.opacity)&&void 0!==n?n:1:this.preserveOpacity?this.latestValues.opacity:s.opacityExit:r.opacity=i===this?void 0!==s.opacity?s.opacity:\"\":void 0!==s.opacityExit?s.opacityExit:0;for(const e in wu){if(void 0===s[e])continue;const{correct:t,applyTo:n}=wu[e],o=\"none\"===r.transform?s[e]:t(s[e],i);if(n){const e=n.length;for(let t=0;t<e;t++)r[n[t]]=o}else r[e]=o}return this.options.layoutId&&(r.pointerEvents=i===this?Qu(null==e?void 0:e.pointerEvents)||\"\":\"none\"),r}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach((e=>{var t;return null===(t=e.currentAnimation)||void 0===t?void 0:t.stop()})),this.root.nodes.forEach(md),this.root.sharedNodes.clear()}}}function ld(e){e.updateLayout()}function cd(e){var t;const n=(null===(t=e.resumeFrom)||void 0===t?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners(\"didUpdate\")){const{layoutBox:t,measuredBox:r}=e.layout,{animationType:o}=e.options,i=n.source!==e.layout.source;\"size\"===o?Yc((e=>{const r=i?n.measuredBox[e]:n.layoutBox[e],o=Rc(r);r.min=t[e].min,r.max=r.min+o})):Od(o,n.layoutBox,t)&&Yc((r=>{const o=i?n.measuredBox[r]:n.layoutBox[r],s=Rc(t[r]);o.max=o.min+s,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[r].max=e.relativeTarget[r].min+s)}));const s=Uc();jc(s,t,n.layoutBox);const a=Uc();i?jc(a,e.applyTransform(r,!0),n.measuredBox):jc(a,t,n.layoutBox);const l=!$u(s);let c=!1;if(!e.resumeFrom){const r=e.getClosestProjectingParent();if(r&&!r.resumeFrom){const{snapshot:o,layout:i}=r;if(o&&i){const s=$c();Lc(s,n.layoutBox,o.layoutBox);const a=$c();Lc(a,t,i.layoutBox),Ku(s,a)||(c=!0),r.options.layoutRoot&&(e.relativeTarget=a,e.relativeTargetOrigin=s,e.relativeParent=r)}}}e.notifyListeners(\"didUpdate\",{layout:t,snapshot:n,delta:a,layoutDelta:s,hasLayoutChanged:l,hasRelativeTargetChanged:c})}else if(e.isLead()){const{onExitComplete:t}=e.options;t&&t()}e.options.transition=void 0}function ud(e){td&&ed.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=Boolean(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function dd(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function fd(e){e.clearSnapshot()}function md(e){e.clearMeasurements()}function hd(e){e.isLayoutDirty=!1}function pd(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify(\"BeforeLayoutMeasure\"),e.resetTransform()}function gd(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function yd(e){e.resolveTargetDelta()}function vd(e){e.calcProjection()}function bd(e){e.resetSkewAndRotation()}function xd(e){e.removeLeadSnapshot()}function wd(e,t,n){e.translate=il(t.translate,0,n),e.scale=il(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Sd(e,t,n,r){e.min=il(t.min,n.min,r),e.max=il(t.max,n.max,r)}function kd(e){return e.animationValues&&void 0!==e.animationValues.opacityExit}const Ed={duration:.45,ease:[.4,0,.1,1]},Cd=e=>\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),_d=Cd(\"applewebkit/\")&&!Cd(\"chrome/\")?Math.round:Gi;function Pd(e){e.min=_d(e.min),e.max=_d(e.max)}function Od(e,t,n){return\"position\"===e||\"preserve-aspect\"===e&&(r=qu(t),o=qu(n),!(Math.abs(r-o)<=.2));var r,o}function Nd(e){var t;return e!==e.root&&(null===(t=e.scroll)||void 0===t?void 0:t.wasRoot)}const Td=ad({attachResizeListener:(e,t)=>fc(e,\"resize\",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),Md={current:void 0},Rd=ad({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!Md.current){const e=new Td({});e.mount(window),e.setOptions({layoutScroll:!0}),Md.current=e}return Md.current},resetTransform:(e,t)=>{e.style.transform=void 0!==t?t:\"none\"},checkIsScrollRoot:e=>Boolean(\"fixed\"===window.getComputedStyle(e).position)}),Dd={pan:{Feature:class extends sc{constructor(){super(...arguments),this.removePointerDownListener=Gi}onPointerDown(e){this.session=new pc(e,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:lu(this.node)})}createPanHandlers(){const{onPanSessionStart:e,onPanStart:t,onPan:n,onPanEnd:r}=this.node.getProps();return{onSessionStart:fu(e),onStart:fu(t),onMove:n,onEnd:(e,t)=>{delete this.session,r&&Ji.postRender((()=>r(e,t)))}}}mount(){this.removePointerDownListener=mc(this.node.current,\"pointerdown\",(e=>this.onPointerDown(e)))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}},drag:{Feature:class extends sc{constructor(e){super(e),this.removeGroupControls=Gi,this.removeListeners=Gi,this.controls=new uu(e)}mount(){const{dragControls:e}=this.node.getProps();e&&(this.removeGroupControls=e.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Gi}unmount(){this.removeGroupControls(),this.removeListeners()}},ProjectionNode:Rd,MeasureLayout:Cu}};function jd(e,t){const n=t?\"pointerenter\":\"pointerleave\",r=t?\"onHoverStart\":\"onHoverEnd\";return mc(e.current,n,((n,o)=>{if(\"touch\"===n.pointerType||_c())return;const i=e.getProps();e.animationState&&i.whileHover&&e.animationState.setActive(\"whileHover\",t);const s=i[r];s&&Ji.postRender((()=>s(n,o)))}),{passive:!e.getProps()[r]})}const Ad=(e,t)=>!!t&&(e===t||Ad(e,t.parentElement));function Id(e,t){if(!t)return;const n=new PointerEvent(\"pointer\"+e);t(n,uc(n))}const Ld=new WeakMap,Fd=new WeakMap,zd=e=>{const t=Ld.get(e.target);t&&t(e)},Bd=e=>{e.forEach(zd)};const Wd={some:0,all:1},Vd={inView:{Feature:class extends sc{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:e={}}=this.node.getProps(),{root:t,margin:n,amount:r=\"some\",once:o}=e,i={root:t?t.current:void 0,rootMargin:n,threshold:\"number\"==typeof r?r:Wd[r]};return function(e,t,n){const r=function({root:e,...t}){const n=e||document;Fd.has(n)||Fd.set(n,{});const r=Fd.get(n),o=JSON.stringify(t);return r[o]||(r[o]=new IntersectionObserver(Bd,{root:e,...t})),r[o]}(t);return Ld.set(e,n),r.observe(e),()=>{Ld.delete(e),r.unobserve(e)}}(this.node.current,i,(e=>{const{isIntersecting:t}=e;if(this.isInView===t)return;if(this.isInView=t,o&&!t&&this.hasEnteredView)return;t&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive(\"whileInView\",t);const{onViewportEnter:n,onViewportLeave:r}=this.node.getProps(),i=t?n:r;i&&i(e)}))}mount(){this.startObserver()}update(){if(\"undefined\"==typeof IntersectionObserver)return;const{props:e,prevProps:t}=this.node;[\"amount\",\"margin\",\"root\"].some(function({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}(e,t))&&this.startObserver()}unmount(){}}},tap:{Feature:class extends sc{constructor(){super(...arguments),this.removeStartListeners=Gi,this.removeEndListeners=Gi,this.removeAccessibleListeners=Gi,this.startPointerPress=(e,t)=>{if(this.isPressing)return;this.removeEndListeners();const n=this.node.getProps(),r=mc(window,\"pointerup\",((e,t)=>{if(!this.checkPressEnd())return;const{onTap:n,onTapCancel:r,globalTapTarget:o}=this.node.getProps(),i=o||Ad(this.node.current,e.target)?n:r;i&&Ji.update((()=>i(e,t)))}),{passive:!(n.onTap||n.onPointerUp)}),o=mc(window,\"pointercancel\",((e,t)=>this.cancelPress(e,t)),{passive:!(n.onTapCancel||n.onPointerCancel)});this.removeEndListeners=rl(r,o),this.startPress(e,t)},this.startAccessiblePress=()=>{const e=fc(this.node.current,\"keydown\",(e=>{\"Enter\"!==e.key||this.isPressing||(this.removeEndListeners(),this.removeEndListeners=fc(this.node.current,\"keyup\",(e=>{\"Enter\"===e.key&&this.checkPressEnd()&&Id(\"up\",((e,t)=>{const{onTap:n}=this.node.getProps();n&&Ji.postRender((()=>n(e,t)))}))})),Id(\"down\",((e,t)=>{this.startPress(e,t)})))})),t=fc(this.node.current,\"blur\",(()=>{this.isPressing&&Id(\"cancel\",((e,t)=>this.cancelPress(e,t)))}));this.removeAccessibleListeners=rl(e,t)}}startPress(e,t){this.isPressing=!0;const{onTapStart:n,whileTap:r}=this.node.getProps();r&&this.node.animationState&&this.node.animationState.setActive(\"whileTap\",!0),n&&Ji.postRender((()=>n(e,t)))}checkPressEnd(){return this.removeEndListeners(),this.isPressing=!1,this.node.getProps().whileTap&&this.node.animationState&&this.node.animationState.setActive(\"whileTap\",!1),!_c()}cancelPress(e,t){if(!this.checkPressEnd())return;const{onTapCancel:n}=this.node.getProps();n&&Ji.postRender((()=>n(e,t)))}mount(){const e=this.node.getProps(),t=mc(e.globalTapTarget?window:this.node.current,\"pointerdown\",this.startPointerPress,{passive:!(e.onTapStart||e.onPointerStart)}),n=fc(this.node.current,\"focus\",this.startAccessiblePress);this.removeStartListeners=rl(t,n)}unmount(){this.removeStartListeners(),this.removeEndListeners(),this.removeAccessibleListeners()}}},focus:{Feature:class extends sc{constructor(){super(...arguments),this.isActive=!1}onFocus(){let e=!1;try{e=this.node.current.matches(\":focus-visible\")}catch(t){e=!0}e&&this.node.animationState&&(this.node.animationState.setActive(\"whileFocus\",!0),this.isActive=!0)}onBlur(){this.isActive&&this.node.animationState&&(this.node.animationState.setActive(\"whileFocus\",!1),this.isActive=!1)}mount(){this.unmount=rl(fc(this.node.current,\"focus\",(()=>this.onFocus())),fc(this.node.current,\"blur\",(()=>this.onBlur())))}unmount(){}}},hover:{Feature:class extends sc{mount(){this.unmount=rl(jd(this.node,!0),jd(this.node,!1))}unmount(){}}}},Ud={layout:{ProjectionNode:Rd,MeasureLayout:Cu}},$d=(0,a.createContext)({transformPagePoint:e=>e,isStatic:!1,reducedMotion:\"never\"}),Yd=(0,a.createContext)({}),Hd=\"undefined\"!=typeof window,Kd=Hd?a.useLayoutEffect:a.useEffect,qd=(0,a.createContext)({strict:!1});let Gd=!1;function Xd(e,t,n,r,o){var i;const{visualElement:s}=(0,a.useContext)(Yd),l=(0,a.useContext)(qd),c=(0,a.useContext)(hu),u=(0,a.useContext)($d).reducedMotion,d=(0,a.useRef)();r=r||l.renderer,!d.current&&r&&(d.current=r(e,{visualState:t,parent:s,props:n,presenceContext:c,blockInitialAnimation:!!c&&!1===c.initial,reducedMotionConfig:u}));const f=d.current,m=(0,a.useContext)(gu);!f||f.projection||!o||\"html\"!==f.type&&\"svg\"!==f.type||function(e,t,n,r){const{layoutId:o,layout:i,drag:s,dragConstraints:a,layoutScroll:l,layoutRoot:c}=t;e.projection=new n(e.latestValues,t[\"data-framer-portal-id\"]?void 0:Jd(e.parent)),e.projection.setOptions({layoutId:o,layout:i,alwaysMeasureLayout:Boolean(s)||a&&Pc(a),visualElement:e,animationType:\"string\"==typeof i?i:\"both\",initialPromotionConfig:r,layoutScroll:l,layoutRoot:c})}(d.current,n,o,m),(0,a.useInsertionEffect)((()=>{f&&f.update(n,c)}));const h=n[Hl],p=(0,a.useRef)(Boolean(h)&&!window.MotionHandoffIsComplete&&(null===(i=window.MotionHasOptimisedAnimation)||void 0===i?void 0:i.call(window,h)));return Kd((()=>{f&&(f.updateFeatures(),Su.render(f.render),p.current&&f.animationState&&f.animationState.animateChanges())})),(0,a.useEffect)((()=>{f&&(!p.current&&f.animationState&&f.animationState.animateChanges(),p.current=!1,Gd||(Gd=!0,queueMicrotask(Zd)))})),f}function Zd(){window.MotionHandoffIsComplete=!0}function Jd(e){if(e)return!1!==e.options.allowProjection?e.projection:Jd(e.parent)}function Qd(e,t,n){return(0,a.useCallback)((r=>{r&&e.mount&&e.mount(r),t&&(r?t.mount(r):t.unmount()),n&&(\"function\"==typeof n?n(r):Pc(n)&&(n.current=r))}),[t])}function ef(e){return Ni(e.animate)||Li.some((t=>Ri(e[t])))}function tf(e){return Boolean(ef(e)||e.variants)}function nf(e){return Array.isArray(e)?e.join(\" \"):e}const rf={animation:[\"animate\",\"variants\",\"whileHover\",\"whileTap\",\"exit\",\"whileInView\",\"whileFocus\",\"whileDrag\"],exit:[\"exit\"],drag:[\"drag\",\"dragControls\"],focus:[\"whileFocus\"],hover:[\"whileHover\",\"onHoverStart\",\"onHoverEnd\"],tap:[\"whileTap\",\"onTap\",\"onTapStart\",\"onTapCancel\"],pan:[\"onPan\",\"onPanStart\",\"onPanSessionStart\",\"onPanEnd\"],inView:[\"whileInView\",\"onViewportEnter\",\"onViewportLeave\"],layout:[\"layout\",\"layoutId\"]},of={};for(const e in rf)of[e]={isEnabled:t=>rf[e].some((e=>!!t[e]))};const sf=Symbol.for(\"motionComponentSymbol\");function af({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:o}){e&&function(e){for(const t in e)of[t]={...of[t],...e[t]}}(e);const i=(0,a.forwardRef)((function(e,i){let s;const l={...(0,a.useContext)($d),...e,layoutId:lf(e)},{isStatic:c}=l,u=function(e){const{initial:t,animate:n}=function(e,t){if(ef(e)){const{initial:t,animate:n}=e;return{initial:!1===t||Ri(t)?t:void 0,animate:Ri(n)?n:void 0}}return!1!==e.inherit?t:{}}(e,(0,a.useContext)(Yd));return(0,a.useMemo)((()=>({initial:t,animate:n})),[nf(t),nf(n)])}(e),d=r(e,c);if(!c&&Hd){(0,a.useContext)(qd).strict;const e=function(e){const{drag:t,layout:n}=of;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:(null==t?void 0:t.isEnabled(e))||(null==n?void 0:n.isEnabled(e))?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}(l);s=e.MeasureLayout,u.visualElement=Xd(o,d,l,t,e.ProjectionNode)}return(0,mu.jsxs)(Yd.Provider,{value:u,children:[s&&u.visualElement?(0,mu.jsx)(s,{visualElement:u.visualElement,...l}):null,n(o,e,Qd(d,u.visualElement,i),d,c,u.visualElement)]})}));return i[sf]=o,i}function lf({layoutId:e}){const t=(0,a.useContext)(pu).id;return t&&void 0!==e?t+\"-\"+e:e}const cf=[\"animate\",\"circle\",\"defs\",\"desc\",\"ellipse\",\"g\",\"image\",\"line\",\"filter\",\"marker\",\"mask\",\"metadata\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"rect\",\"stop\",\"switch\",\"symbol\",\"svg\",\"text\",\"tspan\",\"use\",\"view\"];function uf(e){return\"string\"==typeof e&&!e.includes(\"-\")&&!!(cf.indexOf(e)>-1||/[A-Z]/u.test(e))}function df(e,{style:t,vars:n},r,o){Object.assign(e.style,t,o&&o.getProjectionStyles(r));for(const t in n)e.style.setProperty(t,n[t])}const ff=new Set([\"baseFrequency\",\"diffuseConstant\",\"kernelMatrix\",\"kernelUnitLength\",\"keySplines\",\"keyTimes\",\"limitingConeAngle\",\"markerHeight\",\"markerWidth\",\"numOctaves\",\"targetX\",\"targetY\",\"surfaceScale\",\"specularConstant\",\"specularExponent\",\"stdDeviation\",\"tableValues\",\"viewBox\",\"gradientTransform\",\"pathLength\",\"startOffset\",\"textLength\",\"lengthAdjust\"]);function mf(e,t,n,r){df(e,t,void 0,r);for(const n in t.attrs)e.setAttribute(ff.has(n)?n:Yl(n),t.attrs[n])}function hf(e,{layout:t,layoutId:n}){return zi.has(e)||e.startsWith(\"origin\")||(t||void 0!==n)&&(!!wu[e]||\"opacity\"===e)}function pf(e,t,n){var r;const{style:o}=e,i={};for(const s in o)(Xl(o[s])||t.style&&Xl(t.style[s])||hf(s,e)||void 0!==(null===(r=null==n?void 0:n.getValue(s))||void 0===r?void 0:r.liveStyle))&&(i[s]=o[s]);return n&&o&&\"string\"==typeof o.willChange&&(n.applyWillChange=!1),i}function gf(e,t,n){const r=pf(e,t,n);for(const n in e)(Xl(e[n])||Xl(t[n]))&&(r[-1!==Fi.indexOf(n)?\"attr\"+n.charAt(0).toUpperCase()+n.substring(1):n]=e[n]);return r}function yf(e){const t=(0,a.useRef)(null);return null===t.current&&(t.current=e()),t.current}const vf=e=>(t,n)=>{const r=(0,a.useContext)(Yd),o=(0,a.useContext)(hu),i=()=>function({applyWillChange:e=!1,scrapeMotionValuesFromProps:t,createRenderState:n,onMount:r},o,i,s,a){const l={latestValues:wf(o,i,s,!a&&e,t),renderState:n()};return r&&(l.mount=e=>r(o,e,l)),l}(e,t,r,o,n);return n?i():yf(i)};function bf(e,t){const n=ql(t);n&&Fl(e,n)}function xf(e,t,n){const r=Array.isArray(t)?t:[t];for(let t=0;t<r.length;t++){const o=ji(e,r[t]);if(o){const{transitionEnd:e,transition:t,...r}=o;n(r,e)}}}function wf(e,t,n,r,o){var i;const s={},a=[],l=r&&void 0===(null===(i=e.style)||void 0===i?void 0:i.willChange),c=o(e,{});for(const e in c)s[e]=Qu(c[e]);let{initial:u,animate:d}=e;const f=ef(e),m=tf(e);t&&m&&!f&&!1!==e.inherit&&(void 0===u&&(u=t.initial),void 0===d&&(d=t.animate));let h=!!n&&!1===n.initial;h=h||!1===u;const p=h?d:u;return p&&\"boolean\"!=typeof p&&!Ni(p)&&xf(e,p,((e,t)=>{for(const t in e){let n=e[t];Array.isArray(n)&&(n=n[h?n.length-1:0]),null!==n&&(s[t]=n)}for(const e in t)s[e]=t[e]})),l&&(d&&!1!==u&&!Ni(d)&&xf(e,d,(e=>{for(const t in e)bf(a,t)})),a.length&&(s.willChange=a.join(\",\"))),s}const Sf=()=>({style:{},transform:{},transformOrigin:{},vars:{}}),kf=()=>({...Sf(),attrs:{}}),Ef=(e,t)=>t&&\"number\"==typeof e?t.transform(e):e,Cf={x:\"translateX\",y:\"translateY\",z:\"translateZ\",transformPerspective:\"perspective\"},_f=Fi.length;function Pf(e,t,n){const{style:r,vars:o,transformOrigin:i}=e;let s=!1,a=!1;for(const e in t){const n=t[e];if(zi.has(e))s=!0;else if(as(e))o[e]=n;else{const t=Ef(n,ha[e]);e.startsWith(\"origin\")?(a=!0,i[e]=t):r[e]=t}}if(t.transform||(s||n?r.transform=function(e,t,n){let r=\"\",o=!0;for(let i=0;i<_f;i++){const s=Fi[i],a=e[s];if(void 0===a)continue;let l=!0;if(l=\"number\"==typeof a?a===(s.startsWith(\"scale\")?1:0):0===parseFloat(a),!l||n){const e=Ef(a,ha[s]);l||(o=!1,r+=`${Cf[s]||s}(${e}) `),n&&(t[s]=e)}}return r=r.trim(),n?r=n(t,o?\"\":r):o&&(r=\"none\"),r}(t,e.transform,n):r.transform&&(r.transform=\"none\")),a){const{originX:e=\"50%\",originY:t=\"50%\",originZ:n=0}=i;r.transformOrigin=`${e} ${t} ${n}`}}function Of(e,t,n){return\"string\"==typeof e?e:Cs.transform(t+n*e)}const Nf={offset:\"stroke-dashoffset\",array:\"stroke-dasharray\"},Tf={offset:\"strokeDashoffset\",array:\"strokeDasharray\"};function Mf(e,{attrX:t,attrY:n,attrScale:r,originX:o,originY:i,pathLength:s,pathSpacing:a=1,pathOffset:l=0,...c},u,d){if(Pf(e,c,d),u)return void(e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox));e.attrs=e.style,e.style={};const{attrs:f,style:m,dimensions:h}=e;f.transform&&(h&&(m.transform=f.transform),delete f.transform),h&&(void 0!==o||void 0!==i||m.transform)&&(m.transformOrigin=function(e,t,n){return`${Of(t,e.x,e.width)} ${Of(n,e.y,e.height)}`}(h,void 0!==o?o:.5,void 0!==i?i:.5)),void 0!==t&&(f.x=t),void 0!==n&&(f.y=n),void 0!==r&&(f.scale=r),void 0!==s&&function(e,t,n=1,r=0,o=!0){e.pathLength=1;const i=o?Nf:Tf;e[i.offset]=Cs.transform(-r);const s=Cs.transform(t),a=Cs.transform(n);e[i.array]=`${s} ${a}`}(f,s,a,l,!1)}const Rf=e=>\"string\"==typeof e&&\"svg\"===e.toLowerCase(),Df={useVisualState:vf({scrapeMotionValuesFromProps:gf,createRenderState:kf,onMount:(e,t,{renderState:n,latestValues:r})=>{Ji.read((()=>{try{n.dimensions=\"function\"==typeof t.getBBox?t.getBBox():t.getBoundingClientRect()}catch(e){n.dimensions={x:0,y:0,width:0,height:0}}})),Ji.render((()=>{Mf(n,r,Rf(t.tagName),e.transformTemplate),mf(t,n)}))}})},jf={useVisualState:vf({applyWillChange:!0,scrapeMotionValuesFromProps:pf,createRenderState:Sf})};function Af(e,t,n){for(const r in t)Xl(t[r])||hf(r,n)||(e[r]=t[r])}function If(e,t){const n={},r=function(e,t){const n={};return Af(n,e.style||{},e),Object.assign(n,function({transformTemplate:e},t){return(0,a.useMemo)((()=>{const n=Sf();return Pf(n,t,e),Object.assign({},n.vars,n.style)}),[t])}(e,t)),n}(e,t);return e.drag&&!1!==e.dragListener&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout=\"none\",r.touchAction=!0===e.drag?\"none\":\"pan-\"+(\"x\"===e.drag?\"y\":\"x\")),void 0===e.tabIndex&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}const Lf=new Set([\"animate\",\"exit\",\"variants\",\"initial\",\"style\",\"values\",\"variants\",\"transition\",\"transformTemplate\",\"custom\",\"inherit\",\"onBeforeLayoutMeasure\",\"onAnimationStart\",\"onAnimationComplete\",\"onUpdate\",\"onDragStart\",\"onDrag\",\"onDragEnd\",\"onMeasureDragConstraints\",\"onDirectionLock\",\"onDragTransitionEnd\",\"_dragX\",\"_dragY\",\"onHoverStart\",\"onHoverEnd\",\"onViewportEnter\",\"onViewportLeave\",\"globalTapTarget\",\"ignoreStrict\",\"viewport\"]);function Ff(e){return e.startsWith(\"while\")||e.startsWith(\"drag\")&&\"draggable\"!==e||e.startsWith(\"layout\")||e.startsWith(\"onTap\")||e.startsWith(\"onPan\")||e.startsWith(\"onLayout\")||Lf.has(e)}let zf=e=>!Ff(e);try{(Bf=n(316).A)&&(zf=e=>e.startsWith(\"on\")?!Ff(e):Bf(e))}catch(e){}var Bf;function Wf(e,t,n,r){const o=(0,a.useMemo)((()=>{const n=kf();return Mf(n,t,Rf(r),e.transformTemplate),{...n.attrs,style:{...n.style}}}),[t]);if(e.style){const t={};Af(t,e.style,e),o.style={...t,...o.style}}return o}function Vf(e=!1){return(t,n,r,{latestValues:o},i)=>{const s=(uf(t)?Wf:If)(n,o,i,t),l=function(e,t,n){const r={};for(const o in e)\"values\"===o&&\"object\"==typeof e.values||(zf(o)||!0===n&&Ff(o)||!t&&!Ff(o)||e.draggable&&o.startsWith(\"onDrag\"))&&(r[o]=e[o]);return r}(n,\"string\"==typeof t,e),c=t!==a.Fragment?{...l,...s,ref:r}:{},{children:u}=n,d=(0,a.useMemo)((()=>Xl(u)?u.get():u),[u]);return(0,a.createElement)(t,{...c,children:d})}}function Uf(e,t){return function(n,{forwardMotionProps:r}={forwardMotionProps:!1}){return af({...uf(n)?Df:jf,preloadedFeatures:e,useRender:Vf(r),createVisualElement:t,Component:n})}}const $f={current:null},Yf={current:!1},Hf=new WeakMap,Kf=[...Ls,Zs,la],qf=[\"AnimationStart\",\"AnimationComplete\",\"Update\",\"BeforeLayoutMeasure\",\"LayoutMeasure\",\"LayoutAnimationStart\",\"LayoutAnimationComplete\"],Gf=Li.length;class Xf{scrapeMotionValuesFromProps(e,t,n){return{}}constructor({parent:e,props:t,presenceContext:n,reducedMotionConfig:r,blockInitialAnimation:o,visualState:i},s={}){this.applyWillChange=!1,this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=$s,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify(\"Update\",this.latestValues),this.render=()=>{this.isRenderScheduled=!1,this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.isRenderScheduled=!1,this.scheduleRender=()=>{this.isRenderScheduled||(this.isRenderScheduled=!0,Ji.render(this.render,!1,!0))};const{latestValues:a,renderState:l}=i;this.latestValues=a,this.baseTarget={...a},this.initialValues=t.initial?{...a}:{},this.renderState=l,this.parent=e,this.props=t,this.presenceContext=n,this.depth=e?e.depth+1:0,this.reducedMotionConfig=r,this.options=s,this.blockInitialAnimation=Boolean(o),this.isControllingVariants=ef(t),this.isVariantNode=tf(t),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=Boolean(e&&e.current);const{willChange:c,...u}=this.scrapeMotionValuesFromProps(t,{},this);for(const e in u){const t=u[e];void 0!==a[e]&&Xl(t)&&t.set(a[e],!1)}}mount(e){this.current=e,Hf.set(e,this),this.projection&&!this.projection.instance&&this.projection.mount(e),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach(((e,t)=>this.bindToMotionValue(t,e))),Yf.current||function(){if(Yf.current=!0,Hd)if(window.matchMedia){const e=window.matchMedia(\"(prefers-reduced-motion)\"),t=()=>$f.current=e.matches;e.addListener(t),t()}else $f.current=!1}(),this.shouldReduceMotion=\"never\"!==this.reducedMotionConfig&&(\"always\"===this.reducedMotionConfig||$f.current),this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Hf.delete(this.current),this.projection&&this.projection.unmount(),Qi(this.notifyUpdate),Qi(this.render),this.valueSubscriptions.forEach((e=>e())),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const e in this.events)this.events[e].clear();for(const e in this.features){const t=this.features[e];t&&(t.unmount(),t.isMounted=!1)}this.current=null}bindToMotionValue(e,t){this.valueSubscriptions.has(e)&&this.valueSubscriptions.get(e)();const n=zi.has(e),r=t.on(\"change\",(t=>{this.latestValues[e]=t,this.props.onUpdate&&Ji.preRender(this.notifyUpdate),n&&this.projection&&(this.projection.isTransformDirty=!0)})),o=t.on(\"renderRequest\",this.scheduleRender);let i;window.MotionCheckAppearSync&&(i=window.MotionCheckAppearSync(this,e,t)),this.valueSubscriptions.set(e,(()=>{r(),o(),i&&i(),t.owner&&t.stop()}))}sortNodePosition(e){return this.current&&this.sortInstanceNodePosition&&this.type===e.type?this.sortInstanceNodePosition(this.current,e.current):0}updateFeatures(){let e=\"animation\";for(e in of){const t=of[e];if(!t)continue;const{isEnabled:n,Feature:r}=t;if(!this.features[e]&&r&&n(this.props)&&(this.features[e]=new r(this)),this.features[e]){const t=this.features[e];t.isMounted?t.update():(t.mount(),t.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):$c()}getStaticValue(e){return this.latestValues[e]}setStaticValue(e,t){this.latestValues[e]=t}update(e,t){(e.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=e,this.prevPresenceContext=this.presenceContext,this.presenceContext=t;for(let t=0;t<qf.length;t++){const n=qf[t];this.propEventSubscriptions[n]&&(this.propEventSubscriptions[n](),delete this.propEventSubscriptions[n]);const r=e[\"on\"+n];r&&(this.propEventSubscriptions[n]=this.on(n,r))}this.prevMotionValues=function(e,t,n){for(const r in t){const o=t[r],i=n[r];if(Xl(o))e.addValue(r,o);else if(Xl(i))e.addValue(r,Ul(o,{owner:e}));else if(i!==o)if(e.hasValue(r)){const t=e.getValue(r);!0===t.liveStyle?t.jump(o):t.hasAnimated||t.set(o)}else{const t=e.getStaticValue(r);e.addValue(r,Ul(void 0!==t?t:o,{owner:e}))}}for(const r in n)void 0===t[r]&&e.removeValue(r);return t}(this,this.scrapeMotionValuesFromProps(e,this.prevProps,this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(e){return this.props.variants?this.props.variants[e]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}getVariantContext(e=!1){if(e)return this.parent?this.parent.getVariantContext():void 0;if(!this.isControllingVariants){const e=this.parent&&this.parent.getVariantContext()||{};return void 0!==this.props.initial&&(e.initial=this.props.initial),e}const t={};for(let e=0;e<Gf;e++){const n=Li[e],r=this.props[n];(Ri(r)||!1===r)&&(t[n]=r)}return t}addVariantChild(e){const t=this.getClosestVariantNode();if(t)return t.variantChildren&&t.variantChildren.add(e),()=>t.variantChildren.delete(e)}addValue(e,t){const n=this.values.get(e);t!==n&&(n&&this.removeValue(e),this.bindToMotionValue(e,t),this.values.set(e,t),this.latestValues[e]=t.get())}removeValue(e){this.values.delete(e);const t=this.valueSubscriptions.get(e);t&&(t(),this.valueSubscriptions.delete(e)),delete this.latestValues[e],this.removeValueFromRenderState(e,this.renderState)}hasValue(e){return this.values.has(e)}getValue(e,t){if(this.props.values&&this.props.values[e])return this.props.values[e];let n=this.values.get(e);return void 0===n&&void 0!==t&&(n=Ul(null===t?void 0:t,{owner:this}),this.addValue(e,n)),n}readValue(e,t){var n;let r=void 0===this.latestValues[e]&&this.current?null!==(n=this.getBaseTargetFromProps(this.props,e))&&void 0!==n?n:this.readValueFromInstance(this.current,e,this.options):this.latestValues[e];return null!=r&&(\"string\"==typeof r&&(is(r)||ns(r))?r=parseFloat(r):!(e=>Kf.find(Is(e)))(r)&&la.test(t)&&(r=ya(e,t)),this.setBaseTarget(e,Xl(r)?r.get():r)),Xl(r)?r.get():r}setBaseTarget(e,t){this.baseTarget[e]=t}getBaseTarget(e){var t;const{initial:n}=this.props;let r;if(\"string\"==typeof n||\"object\"==typeof n){const o=ji(this.props,n,null===(t=this.presenceContext)||void 0===t?void 0:t.custom);o&&(r=o[e])}if(n&&void 0!==r)return r;const o=this.getBaseTargetFromProps(this.props,e);return void 0===o||Xl(o)?void 0!==this.initialValues[e]&&void 0===r?void 0:this.baseTarget[e]:o}on(e,t){return this.events[e]||(this.events[e]=new Bl),this.events[e].add(t)}notify(e,...t){this.events[e]&&this.events[e].notify(...t)}}class Zf extends Xf{constructor(){super(...arguments),this.KeyframeResolver=ba}sortInstanceNodePosition(e,t){return 2&e.compareDocumentPosition(t)?1:-1}getBaseTargetFromProps(e,t){return e.style?e.style[t]:void 0}removeValueFromRenderState(e,{vars:t,style:n}){delete t[e],delete n[e]}}class Jf extends Zf{constructor(){super(...arguments),this.type=\"html\",this.applyWillChange=!0,this.renderInstance=df}readValueFromInstance(e,t){if(zi.has(t)){const e=ga(t);return e&&e.default||0}{const r=(n=e,window.getComputedStyle(n)),o=(as(t)?r.getPropertyValue(t):r[t])||0;return\"string\"==typeof o?o.trim():o}var n}measureInstanceViewportBox(e,{transformPagePoint:t}){return au(e,t)}build(e,t,n){Pf(e,t,n.transformTemplate)}scrapeMotionValuesFromProps(e,t,n){return pf(e,t,n)}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:e}=this.props;Xl(e)&&(this.childSubscription=e.on(\"change\",(e=>{this.current&&(this.current.textContent=`${e}`)})))}}class Qf extends Zf{constructor(){super(...arguments),this.type=\"svg\",this.isSVGTag=!1,this.measureInstanceViewportBox=$c}getBaseTargetFromProps(e,t){return e[t]}readValueFromInstance(e,t){if(zi.has(t)){const e=ga(t);return e&&e.default||0}return t=ff.has(t)?t:Yl(t),e.getAttribute(t)}scrapeMotionValuesFromProps(e,t,n){return gf(e,t,n)}build(e,t,n){Mf(e,t,this.isSVGTag,n.transformTemplate)}renderInstance(e,t,n,r){mf(e,t,0,r)}mount(e){this.isSVGTag=Rf(e.tagName),super.mount(e)}}const em=Oi(Uf({...lc,...Vd,...Dd,...Ud},((e,t)=>uf(e)?new Qf(t):new Jf(t,{allowProjection:e!==a.Fragment}))));var tm=[\"slug\",\"text\",\"icon\",\"className\",\"disabled\",\"badge\"];function nm(){return nm=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},nm.apply(null,arguments)}var rm=(0,a.createContext)(),om=function(e){var t,n=e.children,r=e.activeItem,o=void 0===r?null:r,i=e.onChange,s=e.className,c=e.size,u=void 0===c?\"sm\":c,d=e.orientation,f=void 0===d?\"horizontal\":d,m=e.variant,h=void 0===m?\"pill\":m,p=e.iconPosition,g=void 0===p?\"left\":p,y=e.width,v=void 0===y?\"full\":y,b=(0,a.useCallback)((function(e,t){i&&i({event:e,value:t})}),[i]),x=\"rounded-full\",w=\"p-1\",S=\"ring-1 ring-tab-border\";\"vertical\"===f?t=\"gap-0.5\":\"rounded\"!==h&&\"pill\"!==h||(\"xs\"===u||\"sm\"===u?t=\"gap-0.5\":\"md\"!==u&&\"lg\"!==u||(t=\"gap-1\")),\"rounded\"===h||\"vertical\"===f?x=\"rounded-md\":\"underline\"===h&&(x=\"rounded-none\",w=\"p-0\",S=\"border-t-0 border-r-0 border-l-0 border-b border-solid border-tab-border\",\"xs\"===u?t=\"gap-0\":\"sm\"===u?t=\"gap-2.5\":\"md\"!==u&&\"lg\"!==u||(t=\"gap-3\"));var k=\"vertical\"===f?\"flex-col\":\"\",E=\"box-border [&>*]:box-border flex items-center \".concat(\"full\"===v?\"w-full\":\"\",\" \").concat(k),C=oe(E,x,w,t,S,\"underline\"!==h?\"bg-tab-background\":\"\",s);return l().createElement(\"div\",{className:C},l().createElement(rm.Provider,{value:{activeItem:o,onChange:b,size:u,variant:h,orientation:f,iconPosition:g,width:v}},l().Children.map(n,(function(e){return(0,a.isValidElement)(e)?l().cloneElement(e):null}))))};om.displayName=\"Tabs.Group\";var im=function(e,t){var n=(0,a.useContext)(rm),r=e.slug,o=e.text,i=e.icon,s=e.className,c=e.disabled,u=void 0!==c&&c,d=e.badge,f=void 0===d?null:d,m=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,tm);if(!n)throw new Error(\"Tab should be used inside Tabs Group\");var h=n.activeItem,p=n.onChange,g=n.size,y=n.variant,v=n.orientation,b=n.iconPosition,x=n.width,w={xs:\"px-1.5 py-0.5 text-xs [&_svg]:size-3\",sm:\"underline\"===y?\"py-1.5 text-sm [&_svg]:size-4\":\"px-3 py-1.5 text-sm [&_svg]:size-4\",md:\"underline\"===y?\"py-2 text-base [&_svg]:size-5\":\"px-3.5 py-1.5 text-base [&_svg]:size-5\",lg:\"underline\"===y?\"p-2.5 text-lg [&_svg]:size-6\":\"px-3.5 py-1.5 text-lg [&_svg]:size-6\"}[g],S=oe(\"relative border-none bg-transparent text-text-secondary cursor-pointer flex items-center justify-center transition-[box-shadow,color,background-color] duration-200\",\"full\"===x?\"flex-1\":\"\",\"vertical\"===v?\"w-full justify-between\":\"\"),k=\"rounded-full\";\"rounded\"===y?k=\"rounded-md\":\"underline\"===y&&(k=\"rounded-none\");var E=oe(S,\"border-none\",k,\"hover:text-text-primary group\",\"focus:outline-none\",u?\"text-text-disabled cursor-not-allowed\":\"\",w,h===r?\"bg-background-primary text-text-primary shadow-sm\":\"\",s);return l().createElement(\"button\",nm({ref:t,className:E,disabled:u,onClick:function(e){p(e,{slug:r,text:o})}},m),h===r&&\"underline\"===y&&l().createElement(em.span,{layoutId:\"underline\",className:\"absolute right-0 left-0 -bottom-px h-px bg-border-interactive\"}),l().createElement(\"span\",{className:\"flex items-center gap-1\"},\"left\"===b&&i&&l().createElement(\"span\",{className:\"mr-1 contents center-center group-hover:text-text-primary\"},i),o,\"right\"===b&&i&&l().createElement(\"span\",{className:\"ml-1 contents center-center group-hover:text-text-primary\"},i)),f&&(0,a.isValidElement)(f)&&f)},sm=(0,a.forwardRef)(im);sm.displayName=\"Tabs.Tab\";var am={Group:om,Tab:sm};const lm=ke(\"ChevronsUpDown\",[[\"path\",{d:\"m7 15 5 5 5-5\",key:\"1hf1tw\"}],[\"path\",{d:\"m7 9 5-5 5 5\",key:\"sgt6xg\"}]]),cm=ke(\"ChevronDown\",[[\"path\",{d:\"m6 9 6 6 6-6\",key:\"qrunsl\"}]]),um=ke(\"Search\",[[\"circle\",{cx:\"11\",cy:\"11\",r:\"8\",key:\"4ej97u\"}],[\"path\",{d:\"m21 21-4.3-4.3\",key:\"1qie3q\"}]]);var dm={sm:{icon:\"[&>svg]:size-4\",searchIcon:\"[&>svg]:size-4\",selectButton:\"px-2.5 py-2 rounded text-sm font-medium leading-4 min-h-[2rem]\",multiSelect:\"pl-2 pr-2 py-1.5\",displaySelected:\"text-sm font-normal\",dropdown:\"rounded-md\",dropdownItemsWrapper:\"p-1.5\",searchbarWrapper:\"p-3 flex items-center gap-0.5\",searchbar:\"font-medium text-sm\",searchbarIcon:\"[&>svg]:size-4\",label:\"text-sm font-medium\"},md:{icon:\"[&>svg]:size-5\",searchIcon:\"[&>svg]:size-5\",selectButton:\"px-3.5 py-2.5 rounded-md text-xs font-medium leading-4 min-h-[2.5rem]\",multiSelect:\"pl-2 pr-2.5 py-2\",displaySelected:\"text-sm font-normal\",dropdown:\"rounded-lg\",dropdownItemsWrapper:\"p-2\",searchbarWrapper:\"p-2.5 flex items-center gap-1\",searchbar:\"font-medium text-sm\",searchbarIcon:\"[&>svg]:size-5\",label:\"text-sm font-medium\"},lg:{icon:\"[&>svg]:size-6\",searchIcon:\"[&>svg]:size-5\",selectButton:\"px-4 py-3 rounded-lg text-sm font-medium leading-5 min-h-[3rem]\",multiSelect:\"pl-2.5 pr-3 py-2.5\",displaySelected:\"text-base font-normal\",dropdown:\"rounded-lg\",dropdownItemsWrapper:\"p-2\",searchbarWrapper:\"p-2.5 flex items-center gap-1\",searchbar:\"font-medium text-sm\",searchbarIcon:\"[&>svg]:size-5\",label:\"text-base font-medium\"}},fm=\"group-disabled:text-field-color-disabled\",mm=[\"value\",\"selected\",\"children\",\"className\"];function hm(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(e,t)||ym(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function pm(){return pm=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},pm.apply(null,arguments)}function gm(e){return function(e){if(Array.isArray(e))return vm(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||ym(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function ym(e,t){if(e){if(\"string\"==typeof e)return vm(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?vm(e,t):void 0}}function vm(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function bm(e){return bm=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},bm(e)}function xm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function wm(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xm(Object(n),!0).forEach((function(t){Sm(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xm(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Sm(e,t,n){return(t=function(e){var t=function(e){if(\"object\"!=bm(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,\"string\");if(\"object\"!=bm(n))return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"==bm(t)?t:t+\"\"}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var km=(0,a.createContext)(),Em=function(){return(0,a.useContext)(km)};function Cm(e){var t,n,r,o=e.children,i=e.icon,s=void 0===i?null:i,l=e.placeholder,c=void 0===l?\"Select an option\":l,u=e.optionIcon,d=void 0===u?null:u,f=e.displayBy,m=void 0===f?\"name\":f,h=e.label,p=e.className,g=Em(),y=g.sizeValue,v=g.getReferenceProps,b=g.getValues,x=g.selectId,w=g.refs,S=g.isOpen,k=g.multiple,E=g.combobox,C=g.setSelected,_=g.onChange,P=g.isControlled,O=g.disabled,N=g.by,T=null===(t={sm:\"xs\",md:\"sm\",lg:\"md\"})||void 0===t?void 0:t[y],M=(0,a.useCallback)((function(){if(s)return s;var e=\"text-field-placeholder group-disabled:text-icon-disabled\";return E?React.createElement(lm,{className:e}):React.createElement(cm,{className:e})}),[s]),R=(0,a.useCallback)((function(){var e=b();if(!e)return null;if(\"function\"==typeof o){var t=wm({value:e},k?{onClose:D}:{});return o(t)}if(k)return e.map((function(e,t){return React.createElement(Zo,{icon:d,type:\"rounded\",key:t,size:T,onMouseDown:D(e),label:\"object\"===bm(e)?e[m]:e,closable:!0,disabled:O})}));var n=\"object\"===bm(e)?e[m]:e;return(0,a.isValidElement)(o)&&(n=o),React.createElement(\"span\",{className:oe(\"truncate\",dm[y].displaySelected,fm)},n)}),[b]),D=function(e){return function(t){var n;null==t||t.preventDefault(),null==t||t.stopPropagation();var r=gm(null!==(n=b())&&void 0!==n?n:[]),o=r.findIndex((function(t){return\"object\"===bm(t)?t[N]===e[N]:t===e}));-1!==o&&(r.splice(o,1),P||C(r),\"function\"==typeof _&&_(r))}};return React.createElement(\"div\",{className:\"flex flex-col items-start gap-1.5 [&_*]:box-border box-border\"},!!h&&React.createElement(\"label\",{className:oe(null===(n=dm[y])||void 0===n?void 0:n.label,\"text-field-label\"),htmlFor:x},h),React.createElement(\"button\",pm({id:x,ref:w.setReference,className:oe(\"flex items-center justify-between w-full box-border transition-colors duration-150 bg-white\",\"outline outline-1 outline-field-border border-none\",!S&&\"focus:ring-2 focus:ring-offset-4 focus:outline-focus-border focus:ring-focus [&:hover:not(:focus):not(:disabled)]:outline-border-strong\",dm[y].selectButton,k&&dm[y].multiSelect,\"group disabled:outline-field-border-disabled [&:hover:has(:disabled)]:outline-field-border-disabled\",p),\"aria-labelledby\":\"select-label\",tabIndex:0,disabled:O},v()),React.createElement(\"div\",{className:oe(\"flex-1 grid items-center justify-start gap-1.5 overflow-hidden\",b()&&\"flex flex-wrap\")},R(),(k?!(null!==(r=b())&&void 0!==r&&r.length):!b())&&React.createElement(\"div\",{className:oe(\"[grid-area:1/1/2/3] text-field-input px-1\",dm[y].displaySelected,fm)},c)),React.createElement(\"div\",{className:oe(\"flex items-center [&>svg]:shrink-0\",dm[y].icon)},M())))}function _m(e){var t=e.children,n=e.searchBy,r=void 0===n?\"id\":n,o=e.searchPlaceholder,i=void 0===o?\"Search...\":o,s=e.dropdownPortalRoot,l=void 0===s?null:s,c=e.dropdownPortalId,u=void 0===c?\"\":c,d=e.className,f=Em(),m=f.isOpen,h=f.context,p=f.refs,g=f.combobox,y=f.floatingStyles,v=f.getFloatingProps,b=f.sizeValue,x=f.setSearchKeyword,w=f.setActiveIndex,S=f.setSelectedIndex,k=f.value,E=f.selected,C=f.getValues,_=f.searchKeyword,P=f.listContentRef,O=f.by,N=(0,a.useMemo)((function(){var e=C(),n=0;return e&&(n=a.Children.toArray(t).findIndex((function(t){return\"object\"===bm(t.props.value)?t.props.value[O]===e[O]:t.props.value===e}))),-1===n?0:n}),[k,E,t]);(0,a.useLayoutEffect)((function(){w(N),S(N)}),[]);var T=(0,a.useMemo)((function(){return a.Children.map(t,(function(e,t){if(!(0,a.isValidElement)(e))return null;if(_){var n=e.props.value;if(\"object\"===bm(n)){if(-1===n[r].toLowerCase().indexOf(_.toLowerCase()))return null}else if(-1===n.toLowerCase().indexOf(_.toLowerCase()))return null}return(0,a.cloneElement)(e,wm(wm({},e.props),{},{index:t}))}))}),[_,k,E,t]),M=a.Children.count(T);return(0,a.useEffect)((function(){P.current=[],a.Children.forEach(t,(function(e){if((0,a.isValidElement)(e)&&e.props.value){if(_){var t=e.props.value;if(\"object\"===bm(t)){if(-1===t[r].toLowerCase().indexOf(_.toLowerCase()))return}else if(-1===t.toLowerCase().indexOf(_.toLowerCase()))return}P.current.push(e.props.value)}}))}),[_]),React.createElement(React.Fragment,null,m&&React.createElement(Ir,{id:u,root:l},React.createElement(Yr,{context:h,modal:!1},React.createElement(\"div\",pm({ref:p.setFloating,className:oe(\"box-border [&_*]:box-border w-full bg-white outline-none shadow-lg outline outline-1 outline-border-subtle\",g&&\"grid grid-cols-1 grid-rows-[auto_1fr] divide-y divide-x-0 divide-solid divide-border-subtle\",dm[b].dropdown,!g&&\"h-auto\",g?\"overflow-hidden\":\"overflow-y-auto\",d),style:wm({},y)},v()),g&&React.createElement(\"div\",{className:oe(dm[b].searchbarWrapper)},React.createElement(um,{className:oe(\"text-icon-secondary shrink-0\",dm[b].searchbarIcon)}),React.createElement(\"input\",{className:oe(\"px-1 w-full placeholder:text-field-placeholder border-0 focus:outline-none focus:shadow-none\",dm[b].searchbar),type:\"search\",name:\"keyword\",placeholder:i,onChange:function(e){return x(e.target.value)},autoComplete:\"off\"})),React.createElement(\"div\",{className:oe(\"overflow-y-auto\",!g&&\"w-full h-full\",dm[b].dropdownItemsWrapper)},!!M&&T,!M&&React.createElement(\"div\",{className:\"p-2 text-center text-base font-medium text-field-placeholder\"},\"No items found\"))))))}function Pm(e){var t=e.value,n=e.selected,r=e.children,o=e.className,i=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,mm),s=Em(),l=s.sizeValue,c=s.getItemProps,u=s.onKeyDownItem,d=s.onClickItem,f=s.activeIndex,m=s.selectedIndex,h=s.updateListRef,p=s.getValues,g=s.by,y=s.multiple,v=i.index,b=(0,a.useMemo)((function(){if(!y)return!1;var e=p();return!!e&&e.some((function(e){return\"object\"===bm(e)?e[g]===t[g]:e===t}))}),[t,p]),x=(0,a.useMemo)((function(){return\"boolean\"==typeof n?n:y?b:v===m}),[b,m,n]);return React.createElement(\"div\",pm({className:oe(\"w-full flex items-center justify-between text-text-primary hover:bg-button-tertiary-hover rounded-md transition-all duration-150 cursor-pointer focus:outline-none focus-within:outline-none outline-none\",{sm:\"py-1.5 px-2 text-sm font-normal\",md:\"p-2 text-sm font-normal\",lg:\"p-2 text-base font-normal\"}[l],v===f&&\"bg-button-tertiary-hover\",o),ref:function(e){h(v,e)},role:\"option\",tabIndex:v===f?0:-1,\"aria-selected\":x&&v===f},c({onClick:function(){d(v,t)},onKeyDown:function(e){u(e,v,t)}})),React.createElement(\"span\",{className:\"w-full truncate\"},r),x&&React.createElement(Ce,{className:oe(\"text-icon-on-color-disabled\",{sm:\"size-4\",md:\"size-4\",lg:\"size-5\"}[l])}))}Cm.displayName=\"Select.Button\",_m.displayName=\"Select.Options\",Pm.displayName=\"Select.Option\";var Om=function(e){var t=e.id,n=e.size,r=void 0===n?\"md\":n,o=e.value,i=e.defaultValue,s=e.onChange,l=e.by,c=void 0===l?\"id\":l,u=e.children,d=e.multiple,f=void 0!==d&&d,m=e.combobox,h=void 0!==m&&m,p=e.disabled,g=void 0!==p&&p,y=(0,a.useMemo)((function(){return t||\"select-\".concat(fe())}),[t]),v=(0,a.useMemo)((function(){return void 0!==o}),[o]),b=hm((0,a.useState)(i),2),x=b[0],w=b[1],S=hm((0,a.useState)(\"\"),2),k=S[0],E=S[1],C=(0,a.useCallback)((function(){return v?o:x}),[v,o,x]),_=hm((0,a.useState)(!1),2),P=_[0],O=_[1],N=hm((0,a.useState)(),2),T=N[0],M=N[1],R=hm((0,a.useState)(),2),D=R[0],j=R[1],A={sm:h?256:172,md:h?256:216,lg:h?256:216},I=Qr({placement:\"bottom-start\",open:P,onOpenChange:O,whileElementsMounted:bn,middleware:[Dn(5),An({padding:10}),In({apply:function(e){var t=e.rects,n=e.elements,o=e.availableHeight;Object.assign(n.floating.style,{maxHeight:\"min(\".concat(o,\"px, \").concat(A[r],\"px)\"),maxWidth:\"\".concat(t.reference.width,\"px\")})},padding:10})]}),L=I.refs,F=I.floatingStyles,z=I.context,B=(0,a.useRef)([]),W=(0,a.useRef)([]),V=(0,a.useRef)(!1),U=qr(z,{event:\"mousedown\"}),$=Jr(z),Y=fo(z,{role:\"listbox\"}),H=co(z,{listRef:B,activeIndex:T,selectedIndex:D,onNavigate:M,loop:!0}),K=function(e,t){var n;const{open:r,dataRef:o}=e,{listRef:i,activeIndex:s,onMatch:l,onTypingChange:c,enabled:u=!0,findMatch:d=null,resetMs:f=750,ignoreKeys:m=[],selectedIndex:h=null}=t,p=a.useRef(),g=a.useRef(\"\"),y=a.useRef(null!=(n=null!=h?h:s)?n:-1),v=a.useRef(null),b=zn(l),x=zn(c),w=fr(d),S=fr(m);er((()=>{r&&(clearTimeout(p.current),v.current=null,g.current=\"\")}),[r]),er((()=>{var e;r&&\"\"===g.current&&(y.current=null!=(e=null!=h?h:s)?e:-1)}),[r,h,s]);const k=zn((e=>{e?o.current.typing||(o.current.typing=e,x(e)):o.current.typing&&(o.current.typing=e,x(e))})),E=zn((e=>{function t(e,t,n){const r=w.current?w.current(t,n):t.find((e=>0===(null==e?void 0:e.toLocaleLowerCase().indexOf(n.toLocaleLowerCase()))));return r?e.indexOf(r):-1}const n=i.current;if(g.current.length>0&&\" \"!==g.current[0]&&(-1===t(n,n,g.current)?k(!1):\" \"===e.key&&yt(e)),null==n||S.current.includes(e.key)||1!==e.key.length||e.ctrlKey||e.metaKey||e.altKey)return;r&&\" \"!==e.key&&(yt(e),k(!0)),n.every((e=>{var t,n;return!e||(null==(t=e[0])?void 0:t.toLocaleLowerCase())!==(null==(n=e[1])?void 0:n.toLocaleLowerCase())}))&&g.current===e.key&&(g.current=\"\",y.current=v.current),g.current+=e.key,clearTimeout(p.current),p.current=setTimeout((()=>{g.current=\"\",y.current=v.current,k(!1)}),f);const o=y.current,s=t(n,[...n.slice((o||0)+1),...n.slice(0,(o||0)+1)],g.current);-1!==s?(b(s),v.current=s):\" \"!==e.key&&(g.current=\"\",k(!1))})),C=a.useMemo((()=>({onKeyDown:E})),[E]),_=a.useMemo((()=>({onKeyDown:E,onKeyUp(e){\" \"===e.key&&k(!1)}})),[E,k]);return a.useMemo((()=>u?{reference:C,floating:_}:{}),[u,C,_])}(z,{listRef:W,activeIndex:T,selectedIndex:D,onMatch:P?M:j,onTypingChange:function(e){V.current=e}}),q=ro([$,Y,H,U].concat(gm(h?[]:[K]))),G=q.getReferenceProps,X=q.getFloatingProps,Z=q.getItemProps,J=function(e,t){if(f)return function(e,t){var n,r=gm(null!==(n=C())&&void 0!==n?n:[]);-1===r.findIndex((function(e){return\"object\"===bm(e)?e[c]===t[c]:e===t}))&&(r.push(t),v||w(r),j(e),L.reference.current.focus(),O(!1),E(\"\"),\"function\"==typeof s&&s(r))}(e,t);j(e),v||w(t),L.reference.current.focus(),O(!1),E(\"\"),\"function\"==typeof s&&s(t)},Q=(0,a.useCallback)((function(e,t){B.current[e]=t}),[]);return React.createElement(km.Provider,{value:{selectedIndex:D,setSelectedIndex:j,activeIndex:T,setActiveIndex:M,selected:x,setSelected:w,handleSelect:J,combobox:h,sizeValue:r,multiple:f,onChange:s,isTypingRef:V,getItemProps:Z,onClickItem:function(e,t){J(e,t)},onKeyDownItem:function(e,t,n){\"Enter\"===e.key&&(e.preventDefault(),J(t,n)),\" \"!==e.key||V.current||(e.preventDefault(),J(t,n))},getValues:C,selectId:y,getReferenceProps:G,isOpen:P,value:o,updateListRef:Q,refs:L,listContentRef:W,by:c,getFloatingProps:X,floatingStyles:F,context:z,searchKeyword:k,setSearchKeyword:E,disabled:g}},u)};Cm.displayName=\"Select.Button\",_m.displayName=\"Select.Options\",Pm.displayName=\"Select.Item\",Om.Button=Cm,Om.Options=_m,Om.Option=Pm;var Nm=Om,Tm=[\"id\",\"message\",\"jsx\"];function Mm(e){return Mm=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},Mm(e)}function Rm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Dm(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Rm(Object(n),!0).forEach((function(t){jm(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Rm(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function jm(e,t,n){return(t=Im(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Am(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,Im(r.key),r)}}function Im(e){var t=function(e){if(\"object\"!=Mm(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,\"string\");if(\"object\"!=Mm(n))return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"==Mm(t)?t:t+\"\"}function Lm(e,t,n){(function(e,t){if(t.has(e))throw new TypeError(\"Cannot initialize the same private elements twice on an object\")})(e,t),t.set(e,n)}function Fm(e,t){return e.get(Bm(e,t))}function zm(e,t,n){return e.set(Bm(e,t),n),n}function Bm(e,t,n){if(\"function\"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError(\"Private element is not present on this object\")}var Wm=1,Vm=new WeakMap,Um=new WeakMap,$m=function(){return e=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),Lm(this,Vm,void 0),Lm(this,Um,void 0),zm(Vm,this,[]),zm(Um,this,[])},t=[{key:\"subscribe\",value:function(e){var t=this;return Fm(Um,this).push(e),function(){zm(Um,t,Fm(Um,t).filter((function(t){return t!==e})))}}},{key:\"notify\",value:function(){var e=this;Fm(Um,this).forEach((function(t){return t(Fm(Vm,e))}))}},{key:\"publish\",value:function(e){Fm(Um,this).forEach((function(t){return t(e)}))}},{key:\"add\",value:function(e){Fm(Vm,this).push(e),this.publish(e)}},{key:\"remove\",value:function(e){return zm(Vm,this,Fm(Vm,this).filter((function(t){return t.id!==e}))),e}},{key:\"create\",value:function(e){var t=this,n=e.id,r=void 0===n?void 0:n,o=e.message,i=void 0===o?\"\":o,s=e.jsx,a=void 0===s?void 0:s,l=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Tm);if(i||\"function\"==typeof a){var c=\"number\"==typeof r?r:Wm++,u=Fm(Vm,this).find((function(e){return e.id===c}));return u&&zm(Vm,this,Fm(Vm,this).map((function(e){return e.id===c?(t.publish(Dm(Dm({},e),{},{title:i,jsx:a},l)),Dm(Dm({},e),{},{title:i,jsx:a},l)):e}))),this.add(Dm({id:c,title:i,jsx:a},l)),c}}},{key:\"update\",value:function(e,t){var n=this,r=t.render,o=void 0===r?void 0:r,i=t;switch(Mm(o)){case\"function\":i=Dm({jsx:o},t);break;case\"string\":i=Dm({title:o},t)}zm(Vm,this,Fm(Vm,this).map((function(t){return t.id===e?(n.publish(Dm(Dm({},t),i)),Dm(Dm({},t),i)):t})))}},{key:\"dismiss\",value:function(e){var t=this;return e||Fm(Vm,this).forEach((function(e){return Fm(Um,t).forEach((function(t){return t({id:e.id,dismiss:!0})}))})),Fm(Um,this).forEach((function(t){return t({id:e,dismiss:!0})})),e}},{key:\"history\",value:function(){return Fm(Vm,this)}},{key:\"default\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.create(Dm({message:e,type:\"neutral\"},t))}},{key:\"success\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.create(Dm({message:e,type:\"success\"},t))}},{key:\"error\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.create(Dm({message:e,type:\"error\"},t))}},{key:\"warning\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.create(Dm({message:e,type:\"warning\"},t))}},{key:\"info\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.create(Dm({message:e,type:\"info\"},t))}},{key:\"custom\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.create(Dm({jsx:e,type:\"custom\"},t))}}],t&&Am(e.prototype,t),Object.defineProperty(e,\"prototype\",{writable:!1}),e;var e,t}(),Ym=new $m,Hm=Object.seal(Object.assign((function(e,t){return Ym.default(e,t)}),{success:Ym.success.bind(Ym),error:Ym.error.bind(Ym),warning:Ym.warning.bind(Ym),info:Ym.info.bind(Ym),custom:Ym.custom.bind(Ym),dismiss:Ym.dismiss.bind(Ym),update:Ym.update.bind(Ym)},{getHistory:Ym.history.bind(Ym)})),Km=!1,qm={\"top-left\":\"top-0 bottom-0 left-0 justify-start items-start\",\"top-right\":\"top-0 bottom-0 right-0 justify-start items-end\",\"bottom-left\":\"top-0 bottom-0 left-0 justify-end items-start\",\"bottom-right\":\"top-0 bottom-0 right-0 justify-end items-end\"},Gm={neutral:\"border-alert-border-neutral bg-alert-background-neutral\",custom:\"border-alert-border-neutral bg-alert-background-neutral\",info:\"border-alert-border-info bg-alert-background-info\",success:\"border-alert-border-green bg-alert-background-green\",warning:\"border-alert-border-warning bg-alert-background-warning\",error:\"border-alert-border-danger bg-alert-background-danger\"},Xm=\"bg-background-inverse border-background-inverse\",Zm={light:\"text-icon-secondary\",dark:\"text-icon-inverse\"};class Jm extends a.Component{getSnapshotBeforeUpdate(e){const t=this.props.childRef.current;if(t&&e.isPresent&&!this.props.isPresent){const e=this.props.sizeRef.current;e.height=t.offsetHeight||0,e.width=t.offsetWidth||0,e.top=t.offsetTop,e.left=t.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function Qm({children:e,isPresent:t}){const n=(0,a.useId)(),r=(0,a.useRef)(null),o=(0,a.useRef)({width:0,height:0,top:0,left:0}),{nonce:i}=(0,a.useContext)($d);return(0,a.useInsertionEffect)((()=>{const{width:e,height:s,top:a,left:l}=o.current;if(t||!r.current||!e||!s)return;r.current.dataset.motionPopId=n;const c=document.createElement(\"style\");return i&&(c.nonce=i),document.head.appendChild(c),c.sheet&&c.sheet.insertRule(`\\n [data-motion-pop-id=\"${n}\"] {\\n position: absolute !important;\\n width: ${e}px !important;\\n height: ${s}px !important;\\n top: ${a}px !important;\\n left: ${l}px !important;\\n }\\n `),()=>{document.head.removeChild(c)}}),[t]),(0,mu.jsx)(Jm,{isPresent:t,childRef:r,sizeRef:o,children:a.cloneElement(e,{ref:r})})}const eh=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:o,presenceAffectsLayout:i,mode:s})=>{const l=yf(th),c=(0,a.useId)(),u=(0,a.useMemo)((()=>({id:c,initial:t,isPresent:n,custom:o,onExitComplete:e=>{l.set(e,!0);for(const e of l.values())if(!e)return;r&&r()},register:e=>(l.set(e,!1),()=>l.delete(e))})),i?[Math.random()]:[n]);return(0,a.useMemo)((()=>{l.forEach(((e,t)=>l.set(t,!1)))}),[n]),a.useEffect((()=>{!n&&!l.size&&r&&r()}),[n]),\"popLayout\"===s&&(e=(0,mu.jsx)(Qm,{isPresent:n,children:e})),(0,mu.jsx)(hu.Provider,{value:u,children:e})};function th(){return new Map}const nh=e=>e.key||\"\";function rh(e){const t=[];return a.Children.forEach(e,(e=>{(0,a.isValidElement)(e)&&t.push(e)})),t}const oh=({children:e,exitBeforeEnter:t,custom:n,initial:r=!0,onExitComplete:o,presenceAffectsLayout:i=!0,mode:s=\"sync\"})=>{os(!t,\"Replace exitBeforeEnter with mode='wait'\");const l=(0,a.useMemo)((()=>rh(e)),[e]),c=l.map(nh),u=(0,a.useRef)(!0),d=(0,a.useRef)(l),f=yf((()=>new Map)),[m,h]=(0,a.useState)(l),[p,g]=(0,a.useState)(l);Kd((()=>{u.current=!1,d.current=l;for(let e=0;e<p.length;e++){const t=nh(p[e]);c.includes(t)?f.delete(t):!0!==f.get(t)&&f.set(t,!1)}}),[p,c.length,c.join(\"-\")]);const y=[];if(l!==m){let e=[...l];for(let t=0;t<p.length;t++){const n=p[t],r=nh(n);c.includes(r)||(e.splice(t,0,n),y.push(n))}return\"wait\"===s&&y.length&&(e=y),g(rh(e)),void h(l)}const{forceRender:v}=(0,a.useContext)(pu);return(0,mu.jsx)(mu.Fragment,{children:p.map((e=>{const t=nh(e),a=l===p||c.includes(t);return(0,mu.jsx)(eh,{isPresent:a,initial:!(u.current&&!r)&&void 0,custom:a?void 0:n,presenceAffectsLayout:i,mode:s,onExitComplete:a?void 0:()=>{if(!f.has(t))return;f.set(t,!0);let e=!0;f.forEach((t=>{t||(e=!1)})),e&&(null==v||v(),g(d.current),o&&o())},children:e},t)}))})};function ih(e){return ih=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},ih(e)}function sh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ah(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?sh(Object(n),!0).forEach((function(t){lh(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sh(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function lh(e,t,n){return(t=function(e){var t=function(e){if(\"object\"!=ih(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,\"string\");if(\"object\"!=ih(n))return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"==ih(t)?t:t+\"\"}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ch(e,t){if(e){if(\"string\"==typeof e)return uh(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?uh(e,t):void 0}}function uh(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var dh,fh=function(e){var t=e.toastItem,n=e.title,r=void 0===n?null:n,o=e.content,i=void 0===o?null:o,s=e.autoDismiss,l=void 0===s||s,c=e.dismissAfter,u=void 0===c?5e3:c,d=e.theme,f=void 0===d?\"light\":d,m=e.design,h=void 0===m?\"stack\":m,p=e.icon,g=void 0===p?null:p,y=e.variant,v=void 0===y?\"neutral\":y,b=e.removeToast,x=(0,a.useRef)(0),w=(0,a.useRef)(0),S=(0,a.useRef)(0),k=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:u;if(l&&!(u<0))return x.current=(new Date).getTime(),setTimeout((function(){b(e.id)}),t)};(0,a.useEffect)((function(){var e=u;return S.current=k(t,e),function(){clearTimeout(S.current)}}),[]),(0,a.useEffect)((function(){null!=t&&t.dismiss&&b(t.id)}),[t]);var E,C,_,P,O,N,T,M,R,D,j=function(){var e,n;null==t||null===(e=t.action)||void 0===e||null===(n=e.onClick)||void 0===n||n.call(e,(function(){return b(t.id)}))},A=null;return\"stack\"===h&&(A=React.createElement(\"div\",{className:oe(\"flex items-center justify-start p-4 gap-2 relative border border-solid rounded-md shadow-lg\",\"dark\"===f?Xm:null===(E=Gm)||void 0===E?void 0:E[v],\"w-[22.5rem]\"),onMouseEnter:function(){clearTimeout(S.current),w.current=(new Date).getTime()},onMouseLeave:function(){S.current=k(t,u-(w.current-x.current))}},\"custom\"!==t.type?React.createElement(React.Fragment,null,React.createElement(\"div\",{className:\"self-start flex items-center justify-center [&_svg]:size-5 shrink-0\"},So({variant:v,icon:g,theme:f})),React.createElement(\"div\",{className:\"flex flex-col items-start justify-start gap-0.5\"},Eo({title:r,theme:f}),Co({content:i,theme:f}),(null==t||null===(C=t.action)||void 0===C?void 0:C.label)&&\"function\"==typeof(null==t||null===(_=t.action)||void 0===_?void 0:_.onClick)&&React.createElement(\"div\",{className:\"mt-2.5\"},ko({actionLabel:null==t||null===(P=t.action)||void 0===P?void 0:P.label,actionType:null!==(O=null==t||null===(N=t.action)||void 0===N?void 0:N.type)&&void 0!==O?O:\"button\",onAction:j,theme:f}))),React.createElement(\"div\",{className:\"absolute right-4 top-4 [&_svg]:size-5\"},React.createElement(\"button\",{className:oe(\"bg-transparent m-0 p-0 border-none focus:outline-none active:outline-none cursor-pointer\",null!==(T=Zm[f])&&void 0!==T?T:Zm.light),onClick:function(){return b(t.id)}},React.createElement(qo,null)))):null==t||null===(M=t.jsx)||void 0===M?void 0:M.call(t,{close:function(){return b(t.id)},action:null!=t&&t.action?ah(ah({},null==t?void 0:t.action),{},{onClick:j}):null}))),\"inline\"===h&&(A=React.createElement(\"div\",{className:oe(\"flex items-center justify-start p-3 gap-2 relative border border-solid rounded-md shadow-lg\",\"dark\"===f?Xm:null===(R=Gm)||void 0===R?void 0:R[v],\"lg:w-[47.5rem] w-full\")},React.createElement(\"div\",{className:\"self-start flex items-center justify-center [&_svg]:size-5 shrink-0\"},So({variant:v,icon:g,theme:f})),React.createElement(\"div\",{className:\"flex items-start justify-start gap-1 mr-10 [&>span:first-child]:shrink-0\"},Eo({title:r,theme:f}),Co({content:i,theme:f})),React.createElement(\"div\",{className:\"absolute right-3 top-3 [&_svg]:size-5\"},React.createElement(\"button\",{className:oe(\"bg-transparent m-0 p-0 border-none focus:outline-none active:outline-none cursor-pointer\",null!==(D=Zm[f])&&void 0!==D?D:Zm.light),onClick:function(){return b(t.id)}},React.createElement(qo,null))))),A},mh=(dh=function(e){var t,n,r,o=e.position,i=void 0===o?\"top-right\":o,s=e.design,l=void 0===s?\"stack\":s,c=e.theme,u=void 0===c?\"light\":c,d=e.className,f=void 0===d?\"\":d,m=e.autoDismiss,h=void 0===m||m,p=e.dismissAfter,g=void 0===p?5e3:p,y=(n=(0,a.useState)([]),r=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(n,r)||ch(n,r)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),v=y[0],b=y[1];(0,a.useEffect)((function(){Ym.subscribe((function(e){null!=e&&e.dismiss?b((function(t){return t.map((function(t){return t.id===e.id?ah(ah({},t),{},{dismiss:!0}):t}))})):setTimeout((function(){(0,tn.flushSync)((function(){return b((function(t){return-1!==t.findIndex((function(t){return t.id===e.id}))?t.map((function(t){return t.id===e.id?ah(ah({},t),e):t})):[].concat(function(e){return function(e){if(Array.isArray(e))return uh(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||ch(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}(t),[e])}))}))}))}))}),[]);var x=function(e){b((function(t){return t.filter((function(t){return t.id!==e}))}))};return React.createElement(\"ul\",{className:oe(\"fixed flex flex-col list-none z-20 p-10 pointer-events-none [&>li]:pointer-events-auto gap-3\",null!==(t=qm[i])&&void 0!==t?t:qm[\"top-right\"],f)},React.createElement(oh,{initial:!1},v.map((function(e){var t,n,r,o,i;return React.createElement(em.li,{key:e.id,positionTransition:!0,initial:{opacity:0,y:50,scale:.7},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,scale:.6,transition:{duration:.15}},layoutId:\"toast-\".concat(e.id)},React.createElement(fh,{toastItem:e,title:e.title,content:null==e?void 0:e.description,icon:null!==(t=null==e?void 0:e.icon)&&void 0!==t?t:null,design:null!==(n=null==e?void 0:e.design)&&void 0!==n?n:l,autoDismiss:null!==(r=null==e?void 0:e.autoDismiss)&&void 0!==r?r:h,dismissAfter:null!==(o=null==e?void 0:e.dismissAfter)&&void 0!==o?o:g,removeToast:x,variant:e.type,theme:null!==(i=null==e?void 0:e.theme)&&void 0!==i?i:u}))}))))},(0,a.memo)((function(e){var t=e.singleTon;return Km&&t?null:(Km=!0,React.createElement(dh,e))}))),hh={sm:{1:\"grid-cols-1\",2:\"grid-cols-2\",3:\"grid-cols-3\",4:\"grid-cols-4\",5:\"grid-cols-5\",6:\"grid-cols-6\",7:\"grid-cols-7\",8:\"grid-cols-8\",9:\"grid-cols-9\",10:\"grid-cols-10\",11:\"grid-cols-11\",12:\"grid-cols-12\"},md:{1:\"md:grid-cols-1\",2:\"md:grid-cols-2\",3:\"md:grid-cols-3\",4:\"md:grid-cols-4\",5:\"md:grid-cols-5\",6:\"md:grid-cols-6\",7:\"md:grid-cols-7\",8:\"md:grid-cols-8\",9:\"md:grid-cols-9\",10:\"md:grid-cols-10\",11:\"md:grid-cols-11\",12:\"md:grid-cols-12\"},lg:{1:\"lg:grid-cols-1\",2:\"lg:grid-cols-2\",3:\"lg:grid-cols-3\",4:\"lg:grid-cols-4\",5:\"lg:grid-cols-5\",6:\"lg:grid-cols-6\",7:\"lg:grid-cols-7\",8:\"lg:grid-cols-8\",9:\"lg:grid-cols-9\",10:\"lg:grid-cols-10\",11:\"lg:grid-cols-11\",12:\"lg:grid-cols-12\"}},ph={sm:{xs:\"gap-2\",sm:\"gap-4\",md:\"gap-5\",lg:\"gap-6\",xl:\"gap-6\",\"2xl\":\"gap-8\"},md:{xs:\"md:gap-2\",sm:\"md:gap-4\",md:\"md:gap-5\",lg:\"md:gap-6\",xl:\"md:gap-6\",\"2xl\":\"md:gap-8\"},lg:{xs:\"lg:gap-2\",sm:\"lg:gap-4\",md:\"lg:gap-5\",lg:\"lg:gap-6\",xl:\"lg:gap-6\",\"2xl\":\"lg:gap-8\"}},gh={sm:{xs:\"gap-x-2\",sm:\"gap-x-4\",md:\"gap-x-5\",lg:\"gap-x-6\",xl:\"gap-x-6\",\"2xl\":\"gap-x-8\"},md:{xs:\"md:gap-x-2\",sm:\"md:gap-x-4\",md:\"md:gap-x-5\",lg:\"md:gap-x-6\",xl:\"md:gap-x-6\",\"2xl\":\"md:gap-x-8\"},lg:{xs:\"lg:gap-x-2\",sm:\"lg:gap-x-4\",md:\"lg:gap-x-5\",lg:\"lg:gap-x-6\",xl:\"lg:gap-x-6\",\"2xl\":\"lg:gap-x-8\"}},yh={sm:{xs:\"gap-y-2\",sm:\"gap-y-4\",md:\"gap-y-5\",lg:\"gap-y-6\",xl:\"gap-y-6\",\"2xl\":\"gap-y-8\"},md:{xs:\"md:gap-y-2\",sm:\"md:gap-y-4\",md:\"md:gap-y-5\",lg:\"md:gap-y-6\",xl:\"md:gap-y-6\",\"2xl\":\"md:gap-y-8\"},lg:{xs:\"lg:gap-y-2\",sm:\"lg:gap-y-4\",md:\"lg:gap-y-5\",lg:\"lg:gap-y-6\",xl:\"lg:gap-y-6\",\"2xl\":\"lg:gap-y-8\"}},vh={sm:{1:\"col-span-1\",2:\"col-span-2\",3:\"col-span-3\",4:\"col-span-4\",5:\"col-span-5\",6:\"col-span-6\",7:\"col-span-7\",8:\"col-span-8\",9:\"col-span-9\",10:\"col-span-10\",11:\"col-span-11\",12:\"col-span-12\"},md:{1:\"md:col-span-1\",2:\"md:col-span-2\",3:\"md:col-span-3\",4:\"md:col-span-4\",5:\"md:col-span-5\",6:\"md:col-span-6\",7:\"md:col-span-7\",8:\"md:col-span-8\",9:\"md:col-span-9\",10:\"md:col-span-10\",11:\"md:col-span-11\",12:\"md:col-span-12\"},lg:{1:\"lg:col-span-1\",2:\"lg:col-span-2\",3:\"lg:col-span-3\",4:\"lg:col-span-4\",5:\"lg:col-span-5\",6:\"lg:col-span-6\",7:\"lg:col-span-7\",8:\"lg:col-span-8\",9:\"lg:col-span-9\",10:\"lg:col-span-10\",11:\"lg:col-span-11\",12:\"lg:col-span-12\"}},bh={sm:{1:\"col-start-1\",2:\"col-start-2\",3:\"col-start-3\",4:\"col-start-4\",5:\"col-start-5\",6:\"col-start-6\",7:\"col-start-7\",8:\"col-start-8\",9:\"col-start-9\",10:\"col-start-10\",11:\"col-start-11\",12:\"col-start-12\"},md:{1:\"md:col-start-1\",2:\"md:col-start-2\",3:\"md:col-start-3\",4:\"md:col-start-4\",5:\"md:col-start-5\",6:\"md:col-start-6\",7:\"md:col-start-7\",8:\"md:col-start-8\",9:\"md:col-start-9\",10:\"md:col-start-10\",11:\"md:col-start-11\",12:\"md:col-start-12\"},lg:{1:\"lg:col-start-1\",2:\"lg:col-start-2\",3:\"lg:col-start-3\",4:\"lg:col-start-4\",5:\"lg:col-start-5\",6:\"lg:col-start-6\",7:\"lg:col-start-7\",8:\"lg:col-start-8\",9:\"lg:col-start-9\",10:\"lg:col-start-10\",11:\"lg:col-start-11\",12:\"lg:col-start-12\"}},xh={sm:{row:\"grid-flow-row\",column:\"grid-flow-col\",\"row-dense\":\"grid-flow-row-dense\",\"column-dense\":\"grid-flow-col-dense\"},md:{row:\"md:grid-flow-row\",column:\"md:grid-flow-col\",\"row-dense\":\"md:grid-flow-row-dense\",\"column-dense\":\"md:grid-flow-col-dense\"},lg:{row:\"lg:grid-flow-row\",column:\"lg:grid-flow-col\",\"row-dense\":\"lg:grid-flow-row-dense\",\"column-dense\":\"lg:grid-flow-col-dense\"}},wh={sm:{normal:\"justify-normal\",start:\"justify-start\",end:\"justify-end\",center:\"justify-center\",between:\"justify-between\",around:\"justify-around\",evenly:\"justify-evenly\",stretch:\"justify-stretch\"},md:{normal:\"md:justify-normal\",start:\"md:justify-start\",end:\"md:justify-end\",center:\"md:justify-center\",between:\"md:justify-between\",around:\"md:justify-around\",evenly:\"md:justify-evenly\",stretch:\"md:justify-stretch\"},lg:{normal:\"lg:justify-normal\",start:\"lg:justify-start\",end:\"lg:justify-end\",center:\"lg:justify-center\",between:\"lg:justify-between\",around:\"lg:justify-around\",evenly:\"lg:justify-evenly\",stretch:\"lg:justify-stretch\"}},Sh={sm:{start:\"items-start\",end:\"items-end\",center:\"items-center\",baseline:\"items-baseline\",stretch:\"items-stretch\"},md:{start:\"md:items-start\",end:\"md:items-end\",center:\"md:items-center\",baseline:\"md:items-baseline\",stretch:\"md:items-stretch\"},lg:{start:\"lg:items-start\",end:\"lg:items-end\",center:\"lg:items-center\",baseline:\"lg:items-baseline\",stretch:\"lg:items-stretch\"}},kh={sm:{start:\"self-start\",end:\"self-end\",center:\"self-center\",baseline:\"self-baseline\",stretch:\"self-stretch\"},md:{start:\"md:self-start\",end:\"md:self-end\",center:\"md:self-center\",baseline:\"md:self-baseline\",stretch:\"md:self-stretch\"},lg:{start:\"lg:self-start\",end:\"lg:self-end\",center:\"lg:self-center\",baseline:\"lg:self-baseline\",stretch:\"lg:self-stretch\"}},Eh={sm:{auto:\"justify-self-auto\",start:\"justify-self-start\",end:\"justify-self-end\",center:\"justify-self-center\",baseline:\"justify-self-baseline\",stretch:\"justify-self-stretch\"},md:{auto:\"md:justify-self-auto\",start:\"md:justify-self-start\",end:\"md:justify-self-end\",center:\"md:justify-self-center\",baseline:\"md:justify-self-baseline\",stretch:\"md:justify-self-stretch\"},lg:{auto:\"lg:justify-self-auto\",start:\"lg:justify-self-start\",end:\"lg:justify-self-end\",center:\"lg:justify-self-center\",baseline:\"lg:justify-self-baseline\",stretch:\"lg:justify-self-stretch\"}},Ch={sm:{row:\"flex-row\",\"row-reverse\":\"flex-row-reverse\",column:\"flex-col\",\"column-reverse\":\"flex-col-reverse\"},md:{row:\"md:flex-row\",\"row-reverse\":\"md:flex-row-reverse\",column:\"md:flex-col\",\"column-reverse\":\"md:flex-col-reverse\"},lg:{row:\"lg:flex-row\",\"row-reverse\":\"lg:flex-row-reverse\",column:\"lg:flex-col\",\"column-reverse\":\"lg:flex-col-reverse\"}},_h={sm:{wrap:\"flex-wrap\",\"wrap-reverse\":\"flex-wrap-reverse\",nowrap:\"flex-nowrap\"},md:{wrap:\"md:flex-wrap\",\"wrap-reverse\":\"md:flex-wrap-reverse\",nowrap:\"md:flex-nowrap\"},lg:{wrap:\"lg:flex-wrap\",\"wrap-reverse\":\"lg:flex-wrap-reverse\",nowrap:\"lg:flex-nowrap\"}},Ph={sm:{1:\"w-full\",2:\"w-1/2\",3:\"w-1/3\",4:\"w-1/4\",5:\"w-1/5\",6:\"w-1/6\",7:\"w-1/7\",8:\"w-1/8\",9:\"w-1/9\",10:\"w-1/10\",11:\"w-1/11\",12:\"w-1/12\"},md:{1:\"md:w-full\",2:\"md:w-1/2\",3:\"md:w-1/3\",4:\"md:w-1/4\",5:\"md:w-1/5\",6:\"md:w-1/6\",7:\"md:w-1/7\",8:\"md:w-1/8\",9:\"md:w-1/9\",10:\"md:w-1/10\",11:\"md:w-1/11\",12:\"md:w-1/12\"},lg:{1:\"lg:w-full\",2:\"lg:w-1/2\",3:\"lg:w-1/3\",4:\"lg:w-1/4\",5:\"lg:w-1/5\",6:\"lg:w-1/6\",7:\"lg:w-1/7\",8:\"lg:w-1/8\",9:\"lg:w-1/9\",10:\"lg:w-1/10\",11:\"lg:w-1/11\",12:\"lg:w-1/12\"}},Oh={sm:{1:\"order-1\",2:\"order-2\",3:\"order-3\",4:\"order-4\",5:\"order-5\",6:\"order-6\",7:\"order-7\",8:\"order-8\",9:\"order-9\",10:\"order-10\",11:\"order-11\",12:\"order-12\",first:\"order-first\",last:\"order-last\",none:\"order-none\"},md:{1:\"md:order-1\",2:\"md:order-2\",3:\"md:order-3\",4:\"md:order-4\",5:\"md:order-5\",6:\"md:order-6\",7:\"md:order-7\",8:\"md:order-8\",9:\"md:order-9\",10:\"md:order-10\",11:\"md:order-11\",12:\"md:order-12\",first:\"md:order-first\",last:\"md:order-last\",none:\"md:order-none\"},lg:{1:\"lg:order-1\",2:\"lg:order-2\",3:\"lg:order-3\",4:\"lg:order-4\",5:\"lg:order-5\",6:\"lg:order-6\",7:\"lg:order-7\",8:\"lg:order-8\",9:\"lg:order-9\",10:\"lg:order-10\",11:\"lg:order-11\",12:\"lg:order-12\",first:\"lg:order-first\",last:\"lg:order-last\",none:\"lg:order-none\"}},Nh={sm:{0:\"grow-0\",1:\"grow\"},md:{0:\"md:grow-0\",1:\"md:grow\"},lg:{0:\"lg:grow-0\",1:\"lg:grow\"}},Th={sm:{0:\"shrink-0\",1:\"shrink\"},md:{0:\"md:shrink-0\",1:\"md:shrink\"},lg:{0:\"lg:shrink-0\",1:\"lg:shrink\"}};function Mh(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Rh(e){return Rh=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},Rh(e)}var Dh=function(e,t,n){var r,o,i,s,a,l,c,u,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"sm\",f=[];switch(Rh(e)){case\"object\":for(var m=0,h=Object.entries(e);m<h.length;m++){var p,g,y,v,b=(c=h[m],u=2,function(e){if(Array.isArray(e))return e}(c)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(c,u)||function(e,t){if(e){if(\"string\"==typeof e)return Mh(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Mh(e,t):void 0}}(c,u)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),x=b[0],w=b[1];t[x]&&f.push(null!==(p=null!==(g=null==t||null===(y=t[x])||void 0===y?void 0:y[w])&&void 0!==g?g:null==t||null===(v=t[x])||void 0===v?void 0:v[null==n?void 0:n[x]])&&void 0!==p?p:\"\")}break;case\"string\":case\"number\":var S=d;f.push(null!==(r=null!==(o=null==t||null===(i=t[S])||void 0===i?void 0:i[e])&&void 0!==o?o:null==t||null===(s=t[S])||void 0===s?void 0:s[null==n?void 0:n[S]])&&void 0!==r?r:\"\");break;default:f.push(null!==(a=null==t||null===(l=t[d])||void 0===l?void 0:l[n])&&void 0!==a?a:\"\")}return f.join(\" \")},jh=[\"className\",\"cols\",\"gap\",\"gapX\",\"gapY\",\"align\",\"justify\",\"gridFlow\",\"colsSubGrid\",\"rowsSubGrid\",\"autoRows\",\"autoCols\",\"children\"],Ah=[\"className\",\"children\",\"colSpan\",\"colStart\",\"alignSelf\",\"justifySelf\"];function Ih(){return Ih=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ih.apply(null,arguments)}function Lh(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var Fh=function(e){var t=e.className,n=e.cols,r=e.gap,o=e.gapX,i=e.gapY,s=e.align,a=e.justify,c=e.gridFlow,u=void 0===c?\"\":c,d=e.colsSubGrid,f=void 0!==d&&d,m=e.rowsSubGrid,h=void 0!==m&&m,p=e.autoRows,g=void 0!==p&&p,y=e.autoCols,v=void 0!==y&&y,b=e.children,x=Lh(e,jh),w=Dh(n,hh,1),S=Dh(r,ph,\"sm\"),k=Dh(o,gh,\"\"),E=Dh(i,yh,\"\"),C=Dh(s,Sh,\"\"),_=Dh(a,wh,\"\"),P=Dh(u,xh,\"\");return l().createElement(\"div\",Ih({className:oe(\"grid\",{\"grid-cols-subgrid\":f,\"grid-rows-subgrid\":h,\"auto-cols-auto\":v,\"auto-rows-auto\":g},w,S,k,E,C,_,P,t)},x),b)};Object.assign(Fh,{Item:function(e){var t=e.className,n=e.children,r=e.colSpan,o=e.colStart,i=e.alignSelf,s=e.justifySelf,a=Lh(e,Ah),c=Dh(r,vh,0),u=Dh(o,bh,0),d=Dh(i,kh,\"\"),f=Dh(s,Eh,\"\");return l().createElement(\"div\",Ih({className:oe(c,u,d,f,t)},a),n)}});var zh=Fh,Bh=[\"containerType\",\"gap\",\"gapX\",\"gapY\",\"direction\",\"justify\",\"align\",\"wrap\",\"cols\",\"className\",\"children\"],Wh=[\"containerType\"],Vh=[\"grow\",\"shrink\",\"order\",\"alignSelf\",\"justifySelf\",\"className\",\"children\"];function Uh(){return Uh=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Uh.apply(null,arguments)}function $h(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var Yh=(0,a.createContext)(),Hh=function(e){var t=e.containerType,n=void 0===t?\"flex\":t,r=e.gap,o=void 0===r?\"sm\":r,i=e.gapX,s=void 0===i?\"\":i,a=e.gapY,c=void 0===a?\"\":a,u=e.direction,d=void 0===u?\"\":u,f=e.justify,m=void 0===f?\"\":f,h=e.align,p=void 0===h?\"\":h,g=e.wrap,y=e.cols,v=void 0===y?\"\":y,b=e.className,x=e.children,w=$h(e,Bh);if(\"grid\"===n){var S=e.containerType,k=$h(e,Wh);return l().createElement(Yh.Provider,{value:{containerType:S}},l().createElement(zh,k))}var E=Dh(g,_h,\"\"),C=Dh(o,ph,\"sm\"),_=Dh(s,gh,\"\"),P=Dh(c,yh,\"\"),O=Dh(d,Ch,\"\"),N=Dh(m,wh,\"\"),T=Dh(p,Sh,\"\"),M=oe(\"flex\",E,C,_,P,O,N,T,b);return l().createElement(Yh.Provider,{value:{containerType:n,cols:v}},\"grid\"===n?l().createElement(zh,e):l().createElement(\"div\",Uh({className:M},w),x))};Hh.Item=function(e){var t=e.grow,n=e.shrink,r=e.order,o=e.alignSelf,i=e.justifySelf,s=e.className,c=e.children,u=$h(e,Vh),d=(0,a.useContext)(Yh),f=d.containerType,m=d.cols;if(\"grid\"===f){var h=Uh({},(function(e){if(null==e)throw new TypeError(\"Cannot destructure \"+e)}(e),e));return l().createElement(zh.Item,h)}var p=Dh(o,kh,\"\"),g=Dh(i,Eh,\"\"),y=Dh(t,Nh,0),v=Dh(n,Th,0),b=Dh(r,Oh,0),x=Dh(m,Ph,1);return l().createElement(\"div\",Uh({className:oe(\"box-border\",y,v,b,p,g,x,s)},u),c)},Hh.displayName=\"Container\",Hh.Item.displayName=\"Container.Item\";var Kh,qh=Hh,Gh=function(e){var t,n,r,o,i,s,a=e.design,l=void 0===a?\"inline\":a,c=e.theme,u=void 0===c?\"light\":c,d=e.variant,f=void 0===d?\"neutral\":d,m=e.className,h=void 0===m?\"\":m,p=e.title,g=void 0===p?\"Title\":p,y=e.content,v=void 0===y?\"Description\":y,b=e.icon,x=void 0===b?null:b,w=e.onClose,S=void 0===w?function(){}:w,k=e.action,E=void 0===k?{label:\"\",onClick:function(){},type:\"link\"}:k,C=function(){S()},_={neutral:\"ring-alert-border-neutral bg-alert-background-neutral\",custom:\"ring-alert-border-neutral bg-alert-background-neutral\",info:\"ring-alert-border-info bg-alert-background-info\",success:\"ring-alert-border-green bg-alert-background-green\",warning:\"ring-alert-border-warning bg-alert-background-warning\",error:\"ring-alert-border-danger bg-alert-background-danger\"},P=\"bg-background-inverse ring-background-inverse\",O={light:\"text-icon-secondary\",dark:\"text-icon-inverse\"},N=function(){var e;null==E||null===(e=E.onClick)||void 0===e||e.call(E,(function(){return C()}))};return\"stack\"===l?React.createElement(\"div\",{className:oe(\"flex items-center justify-start p-4 gap-2 relative ring-1 rounded-md shadow-lg\",\"dark\"===u?P:null===(o=_)||void 0===o?void 0:o[f],h)},React.createElement(React.Fragment,null,React.createElement(\"div\",{className:\"self-start flex items-center justify-center [&_svg]:size-5 shrink-0\"},So({variant:f,icon:x,theme:u})),React.createElement(\"div\",{className:\"flex flex-col items-start justify-start gap-0.5\"},Eo({title:g,theme:u}),Co({content:v,theme:u}),(null==E?void 0:E.label)&&\"function\"==typeof(null==E?void 0:E.onClick)&&React.createElement(\"div\",{className:\"mt-2.5\"},ko({actionLabel:null==E?void 0:E.label,actionType:null!==(i=null==E?void 0:E.type)&&void 0!==i?i:\"button\",onAction:N,theme:u}))),React.createElement(\"div\",{className:\"absolute right-4 top-4 [&_svg]:size-5\"},React.createElement(\"button\",{className:oe(\"bg-transparent m-0 p-0 border-none focus:outline-none active:outline-none cursor-pointer\",null!==(s=O[u])&&void 0!==s?s:O.light),onClick:function(){return C()}},React.createElement(qo,null))))):React.createElement(\"div\",{className:oe(\"flex items-center justify-between p-3 gap-2 relative ring-1 rounded-lg shadow-lg\",\"dark\"===u?P:null===(t=_)||void 0===t?void 0:t[f],h)},React.createElement(\"div\",{className:\"flex items-center justify-start gap-2\"},React.createElement(\"div\",{className:\"self-start flex items-center justify-center [&_svg]:size-5 shrink-0\"},So({variant:f,icon:x,theme:u})),React.createElement(\"div\",{className:\"flex items-start justify-start gap-1 mr-10 [&>span:first-child]:shrink-0 px-1\"},Eo({title:g,theme:u}),Co({content:v,theme:u}))),React.createElement(\"div\",{className:\"flex items-center justify-start gap-4 [&_svg]:size-4\"},(null==E?void 0:E.label)&&\"function\"==typeof(null==E?void 0:E.onClick)&&React.createElement(\"div\",{className:\"flex h-5\"},ko({actionLabel:null==E?void 0:E.label,actionType:null!==(n=null==E?void 0:E.type)&&void 0!==n?n:\"button\",onAction:N,theme:u})),React.createElement(\"button\",{className:oe(\"bg-transparent m-0 border-none p-0.5 focus:outline-none active:outline-none cursor-pointer size-5\",null!==(r=O[u])&&void 0!==r?r:O.light),onClick:function(){return C()}},React.createElement(qo,null))))},Xh=(Kh=function(e){const t=new URLSearchParams;t.append(\"code\",e);for(let e=1;e<arguments.length;e++)t.append(\"v\",arguments[e]);throw Error(`Minified Lexical error #${e}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)},Kh&&Kh.__esModule&&Object.prototype.hasOwnProperty.call(Kh,\"default\")?Kh.default:Kh);const Zh=(0,a.createContext)(null);function Jh(){const e=(0,a.useContext)(Zh);return null==e&&Xh(8),e}function Qh({defaultSelection:e}){const[t]=Jh();return(0,a.useEffect)((()=>{t.focus((()=>{const e=document.activeElement,n=t.getRootElement();null===n||null!==e&&n.contains(e)||n.focus({preventScroll:!0})}),{defaultSelection:e})}),[e,t]),null}const ep={},tp={},np={},rp={},op={},ip={},sp={},ap={},lp={},cp={},up={},dp={},fp={},mp={},hp={},pp={},gp={},yp={},vp={},bp={},xp={},wp={},Sp={},kp={},Ep={},Cp={},_p={},Pp={},Op={},Np={},Tp={},Mp={},Rp={},Dp={},jp={},Ap={},Ip={},Lp={},Fp={},zp={},Bp=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,Wp=Bp&&\"documentMode\"in document?document.documentMode:null,Vp=Bp&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),Up=Bp&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent),$p=!(!Bp||!(\"InputEvent\"in window)||Wp)&&\"getTargetRanges\"in new window.InputEvent(\"input\"),Yp=Bp&&/Version\\/[\\d.]+.*Safari/.test(navigator.userAgent),Hp=Bp&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,Kp=Bp&&/Android/.test(navigator.userAgent),qp=Bp&&/^(?=.*Chrome).*/i.test(navigator.userAgent),Gp=Bp&&Kp&&qp,Xp=Bp&&/AppleWebKit\\/[\\d.]+/.test(navigator.userAgent)&&!qp,Zp=1,Jp=3,Qp=0,eg=2,tg=0,ng=1,rg=2,og=4,ig=8,sg=3|og|ig|240,ag=1,lg=2,cg=3,ug=4,dg=5,fg=6,mg=Yp||Hp||Xp?\" \":\"\",hg=\"\\n\\n\",pg=Up?\" \":mg,gg=\"֑-߿יִ-﷽ﹰ-ﻼ\",yg=\"A-Za-zÀ-ÖØ-öø-ʸ̀-ࠀ-Ⰰ-︀--\",vg=new RegExp(\"^[^\"+yg+\"]*[\"+gg+\"]\"),bg=new RegExp(\"^[^\"+gg+\"]*[\"+yg+\"]\"),xg={bold:1,code:16,highlight:128,italic:2,strikethrough:og,subscript:32,superscript:64,underline:ig},wg={directionless:1,unmergeable:2},Sg={center:lg,end:fg,justify:ug,left:ag,right:cg,start:dg},kg={[lg]:\"center\",[fg]:\"end\",[ug]:\"justify\",[ag]:\"left\",[cg]:\"right\",[dg]:\"start\"},Eg={normal:0,segmented:2,token:1},Cg={[tg]:\"normal\",[rg]:\"segmented\",[ng]:\"token\"};var _g,Pg=(_g=function(e){const t=new URLSearchParams;t.append(\"code\",e);for(let e=1;e<arguments.length;e++)t.append(\"v\",arguments[e]);throw Error(`Minified Lexical error #${e}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)},_g&&_g.__esModule&&Object.prototype.hasOwnProperty.call(_g,\"default\")?_g.default:_g);function Og(...e){const t=[];for(const n of e)if(n&&\"string\"==typeof n)for(const[e]of n.matchAll(/\\S+/g))t.push(e);return t}const Ng=100;let Tg=!1,Mg=0;function Rg(e){Mg=e.timeStamp}function Dg(e,t,n){return t.__lexicalLineBreak===e||void 0!==e[`__lexicalKey_${n._key}`]}function jg(e,t,n){const r=Vy(n._window);let o=null,i=null;null!==r&&r.anchorNode===e&&(o=r.anchorOffset,i=r.focusOffset);const s=e.nodeValue;null!==s&&by(t,s,o,i,!1)}function Ag(e,t,n){if(Db(e)){const t=e.anchor.getNode();if(t.is(n)&&e.format!==t.getFormat())return!1}return t.nodeType===Jp&&n.isAttached()}function Ig(e,t,n){Tg=!0;const r=performance.now()-Mg>Ng;try{wx(e,(()=>{const o=Hb()||function(e){return e.getEditorState().read((()=>{const e=Hb();return null!==e?e.clone():null}))}(e),i=new Map,s=e.getRootElement(),a=e._editorState,l=e._blockCursorElement;let c=!1,u=\"\";for(let n=0;n<t.length;n++){const d=t[n],f=d.type,m=d.target;let h=sy(m,a);if(!(null===h&&m!==s||Px(h)))if(\"characterData\"===f)r&&kb(h)&&Ag(o,m,h)&&jg(m,h,e);else if(\"childList\"===f){c=!0;const t=d.addedNodes;for(let n=0;n<t.length;n++){const r=t[n],o=iy(r),i=r.parentNode;if(null!=i&&r!==l&&null===o&&(\"BR\"!==r.nodeName||!Dg(r,i,e))){if(Up){const e=r.innerText||r.nodeValue;e&&(u+=e)}i.removeChild(r)}}const n=d.removedNodes,r=n.length;if(r>0){let t=0;for(let o=0;o<r;o++){const r=n[o];(\"BR\"===r.nodeName&&Dg(r,m,e)||l===r)&&(m.appendChild(r),t++)}r!==t&&(m===s&&(h=uy(a)),i.set(m,h))}}}if(i.size>0)for(const[t,n]of i)if(kx(n)){const r=n.getChildrenKeys();let o=t.firstChild;for(let n=0;n<r.length;n++){const i=r[n],s=e.getElementByKey(i);null!==s&&(null==o?(t.appendChild(s),o=s):o!==s&&t.replaceChild(s,o),o=o.nextSibling)}}else kb(n)&&n.markDirty();const d=n.takeRecords();if(d.length>0){for(let t=0;t<d.length;t++){const n=d[t],r=n.addedNodes,o=n.target;for(let t=0;t<r.length;t++){const n=r[t],i=n.parentNode;null==i||\"BR\"!==n.nodeName||Dg(n,o,e)||i.removeChild(n)}}n.takeRecords()}null!==o&&(c&&(o.dirty=!0,dy(o)),Up&&My(e)&&o.insertRawText(u))}))}finally{Tg=!1}}function Lg(e){const t=e._observer;null!==t&&Ig(e,t.takeRecords(),t)}function Fg(e){!function(e){0===Mg&&Ly(e).addEventListener(\"textInput\",Rg,!0)}(e),e._observer=new MutationObserver(((t,n)=>{Ig(e,t,n)}))}function zg(e,t){const n=e.__mode,r=e.__format,o=e.__style,i=t.__mode,s=t.__format,a=t.__style;return!(null!==n&&n!==i||null!==r&&r!==s||null!==o&&o!==a)}function Bg(e,t){const n=e.mergeWithSibling(t),r=ux()._normalizedNodes;return r.add(e.__key),r.add(t.__key),n}function Wg(e){let t,n,r=e;if(\"\"!==r.__text||!r.isSimpleText()||r.isUnmergeable()){for(;null!==(t=r.getPreviousSibling())&&kb(t)&&t.isSimpleText()&&!t.isUnmergeable();){if(\"\"!==t.__text){if(zg(t,r)){r=Bg(t,r);break}break}t.remove()}for(;null!==(n=r.getNextSibling())&&kb(n)&&n.isSimpleText()&&!n.isUnmergeable();){if(\"\"!==n.__text){if(zg(r,n)){r=Bg(r,n);break}break}n.remove()}}else r.remove()}function Vg(e){for(;\"element\"===e.type;){const t=e.getNode(),n=e.offset;let r,o;if(n===t.getChildrenSize()?(r=t.getChildAtIndex(n-1),o=!0):(r=t.getChildAtIndex(n),o=!1),kb(r)){e.set(r.__key,o?r.getTextContentSize():0,\"text\");break}if(!kx(r))break;e.set(r.__key,o?r.getChildrenSize():0,\"element\")}}let Ug=1;const $g=\"function\"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)};function Yg(e){const t=document.activeElement;if(null===t)return!1;const n=t.nodeName;return Px(sy(e))&&(\"INPUT\"===n||\"TEXTAREA\"===n||\"true\"===t.contentEditable&&null==Gg(t))}function Hg(e,t,n){const r=e.getRootElement();try{return null!==r&&r.contains(t)&&r.contains(n)&&null!==t&&!Yg(t)&&qg(t)===e}catch(e){return!1}}function Kg(e){return e instanceof Bx}function qg(e){let t=e;for(;null!=t;){const e=Gg(t);if(Kg(e))return e;t=Ay(t)}return null}function Gg(e){return e?e.__lexicalEditor:null}function Xg(e){return e.isToken()||e.isSegmented()}function Zg(e){return e.nodeType===Jp}function Jg(e){let t=e;for(;null!=t;){if(Zg(t))return t;t=t.firstChild}return null}function Qg(e,t,n){const r=xg[t];if(null!==n&&(e&r)==(n&r))return e;let o=e^r;return\"subscript\"===t?o&=~xg.superscript:\"superscript\"===t&&(o&=~xg.subscript),o}function ey(e){const t=e.getParent();if(null!==t){const n=e.getWritable(),r=t.getWritable(),o=e.getPreviousSibling(),i=e.getNextSibling();if(null===o)if(null!==i){const e=i.getWritable();r.__first=i.__key,e.__prev=null}else r.__first=null;else{const e=o.getWritable();if(null!==i){const t=i.getWritable();t.__prev=e.__key,e.__next=t.__key}else e.__next=null;n.__prev=null}if(null===i)if(null!==o){const e=o.getWritable();r.__last=o.__key,e.__next=null}else r.__last=null;else{const e=i.getWritable();if(null!==o){const t=o.getWritable();t.__next=e.__key,e.__prev=t.__key}else e.__prev=null;n.__next=null}r.__size--,n.__parent=null}}function ty(e){lx();const t=e.getLatest(),n=t.__parent,r=cx(),o=ux(),i=r._nodeMap,s=o._dirtyElements;null!==n&&function(e,t,n){let r=e;for(;null!==r;){if(n.has(r))return;const e=t.get(r);if(void 0===e)break;n.set(r,!1),r=e.__parent}}(n,i,s);const a=t.__key;o._dirtyType=1,kx(e)?s.set(a,!0):o._dirtyLeaves.add(a)}function ny(e){ax();const t=ux(),n=t._compositionKey;if(e!==n){if(t._compositionKey=e,null!==n){const e=oy(n);null!==e&&e.getWritable()}if(null!==e){const t=oy(e);null!==t&&t.getWritable()}}}function ry(){return sx()?null:ux()._compositionKey}function oy(e,t){const n=(t||cx())._nodeMap.get(e);return void 0===n?null:n}function iy(e,t){const n=e[`__lexicalKey_${ux()._key}`];return void 0!==n?oy(n,t):null}function sy(e,t){let n=e;for(;null!=n;){const e=iy(n,t);if(null!==e)return e;n=Ay(n)}return null}function ay(e){const t=e._decorators,n=Object.assign({},t);return e._pendingDecorators=n,n}function ly(e){return e.read((()=>cy().getTextContent()))}function cy(){return uy(cx())}function uy(e){return e._nodeMap.get(\"root\")}function dy(e){ax();const t=cx();null!==e&&(e.dirty=!0,e.setCachedNodes(null)),t._selection=e}function fy(e){const t=ux(),n=function(e,t){let n=e;for(;null!=n;){const e=n[`__lexicalKey_${t._key}`];if(void 0!==e)return e;n=Ay(n)}return null}(e,t);return null===n?e===t.getRootElement()?oy(\"root\"):null:oy(n)}function my(e,t){return t?e.getTextContentSize():0}function hy(e){return/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g.test(e)}function py(e){const t=[];let n=e;for(;null!==n;)t.push(n),n=n._parentEditor;return t}function gy(){return Math.random().toString(36).replace(/[^a-z]+/g,\"\").substr(0,5)}function yy(e){return e.nodeType===Jp?e.nodeValue:null}function vy(e,t,n){const r=Vy(t._window);if(null===r)return;const o=r.anchorNode;let{anchorOffset:i,focusOffset:s}=r;if(null!==o){let t=yy(o);const r=sy(o);if(null!==t&&kb(r)){if(t===mg&&n){const e=n.length;t=n,i=e,s=e}null!==t&&by(r,t,i,s,e)}}}function by(e,t,n,r,o){let i=e;if(i.isAttached()&&(o||!i.isDirty())){const s=i.isComposing();let a=t;(s||o)&&t[t.length-1]===mg&&(a=t.slice(0,-1));const l=i.getTextContent();if(o||a!==l){if(\"\"===a){if(ny(null),Yp||Hp||Xp)i.remove();else{const e=ux();setTimeout((()=>{e.update((()=>{i.isAttached()&&i.remove()}))}),20)}return}const t=i.getParent(),o=Kb(),l=i.getTextContentSize(),c=ry(),u=i.getKey();if(i.isToken()||null!==c&&u===c&&!s||Db(o)&&(null!==t&&!t.canInsertTextBefore()&&0===o.anchor.offset||o.anchor.key===e.__key&&0===o.anchor.offset&&!i.canInsertTextBefore()&&!s||o.focus.key===e.__key&&o.focus.offset===l&&!i.canInsertTextAfter()&&!s))return void i.markDirty();const d=Hb();if(!Db(d)||null===n||null===r)return void i.setTextContent(a);if(d.setTextNodeRange(i,n,i,r),i.isSegmented()){const e=Sb(i.getTextContent());i.replace(e),i=e}i.setTextContent(a)}}}function xy(e){return\"ArrowLeft\"===e}function wy(e){return\"ArrowRight\"===e}function Sy(e,t){return Vp?e:t}function ky(e){return\"Enter\"===e}function Ey(e){return\"Backspace\"===e}function Cy(e){return\"Delete\"===e}function _y(e,t,n){return\"a\"===e.toLowerCase()&&Sy(t,n)}function Py(e,t){void 0===e.__lexicalClassNameCache&&(e.__lexicalClassNameCache={});const n=e.__lexicalClassNameCache,r=n[t];if(void 0!==r)return r;const o=e[t];if(\"string\"==typeof o){const e=Og(o);return n[t]=e,e}return o}function Oy(e,t,n,r,o){if(0===n.size)return;const i=r.__type,s=r.__key,a=t.get(i);void 0===a&&Pg(33,i);const l=a.klass;let c=e.get(l);void 0===c&&(c=new Map,e.set(l,c));const u=c.get(s),d=\"destroyed\"===u&&\"created\"===o;(void 0===u||d)&&c.set(s,d?\"updated\":o)}function Ny(e,t,n){const r=e.getParent();let o=n,i=e;return null!==r&&(t&&0===n?(o=i.getIndexWithinParent(),i=r):t||n!==i.getChildrenSize()||(o=i.getIndexWithinParent()+1,i=r)),i.getChildAtIndex(t?o-1:o)}function Ty(e,t){const n=e.offset;if(\"element\"===e.type)return Ny(e.getNode(),t,n);{const r=e.getNode();if(t&&0===n||!t&&n===r.getTextContentSize()){const e=t?r.getPreviousSibling():r.getNextSibling();return null===e?Ny(r.getParentOrThrow(),t,r.getIndexWithinParent()+(t?0:1)):e}}return null}function My(e){const t=Ly(e).event,n=t&&t.inputType;return\"insertFromPaste\"===n||\"insertFromPasteAsQuotation\"===n}function Ry(e,t,n){return vx(e,t,n)}function Dy(e){return!Nx(e)&&!e.isLastChild()&&!e.isInline()}function jy(e,t){const n=e._keyToDOMMap.get(t);return void 0===n&&Pg(75,t),n}function Ay(e){const t=e.assignedSlot||e.parentElement;return null!==t&&11===t.nodeType?t.host:t}function Iy(e,t){let n=e.getParent();for(;null!==n;){if(n.is(t))return!0;n=n.getParent()}return!1}function Ly(e){const t=e._window;return null===t&&Pg(78),t}function Fy(e){return Nx(e)||kx(e)&&e.isShadowRoot()}function zy(e){const t=ux(),n=e.constructor.getType(),r=t._nodes.get(n);void 0===r&&Pg(97);const o=r.replace;if(null!==o){const t=o(e);return t instanceof e.constructor||Pg(98),t}return e}function By(e,t){!Nx(e.getParent())||kx(t)||Px(t)||Pg(99)}function Wy(e){return(Px(e)||kx(e)&&!e.canBeEmpty())&&!e.isInline()}function _n(e,t,n){n.style.removeProperty(\"caret-color\"),t._blockCursorElement=null;const r=e.parentElement;null!==r&&r.removeChild(e)}function Vy(e){return Bp?(e||window).getSelection():null}function Uy(e){return 1===e.nodeType}function $y(e){const t=new RegExp(/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var|#text)$/,\"i\");return null!==e.nodeName.match(t)}function Yy(e){const t=new RegExp(/^(address|article|aside|blockquote|canvas|dd|div|dl|dt|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hr|li|main|nav|noscript|ol|p|pre|section|table|td|tfoot|ul|video)$/,\"i\");return null!==e.nodeName.match(t)}function Hy(e){if(Nx(e)||Px(e)&&!e.isInline())return!0;if(!kx(e)||Fy(e))return!1;const t=e.getFirstChild(),n=null===t||ib(t)||kb(t)||t.isInline();return!e.isInline()&&!1!==e.canBeEmpty()&&n}function Ky(e,t){let n=e;for(;null!==n&&null!==n.getParent()&&!t(n);)n=n.getParentOrThrow();return t(n)?n:null}const qy=new WeakMap,Gy=new Map;function Xy(e){const t=e.constructor.clone(e);return t.afterCloneFrom(e),t}function Zy(e,t,n,r,o,i){let s=e.getFirstChild();for(;null!==s;){const e=s.__key;s.__parent===t&&(kx(s)&&Zy(s,e,n,r,o,i),n.has(e)||i.delete(e),o.push(e)),s=s.getNextSibling()}}let Jy,Qy,ev,tv,nv,rv,ov,iv,sv,av,lv=\"\",cv=\"\",uv=null,dv=\"\",fv=\"\",mv=!1,hv=!1,pv=null;function gv(e,t){const n=ov.get(e);if(null!==t){const n=Mv(e);n.parentNode===t&&t.removeChild(n)}if(iv.has(e)||Qy._keyToDOMMap.delete(e),kx(n)){const e=Pv(n,ov);yv(e,0,e.length-1,null)}void 0!==n&&Oy(av,ev,tv,n,\"destroyed\")}function yv(e,t,n,r){let o=t;for(;o<=n;++o){const t=e[o];void 0!==t&&gv(t,r)}}function vv(e,t){e.setProperty(\"text-align\",t)}const bv=\"40px\";function xv(e,t){const n=Jy.theme.indent;if(\"string\"==typeof n){const r=e.classList.contains(n);t>0&&!r?e.classList.add(n):t<1&&r&&e.classList.remove(n)}const r=getComputedStyle(e).getPropertyValue(\"--lexical-indent-base-value\")||bv;e.style.setProperty(\"padding-inline-start\",0===t?\"\":`calc(${t} * ${r})`)}function wv(e,t){const n=e.style;0===t?vv(n,\"\"):t===ag?vv(n,\"left\"):t===lg?vv(n,\"center\"):t===cg?vv(n,\"right\"):t===ug?vv(n,\"justify\"):t===dg?vv(n,\"start\"):t===fg&&vv(n,\"end\")}function Sv(e,t,n){const r=iv.get(e);void 0===r&&Pg(60);const o=r.createDOM(Jy,Qy);if(function(e,t,n){const r=n._keyToDOMMap;t[\"__lexicalKey_\"+n._key]=e,r.set(e,t)}(e,o,Qy),kb(r)?o.setAttribute(\"data-lexical-text\",\"true\"):Px(r)&&o.setAttribute(\"data-lexical-decorator\",\"true\"),kx(r)){const e=r.__indent,t=r.__size;if(0!==e&&xv(o,e),0!==t){const e=t-1;!function(e,t,n,r){const o=cv;cv=\"\",kv(e,n,0,t,r,null),_v(n,r),cv=o}(Pv(r,iv),e,r,o)}const n=r.__format;0!==n&&wv(o,n),r.isInline()||Cv(null,r,o),Dy(r)&&(lv+=hg,fv+=hg)}else{const t=r.getTextContent();if(Px(r)){const t=r.decorate(Qy,Jy);null!==t&&Nv(e,t),o.contentEditable=\"false\"}else kb(r)&&(r.isDirectionless()||(cv+=t));lv+=t,fv+=t}if(null!==t)if(null!=n)t.insertBefore(o,n);else{const e=t.__lexicalLineBreak;null!=e?t.insertBefore(o,e):t.appendChild(o)}return Oy(av,ev,tv,r,\"created\"),o}function kv(e,t,n,r,o,i){const s=lv;lv=\"\";let a=n;for(;a<=r;++a){Sv(e[a],o,i);const t=iv.get(e[a]);null!==t&&kb(t)&&(null===uv&&(uv=t.getFormat()),\"\"===dv&&(dv=t.getStyle()))}Dy(t)&&(lv+=hg),o.__lexicalTextContent=lv,lv=s+lv}function Ev(e,t){const n=t.get(e);return ib(n)||Px(n)&&n.isInline()}function Cv(e,t,n){const r=null!==e&&(0===e.__size||Ev(e.__last,ov)),o=0===t.__size||Ev(t.__last,iv);if(r){if(!o){const e=n.__lexicalLineBreak;if(null!=e)try{n.removeChild(e)}catch(t){if(\"object\"==typeof t&&null!=t){const r=`${t.toString()} Parent: ${n.tagName}, child: ${e.tagName}.`;throw new Error(r)}throw t}n.__lexicalLineBreak=null}}else if(o){const e=document.createElement(\"br\");n.__lexicalLineBreak=e,n.appendChild(e)}}function _v(e,t){const n=t.__lexicalDirTextContent,r=t.__lexicalDir;if(n!==cv||r!==pv){const n=\"\"===cv,i=n?pv:(o=cv,vg.test(o)?\"rtl\":bg.test(o)?\"ltr\":null);if(i!==r){const o=t.classList,s=Jy.theme;let a=null!==r?s[r]:void 0,l=null!==i?s[i]:void 0;if(void 0!==a){if(\"string\"==typeof a){const e=Og(a);a=s[r]=e}o.remove(...a)}if(null===i||n&&\"ltr\"===i)t.removeAttribute(\"dir\");else{if(void 0!==l){if(\"string\"==typeof l){const e=Og(l);l=s[i]=e}void 0!==l&&o.add(...l)}t.dir=i}hv||(e.getWritable().__dir=i)}pv=i,t.__lexicalDirTextContent=cv,t.__lexicalDir=i}var o}function Pv(e,t){const n=[];let r=e.__first;for(;null!==r;){const e=t.get(r);void 0===e&&Pg(101),n.push(r),r=e.__next}return n}function Ov(e,t){const n=ov.get(e);let r=iv.get(e);void 0!==n&&void 0!==r||Pg(61);const o=mv||rv.has(e)||nv.has(e),i=jy(Qy,e);if(n===r&&!o){if(kx(n)){const e=i.__lexicalTextContent;void 0!==e&&(lv+=e,fv+=e);const t=i.__lexicalDirTextContent;void 0!==t&&(cv+=t)}else{const e=n.getTextContent();kb(n)&&!n.isDirectionless()&&(cv+=e),fv+=e,lv+=e}return i}if(n!==r&&o&&Oy(av,ev,tv,r,\"updated\"),r.updateDOM(n,i,Jy)){const n=Sv(e,null,null);return null===t&&Pg(62),t.replaceChild(n,i),gv(e,null),n}if(kx(n)&&kx(r)){const e=r.__indent;e!==n.__indent&&xv(i,e);const t=r.__format;t!==n.__format&&wv(i,t),o&&(function(e,t,n){const r=cv;var o;cv=\"\",uv=null,dv=\"\",function(e,t,n){const r=lv,o=e.__size,i=t.__size;if(lv=\"\",1===o&&1===i){const r=e.__first,o=t.__first;if(r===o)Ov(r,n);else{const e=Mv(r),t=Sv(o,null,null);try{n.replaceChild(t,e)}catch(i){if(\"object\"==typeof i&&null!=i){const s=`${i.toString()} Parent: ${n.tagName}, new child: {tag: ${t.tagName} key: ${o}}, old child: {tag: ${e.tagName}, key: ${r}}.`;throw new Error(s)}throw i}gv(r,null)}const s=iv.get(o);kb(s)&&(null===uv&&(uv=s.getFormat()),\"\"===dv&&(dv=s.getStyle()))}else{const r=Pv(e,ov),s=Pv(t,iv);if(0===o)0!==i&&kv(s,t,0,i-1,n,null);else if(0===i){if(0!==o){const e=null==n.__lexicalLineBreak;yv(r,0,o-1,e?null:n),e&&(n.textContent=\"\")}}else!function(e,t,n,r,o,i){const s=r-1,a=o-1;let l,c,u=i.firstChild,d=0,f=0;for(;d<=s&&f<=a;){const e=t[d],r=n[f];if(e===r)u=Tv(Ov(r,i)),d++,f++;else{void 0===l&&(l=new Set(t)),void 0===c&&(c=new Set(n));const o=c.has(e),s=l.has(r);if(o)if(s){const e=jy(Qy,r);e===u?u=Tv(Ov(r,i)):(null!=u?i.insertBefore(e,u):i.appendChild(e),Ov(r,i)),d++,f++}else Sv(r,i,u),f++;else u=Tv(Mv(e)),gv(e,i),d++}const o=iv.get(r);null!==o&&kb(o)&&(null===uv&&(uv=o.getFormat()),\"\"===dv&&(dv=o.getStyle()))}const m=d>s,h=f>a;if(m&&!h){const t=n[a+1];kv(n,e,f,a,i,void 0===t?null:Qy.getElementByKey(t))}else h&&!m&&yv(t,d,s,i)}(t,r,s,o,i,n)}Dy(t)&&(lv+=hg),n.__lexicalTextContent=lv,lv=r+lv}(e,t,n),_v(t,n),Lx(o=t)&&null!=uv&&uv!==o.__textFormat&&!hv&&(o.setTextFormat(uv),o.setTextStyle(dv)),function(e){Lx(e)&&\"\"!==dv&&dv!==e.__textStyle&&!hv&&e.setTextStyle(dv)}(t),cv=r}(n,r,i),Nx(r)||r.isInline()||Cv(n,r,i)),Dy(r)&&(lv+=hg,fv+=hg)}else{const t=r.getTextContent();if(Px(r)){const t=r.decorate(Qy,Jy);null!==t&&Nv(e,t)}else kb(r)&&!r.isDirectionless()&&(cv+=t);lv+=t,fv+=t}if(!hv&&Nx(r)&&r.__cachedText!==fv){const e=r.getWritable();e.__cachedText=fv,r=e}return i}function Nv(e,t){let n=Qy._pendingDecorators;const r=Qy._decorators;if(null===n){if(r[e]===t)return;n=ay(Qy)}n[e]=t}function Tv(e){let t=e.nextSibling;return null!==t&&t===Qy._blockCursorElement&&(t=t.nextSibling),t}function Mv(e){const t=sv.get(e);return void 0===t&&Pg(75,e),t}const Rv=Object.freeze({}),Dv=[[\"keydown\",function(e,t){if(jv=e.timeStamp,Av=e.key,t.isComposing())return;const{key:n,shiftKey:r,ctrlKey:o,metaKey:i,altKey:s}=e;Ry(t,mp,e)||null!=n&&(function(e,t,n,r){return wy(e)&&!t&&!r&&!n}(n,o,s,i)?Ry(t,hp,e):function(e,t,n,r,o){return wy(e)&&!r&&!n&&(t||o)}(n,o,r,s,i)?Ry(t,pp,e):function(e,t,n,r){return xy(e)&&!t&&!r&&!n}(n,o,s,i)?Ry(t,gp,e):function(e,t,n,r,o){return xy(e)&&!r&&!n&&(t||o)}(n,o,r,s,i)?Ry(t,yp,e):function(e,t,n){return function(e){return\"ArrowUp\"===e}(e)&&!t&&!n}(n,o,i)?Ry(t,vp,e):function(e,t,n){return function(e){return\"ArrowDown\"===e}(e)&&!t&&!n}(n,o,i)?Ry(t,bp,e):function(e,t){return ky(e)&&t}(n,r)?(Wv=!0,Ry(t,xp,e)):function(e){return\" \"===e}(n)?Ry(t,wp,e):function(e,t){return Vp&&t&&\"o\"===e.toLowerCase()}(n,o)?(e.preventDefault(),Wv=!0,Ry(t,rp,!0)):function(e,t){return ky(e)&&!t}(n,r)?(Wv=!1,Ry(t,xp,e)):function(e,t,n,r){return Vp?!t&&!n&&(Ey(e)||\"h\"===e.toLowerCase()&&r):!(r||t||n)&&Ey(e)}(n,s,i,o)?Ey(n)?Ry(t,Sp,e):(e.preventDefault(),Ry(t,np,!0)):function(e){return\"Escape\"===e}(n)?Ry(t,kp,e):function(e,t,n,r,o){return Vp?!(n||r||o)&&(Cy(e)||\"d\"===e.toLowerCase()&&t):!(t||r||o)&&Cy(e)}(n,o,r,s,i)?Cy(n)?Ry(t,Ep,e):(e.preventDefault(),Ry(t,np,!1)):function(e,t,n){return Ey(e)&&(Vp?t:n)}(n,s,o)?(e.preventDefault(),Ry(t,lp,!0)):function(e,t,n){return Cy(e)&&(Vp?t:n)}(n,s,o)?(e.preventDefault(),Ry(t,lp,!1)):function(e,t){return Vp&&t&&Ey(e)}(n,i)?(e.preventDefault(),Ry(t,cp,!0)):function(e,t){return Vp&&t&&Cy(e)}(n,i)?(e.preventDefault(),Ry(t,cp,!1)):function(e,t,n,r){return\"b\"===e.toLowerCase()&&!t&&Sy(n,r)}(n,s,i,o)?(e.preventDefault(),Ry(t,up,\"bold\")):function(e,t,n,r){return\"u\"===e.toLowerCase()&&!t&&Sy(n,r)}(n,s,i,o)?(e.preventDefault(),Ry(t,up,\"underline\")):function(e,t,n,r){return\"i\"===e.toLowerCase()&&!t&&Sy(n,r)}(n,s,i,o)?(e.preventDefault(),Ry(t,up,\"italic\")):function(e,t,n,r){return\"Tab\"===e&&!t&&!n&&!r}(n,s,o,i)?Ry(t,Cp,e):function(e,t,n,r){return\"z\"===e.toLowerCase()&&!t&&Sy(n,r)}(n,r,i,o)?(e.preventDefault(),Ry(t,dp,void 0)):function(e,t,n,r){return Vp?\"z\"===e.toLowerCase()&&n&&t:\"y\"===e.toLowerCase()&&r||\"z\"===e.toLowerCase()&&r&&t}(n,r,i,o)?(e.preventDefault(),Ry(t,fp,void 0)):Ab(t._editorState._selection)?function(e,t,n,r){return!t&&\"c\"===e.toLowerCase()&&(Vp?n:r)}(n,r,i,o)?(e.preventDefault(),Ry(t,Tp,e)):function(e,t,n,r){return!t&&\"x\"===e.toLowerCase()&&(Vp?n:r)}(n,r,i,o)?(e.preventDefault(),Ry(t,Mp,e)):_y(n,i,o)&&(e.preventDefault(),Ry(t,Rp,e)):!Up&&_y(n,i,o)&&(e.preventDefault(),Ry(t,Rp,e)),function(e,t,n,r){return e||t||n||r}(o,r,s,i)&&Ry(t,zp,e))}],[\"pointerdown\",function(e,t){const n=e.target,r=e.pointerType;n instanceof Node&&\"touch\"!==r&&wx(t,(()=>{Px(sy(n))||(Bv=!0)}))}],[\"compositionstart\",function(e,t){wx(t,(()=>{const n=Hb();if(Db(n)&&!t.isComposing()){const r=n.anchor,o=n.anchor.getNode();ny(r.key),(e.timeStamp<jv+30||\"element\"===r.type||!n.isCollapsed()||o.getFormat()!==n.format||kb(o)&&o.getStyle()!==n.style)&&Ry(t,ip,pg)}}))}],[\"compositionend\",function(e,t){Up?Vv=!0:wx(t,(()=>{qv(t,e.data)}))}],[\"input\",function(e,t){e.stopPropagation(),wx(t,(()=>{const n=Hb(),r=e.data,o=Kv(e);if(null!=r&&Db(n)&&$v(n,o,r,e.timeStamp,!1)){Vv&&(qv(t,r),Vv=!1);const o=n.anchor.getNode(),i=Vy(t._window);if(null===i)return;const s=n.isBackward(),a=s?n.anchor.offset:n.focus.offset,l=s?n.focus.offset:n.anchor.offset;$p&&!n.isCollapsed()&&kb(o)&&null!==i.anchorNode&&o.getTextContent().slice(0,a)+r+o.getTextContent().slice(a+l)===yy(i.anchorNode)||Ry(t,ip,r);const c=r.length;Up&&c>1&&\"insertCompositionText\"===e.inputType&&!t.isComposing()&&(n.anchor.offset-=c),Yp||Hp||Xp||!t.isComposing()||(jv=0,ny(null))}else vy(!1,t,null!==r?r:void 0),Vv&&(qv(t,r||void 0),Vv=!1);ax(),Lg(ux())})),Lv=null}],[\"click\",function(e,t){wx(t,(()=>{const n=Hb(),r=Vy(t._window),o=Kb();if(r)if(Db(n)){const t=n.anchor,i=t.getNode();\"element\"===t.type&&0===t.offset&&n.isCollapsed()&&!Nx(i)&&1===cy().getChildrenSize()&&i.getTopLevelElementOrThrow().isEmpty()&&null!==o&&n.is(o)?(r.removeAllRanges(),n.dirty=!0):3!==e.detail||n.isCollapsed()||i!==n.focus.getNode()&&(kx(i)?i.select(0):i.getParentOrThrow().select(0))}else if(\"touch\"===e.pointerType){const n=r.anchorNode;if(null!==n){const i=n.nodeType;i!==Zp&&i!==Jp||dy(Yb(o,r,t,e))}}Ry(t,tp,e)}))}],[\"cut\",Rv],[\"copy\",Rv],[\"dragstart\",Rv],[\"dragover\",Rv],[\"dragend\",Rv],[\"paste\",Rv],[\"focus\",Rv],[\"blur\",Rv],[\"drop\",Rv]];$p&&Dv.push([\"beforeinput\",(e,t)=>function(e,t){const n=e.inputType,r=Kv(e);\"deleteCompositionText\"===n||Up&&My(t)||\"insertCompositionText\"!==n&&wx(t,(()=>{const o=Hb();if(\"deleteContentBackward\"===n){if(null===o){const e=Kb();if(!Db(e))return;dy(e.clone())}if(Db(o)){const n=o.anchor.key===o.focus.key;if(i=e.timeStamp,\"MediaLast\"===Av&&i<jv+30&&t.isComposing()&&n){if(ny(null),jv=0,setTimeout((()=>{wx(t,(()=>{ny(null)}))}),30),Db(o)){const e=o.anchor.getNode();e.markDirty(),o.format=e.getFormat(),kb(e)||Pg(142),o.style=e.getStyle()}}else{ny(null),e.preventDefault();const r=o.anchor.getNode().getTextContent(),i=0===o.anchor.offset&&o.focus.offset===r.length;Gp&&n&&!i||Ry(t,np,!0)}return}}var i;if(!Db(o))return;const s=e.data;null!==Lv&&vy(!1,t,Lv),o.dirty&&null===Lv||!o.isCollapsed()||Nx(o.anchor.getNode())||null===r||o.applyDOMRange(r),Lv=null;const a=o.anchor,l=o.focus,c=a.getNode(),u=l.getNode();if(\"insertText\"!==n&&\"insertTranspose\"!==n)switch(e.preventDefault(),n){case\"insertFromYank\":case\"insertFromDrop\":case\"insertReplacementText\":Ry(t,ip,e);break;case\"insertFromComposition\":ny(null),Ry(t,ip,e);break;case\"insertLineBreak\":ny(null),Ry(t,rp,!1);break;case\"insertParagraph\":ny(null),Wv&&!Hp?(Wv=!1,Ry(t,rp,!1)):Ry(t,op,void 0);break;case\"insertFromPaste\":case\"insertFromPasteAsQuotation\":Ry(t,sp,e);break;case\"deleteByComposition\":(function(e,t){return e!==t||kx(e)||kx(t)||!e.isToken()||!t.isToken()})(c,u)&&Ry(t,ap,e);break;case\"deleteByDrag\":case\"deleteByCut\":Ry(t,ap,e);break;case\"deleteContent\":Ry(t,np,!1);break;case\"deleteWordBackward\":Ry(t,lp,!0);break;case\"deleteWordForward\":Ry(t,lp,!1);break;case\"deleteHardLineBackward\":case\"deleteSoftLineBackward\":Ry(t,cp,!0);break;case\"deleteContentForward\":case\"deleteHardLineForward\":case\"deleteSoftLineForward\":Ry(t,cp,!1);break;case\"formatStrikeThrough\":Ry(t,up,\"strikethrough\");break;case\"formatBold\":Ry(t,up,\"bold\");break;case\"formatItalic\":Ry(t,up,\"italic\");break;case\"formatUnderline\":Ry(t,up,\"underline\");break;case\"historyUndo\":Ry(t,dp,void 0);break;case\"historyRedo\":Ry(t,fp,void 0)}else{if(\"\\n\"===s)e.preventDefault(),Ry(t,rp,!1);else if(s===hg)e.preventDefault(),Ry(t,op,void 0);else if(null==s&&e.dataTransfer){const t=e.dataTransfer.getData(\"text/plain\");e.preventDefault(),o.insertRawText(t)}else null!=s&&$v(o,r,s,e.timeStamp,!0)?(e.preventDefault(),Ry(t,ip,s)):Lv=s;Iv=e.timeStamp}}))}(e,t)]);let jv=0,Av=null,Iv=0,Lv=null;const Fv=new WeakMap;let zv=!1,Bv=!1,Wv=!1,Vv=!1,Uv=[0,\"\",0,\"root\",0];function $v(e,t,n,r,o){const i=e.anchor,s=e.focus,a=i.getNode(),l=ux(),c=Vy(l._window),u=null!==c?c.anchorNode:null,d=i.key,f=l.getElementByKey(d),m=n.length;return d!==s.key||!kb(a)||(!o&&(!$p||Iv<r+50)||a.isDirty()&&m<2||hy(n))&&i.offset!==s.offset&&!a.isComposing()||Xg(a)||a.isDirty()&&m>1||(o||!$p)&&null!==f&&!a.isComposing()&&u!==Jg(f)||null!==c&&null!==t&&(!t.collapsed||t.startContainer!==c.anchorNode||t.startOffset!==c.anchorOffset)||a.getFormat()!==e.format||a.getStyle()!==e.style||function(e,t){if(t.isSegmented())return!0;if(!e.isCollapsed())return!1;const n=e.anchor.offset,r=t.getParentOrThrow(),o=t.isToken();return 0===n?!t.canInsertTextBefore()||!r.canInsertTextBefore()&&!t.isComposing()||o||function(e){const t=e.getPreviousSibling();return(kb(t)||kx(t)&&t.isInline())&&!t.canInsertTextAfter()}(t):n===t.getTextContentSize()&&(!t.canInsertTextAfter()||!r.canInsertTextAfter()&&!t.isComposing()||o)}(e,a)}function Yv(e,t){return null!==e&&null!==e.nodeValue&&e.nodeType===Jp&&0!==t&&t!==e.nodeValue.length}function Hv(e,t,n){const{anchorNode:r,anchorOffset:o,focusNode:i,focusOffset:s}=e;zv&&(zv=!1,Yv(r,o)&&Yv(i,s))||wx(t,(()=>{if(!n)return void dy(null);if(!Hg(t,r,i))return;const a=Hb();if(Db(a)){const n=a.anchor,r=n.getNode();if(a.isCollapsed()){\"Range\"===e.type&&e.anchorNode===e.focusNode&&(a.dirty=!0);const o=Ly(t).event,i=o?o.timeStamp:performance.now(),[s,l,c,u,d]=Uv,f=cy(),m=!1===t.isComposing()&&\"\"===f.getTextContent();if(i<d+200&&n.offset===c&&n.key===u)a.format=s,a.style=l;else if(\"text\"===n.type)kb(r)||Pg(141),a.format=r.getFormat(),a.style=r.getStyle();else if(\"element\"===n.type&&!m){const e=n.getNode();a.style=\"\",e instanceof jx&&0===e.getChildrenSize()?(a.format=e.getTextFormat(),a.style=e.getTextStyle()):a.format=0}}else{const e=n.key,t=a.focus.key,r=a.getNodes(),i=r.length,l=a.isBackward(),c=l?s:o,u=l?o:s,d=l?t:e,f=l?e:t;let m=sg,h=!1;for(let e=0;e<i;e++){const t=r[e],n=t.getTextContentSize();if(kb(t)&&0!==n&&!(0===e&&t.__key===d&&c===n||e===i-1&&t.__key===f&&0===u)&&(h=!0,m&=t.getFormat(),0===m))break}a.format=h?m:0}}Ry(t,ep,void 0)}))}function Kv(e){if(!e.getTargetRanges)return null;const t=e.getTargetRanges();return 0===t.length?null:t[0]}function qv(e,t){const n=e._compositionKey;if(ny(null),null!==n&&null!=t){if(\"\"===t){const t=oy(n),r=Jg(e.getElementByKey(n));return void(null!==r&&null!==r.nodeValue&&kb(t)&&by(t,r.nodeValue,null,null,!0))}if(\"\\n\"===t[t.length-1]){const t=Hb();if(Db(t)){const n=t.focus;return t.anchor.set(n.key,n.offset,n.type),void Ry(e,xp,null)}}}vy(!0,e,t)}function Gv(e){let t=e.__lexicalEventHandles;return void 0===t&&(t=[],e.__lexicalEventHandles=t),t}const Xv=new Map;function Zv(e){const t=e.target,n=Vy(null==t?null:9===t.nodeType?t.defaultView:t.ownerDocument.defaultView);if(null===n)return;const r=qg(n.anchorNode);if(null===r)return;Bv&&(Bv=!1,wx(r,(()=>{const t=Kb(),o=n.anchorNode;if(null===o)return;const i=o.nodeType;i!==Zp&&i!==Jp||dy(Yb(t,n,r,e))})));const o=py(r),i=o[o.length-1],s=i._key,a=Xv.get(s),l=a||i;l!==r&&Hv(n,l,!1),Hv(n,r,!0),r!==i?Xv.set(s,r):a&&Xv.delete(s)}function Jv(e){e._lexicalHandled=!0}function Qv(e){return!0===e._lexicalHandled}function eb(e,t,n){ax();const r=e.__key,o=e.getParent();if(null===o)return;const i=function(e){const t=Hb();if(!Db(t)||!kx(e))return t;const{anchor:n,focus:r}=t,o=n.getNode(),i=r.getNode();return Iy(o,e)&&n.set(e.__key,0,\"element\"),Iy(i,e)&&r.set(e.__key,0,\"element\"),t}(e);let s=!1;if(Db(i)&&t){const t=i.anchor,n=i.focus;t.key===r&&(Xb(t,e,o,e.getPreviousSibling(),e.getNextSibling()),s=!0),n.key===r&&(Xb(n,e,o,e.getPreviousSibling(),e.getNextSibling()),s=!0)}else Ab(i)&&t&&e.isSelected()&&e.selectPrevious();if(Db(i)&&t&&!s){const t=e.getIndexWithinParent();ey(e),qb(i,o,t,-1)}else ey(e);n||Fy(o)||o.canBeEmpty()||!o.isEmpty()||eb(o,t),t&&Nx(o)&&o.isEmpty()&&o.selectEnd()}class tb{static getType(){Pg(64,this.name)}static clone(e){Pg(65,this.name)}afterCloneFrom(e){this.__parent=e.__parent,this.__next=e.__next,this.__prev=e.__prev}constructor(e){this.__type=this.constructor.getType(),this.__parent=null,this.__prev=null,this.__next=null,function(e,t){if(null!=t)return void(e.__key=t);ax(),lx();const n=ux(),r=cx(),o=\"\"+Ug++;r._nodeMap.set(o,e),kx(e)?n._dirtyElements.set(o,!0):n._dirtyLeaves.add(o),n._cloneNotNeeded.add(o),n._dirtyType=1,e.__key=o}(this,e)}getType(){return this.__type}isInline(){Pg(137,this.constructor.name)}isAttached(){let e=this.__key;for(;null!==e;){if(\"root\"===e)return!0;const t=oy(e);if(null===t)break;e=t.__parent}return!1}isSelected(e){const t=e||Hb();if(null==t)return!1;const n=t.getNodes().some((e=>e.__key===this.__key));if(kb(this))return n;if(Db(t)&&\"element\"===t.anchor.type&&\"element\"===t.focus.type){if(t.isCollapsed())return!1;const e=this.getParent();if(Px(this)&&this.isInline()&&e){const n=t.isBackward()?t.focus:t.anchor,r=n.getNode();if(n.offset===r.getChildrenSize()&&r.is(e)&&r.getLastChildOrThrow().is(this))return!1}}return n}getKey(){return this.__key}getIndexWithinParent(){const e=this.getParent();if(null===e)return-1;let t=e.getFirstChild(),n=0;for(;null!==t;){if(this.is(t))return n;n++,t=t.getNextSibling()}return-1}getParent(){const e=this.getLatest().__parent;return null===e?null:oy(e)}getParentOrThrow(){const e=this.getParent();return null===e&&Pg(66,this.__key),e}getTopLevelElement(){let e=this;for(;null!==e;){const t=e.getParent();if(Fy(t))return kx(e)||e===this&&Px(e)||Pg(194),e;e=t}return null}getTopLevelElementOrThrow(){const e=this.getTopLevelElement();return null===e&&Pg(67,this.__key),e}getParents(){const e=[];let t=this.getParent();for(;null!==t;)e.push(t),t=t.getParent();return e}getParentKeys(){const e=[];let t=this.getParent();for(;null!==t;)e.push(t.__key),t=t.getParent();return e}getPreviousSibling(){const e=this.getLatest().__prev;return null===e?null:oy(e)}getPreviousSiblings(){const e=[],t=this.getParent();if(null===t)return e;let n=t.getFirstChild();for(;null!==n&&!n.is(this);)e.push(n),n=n.getNextSibling();return e}getNextSibling(){const e=this.getLatest().__next;return null===e?null:oy(e)}getNextSiblings(){const e=[];let t=this.getNextSibling();for(;null!==t;)e.push(t),t=t.getNextSibling();return e}getCommonAncestor(e){const t=this.getParents(),n=e.getParents();kx(this)&&t.unshift(this),kx(e)&&n.unshift(e);const r=t.length,o=n.length;if(0===r||0===o||t[r-1]!==n[o-1])return null;const i=new Set(n);for(let e=0;e<r;e++){const n=t[e];if(i.has(n))return n}return null}is(e){return null!=e&&this.__key===e.__key}isBefore(e){if(this===e)return!1;if(e.isParentOf(this))return!0;if(this.isParentOf(e))return!1;const t=this.getCommonAncestor(e);let n=0,r=0,o=this;for(;;){const e=o.getParentOrThrow();if(e===t){n=o.getIndexWithinParent();break}o=e}for(o=e;;){const e=o.getParentOrThrow();if(e===t){r=o.getIndexWithinParent();break}o=e}return n<r}isParentOf(e){const t=this.__key;if(t===e.__key)return!1;let n=e;for(;null!==n;){if(n.__key===t)return!0;n=n.getParent()}return!1}getNodesBetween(e){const t=this.isBefore(e),n=[],r=new Set;let o=this;for(;null!==o;){const i=o.__key;if(r.has(i)||(r.add(i),n.push(o)),o===e)break;const s=kx(o)?t?o.getFirstChild():o.getLastChild():null;if(null!==s){o=s;continue}const a=t?o.getNextSibling():o.getPreviousSibling();if(null!==a){o=a;continue}const l=o.getParentOrThrow();if(r.has(l.__key)||n.push(l),l===e)break;let c=null,u=l;do{if(null===u&&Pg(68),c=t?u.getNextSibling():u.getPreviousSibling(),u=u.getParent(),null===u)break;null!==c||r.has(u.__key)||n.push(u)}while(null===c);o=c}return t||n.reverse(),n}isDirty(){const e=ux()._dirtyLeaves;return null!==e&&e.has(this.__key)}getLatest(){const e=oy(this.__key);return null===e&&Pg(113),e}getWritable(){ax();const e=cx(),t=ux(),n=e._nodeMap,r=this.__key,o=this.getLatest(),i=t._cloneNotNeeded,s=Hb();if(null!==s&&s.setCachedNodes(null),i.has(r))return ty(o),o;const a=Xy(o);return i.add(r),ty(a),n.set(r,a),a}getTextContent(){return\"\"}getTextContentSize(){return this.getTextContent().length}createDOM(e,t){Pg(70)}updateDOM(e,t,n){Pg(71)}exportDOM(e){return{element:this.createDOM(e._config,e)}}exportJSON(){Pg(72)}static importJSON(e){Pg(18,this.name)}static transform(){return null}remove(e){eb(this,!0,e)}replace(e,t){ax();let n=Hb();null!==n&&(n=n.clone()),By(this,e);const r=this.getLatest(),o=this.__key,i=e.__key,s=e.getWritable(),a=this.getParentOrThrow().getWritable(),l=a.__size;ey(s);const c=r.getPreviousSibling(),u=r.getNextSibling(),d=r.__prev,f=r.__next,m=r.__parent;if(eb(r,!1,!0),null===c?a.__first=i:c.getWritable().__next=i,s.__prev=d,null===u?a.__last=i:u.getWritable().__prev=i,s.__next=f,s.__parent=m,a.__size=l,t&&(kx(this)&&kx(s)||Pg(139),this.getChildren().forEach((e=>{s.append(e)}))),Db(n)){dy(n);const e=n.anchor,t=n.focus;e.key===o&&Tb(e,s),t.key===o&&Tb(t,s)}return ry()===o&&ny(i),s}insertAfter(e,t=!0){ax(),By(this,e);const n=this.getWritable(),r=e.getWritable(),o=r.getParent(),i=Hb();let s=!1,a=!1;if(null!==o){const t=e.getIndexWithinParent();if(ey(r),Db(i)){const e=o.__key,n=i.anchor,r=i.focus;s=\"element\"===n.type&&n.key===e&&n.offset===t+1,a=\"element\"===r.type&&r.key===e&&r.offset===t+1}}const l=this.getNextSibling(),c=this.getParentOrThrow().getWritable(),u=r.__key,d=n.__next;if(null===l?c.__last=u:l.getWritable().__prev=u,c.__size++,n.__next=u,r.__next=d,r.__prev=n.__key,r.__parent=n.__parent,t&&Db(i)){const e=this.getIndexWithinParent();qb(i,c,e+1);const t=c.__key;s&&i.anchor.set(t,e+2,\"element\"),a&&i.focus.set(t,e+2,\"element\")}return e}insertBefore(e,t=!0){ax(),By(this,e);const n=this.getWritable(),r=e.getWritable(),o=r.__key;ey(r);const i=this.getPreviousSibling(),s=this.getParentOrThrow().getWritable(),a=n.__prev,l=this.getIndexWithinParent();null===i?s.__first=o:i.getWritable().__next=o,s.__size++,n.__prev=o,r.__prev=a,r.__next=n.__key,r.__parent=n.__parent;const c=Hb();return t&&Db(c)&&qb(c,this.getParentOrThrow(),l),e}isParentRequired(){return!1}createParentElementNode(){return Ix()}selectStart(){return this.selectPrevious()}selectEnd(){return this.selectNext(0,0)}selectPrevious(e,t){ax();const n=this.getPreviousSibling(),r=this.getParentOrThrow();if(null===n)return r.select(0,0);if(kx(n))return n.select();if(!kb(n)){const e=n.getIndexWithinParent()+1;return r.select(e,e)}return n.select(e,t)}selectNext(e,t){ax();const n=this.getNextSibling(),r=this.getParentOrThrow();if(null===n)return r.select();if(kx(n))return n.select(0,0);if(!kb(n)){const e=n.getIndexWithinParent();return r.select(e,e)}return n.select(e,t)}markDirty(){this.getWritable()}}class nb extends tb{static getType(){return\"linebreak\"}static clone(e){return new nb(e.__key)}constructor(e){super(e)}getTextContent(){return\"\\n\"}createDOM(){return document.createElement(\"br\")}updateDOM(){return!1}static importDOM(){return{br:e=>function(e){const t=e.parentElement;if(null!==t&&Yy(t)){const n=t.firstChild;if(n===e||n.nextSibling===e&&sb(n)){const n=t.lastChild;if(n===e||n.previousSibling===e&&sb(n))return!0}}return!1}(e)||function(e){const t=e.parentElement;if(null!==t&&Yy(t)){const n=t.firstChild;if(n===e||n.nextSibling===e&&sb(n))return!1;const r=t.lastChild;if(r===e||r.previousSibling===e&&sb(r))return!0}return!1}(e)?null:{conversion:rb,priority:0}}}static importJSON(e){return ob()}exportJSON(){return{type:\"linebreak\",version:1}}}function rb(e){return{node:ob()}}function ob(){return zy(new nb)}function ib(e){return e instanceof nb}function sb(e){return e.nodeType===Jp&&/^( |\\t|\\r?\\n)+$/.test(e.textContent||\"\")}function ab(e,t){return 16&t?\"code\":128&t?\"mark\":32&t?\"sub\":64&t?\"sup\":null}function lb(e,t){return 1&t?\"strong\":2&t?\"em\":\"span\"}function cb(e,t,n,r,o){const i=r.classList;let s=Py(o,\"base\");void 0!==s&&i.add(...s),s=Py(o,\"underlineStrikethrough\");let a=!1;const l=t&ig&&t&og;void 0!==s&&(n&ig&&n&og?(a=!0,l||i.add(...s)):l&&i.remove(...s));for(const e in xg){const r=xg[e];if(s=Py(o,e),void 0!==s)if(n&r){if(a&&(\"underline\"===e||\"strikethrough\"===e)){t&r&&i.remove(...s);continue}t&r&&(!l||\"underline\"!==e)&&\"strikethrough\"!==e||i.add(...s)}else t&r&&i.remove(...s)}}function ub(e,t,n){const r=t.firstChild,o=n.isComposing(),i=e+(o?mg:\"\");if(null==r)t.textContent=i;else{const e=r.nodeValue;if(e!==i)if(o||Up){const[t,n,o]=function(e,t){const n=e.length,r=t.length;let o=0,i=0;for(;o<n&&o<r&&e[o]===t[o];)o++;for(;i+o<n&&i+o<r&&e[n-i-1]===t[r-i-1];)i++;return[o,n-o-i,t.slice(o,r-i)]}(e,i);0!==n&&r.deleteData(t,n),r.insertData(t,o)}else r.nodeValue=i}}function db(e,t,n,r,o,i){ub(o,e,t);const s=i.theme.text;void 0!==s&&cb(0,0,r,e,s)}function fb(e,t){const n=document.createElement(t);return n.appendChild(e),n}class mb extends tb{static getType(){return\"text\"}static clone(e){return new mb(e.__text,e.__key)}afterCloneFrom(e){super.afterCloneFrom(e),this.__format=e.__format,this.__style=e.__style,this.__mode=e.__mode,this.__detail=e.__detail}constructor(e,t){super(t),this.__text=e,this.__format=0,this.__style=\"\",this.__mode=0,this.__detail=0}getFormat(){return this.getLatest().__format}getDetail(){return this.getLatest().__detail}getMode(){const e=this.getLatest();return Cg[e.__mode]}getStyle(){return this.getLatest().__style}isToken(){return 1===this.getLatest().__mode}isComposing(){return this.__key===ry()}isSegmented(){return 2===this.getLatest().__mode}isDirectionless(){return!!(1&this.getLatest().__detail)}isUnmergeable(){return!!(2&this.getLatest().__detail)}hasFormat(e){const t=xg[e];return!!(this.getFormat()&t)}isSimpleText(){return\"text\"===this.__type&&0===this.__mode}getTextContent(){return this.getLatest().__text}getFormatFlags(e,t){return Qg(this.getLatest().__format,e,t)}canHaveFormat(){return!0}createDOM(e,t){const n=this.__format,r=ab(0,n),o=lb(0,n),i=null===r?o:r,s=document.createElement(i);let a=s;this.hasFormat(\"code\")&&s.setAttribute(\"spellcheck\",\"false\"),null!==r&&(a=document.createElement(o),s.appendChild(a)),db(a,this,0,n,this.__text,e);const l=this.__style;return\"\"!==l&&(s.style.cssText=l),s}updateDOM(e,t,n){const r=this.__text,o=e.__format,i=this.__format,s=ab(0,o),a=ab(0,i),l=lb(0,o),c=lb(0,i);if((null===s?l:s)!==(null===a?c:a))return!0;if(s===a&&l!==c){const e=t.firstChild;null==e&&Pg(48);const o=document.createElement(c);return db(o,this,0,i,r,n),t.replaceChild(o,e),!1}let u=t;null!==a&&null!==s&&(u=t.firstChild,null==u&&Pg(49)),ub(r,u,this);const d=n.theme.text;void 0!==d&&o!==i&&cb(0,o,i,u,d);const f=e.__style,m=this.__style;return f!==m&&(t.style.cssText=m),!1}static importDOM(){return{\"#text\":()=>({conversion:vb,priority:0}),b:()=>({conversion:pb,priority:0}),code:()=>({conversion:wb,priority:0}),em:()=>({conversion:wb,priority:0}),i:()=>({conversion:wb,priority:0}),s:()=>({conversion:wb,priority:0}),span:()=>({conversion:hb,priority:0}),strong:()=>({conversion:wb,priority:0}),sub:()=>({conversion:wb,priority:0}),sup:()=>({conversion:wb,priority:0}),u:()=>({conversion:wb,priority:0})}}static importJSON(e){const t=Sb(e.text);return t.setFormat(e.format),t.setDetail(e.detail),t.setMode(e.mode),t.setStyle(e.style),t}exportDOM(e){let{element:t}=super.exportDOM(e);return null!==t&&Uy(t)||Pg(132),t.style.whiteSpace=\"pre-wrap\",this.hasFormat(\"bold\")&&(t=fb(t,\"b\")),this.hasFormat(\"italic\")&&(t=fb(t,\"i\")),this.hasFormat(\"strikethrough\")&&(t=fb(t,\"s\")),this.hasFormat(\"underline\")&&(t=fb(t,\"u\")),{element:t}}exportJSON(){return{detail:this.getDetail(),format:this.getFormat(),mode:this.getMode(),style:this.getStyle(),text:this.getTextContent(),type:\"text\",version:1}}selectionTransform(e,t){}setFormat(e){const t=this.getWritable();return t.__format=\"string\"==typeof e?xg[e]:e,t}setDetail(e){const t=this.getWritable();return t.__detail=\"string\"==typeof e?wg[e]:e,t}setStyle(e){const t=this.getWritable();return t.__style=e,t}toggleFormat(e){const t=Qg(this.getFormat(),e,null);return this.setFormat(t)}toggleDirectionless(){const e=this.getWritable();return e.__detail^=1,e}toggleUnmergeable(){const e=this.getWritable();return e.__detail^=2,e}setMode(e){const t=Eg[e];if(this.__mode===t)return this;const n=this.getWritable();return n.__mode=t,n}setTextContent(e){if(this.__text===e)return this;const t=this.getWritable();return t.__text=e,t}select(e,t){ax();let n=e,r=t;const o=Hb(),i=this.getTextContent(),s=this.__key;if(\"string\"==typeof i){const e=i.length;void 0===n&&(n=e),void 0===r&&(r=e)}else n=0,r=0;if(!Db(o))return Ub(s,n,s,r,\"text\",\"text\");{const e=ry();e!==o.anchor.key&&e!==o.focus.key||ny(s),o.setTextNodeRange(this,n,this,r)}return o}selectStart(){return this.select(0,0)}selectEnd(){const e=this.getTextContentSize();return this.select(e,e)}spliceText(e,t,n,r){const o=this.getWritable(),i=o.__text,s=n.length;let a=e;a<0&&(a=s+a,a<0&&(a=0));const l=Hb();if(r&&Db(l)){const t=e+s;l.setTextNodeRange(o,t,o,t)}const c=i.slice(0,a)+n+i.slice(a+t);return o.__text=c,o}canInsertTextBefore(){return!0}canInsertTextAfter(){return!0}splitText(...e){ax();const t=this.getLatest(),n=t.getTextContent(),r=t.__key,o=ry(),i=new Set(e),s=[],a=n.length;let l=\"\";for(let e=0;e<a;e++)\"\"!==l&&i.has(e)&&(s.push(l),l=\"\"),l+=n[e];\"\"!==l&&s.push(l);const c=s.length;if(0===c)return[];if(s[0]===n)return[t];const u=s[0],d=t.getParent();let f;const m=t.getFormat(),h=t.getStyle(),p=t.__detail;let g=!1;t.isSegmented()?(f=Sb(u),f.__format=m,f.__style=h,f.__detail=p,g=!0):(f=t.getWritable(),f.__text=u);const y=Hb(),v=[f];let b=u.length;for(let e=1;e<c;e++){const t=s[e],n=t.length,i=Sb(t).getWritable();i.__format=m,i.__style=h,i.__detail=p;const a=i.__key,l=b+n;if(Db(y)){const e=y.anchor,t=y.focus;e.key===r&&\"text\"===e.type&&e.offset>b&&e.offset<=l&&(e.key=a,e.offset-=b,y.dirty=!0),t.key===r&&\"text\"===t.type&&t.offset>b&&t.offset<=l&&(t.key=a,t.offset-=b,y.dirty=!0)}o===r&&ny(a),b=l,v.push(i)}if(null!==d){!function(e){const t=e.getPreviousSibling(),n=e.getNextSibling();null!==t&&ty(t),null!==n&&ty(n)}(this);const e=d.getWritable(),t=this.getIndexWithinParent();g?(e.splice(t,0,v),this.remove()):e.splice(t,1,v),Db(y)&&qb(y,d,t,c-1)}return v}mergeWithSibling(e){const t=e===this.getPreviousSibling();t||e===this.getNextSibling()||Pg(50);const n=this.__key,r=e.__key,o=this.__text,i=o.length;ry()===r&&ny(n);const s=Hb();if(Db(s)){const o=s.anchor,a=s.focus;null!==o&&o.key===r&&(Zb(o,t,n,e,i),s.dirty=!0),null!==a&&a.key===r&&(Zb(a,t,n,e,i),s.dirty=!0)}const a=e.__text,l=t?a+o:o+a;this.setTextContent(l);const c=this.getWritable();return e.remove(),c}isTextEntity(){return!1}}function hb(e){return{forChild:Eb(e.style),node:null}}function pb(e){const t=e,n=\"normal\"===t.style.fontWeight;return{forChild:Eb(t.style,n?void 0:\"bold\"),node:null}}const gb=new WeakMap;function yb(e){return\"PRE\"===e.nodeName||e.nodeType===Zp&&void 0!==e.style&&void 0!==e.style.whiteSpace&&e.style.whiteSpace.startsWith(\"pre\")}function vb(e){const t=e;null===e.parentElement&&Pg(129);let n=t.textContent||\"\";if(null!==function(e){let t,n=e.parentNode;const r=[e];for(;null!==n&&void 0===(t=gb.get(n))&&!yb(n);)r.push(n),n=n.parentNode;const o=void 0===t?n:t;for(let e=0;e<r.length;e++)gb.set(r[e],o);return o}(t)){const e=n.split(/(\\r?\\n|\\t)/),t=[],r=e.length;for(let n=0;n<r;n++){const r=e[n];\"\\n\"===r||\"\\r\\n\"===r?t.push(ob()):\"\\t\"===r?t.push(_b()):\"\"!==r&&t.push(Sb(r))}return{node:t}}if(n=n.replace(/\\r/g,\"\").replace(/[ \\t\\n]+/g,\" \"),\"\"===n)return{node:null};if(\" \"===n[0]){let e=t,r=!0;for(;null!==e&&null!==(e=bb(e,!1));){const t=e.textContent||\"\";if(t.length>0){/[ \\t\\n]$/.test(t)&&(n=n.slice(1)),r=!1;break}}r&&(n=n.slice(1))}if(\" \"===n[n.length-1]){let e=t,r=!0;for(;null!==e&&null!==(e=bb(e,!0));)if((e.textContent||\"\").replace(/^( |\\t|\\r?\\n)+/,\"\").length>0){r=!1;break}r&&(n=n.slice(0,n.length-1))}return\"\"===n?{node:null}:{node:Sb(n)}}function bb(e,t){let n=e;for(;;){let e;for(;null===(e=t?n.nextSibling:n.previousSibling);){const e=n.parentElement;if(null===e)return null;n=e}if(n=e,n.nodeType===Zp){const e=n.style.display;if(\"\"===e&&!$y(n)||\"\"!==e&&!e.startsWith(\"inline\"))return null}let r=n;for(;null!==(r=t?n.firstChild:n.lastChild);)n=r;if(n.nodeType===Jp)return n;if(\"BR\"===n.nodeName)return null}}const xb={code:\"code\",em:\"italic\",i:\"italic\",s:\"strikethrough\",strong:\"bold\",sub:\"subscript\",sup:\"superscript\",u:\"underline\"};function wb(e){const t=xb[e.nodeName.toLowerCase()];return void 0===t?{node:null}:{forChild:Eb(e.style,t),node:null}}function Sb(e=\"\"){return zy(new mb(e))}function kb(e){return e instanceof mb}function Eb(e,t){const n=e.fontWeight,r=e.textDecoration.split(\" \"),o=\"700\"===n||\"bold\"===n,i=r.includes(\"line-through\"),s=\"italic\"===e.fontStyle,a=r.includes(\"underline\"),l=e.verticalAlign;return e=>kb(e)?(o&&!e.hasFormat(\"bold\")&&e.toggleFormat(\"bold\"),i&&!e.hasFormat(\"strikethrough\")&&e.toggleFormat(\"strikethrough\"),s&&!e.hasFormat(\"italic\")&&e.toggleFormat(\"italic\"),a&&!e.hasFormat(\"underline\")&&e.toggleFormat(\"underline\"),\"sub\"!==l||e.hasFormat(\"subscript\")||e.toggleFormat(\"subscript\"),\"super\"!==l||e.hasFormat(\"superscript\")||e.toggleFormat(\"superscript\"),t&&!e.hasFormat(t)&&e.toggleFormat(t),e):e}class Cb extends mb{static getType(){return\"tab\"}static clone(e){return new Cb(e.__key)}afterCloneFrom(e){super.afterCloneFrom(e),this.__text=e.__text}constructor(e){super(\"\\t\",e),this.__detail=2}static importDOM(){return null}static importJSON(e){const t=_b();return t.setFormat(e.format),t.setStyle(e.style),t}exportJSON(){return{...super.exportJSON(),type:\"tab\",version:1}}setTextContent(e){Pg(126)}setDetail(e){Pg(127)}setMode(e){Pg(128)}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}}function _b(){return zy(new Cb)}class Pb{constructor(e,t,n){this._selection=null,this.key=e,this.offset=t,this.type=n}is(e){return this.key===e.key&&this.offset===e.offset&&this.type===e.type}isBefore(e){let t=this.getNode(),n=e.getNode();const r=this.offset,o=e.offset;if(kx(t)){const e=t.getDescendantByIndex(r);t=null!=e?e:t}if(kx(n)){const e=n.getDescendantByIndex(o);n=null!=e?e:n}return t===n?r<o:t.isBefore(n)}getNode(){const e=oy(this.key);return null===e&&Pg(20),e}set(e,t,n){const r=this._selection,o=this.key;this.key=e,this.offset=t,this.type=n,sx()||(ry()===o&&ny(e),null!==r&&(r.setCachedNodes(null),r.dirty=!0))}}function Ob(e,t,n){return new Pb(e,t,n)}function Nb(e,t){let n=t.__key,r=e.offset,o=\"element\";if(kb(t)){o=\"text\";const e=t.getTextContentSize();r>e&&(r=e)}else if(!kx(t)){const e=t.getNextSibling();if(kb(e))n=e.__key,r=0,o=\"text\";else{const e=t.getParent();e&&(n=e.__key,r=t.getIndexWithinParent()+1)}}e.set(n,r,o)}function Tb(e,t){if(kx(t)){const n=t.getLastDescendant();kx(n)||kb(n)?Nb(e,n):Nb(e,t)}else Nb(e,t)}function Mb(e,t,n,r){e.key=t,e.offset=n,e.type=r}class Rb{constructor(e){this._cachedNodes=null,this._nodes=e,this.dirty=!1}getCachedNodes(){return this._cachedNodes}setCachedNodes(e){this._cachedNodes=e}is(e){if(!Ab(e))return!1;const t=this._nodes,n=e._nodes;return t.size===n.size&&Array.from(t).every((e=>n.has(e)))}isCollapsed(){return!1}isBackward(){return!1}getStartEndPoints(){return null}add(e){this.dirty=!0,this._nodes.add(e),this._cachedNodes=null}delete(e){this.dirty=!0,this._nodes.delete(e),this._cachedNodes=null}clear(){this.dirty=!0,this._nodes.clear(),this._cachedNodes=null}has(e){return this._nodes.has(e)}clone(){return new Rb(new Set(this._nodes))}extract(){return this.getNodes()}insertRawText(e){}insertText(){}insertNodes(e){const t=this.getNodes(),n=t.length,r=t[n-1];let o;if(kb(r))o=r.select();else{const e=r.getIndexWithinParent()+1;o=r.getParentOrThrow().select(e,e)}o.insertNodes(e);for(let e=0;e<n;e++)t[e].remove()}getNodes(){const e=this._cachedNodes;if(null!==e)return e;const t=this._nodes,n=[];for(const e of t){const t=oy(e);null!==t&&n.push(t)}return sx()||(this._cachedNodes=n),n}getTextContent(){const e=this.getNodes();let t=\"\";for(let n=0;n<e.length;n++)t+=e[n].getTextContent();return t}}function Db(e){return e instanceof jb}class jb{constructor(e,t,n,r){this.anchor=e,this.focus=t,e._selection=this,t._selection=this,this._cachedNodes=null,this.format=n,this.style=r,this.dirty=!1}getCachedNodes(){return this._cachedNodes}setCachedNodes(e){this._cachedNodes=e}is(e){return!!Db(e)&&this.anchor.is(e.anchor)&&this.focus.is(e.focus)&&this.format===e.format&&this.style===e.style}isCollapsed(){return this.anchor.is(this.focus)}getNodes(){const e=this._cachedNodes;if(null!==e)return e;const t=this.anchor,n=this.focus,r=t.isBefore(n),o=r?t:n,i=r?n:t;let s=o.getNode(),a=i.getNode();const l=o.offset,c=i.offset;if(kx(s)){const e=s.getDescendantByIndex(l);s=null!=e?e:s}if(kx(a)){let e=a.getDescendantByIndex(c);null!==e&&e!==s&&a.getChildAtIndex(c)===e&&(e=e.getPreviousSibling()),a=null!=e?e:a}let u;return u=s.is(a)?kx(s)&&s.getChildrenSize()>0?[]:[s]:s.getNodesBetween(a),sx()||(this._cachedNodes=u),u}setTextNodeRange(e,t,n,r){Mb(this.anchor,e.__key,t,\"text\"),Mb(this.focus,n.__key,r,\"text\"),this._cachedNodes=null,this.dirty=!0}getTextContent(){const e=this.getNodes();if(0===e.length)return\"\";const t=e[0],n=e[e.length-1],r=this.anchor,o=this.focus,i=r.isBefore(o),[s,a]=Lb(this);let l=\"\",c=!0;for(let u=0;u<e.length;u++){const d=e[u];if(kx(d)&&!d.isInline())c||(l+=\"\\n\"),c=!d.isEmpty();else if(c=!1,kb(d)){let e=d.getTextContent();d===t?d===n?\"element\"===r.type&&\"element\"===o.type&&o.offset!==r.offset||(e=s<a?e.slice(s,a):e.slice(a,s)):e=i?e.slice(s):e.slice(a):d===n&&(e=i?e.slice(0,a):e.slice(0,s)),l+=e}else!Px(d)&&!ib(d)||d===n&&this.isCollapsed()||(l+=d.getTextContent())}return l}applyDOMRange(e){const t=ux(),n=t.getEditorState()._selection,r=Vb(e.startContainer,e.startOffset,e.endContainer,e.endOffset,t,n);if(null===r)return;const[o,i]=r;Mb(this.anchor,o.key,o.offset,o.type),Mb(this.focus,i.key,i.offset,i.type),this._cachedNodes=null}clone(){const e=this.anchor,t=this.focus;return new jb(Ob(e.key,e.offset,e.type),Ob(t.key,t.offset,t.type),this.format,this.style)}toggleFormat(e){this.format=Qg(this.format,e,null),this.dirty=!0}setStyle(e){this.style=e,this.dirty=!0}hasFormat(e){const t=xg[e];return!!(this.format&t)}insertRawText(e){const t=e.split(/(\\r?\\n|\\t)/),n=[],r=t.length;for(let e=0;e<r;e++){const r=t[e];\"\\n\"===r||\"\\r\\n\"===r?n.push(ob()):\"\\t\"===r?n.push(_b()):n.push(Sb(r))}this.insertNodes(n)}insertText(e){const t=this.anchor,n=this.focus,r=this.format,o=this.style;let i=t,s=n;!this.isCollapsed()&&n.isBefore(t)&&(i=n,s=t),\"element\"===i.type&&function(e,t,n,r){const o=e.getNode(),i=o.getChildAtIndex(e.offset),s=Sb(),a=Nx(o)?Ix().append(s):s;s.setFormat(n),s.setStyle(r),null===i?o.append(a):i.insertBefore(a),e.is(t)&&t.set(s.__key,0,\"text\"),e.set(s.__key,0,\"text\")}(i,s,r,o);const a=i.offset;let l=s.offset;const c=this.getNodes(),u=c.length;let d=c[0];kb(d)||Pg(26);const f=d.getTextContent().length,m=d.getParentOrThrow();let h=c[u-1];if(1===u&&\"element\"===s.type&&(l=f,s.set(i.key,l,\"text\")),this.isCollapsed()&&a===f&&(d.isSegmented()||d.isToken()||!d.canInsertTextAfter()||!m.canInsertTextAfter()&&null===d.getNextSibling())){let t=d.getNextSibling();if(kb(t)&&t.canInsertTextBefore()&&!Xg(t)||(t=Sb(),t.setFormat(r),t.setStyle(o),m.canInsertTextAfter()?d.insertAfter(t):m.insertAfter(t)),t.select(0,0),d=t,\"\"!==e)return void this.insertText(e)}else if(this.isCollapsed()&&0===a&&(d.isSegmented()||d.isToken()||!d.canInsertTextBefore()||!m.canInsertTextBefore()&&null===d.getPreviousSibling())){let t=d.getPreviousSibling();if(kb(t)&&!Xg(t)||(t=Sb(),t.setFormat(r),m.canInsertTextBefore()?d.insertBefore(t):m.insertBefore(t)),t.select(),d=t,\"\"!==e)return void this.insertText(e)}else if(d.isSegmented()&&a!==f){const e=Sb(d.getTextContent());e.setFormat(r),d.replace(e),d=e}else if(!this.isCollapsed()&&\"\"!==e){const t=h.getParent();if(!m.canInsertTextBefore()||!m.canInsertTextAfter()||kx(t)&&(!t.canInsertTextBefore()||!t.canInsertTextAfter()))return this.insertText(\"\"),Wb(this.anchor,this.focus,null),void this.insertText(e)}if(1===u){if(d.isToken()){const t=Sb(e);return t.select(),void d.replace(t)}const t=d.getFormat(),n=d.getStyle();if(a!==l||t===r&&n===o){if(function(e){return e instanceof Cb}(d)){const t=Sb(e);return t.setFormat(r),t.setStyle(o),t.select(),void d.replace(t)}}else{if(\"\"!==d.getTextContent()){const t=Sb(e);if(t.setFormat(r),t.setStyle(o),t.select(),0===a)d.insertBefore(t,!1);else{const[e]=d.splitText(a);e.insertAfter(t,!1)}return void(t.isComposing()&&\"text\"===this.anchor.type&&(this.anchor.offset-=e.length))}d.setFormat(r),d.setStyle(o)}const i=l-a;d=d.spliceText(a,i,e,!0),\"\"===d.getTextContent()?d.remove():\"text\"===this.anchor.type&&(d.isComposing()?this.anchor.offset-=e.length:(this.format=t,this.style=n))}else{const t=new Set([...d.getParentKeys(),...h.getParentKeys()]),n=kx(d)?d:d.getParentOrThrow();let r=kx(h)?h:h.getParentOrThrow(),o=h;if(!n.is(r)&&r.isInline())do{o=r,r=r.getParentOrThrow()}while(r.isInline());if(\"text\"===s.type&&(0!==l||\"\"===h.getTextContent())||\"element\"===s.type&&h.getIndexWithinParent()<l)if(kb(h)&&!h.isToken()&&l!==h.getTextContentSize()){if(h.isSegmented()){const e=Sb(h.getTextContent());h.replace(e),h=e}Nx(s.getNode())||\"text\"!==s.type||(h=h.spliceText(0,l,\"\")),t.add(h.__key)}else{const e=h.getParentOrThrow();e.canBeEmpty()||1!==e.getChildrenSize()?h.remove():e.remove()}else t.add(h.__key);const i=r.getChildren(),m=new Set(c),p=n.is(r),g=n.isInline()&&null===d.getNextSibling()?n:d;for(let e=i.length-1;e>=0;e--){const t=i[e];if(t.is(d)||kx(t)&&t.isParentOf(d))break;t.isAttached()&&(!m.has(t)||t.is(o)?p||g.insertAfter(t,!1):t.remove())}if(!p){let e=r,n=null;for(;null!==e;){const r=e.getChildren(),o=r.length;(0===o||r[o-1].is(n))&&(t.delete(e.__key),n=e),e=e.getParent()}}if(d.isToken())if(a===f)d.select();else{const t=Sb(e);t.select(),d.replace(t)}else d=d.spliceText(a,f-a,e,!0),\"\"===d.getTextContent()?d.remove():d.isComposing()&&\"text\"===this.anchor.type&&(this.anchor.offset-=e.length);for(let e=1;e<u;e++){const n=c[e],r=n.__key;t.has(r)||n.remove()}}}removeText(){this.insertText(\"\")}formatText(e){if(this.isCollapsed())return this.toggleFormat(e),void ny(null);const t=this.getNodes(),n=[];for(const e of t)kb(e)&&n.push(e);const r=n.length;if(0===r)return this.toggleFormat(e),void ny(null);const o=this.anchor,i=this.focus,s=this.isBackward(),a=s?i:o,l=s?o:i;let c=0,u=n[0],d=\"element\"===a.type?0:a.offset;if(\"text\"===a.type&&d===u.getTextContentSize()&&(c=1,u=n[1],d=0),null==u)return;const f=u.getFormatFlags(e,null),m=r-1;let h=n[m];const p=\"text\"===l.type?l.offset:h.getTextContentSize();if(u.is(h)){if(d===p)return;if(Xg(u)||0===d&&p===u.getTextContentSize())u.setFormat(f);else{const e=u.splitText(d,p),t=0===d?e[0]:e[1];t.setFormat(f),\"text\"===a.type&&a.set(t.__key,0,\"text\"),\"text\"===l.type&&l.set(t.__key,p-d,\"text\")}return void(this.format=f)}0===d||Xg(u)||([,u]=u.splitText(d),d=0),u.setFormat(f);const g=h.getFormatFlags(e,f);p>0&&(p===h.getTextContentSize()||Xg(h)||([h]=h.splitText(p)),h.setFormat(g));for(let t=c+1;t<m;t++){const r=n[t],o=r.getFormatFlags(e,g);r.setFormat(o)}\"text\"===a.type&&a.set(u.__key,d,\"text\"),\"text\"===l.type&&l.set(h.__key,p,\"text\"),this.format=f|g}insertNodes(e){if(0===e.length)return;if(\"root\"===this.anchor.key){this.insertParagraph();const t=Hb();return Db(t)||Pg(134),t.insertNodes(e)}const t=Ky((this.isBackward()?this.focus:this.anchor).getNode(),Hy),n=e[e.length-1];if(\"__language\"in t&&kx(t)){if(\"__language\"in e[0])this.insertText(e[0].getTextContent());else{const r=Jb(this);t.splice(r,0,e),n.selectEnd()}return}if(!e.some((e=>(kx(e)||Px(e))&&!e.isInline()))){kx(t)||Pg(135);const r=Jb(this);return t.splice(r,0,e),void n.selectEnd()}const r=function(e){const t=Ix();let n=null;for(let r=0;r<e.length;r++){const o=e[r],i=ib(o);if(i||Px(o)&&o.isInline()||kx(o)&&o.isInline()||kb(o)||o.isParentRequired()){if(null===n&&(n=o.createParentElementNode(),t.append(n),i))continue;null!==n&&n.append(o)}else t.append(o),n=null}return t}(e),o=r.getLastDescendant(),i=r.getChildren(),s=kx(t)&&t.isEmpty()?null:this.insertParagraph(),a=i[i.length-1];let l=i[0];var c;kx(c=l)&&Hy(c)&&!c.isEmpty()&&kx(t)&&(!t.isEmpty()||t.canMergeWhenEmpty())&&(kx(t)||Pg(135),t.append(...l.getChildren()),l=i[1]),l&&function(e,t){const n=t.getParentOrThrow().getLastChild();let r=t;const o=[t];for(;r!==n;)r.getNextSibling()||Pg(140),r=r.getNextSibling(),o.push(r);let i=e;for(const e of o)i=i.insertAfter(e)}(t,l);const u=Ky(o,Hy);s&&kx(u)&&(s.canMergeWhenEmpty()||Hy(a))&&(u.append(...s.getChildren()),s.remove()),kx(t)&&t.isEmpty()&&t.remove(),o.selectEnd();const d=kx(t)?t.getLastChild():null;ib(d)&&u!==t&&d.remove()}insertParagraph(){if(\"root\"===this.anchor.key){const e=Ix();return cy().splice(this.anchor.offset,0,[e]),e.select(),e}const e=Jb(this),t=Ky(this.anchor.getNode(),Hy);kx(t)||Pg(136);const n=t.getChildAtIndex(e),r=n?[n,...n.getNextSiblings()]:[],o=t.insertNewAfter(this,!1);return o?(o.append(...r),o.selectStart(),o):null}insertLineBreak(e){const t=ob();if(this.insertNodes([t]),e){const e=t.getParentOrThrow(),n=t.getIndexWithinParent();e.select(n,n)}}extract(){const e=this.getNodes(),t=e.length,n=t-1,r=this.anchor,o=this.focus;let i=e[0],s=e[n];const[a,l]=Lb(this);if(0===t)return[];if(1===t){if(kb(i)&&!this.isCollapsed()){const e=a>l?l:a,t=a>l?a:l,n=i.splitText(e,t),r=0===e?n[0]:n[1];return null!=r?[r]:[]}return[i]}const c=r.isBefore(o);if(kb(i)){const t=c?a:l;t===i.getTextContentSize()?e.shift():0!==t&&([,i]=i.splitText(t),e[0]=i)}if(kb(s)){const t=s.getTextContent().length,r=c?l:a;0===r?e.pop():r!==t&&([s]=s.splitText(r),e[n]=s)}return e}modify(e,t,n){const r=this.focus,o=this.anchor,i=\"move\"===e,s=Ty(r,t);if(Px(s)&&!s.isIsolated()){if(i&&s.isKeyboardSelectable()){const e=$b();return e.add(s.__key),void dy(e)}const e=t?s.getPreviousSibling():s.getNextSibling();if(kb(e)){const n=e.__key,s=t?e.getTextContent().length:0;return r.set(n,s,\"text\"),void(i&&o.set(n,s,\"text\"))}{const n=s.getParentOrThrow();let a,l;return kx(e)?(l=e.__key,a=t?e.getChildrenSize():0):(a=s.getIndexWithinParent(),l=n.__key,t||a++),r.set(l,a,\"element\"),void(i&&o.set(l,a,\"element\"))}}const a=ux(),l=Vy(a._window);if(!l)return;const c=a._blockCursorElement,u=a._rootElement;if(null===u||null===c||!kx(s)||s.isInline()||s.canBeEmpty()||_n(c,a,u),function(e,t,n,r){e.modify(t,n,r)}(l,e,t?\"backward\":\"forward\",n),l.rangeCount>0){const e=l.getRangeAt(0),n=this.anchor.getNode(),r=Nx(n)?n:function(e){let t=e.getParentOrThrow();for(;null!==t;){if(Fy(t))return t;t=t.getParentOrThrow()}return t}(n);if(this.applyDOMRange(e),this.dirty=!0,!i){const n=this.getNodes(),o=[];let i=!1;for(let e=0;e<n.length;e++){const t=n[e];Iy(t,r)?o.push(t):i=!0}if(i&&o.length>0)if(t){const e=o[0];kx(e)?e.selectStart():e.getParentOrThrow().selectStart()}else{const e=o[o.length-1];kx(e)?e.selectEnd():e.getParentOrThrow().selectEnd()}l.anchorNode===e.startContainer&&l.anchorOffset===e.startOffset||function(e){const t=e.focus,n=e.anchor,r=n.key,o=n.offset,i=n.type;Mb(n,t.key,t.offset,t.type),Mb(t,r,o,i),e._cachedNodes=null}(this)}}}forwardDeletion(e,t,n){if(!n&&(\"element\"===e.type&&kx(t)&&e.offset===t.getChildrenSize()||\"text\"===e.type&&e.offset===t.getTextContentSize())){const e=t.getParent(),n=t.getNextSibling()||(null===e?null:e.getNextSibling());if(kx(n)&&n.isShadowRoot())return!0}return!1}deleteCharacter(e){const t=this.isCollapsed();if(this.isCollapsed()){const t=this.anchor;let n=t.getNode();if(this.forwardDeletion(t,n,e))return;const r=this.focus,o=Ty(r,e);if(Px(o)&&!o.isIsolated()){if(o.isKeyboardSelectable()&&kx(n)&&0===n.getChildrenSize()){n.remove();const e=$b();e.add(o.__key),dy(e)}else o.remove(),ux().dispatchCommand(ep,void 0);return}if(!e&&kx(o)&&kx(n)&&n.isEmpty())return n.remove(),void o.selectStart();if(this.modify(\"extend\",e,\"character\"),this.isCollapsed()){if(e&&0===t.offset&&(\"element\"===t.type?t.getNode():t.getNode().getParentOrThrow()).collapseAtStart(this))return}else{const o=\"text\"===r.type?r.getNode():null;if(n=\"text\"===t.type?t.getNode():null,null!==o&&o.isSegmented()){const t=r.offset,i=o.getTextContentSize();if(o.is(n)||e&&t!==i||!e&&0!==t)return void Fb(o,e,t)}else if(null!==n&&n.isSegmented()){const r=t.offset,i=n.getTextContentSize();if(n.is(o)||e&&0!==r||!e&&r!==i)return void Fb(n,e,r)}!function(e,t){const n=e.anchor,r=e.focus,o=n.getNode();if(o===r.getNode()&&\"text\"===n.type&&\"text\"===r.type){const e=n.offset,i=r.offset,s=e<i,a=s?e:i,l=s?i:e,c=l-1;a!==c&&(hy(o.getTextContent().slice(a,l))||(t?r.offset=c:n.offset=c))}}(this,e)}}if(this.removeText(),e&&!t&&this.isCollapsed()&&\"element\"===this.anchor.type&&0===this.anchor.offset){const e=this.anchor.getNode();e.isEmpty()&&Nx(e.getParent())&&0===e.getIndexWithinParent()&&e.collapseAtStart(this)}}deleteLine(e){if(this.isCollapsed()){const t=\"element\"===this.anchor.type;if(t&&this.insertText(\" \"),this.modify(\"extend\",e,\"lineboundary\"),0===(e?this.focus:this.anchor).offset&&this.modify(\"extend\",e,\"character\"),t){const t=e?this.anchor:this.focus;t.set(t.key,t.offset+1,t.type)}}this.removeText()}deleteWord(e){if(this.isCollapsed()){const t=this.anchor,n=t.getNode();if(this.forwardDeletion(t,n,e))return;this.modify(\"extend\",e,\"word\")}this.removeText()}isBackward(){return this.focus.isBefore(this.anchor)}getStartEndPoints(){return[this.anchor,this.focus]}}function Ab(e){return e instanceof Rb}function Ib(e){const t=e.offset;if(\"text\"===e.type)return t;const n=e.getNode();return t===n.getChildrenSize()?n.getTextContent().length:0}function Lb(e){const t=e.getStartEndPoints();if(null===t)return[0,0];const[n,r]=t;return\"element\"===n.type&&\"element\"===r.type&&n.key===r.key&&n.offset===r.offset?[0,0]:[Ib(n),Ib(r)]}function Fb(e,t,n){const r=e,o=r.getTextContent().split(/(?=\\s)/g),i=o.length;let s=0,a=0;for(let e=0;e<i;e++){const r=e===i-1;if(a=s,s+=o[e].length,t&&s===n||s>n||r){o.splice(e,1),r&&(a=void 0);break}}const l=o.join(\"\").trim();\"\"===l?r.remove():(r.setTextContent(l),r.select(a,a))}function zb(e,t,n,r){let o,i=t;if(e.nodeType===Zp){let s=!1;const a=e.childNodes,l=a.length,c=r._blockCursorElement;i===l&&(s=!0,i=l-1);let u=a[i],d=!1;if(u===c)u=a[i+1],d=!0;else if(null!==c){const n=c.parentNode;e===n&&t>Array.prototype.indexOf.call(n.children,c)&&i--}if(o=fy(u),kb(o))i=my(o,s);else{let r=fy(e);if(null===r)return null;if(kx(r)){i=Math.min(r.getChildrenSize(),i);let e=r.getChildAtIndex(i);if(kx(e)&&function(e,t,n){const r=e.getParent();return null===n||null===r||!r.canBeEmpty()||r!==n.getNode()}(e,0,n)){const t=s?e.getLastDescendant():e.getFirstDescendant();null===t?r=e:(e=t,r=kx(e)?e:e.getParentOrThrow()),i=0}kb(e)?(o=e,r=null,i=my(e,s)):e!==r&&s&&!d&&i++}else{const n=r.getIndexWithinParent();i=0===t&&Px(r)&&fy(e)===r?n:n+1,r=r.getParentOrThrow()}if(kx(r))return Ob(r.__key,i,\"element\")}}else o=fy(e);return kb(o)?Ob(o.__key,i,\"text\"):null}function Bb(e,t,n){const r=e.offset,o=e.getNode();if(0===r){const r=o.getPreviousSibling(),i=o.getParent();if(t){if((n||!t)&&null===r&&kx(i)&&i.isInline()){const t=i.getPreviousSibling();kb(t)&&(e.key=t.__key,e.offset=t.getTextContent().length)}}else kx(r)&&!n&&r.isInline()?(e.key=r.__key,e.offset=r.getChildrenSize(),e.type=\"element\"):kb(r)&&(e.key=r.__key,e.offset=r.getTextContent().length)}else if(r===o.getTextContent().length){const r=o.getNextSibling(),i=o.getParent();if(t&&kx(r)&&r.isInline())e.key=r.__key,e.offset=0,e.type=\"element\";else if((n||t)&&null===r&&kx(i)&&i.isInline()&&!i.canInsertTextAfter()){const t=i.getNextSibling();kb(t)&&(e.key=t.__key,e.offset=0)}}}function Wb(e,t,n){if(\"text\"===e.type&&\"text\"===t.type){const r=e.isBefore(t),o=e.is(t);Bb(e,r,o),Bb(t,!r,o),o&&(t.key=e.key,t.offset=e.offset,t.type=e.type);const i=ux();if(i.isComposing()&&i._compositionKey!==e.key&&Db(n)){const r=n.anchor,o=n.focus;Mb(e,r.key,r.offset,r.type),Mb(t,o.key,o.offset,o.type)}}}function Vb(e,t,n,r,o,i){if(null===e||null===n||!Hg(o,e,n))return null;const s=zb(e,t,Db(i)?i.anchor:null,o);if(null===s)return null;const a=zb(n,r,Db(i)?i.focus:null,o);if(null===a)return null;if(\"element\"===s.type&&\"element\"===a.type){const t=fy(e),r=fy(n);if(Px(t)&&Px(r))return null}return Wb(s,a,i),[s,a]}function Ub(e,t,n,r,o,i){const s=cx(),a=new jb(Ob(e,t,o),Ob(n,r,i),0,\"\");return a.dirty=!0,s._selection=a,a}function $b(){return new Rb(new Set)}function Yb(e,t,n,r){const o=n._window;if(null===o)return null;const i=r||o.event,s=i?i.type:void 0,a=\"selectionchange\"===s,l=!Tg&&(a||\"beforeinput\"===s||\"compositionstart\"===s||\"compositionend\"===s||\"click\"===s&&i&&3===i.detail||\"drop\"===s||void 0===s);let c,u,d,f;if(Db(e)&&!l)return e.clone();if(null===t)return null;if(c=t.anchorNode,u=t.focusNode,d=t.anchorOffset,f=t.focusOffset,a&&Db(e)&&!Hg(n,c,u))return e.clone();const m=Vb(c,d,u,f,n,e);if(null===m)return null;const[h,p]=m;return new jb(h,p,Db(e)?e.format:0,Db(e)?e.style:\"\")}function Hb(){return cx()._selection}function Kb(){return ux()._editorState._selection}function qb(e,t,n,r=1){const o=e.anchor,i=e.focus,s=o.getNode(),a=i.getNode();if(!t.is(s)&&!t.is(a))return;const l=t.__key;if(e.isCollapsed()){const t=o.offset;if(n<=t&&r>0||n<t&&r<0){const n=Math.max(0,t+r);o.set(l,n,\"element\"),i.set(l,n,\"element\"),Gb(e)}}else{const s=e.isBackward(),a=s?i:o,c=a.getNode(),u=s?o:i,d=u.getNode();if(t.is(c)){const e=a.offset;(n<=e&&r>0||n<e&&r<0)&&a.set(l,Math.max(0,e+r),\"element\")}if(t.is(d)){const e=u.offset;(n<=e&&r>0||n<e&&r<0)&&u.set(l,Math.max(0,e+r),\"element\")}}Gb(e)}function Gb(e){const t=e.anchor,n=t.offset,r=e.focus,o=r.offset,i=t.getNode(),s=r.getNode();if(e.isCollapsed()){if(!kx(i))return;const e=i.getChildrenSize(),o=n>=e,s=o?i.getChildAtIndex(e-1):i.getChildAtIndex(n);if(kb(s)){let e=0;o&&(e=s.getTextContentSize()),t.set(s.__key,e,\"text\"),r.set(s.__key,e,\"text\")}}else{if(kx(i)){const e=i.getChildrenSize(),r=n>=e,o=r?i.getChildAtIndex(e-1):i.getChildAtIndex(n);if(kb(o)){let e=0;r&&(e=o.getTextContentSize()),t.set(o.__key,e,\"text\")}}if(kx(s)){const e=s.getChildrenSize(),t=o>=e,n=t?s.getChildAtIndex(e-1):s.getChildAtIndex(o);if(kb(n)){let e=0;t&&(e=n.getTextContentSize()),r.set(n.__key,e,\"text\")}}}}function Xb(e,t,n,r,o){let i=null,s=0,a=null;null!==r?(i=r.__key,kb(r)?(s=r.getTextContentSize(),a=\"text\"):kx(r)&&(s=r.getChildrenSize(),a=\"element\")):null!==o&&(i=o.__key,kb(o)?a=\"text\":kx(o)&&(a=\"element\")),null!==i&&null!==a?e.set(i,s,a):(s=t.getIndexWithinParent(),-1===s&&(s=n.getChildrenSize()),e.set(n.__key,s,\"element\"))}function Zb(e,t,n,r,o){\"text\"===e.type?(e.key=n,t||(e.offset+=o)):e.offset>r.getIndexWithinParent()&&(e.offset-=1)}function Jb(e){let t=e;e.isCollapsed()||t.removeText();const n=Hb();Db(n)&&(t=n),Db(t)||Pg(161);const r=t.anchor;let o=r.getNode(),i=r.offset;for(;!Hy(o);)[o,i]=Qb(o,i);return i}function Qb(e,t){const n=e.getParent();if(!n){const e=Ix();return cy().append(e),e.select(),[cy(),0]}if(kb(e)){const r=e.splitText(t);if(0===r.length)return[n,e.getIndexWithinParent()];const o=0===t?0:1;return[n,r[0].getIndexWithinParent()+o]}if(!kx(e)||0===t)return[n,e.getIndexWithinParent()];const r=e.getChildAtIndex(t);if(r){const n=new jb(Ob(e.__key,t,\"element\"),Ob(e.__key,t,\"element\"),0,\"\"),o=e.insertNewAfter(n);o&&o.append(r,...r.getNextSiblings())}return[n,e.getIndexWithinParent()+1]}let ex=null,tx=null,nx=!1,rx=!1,ox=0;const ix={characterData:!0,childList:!0,subtree:!0};function sx(){return nx||null!==ex&&ex._readOnly}function ax(){nx&&Pg(13)}function lx(){ox>99&&Pg(14)}function cx(){return null===ex&&Pg(195,dx()),ex}function ux(){return null===tx&&Pg(196,dx()),tx}function dx(){let e=0;const t=new Set,n=Bx.version;if(\"undefined\"!=typeof window)for(const r of document.querySelectorAll(\"[contenteditable]\")){const o=Gg(r);if(Kg(o))e++;else if(o){let e=String(o.constructor.version||\"<0.17.1\");e===n&&(e+=\" (separately built, likely a bundler configuration issue)\"),t.add(e)}}let r=` Detected on the page: ${e} compatible editor(s) with version ${n}`;return t.size&&(r+=` and incompatible editors with versions ${Array.from(t).join(\", \")}`),r}function fx(e,t,n){const r=t.__type,o=function(e,t){const n=e._nodes.get(t);return void 0===n&&Pg(30,t),n}(e,r);let i=n.get(r);void 0===i&&(i=Array.from(o.transforms),n.set(r,i));const s=i.length;for(let e=0;e<s&&(i[e](t),t.isAttached());e++);}function mx(e,t){return void 0!==e&&e.__key!==t&&e.isAttached()}function hx(e,t){const n=e.type,r=t.get(n);void 0===r&&Pg(17,n);const o=r.klass;e.type!==o.getType()&&Pg(18,o.name);const i=o.importJSON(e),s=e.children;if(kx(i)&&Array.isArray(s))for(let e=0;e<s.length;e++){const n=hx(s[e],t);i.append(n)}return i}function px(e,t,n){const r=ex,o=nx,i=tx;ex=t,nx=!0,tx=e;try{return n()}finally{ex=r,nx=o,tx=i}}function gx(e,t){const n=e._pendingEditorState,r=e._rootElement,o=e._headless||null===r;if(null===n)return;const i=e._editorState,s=i._selection,a=n._selection,l=e._dirtyType!==Qp,c=ex,u=nx,d=tx,f=e._updating,m=e._observer;let h=null;if(e._pendingEditorState=null,e._editorState=n,!o&&l&&null!==m){tx=e,ex=n,nx=!1,e._updating=!0;try{const t=e._dirtyType,r=e._dirtyElements,o=e._dirtyLeaves;m.disconnect(),h=function(e,t,n,r,o,i){lv=\"\",fv=\"\",cv=\"\",mv=r===eg,pv=null,Qy=n,Jy=n._config,ev=n._nodes,tv=Qy._listeners.mutation,nv=o,rv=i,ov=e._nodeMap,iv=t._nodeMap,hv=t._readOnly,sv=new Map(n._keyToDOMMap);const s=new Map;return av=s,Ov(\"root\",null),Qy=void 0,ev=void 0,nv=void 0,rv=void 0,ov=void 0,iv=void 0,Jy=void 0,sv=void 0,av=void 0,s}(i,n,e,t,r,o)}catch(t){if(t instanceof Error&&e._onError(t),rx)throw t;return zx(e,null,r,n),Fg(e),e._dirtyType=eg,rx=!0,gx(e,i),void(rx=!1)}finally{m.observe(r,ix),e._updating=f,ex=c,nx=u,tx=d}}n._readOnly||(n._readOnly=!0);const p=e._dirtyLeaves,g=e._dirtyElements,y=e._normalizedNodes,v=e._updateTags,b=e._deferred;l&&(e._dirtyType=Qp,e._cloneNotNeeded.clear(),e._dirtyLeaves=new Set,e._dirtyElements=new Map,e._normalizedNodes=new Set,e._updateTags=new Set),function(e,t){const n=e._decorators;let r=e._pendingDecorators||n;const o=t._nodeMap;let i;for(i in r)o.has(i)||(r===n&&(r=ay(e)),delete r[i])}(e,n);const x=o?null:Vy(e._window);if(e._editable&&null!==x&&(l||null===a||a.dirty)){tx=e,ex=n;try{if(null!==m&&m.disconnect(),l||null===a||a.dirty){const t=e._blockCursorElement;null!==t&&_n(t,e,r),function(e,t,n,r,o,i){const s=r.anchorNode,a=r.focusNode,l=r.anchorOffset,c=r.focusOffset,u=document.activeElement;if(o.has(\"collaboration\")&&u!==i||null!==u&&Yg(u))return;if(!Db(t))return void(null!==e&&Hg(n,s,a)&&r.removeAllRanges());const d=t.anchor,f=t.focus,m=d.key,h=f.key,p=jy(n,m),g=jy(n,h),y=d.offset,v=f.offset,b=t.format,x=t.style,w=t.isCollapsed();let S=p,k=g,E=!1;if(\"text\"===d.type){S=Jg(p);const e=d.getNode();E=e.getFormat()!==b||e.getStyle()!==x}else Db(e)&&\"text\"===e.anchor.type&&(E=!0);var C,_,P,O,N;if(\"text\"===f.type&&(k=Jg(g)),null!==S&&null!==k&&(w&&(null===e||E||Db(e)&&(e.format!==b||e.style!==x))&&(C=b,_=x,P=y,O=m,N=performance.now(),Uv=[C,_,P,O,N]),l!==y||c!==v||s!==S||a!==k||\"Range\"===r.type&&w||(null!==u&&i.contains(u)||i.focus({preventScroll:!0}),\"element\"===d.type))){try{r.setBaseAndExtent(S,y,k,v)}catch(e){}if(!o.has(\"skip-scroll-into-view\")&&t.isCollapsed()&&null!==i&&i===document.activeElement){const e=t instanceof jb&&\"element\"===t.anchor.type?S.childNodes[y]||null:r.rangeCount>0?r.getRangeAt(0):null;if(null!==e){let t;if(e instanceof Text){const n=document.createRange();n.selectNode(e),t=n.getBoundingClientRect()}else t=e.getBoundingClientRect();!function(e,t,n){const r=n.ownerDocument,o=r.defaultView;if(null===o)return;let{top:i,bottom:s}=t,a=0,l=0,c=n;for(;null!==c;){const t=c===r.body;if(t)a=0,l=Ly(e).innerHeight;else{const e=c.getBoundingClientRect();a=e.top,l=e.bottom}let n=0;if(i<a?n=-(a-i):s>l&&(n=s-l),0!==n)if(t)o.scrollBy(0,n);else{const e=c.scrollTop;c.scrollTop+=n;const t=c.scrollTop-e;i-=t,s-=t}if(t)break;c=Ay(c)}}(n,t,i)}}zv=!0}}(s,a,e,x,v,r)}(function(e,t,n){let r=e._blockCursorElement;if(Db(n)&&n.isCollapsed()&&\"element\"===n.anchor.type&&t.contains(document.activeElement)){const o=n.anchor,i=o.getNode(),s=o.offset;let a=!1,l=null;if(s===i.getChildrenSize())Wy(i.getChildAtIndex(s-1))&&(a=!0);else{const t=i.getChildAtIndex(s);if(Wy(t)){const n=t.getPreviousSibling();(null===n||Wy(n))&&(a=!0,l=e.getElementByKey(t.__key))}}if(a){const n=e.getElementByKey(i.__key);return null===r&&(e._blockCursorElement=r=function(e){const t=e.theme,n=document.createElement(\"div\");n.contentEditable=\"false\",n.setAttribute(\"data-lexical-cursor\",\"true\");let r=t.blockCursor;if(void 0!==r){if(\"string\"==typeof r){const e=Og(r);r=t.blockCursor=e}void 0!==r&&n.classList.add(...r)}return n}(e._config)),t.style.caretColor=\"transparent\",void(null===l?n.appendChild(r):n.insertBefore(r,l))}}null!==r&&_n(r,e,t)})(e,r,a),null!==m&&m.observe(r,ix)}finally{tx=d,ex=c}}null!==h&&function(e,t,n,r,o){const i=Array.from(e._listeners.mutation),s=i.length;for(let e=0;e<s;e++){const[s,a]=i[e],l=t.get(a);void 0!==l&&s(l,{dirtyLeaves:r,prevEditorState:o,updateTags:n})}}(e,h,v,p,i),Db(a)||null===a||null!==s&&s.is(a)||e.dispatchCommand(ep,void 0);const w=e._pendingDecorators;null!==w&&(e._decorators=w,e._pendingDecorators=null,yx(\"decorator\",e,!0,w)),function(e,t,n){const r=ly(t),o=ly(n);r!==o&&yx(\"textcontent\",e,!0,o)}(e,t||i,n),yx(\"update\",e,!0,{dirtyElements:g,dirtyLeaves:p,editorState:n,normalizedNodes:y,prevEditorState:t||i,tags:v}),function(e,t){if(e._deferred=[],0!==t.length){const n=e._updating;e._updating=!0;try{for(let e=0;e<t.length;e++)t[e]()}finally{e._updating=n}}}(e,b),function(e){const t=e._updates;if(0!==t.length){const n=t.shift();if(n){const[t,r]=n;xx(e,t,r)}}}(e)}function yx(e,t,n,...r){const o=t._updating;t._updating=n;try{const n=Array.from(t._listeners[e]);for(let e=0;e<n.length;e++)n[e].apply(null,r)}finally{t._updating=o}}function vx(e,t,n){if(!1===e._updating||tx!==e){let r=!1;return e.update((()=>{r=vx(e,t,n)})),r}const r=py(e);for(let o=4;o>=0;o--)for(let i=0;i<r.length;i++){const s=r[i]._commands.get(t);if(void 0!==s){const t=s[o];if(void 0!==t){const r=Array.from(t),o=r.length;for(let t=0;t<o;t++)if(!0===r[t](n,e))return!0}}}return!1}function bx(e,t){const n=e._updates;let r=t||!1;for(;0!==n.length;){const t=n.shift();if(t){const[n,o]=t;let i,s;if(void 0!==o){if(i=o.onUpdate,s=o.tag,o.skipTransforms&&(r=!0),o.discrete){const t=e._pendingEditorState;null===t&&Pg(191),t._flushSync=!0}i&&e._deferred.push(i),s&&e._updateTags.add(s)}n()}}return r}function xx(e,t,n){const r=e._updateTags;let o,i,s=!1,a=!1;void 0!==n&&(o=n.onUpdate,i=n.tag,null!=i&&r.add(i),s=n.skipTransforms||!1,a=n.discrete||!1),o&&e._deferred.push(o);const l=e._editorState;let c=e._pendingEditorState,u=!1;(null===c||c._readOnly)&&(c=e._pendingEditorState=new Rx(new Map((c||l)._nodeMap)),u=!0),c._flushSync=a;const d=ex,f=nx,m=tx,h=e._updating;ex=c,nx=!1,e._updating=!0,tx=e;try{u&&(e._headless?null!==l._selection&&(c._selection=l._selection.clone()):c._selection=function(e){const t=e.getEditorState()._selection,n=Vy(e._window);return Db(t)||null==t?Yb(t,n,e,null):t.clone()}(e));const n=e._compositionKey;t(),s=bx(e,s),function(e,t){const n=t.getEditorState()._selection,r=e._selection;if(Db(r)){const e=r.anchor,t=r.focus;let o;if(\"text\"===e.type&&(o=e.getNode(),o.selectionTransform(n,r)),\"text\"===t.type){const e=t.getNode();o!==e&&e.selectionTransform(n,r)}}}(c,e),e._dirtyType!==Qp&&(s?function(e,t){const n=t._dirtyLeaves,r=e._nodeMap;for(const e of n){const t=r.get(e);kb(t)&&t.isAttached()&&t.isSimpleText()&&!t.isUnmergeable()&&Wg(t)}}(c,e):function(e,t){const n=t._dirtyLeaves,r=t._dirtyElements,o=e._nodeMap,i=ry(),s=new Map;let a=n,l=a.size,c=r,u=c.size;for(;l>0||u>0;){if(l>0){t._dirtyLeaves=new Set;for(const e of a){const r=o.get(e);kb(r)&&r.isAttached()&&r.isSimpleText()&&!r.isUnmergeable()&&Wg(r),void 0!==r&&mx(r,i)&&fx(t,r,s),n.add(e)}if(a=t._dirtyLeaves,l=a.size,l>0){ox++;continue}}t._dirtyLeaves=new Set,t._dirtyElements=new Map;for(const e of c){const n=e[0],a=e[1];if(\"root\"!==n&&!a)continue;const l=o.get(n);void 0!==l&&mx(l,i)&&fx(t,l,s),r.set(n,a)}a=t._dirtyLeaves,l=a.size,c=t._dirtyElements,u=c.size,ox++}t._dirtyLeaves=n,t._dirtyElements=r}(c,e),bx(e),function(e,t,n,r){const o=e._nodeMap,i=t._nodeMap,s=[];for(const[e]of r){const t=i.get(e);void 0!==t&&(t.isAttached()||(kx(t)&&Zy(t,e,o,i,s,r),o.has(e)||r.delete(e),s.push(e)))}for(const e of s)i.delete(e);for(const e of n){const t=i.get(e);void 0===t||t.isAttached()||(o.has(e)||n.delete(e),i.delete(e))}}(l,c,e._dirtyLeaves,e._dirtyElements)),n!==e._compositionKey&&(c._flushSync=!0);const r=c._selection;if(Db(r)){const e=c._nodeMap,t=r.anchor.key,n=r.focus.key;void 0!==e.get(t)&&void 0!==e.get(n)||Pg(19)}else Ab(r)&&0===r._nodes.size&&(c._selection=null)}catch(t){return t instanceof Error&&e._onError(t),e._pendingEditorState=l,e._dirtyType=eg,e._cloneNotNeeded.clear(),e._dirtyLeaves=new Set,e._dirtyElements.clear(),void gx(e)}finally{ex=d,nx=f,tx=m,e._updating=h,ox=0}const p=e._dirtyType!==Qp||function(e,t){const n=t.getEditorState()._selection,r=e._selection;if(null!==r){if(r.dirty||!r.is(n))return!0}else if(null!==n)return!0;return!1}(c,e);p?c._flushSync?(c._flushSync=!1,gx(e)):u&&$g((()=>{gx(e)})):(c._flushSync=!1,u&&(r.clear(),e._deferred=[],e._pendingEditorState=null))}function wx(e,t,n){e._updating?e._updates.push([t,n]):xx(e,t,n)}class Sx extends tb{constructor(e){super(e),this.__first=null,this.__last=null,this.__size=0,this.__format=0,this.__style=\"\",this.__indent=0,this.__dir=null}afterCloneFrom(e){super.afterCloneFrom(e),this.__first=e.__first,this.__last=e.__last,this.__size=e.__size,this.__indent=e.__indent,this.__format=e.__format,this.__style=e.__style,this.__dir=e.__dir}getFormat(){return this.getLatest().__format}getFormatType(){const e=this.getFormat();return kg[e]||\"\"}getStyle(){return this.getLatest().__style}getIndent(){return this.getLatest().__indent}getChildren(){const e=[];let t=this.getFirstChild();for(;null!==t;)e.push(t),t=t.getNextSibling();return e}getChildrenKeys(){const e=[];let t=this.getFirstChild();for(;null!==t;)e.push(t.__key),t=t.getNextSibling();return e}getChildrenSize(){return this.getLatest().__size}isEmpty(){return 0===this.getChildrenSize()}isDirty(){const e=ux()._dirtyElements;return null!==e&&e.has(this.__key)}isLastChild(){const e=this.getLatest(),t=this.getParentOrThrow().getLastChild();return null!==t&&t.is(e)}getAllTextNodes(){const e=[];let t=this.getFirstChild();for(;null!==t;){if(kb(t)&&e.push(t),kx(t)){const n=t.getAllTextNodes();e.push(...n)}t=t.getNextSibling()}return e}getFirstDescendant(){let e=this.getFirstChild();for(;kx(e);){const t=e.getFirstChild();if(null===t)break;e=t}return e}getLastDescendant(){let e=this.getLastChild();for(;kx(e);){const t=e.getLastChild();if(null===t)break;e=t}return e}getDescendantByIndex(e){const t=this.getChildren(),n=t.length;if(e>=n){const e=t[n-1];return kx(e)&&e.getLastDescendant()||e||null}const r=t[e];return kx(r)&&r.getFirstDescendant()||r||null}getFirstChild(){const e=this.getLatest().__first;return null===e?null:oy(e)}getFirstChildOrThrow(){const e=this.getFirstChild();return null===e&&Pg(45,this.__key),e}getLastChild(){const e=this.getLatest().__last;return null===e?null:oy(e)}getLastChildOrThrow(){const e=this.getLastChild();return null===e&&Pg(96,this.__key),e}getChildAtIndex(e){const t=this.getChildrenSize();let n,r;if(e<t/2){for(n=this.getFirstChild(),r=0;null!==n&&r<=e;){if(r===e)return n;n=n.getNextSibling(),r++}return null}for(n=this.getLastChild(),r=t-1;null!==n&&r>=e;){if(r===e)return n;n=n.getPreviousSibling(),r--}return null}getTextContent(){let e=\"\";const t=this.getChildren(),n=t.length;for(let r=0;r<n;r++){const o=t[r];e+=o.getTextContent(),kx(o)&&r!==n-1&&!o.isInline()&&(e+=hg)}return e}getTextContentSize(){let e=0;const t=this.getChildren(),n=t.length;for(let r=0;r<n;r++){const o=t[r];e+=o.getTextContentSize(),kx(o)&&r!==n-1&&!o.isInline()&&(e+=hg.length)}return e}getDirection(){return this.getLatest().__dir}hasFormat(e){if(\"\"!==e){const t=Sg[e];return!!(this.getFormat()&t)}return!1}select(e,t){ax();const n=Hb();let r=e,o=t;const i=this.getChildrenSize();if(!this.canBeEmpty())if(0===e&&0===t){const e=this.getFirstChild();if(kb(e)||kx(e))return e.select(0,0)}else if(!(void 0!==e&&e!==i||void 0!==t&&t!==i)){const e=this.getLastChild();if(kb(e)||kx(e))return e.select()}void 0===r&&(r=i),void 0===o&&(o=i);const s=this.__key;return Db(n)?(n.anchor.set(s,r,\"element\"),n.focus.set(s,o,\"element\"),n.dirty=!0,n):Ub(s,r,s,o,\"element\",\"element\")}selectStart(){const e=this.getFirstDescendant();return e?e.selectStart():this.select()}selectEnd(){const e=this.getLastDescendant();return e?e.selectEnd():this.select()}clear(){const e=this.getWritable();return this.getChildren().forEach((e=>e.remove())),e}append(...e){return this.splice(this.getChildrenSize(),0,e)}setDirection(e){const t=this.getWritable();return t.__dir=e,t}setFormat(e){return this.getWritable().__format=\"\"!==e?Sg[e]:0,this}setStyle(e){return this.getWritable().__style=e||\"\",this}setIndent(e){return this.getWritable().__indent=e,this}splice(e,t,n){const r=n.length,o=this.getChildrenSize(),i=this.getWritable(),s=i.__key,a=[],l=[],c=this.getChildAtIndex(e+t);let u=null,d=o-t+r;if(0!==e)if(e===o)u=this.getLastChild();else{const t=this.getChildAtIndex(e);null!==t&&(u=t.getPreviousSibling())}if(t>0){let e=null===u?this.getFirstChild():u.getNextSibling();for(let n=0;n<t;n++){null===e&&Pg(100);const t=e.getNextSibling(),n=e.__key;ey(e.getWritable()),l.push(n),e=t}}let f=u;for(let e=0;e<r;e++){const t=n[e];null!==f&&t.is(f)&&(u=f=f.getPreviousSibling());const r=t.getWritable();r.__parent===s&&d--,ey(r);const o=t.__key;if(null===f)i.__first=o,r.__prev=null;else{const e=f.getWritable();e.__next=o,r.__prev=e.__key}t.__key===s&&Pg(76),r.__parent=s,a.push(o),f=t}if(e+t===o)null!==f&&(f.getWritable().__next=null,i.__last=f.__key);else if(null!==c){const e=c.getWritable();if(null!==f){const t=f.getWritable();e.__prev=f.__key,t.__next=c.__key}else e.__prev=null}if(i.__size=d,l.length){const e=Hb();if(Db(e)){const t=new Set(l),n=new Set(a),{anchor:r,focus:o}=e;Ex(r,t,n)&&Xb(r,r.getNode(),this,u,c),Ex(o,t,n)&&Xb(o,o.getNode(),this,u,c),0!==d||this.canBeEmpty()||Fy(this)||this.remove()}}return i}exportJSON(){return{children:[],direction:this.getDirection(),format:this.getFormatType(),indent:this.getIndent(),type:\"element\",version:1}}insertNewAfter(e,t){return null}canIndent(){return!0}collapseAtStart(e){return!1}excludeFromCopy(e){return!1}canReplaceWith(e){return!0}canInsertAfter(e){return!0}canBeEmpty(){return!0}canInsertTextBefore(){return!0}canInsertTextAfter(){return!0}isInline(){return!1}isShadowRoot(){return!1}canMergeWith(e){return!1}extractWithChild(e,t,n){return!1}canMergeWhenEmpty(){return!1}}function kx(e){return e instanceof Sx}function Ex(e,t,n){let r=e.getNode();for(;r;){const e=r.__key;if(t.has(e)&&!n.has(e))return!0;r=r.getParent()}return!1}class Cx extends tb{constructor(e){super(e)}decorate(e,t){Pg(47)}isIsolated(){return!1}isInline(){return!0}isKeyboardSelectable(){return!0}}function Px(e){return e instanceof Cx}class Ox extends Sx{static getType(){return\"root\"}static clone(){return new Ox}constructor(){super(\"root\"),this.__cachedText=null}getTopLevelElementOrThrow(){Pg(51)}getTextContent(){const e=this.__cachedText;return!sx()&&ux()._dirtyType!==Qp||null===e?super.getTextContent():e}remove(){Pg(52)}replace(e){Pg(53)}insertBefore(e){Pg(54)}insertAfter(e){Pg(55)}updateDOM(e,t){return!1}append(...e){for(let t=0;t<e.length;t++){const n=e[t];kx(n)||Px(n)||Pg(56)}return super.append(...e)}static importJSON(e){const t=cy();return t.setFormat(e.format),t.setIndent(e.indent),t.setDirection(e.direction),t}exportJSON(){return{children:[],direction:this.getDirection(),format:this.getFormatType(),indent:this.getIndent(),type:\"root\",version:1}}collapseAtStart(){return!0}}function Nx(e){return e instanceof Ox}function Tx(){return new Rx(new Map([[\"root\",new Ox]]))}function Mx(e){const t=e.exportJSON(),n=e.constructor;if(t.type!==n.getType()&&Pg(130,n.name),kx(e)){const r=t.children;Array.isArray(r)||Pg(59,n.name);const o=e.getChildren();for(let e=0;e<o.length;e++){const t=Mx(o[e]);r.push(t)}}return t}class Rx{constructor(e,t){this._nodeMap=e,this._selection=t||null,this._flushSync=!1,this._readOnly=!1}isEmpty(){return 1===this._nodeMap.size&&null===this._selection}read(e,t){return px(t&&t.editor||null,this,e)}clone(e){const t=new Rx(this._nodeMap,void 0===e?this._selection:e);return t._readOnly=!0,t}toJSON(){return px(null,this,(()=>({root:Mx(cy())})))}}class Dx extends Sx{static getType(){return\"artificial\"}createDOM(e){return document.createElement(\"div\")}}class jx extends Sx{constructor(e){super(e),this.__textFormat=0,this.__textStyle=\"\"}static getType(){return\"paragraph\"}getTextFormat(){return this.getLatest().__textFormat}setTextFormat(e){const t=this.getWritable();return t.__textFormat=e,t}hasTextFormat(e){const t=xg[e];return!!(this.getTextFormat()&t)}getTextStyle(){return this.getLatest().__textStyle}setTextStyle(e){const t=this.getWritable();return t.__textStyle=e,t}static clone(e){return new jx(e.__key)}afterCloneFrom(e){super.afterCloneFrom(e),this.__textFormat=e.__textFormat,this.__textStyle=e.__textStyle}createDOM(e){const t=document.createElement(\"p\"),n=Py(e.theme,\"paragraph\");return void 0!==n&&t.classList.add(...n),t}updateDOM(e,t,n){return!1}static importDOM(){return{p:e=>({conversion:Ax,priority:0})}}exportDOM(e){const{element:t}=super.exportDOM(e);if(t&&Uy(t)){this.isEmpty()&&t.append(document.createElement(\"br\"));const e=this.getFormatType();t.style.textAlign=e;const n=this.getDirection();n&&(t.dir=n);const r=this.getIndent();r>0&&(t.style.textIndent=20*r+\"px\")}return{element:t}}static importJSON(e){const t=Ix();return t.setFormat(e.format),t.setIndent(e.indent),t.setDirection(e.direction),t.setTextFormat(e.textFormat),t}exportJSON(){return{...super.exportJSON(),textFormat:this.getTextFormat(),textStyle:this.getTextStyle(),type:\"paragraph\",version:1}}insertNewAfter(e,t){const n=Ix();n.setTextFormat(e.format),n.setTextStyle(e.style);const r=this.getDirection();return n.setDirection(r),n.setFormat(this.getFormatType()),n.setStyle(this.getTextStyle()),this.insertAfter(n,t),n}collapseAtStart(){const e=this.getChildren();if(0===e.length||kb(e[0])&&\"\"===e[0].getTextContent().trim()){if(null!==this.getNextSibling())return this.selectNext(),this.remove(),!0;if(null!==this.getPreviousSibling())return this.selectPrevious(),this.remove(),!0}return!1}}function Ax(e){const t=Ix();if(e.style){t.setFormat(e.style.textAlign);const n=parseInt(e.style.textIndent,10)/20;n>0&&t.setIndent(n)}return{node:t}}function Ix(){return zy(new jx)}function Lx(e){return e instanceof jx}const Fx=1;function zx(e,t,n,r){const o=e._keyToDOMMap;o.clear(),e._editorState=Tx(),e._pendingEditorState=r,e._compositionKey=null,e._dirtyType=Qp,e._cloneNotNeeded.clear(),e._dirtyLeaves=new Set,e._dirtyElements.clear(),e._normalizedNodes=new Set,e._updateTags=new Set,e._updates=[],e._blockCursorElement=null;const i=e._observer;null!==i&&(i.disconnect(),e._observer=null),null!==t&&(t.textContent=\"\"),null!==n&&(n.textContent=\"\",o.set(\"root\",n))}class Bx{constructor(e,t,n,r,o,i,s){this._parentEditor=t,this._rootElement=null,this._editorState=e,this._pendingEditorState=null,this._compositionKey=null,this._deferred=[],this._keyToDOMMap=new Map,this._updates=[],this._updating=!1,this._listeners={decorator:new Set,editable:new Set,mutation:new Map,root:new Set,textcontent:new Set,update:new Set},this._commands=new Map,this._config=r,this._nodes=n,this._decorators={},this._pendingDecorators=null,this._dirtyType=Qp,this._cloneNotNeeded=new Set,this._dirtyLeaves=new Set,this._dirtyElements=new Map,this._normalizedNodes=new Set,this._updateTags=new Set,this._observer=null,this._key=gy(),this._onError=o,this._htmlConversions=i,this._editable=s,this._headless=null!==t&&t._headless,this._window=null,this._blockCursorElement=null}isComposing(){return null!=this._compositionKey}registerUpdateListener(e){const t=this._listeners.update;return t.add(e),()=>{t.delete(e)}}registerEditableListener(e){const t=this._listeners.editable;return t.add(e),()=>{t.delete(e)}}registerDecoratorListener(e){const t=this._listeners.decorator;return t.add(e),()=>{t.delete(e)}}registerTextContentListener(e){const t=this._listeners.textcontent;return t.add(e),()=>{t.delete(e)}}registerRootListener(e){const t=this._listeners.root;return e(this._rootElement,null),t.add(e),()=>{e(null,this._rootElement),t.delete(e)}}registerCommand(e,t,n){void 0===n&&Pg(35);const r=this._commands;r.has(e)||r.set(e,[new Set,new Set,new Set,new Set,new Set]);const o=r.get(e);void 0===o&&Pg(36,String(e));const i=o[n];return i.add(t),()=>{i.delete(t),o.every((e=>0===e.size))&&r.delete(e)}}registerMutationListener(e,t,n){const r=this.resolveRegisteredNodeAfterReplacements(this.getRegisteredNode(e)).klass,o=this._listeners.mutation;o.set(t,r);const i=n&&n.skipInitialization;return void 0===i||i||this.initializeMutationListener(t,r),()=>{o.delete(t)}}getRegisteredNode(e){const t=this._nodes.get(e.getType());return void 0===t&&Pg(37,e.name),t}resolveRegisteredNodeAfterReplacements(e){for(;e.replaceWithKlass;)e=this.getRegisteredNode(e.replaceWithKlass);return e}initializeMutationListener(e,t){const n=this._editorState,r=function(e){if(!e._readOnly&&e.isEmpty())return Gy;e._readOnly||Pg(192);let t=qy.get(e);if(!t){t=new Map,qy.set(e,t);for(const[n,r]of e._nodeMap){const e=r.__type;let o=t.get(e);o||(o=new Map,t.set(e,o)),o.set(n,r)}}return t}(n).get(t.getType());if(!r)return;const o=new Map;for(const e of r.keys())o.set(e,\"created\");o.size>0&&e(o,{dirtyLeaves:new Set,prevEditorState:n,updateTags:new Set([\"registerMutationListener\"])})}registerNodeTransformToKlass(e,t){const n=this.getRegisteredNode(e);return n.transforms.add(t),n}registerNodeTransform(e,t){const n=this.registerNodeTransformToKlass(e,t),r=[n],o=n.replaceWithKlass;if(null!=o){const e=this.registerNodeTransformToKlass(o,t);r.push(e)}var i;return i=e.getType(),wx(this,(()=>{const e=cx();if(e.isEmpty())return;if(\"root\"===i)return void cy().markDirty();const t=e._nodeMap;for(const[,e]of t)e.markDirty()}),null===this._pendingEditorState?{tag:\"history-merge\"}:void 0),()=>{r.forEach((e=>e.transforms.delete(t)))}}hasNode(e){return this._nodes.has(e.getType())}hasNodes(e){return e.every(this.hasNode.bind(this))}dispatchCommand(e,t){return Ry(this,e,t)}getDecorators(){return this._decorators}getRootElement(){return this._rootElement}getKey(){return this._key}setRootElement(e){const t=this._rootElement;if(e!==t){const n=Py(this._config.theme,\"root\"),r=this._pendingEditorState||this._editorState;if(this._rootElement=e,zx(this,t,e,r),null!==t&&(this._config.disableEvents||function(e){const t=e.ownerDocument,n=Fv.get(t);void 0===n&&Pg(162);const r=n-1;r>=0||Pg(164),Fv.set(t,r),0===r&&t.removeEventListener(\"selectionchange\",Zv);const o=Gg(e);Kg(o)?(function(e){if(null!==e._parentEditor){const t=py(e),n=t[t.length-1]._key;Xv.get(n)===e&&Xv.delete(n)}else Xv.delete(e._key)}(o),e.__lexicalEditor=null):o&&Pg(198);const i=Gv(e);for(let e=0;e<i.length;e++)i[e]();e.__lexicalEventHandles=[]}(t),null!=n&&t.classList.remove(...n)),null!==e){const t=function(e){const t=e.ownerDocument;return t&&t.defaultView||null}(e),r=e.style;r.userSelect=\"text\",r.whiteSpace=\"pre-wrap\",r.wordBreak=\"break-word\",e.setAttribute(\"data-lexical-editor\",\"true\"),this._window=t,this._dirtyType=eg,Fg(this),this._updateTags.add(\"history-merge\"),gx(this),this._config.disableEvents||function(e,t){const n=e.ownerDocument,r=Fv.get(n);(void 0===r||r<1)&&n.addEventListener(\"selectionchange\",Zv),Fv.set(n,(r||0)+1),e.__lexicalEditor=t;const o=Gv(e);for(let n=0;n<Dv.length;n++){const[r,i]=Dv[n],s=\"function\"==typeof i?e=>{Qv(e)||(Jv(e),(t.isEditable()||\"click\"===r)&&i(e,t))}:e=>{if(Qv(e))return;Jv(e);const n=t.isEditable();switch(r){case\"cut\":return n&&Ry(t,Mp,e);case\"copy\":return Ry(t,Tp,e);case\"paste\":return n&&Ry(t,sp,e);case\"dragstart\":return n&&Ry(t,Pp,e);case\"dragover\":return n&&Ry(t,Op,e);case\"dragend\":return n&&Ry(t,Np,e);case\"focus\":return n&&Ry(t,Lp,e);case\"blur\":return n&&Ry(t,Fp,e);case\"drop\":return n&&Ry(t,_p,e)}};e.addEventListener(r,s),o.push((()=>{e.removeEventListener(r,s)}))}}(e,this),null!=n&&e.classList.add(...n)}else this._editorState=r,this._pendingEditorState=null,this._window=null;yx(\"root\",this,!1,e,t)}}getElementByKey(e){return this._keyToDOMMap.get(e)||null}getEditorState(){return this._editorState}setEditorState(e,t){e.isEmpty()&&Pg(38),Lg(this);const n=this._pendingEditorState,r=this._updateTags,o=void 0!==t?t.tag:null;null===n||n.isEmpty()||(null!=o&&r.add(o),gx(this)),this._pendingEditorState=e,this._dirtyType=eg,this._dirtyElements.set(\"root\",!1),this._compositionKey=null,null!=o&&r.add(o),gx(this)}parseEditorState(e,t){return function(e,t,n){const r=Tx(),o=ex,i=nx,s=tx,a=t._dirtyElements,l=t._dirtyLeaves,c=t._cloneNotNeeded,u=t._dirtyType;t._dirtyElements=new Map,t._dirtyLeaves=new Set,t._cloneNotNeeded=new Set,t._dirtyType=0,ex=r,nx=!1,tx=t;try{const o=t._nodes;hx(e.root,o),n&&n(),r._readOnly=!0}catch(e){e instanceof Error&&t._onError(e)}finally{t._dirtyElements=a,t._dirtyLeaves=l,t._cloneNotNeeded=c,t._dirtyType=u,ex=o,nx=i,tx=s}return r}(\"string\"==typeof e?JSON.parse(e):e,this,t)}read(e){return gx(this),this.getEditorState().read(e,{editor:this})}update(e,t){wx(this,e,t)}focus(e,t={}){const n=this._rootElement;null!==n&&(n.setAttribute(\"autocapitalize\",\"off\"),wx(this,(()=>{const e=Hb(),n=cy();null!==e?e.dirty=!0:0!==n.getChildrenSize()&&(\"rootStart\"===t.defaultSelection?n.selectStart():n.selectEnd())}),{onUpdate:()=>{n.removeAttribute(\"autocapitalize\"),e&&e()},tag:\"focus\"}),null===this._pendingEditorState&&n.removeAttribute(\"autocapitalize\"))}blur(){const e=this._rootElement;null!==e&&e.blur();const t=Vy(this._window);null!==t&&t.removeAllRanges()}isEditable(){return this._editable}setEditable(e){this._editable!==e&&(this._editable=e,yx(\"editable\",this,!0,e))}toJSON(){return{editorState:this._editorState.toJSON()}}}Bx.version=\"0.17.1+prod.esm\";const Wx=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,Vx=Wx?a.useLayoutEffect:a.useEffect,Ux={tag:\"history-merge\"};function $x({initialConfig:e,children:t}){const n=(0,a.useMemo)((()=>{const{theme:t,namespace:n,nodes:r,onError:o,editorState:i,html:s}=e,a=function(e,t){let n=null;return{getTheme:function(){return null!=t?t:null!=n?n.getTheme():null}}}(0,t),l=function(e){const t=e||{},n=tx,r=t.theme||{},o=void 0===e?n:t.parentEditor||null,i=t.disableEvents||!1,s=Tx(),a=t.namespace||(null!==o?o._config.namespace:gy()),l=t.editorState,c=[Ox,mb,nb,Cb,jx,Dx,...t.nodes||[]],{onError:u,html:d}=t,f=void 0===t.editable||t.editable;let m;if(void 0===e&&null!==n)m=n._nodes;else{m=new Map;for(let e=0;e<c.length;e++){let t=c[e],n=null,r=null;if(\"function\"!=typeof t){const e=t;t=e.replace,n=e.with,r=e.withKlass||null}const o=t.getType(),i=t.transform(),s=new Set;null!==i&&s.add(i),m.set(o,{exportDOM:d&&d.export?d.export.get(t):void 0,klass:t,replace:n,replaceWithKlass:r,transforms:s})}}const h=new Bx(s,o,m,{disableEvents:i,namespace:a,theme:r},u||console.error,function(e,t){const n=new Map,r=new Set,o=e=>{Object.keys(e).forEach((t=>{let r=n.get(t);void 0===r&&(r=[],n.set(t,r)),r.push(e[t])}))};return e.forEach((e=>{const t=e.klass.importDOM;if(null==t||r.has(t))return;r.add(t);const n=t.call(e.klass);null!==n&&o(n)})),t&&o(t),n}(m,d?d.import:void 0),f);return void 0!==l&&(h._pendingEditorState=l,h._dirtyType=eg),h}({editable:e.editable,html:s,namespace:n,nodes:r,onError:e=>o(e,l),theme:t});return function(e,t){if(null!==t)if(void 0===t)e.update((()=>{const t=cy();if(t.isEmpty()){const n=Ix();t.append(n);const r=Wx?document.activeElement:null;(null!==Hb()||null!==r&&r===e.getRootElement())&&n.select()}}),Ux);else if(null!==t)switch(typeof t){case\"string\":{const n=e.parseEditorState(t);e.setEditorState(n,Ux);break}case\"object\":e.setEditorState(t,Ux);break;case\"function\":e.update((()=>{cy().isEmpty()&&t(e)}),Ux)}}(l,i),[l,a]}),[]);return Vx((()=>{const t=e.editable,[r]=n;r.setEditable(void 0===t||t)}),[]),(0,mu.jsx)(Zh.Provider,{value:n,children:t})}const Yx=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?a.useLayoutEffect:a.useEffect;function Hx(e){return{initialValueFn:()=>e.isEditable(),subscribe:t=>e.registerEditableListener(t)}}function Kx(e){return()=>function(e){if(!function(e,t=!0){if(e)return!1;let n=cy().getTextContent();return t&&(n=n.trim()),\"\"===n}(e,!1))return!1;const t=cy().getChildren(),n=t.length;if(n>1)return!1;for(let e=0;e<n;e++){const n=t[e];if(Px(n))return!1;if(kx(n)){if(!Lx(n))return!1;if(0!==n.__indent)return!1;const t=n.getChildren(),r=t.length;for(let n=0;n<r;n++)if(!kb(t[e]))return!1}}return!0}(e)}!function(e){e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")}((function(e){const t=new URLSearchParams;t.append(\"code\",e);for(let e=1;e<arguments.length;e++)t.append(\"v\",arguments[e]);throw Error(`Minified Lexical error #${e}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)})),function(e){e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")}((function(e){const t=new URLSearchParams;t.append(\"code\",e);for(let e=1;e<arguments.length;e++)t.append(\"v\",arguments[e]);throw Error(`Minified Lexical error #${e}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));const qx=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,Gx=qx&&\"documentMode\"in document?document.documentMode:null;qx&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),qx&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent),!(!qx||!(\"InputEvent\"in window)||Gx)&&new window.InputEvent(\"input\"),qx&&/Version\\/[\\d.]+.*Safari/.test(navigator.userAgent),qx&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&window.MSStream,qx&&/Android/.test(navigator.userAgent),qx&&/^(?=.*Chrome).*/i.test(navigator.userAgent);function Xx(...e){return()=>{for(let t=e.length-1;t>=0;t--)e[t]();e.length=0}}function Zx(e,t){const n=Ty(e.focus,t);return Px(n)&&!n.isIsolated()||kx(n)&&!n.isInline()&&!n.canBeEmpty()}function Jx(e,t,n){const r=function(e){const t=e.anchor.getNode();return\"rtl\"===(Nx(t)?t:t.getParentOrThrow()).getDirection()}(e);!function(e,t,n){e.modify(t?\"extend\":\"move\",n,\"character\")}(e,t,n?!r:r)}function Qx(e,t,n,r=null){let o=null===r||t.isSelected(r);const i=kx(t)&&t.excludeFromCopy(\"html\");let s=t;if(null!==r){let e=Xy(t);e=kb(e)&&null!==r?function(e,t){const n=e.getStartEndPoints();if(t.isSelected(e)&&!t.isSegmented()&&!t.isToken()&&null!==n){const[r,o]=n,i=e.isBackward(),s=r.getNode(),a=o.getNode(),l=t.is(s),c=t.is(a);if(l||c){const[n,r]=Lb(e),o=s.is(a),l=t.is(i?a:s),c=t.is(i?s:a);let u,d=0;return o?(d=n>r?r:n,u=n>r?n:r):l?(d=i?r:n,u=void 0):c&&(d=0,u=i?n:r),t.__text=t.__text.slice(d,u),t}}return t}(r,e):e,s=e}const a=kx(s)?s.getChildren():[],l=e._nodes.get(s.getType());let c;c=l&&void 0!==l.exportDOM?l.exportDOM(e,s):s.exportDOM(e);const{element:u,after:d}=c;if(!u)return!1;const f=document.createDocumentFragment();for(let n=0;n<a.length;n++){const i=a[n],s=Qx(e,i,f,r);!o&&kx(t)&&s&&t.extractWithChild(i,r,\"html\")&&(o=!0)}if(o&&!i){if(Uy(u)&&u.append(f),n.append(u),d){const e=d.call(s,u);e&&u.replaceWith(e)}}else n.append(f);return o}qx&&/AppleWebKit\\/[\\d.]+/.test(navigator.userAgent),function(e){e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")}((function(e){const t=new URLSearchParams;t.append(\"code\",e);for(let e=1;e<arguments.length;e++)t.append(\"v\",arguments[e]);throw Error(`Minified Lexical error #${e}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)})),new Map,new Set([\"STYLE\",\"SCRIPT\"]);var ew=function(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}((function(e){const t=new URLSearchParams;t.append(\"code\",e);for(let e=1;e<arguments.length;e++)t.append(\"v\",arguments[e]);throw Error(`Minified Lexical error #${e}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));function tw(e,t){const n=e.getData(\"text/plain\")||e.getData(\"text/uri-list\");null!=n&&t.insertRawText(n)}\"undefined\"!=typeof window&&void 0!==window.document&&window.document.createElement;const nw=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,rw=nw&&\"documentMode\"in document?document.documentMode:null,ow=!(!nw||!(\"InputEvent\"in window)||rw)&&\"getTargetRanges\"in new window.InputEvent(\"input\"),iw=nw&&/Version\\/[\\d.]+.*Safari/.test(navigator.userAgent),sw=nw&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,aw=nw&&/^(?=.*Chrome).*/i.test(navigator.userAgent),lw=nw&&/AppleWebKit\\/[\\d.]+/.test(navigator.userAgent)&&!aw;function cw(e,t){t.update((()=>{if(null!==e){const r=function(e,t){return null!==e&&Object.getPrototypeOf(e).constructor.name===t.name}(e,KeyboardEvent)?null:e.clipboardData,o=Hb();if(null!==o&&null!=r){e.preventDefault();const i=function(e,t=Hb()){return null==t&&ew(166),Db(t)&&t.isCollapsed()||0===t.getNodes().length?\"\":function(e,t){if(\"undefined\"==typeof document||\"undefined\"==typeof window&&void 0===n.g.window)throw new Error(\"To use $generateHtmlFromNodes in headless mode please initialize a headless browser implementation such as JSDom before calling this function.\");const r=document.createElement(\"div\"),o=cy().getChildren();for(let n=0;n<o.length;n++)Qx(e,o[n],r,t);return r.innerHTML}(e,t)}(t);null!==i&&r.setData(\"text/html\",i),r.setData(\"text/plain\",o.getTextContent())}}}))}const uw=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?a.useLayoutEffect:a.useEffect;function dw(e){return e.getEditorState().read(Kx(e.isComposing()))}function fw({contentEditable:e,placeholder:t=null,ErrorBoundary:n}){const[r]=Jh(),o=function(e,t){const[n,r]=(0,a.useState)((()=>e.getDecorators()));return uw((()=>e.registerDecoratorListener((e=>{(0,tn.flushSync)((()=>{r(e)}))}))),[e]),(0,a.useEffect)((()=>{r(e.getDecorators())}),[e]),(0,a.useMemo)((()=>{const r=[],o=Object.keys(n);for(let i=0;i<o.length;i++){const s=o[i],l=(0,mu.jsx)(t,{onError:t=>e._onError(t),children:(0,mu.jsx)(a.Suspense,{fallback:null,children:n[s]})}),c=e.getElementByKey(s);null!==c&&r.push((0,tn.createPortal)(l,c,s))}return r}),[t,n,e])}(r,n);return function(e){uw((()=>Xx(function(e){return Xx(e.registerCommand(np,(e=>{const t=Hb();return!!Db(t)&&(t.deleteCharacter(e),!0)}),0),e.registerCommand(lp,(e=>{const t=Hb();return!!Db(t)&&(t.deleteWord(e),!0)}),0),e.registerCommand(cp,(e=>{const t=Hb();return!!Db(t)&&(t.deleteLine(e),!0)}),0),e.registerCommand(ip,(e=>{const t=Hb();if(!Db(t))return!1;if(\"string\"==typeof e)t.insertText(e);else{const n=e.dataTransfer;if(null!=n)tw(n,t);else{const n=e.data;n&&t.insertText(n)}}return!0}),0),e.registerCommand(ap,(()=>{const e=Hb();return!!Db(e)&&(e.removeText(),!0)}),0),e.registerCommand(rp,(e=>{const t=Hb();return!!Db(t)&&(t.insertLineBreak(e),!0)}),0),e.registerCommand(op,(()=>{const e=Hb();return!!Db(e)&&(e.insertLineBreak(),!0)}),0),e.registerCommand(gp,(e=>{const t=Hb();if(!Db(t))return!1;const n=e,r=n.shiftKey;return!!Zx(t,!0)&&(n.preventDefault(),Jx(t,r,!0),!0)}),0),e.registerCommand(hp,(e=>{const t=Hb();if(!Db(t))return!1;const n=e,r=n.shiftKey;return!!Zx(t,!1)&&(n.preventDefault(),Jx(t,r,!1),!0)}),0),e.registerCommand(Sp,(t=>!!Db(Hb())&&(t.preventDefault(),e.dispatchCommand(np,!0))),0),e.registerCommand(Ep,(t=>!!Db(Hb())&&(t.preventDefault(),e.dispatchCommand(np,!1))),0),e.registerCommand(xp,(t=>{if(!Db(Hb()))return!1;if(null!==t){if((sw||iw||lw)&&ow)return!1;t.preventDefault()}return e.dispatchCommand(rp,!1)}),0),e.registerCommand(Rp,(()=>(function(){const e=cy();dy(function(e){return Vg(e.anchor),Vg(e.focus),e}(e.select(0,e.getChildrenSize())))}(),!0)),0),e.registerCommand(Tp,(t=>!!Db(Hb())&&(cw(t,e),!0)),0),e.registerCommand(Mp,(t=>!!Db(Hb())&&(function(e,t){cw(e,t),t.update((()=>{const e=Hb();Db(e)&&e.removeText()}))}(t,e),!0)),0),e.registerCommand(sp,(t=>!!Db(Hb())&&(function(e,t){e.preventDefault(),t.update((()=>{const t=Hb(),{clipboardData:n}=e;null!=n&&Db(t)&&tw(n,t)}),{tag:\"paste\"})}(t,e),!0)),0),e.registerCommand(_p,(e=>!!Db(Hb())&&(e.preventDefault(),!0)),0),e.registerCommand(Pp,(e=>!!Db(Hb())&&(e.preventDefault(),!0)),0))}(e),function(e){const t=window.location.origin,n=n=>{if(n.origin!==t)return;const r=e.getRootElement();if(document.activeElement!==r)return;const o=n.data;if(\"string\"==typeof o){let t;try{t=JSON.parse(o)}catch(e){return}if(t&&\"nuanria_messaging\"===t.protocol&&\"request\"===t.type){const r=t.payload;if(r&&\"makeChanges\"===r.functionId){const t=r.args;if(t){const[r,o,i,s,a,l]=t;e.update((()=>{const e=Hb();if(Db(e)){const t=e.anchor;let l=t.getNode(),c=0,u=0;if(kb(l)&&r>=0&&o>=0&&(c=r,u=r+o,e.setTextNodeRange(l,c,l,u)),c===u&&\"\"===i||(e.insertRawText(i),l=t.getNode()),kb(l)){c=s,u=s+a;const t=l.getTextContentSize();c=c>t?t:c,u=u>t?t:u,e.setTextNodeRange(l,c,l,u)}n.stopImmediatePropagation()}}))}}}}};return window.addEventListener(\"message\",n,!0),()=>{window.removeEventListener(\"message\",n,!0)}}(e))),[e])}(r),(0,mu.jsxs)(mu.Fragment,{children:[e,(0,mu.jsx)(mw,{content:t}),o]})}function mw({content:e}){const[t]=Jh(),n=function(e){const[t,n]=(0,a.useState)((()=>dw(e)));return uw((()=>{function t(){const t=dw(e);n(t)}return t(),Xx(e.registerUpdateListener((()=>{t()})),e.registerEditableListener((()=>{t()})))}),[e]),t}(t),r=function(e){const[t]=Jh(),n=(0,a.useMemo)((()=>e(t)),[t,e]),r=(0,a.useRef)(n.initialValueFn()),[o,i]=(0,a.useState)(r.current);return Yx((()=>{const{initialValueFn:e,subscribe:t}=n,o=e();return r.current!==o&&(r.current=o,i(o)),t((e=>{r.current=e,i(e)}))}),[n,e]),o}(Hx);return n?\"function\"==typeof e?e(r):e:null}const hw=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?a.useLayoutEffect:a.useEffect,pw=(0,a.forwardRef)((function({editor:e,ariaActiveDescendant:t,ariaAutoComplete:n,ariaControls:r,ariaDescribedBy:o,ariaExpanded:i,ariaLabel:s,ariaLabelledBy:l,ariaMultiline:c,ariaOwns:u,ariaRequired:d,autoCapitalize:f,className:m,id:h,role:p=\"textbox\",spellCheck:g=!0,style:y,tabIndex:v,\"data-testid\":b,...x},w){const[S,k]=(0,a.useState)(e.isEditable()),E=(0,a.useCallback)((t=>{t&&t.ownerDocument&&t.ownerDocument.defaultView?e.setRootElement(t):e.setRootElement(null)}),[e]),C=(0,a.useMemo)((()=>function(...e){return t=>{e.forEach((e=>{\"function\"==typeof e?e(t):null!=e&&(e.current=t)}))}}(w,E)),[E,w]);return hw((()=>(k(e.isEditable()),e.registerEditableListener((e=>{k(e)})))),[e]),(0,mu.jsx)(\"div\",{...x,\"aria-activedescendant\":S?t:void 0,\"aria-autocomplete\":S?n:\"none\",\"aria-controls\":S?r:void 0,\"aria-describedby\":o,\"aria-expanded\":S&&\"combobox\"===p?!!i:void 0,\"aria-label\":s,\"aria-labelledby\":l,\"aria-multiline\":c,\"aria-owns\":S?u:void 0,\"aria-readonly\":!S||void 0,\"aria-required\":d,autoCapitalize:f,className:m,contentEditable:S,\"data-testid\":b,id:h,ref:C,role:S?p:void 0,spellCheck:g,style:y,tabIndex:v})}));function gw(e){return e.getEditorState().read(Kx(e.isComposing()))}const yw=(0,a.forwardRef)((function(e,t){const{placeholder:n,...r}=e,[o]=Jh();return(0,mu.jsxs)(mu.Fragment,{children:[(0,mu.jsx)(pw,{editor:o,...r,ref:t}),null!=n&&(0,mu.jsx)(vw,{editor:o,content:n})]})}));function vw({content:e,editor:t}){const n=function(e){const[t,n]=(0,a.useState)((()=>gw(e)));return hw((()=>{function t(){const t=gw(e);n(t)}return t(),Xx(e.registerUpdateListener((()=>{t()})),e.registerEditableListener((()=>{t()})))}),[e]),t}(t),[r,o]=(0,a.useState)(t.isEditable());if((0,a.useLayoutEffect)((()=>(o(t.isEditable()),t.registerEditableListener((e=>{o(e)})))),[t]),!n)return null;let i=null;return\"function\"==typeof e?i=e(r):null!==e&&(i=e),null===i?null:(0,mu.jsx)(\"div\",{\"aria-hidden\":!0,children:i})}const bw=0,xw=1,ww=2,Sw=0,kw=1,Ew=2,Cw=3,_w=4;function Pw(e){e.undoStack=[],e.redoStack=[],e.current=null}function Ow({delay:e,externalHistoryState:t}){const[n]=Jh();return function(e,t,n=1e3){const r=(0,a.useMemo)((()=>t||{current:null,redoStack:[],undoStack:[]}),[t]);(0,a.useEffect)((()=>function(e,t,n){const r=function(e,t){let n=Date.now(),r=Sw;return(o,i,s,a,l,c)=>{const u=Date.now();if(c.has(\"historic\"))return r=Sw,n=u,ww;const d=function(e,t,n,r,o){if(null===e||0===n.size&&0===r.size&&!o)return Sw;const i=t._selection,s=e._selection;if(o)return kw;if(!(Db(i)&&Db(s)&&s.isCollapsed()&&i.isCollapsed()))return Sw;const a=function(e,t,n){const r=e._nodeMap,o=[];for(const e of t){const t=r.get(e);void 0!==t&&o.push(t)}for(const[e,t]of n){if(!t)continue;const n=r.get(e);void 0===n||Nx(n)||o.push(n)}return o}(t,n,r);if(0===a.length)return Sw;if(a.length>1){const n=t._nodeMap,r=n.get(i.anchor.key),o=n.get(s.anchor.key);return r&&o&&!e._nodeMap.has(r.__key)&&kb(r)&&1===r.__text.length&&1===i.anchor.offset?Ew:Sw}const l=a[0],c=e._nodeMap.get(l.__key);if(!kb(c)||!kb(l)||c.__mode!==l.__mode)return Sw;const u=c.__text,d=l.__text;if(u===d)return Sw;const f=i.anchor,m=s.anchor;if(f.key!==m.key||\"text\"!==f.type)return Sw;const h=f.offset,p=m.offset,g=d.length-u.length;return 1===g&&p===h-1?Ew:-1===g&&p===h+1?Cw:-1===g&&p===h?_w:Sw}(o,i,a,l,e.isComposing()),f=(()=>{const f=null===s||s.editor===e,m=c.has(\"history-push\");if(!m&&f&&c.has(\"history-merge\"))return bw;if(null===o)return xw;const h=i._selection;return a.size>0||l.size>0?!1===m&&d!==Sw&&d===r&&u<n+t&&f||1===a.size&&function(e,t,n){const r=t._nodeMap.get(e),o=n._nodeMap.get(e),i=t._selection,s=n._selection;return!(Db(i)&&Db(s)&&\"element\"===i.anchor.type&&\"element\"===i.focus.type&&\"text\"===s.anchor.type&&\"text\"===s.focus.type||!kb(r)||!kb(o)||r.__parent!==o.__parent)&&JSON.stringify(t.read((()=>r.exportJSON())))===JSON.stringify(n.read((()=>o.exportJSON())))}(Array.from(a)[0],o,i)?bw:xw:null!==h?bw:ww})();return n=u,r=d,f}}(e,n),o=Xx(e.registerCommand(dp,(()=>(function(e,t){const n=t.redoStack,r=t.undoStack;if(0!==r.length){const o=t.current,i=r.pop();null!==o&&(n.push(o),e.dispatchCommand(Ap,!0)),0===r.length&&e.dispatchCommand(Ip,!1),t.current=i||null,i&&i.editor.setEditorState(i.editorState,{tag:\"historic\"})}}(e,t),!0)),0),e.registerCommand(fp,(()=>(function(e,t){const n=t.redoStack,r=t.undoStack;if(0!==n.length){const o=t.current;null!==o&&(r.push(o),e.dispatchCommand(Ip,!0));const i=n.pop();0===n.length&&e.dispatchCommand(Ap,!1),t.current=i||null,i&&i.editor.setEditorState(i.editorState,{tag:\"historic\"})}}(e,t),!0)),0),e.registerCommand(Dp,(()=>(Pw(t),!1)),0),e.registerCommand(jp,(()=>(Pw(t),e.dispatchCommand(Ap,!1),e.dispatchCommand(Ip,!1),!0)),0),e.registerUpdateListener((({editorState:n,prevEditorState:o,dirtyLeaves:i,dirtyElements:s,tags:a})=>{const l=t.current,c=t.redoStack,u=t.undoStack,d=null===l?null:l.editorState;if(null!==l&&n===d)return;const f=r(o,n,l,i,s,a);if(f===xw)0!==c.length&&(t.redoStack=[],e.dispatchCommand(Ap,!1)),null!==l&&(u.push({...l}),e.dispatchCommand(Ip,!0));else if(f===ww)return;t.current={editor:e,editorState:n}})));return o}(e,r,n)),[n,e,r])}(n,t,e),null}function Nw(e,t){return Nw=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Nw(e,t)}var Tw={error:null},Mw=function(e){var t,n;function r(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).state=Tw,t.resetErrorBoundary=function(){for(var e,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];null==t.props.onReset||(e=t.props).onReset.apply(e,r),t.reset()},t}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,Nw(t,n),r.getDerivedStateFromError=function(e){return{error:e}};var o=r.prototype;return o.reset=function(){this.setState(Tw)},o.componentDidCatch=function(e,t){var n,r;null==(n=(r=this.props).onError)||n.call(r,e,t)},o.componentDidUpdate=function(e,t){var n,r,o,i,s=this.state.error,a=this.props.resetKeys;null!==s&&null!==t.error&&(void 0===(o=e.resetKeys)&&(o=[]),void 0===(i=a)&&(i=[]),o.length!==i.length||o.some((function(e,t){return!Object.is(e,i[t])})))&&(null==(n=(r=this.props).onResetKeysChange)||n.call(r,e.resetKeys,a),this.reset())},o.render=function(){var e=this.state.error,t=this.props,n=t.fallbackRender,r=t.FallbackComponent,o=t.fallback;if(null!==e){var i={error:e,resetErrorBoundary:this.resetErrorBoundary};if(a.isValidElement(o))return o;if(\"function\"==typeof n)return n(i);if(r)return a.createElement(r,i);throw new Error(\"react-error-boundary requires either a fallback, fallbackRender, or FallbackComponent prop\")}return this.props.children},r}(a.Component);function Rw({children:e,onError:t}){return(0,mu.jsx)(Mw,{fallback:(0,mu.jsx)(\"div\",{style:{border:\"1px solid #f00\",color:\"#f00\",padding:\"8px\"},children:\"An error was thrown.\"}),onError:t,children:e})}const Dw=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?a.useLayoutEffect:a.useEffect;function jw({ignoreHistoryMergeTagChange:e=!0,ignoreSelectionChange:t=!1,onChange:n}){const[r]=Jh();return Dw((()=>{if(n)return r.registerUpdateListener((({editorState:o,dirtyElements:i,dirtyLeaves:s,prevEditorState:a,tags:l})=>{t&&0===i.size&&0===s.size||e&&l.has(\"history-merge\")||a.isEmpty()||n(o,r,l)}))}),[r,e,t,n]),null}function Aw({editorRef:e}){const[t]=Jh();return a.useEffect((()=>{\"function\"==typeof e?e(t):\"object\"==typeof e&&(e.current=t)}),[t]),null}var Iw={xs:\"py-1 px-2 pr-2 rounded [&_.editor-content>p]:text-xs [&_.editor-content>p]:font-normal [&_.pointer-events-none]:text-xs\",sm:\"px-3 py-2 rounded [&_.editor-content>p]:text-xs [&_.editor-content>p]:font-normal [&_.pointer-events-none]:text-xs [&_.pointer-events-none]:font-normal\",md:\"px-3.5 py-2.5 rounded-md [&_.editor-content>p]:text-sm [&_.editor-content>p]:font-normal [&_.pointer-events-none]:text-sm [&_.pointer-events-none]:font-normal\",lg:\"px-4 py-3 rounded-md [&_.editor-content>p]:text-base [&_.editor-content>p]:font-normal [&_.pointer-events-none]:text-base [&_.pointer-events-none]:font-normal\"},Lw={xs:\"p-1 rounded-md max-h-[8.75rem]\",sm:\"p-1.5 rounded-md max-h-[10.75rem]\",md:\"p-2 rounded-lg max-h-[13.5rem]\",lg:\"p-2 rounded-lg max-h-[13.5rem]\"},Fw={xs:\"p-1 rounded text-xs leading-4 font-normal\",sm:\"p-1.5 rounded text-xs leading-5 font-normal\",md:\"p-2 rounded-md text-sm leading-6 font-normal\",lg:\"p-2 rounded-md text-base leading-6 font-normal\"};const zw=\"startTransition\",Bw=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?a.useLayoutEffect:a.useEffect,Ww=e=>{const t=document.getElementById(\"typeahead-menu\");if(!t)return;const n=t.getBoundingClientRect();n.top+n.height>window.innerHeight&&t.scrollIntoView({block:\"center\"}),n.top<0&&t.scrollIntoView({block:\"center\"}),e.scrollIntoView({block:\"nearest\"})};function Vw(e,t){const n=e.getBoundingClientRect(),r=t.getBoundingClientRect();return n.top>r.top&&n.top<r.bottom}const Uw={};function $w({close:e,editor:t,anchorElementRef:n,resolution:r,options:o,menuRenderFn:i,onSelectOption:s,shouldSplitNodeWithQuery:l=!1,commandPriority:c=Fx}){const[u,d]=(0,a.useState)(null),f=r.match&&r.match.matchingString;(0,a.useEffect)((()=>{d(0)}),[f]);const m=(0,a.useCallback)((n=>{t.update((()=>{const t=null!=r.match&&l?function(e){const t=Hb();if(!Db(t)||!t.isCollapsed())return null;const n=t.anchor;if(\"text\"!==n.type)return null;const r=n.getNode();if(!r.isSimpleText())return null;const o=n.offset,i=r.getTextContent().slice(0,o),s=e.replaceableString.length,a=o-function(e,t,n){let r=n;for(let n=r;n<=t.length;n++)e.substr(-n)===t.substr(0,n)&&(r=n);return r}(i,e.matchingString,s);if(a<0)return null;let l;return 0===a?[l]=r.splitText(o):[,l]=r.splitText(a,o),l}(r.match):null;s(n,t,e,r.match?r.match.matchingString:\"\")}))}),[t,l,r.match,s,e]),h=(0,a.useCallback)((e=>{const n=t.getRootElement();null!==n&&(n.setAttribute(\"aria-activedescendant\",\"typeahead-item-\"+e),d(e))}),[t]);return(0,a.useEffect)((()=>()=>{const e=t.getRootElement();null!==e&&e.removeAttribute(\"aria-activedescendant\")}),[t]),Bw((()=>{null===o?d(null):null===u&&h(0)}),[o,u,h]),(0,a.useEffect)((()=>Xx(t.registerCommand(Uw,(({option:e})=>!(!e.ref||null==e.ref.current||(Ww(e.ref.current),0))),c))),[t,h,c]),(0,a.useEffect)((()=>Xx(t.registerCommand(bp,(e=>{const n=e;if(null!==o&&o.length&&null!==u){const e=u!==o.length-1?u+1:0;h(e);const r=o[e];null!=r.ref&&r.ref.current&&t.dispatchCommand(Uw,{index:e,option:r}),n.preventDefault(),n.stopImmediatePropagation()}return!0}),c),t.registerCommand(vp,(e=>{const t=e;if(null!==o&&o.length&&null!==u){const e=0!==u?u-1:o.length-1;h(e);const n=o[e];null!=n.ref&&n.ref.current&&Ww(n.ref.current),t.preventDefault(),t.stopImmediatePropagation()}return!0}),c),t.registerCommand(kp,(t=>{const n=t;return n.preventDefault(),n.stopImmediatePropagation(),e(),!0}),c),t.registerCommand(Cp,(e=>{const t=e;return null!==o&&null!==u&&null!=o[u]&&(t.preventDefault(),t.stopImmediatePropagation(),m(o[u]),!0)}),c),t.registerCommand(xp,(e=>null!==o&&null!==u&&null!=o[u]&&(null!==e&&(e.preventDefault(),e.stopImmediatePropagation()),m(o[u]),!0)),c))),[m,e,t,o,u,h,c]),i(n,(0,a.useMemo)((()=>({options:o,selectOptionAndCleanUp:m,selectedIndex:u,setHighlightedIndex:d})),[m,u,o]),r.match?r.match.matchingString:\"\")}function Yw({options:e,onQueryChange:t,onSelectOption:n,onOpen:r,onClose:o,menuRenderFn:i,triggerFn:s,anchorClassName:c,commandPriority:u=Fx,parent:d}){const[f]=Jh(),[m,h]=(0,a.useState)(null),p=function(e,t,n,r=document.body){const[o]=Jh(),i=(0,a.useRef)(document.createElement(\"div\")),s=(0,a.useCallback)((()=>{i.current.style.top=i.current.style.bottom;const t=o.getRootElement(),s=i.current,a=s.firstChild;if(null!==t&&null!==e){const{left:o,top:l,width:c,height:u}=e.getRect(),d=i.current.offsetHeight;if(s.style.top=`${l+window.pageYOffset+d+3}px`,s.style.left=`${o+window.pageXOffset}px`,s.style.height=`${u}px`,s.style.width=`${c}px`,null!==a){a.style.top=`${l}`;const e=a.getBoundingClientRect(),n=e.height,r=e.width,i=t.getBoundingClientRect();o+r>i.right&&(s.style.left=`${i.right-r+window.pageXOffset}px`),(l+n>window.innerHeight||l+n>i.bottom)&&l-i.top>n+u&&(s.style.top=l-n+window.pageYOffset-u+\"px\")}s.isConnected||(null!=n&&(s.className=n),s.setAttribute(\"aria-label\",\"Typeahead menu\"),s.setAttribute(\"id\",\"typeahead-menu\"),s.setAttribute(\"role\",\"listbox\"),s.style.display=\"block\",s.style.position=\"absolute\",r.append(s)),i.current=s,t.setAttribute(\"aria-controls\",\"typeahead-menu\")}}),[o,e,n,r]);(0,a.useEffect)((()=>{const t=o.getRootElement();if(null!==e)return s(),()=>{null!==t&&t.removeAttribute(\"aria-controls\");const e=i.current;null!==e&&e.isConnected&&e.remove()}}),[o,s,e]);const l=(0,a.useCallback)((n=>{null!==e&&(n||t(null))}),[e,t]);return function(e,t,n,r){const[o]=Jh();(0,a.useEffect)((()=>{if(null!=t&&null!=e){const e=o.getRootElement(),i=null!=e?function(e){let t=getComputedStyle(e);const n=\"absolute\"===t.position,r=/(auto|scroll)/;if(\"fixed\"===t.position)return document.body;for(let o=e;o=o.parentElement;)if(t=getComputedStyle(o),(!n||\"static\"!==t.position)&&r.test(t.overflow+t.overflowY+t.overflowX))return o;return document.body}(e):document.body;let s=!1,a=Vw(t,i);const l=function(){s||(window.requestAnimationFrame((function(){n(),s=!1})),s=!0);const e=Vw(t,i);e!==a&&(a=e,null!=r&&r(e))},c=new ResizeObserver(n);return window.addEventListener(\"resize\",n),document.addEventListener(\"scroll\",l,{capture:!0,passive:!0}),c.observe(t),()=>{c.unobserve(t),window.removeEventListener(\"resize\",n),document.removeEventListener(\"scroll\",l,!0)}}}),[t,o,r,n,e])}(e,i.current,s,l),i}(m,h,c,d),g=(0,a.useCallback)((()=>{h(null),null!=o&&null!==m&&o()}),[o,m]),y=(0,a.useCallback)((e=>{h(e),null!=r&&null===m&&r(e)}),[r,m]);return(0,a.useEffect)((()=>{const e=f.registerUpdateListener((()=>{f.getEditorState().read((()=>{const e=f._window||window,n=e.document.createRange(),r=Hb(),o=function(e){let t=null;return e.getEditorState().read((()=>{const e=Hb();Db(e)&&(t=function(e){const t=e.anchor;if(\"text\"!==t.type)return null;const n=t.getNode();if(!n.isSimpleText())return null;const r=t.offset;return n.getTextContent().slice(0,r)}(e))})),t}(f);if(!Db(r)||!r.isCollapsed()||null===o||null===n)return void g();const i=s(o,f);if(t(i?i.matchingString:null),null!==i&&!function(e,t){return 0===t&&e.getEditorState().read((()=>{const e=Hb();if(Db(e)){const t=e.anchor.getNode().getPreviousSibling();return kb(t)&&t.isTextEntity()}return!1}))}(f,i.leadOffset)){const t=function(e,t,n){const r=n.getSelection();if(null===r||!r.isCollapsed)return!1;const o=r.anchorNode,i=e,s=r.anchorOffset;if(null==o||null==s)return!1;try{t.setStart(o,i),t.setEnd(o,s)}catch(e){return!1}return!0}(i.leadOffset,n,e);if(null!==t)return a=()=>y({getRect:()=>n.getBoundingClientRect(),match:i}),void(zw in l()?l()[zw](a):a())}var a;g()}))}));return()=>{e()}}),[f,s,t,m,g,y]),null===m||null===f?null:(0,mu.jsx)($w,{close:g,resolution:m,editor:f,anchorElementRef:p,options:e,menuRenderFn:i,shouldSplitNodeWithQuery:!0,onSelectOption:n,commandPriority:u})}function Hw(e){return Hw=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},Hw(e)}function Kw(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var qw=function(e){switch(e){case\"sm\":return\"xs\";case\"md\":default:return\"sm\";case\"lg\":return\"md\"}},Gw=function(e){var t=e.data,n=e.by,r=e.size,o=e.nodeKey,i=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return Kw(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Kw(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}(Jh(),1)[0],s=!i.isEditable(),l=t;\"object\"===Hw(t)&&(l=t[n]);var c=(0,a.useCallback)((function(e){var t=oy(o);if(!t||!t.isSelected())return!1;var n=!1,r=t.getPreviousSibling();return kx(r)&&(r.selectEnd(),n=!0),kb(r)&&(r.select(),n=!0),Px(r)&&(r.selectNext(),n=!0),null===r&&(t.selectPrevious(),n=!0),n&&e.preventDefault(),n}),[o]),u=(0,a.useCallback)((function(e){var t=oy(o);if(!t||!t.isSelected())return!1;var n=!1,r=t.getNextSibling();return kx(r)&&(r.selectStart(),n=!0),kb(r)&&(r.select(0,0),n=!0),Px(r)&&(r.selectPrevious(),n=!0),null===r&&(t.selectNext(),n=!0),n&&e.preventDefault(),n}),[o]);return(0,a.useEffect)((function(){var e=Xx(i.registerCommand(gp,c,Fx),i.registerCommand(hp,u,Fx));return function(){e()}}),[i,c,u]),React.createElement(Zo,{className:\"inline-flex mr-0.5\",type:\"rounded\",size:qw(r),label:l,icon:null,closable:!0,onClose:function(e){e.stopPropagation(),e.preventDefault(),s||i.update((function(){var e=oy(o);e&&e.remove()}))},disabled:s})};function Xw(e){return Xw=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},Xw(e)}function Zw(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,rS(r.key),r)}}function Jw(e,t,n){return t=eS(t),function(e,t){if(t&&(\"object\"==Xw(t)||\"function\"==typeof t))return t;if(void 0!==t)throw new TypeError(\"Derived constructors may only return object or undefined\");return function(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}(e)}(e,Qw()?Reflect.construct(t,n||[],eS(e).constructor):t.apply(e,n))}function Qw(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Qw=function(){return!!e})()}function eS(e){return eS=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},eS(e)}function tS(e,t){return tS=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},tS(e,t)}function nS(e,t,n){return(t=rS(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rS(e){var t=function(e){if(\"object\"!=Xw(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,\"string\");if(\"object\"!=Xw(n))return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"==Xw(t)?t:t+\"\"}var oS=function(e){function t(e,n,r,o){var i;return function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t),nS(i=Jw(this,t,[o]),\"__data\",void 0),nS(i,\"__by\",void 0),nS(i,\"__size\",void 0),i.__data=e,i.__by=n,i.__size=r,i}return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,\"prototype\",{writable:!1}),t&&tS(e,t)}(t,e),function(e,t,n){return t&&Zw(e.prototype,t),n&&Zw(e,n),Object.defineProperty(e,\"prototype\",{writable:!1}),e}(t,[{key:\"createDOM\",value:function(){return document.createElement(\"span\")}},{key:\"updateDOM\",value:function(){return!1}},{key:\"exportDOM\",value:function(){return{element:document.createElement(\"span\")}}},{key:\"exportJSON\",value:function(){return{type:t.getType(),data:this.__data,by:this.__by,size:this.__size,version:1}}},{key:\"decorate\",value:function(){return React.createElement(Gw,{data:this.__data,by:this.__by,size:this.__size,nodeKey:this.__key})}}],[{key:\"getType\",value:function(){return\"mention\"}},{key:\"clone\",value:function(e){return new t(e.__data,e.__by,e.__size,e.__key)}},{key:\"importJSON\",value:function(e){return iS(e.data,e.by,e.size)}}])}(Cx),iS=function(e,t,n){return new oS(e,t,n)},sS=oS;function aS(e){return aS=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},aS(e)}function lS(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,dS(r.key),r)}}function cS(e,t,n){return t&&lS(e.prototype,t),n&&lS(e,n),Object.defineProperty(e,\"prototype\",{writable:!1}),e}function uS(e,t,n){return(t=dS(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function dS(e){var t=function(e){if(\"object\"!=aS(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,\"string\");if(\"object\"!=aS(n))return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"==aS(t)?t:t+\"\"}var fS=cS((function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),uS(this,\"data\",void 0),uS(this,\"ref\",{current:null}),this.data=t}));function mS(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var hS=new Map,pS=function(e,t,n,r){setTimeout((function(){var o=e.filter((function(e){var n;if(\"string\"==typeof e)return e.toLowerCase().includes(t.toLowerCase());var o=null==e||null===(n=e[r])||void 0===n?void 0:n.toString();return!!o&&o.toLowerCase().includes(t.toLowerCase())}));n(o)}),500)},gS=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"name\",r=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return mS(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mS(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}((0,a.useState)([]),2),o=r[0],i=r[1];return(0,a.useEffect)((function(){if(null!==t){var r=hS.get(t);null!==r&&(void 0===r?(hS.set(t,null),pS(e,t,(function(e){hS.set(t,e),i(e)}),n)):i(r))}else i([])}),[t]),o},yS=[\"size\",\"children\",\"selected\",\"className\"];function vS(){return vS=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},vS.apply(null,arguments)}var bS=(0,a.forwardRef)((function(e,t){var n=e.size,r=e.children,o=e.selected,i=void 0!==o&&o,s=e.className,a=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,yS);return React.createElement(\"li\",vS({role:\"option\",ref:t,className:oe(\"m-0 text-text-primary cursor-pointer\",Fw[n],i&&\"bg-button-tertiary-hover\",s)},a),r)}));bS.displayName=\"Item\";var xS=Object.assign((function(e){var t=e.size,n=e.className,r=e.children;return React.createElement(\"ul\",{role:\"menu\",className:oe(\"absolute inset-x-0 top-full mt-2 mx-0 mb-0 w-full h-auto overflow-y-auto overflow-x-hidden z-10 bg-background-primary border border-solid border-border-subtle shadow-lg\",Lw[t],n)},r)}),{Item:bS});function wS(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return SS(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?SS(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function SS(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var kS=function(e){var t=e.optionsArray,n=e.by,r=void 0===n?\"name\":n,o=e.size,i=void 0===o?\"md\":o,s=e.trigger,l=void 0===s?\"@\":s,c=e.menuComponent,u=void 0===c?xS:c,d=e.menuItemComponent,f=void 0===d?xS.Item:d,m=e.autoSpace,h=void 0===m||m,p=(0,a.useRef)(!1),g=\"\\\\.,\\\\+\\\\*\\\\?\\\\$\\\\@\\\\|#{}\\\\(\\\\)\\\\^\\\\-\\\\[\\\\]\\\\\\\\/!%'\\\"~=<>_:;\",y=[l].join(\"\"),v=\"[^\"+y+g+\"\\\\s]\",b=\"(?:\\\\.[ |$]| |[\"+g+\"]|)\",x=new RegExp(\"(^|\\\\s|\\\\()([\".concat(y,\"]((?:\").concat(v).concat(b,\"){0,\").concat(75,\"}))$\")),w=new RegExp(\"(^|\\\\s|\\\\()([\".concat(y,\"]((?:\").concat(v,\"){0,\").concat(50,\"}))$\")),S=wS(Jh(),1)[0],k=wS((0,a.useState)(null),2),E=k[0],C=k[1],_=gS(t,E,r),P=(0,a.useCallback)((function(e,t,n){S.update((function(){var o=iS(e.data,r,i);t&&t.replace(o),n()}))}),[S]),O=(0,a.useMemo)((function(){return _.map((function(e){return new fS(e)}))}),[S,_]),N=(0,a.useCallback)((function(e){if(!h)return!1;var t=e.key,n=e.ctrlKey,r=e.metaKey;if(n||r||\" \"===t||t.length>1||p.current)return p.current&&(p.current=!1),!1;var o=Hb(),i=o.focus,s=o.anchor,a=wS(o.getNodes(),1)[0];if(!s||!i||(null==s?void 0:s.key)!==(null==i?void 0:i.key)||(null==s?void 0:s.offset)!==(null==i?void 0:i.offset)||!a)return!1;if(function(e){return e instanceof oS}(a)){var l=Sb(\" \");a.insertAfter(l)}}),[S,l,h]),T=(0,a.useCallback)((function(e){\"Backspace\"===e.key&&(p.current=!0)}),[p]);return(0,a.useEffect)((function(){if(S)return Xx(S.registerCommand(mp,N,Fx),S.registerCommand(Sp,T,Fx))}),[S,N]),React.createElement(Yw,{onQueryChange:C,onSelectOption:P,triggerFn:function(e){var t=x.exec(e);if(null===t&&(t=w.exec(e)),null!==t){var n=t[1],r=t[3];if(r.length>=0)return{leadOffset:t.index+n.length,matchingString:r,replaceableString:t[2]}}return null},options:O,menuRenderFn:function(e,t){var n=t.selectedIndex,o=t.selectOptionAndCleanUp,s=t.setHighlightedIndex;return e.current&&!(null==O||!O.length)&&React.createElement(u,{size:i},O.map((function(e,t){var a;return React.createElement(f,{key:t,ref:e.ref,size:i,selected:t===n,onMouseEnter:function(){s(t)},onClick:function(){return o(e)}},\"string\"==typeof e.data?e.data:null===(a=e.data)||void 0===a?void 0:a[r])})))}})},ES={ltr:\"ltr\",rtl:\"rtl\",paragraph:\"editor-paragraph\",quote:\"editor-quote\",heading:{h1:\"editor-heading-h1\",h2:\"editor-heading-h2\",h3:\"editor-heading-h3\",h4:\"editor-heading-h4\",h5:\"editor-heading-h5\",h6:\"editor-heading-h6\"},list:{nested:{listitem:\"editor-nested-listitem\"},ol:\"editor-list-ol\",ul:\"editor-list-ul\",listitem:\"editor-listItem\",listitemChecked:\"editor-listItemChecked\",listitemUnchecked:\"editor-listItemUnchecked\"},hashtag:\"editor-hashtag\",image:\"editor-image\",link:\"editor-link\",text:{bold:\"editor-textBold\",code:\"editor-textCode\",italic:\"editor-textItalic\",strikethrough:\"editor-textStrikethrough\",subscript:\"editor-textSubscript\",superscript:\"editor-textSuperscript\",underline:\"editor-textUnderline\",underlineStrikethrough:\"editor-textUnderlineStrikethrough\"},code:\"editor-code\",codeHighlight:{atrule:\"editor-tokenAttr\",attr:\"editor-tokenAttr\",boolean:\"editor-tokenProperty\",builtin:\"editor-tokenSelector\",cdata:\"editor-tokenComment\",char:\"editor-tokenSelector\",class:\"editor-tokenFunction\",\"class-name\":\"editor-tokenFunction\",comment:\"editor-tokenComment\",constant:\"editor-tokenProperty\",deleted:\"editor-tokenProperty\",doctype:\"editor-tokenComment\",entity:\"editor-tokenOperator\",function:\"editor-tokenFunction\",important:\"editor-tokenVariable\",inserted:\"editor-tokenSelector\",keyword:\"editor-tokenAttr\",namespace:\"editor-tokenVariable\",number:\"editor-tokenProperty\",operator:\"editor-tokenOperator\",prolog:\"editor-tokenComment\",property:\"editor-tokenProperty\",punctuation:\"editor-tokenPunctuation\",regex:\"editor-tokenVariable\",selector:\"editor-tokenSelector\",string:\"editor-tokenSelector\",symbol:\"editor-tokenProperty\",tag:\"editor-tokenProperty\",url:\"editor-tokenOperator\",variable:\"editor-tokenVariable\"}},CS=function(e){var t=e.content;return React.createElement(\"div\",{className:\"pointer-events-none absolute inset-0 flex items-center justify-start text-field-placeholder\"},t)};function _S(e){console.error(e)}var PS=function(e,t){var n,r,o=e.defaultValue,i=void 0===o?\"\":o,s=e.placeholder,l=void 0===s?\"Press @ to view variable suggestions\":s,c=e.onChange,u=e.size,d=void 0===u?\"md\":u,f=e.autoFocus,m=void 0!==f&&f,h=e.options,p=void 0===h?[]:h,g=e.by,y=void 0===g?\"name\":g,v=e.trigger,b=void 0===v?\"@\":v,x=e.menuComponent,w=e.menuItemComponent,S=e.className,k=e.wrapperClassName,E=e.disabled,C=void 0!==E&&E,_=e.autoSpaceAfterMention,P=void 0!==_&&_,O={namespace:\"Editor\",editorTheme:ES,onError:_S,nodes:[sS],editorState:i||'{\\n \"root\": {\\n \"children\": [\\n {\\n \"children\": [],\\n \"direction\": null,\\n \"format\": \"\",\\n \"indent\": 0,\\n \"type\": \"paragraph\",\\n \"version\": 1,\\n \"textFormat\": 0,\\n \"textStyle\": \"\"\\n }\\n ],\\n \"direction\": null,\\n \"format\": \"\",\\n \"indent\": 0,\\n \"type\": \"root\",\\n \"version\": 1\\n }\\n}',editable:!C};return(0,a.isValidElement)(x)&&(n=x),(0,a.isValidElement)(w)&&(r=w),React.createElement(\"div\",{className:oe(\"relative w-full\",\"focus-within:ring-2 focus-within:ring-offset-2 hover:border-border-strong focus-within:!border-focus-border focus-within:ring-focus transition duration-150 ease-in-out outline outline-1 outline-field-border\",Iw[d],C&&\"bg-field-secondary-background border-field-border-disabled hover:border-field-border-disabled [&_p]:text-badge-color-disabled cursor-not-allowed\",k)},React.createElement($x,{initialConfig:O},React.createElement(\"div\",{className:\"relative w-full [&_p]:m-0\"},React.createElement(fw,{contentEditable:React.createElement(yw,{className:oe(\"editor-content focus-visible:outline-none outline-none\",\"w-full [&>p]:w-full [&>p]:m-0\",S)}),placeholder:React.createElement(CS,{content:l}),ErrorBoundary:Rw})),React.createElement(Ow,null),React.createElement(kS,{menuComponent:n,menuItemComponent:r,size:d,by:y,optionsArray:p,trigger:b,autoSpace:P}),React.createElement(jw,{onChange:function(e,t){\"function\"==typeof c&&c(e,t)},ignoreSelectionChange:!0}),t&&React.createElement(Aw,{editorRef:t}),m&&React.createElement(Qh,null)))},OS=(0,a.forwardRef)(PS);OS.displayName=\"EditorInput\";var NS=OS;const TS=ke(\"Plus\",[[\"path\",{d:\"M5 12h14\",key:\"1ays0h\"}],[\"path\",{d:\"M12 5v14\",key:\"s699le\"}]]);var MS=function(e,t){return oe(\"rounded-full text-brand-primary-600 transition-colors duration-300\",e[t].dot,e[t].ring)},RS=[\"variant\",\"size\",\"type\",\"currentStep\",\"children\",\"className\",\"lineProps\"],DS=[\"labelText\",\"icon\",\"stepClasses\",\"isCurrent\",\"isCompleted\",\"className\",\"type\",\"variant\",\"sizeClasses\",\"size\",\"isLast\",\"index\",\"lineProps\"];function jS(){return jS=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},jS.apply(null,arguments)}function AS(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var IS=function(e){var t=e.variant,n=void 0===t?\"dot\":t,r=e.size,o=void 0===r?\"sm\":r,i=e.type,s=void 0===i?\"inline\":i,a=e.currentStep,c=void 0===a?1:a,u=e.children,d=e.className,f=e.lineProps,m=void 0===f?\"min-w-10\":f,h=AS(e,RS),p=l().Children.count(u),g={sm:{dot:\"size-2.5\",ring:\"size-5\",numberIcon:\"size-5 text-tiny\",icon:\"size-5\",label:\"text-xs\"},md:{dot:\"size-3\",ring:\"size-6\",numberIcon:\"size-6 text-sm\",icon:\"size-6\",label:\"text-sm\"},lg:{dot:\"size-3.5\",ring:\"size-7\",numberIcon:\"size-7 text-md\",icon:\"size-7\",label:\"text-sm\"}},y=l().Children.map(u,(function(e,t){var r={isCompleted:t+1<c,isCurrent:t+1===c,sizeClasses:g,size:o,variant:n,type:s,isLast:t+1===p,index:t,lineProps:m};return l().createElement(l().Fragment,{key:t},l().cloneElement(e,r))}));return l().createElement(\"div\",jS({className:oe(\"flex w-full\",d,\"inline\"===s?\"items-center justify-between\":\"\")},h),y)},LS=function(e){var t=e.labelText,n=void 0===t?\"\":t,r=e.icon,o=void 0===r?l().createElement(TS,null):r,i=(e.stepClasses,e.isCurrent),s=e.isCompleted,a=e.className,c=e.type,u=e.variant,d=e.sizeClasses,f=e.size,m=e.isLast,h=e.index,p=e.lineProps,g=AS(e,DS),y=FS(u,s,i,d,f,o,h),v={lg:\"left-[calc(50%+14px)] right-[calc(-50%+14px)]\",md:\"left-[calc(50%+12px)] right-[calc(-50%+12px)]\",sm:\"left-[calc(50%+10px)] right-[calc(-50%+10px)]\"},b={lg:\"top-3.5\",md:\"top-3\",sm:\"top-2.5\"},x=function(){if(n){var e=oe(d[f].label,\"text-text-tertiary\",i?\"text-brand-primary-600\":\"\",\"break-word\",\"stack\"===c?\"mt-2 transform max-w-xs\":\"mx-2 max-w-32\");return l().createElement(\"span\",{className:e},n)}return null},w=function(){if(!m){var e=oe(\"block\",s?\"border-brand-primary-600\":\"border-border-subtle\",p);return\"stack\"===c?l().createElement(\"div\",{className:oe(\"relative\",\"flex\",\"border-solid\",\"border-y\",\"absolute\",s?\"border-brand-primary-600\":\"border-border-subtle\",b[f],v[f])},l().createElement(\"span\",{className:\"block\"})):l().createElement(\"div\",{className:\"flex-1\"},l().createElement(\"span\",{className:oe(e,\"mr-2 border-y border-solid\",!n&&\"ml-2\")}))}return null};return\"stack\"===c?l().createElement(\"div\",{className:\"relative flex-1 justify-center\"},l().createElement(\"div\",jS({className:oe(\"flex items-center flex-col\",a)},g),y,x()),w()):l().createElement(l().Fragment,null,l().createElement(\"div\",jS({className:oe(\"flex items-center\",a)},g),y,x()),w())};LS.displayName=\"ProgressSteps.Step\";var FS=function(e,t,n,r,o,i,s){if(t)return l().createElement(Ce,{className:MS(r,o)});var a=function(e,t,n){return oe(\"relative flex items-center rounded-full justify-center transition-colors z-10 duration-500 ring-1\",e?\"ring-brand-primary-600\":\"ring-border-subtle\",t[n].ring)}(n,r,o),c=function(e,t,n,r){var o=\"absolute rounded-full transition-colors duration-500 \".concat(n[r].dot);return\"dot\"===e?oe(o,n[r].dot,t?\"bg-brand-primary-600\":\"bg-text-tertiary\"):\"number\"===e?oe(o,n[r].dot,t?\"text-brand-primary-600\":\"text-text-tertiary\",\"flex items-center justify-center\"):\"icon\"===e?oe(o,t?\"text-brand-primary-600\":\"text-text-tertiary\",\"flex items-center justify-center\"):\"\"}(e,n,r,o),u=null;return\"number\"===e?u=s+1:\"icon\"===e&&i&&(u=i),l().createElement(\"span\",{className:a},l().createElement(\"span\",{className:c},u))};IS.Step=LS;var zS=IS,BS=[\"variant\",\"className\"];function WS(){return WS=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},WS.apply(null,arguments)}var VS=function(e){var t,n,r=e.variant,o=void 0===r?\"rectangular\":r,i=e.className,s=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,BS),a=null===(t={circular:\"rounded-full bg-gray-200 \",rectangular:\"rounded-md bg-gray-200\"})||void 0===t?void 0:t[o],c=null===(n={circular:\"size-10\",rectangular:\"w-96 h-3\"})||void 0===n?void 0:n[o];return l().createElement(\"div\",WS({className:oe(a,\"animate-pulse\",c,i)},s))};function US(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return $S(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?$S(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function $S(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var YS=(0,a.createContext)(),HS=function(){return(0,a.useContext)(YS)},KS=function(e){var t=e.size,n=void 0===t?\"md\":t,r=e.children,o=e.className;return l().createElement(YS.Provider,{value:{size:n}},l().createElement(\"div\",{className:oe(\"flex flex-col bg-background-primary p-2\",o)},r))};KS.displayName=\"Menu\";var qS=function(e){var t,n,r=e.heading,o=e.arrow,i=void 0!==o&&o,s=e.showArrowOnHover,c=void 0===s||s,u=e.open,d=void 0===u||u,f=e.onClick,m=e.children,h=e.className,p=US((0,a.useState)(d),2),g=p[0],y=p[1],v=US((0,a.useState)(!1),2),b=v[0],x=v[1],w=HS().size,S=null===(t={sm:\"text-xs\",md:\"text-sm\"})||void 0===t?void 0:t[w],k=null===(n={sm:\"[&>svg]:size-4\",md:\"[&>svg]:size-5\"})||void 0===n?void 0:n[w],E=function(){y(!g),f&&f(!g)};return l().createElement(\"div\",null,l().createElement(\"div\",{role:\"button\",tabIndex:\"0\",onClick:E,onKeyDown:function(e){\"Enter\"!==e.key&&\" \"!==e.key||E()},onMouseEnter:function(){return c&&x(!0)},onMouseLeave:function(){return c&&x(!1)},className:oe(\"text-text-primary bg-transparent cursor-pointer flex justify-between items-center gap-1\",S,r?\"p-1\":\"p-0\",h),\"aria-expanded\":g},l().createElement(\"span\",{className:\"text-text-tertiary\"},r),i&&l().createElement(em.span,{variants:{open:{rotate:180},closed:{rotate:0}},animate:g?\"open\":\"closed\",transition:{duration:.15},className:oe(\"flex items-center text-border-strong\",k)},l().createElement(em.div,{initial:\"hidden\",animate:g||b?\"visible\":\"hidden\",exit:\"hidden\",variants:{visible:{opacity:1},hidden:{opacity:0}},transition:{duration:.15}},l().createElement(cm,null)))),l().createElement(oh,{initial:!1},g&&l().createElement(em.ul,{variants:{open:{height:\"auto\",opacity:1},closed:{height:0,opacity:0}},initial:\"closed\",animate:\"open\",exit:\"closed\",transition:{duration:.3,ease:\"easeInOut\"},className:\"overflow flex gap-0.5 flex-col m-0 bg-white rounded p-0\"},m)))};qS.displayName=\"Menu.List\";var GS=function(e){var t,n=e.disabled,r=void 0!==n&&n,o=e.active,i=e.onClick,s=e.children,a=e.className,c=HS().size,u=null===(t={sm:\"[&>svg]:size-4 [&>svg]:m-1 [&>*:not(svg)]:mx-1 [&>*:not(svg)]:my-0.5 text-sm\",md:\"[&>svg]:size-5 [&>svg]:m-1.5 [&>*:not(svg)]:m-1 text-base\"})||void 0===t?void 0:t[c],d=r?\"text-text-disabled hover:text-text-disabled cursor-not-allowed hover:bg-transparent\":\"\",f=o?\"text-icon-primary [&>svg]:text-icon-interactive bg-background-secondary\":\"\";return l().createElement(\"li\",{role:\"menuitem\",tabIndex:\"0\",onClick:i,onKeyDown:function(e){\"Enter\"!==e.key&&\" \"!==e.key||i()},className:oe(\"flex p-1 gap-1 items-center bg-transparent border-none rounded text-text-secondary cursor-pointer m-0\",u,\"hover:bg-background-secondary hover:text-text-primary\",d,f,\"transition-colors duration-300 ease-in-out\",a)},s)};GS.displayName=\"Menu.Item\";var XS=function(e){var t,n=e.variant,r=void 0===n?\"solid\":n,o=e.className,i=null===(t={solid:\"border-solid\",dashed:\"border-dashed\",dotted:\"border-dotted\",double:\"border-double\",hidden:\"border-hidden\",none:\"border-none\"})||void 0===t?void 0:t[r];return l().createElement(l().Fragment,null,l().createElement(\"hr\",{className:oe(\"w-full border-0 border-t border-border-subtle\",i,o)}))};XS.displayName=\"Menu.Separator\";var ZS=Object.assign(KS,{List:qS,Item:GS,Separator:XS});const JS=ke(\"PanelLeftOpen\",[[\"rect\",{width:\"18\",height:\"18\",x:\"3\",y:\"3\",rx:\"2\",key:\"afitv7\"}],[\"path\",{d:\"M9 3v18\",key:\"fh3hqa\"}],[\"path\",{d:\"m14 9 3 3-3 3\",key:\"8010ee\"}]]),QS=ke(\"PanelLeftClose\",[[\"rect\",{width:\"18\",height:\"18\",x:\"3\",y:\"3\",rx:\"2\",key:\"afitv7\"}],[\"path\",{d:\"M9 3v18\",key:\"fh3hqa\"}],[\"path\",{d:\"m16 15-3-3 3-3\",key:\"14y99z\"}]]);var ek=[\"children\",\"className\",\"onCollapseChange\",\"collapsible\",\"screenHeight\",\"borderOn\"];function tk(){return tk=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},tk.apply(null,arguments)}function nk(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var rk=(0,a.createContext)(),ok=function(e){var t=e.children,n=e.className,r=e.onCollapseChange,o=e.collapsible,i=void 0===o||o,s=e.screenHeight,c=void 0===s||s,u=e.borderOn,d=void 0===u||u,f=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,ek),m=(0,a.useRef)(null),h=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return nk(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?nk(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}((0,a.useState)((function(){var e=localStorage.getItem(\"sidebar-collapsed\"),t=window.innerWidth<1280;return e?JSON.parse(e):t})),2),p=h[0],g=h[1];return(0,a.useEffect)((function(){r&&r(p)}),[p,r]),(0,a.useEffect)((function(){var e=function(){var e=window.innerWidth<1280;if(i)if(e)g(!0),localStorage.setItem(\"sidebar-collapsed\",JSON.stringify(!0));else{var t=localStorage.getItem(\"sidebar-collapsed\");g(!!t&&JSON.parse(t))}else g(!1),localStorage.removeItem(\"sidebar-collapsed\");m.current&&(m.current.style.height=c?\"\".concat(window.innerHeight,\"px\"):\"auto\")};return window.addEventListener(\"resize\",e),e(),function(){window.removeEventListener(\"resize\",e)}}),[c,i]),l().createElement(rk.Provider,{value:{isCollapsed:p,setIsCollapsed:g,collapsible:i}},l().createElement(\"div\",tk({ref:m,className:oe(\"overflow-auto w-72 px-4 py-4 gap-4 flex flex-col bg-background-primary\",d&&\"border-0 border-r border-solid border-border-subtle\",!!c&&\"h-screen\",\"transition-all duration-200\",p&&\"w-16 px-2\",n)},f),t))};ok.displayName=\"Sidebar\";var ik=function(e){var t=e.children;return l().createElement(\"div\",{className:\"space-y-2\"},t)};ik.displayName=\"Sidebar.Header\";var sk=function(e){var t=e.children;return l().createElement(\"div\",{className:oe(\"space-y-4 grow items-start\")},t)};sk.displayName=\"Sidebar.Body\";var ak=function(e){var t=e.children,n=(0,a.useContext)(rk),r=n.isCollapsed,o=n.setIsCollapsed,i=n.collapsible;return l().createElement(\"div\",{className:\"space-y-4\"},t,i&&l().createElement(\"button\",{className:oe(\"bg-transparent w-full border-0 p-0 m-0 flex items-center gap-2 text-base cursor-pointer\",r&&\"justify-center\"),onClick:function(){o(!r),localStorage.setItem(\"sidebar-collapsed\",JSON.stringify(!r))},\"aria-label\":r?\"Expand sidebar\":\"Collapse sidebar\"},r?l().createElement(l().Fragment,null,l().createElement(Do,{title:\"Expand\",placement:\"right\"},l().createElement(JS,{className:\"size-5\"}))):l().createElement(l().Fragment,null,l().createElement(QS,{className:\"size-5\"}),\" Collapse\")))};ak.displayName=\"Sidebar.Footer\";var lk=function(e){var t=e.children,n=e.className;return l().createElement(\"div\",{className:oe(\"w-full\",n)},t)};lk.displayName=\"Sidebar.Item\";var ck=Object.assign(ok,{Header:ik,Body:sk,Footer:ak,Item:lk});const uk=ke(\"ChevronRight\",[[\"path\",{d:\"m9 18 6-6-6-6\",key:\"mthhwq\"}]]),dk=ke(\"Ellipsis\",[[\"circle\",{cx:\"12\",cy:\"12\",r:\"1\",key:\"41hilf\"}],[\"circle\",{cx:\"19\",cy:\"12\",r:\"1\",key:\"1wjl8i\"}],[\"circle\",{cx:\"5\",cy:\"12\",r:\"1\",key:\"1pcz8c\"}]]);var fk=[\"href\",\"children\",\"className\",\"as\"];function mk(){return mk=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},mk.apply(null,arguments)}var hk=(0,a.createContext)(),pk={sm:{text:\"text-sm\",separator:\"text-sm\",separatorIconSize:16},md:{text:\"text-base\",separator:\"text-base\",separatorIconSize:18}},gk=function(e){var t=e.children,n=e.size,r=pk[void 0===n?\"sm\":n]||pk.sm;return l().createElement(hk.Provider,{value:{sizes:r}},l().createElement(\"nav\",{className:\"flex m-0\",\"aria-label\":\"Breadcrumb\"},l().createElement(\"ul\",{className:\"m-0 inline-flex items-center space-x-1 md:space-x-1\"},t)))};gk.displayName=\"Breadcrumb\";var yk=function(e){var t=e.children;return l().createElement(l().Fragment,null,t)};yk.displayName=\"Breadcrumb.List\";var vk=function(e){var t=e.children;return l().createElement(\"li\",{className:\"m-0 inline-flex items-center gap-2\"},t)};vk.displayName=\"Breadcrumb.Item\";var bk=function(e){var t=e.href,n=e.children,r=e.className,o=e.as,i=void 0===o?\"a\":o,s=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,fk),c=(0,a.useContext)(hk).sizes;return l().createElement(i,mk({href:t,className:oe(c.text,\"px-1 font-medium no-underline text-text-tertiary hover:text-text-primary hover:underline\",\"focus:outline-none focus:ring-1 focus:ring-border-interactive focus:border-border-interactive focus:rounded-sm\",\"transition-all duration-200\",r)},s),n)};bk.displayName=\"Breadcrumb.Link\";var xk=function(e){var t=e.type,n=(0,a.useContext)(hk).sizes,r={slash:l().createElement(\"span\",{className:oe(\"mx-1\",n.separator)},\"/\"),arrow:l().createElement(uk,{size:n.separatorIconSize})};return l().createElement(\"span\",{className:\"flex items-center text-text-tertiary mx-2\"},r[t]||r.arrow)};xk.displayName=\"Breadcrumb.Separator\";var wk=function(){var e=(0,a.useContext)(hk).sizes;return l().createElement(dk,{className:\"mt-[2px] cursor-pointer text-text-tertiary hover:text-text-primary\",size:e.separatorIconSize+4})};wk.displayName=\"Breadcrumb.Ellipsis\";var Sk=function(e){var t=e.children,n=(0,a.useContext)(hk).sizes;return l().createElement(\"span\",{className:oe(n.text,\"font-medium text-text-primary\")},t)};Sk.displayName=\"Breadcrumb.Page\";var kk=Object.assign(gk,{List:yk,Item:vk,Link:bk,Separator:xk,Ellipsis:wk,Page:Sk}),Ek=[\"className\"],Ck=[\"children\",\"className\"],_k=[\"children\",\"as\",\"className\"],Pk=[\"children\",\"as\",\"className\"],Ok=[\"className\"],Nk=[\"children\",\"as\"],Tk=[\"children\",\"className\"];function Mk(){return Mk=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Mk.apply(null,arguments)}function Rk(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Dk(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var jk=(0,a.createContext)(),Ak=function(){return(0,a.useContext)(jk)},Ik={open:{opacity:1},exit:{opacity:0}},Lk={duration:.2},Fk=function(e){var t=e.open,n=e.setOpen,r=e.children,o=e.trigger,i=e.className,s=e.exitOnClickOutside,l=void 0!==s&&s,c=e.exitOnEsc,u=void 0===c||c,d=e.design,f=void 0===d?\"simple\":d,m=e.scrollLock,h=void 0===m||m,p=void 0!==t&&void 0!==n,g=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return Dk(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Dk(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}((0,a.useState)(!1),2),y=g[0],v=g[1],b=(0,a.useRef)(null),x=(0,a.useRef)(null),w=(0,a.useMemo)((function(){return p?t:y}),[t,y]),S=(0,a.useMemo)((function(){return p?n:v}),[v,v]),k=function(){w||S(!0)},E=function(){w&&S(!1)},C=(0,a.useCallback)((function(){return(0,a.isValidElement)(o)?(0,a.cloneElement)(o,{onClick:ie(k,o.props.onClick)}):\"function\"==typeof o?o({onClick:k}):null}),[o,k,E]),_=function(e){\"Escape\"===e.key&&u&&E()},P=function(e){l&&b.current&&!b.current.contains(e.target)&&E()};return(0,a.useEffect)((function(){return window.addEventListener(\"keydown\",_),document.addEventListener(\"mousedown\",P),function(){window.removeEventListener(\"keydown\",_),document.removeEventListener(\"mousedown\",P)}}),[w]),(0,a.useEffect)((function(){if(h)return w&&(document.querySelector(\"html\").style.overflow=\"hidden\"),function(){document.querySelector(\"html\").style.overflow=\"\"}}),[w]),React.createElement(React.Fragment,null,C(),React.createElement(jk.Provider,{value:{open:w,setOpen:S,handleClose:E,design:f,dialogContainerRef:x,dialogRef:b}},React.createElement(\"div\",{ref:x,className:oe(\"fixed z-999999 w-0 h-0 overflow-visible\",i)},r)))};Fk.displayName=\"Dialog\";var zk=function(e){var t=e.children,n=e.className,r=Ak(),o=r.open,i=r.handleClose,s=r.dialogRef;return React.createElement(oh,null,o&&React.createElement(em.div,{className:\"fixed inset-0 overflow-y-auto\",initial:\"exit\",animate:\"open\",exit:\"exit\",variants:Ik,role:\"dialog\",transition:Lk},React.createElement(\"div\",{className:\"flex items-center justify-center min-h-full\"},React.createElement(\"div\",{ref:s,className:oe(\"flex flex-col gap-5 w-120 h-fit bg-background-primary border border-solid border-border-subtle rounded-xl shadow-soft-shadow-2xl my-5 overflow-hidden\",n)},\"function\"==typeof t?t({close:i}):t))))};zk.displayName=\"Dialog.Panel\";var Bk=function(e){var t=e.className,n=Rk(e,Ek),r=Ak(),o=r.open,i=r.dialogContainerRef;return i.current&&(0,tn.createPortal)(React.createElement(oh,null,o&&React.createElement(em.div,Mk({className:oe(\"fixed inset-0 -z-10 bg-background-inverse/90 backdrop-blur-sm\",t)},n,{initial:\"exit\",animate:\"open\",exit:\"exit\",variants:Ik,transition:Lk}))),i.current)};Bk.displayName=\"Dialog.Backdrop\";var Wk=function(e){var t=e.children,n=e.className,r=Rk(e,Ck);return React.createElement(\"div\",Mk({className:oe(\"space-y-2 px-5 pt-5 pb-1\",n)},r),t)};Wk.displayName=\"Dialog.Header\";var Vk=function(e){var t=e.children,n=e.as,r=void 0===n?\"h3\":n,o=e.className,i=Rk(e,_k);return React.createElement(r,Mk({className:oe(\"text-base font-semibold text-text-primary m-0 p-0\",o)},i),t)};Vk.displayName=\"Dialog.Title\";var Uk=function(e){var t=e.children,n=e.as,r=void 0===n?\"p\":n,o=e.className,i=Rk(e,Pk);return React.createElement(r,Mk({className:oe(\"text-sm font-normal text-text-secondary my-0 ml-0 mr-1 p-0\",o)},i),t)};Uk.displayName=\"Dialog.Description\";var $k=function(e){var t=e.className,n=Rk(e,Ok);return React.createElement(\"button\",Mk({className:oe(\"bg-transparent inline-flex justify-center items-center border-0 p-1 m-0 cursor-pointer focus:outline-none outline-none shadow-none\",t),\"aria-label\":\"Close dialog\"},n),React.createElement(qo,{className:\"size-4 text-text-primary shrink-0\"}))},Yk=function(e){var t=e.children,n=e.as,r=void 0===n?a.Fragment:n,o=Rk(e,Nk),i=Ak().handleClose;return(0,a.isValidElement)(t)&&t?r===a.Fragment?\"function\"==typeof t?t({close:i}):(0,a.cloneElement)(t,{onClick:i}):React.createElement(r,Mk({},o,{onClick:i}),t):React.createElement($k,Mk({onClick:i},o))};Yk.displayName=\"Dialog.CloseButton\";var Hk=function(e){var t=e.children,n=e.className,r=Rk(e,Tk);return React.createElement(\"div\",Mk({className:oe(\"px-5\",n)},r),t)};Hk.displayName=\"Dialog.Body\";var Kk=function(e){var t=e.children,n=e.className,r=Ak(),o=r.design,i=r.handleClose;return React.createElement(\"div\",{className:oe(\"p-4 flex justify-end gap-3\",{\"bg-background-secondary\":\"footer-divided\"===o},n)},t?\"function\"==typeof t?t({close:i}):t:null)};Kk.displayName=\"Dialog.Footer\";var qk=Object.assign(Fk,{Panel:zk,Backdrop:Bk,Title:Vk,Description:Uk,CloseButton:Yk,Header:Wk,Body:Hk,Footer:Kk}),Gk=[\"children\",\"gap\",\"className\"];function Xk(){return Xk=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Xk.apply(null,arguments)}var Zk=function(e){var t=e.children,n=e.gap,r=void 0===n?\"lg\":n,o=e.className,i=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Gk);return l().createElement(\"div\",Xk({className:oe(\"w-full box-border flex items-center justify-between bg-background-primary p-5 min-h-16\",se(r),o)},i),t)};Zk.displayName=\"Topbar\";var Jk=function(e){var t=e.gap,n=void 0===t?\"sm\":t,r=e.children,o=e.className;return l().createElement(\"div\",{className:oe(\"flex items-center\",se(n),o)},r)};Jk.displayName=\"Topbar.Left\";var Qk=function(e){var t,n=e.gap,r=void 0===n?\"md\":n,o=e.children,i=e.align,s=void 0===i?\"center\":i,a=e.className,c=null===(t={left:\"justify-start\",center:\"justify-center\",right:\"justify-end\"})||void 0===t?void 0:t[s];return l().createElement(\"div\",{className:oe(\"flex items-center grow\",se(r),c,a)},o)};Qk.displayName=\"Topbar.Middle\";var eE=function(e){var t=e.gap,n=void 0===t?\"sm\":t,r=e.children,o=e.className;return l().createElement(\"div\",{className:oe(\"flex items-center\",se(n),o)},r)};eE.displayName=\"Topbar.Right\";var tE=function(e){var t=e.children,n=e.className;return l().createElement(\"div\",{className:oe(\"flex items-center [&>svg]:block h-full\",n)},t)};tE.displayName=\"Topbar.Item\";var nE=Object.assign(Zk,{Left:Jk,Middle:Qk,Right:eE,Item:tE}),rE={sm:\"text-xs [&>svg]:size-4 rounded\",md:\"text-sm [&>svg]:size-5 rounded-md\",lg:\"text-base [&>svg]:size-6 rounded-md\"},oE={input:{sm:\"py-1.5 px-2 rounded\",md:\"p-2.5 rounded-md\",lg:\"p-3 rounded-md\"},content:{sm:\"p-1.5\",md:\"p-1.5\",lg:\"p-2\"},title:{sm:\"p-2 text-xs\",md:\"p-2 text-sm\",lg:\"p-2 text-sm\"},item:{sm:\"text-sm text-text-secondary rounded\",md:\"text-base text-text-secondary rounded-md\",lg:\"text-base text-text-secondary rounded-md\"},icon:{sm:\"p-1 text-sm [&>svg]:size-4 text-icon-secondary\",md:\"p-2 text-base [&>svg]:size-5 text-icon-secondary\",lg:\"p-2 text-base [&>svg]:size-5 text-icon-secondary\"},dialog:{sm:\"mt-1 rounded-md\",md:\"mt-1.5 rounded-lg\",lg:\"mt-1.5 rounded-lg\"},slashIcon:{sm:\"px-2 py-0.5\",md:\"px-3 py-1\",lg:\"px-3.5 py-1\"}},iE={primary:\"bg-field-primary-background outline outline-1 outline-field-border hover:outline-border-strong\",secondary:\"bg-field-secondary-background outline outline-1 outline-field-border hover:outline-border-strong\",ghost:\"bg-field-secondary-background outline outline-1 outline-transparent\"},sE={ghost:\"cursor-not-allowed text-text-disabled placeholder:text-text-disabled\",primary:\"border-border-disabled hover:border-border-disabled bg-field-background-disabled cursor-not-allowed text-text-disabled placeholder:text-text-disabled\",secondary:\"border-border-disabled hover:border-border-disabled cursor-not-allowed text-text-disabled placeholder:text-text-disabled\"};function aE(e){return aE=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},aE(e)}var lE=[\"className\",\"size\",\"open\",\"onOpenChange\",\"loading\"],cE=[\"className\",\"type\",\"placeholder\",\"variant\",\"disabled\",\"onChange\"],uE=[\"className\",\"dropdownPortalRoot\",\"dropdownPortalId\",\"children\"],dE=[\"className\",\"icon\",\"children\"],fE=[\"className\"];function mE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function hE(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?mE(Object(n),!0).forEach((function(t){pE(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mE(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function pE(e,t,n){return(t=function(e){var t=function(e){if(\"object\"!=aE(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,\"string\");if(\"object\"!=aE(n))return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"==aE(t)?t:t+\"\"}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function gE(){return gE=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},gE.apply(null,arguments)}function yE(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return vE(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?vE(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function vE(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function bE(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var xE=(0,a.createContext)(),wE=function(){return(0,a.useContext)(xE)},SE=(0,a.forwardRef)((function(e,t){var n=e.className,r=e.size,o=void 0===r?\"sm\":r,i=e.open,s=void 0!==i&&i,l=e.onOpenChange,c=void 0===l?function(){}:l,u=e.loading,d=void 0!==u&&u,f=bE(e,lE),m=yE((0,a.useState)(\"\"),2),h=m[0],p=m[1],g=yE((0,a.useState)(null!=d&&d),2),y=g[0],v=g[1],b=Qr({open:s,onOpenChange:c,placement:\"bottom-start\",whileElementsMounted:bn,middleware:[Dn(\"sm\"===o?4:6),An({padding:10}),In({apply:function(e){var t=e.rects,n=e.elements,r=e.availableHeight;n.floating.style.maxHeight=\"\".concat(r,\"px\"),n.floating.style.width=\"\".concat(t.reference.width,\"px\"),n.floating.style.fontFamily=window.getComputedStyle(n.reference).fontFamily}})]}),x=b.refs,w=b.floatingStyles,S=b.context,k=ro([Jr(S)]),E=k.getReferenceProps,C=k.getFloatingProps;return React.createElement(xE.Provider,{value:{size:o,open:s,onOpenChange:c,refs:x,floatingStyles:w,context:S,getReferenceProps:E,getFloatingProps:C,searchTerm:h,setSearchTerm:p,isLoading:y,setIsLoading:v}},React.createElement(\"div\",gE({className:oe(\"searchbox-wrapper box-border relative w-full\",n)},f,{ref:t})))}));SE.displayName=\"SearchBox\";var kE=(0,a.forwardRef)((function(e,t){var n=e.className,r=e.type,o=void 0===r?\"text\":r,i=e.placeholder,s=void 0===i?\"Search...\":i,a=e.variant,l=void 0===a?\"primary\":a,c=e.disabled,u=void 0!==c&&c,d=e.onChange,f=void 0===d?function(){}:d,m=bE(e,cE),h=wE(),p=h.size,g=h.onOpenChange,y=h.refs,v=h.getReferenceProps,b=h.searchTerm,x=h.setSearchTerm,w=\"lg\"===p?\"sm\":\"xs\";return React.createElement(\"div\",gE({tabIndex:0,ref:y.setReference,className:oe(\"w-full group relative flex justify-center items-center gap-1.5 focus-within:z-10 transition-colors ease-in-out duration-150\",iE[l],oE.input[p],u?sE[l]:\"focus-within:ring-2 focus-within:ring-focus focus-within:ring-offset-2 focus-within:border-focus-border focus-within:hover:border-focus-border\")},v),React.createElement(\"span\",{className:oe(rE[p],u?\"text-icon-disabled\":\"text-icon-secondary group-hover:text-icon-primary group-focus-within:text-icon-primary\",\"flex justify-center items-center\")},React.createElement(um,null)),React.createElement(\"input\",gE({type:o,ref:t,className:oe(rE[p],\"flex-grow font-medium bg-transparent border-none outline-none border-transparent focus:ring-0 py-0\",u?sE[l]:[\"text-field-placeholder focus-within:text-field-input group-hover:text-field-input\",\"placeholder:text-field-placeholder\"],n),disabled:u,value:b,onChange:function(e){var t=e.target.value;x(t),f(t),\"function\"==typeof g&&(t.trim()?g(!0):g(!1))},placeholder:s},m)),React.createElement(Zo,{label:\"/\",size:w,type:\"rounded\",variant:\"neutral\"}))}));kE.displayName=\"SearchBox.Input\";var EE=function(e){var t=e.className,n=e.dropdownPortalRoot,r=void 0===n?null:n,o=e.dropdownPortalId,i=void 0===o?\"\":o,s=e.children,a=bE(e,uE),l=wE(),c=l.size,u=l.open,d=l.refs,f=l.floatingStyles,m=l.getFloatingProps;return u?React.createElement(Ir,{id:i,root:r},React.createElement(\"div\",gE({ref:d.setFloating,style:hE({},f),className:oe(\"bg-background-primary rounded-md border border-solid border-border-subtle shadow-soft-shadow-lg overflow-y-auto text-wrap\",oE.dialog[c],t)},m(),a),s)):null};EE.displayName=\"SearchBox.Content\";var CE=function(e){var t=e.filter,n=void 0===t||t,r=e.children,o=wE(),i=o.searchTerm,s=o.isLoading;if(!n)return React.createElement(\"div\",null,r);var l=a.Children.toArray(r).map((function(e){if(e.type===PE){var t=a.Children.toArray(e.props.children).filter((function(e){return e.props.children.toLowerCase().includes(i.toLowerCase())}));return t.length>0?(0,a.cloneElement)(e,{children:t}):null}return e})).filter(Boolean);return s?React.createElement(NE,null):React.createElement(\"div\",null,l.some((function(e){return e.type!==TE}))?l:React.createElement(_E,null))};CE.displayName=\"SearchBox.List\";var _E=function(e){var t=e.children,n=void 0===t?\"No results found.\":t,r=wE().size;return React.createElement(\"div\",{className:oe(\"flex justify-center items-center\",oE.item[r],\"text-text-tertiary p-4\")},n)};_E.displayName=\"SearchBox.Empty\";var PE=function(e){var t=e.heading,n=e.children,r=wE().size;return React.createElement(\"div\",{className:oe(oE.content[r],oE.item[r])},t&&React.createElement(\"div\",{className:oe(oE.title[r],\"text-text-secondary\")},t),n)};PE.displayName=\"SearchBox.Group\";var OE=(0,a.forwardRef)((function(e,t){var n=e.className,r=e.icon,o=e.children,i=bE(e,dE),s=wE().size;return React.createElement(\"div\",gE({ref:t,className:oe(\"flex items-center justify-start gap-1 p-1 hover:bg-background-secondary focus:bg-background-secondary cursor-pointer\",oE.item[s])},i),r&&React.createElement(\"span\",{className:oe(oE.icon[s],\"flex items-center justify-center\")},r),React.createElement(\"span\",{className:oe(\"flex-grow p-1 font-normal cursor-pointer\",oE.item[s],n)},o))}));OE.displayName=\"SearchBox.Item\";var NE=function(e){var t=e.loadingIcon,n=void 0===t?React.createElement(bi,null):t,r=wE().size,o=(0,a.cloneElement)(n,{size:r});return React.createElement(\"div\",{className:oe(\"flex justify-center p-4\",rE[r],oE.item[r])},o)};NE.displayName=\"SearchBox.Loading\";var TE=(0,a.forwardRef)((function(e,t){var n=e.className,r=bE(e,fE);return React.createElement(\"hr\",gE({ref:t,className:oe(\"border-0 border-t border-border-subtle border-solid m-0\",n)},r))}));TE.displayName=\"SearchBox.Separator\",SE.Input=kE,SE.Loading=NE,SE.Separator=TE,SE.Content=EE,SE.List=CE,SE.Empty=_E,SE.Group=PE,SE.Item=OE;var ME=SE;function RE(e){return RE=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},RE(e)}var DE=[\"children\",\"className\"],jE=[\"children\"],AE=[\"children\",\"as\"];function IE(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function LE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function FE(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?LE(Object(n),!0).forEach((function(t){zE(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):LE(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function zE(e,t,n){return(t=function(e){var t=function(e){if(\"object\"!=RE(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,\"string\");if(\"object\"!=RE(n))return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"==RE(t)?t:t+\"\"}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function BE(){return BE=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},BE.apply(null,arguments)}function WE(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var VE=(0,a.createContext)(),UE=function(e){var t=e.placement,n=void 0===t?\"bottom\":t,r=e.offset,o=void 0===r?10:r,i=e.boundary,s=void 0===i?\"clippingAncestors\":i,c=e.dropdownPortalRoot,u=void 0===c?null:c,d=e.dropdownPortalId,f=void 0===d?\"\":d,m=e.children,h=e.className,p=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return WE(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?WE(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}((0,a.useState)(!1),2),g=p[0],y=p[1],v=Qr({open:g,onOpenChange:y,placement:n,strategy:\"absolute\",middleware:[Dn(o),An({boundary:s}),jn({boundary:s})],whileElementsMounted:bn}),b=v.refs,x=v.floatingStyles,w=v.context,S=ro([qr(w),Jr(w),fo(w,{role:\"menu\"})]),k=S.getReferenceProps,E=S.getFloatingProps,C=po(w,{duration:150,initial:{opacity:0,scale:.95},open:{opacity:1,scale:1},close:{opacity:0,scale:.95}}),_=C.isMounted,P=C.styles;return l().createElement(VE.Provider,{value:{handleClose:function(){return y(!1)}}},l().createElement(\"div\",{className:oe(\"relative inline-block\",h)},l().createElement(\"div\",BE({ref:b.setReference,onClick:function(){return y((function(e){return!e}))},role:\"button\",tabIndex:0},k(),{className:\"cursor-pointer\"}),l().Children.map(m,(function(e){var t;return\"DropdownMenu.Trigger\"===(null===(t=e.type)||void 0===t?void 0:t.displayName)?e:null}))),_&&l().createElement(Ir,{id:f,root:u},l().createElement(\"div\",BE({ref:b.setFloating,style:FE(FE({},x),P)},E()),l().Children.map(m,(function(e){var t;return\"DropdownMenu.Content\"===(null===(t=e.type)||void 0===t?void 0:t.displayName)?e:null}))))))};UE.displayName=\"DropdownMenu\";var $E=l().forwardRef((function(e,t){var n=e.children,r=e.className;return l().createElement(\"div\",{ref:t,role:\"button\",tabIndex:0,className:r},n)}));$E.displayName=\"DropdownMenu.Trigger\";var YE=function(e){var t=e.children,n=e.className,r=IE(e,DE);return l().createElement(\"div\",{className:oe(\"border border-solid border-border-subtle rounded-md shadow-lg overflow-hidden\",n)},l().createElement(ZS,r,t))};YE.displayName=\"DropdownMenu.Content\";var HE=function(e){var t=e.children,n=IE(e,jE);return l().createElement(ZS.List,n,t)};HE.displayName=\"DropdownMenu.List\";var KE=function(e){var t,n=e.children,r=e.as,o=void 0===r?ZS.Item:r,i=IE(e,AE),s=(0,a.useContext)(VE).handleClose;return n?o===a.Fragment?(0,a.cloneElement)(n,{onClick:ie(null===(t=n.props)||void 0===t?void 0:t.onClick,s)}):l().createElement(o,BE({},i,{className:\"px-2\",onClick:ie(i.onClick,s)}),n):null};KE.displayName=\"DropdownMenu.Item\";var qE=function(e){var t=BE({},(function(e){if(null==e)throw new TypeError(\"Cannot destructure \"+e)}(e),e));return l().createElement(ZS.Separator,t)};qE.displayName=\"DropdownMenu.Separator\";var GE=Object.assign(UE,{Trigger:$E,Content:YE,List:HE,Item:KE,Separator:qE});function XE(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var ZE=(0,a.createContext)(),JE=function(){return(0,a.useContext)(ZE)},QE=Object.assign((function(e){var t=e.open,n=e.setOpen,r=e.children,o=e.trigger,i=e.className,s=e.exitOnClickOutside,l=void 0!==s&&s,c=e.exitOnEsc,u=void 0===c||c,d=e.design,f=void 0===d?\"simple\":d,m=e.position,h=void 0===m?\"right\":m,p=e.transitionDuration,g=void 0===p?.2:p,y=e.scrollLock,v=void 0===y||y,b=void 0!==t&&void 0!==n,x=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return XE(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?XE(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}((0,a.useState)(!1),2),w=x[0],S=x[1],k=(0,a.useRef)(null),E=(0,a.useRef)(null),C=(0,a.useMemo)((function(){return b?t:w}),[t,w]),_=(0,a.useMemo)((function(){return b?n:S}),[S,S]),P=function(){C||_(!0)},O=function(){C&&_(!1)},N=(0,a.useCallback)((function(){return(0,a.isValidElement)(o)?(0,a.cloneElement)(o,{onClick:ie(P,o.props.onClick)}):\"function\"==typeof o?o({onClick:P}):null}),[o,P,O]),T=function(e){\"Escape\"===e.key&&u&&O()},M=function(e){l&&k.current&&!k.current.contains(e.target)&&O()};return(0,a.useEffect)((function(){return window.addEventListener(\"keydown\",T),document.addEventListener(\"mousedown\",M),function(){window.removeEventListener(\"keydown\",T),document.removeEventListener(\"mousedown\",M)}}),[C]),(0,a.useEffect)((function(){if(v)return C&&(document.querySelector(\"html\").style.overflow=\"hidden\"),function(){document.querySelector(\"html\").style.overflow=\"\"}}),[C]),React.createElement(React.Fragment,null,N(),React.createElement(ZE.Provider,{value:{open:C,setOpen:_,handleClose:O,design:f,position:h,drawerContainerRef:E,drawerRef:k,transitionDuration:{duration:g}}},React.createElement(\"div\",{className:oe(\"fixed z-999999 w-0 h-0 overflow-visible\",i),role:\"dialog\",ref:E},r)))}),{displayName:\"Drawer\"}),eC={left:{open:{x:0},exit:{x:\"-100%\"}},right:{open:{x:0},exit:{x:\"100%\"}}},tC=Object.assign((function(e){var t=e.children,n=e.className,r=JE(),o=r.open,i=r.position,s=r.handleClose,a=r.drawerRef,l=r.transitionDuration;return React.createElement(oh,null,o&&React.createElement(\"div\",{className:\"fixed inset-0\"},React.createElement(\"div\",{className:oe(\"flex items-center justify-center h-full\",{\"justify-start\":\"left\"===i,\"justify-end\":\"right\"===i})},React.createElement(em.div,{ref:a,className:oe(\"flex flex-col gap-5 w-120 h-full bg-background-primary shadow-2xl my-5 overflow-hidden\",n),initial:\"exit\",animate:\"open\",exit:\"exit\",variants:eC[i],transition:l},\"function\"==typeof t?t({close:s}):t))))}),{displayName:\"Drawer.Panel\"}),nC=[\"children\",\"className\"];function rC(){return rC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},rC.apply(null,arguments)}var oC=Object.assign((function(e){var t=e.children,n=e.className,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,nC);return React.createElement(\"div\",rC({className:oe(\"space-y-2 px-5 pt-5 pb-1\",n)},r),t)}),{displayName:\"Drawer.Header\"}),iC=[\"children\",\"as\",\"className\"];function sC(){return sC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},sC.apply(null,arguments)}var aC=Object.assign((function(e){var t=e.children,n=e.as,r=void 0===n?\"h3\":n,o=e.className,i=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,iC);return React.createElement(r,sC({className:oe(\"text-base font-semibold text-text-primary m-0 p-0\",o)},i),t)}),{displayName:\"Drawer.Title\"}),lC=[\"children\",\"as\",\"className\"];function cC(){return cC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},cC.apply(null,arguments)}var uC=Object.assign((function(e){var t=e.children,n=e.as,r=void 0===n?\"p\":n,o=e.className,i=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,lC);return React.createElement(r,cC({className:oe(\"text-sm font-normal text-text-secondary my-0 ml-0 mr-1 p-0\",o)},i),t)}),{displayName:\"Drawer.Description\"}),dC=[\"children\",\"className\"];function fC(){return fC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},fC.apply(null,arguments)}var mC=Object.assign((function(e){var t=e.children,n=e.className,r=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,dC);return React.createElement(\"div\",fC({className:oe(\"px-5 flex flex-col flex-1 overflow-y-auto overflow-x-hidden\",n)},r),t)}),{displayName:\"Drawer.Body\"}),hC=Object.assign((function(e){var t=e.children,n=e.className,r=JE(),o=r.design,i=r.handleClose;return React.createElement(\"div\",{className:oe(\"p-5 flex justify-end gap-3 mt-auto\",{\"bg-background-secondary\":\"footer-divided\"===o},n)},t?\"function\"==typeof t?t({close:i}):t:null)}),{displayName:\"Drawer.Footer\"}),pC=[\"className\"],gC=[\"children\",\"as\"];function yC(){return yC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},yC.apply(null,arguments)}function vC(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var bC=function(e){var t=e.className,n=vC(e,pC);return React.createElement(\"button\",yC({className:oe(\"bg-transparent inline-flex justify-center items-center border-0 p-1 m-0 cursor-pointer focus:outline-none outline-none shadow-none\",t),\"aria-label\":\"Close drawer\"},n),React.createElement(qo,{className:\"size-4 text-text-primary shrink-0\"}))},xC=Object.assign((function(e){var t=e.children,n=e.as,r=void 0===n?a.Fragment:n,o=vC(e,gC),i=JE().handleClose;return(0,a.isValidElement)(t)&&t?r===a.Fragment?\"function\"==typeof t?t({close:i}):(0,a.cloneElement)(t,{onClick:i}):React.createElement(r,yC({},o,{onClick:i}),t):React.createElement(bC,yC({onClick:i},o))}),{displayName:\"Drawer.CloseButton\"}),wC=[\"className\"];function SC(){return SC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},SC.apply(null,arguments)}var kC={open:{opacity:1},exit:{opacity:0}},EC=Object.assign((function(e){var t=e.className,n=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,wC),r=JE(),o=r.open,i=r.drawerContainerRef,s=r.transitionDuration;return i.current&&(0,tn.createPortal)(React.createElement(oh,null,o&&React.createElement(em.div,SC({className:oe(\"fixed inset-0 -z-10 bg-background-inverse/90 backdrop-blur-sm\",t)},n,{initial:\"exit\",animate:\"open\",exit:\"exit\",variants:kC,transition:s}))),i.current)}),{displayName:\"Drawer.Backdrop\"}),CC=Object.assign(QE,{Panel:tC,Header:oC,Title:aC,Description:uC,Body:mC,CloseButton:xC,Footer:hC,Backdrop:EC});const _C=ke(\"ChevronLeft\",[[\"path\",{d:\"m15 18-6-6 6-6\",key:\"1wnfg3\"}]]);var PC={xs:{general:\"px-2 text-xs\",ellipse:\"px-1.5 text-xs\",icon:\"px-1 text-xs\"},sm:{general:\"px-3 text-xs\",ellipse:\"px-2.5 text-xs\",icon:\"px-2 text-xs\"},md:{general:\"px-4 text-sm\",ellipse:\"px-2.5 text-sm\",icon:\"px-2.5 text-sm\"},lg:{general:\"px-5 text-base\",ellipse:\"px-4 text-base\",icon:\"px-3 text-base\"}},OC=\"group disabled:border-field-border-disabled opacity-50\",NC=[\"size\",\"disabled\",\"children\",\"className\"],TC=[\"className\"],MC=[\"isActive\",\"className\",\"children\"],RC=[\"icon\",\"isActive\",\"tag\",\"children\",\"className\"],DC=[\"icon\"],jC=[\"icon\"];function AC(){return AC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},AC.apply(null,arguments)}function IC(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var LC=(0,a.createContext)(),FC=function(){return(0,a.useContext)(LC)},zC=function(e){var t=e.size,n=void 0===t?\"sm\":t,r=e.disabled,o=void 0!==r&&r,i=e.children,s=e.className,a=IC(e,NC);return React.createElement(LC.Provider,{value:{size:n,disabled:o}},React.createElement(\"nav\",AC({role:\"navigation\",\"aria-label\":\"pagination\",className:oe(\"flex w-full justify-center box-border m-0\",s)},a),i))};zC.displayName=\"Pagination\";var BC=(0,a.forwardRef)((function(e,t){var n=e.className,r=IC(e,TC);return React.createElement(\"ul\",AC({ref:t,className:oe(\"m-0 p-0 w-full flex justify-center flex-row items-center gap-1\",\"list-none\",n)},r))}));BC.displayName=\"Pagination.Content\";var WC=(0,a.forwardRef)((function(e,t){var n=e.isActive,r=void 0!==n&&n,o=e.className,i=e.children,s=IC(e,MC),a=FC().disabled;return React.createElement(\"li\",{ref:t,tabIndex:0,className:oe(\"flex\",a&&OC)},React.createElement(VC,AC({isActive:r,disabled:a,className:o},s),i))}));WC.displayName=\"Pagination.Item\";var VC=function(e){var t=e.icon,n=void 0===t?null:t,r=e.isActive,o=void 0!==r&&r,i=e.tag,s=void 0===i?\"a\":i,a=e.children,l=e.className,c=IC(e,RC),u=FC(),d=u.size,f=u.disabled;return React.createElement(de,AC({tag:s,size:d,variant:\"ghost\",className:oe(\"no-underline bg-transparent p-0 m-0 border-none\",\"flex justify-center items-center rounded text-button-secondary\",\"focus:outline focus:outline-1 focus:outline-border-subtle focus:bg-button-tertiary-hover\",PC[d].general,!f&&o&&\"text-button-primary active:text-button-primary bg-brand-background-50\",f&&[OC,\"group-disabled:text-icon-disabled\",\"group-disabled:text-field-color-disabled\",\"focus:ring-transparent cursor-not-allowed\"],l),disabled:f,icon:n},c),a)},UC=function(e){var t=e.icon,n=void 0===t?React.createElement(_C,null):t,r=IC(e,DC),o=FC(),i=o.size,s=o.disabled;return React.createElement(\"li\",{tabIndex:0,className:oe(\"flex\",s&&OC)},React.createElement(VC,AC({icon:n,\"aria-label\":\"Go to previous page\",className:PC[i].icon},r)))};UC.displayName=\"Pagination.Previous\";var $C=function(e){var t=e.icon,n=void 0===t?React.createElement(uk,null):t,r=IC(e,jC),o=FC(),i=o.size,s=o.disabled;return React.createElement(\"li\",{tabIndex:0,className:oe(\"flex\",s&&OC)},React.createElement(VC,AC({icon:n,\"aria-label\":\"Go to next page\",className:PC[i].icon},r)))};$C.displayName=\"Pagination.Next\";var YC=function(e){var t=FC(),n=t.size,r=t.disabled;return React.createElement(\"li\",{tabIndex:0,className:oe(\"flex\",r&&OC)},React.createElement(\"span\",AC({className:oe(PC[n].ellipse,r&&OC)},e),\"...\"))};YC.displayName=\"Pagination.Ellipsis\",zC.Content=BC,zC.Item=WC,zC.Previous=UC,zC.Next=$C,zC.Ellipsis=YC;var HC,KC,qC,GC=zC;function XC(e){return a.createElement(\"button\",{...e})}function ZC(e){return a.createElement(\"span\",{...e})}function JC(e){const{size:t=24,orientation:n=\"left\",className:r}=e;return a.createElement(\"svg\",{className:r,width:t,height:t,viewBox:\"0 0 24 24\"},\"up\"===n&&a.createElement(\"polygon\",{points:\"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28\"}),\"down\"===n&&a.createElement(\"polygon\",{points:\"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72\"}),\"left\"===n&&a.createElement(\"polygon\",{points:\"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20\"}),\"right\"===n&&a.createElement(\"polygon\",{points:\"8 18.612 14.1888889 12.5 8 6.37733333 9.91111111 4.5 18 12.5 9.91111111 20.5\"}))}function QC(e){const{day:t,modifiers:n,...r}=e;return a.createElement(\"td\",{...r})}function e_(e){const{day:t,modifiers:n,...r}=e,o=a.useRef(null);return a.useEffect((()=>{n.focused&&o.current?.focus()}),[n.focused]),a.createElement(\"button\",{ref:o,...r})}function t_(e){const{options:t,className:n,components:r,classNames:o,...i}=e,s=[o[HC.Dropdown],n].join(\" \"),l=t?.find((({value:e})=>e===i.value));return a.createElement(\"span\",{\"data-disabled\":i.disabled,className:o[HC.DropdownRoot]},a.createElement(r.Select,{className:s,...i},t?.map((({value:e,label:t,disabled:n})=>a.createElement(r.Option,{key:e,value:e,disabled:n},t)))),a.createElement(\"span\",{className:o[HC.CaptionLabel],\"aria-hidden\":!0},l?.label,a.createElement(r.Chevron,{orientation:\"down\",size:18,className:o[HC.Chevron]})))}function n_(e){return a.createElement(\"div\",{...e})}function r_(e){return a.createElement(\"div\",{...e})}function o_(e){const{calendarMonth:t,displayIndex:n,...r}=e;return a.createElement(\"div\",{...r},e.children)}function i_(e){const{calendarMonth:t,displayIndex:n,...r}=e;return a.createElement(\"div\",{...r})}function s_(e){return a.createElement(\"table\",{...e})}function a_(e){return a.createElement(\"div\",{...e})}!function(e){e.Root=\"root\",e.Chevron=\"chevron\",e.Day=\"day\",e.DayButton=\"day_button\",e.CaptionLabel=\"caption_label\",e.Dropdowns=\"dropdowns\",e.Dropdown=\"dropdown\",e.DropdownRoot=\"dropdown_root\",e.Footer=\"footer\",e.MonthGrid=\"month_grid\",e.MonthCaption=\"month_caption\",e.MonthsDropdown=\"months_dropdown\",e.Month=\"month\",e.Months=\"months\",e.Nav=\"nav\",e.NextMonthButton=\"button_next\",e.PreviousMonthButton=\"button_previous\",e.Week=\"week\",e.Weeks=\"weeks\",e.Weekday=\"weekday\",e.Weekdays=\"weekdays\",e.WeekNumber=\"week_number\",e.WeekNumberHeader=\"week_number_header\",e.YearsDropdown=\"years_dropdown\"}(HC||(HC={})),function(e){e.disabled=\"disabled\",e.hidden=\"hidden\",e.outside=\"outside\",e.focused=\"focused\",e.today=\"today\"}(KC||(KC={})),function(e){e.range_end=\"range_end\",e.range_middle=\"range_middle\",e.range_start=\"range_start\",e.selected=\"selected\"}(qC||(qC={}));const l_=(0,a.createContext)(void 0);function c_(){const e=(0,a.useContext)(l_);if(void 0===e)throw new Error(\"useDayPicker() must be used within a custom component.\");return e}function u_(e){const{components:t}=c_();return a.createElement(t.Dropdown,{...e})}function d_(e){const{onPreviousClick:t,onNextClick:n,previousMonth:r,nextMonth:o,...i}=e,{components:s,classNames:l,labels:{labelPrevious:c,labelNext:u}}=c_();return a.createElement(\"nav\",{...i},a.createElement(s.PreviousMonthButton,{type:\"button\",className:l[HC.PreviousMonthButton],tabIndex:r?void 0:-1,disabled:!r||void 0,\"aria-label\":c(r),onClick:e.onPreviousClick},a.createElement(s.Chevron,{disabled:!r||void 0,className:l[HC.Chevron],orientation:\"left\"})),a.createElement(s.NextMonthButton,{type:\"button\",className:l[HC.NextMonthButton],tabIndex:o?void 0:-1,disabled:!o||void 0,\"aria-label\":u(o),onClick:e.onNextClick},a.createElement(s.Chevron,{disabled:!o||void 0,orientation:\"right\",className:l[HC.Chevron]})))}function f_(e){const{components:t}=c_();return a.createElement(t.Button,{...e})}function m_(e){return a.createElement(\"option\",{...e})}function h_(e){const{components:t}=c_();return a.createElement(t.Button,{...e})}function p_(e){return a.createElement(\"div\",{...e})}function g_(e){return a.createElement(\"select\",{...e})}function y_(e){const{week:t,...n}=e;return a.createElement(\"tr\",{...n})}function v_(e){return a.createElement(\"th\",{...e})}function b_(e){return a.createElement(\"thead\",null,a.createElement(\"tr\",{...e}))}function x_(e){const{week:t,...n}=e;return a.createElement(\"th\",{...n})}function w_(e){return a.createElement(\"th\",{...e})}function S_(e){return a.createElement(\"tbody\",{...e})}function k_(e){const{components:t}=c_();return a.createElement(t.Dropdown,{...e})}Math.pow(10,8);const E_=6048e5,C_=864e5,P_=Symbol.for(\"constructDateFrom\");function O_(e,t){return\"function\"==typeof e?e(t):e&&\"object\"==typeof e&&P_ in e?e[P_](t):e instanceof Date?new e.constructor(t):new Date(t)}function N_(e,t){return O_(t||e,e)}function T_(e,t,n){const r=N_(e,n?.in);return isNaN(t)?O_(n?.in||e,NaN):t?(r.setDate(r.getDate()+t),r):r}function M_(e,t,n){const r=N_(e,n?.in);if(isNaN(t))return O_(n?.in||e,NaN);if(!t)return r;const o=r.getDate(),i=O_(n?.in||e,r.getTime());return i.setMonth(r.getMonth()+t+1,0),o>=i.getDate()?i:(r.setFullYear(i.getFullYear(),i.getMonth(),o),r)}function R_(e,t,n){return T_(e,7*t,n)}function D_(e){const t=N_(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function j_(e,...t){const n=O_.bind(null,e||t.find((e=>\"object\"==typeof e)));return t.map(n)}function A_(e,t){const n=N_(e,t?.in);return n.setHours(0,0,0,0),n}function I_(e,t,n){const[r,o]=j_(n?.in,e,t),i=A_(r),s=A_(o),a=+i-D_(i),l=+s-D_(s);return Math.round((a-l)/C_)}let L_={};function F_(){return L_}function z_(e,t){const n=F_(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,o=N_(e,t?.in),i=o.getDay(),s=6+(i<r?-7:0)-(i-r);return o.setDate(o.getDate()+s),o.setHours(23,59,59,999),o}function B_(e,t){const n=N_(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}const W_={lessThanXSeconds:{one:\"less than a second\",other:\"less than {{count}} seconds\"},xSeconds:{one:\"1 second\",other:\"{{count}} seconds\"},halfAMinute:\"half a minute\",lessThanXMinutes:{one:\"less than a minute\",other:\"less than {{count}} minutes\"},xMinutes:{one:\"1 minute\",other:\"{{count}} minutes\"},aboutXHours:{one:\"about 1 hour\",other:\"about {{count}} hours\"},xHours:{one:\"1 hour\",other:\"{{count}} hours\"},xDays:{one:\"1 day\",other:\"{{count}} days\"},aboutXWeeks:{one:\"about 1 week\",other:\"about {{count}} weeks\"},xWeeks:{one:\"1 week\",other:\"{{count}} weeks\"},aboutXMonths:{one:\"about 1 month\",other:\"about {{count}} months\"},xMonths:{one:\"1 month\",other:\"{{count}} months\"},aboutXYears:{one:\"about 1 year\",other:\"about {{count}} years\"},xYears:{one:\"1 year\",other:\"{{count}} years\"},overXYears:{one:\"over 1 year\",other:\"over {{count}} years\"},almostXYears:{one:\"almost 1 year\",other:\"almost {{count}} years\"}};function V_(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const U_={date:V_({formats:{full:\"EEEE, MMMM do, y\",long:\"MMMM do, y\",medium:\"MMM d, y\",short:\"MM/dd/yyyy\"},defaultWidth:\"full\"}),time:V_({formats:{full:\"h:mm:ss a zzzz\",long:\"h:mm:ss a z\",medium:\"h:mm:ss a\",short:\"h:mm a\"},defaultWidth:\"full\"}),dateTime:V_({formats:{full:\"{{date}} 'at' {{time}}\",long:\"{{date}} 'at' {{time}}\",medium:\"{{date}}, {{time}}\",short:\"{{date}}, {{time}}\"},defaultWidth:\"full\"})},$_={lastWeek:\"'last' eeee 'at' p\",yesterday:\"'yesterday at' p\",today:\"'today at' p\",tomorrow:\"'tomorrow at' p\",nextWeek:\"eeee 'at' p\",other:\"P\"};function Y_(e){return(t,n)=>{let r;if(\"formatting\"===(n?.context?String(n.context):\"standalone\")&&e.formattingValues){const t=e.defaultFormattingWidth||e.defaultWidth,o=n?.width?String(n.width):t;r=e.formattingValues[o]||e.formattingValues[t]}else{const t=e.defaultWidth,o=n?.width?String(n.width):e.defaultWidth;r=e.values[o]||e.values[t]}return r[e.argumentCallback?e.argumentCallback(t):t]}}const H_={ordinalNumber:(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+\"st\";case 2:return n+\"nd\";case 3:return n+\"rd\"}return n+\"th\"},era:Y_({values:{narrow:[\"B\",\"A\"],abbreviated:[\"BC\",\"AD\"],wide:[\"Before Christ\",\"Anno Domini\"]},defaultWidth:\"wide\"}),quarter:Y_({values:{narrow:[\"1\",\"2\",\"3\",\"4\"],abbreviated:[\"Q1\",\"Q2\",\"Q3\",\"Q4\"],wide:[\"1st quarter\",\"2nd quarter\",\"3rd quarter\",\"4th quarter\"]},defaultWidth:\"wide\",argumentCallback:e=>e-1}),month:Y_({values:{narrow:[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],abbreviated:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],wide:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]},defaultWidth:\"wide\"}),day:Y_({values:{narrow:[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],short:[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"],abbreviated:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],wide:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"]},defaultWidth:\"wide\"}),dayPeriod:Y_({values:{narrow:{am:\"a\",pm:\"p\",midnight:\"mi\",noon:\"n\",morning:\"morning\",afternoon:\"afternoon\",evening:\"evening\",night:\"night\"},abbreviated:{am:\"AM\",pm:\"PM\",midnight:\"midnight\",noon:\"noon\",morning:\"morning\",afternoon:\"afternoon\",evening:\"evening\",night:\"night\"},wide:{am:\"a.m.\",pm:\"p.m.\",midnight:\"midnight\",noon:\"noon\",morning:\"morning\",afternoon:\"afternoon\",evening:\"evening\",night:\"night\"}},defaultWidth:\"wide\",formattingValues:{narrow:{am:\"a\",pm:\"p\",midnight:\"mi\",noon:\"n\",morning:\"in the morning\",afternoon:\"in the afternoon\",evening:\"in the evening\",night:\"at night\"},abbreviated:{am:\"AM\",pm:\"PM\",midnight:\"midnight\",noon:\"noon\",morning:\"in the morning\",afternoon:\"in the afternoon\",evening:\"in the evening\",night:\"at night\"},wide:{am:\"a.m.\",pm:\"p.m.\",midnight:\"midnight\",noon:\"noon\",morning:\"in the morning\",afternoon:\"in the afternoon\",evening:\"in the evening\",night:\"at night\"}},defaultFormattingWidth:\"wide\"})};function K_(e){return(t,n={})=>{const r=n.width,o=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],i=t.match(o);if(!i)return null;const s=i[0],a=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(a)?function(e){for(let t=0;t<e.length;t++)if(e[t].test(s))return t}(a):function(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&e[t].test(s))return t}(a);let c;return c=e.valueCallback?e.valueCallback(l):l,c=n.valueCallback?n.valueCallback(c):c,{value:c,rest:t.slice(s.length)}}}const q_={ordinalNumber:(G_={matchPattern:/^(\\d+)(th|st|nd|rd)?/i,parsePattern:/\\d+/i,valueCallback:e=>parseInt(e,10)},(e,t={})=>{const n=e.match(G_.matchPattern);if(!n)return null;const r=n[0],o=e.match(G_.parsePattern);if(!o)return null;let i=G_.valueCallback?G_.valueCallback(o[0]):o[0];return i=t.valueCallback?t.valueCallback(i):i,{value:i,rest:e.slice(r.length)}}),era:K_({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:\"wide\",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:\"any\"}),quarter:K_({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:\"wide\",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:\"any\",valueCallback:e=>e+1}),month:K_({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:\"wide\",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:\"any\"}),day:K_({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:\"wide\",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:\"any\"}),dayPeriod:K_({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:\"any\",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:\"any\"})};var G_;const X_={code:\"en-US\",formatDistance:(e,t,n)=>{let r;const o=W_[e];return r=\"string\"==typeof o?o:1===t?o.one:o.other.replace(\"{{count}}\",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?\"in \"+r:r+\" ago\":r},formatLong:U_,formatRelative:(e,t,n,r)=>$_[e],localize:H_,match:q_,options:{weekStartsOn:0,firstWeekContainsDate:1}};function Z_(e,t){const n=N_(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function J_(e,t){const n=F_(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,o=N_(e,t?.in),i=o.getDay(),s=(i<r?7:0)+i-r;return o.setDate(o.getDate()-s),o.setHours(0,0,0,0),o}function Q_(e,t){return J_(e,{...t,weekStartsOn:1})}function eP(e,t){const n=N_(e,t?.in),r=n.getFullYear(),o=O_(n,0);o.setFullYear(r+1,0,4),o.setHours(0,0,0,0);const i=Q_(o),s=O_(n,0);s.setFullYear(r,0,4),s.setHours(0,0,0,0);const a=Q_(s);return n.getTime()>=i.getTime()?r+1:n.getTime()>=a.getTime()?r:r-1}function tP(e,t){const n=N_(e,t?.in),r=+Q_(n)-+function(e,t){const n=eP(e,t),r=O_(t?.in||e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),Q_(r)}(n);return Math.round(r/E_)+1}function nP(e,t){const n=N_(e,t?.in),r=n.getFullYear(),o=F_(),i=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,s=O_(t?.in||e,0);s.setFullYear(r+1,0,i),s.setHours(0,0,0,0);const a=J_(s,t),l=O_(t?.in||e,0);l.setFullYear(r,0,i),l.setHours(0,0,0,0);const c=J_(l,t);return+n>=+a?r+1:+n>=+c?r:r-1}function rP(e,t){const n=N_(e,t?.in),r=+J_(n,t)-+function(e,t){const n=F_(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,o=nP(e,t),i=O_(t?.in||e,0);return i.setFullYear(o,0,r),i.setHours(0,0,0,0),J_(i,t)}(n,t);return Math.round(r/E_)+1}function oP(e,t){return(e<0?\"-\":\"\")+Math.abs(e).toString().padStart(t,\"0\")}const iP={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return oP(\"yy\"===t?r%100:r,t.length)},M(e,t){const n=e.getMonth();return\"M\"===t?String(n+1):oP(n+1,2)},d(e,t){return oP(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?\"pm\":\"am\";switch(t){case\"a\":case\"aa\":return n.toUpperCase();case\"aaa\":return n;case\"aaaaa\":return n[0];default:return\"am\"===n?\"a.m.\":\"p.m.\"}},h(e,t){return oP(e.getHours()%12||12,t.length)},H(e,t){return oP(e.getHours(),t.length)},m(e,t){return oP(e.getMinutes(),t.length)},s(e,t){return oP(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds();return oP(Math.trunc(r*Math.pow(10,n-3)),t.length)}},sP={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case\"G\":case\"GG\":case\"GGG\":return n.era(r,{width:\"abbreviated\"});case\"GGGGG\":return n.era(r,{width:\"narrow\"});default:return n.era(r,{width:\"wide\"})}},y:function(e,t,n){if(\"yo\"===t){const t=e.getFullYear(),r=t>0?t:1-t;return n.ordinalNumber(r,{unit:\"year\"})}return iP.y(e,t)},Y:function(e,t,n,r){const o=nP(e,r),i=o>0?o:1-o;return\"YY\"===t?oP(i%100,2):\"Yo\"===t?n.ordinalNumber(i,{unit:\"year\"}):oP(i,t.length)},R:function(e,t){return oP(eP(e),t.length)},u:function(e,t){return oP(e.getFullYear(),t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case\"Q\":return String(r);case\"QQ\":return oP(r,2);case\"Qo\":return n.ordinalNumber(r,{unit:\"quarter\"});case\"QQQ\":return n.quarter(r,{width:\"abbreviated\",context:\"formatting\"});case\"QQQQQ\":return n.quarter(r,{width:\"narrow\",context:\"formatting\"});default:return n.quarter(r,{width:\"wide\",context:\"formatting\"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case\"q\":return String(r);case\"qq\":return oP(r,2);case\"qo\":return n.ordinalNumber(r,{unit:\"quarter\"});case\"qqq\":return n.quarter(r,{width:\"abbreviated\",context:\"standalone\"});case\"qqqqq\":return n.quarter(r,{width:\"narrow\",context:\"standalone\"});default:return n.quarter(r,{width:\"wide\",context:\"standalone\"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case\"M\":case\"MM\":return iP.M(e,t);case\"Mo\":return n.ordinalNumber(r+1,{unit:\"month\"});case\"MMM\":return n.month(r,{width:\"abbreviated\",context:\"formatting\"});case\"MMMMM\":return n.month(r,{width:\"narrow\",context:\"formatting\"});default:return n.month(r,{width:\"wide\",context:\"formatting\"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case\"L\":return String(r+1);case\"LL\":return oP(r+1,2);case\"Lo\":return n.ordinalNumber(r+1,{unit:\"month\"});case\"LLL\":return n.month(r,{width:\"abbreviated\",context:\"standalone\"});case\"LLLLL\":return n.month(r,{width:\"narrow\",context:\"standalone\"});default:return n.month(r,{width:\"wide\",context:\"standalone\"})}},w:function(e,t,n,r){const o=rP(e,r);return\"wo\"===t?n.ordinalNumber(o,{unit:\"week\"}):oP(o,t.length)},I:function(e,t,n){const r=tP(e);return\"Io\"===t?n.ordinalNumber(r,{unit:\"week\"}):oP(r,t.length)},d:function(e,t,n){return\"do\"===t?n.ordinalNumber(e.getDate(),{unit:\"date\"}):iP.d(e,t)},D:function(e,t,n){const r=function(e,t){const n=N_(e,t?.in);return I_(n,Z_(n))+1}(e);return\"Do\"===t?n.ordinalNumber(r,{unit:\"dayOfYear\"}):oP(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case\"E\":case\"EE\":case\"EEE\":return n.day(r,{width:\"abbreviated\",context:\"formatting\"});case\"EEEEE\":return n.day(r,{width:\"narrow\",context:\"formatting\"});case\"EEEEEE\":return n.day(r,{width:\"short\",context:\"formatting\"});default:return n.day(r,{width:\"wide\",context:\"formatting\"})}},e:function(e,t,n,r){const o=e.getDay(),i=(o-r.weekStartsOn+8)%7||7;switch(t){case\"e\":return String(i);case\"ee\":return oP(i,2);case\"eo\":return n.ordinalNumber(i,{unit:\"day\"});case\"eee\":return n.day(o,{width:\"abbreviated\",context:\"formatting\"});case\"eeeee\":return n.day(o,{width:\"narrow\",context:\"formatting\"});case\"eeeeee\":return n.day(o,{width:\"short\",context:\"formatting\"});default:return n.day(o,{width:\"wide\",context:\"formatting\"})}},c:function(e,t,n,r){const o=e.getDay(),i=(o-r.weekStartsOn+8)%7||7;switch(t){case\"c\":return String(i);case\"cc\":return oP(i,t.length);case\"co\":return n.ordinalNumber(i,{unit:\"day\"});case\"ccc\":return n.day(o,{width:\"abbreviated\",context:\"standalone\"});case\"ccccc\":return n.day(o,{width:\"narrow\",context:\"standalone\"});case\"cccccc\":return n.day(o,{width:\"short\",context:\"standalone\"});default:return n.day(o,{width:\"wide\",context:\"standalone\"})}},i:function(e,t,n){const r=e.getDay(),o=0===r?7:r;switch(t){case\"i\":return String(o);case\"ii\":return oP(o,t.length);case\"io\":return n.ordinalNumber(o,{unit:\"day\"});case\"iii\":return n.day(r,{width:\"abbreviated\",context:\"formatting\"});case\"iiiii\":return n.day(r,{width:\"narrow\",context:\"formatting\"});case\"iiiiii\":return n.day(r,{width:\"short\",context:\"formatting\"});default:return n.day(r,{width:\"wide\",context:\"formatting\"})}},a:function(e,t,n){const r=e.getHours()/12>=1?\"pm\":\"am\";switch(t){case\"a\":case\"aa\":return n.dayPeriod(r,{width:\"abbreviated\",context:\"formatting\"});case\"aaa\":return n.dayPeriod(r,{width:\"abbreviated\",context:\"formatting\"}).toLowerCase();case\"aaaaa\":return n.dayPeriod(r,{width:\"narrow\",context:\"formatting\"});default:return n.dayPeriod(r,{width:\"wide\",context:\"formatting\"})}},b:function(e,t,n){const r=e.getHours();let o;switch(o=12===r?\"noon\":0===r?\"midnight\":r/12>=1?\"pm\":\"am\",t){case\"b\":case\"bb\":return n.dayPeriod(o,{width:\"abbreviated\",context:\"formatting\"});case\"bbb\":return n.dayPeriod(o,{width:\"abbreviated\",context:\"formatting\"}).toLowerCase();case\"bbbbb\":return n.dayPeriod(o,{width:\"narrow\",context:\"formatting\"});default:return n.dayPeriod(o,{width:\"wide\",context:\"formatting\"})}},B:function(e,t,n){const r=e.getHours();let o;switch(o=r>=17?\"evening\":r>=12?\"afternoon\":r>=4?\"morning\":\"night\",t){case\"B\":case\"BB\":case\"BBB\":return n.dayPeriod(o,{width:\"abbreviated\",context:\"formatting\"});case\"BBBBB\":return n.dayPeriod(o,{width:\"narrow\",context:\"formatting\"});default:return n.dayPeriod(o,{width:\"wide\",context:\"formatting\"})}},h:function(e,t,n){if(\"ho\"===t){let t=e.getHours()%12;return 0===t&&(t=12),n.ordinalNumber(t,{unit:\"hour\"})}return iP.h(e,t)},H:function(e,t,n){return\"Ho\"===t?n.ordinalNumber(e.getHours(),{unit:\"hour\"}):iP.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return\"Ko\"===t?n.ordinalNumber(r,{unit:\"hour\"}):oP(r,t.length)},k:function(e,t,n){let r=e.getHours();return 0===r&&(r=24),\"ko\"===t?n.ordinalNumber(r,{unit:\"hour\"}):oP(r,t.length)},m:function(e,t,n){return\"mo\"===t?n.ordinalNumber(e.getMinutes(),{unit:\"minute\"}):iP.m(e,t)},s:function(e,t,n){return\"so\"===t?n.ordinalNumber(e.getSeconds(),{unit:\"second\"}):iP.s(e,t)},S:function(e,t){return iP.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(0===r)return\"Z\";switch(t){case\"X\":return lP(r);case\"XXXX\":case\"XX\":return cP(r);default:return cP(r,\":\")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case\"x\":return lP(r);case\"xxxx\":case\"xx\":return cP(r);default:return cP(r,\":\")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case\"O\":case\"OO\":case\"OOO\":return\"GMT\"+aP(r,\":\");default:return\"GMT\"+cP(r,\":\")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case\"z\":case\"zz\":case\"zzz\":return\"GMT\"+aP(r,\":\");default:return\"GMT\"+cP(r,\":\")}},t:function(e,t,n){return oP(Math.trunc(+e/1e3),t.length)},T:function(e,t,n){return oP(+e,t.length)}};function aP(e,t=\"\"){const n=e>0?\"-\":\"+\",r=Math.abs(e),o=Math.trunc(r/60),i=r%60;return 0===i?n+String(o):n+String(o)+t+oP(i,2)}function lP(e,t){return e%60==0?(e>0?\"-\":\"+\")+oP(Math.abs(e)/60,2):cP(e,t)}function cP(e,t=\"\"){const n=e>0?\"-\":\"+\",r=Math.abs(e);return n+oP(Math.trunc(r/60),2)+t+oP(r%60,2)}const uP=(e,t)=>{switch(e){case\"P\":return t.date({width:\"short\"});case\"PP\":return t.date({width:\"medium\"});case\"PPP\":return t.date({width:\"long\"});default:return t.date({width:\"full\"})}},dP=(e,t)=>{switch(e){case\"p\":return t.time({width:\"short\"});case\"pp\":return t.time({width:\"medium\"});case\"ppp\":return t.time({width:\"long\"});default:return t.time({width:\"full\"})}},fP={p:dP,P:(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],o=n[2];if(!o)return uP(e,t);let i;switch(r){case\"P\":i=t.dateTime({width:\"short\"});break;case\"PP\":i=t.dateTime({width:\"medium\"});break;case\"PPP\":i=t.dateTime({width:\"long\"});break;default:i=t.dateTime({width:\"full\"})}return i.replace(\"{{date}}\",uP(r,t)).replace(\"{{time}}\",dP(o,t))}},mP=/^D+$/,hP=/^Y+$/,pP=[\"D\",\"DD\",\"YY\",\"YYYY\"];function gP(e){return e instanceof Date||\"object\"==typeof e&&\"[object Date]\"===Object.prototype.toString.call(e)}const yP=/[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g,vP=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,bP=/^'([^]*?)'?$/,xP=/''/g,wP=/[a-zA-Z]/;function SP(e,t,n){const r=F_(),o=n?.locale??r.locale??X_,i=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,s=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,a=N_(e,n?.in);if(!function(e){return!(!gP(e)&&\"number\"!=typeof e||isNaN(+N_(e)))}(a))throw new RangeError(\"Invalid time value\");let l=t.match(vP).map((e=>{const t=e[0];return\"p\"===t||\"P\"===t?(0,fP[t])(e,o.formatLong):e})).join(\"\").match(yP).map((e=>{if(\"''\"===e)return{isToken:!1,value:\"'\"};const t=e[0];if(\"'\"===t)return{isToken:!1,value:kP(e)};if(sP[t])return{isToken:!0,value:e};if(t.match(wP))throw new RangeError(\"Format string contains an unescaped latin alphabet character `\"+t+\"`\");return{isToken:!1,value:e}}));o.localize.preprocessor&&(l=o.localize.preprocessor(a,l));const c={firstWeekContainsDate:i,weekStartsOn:s,locale:o};return l.map((r=>{if(!r.isToken)return r.value;const i=r.value;return(!n?.useAdditionalWeekYearTokens&&function(e){return hP.test(e)}(i)||!n?.useAdditionalDayOfYearTokens&&function(e){return mP.test(e)}(i))&&function(e,t,n){const r=function(e,t,n){const r=\"Y\"===e[0]?\"years\":\"days of the month\";return`Use \\`${e.toLowerCase()}\\` instead of \\`${e}\\` (in \\`${t}\\`) for formatting ${r} to the input \\`${n}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(e,t,n);if(console.warn(r),pP.includes(e))throw new RangeError(r)}(i,t,String(e)),(0,sP[i[0]])(a,i,o.localize,c)})).join(\"\")}function kP(e){const t=e.match(bP);return t?t[1].replace(xP,\"'\"):e}function EP(e,t){const n=N_(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}const CP={addDays:T_,addMonths:M_,addWeeks:R_,addYears:function(e,t,n){return M_(e,12*t,n)},differenceInCalendarDays:I_,differenceInCalendarMonths:function(e,t,n){const[r,o]=j_(n?.in,e,t);return 12*(r.getFullYear()-o.getFullYear())+(r.getMonth()-o.getMonth())},endOfISOWeek:function(e,t){return z_(e,{...t,weekStartsOn:1})},endOfMonth:B_,endOfWeek:z_,endOfYear:function(e,t){const n=N_(e,t?.in),r=n.getFullYear();return n.setFullYear(r+1,0,0),n.setHours(23,59,59,999),n},format:SP,getISOWeek:tP,getWeek:rP,isAfter:function(e,t){return+N_(e)>+N_(t)},isBefore:function(e,t){return+N_(e)<+N_(t)},isDate:gP,isSameDay:function(e,t,n){const[r,o]=j_(n?.in,e,t);return+A_(r)==+A_(o)},isSameMonth:function(e,t,n){const[r,o]=j_(n?.in,e,t);return r.getFullYear()===o.getFullYear()&&r.getMonth()===o.getMonth()},isSameYear:function(e,t,n){const[r,o]=j_(n?.in,e,t);return r.getFullYear()===o.getFullYear()},max:function(e,t){let n,r=t?.in;return e.forEach((e=>{r||\"object\"!=typeof e||(r=O_.bind(null,e));const t=N_(e,r);(!n||n<t||isNaN(+t))&&(n=t)})),O_(r,n||NaN)},min:function(e,t){let n,r=t?.in;return e.forEach((e=>{r||\"object\"!=typeof e||(r=O_.bind(null,e));const t=N_(e,r);(!n||n>t||isNaN(+t))&&(n=t)})),O_(r,n||NaN)},setMonth:function(e,t,n){const r=N_(e,n?.in),o=r.getFullYear(),i=r.getDate(),s=O_(n?.in||e,0);s.setFullYear(o,t,15),s.setHours(0,0,0,0);const a=function(e,t){const n=N_(e,t?.in),r=n.getFullYear(),o=n.getMonth(),i=O_(n,0);return i.setFullYear(r,o+1,0),i.setHours(0,0,0,0),i.getDate()}(s);return r.setMonth(t,Math.min(i,a)),r},setYear:function(e,t,n){const r=N_(e,n?.in);return isNaN(+r)?O_(n?.in||e,NaN):(r.setFullYear(t),r)},startOfDay:A_,startOfISOWeek:Q_,startOfMonth:EP,startOfWeek:J_,startOfYear:Z_};function _P(){const e={};for(const t in HC)e[HC[t]]=`rdp-${HC[t]}`;for(const t in KC)e[KC[t]]=`rdp-${KC[t]}`;for(const t in qC)e[qC[t]]=`rdp-${qC[t]}`;return e}Symbol.for(\"constructDateFrom\");const PP={},OP={};function NP(e,t){try{const n=(PP[e]||=new Intl.DateTimeFormat(\"en-GB\",{timeZone:e,hour:\"numeric\",timeZoneName:\"longOffset\"}).format)(t).split(\"GMT\")[1]||\"\";return n in OP?OP[n]:MP(n,n.split(\":\"))}catch{if(e in OP)return OP[e];const t=e?.match(TP);return t?MP(e,t.slice(1)):NaN}}const TP=/([+-]\\d\\d):?(\\d\\d)?/;function MP(e,t){const n=+t[0],r=+(t[1]||0);return OP[e]=n>0?60*n+r:60*n-r}class RP extends Date{constructor(...e){super(),e.length>1&&\"string\"==typeof e[e.length-1]&&(this.timeZone=e.pop()),this.internal=new Date,isNaN(NP(this.timeZone,this))?this.setTime(NaN):e.length?\"number\"==typeof e[0]&&(1===e.length||2===e.length&&\"number\"!=typeof e[1])?this.setTime(e[0]):\"string\"==typeof e[0]?this.setTime(+new Date(e[0])):e[0]instanceof Date?this.setTime(+e[0]):(this.setTime(+new Date(...e)),AP(this)):this.setTime(Date.now()),jP(this)}static tz(e,...t){return t.length?new RP(...t,e):new RP(Date.now(),e)}withTimeZone(e){return new RP(+this,e)}getTimezoneOffset(){return-NP(this.timeZone,this)}[Symbol.for(\"constructDateFrom\")](e){return new RP(+new Date(e),this.timeZone)}}const DP=/^(get|set)(?!UTC)/;function jP(e){e.internal.setTime(+e),e.internal.setUTCMinutes(e.internal.getUTCMinutes()-e.getTimezoneOffset())}function AP(e){const t=NP(e.timeZone,e),n=new Date(+e);n.setUTCHours(n.getUTCHours()-1);const r=-new Date(+e).getTimezoneOffset(),o=r- -new Date(+n).getTimezoneOffset(),i=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();o&&i&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+o);const s=r-t;s&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+s);const a=NP(e.timeZone,e),l=-new Date(+e).getTimezoneOffset()-a-s;if(a!==t&&l){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+l);const t=a-NP(e.timeZone,e);t&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+t),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+t))}}Object.getOwnPropertyNames(Date.prototype).forEach((e=>{if(!DP.test(e))return;const t=e.replace(DP,\"$1UTC\");RP.prototype[t]&&(e.startsWith(\"get\")?RP.prototype[e]=function(){return this.internal[t]()}:(RP.prototype[e]=function(){var e;return Date.prototype[t].apply(this.internal,arguments),e=this,Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),AP(e),+this},RP.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),jP(this),+this}))}));class IP extends RP{static tz(e,...t){return t.length?new IP(...t,e):new IP(Date.now(),e)}toISOString(){const[e,t,n]=this.tzComponents(),r=`${e}${t}:${n}`;return this.internal.toISOString().slice(0,-1)+r}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[e,t,n,r]=this.internal.toUTCString().split(\" \");return`${e?.slice(0,-1)} ${n} ${t} ${r}`}toTimeString(){const e=this.internal.toUTCString().split(\" \")[4],[t,n,r]=this.tzComponents();return`${e} GMT${t}${n}${r} (${o=this.timeZone,i=this,new Intl.DateTimeFormat(\"en-GB\",{timeZone:o,timeZoneName:\"long\"}).format(i).slice(12)})`;var o,i}toLocaleString(e,t){return Date.prototype.toLocaleString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}toLocaleDateString(e,t){return Date.prototype.toLocaleDateString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}toLocaleTimeString(e,t){return Date.prototype.toLocaleTimeString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}tzComponents(){const e=this.getTimezoneOffset();return[e>0?\"-\":\"+\",String(Math.floor(Math.abs(e)/60)).padStart(2,\"0\"),String(Math.abs(e)%60).padStart(2,\"0\")]}withTimeZone(e){return new IP(+this,e)}[Symbol.for(\"constructDateFrom\")](e){return new IP(+new Date(e),this.timeZone)}}function LP(e,t,n=CP){return n.format(e,\"LLLL y\",t)}const FP=LP;function zP(e,t,n=CP){return n.format(e,\"d\",t)}function BP(e,t=X_){return t.localize?.month(e)}function WP(e){return e<10?`0${e.toLocaleString()}`:`${e.toLocaleString()}`}function VP(){return\"\"}function UP(e,t,n=CP){return n.format(e,\"cccccc\",t)}function $P(e){return e.toString()}const YP=$P;function HP(e,t,n=CP){return n.format(e,\"LLLL y\",t)}const KP=HP;function qP(e,t,n,r=CP){let o=r.format(e,\"PPPP\",n);return t?.today&&(o=`Today, ${o}`),o}function GP(e,t,n,r=CP){let o=r.format(e,\"PPPP\",n);return t.today&&(o=`Today, ${o}`),t.selected&&(o=`${o}, selected`),o}const XP=GP;function ZP(){return\"\"}function JP(e){return\"Choose the Month\"}function QP(e){return\"Go to the Next Month\"}function eO(e){return\"Go to the Previous Month\"}function tO(e,t,n=CP){return n.format(e,\"cccc\",t)}function nO(e,t){return`Week ${e}`}function rO(e){return\"Week Number\"}function oO(e){return\"Choose the Year\"}const iO=42;function sO(e,t){const{month:n,defaultMonth:r,today:o=(e.timeZone?IP.tz(e.timeZone):t.Date?new t.Date:new Date),numberOfMonths:i=1,endMonth:s,startMonth:a}=e;let l=n||r||o;const{differenceInCalendarMonths:c,addMonths:u,startOfMonth:d}=t;return s&&c(s,l)<0&&(l=u(s,-1*(i-1))),a&&c(l,a)<0&&(l=a),d(l)}class aO{constructor(e,t,n=CP){this.date=e,this.displayMonth=t,this.outside=Boolean(t&&!n.isSameMonth(e,t)),this.dateLib=n}isEqualTo(e){return this.dateLib.isSameDay(e.date,this.date)&&this.dateLib.isSameMonth(e.displayMonth,this.displayMonth)}}class lO{constructor(e,t){this.date=e,this.weeks=t}}class cO{constructor(e,t){this.days=t,this.weekNumber=e}}function uO(e,t){const[n,r]=(0,a.useState)(e);return[void 0===t?n:t,r]}function dO(e,t,n=!1,r=CP){let{from:o,to:i}=e;const{differenceInCalendarDays:s,isSameDay:a}=r;return o&&i?(s(i,o)<0&&([o,i]=[i,o]),s(t,o)>=(n?1:0)&&s(i,t)>=(n?1:0)):!n&&i?a(i,t):!(n||!o)&&a(o,t)}function fO(e){return Boolean(e&&\"object\"==typeof e&&\"from\"in e)}function mO(e,t,n=CP){const r=Array.isArray(t)?t:[t],{isSameDay:o,differenceInCalendarDays:i,isAfter:s}=n;return r.some((t=>{if(\"boolean\"==typeof t)return t;if(n.isDate(t))return o(e,t);if(function(e,t){return Array.isArray(e)&&e.every(t.isDate)}(t,n))return t.includes(e);if(fO(t))return dO(t,e,!1,n);if(r=t,Boolean(r&&\"object\"==typeof r&&\"dayOfWeek\"in r))return Array.isArray(t.dayOfWeek)?t.dayOfWeek.includes(e.getDay()):t.dayOfWeek===e.getDay();var r;if(function(e){return Boolean(e&&\"object\"==typeof e&&\"before\"in e&&\"after\"in e)}(t)){const n=i(t.before,e)>0,r=i(t.after,e)<0;return s(t.before,t.after)?r&&n:n||r}return function(e){return Boolean(e&&\"object\"==typeof e&&\"after\"in e)}(t)?i(e,t.after)>0:function(e){return Boolean(e&&\"object\"==typeof e&&\"before\"in e)}(t)?i(t.before,e)>0:\"function\"==typeof t&&t(e)}))}function hO(e,t,n,r,o,i,s,a=0){if(a>365)return;const l=function(e,t,n,r,o,i,s){const{weekStartsOn:a,locale:l,ISOWeek:c}=i,{addDays:u,addMonths:d,addYears:f,addWeeks:m,startOfISOWeek:h,endOfISOWeek:p,startOfWeek:g,endOfWeek:y,max:v,min:b}=s;let x={day:u,week:m,month:d,year:f,startOfWeek:e=>c?h(e):g(e,{locale:l,weekStartsOn:a}),endOfWeek:e=>c?p(e):y(e,{locale:l,weekStartsOn:a})}[e](n,\"after\"===t?1:-1);return\"before\"===t&&r?x=v([r,x]):\"after\"===t&&o&&(x=b([o,x])),x}(e,t,n.date,r,o,i,s),c=Boolean(i.disabled&&mO(l,i.disabled,s)),u=Boolean(i.hidden&&mO(l,i.hidden,s)),d=new aO(l,l,s);return c||u?hO(e,t,d,r,o,i,s,a+1):d}function pO(e,t,n,r,o){const{autoFocus:i}=e,[s,l]=(0,a.useState)(),c=function(e,t,n,r){let o,i=0,s=!1;for(;i<e.length&&!s;){const a=e[i],l=t(a);l[KC.disabled]||l[KC.hidden]||l[KC.outside]||(l[KC.focused]||r?.isEqualTo(a)||n(a.date)||l[KC.today])&&(o=a,s=!0),i++}return o||(o=e.find((e=>{const n=t(e);return!n[KC.disabled]&&!n[KC.hidden]&&!n[KC.outside]}))),o}(t.days,n,r||(()=>!1),s),[u,d]=(0,a.useState)(i?c:void 0);return{isFocusTarget:e=>Boolean(c?.isEqualTo(e)),setFocused:d,focused:u,blur:()=>{l(u),d(void 0)},moveFocus:(n,r)=>{if(!u)return;const i=hO(n,r,u,t.navStart,t.navEnd,e,o);i&&(t.goToDay(i),d(i))}}}function gO(e,t){const n=function(e,t){const{selected:n,required:r,onSelect:o}=e,[i,s]=uO(n,o?n:void 0),a=o?n:i,{isSameDay:l}=t;return{selected:a,select:(e,t,n)=>{let i=e;return!r&&a&&a&&l(e,a)&&(i=void 0),o||s(i),o?.(i,e,t,n),i},isSelected:e=>!!a&&l(a,e)}}(e,t),r=function(e,t){const{selected:n,required:r,onSelect:o}=e,[i,s]=uO(n,o?n:void 0),a=o?n:i,{isSameDay:l}=t,c=e=>a?.some((t=>l(t,e)))??!1,{min:u,max:d}=e;return{selected:a,select:(e,t,n)=>{let i=[...a??[]];if(c(e)){if(a?.length===u)return;if(r&&1===a?.length)return;i=a?.filter((t=>!l(t,e)))}else i=a?.length===d?[e]:[...i,e];return o||s(i),o?.(i,e,t,n),i},isSelected:c}}(e,t),o=function(e,t){const{disabled:n,excludeDisabled:r,selected:o,required:i,onSelect:s}=e,[a,l]=uO(o,s?o:void 0),c=s?o:a;return{selected:c,select:(o,a,u)=>{const{min:d,max:f}=e,m=o?function(e,t,n=0,r=0,o=!1,i=CP){const{from:s,to:a}=t||{},{isSameDay:l,isAfter:c,isBefore:u}=i;let d;if(s||a){if(s&&!a)d=l(s,e)?o?{from:s,to:void 0}:void 0:u(e,s)?{from:e,to:s}:{from:s,to:e};else if(s&&a)if(l(s,e)&&l(a,e))d=o?{from:s,to:a}:void 0;else if(l(s,e))d={from:s,to:n>0?void 0:e};else if(l(a,e))d={from:e,to:n>0?void 0:e};else if(u(e,s))d={from:e,to:a};else if(c(e,s))d={from:s,to:e};else{if(!c(e,a))throw new Error(\"Invalid range\");d={from:s,to:e}}}else d={from:e,to:n>0?void 0:e};if(d?.from&&d?.to){const t=i.differenceInCalendarDays(d.to,d.from);(r>0&&t>r||n>1&&t<n)&&(d={from:e,to:void 0})}return d}(o,c,d,f,i,t):void 0;if(m?.from&&m.to){let e=m.from;for(;t.differenceInCalendarDays(m.to,e)>0;)if(e=t.addDays(e,1),r&&n&&mO(e,n,t)){m.from=o,m.to=void 0;break}}return s||l(m),s?.(m,o,a,u),m},isSelected:e=>c&&dO(c,e,!1,t)}}(e,t);switch(e.mode){case\"single\":return n;case\"multiple\":return r;case\"range\":return o;default:return}}function yO(e){const{components:t,formatters:n,labels:r,dateLib:l,locale:c,classNames:u}=(0,a.useMemo)((()=>{return{dateLib:(r=e.dateLib,{...CP,...r}),components:(n=e.components,{...o,...n}),formatters:(t=e.formatters,t?.formatMonthCaption&&!t.formatCaption&&(t.formatCaption=t.formatMonthCaption),t?.formatYearCaption&&!t.formatYearDropdown&&(t.formatYearDropdown=t.formatYearCaption),{...i,...t}),labels:{...s,...e.labels},locale:{...X_,...e.locale},classNames:{..._P(),...e.classNames}};var t,n,r}),[e.classNames,e.components,e.dateLib,e.formatters,e.labels,e.locale]),{captionLayout:d,firstWeekContainsDate:f,mode:m,onDayBlur:h,onDayClick:p,onDayFocus:g,onDayKeyDown:y,onDayMouseEnter:v,onDayMouseLeave:b,onNextClick:x,onPrevClick:w,showWeekNumber:S,styles:k,useAdditionalDayOfYearTokens:E,useAdditionalWeekYearTokens:C,weekStartsOn:_}=e,P={locale:c,weekStartsOn:_,firstWeekContainsDate:f,useAdditionalWeekYearTokens:C,useAdditionalDayOfYearTokens:E},O=P,{formatCaption:N,formatDay:T,formatMonthDropdown:M,formatWeekNumber:R,formatWeekNumberHeader:D,formatWeekdayName:j,formatYearDropdown:A}=n,I=function(e,t){const[n,r]=function(e,t){let{startMonth:n,endMonth:r}=e;const{startOfYear:o,startOfDay:i,startOfMonth:s,endOfMonth:a,addYears:l,endOfYear:c}=t,{fromYear:u,toYear:d,fromMonth:f,toMonth:m}=e;!n&&f&&(n=f),!n&&u&&(n=new Date(u,0,1)),!r&&m&&(r=m),!r&&d&&(r=new Date(d,11,31));const h=e.captionLayout?.startsWith(\"dropdown\");return n?n=s(n):u?n=new Date(u,0,1):!n&&h&&(n=o(l(e.today??(e.timeZone?IP.tz(e.timeZone):t.Date?new t.Date:new Date),-100))),r?r=a(r):d?r=new Date(d,11,31):!r&&h&&(r=c(e.today??(e.timeZone?IP.tz(e.timeZone):t.Date?new t.Date:new Date))),[n?i(n):n,r?i(r):r]}(e,t),{startOfMonth:o,endOfMonth:i}=t,s=sO(e,t),[l,c]=uO(s,e.month?o(e.month):void 0);(0,a.useEffect)((()=>{const n=sO(e,t);c(n)}),[e.timeZone]);const u=function(e,t,n,r){const{numberOfMonths:o=1}=n,i=[];for(let n=0;n<o;n++){const o=r.addMonths(e,n);if(t&&o>t)break;i.push(o)}return i}(l,r,e,t),d=function(e,t,n,r){const o=e[0],i=e[e.length-1],{ISOWeek:s,fixedWeeks:a,locale:l,weekStartsOn:c}=n??{},{startOfWeek:u,endOfWeek:d,startOfISOWeek:f,endOfISOWeek:m,addDays:h,differenceInCalendarDays:p,differenceInCalendarMonths:g,isAfter:y,endOfMonth:v}=r,b=s?f(o):u(o,{weekStartsOn:c,locale:l}),x=p(s?m(v(i)):d(v(i),{weekStartsOn:c,locale:l}),b),w=g(i,o)+1,S=[];for(let e=0;e<=x;e++){const n=h(b,e);if(t&&y(n,t))break;S.push(n)}const k=iO*w;if(a&&S.length<k)for(let e=0;e<7;e++){const e=h(S[S.length-1],1);S.push(e)}return S}(u,e.endMonth?i(e.endMonth):void 0,e,t),f=function(e,t,n,r){const{startOfWeek:o,endOfWeek:i,startOfISOWeek:s,endOfISOWeek:a,endOfMonth:l,addDays:c,getWeek:u,getISOWeek:d}=r,f=e.reduce(((e,f)=>{const m=n.ISOWeek?s(f):o(f,{locale:n.locale,weekStartsOn:n.weekStartsOn}),h=n.ISOWeek?a(l(f)):i(l(f),{locale:n.locale,weekStartsOn:n.weekStartsOn}),p=t.filter((e=>e>=m&&e<=h));if(n.fixedWeeks&&p.length<42){const e=t.filter((e=>e>h&&e<=c(h,7)));p.push(...e)}const g=p.reduce(((e,t)=>{const o=n.ISOWeek?d(t):u(t,{locale:n.locale,weekStartsOn:n.weekStartsOn,firstWeekContainsDate:n.firstWeekContainsDate}),i=e.find((e=>e.weekNumber===o)),s=new aO(t,f,r);return i?i.days.push(s):e.push(new cO(o,[s])),e}),[]),y=new lO(f,g);return e.push(y),e}),[]);return n.reverseMonths?f.reverse():f}(u,d,e,t),m=function(e){return e.reduce(((e,t)=>[...e,...t.weeks]),[])}(f),h=f.reduce(((e,t)=>[...e,...t.weeks.reduce(((e,t)=>[...e,...t.days]),[])]),[]),p=function(e,t,n,r){if(n.disableNavigation)return;const{pagedNavigation:o,numberOfMonths:i}=n,{startOfMonth:s,addMonths:a,differenceInCalendarMonths:l}=r,c=o?i??1:1,u=s(e);return t&&l(u,t)<=0?void 0:a(u,-c)}(l,n,e,t),g=function(e,t,n,r){if(n.disableNavigation)return;const{pagedNavigation:o,numberOfMonths:i=1}=n,{startOfMonth:s,addMonths:a,differenceInCalendarMonths:l}=r,c=o?i:1,u=s(e);return t&&l(t,e)<i?void 0:a(u,c)}(l,r,e,t),{disableNavigation:y,onMonthChange:v}=e,b=e=>{if(y)return;let t=o(e);n&&t<o(n)&&(t=o(n)),r&&t>o(r)&&(t=o(r)),c(t),v?.(t)};return{months:f,weeks:m,days:h,navStart:n,navEnd:r,previousMonth:p,nextMonth:g,goToMonth:b,goToDay:e=>{(e=>m.some((t=>t.days.some((t=>t.isEqualTo(e))))))(e)||b(e.date)}}}(e,l),{days:L,months:F,navStart:z,navEnd:B,previousMonth:W,nextMonth:V,goToMonth:U}=I,$=function(e,t,n){const{disabled:r,hidden:o,modifiers:i,showOutsideDays:s,today:a}=t,{isSameDay:l,isSameMonth:c}=n,u={[KC.focused]:[],[KC.outside]:[],[KC.disabled]:[],[KC.hidden]:[],[KC.today]:[]},d={},f={[qC.range_end]:[],[qC.range_middle]:[],[qC.range_start]:[],[qC.selected]:[]};for(const f of e){const{date:e,displayMonth:m}=f,h=Boolean(m&&!c(e,m)),p=Boolean(r&&mO(e,r,n)),g=Boolean(o&&mO(e,o,n))||!s&&h,y=l(e,a??(t.timeZone?IP.tz(t.timeZone):n.Date?new n.Date:new Date));h&&u.outside.push(f),p&&u.disabled.push(f),g&&u.hidden.push(f),y&&u.today.push(f),i&&Object.keys(i).forEach((t=>{const r=i?.[t];r&&mO(e,r,n)&&(d[t]?d[t].push(f):d[t]=[f])}))}return e=>{const t={[KC.focused]:!1,[KC.disabled]:!1,[KC.hidden]:!1,[KC.outside]:!1,[KC.today]:!1},n={[qC.range_end]:!1,[qC.range_middle]:!1,[qC.range_start]:!1,[qC.selected]:!1},r={};for(const n in u){const r=u[n];t[n]=r.some((t=>t===e))}for(const t in f){const r=f[t];n[t]=r.some((t=>t===e))}for(const t in d)r[t]=d[t].some((t=>t===e));return{...n,...t,...r}}}(L,e,l),{isSelected:Y,select:H,selected:K}=gO(e,l)??{},{blur:q,focused:G,isFocusTarget:X,moveFocus:Z,setFocused:J}=pO(e,I,$,Y??(()=>!1),l),{labelDayButton:Q,labelGridcell:ee,labelGrid:te,labelMonthDropdown:ne,labelNav:re,labelWeekday:oe,labelWeekNumber:ie,labelWeekNumberHeader:se,labelYearDropdown:ae}=r,le=(0,a.useMemo)((()=>function(e,t,n,r,o=CP){const i=r?IP.tz(r):o.Date?new o.Date:new Date,s=n?o.startOfISOWeek(i):o.startOfWeek(i,{locale:e,weekStartsOn:t}),a=[];for(let e=0;e<7;e++){const t=o.addDays(s,e);a.push(t)}return a}(c,e.weekStartsOn,e.ISOWeek,e.timeZone,l)),[l,c,e.ISOWeek,e.timeZone,e.weekStartsOn]),ce=void 0!==m||void 0!==p,ue=(0,a.useCallback)((()=>{W&&(U(W),w?.(W))}),[W,U,w]),de=(0,a.useCallback)((()=>{V&&(U(V),x?.(V))}),[U,V,x]),fe=(0,a.useCallback)(((e,t)=>n=>{n.preventDefault(),n.stopPropagation(),J(e),H?.(e.date,t,n),p?.(e.date,t,n)}),[H,p,J]),me=(0,a.useCallback)(((e,t)=>n=>{J(e),g?.(e.date,t,n)}),[g,J]),he=(0,a.useCallback)(((e,t)=>n=>{q(),h?.(e.date,t,n)}),[q,h]),pe=(0,a.useCallback)(((t,n)=>r=>{const o={ArrowLeft:[\"day\",\"rtl\"===e.dir?\"after\":\"before\"],ArrowRight:[\"day\",\"rtl\"===e.dir?\"before\":\"after\"],ArrowDown:[\"week\",\"after\"],ArrowUp:[\"week\",\"before\"],PageUp:[r.shiftKey?\"year\":\"month\",\"before\"],PageDown:[r.shiftKey?\"year\":\"month\",\"after\"],Home:[\"startOfWeek\",\"before\"],End:[\"endOfWeek\",\"after\"]};if(o[r.key]){r.preventDefault(),r.stopPropagation();const[e,t]=o[r.key];Z(e,t)}y?.(t.date,n,r)}),[Z,y,e.dir]),ge=(0,a.useCallback)(((e,t)=>n=>{v?.(e.date,t,n)}),[v]),ye=(0,a.useCallback)(((e,t)=>n=>{b?.(e.date,t,n)}),[b]),{className:ve,style:be}=(0,a.useMemo)((()=>({className:[u[HC.Root],e.className].filter(Boolean).join(\" \"),style:{...k?.[HC.Root],...e.style}})),[u,e.className,e.style,k]),xe=function(e){const t={\"data-mode\":e.mode??void 0,\"data-required\":\"required\"in e?e.required:void 0,\"data-multiple-months\":e.numberOfMonths&&e.numberOfMonths>1||void 0,\"data-week-numbers\":e.showWeekNumber||void 0};return Object.entries(e).forEach((([e,n])=>{e.startsWith(\"data-\")&&(t[e]=n)})),t}(e),we={selected:K,select:H,isSelected:Y,months:F,nextMonth:V,previousMonth:W,goToMonth:U,getModifiers:$,components:t,classNames:u,styles:k,labels:r,formatters:n};return a.createElement(l_.Provider,{value:we},a.createElement(t.Root,{className:ve,style:be,dir:e.dir,id:e.id,lang:e.lang,nonce:e.nonce,title:e.title,...xe},a.createElement(t.Months,{className:u[HC.Months],style:k?.[HC.Months]},!e.hideNavigation&&a.createElement(t.Nav,{className:u[HC.Nav],style:k?.[HC.Nav],\"aria-label\":re(),onPreviousClick:ue,onNextClick:de,previousMonth:W,nextMonth:V}),F.map(((r,o)=>{const i=function(e,t,n,r,o,i){if(!t)return;if(!n)return;const{addMonths:s,startOfMonth:a,isBefore:l}=i,c=e.getFullYear(),u=[];let d=t;for(;u.length<12&&l(d,s(n,1));)u.push(d.getMonth()),d=s(d,1);const f=u.sort(((e,t)=>e-t)).map((e=>{const s=r.formatMonthDropdown(e,o),l=i.Date?new i.Date(c,e):new Date(c,e);return{value:e,label:s,disabled:t&&l<a(t)||n&&l>a(n)||!1}}));return f}(r.date,z,B,n,c,l),s=function(e,t,n,r,o){if(!t)return;if(!n)return;const{startOfMonth:i,startOfYear:s,endOfYear:a,addYears:l,isBefore:c,isSameYear:u}=o,d=e.getMonth(),f=s(t),m=a(n),h=[];let p=f;for(;c(p,m)||u(p,m);)h.push(p.getFullYear()),p=l(p,1);return h.map((e=>{const s=o.Date?new o.Date(e,d):new Date(e,d),a=t&&s<i(t)||d&&n&&s>i(n)||!1;return{value:e,label:r.formatYearDropdown(e),disabled:a}}))}(F[0].date,z,B,n,l);return a.createElement(t.Month,{className:u[HC.Month],style:k?.[HC.Month],key:o,displayIndex:o,calendarMonth:r},a.createElement(t.MonthCaption,{className:u[HC.MonthCaption],style:k?.[HC.MonthCaption],calendarMonth:r,displayIndex:o},d?.startsWith(\"dropdown\")?a.createElement(t.DropdownNav,{className:u[HC.Dropdowns],style:k?.[HC.Dropdowns]},\"dropdown\"===d||\"dropdown-months\"===d?a.createElement(t.MonthsDropdown,{className:u[HC.MonthsDropdown],\"aria-label\":ne(),classNames:u,components:t,disabled:Boolean(e.disableNavigation),onChange:e=>{const t=Number(e.target.value),n=l.setMonth(l.startOfMonth(r.date),t);U(n)},options:i,style:k?.[HC.Dropdown],value:r.date.getMonth()}):a.createElement(\"span\",{role:\"status\",\"aria-live\":\"polite\"},M(r.date.getMonth())),\"dropdown\"===d||\"dropdown-years\"===d?a.createElement(t.YearsDropdown,{className:u[HC.YearsDropdown],\"aria-label\":ae(O),classNames:u,components:t,disabled:Boolean(e.disableNavigation),onChange:e=>{const t=l.setYear(l.startOfMonth(r.date),Number(e.target.value));U(t)},options:s,style:k?.[HC.Dropdown],value:r.date.getFullYear()}):a.createElement(\"span\",{role:\"status\",\"aria-live\":\"polite\"},A(r.date.getFullYear()))):a.createElement(t.CaptionLabel,{className:u[HC.CaptionLabel],role:\"status\",\"aria-live\":\"polite\"},N(r.date,P,l))),a.createElement(t.MonthGrid,{role:\"grid\",\"aria-multiselectable\":\"multiple\"===m||\"range\"===m,\"aria-label\":te(r.date,O,l)||void 0,className:u[HC.MonthGrid],style:k?.[HC.MonthGrid]},!e.hideWeekdays&&a.createElement(t.Weekdays,{className:u[HC.Weekdays],style:k?.[HC.Weekdays]},S&&a.createElement(t.WeekNumberHeader,{\"aria-label\":se(O),className:u[HC.WeekNumberHeader],style:k?.[HC.WeekNumberHeader],scope:\"col\"},D()),le.map(((e,n)=>a.createElement(t.Weekday,{\"aria-label\":oe(e,O,l),className:u[HC.Weekday],key:n,style:k?.[HC.Weekday],scope:\"col\"},j(e,P,l))))),a.createElement(t.Weeks,{className:u[HC.Weeks],style:k?.[HC.Weeks]},r.weeks.map(((n,r)=>a.createElement(t.Week,{className:u[HC.Week],key:n.weekNumber,style:k?.[HC.Week],week:n},S&&a.createElement(t.WeekNumber,{week:n,style:k?.[HC.WeekNumber],\"aria-label\":ie(n.weekNumber,{locale:c}),className:u[HC.WeekNumber],scope:\"row\"},R(n.weekNumber)),n.days.map((n=>{const{date:r}=n,o=$(n);if(o[KC.focused]=!o.hidden&&Boolean(G?.isEqualTo(n)),o[qC.selected]=!o.disabled&&(Y?.(r)||o.selected),fO(K)){const{from:e,to:t}=K;o[qC.range_start]=Boolean(e&&t&&l.isSameDay(r,e)),o[qC.range_end]=Boolean(e&&t&&l.isSameDay(r,t)),o[qC.range_middle]=dO(K,r,!0,l)}const i=function(e,t={},n={}){let r={...t?.[HC.Day]};return Object.entries(e).filter((([,e])=>!0===e)).forEach((([e])=>{r={...r,...n?.[e]}})),r}(o,k,e.modifiersStyles),s=function(e,t,n={}){return Object.entries(e).filter((([,e])=>!0===e)).reduce(((e,[r])=>(n[r]?e.push(n[r]):t[KC[r]]?e.push(t[KC[r]]):t[qC[r]]&&e.push(t[qC[r]]),e)),[t[HC.Day]])}(o,u,e.modifiersClassNames),c=ce?void 0:ee(r,o,O,l);return a.createElement(t.Day,{key:`${l.format(r,\"yyyy-MM-dd\")}_${l.format(n.displayMonth,\"yyyy-MM\")}`,day:n,modifiers:o,className:s.join(\" \"),style:i,\"aria-hidden\":o.hidden||void 0,\"aria-selected\":o.selected||void 0,\"aria-label\":c,\"data-day\":l.format(r,\"yyyy-MM-dd\"),\"data-month\":n.outside?l.format(r,\"yyyy-MM\"):void 0,\"data-selected\":o.selected||void 0,\"data-disabled\":o.disabled||void 0,\"data-hidden\":o.hidden||void 0,\"data-outside\":n.outside||void 0,\"data-focused\":o.focused||void 0,\"data-today\":o.today||void 0},ce?a.createElement(t.DayButton,{className:u[HC.DayButton],style:k?.[HC.DayButton],type:\"button\",day:n,modifiers:o,disabled:o.disabled||void 0,tabIndex:X(n)?0:-1,\"aria-label\":Q(r,o,O,l),onClick:fe(n,o),onBlur:he(n,o),onFocus:me(n,o),onKeyDown:pe(n,o),onMouseEnter:ge(n,o),onMouseLeave:ye(n,o)},T(r,P,l)):T(n.date,P,l))}))))))))}))),e.footer&&a.createElement(t.Footer,{className:u[HC.Footer],style:k?.[HC.Footer],role:\"status\",\"aria-live\":\"polite\"},e.footer)))}function vO(e,t,n){return M_(e,-t,n)}var bO=function(){return React.createElement(\"span\",{className:\"bg-icon-interactive h-1 w-1 absolute rounded-full inline-block bottom-0 left-1/2 right-1/2\"})},xO=function(e){return SP(e,\"E\").slice(0,1)};function wO(e){return wO=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},wO(e)}var SO=[\"width\",\"className\",\"classNames\",\"selectedDates\",\"setSelectedDates\",\"showOutsideDays\",\"mode\",\"variant\",\"alignment\",\"onBlur\",\"onChange\"];function kO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function EO(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?kO(Object(n),!0).forEach((function(t){CO(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):kO(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function CO(e,t,n){return(t=function(e){var t=function(e){if(\"object\"!=wO(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,\"string\");if(\"object\"!=wO(n))return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"==wO(t)?t:t+\"\"}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _O(){return _O=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_O.apply(null,arguments)}function PO(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(e,t)||OO(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function OO(e,t){if(e){if(\"string\"==typeof e)return NO(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?NO(e,t):void 0}}function NO(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var TO=function(e){var t=e.width,n=e.className,r=e.classNames,o=e.selectedDates,i=e.setSelectedDates,s=e.showOutsideDays,c=void 0===s||s,u=e.mode,d=void 0===u?\"single\":u,f=e.variant,m=void 0===f?\"normal\":f,h=e.alignment,p=void 0===h?\"horizontal\":h,g=(e.onBlur,e.onChange,function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,SO)),y=g.numberOfMonths,v=PO((0,a.useState)(!1),2),b=v[0],x=v[1],w=PO((0,a.useState)(!1),2),S=w[0],k=w[1],E=PO((0,a.useState)((new Date).getFullYear()),2),C=E[0],_=E[1],P=PO((0,a.useState)(C-C%24),2),O=P[0],N=P[1];null==o&&(o=\"multiple\"===d?[]:\"range\"===d?{from:null,to:null}:null);var T=function(e){var t=e.weekdays;return l().createElement(\"div\",{className:\"flex justify-between\"},t.map((function(e,t){return l().createElement(\"button\",{key:t,className:\"h-10 w-10 px-1.5 py-2 text-center text-muted-foreground text-[0.8rem] font-normal content-center bg-transparent border-none\"},e)})))},M=function(e){var t,n=e.day,r=e.modifiers,i=e.onSelect,s=r.selected,a=r.today,u=r.disabled,d=r.outside,f=r.range_middle,m=r.range_start,h=r.range_end,p=m||h||f,g=new Date,y=null===(t=o)||void 0===t?void 0:t.to,v=SP(n.displayMonth,\"yyyy-MM\")===SP(g,\"yyyy-MM\"),b=y&&SP(y,\"yyyy-MM\")===SP(n.date,\"yyyy-MM\"),x=vO(g,1),w=SP(n.date,\"yyyy-MM\")===SP(x,\"yyyy-MM\"),S=v||b||p,k=!c&&d,E=oe(\"h-10 w-10 flex items-center justify-center transition text-text-secondary relative\",\"border-none rounded\",!s&&!p||d&&!w?\"bg-transparent hover:bg-button-tertiary-hover\":\"bg-background-brand text-text-on-color\",f&&S&&(!d||p)?\"bg-brand-background-50 text-text-secondary rounded-none\":\"\",u?\"opacity-50 cursor-not-allowed text-text-disabled\":\"cursor-pointer\",d&&!p||!S&&d||d&&!w?\"bg-transperant opacity-50 text-text-disabled cursor-auto\":\"\");return l().createElement(\"button\",{onClick:function(){return!u&&i(n.date)},className:E,disabled:u||d,\"aria-label\":SP(n.date,\"EEEE, MMMM do, yyyy\")},(!k||p&&S)&&SP(n.date,\"d\"),a&&l().createElement(\"span\",{className:\"absolute h-1 w-1 bg-background-brand rounded-full bottom-1\"}))},R=function(e){var t=e.day,n=e.modifiers,r=e.className,o=e.onSelect;return l().createElement(\"td\",{className:r},l().createElement(M,{day:t,modifiers:n,onSelect:o}))},D=function(e){var t=e.monthGridProps,n=e.onSelect;return l().createElement(\"div\",{className:\"flex flex-col\"},t.children[1].props.children.map((function(e,t){return l().createElement(\"div\",{key:t,className:\"flex flex-row justify-between\"},e.props.children[1].map((function(e,t){return l().createElement(\"div\",{key:t,className:\"flex gap-1\"},l().createElement(M,_O({},e.props,{onSelect:n})))})))})))},j=function(e){var t;\"range\"===d?!o.from||o.from&&o.to?i({from:e,to:null}):i({from:o.from,to:e}):\"multiple\"===d?o.some((function(t){return SP(t,\"yyyy-MM-dd\")===SP(e,\"yyyy-MM-dd\")}))?i(o.filter((function(t){return SP(t,\"yyyy-MM-dd\")!==SP(e,\"yyyy-MM-dd\")}))):i([].concat(function(e){if(Array.isArray(e))return NO(e)}(t=o)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(t)||OO(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}(),[e])):\"single\"===d&&i([e])},A=oe(\"relative bg-background-primary shadow-datepicker-wrapper\",t,\"vertical\"===p?\"flex flex-col\":\"flex flex-row gap-3\",\"normal\"===m?\"rounded-md border border-solid border-border-subtle\":\"\",\"presets\"===m?\"rounded-tr-md border border-solid border-border-subtle\":\"\",\"dualdate\"===m?\"rounded-tr-md rounded-tl-md border border-solid border-border-subtle\":\"\");return l().createElement(l().Fragment,null,l().createElement(yO,_O({mode:d,selected:o,onSelect:j,hideNavigation:!0,captionLayout:\"label\",className:oe(n),formatters:{formatWeekdayName:xO},showHead:!1,classNames:EO({months:A,month:\"flex flex-col p-2 gap-1 text-center border border-border-subtle rounded-md w-full\",caption:\"relative flex justify-center items-center\",table:\"w-full border-separate border-spacing-[0_0.25rem] border-spacing-0\",head_row:\"flex mb-1\",head_cell:\"text-muted-foreground rounded-md w-10 font-normal text-[0.8rem]\",row:\"flex w-full mt-2\",cell:\"h-10 w-10 text-center text-sm p-0 relative\",day:\"h-10 w-10 p-0 font-normal bg-background-primary text-current\"},r),components:{MonthCaption:function(e){var t=c_(),n=t.goToMonth,r=t.nextMonth,o=t.previousMonth,i=SP(e.calendarMonth.date,\"yyyy\"),s=SP(e.calendarMonth.date,\"MMMM\"),a=new Date(e.calendarMonth.date);a.setDate(a.getDate()-a.getDay());var c,u=Array.from({length:7},(function(e,t){var n=new Date(a);return n.setDate(a.getDate()+t),xO(n)}));return c=S?\"\".concat(O,\" - \").concat(O+23):b?i:\"\".concat(s,\" \").concat(i),l().createElement(l().Fragment,null,l().createElement(\"div\",{className:\"flex justify-between\"},l().createElement(de,{variant:\"ghost\",onClick:function(){if(S)N(O-24);else if(b){var t=new Date(C-1,e.calendarMonth.date.getMonth());_(t.getFullYear()),n(t)}else n(o)},className:\"bg-background-primary border-none cursor-pointer\"},l().createElement(_C,{className:\"h-4 w-4\"})),l().createElement(de,{variant:\"ghost\",onClick:function(){y>1||(b?(k(!0),x(!1)):S?k(!1):x(!b))}},c),l().createElement(de,{variant:\"ghost\",onClick:function(){if(S)N(O+24);else if(b){var t=new Date(C+1,e.calendarMonth.date.getMonth());_(t.getFullYear()),n(t)}else n(r)},className:\"bg-background-primary border-none cursor-pointer\"},l().createElement(uk,{className:\"h-4 w-4\"}))),S&&l().createElement(\"div\",{className:\"grid grid-cols-4 w-full\"},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:24;return Array.from({length:t},(function(t,n){return e+n}))}(O).map((function(t){return l().createElement(de,{key:t,variant:\"ghost\",onClick:function(){return function(t){_(t),k(!1),x(!0),n(new Date(t,e.calendarMonth.date.getMonth()))}(t)},className:oe(\"h-10 w-full text-center font-normal relative\",t===C&&t!==(new Date).getFullYear()&&\"bg-background-brand text-text-on-color hover:bg-background-brand hover:text-black\")},t,t===(new Date).getFullYear()&&bO())}))),b&&!S&&l().createElement(\"div\",{className:\"grid grid-cols-4 gap-2 my-12\"},Array.from({length:12},(function(t,r){return l().createElement(de,{key:r,variant:\"ghost\",onClick:function(){x(!1),n(new Date(C,r))},className:oe(\"px-1.5 py-2 h-10 w-[4.375rem] text-center font-normal relative\",r===e.calendarMonth.date.getMonth()&&r!==(new Date).getMonth()&&C===e.calendarMonth.date.getFullYear()&&e.calendarMonth.date.getFullYear()!==(new Date).getFullYear()&&\"bg-background-brand text-text-on-color hover:bg-background-brand hover:text-black\")},SP(new Date(0,r),\"MMM\"),(new Date).getMonth()===r&&(new Date).getFullYear()===C&&bO())}))),!b&&!S&&l().createElement(T,{weekdays:u}))},Day:function(e){return l().createElement(R,_O({},e,{onSelect:j}))},Weekdays:function(){return null},Months:function(e){return l().createElement(l().Fragment,null,l().createElement(\"div\",{className:A},e.children.map((function(e,t){return e?l().createElement(l().Fragment,{key:t},e.map((function(e,t){return l().createElement(l().Fragment,{key:t},t>0&&l().createElement(\"div\",{className:\"border border-solid border-border-subtle border-l-0\"}),e)}))):null}))))},MonthGrid:function(e){return!b&&!S&&l().createElement(D,{monthGridProps:e,onSelect:j})}}},g)))};function MO(e){return A_(Date.now(),e)}function RO(e){return O_(e,Date.now())}function DO(e){const t=RO(e?.in),n=t.getFullYear(),r=t.getMonth(),o=t.getDate(),i=RO(e?.in);return i.setFullYear(n,r,o-1),i.setHours(0,0,0,0),i}function jO(e,t,n){return R_(e,-t,n)}var AO=[\"selectionType\",\"variant\",\"presets\",\"onCancel\",\"onApply\",\"applyButtonText\",\"cancelButtonText\",\"showOutsideDays\"];function IO(){return IO=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},IO.apply(null,arguments)}function LO(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var FO=function(e){var t=e.selectionType,n=void 0===t?\"single\":t,r=e.variant,o=void 0===r?\"normal\":r,i=e.presets,s=void 0===i?[]:i,c=e.onCancel,u=e.onApply,d=e.applyButtonText,f=void 0===d?\"Apply\":d,m=e.cancelButtonText,h=void 0===m?\"Cancel\":m,p=e.showOutsideDays,g=void 0===p||p,y=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.includes(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.includes(n)||{}.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,AO),v=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,o,i,s,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return LO(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?LO(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}((0,a.useState)((function(){return\"multiple\"===n?[]:\"range\"===n?{from:null,to:null}:null})),2),b=v[0],x=v[1],w=[{label:\"Today\",range:{from:MO(),to:MO()}},{label:\"Yesterday\",range:{from:DO(),to:DO()}},{label:\"This Week\",range:{from:J_(new Date,{weekStartsOn:1}),to:z_(new Date,{weekStartsOn:1})}},{label:\"Last Week\",range:{from:J_(jO(new Date,1),{weekStartsOn:1}),to:z_(jO(new Date,1),{weekStartsOn:1})}},{label:\"This Month\",range:{from:EP(new Date),to:B_(new Date)}},{label:\"Last Month\",range:{from:EP(vO(new Date,1)),to:B_(vO(new Date,1))}}],S=s.length>0?s:w,k=function(){x(\"multiple\"===n?[]:{from:null,to:null}),c&&c()},E=function(){u&&u(b)};return\"normal\"===o?l().createElement(TO,IO({},y,{mode:n,variant:o,width:\"w-[18.5rem]\",selectedDates:b,showOutsideDays:g,setSelectedDates:x})):\"dualdate\"===o?l().createElement(TO,{mode:n,numberOfMonths:2,alignment:\"horizontal\",selectedDates:b,setSelectedDates:x,showOutsideDays:g,variant:o,width:\"w-auto\",footer:l().createElement(\"div\",{className:\"flex justify-end p-2 gap-3 border border-solid border-border-subtle border-t-0 rounded-md rounded-tl-none rounded-tr-none\"},l().createElement(de,{variant:\"outline\",onClick:k},h),l().createElement(de,{onClick:E},f))}):\"presets\"===o?l().createElement(\"div\",{className:\"flex flex-row shadow-datepicker-wrapper\"},l().createElement(\"div\",{className:\"flex flex-col gap-1 p-3 items-start border border-solid border-border-subtle border-r-0 rounded-tl-md rounded-bl-md\"},S.map((function(e,t){return l().createElement(de,{key:t,onClick:function(){return t=e.range,void x(t);var t},variant:\"ghost\",className:\"font-medium text-sm\"},e.label)}))),l().createElement(TO,IO({},y,{mode:n,selectedDates:b,setSelectedDates:x,variant:o,showOutsideDays:g,width:\"w-auto\",numberOfMonths:2,footer:l().createElement(\"div\",{className:\"flex justify-end p-2 gap-3 border border-solid border-border-subtle border-t-0 rounded-br-md\"},l().createElement(de,{variant:\"outline\",onClick:k},h),l().createElement(de,{onClick:E},f))}))):void 0};return r}()}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGJzZi9mb3JjZS11aS9kaXN0L2ZvcmNlLXVpLmpzIiwibWFwcGluZ3MiOiJBQUFBLGVBQWUsS0FBaUQsb0JBQW9CLENBQXlJLENBQUMsZ0RBQWdELGtCQUFrQixhQUFhLE9BQU8sb0JBQW9CLGNBQWMsMEJBQTBCLG1CQUFtQix3Q0FBd0MsT0FBTyxhQUFhLFVBQVUsRUFBRSxpZ0lBQWlnSSxtRkFBbUYsR0FBRyxvQkFBb0Isd0xBQXdMLHFDQUFxQyxrQkFBa0IsVUFBVSxlQUFlLHNJQUFzSSwwRUFBMEUsT0FBTyx3REFBd0QsOEJBQThCLHFCQUFxQixnQkFBZ0IsaUJBQWlCLHdCQUF3QixNQUFNLGNBQWMsV0FBVywrQkFBK0IsWUFBWSxZQUFZLHFDQUFxQyxnQkFBZ0IsaUNBQWlDLGlCQUFpQixZQUFZLFVBQVUsY0FBYyxJQUFJLElBQUksbUJBQW1CLCtEQUErRCx1QkFBdUIsRUFBRSxnQkFBZ0IsaURBQWlELElBQUksMkNBQTJDLFNBQVMsMENBQTBDLHFCQUFxQixpREFBaUQsaUJBQWlCLDRGQUE0RixlQUFlLHdDQUF3QyxTQUFTLEdBQUcsU0FBUyxjQUFjLGlCQUFpQixVQUFVLG1CQUFtQixVQUFVLGtCQUFrQixVQUFVLHVCQUF1QixVQUFVLG1CQUFtQixVQUFVLHdCQUF3QixVQUFVLHFCQUFxQixVQUFVLHNCQUFzQixVQUFVLHVCQUF1QixVQUFVLG1CQUFtQixVQUFVLG1CQUFtQixVQUFVLHlCQUF5QixVQUFVLHdCQUF3QixVQUFVLGtCQUFrQixVQUFVLGtCQUFrQixVQUFVLG1CQUFtQixVQUFVLGlCQUFpQixVQUFVLHVCQUF1QixVQUFVLHdCQUF3QixVQUFVLDBCQUEwQixVQUFVLHdCQUF3QixVQUFVLHNCQUFzQixVQUFVLG1CQUFtQixVQUFVLG9CQUFvQixVQUFVLHFCQUFxQixVQUFVLG1CQUFtQixVQUFVLGlCQUFpQixVQUFVLHFCQUFxQixVQUFVLGtCQUFrQixVQUFVLG9CQUFvQixVQUFVLG9CQUFvQixVQUFVLG1CQUFtQixV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RyxFQUFFLHlCQUF5Qix3QkFBd0IsZUFBZSx3QkFBd0IsZUFBZSxHQUFHLEVBQUUsMEJBQTBCLG1DQUFtQyxFQUFFLDBCQUEwQiwrQ0FBK0MsZ0NBQWdDLHFCQUFxQixrQkFBa0IsU0FBUyxjQUFjLFNBQVMsNkNBQTZDLElBQUksMEZBQTBGLHdDQUF3Qyw2SkFBNkosc0lBQXNJLHVCQUF1Qiw0QkFBNEIsMEJBQTBCLFVBQVUsS0FBSyx5Q0FBeUMsb0RBQW9ELDBCQUEwQixnSUFBZ0ksc0JBQXNCLDZCQUE2Qix5QkFBeUIsMkJBQTJCLE1BQU0saURBQWlELFVBQVUsOEJBQThCLElBQUksc0lBQXNJLHlHQUF5Ryx1QkFBdUIsNEJBQTRCLDBCQUEwQixVQUFVLEtBQUssWUFBWSxTQUFTLEdBQUciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL0Bic2YvZm9yY2UtdWkvZGlzdC9mb3JjZS11aS5qcz9kMDhjIl0sInNvdXJjZXNDb250ZW50IjpbIiFmdW5jdGlvbihlLHQpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcIm9iamVjdFwiPT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFtdLHQpOlwib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHNbXCJmb3JjZS11aS5bZmlsZV0uanNcIl09dCgpOmVbXCJmb3JjZS11aS5bZmlsZV0uanNcIl09dCgpfShcInVuZGVmaW5lZFwiIT10eXBlb2Ygc2VsZj9zZWxmOnRoaXMsKGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezMxNjpmdW5jdGlvbihlLHQsbil7ZnVuY3Rpb24gcihlKXt2YXIgdD1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdm9pZCAwPT09dFtuXSYmKHRbbl09ZShuKSksdFtuXX19bi5kKHQse0E6ZnVuY3Rpb24oKXtyZXR1cm4gaX19KTt2YXIgbz0vXigoY2hpbGRyZW58ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUx8a2V5fHJlZnxhdXRvRm9jdXN8ZGVmYXVsdFZhbHVlfGRlZmF1bHRDaGVja2VkfGlubmVySFRNTHxzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmd8c3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nfHZhbHVlTGlua3xhYmJyfGFjY2VwdHxhY2NlcHRDaGFyc2V0fGFjY2Vzc0tleXxhY3Rpb258YWxsb3d8YWxsb3dVc2VyTWVkaWF8YWxsb3dQYXltZW50UmVxdWVzdHxhbGxvd0Z1bGxTY3JlZW58YWxsb3dUcmFuc3BhcmVuY3l8YWx0fGFzeW5jfGF1dG9Db21wbGV0ZXxhdXRvUGxheXxjYXB0dXJlfGNlbGxQYWRkaW5nfGNlbGxTcGFjaW5nfGNoYWxsZW5nZXxjaGFyU2V0fGNoZWNrZWR8Y2l0ZXxjbGFzc0lEfGNsYXNzTmFtZXxjb2xzfGNvbFNwYW58Y29udGVudHxjb250ZW50RWRpdGFibGV8Y29udGV4dE1lbnV8Y29udHJvbHN8Y29udHJvbHNMaXN0fGNvb3Jkc3xjcm9zc09yaWdpbnxkYXRhfGRhdGVUaW1lfGRlY29kaW5nfGRlZmF1bHR8ZGVmZXJ8ZGlyfGRpc2FibGVkfGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlfGRpc2FibGVSZW1vdGVQbGF5YmFja3xkb3dubG9hZHxkcmFnZ2FibGV8ZW5jVHlwZXxlbnRlcktleUhpbnR8Zm9ybXxmb3JtQWN0aW9ufGZvcm1FbmNUeXBlfGZvcm1NZXRob2R8Zm9ybU5vVmFsaWRhdGV8Zm9ybVRhcmdldHxmcmFtZUJvcmRlcnxoZWFkZXJzfGhlaWdodHxoaWRkZW58aGlnaHxocmVmfGhyZWZMYW5nfGh0bWxGb3J8aHR0cEVxdWl2fGlkfGlucHV0TW9kZXxpbnRlZ3JpdHl8aXN8a2V5UGFyYW1zfGtleVR5cGV8a2luZHxsYWJlbHxsYW5nfGxpc3R8bG9hZGluZ3xsb29wfGxvd3xtYXJnaW5IZWlnaHR8bWFyZ2luV2lkdGh8bWF4fG1heExlbmd0aHxtZWRpYXxtZWRpYUdyb3VwfG1ldGhvZHxtaW58bWluTGVuZ3RofG11bHRpcGxlfG11dGVkfG5hbWV8bm9uY2V8bm9WYWxpZGF0ZXxvcGVufG9wdGltdW18cGF0dGVybnxwbGFjZWhvbGRlcnxwbGF5c0lubGluZXxwb3N0ZXJ8cHJlbG9hZHxwcm9maWxlfHJhZGlvR3JvdXB8cmVhZE9ubHl8cmVmZXJyZXJQb2xpY3l8cmVsfHJlcXVpcmVkfHJldmVyc2VkfHJvbGV8cm93c3xyb3dTcGFufHNhbmRib3h8c2NvcGV8c2NvcGVkfHNjcm9sbGluZ3xzZWFtbGVzc3xzZWxlY3RlZHxzaGFwZXxzaXplfHNpemVzfHNsb3R8c3BhbnxzcGVsbENoZWNrfHNyY3xzcmNEb2N8c3JjTGFuZ3xzcmNTZXR8c3RhcnR8c3RlcHxzdHlsZXxzdW1tYXJ5fHRhYkluZGV4fHRhcmdldHx0aXRsZXx0cmFuc2xhdGV8dHlwZXx1c2VNYXB8dmFsdWV8d2lkdGh8d21vZGV8d3JhcHxhYm91dHxkYXRhdHlwZXxpbmxpc3R8cHJlZml4fHByb3BlcnR5fHJlc291cmNlfHR5cGVvZnx2b2NhYnxhdXRvQ2FwaXRhbGl6ZXxhdXRvQ29ycmVjdHxhdXRvU2F2ZXxjb2xvcnxpbmNyZW1lbnRhbHxmYWxsYmFja3xpbmVydHxpdGVtUHJvcHxpdGVtU2NvcGV8aXRlbVR5cGV8aXRlbUlEfGl0ZW1SZWZ8b258b3B0aW9ufHJlc3VsdHN8c2VjdXJpdHl8dW5zZWxlY3RhYmxlfGFjY2VudEhlaWdodHxhY2N1bXVsYXRlfGFkZGl0aXZlfGFsaWdubWVudEJhc2VsaW5lfGFsbG93UmVvcmRlcnxhbHBoYWJldGljfGFtcGxpdHVkZXxhcmFiaWNGb3JtfGFzY2VudHxhdHRyaWJ1dGVOYW1lfGF0dHJpYnV0ZVR5cGV8YXV0b1JldmVyc2V8YXppbXV0aHxiYXNlRnJlcXVlbmN5fGJhc2VsaW5lU2hpZnR8YmFzZVByb2ZpbGV8YmJveHxiZWdpbnxiaWFzfGJ5fGNhbGNNb2RlfGNhcEhlaWdodHxjbGlwfGNsaXBQYXRoVW5pdHN8Y2xpcFBhdGh8Y2xpcFJ1bGV8Y29sb3JJbnRlcnBvbGF0aW9ufGNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnN8Y29sb3JQcm9maWxlfGNvbG9yUmVuZGVyaW5nfGNvbnRlbnRTY3JpcHRUeXBlfGNvbnRlbnRTdHlsZVR5cGV8Y3Vyc29yfGN4fGN5fGR8ZGVjZWxlcmF0ZXxkZXNjZW50fGRpZmZ1c2VDb25zdGFudHxkaXJlY3Rpb258ZGlzcGxheXxkaXZpc29yfGRvbWluYW50QmFzZWxpbmV8ZHVyfGR4fGR5fGVkZ2VNb2RlfGVsZXZhdGlvbnxlbmFibGVCYWNrZ3JvdW5kfGVuZHxleHBvbmVudHxleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkfGZpbGx8ZmlsbE9wYWNpdHl8ZmlsbFJ1bGV8ZmlsdGVyfGZpbHRlclJlc3xmaWx0ZXJVbml0c3xmbG9vZENvbG9yfGZsb29kT3BhY2l0eXxmb2N1c2FibGV8Zm9udEZhbWlseXxmb250U2l6ZXxmb250U2l6ZUFkanVzdHxmb250U3RyZXRjaHxmb250U3R5bGV8Zm9udFZhcmlhbnR8Zm9udFdlaWdodHxmb3JtYXR8ZnJvbXxmcnxmeHxmeXxnMXxnMnxnbHlwaE5hbWV8Z2x5cGhPcmllbnRhdGlvbkhvcml6b250YWx8Z2x5cGhPcmllbnRhdGlvblZlcnRpY2FsfGdseXBoUmVmfGdyYWRpZW50VHJhbnNmb3JtfGdyYWRpZW50VW5pdHN8aGFuZ2luZ3xob3JpekFkdlh8aG9yaXpPcmlnaW5YfGlkZW9ncmFwaGljfGltYWdlUmVuZGVyaW5nfGlufGluMnxpbnRlcmNlcHR8a3xrMXxrMnxrM3xrNHxrZXJuZWxNYXRyaXh8a2VybmVsVW5pdExlbmd0aHxrZXJuaW5nfGtleVBvaW50c3xrZXlTcGxpbmVzfGtleVRpbWVzfGxlbmd0aEFkanVzdHxsZXR0ZXJTcGFjaW5nfGxpZ2h0aW5nQ29sb3J8bGltaXRpbmdDb25lQW5nbGV8bG9jYWx8bWFya2VyRW5kfG1hcmtlck1pZHxtYXJrZXJTdGFydHxtYXJrZXJIZWlnaHR8bWFya2VyVW5pdHN8bWFya2VyV2lkdGh8bWFza3xtYXNrQ29udGVudFVuaXRzfG1hc2tVbml0c3xtYXRoZW1hdGljYWx8bW9kZXxudW1PY3RhdmVzfG9mZnNldHxvcGFjaXR5fG9wZXJhdG9yfG9yZGVyfG9yaWVudHxvcmllbnRhdGlvbnxvcmlnaW58b3ZlcmZsb3d8b3ZlcmxpbmVQb3NpdGlvbnxvdmVybGluZVRoaWNrbmVzc3xwYW5vc2UxfHBhaW50T3JkZXJ8cGF0aExlbmd0aHxwYXR0ZXJuQ29udGVudFVuaXRzfHBhdHRlcm5UcmFuc2Zvcm18cGF0dGVyblVuaXRzfHBvaW50ZXJFdmVudHN8cG9pbnRzfHBvaW50c0F0WHxwb2ludHNBdFl8cG9pbnRzQXRafHByZXNlcnZlQWxwaGF8cHJlc2VydmVBc3BlY3RSYXRpb3xwcmltaXRpdmVVbml0c3xyfHJhZGl1c3xyZWZYfHJlZll8cmVuZGVyaW5nSW50ZW50fHJlcGVhdENvdW50fHJlcGVhdER1cnxyZXF1aXJlZEV4dGVuc2lvbnN8cmVxdWlyZWRGZWF0dXJlc3xyZXN0YXJ0fHJlc3VsdHxyb3RhdGV8cnh8cnl8c2NhbGV8c2VlZHxzaGFwZVJlbmRlcmluZ3xzbG9wZXxzcGFjaW5nfHNwZWN1bGFyQ29uc3RhbnR8c3BlY3VsYXJFeHBvbmVudHxzcGVlZHxzcHJlYWRNZXRob2R8c3RhcnRPZmZzZXR8c3RkRGV2aWF0aW9ufHN0ZW1ofHN0ZW12fHN0aXRjaFRpbGVzfHN0b3BDb2xvcnxzdG9wT3BhY2l0eXxzdHJpa2V0aHJvdWdoUG9zaXRpb258c3RyaWtldGhyb3VnaFRoaWNrbmVzc3xzdHJpbmd8c3Ryb2tlfHN0cm9rZURhc2hhcnJheXxzdHJva2VEYXNob2Zmc2V0fHN0cm9rZUxpbmVjYXB8c3Ryb2tlTGluZWpvaW58c3Ryb2tlTWl0ZXJsaW1pdHxzdHJva2VPcGFjaXR5fHN0cm9rZVdpZHRofHN1cmZhY2VTY2FsZXxzeXN0ZW1MYW5ndWFnZXx0YWJsZVZhbHVlc3x0YXJnZXRYfHRhcmdldFl8dGV4dEFuY2hvcnx0ZXh0RGVjb3JhdGlvbnx0ZXh0UmVuZGVyaW5nfHRleHRMZW5ndGh8dG98dHJhbnNmb3JtfHUxfHUyfHVuZGVybGluZVBvc2l0aW9ufHVuZGVybGluZVRoaWNrbmVzc3x1bmljb2RlfHVuaWNvZGVCaWRpfHVuaWNvZGVSYW5nZXx1bml0c1BlckVtfHZBbHBoYWJldGljfHZIYW5naW5nfHZJZGVvZ3JhcGhpY3x2TWF0aGVtYXRpY2FsfHZhbHVlc3x2ZWN0b3JFZmZlY3R8dmVyc2lvbnx2ZXJ0QWR2WXx2ZXJ0T3JpZ2luWHx2ZXJ0T3JpZ2luWXx2aWV3Qm94fHZpZXdUYXJnZXR8dmlzaWJpbGl0eXx3aWR0aHN8d29yZFNwYWNpbmd8d3JpdGluZ01vZGV8eHx4SGVpZ2h0fHgxfHgyfHhDaGFubmVsU2VsZWN0b3J8eGxpbmtBY3R1YXRlfHhsaW5rQXJjcm9sZXx4bGlua0hyZWZ8eGxpbmtSb2xlfHhsaW5rU2hvd3x4bGlua1RpdGxlfHhsaW5rVHlwZXx4bWxCYXNlfHhtbG5zfHhtbG5zWGxpbmt8eG1sTGFuZ3x4bWxTcGFjZXx5fHkxfHkyfHlDaGFubmVsU2VsZWN0b3J8enx6b29tQW5kUGFufGZvcnxjbGFzc3xhdXRvZm9jdXMpfCgoW0RkXVtBYV1bVHRdW0FhXXxbQWFdW1JyXVtJaV1bQWFdfHgpLS4qKSkkLyxpPXIoKGZ1bmN0aW9uKGUpe3JldHVybiBvLnRlc3QoZSl8fDExMT09PWUuY2hhckNvZGVBdCgwKSYmMTEwPT09ZS5jaGFyQ29kZUF0KDEpJiZlLmNoYXJDb2RlQXQoMik8OTF9KSl9LDIwOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKDYwOSksbz1TeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKSxpPVN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSxzPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksYT1yLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVELlJlYWN0Q3VycmVudE93bmVyLGw9e2tleTohMCxyZWY6ITAsX19zZWxmOiEwLF9fc291cmNlOiEwfTtmdW5jdGlvbiBjKGUsdCxuKXt2YXIgcixpPXt9LGM9bnVsbCx1PW51bGw7Zm9yKHIgaW4gdm9pZCAwIT09biYmKGM9XCJcIituKSx2b2lkIDAhPT10LmtleSYmKGM9XCJcIit0LmtleSksdm9pZCAwIT09dC5yZWYmJih1PXQucmVmKSx0KXMuY2FsbCh0LHIpJiYhbC5oYXNPd25Qcm9wZXJ0eShyKSYmKGlbcl09dFtyXSk7aWYoZSYmZS5kZWZhdWx0UHJvcHMpZm9yKHIgaW4gdD1lLmRlZmF1bHRQcm9wcyl2b2lkIDA9PT1pW3JdJiYoaVtyXT10W3JdKTtyZXR1cm57JCR0eXBlb2Y6byx0eXBlOmUsa2V5OmMscmVmOnUscHJvcHM6aSxfb3duZXI6YS5jdXJyZW50fX10LkZyYWdtZW50PWksdC5qc3g9Yyx0LmpzeHM9Y30sODQ4OmZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9bigyMCl9LDYwOTpmdW5jdGlvbihlKXtlLmV4cG9ydHM9d2luZG93LlJlYWN0fX0sdD17fTtmdW5jdGlvbiBuKHIpe3ZhciBvPXRbcl07aWYodm9pZCAwIT09bylyZXR1cm4gby5leHBvcnRzO3ZhciBpPXRbcl09e2V4cG9ydHM6e319O3JldHVybiBlW3JdKGksaS5leHBvcnRzLG4pLGkuZXhwb3J0c31uLm49ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIGUuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gZX07cmV0dXJuIG4uZCh0LHthOnR9KSx0fSxuLmQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHIgaW4gdCluLm8odCxyKSYmIW4ubyhlLHIpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiEwLGdldDp0W3JdfSl9LG4uZz1mdW5jdGlvbigpe2lmKFwib2JqZWN0XCI9PXR5cGVvZiBnbG9iYWxUaGlzKXJldHVybiBnbG9iYWxUaGlzO3RyeXtyZXR1cm4gdGhpc3x8bmV3IEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKX1jYXRjaChlKXtpZihcIm9iamVjdFwiPT10eXBlb2Ygd2luZG93KXJldHVybiB3aW5kb3d9fSgpLG4ubz1mdW5jdGlvbihlLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX0sbi5yPWZ1bmN0aW9uKGUpe1widW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZTpcIk1vZHVsZVwifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9O3ZhciByPXt9O24ucihyKSxuLmQocix7QWxlcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gR2h9LEF2YXRhcjpmdW5jdGlvbigpe3JldHVybiBvaX0sQmFkZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gWm99LEJyZWFkY3J1bWI6ZnVuY3Rpb24oKXtyZXR1cm4ga2t9LEJ1dHRvbjpmdW5jdGlvbigpe3JldHVybiBkZX0sQnV0dG9uR3JvdXA6ZnVuY3Rpb24oKXtyZXR1cm4gUGl9LENoZWNrYm94OmZ1bmN0aW9uKCl7cmV0dXJuIE1lfSxDb250YWluZXI6ZnVuY3Rpb24oKXtyZXR1cm4gcWh9LERhdGVQaWNrZXI6ZnVuY3Rpb24oKXtyZXR1cm4gRk99LERpYWxvZzpmdW5jdGlvbigpe3JldHVybiBxa30sRHJhd2VyOmZ1bmN0aW9uKCl7cmV0dXJuIENDfSxEcm9wZG93bk1lbnU6ZnVuY3Rpb24oKXtyZXR1cm4gR0V9LEVkaXRvcklucHV0OmZ1bmN0aW9uKCl7cmV0dXJuIE5TfSxJbnB1dDpmdW5jdGlvbigpe3JldHVybiBmaX0sTGFiZWw6ZnVuY3Rpb24oKXtyZXR1cm4gZ2l9LExvYWRlcjpmdW5jdGlvbigpe3JldHVybiBiaX0sTWVudTpmdW5jdGlvbigpe3JldHVybiBaU30sUGFnaW5hdGlvbjpmdW5jdGlvbigpe3JldHVybiBHQ30sUHJvZ3Jlc3NCYXI6ZnVuY3Rpb24oKXtyZXR1cm4geGl9LFByb2dyZXNzU3RlcHM6ZnVuY3Rpb24oKXtyZXR1cm4gelN9LFJhZGlvQnV0dG9uOmZ1bmN0aW9uKCl7cmV0dXJuIEtvfSxTZWFyY2hCb3g6ZnVuY3Rpb24oKXtyZXR1cm4gTUV9LFNlbGVjdDpmdW5jdGlvbigpe3JldHVybiBObX0sU2lkZWJhcjpmdW5jdGlvbigpe3JldHVybiBja30sU2tlbGV0b246ZnVuY3Rpb24oKXtyZXR1cm4gVlN9LFN3aXRjaDpmdW5jdGlvbigpe3JldHVybiBiZX0sVGFiczpmdW5jdGlvbigpe3JldHVybiBhbX0sVGV4dEFyZWE6ZnVuY3Rpb24oKXtyZXR1cm4gcml9LFRpdGxlOmZ1bmN0aW9uKCl7cmV0dXJuIHlpfSxUb2FzdGVyOmZ1bmN0aW9uKCl7cmV0dXJuIG1ofSxUb29sdGlwOmZ1bmN0aW9uKCl7cmV0dXJuIERvfSxUb3BiYXI6ZnVuY3Rpb24oKXtyZXR1cm4gbkV9LHRvYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIEhtfX0pO3ZhciBvPXt9O24ucihvKSxuLmQobyx7QnV0dG9uOmZ1bmN0aW9uKCl7cmV0dXJuIFhDfSxDYXB0aW9uTGFiZWw6ZnVuY3Rpb24oKXtyZXR1cm4gWkN9LENoZXZyb246ZnVuY3Rpb24oKXtyZXR1cm4gSkN9LERheTpmdW5jdGlvbigpe3JldHVybiBRQ30sRGF5QnV0dG9uOmZ1bmN0aW9uKCl7cmV0dXJuIGVffSxEcm9wZG93bjpmdW5jdGlvbigpe3JldHVybiB0X30sRHJvcGRvd25OYXY6ZnVuY3Rpb24oKXtyZXR1cm4gbl99LEZvb3RlcjpmdW5jdGlvbigpe3JldHVybiByX30sTW9udGg6ZnVuY3Rpb24oKXtyZXR1cm4gb199LE1vbnRoQ2FwdGlvbjpmdW5jdGlvbigpe3JldHVybiBpX30sTW9udGhHcmlkOmZ1bmN0aW9uKCl7cmV0dXJuIHNffSxNb250aHM6ZnVuY3Rpb24oKXtyZXR1cm4gYV99LE1vbnRoc0Ryb3Bkb3duOmZ1bmN0aW9uKCl7cmV0dXJuIHVffSxOYXY6ZnVuY3Rpb24oKXtyZXR1cm4gZF99LE5leHRNb250aEJ1dHRvbjpmdW5jdGlvbigpe3JldHVybiBmX30sT3B0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIG1ffSxQcmV2aW91c01vbnRoQnV0dG9uOmZ1bmN0aW9uKCl7cmV0dXJuIGhffSxSb290OmZ1bmN0aW9uKCl7cmV0dXJuIHBffSxTZWxlY3Q6ZnVuY3Rpb24oKXtyZXR1cm4gZ199LFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4geV99LFdlZWtOdW1iZXI6ZnVuY3Rpb24oKXtyZXR1cm4geF99LFdlZWtOdW1iZXJIZWFkZXI6ZnVuY3Rpb24oKXtyZXR1cm4gd199LFdlZWtkYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdl99LFdlZWtkYXlzOmZ1bmN0aW9uKCl7cmV0dXJuIGJffSxXZWVrczpmdW5jdGlvbigpe3JldHVybiBTX30sWWVhcnNEcm9wZG93bjpmdW5jdGlvbigpe3JldHVybiBrX319KTt2YXIgaT17fTtuLnIoaSksbi5kKGkse2Zvcm1hdENhcHRpb246ZnVuY3Rpb24oKXtyZXR1cm4gTFB9LGZvcm1hdERheTpmdW5jdGlvbigpe3JldHVybiB6UH0sZm9ybWF0TW9udGhDYXB0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIEZQfSxmb3JtYXRNb250aERyb3Bkb3duOmZ1bmN0aW9uKCl7cmV0dXJuIEJQfSxmb3JtYXRXZWVrTnVtYmVyOmZ1bmN0aW9uKCl7cmV0dXJuIFdQfSxmb3JtYXRXZWVrTnVtYmVySGVhZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIFZQfSxmb3JtYXRXZWVrZGF5TmFtZTpmdW5jdGlvbigpe3JldHVybiBVUH0sZm9ybWF0WWVhckNhcHRpb246ZnVuY3Rpb24oKXtyZXR1cm4gWVB9LGZvcm1hdFllYXJEcm9wZG93bjpmdW5jdGlvbigpe3JldHVybiAkUH19KTt2YXIgcz17fTtuLnIocyksbi5kKHMse2xhYmVsQ2FwdGlvbjpmdW5jdGlvbigpe3JldHVybiBLUH0sbGFiZWxEYXk6ZnVuY3Rpb24oKXtyZXR1cm4gWFB9LGxhYmVsRGF5QnV0dG9uOmZ1bmN0aW9uKCl7cmV0dXJuIEdQfSxsYWJlbEdyaWQ6ZnVuY3Rpb24oKXtyZXR1cm4gSFB9LGxhYmVsR3JpZGNlbGw6ZnVuY3Rpb24oKXtyZXR1cm4gcVB9LGxhYmVsTW9udGhEcm9wZG93bjpmdW5jdGlvbigpe3JldHVybiBKUH0sbGFiZWxOYXY6ZnVuY3Rpb24oKXtyZXR1cm4gWlB9LGxhYmVsTmV4dDpmdW5jdGlvbigpe3JldHVybiBRUH0sbGFiZWxQcmV2aW91czpmdW5jdGlvbigpe3JldHVybiBlT30sbGFiZWxXZWVrTnVtYmVyOmZ1bmN0aW9uKCl7cmV0dXJuIG5PfSxsYWJlbFdlZWtOdW1iZXJIZWFkZXI6ZnVuY3Rpb24oKXtyZXR1cm4gck99LGxhYmVsV2Vla2RheTpmdW5jdGlvbigpe3JldHVybiB0T30sbGFiZWxZZWFyRHJvcGRvd246ZnVuY3Rpb24oKXtyZXR1cm4gb099fSk7dmFyIGE9big2MDkpLGw9bi5uKGEpO2NvbnN0IGM9ZT0+e2NvbnN0IHQ9bShlKSx7Y29uZmxpY3RpbmdDbGFzc0dyb3VwczpuLGNvbmZsaWN0aW5nQ2xhc3NHcm91cE1vZGlmaWVyczpyfT1lO3JldHVybntnZXRDbGFzc0dyb3VwSWQ6ZT0+e2NvbnN0IG49ZS5zcGxpdChcIi1cIik7cmV0dXJuXCJcIj09PW5bMF0mJjEhPT1uLmxlbmd0aCYmbi5zaGlmdCgpLHUobix0KXx8ZihlKX0sZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzOihlLHQpPT57Y29uc3Qgbz1uW2VdfHxbXTtyZXR1cm4gdCYmcltlXT9bLi4ubywuLi5yW2VdXTpvfX19LHU9KGUsdCk9PntpZigwPT09ZS5sZW5ndGgpcmV0dXJuIHQuY2xhc3NHcm91cElkO2NvbnN0IG49ZVswXSxyPXQubmV4dFBhcnQuZ2V0KG4pLG89cj91KGUuc2xpY2UoMSkscik6dm9pZCAwO2lmKG8pcmV0dXJuIG87aWYoMD09PXQudmFsaWRhdG9ycy5sZW5ndGgpcmV0dXJuO2NvbnN0IGk9ZS5qb2luKFwiLVwiKTtyZXR1cm4gdC52YWxpZGF0b3JzLmZpbmQoKCh7dmFsaWRhdG9yOmV9KT0+ZShpKSkpPy5jbGFzc0dyb3VwSWR9LGQ9L15cXFsoLispXFxdJC8sZj1lPT57aWYoZC50ZXN0KGUpKXtjb25zdCB0PWQuZXhlYyhlKVsxXSxuPXQ/LnN1YnN0cmluZygwLHQuaW5kZXhPZihcIjpcIikpO2lmKG4pcmV0dXJuXCJhcmJpdHJhcnkuLlwiK259fSxtPWU9Pntjb25zdHt0aGVtZTp0LHByZWZpeDpufT1lLHI9e25leHRQYXJ0Om5ldyBNYXAsdmFsaWRhdG9yczpbXX07cmV0dXJuIHkoT2JqZWN0LmVudHJpZXMoZS5jbGFzc0dyb3VwcyksbikuZm9yRWFjaCgoKFtlLG5dKT0+e2gobixyLGUsdCl9KSkscn0saD0oZSx0LG4scik9PntlLmZvckVhY2goKGU9PntpZihcInN0cmluZ1wiIT10eXBlb2YgZSl7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZSlyZXR1cm4gZyhlKT92b2lkIGgoZShyKSx0LG4scik6dm9pZCB0LnZhbGlkYXRvcnMucHVzaCh7dmFsaWRhdG9yOmUsY2xhc3NHcm91cElkOm59KTtPYmplY3QuZW50cmllcyhlKS5mb3JFYWNoKCgoW2Usb10pPT57aChvLHAodCxlKSxuLHIpfSkpfWVsc2UoXCJcIj09PWU/dDpwKHQsZSkpLmNsYXNzR3JvdXBJZD1ufSkpfSxwPShlLHQpPT57bGV0IG49ZTtyZXR1cm4gdC5zcGxpdChcIi1cIikuZm9yRWFjaCgoZT0+e24ubmV4dFBhcnQuaGFzKGUpfHxuLm5leHRQYXJ0LnNldChlLHtuZXh0UGFydDpuZXcgTWFwLHZhbGlkYXRvcnM6W119KSxuPW4ubmV4dFBhcnQuZ2V0KGUpfSkpLG59LGc9ZT0+ZS5pc1RoZW1lR2V0dGVyLHk9KGUsdCk9PnQ/ZS5tYXAoKChbZSxuXSk9PltlLG4ubWFwKChlPT5cInN0cmluZ1wiPT10eXBlb2YgZT90K2U6XCJvYmplY3RcIj09dHlwZW9mIGU/T2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGUpLm1hcCgoKFtlLG5dKT0+W3QrZSxuXSkpKTplKSldKSk6ZSx2PWU9PntpZihlPDEpcmV0dXJue2dldDooKT0+e30sc2V0OigpPT57fX07bGV0IHQ9MCxuPW5ldyBNYXAscj1uZXcgTWFwO2NvbnN0IG89KG8saSk9PntuLnNldChvLGkpLHQrKyx0PmUmJih0PTAscj1uLG49bmV3IE1hcCl9O3JldHVybntnZXQoZSl7bGV0IHQ9bi5nZXQoZSk7cmV0dXJuIHZvaWQgMCE9PXQ/dDp2b2lkIDAhPT0odD1yLmdldChlKSk/KG8oZSx0KSx0KTp2b2lkIDB9LHNldChlLHQpe24uaGFzKGUpP24uc2V0KGUsdCk6byhlLHQpfX19LGI9ZT0+e2NvbnN0e3NlcGFyYXRvcjp0LGV4cGVyaW1lbnRhbFBhcnNlQ2xhc3NOYW1lOm59PWUscj0xPT09dC5sZW5ndGgsbz10WzBdLGk9dC5sZW5ndGgscz1lPT57Y29uc3Qgbj1bXTtsZXQgcyxhPTAsbD0wO2ZvcihsZXQgYz0wO2M8ZS5sZW5ndGg7YysrKXtsZXQgdT1lW2NdO2lmKDA9PT1hKXtpZih1PT09byYmKHJ8fGUuc2xpY2UoYyxjK2kpPT09dCkpe24ucHVzaChlLnNsaWNlKGwsYykpLGw9YytpO2NvbnRpbnVlfWlmKFwiL1wiPT09dSl7cz1jO2NvbnRpbnVlfX1cIltcIj09PXU/YSsrOlwiXVwiPT09dSYmYS0tfWNvbnN0IGM9MD09PW4ubGVuZ3RoP2U6ZS5zdWJzdHJpbmcobCksdT1jLnN0YXJ0c1dpdGgoXCIhXCIpO3JldHVybnttb2RpZmllcnM6bixoYXNJbXBvcnRhbnRNb2RpZmllcjp1LGJhc2VDbGFzc05hbWU6dT9jLnN1YnN0cmluZygxKTpjLG1heWJlUG9zdGZpeE1vZGlmaWVyUG9zaXRpb246cyYmcz5sP3MtbDp2b2lkIDB9fTtyZXR1cm4gbj9lPT5uKHtjbGFzc05hbWU6ZSxwYXJzZUNsYXNzTmFtZTpzfSk6c30seD1lPT57aWYoZS5sZW5ndGg8PTEpcmV0dXJuIGU7Y29uc3QgdD1bXTtsZXQgbj1bXTtyZXR1cm4gZS5mb3JFYWNoKChlPT57XCJbXCI9PT1lWzBdPyh0LnB1c2goLi4ubi5zb3J0KCksZSksbj1bXSk6bi5wdXNoKGUpfSkpLHQucHVzaCguLi5uLnNvcnQoKSksdH0sdz0vXFxzKy87ZnVuY3Rpb24gUygpe2xldCBlLHQsbj0wLHI9XCJcIjtmb3IoO248YXJndW1lbnRzLmxlbmd0aDspKGU9YXJndW1lbnRzW24rK10pJiYodD1rKGUpKSYmKHImJihyKz1cIiBcIikscis9dCk7cmV0dXJuIHJ9Y29uc3Qgaz1lPT57aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIGU7bGV0IHQsbj1cIlwiO2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKWVbcl0mJih0PWsoZVtyXSkpJiYobiYmKG4rPVwiIFwiKSxuKz10KTtyZXR1cm4gbn07ZnVuY3Rpb24gRShlLC4uLnQpe2xldCBuLHIsbyxpPWZ1bmN0aW9uKGEpe2NvbnN0IGw9dC5yZWR1Y2UoKChlLHQpPT50KGUpKSxlKCkpO3JldHVybiBuPShlPT4oe2NhY2hlOnYoZS5jYWNoZVNpemUpLHBhcnNlQ2xhc3NOYW1lOmIoZSksLi4uYyhlKX0pKShsKSxyPW4uY2FjaGUuZ2V0LG89bi5jYWNoZS5zZXQsaT1zLHMoYSl9O2Z1bmN0aW9uIHMoZSl7Y29uc3QgdD1yKGUpO2lmKHQpcmV0dXJuIHQ7Y29uc3QgaT0oKGUsdCk9Pntjb25zdHtwYXJzZUNsYXNzTmFtZTpuLGdldENsYXNzR3JvdXBJZDpyLGdldENvbmZsaWN0aW5nQ2xhc3NHcm91cElkczpvfT10LGk9W10scz1lLnRyaW0oKS5zcGxpdCh3KTtsZXQgYT1cIlwiO2ZvcihsZXQgZT1zLmxlbmd0aC0xO2U+PTA7ZS09MSl7Y29uc3QgdD1zW2VdLHttb2RpZmllcnM6bCxoYXNJbXBvcnRhbnRNb2RpZmllcjpjLGJhc2VDbGFzc05hbWU6dSxtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uOmR9PW4odCk7bGV0IGY9Qm9vbGVhbihkKSxtPXIoZj91LnN1YnN0cmluZygwLGQpOnUpO2lmKCFtKXtpZighZil7YT10KyhhLmxlbmd0aD4wP1wiIFwiK2E6YSk7Y29udGludWV9aWYobT1yKHUpLCFtKXthPXQrKGEubGVuZ3RoPjA/XCIgXCIrYTphKTtjb250aW51ZX1mPSExfWNvbnN0IGg9eChsKS5qb2luKFwiOlwiKSxwPWM/aCtcIiFcIjpoLGc9cCttO2lmKGkuaW5jbHVkZXMoZykpY29udGludWU7aS5wdXNoKGcpO2NvbnN0IHk9byhtLGYpO2ZvcihsZXQgZT0wO2U8eS5sZW5ndGg7KytlKXtjb25zdCB0PXlbZV07aS5wdXNoKHArdCl9YT10KyhhLmxlbmd0aD4wP1wiIFwiK2E6YSl9cmV0dXJuIGF9KShlLG4pO3JldHVybiBvKGUsaSksaX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gaShTLmFwcGx5KG51bGwsYXJndW1lbnRzKSl9fWNvbnN0IEM9ZT0+e2NvbnN0IHQ9dD0+dFtlXXx8W107cmV0dXJuIHQuaXNUaGVtZUdldHRlcj0hMCx0fSxfPS9eXFxbKD86KFthLXotXSspOik/KC4rKVxcXSQvaSxQPS9eXFxkK1xcL1xcZCskLyxPPW5ldyBTZXQoW1wicHhcIixcImZ1bGxcIixcInNjcmVlblwiXSksTj0vXihcXGQrKFxcLlxcZCspPyk/KHhzfHNtfG1kfGxnfHhsKSQvLFQ9L1xcZCsoJXxweHxyP2VtfFtzZGxdP3YoW2h3aWJdfG1pbnxtYXgpfHB0fHBjfGlufGNtfG1tfGNhcHxjaHxleHxyP2xofGNxKHd8aHxpfGJ8bWlufG1heCkpfFxcYihjYWxjfG1pbnxtYXh8Y2xhbXApXFwoLitcXCl8XjAkLyxNPS9eKHJnYmE/fGhzbGE/fGh3Ynwob2spPyhsYWJ8bGNoKSlcXCguK1xcKSQvLFI9L14oaW5zZXRfKT8tPygoXFxkKyk/XFwuPyhcXGQrKVthLXpdK3wwKV8tPygoXFxkKyk/XFwuPyhcXGQrKVthLXpdK3wwKS8sRD0vXih1cmx8aW1hZ2V8aW1hZ2Utc2V0fGNyb3NzLWZhZGV8ZWxlbWVudHwocmVwZWF0aW5nLSk/KGxpbmVhcnxyYWRpYWx8Y29uaWMpLWdyYWRpZW50KVxcKC4rXFwpJC8saj1lPT5JKGUpfHxPLmhhcyhlKXx8UC50ZXN0KGUpLEE9ZT0+RyhlLFwibGVuZ3RoXCIsWCksST1lPT5Cb29sZWFuKGUpJiYhTnVtYmVyLmlzTmFOKE51bWJlcihlKSksTD1lPT5HKGUsXCJudW1iZXJcIixJKSxGPWU9PkJvb2xlYW4oZSkmJk51bWJlci5pc0ludGVnZXIoTnVtYmVyKGUpKSx6PWU9PmUuZW5kc1dpdGgoXCIlXCIpJiZJKGUuc2xpY2UoMCwtMSkpLEI9ZT0+Xy50ZXN0KGUpLFc9ZT0+Ti50ZXN0KGUpLFY9bmV3IFNldChbXCJsZW5ndGhcIixcInNpemVcIixcInBlcmNlbnRhZ2VcIl0pLFU9ZT0+RyhlLFYsWiksJD1lPT5HKGUsXCJwb3NpdGlvblwiLFopLFk9bmV3IFNldChbXCJpbWFnZVwiLFwidXJsXCJdKSxIPWU9PkcoZSxZLFEpLEs9ZT0+RyhlLFwiXCIsSikscT0oKT0+ITAsRz0oZSx0LG4pPT57Y29uc3Qgcj1fLmV4ZWMoZSk7cmV0dXJuISFyJiYoclsxXT9cInN0cmluZ1wiPT10eXBlb2YgdD9yWzFdPT09dDp0LmhhcyhyWzFdKTpuKHJbMl0pKX0sWD1lPT5ULnRlc3QoZSkmJiFNLnRlc3QoZSksWj0oKT0+ITEsSj1lPT5SLnRlc3QoZSksUT1lPT5ELnRlc3QoZSksZWU9KFN5bWJvbC50b1N0cmluZ1RhZywoKT0+e2NvbnN0IGU9QyhcImNvbG9yc1wiKSx0PUMoXCJzcGFjaW5nXCIpLG49QyhcImJsdXJcIikscj1DKFwiYnJpZ2h0bmVzc1wiKSxvPUMoXCJib3JkZXJDb2xvclwiKSxpPUMoXCJib3JkZXJSYWRpdXNcIikscz1DKFwiYm9yZGVyU3BhY2luZ1wiKSxhPUMoXCJib3JkZXJXaWR0aFwiKSxsPUMoXCJjb250cmFzdFwiKSxjPUMoXCJncmF5c2NhbGVcIiksdT1DKFwiaHVlUm90YXRlXCIpLGQ9QyhcImludmVydFwiKSxmPUMoXCJnYXBcIiksbT1DKFwiZ3JhZGllbnRDb2xvclN0b3BzXCIpLGg9QyhcImdyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zXCIpLHA9QyhcImluc2V0XCIpLGc9QyhcIm1hcmdpblwiKSx5PUMoXCJvcGFjaXR5XCIpLHY9QyhcInBhZGRpbmdcIiksYj1DKFwic2F0dXJhdGVcIikseD1DKFwic2NhbGVcIiksdz1DKFwic2VwaWFcIiksUz1DKFwic2tld1wiKSxrPUMoXCJzcGFjZVwiKSxFPUMoXCJ0cmFuc2xhdGVcIiksXz0oKT0+W1wiYXV0b1wiLEIsdF0sUD0oKT0+W0IsdF0sTz0oKT0+W1wiXCIsaixBXSxOPSgpPT5bXCJhdXRvXCIsSSxCXSxUPSgpPT5bXCJcIixcIjBcIixCXSxNPSgpPT5bSSxCXTtyZXR1cm57Y2FjaGVTaXplOjUwMCxzZXBhcmF0b3I6XCI6XCIsdGhlbWU6e2NvbG9yczpbcV0sc3BhY2luZzpbaixBXSxibHVyOltcIm5vbmVcIixcIlwiLFcsQl0sYnJpZ2h0bmVzczpNKCksYm9yZGVyQ29sb3I6W2VdLGJvcmRlclJhZGl1czpbXCJub25lXCIsXCJcIixcImZ1bGxcIixXLEJdLGJvcmRlclNwYWNpbmc6UCgpLGJvcmRlcldpZHRoOk8oKSxjb250cmFzdDpNKCksZ3JheXNjYWxlOlQoKSxodWVSb3RhdGU6TSgpLGludmVydDpUKCksZ2FwOlAoKSxncmFkaWVudENvbG9yU3RvcHM6W2VdLGdyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zOlt6LEFdLGluc2V0Ol8oKSxtYXJnaW46XygpLG9wYWNpdHk6TSgpLHBhZGRpbmc6UCgpLHNhdHVyYXRlOk0oKSxzY2FsZTpNKCksc2VwaWE6VCgpLHNrZXc6TSgpLHNwYWNlOlAoKSx0cmFuc2xhdGU6UCgpfSxjbGFzc0dyb3Vwczp7YXNwZWN0Olt7YXNwZWN0OltcImF1dG9cIixcInNxdWFyZVwiLFwidmlkZW9cIixCXX1dLGNvbnRhaW5lcjpbXCJjb250YWluZXJcIl0sY29sdW1uczpbe2NvbHVtbnM6W1ddfV0sXCJicmVhay1hZnRlclwiOlt7XCJicmVhay1hZnRlclwiOltcImF1dG9cIixcImF2b2lkXCIsXCJhbGxcIixcImF2b2lkLXBhZ2VcIixcInBhZ2VcIixcImxlZnRcIixcInJpZ2h0XCIsXCJjb2x1bW5cIl19XSxcImJyZWFrLWJlZm9yZVwiOlt7XCJicmVhay1iZWZvcmVcIjpbXCJhdXRvXCIsXCJhdm9pZFwiLFwiYWxsXCIsXCJhdm9pZC1wYWdlXCIsXCJwYWdlXCIsXCJsZWZ0XCIsXCJyaWdodFwiLFwiY29sdW1uXCJdfV0sXCJicmVhay1pbnNpZGVcIjpbe1wiYnJlYWstaW5zaWRlXCI6W1wiYXV0b1wiLFwiYXZvaWRcIixcImF2b2lkLXBhZ2VcIixcImF2b2lkLWNvbHVtblwiXX1dLFwiYm94LWRlY29yYXRpb25cIjpbe1wiYm94LWRlY29yYXRpb25cIjpbXCJzbGljZVwiLFwiY2xvbmVcIl19XSxib3g6W3tib3g6W1wiYm9yZGVyXCIsXCJjb250ZW50XCJdfV0sZGlzcGxheTpbXCJibG9ja1wiLFwiaW5saW5lLWJsb2NrXCIsXCJpbmxpbmVcIixcImZsZXhcIixcImlubGluZS1mbGV4XCIsXCJ0YWJsZVwiLFwiaW5saW5lLXRhYmxlXCIsXCJ0YWJsZS1jYXB0aW9uXCIsXCJ0YWJsZS1jZWxsXCIsXCJ0YWJsZS1jb2x1bW5cIixcInRhYmxlLWNvbHVtbi1ncm91cFwiLFwidGFibGUtZm9vdGVyLWdyb3VwXCIsXCJ0YWJsZS1oZWFkZXItZ3JvdXBcIixcInRhYmxlLXJvdy1ncm91cFwiLFwidGFibGUtcm93XCIsXCJmbG93LXJvb3RcIixcImdyaWRcIixcImlubGluZS1ncmlkXCIsXCJjb250ZW50c1wiLFwibGlzdC1pdGVtXCIsXCJoaWRkZW5cIl0sZmxvYXQ6W3tmbG9hdDpbXCJyaWdodFwiLFwibGVmdFwiLFwibm9uZVwiLFwic3RhcnRcIixcImVuZFwiXX1dLGNsZWFyOlt7Y2xlYXI6W1wibGVmdFwiLFwicmlnaHRcIixcImJvdGhcIixcIm5vbmVcIixcInN0YXJ0XCIsXCJlbmRcIl19XSxpc29sYXRpb246W1wiaXNvbGF0ZVwiLFwiaXNvbGF0aW9uLWF1dG9cIl0sXCJvYmplY3QtZml0XCI6W3tvYmplY3Q6W1wiY29udGFpblwiLFwiY292ZXJcIixcImZpbGxcIixcIm5vbmVcIixcInNjYWxlLWRvd25cIl19XSxcIm9iamVjdC1wb3NpdGlvblwiOlt7b2JqZWN0OltcImJvdHRvbVwiLFwiY2VudGVyXCIsXCJsZWZ0XCIsXCJsZWZ0LWJvdHRvbVwiLFwibGVmdC10b3BcIixcInJpZ2h0XCIsXCJyaWdodC1ib3R0b21cIixcInJpZ2h0LXRvcFwiLFwidG9wXCIsQl19XSxvdmVyZmxvdzpbe292ZXJmbG93OltcImF1dG9cIixcImhpZGRlblwiLFwiY2xpcFwiLFwidmlzaWJsZVwiLFwic2Nyb2xsXCJdfV0sXCJvdmVyZmxvdy14XCI6W3tcIm92ZXJmbG93LXhcIjpbXCJhdXRvXCIsXCJoaWRkZW5cIixcImNsaXBcIixcInZpc2libGVcIixcInNjcm9sbFwiXX1dLFwib3ZlcmZsb3cteVwiOlt7XCJvdmVyZmxvdy15XCI6W1wiYXV0b1wiLFwiaGlkZGVuXCIsXCJjbGlwXCIsXCJ2aXNpYmxlXCIsXCJzY3JvbGxcIl19XSxvdmVyc2Nyb2xsOlt7b3ZlcnNjcm9sbDpbXCJhdXRvXCIsXCJjb250YWluXCIsXCJub25lXCJdfV0sXCJvdmVyc2Nyb2xsLXhcIjpbe1wib3ZlcnNjcm9sbC14XCI6W1wiYXV0b1wiLFwiY29udGFpblwiLFwibm9uZVwiXX1dLFwib3ZlcnNjcm9sbC15XCI6W3tcIm92ZXJzY3JvbGwteVwiOltcImF1dG9cIixcImNvbnRhaW5cIixcIm5vbmVcIl19XSxwb3NpdGlvbjpbXCJzdGF0aWNcIixcImZpeGVkXCIsXCJhYnNvbHV0ZVwiLFwicmVsYXRpdmVcIixcInN0aWNreVwiXSxpbnNldDpbe2luc2V0OltwXX1dLFwiaW5zZXQteFwiOlt7XCJpbnNldC14XCI6W3BdfV0sXCJpbnNldC15XCI6W3tcImluc2V0LXlcIjpbcF19XSxzdGFydDpbe3N0YXJ0OltwXX1dLGVuZDpbe2VuZDpbcF19XSx0b3A6W3t0b3A6W3BdfV0scmlnaHQ6W3tyaWdodDpbcF19XSxib3R0b206W3tib3R0b206W3BdfV0sbGVmdDpbe2xlZnQ6W3BdfV0sdmlzaWJpbGl0eTpbXCJ2aXNpYmxlXCIsXCJpbnZpc2libGVcIixcImNvbGxhcHNlXCJdLHo6W3t6OltcImF1dG9cIixGLEJdfV0sYmFzaXM6W3tiYXNpczpfKCl9XSxcImZsZXgtZGlyZWN0aW9uXCI6W3tmbGV4OltcInJvd1wiLFwicm93LXJldmVyc2VcIixcImNvbFwiLFwiY29sLXJldmVyc2VcIl19XSxcImZsZXgtd3JhcFwiOlt7ZmxleDpbXCJ3cmFwXCIsXCJ3cmFwLXJldmVyc2VcIixcIm5vd3JhcFwiXX1dLGZsZXg6W3tmbGV4OltcIjFcIixcImF1dG9cIixcImluaXRpYWxcIixcIm5vbmVcIixCXX1dLGdyb3c6W3tncm93OlQoKX1dLHNocmluazpbe3NocmluazpUKCl9XSxvcmRlcjpbe29yZGVyOltcImZpcnN0XCIsXCJsYXN0XCIsXCJub25lXCIsRixCXX1dLFwiZ3JpZC1jb2xzXCI6W3tcImdyaWQtY29sc1wiOltxXX1dLFwiY29sLXN0YXJ0LWVuZFwiOlt7Y29sOltcImF1dG9cIix7c3BhbjpbXCJmdWxsXCIsRixCXX0sQl19XSxcImNvbC1zdGFydFwiOlt7XCJjb2wtc3RhcnRcIjpOKCl9XSxcImNvbC1lbmRcIjpbe1wiY29sLWVuZFwiOk4oKX1dLFwiZ3JpZC1yb3dzXCI6W3tcImdyaWQtcm93c1wiOltxXX1dLFwicm93LXN0YXJ0LWVuZFwiOlt7cm93OltcImF1dG9cIix7c3BhbjpbRixCXX0sQl19XSxcInJvdy1zdGFydFwiOlt7XCJyb3ctc3RhcnRcIjpOKCl9XSxcInJvdy1lbmRcIjpbe1wicm93LWVuZFwiOk4oKX1dLFwiZ3JpZC1mbG93XCI6W3tcImdyaWQtZmxvd1wiOltcInJvd1wiLFwiY29sXCIsXCJkZW5zZVwiLFwicm93LWRlbnNlXCIsXCJjb2wtZGVuc2VcIl19XSxcImF1dG8tY29sc1wiOlt7XCJhdXRvLWNvbHNcIjpbXCJhdXRvXCIsXCJtaW5cIixcIm1heFwiLFwiZnJcIixCXX1dLFwiYXV0by1yb3dzXCI6W3tcImF1dG8tcm93c1wiOltcImF1dG9cIixcIm1pblwiLFwibWF4XCIsXCJmclwiLEJdfV0sZ2FwOlt7Z2FwOltmXX1dLFwiZ2FwLXhcIjpbe1wiZ2FwLXhcIjpbZl19XSxcImdhcC15XCI6W3tcImdhcC15XCI6W2ZdfV0sXCJqdXN0aWZ5LWNvbnRlbnRcIjpbe2p1c3RpZnk6W1wibm9ybWFsXCIsXCJzdGFydFwiLFwiZW5kXCIsXCJjZW50ZXJcIixcImJldHdlZW5cIixcImFyb3VuZFwiLFwiZXZlbmx5XCIsXCJzdHJldGNoXCJdfV0sXCJqdXN0aWZ5LWl0ZW1zXCI6W3tcImp1c3RpZnktaXRlbXNcIjpbXCJzdGFydFwiLFwiZW5kXCIsXCJjZW50ZXJcIixcInN0cmV0Y2hcIl19XSxcImp1c3RpZnktc2VsZlwiOlt7XCJqdXN0aWZ5LXNlbGZcIjpbXCJhdXRvXCIsXCJzdGFydFwiLFwiZW5kXCIsXCJjZW50ZXJcIixcInN0cmV0Y2hcIl19XSxcImFsaWduLWNvbnRlbnRcIjpbe2NvbnRlbnQ6W1wibm9ybWFsXCIsXCJzdGFydFwiLFwiZW5kXCIsXCJjZW50ZXJcIixcImJldHdlZW5cIixcImFyb3VuZFwiLFwiZXZlbmx5XCIsXCJzdHJldGNoXCIsXCJiYXNlbGluZVwiXX1dLFwiYWxpZ24taXRlbXNcIjpbe2l0ZW1zOltcInN0YXJ0XCIsXCJlbmRcIixcImNlbnRlclwiLFwiYmFzZWxpbmVcIixcInN0cmV0Y2hcIl19XSxcImFsaWduLXNlbGZcIjpbe3NlbGY6W1wiYXV0b1wiLFwic3RhcnRcIixcImVuZFwiLFwiY2VudGVyXCIsXCJzdHJldGNoXCIsXCJiYXNlbGluZVwiXX1dLFwicGxhY2UtY29udGVudFwiOlt7XCJwbGFjZS1jb250ZW50XCI6W1wic3RhcnRcIixcImVuZFwiLFwiY2VudGVyXCIsXCJiZXR3ZWVuXCIsXCJhcm91bmRcIixcImV2ZW5seVwiLFwic3RyZXRjaFwiLFwiYmFzZWxpbmVcIl19XSxcInBsYWNlLWl0ZW1zXCI6W3tcInBsYWNlLWl0ZW1zXCI6W1wic3RhcnRcIixcImVuZFwiLFwiY2VudGVyXCIsXCJiYXNlbGluZVwiLFwic3RyZXRjaFwiXX1dLFwicGxhY2Utc2VsZlwiOlt7XCJwbGFjZS1zZWxmXCI6W1wiYXV0b1wiLFwic3RhcnRcIixcImVuZFwiLFwiY2VudGVyXCIsXCJzdHJldGNoXCJdfV0scDpbe3A6W3ZdfV0scHg6W3tweDpbdl19XSxweTpbe3B5Olt2XX1dLHBzOlt7cHM6W3ZdfV0scGU6W3twZTpbdl19XSxwdDpbe3B0Olt2XX1dLHByOlt7cHI6W3ZdfV0scGI6W3twYjpbdl19XSxwbDpbe3BsOlt2XX1dLG06W3ttOltnXX1dLG14Olt7bXg6W2ddfV0sbXk6W3tteTpbZ119XSxtczpbe21zOltnXX1dLG1lOlt7bWU6W2ddfV0sbXQ6W3ttdDpbZ119XSxtcjpbe21yOltnXX1dLG1iOlt7bWI6W2ddfV0sbWw6W3ttbDpbZ119XSxcInNwYWNlLXhcIjpbe1wic3BhY2UteFwiOltrXX1dLFwic3BhY2UteC1yZXZlcnNlXCI6W1wic3BhY2UteC1yZXZlcnNlXCJdLFwic3BhY2UteVwiOlt7XCJzcGFjZS15XCI6W2tdfV0sXCJzcGFjZS15LXJldmVyc2VcIjpbXCJzcGFjZS15LXJldmVyc2VcIl0sdzpbe3c6W1wiYXV0b1wiLFwibWluXCIsXCJtYXhcIixcImZpdFwiLFwic3Z3XCIsXCJsdndcIixcImR2d1wiLEIsdF19XSxcIm1pbi13XCI6W3tcIm1pbi13XCI6W0IsdCxcIm1pblwiLFwibWF4XCIsXCJmaXRcIl19XSxcIm1heC13XCI6W3tcIm1heC13XCI6W0IsdCxcIm5vbmVcIixcImZ1bGxcIixcIm1pblwiLFwibWF4XCIsXCJmaXRcIixcInByb3NlXCIse3NjcmVlbjpbV119LFddfV0saDpbe2g6W0IsdCxcImF1dG9cIixcIm1pblwiLFwibWF4XCIsXCJmaXRcIixcInN2aFwiLFwibHZoXCIsXCJkdmhcIl19XSxcIm1pbi1oXCI6W3tcIm1pbi1oXCI6W0IsdCxcIm1pblwiLFwibWF4XCIsXCJmaXRcIixcInN2aFwiLFwibHZoXCIsXCJkdmhcIl19XSxcIm1heC1oXCI6W3tcIm1heC1oXCI6W0IsdCxcIm1pblwiLFwibWF4XCIsXCJmaXRcIixcInN2aFwiLFwibHZoXCIsXCJkdmhcIl19XSxzaXplOlt7c2l6ZTpbQix0LFwiYXV0b1wiLFwibWluXCIsXCJtYXhcIixcImZpdFwiXX1dLFwiZm9udC1zaXplXCI6W3t0ZXh0OltcImJhc2VcIixXLEFdfV0sXCJmb250LXNtb290aGluZ1wiOltcImFudGlhbGlhc2VkXCIsXCJzdWJwaXhlbC1hbnRpYWxpYXNlZFwiXSxcImZvbnQtc3R5bGVcIjpbXCJpdGFsaWNcIixcIm5vdC1pdGFsaWNcIl0sXCJmb250LXdlaWdodFwiOlt7Zm9udDpbXCJ0aGluXCIsXCJleHRyYWxpZ2h0XCIsXCJsaWdodFwiLFwibm9ybWFsXCIsXCJtZWRpdW1cIixcInNlbWlib2xkXCIsXCJib2xkXCIsXCJleHRyYWJvbGRcIixcImJsYWNrXCIsTF19XSxcImZvbnQtZmFtaWx5XCI6W3tmb250OltxXX1dLFwiZnZuLW5vcm1hbFwiOltcIm5vcm1hbC1udW1zXCJdLFwiZnZuLW9yZGluYWxcIjpbXCJvcmRpbmFsXCJdLFwiZnZuLXNsYXNoZWQtemVyb1wiOltcInNsYXNoZWQtemVyb1wiXSxcImZ2bi1maWd1cmVcIjpbXCJsaW5pbmctbnVtc1wiLFwib2xkc3R5bGUtbnVtc1wiXSxcImZ2bi1zcGFjaW5nXCI6W1wicHJvcG9ydGlvbmFsLW51bXNcIixcInRhYnVsYXItbnVtc1wiXSxcImZ2bi1mcmFjdGlvblwiOltcImRpYWdvbmFsLWZyYWN0aW9uc1wiLFwic3RhY2tlZC1mcmFjdG9uc1wiXSx0cmFja2luZzpbe3RyYWNraW5nOltcInRpZ2h0ZXJcIixcInRpZ2h0XCIsXCJub3JtYWxcIixcIndpZGVcIixcIndpZGVyXCIsXCJ3aWRlc3RcIixCXX1dLFwibGluZS1jbGFtcFwiOlt7XCJsaW5lLWNsYW1wXCI6W1wibm9uZVwiLEksTF19XSxsZWFkaW5nOlt7bGVhZGluZzpbXCJub25lXCIsXCJ0aWdodFwiLFwic251Z1wiLFwibm9ybWFsXCIsXCJyZWxheGVkXCIsXCJsb29zZVwiLGosQl19XSxcImxpc3QtaW1hZ2VcIjpbe1wibGlzdC1pbWFnZVwiOltcIm5vbmVcIixCXX1dLFwibGlzdC1zdHlsZS10eXBlXCI6W3tsaXN0OltcIm5vbmVcIixcImRpc2NcIixcImRlY2ltYWxcIixCXX1dLFwibGlzdC1zdHlsZS1wb3NpdGlvblwiOlt7bGlzdDpbXCJpbnNpZGVcIixcIm91dHNpZGVcIl19XSxcInBsYWNlaG9sZGVyLWNvbG9yXCI6W3twbGFjZWhvbGRlcjpbZV19XSxcInBsYWNlaG9sZGVyLW9wYWNpdHlcIjpbe1wicGxhY2Vob2xkZXItb3BhY2l0eVwiOlt5XX1dLFwidGV4dC1hbGlnbm1lbnRcIjpbe3RleHQ6W1wibGVmdFwiLFwiY2VudGVyXCIsXCJyaWdodFwiLFwianVzdGlmeVwiLFwic3RhcnRcIixcImVuZFwiXX1dLFwidGV4dC1jb2xvclwiOlt7dGV4dDpbZV19XSxcInRleHQtb3BhY2l0eVwiOlt7XCJ0ZXh0LW9wYWNpdHlcIjpbeV19XSxcInRleHQtZGVjb3JhdGlvblwiOltcInVuZGVybGluZVwiLFwib3ZlcmxpbmVcIixcImxpbmUtdGhyb3VnaFwiLFwibm8tdW5kZXJsaW5lXCJdLFwidGV4dC1kZWNvcmF0aW9uLXN0eWxlXCI6W3tkZWNvcmF0aW9uOltcInNvbGlkXCIsXCJkYXNoZWRcIixcImRvdHRlZFwiLFwiZG91YmxlXCIsXCJub25lXCIsXCJ3YXZ5XCJdfV0sXCJ0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzXCI6W3tkZWNvcmF0aW9uOltcImF1dG9cIixcImZyb20tZm9udFwiLGosQV19XSxcInVuZGVybGluZS1vZmZzZXRcIjpbe1widW5kZXJsaW5lLW9mZnNldFwiOltcImF1dG9cIixqLEJdfV0sXCJ0ZXh0LWRlY29yYXRpb24tY29sb3JcIjpbe2RlY29yYXRpb246W2VdfV0sXCJ0ZXh0LXRyYW5zZm9ybVwiOltcInVwcGVyY2FzZVwiLFwibG93ZXJjYXNlXCIsXCJjYXBpdGFsaXplXCIsXCJub3JtYWwtY2FzZVwiXSxcInRleHQtb3ZlcmZsb3dcIjpbXCJ0cnVuY2F0ZVwiLFwidGV4dC1lbGxpcHNpc1wiLFwidGV4dC1jbGlwXCJdLFwidGV4dC13cmFwXCI6W3t0ZXh0OltcIndyYXBcIixcIm5vd3JhcFwiLFwiYmFsYW5jZVwiLFwicHJldHR5XCJdfV0saW5kZW50Olt7aW5kZW50OlAoKX1dLFwidmVydGljYWwtYWxpZ25cIjpbe2FsaWduOltcImJhc2VsaW5lXCIsXCJ0b3BcIixcIm1pZGRsZVwiLFwiYm90dG9tXCIsXCJ0ZXh0LXRvcFwiLFwidGV4dC1ib3R0b21cIixcInN1YlwiLFwic3VwZXJcIixCXX1dLHdoaXRlc3BhY2U6W3t3aGl0ZXNwYWNlOltcIm5vcm1hbFwiLFwibm93cmFwXCIsXCJwcmVcIixcInByZS1saW5lXCIsXCJwcmUtd3JhcFwiLFwiYnJlYWstc3BhY2VzXCJdfV0sYnJlYWs6W3ticmVhazpbXCJub3JtYWxcIixcIndvcmRzXCIsXCJhbGxcIixcImtlZXBcIl19XSxoeXBoZW5zOlt7aHlwaGVuczpbXCJub25lXCIsXCJtYW51YWxcIixcImF1dG9cIl19XSxjb250ZW50Olt7Y29udGVudDpbXCJub25lXCIsQl19XSxcImJnLWF0dGFjaG1lbnRcIjpbe2JnOltcImZpeGVkXCIsXCJsb2NhbFwiLFwic2Nyb2xsXCJdfV0sXCJiZy1jbGlwXCI6W3tcImJnLWNsaXBcIjpbXCJib3JkZXJcIixcInBhZGRpbmdcIixcImNvbnRlbnRcIixcInRleHRcIl19XSxcImJnLW9wYWNpdHlcIjpbe1wiYmctb3BhY2l0eVwiOlt5XX1dLFwiYmctb3JpZ2luXCI6W3tcImJnLW9yaWdpblwiOltcImJvcmRlclwiLFwicGFkZGluZ1wiLFwiY29udGVudFwiXX1dLFwiYmctcG9zaXRpb25cIjpbe2JnOltcImJvdHRvbVwiLFwiY2VudGVyXCIsXCJsZWZ0XCIsXCJsZWZ0LWJvdHRvbVwiLFwibGVmdC10b3BcIixcInJpZ2h0XCIsXCJyaWdodC1ib3R0b21cIixcInJpZ2h0LXRvcFwiLFwidG9wXCIsJF19XSxcImJnLXJlcGVhdFwiOlt7Ymc6W1wibm8tcmVwZWF0XCIse3JlcGVhdDpbXCJcIixcInhcIixcInlcIixcInJvdW5kXCIsXCJzcGFjZVwiXX1dfV0sXCJiZy1zaXplXCI6W3tiZzpbXCJhdXRvXCIsXCJjb3ZlclwiLFwiY29udGFpblwiLFVdfV0sXCJiZy1pbWFnZVwiOlt7Ymc6W1wibm9uZVwiLHtcImdyYWRpZW50LXRvXCI6W1widFwiLFwidHJcIixcInJcIixcImJyXCIsXCJiXCIsXCJibFwiLFwibFwiLFwidGxcIl19LEhdfV0sXCJiZy1jb2xvclwiOlt7Ymc6W2VdfV0sXCJncmFkaWVudC1mcm9tLXBvc1wiOlt7ZnJvbTpbaF19XSxcImdyYWRpZW50LXZpYS1wb3NcIjpbe3ZpYTpbaF19XSxcImdyYWRpZW50LXRvLXBvc1wiOlt7dG86W2hdfV0sXCJncmFkaWVudC1mcm9tXCI6W3tmcm9tOlttXX1dLFwiZ3JhZGllbnQtdmlhXCI6W3t2aWE6W21dfV0sXCJncmFkaWVudC10b1wiOlt7dG86W21dfV0scm91bmRlZDpbe3JvdW5kZWQ6W2ldfV0sXCJyb3VuZGVkLXNcIjpbe1wicm91bmRlZC1zXCI6W2ldfV0sXCJyb3VuZGVkLWVcIjpbe1wicm91bmRlZC1lXCI6W2ldfV0sXCJyb3VuZGVkLXRcIjpbe1wicm91bmRlZC10XCI6W2ldfV0sXCJyb3VuZGVkLXJcIjpbe1wicm91bmRlZC1yXCI6W2ldfV0sXCJyb3VuZGVkLWJcIjpbe1wicm91bmRlZC1iXCI6W2ldfV0sXCJyb3VuZGVkLWxcIjpbe1wicm91bmRlZC1sXCI6W2ldfV0sXCJyb3VuZGVkLXNzXCI6W3tcInJvdW5kZWQtc3NcIjpbaV19XSxcInJvdW5kZWQtc2VcIjpbe1wicm91bmRlZC1zZVwiOltpXX1dLFwicm91bmRlZC1lZVwiOlt7XCJyb3VuZGVkLWVlXCI6W2ldfV0sXCJyb3VuZGVkLWVzXCI6W3tcInJvdW5kZWQtZXNcIjpbaV19XSxcInJvdW5kZWQtdGxcIjpbe1wicm91bmRlZC10bFwiOltpXX1dLFwicm91bmRlZC10clwiOlt7XCJyb3VuZGVkLXRyXCI6W2ldfV0sXCJyb3VuZGVkLWJyXCI6W3tcInJvdW5kZWQtYnJcIjpbaV19XSxcInJvdW5kZWQtYmxcIjpbe1wicm91bmRlZC1ibFwiOltpXX1dLFwiYm9yZGVyLXdcIjpbe2JvcmRlcjpbYV19XSxcImJvcmRlci13LXhcIjpbe1wiYm9yZGVyLXhcIjpbYV19XSxcImJvcmRlci13LXlcIjpbe1wiYm9yZGVyLXlcIjpbYV19XSxcImJvcmRlci13LXNcIjpbe1wiYm9yZGVyLXNcIjpbYV19XSxcImJvcmRlci13LWVcIjpbe1wiYm9yZGVyLWVcIjpbYV19XSxcImJvcmRlci13LXRcIjpbe1wiYm9yZGVyLXRcIjpbYV19XSxcImJvcmRlci13LXJcIjpbe1wiYm9yZGVyLXJcIjpbYV19XSxcImJvcmRlci13LWJcIjpbe1wiYm9yZGVyLWJcIjpbYV19XSxcImJvcmRlci13LWxcIjpbe1wiYm9yZGVyLWxcIjpbYV19XSxcImJvcmRlci1vcGFjaXR5XCI6W3tcImJvcmRlci1vcGFjaXR5XCI6W3ldfV0sXCJib3JkZXItc3R5bGVcIjpbe2JvcmRlcjpbXCJzb2xpZFwiLFwiZGFzaGVkXCIsXCJkb3R0ZWRcIixcImRvdWJsZVwiLFwibm9uZVwiLFwiaGlkZGVuXCJdfV0sXCJkaXZpZGUteFwiOlt7XCJkaXZpZGUteFwiOlthXX1dLFwiZGl2aWRlLXgtcmV2ZXJzZVwiOltcImRpdmlkZS14LXJldmVyc2VcIl0sXCJkaXZpZGUteVwiOlt7XCJkaXZpZGUteVwiOlthXX1dLFwiZGl2aWRlLXktcmV2ZXJzZVwiOltcImRpdmlkZS15LXJldmVyc2VcIl0sXCJkaXZpZGUtb3BhY2l0eVwiOlt7XCJkaXZpZGUtb3BhY2l0eVwiOlt5XX1dLFwiZGl2aWRlLXN0eWxlXCI6W3tkaXZpZGU6W1wic29saWRcIixcImRhc2hlZFwiLFwiZG90dGVkXCIsXCJkb3VibGVcIixcIm5vbmVcIl19XSxcImJvcmRlci1jb2xvclwiOlt7Ym9yZGVyOltvXX1dLFwiYm9yZGVyLWNvbG9yLXhcIjpbe1wiYm9yZGVyLXhcIjpbb119XSxcImJvcmRlci1jb2xvci15XCI6W3tcImJvcmRlci15XCI6W29dfV0sXCJib3JkZXItY29sb3ItdFwiOlt7XCJib3JkZXItdFwiOltvXX1dLFwiYm9yZGVyLWNvbG9yLXJcIjpbe1wiYm9yZGVyLXJcIjpbb119XSxcImJvcmRlci1jb2xvci1iXCI6W3tcImJvcmRlci1iXCI6W29dfV0sXCJib3JkZXItY29sb3ItbFwiOlt7XCJib3JkZXItbFwiOltvXX1dLFwiZGl2aWRlLWNvbG9yXCI6W3tkaXZpZGU6W29dfV0sXCJvdXRsaW5lLXN0eWxlXCI6W3tvdXRsaW5lOltcIlwiLFwic29saWRcIixcImRhc2hlZFwiLFwiZG90dGVkXCIsXCJkb3VibGVcIixcIm5vbmVcIl19XSxcIm91dGxpbmUtb2Zmc2V0XCI6W3tcIm91dGxpbmUtb2Zmc2V0XCI6W2osQl19XSxcIm91dGxpbmUtd1wiOlt7b3V0bGluZTpbaixBXX1dLFwib3V0bGluZS1jb2xvclwiOlt7b3V0bGluZTpbZV19XSxcInJpbmctd1wiOlt7cmluZzpPKCl9XSxcInJpbmctdy1pbnNldFwiOltcInJpbmctaW5zZXRcIl0sXCJyaW5nLWNvbG9yXCI6W3tyaW5nOltlXX1dLFwicmluZy1vcGFjaXR5XCI6W3tcInJpbmctb3BhY2l0eVwiOlt5XX1dLFwicmluZy1vZmZzZXQtd1wiOlt7XCJyaW5nLW9mZnNldFwiOltqLEFdfV0sXCJyaW5nLW9mZnNldC1jb2xvclwiOlt7XCJyaW5nLW9mZnNldFwiOltlXX1dLHNoYWRvdzpbe3NoYWRvdzpbXCJcIixcImlubmVyXCIsXCJub25lXCIsVyxLXX1dLFwic2hhZG93LWNvbG9yXCI6W3tzaGFkb3c6W3FdfV0sb3BhY2l0eTpbe29wYWNpdHk6W3ldfV0sXCJtaXgtYmxlbmRcIjpbe1wibWl4LWJsZW5kXCI6W1wibm9ybWFsXCIsXCJtdWx0aXBseVwiLFwic2NyZWVuXCIsXCJvdmVybGF5XCIsXCJkYXJrZW5cIixcImxpZ2h0ZW5cIixcImNvbG9yLWRvZGdlXCIsXCJjb2xvci1idXJuXCIsXCJoYXJkLWxpZ2h0XCIsXCJzb2Z0LWxpZ2h0XCIsXCJkaWZmZXJlbmNlXCIsXCJleGNsdXNpb25cIixcImh1ZVwiLFwic2F0dXJhdGlvblwiLFwiY29sb3JcIixcImx1bWlub3NpdHlcIixcInBsdXMtbGlnaHRlclwiLFwicGx1cy1kYXJrZXJcIl19XSxcImJnLWJsZW5kXCI6W3tcImJnLWJsZW5kXCI6W1wibm9ybWFsXCIsXCJtdWx0aXBseVwiLFwic2NyZWVuXCIsXCJvdmVybGF5XCIsXCJkYXJrZW5cIixcImxpZ2h0ZW5cIixcImNvbG9yLWRvZGdlXCIsXCJjb2xvci1idXJuXCIsXCJoYXJkLWxpZ2h0XCIsXCJzb2Z0LWxpZ2h0XCIsXCJkaWZmZXJlbmNlXCIsXCJleGNsdXNpb25cIixcImh1ZVwiLFwic2F0dXJhdGlvblwiLFwiY29sb3JcIixcImx1bWlub3NpdHlcIl19XSxmaWx0ZXI6W3tmaWx0ZXI6W1wiXCIsXCJub25lXCJdfV0sYmx1cjpbe2JsdXI6W25dfV0sYnJpZ2h0bmVzczpbe2JyaWdodG5lc3M6W3JdfV0sY29udHJhc3Q6W3tjb250cmFzdDpbbF19XSxcImRyb3Atc2hhZG93XCI6W3tcImRyb3Atc2hhZG93XCI6W1wiXCIsXCJub25lXCIsVyxCXX1dLGdyYXlzY2FsZTpbe2dyYXlzY2FsZTpbY119XSxcImh1ZS1yb3RhdGVcIjpbe1wiaHVlLXJvdGF0ZVwiOlt1XX1dLGludmVydDpbe2ludmVydDpbZF19XSxzYXR1cmF0ZTpbe3NhdHVyYXRlOltiXX1dLHNlcGlhOlt7c2VwaWE6W3ddfV0sXCJiYWNrZHJvcC1maWx0ZXJcIjpbe1wiYmFja2Ryb3AtZmlsdGVyXCI6W1wiXCIsXCJub25lXCJdfV0sXCJiYWNrZHJvcC1ibHVyXCI6W3tcImJhY2tkcm9wLWJsdXJcIjpbbl19XSxcImJhY2tkcm9wLWJyaWdodG5lc3NcIjpbe1wiYmFja2Ryb3AtYnJpZ2h0bmVzc1wiOltyXX1dLFwiYmFja2Ryb3AtY29udHJhc3RcIjpbe1wiYmFja2Ryb3AtY29udHJhc3RcIjpbbF19XSxcImJhY2tkcm9wLWdyYXlzY2FsZVwiOlt7XCJiYWNrZHJvcC1ncmF5c2NhbGVcIjpbY119XSxcImJhY2tkcm9wLWh1ZS1yb3RhdGVcIjpbe1wiYmFja2Ryb3AtaHVlLXJvdGF0ZVwiOlt1XX1dLFwiYmFja2Ryb3AtaW52ZXJ0XCI6W3tcImJhY2tkcm9wLWludmVydFwiOltkXX1dLFwiYmFja2Ryb3Atb3BhY2l0eVwiOlt7XCJiYWNrZHJvcC1vcGFjaXR5XCI6W3ldfV0sXCJiYWNrZHJvcC1zYXR1cmF0ZVwiOlt7XCJiYWNrZHJvcC1zYXR1cmF0ZVwiOltiXX1dLFwiYmFja2Ryb3Atc2VwaWFcIjpbe1wiYmFja2Ryb3Atc2VwaWFcIjpbd119XSxcImJvcmRlci1jb2xsYXBzZVwiOlt7Ym9yZGVyOltcImNvbGxhcHNlXCIsXCJzZXBhcmF0ZVwiXX1dLFwiYm9yZGVyLXNwYWNpbmdcIjpbe1wiYm9yZGVyLXNwYWNpbmdcIjpbc119XSxcImJvcmRlci1zcGFjaW5nLXhcIjpbe1wiYm9yZGVyLXNwYWNpbmcteFwiOltzXX1dLFwiYm9yZGVyLXNwYWNpbmcteVwiOlt7XCJib3JkZXItc3BhY2luZy15XCI6W3NdfV0sXCJ0YWJsZS1sYXlvdXRcIjpbe3RhYmxlOltcImF1dG9cIixcImZpeGVkXCJdfV0sY2FwdGlvbjpbe2NhcHRpb246W1widG9wXCIsXCJib3R0b21cIl19XSx0cmFuc2l0aW9uOlt7dHJhbnNpdGlvbjpbXCJub25lXCIsXCJhbGxcIixcIlwiLFwiY29sb3JzXCIsXCJvcGFjaXR5XCIsXCJzaGFkb3dcIixcInRyYW5zZm9ybVwiLEJdfV0sZHVyYXRpb246W3tkdXJhdGlvbjpNKCl9XSxlYXNlOlt7ZWFzZTpbXCJsaW5lYXJcIixcImluXCIsXCJvdXRcIixcImluLW91dFwiLEJdfV0sZGVsYXk6W3tkZWxheTpNKCl9XSxhbmltYXRlOlt7YW5pbWF0ZTpbXCJub25lXCIsXCJzcGluXCIsXCJwaW5nXCIsXCJwdWxzZVwiLFwiYm91bmNlXCIsQl19XSx0cmFuc2Zvcm06W3t0cmFuc2Zvcm06W1wiXCIsXCJncHVcIixcIm5vbmVcIl19XSxzY2FsZTpbe3NjYWxlOlt4XX1dLFwic2NhbGUteFwiOlt7XCJzY2FsZS14XCI6W3hdfV0sXCJzY2FsZS15XCI6W3tcInNjYWxlLXlcIjpbeF19XSxyb3RhdGU6W3tyb3RhdGU6W0YsQl19XSxcInRyYW5zbGF0ZS14XCI6W3tcInRyYW5zbGF0ZS14XCI6W0VdfV0sXCJ0cmFuc2xhdGUteVwiOlt7XCJ0cmFuc2xhdGUteVwiOltFXX1dLFwic2tldy14XCI6W3tcInNrZXcteFwiOltTXX1dLFwic2tldy15XCI6W3tcInNrZXcteVwiOltTXX1dLFwidHJhbnNmb3JtLW9yaWdpblwiOlt7b3JpZ2luOltcImNlbnRlclwiLFwidG9wXCIsXCJ0b3AtcmlnaHRcIixcInJpZ2h0XCIsXCJib3R0b20tcmlnaHRcIixcImJvdHRvbVwiLFwiYm90dG9tLWxlZnRcIixcImxlZnRcIixcInRvcC1sZWZ0XCIsQl19XSxhY2NlbnQ6W3thY2NlbnQ6W1wiYXV0b1wiLGVdfV0sYXBwZWFyYW5jZTpbe2FwcGVhcmFuY2U6W1wibm9uZVwiLFwiYXV0b1wiXX1dLGN1cnNvcjpbe2N1cnNvcjpbXCJhdXRvXCIsXCJkZWZhdWx0XCIsXCJwb2ludGVyXCIsXCJ3YWl0XCIsXCJ0ZXh0XCIsXCJtb3ZlXCIsXCJoZWxwXCIsXCJub3QtYWxsb3dlZFwiLFwibm9uZVwiLFwiY29udGV4dC1tZW51XCIsXCJwcm9ncmVzc1wiLFwiY2VsbFwiLFwiY3Jvc3NoYWlyXCIsXCJ2ZXJ0aWNhbC10ZXh0XCIsXCJhbGlhc1wiLFwiY29weVwiLFwibm8tZHJvcFwiLFwiZ3JhYlwiLFwiZ3JhYmJpbmdcIixcImFsbC1zY3JvbGxcIixcImNvbC1yZXNpemVcIixcInJvdy1yZXNpemVcIixcIm4tcmVzaXplXCIsXCJlLXJlc2l6ZVwiLFwicy1yZXNpemVcIixcInctcmVzaXplXCIsXCJuZS1yZXNpemVcIixcIm53LXJlc2l6ZVwiLFwic2UtcmVzaXplXCIsXCJzdy1yZXNpemVcIixcImV3LXJlc2l6ZVwiLFwibnMtcmVzaXplXCIsXCJuZXN3LXJlc2l6ZVwiLFwibndzZS1yZXNpemVcIixcInpvb20taW5cIixcInpvb20tb3V0XCIsQl19XSxcImNhcmV0LWNvbG9yXCI6W3tjYXJldDpbZV19XSxcInBvaW50ZXItZXZlbnRzXCI6W3tcInBvaW50ZXItZXZlbnRzXCI6W1wibm9uZVwiLFwiYXV0b1wiXX1dLHJlc2l6ZTpbe3Jlc2l6ZTpbXCJub25lXCIsXCJ5XCIsXCJ4XCIsXCJcIl19XSxcInNjcm9sbC1iZWhhdmlvclwiOlt7c2Nyb2xsOltcImF1dG9cIixcInNtb290aFwiXX1dLFwic2Nyb2xsLW1cIjpbe1wic2Nyb2xsLW1cIjpQKCl9XSxcInNjcm9sbC1teFwiOlt7XCJzY3JvbGwtbXhcIjpQKCl9XSxcInNjcm9sbC1teVwiOlt7XCJzY3JvbGwtbXlcIjpQKCl9XSxcInNjcm9sbC1tc1wiOlt7XCJzY3JvbGwtbXNcIjpQKCl9XSxcInNjcm9sbC1tZVwiOlt7XCJzY3JvbGwtbWVcIjpQKCl9XSxcInNjcm9sbC1tdFwiOlt7XCJzY3JvbGwtbXRcIjpQKCl9XSxcInNjcm9sbC1tclwiOlt7XCJzY3JvbGwtbXJcIjpQKCl9XSxcInNjcm9sbC1tYlwiOlt7XCJzY3JvbGwtbWJcIjpQKCl9XSxcInNjcm9sbC1tbFwiOlt7XCJzY3JvbGwtbWxcIjpQKCl9XSxcInNjcm9sbC1wXCI6W3tcInNjcm9sbC1wXCI6UCgpfV0sXCJzY3JvbGwtcHhcIjpbe1wic2Nyb2xsLXB4XCI6UCgpfV0sXCJzY3JvbGwtcHlcIjpbe1wic2Nyb2xsLXB5XCI6UCgpfV0sXCJzY3JvbGwtcHNcIjpbe1wic2Nyb2xsLXBzXCI6UCgpfV0sXCJzY3JvbGwtcGVcIjpbe1wic2Nyb2xsLXBlXCI6UCgpfV0sXCJzY3JvbGwtcHRcIjpbe1wic2Nyb2xsLXB0XCI6UCgpfV0sXCJzY3JvbGwtcHJcIjpbe1wic2Nyb2xsLXByXCI6UCgpfV0sXCJzY3JvbGwtcGJcIjpbe1wic2Nyb2xsLXBiXCI6UCgpfV0sXCJzY3JvbGwtcGxcIjpbe1wic2Nyb2xsLXBsXCI6UCgpfV0sXCJzbmFwLWFsaWduXCI6W3tzbmFwOltcInN0YXJ0XCIsXCJlbmRcIixcImNlbnRlclwiLFwiYWxpZ24tbm9uZVwiXX1dLFwic25hcC1zdG9wXCI6W3tzbmFwOltcIm5vcm1hbFwiLFwiYWx3YXlzXCJdfV0sXCJzbmFwLXR5cGVcIjpbe3NuYXA6W1wibm9uZVwiLFwieFwiLFwieVwiLFwiYm90aFwiXX1dLFwic25hcC1zdHJpY3RuZXNzXCI6W3tzbmFwOltcIm1hbmRhdG9yeVwiLFwicHJveGltaXR5XCJdfV0sdG91Y2g6W3t0b3VjaDpbXCJhdXRvXCIsXCJub25lXCIsXCJtYW5pcHVsYXRpb25cIl19XSxcInRvdWNoLXhcIjpbe1widG91Y2gtcGFuXCI6W1wieFwiLFwibGVmdFwiLFwicmlnaHRcIl19XSxcInRvdWNoLXlcIjpbe1widG91Y2gtcGFuXCI6W1wieVwiLFwidXBcIixcImRvd25cIl19XSxcInRvdWNoLXB6XCI6W1widG91Y2gtcGluY2gtem9vbVwiXSxzZWxlY3Q6W3tzZWxlY3Q6W1wibm9uZVwiLFwidGV4dFwiLFwiYWxsXCIsXCJhdXRvXCJdfV0sXCJ3aWxsLWNoYW5nZVwiOlt7XCJ3aWxsLWNoYW5nZVwiOltcImF1dG9cIixcInNjcm9sbFwiLFwiY29udGVudHNcIixcInRyYW5zZm9ybVwiLEJdfV0sZmlsbDpbe2ZpbGw6W2UsXCJub25lXCJdfV0sXCJzdHJva2Utd1wiOlt7c3Ryb2tlOltqLEEsTF19XSxzdHJva2U6W3tzdHJva2U6W2UsXCJub25lXCJdfV0sc3I6W1wic3Itb25seVwiLFwibm90LXNyLW9ubHlcIl0sXCJmb3JjZWQtY29sb3ItYWRqdXN0XCI6W3tcImZvcmNlZC1jb2xvci1hZGp1c3RcIjpbXCJhdXRvXCIsXCJub25lXCJdfV19LGNvbmZsaWN0aW5nQ2xhc3NHcm91cHM6e292ZXJmbG93OltcIm92ZXJmbG93LXhcIixcIm92ZXJmbG93LXlcIl0sb3ZlcnNjcm9sbDpbXCJvdmVyc2Nyb2xsLXhcIixcIm92ZXJzY3JvbGwteVwiXSxpbnNldDpbXCJpbnNldC14XCIsXCJpbnNldC15XCIsXCJzdGFydFwiLFwiZW5kXCIsXCJ0b3BcIixcInJpZ2h0XCIsXCJib3R0b21cIixcImxlZnRcIl0sXCJpbnNldC14XCI6W1wicmlnaHRcIixcImxlZnRcIl0sXCJpbnNldC15XCI6W1widG9wXCIsXCJib3R0b21cIl0sZmxleDpbXCJiYXNpc1wiLFwiZ3Jvd1wiLFwic2hyaW5rXCJdLGdhcDpbXCJnYXAteFwiLFwiZ2FwLXlcIl0scDpbXCJweFwiLFwicHlcIixcInBzXCIsXCJwZVwiLFwicHRcIixcInByXCIsXCJwYlwiLFwicGxcIl0scHg6W1wicHJcIixcInBsXCJdLHB5OltcInB0XCIsXCJwYlwiXSxtOltcIm14XCIsXCJteVwiLFwibXNcIixcIm1lXCIsXCJtdFwiLFwibXJcIixcIm1iXCIsXCJtbFwiXSxteDpbXCJtclwiLFwibWxcIl0sbXk6W1wibXRcIixcIm1iXCJdLHNpemU6W1wid1wiLFwiaFwiXSxcImZvbnQtc2l6ZVwiOltcImxlYWRpbmdcIl0sXCJmdm4tbm9ybWFsXCI6W1wiZnZuLW9yZGluYWxcIixcImZ2bi1zbGFzaGVkLXplcm9cIixcImZ2bi1maWd1cmVcIixcImZ2bi1zcGFjaW5nXCIsXCJmdm4tZnJhY3Rpb25cIl0sXCJmdm4tb3JkaW5hbFwiOltcImZ2bi1ub3JtYWxcIl0sXCJmdm4tc2xhc2hlZC16ZXJvXCI6W1wiZnZuLW5vcm1hbFwiXSxcImZ2bi1maWd1cmVcIjpbXCJmdm4tbm9ybWFsXCJdLFwiZnZuLXNwYWNpbmdcIjpbXCJmdm4tbm9ybWFsXCJdLFwiZnZuLWZyYWN0aW9uXCI6W1wiZnZuLW5vcm1hbFwiXSxcImxpbmUtY2xhbXBcIjpbXCJkaXNwbGF5XCIsXCJvdmVyZmxvd1wiXSxyb3VuZGVkOltcInJvdW5kZWQtc1wiLFwicm91bmRlZC1lXCIsXCJyb3VuZGVkLXRcIixcInJvdW5kZWQtclwiLFwicm91bmRlZC1iXCIsXCJyb3VuZGVkLWxcIixcInJvdW5kZWQtc3NcIixcInJvdW5kZWQtc2VcIixcInJvdW5kZWQtZWVcIixcInJvdW5kZWQtZXNcIixcInJvdW5kZWQtdGxcIixcInJvdW5kZWQtdHJcIixcInJvdW5kZWQtYnJcIixcInJvdW5kZWQtYmxcIl0sXCJyb3VuZGVkLXNcIjpbXCJyb3VuZGVkLXNzXCIsXCJyb3VuZGVkLWVzXCJdLFwicm91bmRlZC1lXCI6W1wicm91bmRlZC1zZVwiLFwicm91bmRlZC1lZVwiXSxcInJvdW5kZWQtdFwiOltcInJvdW5kZWQtdGxcIixcInJvdW5kZWQtdHJcIl0sXCJyb3VuZGVkLXJcIjpbXCJyb3VuZGVkLXRyXCIsXCJyb3VuZGVkLWJyXCJdLFwicm91bmRlZC1iXCI6W1wicm91bmRlZC1iclwiLFwicm91bmRlZC1ibFwiXSxcInJvdW5kZWQtbFwiOltcInJvdW5kZWQtdGxcIixcInJvdW5kZWQtYmxcIl0sXCJib3JkZXItc3BhY2luZ1wiOltcImJvcmRlci1zcGFjaW5nLXhcIixcImJvcmRlci1zcGFjaW5nLXlcIl0sXCJib3JkZXItd1wiOltcImJvcmRlci13LXNcIixcImJvcmRlci13LWVcIixcImJvcmRlci13LXRcIixcImJvcmRlci13LXJcIixcImJvcmRlci13LWJcIixcImJvcmRlci13LWxcIl0sXCJib3JkZXItdy14XCI6W1wiYm9yZGVyLXctclwiLFwiYm9yZGVyLXctbFwiXSxcImJvcmRlci13LXlcIjpbXCJib3JkZXItdy10XCIsXCJib3JkZXItdy1iXCJdLFwiYm9yZGVyLWNvbG9yXCI6W1wiYm9yZGVyLWNvbG9yLXRcIixcImJvcmRlci1jb2xvci1yXCIsXCJib3JkZXItY29sb3ItYlwiLFwiYm9yZGVyLWNvbG9yLWxcIl0sXCJib3JkZXItY29sb3IteFwiOltcImJvcmRlci1jb2xvci1yXCIsXCJib3JkZXItY29sb3ItbFwiXSxcImJvcmRlci1jb2xvci15XCI6W1wiYm9yZGVyLWNvbG9yLXRcIixcImJvcmRlci1jb2xvci1iXCJdLFwic2Nyb2xsLW1cIjpbXCJzY3JvbGwtbXhcIixcInNjcm9sbC1teVwiLFwic2Nyb2xsLW1zXCIsXCJzY3JvbGwtbWVcIixcInNjcm9sbC1tdFwiLFwic2Nyb2xsLW1yXCIsXCJzY3JvbGwtbWJcIixcInNjcm9sbC1tbFwiXSxcInNjcm9sbC1teFwiOltcInNjcm9sbC1tclwiLFwic2Nyb2xsLW1sXCJdLFwic2Nyb2xsLW15XCI6W1wic2Nyb2xsLW10XCIsXCJzY3JvbGwtbWJcIl0sXCJzY3JvbGwtcFwiOltcInNjcm9sbC1weFwiLFwic2Nyb2xsLXB5XCIsXCJzY3JvbGwtcHNcIixcInNjcm9sbC1wZVwiLFwic2Nyb2xsLXB0XCIsXCJzY3JvbGwtcHJcIixcInNjcm9sbC1wYlwiLFwic2Nyb2xsLXBsXCJdLFwic2Nyb2xsLXB4XCI6W1wic2Nyb2xsLXByXCIsXCJzY3JvbGwtcGxcIl0sXCJzY3JvbGwtcHlcIjpbXCJzY3JvbGwtcHRcIixcInNjcm9sbC1wYlwiXSx0b3VjaDpbXCJ0b3VjaC14XCIsXCJ0b3VjaC15XCIsXCJ0b3VjaC1welwiXSxcInRvdWNoLXhcIjpbXCJ0b3VjaFwiXSxcInRvdWNoLXlcIjpbXCJ0b3VjaFwiXSxcInRvdWNoLXB6XCI6W1widG91Y2hcIl19LGNvbmZsaWN0aW5nQ2xhc3NHcm91cE1vZGlmaWVyczp7XCJmb250LXNpemVcIjpbXCJsZWFkaW5nXCJdfX19KSx0ZT1FKGVlKTtmdW5jdGlvbiBuZShlKXt2YXIgdCxuLHI9XCJcIjtpZihcInN0cmluZ1wiPT10eXBlb2YgZXx8XCJudW1iZXJcIj09dHlwZW9mIGUpcis9ZTtlbHNlIGlmKFwib2JqZWN0XCI9PXR5cGVvZiBlKWlmKEFycmF5LmlzQXJyYXkoZSkpe3ZhciBvPWUubGVuZ3RoO2Zvcih0PTA7dDxvO3QrKyllW3RdJiYobj1uZShlW3RdKSkmJihyJiYocis9XCIgXCIpLHIrPW4pfWVsc2UgZm9yKG4gaW4gZSllW25dJiYociYmKHIrPVwiIFwiKSxyKz1uKTtyZXR1cm4gcn1mdW5jdGlvbiByZSgpe2Zvcih2YXIgZSx0LG49MCxyPVwiXCIsbz1hcmd1bWVudHMubGVuZ3RoO248bztuKyspKGU9YXJndW1lbnRzW25dKSYmKHQ9bmUoZSkpJiYociYmKHIrPVwiIFwiKSxyKz10KTtyZXR1cm4gcn12YXIgb2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGUocmUuYXBwbHkodm9pZCAwLGFyZ3VtZW50cykpfSxpZT1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLG49MDtuPGU7bisrKXRbbl09YXJndW1lbnRzW25dO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKW5bcl09YXJndW1lbnRzW3JdO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3ZvaWQgMDplLmFwcGx5KHZvaWQgMCxuKX0pKX19LHNlPWZ1bmN0aW9uKGUpe3ZhciB0PXswOlwiZ2FwLTBcIix4eHM6XCJnYXAtMVwiLHhzOlwiZ2FwLTJcIixzbTpcImdhcC0zXCIsbWQ6XCJnYXAtNFwiLGxnOlwiZ2FwLTVcIix4bDpcImdhcC02XCIsXCIyeGxcIjpcImdhcC04XCJ9O3JldHVybiB0W2VdfHx0Lm1kfSxhZT17MTpcImdyaWQtY29scy0xXCIsMjpcImdyaWQtY29scy0yXCIsMzpcImdyaWQtY29scy0zXCIsNDpcImdyaWQtY29scy00XCIsNTpcImdyaWQtY29scy01XCIsNjpcImdyaWQtY29scy02XCIsNzpcImdyaWQtY29scy03XCIsODpcImdyaWQtY29scy04XCIsOTpcImdyaWQtY29scy05XCIsMTA6XCJncmlkLWNvbHMtMTBcIiwxMTpcImdyaWQtY29scy0xMVwiLDEyOlwiZ3JpZC1jb2xzLTEyXCJ9LGxlPVtcInZhcmlhbnRcIixcInNpemVcIixcInR5cGVcIixcInRhZ1wiLFwiY2xhc3NOYW1lXCIsXCJjaGlsZHJlblwiLFwiZGlzYWJsZWRcIixcImRlc3RydWN0aXZlXCIsXCJpY29uXCIsXCJpY29uUG9zaXRpb25cIixcImxvYWRpbmdcIl07ZnVuY3Rpb24gY2UoKXtyZXR1cm4gY2U9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxjZS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIHVlPSgwLGEuZm9yd2FyZFJlZikoKGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvLGkscz1lLnZhcmlhbnQsYT12b2lkIDA9PT1zP1wicHJpbWFyeVwiOnMsYz1lLnNpemUsdT12b2lkIDA9PT1jP1wibWRcIjpjLGQ9ZS50eXBlLGY9dm9pZCAwPT09ZD9cImJ1dHRvblwiOmQsbT1lLnRhZyxoPXZvaWQgMD09PW0/XCJidXR0b25cIjptLHA9ZS5jbGFzc05hbWUsZz1lLmNoaWxkcmVuLHk9ZS5kaXNhYmxlZCx2PXZvaWQgMCE9PXkmJnksYj1lLmRlc3RydWN0aXZlLHg9dm9pZCAwIT09YiYmYix3PWUuaWNvbixTPXZvaWQgMD09PXc/bnVsbDp3LGs9ZS5pY29uUG9zaXRpb24sRT12b2lkIDA9PT1rP1wibGVmdFwiOmssQz1lLmxvYWRpbmcsXz12b2lkIDAhPT1DJiZDLFA9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluY2x1ZGVzKHIpKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLHQuaW5jbHVkZXMobil8fHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsbGUpLE89Xz9cIm9wYWNpdHktNTAgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkXCI6XCJcIixOPW51bGw9PT0obj17cHJpbWFyeTpcInRleHQtdGV4dC1vbi1jb2xvciBiZy1idXR0b24tcHJpbWFyeSBob3ZlcjpiZy1idXR0b24tcHJpbWFyeS1ob3ZlciBvdXRsaW5lLWJ1dHRvbi1wcmltYXJ5IGhvdmVyOm91dGxpbmUtYnV0dG9uLXByaW1hcnktaG92ZXIgZGlzYWJsZWQ6YmctYnV0dG9uLWRpc2FibGVkIGRpc2FibGVkOm91dGxpbmUtYnV0dG9uLWRpc2FibGVkXCIsc2Vjb25kYXJ5OlwidGV4dC10ZXh0LW9uLWNvbG9yIGJnLWJ1dHRvbi1zZWNvbmRhcnkgaG92ZXI6YmctYnV0dG9uLXNlY29uZGFyeS1ob3ZlciBvdXRsaW5lLWJ1dHRvbi1zZWNvbmRhcnkgaG92ZXI6b3V0bGluZS1idXR0b24tc2Vjb25kYXJ5LWhvdmVyIGRpc2FibGVkOmJnLWJ1dHRvbi1kaXNhYmxlZCBkaXNhYmxlZDpvdXRsaW5lLWJ1dHRvbi1kaXNhYmxlZFwiLG91dGxpbmU6XCJ0ZXh0LWJ1dHRvbi10ZXJ0aWFyeS1jb2xvciBvdXRsaW5lLWJvcmRlci1zdWJ0bGUgYmctYnV0dG9uLXRlcnRpYXJ5IGhvdmVyOmJnLWJ1dHRvbi10ZXJ0aWFyeS1ob3ZlciBob3ZlcjpvdXRsaW5lLWJvcmRlci1zdWJ0bGUgZGlzYWJsZWQ6YmctYnV0dG9uLXRlcnRpYXJ5IGRpc2FibGVkOm91dGxpbmUtYm9yZGVyLWRpc2FibGVkXCIsZ2hvc3Q6XCJ0ZXh0LXRleHQtcHJpbWFyeSBiZy10cmFuc3BhcmVudCBvdXRsaW5lLXRyYW5zcGFyZW50IGhvdmVyOmJnLWJ1dHRvbi10ZXJ0aWFyeS1ob3ZlclwiLGxpbms6XCJvdXRsaW5lLW5vbmUgdGV4dC1saW5rLXByaW1hcnkgYmctdHJhbnNwYXJlbnQgaG92ZXI6dGV4dC1saW5rLXByaW1hcnktaG92ZXIgaG92ZXI6dW5kZXJsaW5lIHAtMCBib3JkZXItMCBsZWFkaW5nLW5vbmVcIn0pfHx2b2lkIDA9PT1uP3ZvaWQgMDpuW2FdLFQ9eCYmIXY/bnVsbD09PShyPXtwcmltYXJ5OlwiYmctYnV0dG9uLWRhbmdlciBob3ZlcjpiZy1idXR0b24tZGFuZ2VyLWhvdmVyIG91dGxpbmUtYnV0dG9uLWRhbmdlciBob3ZlcjpvdXRsaW5lLWJ1dHRvbi1kYW5nZXItaG92ZXJcIixvdXRsaW5lOlwidGV4dC1idXR0b24tZGFuZ2VyIG91dGxpbmUgb3V0bGluZS0xIG91dGxpbmUtYnV0dG9uLWRhbmdlciBob3ZlcjpvdXRsaW5lLWJ1dHRvbi1kYW5nZXIgYmctYnV0dG9uLXRlcnRpYXJ5IGhvdmVyOmJnLWZpZWxkLWJhY2tncm91bmQtZXJyb3JcIixnaG9zdDpcInRleHQtYnV0dG9uLWRhbmdlciBob3ZlcjpiZy1maWVsZC1iYWNrZ3JvdW5kLWVycm9yXCIsbGluazpcInRleHQtYnV0dG9uLWRhbmdlciBob3Zlcjp0ZXh0LWJ1dHRvbi1kYW5nZXItc2Vjb25kYXJ5XCJ9KXx8dm9pZCAwPT09cj92b2lkIDA6clthXTpcIlwiLE09bnVsbD09PShvPXt4czpcInAtMSByb3VuZGVkIFsmPnN2Z106c2l6ZS00XCIsc206XCJwLTIgcm91bmRlZCBbJj5zdmddOnNpemUtNCBnYXAtMC41XCIsbWQ6XCJwLTIuNSByb3VuZGVkLW1kIHRleHQtc20gWyY+c3ZnXTpzaXplLTUgZ2FwLTFcIixsZzpcInAtMyByb3VuZGVkLWxnIHRleHQtYmFzZSBbJj5zdmddOnNpemUtNiBnYXAtMVwifSl8fHZvaWQgMD09PW8/dm9pZCAwOm9bdV0sUj1udWxsLEQ9XCJcIjtTJiYoRD1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCIsXCJsZWZ0XCI9PT1FP2k9UzpSPVMpO3ZhciBqPWg7cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KGosY2Uoe3JlZjp0LHR5cGU6ZixjbGFzc05hbWU6b2UoRCxcIm91dGxpbmUgb3V0bGluZS0xIGJvcmRlci1ub25lIGN1cnNvci1wb2ludGVyIHRyYW5zaXRpb24tY29sb3JzIGR1cmF0aW9uLTMwMCBlYXNlLWluLW91dCB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctdG9nZ2xlLW9uIGZvY3VzOnJpbmctb2Zmc2V0LTIgZGlzYWJsZWQ6dGV4dC10ZXh0LWRpc2FibGVkXCIsTSxOLFQsTyxwKSxkaXNhYmxlZDp2fSxQKSxpLGwoKS5jcmVhdGVFbGVtZW50KFwic3BhblwiLHtjbGFzc05hbWU6XCJweC0xXCJ9LGcpLFIpfSkpLGRlPXVlO2xldCBmZT0oZT0yMSk9PntsZXQgdD1cIlwiLG49Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheShlKSk7Zm9yKDtlLS07KXQrPVwidXNlYW5kb20tMjZUMTk4MzQwUFg3NXB4SkFDS1ZFUllNSU5EQlVTSFdPTEZfR1FaYmZnaGprbHF2d3l6cmljdFwiWzYzJm5bZV1dO3JldHVybiB0fTt2YXIgbWU9W1wiaWRcIixcIm9uQ2hhbmdlXCIsXCJ2YWx1ZVwiLFwiZGVmYXVsdFZhbHVlXCIsXCJzaXplXCIsXCJkaXNhYmxlZFwiLFwibGFiZWxcIixcIm5hbWVcIixcImNsYXNzTmFtZVwiXTtmdW5jdGlvbiBoZSgpe3JldHVybiBoZT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LGhlLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBwZShlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9dmFyIGdlPWZ1bmN0aW9uKGUpe3ZhciB0PWUubGFiZWwsbj1lLnN3aXRjaElkLHI9ZS5kaXNhYmxlZCxvPXZvaWQgMCE9PXImJnIsaT1lLmNoaWxkcmVuLHM9ZS5zaXplO2lmKCgwLGEuaXNWYWxpZEVsZW1lbnQpKHQpKXJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShcImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiLFwiaXRlbXMtc3RhcnRcIil9LGksdCk7dmFyIGwsYyx1LGQsZixtPSEobnVsbCE9dCYmdC5oZWFkaW5nfHxudWxsIT10JiZ0LmRlc2NyaXB0aW9uKSxoPW51bGwhPXQmJnQuaGVhZGluZyYmbnVsbCE9dCYmdC5kZXNjcmlwdGlvbj9cIml0ZW1zLXN0YXJ0XCI6XCJpdGVtcy1jZW50ZXJcIjtyZXR1cm4gbT9pOlJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKFwiaW5saW5lLWZsZXhcIixoLFwiZ2FwLTNcIil9LGksUmVhY3QuY3JlYXRlRWxlbWVudChcImxhYmVsXCIse2h0bWxGb3I6bixjbGFzc05hbWU6b2UoIW8mJlwiY3Vyc29yLXBvaW50ZXJcIil9LCh1PXZvaWQgMD09PShjPShsPXR8fHt9KS5oZWFkaW5nKT9cIlwiOmMsZj12b2lkIDA9PT0oZD1sLmRlc2NyaXB0aW9uKT9cIlwiOmQsUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJzcGFjZS15LTEuNVwifSx1JiZSZWFjdC5jcmVhdGVFbGVtZW50KFwicFwiLHtjbGFzc05hbWU6b2UoXCJ0ZXh0LXRleHQtcHJpbWFyeSBtLTBcIix7c206XCJ0ZXh0LXNtIGxlYWRpbmctNCBmb250LW1lZGl1bVwiLG1kOlwidGV4dC1iYXNlIGxlYWRpbmctNSBmb250LW1lZGl1bVwiLGxnOlwidGV4dC1sZyBsZWFkaW5nLTYgZm9udC1tZWRpdW1cIn1bc10sbyYmXCJ0ZXh0LXRleHQtZGlzYWJsZWRcIil9LHUpLGYmJlJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwXCIse2NsYXNzTmFtZTpvZShcInRleHQtdGV4dC1zZWNvbmRhcnkgdGV4dC1zbSBmb250LW5vcm1hbCBsZWFkaW5nLTUgbS0wXCIsbyYmXCJ0ZXh0LXRleHQtZGlzYWJsZWRcIil9LGYpKSkpKX0seWU9ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89ZS5pZCxpPWUub25DaGFuZ2Uscz1lLnZhbHVlLGw9ZS5kZWZhdWx0VmFsdWUsYz12b2lkIDAhPT1sJiZsLHU9ZS5zaXplLGQ9dm9pZCAwPT09dT9cImxnXCI6dSxmPWUuZGlzYWJsZWQsbT12b2lkIDAhPT1mJiZmLGg9ZS5sYWJlbCxwPXZvaWQgMD09PWg/e2hlYWRpbmc6XCJcIixkZXNjcmlwdGlvbjpcIlwifTpoLGc9ZS5uYW1lLHk9ZS5jbGFzc05hbWUsdj1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5jbHVkZXMocikpY29udGludWU7bltyXT1lW3JdfXJldHVybiBufShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKyluPWlbcl0sdC5pbmNsdWRlcyhuKXx8e30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb30oZSxtZSksYj0oMCxhLnVzZU1lbW8pKChmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT1zfSksW3NdKSx4PSgwLGEudXNlTWVtbykoKGZ1bmN0aW9uKCl7cmV0dXJuIG98fFwic3dpdGNoLVwiLmNvbmNhdChmZSgpKX0pLFtdKSx3PShuPSgwLGEudXNlU3RhdGUpKGMpLHI9MixmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShuKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1uKXt2YXIgcixvLGkscyxhPVtdLGw9ITAsYz0hMTt0cnl7aWYoaT0obj1uLmNhbGwoZSkpLm5leHQsMD09PXQpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2w9ITF9ZWxzZSBmb3IoOyEobD0ocj1pLmNhbGwobikpLmRvbmUpJiYoYS5wdXNoKHIudmFsdWUpLGEubGVuZ3RoIT09dCk7bD0hMCk7fWNhdGNoKGUpe2M9ITAsbz1lfWZpbmFsbHl7dHJ5e2lmKCFsJiZudWxsIT1uLnJldHVybiYmKHM9bi5yZXR1cm4oKSxPYmplY3QocykhPT1zKSlyZXR1cm59ZmluYWxseXtpZihjKXRocm93IG99fXJldHVybiBhfX0obixyKXx8ZnVuY3Rpb24oZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gcGUoZSx0KTt2YXIgbj17fS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVyblwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bj9BcnJheS5mcm9tKGUpOlwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9wZShlLHQpOnZvaWQgMH19KG4scil8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksUz13WzBdLGs9d1sxXSxFPVwicHJpbWFyeVwiLEM9KDAsYS51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKCl7cmV0dXJuIGI/czpTfSksW2IscyxTXSksXz17cHJpbWFyeTp7aW5wdXQ6XCJiZy10b2dnbGUtb2ZmIGhvdmVyOmJnLXRvZ2dsZS1vZmYtaG92ZXIgY2hlY2tlZDpiZy10b2dnbGUtb24gZm9jdXM6cmluZyBmb2N1czpyaW5nLXRvZ2dsZS1vbiBmb2N1czpyaW5nLW9mZnNldC00IGNoZWNrZWQ6aG92ZXI6YmctdG9nZ2xlLW9uIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLXRvZ2dsZS1vZmYtYm9yZGVyIGNoZWNrZWQ6Ym9yZGVyLXRvZ2dsZS1vbi1ib3JkZXIgc2hhZG93LXRvZ2dsZUNvbnRhaW5lciBmb2N1czpvdXRsaW5lLW5vbmUgY2hlY2tlZDpmb2N1czpib3JkZXItdG9nZ2xlLW9uLWJvcmRlciBmb2N1czpib3JkZXItdG9nZ2xlLW9mZi1ib3JkZXJcIix0b2dnbGVEaWFsOlwiYmctdG9nZ2xlLWRpYWwtYmFja2dyb3VuZCBzaGFkb3ctdG9nZ2xlRGlhbFwifX0sUD17bGc6e2NvbnRhaW5lcjpcInctMTEgaC02XCIsdG9nZ2xlRGlhbDpcInNpemUtNCBwZWVyLWNoZWNrZWQ6dHJhbnNsYXRlLXgtNVwifSxtZDp7Y29udGFpbmVyOlwidy0xMCBoLTVcIix0b2dnbGVEaWFsOlwic2l6ZS0zIHBlZXItY2hlY2tlZDp0cmFuc2xhdGUteC01XCJ9LHNtOntjb250YWluZXI6XCJ3LTggaC00XCIsdG9nZ2xlRGlhbDpcInNpemUtMi41IHBlZXItY2hlY2tlZDp0cmFuc2xhdGUteC0zLjVcIn19O3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KGdlLHtsYWJlbDpwLHN3aXRjaElkOngsZGlzYWJsZWQ6bSxzaXplOmR9LFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKFwicmVsYXRpdmUgaW5saW5lLWJsb2NrIGN1cnNvci1wb2ludGVyIHJvdW5kZWQtZnVsbCBzaHJpbmstMFwiLFBbZF0uY29udGFpbmVyLHkpfSxSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIixoZSh7cmVmOnQsaWQ6eCx0eXBlOlwiY2hlY2tib3hcIixjbGFzc05hbWU6b2UoXCJwZWVyIGFwcGVhcmFuY2Utbm9uZSBhYnNvbHV0ZSBiZy1ibHVlLWdyYXktMTAwIHJvdW5kZWQtZnVsbCBjdXJzb3ItcG9pbnRlciB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi0zMDAgaC1mdWxsIHctZnVsbCAgYmVmb3JlOmNvbnRlbnQtWycnXSBjaGVja2VkOmJlZm9yZTpjb250ZW50LVsnJ10gbS0wIGNoZWNrZWQ6W2JhY2tncm91bmQtaW1hZ2U6bm9uZV1cIixfW0VdLmlucHV0LG0mJlwiYmctdG9nZ2xlLW9mZi1kaXNhYmxlZCBkaXNhYmxlZDpib3JkZXItdHJhbnNwYXJlbnQgc2hhZG93LW5vbmUgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkXCIpLGNoZWNrZWQ6QygpLG9uQ2hhbmdlOmZ1bmN0aW9uKGUpe2lmKCFtKXt2YXIgdD1lLnRhcmdldC5jaGVja2VkO2J8fGsodCksXCJmdW5jdGlvblwiPT10eXBlb2YgaSYmaSh0KX19LGRpc2FibGVkOm0sbmFtZTpnfSx2KSksUmVhY3QuY3JlYXRlRWxlbWVudChcImxhYmVsXCIse2h0bWxGb3I6eCxjbGFzc05hbWU6b2UoXCJiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWJsdWUtZ3JheS0xMDAgcm91bmRlZC1mdWxsIGFic29sdXRlIGN1cnNvci1wb2ludGVyIHNoYWRvdy1tZCBiZWZvcmU6Y29udGVudFsnJ10gYmVmb3JlOnRyYW5zaXRpb24tb3BhY2l0eSBiZWZvcmU6b3BhY2l0eS0wIGhvdmVyOmJlZm9yZTpvcGFjaXR5LTEwIGJlZm9yZTpoaWRkZW4gYm9yZGVyLW5vbmUgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIHRvcC0yLzQgbGVmdC0xIC10cmFuc2xhdGUteS0yLzQgYmVmb3JlOnctMTAgYmVmb3JlOmgtMTAgYmVmb3JlOnJvdW5kZWQtZnVsbCBiZWZvcmU6YWJzb2x1dGUgYmVmb3JlOnRvcC0yLzQgYmVmb3JlOmxlZnQtMi80IGJlZm9yZTotdHJhbnNsYXRlLXktMi80IGJlZm9yZTotdHJhbnNsYXRlLXgtMi80XCIsUFtkXS50b2dnbGVEaWFsLF9bRV0udG9nZ2xlRGlhbCxtJiZcInBlZXItZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkXCIpfSkpKX0sdmU9KDAsYS5mb3J3YXJkUmVmKSh5ZSk7dmUuZGlzcGxheU5hbWU9XCJTd2l0Y2hcIjt2YXIgYmU9dmU7Y29uc3QgeGU9KC4uLmUpPT5lLmZpbHRlcigoKGUsdCxuKT0+Qm9vbGVhbihlKSYmbi5pbmRleE9mKGUpPT09dCkpLmpvaW4oXCIgXCIpO3ZhciB3ZT17eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHdpZHRoOjI0LGhlaWdodDoyNCx2aWV3Qm94OlwiMCAwIDI0IDI0XCIsZmlsbDpcIm5vbmVcIixzdHJva2U6XCJjdXJyZW50Q29sb3JcIixzdHJva2VXaWR0aDoyLHN0cm9rZUxpbmVjYXA6XCJyb3VuZFwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIn07Y29uc3QgU2U9KDAsYS5mb3J3YXJkUmVmKSgoKHtjb2xvcjplPVwiY3VycmVudENvbG9yXCIsc2l6ZTp0PTI0LHN0cm9rZVdpZHRoOm49MixhYnNvbHV0ZVN0cm9rZVdpZHRoOnIsY2xhc3NOYW1lOm89XCJcIixjaGlsZHJlbjppLGljb25Ob2RlOnMsLi4ubH0sYyk9PigwLGEuY3JlYXRlRWxlbWVudCkoXCJzdmdcIix7cmVmOmMsLi4ud2Usd2lkdGg6dCxoZWlnaHQ6dCxzdHJva2U6ZSxzdHJva2VXaWR0aDpyPzI0Kk51bWJlcihuKS9OdW1iZXIodCk6bixjbGFzc05hbWU6eGUoXCJsdWNpZGVcIixvKSwuLi5sfSxbLi4ucy5tYXAoKChbZSx0XSk9PigwLGEuY3JlYXRlRWxlbWVudCkoZSx0KSkpLC4uLkFycmF5LmlzQXJyYXkoaSk/aTpbaV1dKSkpLGtlPShlLHQpPT57Y29uc3Qgbj0oMCxhLmZvcndhcmRSZWYpKCgoe2NsYXNzTmFtZTpuLC4uLnJ9LG8pPT57cmV0dXJuKDAsYS5jcmVhdGVFbGVtZW50KShTZSx7cmVmOm8saWNvbk5vZGU6dCxjbGFzc05hbWU6eGUoYGx1Y2lkZS0ke2k9ZSxpLnJlcGxhY2UoLyhbYS16MC05XSkoW0EtWl0pL2csXCIkMS0kMlwiKS50b0xvd2VyQ2FzZSgpfWAsbiksLi4ucn0pO3ZhciBpfSkpO3JldHVybiBuLmRpc3BsYXlOYW1lPWAke2V9YCxufSxFZT1rZShcIk1pbnVzXCIsW1tcInBhdGhcIix7ZDpcIk01IDEyaDE0XCIsa2V5OlwiMWF5czBoXCJ9XV0pLENlPWtlKFwiQ2hlY2tcIixbW1wicGF0aFwiLHtkOlwiTTIwIDYgOSAxN2wtNS01XCIsa2V5OlwiMWdtZjJjXCJ9XV0pO3ZhciBfZT1bXCJpZFwiLFwibGFiZWxcIixcImRlZmF1bHRDaGVja2VkXCIsXCJjaGVja2VkXCIsXCJvbkNoYW5nZVwiLFwidmFsdWVcIixcImluZGV0ZXJtaW5hdGVcIixcImRpc2FibGVkXCIsXCJzaXplXCJdO2Z1bmN0aW9uIFBlKCl7cmV0dXJuIFBlPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sUGUuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIE9lKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn12YXIgTmU9ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG8saSxzPWUuaWQsbD1lLmxhYmVsLGM9ZS5kZWZhdWx0Q2hlY2tlZCx1PXZvaWQgMCE9PWMmJmMsZD1lLmNoZWNrZWQsZj1lLm9uQ2hhbmdlLG09KGUudmFsdWUsZS5pbmRldGVybWluYXRlKSxoPWUuZGlzYWJsZWQscD1lLnNpemUsZz12b2lkIDA9PT1wP1wibWRcIjpwLHk9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluY2x1ZGVzKHIpKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLHQuaW5jbHVkZXMobil8fHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsX2UpLHY9KDAsYS51c2VNZW1vKSgoZnVuY3Rpb24oKXtyZXR1cm4gc3x8XCJjaGVja2JveC1cIi5jb25jYXQoZmUoKSl9KSxbc10pLGI9KDAsYS51c2VNZW1vKSgoZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09ZH0pLFtkXSkseD0obz0oMCxhLnVzZVN0YXRlKSh1fHwhMSksaT0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG8pfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW4pe3ZhciByLG8saSxzLGE9W10sbD0hMCxjPSExO3RyeXtpZihpPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47bD0hMX1lbHNlIGZvcig7IShsPShyPWkuY2FsbChuKSkuZG9uZSkmJihhLnB1c2goci52YWx1ZSksYS5sZW5ndGghPT10KTtsPSEwKTt9Y2F0Y2goZSl7Yz0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWwmJm51bGwhPW4ucmV0dXJuJiYocz1uLnJldHVybigpLE9iamVjdChzKSE9PXMpKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgb319cmV0dXJuIGF9fShvLGkpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBPZShlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uP0FycmF5LmZyb20oZSk6XCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP09lKGUsdCk6dm9pZCAwfX0obyxpKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSx3PXhbMF0sUz14WzFdLGs9XCJwcmltYXJ5XCIsRT17c206e2NoZWNrYm94Olwic2l6ZS00IHJvdW5kZWQgZ2FwLTFcIixpY29uOlwic2l6ZS0zXCIsdGV4dDpcInRleHQtc21cIixkZXNjcmlwdGlvbjpcInRleHQteHNcIixnYXA6XCJnYXAtMC41XCJ9LG1kOntjaGVja2JveDpcInNpemUtNSByb3VuZGVkIGdhcC0xXCIsaWNvbjpcInNpemUtNFwiLHRleHQ6XCJ0ZXh0LWJhc2VcIixkZXNjcmlwdGlvbjpcInRleHQtc21cIixnYXA6XCJnYXAtMVwifX0sQz17cHJpbWFyeTp7Y2hlY2tib3g6XCJib3JkZXItYm9yZGVyLXN0cm9uZyBob3Zlcjpib3JkZXItYm9yZGVyLWludGVyYWN0aXZlIGNoZWNrZWQ6Ym9yZGVyLWJvcmRlci1pbnRlcmFjdGl2ZSBiZy13aGl0ZSBjaGVja2VkOmJnLXRvZ2dsZS1vbiBjaGVja2VkOmhvdmVyOmJnLXRvZ2dsZS1vbi1ob3ZlciBjaGVja2VkOmhvdmVyOmJvcmRlci10b2dnbGUtb24taG92ZXIgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctb2Zmc2V0LTQgZm9jdXM6cmluZy1mb2N1c1wiLGljb246XCJ0ZXh0LXdoaXRlXCJ9fSxfPSgwLGEudXNlQ2FsbGJhY2spKChmdW5jdGlvbigpe3JldHVybiBiP2Q6d30pLFtiLGQsd10pLFA9KDAsYS51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKCl7cmV0dXJuKDAsYS5pc1ZhbGlkRWxlbWVudCkobCk/bDpsLmhlYWRpbmd8fGwuZGVzY3JpcHRpb24/UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6RVtnXS5nYXB9LGwuaGVhZGluZyYmUmVhY3QuY3JlYXRlRWxlbWVudChcInBcIix7Y2xhc3NOYW1lOm9lKFwidGV4dC10ZXh0LXByaW1hcnkgZm9udC1tZWRpdW0gbGVhZGluZy00IG0tMFwiLEVbZ10udGV4dCxFW2ddLmdhcCl9LGwuaGVhZGluZyksbC5kZXNjcmlwdGlvbiYmUmVhY3QuY3JlYXRlRWxlbWVudChcInBcIix7Y2xhc3NOYW1lOm9lKFwidGV4dC10ZXh0LXNlY29uZGFyeSBmb250LW5vcm1hbCBsZWFkaW5nLTUgbS0wXCIsRVtnXS5kZXNjcmlwdGlvbil9LGwuZGVzY3JpcHRpb24pKTpudWxsfSksW2wsZ10pO3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShcImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiLCEhbCYmXCJpdGVtcy1zdGFydFwiKX0sUmVhY3QuY3JlYXRlRWxlbWVudChcImxhYmVsXCIse2NsYXNzTmFtZTpvZShcInJlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIHJvdW5kZWQtZnVsbCBwLTAuNVwiLCFoJiZcImN1cnNvci1wb2ludGVyXCIpLGh0bWxGb3I6dn0sUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsUGUoe3JlZjp0LGlkOnYsdHlwZTpcImNoZWNrYm94XCIsY2xhc3NOYW1lOm9lKFwicGVlciByZWxhdGl2ZSBjdXJzb3ItcG9pbnRlciBhcHBlYXJhbmNlLW5vbmUgdHJhbnNpdGlvbi1hbGwgbS0wIGJlZm9yZTpjb250ZW50LVsnJ10gY2hlY2tlZDpiZWZvcmU6Y29udGVudC1bJyddIGNoZWNrZWQ6YmVmb3JlOmhpZGRlbiBiZWZvcmU6aGlkZGVuICFib3JkZXItMS41IGJvcmRlci1zb2xpZFwiLENba10uY2hlY2tib3gsRVtnXS5jaGVja2JveCxoJiZcImRpc2FibGVkOmJnLXdoaXRlIGNoZWNrZWQ6ZGlzYWJsZWQ6Ymctd2hpdGUgZGlzYWJsZWQ6Ym9yZGVyLWJvcmRlci1kaXNhYmxlZCBjaGVja2VkOmRpc2FibGVkOmJvcmRlci1ib3JkZXItZGlzYWJsZWRcIiksY2hlY2tlZDpfKCksb25DaGFuZ2U6ZnVuY3Rpb24oZSl7aWYoIWgpe3ZhciB0PWUudGFyZ2V0LmNoZWNrZWQ7Ynx8Uyh0KSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBmJiZmKHQpfX0sZGlzYWJsZWQ6aH0seSkpLFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2NsYXNzTmFtZTpvZShcInBvaW50ZXItZXZlbnRzLW5vbmUgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGFic29sdXRlIHRvcC0yLzQgbGVmdC0yLzQgLXRyYW5zbGF0ZS15LTIvNCAtdHJhbnNsYXRlLXgtMi80IHRleHQtd2hpdGUgb3BhY2l0eS0wIHRyYW5zaXRpb24tb3BhY2l0eSBwZWVyLWNoZWNrZWQ6b3BhY2l0eS0xMDBcIixDW2tdLmljb24saCYmXCJwZWVyLWRpc2FibGVkOnRleHQtYm9yZGVyLWRpc2FibGVkXCIpfSxtP1JlYWN0LmNyZWF0ZUVsZW1lbnQoRWUse2NsYXNzTmFtZTpvZShudWxsPT09KG49RVtnXSl8fHZvaWQgMD09PW4/dm9pZCAwOm4uaWNvbil9KTpSZWFjdC5jcmVhdGVFbGVtZW50KENlLHtjbGFzc05hbWU6b2UobnVsbD09PShyPUVbZ10pfHx2b2lkIDA9PT1yP3ZvaWQgMDpyLmljb24pfSkpKSwhIWwmJlJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsYWJlbFwiLHtjbGFzc05hbWU6b2UoIWgmJlwiY3Vyc29yLXBvaW50ZXJcIiksaHRtbEZvcjp2fSxQKCkpKX0sVGU9KDAsYS5mb3J3YXJkUmVmKShOZSk7VGUuZGlzcGxheU5hbWU9XCJDaGVja2JveFwiO3ZhciBNZT1UZTtjb25zdCBSZT1rZShcIkluZm9cIixbW1wiY2lyY2xlXCIse2N4OlwiMTJcIixjeTpcIjEyXCIscjpcIjEwXCIsa2V5OlwiMW1nbGF5XCJ9XSxbXCJwYXRoXCIse2Q6XCJNMTIgMTZ2LTRcIixrZXk6XCIxZHRpZnVcIn1dLFtcInBhdGhcIix7ZDpcIk0xMiA4aC4wMVwiLGtleTpcImU5Ym9pM1wifV1dKTt2YXIgRGU9e3ByaW1hcnk6e2NoZWNrYm94OlwiYm9yZGVyLWJvcmRlci1zdHJvbmcgaG92ZXI6Ym9yZGVyLWJvcmRlci1pbnRlcmFjdGl2ZSBjaGVja2VkOmJvcmRlci1ib3JkZXItaW50ZXJhY3RpdmUgYmctd2hpdGUgY2hlY2tlZDpiZy10b2dnbGUtb24gY2hlY2tlZDpob3ZlcjpiZy10b2dnbGUtb24taG92ZXIgY2hlY2tlZDpob3Zlcjpib3JkZXItdG9nZ2xlLW9uLWhvdmVyIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLW9mZnNldC00IGZvY3VzOnJpbmctZm9jdXNcIixpY29uOlwidGV4dC13aGl0ZVwifX0samU9e3NtOlwidGV4dC1zbSBsZWFkaW5nLTVcIixtZDpcInRleHQtYmFzZSBsZWFkaW5nLTZcIn0sQWU9e3NtOntjaGVja2JveDpcInNpemUtNFwiLGljb246XCJzaXplLTEuNVwiLGluZm86XCJzaXplLTRcIn0sbWQ6e2NoZWNrYm94Olwic2l6ZS01XCIsaWNvbjpcInNpemUtMlwiLGluZm86XCJzaXplLTVcIn19LEllPXt4czpcInB5LTEgcHgtMSB0ZXh0LXNtIGdhcC0wLjUgWyY+c3ZnXTpzaXplLTRcIixzbTpcInB5LTEgcHgtMS41IHRleHQtYmFzZSBnYXAtMSBbJj5zdmddOnNpemUtNFwiLG1kOlwicHktMiBweC0yLjUgdGV4dC1iYXNlIGdhcC0xIFsmPnN2Z106c2l6ZS01XCIsbGc6XCJweS0yLjUgcHgtMyB0ZXh0LWJhc2UgZ2FwLTEgWyY+c3ZnXTpzaXplLTZcIn07ZnVuY3Rpb24gTGUoZSl7cmV0dXJuIEJlKGUpPyhlLm5vZGVOYW1lfHxcIlwiKS50b0xvd2VyQ2FzZSgpOlwiI2RvY3VtZW50XCJ9ZnVuY3Rpb24gRmUoZSl7dmFyIHQ7cmV0dXJuKG51bGw9PWV8fG51bGw9PSh0PWUub3duZXJEb2N1bWVudCk/dm9pZCAwOnQuZGVmYXVsdFZpZXcpfHx3aW5kb3d9ZnVuY3Rpb24gemUoZSl7dmFyIHQ7cmV0dXJuIG51bGw9PSh0PShCZShlKT9lLm93bmVyRG9jdW1lbnQ6ZS5kb2N1bWVudCl8fHdpbmRvdy5kb2N1bWVudCk/dm9pZCAwOnQuZG9jdW1lbnRFbGVtZW50fWZ1bmN0aW9uIEJlKGUpe3JldHVybiBlIGluc3RhbmNlb2YgTm9kZXx8ZSBpbnN0YW5jZW9mIEZlKGUpLk5vZGV9ZnVuY3Rpb24gV2UoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBFbGVtZW50fHxlIGluc3RhbmNlb2YgRmUoZSkuRWxlbWVudH1mdW5jdGlvbiBWZShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50fHxlIGluc3RhbmNlb2YgRmUoZSkuSFRNTEVsZW1lbnR9ZnVuY3Rpb24gVWUoZSl7cmV0dXJuXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFNoYWRvd1Jvb3QmJihlIGluc3RhbmNlb2YgU2hhZG93Um9vdHx8ZSBpbnN0YW5jZW9mIEZlKGUpLlNoYWRvd1Jvb3QpfWZ1bmN0aW9uICRlKGUpe2NvbnN0e292ZXJmbG93OnQsb3ZlcmZsb3dYOm4sb3ZlcmZsb3dZOnIsZGlzcGxheTpvfT1YZShlKTtyZXR1cm4vYXV0b3xzY3JvbGx8b3ZlcmxheXxoaWRkZW58Y2xpcC8udGVzdCh0K3IrbikmJiFbXCJpbmxpbmVcIixcImNvbnRlbnRzXCJdLmluY2x1ZGVzKG8pfWZ1bmN0aW9uIFllKGUpe3JldHVybltcInRhYmxlXCIsXCJ0ZFwiLFwidGhcIl0uaW5jbHVkZXMoTGUoZSkpfWZ1bmN0aW9uIEhlKGUpe3JldHVybltcIjpwb3BvdmVyLW9wZW5cIixcIjptb2RhbFwiXS5zb21lKCh0PT57dHJ5e3JldHVybiBlLm1hdGNoZXModCl9Y2F0Y2goZSl7cmV0dXJuITF9fSkpfWZ1bmN0aW9uIEtlKGUpe2NvbnN0IHQ9cWUoKSxuPVdlKGUpP1hlKGUpOmU7cmV0dXJuXCJub25lXCIhPT1uLnRyYW5zZm9ybXx8XCJub25lXCIhPT1uLnBlcnNwZWN0aXZlfHwhIW4uY29udGFpbmVyVHlwZSYmXCJub3JtYWxcIiE9PW4uY29udGFpbmVyVHlwZXx8IXQmJiEhbi5iYWNrZHJvcEZpbHRlciYmXCJub25lXCIhPT1uLmJhY2tkcm9wRmlsdGVyfHwhdCYmISFuLmZpbHRlciYmXCJub25lXCIhPT1uLmZpbHRlcnx8W1widHJhbnNmb3JtXCIsXCJwZXJzcGVjdGl2ZVwiLFwiZmlsdGVyXCJdLnNvbWUoKGU9PihuLndpbGxDaGFuZ2V8fFwiXCIpLmluY2x1ZGVzKGUpKSl8fFtcInBhaW50XCIsXCJsYXlvdXRcIixcInN0cmljdFwiLFwiY29udGVudFwiXS5zb21lKChlPT4obi5jb250YWlufHxcIlwiKS5pbmNsdWRlcyhlKSkpfWZ1bmN0aW9uIHFlKCl7cmV0dXJuIShcInVuZGVmaW5lZFwiPT10eXBlb2YgQ1NTfHwhQ1NTLnN1cHBvcnRzKSYmQ1NTLnN1cHBvcnRzKFwiLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXJcIixcIm5vbmVcIil9ZnVuY3Rpb24gR2UoZSl7cmV0dXJuW1wiaHRtbFwiLFwiYm9keVwiLFwiI2RvY3VtZW50XCJdLmluY2x1ZGVzKExlKGUpKX1mdW5jdGlvbiBYZShlKXtyZXR1cm4gRmUoZSkuZ2V0Q29tcHV0ZWRTdHlsZShlKX1mdW5jdGlvbiBaZShlKXtyZXR1cm4gV2UoZSk/e3Njcm9sbExlZnQ6ZS5zY3JvbGxMZWZ0LHNjcm9sbFRvcDplLnNjcm9sbFRvcH06e3Njcm9sbExlZnQ6ZS5zY3JvbGxYLHNjcm9sbFRvcDplLnNjcm9sbFl9fWZ1bmN0aW9uIEplKGUpe2lmKFwiaHRtbFwiPT09TGUoZSkpcmV0dXJuIGU7Y29uc3QgdD1lLmFzc2lnbmVkU2xvdHx8ZS5wYXJlbnROb2RlfHxVZShlKSYmZS5ob3N0fHx6ZShlKTtyZXR1cm4gVWUodCk/dC5ob3N0OnR9ZnVuY3Rpb24gUWUoZSl7Y29uc3QgdD1KZShlKTtyZXR1cm4gR2UodCk/ZS5vd25lckRvY3VtZW50P2Uub3duZXJEb2N1bWVudC5ib2R5OmUuYm9keTpWZSh0KSYmJGUodCk/dDpRZSh0KX1mdW5jdGlvbiBldChlLHQsbil7dmFyIHI7dm9pZCAwPT09dCYmKHQ9W10pLHZvaWQgMD09PW4mJihuPSEwKTtjb25zdCBvPVFlKGUpLGk9bz09PShudWxsPT0ocj1lLm93bmVyRG9jdW1lbnQpP3ZvaWQgMDpyLmJvZHkpLHM9RmUobyk7aWYoaSl7Y29uc3QgZT10dChzKTtyZXR1cm4gdC5jb25jYXQocyxzLnZpc3VhbFZpZXdwb3J0fHxbXSwkZShvKT9vOltdLGUmJm4/ZXQoZSk6W10pfXJldHVybiB0LmNvbmNhdChvLGV0KG8sW10sbikpfWZ1bmN0aW9uIHR0KGUpe3JldHVybiBlLnBhcmVudCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKGUucGFyZW50KT9lLmZyYW1lRWxlbWVudDpudWxsfWZ1bmN0aW9uIG50KGUpe2xldCB0PWUuYWN0aXZlRWxlbWVudDtmb3IoO251bGwhPShudWxsPT0obj10KXx8bnVsbD09KG49bi5zaGFkb3dSb290KT92b2lkIDA6bi5hY3RpdmVFbGVtZW50KTspe3ZhciBuO3Q9dC5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnR9cmV0dXJuIHR9ZnVuY3Rpb24gcnQoZSx0KXtpZighZXx8IXQpcmV0dXJuITE7Y29uc3Qgbj1udWxsPT10LmdldFJvb3ROb2RlP3ZvaWQgMDp0LmdldFJvb3ROb2RlKCk7aWYoZS5jb250YWlucyh0KSlyZXR1cm4hMDtpZihuJiZVZShuKSl7bGV0IG49dDtmb3IoO247KXtpZihlPT09bilyZXR1cm4hMDtuPW4ucGFyZW50Tm9kZXx8bi5ob3N0fX1yZXR1cm4hMX1mdW5jdGlvbiBvdCgpe2NvbnN0IGU9bmF2aWdhdG9yLnVzZXJBZ2VudERhdGE7cmV0dXJuIG51bGwhPWUmJmUucGxhdGZvcm0/ZS5wbGF0Zm9ybTpuYXZpZ2F0b3IucGxhdGZvcm19ZnVuY3Rpb24gaXQoKXtjb25zdCBlPW5hdmlnYXRvci51c2VyQWdlbnREYXRhO3JldHVybiBlJiZBcnJheS5pc0FycmF5KGUuYnJhbmRzKT9lLmJyYW5kcy5tYXAoKGU9PntsZXR7YnJhbmQ6dCx2ZXJzaW9uOm59PWU7cmV0dXJuIHQrXCIvXCIrbn0pKS5qb2luKFwiIFwiKTpuYXZpZ2F0b3IudXNlckFnZW50fWZ1bmN0aW9uIHN0KGUpe3JldHVybiEoMCE9PWUubW96SW5wdXRTb3VyY2V8fCFlLmlzVHJ1c3RlZCl8fChjdCgpJiZlLnBvaW50ZXJUeXBlP1wiY2xpY2tcIj09PWUudHlwZSYmMT09PWUuYnV0dG9uczowPT09ZS5kZXRhaWwmJiFlLnBvaW50ZXJUeXBlKX1mdW5jdGlvbiBhdChlKXtyZXR1cm4haXQoKS5pbmNsdWRlcyhcImpzZG9tL1wiKSYmKCFjdCgpJiYwPT09ZS53aWR0aCYmMD09PWUuaGVpZ2h0fHxjdCgpJiYxPT09ZS53aWR0aCYmMT09PWUuaGVpZ2h0JiYwPT09ZS5wcmVzc3VyZSYmMD09PWUuZGV0YWlsJiZcIm1vdXNlXCI9PT1lLnBvaW50ZXJUeXBlfHxlLndpZHRoPDEmJmUuaGVpZ2h0PDEmJjA9PT1lLnByZXNzdXJlJiYwPT09ZS5kZXRhaWwmJlwidG91Y2hcIj09PWUucG9pbnRlclR5cGUpfWZ1bmN0aW9uIGx0KCl7cmV0dXJuL2FwcGxlL2kudGVzdChuYXZpZ2F0b3IudmVuZG9yKX1mdW5jdGlvbiBjdCgpe2NvbnN0IGU9L2FuZHJvaWQvaTtyZXR1cm4gZS50ZXN0KG90KCkpfHxlLnRlc3QoaXQoKSl9ZnVuY3Rpb24gdXQoKXtyZXR1cm4gb3QoKS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJtYWNcIikmJiFuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHN9ZnVuY3Rpb24gZHQoZSx0KXtjb25zdCBuPVtcIm1vdXNlXCIsXCJwZW5cIl07cmV0dXJuIHR8fG4ucHVzaChcIlwiLHZvaWQgMCksbi5pbmNsdWRlcyhlKX1mdW5jdGlvbiBmdChlKXtyZXR1cm4obnVsbD09ZT92b2lkIDA6ZS5vd25lckRvY3VtZW50KXx8ZG9jdW1lbnR9ZnVuY3Rpb24gbXQoZSx0KXtpZihudWxsPT10KXJldHVybiExO2lmKFwiY29tcG9zZWRQYXRoXCJpbiBlKXJldHVybiBlLmNvbXBvc2VkUGF0aCgpLmluY2x1ZGVzKHQpO2NvbnN0IG49ZTtyZXR1cm4gbnVsbCE9bi50YXJnZXQmJnQuY29udGFpbnMobi50YXJnZXQpfWZ1bmN0aW9uIGh0KGUpe3JldHVyblwiY29tcG9zZWRQYXRoXCJpbiBlP2UuY29tcG9zZWRQYXRoKClbMF06ZS50YXJnZXR9Y29uc3QgcHQ9XCJpbnB1dDpub3QoW3R5cGU9J2hpZGRlbiddKTpub3QoW2Rpc2FibGVkXSksW2NvbnRlbnRlZGl0YWJsZV06bm90KFtjb250ZW50ZWRpdGFibGU9J2ZhbHNlJ10pLHRleHRhcmVhOm5vdChbZGlzYWJsZWRdKVwiO2Z1bmN0aW9uIGd0KGUpe3JldHVybiBWZShlKSYmZS5tYXRjaGVzKHB0KX1mdW5jdGlvbiB5dChlKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKX1mdW5jdGlvbiB2dChlKXtyZXR1cm4hIWUmJlwiY29tYm9ib3hcIj09PWUuZ2V0QXR0cmlidXRlKFwicm9sZVwiKSYmZ3QoZSl9Y29uc3QgYnQ9TWF0aC5taW4seHQ9TWF0aC5tYXgsd3Q9TWF0aC5yb3VuZCxTdD1NYXRoLmZsb29yLGt0PWU9Pih7eDplLHk6ZX0pLEV0PXtsZWZ0OlwicmlnaHRcIixyaWdodDpcImxlZnRcIixib3R0b206XCJ0b3BcIix0b3A6XCJib3R0b21cIn0sQ3Q9e3N0YXJ0OlwiZW5kXCIsZW5kOlwic3RhcnRcIn07ZnVuY3Rpb24gX3QoZSx0LG4pe3JldHVybiB4dChlLGJ0KHQsbikpfWZ1bmN0aW9uIFB0KGUsdCl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lKHQpOmV9ZnVuY3Rpb24gT3QoZSl7cmV0dXJuIGUuc3BsaXQoXCItXCIpWzBdfWZ1bmN0aW9uIE50KGUpe3JldHVybiBlLnNwbGl0KFwiLVwiKVsxXX1mdW5jdGlvbiBUdChlKXtyZXR1cm5cInhcIj09PWU/XCJ5XCI6XCJ4XCJ9ZnVuY3Rpb24gTXQoZSl7cmV0dXJuXCJ5XCI9PT1lP1wiaGVpZ2h0XCI6XCJ3aWR0aFwifWZ1bmN0aW9uIFJ0KGUpe3JldHVybltcInRvcFwiLFwiYm90dG9tXCJdLmluY2x1ZGVzKE90KGUpKT9cInlcIjpcInhcIn1mdW5jdGlvbiBEdChlKXtyZXR1cm4gVHQoUnQoZSkpfWZ1bmN0aW9uIGp0KGUpe3JldHVybiBlLnJlcGxhY2UoL3N0YXJ0fGVuZC9nLChlPT5DdFtlXSkpfWZ1bmN0aW9uIEF0KGUpe3JldHVybiBlLnJlcGxhY2UoL2xlZnR8cmlnaHR8Ym90dG9tfHRvcC9nLChlPT5FdFtlXSkpfWZ1bmN0aW9uIEl0KGUpe3JldHVyblwibnVtYmVyXCIhPXR5cGVvZiBlP2Z1bmN0aW9uKGUpe3JldHVybnt0b3A6MCxyaWdodDowLGJvdHRvbTowLGxlZnQ6MCwuLi5lfX0oZSk6e3RvcDplLHJpZ2h0OmUsYm90dG9tOmUsbGVmdDplfX1mdW5jdGlvbiBMdChlKXtjb25zdHt4OnQseTpuLHdpZHRoOnIsaGVpZ2h0Om99PWU7cmV0dXJue3dpZHRoOnIsaGVpZ2h0Om8sdG9wOm4sbGVmdDp0LHJpZ2h0OnQrcixib3R0b206bitvLHg6dCx5Om59fXZhciBGdD1bXCJpbnB1dDpub3QoW2luZXJ0XSlcIixcInNlbGVjdDpub3QoW2luZXJ0XSlcIixcInRleHRhcmVhOm5vdChbaW5lcnRdKVwiLFwiYVtocmVmXTpub3QoW2luZXJ0XSlcIixcImJ1dHRvbjpub3QoW2luZXJ0XSlcIixcIlt0YWJpbmRleF06bm90KHNsb3QpOm5vdChbaW5lcnRdKVwiLFwiYXVkaW9bY29udHJvbHNdOm5vdChbaW5lcnRdKVwiLFwidmlkZW9bY29udHJvbHNdOm5vdChbaW5lcnRdKVwiLCdbY29udGVudGVkaXRhYmxlXTpub3QoW2NvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCJdKTpub3QoW2luZXJ0XSknLFwiZGV0YWlscz5zdW1tYXJ5OmZpcnN0LW9mLXR5cGU6bm90KFtpbmVydF0pXCIsXCJkZXRhaWxzOm5vdChbaW5lcnRdKVwiXS5qb2luKFwiLFwiKSx6dD1cInVuZGVmaW5lZFwiPT10eXBlb2YgRWxlbWVudCxCdD16dD9mdW5jdGlvbigpe306RWxlbWVudC5wcm90b3R5cGUubWF0Y2hlc3x8RWxlbWVudC5wcm90b3R5cGUubXNNYXRjaGVzU2VsZWN0b3J8fEVsZW1lbnQucHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3RvcixXdD0henQmJkVsZW1lbnQucHJvdG90eXBlLmdldFJvb3ROb2RlP2Z1bmN0aW9uKGUpe3ZhciB0O3JldHVybiBudWxsPT1lfHxudWxsPT09KHQ9ZS5nZXRSb290Tm9kZSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuY2FsbChlKX06ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/dm9pZCAwOmUub3duZXJEb2N1bWVudH0sVnQ9ZnVuY3Rpb24gZSh0LG4pe3ZhciByO3ZvaWQgMD09PW4mJihuPSEwKTt2YXIgbz1udWxsPT10fHxudWxsPT09KHI9dC5nZXRBdHRyaWJ1dGUpfHx2b2lkIDA9PT1yP3ZvaWQgMDpyLmNhbGwodCxcImluZXJ0XCIpO3JldHVyblwiXCI9PT1vfHxcInRydWVcIj09PW98fG4mJnQmJmUodC5wYXJlbnROb2RlKX0sVXQ9ZnVuY3Rpb24gZSh0LG4scil7Zm9yKHZhciBvPVtdLGk9QXJyYXkuZnJvbSh0KTtpLmxlbmd0aDspe3ZhciBzPWkuc2hpZnQoKTtpZighVnQocywhMSkpaWYoXCJTTE9UXCI9PT1zLnRhZ05hbWUpe3ZhciBhPXMuYXNzaWduZWRFbGVtZW50cygpLGw9ZShhLmxlbmd0aD9hOnMuY2hpbGRyZW4sITAscik7ci5mbGF0dGVuP28ucHVzaC5hcHBseShvLGwpOm8ucHVzaCh7c2NvcGVQYXJlbnQ6cyxjYW5kaWRhdGVzOmx9KX1lbHNle0J0LmNhbGwocyxGdCkmJnIuZmlsdGVyKHMpJiYobnx8IXQuaW5jbHVkZXMocykpJiZvLnB1c2gocyk7dmFyIGM9cy5zaGFkb3dSb290fHxcImZ1bmN0aW9uXCI9PXR5cGVvZiByLmdldFNoYWRvd1Jvb3QmJnIuZ2V0U2hhZG93Um9vdChzKSx1PSFWdChjLCExKSYmKCFyLnNoYWRvd1Jvb3RGaWx0ZXJ8fHIuc2hhZG93Um9vdEZpbHRlcihzKSk7aWYoYyYmdSl7dmFyIGQ9ZSghMD09PWM/cy5jaGlsZHJlbjpjLmNoaWxkcmVuLCEwLHIpO3IuZmxhdHRlbj9vLnB1c2guYXBwbHkobyxkKTpvLnB1c2goe3Njb3BlUGFyZW50OnMsY2FuZGlkYXRlczpkfSl9ZWxzZSBpLnVuc2hpZnQuYXBwbHkoaSxzLmNoaWxkcmVuKX19cmV0dXJuIG99LCR0PWZ1bmN0aW9uKGUpe3JldHVybiFpc05hTihwYXJzZUludChlLmdldEF0dHJpYnV0ZShcInRhYmluZGV4XCIpLDEwKSl9LFl0PWZ1bmN0aW9uKGUpe2lmKCFlKXRocm93IG5ldyBFcnJvcihcIk5vIG5vZGUgcHJvdmlkZWRcIik7cmV0dXJuIGUudGFiSW5kZXg8MCYmKC9eKEFVRElPfFZJREVPfERFVEFJTFMpJC8udGVzdChlLnRhZ05hbWUpfHxmdW5jdGlvbihlKXt2YXIgdCxuPW51bGw9PWV8fG51bGw9PT0odD1lLmdldEF0dHJpYnV0ZSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuY2FsbChlLFwiY29udGVudGVkaXRhYmxlXCIpO3JldHVyblwiXCI9PT1ufHxcInRydWVcIj09PW59KGUpKSYmISR0KGUpPzA6ZS50YWJJbmRleH0sSHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS50YWJJbmRleD09PXQudGFiSW5kZXg/ZS5kb2N1bWVudE9yZGVyLXQuZG9jdW1lbnRPcmRlcjplLnRhYkluZGV4LXQudGFiSW5kZXh9LEt0PWZ1bmN0aW9uKGUpe3JldHVyblwiSU5QVVRcIj09PWUudGFnTmFtZX0scXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPXQud2lkdGgscj10LmhlaWdodDtyZXR1cm4gMD09PW4mJjA9PT1yfSxHdD1mdW5jdGlvbihlLHQpe3JldHVybiEodC5kaXNhYmxlZHx8VnQodCl8fGZ1bmN0aW9uKGUpe3JldHVybiBLdChlKSYmXCJoaWRkZW5cIj09PWUudHlwZX0odCl8fGZ1bmN0aW9uKGUsdCl7dmFyIG49dC5kaXNwbGF5Q2hlY2sscj10LmdldFNoYWRvd1Jvb3Q7aWYoXCJoaWRkZW5cIj09PWdldENvbXB1dGVkU3R5bGUoZSkudmlzaWJpbGl0eSlyZXR1cm4hMDt2YXIgbz1CdC5jYWxsKGUsXCJkZXRhaWxzPnN1bW1hcnk6Zmlyc3Qtb2YtdHlwZVwiKT9lLnBhcmVudEVsZW1lbnQ6ZTtpZihCdC5jYWxsKG8sXCJkZXRhaWxzOm5vdChbb3Blbl0pICpcIikpcmV0dXJuITA7aWYobiYmXCJmdWxsXCIhPT1uJiZcImxlZ2FjeS1mdWxsXCIhPT1uKXtpZihcIm5vbi16ZXJvLWFyZWFcIj09PW4pcmV0dXJuIHF0KGUpfWVsc2V7aWYoXCJmdW5jdGlvblwiPT10eXBlb2Ygcil7Zm9yKHZhciBpPWU7ZTspe3ZhciBzPWUucGFyZW50RWxlbWVudCxhPVd0KGUpO2lmKHMmJiFzLnNoYWRvd1Jvb3QmJiEwPT09cihzKSlyZXR1cm4gcXQoZSk7ZT1lLmFzc2lnbmVkU2xvdD9lLmFzc2lnbmVkU2xvdDpzfHxhPT09ZS5vd25lckRvY3VtZW50P3M6YS5ob3N0fWU9aX1pZihmdW5jdGlvbihlKXt2YXIgdCxuLHIsbyxpPWUmJld0KGUpLHM9bnVsbD09PSh0PWkpfHx2b2lkIDA9PT10P3ZvaWQgMDp0Lmhvc3QsYT0hMTtpZihpJiZpIT09ZSlmb3IoYT0hIShudWxsIT09KG49cykmJnZvaWQgMCE9PW4mJm51bGwhPT0ocj1uLm93bmVyRG9jdW1lbnQpJiZ2b2lkIDAhPT1yJiZyLmNvbnRhaW5zKHMpfHxudWxsIT1lJiZudWxsIT09KG89ZS5vd25lckRvY3VtZW50KSYmdm9pZCAwIT09byYmby5jb250YWlucyhlKSk7IWEmJnM7KXt2YXIgbCxjLHU7YT0hKG51bGw9PT0oYz1zPW51bGw9PT0obD1pPVd0KHMpKXx8dm9pZCAwPT09bD92b2lkIDA6bC5ob3N0KXx8dm9pZCAwPT09Y3x8bnVsbD09PSh1PWMub3duZXJEb2N1bWVudCl8fHZvaWQgMD09PXV8fCF1LmNvbnRhaW5zKHMpKX1yZXR1cm4gYX0oZSkpcmV0dXJuIWUuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGg7aWYoXCJsZWdhY3ktZnVsbFwiIT09bilyZXR1cm4hMH1yZXR1cm4hMX0odCxlKXx8ZnVuY3Rpb24oZSl7cmV0dXJuXCJERVRBSUxTXCI9PT1lLnRhZ05hbWUmJkFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseShlLmNoaWxkcmVuKS5zb21lKChmdW5jdGlvbihlKXtyZXR1cm5cIlNVTU1BUllcIj09PWUudGFnTmFtZX0pKX0odCl8fGZ1bmN0aW9uKGUpe2lmKC9eKElOUFVUfEJVVFRPTnxTRUxFQ1R8VEVYVEFSRUEpJC8udGVzdChlLnRhZ05hbWUpKWZvcih2YXIgdD1lLnBhcmVudEVsZW1lbnQ7dDspe2lmKFwiRklFTERTRVRcIj09PXQudGFnTmFtZSYmdC5kaXNhYmxlZCl7Zm9yKHZhciBuPTA7bjx0LmNoaWxkcmVuLmxlbmd0aDtuKyspe3ZhciByPXQuY2hpbGRyZW4uaXRlbShuKTtpZihcIkxFR0VORFwiPT09ci50YWdOYW1lKXJldHVybiEhQnQuY2FsbCh0LFwiZmllbGRzZXRbZGlzYWJsZWRdICpcIil8fCFyLmNvbnRhaW5zKGUpfXJldHVybiEwfXQ9dC5wYXJlbnRFbGVtZW50fXJldHVybiExfSh0KSl9LFh0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIShmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIEt0KGUpJiZcInJhZGlvXCI9PT1lLnR5cGV9KGUpJiYhZnVuY3Rpb24oZSl7aWYoIWUubmFtZSlyZXR1cm4hMDt2YXIgdCxuPWUuZm9ybXx8V3QoZSkscj1mdW5jdGlvbihlKXtyZXR1cm4gbi5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPVwicmFkaW9cIl1bbmFtZT1cIicrZSsnXCJdJyl9O2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5DU1MmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHdpbmRvdy5DU1MuZXNjYXBlKXQ9cih3aW5kb3cuQ1NTLmVzY2FwZShlLm5hbWUpKTtlbHNlIHRyeXt0PXIoZS5uYW1lKX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5lcnJvcihcIkxvb2tzIGxpa2UgeW91IGhhdmUgYSByYWRpbyBidXR0b24gd2l0aCBhIG5hbWUgYXR0cmlidXRlIGNvbnRhaW5pbmcgaW52YWxpZCBDU1Mgc2VsZWN0b3IgY2hhcmFjdGVycyBhbmQgbmVlZCB0aGUgQ1NTLmVzY2FwZSBwb2x5ZmlsbDogJXNcIixlLm1lc3NhZ2UpLCExfXZhciBvPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspaWYoZVtuXS5jaGVja2VkJiZlW25dLmZvcm09PT10KXJldHVybiBlW25dfSh0LGUuZm9ybSk7cmV0dXJuIW98fG89PT1lfShlKX0odCl8fFl0KHQpPDB8fCFHdChlLHQpKX0sWnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9cGFyc2VJbnQoZS5nZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKSwxMCk7cmV0dXJuISEoaXNOYU4odCl8fHQ+PTApfSxKdD1mdW5jdGlvbiBlKHQpe3ZhciBuPVtdLHI9W107cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCxvKXt2YXIgaT0hIXQuc2NvcGVQYXJlbnQscz1pP3Quc2NvcGVQYXJlbnQ6dCxhPWZ1bmN0aW9uKGUsdCl7dmFyIG49WXQoZSk7cmV0dXJuIG48MCYmdCYmISR0KGUpPzA6bn0ocyxpKSxsPWk/ZSh0LmNhbmRpZGF0ZXMpOnM7MD09PWE/aT9uLnB1c2guYXBwbHkobixsKTpuLnB1c2gocyk6ci5wdXNoKHtkb2N1bWVudE9yZGVyOm8sdGFiSW5kZXg6YSxpdGVtOnQsaXNTY29wZTppLGNvbnRlbnQ6bH0pfSkpLHIuc29ydChIdCkucmVkdWNlKChmdW5jdGlvbihlLHQpe3JldHVybiB0LmlzU2NvcGU/ZS5wdXNoLmFwcGx5KGUsdC5jb250ZW50KTplLnB1c2godC5jb250ZW50KSxlfSksW10pLmNvbmNhdChuKX0sUXQ9ZnVuY3Rpb24oZSx0KXt2YXIgbjtyZXR1cm4gbj0odD10fHx7fSkuZ2V0U2hhZG93Um9vdD9VdChbZV0sdC5pbmNsdWRlQ29udGFpbmVyLHtmaWx0ZXI6WHQuYmluZChudWxsLHQpLGZsYXR0ZW46ITEsZ2V0U2hhZG93Um9vdDp0LmdldFNoYWRvd1Jvb3Qsc2hhZG93Um9vdEZpbHRlcjpadH0pOmZ1bmN0aW9uKGUsdCxuKXtpZihWdChlKSlyZXR1cm5bXTt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoZS5xdWVyeVNlbGVjdG9yQWxsKEZ0KSk7cmV0dXJuIHQmJkJ0LmNhbGwoZSxGdCkmJnIudW5zaGlmdChlKSxyLmZpbHRlcihuKX0oZSx0LmluY2x1ZGVDb250YWluZXIsWHQuYmluZChudWxsLHQpKSxKdChuKX0sZW49ZnVuY3Rpb24oZSx0KXtpZih0PXR8fHt9LCFlKXRocm93IG5ldyBFcnJvcihcIk5vIG5vZGUgcHJvdmlkZWRcIik7cmV0dXJuITEhPT1CdC5jYWxsKGUsRnQpJiZYdCh0LGUpfSx0bj13aW5kb3cuUmVhY3RET007ZnVuY3Rpb24gbm4oZSx0LG4pe2xldHtyZWZlcmVuY2U6cixmbG9hdGluZzpvfT1lO2NvbnN0IGk9UnQodCkscz1EdCh0KSxhPU10KHMpLGw9T3QodCksYz1cInlcIj09PWksdT1yLngrci53aWR0aC8yLW8ud2lkdGgvMixkPXIueStyLmhlaWdodC8yLW8uaGVpZ2h0LzIsZj1yW2FdLzItb1thXS8yO2xldCBtO3N3aXRjaChsKXtjYXNlXCJ0b3BcIjptPXt4OnUseTpyLnktby5oZWlnaHR9O2JyZWFrO2Nhc2VcImJvdHRvbVwiOm09e3g6dSx5OnIueStyLmhlaWdodH07YnJlYWs7Y2FzZVwicmlnaHRcIjptPXt4OnIueCtyLndpZHRoLHk6ZH07YnJlYWs7Y2FzZVwibGVmdFwiOm09e3g6ci54LW8ud2lkdGgseTpkfTticmVhaztkZWZhdWx0Om09e3g6ci54LHk6ci55fX1zd2l0Y2goTnQodCkpe2Nhc2VcInN0YXJ0XCI6bVtzXS09ZioobiYmYz8tMToxKTticmVhaztjYXNlXCJlbmRcIjptW3NdKz1mKihuJiZjPy0xOjEpfXJldHVybiBtfWFzeW5jIGZ1bmN0aW9uIHJuKGUsdCl7dmFyIG47dm9pZCAwPT09dCYmKHQ9e30pO2NvbnN0e3g6cix5Om8scGxhdGZvcm06aSxyZWN0czpzLGVsZW1lbnRzOmEsc3RyYXRlZ3k6bH09ZSx7Ym91bmRhcnk6Yz1cImNsaXBwaW5nQW5jZXN0b3JzXCIscm9vdEJvdW5kYXJ5OnU9XCJ2aWV3cG9ydFwiLGVsZW1lbnRDb250ZXh0OmQ9XCJmbG9hdGluZ1wiLGFsdEJvdW5kYXJ5OmY9ITEscGFkZGluZzptPTB9PVB0KHQsZSksaD1JdChtKSxwPWFbZj9cImZsb2F0aW5nXCI9PT1kP1wicmVmZXJlbmNlXCI6XCJmbG9hdGluZ1wiOmRdLGc9THQoYXdhaXQgaS5nZXRDbGlwcGluZ1JlY3Qoe2VsZW1lbnQ6bnVsbD09KG49YXdhaXQobnVsbD09aS5pc0VsZW1lbnQ/dm9pZCAwOmkuaXNFbGVtZW50KHApKSl8fG4/cDpwLmNvbnRleHRFbGVtZW50fHxhd2FpdChudWxsPT1pLmdldERvY3VtZW50RWxlbWVudD92b2lkIDA6aS5nZXREb2N1bWVudEVsZW1lbnQoYS5mbG9hdGluZykpLGJvdW5kYXJ5OmMscm9vdEJvdW5kYXJ5OnUsc3RyYXRlZ3k6bH0pKSx5PVwiZmxvYXRpbmdcIj09PWQ/e3g6cix5Om8sd2lkdGg6cy5mbG9hdGluZy53aWR0aCxoZWlnaHQ6cy5mbG9hdGluZy5oZWlnaHR9OnMucmVmZXJlbmNlLHY9YXdhaXQobnVsbD09aS5nZXRPZmZzZXRQYXJlbnQ/dm9pZCAwOmkuZ2V0T2Zmc2V0UGFyZW50KGEuZmxvYXRpbmcpKSxiPWF3YWl0KG51bGw9PWkuaXNFbGVtZW50P3ZvaWQgMDppLmlzRWxlbWVudCh2KSkmJmF3YWl0KG51bGw9PWkuZ2V0U2NhbGU/dm9pZCAwOmkuZ2V0U2NhbGUodikpfHx7eDoxLHk6MX0seD1MdChpLmNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0P2F3YWl0IGkuY29udmVydE9mZnNldFBhcmVudFJlbGF0aXZlUmVjdFRvVmlld3BvcnRSZWxhdGl2ZVJlY3Qoe2VsZW1lbnRzOmEscmVjdDp5LG9mZnNldFBhcmVudDp2LHN0cmF0ZWd5Omx9KTp5KTtyZXR1cm57dG9wOihnLnRvcC14LnRvcCtoLnRvcCkvYi55LGJvdHRvbTooeC5ib3R0b20tZy5ib3R0b20raC5ib3R0b20pL2IueSxsZWZ0OihnLmxlZnQteC5sZWZ0K2gubGVmdCkvYi54LHJpZ2h0Oih4LnJpZ2h0LWcucmlnaHQraC5yaWdodCkvYi54fX1mdW5jdGlvbiBvbihlKXtjb25zdCB0PVhlKGUpO2xldCBuPXBhcnNlRmxvYXQodC53aWR0aCl8fDAscj1wYXJzZUZsb2F0KHQuaGVpZ2h0KXx8MDtjb25zdCBvPVZlKGUpLGk9bz9lLm9mZnNldFdpZHRoOm4scz1vP2Uub2Zmc2V0SGVpZ2h0OnIsYT13dChuKSE9PWl8fHd0KHIpIT09cztyZXR1cm4gYSYmKG49aSxyPXMpLHt3aWR0aDpuLGhlaWdodDpyLCQ6YX19ZnVuY3Rpb24gc24oZSl7cmV0dXJuIFdlKGUpP2U6ZS5jb250ZXh0RWxlbWVudH1mdW5jdGlvbiBhbihlKXtjb25zdCB0PXNuKGUpO2lmKCFWZSh0KSlyZXR1cm4ga3QoMSk7Y29uc3Qgbj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHt3aWR0aDpyLGhlaWdodDpvLCQ6aX09b24odCk7bGV0IHM9KGk/d3Qobi53aWR0aCk6bi53aWR0aCkvcixhPShpP3d0KG4uaGVpZ2h0KTpuLmhlaWdodCkvbztyZXR1cm4gcyYmTnVtYmVyLmlzRmluaXRlKHMpfHwocz0xKSxhJiZOdW1iZXIuaXNGaW5pdGUoYSl8fChhPTEpLHt4OnMseTphfX1jb25zdCBsbj1rdCgwKTtmdW5jdGlvbiBjbihlKXtjb25zdCB0PUZlKGUpO3JldHVybiBxZSgpJiZ0LnZpc3VhbFZpZXdwb3J0P3t4OnQudmlzdWFsVmlld3BvcnQub2Zmc2V0TGVmdCx5OnQudmlzdWFsVmlld3BvcnQub2Zmc2V0VG9wfTpsbn1mdW5jdGlvbiB1bihlLHQsbixyKXt2b2lkIDA9PT10JiYodD0hMSksdm9pZCAwPT09biYmKG49ITEpO2NvbnN0IG89ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPXNuKGUpO2xldCBzPWt0KDEpO3QmJihyP1dlKHIpJiYocz1hbihyKSk6cz1hbihlKSk7Y29uc3QgYT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHZvaWQgMD09PXQmJih0PSExKSwhKCFufHx0JiZuIT09RmUoZSkpJiZ0fShpLG4scik/Y24oaSk6a3QoMCk7bGV0IGw9KG8ubGVmdCthLngpL3MueCxjPShvLnRvcCthLnkpL3MueSx1PW8ud2lkdGgvcy54LGQ9by5oZWlnaHQvcy55O2lmKGkpe2NvbnN0IGU9RmUoaSksdD1yJiZXZShyKT9GZShyKTpyO2xldCBuPWUsbz10dChuKTtmb3IoO28mJnImJnQhPT1uOyl7Y29uc3QgZT1hbihvKSx0PW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj1YZShvKSxpPXQubGVmdCsoby5jbGllbnRMZWZ0K3BhcnNlRmxvYXQoci5wYWRkaW5nTGVmdCkpKmUueCxzPXQudG9wKyhvLmNsaWVudFRvcCtwYXJzZUZsb2F0KHIucGFkZGluZ1RvcCkpKmUueTtsKj1lLngsYyo9ZS55LHUqPWUueCxkKj1lLnksbCs9aSxjKz1zLG49RmUobyksbz10dChuKX19cmV0dXJuIEx0KHt3aWR0aDp1LGhlaWdodDpkLHg6bCx5OmN9KX1mdW5jdGlvbiBkbihlKXtyZXR1cm4gdW4oemUoZSkpLmxlZnQrWmUoZSkuc2Nyb2xsTGVmdH1mdW5jdGlvbiBmbihlLHQsbil7bGV0IHI7aWYoXCJ2aWV3cG9ydFwiPT09dClyPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1GZShlKSxyPXplKGUpLG89bi52aXN1YWxWaWV3cG9ydDtsZXQgaT1yLmNsaWVudFdpZHRoLHM9ci5jbGllbnRIZWlnaHQsYT0wLGw9MDtpZihvKXtpPW8ud2lkdGgscz1vLmhlaWdodDtjb25zdCBlPXFlKCk7KCFlfHxlJiZcImZpeGVkXCI9PT10KSYmKGE9by5vZmZzZXRMZWZ0LGw9by5vZmZzZXRUb3ApfXJldHVybnt3aWR0aDppLGhlaWdodDpzLHg6YSx5Omx9fShlLG4pO2Vsc2UgaWYoXCJkb2N1bWVudFwiPT09dClyPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9emUoZSksbj1aZShlKSxyPWUub3duZXJEb2N1bWVudC5ib2R5LG89eHQodC5zY3JvbGxXaWR0aCx0LmNsaWVudFdpZHRoLHIuc2Nyb2xsV2lkdGgsci5jbGllbnRXaWR0aCksaT14dCh0LnNjcm9sbEhlaWdodCx0LmNsaWVudEhlaWdodCxyLnNjcm9sbEhlaWdodCxyLmNsaWVudEhlaWdodCk7bGV0IHM9LW4uc2Nyb2xsTGVmdCtkbihlKTtjb25zdCBhPS1uLnNjcm9sbFRvcDtyZXR1cm5cInJ0bFwiPT09WGUocikuZGlyZWN0aW9uJiYocys9eHQodC5jbGllbnRXaWR0aCxyLmNsaWVudFdpZHRoKS1vKSx7d2lkdGg6byxoZWlnaHQ6aSx4OnMseTphfX0oemUoZSkpO2Vsc2UgaWYoV2UodCkpcj1mdW5jdGlvbihlLHQpe2NvbnN0IG49dW4oZSwhMCxcImZpeGVkXCI9PT10KSxyPW4udG9wK2UuY2xpZW50VG9wLG89bi5sZWZ0K2UuY2xpZW50TGVmdCxpPVZlKGUpP2FuKGUpOmt0KDEpO3JldHVybnt3aWR0aDplLmNsaWVudFdpZHRoKmkueCxoZWlnaHQ6ZS5jbGllbnRIZWlnaHQqaS55LHg6byppLngseTpyKmkueX19KHQsbik7ZWxzZXtjb25zdCBuPWNuKGUpO3I9ey4uLnQseDp0Lngtbi54LHk6dC55LW4ueX19cmV0dXJuIEx0KHIpfWZ1bmN0aW9uIG1uKGUsdCl7Y29uc3Qgbj1KZShlKTtyZXR1cm4hKG49PT10fHwhV2Uobil8fEdlKG4pKSYmKFwiZml4ZWRcIj09PVhlKG4pLnBvc2l0aW9ufHxtbihuLHQpKX1mdW5jdGlvbiBobihlLHQsbil7Y29uc3Qgcj1WZSh0KSxvPXplKHQpLGk9XCJmaXhlZFwiPT09bixzPXVuKGUsITAsaSx0KTtsZXQgYT17c2Nyb2xsTGVmdDowLHNjcm9sbFRvcDowfTtjb25zdCBsPWt0KDApO2lmKHJ8fCFyJiYhaSlpZigoXCJib2R5XCIhPT1MZSh0KXx8JGUobykpJiYoYT1aZSh0KSkscil7Y29uc3QgZT11bih0LCEwLGksdCk7bC54PWUueCt0LmNsaWVudExlZnQsbC55PWUueSt0LmNsaWVudFRvcH1lbHNlIG8mJihsLng9ZG4obykpO3JldHVybnt4OnMubGVmdCthLnNjcm9sbExlZnQtbC54LHk6cy50b3ArYS5zY3JvbGxUb3AtbC55LHdpZHRoOnMud2lkdGgsaGVpZ2h0OnMuaGVpZ2h0fX1mdW5jdGlvbiBwbihlKXtyZXR1cm5cInN0YXRpY1wiPT09WGUoZSkucG9zaXRpb259ZnVuY3Rpb24gZ24oZSx0KXtyZXR1cm4gVmUoZSkmJlwiZml4ZWRcIiE9PVhlKGUpLnBvc2l0aW9uP3Q/dChlKTplLm9mZnNldFBhcmVudDpudWxsfWZ1bmN0aW9uIHluKGUsdCl7Y29uc3Qgbj1GZShlKTtpZihIZShlKSlyZXR1cm4gbjtpZighVmUoZSkpe2xldCB0PUplKGUpO2Zvcig7dCYmIUdlKHQpOyl7aWYoV2UodCkmJiFwbih0KSlyZXR1cm4gdDt0PUplKHQpfXJldHVybiBufWxldCByPWduKGUsdCk7Zm9yKDtyJiZZZShyKSYmcG4ocik7KXI9Z24ocix0KTtyZXR1cm4gciYmR2UocikmJnBuKHIpJiYhS2Uocik/bjpyfHxmdW5jdGlvbihlKXtsZXQgdD1KZShlKTtmb3IoO1ZlKHQpJiYhR2UodCk7KXtpZihLZSh0KSlyZXR1cm4gdDtpZihIZSh0KSlyZXR1cm4gbnVsbDt0PUplKHQpfXJldHVybiBudWxsfShlKXx8bn1jb25zdCB2bj17Y29udmVydE9mZnNldFBhcmVudFJlbGF0aXZlUmVjdFRvVmlld3BvcnRSZWxhdGl2ZVJlY3Q6ZnVuY3Rpb24oZSl7bGV0e2VsZW1lbnRzOnQscmVjdDpuLG9mZnNldFBhcmVudDpyLHN0cmF0ZWd5Om99PWU7Y29uc3QgaT1cImZpeGVkXCI9PT1vLHM9emUociksYT0hIXQmJkhlKHQuZmxvYXRpbmcpO2lmKHI9PT1zfHxhJiZpKXJldHVybiBuO2xldCBsPXtzY3JvbGxMZWZ0OjAsc2Nyb2xsVG9wOjB9LGM9a3QoMSk7Y29uc3QgdT1rdCgwKSxkPVZlKHIpO2lmKChkfHwhZCYmIWkpJiYoKFwiYm9keVwiIT09TGUocil8fCRlKHMpKSYmKGw9WmUocikpLFZlKHIpKSl7Y29uc3QgZT11bihyKTtjPWFuKHIpLHUueD1lLngrci5jbGllbnRMZWZ0LHUueT1lLnkrci5jbGllbnRUb3B9cmV0dXJue3dpZHRoOm4ud2lkdGgqYy54LGhlaWdodDpuLmhlaWdodCpjLnkseDpuLngqYy54LWwuc2Nyb2xsTGVmdCpjLngrdS54LHk6bi55KmMueS1sLnNjcm9sbFRvcCpjLnkrdS55fX0sZ2V0RG9jdW1lbnRFbGVtZW50OnplLGdldENsaXBwaW5nUmVjdDpmdW5jdGlvbihlKXtsZXR7ZWxlbWVudDp0LGJvdW5kYXJ5Om4scm9vdEJvdW5kYXJ5OnIsc3RyYXRlZ3k6b309ZTtjb25zdCBpPVsuLi5cImNsaXBwaW5nQW5jZXN0b3JzXCI9PT1uP0hlKHQpP1tdOmZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj10LmdldChlKTtpZihuKXJldHVybiBuO2xldCByPWV0KGUsW10sITEpLmZpbHRlcigoZT0+V2UoZSkmJlwiYm9keVwiIT09TGUoZSkpKSxvPW51bGw7Y29uc3QgaT1cImZpeGVkXCI9PT1YZShlKS5wb3NpdGlvbjtsZXQgcz1pP0plKGUpOmU7Zm9yKDtXZShzKSYmIUdlKHMpOyl7Y29uc3QgdD1YZShzKSxuPUtlKHMpO258fFwiZml4ZWRcIiE9PXQucG9zaXRpb258fChvPW51bGwpLChpPyFuJiYhbzohbiYmXCJzdGF0aWNcIj09PXQucG9zaXRpb24mJm8mJltcImFic29sdXRlXCIsXCJmaXhlZFwiXS5pbmNsdWRlcyhvLnBvc2l0aW9uKXx8JGUocykmJiFuJiZtbihlLHMpKT9yPXIuZmlsdGVyKChlPT5lIT09cykpOm89dCxzPUplKHMpfXJldHVybiB0LnNldChlLHIpLHJ9KHQsdGhpcy5fYyk6W10uY29uY2F0KG4pLHJdLHM9aVswXSxhPWkucmVkdWNlKCgoZSxuKT0+e2NvbnN0IHI9Zm4odCxuLG8pO3JldHVybiBlLnRvcD14dChyLnRvcCxlLnRvcCksZS5yaWdodD1idChyLnJpZ2h0LGUucmlnaHQpLGUuYm90dG9tPWJ0KHIuYm90dG9tLGUuYm90dG9tKSxlLmxlZnQ9eHQoci5sZWZ0LGUubGVmdCksZX0pLGZuKHQscyxvKSk7cmV0dXJue3dpZHRoOmEucmlnaHQtYS5sZWZ0LGhlaWdodDphLmJvdHRvbS1hLnRvcCx4OmEubGVmdCx5OmEudG9wfX0sZ2V0T2Zmc2V0UGFyZW50OnluLGdldEVsZW1lbnRSZWN0czphc3luYyBmdW5jdGlvbihlKXtjb25zdCB0PXRoaXMuZ2V0T2Zmc2V0UGFyZW50fHx5bixuPXRoaXMuZ2V0RGltZW5zaW9ucyxyPWF3YWl0IG4oZS5mbG9hdGluZyk7cmV0dXJue3JlZmVyZW5jZTpobihlLnJlZmVyZW5jZSxhd2FpdCB0KGUuZmxvYXRpbmcpLGUuc3RyYXRlZ3kpLGZsb2F0aW5nOnt4OjAseTowLHdpZHRoOnIud2lkdGgsaGVpZ2h0OnIuaGVpZ2h0fX19LGdldENsaWVudFJlY3RzOmZ1bmN0aW9uKGUpe3JldHVybiBBcnJheS5mcm9tKGUuZ2V0Q2xpZW50UmVjdHMoKSl9LGdldERpbWVuc2lvbnM6ZnVuY3Rpb24oZSl7Y29uc3R7d2lkdGg6dCxoZWlnaHQ6bn09b24oZSk7cmV0dXJue3dpZHRoOnQsaGVpZ2h0Om59fSxnZXRTY2FsZTphbixpc0VsZW1lbnQ6V2UsaXNSVEw6ZnVuY3Rpb24oZSl7cmV0dXJuXCJydGxcIj09PVhlKGUpLmRpcmVjdGlvbn19O2Z1bmN0aW9uIGJuKGUsdCxuLHIpe3ZvaWQgMD09PXImJihyPXt9KTtjb25zdHthbmNlc3RvclNjcm9sbDpvPSEwLGFuY2VzdG9yUmVzaXplOmk9ITAsZWxlbWVudFJlc2l6ZTpzPVwiZnVuY3Rpb25cIj09dHlwZW9mIFJlc2l6ZU9ic2VydmVyLGxheW91dFNoaWZ0OmE9XCJmdW5jdGlvblwiPT10eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIsYW5pbWF0aW9uRnJhbWU6bD0hMX09cixjPXNuKGUpLHU9b3x8aT9bLi4uYz9ldChjKTpbXSwuLi5ldCh0KV06W107dS5mb3JFYWNoKChlPT57byYmZS5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsbix7cGFzc2l2ZTohMH0pLGkmJmUuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLG4pfSkpO2NvbnN0IGQ9YyYmYT9mdW5jdGlvbihlLHQpe2xldCBuLHI9bnVsbDtjb25zdCBvPXplKGUpO2Z1bmN0aW9uIGkoKXt2YXIgZTtjbGVhclRpbWVvdXQobiksbnVsbD09KGU9cil8fGUuZGlzY29ubmVjdCgpLHI9bnVsbH1yZXR1cm4gZnVuY3Rpb24gcyhhLGwpe3ZvaWQgMD09PWEmJihhPSExKSx2b2lkIDA9PT1sJiYobD0xKSxpKCk7Y29uc3R7bGVmdDpjLHRvcDp1LHdpZHRoOmQsaGVpZ2h0OmZ9PWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoYXx8dCgpLCFkfHwhZilyZXR1cm47Y29uc3QgbT17cm9vdE1hcmdpbjotU3QodSkrXCJweCBcIistU3Qoby5jbGllbnRXaWR0aC0oYytkKSkrXCJweCBcIistU3Qoby5jbGllbnRIZWlnaHQtKHUrZikpK1wicHggXCIrLVN0KGMpK1wicHhcIix0aHJlc2hvbGQ6eHQoMCxidCgxLGwpKXx8MX07bGV0IGg9ITA7ZnVuY3Rpb24gcChlKXtjb25zdCB0PWVbMF0uaW50ZXJzZWN0aW9uUmF0aW87aWYodCE9PWwpe2lmKCFoKXJldHVybiBzKCk7dD9zKCExLHQpOm49c2V0VGltZW91dCgoKCk9PntzKCExLDFlLTcpfSksMWUzKX1oPSExfXRyeXtyPW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihwLHsuLi5tLHJvb3Q6by5vd25lckRvY3VtZW50fSl9Y2F0Y2goZSl7cj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIocCxtKX1yLm9ic2VydmUoZSl9KCEwKSxpfShjLG4pOm51bGw7bGV0IGYsbT0tMSxoPW51bGw7cyYmKGg9bmV3IFJlc2l6ZU9ic2VydmVyKChlPT57bGV0W3JdPWU7ciYmci50YXJnZXQ9PT1jJiZoJiYoaC51bm9ic2VydmUodCksY2FuY2VsQW5pbWF0aW9uRnJhbWUobSksbT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57dmFyIGU7bnVsbD09KGU9aCl8fGUub2JzZXJ2ZSh0KX0pKSksbigpfSkpLGMmJiFsJiZoLm9ic2VydmUoYyksaC5vYnNlcnZlKHQpKTtsZXQgcD1sP3VuKGUpOm51bGw7cmV0dXJuIGwmJmZ1bmN0aW9uIHQoKXtjb25zdCByPXVuKGUpOyFwfHxyLng9PT1wLngmJnIueT09PXAueSYmci53aWR0aD09PXAud2lkdGgmJnIuaGVpZ2h0PT09cC5oZWlnaHR8fG4oKSxwPXIsZj1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCl9KCksbigpLCgpPT57dmFyIGU7dS5mb3JFYWNoKChlPT57byYmZS5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsbiksaSYmZS5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsbil9KSksbnVsbD09ZHx8ZCgpLG51bGw9PShlPWgpfHxlLmRpc2Nvbm5lY3QoKSxoPW51bGwsbCYmY2FuY2VsQW5pbWF0aW9uRnJhbWUoZil9fWNvbnN0IHhuPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT0wKSx7bmFtZTpcIm9mZnNldFwiLG9wdGlvbnM6ZSxhc3luYyBmbih0KXt2YXIgbixyO2NvbnN0e3g6byx5OmkscGxhY2VtZW50OnMsbWlkZGxld2FyZURhdGE6YX09dCxsPWF3YWl0IGFzeW5jIGZ1bmN0aW9uKGUsdCl7Y29uc3R7cGxhY2VtZW50Om4scGxhdGZvcm06cixlbGVtZW50czpvfT1lLGk9YXdhaXQobnVsbD09ci5pc1JUTD92b2lkIDA6ci5pc1JUTChvLmZsb2F0aW5nKSkscz1PdChuKSxhPU50KG4pLGw9XCJ5XCI9PT1SdChuKSxjPVtcImxlZnRcIixcInRvcFwiXS5pbmNsdWRlcyhzKT8tMToxLHU9aSYmbD8tMToxLGQ9UHQodCxlKTtsZXR7bWFpbkF4aXM6Zixjcm9zc0F4aXM6bSxhbGlnbm1lbnRBeGlzOmh9PVwibnVtYmVyXCI9PXR5cGVvZiBkP3ttYWluQXhpczpkLGNyb3NzQXhpczowLGFsaWdubWVudEF4aXM6bnVsbH06e21haW5BeGlzOjAsY3Jvc3NBeGlzOjAsYWxpZ25tZW50QXhpczpudWxsLC4uLmR9O3JldHVybiBhJiZcIm51bWJlclwiPT10eXBlb2YgaCYmKG09XCJlbmRcIj09PWE/LTEqaDpoKSxsP3t4Om0qdSx5OmYqY306e3g6ZipjLHk6bSp1fX0odCxlKTtyZXR1cm4gcz09PShudWxsPT0obj1hLm9mZnNldCk/dm9pZCAwOm4ucGxhY2VtZW50KSYmbnVsbCE9KHI9YS5hcnJvdykmJnIuYWxpZ25tZW50T2Zmc2V0P3t9Ont4Om8rbC54LHk6aStsLnksZGF0YTp7Li4ubCxwbGFjZW1lbnQ6c319fX19LHduPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSkse25hbWU6XCJzaGlmdFwiLG9wdGlvbnM6ZSxhc3luYyBmbih0KXtjb25zdHt4Om4seTpyLHBsYWNlbWVudDpvfT10LHttYWluQXhpczppPSEwLGNyb3NzQXhpczpzPSExLGxpbWl0ZXI6YT17Zm46ZT0+e2xldHt4OnQseTpufT1lO3JldHVybnt4OnQseTpufX19LC4uLmx9PVB0KGUsdCksYz17eDpuLHk6cn0sdT1hd2FpdCBybih0LGwpLGQ9UnQoT3QobykpLGY9VHQoZCk7bGV0IG09Y1tmXSxoPWNbZF07aWYoaSl7Y29uc3QgZT1cInlcIj09PWY/XCJib3R0b21cIjpcInJpZ2h0XCI7bT1fdChtK3VbXCJ5XCI9PT1mP1widG9wXCI6XCJsZWZ0XCJdLG0sbS11W2VdKX1pZihzKXtjb25zdCBlPVwieVwiPT09ZD9cImJvdHRvbVwiOlwicmlnaHRcIjtoPV90KGgrdVtcInlcIj09PWQ/XCJ0b3BcIjpcImxlZnRcIl0saCxoLXVbZV0pfWNvbnN0IHA9YS5mbih7Li4udCxbZl06bSxbZF06aH0pO3JldHVybnsuLi5wLGRhdGE6e3g6cC54LW4seTpwLnktcn19fX19LFNuPWZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSkse25hbWU6XCJmbGlwXCIsb3B0aW9uczplLGFzeW5jIGZuKHQpe3ZhciBuLHI7Y29uc3R7cGxhY2VtZW50Om8sbWlkZGxld2FyZURhdGE6aSxyZWN0czpzLGluaXRpYWxQbGFjZW1lbnQ6YSxwbGF0Zm9ybTpsLGVsZW1lbnRzOmN9PXQse21haW5BeGlzOnU9ITAsY3Jvc3NBeGlzOmQ9ITAsZmFsbGJhY2tQbGFjZW1lbnRzOmYsZmFsbGJhY2tTdHJhdGVneTptPVwiYmVzdEZpdFwiLGZhbGxiYWNrQXhpc1NpZGVEaXJlY3Rpb246aD1cIm5vbmVcIixmbGlwQWxpZ25tZW50OnA9ITAsLi4uZ309UHQoZSx0KTtpZihudWxsIT0obj1pLmFycm93KSYmbi5hbGlnbm1lbnRPZmZzZXQpcmV0dXJue307Y29uc3QgeT1PdChvKSx2PVJ0KGEpLGI9T3QoYSk9PT1hLHg9YXdhaXQobnVsbD09bC5pc1JUTD92b2lkIDA6bC5pc1JUTChjLmZsb2F0aW5nKSksdz1mfHwoYnx8IXA/W0F0KGEpXTpmdW5jdGlvbihlKXtjb25zdCB0PUF0KGUpO3JldHVybltqdChlKSx0LGp0KHQpXX0oYSkpLFM9XCJub25lXCIhPT1oOyFmJiZTJiZ3LnB1c2goLi4uZnVuY3Rpb24oZSx0LG4scil7Y29uc3Qgbz1OdChlKTtsZXQgaT1mdW5jdGlvbihlLHQsbil7Y29uc3Qgcj1bXCJsZWZ0XCIsXCJyaWdodFwiXSxvPVtcInJpZ2h0XCIsXCJsZWZ0XCJdLGk9W1widG9wXCIsXCJib3R0b21cIl0scz1bXCJib3R0b21cIixcInRvcFwiXTtzd2l0Y2goZSl7Y2FzZVwidG9wXCI6Y2FzZVwiYm90dG9tXCI6cmV0dXJuIG4/dD9vOnI6dD9yOm87Y2FzZVwibGVmdFwiOmNhc2VcInJpZ2h0XCI6cmV0dXJuIHQ/aTpzO2RlZmF1bHQ6cmV0dXJuW119fShPdChlKSxcInN0YXJ0XCI9PT1uLHIpO3JldHVybiBvJiYoaT1pLm1hcCgoZT0+ZStcIi1cIitvKSksdCYmKGk9aS5jb25jYXQoaS5tYXAoanQpKSkpLGl9KGEscCxoLHgpKTtjb25zdCBrPVthLC4uLnddLEU9YXdhaXQgcm4odCxnKSxDPVtdO2xldCBfPShudWxsPT0ocj1pLmZsaXApP3ZvaWQgMDpyLm92ZXJmbG93cyl8fFtdO2lmKHUmJkMucHVzaChFW3ldKSxkKXtjb25zdCBlPWZ1bmN0aW9uKGUsdCxuKXt2b2lkIDA9PT1uJiYobj0hMSk7Y29uc3Qgcj1OdChlKSxvPUR0KGUpLGk9TXQobyk7bGV0IHM9XCJ4XCI9PT1vP3I9PT0obj9cImVuZFwiOlwic3RhcnRcIik/XCJyaWdodFwiOlwibGVmdFwiOlwic3RhcnRcIj09PXI/XCJib3R0b21cIjpcInRvcFwiO3JldHVybiB0LnJlZmVyZW5jZVtpXT50LmZsb2F0aW5nW2ldJiYocz1BdChzKSksW3MsQXQocyldfShvLHMseCk7Qy5wdXNoKEVbZVswXV0sRVtlWzFdXSl9aWYoXz1bLi4uXyx7cGxhY2VtZW50Om8sb3ZlcmZsb3dzOkN9XSwhQy5ldmVyeSgoZT0+ZTw9MCkpKXt2YXIgUCxPO2NvbnN0IGU9KChudWxsPT0oUD1pLmZsaXApP3ZvaWQgMDpQLmluZGV4KXx8MCkrMSx0PWtbZV07aWYodClyZXR1cm57ZGF0YTp7aW5kZXg6ZSxvdmVyZmxvd3M6X30scmVzZXQ6e3BsYWNlbWVudDp0fX07bGV0IG49bnVsbD09KE89Xy5maWx0ZXIoKGU9PmUub3ZlcmZsb3dzWzBdPD0wKSkuc29ydCgoKGUsdCk9PmUub3ZlcmZsb3dzWzFdLXQub3ZlcmZsb3dzWzFdKSlbMF0pP3ZvaWQgMDpPLnBsYWNlbWVudDtpZighbilzd2l0Y2gobSl7Y2FzZVwiYmVzdEZpdFwiOnt2YXIgTjtjb25zdCBlPW51bGw9PShOPV8uZmlsdGVyKChlPT57aWYoUyl7Y29uc3QgdD1SdChlLnBsYWNlbWVudCk7cmV0dXJuIHQ9PT12fHxcInlcIj09PXR9cmV0dXJuITB9KSkubWFwKChlPT5bZS5wbGFjZW1lbnQsZS5vdmVyZmxvd3MuZmlsdGVyKChlPT5lPjApKS5yZWR1Y2UoKChlLHQpPT5lK3QpLDApXSkpLnNvcnQoKChlLHQpPT5lWzFdLXRbMV0pKVswXSk/dm9pZCAwOk5bMF07ZSYmKG49ZSk7YnJlYWt9Y2FzZVwiaW5pdGlhbFBsYWNlbWVudFwiOm49YX1pZihvIT09bilyZXR1cm57cmVzZXQ6e3BsYWNlbWVudDpufX19cmV0dXJue319fX0sa249ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt9KSx7bmFtZTpcInNpemVcIixvcHRpb25zOmUsYXN5bmMgZm4odCl7Y29uc3R7cGxhY2VtZW50Om4scmVjdHM6cixwbGF0Zm9ybTpvLGVsZW1lbnRzOml9PXQse2FwcGx5OnM9KCk9Pnt9LC4uLmF9PVB0KGUsdCksbD1hd2FpdCBybih0LGEpLGM9T3QobiksdT1OdChuKSxkPVwieVwiPT09UnQobikse3dpZHRoOmYsaGVpZ2h0Om19PXIuZmxvYXRpbmc7bGV0IGgscDtcInRvcFwiPT09Y3x8XCJib3R0b21cIj09PWM/KGg9YyxwPXU9PT0oYXdhaXQobnVsbD09by5pc1JUTD92b2lkIDA6by5pc1JUTChpLmZsb2F0aW5nKSk/XCJzdGFydFwiOlwiZW5kXCIpP1wibGVmdFwiOlwicmlnaHRcIik6KHA9YyxoPVwiZW5kXCI9PT11P1widG9wXCI6XCJib3R0b21cIik7Y29uc3QgZz1tLWwudG9wLWwuYm90dG9tLHk9Zi1sLmxlZnQtbC5yaWdodCx2PWJ0KG0tbFtoXSxnKSxiPWJ0KGYtbFtwXSx5KSx4PSF0Lm1pZGRsZXdhcmVEYXRhLnNoaWZ0O2xldCB3PXYsUz1iO2lmKGQ/Uz11fHx4P2J0KGIseSk6eTp3PXV8fHg/YnQodixnKTpnLHgmJiF1KXtjb25zdCBlPXh0KGwubGVmdCwwKSx0PXh0KGwucmlnaHQsMCksbj14dChsLnRvcCwwKSxyPXh0KGwuYm90dG9tLDApO2Q/Uz1mLTIqKDAhPT1lfHwwIT09dD9lK3Q6eHQobC5sZWZ0LGwucmlnaHQpKTp3PW0tMiooMCE9PW58fDAhPT1yP24rcjp4dChsLnRvcCxsLmJvdHRvbSkpfWF3YWl0IHMoey4uLnQsYXZhaWxhYmxlV2lkdGg6UyxhdmFpbGFibGVIZWlnaHQ6d30pO2NvbnN0IGs9YXdhaXQgby5nZXREaW1lbnNpb25zKGkuZmxvYXRpbmcpO3JldHVybiBmIT09ay53aWR0aHx8bSE9PWsuaGVpZ2h0P3tyZXNldDp7cmVjdHM6ITB9fTp7fX19fSxFbj1lPT4oe25hbWU6XCJhcnJvd1wiLG9wdGlvbnM6ZSxhc3luYyBmbih0KXtjb25zdHt4Om4seTpyLHBsYWNlbWVudDpvLHJlY3RzOmkscGxhdGZvcm06cyxlbGVtZW50czphLG1pZGRsZXdhcmVEYXRhOmx9PXQse2VsZW1lbnQ6YyxwYWRkaW5nOnU9MH09UHQoZSx0KXx8e307aWYobnVsbD09YylyZXR1cm57fTtjb25zdCBkPUl0KHUpLGY9e3g6bix5OnJ9LG09RHQobyksaD1NdChtKSxwPWF3YWl0IHMuZ2V0RGltZW5zaW9ucyhjKSxnPVwieVwiPT09bSx5PWc/XCJ0b3BcIjpcImxlZnRcIix2PWc/XCJib3R0b21cIjpcInJpZ2h0XCIsYj1nP1wiY2xpZW50SGVpZ2h0XCI6XCJjbGllbnRXaWR0aFwiLHg9aS5yZWZlcmVuY2VbaF0raS5yZWZlcmVuY2VbbV0tZlttXS1pLmZsb2F0aW5nW2hdLHc9ZlttXS1pLnJlZmVyZW5jZVttXSxTPWF3YWl0KG51bGw9PXMuZ2V0T2Zmc2V0UGFyZW50P3ZvaWQgMDpzLmdldE9mZnNldFBhcmVudChjKSk7bGV0IGs9Uz9TW2JdOjA7ayYmYXdhaXQobnVsbD09cy5pc0VsZW1lbnQ/dm9pZCAwOnMuaXNFbGVtZW50KFMpKXx8KGs9YS5mbG9hdGluZ1tiXXx8aS5mbG9hdGluZ1toXSk7Y29uc3QgRT14LzItdy8yLEM9ay8yLXBbaF0vMi0xLF89YnQoZFt5XSxDKSxQPWJ0KGRbdl0sQyksTz1fLE49ay1wW2hdLVAsVD1rLzItcFtoXS8yK0UsTT1fdChPLFQsTiksUj0hbC5hcnJvdyYmbnVsbCE9TnQobykmJlQhPT1NJiZpLnJlZmVyZW5jZVtoXS8yLShUPE8/XzpQKS1wW2hdLzI8MCxEPVI/VDxPP1QtTzpULU46MDtyZXR1cm57W21dOmZbbV0rRCxkYXRhOntbbV06TSxjZW50ZXJPZmZzZXQ6VC1NLUQsLi4uUiYme2FsaWdubWVudE9mZnNldDpEfX0scmVzZXQ6Un19fSksQ249KGUsdCxuKT0+e2NvbnN0IHI9bmV3IE1hcCxvPXtwbGF0Zm9ybTp2biwuLi5ufSxpPXsuLi5vLnBsYXRmb3JtLF9jOnJ9O3JldHVybihhc3luYyhlLHQsbik9Pntjb25zdHtwbGFjZW1lbnQ6cj1cImJvdHRvbVwiLHN0cmF0ZWd5Om89XCJhYnNvbHV0ZVwiLG1pZGRsZXdhcmU6aT1bXSxwbGF0Zm9ybTpzfT1uLGE9aS5maWx0ZXIoQm9vbGVhbiksbD1hd2FpdChudWxsPT1zLmlzUlRMP3ZvaWQgMDpzLmlzUlRMKHQpKTtsZXQgYz1hd2FpdCBzLmdldEVsZW1lbnRSZWN0cyh7cmVmZXJlbmNlOmUsZmxvYXRpbmc6dCxzdHJhdGVneTpvfSkse3g6dSx5OmR9PW5uKGMscixsKSxmPXIsbT17fSxoPTA7Zm9yKGxldCBuPTA7bjxhLmxlbmd0aDtuKyspe2NvbnN0e25hbWU6aSxmbjpwfT1hW25dLHt4OmcseTp5LGRhdGE6dixyZXNldDpifT1hd2FpdCBwKHt4OnUseTpkLGluaXRpYWxQbGFjZW1lbnQ6cixwbGFjZW1lbnQ6ZixzdHJhdGVneTpvLG1pZGRsZXdhcmVEYXRhOm0scmVjdHM6YyxwbGF0Zm9ybTpzLGVsZW1lbnRzOntyZWZlcmVuY2U6ZSxmbG9hdGluZzp0fX0pO3U9bnVsbCE9Zz9nOnUsZD1udWxsIT15P3k6ZCxtPXsuLi5tLFtpXTp7Li4ubVtpXSwuLi52fX0sYiYmaDw9NTAmJihoKyssXCJvYmplY3RcIj09dHlwZW9mIGImJihiLnBsYWNlbWVudCYmKGY9Yi5wbGFjZW1lbnQpLGIucmVjdHMmJihjPSEwPT09Yi5yZWN0cz9hd2FpdCBzLmdldEVsZW1lbnRSZWN0cyh7cmVmZXJlbmNlOmUsZmxvYXRpbmc6dCxzdHJhdGVneTpvfSk6Yi5yZWN0cyksKHt4OnUseTpkfT1ubihjLGYsbCkpKSxuPS0xKX1yZXR1cm57eDp1LHk6ZCxwbGFjZW1lbnQ6ZixzdHJhdGVneTpvLG1pZGRsZXdhcmVEYXRhOm19fSkoZSx0LHsuLi5vLHBsYXRmb3JtOml9KX07dmFyIFBuPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudD9hLnVzZUxheW91dEVmZmVjdDphLnVzZUVmZmVjdDtmdW5jdGlvbiBPbihlLHQpe2lmKGU9PT10KXJldHVybiEwO2lmKHR5cGVvZiBlIT10eXBlb2YgdClyZXR1cm4hMTtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiZlLnRvU3RyaW5nKCk9PT10LnRvU3RyaW5nKCkpcmV0dXJuITA7bGV0IG4scixvO2lmKGUmJnQmJlwib2JqZWN0XCI9PXR5cGVvZiBlKXtpZihBcnJheS5pc0FycmF5KGUpKXtpZihuPWUubGVuZ3RoLG4hPT10Lmxlbmd0aClyZXR1cm4hMTtmb3Iocj1uOzAhPXItLTspaWYoIU9uKGVbcl0sdFtyXSkpcmV0dXJuITE7cmV0dXJuITB9aWYobz1PYmplY3Qua2V5cyhlKSxuPW8ubGVuZ3RoLG4hPT1PYmplY3Qua2V5cyh0KS5sZW5ndGgpcmV0dXJuITE7Zm9yKHI9bjswIT1yLS07KWlmKCF7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsb1tyXSkpcmV0dXJuITE7Zm9yKHI9bjswIT1yLS07KXtjb25zdCBuPW9bcl07aWYoIShcIl9vd25lclwiPT09biYmZS4kJHR5cGVvZnx8T24oZVtuXSx0W25dKSkpcmV0dXJuITF9cmV0dXJuITB9cmV0dXJuIGUhPWUmJnQhPXR9ZnVuY3Rpb24gTm4oZSl7cmV0dXJuXCJ1bmRlZmluZWRcIj09dHlwZW9mIHdpbmRvdz8xOihlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdykuZGV2aWNlUGl4ZWxSYXRpb3x8MX1mdW5jdGlvbiBUbihlLHQpe2NvbnN0IG49Tm4oZSk7cmV0dXJuIE1hdGgucm91bmQodCpuKS9ufWZ1bmN0aW9uIE1uKGUpe2NvbnN0IHQ9YS51c2VSZWYoZSk7cmV0dXJuIFBuKCgoKT0+e3QuY3VycmVudD1lfSkpLHR9Y29uc3QgUm49ZT0+KHtuYW1lOlwiYXJyb3dcIixvcHRpb25zOmUsZm4odCl7Y29uc3R7ZWxlbWVudDpuLHBhZGRpbmc6cn09XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lKHQpOmU7cmV0dXJuIG4mJihvPW4se30uaGFzT3duUHJvcGVydHkuY2FsbChvLFwiY3VycmVudFwiKSk/bnVsbCE9bi5jdXJyZW50P0VuKHtlbGVtZW50Om4uY3VycmVudCxwYWRkaW5nOnJ9KS5mbih0KTp7fTpuP0VuKHtlbGVtZW50Om4scGFkZGluZzpyfSkuZm4odCk6e307dmFyIG99fSksRG49KGUsdCk9Pih7Li4ueG4oZSksb3B0aW9uczpbZSx0XX0pLGpuPShlLHQpPT4oey4uLnduKGUpLG9wdGlvbnM6W2UsdF19KSxBbj0oZSx0KT0+KHsuLi5TbihlKSxvcHRpb25zOltlLHRdfSksSW49KGUsdCk9Pih7Li4ua24oZSksb3B0aW9uczpbZSx0XX0pLExuPXsuLi5hfSxGbj1Mbi51c2VJbnNlcnRpb25FZmZlY3R8fChlPT5lKCkpO2Z1bmN0aW9uIHpuKGUpe2NvbnN0IHQ9YS51c2VSZWYoKCgpPT57fSkpO3JldHVybiBGbigoKCk9Pnt0LmN1cnJlbnQ9ZX0pKSxhLnVzZUNhbGxiYWNrKChmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKW5bcl09YXJndW1lbnRzW3JdO3JldHVybiBudWxsPT10LmN1cnJlbnQ/dm9pZCAwOnQuY3VycmVudCguLi5uKX0pLFtdKX1jb25zdCBCbj1cIkFycm93VXBcIixXbj1cIkFycm93RG93blwiLFZuPVwiQXJyb3dMZWZ0XCIsVW49XCJBcnJvd1JpZ2h0XCI7ZnVuY3Rpb24gJG4oZSx0LG4pe3JldHVybiBNYXRoLmZsb29yKGUvdCkhPT1ufWZ1bmN0aW9uIFluKGUsdCl7cmV0dXJuIHQ8MHx8dD49ZS5jdXJyZW50Lmxlbmd0aH1mdW5jdGlvbiBIbihlLHQpe3JldHVybiBxbihlLHtkaXNhYmxlZEluZGljZXM6dH0pfWZ1bmN0aW9uIEtuKGUsdCl7cmV0dXJuIHFuKGUse2RlY3JlbWVudDohMCxzdGFydGluZ0luZGV4OmUuY3VycmVudC5sZW5ndGgsZGlzYWJsZWRJbmRpY2VzOnR9KX1mdW5jdGlvbiBxbihlLHQpe2xldHtzdGFydGluZ0luZGV4Om49LTEsZGVjcmVtZW50OnI9ITEsZGlzYWJsZWRJbmRpY2VzOm8sYW1vdW50Omk9MX09dm9pZCAwPT09dD97fTp0O2NvbnN0IHM9ZS5jdXJyZW50O2xldCBhPW47ZG97YSs9cj8taTppfXdoaWxlKGE+PTAmJmE8PXMubGVuZ3RoLTEmJlpuKHMsYSxvKSk7cmV0dXJuIGF9ZnVuY3Rpb24gR24oZSx0LG4scixvKXtpZigtMT09PWUpcmV0dXJuLTE7Y29uc3QgaT1uLmluZGV4T2YoZSkscz10W2VdO3N3aXRjaChvKXtjYXNlXCJ0bFwiOnJldHVybiBpO2Nhc2VcInRyXCI6cmV0dXJuIHM/aStzLndpZHRoLTE6aTtjYXNlXCJibFwiOnJldHVybiBzP2krKHMuaGVpZ2h0LTEpKnI6aTtjYXNlXCJiclwiOnJldHVybiBuLmxhc3RJbmRleE9mKGUpfX1mdW5jdGlvbiBYbihlLHQpe3JldHVybiB0LmZsYXRNYXAoKCh0LG4pPT5lLmluY2x1ZGVzKHQpP1tuXTpbXSkpfWZ1bmN0aW9uIFpuKGUsdCxuKXtpZihuKXJldHVybiBuLmluY2x1ZGVzKHQpO2NvbnN0IHI9ZVt0XTtyZXR1cm4gbnVsbD09cnx8ci5oYXNBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiKXx8XCJ0cnVlXCI9PT1yLmdldEF0dHJpYnV0ZShcImFyaWEtZGlzYWJsZWRcIil9bGV0IEpuPTA7ZnVuY3Rpb24gUW4oZSx0KXt2b2lkIDA9PT10JiYodD17fSk7Y29uc3R7cHJldmVudFNjcm9sbDpuPSExLGNhbmNlbFByZXZpb3VzOnI9ITAsc3luYzpvPSExfT10O3ImJmNhbmNlbEFuaW1hdGlvbkZyYW1lKEpuKTtjb25zdCBpPSgpPT5udWxsPT1lP3ZvaWQgMDplLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOm59KTtvP2koKTpKbj1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaSl9dmFyIGVyPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudD9hLnVzZUxheW91dEVmZmVjdDphLnVzZUVmZmVjdDtmdW5jdGlvbiB0cigpe3JldHVybiB0cj1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LHRyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1sZXQgbnI9ITEscnI9MDtjb25zdCBvcj0oKT0+XCJmbG9hdGluZy11aS1cIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLDYpK3JyKyssaXI9TG4udXNlSWR8fGZ1bmN0aW9uKCl7Y29uc3RbZSx0XT1hLnVzZVN0YXRlKCgoKT0+bnI/b3IoKTp2b2lkIDApKTtyZXR1cm4gZXIoKCgpPT57bnVsbD09ZSYmdChvcigpKX0pLFtdKSxhLnVzZUVmZmVjdCgoKCk9Pntucj0hMH0pLFtdKSxlfSxzcj1hLmZvcndhcmRSZWYoKGZ1bmN0aW9uKGUsdCl7Y29uc3R7Y29udGV4dDp7cGxhY2VtZW50Om4sZWxlbWVudHM6e2Zsb2F0aW5nOnJ9LG1pZGRsZXdhcmVEYXRhOnthcnJvdzpvLHNoaWZ0Oml9fSx3aWR0aDpzPTE0LGhlaWdodDpsPTcsdGlwUmFkaXVzOmM9MCxzdHJva2VXaWR0aDp1PTAsc3RhdGljT2Zmc2V0OmQsc3Ryb2tlOmYsZDptLHN0eWxlOnt0cmFuc2Zvcm06aCwuLi5wfT17fSwuLi5nfT1lLHk9aXIoKSxbdixiXT1hLnVzZVN0YXRlKCExKTtpZihlcigoKCk9PntyJiZcInJ0bFwiPT09WGUocikuZGlyZWN0aW9uJiZiKCEwKX0pLFtyXSksIXIpcmV0dXJuIG51bGw7Y29uc3RbeCx3XT1uLnNwbGl0KFwiLVwiKSxTPVwidG9wXCI9PT14fHxcImJvdHRvbVwiPT09eDtsZXQgaz1kOyhTJiZudWxsIT1pJiZpLnh8fCFTJiZudWxsIT1pJiZpLnkpJiYoaz1udWxsKTtjb25zdCBFPTIqdSxDPUUvMixfPXMvMiooYy8tOCsxKSxQPWwvMipjLzQsTz0hIW0sTj1rJiZcImVuZFwiPT09dz9cImJvdHRvbVwiOlwidG9wXCI7bGV0IFQ9ayYmXCJlbmRcIj09PXc/XCJyaWdodFwiOlwibGVmdFwiO2smJnYmJihUPVwiZW5kXCI9PT13P1wibGVmdFwiOlwicmlnaHRcIik7Y29uc3QgTT1udWxsIT0obnVsbD09bz92b2lkIDA6by54KT9rfHxvLng6XCJcIixSPW51bGwhPShudWxsPT1vP3ZvaWQgMDpvLnkpP2t8fG8ueTpcIlwiLEQ9bXx8XCJNMCwwIEhcIitzK1wiIExcIisocy1fKStcIixcIisobC1QKStcIiBRXCIrcy8yK1wiLFwiK2wrXCIgXCIrXytcIixcIisobC1QKStcIiBaXCIsaj17dG9wOk8/XCJyb3RhdGUoMTgwZGVnKVwiOlwiXCIsbGVmdDpPP1wicm90YXRlKDkwZGVnKVwiOlwicm90YXRlKC05MGRlZylcIixib3R0b206Tz9cIlwiOlwicm90YXRlKDE4MGRlZylcIixyaWdodDpPP1wicm90YXRlKC05MGRlZylcIjpcInJvdGF0ZSg5MGRlZylcIn1beF07cmV0dXJuIGEuY3JlYXRlRWxlbWVudChcInN2Z1wiLHRyKHt9LGcse1wiYXJpYS1oaWRkZW5cIjohMCxyZWY6dCx3aWR0aDpPP3M6cytFLGhlaWdodDpzLHZpZXdCb3g6XCIwIDAgXCIrcytcIiBcIisobD5zP2w6cyksc3R5bGU6e3Bvc2l0aW9uOlwiYWJzb2x1dGVcIixwb2ludGVyRXZlbnRzOlwibm9uZVwiLFtUXTpNLFtOXTpSLFt4XTpTfHxPP1wiMTAwJVwiOlwiY2FsYygxMDAlIC0gXCIrRS8yK1wicHgpXCIsdHJhbnNmb3JtOlwiXCIraisobnVsbCE9aD9oOlwiXCIpLC4uLnB9fSksRT4wJiZhLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2NsaXBQYXRoOlwidXJsKCNcIit5K1wiKVwiLGZpbGw6XCJub25lXCIsc3Ryb2tlOmYsc3Ryb2tlV2lkdGg6RSsobT8wOjEpLGQ6RH0pLGEuY3JlYXRlRWxlbWVudChcInBhdGhcIix7c3Ryb2tlOkUmJiFtP2cuZmlsbDpcIm5vbmVcIixkOkR9KSxhLmNyZWF0ZUVsZW1lbnQoXCJjbGlwUGF0aFwiLHtpZDp5fSxhLmNyZWF0ZUVsZW1lbnQoXCJyZWN0XCIse3g6LUMseTpDKihPPy0xOjEpLHdpZHRoOnMrRSxoZWlnaHQ6c30pKSl9KSk7Y29uc3QgYXI9YS5jcmVhdGVDb250ZXh0KG51bGwpLGxyPWEuY3JlYXRlQ29udGV4dChudWxsKSxjcj0oKT0+e3ZhciBlO3JldHVybihudWxsPT0oZT1hLnVzZUNvbnRleHQoYXIpKT92b2lkIDA6ZS5pZCl8fG51bGx9LHVyPSgpPT5hLnVzZUNvbnRleHQobHIpO2Z1bmN0aW9uIGRyKGUpe3JldHVyblwiZGF0YS1mbG9hdGluZy11aS1cIitlfWZ1bmN0aW9uIGZyKGUpe2NvbnN0IHQ9KDAsYS51c2VSZWYpKGUpO3JldHVybiBlcigoKCk9Pnt0LmN1cnJlbnQ9ZX0pKSx0fWNvbnN0IG1yPWRyKFwic2FmZS1wb2x5Z29uXCIpO2Z1bmN0aW9uIGhyKGUsdCxuKXtyZXR1cm4gbiYmIWR0KG4pPzA6XCJudW1iZXJcIj09dHlwZW9mIGU/ZTpudWxsPT1lP3ZvaWQgMDplW3RdfWZ1bmN0aW9uIHByKGUsdCl7bGV0IG49ZS5maWx0ZXIoKGU9Pnt2YXIgbjtyZXR1cm4gZS5wYXJlbnRJZD09PXQmJihudWxsPT0obj1lLmNvbnRleHQpP3ZvaWQgMDpuLm9wZW4pfSkpLHI9bjtmb3IoO3IubGVuZ3RoOylyPWUuZmlsdGVyKChlPT57dmFyIHQ7cmV0dXJuIG51bGw9PSh0PXIpP3ZvaWQgMDp0LnNvbWUoKHQ9Pnt2YXIgbjtyZXR1cm4gZS5wYXJlbnRJZD09PXQuaWQmJihudWxsPT0obj1lLmNvbnRleHQpP3ZvaWQgMDpuLm9wZW4pfSkpfSkpLG49bi5jb25jYXQocik7cmV0dXJuIG59bGV0IGdyPW5ldyBXZWFrTWFwLHlyPW5ldyBXZWFrU2V0LHZyPXt9LGJyPTA7Y29uc3QgeHI9KCk9PlwidW5kZWZpbmVkXCIhPXR5cGVvZiBIVE1MRWxlbWVudCYmXCJpbmVydFwiaW4gSFRNTEVsZW1lbnQucHJvdG90eXBlLHdyPWU9PmUmJihlLmhvc3R8fHdyKGUucGFyZW50Tm9kZSkpLFNyPShlLHQpPT50Lm1hcCgodD0+e2lmKGUuY29udGFpbnModCkpcmV0dXJuIHQ7Y29uc3Qgbj13cih0KTtyZXR1cm4gZS5jb250YWlucyhuKT9uOm51bGx9KSkuZmlsdGVyKChlPT5udWxsIT1lKSk7ZnVuY3Rpb24ga3IoZSx0LG4pe3ZvaWQgMD09PXQmJih0PSExKSx2b2lkIDA9PT1uJiYobj0hMSk7Y29uc3Qgcj1mdChlWzBdKS5ib2R5O3JldHVybiBmdW5jdGlvbihlLHQsbixyKXtjb25zdCBvPVwiZGF0YS1mbG9hdGluZy11aS1pbmVydFwiLGk9cj9cImluZXJ0XCI6bj9cImFyaWEtaGlkZGVuXCI6bnVsbCxzPVNyKHQsZSksYT1uZXcgU2V0LGw9bmV3IFNldChzKSxjPVtdO3ZyW29dfHwodnJbb109bmV3IFdlYWtNYXApO2NvbnN0IHU9dnJbb107cmV0dXJuIHMuZm9yRWFjaCgoZnVuY3Rpb24gZSh0KXt0JiYhYS5oYXModCkmJihhLmFkZCh0KSx0LnBhcmVudE5vZGUmJmUodC5wYXJlbnROb2RlKSl9KSksZnVuY3Rpb24gZSh0KXt0JiYhbC5oYXModCkmJltdLmZvckVhY2guY2FsbCh0LmNoaWxkcmVuLCh0PT57aWYoXCJzY3JpcHRcIiE9PUxlKHQpKWlmKGEuaGFzKHQpKWUodCk7ZWxzZXtjb25zdCBlPWk/dC5nZXRBdHRyaWJ1dGUoaSk6bnVsbCxuPW51bGwhPT1lJiZcImZhbHNlXCIhPT1lLHI9KGdyLmdldCh0KXx8MCkrMSxzPSh1LmdldCh0KXx8MCkrMTtnci5zZXQodCxyKSx1LnNldCh0LHMpLGMucHVzaCh0KSwxPT09ciYmbiYmeXIuYWRkKHQpLDE9PT1zJiZ0LnNldEF0dHJpYnV0ZShvLFwiXCIpLCFuJiZpJiZ0LnNldEF0dHJpYnV0ZShpLFwidHJ1ZVwiKX19KSl9KHQpLGEuY2xlYXIoKSxicisrLCgpPT57Yy5mb3JFYWNoKChlPT57Y29uc3QgdD0oZ3IuZ2V0KGUpfHwwKS0xLG49KHUuZ2V0KGUpfHwwKS0xO2dyLnNldChlLHQpLHUuc2V0KGUsbiksdHx8KCF5ci5oYXMoZSkmJmkmJmUucmVtb3ZlQXR0cmlidXRlKGkpLHlyLmRlbGV0ZShlKSksbnx8ZS5yZW1vdmVBdHRyaWJ1dGUobyl9KSksYnItLSxicnx8KGdyPW5ldyBXZWFrTWFwLGdyPW5ldyBXZWFrTWFwLHlyPW5ldyBXZWFrU2V0LHZyPXt9KX19KGUuY29uY2F0KEFycmF5LmZyb20oci5xdWVyeVNlbGVjdG9yQWxsKFwiW2FyaWEtbGl2ZV1cIikpKSxyLHQsbil9Y29uc3QgRXI9KCk9Pih7Z2V0U2hhZG93Um9vdDohMCxkaXNwbGF5Q2hlY2s6XCJmdW5jdGlvblwiPT10eXBlb2YgUmVzaXplT2JzZXJ2ZXImJlJlc2l6ZU9ic2VydmVyLnRvU3RyaW5nKCkuaW5jbHVkZXMoXCJbbmF0aXZlIGNvZGVdXCIpP1wiZnVsbFwiOlwibm9uZVwifSk7ZnVuY3Rpb24gQ3IoZSx0KXtjb25zdCBuPVF0KGUsRXIoKSk7XCJwcmV2XCI9PT10JiZuLnJldmVyc2UoKTtjb25zdCByPW4uaW5kZXhPZihudChmdChlKSkpO3JldHVybiBuLnNsaWNlKHIrMSlbMF19ZnVuY3Rpb24gX3IoKXtyZXR1cm4gQ3IoZG9jdW1lbnQuYm9keSxcIm5leHRcIil9ZnVuY3Rpb24gUHIoKXtyZXR1cm4gQ3IoZG9jdW1lbnQuYm9keSxcInByZXZcIil9ZnVuY3Rpb24gT3IoZSx0KXtjb25zdCBuPXR8fGUuY3VycmVudFRhcmdldCxyPWUucmVsYXRlZFRhcmdldDtyZXR1cm4hcnx8IXJ0KG4scil9ZnVuY3Rpb24gTnIoZSl7UXQoZSxFcigpKS5mb3JFYWNoKChlPT57ZS5kYXRhc2V0LnRhYmluZGV4PWUuZ2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIil8fFwiXCIsZS5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLFwiLTFcIil9KSl9ZnVuY3Rpb24gVHIoZSl7ZS5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtdGFiaW5kZXhdXCIpLmZvckVhY2goKGU9Pntjb25zdCB0PWUuZGF0YXNldC50YWJpbmRleDtkZWxldGUgZS5kYXRhc2V0LnRhYmluZGV4LHQ/ZS5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLHQpOmUucmVtb3ZlQXR0cmlidXRlKFwidGFiaW5kZXhcIil9KSl9Y29uc3QgTXI9e2JvcmRlcjowLGNsaXA6XCJyZWN0KDAgMCAwIDApXCIsaGVpZ2h0OlwiMXB4XCIsbWFyZ2luOlwiLTFweFwiLG92ZXJmbG93OlwiaGlkZGVuXCIscGFkZGluZzowLHBvc2l0aW9uOlwiZml4ZWRcIix3aGl0ZVNwYWNlOlwibm93cmFwXCIsd2lkdGg6XCIxcHhcIix0b3A6MCxsZWZ0OjB9O2Z1bmN0aW9uIFJyKGUpe1wiVGFiXCI9PT1lLmtleSYmKGUudGFyZ2V0LGNsZWFyVGltZW91dCh2b2lkIDApKX1jb25zdCBEcj1hLmZvcndhcmRSZWYoKGZ1bmN0aW9uKGUsdCl7Y29uc3RbbixyXT1hLnVzZVN0YXRlKCk7ZXIoKCgpPT4obHQoKSYmcihcImJ1dHRvblwiKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLFJyKSwoKT0+e2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsUnIpfSkpLFtdKTtjb25zdCBvPXtyZWY6dCx0YWJJbmRleDowLHJvbGU6bixcImFyaWEtaGlkZGVuXCI6IW58fHZvaWQgMCxbZHIoXCJmb2N1cy1ndWFyZFwiKV06XCJcIixzdHlsZTpNcn07cmV0dXJuIGEuY3JlYXRlRWxlbWVudChcInNwYW5cIix0cih7fSxlLG8pKX0pKSxqcj1hLmNyZWF0ZUNvbnRleHQobnVsbCksQXI9ZHIoXCJwb3J0YWxcIik7ZnVuY3Rpb24gSXIoZSl7Y29uc3R7Y2hpbGRyZW46dCxpZDpuLHJvb3Q6cj1udWxsLHByZXNlcnZlVGFiT3JkZXI6bz0hMH09ZSxpPWZ1bmN0aW9uKGUpe3ZvaWQgMD09PWUmJihlPXt9KTtjb25zdHtpZDp0LHJvb3Q6bn09ZSxyPWlyKCksbz1McigpLFtpLHNdPWEudXNlU3RhdGUobnVsbCksbD1hLnVzZVJlZihudWxsKTtyZXR1cm4gZXIoKCgpPT4oKT0+e251bGw9PWl8fGkucmVtb3ZlKCkscXVldWVNaWNyb3Rhc2soKCgpPT57bC5jdXJyZW50PW51bGx9KSl9KSxbaV0pLGVyKCgoKT0+e2lmKCFyKXJldHVybjtpZihsLmN1cnJlbnQpcmV0dXJuO2NvbnN0IGU9dD9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0KTpudWxsO2lmKCFlKXJldHVybjtjb25zdCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7bi5pZD1yLG4uc2V0QXR0cmlidXRlKEFyLFwiXCIpLGUuYXBwZW5kQ2hpbGQobiksbC5jdXJyZW50PW4scyhuKX0pLFt0LHJdKSxlcigoKCk9PntpZighcilyZXR1cm47aWYobC5jdXJyZW50KXJldHVybjtsZXQgZT1ufHwobnVsbD09bz92b2lkIDA6by5wb3J0YWxOb2RlKTtlJiYhV2UoZSkmJihlPWUuY3VycmVudCksZT1lfHxkb2N1bWVudC5ib2R5O2xldCBpPW51bGw7dCYmKGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSxpLmlkPXQsZS5hcHBlbmRDaGlsZChpKSk7Y29uc3QgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO2EuaWQ9cixhLnNldEF0dHJpYnV0ZShBcixcIlwiKSxlPWl8fGUsZS5hcHBlbmRDaGlsZChhKSxsLmN1cnJlbnQ9YSxzKGEpfSksW3QsbixyLG9dKSxpfSh7aWQ6bixyb290OnJ9KSxbcyxsXT1hLnVzZVN0YXRlKG51bGwpLGM9YS51c2VSZWYobnVsbCksdT1hLnVzZVJlZihudWxsKSxkPWEudXNlUmVmKG51bGwpLGY9YS51c2VSZWYobnVsbCksbT1udWxsPT1zP3ZvaWQgMDpzLm1vZGFsLGg9bnVsbD09cz92b2lkIDA6cy5vcGVuLHA9ISFzJiYhcy5tb2RhbCYmcy5vcGVuJiZvJiYhKCFyJiYhaSk7cmV0dXJuIGEudXNlRWZmZWN0KCgoKT0+e2lmKGkmJm8mJiFtKXJldHVybiBpLmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c2luXCIsZSwhMCksaS5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIixlLCEwKSwoKT0+e2kucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzaW5cIixlLCEwKSxpLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLGUsITApfTtmdW5jdGlvbiBlKGUpe2kmJk9yKGUpJiYoXCJmb2N1c2luXCI9PT1lLnR5cGU/VHI6TnIpKGkpfX0pLFtpLG8sbV0pLGEudXNlRWZmZWN0KCgoKT0+e2kmJihofHxUcihpKSl9KSxbaCxpXSksYS5jcmVhdGVFbGVtZW50KGpyLlByb3ZpZGVyLHt2YWx1ZTphLnVzZU1lbW8oKCgpPT4oe3ByZXNlcnZlVGFiT3JkZXI6byxiZWZvcmVPdXRzaWRlUmVmOmMsYWZ0ZXJPdXRzaWRlUmVmOnUsYmVmb3JlSW5zaWRlUmVmOmQsYWZ0ZXJJbnNpZGVSZWY6Zixwb3J0YWxOb2RlOmksc2V0Rm9jdXNNYW5hZ2VyU3RhdGU6bH0pKSxbbyxpXSl9LHAmJmkmJmEuY3JlYXRlRWxlbWVudChEcix7XCJkYXRhLXR5cGVcIjpcIm91dHNpZGVcIixyZWY6YyxvbkZvY3VzOmU9PntpZihPcihlLGkpKXt2YXIgdDtudWxsPT0odD1kLmN1cnJlbnQpfHx0LmZvY3VzKCl9ZWxzZXtjb25zdCBlPVByKCl8fChudWxsPT1zP3ZvaWQgMDpzLnJlZnMuZG9tUmVmZXJlbmNlLmN1cnJlbnQpO251bGw9PWV8fGUuZm9jdXMoKX19fSkscCYmaSYmYS5jcmVhdGVFbGVtZW50KFwic3BhblwiLHtcImFyaWEtb3duc1wiOmkuaWQsc3R5bGU6TXJ9KSxpJiZ0bi5jcmVhdGVQb3J0YWwodCxpKSxwJiZpJiZhLmNyZWF0ZUVsZW1lbnQoRHIse1wiZGF0YS10eXBlXCI6XCJvdXRzaWRlXCIscmVmOnUsb25Gb2N1czplPT57aWYoT3IoZSxpKSl7dmFyIHQ7bnVsbD09KHQ9Zi5jdXJyZW50KXx8dC5mb2N1cygpfWVsc2V7Y29uc3QgdD1fcigpfHwobnVsbD09cz92b2lkIDA6cy5yZWZzLmRvbVJlZmVyZW5jZS5jdXJyZW50KTtudWxsPT10fHx0LmZvY3VzKCksKG51bGw9PXM/dm9pZCAwOnMuY2xvc2VPbkZvY3VzT3V0KSYmKG51bGw9PXN8fHMub25PcGVuQ2hhbmdlKCExLGUubmF0aXZlRXZlbnQsXCJmb2N1cy1vdXRcIikpfX19KSl9Y29uc3QgTHI9KCk9PmEudXNlQ29udGV4dChqciksRnI9XCJkYXRhLWZsb2F0aW5nLXVpLWZvY3VzYWJsZVwiO2Z1bmN0aW9uIHpyKGUpe3JldHVybiBlP2UuaGFzQXR0cmlidXRlKEZyKT9lOmUucXVlcnlTZWxlY3RvcihcIltcIitGcitcIl1cIil8fGU6bnVsbH1jb25zdCBCcj0yMDtsZXQgV3I9W107ZnVuY3Rpb24gVnIoZSl7V3I9V3IuZmlsdGVyKChlPT5lLmlzQ29ubmVjdGVkKSk7bGV0IHQ9ZTtpZih0JiZcImJvZHlcIiE9PUxlKHQpKXtpZighZW4odCxFcigpKSl7Y29uc3QgZT1RdCh0LEVyKCkpWzBdO2UmJih0PWUpfVdyLnB1c2godCksV3IubGVuZ3RoPkJyJiYoV3I9V3Iuc2xpY2UoLUJyKSl9fWZ1bmN0aW9uIFVyKCl7cmV0dXJuIFdyLnNsaWNlKCkucmV2ZXJzZSgpLmZpbmQoKGU9PmUuaXNDb25uZWN0ZWQpKX1jb25zdCAkcj1hLmZvcndhcmRSZWYoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLHRyKHt9LGUse3R5cGU6XCJidXR0b25cIixyZWY6dCx0YWJJbmRleDotMSxzdHlsZTpNcn0pKX0pKTtmdW5jdGlvbiBZcihlKXtjb25zdHtjb250ZXh0OnQsY2hpbGRyZW46bixkaXNhYmxlZDpyPSExLG9yZGVyOm89W1wiY29udGVudFwiXSxndWFyZHM6aT0hMCxpbml0aWFsRm9jdXM6cz0wLHJldHVybkZvY3VzOmw9ITAscmVzdG9yZUZvY3VzOmM9ITEsbW9kYWw6dT0hMCx2aXN1YWxseUhpZGRlbkRpc21pc3M6ZD0hMSxjbG9zZU9uRm9jdXNPdXQ6Zj0hMH09ZSx7b3BlbjptLHJlZnM6aCxub2RlSWQ6cCxvbk9wZW5DaGFuZ2U6ZyxldmVudHM6eSxkYXRhUmVmOnYsZmxvYXRpbmdJZDpiLGVsZW1lbnRzOntkb21SZWZlcmVuY2U6eCxmbG9hdGluZzp3fX09dCxTPVwibnVtYmVyXCI9PXR5cGVvZiBzJiZzPDAsaz12dCh4KSYmUyxFPSF4cigpfHxpLEM9ZnIobyksXz1mcihzKSxQPWZyKGwpLE89dXIoKSxOPUxyKCksVD1hLnVzZVJlZihudWxsKSxNPWEudXNlUmVmKG51bGwpLFI9YS51c2VSZWYoITEpLEQ9YS51c2VSZWYoITEpLGo9YS51c2VSZWYoLTEpLEE9bnVsbCE9TixJPXpyKHcpLEw9em4oKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT1JKSxlP1F0KGUsRXIoKSk6W119KSksRj16bigoZT0+e2NvbnN0IHQ9TChlKTtyZXR1cm4gQy5jdXJyZW50Lm1hcCgoZT0+eCYmXCJyZWZlcmVuY2VcIj09PWU/eDpJJiZcImZsb2F0aW5nXCI9PT1lP0k6dCkpLmZpbHRlcihCb29sZWFuKS5mbGF0KCl9KSk7ZnVuY3Rpb24geihlKXtyZXR1cm4hciYmZCYmdT9hLmNyZWF0ZUVsZW1lbnQoJHIse3JlZjpcInN0YXJ0XCI9PT1lP1Q6TSxvbkNsaWNrOmU9PmcoITEsZS5uYXRpdmVFdmVudCl9LFwic3RyaW5nXCI9PXR5cGVvZiBkP2Q6XCJEaXNtaXNzXCIpOm51bGx9YS51c2VFZmZlY3QoKCgpPT57Ui5jdXJyZW50PSExfSksW3JdKSxhLnVzZUVmZmVjdCgoKCk9PntpZihyKXJldHVybjtpZighdSlyZXR1cm47ZnVuY3Rpb24gZShlKXtpZihcIlRhYlwiPT09ZS5rZXkpe3J0KEksbnQoZnQoSSkpKSYmMD09PUwoKS5sZW5ndGgmJiFrJiZ5dChlKTtjb25zdCB0PUYoKSxuPWh0KGUpO1wicmVmZXJlbmNlXCI9PT1DLmN1cnJlbnRbMF0mJm49PT14JiYoeXQoZSksZS5zaGlmdEtleT9Rbih0W3QubGVuZ3RoLTFdKTpRbih0WzFdKSksXCJmbG9hdGluZ1wiPT09Qy5jdXJyZW50WzFdJiZuPT09SSYmZS5zaGlmdEtleSYmKHl0KGUpLFFuKHRbMF0pKX19Y29uc3QgdD1mdChJKTtyZXR1cm4gdC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGUpLCgpPT57dC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGUpfX0pLFtyLHgsSSx1LEMsayxMLEZdKSxhLnVzZUVmZmVjdCgoKCk9PntpZighciYmdylyZXR1cm4gdy5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNpblwiLGUpLCgpPT57dy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNpblwiLGUpfTtmdW5jdGlvbiBlKGUpe2NvbnN0IHQ9aHQoZSksbj1MKCkuaW5kZXhPZih0KTstMSE9PW4mJihqLmN1cnJlbnQ9bil9fSksW3IsdyxMXSksYS51c2VFZmZlY3QoKCgpPT57aWYoIXImJmYpcmV0dXJuIHcmJlZlKHgpPyh4LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLHQpLHguYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsZSksdy5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIix0KSwoKT0+e3gucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsdCkseC5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIixlKSx3LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLHQpfSk6dm9pZCAwO2Z1bmN0aW9uIGUoKXtELmN1cnJlbnQ9ITAsc2V0VGltZW91dCgoKCk9PntELmN1cnJlbnQ9ITF9KSl9ZnVuY3Rpb24gdChlKXtjb25zdCB0PWUucmVsYXRlZFRhcmdldDtxdWV1ZU1pY3JvdGFzaygoKCk9Pntjb25zdCBuPSEocnQoeCx0KXx8cnQodyx0KXx8cnQodCx3KXx8cnQobnVsbD09Tj92b2lkIDA6Ti5wb3J0YWxOb2RlLHQpfHxudWxsIT10JiZ0Lmhhc0F0dHJpYnV0ZShkcihcImZvY3VzLWd1YXJkXCIpKXx8TyYmKHByKE8ubm9kZXNSZWYuY3VycmVudCxwKS5maW5kKChlPT57dmFyIG4scjtyZXR1cm4gcnQobnVsbD09KG49ZS5jb250ZXh0KT92b2lkIDA6bi5lbGVtZW50cy5mbG9hdGluZyx0KXx8cnQobnVsbD09KHI9ZS5jb250ZXh0KT92b2lkIDA6ci5lbGVtZW50cy5kb21SZWZlcmVuY2UsdCl9KSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG47bGV0IHI9W10sbz1udWxsPT0obj1lLmZpbmQoKGU9PmUuaWQ9PT10KSkpP3ZvaWQgMDpuLnBhcmVudElkO2Zvcig7bzspe2NvbnN0IHQ9ZS5maW5kKChlPT5lLmlkPT09bykpO289bnVsbD09dD92b2lkIDA6dC5wYXJlbnRJZCx0JiYocj1yLmNvbmNhdCh0KSl9cmV0dXJuIHJ9KE8ubm9kZXNSZWYuY3VycmVudCxwKS5maW5kKChlPT57dmFyIG4scjtyZXR1cm4obnVsbD09KG49ZS5jb250ZXh0KT92b2lkIDA6bi5lbGVtZW50cy5mbG9hdGluZyk9PT10fHwobnVsbD09KHI9ZS5jb250ZXh0KT92b2lkIDA6ci5lbGVtZW50cy5kb21SZWZlcmVuY2UpPT09dH0pKSkpO2lmKGMmJm4mJm50KGZ0KEkpKT09PWZ0KEkpLmJvZHkpe1ZlKEkpJiZJLmZvY3VzKCk7Y29uc3QgZT1qLmN1cnJlbnQsdD1MKCksbj10W2VdfHx0W3QubGVuZ3RoLTFdfHxJO1ZlKG4pJiZuLmZvY3VzKCl9IWsmJnV8fCF0fHwhbnx8RC5jdXJyZW50fHx0PT09VXIoKXx8KFIuY3VycmVudD0hMCxnKCExLGUsXCJmb2N1cy1vdXRcIikpfSkpfX0pLFtyLHgsdyxJLHUscCxPLE4sZyxmLGMsTCxrXSksYS51c2VFZmZlY3QoKCgpPT57dmFyIGU7aWYocilyZXR1cm47Y29uc3QgdD1BcnJheS5mcm9tKChudWxsPT1OfHxudWxsPT0oZT1OLnBvcnRhbE5vZGUpP3ZvaWQgMDplLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbXCIrZHIoXCJwb3J0YWxcIikrXCJdXCIpKXx8W10pO2lmKHcpe2NvbnN0IGU9W3csLi4udCxULmN1cnJlbnQsTS5jdXJyZW50LEMuY3VycmVudC5pbmNsdWRlcyhcInJlZmVyZW5jZVwiKXx8az94Om51bGxdLmZpbHRlcigoZT0+bnVsbCE9ZSkpLG49dXx8az9rcihlLEUsIUUpOmtyKGUpO3JldHVybigpPT57bigpfX19KSxbcix4LHcsdSxDLE4sayxFXSksZXIoKCgpPT57aWYocnx8IVZlKEkpKXJldHVybjtjb25zdCBlPW50KGZ0KEkpKTtxdWV1ZU1pY3JvdGFzaygoKCk9Pntjb25zdCB0PUYoSSksbj1fLmN1cnJlbnQscj0oXCJudW1iZXJcIj09dHlwZW9mIG4/dFtuXTpuLmN1cnJlbnQpfHxJLG89cnQoSSxlKTtTfHxvfHwhbXx8UW4ocix7cHJldmVudFNjcm9sbDpyPT09SX0pfSkpfSksW3IsbSxJLFMsRixfXSksZXIoKCgpPT57aWYocnx8IUkpcmV0dXJuO2xldCBlPSExO2NvbnN0IHQ9ZnQoSSksbj1udCh0KTtsZXQgbz12LmN1cnJlbnQub3BlbkV2ZW50O2NvbnN0IGk9aC5kb21SZWZlcmVuY2UuY3VycmVudDtmdW5jdGlvbiBzKHQpe2xldHtvcGVuOm4scmVhc29uOnIsZXZlbnQ6aSxuZXN0ZWQ6c309dDtuJiYobz1pKSxcImVzY2FwZS1rZXlcIj09PXImJmguZG9tUmVmZXJlbmNlLmN1cnJlbnQmJlZyKGguZG9tUmVmZXJlbmNlLmN1cnJlbnQpLFwiaG92ZXJcIj09PXImJlwibW91c2VsZWF2ZVwiPT09aS50eXBlJiYoUi5jdXJyZW50PSEwKSxcIm91dHNpZGUtcHJlc3NcIj09PXImJihzPyhSLmN1cnJlbnQ9ITEsZT0hMCk6Ui5jdXJyZW50PSEoc3QoaSl8fGF0KGkpKSl9cmV0dXJuIFZyKG4pLHkub24oXCJvcGVuY2hhbmdlXCIscyksKCk9Pnt5Lm9mZihcIm9wZW5jaGFuZ2VcIixzKTtjb25zdCByPW50KHQpLGE9cnQodyxyKXx8TyYmcHIoTy5ub2Rlc1JlZi5jdXJyZW50LHApLnNvbWUoKGU9Pnt2YXIgdDtyZXR1cm4gcnQobnVsbD09KHQ9ZS5jb250ZXh0KT92b2lkIDA6dC5lbGVtZW50cy5mbG9hdGluZyxyKX0pKTsoYXx8byYmW1wiY2xpY2tcIixcIm1vdXNlZG93blwiXS5pbmNsdWRlcyhvLnR5cGUpKSYmaC5kb21SZWZlcmVuY2UuY3VycmVudCYmVnIoaC5kb21SZWZlcmVuY2UuY3VycmVudCk7Y29uc3QgbD1pfHxuLGM9UXQoZnQobCkuYm9keSxFcigpKTtxdWV1ZU1pY3JvdGFzaygoKCk9PntsZXQgbj1VcigpOyFuJiZWZShsKSYmdyYmKG49ZnVuY3Rpb24oZSx0LG4pe2NvbnN0IHI9ZS5pbmRleE9mKHQpO2Z1bmN0aW9uIG8odCl7Y29uc3Qgbz1kcihcImZvY3VzLWd1YXJkXCIpO2xldCBpPXIrKHQ/MTowKSxzPWVbaV07Zm9yKDtzJiYoIXMuaXNDb25uZWN0ZWR8fHMuaGFzQXR0cmlidXRlKG8pfHxydChuLHMpKTspdD9pKys6aS0tLHM9ZVtpXTtyZXR1cm4gc31yZXR1cm4gbyghMCl8fG8oITEpfShjLGwsdykpLFAuY3VycmVudCYmIVIuY3VycmVudCYmVmUobikmJihuPT09cnx8cj09PXQuYm9keXx8YSkmJm4uZm9jdXMoe3ByZXZlbnRTY3JvbGw6ZX0pfSkpfX0pLFtyLHcsSSxQLHYsaCx5LE8scF0pLGVyKCgoKT0+e2lmKCFyJiZOKXJldHVybiBOLnNldEZvY3VzTWFuYWdlclN0YXRlKHttb2RhbDp1LGNsb3NlT25Gb2N1c091dDpmLG9wZW46bSxvbk9wZW5DaGFuZ2U6ZyxyZWZzOmh9KSwoKT0+e04uc2V0Rm9jdXNNYW5hZ2VyU3RhdGUobnVsbCl9fSksW3IsTix1LG0sZyxoLGZdKSxlcigoKCk9PntpZihyKXJldHVybjtpZighSSlyZXR1cm47aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgTXV0YXRpb25PYnNlcnZlcilyZXR1cm47aWYoUylyZXR1cm47Y29uc3QgZT0oKT0+e2NvbnN0IGU9SS5nZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKSx0PUwoKSxuPW50KGZ0KHcpKSxyPXQuaW5kZXhPZihuKTstMSE9PXImJihqLmN1cnJlbnQ9ciksQy5jdXJyZW50LmluY2x1ZGVzKFwiZmxvYXRpbmdcIil8fG4hPT1oLmRvbVJlZmVyZW5jZS5jdXJyZW50JiYwPT09dC5sZW5ndGg/XCIwXCIhPT1lJiZJLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsXCIwXCIpOlwiLTFcIiE9PWUmJkkuc2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIixcIi0xXCIpfTtlKCk7Y29uc3QgdD1uZXcgTXV0YXRpb25PYnNlcnZlcihlKTtyZXR1cm4gdC5vYnNlcnZlKEkse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwLGF0dHJpYnV0ZXM6ITB9KSwoKT0+e3QuZGlzY29ubmVjdCgpfX0pLFtyLHcsSSxoLEMsTCxTXSk7Y29uc3QgQj0hciYmRSYmKCF1fHwhaykmJihBfHx1KTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGEuRnJhZ21lbnQsbnVsbCxCJiZhLmNyZWF0ZUVsZW1lbnQoRHIse1wiZGF0YS10eXBlXCI6XCJpbnNpZGVcIixyZWY6bnVsbD09Tj92b2lkIDA6Ti5iZWZvcmVJbnNpZGVSZWYsb25Gb2N1czplPT57aWYodSl7Y29uc3QgZT1GKCk7UW4oXCJyZWZlcmVuY2VcIj09PW9bMF0/ZVswXTplW2UubGVuZ3RoLTFdKX1lbHNlIGlmKG51bGwhPU4mJk4ucHJlc2VydmVUYWJPcmRlciYmTi5wb3J0YWxOb2RlKWlmKFIuY3VycmVudD0hMSxPcihlLE4ucG9ydGFsTm9kZSkpe2NvbnN0IGU9X3IoKXx8eDtudWxsPT1lfHxlLmZvY3VzKCl9ZWxzZXt2YXIgdDtudWxsPT0odD1OLmJlZm9yZU91dHNpZGVSZWYuY3VycmVudCl8fHQuZm9jdXMoKX19fSksIWsmJnooXCJzdGFydFwiKSxuLHooXCJlbmRcIiksQiYmYS5jcmVhdGVFbGVtZW50KERyLHtcImRhdGEtdHlwZVwiOlwiaW5zaWRlXCIscmVmOm51bGw9PU4/dm9pZCAwOk4uYWZ0ZXJJbnNpZGVSZWYsb25Gb2N1czplPT57aWYodSlRbihGKClbMF0pO2Vsc2UgaWYobnVsbCE9TiYmTi5wcmVzZXJ2ZVRhYk9yZGVyJiZOLnBvcnRhbE5vZGUpaWYoZiYmKFIuY3VycmVudD0hMCksT3IoZSxOLnBvcnRhbE5vZGUpKXtjb25zdCBlPVByKCl8fHg7bnVsbD09ZXx8ZS5mb2N1cygpfWVsc2V7dmFyIHQ7bnVsbD09KHQ9Ti5hZnRlck91dHNpZGVSZWYuY3VycmVudCl8fHQuZm9jdXMoKX19fSkpfWZ1bmN0aW9uIEhyKGUpe3JldHVybiBWZShlLnRhcmdldCkmJlwiQlVUVE9OXCI9PT1lLnRhcmdldC50YWdOYW1lfWZ1bmN0aW9uIEtyKGUpe3JldHVybiBndChlKX1mdW5jdGlvbiBxcihlLHQpe3ZvaWQgMD09PXQmJih0PXt9KTtjb25zdHtvcGVuOm4sb25PcGVuQ2hhbmdlOnIsZGF0YVJlZjpvLGVsZW1lbnRzOntkb21SZWZlcmVuY2U6aX19PWUse2VuYWJsZWQ6cz0hMCxldmVudDpsPVwiY2xpY2tcIix0b2dnbGU6Yz0hMCxpZ25vcmVNb3VzZTp1PSExLGtleWJvYXJkSGFuZGxlcnM6ZD0hMH09dCxmPWEudXNlUmVmKCksbT1hLnVzZVJlZighMSksaD1hLnVzZU1lbW8oKCgpPT4oe29uUG9pbnRlckRvd24oZSl7Zi5jdXJyZW50PWUucG9pbnRlclR5cGV9LG9uTW91c2VEb3duKGUpe2NvbnN0IHQ9Zi5jdXJyZW50OzA9PT1lLmJ1dHRvbiYmXCJjbGlja1wiIT09bCYmKGR0KHQsITApJiZ1fHwoIW58fCFjfHxvLmN1cnJlbnQub3BlbkV2ZW50JiZcIm1vdXNlZG93blwiIT09by5jdXJyZW50Lm9wZW5FdmVudC50eXBlPyhlLnByZXZlbnREZWZhdWx0KCkscighMCxlLm5hdGl2ZUV2ZW50LFwiY2xpY2tcIikpOnIoITEsZS5uYXRpdmVFdmVudCxcImNsaWNrXCIpKSl9LG9uQ2xpY2soZSl7Y29uc3QgdD1mLmN1cnJlbnQ7XCJtb3VzZWRvd25cIj09PWwmJmYuY3VycmVudD9mLmN1cnJlbnQ9dm9pZCAwOmR0KHQsITApJiZ1fHwoIW58fCFjfHxvLmN1cnJlbnQub3BlbkV2ZW50JiZcImNsaWNrXCIhPT1vLmN1cnJlbnQub3BlbkV2ZW50LnR5cGU/cighMCxlLm5hdGl2ZUV2ZW50LFwiY2xpY2tcIik6cighMSxlLm5hdGl2ZUV2ZW50LFwiY2xpY2tcIikpfSxvbktleURvd24oZSl7Zi5jdXJyZW50PXZvaWQgMCxlLmRlZmF1bHRQcmV2ZW50ZWR8fCFkfHxIcihlKXx8KFwiIFwiIT09ZS5rZXl8fEtyKGkpfHwoZS5wcmV2ZW50RGVmYXVsdCgpLG0uY3VycmVudD0hMCksXCJFbnRlclwiPT09ZS5rZXkmJnIoIW58fCFjLGUubmF0aXZlRXZlbnQsXCJjbGlja1wiKSl9LG9uS2V5VXAoZSl7ZS5kZWZhdWx0UHJldmVudGVkfHwhZHx8SHIoZSl8fEtyKGkpfHxcIiBcIj09PWUua2V5JiZtLmN1cnJlbnQmJihtLmN1cnJlbnQ9ITEscighbnx8IWMsZS5uYXRpdmVFdmVudCxcImNsaWNrXCIpKX19KSksW28saSxsLHUsZCxyLG4sY10pO3JldHVybiBhLnVzZU1lbW8oKCgpPT5zP3tyZWZlcmVuY2U6aH06e30pLFtzLGhdKX1jb25zdCBHcj17cG9pbnRlcmRvd246XCJvblBvaW50ZXJEb3duXCIsbW91c2Vkb3duOlwib25Nb3VzZURvd25cIixjbGljazpcIm9uQ2xpY2tcIn0sWHI9e3BvaW50ZXJkb3duOlwib25Qb2ludGVyRG93bkNhcHR1cmVcIixtb3VzZWRvd246XCJvbk1vdXNlRG93bkNhcHR1cmVcIixjbGljazpcIm9uQ2xpY2tDYXB0dXJlXCJ9LFpyPWU9Pnt2YXIgdCxuO3JldHVybntlc2NhcGVLZXk6XCJib29sZWFuXCI9PXR5cGVvZiBlP2U6bnVsbCE9KHQ9bnVsbD09ZT92b2lkIDA6ZS5lc2NhcGVLZXkpJiZ0LG91dHNpZGVQcmVzczpcImJvb2xlYW5cIj09dHlwZW9mIGU/ZTpudWxsPT0obj1udWxsPT1lP3ZvaWQgMDplLm91dHNpZGVQcmVzcyl8fG59fTtmdW5jdGlvbiBKcihlLHQpe3ZvaWQgMD09PXQmJih0PXt9KTtjb25zdHtvcGVuOm4sb25PcGVuQ2hhbmdlOnIsZWxlbWVudHM6byxkYXRhUmVmOml9PWUse2VuYWJsZWQ6cz0hMCxlc2NhcGVLZXk6bD0hMCxvdXRzaWRlUHJlc3M6Yz0hMCxvdXRzaWRlUHJlc3NFdmVudDp1PVwicG9pbnRlcmRvd25cIixyZWZlcmVuY2VQcmVzczpkPSExLHJlZmVyZW5jZVByZXNzRXZlbnQ6Zj1cInBvaW50ZXJkb3duXCIsYW5jZXN0b3JTY3JvbGw6bT0hMSxidWJibGVzOmgsY2FwdHVyZTpwfT10LGc9dXIoKSx5PXpuKFwiZnVuY3Rpb25cIj09dHlwZW9mIGM/YzooKT0+ITEpLHY9XCJmdW5jdGlvblwiPT10eXBlb2YgYz95OmMsYj1hLnVzZVJlZighMSkseD1hLnVzZVJlZighMSkse2VzY2FwZUtleTp3LG91dHNpZGVQcmVzczpTfT1acihoKSx7ZXNjYXBlS2V5Omssb3V0c2lkZVByZXNzOkV9PVpyKHApLEM9em4oKGU9Pnt2YXIgdDtpZighbnx8IXN8fCFsfHxcIkVzY2FwZVwiIT09ZS5rZXkpcmV0dXJuO2NvbnN0IG89bnVsbD09KHQ9aS5jdXJyZW50LmZsb2F0aW5nQ29udGV4dCk/dm9pZCAwOnQubm9kZUlkLGE9Zz9wcihnLm5vZGVzUmVmLmN1cnJlbnQsbyk6W107aWYoIXcmJihlLnN0b3BQcm9wYWdhdGlvbigpLGEubGVuZ3RoPjApKXtsZXQgZT0hMDtpZihhLmZvckVhY2goKHQ9Pnt2YXIgbjtudWxsPT0obj10LmNvbnRleHQpfHwhbi5vcGVufHx0LmNvbnRleHQuZGF0YVJlZi5jdXJyZW50Ll9fZXNjYXBlS2V5QnViYmxlc3x8KGU9ITEpfSkpLCFlKXJldHVybn1yKCExLGZ1bmN0aW9uKGUpe3JldHVyblwibmF0aXZlRXZlbnRcImluIGV9KGUpP2UubmF0aXZlRXZlbnQ6ZSxcImVzY2FwZS1rZXlcIil9KSksXz16bigoZT0+e3ZhciB0O2NvbnN0IG49KCk9Pnt2YXIgdDtDKGUpLG51bGw9PSh0PWh0KGUpKXx8dC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLG4pfTtudWxsPT0odD1odChlKSl8fHQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixuKX0pKSxQPXpuKChlPT57dmFyIHQ7Y29uc3Qgbj1iLmN1cnJlbnQ7Yi5jdXJyZW50PSExO2NvbnN0IHM9eC5jdXJyZW50O2lmKHguY3VycmVudD0hMSxcImNsaWNrXCI9PT11JiZzKXJldHVybjtpZihuKXJldHVybjtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiB2JiYhdihlKSlyZXR1cm47Y29uc3QgYT1odChlKSxsPVwiW1wiK2RyKFwiaW5lcnRcIikrXCJdXCIsYz1mdChvLmZsb2F0aW5nKS5xdWVyeVNlbGVjdG9yQWxsKGwpO2xldCBkPVdlKGEpP2E6bnVsbDtmb3IoO2QmJiFHZShkKTspe2NvbnN0IGU9SmUoZCk7aWYoR2UoZSl8fCFXZShlKSlicmVhaztkPWV9aWYoYy5sZW5ndGgmJldlKGEpJiYhYS5tYXRjaGVzKFwiaHRtbCxib2R5XCIpJiYhcnQoYSxvLmZsb2F0aW5nKSYmQXJyYXkuZnJvbShjKS5ldmVyeSgoZT0+IXJ0KGQsZSkpKSlyZXR1cm47aWYoVmUoYSkmJlQpe2NvbnN0IHQ9YS5jbGllbnRXaWR0aD4wJiZhLnNjcm9sbFdpZHRoPmEuY2xpZW50V2lkdGgsbj1hLmNsaWVudEhlaWdodD4wJiZhLnNjcm9sbEhlaWdodD5hLmNsaWVudEhlaWdodDtsZXQgcj1uJiZlLm9mZnNldFg+YS5jbGllbnRXaWR0aDtpZihuJiZcInJ0bFwiPT09WGUoYSkuZGlyZWN0aW9uJiYocj1lLm9mZnNldFg8PWEub2Zmc2V0V2lkdGgtYS5jbGllbnRXaWR0aCkscnx8dCYmZS5vZmZzZXRZPmEuY2xpZW50SGVpZ2h0KXJldHVybn1jb25zdCBmPW51bGw9PSh0PWkuY3VycmVudC5mbG9hdGluZ0NvbnRleHQpP3ZvaWQgMDp0Lm5vZGVJZCxtPWcmJnByKGcubm9kZXNSZWYuY3VycmVudCxmKS5zb21lKCh0PT57dmFyIG47cmV0dXJuIG10KGUsbnVsbD09KG49dC5jb250ZXh0KT92b2lkIDA6bi5lbGVtZW50cy5mbG9hdGluZyl9KSk7aWYobXQoZSxvLmZsb2F0aW5nKXx8bXQoZSxvLmRvbVJlZmVyZW5jZSl8fG0pcmV0dXJuO2NvbnN0IGg9Zz9wcihnLm5vZGVzUmVmLmN1cnJlbnQsZik6W107aWYoaC5sZW5ndGg+MCl7bGV0IGU9ITA7aWYoaC5mb3JFYWNoKCh0PT57dmFyIG47bnVsbD09KG49dC5jb250ZXh0KXx8IW4ub3Blbnx8dC5jb250ZXh0LmRhdGFSZWYuY3VycmVudC5fX291dHNpZGVQcmVzc0J1YmJsZXN8fChlPSExKX0pKSwhZSlyZXR1cm59cighMSxlLFwib3V0c2lkZS1wcmVzc1wiKX0pKSxPPXpuKChlPT57dmFyIHQ7Y29uc3Qgbj0oKT0+e3ZhciB0O1AoZSksbnVsbD09KHQ9aHQoZSkpfHx0LnJlbW92ZUV2ZW50TGlzdGVuZXIodSxuKX07bnVsbD09KHQ9aHQoZSkpfHx0LmFkZEV2ZW50TGlzdGVuZXIodSxuKX0pKTthLnVzZUVmZmVjdCgoKCk9PntpZighbnx8IXMpcmV0dXJuO2Z1bmN0aW9uIGUoZSl7cighMSxlLFwiYW5jZXN0b3Itc2Nyb2xsXCIpfWkuY3VycmVudC5fX2VzY2FwZUtleUJ1YmJsZXM9dyxpLmN1cnJlbnQuX19vdXRzaWRlUHJlc3NCdWJibGVzPVM7Y29uc3QgdD1mdChvLmZsb2F0aW5nKTtsJiZ0LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsaz9fOkMsayksdiYmdC5hZGRFdmVudExpc3RlbmVyKHUsRT9POlAsRSk7bGV0IGE9W107cmV0dXJuIG0mJihXZShvLmRvbVJlZmVyZW5jZSkmJihhPWV0KG8uZG9tUmVmZXJlbmNlKSksV2Uoby5mbG9hdGluZykmJihhPWEuY29uY2F0KGV0KG8uZmxvYXRpbmcpKSksIVdlKG8ucmVmZXJlbmNlKSYmby5yZWZlcmVuY2UmJm8ucmVmZXJlbmNlLmNvbnRleHRFbGVtZW50JiYoYT1hLmNvbmNhdChldChvLnJlZmVyZW5jZS5jb250ZXh0RWxlbWVudCkpKSksYT1hLmZpbHRlcigoZT0+e3ZhciBuO3JldHVybiBlIT09KG51bGw9PShuPXQuZGVmYXVsdFZpZXcpP3ZvaWQgMDpuLnZpc3VhbFZpZXdwb3J0KX0pKSxhLmZvckVhY2goKHQ9Pnt0LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixlLHtwYXNzaXZlOiEwfSl9KSksKCk9PntsJiZ0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsaz9fOkMsayksdiYmdC5yZW1vdmVFdmVudExpc3RlbmVyKHUsRT9POlAsRSksYS5mb3JFYWNoKCh0PT57dC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsZSl9KSl9fSksW2ksbyxsLHYsdSxuLHIsbSxzLHcsUyxDLGssXyxQLEUsT10pLGEudXNlRWZmZWN0KCgoKT0+e2IuY3VycmVudD0hMX0pLFt2LHVdKTtjb25zdCBOPWEudXNlTWVtbygoKCk9Pih7b25LZXlEb3duOkMsW0dyW2ZdXTplPT57ZCYmcighMSxlLm5hdGl2ZUV2ZW50LFwicmVmZXJlbmNlLXByZXNzXCIpfX0pKSxbQyxyLGQsZl0pLFQ9YS51c2VNZW1vKCgoKT0+KHtvbktleURvd246Qyxvbk1vdXNlRG93bigpe3guY3VycmVudD0hMH0sb25Nb3VzZVVwKCl7eC5jdXJyZW50PSEwfSxbWHJbdV1dOigpPT57Yi5jdXJyZW50PSEwfX0pKSxbQyx1XSk7cmV0dXJuIGEudXNlTWVtbygoKCk9PnM/e3JlZmVyZW5jZTpOLGZsb2F0aW5nOlR9Ont9KSxbcyxOLFRdKX1mdW5jdGlvbiBRcihlKXt2b2lkIDA9PT1lJiYoZT17fSk7Y29uc3R7bm9kZUlkOnR9PWUsbj1mdW5jdGlvbihlKXtjb25zdHtvcGVuOnQ9ITEsb25PcGVuQ2hhbmdlOm4sZWxlbWVudHM6cn09ZSxvPWlyKCksaT1hLnVzZVJlZih7fSksW3NdPWEudXNlU3RhdGUoKCgpPT5mdW5jdGlvbigpe2NvbnN0IGU9bmV3IE1hcDtyZXR1cm57ZW1pdCh0LG4pe3ZhciByO251bGw9PShyPWUuZ2V0KHQpKXx8ci5mb3JFYWNoKChlPT5lKG4pKSl9LG9uKHQsbil7ZS5zZXQodCxbLi4uZS5nZXQodCl8fFtdLG5dKX0sb2ZmKHQsbil7dmFyIHI7ZS5zZXQodCwobnVsbD09KHI9ZS5nZXQodCkpP3ZvaWQgMDpyLmZpbHRlcigoZT0+ZSE9PW4pKSl8fFtdKX19fSgpKSksbD1udWxsIT1jcigpLFtjLHVdPWEudXNlU3RhdGUoci5yZWZlcmVuY2UpLGQ9em4oKChlLHQscik9PntpLmN1cnJlbnQub3BlbkV2ZW50PWU/dDp2b2lkIDAscy5lbWl0KFwib3BlbmNoYW5nZVwiLHtvcGVuOmUsZXZlbnQ6dCxyZWFzb246cixuZXN0ZWQ6bH0pLG51bGw9PW58fG4oZSx0LHIpfSkpLGY9YS51c2VNZW1vKCgoKT0+KHtzZXRQb3NpdGlvblJlZmVyZW5jZTp1fSkpLFtdKSxtPWEudXNlTWVtbygoKCk9Pih7cmVmZXJlbmNlOmN8fHIucmVmZXJlbmNlfHxudWxsLGZsb2F0aW5nOnIuZmxvYXRpbmd8fG51bGwsZG9tUmVmZXJlbmNlOnIucmVmZXJlbmNlfSkpLFtjLHIucmVmZXJlbmNlLHIuZmxvYXRpbmddKTtyZXR1cm4gYS51c2VNZW1vKCgoKT0+KHtkYXRhUmVmOmksb3Blbjp0LG9uT3BlbkNoYW5nZTpkLGVsZW1lbnRzOm0sZXZlbnRzOnMsZmxvYXRpbmdJZDpvLHJlZnM6Zn0pKSxbdCxkLG0scyxvLGZdKX0oey4uLmUsZWxlbWVudHM6e3JlZmVyZW5jZTpudWxsLGZsb2F0aW5nOm51bGwsLi4uZS5lbGVtZW50c319KSxyPWUucm9vdENvbnRleHR8fG4sbz1yLmVsZW1lbnRzLFtpLHNdPWEudXNlU3RhdGUobnVsbCksW2wsY109YS51c2VTdGF0ZShudWxsKSx1PShudWxsPT1vP3ZvaWQgMDpvLnJlZmVyZW5jZSl8fGksZD1hLnVzZVJlZihudWxsKSxmPXVyKCk7ZXIoKCgpPT57dSYmKGQuY3VycmVudD11KX0pLFt1XSk7Y29uc3QgbT1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT17fSk7Y29uc3R7cGxhY2VtZW50OnQ9XCJib3R0b21cIixzdHJhdGVneTpuPVwiYWJzb2x1dGVcIixtaWRkbGV3YXJlOnI9W10scGxhdGZvcm06byxlbGVtZW50czp7cmVmZXJlbmNlOmksZmxvYXRpbmc6c309e30sdHJhbnNmb3JtOmw9ITAsd2hpbGVFbGVtZW50c01vdW50ZWQ6YyxvcGVuOnV9PWUsW2QsZl09YS51c2VTdGF0ZSh7eDowLHk6MCxzdHJhdGVneTpuLHBsYWNlbWVudDp0LG1pZGRsZXdhcmVEYXRhOnt9LGlzUG9zaXRpb25lZDohMX0pLFttLGhdPWEudXNlU3RhdGUocik7T24obSxyKXx8aChyKTtjb25zdFtwLGddPWEudXNlU3RhdGUobnVsbCksW3ksdl09YS51c2VTdGF0ZShudWxsKSxiPWEudXNlQ2FsbGJhY2soKGU9PntlIT09ay5jdXJyZW50JiYoay5jdXJyZW50PWUsZyhlKSl9KSxbXSkseD1hLnVzZUNhbGxiYWNrKChlPT57ZSE9PUUuY3VycmVudCYmKEUuY3VycmVudD1lLHYoZSkpfSksW10pLHc9aXx8cCxTPXN8fHksaz1hLnVzZVJlZihudWxsKSxFPWEudXNlUmVmKG51bGwpLEM9YS51c2VSZWYoZCksXz1udWxsIT1jLFA9TW4oYyksTz1NbihvKSxOPWEudXNlQ2FsbGJhY2soKCgpPT57aWYoIWsuY3VycmVudHx8IUUuY3VycmVudClyZXR1cm47Y29uc3QgZT17cGxhY2VtZW50OnQsc3RyYXRlZ3k6bixtaWRkbGV3YXJlOm19O08uY3VycmVudCYmKGUucGxhdGZvcm09Ty5jdXJyZW50KSxDbihrLmN1cnJlbnQsRS5jdXJyZW50LGUpLnRoZW4oKGU9Pntjb25zdCB0PXsuLi5lLGlzUG9zaXRpb25lZDohMH07VC5jdXJyZW50JiYhT24oQy5jdXJyZW50LHQpJiYoQy5jdXJyZW50PXQsdG4uZmx1c2hTeW5jKCgoKT0+e2YodCl9KSkpfSkpfSksW20sdCxuLE9dKTtQbigoKCk9PnshMT09PXUmJkMuY3VycmVudC5pc1Bvc2l0aW9uZWQmJihDLmN1cnJlbnQuaXNQb3NpdGlvbmVkPSExLGYoKGU9Pih7Li4uZSxpc1Bvc2l0aW9uZWQ6ITF9KSkpKX0pLFt1XSk7Y29uc3QgVD1hLnVzZVJlZighMSk7UG4oKCgpPT4oVC5jdXJyZW50PSEwLCgpPT57VC5jdXJyZW50PSExfSkpLFtdKSxQbigoKCk9PntpZih3JiYoay5jdXJyZW50PXcpLFMmJihFLmN1cnJlbnQ9UyksdyYmUyl7aWYoUC5jdXJyZW50KXJldHVybiBQLmN1cnJlbnQodyxTLE4pO04oKX19KSxbdyxTLE4sUCxfXSk7Y29uc3QgTT1hLnVzZU1lbW8oKCgpPT4oe3JlZmVyZW5jZTprLGZsb2F0aW5nOkUsc2V0UmVmZXJlbmNlOmIsc2V0RmxvYXRpbmc6eH0pKSxbYix4XSksUj1hLnVzZU1lbW8oKCgpPT4oe3JlZmVyZW5jZTp3LGZsb2F0aW5nOlN9KSksW3csU10pLEQ9YS51c2VNZW1vKCgoKT0+e2NvbnN0IGU9e3Bvc2l0aW9uOm4sbGVmdDowLHRvcDowfTtpZighUi5mbG9hdGluZylyZXR1cm4gZTtjb25zdCB0PVRuKFIuZmxvYXRpbmcsZC54KSxyPVRuKFIuZmxvYXRpbmcsZC55KTtyZXR1cm4gbD97Li4uZSx0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoXCIrdCtcInB4LCBcIityK1wicHgpXCIsLi4uTm4oUi5mbG9hdGluZyk+PTEuNSYme3dpbGxDaGFuZ2U6XCJ0cmFuc2Zvcm1cIn19Ontwb3NpdGlvbjpuLGxlZnQ6dCx0b3A6cn19KSxbbixsLFIuZmxvYXRpbmcsZC54LGQueV0pO3JldHVybiBhLnVzZU1lbW8oKCgpPT4oey4uLmQsdXBkYXRlOk4scmVmczpNLGVsZW1lbnRzOlIsZmxvYXRpbmdTdHlsZXM6RH0pKSxbZCxOLE0sUixEXSl9KHsuLi5lLGVsZW1lbnRzOnsuLi5vLC4uLmwmJntyZWZlcmVuY2U6bH19fSksaD1hLnVzZUNhbGxiYWNrKChlPT57Y29uc3QgdD1XZShlKT97Z2V0Qm91bmRpbmdDbGllbnRSZWN0OigpPT5lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGNvbnRleHRFbGVtZW50OmV9OmU7Yyh0KSxtLnJlZnMuc2V0UmVmZXJlbmNlKHQpfSksW20ucmVmc10pLHA9YS51c2VDYWxsYmFjaygoZT0+eyhXZShlKXx8bnVsbD09PWUpJiYoZC5jdXJyZW50PWUscyhlKSksKFdlKG0ucmVmcy5yZWZlcmVuY2UuY3VycmVudCl8fG51bGw9PT1tLnJlZnMucmVmZXJlbmNlLmN1cnJlbnR8fG51bGwhPT1lJiYhV2UoZSkpJiZtLnJlZnMuc2V0UmVmZXJlbmNlKGUpfSksW20ucmVmc10pLGc9YS51c2VNZW1vKCgoKT0+KHsuLi5tLnJlZnMsc2V0UmVmZXJlbmNlOnAsc2V0UG9zaXRpb25SZWZlcmVuY2U6aCxkb21SZWZlcmVuY2U6ZH0pKSxbbS5yZWZzLHAsaF0pLHk9YS51c2VNZW1vKCgoKT0+KHsuLi5tLmVsZW1lbnRzLGRvbVJlZmVyZW5jZTp1fSkpLFttLmVsZW1lbnRzLHVdKSx2PWEudXNlTWVtbygoKCk9Pih7Li4ubSwuLi5yLHJlZnM6ZyxlbGVtZW50czp5LG5vZGVJZDp0fSkpLFttLGcseSx0LHJdKTtyZXR1cm4gZXIoKCgpPT57ci5kYXRhUmVmLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0PXY7Y29uc3QgZT1udWxsPT1mP3ZvaWQgMDpmLm5vZGVzUmVmLmN1cnJlbnQuZmluZCgoZT0+ZS5pZD09PXQpKTtlJiYoZS5jb250ZXh0PXYpfSkpLGEudXNlTWVtbygoKCk9Pih7Li4ubSxjb250ZXh0OnYscmVmczpnLGVsZW1lbnRzOnl9KSksW20sZyx5LHZdKX1jb25zdCBlbz1cImFjdGl2ZVwiLHRvPVwic2VsZWN0ZWRcIjtmdW5jdGlvbiBubyhlLHQsbil7Y29uc3Qgcj1uZXcgTWFwLG89XCJpdGVtXCI9PT1uO2xldCBpPWU7aWYobyYmZSl7Y29uc3R7W2VvXTp0LFt0b106X18sLi4ubn09ZTtpPW59cmV0dXJuey4uLlwiZmxvYXRpbmdcIj09PW4mJnt0YWJJbmRleDotMSxbRnJdOlwiXCJ9LC4uLmksLi4udC5tYXAoKHQ9Pntjb25zdCByPXQ/dFtuXTpudWxsO3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHI/ZT9yKGUpOm51bGw6cn0pKS5jb25jYXQoZSkucmVkdWNlKCgoZSx0KT0+dD8oT2JqZWN0LmVudHJpZXModCkuZm9yRWFjaCgodD0+e2xldFtuLGldPXQ7dmFyIHM7byYmW2VvLHRvXS5pbmNsdWRlcyhuKXx8KDA9PT1uLmluZGV4T2YoXCJvblwiKT8oci5oYXMobil8fHIuc2V0KG4sW10pLFwiZnVuY3Rpb25cIj09dHlwZW9mIGkmJihudWxsPT0ocz1yLmdldChuKSl8fHMucHVzaChpKSxlW25dPWZ1bmN0aW9uKCl7Zm9yKHZhciBlLHQ9YXJndW1lbnRzLmxlbmd0aCxvPW5ldyBBcnJheSh0KSxpPTA7aTx0O2krKylvW2ldPWFyZ3VtZW50c1tpXTtyZXR1cm4gbnVsbD09KGU9ci5nZXQobikpP3ZvaWQgMDplLm1hcCgoZT0+ZSguLi5vKSkpLmZpbmQoKGU9PnZvaWQgMCE9PWUpKX0pKTplW25dPWkpfSkpLGUpOmUpLHt9KX19ZnVuY3Rpb24gcm8oZSl7dm9pZCAwPT09ZSYmKGU9W10pO2NvbnN0IHQ9ZS5tYXAoKGU9Pm51bGw9PWU/dm9pZCAwOmUucmVmZXJlbmNlKSksbj1lLm1hcCgoZT0+bnVsbD09ZT92b2lkIDA6ZS5mbG9hdGluZykpLHI9ZS5tYXAoKGU9Pm51bGw9PWU/dm9pZCAwOmUuaXRlbSkpLG89YS51c2VDYWxsYmFjaygodD0+bm8odCxlLFwicmVmZXJlbmNlXCIpKSx0KSxpPWEudXNlQ2FsbGJhY2soKHQ9Pm5vKHQsZSxcImZsb2F0aW5nXCIpKSxuKSxzPWEudXNlQ2FsbGJhY2soKHQ9Pm5vKHQsZSxcIml0ZW1cIikpLHIpO3JldHVybiBhLnVzZU1lbW8oKCgpPT4oe2dldFJlZmVyZW5jZVByb3BzOm8sZ2V0RmxvYXRpbmdQcm9wczppLGdldEl0ZW1Qcm9wczpzfSkpLFtvLGksc10pfWxldCBvbz0hMTtmdW5jdGlvbiBpbyhlLHQsbil7c3dpdGNoKGUpe2Nhc2VcInZlcnRpY2FsXCI6cmV0dXJuIHQ7Y2FzZVwiaG9yaXpvbnRhbFwiOnJldHVybiBuO2RlZmF1bHQ6cmV0dXJuIHR8fG59fWZ1bmN0aW9uIHNvKGUsdCl7cmV0dXJuIGlvKHQsZT09PUJufHxlPT09V24sZT09PVZufHxlPT09VW4pfWZ1bmN0aW9uIGFvKGUsdCxuKXtyZXR1cm4gaW8odCxlPT09V24sbj9lPT09Vm46ZT09PVVuKXx8XCJFbnRlclwiPT09ZXx8XCIgXCI9PT1lfHxcIlwiPT09ZX1mdW5jdGlvbiBsbyhlLHQsbil7cmV0dXJuIGlvKHQsbj9lPT09VW46ZT09PVZuLGU9PT1Cbil9ZnVuY3Rpb24gY28oZSx0KXtjb25zdHtvcGVuOm4sb25PcGVuQ2hhbmdlOnIsZWxlbWVudHM6b309ZSx7bGlzdFJlZjppLGFjdGl2ZUluZGV4OnMsb25OYXZpZ2F0ZTpsPSgpPT57fSxlbmFibGVkOmM9ITAsc2VsZWN0ZWRJbmRleDp1PW51bGwsYWxsb3dFc2NhcGU6ZD0hMSxsb29wOmY9ITEsbmVzdGVkOm09ITEscnRsOmg9ITEsdmlydHVhbDpwPSExLGZvY3VzSXRlbU9uT3BlbjpnPVwiYXV0b1wiLGZvY3VzSXRlbU9uSG92ZXI6eT0hMCxvcGVuT25BcnJvd0tleURvd246dj0hMCxkaXNhYmxlZEluZGljZXM6YixvcmllbnRhdGlvbjp4PVwidmVydGljYWxcIixjb2xzOnc9MSxzY3JvbGxJdGVtSW50b1ZpZXc6Uz0hMCx2aXJ0dWFsSXRlbVJlZjprLGl0ZW1TaXplczpFLGRlbnNlOkM9ITF9PXQsXz1mcih6cihvLmZsb2F0aW5nKSksUD1jcigpLE89dXIoKSxOPXpuKGwpLFQ9YS51c2VSZWYoZyksTT1hLnVzZVJlZihudWxsIT11P3U6LTEpLFI9YS51c2VSZWYobnVsbCksRD1hLnVzZVJlZighMCksaj1hLnVzZVJlZihOKSxBPWEudXNlUmVmKCEhby5mbG9hdGluZyksST1hLnVzZVJlZihuKSxMPWEudXNlUmVmKCExKSxGPWEudXNlUmVmKCExKSx6PWZyKGIpLEI9ZnIobiksVz1mcihTKSxWPWZyKHUpLFtVLCRdPWEudXNlU3RhdGUoKSxbWSxIXT1hLnVzZVN0YXRlKCksSz16bigoZnVuY3Rpb24oZSx0LG4pe2Z1bmN0aW9uIHIoZSl7cD8oJChlLmlkKSxudWxsPT1PfHxPLmV2ZW50cy5lbWl0KFwidmlydHVhbGZvY3VzXCIsZSksayYmKGsuY3VycmVudD1lKSk6UW4oZSx7cHJldmVudFNjcm9sbDohMCxzeW5jOiEoIXV0KCl8fCFsdCgpKSYmKG9vfHxMLmN1cnJlbnQpfSl9dm9pZCAwPT09biYmKG49ITEpO2NvbnN0IG89ZS5jdXJyZW50W3QuY3VycmVudF07byYmcihvKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57Y29uc3QgaT1lLmN1cnJlbnRbdC5jdXJyZW50XXx8bztpZighaSlyZXR1cm47b3x8cihpKTtjb25zdCBzPVcuY3VycmVudDtzJiZHJiYobnx8IUQuY3VycmVudCkmJihudWxsPT1pLnNjcm9sbEludG9WaWV3fHxpLnNjcm9sbEludG9WaWV3KFwiYm9vbGVhblwiPT10eXBlb2Ygcz97YmxvY2s6XCJuZWFyZXN0XCIsaW5saW5lOlwibmVhcmVzdFwifTpzKSl9KSl9KSk7ZXIoKCgpPT57ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKS5mb2N1cyh7Z2V0IHByZXZlbnRTY3JvbGwoKXtyZXR1cm4gb289ITAsITF9fSl9KSxbXSksZXIoKCgpPT57YyYmKG4mJm8uZmxvYXRpbmc/VC5jdXJyZW50JiZudWxsIT11JiYoRi5jdXJyZW50PSEwLE0uY3VycmVudD11LE4odSkpOkEuY3VycmVudCYmKE0uY3VycmVudD0tMSxqLmN1cnJlbnQobnVsbCkpKX0pLFtjLG4sby5mbG9hdGluZyx1LE5dKSxlcigoKCk9PntpZihjJiZuJiZvLmZsb2F0aW5nKWlmKG51bGw9PXMpe2lmKEwuY3VycmVudD0hMSxudWxsIT1WLmN1cnJlbnQpcmV0dXJuO2lmKEEuY3VycmVudCYmKE0uY3VycmVudD0tMSxLKGksTSkpLCghSS5jdXJyZW50fHwhQS5jdXJyZW50KSYmVC5jdXJyZW50JiYobnVsbCE9Ui5jdXJyZW50fHwhMD09PVQuY3VycmVudCYmbnVsbD09Ui5jdXJyZW50KSl7bGV0IGU9MDtjb25zdCB0PSgpPT57bnVsbD09aS5jdXJyZW50WzBdPyhlPDImJihlP3JlcXVlc3RBbmltYXRpb25GcmFtZTpxdWV1ZU1pY3JvdGFzaykodCksZSsrKTooTS5jdXJyZW50PW51bGw9PVIuY3VycmVudHx8YW8oUi5jdXJyZW50LHgsaCl8fG0/SG4oaSx6LmN1cnJlbnQpOktuKGksei5jdXJyZW50KSxSLmN1cnJlbnQ9bnVsbCxOKE0uY3VycmVudCkpfTt0KCl9fWVsc2UgWW4oaSxzKXx8KE0uY3VycmVudD1zLEsoaSxNLEYuY3VycmVudCksRi5jdXJyZW50PSExKX0pLFtjLG4sby5mbG9hdGluZyxzLFYsbSxpLHgsaCxOLEssel0pLGVyKCgoKT0+e3ZhciBlO2lmKCFjfHxvLmZsb2F0aW5nfHwhT3x8cHx8IUEuY3VycmVudClyZXR1cm47Y29uc3QgdD1PLm5vZGVzUmVmLmN1cnJlbnQsbj1udWxsPT0oZT10LmZpbmQoKGU9PmUuaWQ9PT1QKSkpfHxudWxsPT0oZT1lLmNvbnRleHQpP3ZvaWQgMDplLmVsZW1lbnRzLmZsb2F0aW5nLHI9bnQoZnQoby5mbG9hdGluZykpLGk9dC5zb21lKChlPT5lLmNvbnRleHQmJnJ0KGUuY29udGV4dC5lbGVtZW50cy5mbG9hdGluZyxyKSkpO24mJiFpJiZELmN1cnJlbnQmJm4uZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KX0pLFtjLG8uZmxvYXRpbmcsTyxQLHBdKSxlcigoKCk9PntpZihjJiZPJiZwJiYhUClyZXR1cm4gTy5ldmVudHMub24oXCJ2aXJ0dWFsZm9jdXNcIixlKSwoKT0+e08uZXZlbnRzLm9mZihcInZpcnR1YWxmb2N1c1wiLGUpfTtmdW5jdGlvbiBlKGUpe0goZS5pZCksayYmKGsuY3VycmVudD1lKX19KSxbYyxPLHAsUCxrXSksZXIoKCgpPT57ai5jdXJyZW50PU4sQS5jdXJyZW50PSEhby5mbG9hdGluZ30pKSxlcigoKCk9PntufHwoUi5jdXJyZW50PW51bGwpfSksW25dKSxlcigoKCk9PntJLmN1cnJlbnQ9bn0pLFtuXSk7Y29uc3QgcT1udWxsIT1zLEc9YS51c2VNZW1vKCgoKT0+e2Z1bmN0aW9uIGUoZSl7aWYoIW4pcmV0dXJuO2NvbnN0IHQ9aS5jdXJyZW50LmluZGV4T2YoZSk7LTEhPT10JiZOKHQpfXJldHVybntvbkZvY3VzKHQpe2xldHtjdXJyZW50VGFyZ2V0Om59PXQ7ZShuKX0sb25DbGljazplPT57bGV0e2N1cnJlbnRUYXJnZXQ6dH09ZTtyZXR1cm4gdC5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pfSwuLi55JiZ7b25Nb3VzZU1vdmUodCl7bGV0e2N1cnJlbnRUYXJnZXQ6bn09dDtlKG4pfSxvblBvaW50ZXJMZWF2ZShlKXtsZXR7cG9pbnRlclR5cGU6dH09ZTtELmN1cnJlbnQmJlwidG91Y2hcIiE9PXQmJihNLmN1cnJlbnQ9LTEsSyhpLE0pLE4obnVsbCkscHx8UW4oXy5jdXJyZW50LHtwcmV2ZW50U2Nyb2xsOiEwfSkpfX19fSksW24sXyxLLHksaSxOLHBdKSxYPXpuKChlPT57aWYoRC5jdXJyZW50PSExLEwuY3VycmVudD0hMCwhQi5jdXJyZW50JiZlLmN1cnJlbnRUYXJnZXQ9PT1fLmN1cnJlbnQpcmV0dXJuO2lmKG0mJmxvKGUua2V5LHgsaCkpcmV0dXJuIHl0KGUpLHIoITEsZS5uYXRpdmVFdmVudCxcImxpc3QtbmF2aWdhdGlvblwiKSx2b2lkKFZlKG8uZG9tUmVmZXJlbmNlKSYmIXAmJm8uZG9tUmVmZXJlbmNlLmZvY3VzKCkpO2NvbnN0IHQ9TS5jdXJyZW50LHM9SG4oaSxiKSxhPUtuKGksYik7aWYoXCJIb21lXCI9PT1lLmtleSYmKHl0KGUpLE0uY3VycmVudD1zLE4oTS5jdXJyZW50KSksXCJFbmRcIj09PWUua2V5JiYoeXQoZSksTS5jdXJyZW50PWEsTihNLmN1cnJlbnQpKSx3PjEpe2NvbnN0IHQ9RXx8QXJyYXkuZnJvbSh7bGVuZ3RoOmkuY3VycmVudC5sZW5ndGh9LCgoKT0+KHt3aWR0aDoxLGhlaWdodDoxfSkpKSxuPWZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPVtdO2xldCBvPTA7cmV0dXJuIGUuZm9yRWFjaCgoKGUsaSk9PntsZXR7d2lkdGg6cyxoZWlnaHQ6YX09ZSxsPSExO2ZvcihuJiYobz0wKTshbDspe2NvbnN0IGU9W107Zm9yKGxldCBuPTA7bjxzO24rKylmb3IobGV0IHI9MDtyPGE7cisrKWUucHVzaChvK24rcip0KTtvJXQrczw9dCYmZS5ldmVyeSgoZT0+bnVsbD09cltlXSkpPyhlLmZvckVhY2goKGU9PntyW2VdPWl9KSksbD0hMCk6bysrfX0pKSxbLi4ucl19KHQsdyxDKSxyPW4uZmluZEluZGV4KChlPT5udWxsIT1lJiYhWm4oaS5jdXJyZW50LGUsYikpKSxvPW4ucmVkdWNlKCgoZSx0LG4pPT5udWxsPT10fHxabihpLmN1cnJlbnQsdCxiKT9lOm4pLC0xKSxsPW5bZnVuY3Rpb24oZSx0KXtsZXR7ZXZlbnQ6bixvcmllbnRhdGlvbjpyLGxvb3A6byxjb2xzOmksZGlzYWJsZWRJbmRpY2VzOnMsbWluSW5kZXg6YSxtYXhJbmRleDpsLHByZXZJbmRleDpjLHN0b3BFdmVudDp1PSExfT10LGQ9YztpZihuLmtleT09PUJuKXtpZih1JiZ5dChuKSwtMT09PWMpZD1sO2Vsc2UgaWYoZD1xbihlLHtzdGFydGluZ0luZGV4OmQsYW1vdW50OmksZGVjcmVtZW50OiEwLGRpc2FibGVkSW5kaWNlczpzfSksbyYmKGMtaTxhfHxkPDApKXtjb25zdCBlPWMlaSx0PWwlaSxuPWwtKHQtZSk7ZD10PT09ZT9sOnQ+ZT9uOm4taX1ZbihlLGQpJiYoZD1jKX1pZihuLmtleT09PVduJiYodSYmeXQobiksLTE9PT1jP2Q9YTooZD1xbihlLHtzdGFydGluZ0luZGV4OmMsYW1vdW50OmksZGlzYWJsZWRJbmRpY2VzOnN9KSxvJiZjK2k+bCYmKGQ9cW4oZSx7c3RhcnRpbmdJbmRleDpjJWktaSxhbW91bnQ6aSxkaXNhYmxlZEluZGljZXM6c30pKSksWW4oZSxkKSYmKGQ9YykpLFwiYm90aFwiPT09cil7Y29uc3QgdD1TdChjL2kpO24ua2V5PT09VW4mJih1JiZ5dChuKSxjJWkhPWktMT8oZD1xbihlLHtzdGFydGluZ0luZGV4OmMsZGlzYWJsZWRJbmRpY2VzOnN9KSxvJiYkbihkLGksdCkmJihkPXFuKGUse3N0YXJ0aW5nSW5kZXg6Yy1jJWktMSxkaXNhYmxlZEluZGljZXM6c30pKSk6byYmKGQ9cW4oZSx7c3RhcnRpbmdJbmRleDpjLWMlaS0xLGRpc2FibGVkSW5kaWNlczpzfSkpLCRuKGQsaSx0KSYmKGQ9YykpLG4ua2V5PT09Vm4mJih1JiZ5dChuKSxjJWkhPTA/KGQ9cW4oZSx7c3RhcnRpbmdJbmRleDpjLGRlY3JlbWVudDohMCxkaXNhYmxlZEluZGljZXM6c30pLG8mJiRuKGQsaSx0KSYmKGQ9cW4oZSx7c3RhcnRpbmdJbmRleDpjKyhpLWMlaSksZGVjcmVtZW50OiEwLGRpc2FibGVkSW5kaWNlczpzfSkpKTpvJiYoZD1xbihlLHtzdGFydGluZ0luZGV4OmMrKGktYyVpKSxkZWNyZW1lbnQ6ITAsZGlzYWJsZWRJbmRpY2VzOnN9KSksJG4oZCxpLHQpJiYoZD1jKSk7Y29uc3Qgcj1TdChsL2kpPT09dDtZbihlLGQpJiYoZD1vJiZyP24ua2V5PT09Vm4/bDpxbihlLHtzdGFydGluZ0luZGV4OmMtYyVpLTEsZGlzYWJsZWRJbmRpY2VzOnN9KTpjKX1yZXR1cm4gZH0oe2N1cnJlbnQ6bi5tYXAoKGU9Pm51bGwhPWU/aS5jdXJyZW50W2VdOm51bGwpKX0se2V2ZW50OmUsb3JpZW50YXRpb246eCxsb29wOmYsY29sczp3LGRpc2FibGVkSW5kaWNlczpYbihbLi4uYnx8aS5jdXJyZW50Lm1hcCgoKGUsdCk9PlpuKGkuY3VycmVudCx0KT90OnZvaWQgMCkpLHZvaWQgMF0sbiksbWluSW5kZXg6cixtYXhJbmRleDpvLHByZXZJbmRleDpHbihNLmN1cnJlbnQ+YT9zOk0uY3VycmVudCx0LG4sdyxlLmtleT09PVduP1wiYmxcIjplLmtleT09PVVuP1widHJcIjpcInRsXCIpLHN0b3BFdmVudDohMH0pXTtpZihudWxsIT1sJiYoTS5jdXJyZW50PWwsTihNLmN1cnJlbnQpKSxcImJvdGhcIj09PXgpcmV0dXJufWlmKHNvKGUua2V5LHgpKXtpZih5dChlKSxuJiYhcCYmbnQoZS5jdXJyZW50VGFyZ2V0Lm93bmVyRG9jdW1lbnQpPT09ZS5jdXJyZW50VGFyZ2V0KXJldHVybiBNLmN1cnJlbnQ9YW8oZS5rZXkseCxoKT9zOmEsdm9pZCBOKE0uY3VycmVudCk7YW8oZS5rZXkseCxoKT9NLmN1cnJlbnQ9Zj90Pj1hP2QmJnQhPT1pLmN1cnJlbnQubGVuZ3RoPy0xOnM6cW4oaSx7c3RhcnRpbmdJbmRleDp0LGRpc2FibGVkSW5kaWNlczpifSk6TWF0aC5taW4oYSxxbihpLHtzdGFydGluZ0luZGV4OnQsZGlzYWJsZWRJbmRpY2VzOmJ9KSk6TS5jdXJyZW50PWY/dDw9cz9kJiYtMSE9PXQ/aS5jdXJyZW50Lmxlbmd0aDphOnFuKGkse3N0YXJ0aW5nSW5kZXg6dCxkZWNyZW1lbnQ6ITAsZGlzYWJsZWRJbmRpY2VzOmJ9KTpNYXRoLm1heChzLHFuKGkse3N0YXJ0aW5nSW5kZXg6dCxkZWNyZW1lbnQ6ITAsZGlzYWJsZWRJbmRpY2VzOmJ9KSksWW4oaSxNLmN1cnJlbnQpP04obnVsbCk6TihNLmN1cnJlbnQpfX0pKSxaPWEudXNlTWVtbygoKCk9PnAmJm4mJnEmJntcImFyaWEtYWN0aXZlZGVzY2VuZGFudFwiOll8fFV9KSxbcCxuLHEsWSxVXSksSj1hLnVzZU1lbW8oKCgpPT4oe1wiYXJpYS1vcmllbnRhdGlvblwiOlwiYm90aFwiPT09eD92b2lkIDA6eCwuLi4hdnQoby5kb21SZWZlcmVuY2UpJiZaLG9uS2V5RG93bjpYLG9uUG9pbnRlck1vdmUoKXtELmN1cnJlbnQ9ITB9fSkpLFtaLFgsby5kb21SZWZlcmVuY2UseF0pLFE9YS51c2VNZW1vKCgoKT0+e2Z1bmN0aW9uIGUoZSl7XCJhdXRvXCI9PT1nJiZzdChlLm5hdGl2ZUV2ZW50KSYmKFQuY3VycmVudD0hMCl9cmV0dXJuey4uLlosb25LZXlEb3duKGUpe0QuY3VycmVudD0hMTtjb25zdCB0PTA9PT1lLmtleS5pbmRleE9mKFwiQXJyb3dcIiksbz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGlvKHQsbj9lPT09Vm46ZT09PVVuLGU9PT1Xbil9KGUua2V5LHgsaCkscz1sbyhlLmtleSx4LGgpLGE9c28oZS5rZXkseCksbD0obT9vOmEpfHxcIkVudGVyXCI9PT1lLmtleXx8XCJcIj09PWUua2V5LnRyaW0oKTtpZihwJiZuKXtjb25zdCBuPW51bGw9PU8/dm9pZCAwOk8ubm9kZXNSZWYuY3VycmVudC5maW5kKChlPT5udWxsPT1lLnBhcmVudElkKSkscj1PJiZuP2Z1bmN0aW9uKGUsdCl7bGV0IG4scj0tMTtyZXR1cm4gZnVuY3Rpb24gdChvLGkpe2k+ciYmKG49byxyPWkpLHByKGUsbykuZm9yRWFjaCgoZT0+e3QoZS5pZCxpKzEpfSkpfSh0LDApLGUuZmluZCgoZT0+ZS5pZD09PW4pKX0oTy5ub2Rlc1JlZi5jdXJyZW50LG4uaWQpOm51bGw7aWYodCYmciYmayl7Y29uc3QgdD1uZXcgS2V5Ym9hcmRFdmVudChcImtleWRvd25cIix7a2V5OmUua2V5LGJ1YmJsZXM6ITB9KTtpZihvfHxzKXt2YXIgYyxkO2NvbnN0IG49KG51bGw9PShjPXIuY29udGV4dCk/dm9pZCAwOmMuZWxlbWVudHMuZG9tUmVmZXJlbmNlKT09PWUuY3VycmVudFRhcmdldCxhPXMmJiFuP251bGw9PShkPXIuY29udGV4dCk/dm9pZCAwOmQuZWxlbWVudHMuZG9tUmVmZXJlbmNlOm8/aS5jdXJyZW50LmZpbmQoKGU9PihudWxsPT1lP3ZvaWQgMDplLmlkKT09PVUpKTpudWxsO2EmJih5dChlKSxhLmRpc3BhdGNoRXZlbnQodCksSCh2b2lkIDApKX12YXIgZjtpZihhJiZyLmNvbnRleHQmJnIuY29udGV4dC5vcGVuJiZyLnBhcmVudElkJiZlLmN1cnJlbnRUYXJnZXQhPT1yLmNvbnRleHQuZWxlbWVudHMuZG9tUmVmZXJlbmNlKXJldHVybiB5dChlKSx2b2lkKG51bGw9PShmPXIuY29udGV4dC5lbGVtZW50cy5kb21SZWZlcmVuY2UpfHxmLmRpc3BhdGNoRXZlbnQodCkpfXJldHVybiBYKGUpfShufHx2fHwhdCkmJihsJiYoUi5jdXJyZW50PW0mJmE/bnVsbDplLmtleSksbT9vJiYoeXQoZSksbj8oTS5jdXJyZW50PUhuKGksei5jdXJyZW50KSxOKE0uY3VycmVudCkpOnIoITAsZS5uYXRpdmVFdmVudCxcImxpc3QtbmF2aWdhdGlvblwiKSk6YSYmKG51bGwhPXUmJihNLmN1cnJlbnQ9dSkseXQoZSksIW4mJnY/cighMCxlLm5hdGl2ZUV2ZW50LFwibGlzdC1uYXZpZ2F0aW9uXCIpOlgoZSksbiYmTihNLmN1cnJlbnQpKSl9LG9uRm9jdXMoKXtuJiYhcCYmTihudWxsKX0sb25Qb2ludGVyRG93bjpmdW5jdGlvbihlKXtULmN1cnJlbnQ9ZyxcImF1dG9cIj09PWcmJmF0KGUubmF0aXZlRXZlbnQpJiYoVC5jdXJyZW50PSEwKX0sb25Nb3VzZURvd246ZSxvbkNsaWNrOmV9fSksW1UsWixYLHosZyxpLG0sTixyLG4sdix4LGgsdSxPLHAsa10pO3JldHVybiBhLnVzZU1lbW8oKCgpPT5jP3tyZWZlcmVuY2U6USxmbG9hdGluZzpKLGl0ZW06R306e30pLFtjLFEsSixHXSl9Y29uc3QgdW89bmV3IE1hcChbW1wic2VsZWN0XCIsXCJsaXN0Ym94XCJdLFtcImNvbWJvYm94XCIsXCJsaXN0Ym94XCJdLFtcImxhYmVsXCIsITFdXSk7ZnVuY3Rpb24gZm8oZSx0KXt2YXIgbjt2b2lkIDA9PT10JiYodD17fSk7Y29uc3R7b3BlbjpyLGZsb2F0aW5nSWQ6b309ZSx7ZW5hYmxlZDppPSEwLHJvbGU6cz1cImRpYWxvZ1wifT10LGw9bnVsbCE9KG49dW8uZ2V0KHMpKT9uOnMsYz1pcigpLHU9bnVsbCE9Y3IoKSxkPWEudXNlTWVtbygoKCk9PlwidG9vbHRpcFwiPT09bHx8XCJsYWJlbFwiPT09cz97W1wiYXJpYS1cIisoXCJsYWJlbFwiPT09cz9cImxhYmVsbGVkYnlcIjpcImRlc2NyaWJlZGJ5XCIpXTpyP286dm9pZCAwfTp7XCJhcmlhLWV4cGFuZGVkXCI6cj9cInRydWVcIjpcImZhbHNlXCIsXCJhcmlhLWhhc3BvcHVwXCI6XCJhbGVydGRpYWxvZ1wiPT09bD9cImRpYWxvZ1wiOmwsXCJhcmlhLWNvbnRyb2xzXCI6cj9vOnZvaWQgMCwuLi5cImxpc3Rib3hcIj09PWwmJntyb2xlOlwiY29tYm9ib3hcIn0sLi4uXCJtZW51XCI9PT1sJiZ7aWQ6Y30sLi4uXCJtZW51XCI9PT1sJiZ1JiZ7cm9sZTpcIm1lbnVpdGVtXCJ9LC4uLlwic2VsZWN0XCI9PT1zJiZ7XCJhcmlhLWF1dG9jb21wbGV0ZVwiOlwibm9uZVwifSwuLi5cImNvbWJvYm94XCI9PT1zJiZ7XCJhcmlhLWF1dG9jb21wbGV0ZVwiOlwibGlzdFwifX0pLFtsLG8sdSxyLGMsc10pLGY9YS51c2VNZW1vKCgoKT0+e2NvbnN0IGU9e2lkOm8sLi4ubCYme3JvbGU6bH19O3JldHVyblwidG9vbHRpcFwiPT09bHx8XCJsYWJlbFwiPT09cz9lOnsuLi5lLC4uLlwibWVudVwiPT09bCYme1wiYXJpYS1sYWJlbGxlZGJ5XCI6Y319fSksW2wsbyxjLHNdKSxtPWEudXNlQ2FsbGJhY2soKGU9PntsZXR7YWN0aXZlOnQsc2VsZWN0ZWQ6bn09ZTtjb25zdCByPXtyb2xlOlwib3B0aW9uXCIsLi4udCYme2lkOm8rXCItb3B0aW9uXCJ9fTtzd2l0Y2gocyl7Y2FzZVwic2VsZWN0XCI6cmV0dXJuey4uLnIsXCJhcmlhLXNlbGVjdGVkXCI6dCYmbn07Y2FzZVwiY29tYm9ib3hcIjpyZXR1cm57Li4uciwuLi50JiZ7XCJhcmlhLXNlbGVjdGVkXCI6ITB9fX1yZXR1cm57fX0pLFtvLHNdKTtyZXR1cm4gYS51c2VNZW1vKCgoKT0+aT97cmVmZXJlbmNlOmQsZmxvYXRpbmc6ZixpdGVtOm19Ont9KSxbaSxkLGYsbV0pfWNvbnN0IG1vPWU9PmUucmVwbGFjZSgvW0EtWl0rKD8hW2Etel0pfFtBLVpdL2csKChlLHQpPT4odD9cIi1cIjpcIlwiKStlLnRvTG93ZXJDYXNlKCkpKTtmdW5jdGlvbiBobyhlLHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZSh0KTplfWZ1bmN0aW9uIHBvKGUsdCl7dm9pZCAwPT09dCYmKHQ9e30pO2NvbnN0e2luaXRpYWw6bj17b3BhY2l0eTowfSxvcGVuOnIsY2xvc2U6byxjb21tb246aSxkdXJhdGlvbjpzPTI1MH09dCxsPWUucGxhY2VtZW50LGM9bC5zcGxpdChcIi1cIilbMF0sdT1hLnVzZU1lbW8oKCgpPT4oe3NpZGU6YyxwbGFjZW1lbnQ6bH0pKSxbYyxsXSksZD1cIm51bWJlclwiPT10eXBlb2YgcyxmPShkP3M6cy5vcGVuKXx8MCxtPShkP3M6cy5jbG9zZSl8fDAsW2gscF09YS51c2VTdGF0ZSgoKCk9Pih7Li4uaG8oaSx1KSwuLi5obyhuLHUpfSkpKSx7aXNNb3VudGVkOmcsc3RhdHVzOnl9PWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09dCYmKHQ9e30pO2NvbnN0e29wZW46bixlbGVtZW50czp7ZmxvYXRpbmc6cn19PWUse2R1cmF0aW9uOm89MjUwfT10LGk9KFwibnVtYmVyXCI9PXR5cGVvZiBvP286by5jbG9zZSl8fDAsW3MsbF09YS51c2VTdGF0ZShcInVubW91bnRlZFwiKSxjPWZ1bmN0aW9uKGUsdCl7Y29uc3RbbixyXT1hLnVzZVN0YXRlKGUpO3JldHVybiBlJiYhbiYmcighMCksYS51c2VFZmZlY3QoKCgpPT57aWYoIWUmJm4pe2NvbnN0IGU9c2V0VGltZW91dCgoKCk9PnIoITEpKSx0KTtyZXR1cm4oKT0+Y2xlYXJUaW1lb3V0KGUpfX0pLFtlLG4sdF0pLG59KG4saSk7cmV0dXJuIGN8fFwiY2xvc2VcIiE9PXN8fGwoXCJ1bm1vdW50ZWRcIiksZXIoKCgpPT57aWYocil7aWYobil7bChcImluaXRpYWxcIik7Y29uc3QgZT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCgpPT57bChcIm9wZW5cIil9KSk7cmV0dXJuKCk9PntjYW5jZWxBbmltYXRpb25GcmFtZShlKX19bChcImNsb3NlXCIpfX0pLFtuLHJdKSx7aXNNb3VudGVkOmMsc3RhdHVzOnN9fShlLHtkdXJhdGlvbjpzfSksdj1mcihuKSxiPWZyKHIpLHg9ZnIobyksdz1mcihpKTtyZXR1cm4gZXIoKCgpPT57Y29uc3QgZT1obyh2LmN1cnJlbnQsdSksdD1obyh4LmN1cnJlbnQsdSksbj1obyh3LmN1cnJlbnQsdSkscj1obyhiLmN1cnJlbnQsdSl8fE9iamVjdC5rZXlzKGUpLnJlZHVjZSgoKGUsdCk9PihlW3RdPVwiXCIsZSkpLHt9KTtpZihcImluaXRpYWxcIj09PXkmJnAoKHQ9Pih7dHJhbnNpdGlvblByb3BlcnR5OnQudHJhbnNpdGlvblByb3BlcnR5LC4uLm4sLi4uZX0pKSksXCJvcGVuXCI9PT15JiZwKHt0cmFuc2l0aW9uUHJvcGVydHk6T2JqZWN0LmtleXMocikubWFwKG1vKS5qb2luKFwiLFwiKSx0cmFuc2l0aW9uRHVyYXRpb246ZitcIm1zXCIsLi4ubiwuLi5yfSksXCJjbG9zZVwiPT09eSl7Y29uc3Qgcj10fHxlO3Aoe3RyYW5zaXRpb25Qcm9wZXJ0eTpPYmplY3Qua2V5cyhyKS5tYXAobW8pLmpvaW4oXCIsXCIpLHRyYW5zaXRpb25EdXJhdGlvbjptK1wibXNcIiwuLi5uLC4uLnJ9KX19KSxbbSx4LHYsYix3LGYseSx1XSkse2lzTW91bnRlZDpnLHN0eWxlczpofX1mdW5jdGlvbiBnbyhlLHQpe2NvbnN0W24scl09ZTtsZXQgbz0hMTtjb25zdCBpPXQubGVuZ3RoO2ZvcihsZXQgZT0wLHM9aS0xO2U8aTtzPWUrKyl7Y29uc3RbaSxhXT10W2VdfHxbMCwwXSxbbCxjXT10W3NdfHxbMCwwXTthPj1yIT1jPj1yJiZuPD0obC1pKSooci1hKS8oYy1hKStpJiYobz0hbyl9cmV0dXJuIG99ZnVuY3Rpb24geW8oZSl7dm9pZCAwPT09ZSYmKGU9e30pO2NvbnN0e2J1ZmZlcjp0PS41LGJsb2NrUG9pbnRlckV2ZW50czpuPSExLHJlcXVpcmVJbnRlbnQ6cj0hMH09ZTtsZXQgbyxpPSExLHM9bnVsbCxhPW51bGwsbD1wZXJmb3JtYW5jZS5ub3coKTtjb25zdCBjPWU9PntsZXR7eDpuLHk6YyxwbGFjZW1lbnQ6dSxlbGVtZW50czpkLG9uQ2xvc2U6Zixub2RlSWQ6bSx0cmVlOmh9PWU7cmV0dXJuIGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHAoKXtjbGVhclRpbWVvdXQobyksZigpfWlmKGNsZWFyVGltZW91dChvKSwhZC5kb21SZWZlcmVuY2V8fCFkLmZsb2F0aW5nfHxudWxsPT11fHxudWxsPT1ufHxudWxsPT1jKXJldHVybjtjb25zdHtjbGllbnRYOmcsY2xpZW50WTp5fT1lLHY9W2cseV0sYj1odChlKSx4PVwibW91c2VsZWF2ZVwiPT09ZS50eXBlLHc9cnQoZC5mbG9hdGluZyxiKSxTPXJ0KGQuZG9tUmVmZXJlbmNlLGIpLGs9ZC5kb21SZWZlcmVuY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksRT1kLmZsb2F0aW5nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEM9dS5zcGxpdChcIi1cIilbMF0sXz1uPkUucmlnaHQtRS53aWR0aC8yLFA9Yz5FLmJvdHRvbS1FLmhlaWdodC8yLE89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZVswXT49dC54JiZlWzBdPD10LngrdC53aWR0aCYmZVsxXT49dC55JiZlWzFdPD10LnkrdC5oZWlnaHR9KHYsayksTj1FLndpZHRoPmsud2lkdGgsVD1FLmhlaWdodD5rLmhlaWdodCxNPShOP2s6RSkubGVmdCxSPShOP2s6RSkucmlnaHQsRD0oVD9rOkUpLnRvcCxqPShUP2s6RSkuYm90dG9tO2lmKHcmJihpPSEwLCF4KSlyZXR1cm47aWYoUyYmKGk9ITEpLFMmJiF4KXJldHVybiB2b2lkKGk9ITApO2lmKHgmJldlKGUucmVsYXRlZFRhcmdldCkmJnJ0KGQuZmxvYXRpbmcsZS5yZWxhdGVkVGFyZ2V0KSlyZXR1cm47aWYoaCYmcHIoaC5ub2Rlc1JlZi5jdXJyZW50LG0pLnNvbWUoKGU9PntsZXR7Y29udGV4dDp0fT1lO3JldHVybiBudWxsPT10P3ZvaWQgMDp0Lm9wZW59KSkpcmV0dXJuO2lmKFwidG9wXCI9PT1DJiZjPj1rLmJvdHRvbS0xfHxcImJvdHRvbVwiPT09QyYmYzw9ay50b3ArMXx8XCJsZWZ0XCI9PT1DJiZuPj1rLnJpZ2h0LTF8fFwicmlnaHRcIj09PUMmJm48PWsubGVmdCsxKXJldHVybiBwKCk7bGV0IEE9W107c3dpdGNoKEMpe2Nhc2VcInRvcFwiOkE9W1tNLGsudG9wKzFdLFtNLEUuYm90dG9tLTFdLFtSLEUuYm90dG9tLTFdLFtSLGsudG9wKzFdXTticmVhaztjYXNlXCJib3R0b21cIjpBPVtbTSxFLnRvcCsxXSxbTSxrLmJvdHRvbS0xXSxbUixrLmJvdHRvbS0xXSxbUixFLnRvcCsxXV07YnJlYWs7Y2FzZVwibGVmdFwiOkE9W1tFLnJpZ2h0LTEsal0sW0UucmlnaHQtMSxEXSxbay5sZWZ0KzEsRF0sW2subGVmdCsxLGpdXTticmVhaztjYXNlXCJyaWdodFwiOkE9W1trLnJpZ2h0LTEsal0sW2sucmlnaHQtMSxEXSxbRS5sZWZ0KzEsRF0sW0UubGVmdCsxLGpdXX1pZighZ28oW2cseV0sQSkpe2lmKGkmJiFPKXJldHVybiBwKCk7aWYoIXgmJnIpe2NvbnN0IHQ9ZnVuY3Rpb24oZSx0KXtjb25zdCBuPXBlcmZvcm1hbmNlLm5vdygpLHI9bi1sO2lmKG51bGw9PT1zfHxudWxsPT09YXx8MD09PXIpcmV0dXJuIHM9ZSxhPXQsbD1uLG51bGw7Y29uc3Qgbz1lLXMsaT10LWEsYz1NYXRoLnNxcnQobypvK2kqaSk7cmV0dXJuIHM9ZSxhPXQsbD1uLGMvcn0oZS5jbGllbnRYLGUuY2xpZW50WSk7aWYobnVsbCE9PXQmJnQ8LjEpcmV0dXJuIHAoKX1nbyhbZyx5XSxmdW5jdGlvbihlKXtsZXRbbixyXT1lO3N3aXRjaChDKXtjYXNlXCJ0b3BcIjpyZXR1cm5bW04/bit0LzI6Xz9uKzQqdDpuLTQqdCxyK3QrMV0sW04/bi10LzI6Xz9uKzQqdDpuLTQqdCxyK3QrMV0sW0UubGVmdCxffHxOP0UuYm90dG9tLXQ6RS50b3BdLFtFLnJpZ2h0LF8/Tj9FLmJvdHRvbS10OkUudG9wOkUuYm90dG9tLXRdXTtjYXNlXCJib3R0b21cIjpyZXR1cm5bW04/bit0LzI6Xz9uKzQqdDpuLTQqdCxyLXRdLFtOP24tdC8yOl8/bis0KnQ6bi00KnQsci10XSxbRS5sZWZ0LF98fE4/RS50b3ArdDpFLmJvdHRvbV0sW0UucmlnaHQsXz9OP0UudG9wK3Q6RS5ib3R0b206RS50b3ArdF1dO2Nhc2VcImxlZnRcIjp7Y29uc3QgZT1bbit0KzEsVD9yK3QvMjpQP3IrNCp0OnItNCp0XSxvPVtuK3QrMSxUP3ItdC8yOlA/cis0KnQ6ci00KnRdO3JldHVybltbUHx8VD9FLnJpZ2h0LXQ6RS5sZWZ0LEUudG9wXSxbUD9UP0UucmlnaHQtdDpFLmxlZnQ6RS5yaWdodC10LEUuYm90dG9tXSxlLG9dfWNhc2VcInJpZ2h0XCI6cmV0dXJuW1tuLXQsVD9yK3QvMjpQP3IrNCp0OnItNCp0XSxbbi10LFQ/ci10LzI6UD9yKzQqdDpyLTQqdF0sW1B8fFQ/RS5sZWZ0K3Q6RS5yaWdodCxFLnRvcF0sW1A/VD9FLmxlZnQrdDpFLnJpZ2h0OkUubGVmdCt0LEUuYm90dG9tXV19fShbbixjXSkpPyFpJiZyJiYobz13aW5kb3cuc2V0VGltZW91dChwLDQwKSk6cCgpfX19O3JldHVybiBjLl9fb3B0aW9ucz17YmxvY2tQb2ludGVyRXZlbnRzOm59LGN9Y29uc3Qgdm89a2UoXCJUcmlhbmdsZUFsZXJ0XCIsW1tcInBhdGhcIix7ZDpcIm0yMS43MyAxOC04LTE0YTIgMiAwIDAgMC0zLjQ4IDBsLTggMTRBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuNzMtM1wiLGtleTpcIndtb2VucVwifV0sW1wicGF0aFwiLHtkOlwiTTEyIDl2NFwiLGtleTpcImp1enB1N1wifV0sW1wicGF0aFwiLHtkOlwiTTEyIDE3aC4wMVwiLGtleTpcInAzMnAwNVwifV1dKSxibz1rZShcIlRyYXNoMlwiLFtbXCJwYXRoXCIse2Q6XCJNMyA2aDE4XCIsa2V5OlwiZDB3bTBqXCJ9XSxbXCJwYXRoXCIse2Q6XCJNMTkgNnYxNGMwIDEtMSAyLTIgMkg3Yy0xIDAtMi0xLTItMlY2XCIsa2V5OlwiNGFscnQ0XCJ9XSxbXCJwYXRoXCIse2Q6XCJNOCA2VjRjMC0xIDEtMiAyLTJoNGMxIDAgMiAxIDIgMnYyXCIsa2V5OlwidjA3czBlXCJ9XSxbXCJsaW5lXCIse3gxOlwiMTBcIix4MjpcIjEwXCIseTE6XCIxMVwiLHkyOlwiMTdcIixrZXk6XCIxdXVmcjVcIn1dLFtcImxpbmVcIix7eDE6XCIxNFwiLHgyOlwiMTRcIix5MTpcIjExXCIseTI6XCIxN1wiLGtleTpcInh0eGtkXCJ9XV0pO3ZhciB4bz1cImxpZ2h0XCIsd289XCJuZXV0cmFsXCIsU289ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5pY29uLG49dm9pZCAwPT09dD9udWxsOnQscj1lLnRoZW1lLG89dm9pZCAwPT09cj94bzpyLGk9ZS52YXJpYW50LHM9dm9pZCAwPT09aT93bzppLGw9XCJbJj5zdmddOmgtNSBbJj5zdmddOnctNVwiLGM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50aGVtZSxuPXZvaWQgMD09PXQ/eG86dCxyPWUudmFyaWFudDtyZXR1cm57aW5mbzpcImxpZ2h0XCI9PT1uP1widGV4dC1zdXBwb3J0LWluZm9cIjpcInRleHQtc3VwcG9ydC1pbmZvLWludmVyc2VcIixzdWNjZXNzOlwibGlnaHRcIj09PW4/XCJ0ZXh0LXN1cHBvcnQtc3VjY2Vzc1wiOlwidGV4dC1zdXBwb3J0LXN1Y2Nlc3MtaW52ZXJzZVwiLHdhcm5pbmc6XCJsaWdodFwiPT09bj9cInRleHQtc3VwcG9ydC13YXJuaW5nXCI6XCJ0ZXh0LXN1cHBvcnQtd2FybmluZy1pbnZlcnNlXCIsZXJyb3I6XCJsaWdodFwiPT09bj9cInRleHQtc3VwcG9ydC1lcnJvclwiOlwidGV4dC1zdXBwb3J0LWVycm9yLWludmVyc2VcIn1bdm9pZCAwPT09cj93bzpyXXx8KFwibGlnaHRcIj09PW4/XCJ0ZXh0LWljb24tc2Vjb25kYXJ5XCI6XCJ0ZXh0LWljb24taW52ZXJzZVwiKX0oe3RoZW1lOm8sdmFyaWFudDpzfSk7aWYobiYmKDAsYS5pc1ZhbGlkRWxlbWVudCkobikpcmV0dXJuKDAsYS5jbG9uZUVsZW1lbnQpKG4se2NsYXNzTmFtZTpvZShsLGMsbi5wcm9wcy5jbGFzc05hbWUpfSk7dmFyIHU9e25ldXRyYWw6UmVhY3QuY3JlYXRlRWxlbWVudChSZSx7Y2xhc3NOYW1lOm9lKGwsYyl9KSxpbmZvOlJlYWN0LmNyZWF0ZUVsZW1lbnQoUmUse2NsYXNzTmFtZTpvZShsLGMpfSksc3VjY2VzczpSZWFjdC5jcmVhdGVFbGVtZW50KENlLHtjbGFzc05hbWU6b2UobCxjKX0pLHdhcm5pbmc6UmVhY3QuY3JlYXRlRWxlbWVudCh2byx7Y2xhc3NOYW1lOm9lKGwsYyl9KSxlcnJvcjpSZWFjdC5jcmVhdGVFbGVtZW50KGJvLHtjbGFzc05hbWU6b2UobCxjKX0pfTtyZXR1cm4gdVtzXXx8dS5uZXV0cmFsfSxrbz1mdW5jdGlvbihlKXt2YXIgdD1lLmFjdGlvblR5cGUsbj12b2lkIDA9PT10P1wiYnV0dG9uXCI6dCxyPWUub25BY3Rpb24sbz12b2lkIDA9PT1yP2Z1bmN0aW9uKCl7fTpyLGk9ZS5hY3Rpb25MYWJlbCxzPXZvaWQgMD09PWk/XCJcIjppLGE9ZS50aGVtZSxsPXZvaWQgMD09PWE/eG86YSxjPVwiZm9jdXM6cmluZy0wIGZvY3VzOnJpbmctb2Zmc2V0LTAgcmluZy1vZmZzZXQtMCBmb2N1czpvdXRsaW5lLW5vbmVcIix1PVwidGV4dC1idXR0b24tcHJpbWFyeSBib3JkZXItYnV0dG9uLXByaW1hcnkgaG92ZXI6Ym9yZGVyLWJ1dHRvbi1wcmltYXJ5IGhvdmVyOnRleHQtYnV0dG9uLXByaW1hcnktaG92ZXJcIjtzd2l0Y2goXCJkYXJrXCI9PT1sJiYodT1cInRleHQtdGV4dC1pbnZlcnNlIGJvcmRlci10ZXh0LWludmVyc2UgaG92ZXI6Ym9yZGVyLXRleHQtaW52ZXJzZSBob3Zlcjp0ZXh0LXRleHQtaW52ZXJzZVwiKSxuKXtjYXNlXCJidXR0b25cIjpyZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChkZSx7dmFyaWFudDpcIm91dGxpbmVcIixzaXplOlwieHNcIixvbkNsaWNrOm8sY2xhc3NOYW1lOm9lKFwicm91bmRlZFwiLGMsdSxcImRhcmtcIj09PWw/XCJiZy10cmFuc3BhcmVudCBob3ZlcjpiZy10cmFuc3BhcmVudFwiOlwiYmctd2hpdGUgaG92ZXI6Ymctd2hpdGVcIil9LHMpO2Nhc2VcImxpbmtcIjpyZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChkZSx7dmFyaWFudDpcImxpbmtcIixzaXplOlwieHNcIixvbkNsaWNrOm8sY2xhc3NOYW1lOm9lKGMsdSl9LHMpO2RlZmF1bHQ6cmV0dXJuIG51bGx9fSxFbz1mdW5jdGlvbihlKXt2YXIgdD1lLnRoZW1lLG49dm9pZCAwPT09dD94bzp0LHI9ZS50aXRsZSxvPXZvaWQgMD09PXI/XCJcIjpyO3JldHVybiFvJiZpc05hTihvKT9udWxsOlJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2NsYXNzTmFtZTpvZShcImJsb2NrXCIse2xpZ2h0OlwidGV4dC10ZXh0LXByaW1hcnlcIixkYXJrOlwidGV4dC10ZXh0LWludmVyc2VcIn1bbl0sXCJ0ZXh0LXNtIGxlYWRpbmctNSBmb250LXNlbWlib2xkXCIpfSxvKX0sQ289ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50aGVtZSxuPXZvaWQgMD09PXQ/eG86dCxyPWUuY29udGVudCxvPXZvaWQgMD09PXI/XCJcIjpyO3JldHVybiFvJiZpc05hTihvKT9udWxsOlJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2NsYXNzTmFtZTpvZSh7bGlnaHQ6XCJ0ZXh0LXRleHQtcHJpbWFyeVwiLGRhcms6XCJ0ZXh0LXRleHQtaW52ZXJzZVwifVtuXSxcImJsb2NrIHRleHQtc20gWyZfKl06dGV4dC1zbSBsZWFkaW5nLTUgWyZfKl06bGVhZGluZy01IGZvbnQtbm9ybWFsXCIpfSxvKX0sX289ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxuPTA7bjxlO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gZnVuY3Rpb24oZSl7dC5mb3JFYWNoKChmdW5jdGlvbih0KXtcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3QoZSk6dCYmKHQuY3VycmVudD1lKX0pKX19O2Z1bmN0aW9uIFBvKGUpe3JldHVybiBQbz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSxQbyhlKX1mdW5jdGlvbiBPbygpe3JldHVybiBPbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LE9vLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBObyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gVG8oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/Tm8oT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXtNbyhlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6Tm8oT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSl9cmV0dXJuIGV9ZnVuY3Rpb24gTW8oZSx0LG4pe3JldHVybih0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKGUpe2lmKFwib2JqZWN0XCIhPVBvKGUpfHwhZSlyZXR1cm4gZTt2YXIgdD1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09dCl7dmFyIG49dC5jYWxsKGUsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9UG8obikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcoZSl9KGUpO3JldHVyblwic3ltYm9sXCI9PVBvKHQpP3Q6dCtcIlwifSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBSbyhlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9dmFyIERvPWZ1bmN0aW9uKGUpe3ZhciB0LG4scixvLGk9ZS52YXJpYW50LHM9dm9pZCAwPT09aT9cImRhcmtcIjppLGM9ZS5wbGFjZW1lbnQsdT12b2lkIDA9PT1jP1wiYm90dG9tXCI6YyxkPWUudGl0bGUsZj12b2lkIDA9PT1kP1wiXCI6ZCxtPWUuY29udGVudCxoPWUuYXJyb3cscD12b2lkIDAhPT1oJiZoLGc9ZS5vcGVuLHk9ZS5zZXRPcGVuLHY9ZS5jaGlsZHJlbixiPWUuY2xhc3NOYW1lLHg9ZS50b29sdGlwUG9ydGFsUm9vdCx3PXZvaWQgMD09PXg/bnVsbDp4LFM9ZS50b29sdGlwUG9ydGFsSWQsaz12b2lkIDA9PT1TP1wiXCI6UyxFPWUuYm91bmRhcnksQz12b2lkIDA9PT1FP1wiY2xpcHBpbmdBbmNlc3RvcnNcIjpFLF89ZS5zdHJhdGVneSxQPXZvaWQgMD09PV8/XCJmaXhlZFwiOl8sTz1lLm9mZnNldCxOPXZvaWQgMD09PU8/ODpPLFQ9ZS50cmlnZ2VycyxNPXZvaWQgMD09PVQ/W1wiaG92ZXJcIixcImZvY3VzXCJdOlQsUj1lLmludGVyYWN0aXZlLEQ9dm9pZCAwIT09UiYmUixqPSgwLGEudXNlTWVtbykoKGZ1bmN0aW9uKCl7cmV0dXJuXCJib29sZWFuXCI9PXR5cGVvZiBnJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB5fSksW2cseV0pLEE9KHI9KDAsYS51c2VTdGF0ZSkoITEpLG89MixmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShyKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1uKXt2YXIgcixvLGkscyxhPVtdLGw9ITAsYz0hMTt0cnl7aWYoaT0obj1uLmNhbGwoZSkpLm5leHQsMD09PXQpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2w9ITF9ZWxzZSBmb3IoOyEobD0ocj1pLmNhbGwobikpLmRvbmUpJiYoYS5wdXNoKHIudmFsdWUpLGEubGVuZ3RoIT09dCk7bD0hMCk7fWNhdGNoKGUpe2M9ITAsbz1lfWZpbmFsbHl7dHJ5e2lmKCFsJiZudWxsIT1uLnJldHVybiYmKHM9bi5yZXR1cm4oKSxPYmplY3QocykhPT1zKSlyZXR1cm59ZmluYWxseXtpZihjKXRocm93IG99fXJldHVybiBhfX0ocixvKXx8ZnVuY3Rpb24oZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gUm8oZSx0KTt2YXIgbj17fS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVyblwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bj9BcnJheS5mcm9tKGUpOlwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9SbyhlLHQpOnZvaWQgMH19KHIsbyl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksST1BWzBdLEw9QVsxXSxGPSgwLGEudXNlUmVmKShudWxsKSx6PVFyKHtvcGVuOmo/ZzpJLG9uT3BlbkNoYW5nZTpqP3k6TCxwbGFjZW1lbnQ6dSxzdHJhdGVneTpQLG1pZGRsZXdhcmU6W0RuKE4pLEFuKHtib3VuZGFyeTpDfSksam4oe2JvdW5kYXJ5OkN9KSwobj17ZWxlbWVudDpGfSx7Li4uUm4obiksb3B0aW9uczpbbix1bmRlZmluZWRdfSldLHdoaWxlRWxlbWVudHNNb3VudGVkOmJufSksQj16LnJlZnMsVz16LmZsb2F0aW5nU3R5bGVzLFY9ei5jb250ZXh0LFU9cXIoVix7ZW5hYmxlZDohaiYmTS5pbmNsdWRlcyhcImNsaWNrXCIpfSksJD1mdW5jdGlvbihlLHQpe3ZvaWQgMD09PXQmJih0PXt9KTtjb25zdHtvcGVuOm4sb25PcGVuQ2hhbmdlOnIsZGF0YVJlZjpvLGV2ZW50czppLGVsZW1lbnRzOnN9PWUse2VuYWJsZWQ6bD0hMCxkZWxheTpjPTAsaGFuZGxlQ2xvc2U6dT1udWxsLG1vdXNlT25seTpkPSExLHJlc3RNczpmPTAsbW92ZTptPSEwfT10LGg9dXIoKSxwPWNyKCksZz1mcih1KSx5PWZyKGMpLHY9ZnIobiksYj1hLnVzZVJlZigpLHg9YS51c2VSZWYoLTEpLHc9YS51c2VSZWYoKSxTPWEudXNlUmVmKC0xKSxrPWEudXNlUmVmKCEwKSxFPWEudXNlUmVmKCExKSxDPWEudXNlUmVmKCgoKT0+e30pKSxfPWEudXNlQ2FsbGJhY2soKCgpPT57dmFyIGU7Y29uc3QgdD1udWxsPT0oZT1vLmN1cnJlbnQub3BlbkV2ZW50KT92b2lkIDA6ZS50eXBlO3JldHVybihudWxsPT10P3ZvaWQgMDp0LmluY2x1ZGVzKFwibW91c2VcIikpJiZcIm1vdXNlZG93blwiIT09dH0pLFtvXSk7YS51c2VFZmZlY3QoKCgpPT57aWYobClyZXR1cm4gaS5vbihcIm9wZW5jaGFuZ2VcIixlKSwoKT0+e2kub2ZmKFwib3BlbmNoYW5nZVwiLGUpfTtmdW5jdGlvbiBlKGUpe2xldHtvcGVuOnR9PWU7dHx8KGNsZWFyVGltZW91dCh4LmN1cnJlbnQpLGNsZWFyVGltZW91dChTLmN1cnJlbnQpLGsuY3VycmVudD0hMCl9fSksW2wsaV0pLGEudXNlRWZmZWN0KCgoKT0+e2lmKCFsKXJldHVybjtpZighZy5jdXJyZW50KXJldHVybjtpZighbilyZXR1cm47ZnVuY3Rpb24gZShlKXtfKCkmJnIoITEsZSxcImhvdmVyXCIpfWNvbnN0IHQ9ZnQocy5mbG9hdGluZykuZG9jdW1lbnRFbGVtZW50O3JldHVybiB0LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsZSksKCk9Pnt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsZSl9fSksW3MuZmxvYXRpbmcsbixyLGwsZyxfXSk7Y29uc3QgUD1hLnVzZUNhbGxiYWNrKChmdW5jdGlvbihlLHQsbil7dm9pZCAwPT09dCYmKHQ9ITApLHZvaWQgMD09PW4mJihuPVwiaG92ZXJcIik7Y29uc3Qgbz1ocih5LmN1cnJlbnQsXCJjbG9zZVwiLGIuY3VycmVudCk7byYmIXcuY3VycmVudD8oY2xlYXJUaW1lb3V0KHguY3VycmVudCkseC5jdXJyZW50PXdpbmRvdy5zZXRUaW1lb3V0KCgoKT0+cighMSxlLG4pKSxvKSk6dCYmKGNsZWFyVGltZW91dCh4LmN1cnJlbnQpLHIoITEsZSxuKSl9KSxbeSxyXSksTz16bigoKCk9PntDLmN1cnJlbnQoKSx3LmN1cnJlbnQ9dm9pZCAwfSkpLE49em4oKCgpPT57aWYoRS5jdXJyZW50KXtjb25zdCBlPWZ0KHMuZmxvYXRpbmcpLmJvZHk7ZS5zdHlsZS5wb2ludGVyRXZlbnRzPVwiXCIsZS5yZW1vdmVBdHRyaWJ1dGUobXIpLEUuY3VycmVudD0hMX19KSk7YS51c2VFZmZlY3QoKCgpPT57aWYobCYmV2Uocy5kb21SZWZlcmVuY2UpKXt2YXIgZTtjb25zdCB0PXMuZG9tUmVmZXJlbmNlO3JldHVybiBuJiZ0LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsYyksbnVsbD09KGU9cy5mbG9hdGluZyl8fGUuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIixjKSxtJiZ0LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixpLHtvbmNlOiEwfSksdC5hZGRFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLGkpLHQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIixhKSwoKT0+e3ZhciBlO24mJnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIixjKSxudWxsPT0oZT1zLmZsb2F0aW5nKXx8ZS5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLGMpLG0mJnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLGkpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIixpKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsYSl9fWZ1bmN0aW9uIHQoKXtyZXR1cm4hIW8uY3VycmVudC5vcGVuRXZlbnQmJltcImNsaWNrXCIsXCJtb3VzZWRvd25cIl0uaW5jbHVkZXMoby5jdXJyZW50Lm9wZW5FdmVudC50eXBlKX1mdW5jdGlvbiBpKGUpe2lmKGNsZWFyVGltZW91dCh4LmN1cnJlbnQpLGsuY3VycmVudD0hMSxkJiYhZHQoYi5jdXJyZW50KXx8Zj4wJiYhaHIoeS5jdXJyZW50LFwib3BlblwiKSlyZXR1cm47Y29uc3QgdD1ocih5LmN1cnJlbnQsXCJvcGVuXCIsYi5jdXJyZW50KTt0P3guY3VycmVudD13aW5kb3cuc2V0VGltZW91dCgoKCk9Pnt2LmN1cnJlbnR8fHIoITAsZSxcImhvdmVyXCIpfSksdCk6cighMCxlLFwiaG92ZXJcIil9ZnVuY3Rpb24gYShlKXtpZih0KCkpcmV0dXJuO0MuY3VycmVudCgpO2NvbnN0IHI9ZnQocy5mbG9hdGluZyk7aWYoY2xlYXJUaW1lb3V0KFMuY3VycmVudCksZy5jdXJyZW50JiZvLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0KXtufHxjbGVhclRpbWVvdXQoeC5jdXJyZW50KSx3LmN1cnJlbnQ9Zy5jdXJyZW50KHsuLi5vLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0LHRyZWU6aCx4OmUuY2xpZW50WCx5OmUuY2xpZW50WSxvbkNsb3NlKCl7TigpLE8oKSxQKGUsITAsXCJzYWZlLXBvbHlnb25cIil9fSk7Y29uc3QgdD13LmN1cnJlbnQ7cmV0dXJuIHIuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLHQpLHZvaWQoQy5jdXJyZW50PSgpPT57ci5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsdCl9KX0oXCJ0b3VjaFwiIT09Yi5jdXJyZW50fHwhcnQocy5mbG9hdGluZyxlLnJlbGF0ZWRUYXJnZXQpKSYmUChlKX1mdW5jdGlvbiBjKGUpe3QoKXx8by5jdXJyZW50LmZsb2F0aW5nQ29udGV4dCYmKG51bGw9PWcuY3VycmVudHx8Zy5jdXJyZW50KHsuLi5vLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0LHRyZWU6aCx4OmUuY2xpZW50WCx5OmUuY2xpZW50WSxvbkNsb3NlKCl7TigpLE8oKSxQKGUpfX0pKGUpKX19KSxbcyxsLGUsZCxmLG0sUCxPLE4scixuLHYsaCx5LGcsb10pLGVyKCgoKT0+e3ZhciBlO2lmKGwmJm4mJm51bGwhPShlPWcuY3VycmVudCkmJmUuX19vcHRpb25zLmJsb2NrUG9pbnRlckV2ZW50cyYmXygpKXtFLmN1cnJlbnQ9ITA7Y29uc3QgZT1zLmZsb2F0aW5nO2lmKFdlKHMuZG9tUmVmZXJlbmNlKSYmZSl7dmFyIHQ7Y29uc3Qgbj1mdChzLmZsb2F0aW5nKS5ib2R5O24uc2V0QXR0cmlidXRlKG1yLFwiXCIpO2NvbnN0IHI9cy5kb21SZWZlcmVuY2Usbz1udWxsPT1ofHxudWxsPT0odD1oLm5vZGVzUmVmLmN1cnJlbnQuZmluZCgoZT0+ZS5pZD09PXApKSl8fG51bGw9PSh0PXQuY29udGV4dCk/dm9pZCAwOnQuZWxlbWVudHMuZmxvYXRpbmc7cmV0dXJuIG8mJihvLnN0eWxlLnBvaW50ZXJFdmVudHM9XCJcIiksbi5zdHlsZS5wb2ludGVyRXZlbnRzPVwibm9uZVwiLHIuc3R5bGUucG9pbnRlckV2ZW50cz1cImF1dG9cIixlLnN0eWxlLnBvaW50ZXJFdmVudHM9XCJhdXRvXCIsKCk9PntuLnN0eWxlLnBvaW50ZXJFdmVudHM9XCJcIixyLnN0eWxlLnBvaW50ZXJFdmVudHM9XCJcIixlLnN0eWxlLnBvaW50ZXJFdmVudHM9XCJcIn19fX0pLFtsLG4scCxzLGgsZyxfXSksZXIoKCgpPT57bnx8KGIuY3VycmVudD12b2lkIDAsTygpLE4oKSl9KSxbbixPLE5dKSxhLnVzZUVmZmVjdCgoKCk9PigpPT57TygpLGNsZWFyVGltZW91dCh4LmN1cnJlbnQpLGNsZWFyVGltZW91dChTLmN1cnJlbnQpLE4oKX0pLFtsLHMuZG9tUmVmZXJlbmNlLE8sTl0pO2NvbnN0IFQ9YS51c2VNZW1vKCgoKT0+e2Z1bmN0aW9uIGUoZSl7Yi5jdXJyZW50PWUucG9pbnRlclR5cGV9cmV0dXJue29uUG9pbnRlckRvd246ZSxvblBvaW50ZXJFbnRlcjplLG9uTW91c2VNb3ZlKGUpe2NvbnN0e25hdGl2ZUV2ZW50OnR9PWU7ZnVuY3Rpb24gbygpe2suY3VycmVudHx8di5jdXJyZW50fHxyKCEwLHQsXCJob3ZlclwiKX1kJiYhZHQoYi5jdXJyZW50KXx8bnx8MD09PWZ8fChjbGVhclRpbWVvdXQoUy5jdXJyZW50KSxcInRvdWNoXCI9PT1iLmN1cnJlbnQ/bygpOlMuY3VycmVudD13aW5kb3cuc2V0VGltZW91dChvLGYpKX19fSksW2QscixuLHYsZl0pLE09YS51c2VNZW1vKCgoKT0+KHtvbk1vdXNlRW50ZXIoKXtjbGVhclRpbWVvdXQoeC5jdXJyZW50KX0sb25Nb3VzZUxlYXZlKGUpe1AoZS5uYXRpdmVFdmVudCwhMSl9fSkpLFtQXSk7cmV0dXJuIGEudXNlTWVtbygoKCk9Pmw/e3JlZmVyZW5jZTpULGZsb2F0aW5nOk19Ont9KSxbbCxULE1dKX0oVixUbyh7bW92ZTohMSxlbmFibGVkOiFqJiZNLmluY2x1ZGVzKFwiaG92ZXJcIil9LEQmJntoYW5kbGVDbG9zZTp5bygpfSkpLFk9ZnVuY3Rpb24oZSx0KXt2b2lkIDA9PT10JiYodD17fSk7Y29uc3R7b3BlbjpuLG9uT3BlbkNoYW5nZTpyLGV2ZW50czpvLGRhdGFSZWY6aSxlbGVtZW50czpzfT1lLHtlbmFibGVkOmw9ITAsdmlzaWJsZU9ubHk6Yz0hMH09dCx1PWEudXNlUmVmKCExKSxkPWEudXNlUmVmKCksZj1hLnVzZVJlZighMCk7YS51c2VFZmZlY3QoKCgpPT57aWYoIWwpcmV0dXJuO2NvbnN0IGU9RmUocy5kb21SZWZlcmVuY2UpO2Z1bmN0aW9uIHQoKXshbiYmVmUocy5kb21SZWZlcmVuY2UpJiZzLmRvbVJlZmVyZW5jZT09PW50KGZ0KHMuZG9tUmVmZXJlbmNlKSkmJih1LmN1cnJlbnQ9ITApfWZ1bmN0aW9uIHIoKXtmLmN1cnJlbnQ9ITB9cmV0dXJuIGUuYWRkRXZlbnRMaXN0ZW5lcihcImJsdXJcIix0KSxlLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsciwhMCksKCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJibHVyXCIsdCksZS5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLHIsITApfX0pLFtzLmRvbVJlZmVyZW5jZSxuLGxdKSxhLnVzZUVmZmVjdCgoKCk9PntpZihsKXJldHVybiBvLm9uKFwib3BlbmNoYW5nZVwiLGUpLCgpPT57by5vZmYoXCJvcGVuY2hhbmdlXCIsZSl9O2Z1bmN0aW9uIGUoZSl7bGV0e3JlYXNvbjp0fT1lO1wicmVmZXJlbmNlLXByZXNzXCIhPT10JiZcImVzY2FwZS1rZXlcIiE9PXR8fCh1LmN1cnJlbnQ9ITApfX0pLFtvLGxdKSxhLnVzZUVmZmVjdCgoKCk9PigpPT57Y2xlYXJUaW1lb3V0KGQuY3VycmVudCl9KSxbXSk7Y29uc3QgbT1hLnVzZU1lbW8oKCgpPT4oe29uUG9pbnRlckRvd24oZSl7YXQoZS5uYXRpdmVFdmVudCl8fChmLmN1cnJlbnQ9ITEpfSxvbk1vdXNlTGVhdmUoKXt1LmN1cnJlbnQ9ITF9LG9uRm9jdXMoZSl7aWYodS5jdXJyZW50KXJldHVybjtjb25zdCB0PWh0KGUubmF0aXZlRXZlbnQpO2lmKGMmJldlKHQpKXRyeXtpZihsdCgpJiZ1dCgpKXRocm93IEVycm9yKCk7aWYoIXQubWF0Y2hlcyhcIjpmb2N1cy12aXNpYmxlXCIpKXJldHVybn1jYXRjaChlKXtpZighZi5jdXJyZW50JiYhZ3QodCkpcmV0dXJufXIoITAsZS5uYXRpdmVFdmVudCxcImZvY3VzXCIpfSxvbkJsdXIoZSl7dS5jdXJyZW50PSExO2NvbnN0IHQ9ZS5yZWxhdGVkVGFyZ2V0LG49ZS5uYXRpdmVFdmVudCxvPVdlKHQpJiZ0Lmhhc0F0dHJpYnV0ZShkcihcImZvY3VzLWd1YXJkXCIpKSYmXCJvdXRzaWRlXCI9PT10LmdldEF0dHJpYnV0ZShcImRhdGEtdHlwZVwiKTtkLmN1cnJlbnQ9d2luZG93LnNldFRpbWVvdXQoKCgpPT57dmFyIGU7Y29uc3QgYT1udChzLmRvbVJlZmVyZW5jZT9zLmRvbVJlZmVyZW5jZS5vd25lckRvY3VtZW50OmRvY3VtZW50KTsodHx8YSE9PXMuZG9tUmVmZXJlbmNlKSYmKHJ0KG51bGw9PShlPWkuY3VycmVudC5mbG9hdGluZ0NvbnRleHQpP3ZvaWQgMDplLnJlZnMuZmxvYXRpbmcuY3VycmVudCxhKXx8cnQocy5kb21SZWZlcmVuY2UsYSl8fG98fHIoITEsbixcImZvY3VzXCIpKX0pKX19KSksW2kscy5kb21SZWZlcmVuY2UscixjXSk7cmV0dXJuIGEudXNlTWVtbygoKCk9Pmw/e3JlZmVyZW5jZTptfTp7fSksW2wsbV0pfShWLHtlbmFibGVkOiFqJiZNLmluY2x1ZGVzKFwiZm9jdXNcIil9KSxIPXJvKFtVLCQsWSxKcihWKSxmbyhWLHtyb2xlOlwidG9vbHRpcFwifSldKSxLPUguZ2V0UmVmZXJlbmNlUHJvcHMscT1ILmdldEZsb2F0aW5nUHJvcHMsRz1wbyhWLHtkdXJhdGlvbjoxNTAsaW5pdGlhbDp7b3BhY2l0eTowfSxvcGVuOntvcGFjaXR5OjF9LGNsb3NlOntvcGFjaXR5OjB9fSksWD1HLmlzTW91bnRlZCxaPUcuc3R5bGVzLEo9bnVsbD09PSh0PXtsaWdodDpcImJnLXRvb2x0aXAtYmFja2dyb3VuZC1saWdodCB0ZXh0LXRleHQtcHJpbWFyeVwiLGRhcms6XCJiZy10b29sdGlwLWJhY2tncm91bmQtZGFyayB0ZXh0LXRleHQtb24tY29sb3JcIn0pfHx2b2lkIDA9PT10P3ZvaWQgMDp0W3NdLFE9XCJkYXJrXCI9PT1zP1widGV4dC10b29sdGlwLWJhY2tncm91bmQtZGFya1wiOlwidGV4dC10b29sdGlwLWJhY2tncm91bmQtbGlnaHRcIjtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQobCgpLkZyYWdtZW50LG51bGwsKDAsYS5pc1ZhbGlkRWxlbWVudCkodikmJigwLGEuY2xvbmVFbGVtZW50KSh2LFRvKFRvKHt9LHYucHJvcHMpLHt9LHtyZWY6X28odi5yZWYsQi5zZXRSZWZlcmVuY2UpLGNsYXNzTmFtZTpvZSh2LnByb3BzLmNsYXNzTmFtZSl9LEsoKSkpLGwoKS5jcmVhdGVFbGVtZW50KElyLHtpZDprLHJvb3Q6d30sWCYmbCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIixPbyh7Y2xhc3NOYW1lOm9lKFwiYWJzb2x1dGUgei0yMCBweS0yIHB4LTMgcm91bmRlZC1tZCB0ZXh0LXhzIGxlYWRpbmctNCBzaGFkb3ctc29mdC1zaGFkb3ctbGdcIixKLFwibWF4LXctODAgdy1maXRcIixiKSxyZWY6Qi5zZXRGbG9hdGluZyxzdHlsZTpUbyhUbyh7fSxXKSxaKX0scSgpKSxsKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLG51bGwsISFmJiZsKCkuY3JlYXRlRWxlbWVudChcInNwYW5cIix7Y2xhc3NOYW1lOlwiZm9udC1zZW1pYm9sZFwifSxmKSwhIW0mJmwoKS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImZvbnQtbm9ybWFsXCJ9LG0pKSxwJiZsKCkuY3JlYXRlRWxlbWVudChzcix7cmVmOkYsY29udGV4dDpWLHBsYWNlbWVudDp1LGNsYXNzTmFtZTpvZShcImZpbGwtY3VycmVudFwiLFEpfSkpKSl9LGpvPVtcImlkXCIsXCJsYWJlbFwiLFwidmFsdWVcIixcImNoaWxkcmVuXCIsXCJkaXNhYmxlZFwiLFwiaWNvblwiLFwiaW5saW5lSWNvblwiLFwiaGlkZVNlbGVjdGlvblwiLFwicmV2ZXJzZVBvc2l0aW9uXCIsXCJib3JkZXJPblwiLFwiYm9yZGVyT25BY3RpdmVcIixcImJhZGdlSXRlbVwiLFwidXNlU3dpdGNoXCIsXCJpbmZvXCIsXCJtaW5XaWR0aFwiXSxBbz1bXCJpZFwiLFwiY2hpbGRyZW5cIixcInZhbHVlXCIsXCJkaXNhYmxlZFwiLFwic2l6ZVwiXTtmdW5jdGlvbiBJbygpe3JldHVybiBJbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LElvLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBMbyhlKXtyZXR1cm4gTG89XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgZX0sTG8oZSl9ZnVuY3Rpb24gRm8oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluY2x1ZGVzKHIpKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLHQuaW5jbHVkZXMobil8fHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99ZnVuY3Rpb24gem8oZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gQm8oZSx0KTt2YXIgbj17fS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVyblwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bj9BcnJheS5mcm9tKGUpOlwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9CbyhlLHQpOnZvaWQgMH19ZnVuY3Rpb24gQm8oZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfXZhciBXbz0oMCxhLmNyZWF0ZUNvbnRleHQpKCksVm89ZnVuY3Rpb24oKXtyZXR1cm4oMCxhLnVzZUNvbnRleHQpKFdvKX0sVW89ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLmNoaWxkcmVuLHI9ZS5uYW1lLG89ZS5zdHlsZSxpPXZvaWQgMD09PW8/XCJzaW1wbGVcIjpvLHM9ZS5zaXplLGM9dm9pZCAwPT09cz9cIm1kXCI6cyx1PWUudmFsdWUsZD1lLmRlZmF1bHRWYWx1ZSxmPWUuYnksbT12b2lkIDA9PT1mP1wiaWRcIjpmLGg9ZS5hcyxwPXZvaWQgMD09PWg/XCJkaXZcIjpoLGc9ZS5vbkNoYW5nZSx5PWUuY2xhc3NOYW1lLHY9ZS5kaXNhYmxlR3JvdXAsYj12b2lkIDAhPT12JiZ2LHg9ZS52ZXJ0aWNhbCx3PXZvaWQgMCE9PXgmJngsUz1lLmNvbHVtbnMsaz12b2lkIDA9PT1TPzQ6UyxFPWUubXVsdGlTZWxlY3Rpb24sQz12b2lkIDAhPT1FJiZFLF89ZS5nYXBDbGFzc25hbWUsUD12b2lkIDA9PT1fP1wiZ2FwLTJcIjpfLE89KDAsYS51c2VNZW1vKSgoZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dX0pLFt1XSksTj0oMCxhLnVzZU1lbW8pKChmdW5jdGlvbigpe3JldHVybiByfHxcInJhZGlvLWJ1dHRvbi1ncm91cC1cIi5jb25jYXQoZmUoKSl9KSxbcl0pO3Q9Tz91OkM/bnVsbCE9ZD9kOltdOmQ7dmFyIFQsTSxSPShUPSgwLGEudXNlU3RhdGUpKHQpLE09MixmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShUKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1uKXt2YXIgcixvLGkscyxhPVtdLGw9ITAsYz0hMTt0cnl7aWYoaT0obj1uLmNhbGwoZSkpLm5leHQsMD09PXQpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2w9ITF9ZWxzZSBmb3IoOyEobD0ocj1pLmNhbGwobikpLmRvbmUpJiYoYS5wdXNoKHIudmFsdWUpLGEubGVuZ3RoIT09dCk7bD0hMCk7fWNhdGNoKGUpe2M9ITAsbz1lfWZpbmFsbHl7dHJ5e2lmKCFsJiZudWxsIT1uLnJldHVybiYmKHM9bi5yZXR1cm4oKSxPYmplY3QocykhPT1zKSlyZXR1cm59ZmluYWxseXtpZihjKXRocm93IG99fXJldHVybiBhfX0oVCxNKXx8em8oVCxNKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxEPVJbMF0saj1SWzFdLEE9KDAsYS51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKGUpe2lmKEMpaigoZnVuY3Rpb24odCl7dmFyIG49dC5pbmNsdWRlcyhlKT90LmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1lfSkpOltdLmNvbmNhdChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gQm8oZSl9KGUpfHxmdW5jdGlvbihlKXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbXCJAQGl0ZXJhdG9yXCJdKXJldHVybiBBcnJheS5mcm9tKGUpfShlKXx8em8oZSl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9KHQpLFtlXSk7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgZyYmZyhuKSxufSkpO2Vsc2V7aWYoT3x8aihlKSxcImZ1bmN0aW9uXCIhPXR5cGVvZiBnKXJldHVybjtnKGUpfX0pLFtnXSk7eT1vZShcImdyaWQgZ3JpZC1jb2xzLTRcIixhZVtrXSxQLFwidGlsZVwiPT09aSYmXCJnYXAtMFwiLHcmJlwiZ3JpZC1jb2xzLTFcIix5KTt2YXIgST1vZShcInRpbGVcIj09PWk/XCJib3JkZXIgYm9yZGVyLWJvcmRlci1zdWJ0bGUgYm9yZGVyLXNvbGlkIHJvdW5kZWQtbWQgc2hhZG93LXNtXCI6XCJnYXAtNlwiLHkpLEw9ZnVuY3Rpb24oKXtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoV28uUHJvdmlkZXIse3ZhbHVlOntuYW1lOk4sdmFsdWU6Tz91OkQsYnk6bSxvbkNoYW5nZTpBLGlzQ29udHJvbGxlZDpPLGRpc2FibGVBbGw6YixzdHlsZTppLGNvbHVtbnM6ayxtdWx0aVNlbGVjdGlvbjpDLHNpemU6Y319LGwoKS5DaGlsZHJlbi5tYXAobiwoZnVuY3Rpb24oZSl7cmV0dXJuKDAsYS5pc1ZhbGlkRWxlbWVudCkoZSk/ZTpudWxsfSkpKX07cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KGwoKS5GcmFnbWVudCxudWxsLFwidGlsZVwiPT09aT9sKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6SX0sTCgpKTpsKCkuY3JlYXRlRWxlbWVudChwLHA9PT1hLkZyYWdtZW50P3t9OntjbGFzc05hbWU6eX0sTCgpKSl9O1VvLmRpc3BsYXlOYW1lPVwiUmFkaW9CdXR0b24uR3JvdXBcIjt2YXIgJG89ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89ZS5pZCxpPWUubGFiZWwscz1lLnZhbHVlLGM9ZS5jaGlsZHJlbix1PWUuZGlzYWJsZWQsZD1lLmljb24sZj12b2lkIDA9PT1kP251bGw6ZCxtPWUuaW5saW5lSWNvbixoPXZvaWQgMCE9PW0mJm0scD1lLmhpZGVTZWxlY3Rpb24sZz12b2lkIDAhPT1wJiZwLHk9ZS5yZXZlcnNlUG9zaXRpb24sdj12b2lkIDAhPT15JiZ5LGI9ZS5ib3JkZXJPbix4PXZvaWQgMCE9PWImJmIsdz1lLmJvcmRlck9uQWN0aXZlLFM9dm9pZCAwPT09d3x8dyxrPWUuYmFkZ2VJdGVtLEU9dm9pZCAwPT09az9udWxsOmssQz1lLnVzZVN3aXRjaCxfPXZvaWQgMCE9PUMmJkMsUD1lLmluZm8sTz12b2lkIDA9PT1QP251bGw6UCxOPWUubWluV2lkdGgsVD12b2lkIDA9PT1OfHxOLE09Rm8oZSxqbyksUj1NLmJ1dHRvbldyYXBwZXJDbGFzc2VzLEQ9Vm8oKSxqPUQubmFtZSxBPUQudmFsdWUsST1ELmJ5LEw9RC5vbkNoYW5nZSxGPUQuZGlzYWJsZUFsbCx6PUQuY2hlY2tlZCxCPUQubXVsdGlTZWxlY3Rpb24sVz1ELnNpemUsVj1cInByaW1hcnlcIixVPSgwLGEudXNlTWVtbykoKGZ1bmN0aW9uKCl7cmV0dXJuIG98fFwicmFkaW8tYnV0dG9uLVwiLmNvbmNhdChmZSgpKX0pLFtvXSksJD0oMCxhLnVzZU1lbW8pKChmdW5jdGlvbigpe3JldHVybiBGfHx1fSksW0YsdV0pLFk9KDAsYS51c2VNZW1vKSgoZnVuY3Rpb24oKXtyZXR1cm4gQj9BcnJheS5pc0FycmF5KEEpJiZBLmluY2x1ZGVzKHMpOnZvaWQgMCE9PXo/ejpMbyhBKT09PUxvKHMpJiYoXCJzdHJpbmdcIj09dHlwZW9mIEE/QT09PXM6QXJyYXkuaXNBcnJheShBKT9BLmluY2x1ZGVzKHMpOkFbSV09PT1zW0ldKX0pLFtBLHMsel0pLEg9KDAsYS51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKCl7cmV0dXJuKDAsYS5pc1ZhbGlkRWxlbWVudCkoaSk/aTppLmhlYWRpbmc/bCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKCFoJiZcInNwYWNlLXktMS41IG10LVsycHhdXCIsdiYmKF8/XCJtbC0xMFwiOlwibWwtNFwiKSxoJiZcImZsZXggZ2FwLTJcIixoJiYhaS5kZXNjcmlwdGlvbiYmXCJpdGVtcy1jZW50ZXJcIil9LGYmJmwoKS5jcmVhdGVFbGVtZW50KGwoKS5GcmFnbWVudCxudWxsLGYpLGwoKS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShcInNwYWNlLXktMS41XCIpfSxsKCkuY3JlYXRlRWxlbWVudChcInBcIix7Y2xhc3NOYW1lOm9lKFwidGV4dC10ZXh0LXByaW1hcnkgZm9udC1tZWRpdW0gbS0wXCIsamVbV10sdSYmXCJ0ZXh0LXRleHQtZGlzYWJsZWQgY3Vyc29yLW5vdC1hbGxvd2VkXCIpfSxpLmhlYWRpbmcpLGkuZGVzY3JpcHRpb24mJmwoKS5jcmVhdGVFbGVtZW50KFwicFwiLHtjbGFzc05hbWU6XCJ0ZXh0LXRleHQtdGVydGlhcnkgdGV4dC1zbSBmb250LW5vcm1hbCBsZWFkaW5nLTUgbS0wXCJ9LGkuZGVzY3JpcHRpb24pKSk6bnVsbH0pLFtpXSk7aWYoXCJ0aWxlXCI9PT1ELnN0eWxlKXJldHVybiBsKCkuY3JlYXRlRWxlbWVudChIbyx7aWQ6byxsYWJlbDppLHZhbHVlOnMsZGlzYWJsZWQ6dSxzaXplOld9LGMpO3ZhciBLPWZ1bmN0aW9uKCl7JHx8KEI/XyYmTChzLCFZKTpMKHMpKX07cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KFwibGFiZWxcIix7Y2xhc3NOYW1lOm9lKFwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIHJlbGF0aXZlIGN1cnNvci1wb2ludGVyIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMFwiLCEhaSYmXCJpdGVtcy1zdGFydCBqdXN0aWZ5LWJldHdlZW5cIixUJiZcIm1pbi13LVsxODBweF1cIix4JiZcImJvcmRlciBib3JkZXItYm9yZGVyLXN1YnRsZSBib3JkZXItc29saWQgcm91bmRlZC1tZCBzaGFkb3ctc20gaG92ZXI6cmluZy0yIGhvdmVyOnJpbmctYm9yZGVyLWludGVyYWN0aXZlXCIsUyYmeCYmWSYmXCJyaW5nLTIgcmluZy1ib3JkZXItaW50ZXJhY3RpdmVcIixcInNtXCI9PT1XP1wicHgtMyBweS0zXCI6XCJweC00IHB5LTRcIixcInByLTEyXCIsJCYmXCJjdXJzb3Itbm90LWFsbG93ZWQgb3BhY2l0eS00MFwiLFIpLGh0bWxGb3I6VSxvbkNsaWNrOkt9LCEhaSYmbCgpLmNyZWF0ZUVsZW1lbnQoXCJsYWJlbFwiLHtjbGFzc05hbWU6b2UoXCJjdXJzb3ItcG9pbnRlclwiLCQmJlwiY3Vyc29yLW5vdC1hbGxvd2VkXCIpLGh0bWxGb3I6VX0sSCgpKSwhIU8mJmwoKS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImFic29sdXRlIG1yLTAuNSBib3R0b20tMS41IHJpZ2h0LTNcIn0sbCgpLmNyZWF0ZUVsZW1lbnQoRG8se2Fycm93OiEwLHRyaWdnZXJzOltcImhvdmVyXCIsXCJmb2N1c1wiXSxwbGFjZW1lbnQ6XCJ0b3BcIix0aXRsZTpudWxsPT1PP3ZvaWQgMDpPLmhlYWRpbmcsY29udGVudDpudWxsPT1PP3ZvaWQgMDpPLmRlc2NyaXB0aW9ufSxsKCkuY3JlYXRlRWxlbWVudChSZSx7Y2xhc3NOYW1lOm9lKFwidGV4dC10ZXh0LXByaW1hcnlcIixudWxsPT09KG49QWVbV10pfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLmluZm8pfSkpKSxsKCkuY3JlYXRlRWxlbWVudChcImxhYmVsXCIse2NsYXNzTmFtZTpvZShcImFic29sdXRlIG1yLTAuNSByaWdodC0zIGZsZXggaXRlbXMtY2VudGVyIGN1cnNvci1wb2ludGVyIHJvdW5kZWQtZnVsbCBnYXAtMlwiLHYmJlwibGVmdC0wXCIsJCYmXCJjdXJzb3Itbm90LWFsbG93ZWRcIixoJiZcIm1yLTNcIiksb25DbGljazpLfSwhIUUmJkUsIWcmJihfP2woKS5jcmVhdGVFbGVtZW50KGJlLHtkZWZhdWx0VmFsdWU6ITEsc2l6ZTpcIm1kXCI9PT1XP1wibGdcIjpcInNtXCIsb25DaGFuZ2U6ZnVuY3Rpb24oKXtCP0wocywhWSk6TChzKX0sY2hlY2tlZDpZfSk6bCgpLmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2NsYXNzTmFtZTpcInJlbGF0aXZlIHAtMC41XCJ9LGwoKS5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIixJbyh7cmVmOnQsaWQ6VSx0eXBlOkI/XCJjaGVja2JveFwiOlwicmFkaW9cIixjbGFzc05hbWU6b2UoXCJwZWVyIGZsZXggcmVsYXRpdmUgY3Vyc29yLXBvaW50ZXIgYXBwZWFyYW5jZS1ub25lIHRyYW5zaXRpb24tYWxsIG0tMCBiZWZvcmU6Y29udGVudC1bJyddIGNoZWNrZWQ6YmVmb3JlOmNvbnRlbnQtWycnXSBjaGVja2VkOmJlZm9yZTpoaWRkZW4gYmVmb3JlOmhpZGRlbiAhYm9yZGVyLTEuNSBib3JkZXItc29saWRcIiwhQiYmXCJyb3VuZGVkLWZ1bGxcIixEZVtWXS5jaGVja2JveCxBZVtXXS5jaGVja2JveCwkJiZcImRpc2FibGVkOmJnLXdoaXRlIGNoZWNrZWQ6ZGlzYWJsZWQ6Ymctd2hpdGUgZGlzYWJsZWQ6Ym9yZGVyLWJvcmRlci1kaXNhYmxlZCBjaGVja2VkOmRpc2FibGVkOmJvcmRlci1ib3JkZXItZGlzYWJsZWQgY3Vyc29yLW5vdC1hbGxvd2VkXCIpLG5hbWU6aix2YWx1ZTpzLG9uQ2hhbmdlOmZ1bmN0aW9uKGUpe3JldHVybiBMKGUudGFyZ2V0LnZhbHVlKX0sY2hlY2tlZDpZLGRpc2FibGVkOiR9LE0pKSxsKCkuY3JlYXRlRWxlbWVudChcInNwYW5cIix7Y2xhc3NOYW1lOm9lKFwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGFic29sdXRlIHRvcC0yLzQgbGVmdC0yLzQgLXRyYW5zbGF0ZS15LTIvNCAtdHJhbnNsYXRlLXgtMi80IHRleHQtd2hpdGUgb3BhY2l0eS0wIHRyYW5zaXRpb24tb3BhY2l0eSBwZWVyLWNoZWNrZWQ6b3BhY2l0eS0xMDBcIixEZVtWXS5pY29uLCQmJlwicGVlci1kaXNhYmxlZDp0ZXh0LWJvcmRlci1kaXNhYmxlZCBjdXJzb3Itbm90LWFsbG93ZWRcIil9LEI/bCgpLmNyZWF0ZUVsZW1lbnQoQ2Use2NsYXNzTmFtZTpcInNtXCI9PT1XP1wic2l6ZS0zXCI6XCJzaXplLTRcIn0pOmwoKS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShcInJvdW5kZWQtZnVsbCBiZy1jdXJyZW50XCIsXCJzbVwiPT09VyYmXCJtdC1bMC41cHhdXCIsbnVsbD09PShyPUFlW1ddKXx8dm9pZCAwPT09cj92b2lkIDA6ci5pY29uKX0pKSkpKSl9LFlvPSgwLGEuZm9yd2FyZFJlZikoJG8pO1lvLmRpc3BsYXlOYW1lPVwiUmFkaW9CdXR0b24uQnV0dG9uXCI7dmFyIEhvPWZ1bmN0aW9uKGUpe3ZhciB0PWUuaWQsbj1lLmNoaWxkcmVuLHI9ZS52YWx1ZSxvPWUuZGlzYWJsZWQsaT1lLnNpemUscz12b2lkIDA9PT1pP1wibWRcIjppLGM9Rm8oZSxBbyksdT1WbygpfHx7fSxkPXUubmFtZSxmPXUudmFsdWUsbT11LmJ5LGg9dS5vbkNoYW5nZSxwPXUuZGlzYWJsZUFsbCxnPXUuY2hlY2tlZCx5PSgwLGEudXNlTWVtbykoKGZ1bmN0aW9uKCl7cmV0dXJuIHR8fFwicmFkaW8tYnV0dG9uLVwiLmNvbmNhdChmZSgpKX0pLFt0XSksdj0oMCxhLnVzZU1lbW8pKChmdW5jdGlvbigpe3JldHVybiBwfHxvfSksW3Asb10pLGI9KDAsYS51c2VNZW1vKSgoZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09Zz9nOkxvKGYpPT09TG8ocikmJihcInN0cmluZ1wiPT10eXBlb2YgZj9mPT09cjpBcnJheS5pc0FycmF5KGYpP2YuaW5jbHVkZXMocik6ZlttXT09PXJbbV0pfSksW2YscixnLG1dKSx4PW9lKFwiYmctYmFja2dyb3VuZC1wcmltYXJ5IHRleHQtcHJpbWFyeSBjdXJzb3ItcG9pbnRlciBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiLFwiaG92ZXI6YmctYnV0dG9uLXRlcnRpYXJ5LWhvdmVyXCIsXCJmb2N1czpvdXRsaW5lLW5vbmVcIix2P1widGV4dC10ZXh0LWRpc2FibGVkIGN1cnNvci1ub3QtYWxsb3dlZFwiOlwiXCIsSWVbc10sXCJib3JkZXItMCBib3JkZXItciBib3JkZXItYm9yZGVyLXN1YnRsZSBib3JkZXItc29saWRcIik7cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KGwoKS5GcmFnbWVudCxudWxsLGwoKS5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsSW8oe3R5cGU6XCJidXR0b25cIixpZDp5LGNsYXNzTmFtZTpvZSh4LFwiZmlyc3Q6cm91bmRlZC10bCBmaXJzdDpyb3VuZGVkLWJsIGZpcnN0OmJvcmRlci0wIGZpcnN0OmJvcmRlci1yIGZpcnN0OmJvcmRlci1ib3JkZXItc3VidGxlIGxhc3Q6cm91bmRlZC10ciBsYXN0OnJvdW5kZWQtYnIgbGFzdDpib3JkZXItMFwiLGImJlwiYmctYnV0dG9uLWRpc2FibGVkXCIpLG9uQ2xpY2s6ZnVuY3Rpb24oKXtoJiZoKHIpfSxkaXNhYmxlZDp2fSxjKSxsKCkuY3JlYXRlRWxlbWVudChcImlucHV0XCIse3R5cGU6XCJoaWRkZW5cIix2YWx1ZTpyLG5hbWU6ZCxjaGVja2VkOmIsb25DaGFuZ2U6aH0pLG4pKX0sS289T2JqZWN0LmFzc2lnbihZbyx7R3JvdXA6VW8sQnV0dG9uOllvfSk7Y29uc3QgcW89a2UoXCJYXCIsW1tcInBhdGhcIix7ZDpcIk0xOCA2IDYgMThcIixrZXk6XCIxYmw1ZjhcIn1dLFtcInBhdGhcIix7ZDpcIm02IDYgMTIgMTJcIixrZXk6XCJkOGJrNnZcIn1dXSk7dmFyIEdvPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5sYWJlbCxyPXZvaWQgMD09PW4/XCJcIjpuLG89ZS5zaXplLGk9dm9pZCAwPT09bz9cInNtXCI6byxzPWUuY2xhc3NOYW1lLGE9dm9pZCAwPT09cz9cIlwiOnMsbD1lLnR5cGUsYz12b2lkIDA9PT1sP1wicGlsbFwiOmwsdT1lLnZhcmlhbnQsZD12b2lkIDA9PT11P1wibmV1dHJhbFwiOnUsZj1lLmljb24sbT12b2lkIDA9PT1mP251bGw6ZixoPWUuZGlzYWJsZWQscD12b2lkIDAhPT1oJiZoLGc9ZS5vbkNsb3NlLHk9dm9pZCAwPT09Zz9mdW5jdGlvbigpe306Zyx2PWUuY2xvc2FibGUsYj12b2lkIDAhPT12JiZ2LHg9ZS5vbk1vdXNlRG93bix3PXZvaWQgMD09PXg/ZnVuY3Rpb24oKXt9OngsUz17bmV1dHJhbDpcImJnLWJhZGdlLWJhY2tncm91bmQtZ3JheSBob3ZlcjpiZy1iYWRnZS1ob3Zlci1ncmF5IHRleHQtYmFkZ2UtY29sb3ItZ3JheSBib3JkZXItYmFkZ2UtYm9yZGVyLWdyYXlcIixyZWQ6XCJiZy1iYWRnZS1iYWNrZ3JvdW5kLXJlZCBob3ZlcjpiZy1iYWRnZS1ob3Zlci1yZWQgdGV4dC1iYWRnZS1jb2xvci1yZWQgYm9yZGVyLWJhZGdlLWJvcmRlci1yZWRcIix5ZWxsb3c6XCJiZy1iYWRnZS1iYWNrZ3JvdW5kLXllbGxvdyBob3ZlcjpiZy1iYWRnZS1ob3Zlci15ZWxsb3cgdGV4dC1iYWRnZS1jb2xvci15ZWxsb3cgYm9yZGVyLWJhZGdlLWJvcmRlci15ZWxsb3dcIixncmVlbjpcImJnLWJhZGdlLWJhY2tncm91bmQtZ3JlZW4gaG92ZXI6YmctYmFkZ2UtaG92ZXItZ3JlZW4gdGV4dC1iYWRnZS1jb2xvci1ncmVlbiBib3JkZXItYmFkZ2UtYm9yZGVyLWdyZWVuXCIsYmx1ZTpcImJnLWJhZGdlLWJhY2tncm91bmQtc2t5IGhvdmVyOmJnLWJhZGdlLWhvdmVyLXNreSB0ZXh0LWJhZGdlLWNvbG9yLXNreSBib3JkZXItYmFkZ2UtYm9yZGVyLXNreVwiLGludmVyc2U6XCJiZy1iYWNrZ3JvdW5kLWludmVyc2UgaG92ZXI6YmctYmFkZ2UtaG92ZXItaW52ZXJzZSB0ZXh0LXRleHQtaW52ZXJzZSBib3JkZXItYmFja2dyb3VuZC1pbnZlcnNlXCIsZGlzYWJsZWQ6XCJiZy1iYWRnZS1iYWNrZ3JvdW5kLWRpc2FibGVkIGhvdmVyOmJnLWJhZGdlLWhvdmVyLWRpc2FibGVkIHRleHQtYmFkZ2UtY29sb3ItZGlzYWJsZWQgYm9yZGVyLWJhZGdlLWJvcmRlci1kaXNhYmxlZCBkaXNhYmxlZCBjdXJzb3Itbm90LWFsbG93ZWRcIn0saz1cIlwiLEU9XCJncm91cCByZWxhdGl2ZSBqdXN0aWZ5LWNlbnRlciBmbGV4IGl0ZW1zLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiLEM9e3h4czpcIlsmPnN2Z106c2l6ZS0zXCIseHM6XCJbJj5zdmddOnNpemUtM1wiLHNtOlwiWyY+c3ZnXTpzaXplLTNcIixtZDpcIlsmPnN2Z106c2l6ZS00XCIsbGc6XCJbJj5zdmddOnNpemUtNVwifTtyZXR1cm4gcD8oaz1TLmRpc2FibGVkLEUrPVwiIGN1cnNvci1ub3QtYWxsb3dlZCBkaXNhYmxlZFwiKTprPVNbZF0scj9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLHtjbGFzc05hbWU6b2UoXCJmb250LW1lZGl1bSBib3JkZXItYmFkZ2UtYm9yZGVyLWdyYXkgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYm9yZGVyIGJvcmRlci1zb2xpZCBib3gtYm9yZGVyXCIse3h4czpcInB5LTAuNSBweC0wLjUgdGV4dC14cyBoLTRcIix4czpcInB5LTAuNSBweC0xIHRleHQteHMgaC01XCIsc206XCJweS0xIHB4LTEuNSB0ZXh0LXhzIGgtNlwiLG1kOlwicHktMSBweC0xLjUgdGV4dC1zbSBoLTdcIixsZzpcInB5LTEgcHgtMS41IHRleHQtYmFzZSBoLThcIn1baV0se3BpbGw6XCJyb3VuZGVkLWZ1bGxcIixyb3VuZGVkOlwicm91bmRlZFwifVtjXSxcImdhcC0wLjVcIixrLGEpLHJlZjp0fSxtP1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2NsYXNzTmFtZTpvZShcImp1c3RpZnktY2VudGVyIGZsZXggaXRlbXMtY2VudGVyXCIsQ1tpXSl9LG0pOm51bGwsUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIix7Y2xhc3NOYW1lOlwicHgtMVwifSxyKSxiJiZSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLHtjbGFzc05hbWU6b2UoRSxDW2ldKSxvbkNsaWNrOnA/bnVsbDp5LG9uTW91c2VEb3duOncscm9sZTpcImJ1dHRvblwiLHRhYkluZGV4OjB9LFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2NsYXNzTmFtZTpcInNyLW9ubHlcIn0sXCJSZW1vdmUgXCIuY29uY2F0KHIpKSxSZWFjdC5jcmVhdGVFbGVtZW50KHFvLG51bGwpLFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2NsYXNzTmFtZTpcImFic29sdXRlIC1pbnNldC0xXCJ9KSkpOm51bGx9LFhvPSgwLGEuZm9yd2FyZFJlZikoR28pO1hvLmRpc3BsYXlOYW1lPVwiQmFkZ2VcIjt2YXIgWm89WG8sSm89W1wiaWRcIixcImRlZmF1bHRWYWx1ZVwiLFwidmFsdWVcIixcInNpemVcIixcImNsYXNzTmFtZVwiLFwiZGlzYWJsZWRcIixcIm9uQ2hhbmdlXCIsXCJlcnJvclwiLFwib25FcnJvclwiXTtmdW5jdGlvbiBRbygpe3JldHVybiBRbz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LFFvLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBlaShlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9dmFyIHRpPWZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPWUuaWQsaT1lLmRlZmF1bHRWYWx1ZSxzPXZvaWQgMD09PWk/XCJcIjppLGw9ZS52YWx1ZSxjPWUuc2l6ZSx1PXZvaWQgMD09PWM/XCJzbVwiOmMsZD1lLmNsYXNzTmFtZSxmPXZvaWQgMD09PWQ/XCJcIjpkLG09ZS5kaXNhYmxlZCxoPXZvaWQgMCE9PW0mJm0scD1lLm9uQ2hhbmdlLGc9dm9pZCAwPT09cD9mdW5jdGlvbigpe306cCx5PWUuZXJyb3Isdj12b2lkIDAhPT15JiZ5LGI9ZS5vbkVycm9yLHg9dm9pZCAwPT09Yj9mdW5jdGlvbigpe306Yix3PWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmNsdWRlcyhyKSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8aS5sZW5ndGg7cisrKW49aVtyXSx0LmluY2x1ZGVzKG4pfHx7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfShlLEpvKSxTPSgwLGEudXNlTWVtbykoKGZ1bmN0aW9uKCl7cmV0dXJuIG98fFwiaW5wdXQtdGV4dGFyZWEtXCIuY29uY2F0KGZlKCkpfSksW29dKSxrPSgwLGEudXNlTWVtbykoKGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PWx9KSxbbF0pLEU9KG49KDAsYS51c2VTdGF0ZSkocykscj0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG4pfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW4pe3ZhciByLG8saSxzLGE9W10sbD0hMCxjPSExO3RyeXtpZihpPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47bD0hMX1lbHNlIGZvcig7IShsPShyPWkuY2FsbChuKSkuZG9uZSkmJihhLnB1c2goci52YWx1ZSksYS5sZW5ndGghPT10KTtsPSEwKTt9Y2F0Y2goZSl7Yz0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWwmJm51bGwhPW4ucmV0dXJuJiYocz1uLnJldHVybigpLE9iamVjdChzKSE9PXMpKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgb319cmV0dXJuIGF9fShuLHIpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBlaShlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uP0FycmF5LmZyb20oZSk6XCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP2VpKGUsdCk6dm9pZCAwfX0obixyKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxDPUVbMF0sXz1FWzFdLFA9KDAsYS51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKCl7cmV0dXJuIGs/bDpDfSksW2ssbCxDXSksTz1oP1wiaG92ZXI6Ym9yZGVyLWJvcmRlci1kaXNhYmxlZFwiOlwiaG92ZXI6Ym9yZGVyLWJvcmRlci1zdHJvbmdcIixOPXY/XCJmb2N1czpib3JkZXItZm9jdXMtZXJyb3ItYm9yZGVyIGZvY3VzOnJpbmctZmllbGQtY29sb3ItZXJyb3IgYm9yZGVyLWZvY3VzLWVycm9yLWJvcmRlclwiOlwiXCIsVD1oP1wiYm9yZGVyLWJvcmRlci1kaXNhYmxlZCBiZy1maWVsZC1iYWNrZ3JvdW5kLWRpc2FibGVkIGN1cnNvci1ub3QtYWxsb3dlZCB0ZXh0LXRleHQtZGlzYWJsZWRcIjpcIlwiO3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwidGV4dGFyZWFcIixRbyh7cmVmOnQsaWQ6UyxjbGFzc05hbWU6b2UoXCJweS0yIHJvdW5kZWQgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItYm9yZGVyLXN1YnRsZSBiZy1maWVsZC1zZWNvbmRhcnktYmFja2dyb3VuZCBmb250LW5vcm1hbCBwbGFjZWhvbGRlci10ZXh0LXRlcnRpYXJ5IHRleHQtdGV4dC1wcmltYXJ5IGZvY3VzOm91dGxpbmUtbm9uZVwiLFQse3NtOlwicHgtMyByb3VuZGVkIHRleHQteHNcIixtZDpcInB4LTMgcm91bmRlZC1tZCB0ZXh0LXNtXCIsbGc6XCJweC00IHJvdW5kZWQtbGcgdGV4dC1iYXNlXCJ9W3VdLFwiZm9jdXM6Ym9yZGVyLWZvY3VzLWJvcmRlciBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy10b2dnbGUtb24gZm9jdXM6cmluZy1vZmZzZXQtMlwiLE8sTixmKSxkaXNhYmxlZDpoLG9uQ2hhbmdlOmZ1bmN0aW9uKGUpe2lmKCFoKXt2YXIgdD1lLnRhcmdldC52YWx1ZTtrfHxfKHQpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGcmJmcodCl9fSxvbkludmFsaWQ6eCx2YWx1ZTpQKCl9LHcpKX0sbmk9KDAsYS5mb3J3YXJkUmVmKSh0aSk7bmkuZGlzcGxheU5hbWU9XCJUZXh0QXJlYVwiO3ZhciByaT1uaSxvaT1mdW5jdGlvbihlKXt2YXIgdCxuLHIsbyxpPWUudmFyaWFudCxzPXZvaWQgMD09PWk/XCJwcmltYXJ5XCI6aSxhPWUuc2l6ZSxsPXZvaWQgMD09PWE/XCJtZFwiOmEsYz1lLmJvcmRlcix1PXZvaWQgMD09PWM/XCJzdWJ0bGVcIjpjLGQ9ZS51cmwsZj12b2lkIDA9PT1kP1wiXCI6ZCxtPWUuY2hpbGRyZW4saD1lLmNsYXNzTmFtZSxwPW51bGw9PT0odD17d2hpdGU6XCJ0ZXh0LXRleHQtcHJpbWFyeSBiZy1iYWNrZ3JvdW5kLXByaW1hcnlcIixncmF5OlwidGV4dC10ZXh0LXByaW1hcnkgYmctYmFja2dyb3VuZC1zZWNvbmRhcnlcIixwcmltYXJ5OlwidGV4dC10ZXh0LW9uLWNvbG9yIGJnLWJhY2tncm91bmQtYnJhbmRcIixwcmltYXJ5TGlnaHQ6XCJ0ZXh0LXRleHQtcHJpbWFyeSBiZy1icmFuZC1iYWNrZ3JvdW5kLTUwXCIsZGFyazpcInRleHQtdGV4dC1vbi1jb2xvciBiZy1idXR0b24tc2Vjb25kYXJ5XCJ9KXx8dm9pZCAwPT09dD92b2lkIDA6dFtzXSxnPW51bGw9PT0obj17eHhzOlwic2l6ZS01IFsmPnN2Z106c2l6ZS0zIHRleHQteHNcIix4czpcInNpemUtNiBbJj5zdmddOnNpemUtNCB0ZXh0LXNtXCIsc206XCJzaXplLTggWyY+c3ZnXTpzaXplLTUgdGV4dC1iYXNlXCIsbWQ6XCJzaXplLTEwIFsmPnN2Z106c2l6ZS02IHRleHQtbGdcIixsZzpcInNpemUtMTIgWyY+c3ZnXTpzaXplLTEyIHRleHQtbGdcIn0pfHx2b2lkIDA9PT1uP3ZvaWQgMDpuW2xdLHk9bnVsbD09PShyPXtub25lOlwiXCIsc3VidGxlOlwicmluZy0xIHJpbmctYm9yZGVyLXRyYW5zcGFyZW50LXN1YnRsZVwiLHJpbmc6XCJyaW5nIHJpbmctYm9yZGVyLXN1YnRsZVwifSl8fHZvaWQgMD09PXI/dm9pZCAwOnJbZiYmXCJub25lXCI9PT11P1wic3VidGxlXCI6dV0sdj1mP1wiYmctY292ZXIgYmctY2VudGVyXCI6XCJcIjtyZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6b2UoXCJyb3VuZGVkLWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCIsIWYmJnAsZyx5LHYsaCksc3R5bGU6Zj97YmFja2dyb3VuZEltYWdlOlwidXJsKFwiLmNvbmNhdChmLFwiKVwiKX06e319LG0/XCJzdHJpbmdcIj09dHlwZW9mIG0/bnVsbD09bXx8bnVsbD09PShvPW1bMF0pfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLnRvVXBwZXJDYXNlKCk6bTpudWxsKX07Y29uc3QgaWk9a2UoXCJVcGxvYWRcIixbW1wicGF0aFwiLHtkOlwiTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTRcIixrZXk6XCJpaDduM2hcIn1dLFtcInBvbHlsaW5lXCIse3BvaW50czpcIjE3IDggMTIgMyA3IDhcIixrZXk6XCJ0OGRkOHBcIn1dLFtcImxpbmVcIix7eDE6XCIxMlwiLHgyOlwiMTJcIix5MTpcIjNcIix5MjpcIjE1XCIsa2V5Olwid2lkYnRvXCJ9XV0pO3ZhciBzaT1bXCJpZFwiLFwidHlwZVwiLFwiZGVmYXVsdFZhbHVlXCIsXCJ2YWx1ZVwiLFwic2l6ZVwiLFwiY2xhc3NOYW1lXCIsXCJkaXNhYmxlZFwiLFwib25DaGFuZ2VcIixcImVycm9yXCIsXCJvbkVycm9yXCIsXCJwcmVmaXhcIixcInN1ZmZpeFwiLFwibGFiZWxcIl07ZnVuY3Rpb24gYWkoKXtyZXR1cm4gYWk9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxhaS5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbGkoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG49bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9bil7dmFyIHIsbyxpLHMsYT1bXSxsPSEwLGM9ITE7dHJ5e2lmKGk9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtsPSExfWVsc2UgZm9yKDshKGw9KHI9aS5jYWxsKG4pKS5kb25lKSYmKGEucHVzaChyLnZhbHVlKSxhLmxlbmd0aCE9PXQpO2w9ITApO31jYXRjaChlKXtjPSEwLG89ZX1maW5hbGx5e3RyeXtpZighbCYmbnVsbCE9bi5yZXR1cm4mJihzPW4ucmV0dXJuKCksT2JqZWN0KHMpIT09cykpcmV0dXJufWZpbmFsbHl7aWYoYyl0aHJvdyBvfX1yZXR1cm4gYX19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIGNpKGUsdCk7dmFyIG49e30udG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm5cIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4/QXJyYXkuZnJvbShlKTpcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/Y2koZSx0KTp2b2lkIDB9fShlLHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gY2koZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfXZhciB1aT1mdW5jdGlvbihlLHQpe3ZhciBuPWUuaWQscj1lLnR5cGUsbz12b2lkIDA9PT1yP1widGV4dFwiOnIsaT1lLmRlZmF1bHRWYWx1ZSxzPXZvaWQgMD09PWk/XCJcIjppLGw9ZS52YWx1ZSxjPWUuc2l6ZSx1PXZvaWQgMD09PWM/XCJzbVwiOmMsZD1lLmNsYXNzTmFtZSxmPXZvaWQgMD09PWQ/XCJcIjpkLG09ZS5kaXNhYmxlZCxoPXZvaWQgMCE9PW0mJm0scD1lLm9uQ2hhbmdlLGc9dm9pZCAwPT09cD9mdW5jdGlvbigpe306cCx5PWUuZXJyb3Isdj12b2lkIDAhPT15JiZ5LGI9ZS5vbkVycm9yLHg9dm9pZCAwPT09Yj9mdW5jdGlvbigpe306Yix3PWUucHJlZml4LFM9dm9pZCAwPT09dz9udWxsOncsaz1lLnN1ZmZpeCxFPXZvaWQgMD09PWs/bnVsbDprLEM9ZS5sYWJlbCxfPXZvaWQgMD09PUM/XCJcIjpDLFA9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluY2x1ZGVzKHIpKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLHQuaW5jbHVkZXMobil8fHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsc2kpLE89KDAsYS51c2VSZWYpKG51bGwpLE49KDAsYS51c2VNZW1vKSgoZnVuY3Rpb24oKXtyZXR1cm4gbnx8XCJpbnB1dC1cIi5jb25jYXQobyxcIi1cIikuY29uY2F0KGZlKCkpfSksW25dKSxUPSgwLGEudXNlTWVtbykoKGZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PWx9KSxbbF0pLE09bGkoKDAsYS51c2VTdGF0ZSkocyksMiksUj1NWzBdLEQ9TVsxXSxqPWxpKCgwLGEudXNlU3RhdGUpKG51bGwpLDIpLEE9alswXSxJPWpbMV0sTD0oMCxhLnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24oKXtyZXR1cm4gVD9sOlJ9KSxbVCxsLFJdKSxGPWZ1bmN0aW9uKGUpe3ZhciB0O2h8fChcImZpbGVcIj09PW8/KHQ9ZS50YXJnZXQuZmlsZXMpLmxlbmd0aD4wP0kodFswXS5uYW1lKTpJKG51bGwpOnQ9ZS50YXJnZXQudmFsdWUsVHx8XCJmaWxlXCI9PT1vfHxEKHQpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGcmJmcodCkpfSx6PWZ1bmN0aW9uKCl7SShudWxsKSxPLmN1cnJlbnQmJihPLmN1cnJlbnQudmFsdWU9bnVsbCksZyhudWxsKX0sQj1cImJnLWZpZWxkLXNlY29uZGFyeS1iYWNrZ3JvdW5kIGZvbnQtbm9ybWFsIHBsYWNlaG9sZGVyLXRleHQtdGVydGlhcnkgdGV4dC10ZXh0LXByaW1hcnkgdy1mdWxsIG91dGxpbmUgb3V0bGluZS0xIG91dGxpbmUtYm9yZGVyLXN1YnRsZSBib3JkZXItbm9uZVwiLFc9e3hzOlwicHgtMiBweS0xIHJvdW5kZWRcIixzbTpcInAtMyBweS0yIHJvdW5kZWRcIixtZDpcInAtMy41IHB5LTIuNSByb3VuZGVkLW1kXCIsbGc6XCJwLTQgcHktMyByb3VuZGVkLWxnXCJ9LFY9e3hzOlwidGV4dC14cyBmb250LW1lZGl1bVwiLHNtOlwidGV4dC1zbSBmb250LW1lZGl1bVwiLG1kOlwidGV4dC1zbSBmb250LW1lZGl1bVwiLGxnOlwidGV4dC1iYXNlIGZvbnQtbWVkaXVtXCJ9LFU9e3hzOlwidGV4dC14c1wiLHNtOlwidGV4dC14c1wiLG1kOlwidGV4dC1zbVwiLGxnOlwidGV4dC1iYXNlXCJ9LCQ9e3NtOlM/XCJwbC04XCI6XCJcIixtZDpTP1wicGwtOVwiOlwiXCIsbGc6Uz9cInBsLTEwXCI6XCJcIn0sWT17c206RT9cInByLThcIjpcIlwiLG1kOkU/XCJwci05XCI6XCJcIixsZzpFP1wicHItMTBcIjpcIlwifSxIPWg/XCJob3ZlcjpvdXRsaW5lLWJvcmRlci1kaXNhYmxlZFwiOlwiaG92ZXI6b3V0bGluZS1ib3JkZXItc3Ryb25nXCIsSz1cImZvY3VzOm91dGxpbmUtZm9jdXMtYm9yZGVyIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLXRvZ2dsZS1vbiBmb2N1czpyaW5nLW9mZnNldC0yXCIscT12P1wiZm9jdXM6b3V0bGluZS1mb2N1cy1lcnJvci1ib3JkZXIgZm9jdXM6cmluZy1maWVsZC1jb2xvci1lcnJvciBvdXRsaW5lLWZvY3VzLWVycm9yLWJvcmRlclwiOlwiXCIsRz12P1wiZm9jdXM6b3V0bGluZS1mb2N1cy1lcnJvci1ib3JkZXIgZm9jdXM6cmluZy1maWVsZC1jb2xvci1lcnJvciBvdXRsaW5lLWZvY3VzLWVycm9yLWJvcmRlclwiOlwiXCIsWD1oP1wib3V0bGluZS1ib3JkZXItZGlzYWJsZWQgYmctZmllbGQtYmFja2dyb3VuZC1kaXNhYmxlZCBjdXJzb3Itbm90LWFsbG93ZWQgdGV4dC10ZXh0LWRpc2FibGVkXCI6XCJcIixaPWg/XCJvdXRsaW5lLWJvcmRlci1kaXNhYmxlZCBjdXJzb3Itbm90LWFsbG93ZWQgdGV4dC10ZXh0LWRpc2FibGVkIGZpbGU6dGV4dC10ZXh0LXRlcnRpYXJ5XCI6XCJcIixKPVwiZm9udC1ub3JtYWwgcGxhY2Vob2xkZXItdGV4dC10ZXJ0aWFyeSB0ZXh0LXRleHQtcHJpbWFyeSBwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGluc2V0LXktMCBmbGV4IGZsZXgtMSBpdGVtcy1jZW50ZXIgWyY+c3ZnXTpoLTQgWyY+c3ZnXTp3LTRcIixRPWg/XCJmb250LW5vcm1hbCBwbGFjZWhvbGRlci10ZXh0LXRlcnRpYXJ5IHRleHQtaWNvbi1kaXNhYmxlZCBwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGluc2V0LXktMCBmbGV4IGZsZXgtMSBpdGVtcy1jZW50ZXJcIjpcImZvbnQtbm9ybWFsIHBsYWNlaG9sZGVyLXRleHQtdGVydGlhcnkgdGV4dC1maWVsZC1wbGFjZWhvbGRlciBwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGluc2V0LXktMCBmbGV4IGZsZXgtMSBpdGVtcy1jZW50ZXJcIixlZT17eHM6XCJbJj5zdmddOnNpemUtNFwiLHNtOlwiWyY+c3ZnXTpzaXplLTRcIixtZDpcIlsmPnN2Z106c2l6ZS01XCIsbGc6XCJbJj5zdmddOnNpemUtNlwifSx0ZT1BP1wiZmlsZTpib3JkZXItMCBmaWxlOmJnLXRyYW5zcGFyZW50IHByLTEwXCI6XCJ0ZXh0LXRleHQtdGVydGlhcnkgZmlsZTpib3JkZXItMCBmaWxlOmJnLXRyYW5zcGFyZW50IHByLTEwXCI7cmV0dXJuXCJmaWxlXCI9PT1vP1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZmxleCBmbGV4LWNvbCBpdGVtcy1zdGFydCBnYXAtMS41IFsmXypdOmJveC1ib3JkZXIgYm94LWJvcmRlclwifSxSZWFjdC5jcmVhdGVFbGVtZW50KFwibGFiZWxcIix7Y2xhc3NOYW1lOm9lKFZbdV0sXCJ0ZXh0LWZpZWxkLWxhYmVsXCIpLGh0bWxGb3I6Tn0sXyksUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6b2UoXCJ3LWZ1bGwgcmVsYXRpdmUgZmxleCBmb2N1cy13aXRoaW46ei0xMFwiLGYpfSxSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIixhaSh7cmVmOnQsaWQ6Tix0eXBlOlwiZmlsZVwiLGNsYXNzTmFtZTpvZShCLFosV1t1XSxVW3VdLEssSCxHLHRlKSxkaXNhYmxlZDpoLG9uQ2hhbmdlOkYsb25JbnZhbGlkOnh9LFApKSxSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShRLFwicmlnaHQtMCBwci0zXCIsZWVbdV0pfSxSZWFjdC5jcmVhdGVFbGVtZW50KGlpLG51bGwpKSkpOlJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZmxleCBmbGV4LWNvbCBpdGVtcy1zdGFydCBnYXAtMS41IFsmXypdOmJveC1ib3JkZXIgYm94LWJvcmRlclwifSxSZWFjdC5jcmVhdGVFbGVtZW50KFwibGFiZWxcIix7Y2xhc3NOYW1lOm9lKFZbdV0sXCJ0ZXh0LWZpZWxkLWxhYmVsXCIpLGh0bWxGb3I6Tn0sXyksUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6b2UoXCJ3LWZ1bGwgcmVsYXRpdmUgZmxleCBmb2N1cy13aXRoaW46ei0xMFwiLGYpfSxTP1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKEosXCJsZWZ0LTAgcGwtM1wiLFVbdV0pfSxTKTpudWxsLFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLGFpKHtyZWY6TyxpZDpOLHR5cGU6byxjbGFzc05hbWU6b2UoQixYLFdbdV0sVVt1XSwkW3VdLFlbdV0sSyxILHEpLGRpc2FibGVkOmgsb25DaGFuZ2U6RixvbkludmFsaWQ6eCx2YWx1ZTpMKCl9LFApKSxcImZpbGVcIj09PW8/QT9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShRLFwicmlnaHQtMCBwci0zIGN1cnNvci1wb2ludGVyIHotMjAgcG9pbnRlci1ldmVudHMtYXV0b1wiLGVlW3VdKSxvbkNsaWNrOnoscm9sZTpcImJ1dHRvblwiLHRhYkluZGV4OjAsb25LZXlEb3duOmZ1bmN0aW9uKGUpe1wiRW50ZXJcIiE9PWUua2V5JiZcIiBcIiE9PWUua2V5fHx6KCl9fSxSZWFjdC5jcmVhdGVFbGVtZW50KHFvLG51bGwpKTpSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShRLFwicmlnaHQtMCBwci0zXCIsZWVbdV0pfSxSZWFjdC5jcmVhdGVFbGVtZW50KGlpLG51bGwpKTpFP1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKEosXCJyaWdodC0wIHByLTNcIixVW3VdKX0sRSk6bnVsbCkpfSxkaT0oMCxhLmZvcndhcmRSZWYpKHVpKTtkaS5kaXNwbGF5TmFtZT1cIklucHV0XCI7dmFyIGZpPWRpLG1pPVtcImNoaWxkcmVuXCIsXCJ0YWdcIixcInNpemVcIixcImNsYXNzTmFtZVwiLFwidmFyaWFudFwiLFwicmVxdWlyZWRcIl07ZnVuY3Rpb24gaGkoKXtyZXR1cm4gaGk9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxoaS5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIHBpPSgwLGEuZm9yd2FyZFJlZikoKGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5jaGlsZHJlbixyPXZvaWQgMD09PW4/bnVsbDpuLG89ZS50YWcsaT12b2lkIDA9PT1vP1wibGFiZWxcIjpvLHM9ZS5zaXplLGE9dm9pZCAwPT09cz9cInNtXCI6cyxjPWUuY2xhc3NOYW1lLHU9dm9pZCAwPT09Yz9cIlwiOmMsZD1lLnZhcmlhbnQsZj12b2lkIDA9PT1kP1wibmV1dHJhbFwiOmQsbT1lLnJlcXVpcmVkLGg9dm9pZCAwIT09bSYmbSxwPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmNsdWRlcyhyKSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8aS5sZW5ndGg7cisrKW49aVtyXSx0LmluY2x1ZGVzKG4pfHx7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfShlLG1pKTtpZighcilyZXR1cm4gbnVsbDt2YXIgZz1cIlwiO2gmJihnPVwiYWZ0ZXI6Y29udGVudC1bJyonXSBhZnRlcjp0ZXh0LWZpZWxkLXJlcXVpcmVkIGFmdGVyOm1sLTAuNVwiKTt2YXIgeT1pO3JldHVybiBsKCkuY3JlYXRlRWxlbWVudCh5LGhpKHtyZWY6dCxjbGFzc05hbWU6b2UoXCJmb250LW1lZGl1bSB0ZXh0LWZpZWxkLWxhYmVsIGZsZXggaXRlbXMtY2VudGVyIGdhcC0wLjVcIix7eHM6XCJ0ZXh0LXhzIFsmPipdOnRleHQteHMgWyY+c3ZnXTpoLTMgWyY+c3ZnXTp3LTNcIixzbTpcInRleHQtc20gWyY+Kl06dGV4dC1zbSBbJj5zdmddOmgtNCBbJj5zdmddOnctNFwiLG1kOlwidGV4dC1iYXNlIFsmPipdOnRleHQtYmFzZSBbJj5zdmddOmgtNSBbJj5zdmddOnctNVwifVthXSx7bmV1dHJhbDpcInRleHQtZmllbGQtbGFiZWwgWyY+Kl06dGV4dC1maWVsZC1sYWJlbFwiLGhlbHA6XCJ0ZXh0LWZpZWxkLWhlbHBlciBbJj4qXTp0ZXh0LWZpZWxkLWhlbHBlclwiLGVycm9yOlwidGV4dC1zdXBwb3J0LWVycm9yIFsmPipdOnRleHQtc3VwcG9ydC1lcnJvclwiLGRpc2FibGVkOlwidGV4dC1maWVsZC1jb2xvci1kaXNhYmxlZCBkaXNhYmxlZCBjdXJzb3Itbm90LWFsbG93ZWQgWyY+Kl06dGV4dC1maWVsZC1jb2xvci1kaXNhYmxlZFwifVtmXSxnLHUpfSxwKSxyKX0pKSxnaT1waSx5aT1mdW5jdGlvbihlKXt2YXIgdD1lLnRpdGxlLG49dm9pZCAwPT09dD9udWxsOnQscj1lLmRlc2NyaXB0aW9uLG89dm9pZCAwPT09cj9udWxsOnIsaT1lLmljb24scz12b2lkIDA9PT1pP251bGw6aSxhPWUuaWNvblBvc2l0aW9uLGw9dm9pZCAwPT09YT9cInJpZ2h0XCI6YSxjPWUudGFnLHU9dm9pZCAwPT09Yz9cImgyXCI6YyxkPWUuc2l6ZSxmPXZvaWQgMD09PWQ/XCJzbVwiOmQsbT1lLmNsYXNzTmFtZSxoPXZvaWQgMD09PW0/XCJcIjptLHA9e3hzOlwiZ2FwLTEgWyY+c3ZnXTpzaXplLTMuNVwiLHNtOlwiZ2FwLTEgWyY+c3ZnXTpzaXplLTRcIixtZDpcImdhcC0xLjUgWyY+c3ZnXTpzaXplLTVcIixsZzpcImdhcC0xLjUgWyY+c3ZnXTpzaXplLTVcIn07aWYoIW4pcmV0dXJuIG51bGw7dmFyIGc9ZnVuY3Rpb24oKXt2YXIgZT11O3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KGUse2NsYXNzTmFtZTpvZShcImZvbnQtc2VtaWJvbGQgcC0wIG0tMFwiLHt4czpcInRleHQtYmFzZSBbJj4qXTp0ZXh0LWJhc2UgZ2FwLTFcIixzbTpcInRleHQtbGcgWyY+Kl06dGV4dC1sZyBnYXAtMVwiLG1kOlwidGV4dC14bCBbJj4qXTp0ZXh0LXhsIGdhcC0xLjVcIixsZzpcInRleHQtMnhsIFsmPipdOnRleHQtMnhsIGdhcC0xLjVcIn1bZl0pfSxuKX07cmV0dXJuIG8/UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6aH0sUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLG51bGwscyYmXCJsZWZ0XCI9PT1sJiZSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShcImZsZXggaXRlbXMtY2VudGVyXCIscFtmXSl9LHMsZygpKSxzJiZcInJpZ2h0XCI9PT1sJiZSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShcImZsZXggaXRlbXMtY2VudGVyXCIscFtmXSl9LGcoKSxzKSwhcyYmZygpKSxSZWFjdC5jcmVhdGVFbGVtZW50KFwicFwiLHtjbGFzc05hbWU6b2UoXCJ0ZXh0LXRleHQtc2Vjb25kYXJ5IGZvbnQtbm9ybWFsIG15LTBcIix7eHM6XCJ0ZXh0LXNtXCIsc206XCJ0ZXh0LXNtXCIsbWQ6XCJ0ZXh0LWJhc2VcIixsZzpcInRleHQtYmFzZVwifVtmXSl9LG8pKTpSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpofSxzJiZcImxlZnRcIj09PWwmJlJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKFwiZmxleCBpdGVtcy1jZW50ZXJcIixwW2ZdKX0scyxnKCkpLHMmJlwicmlnaHRcIj09PWwmJlJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKFwiZmxleCBpdGVtcy1jZW50ZXJcIixwW2ZdKX0sZygpLHMpLCFzJiZnKCkpfTtjb25zdCB2aT1rZShcIkxvYWRlckNpcmNsZVwiLFtbXCJwYXRoXCIse2Q6XCJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTZcIixrZXk6XCIxM3phbGRcIn1dXSk7dmFyIGJpPWZ1bmN0aW9uKGUpe3ZhciB0LG4scj1lLnZhcmlhbnQsbz12b2lkIDA9PT1yP1wicHJpbWFyeVwiOnIsaT1lLnNpemUscz12b2lkIDA9PT1pP1wibWRcIjppLGE9ZS5pY29uLGw9dm9pZCAwPT09YT9udWxsOmEsYz1lLmNsYXNzTmFtZSx1PXZvaWQgMD09PWM/XCJcIjpjLGQ9bnVsbD09PSh0PXtwcmltYXJ5OlwidGV4dC1icmFuZC1wcmltYXJ5LTYwMCBiZy1iYWNrZ3JvdW5kLXByaW1hcnlcIixzZWNvbmRhcnk6XCJ0ZXh0LWJhY2tncm91bmQtcHJpbWFyeSBiZy1icmFuZC1wcmltYXJ5LTYwMFwifSl8fHZvaWQgMD09PXQ/dm9pZCAwOnRbb10sZj1udWxsPT09KG49e3NtOlwiWyY+c3ZnXTpoLTQgWyY+c3ZnXTp3LTRcIixtZDpcIlsmPnN2Z106aC01IFsmPnN2Z106dy01XCIsbGc6XCJbJj5zdmddOmgtNiBbJj5zdmddOnctNlwiLHhsOlwiWyY+c3ZnXTpoLTggWyY+c3ZnXTp3LThcIn0pfHx2b2lkIDA9PT1uP3ZvaWQgMDpuW3NdO3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLHtjbGFzc05hbWU6b2UoXCJmbGV4XCIsZixkLHUpfSxsfHxSZWFjdC5jcmVhdGVFbGVtZW50KHZpLHtjbGFzc05hbWU6XCJhbmltYXRlLXNwaW5cIn0pKX0seGk9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wcm9ncmVzcyxuPXZvaWQgMD09PXQ/MDp0LHI9ZS5zcGVlZCxvPXZvaWQgMD09PXI/MjAwOnIsaT1lLmNsYXNzTmFtZSxzPXZvaWQgMD09PWk/XCJcIjppO2lmKCFuKXJldHVybiBudWxsO3ZhciBhPW47bjwwJiYoYT0wKSxuPjEwMCYmKGE9MTAwKTt2YXIgbD1cInRyYW5zbGF0ZVgoLVwiLmNvbmNhdCgxMDAtYSxcIiUpXCIpLGM9XCJoLTIgcm91bmRlZC1mdWxsIGJnLWJhY2tncm91bmQtYnJhbmQgYWJzb2x1dGUgbGVmdC0wIHRvcC0wIHctZnVsbCBib3R0b20tMCBvcmlnaW4tbGVmdCB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi1cIi5jb25jYXQobyxcIiBlYXNlLWxpbmVhclwiKTtyZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6b2UoXCJoLTIgcm91bmRlZC1mdWxsIGJnLW1pc2MtcHJvZ3Jlc3MtYmFja2dyb3VuZCBvdmVyZmxvdy1oaWRkZW4gcmVsYXRpdmVcIixzKSxyb2xlOlwicHJvZ3Jlc3NiYXJcIixcImFyaWEtdmFsdWVub3dcIjphLFwiYXJpYS12YWx1ZW1pblwiOlwiMFwiLFwiYXJpYS12YWx1ZW1heFwiOlwiMTAwXCJ9LFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOmMsc3R5bGU6e3RyYW5zZm9ybTpsfX0pKX0sd2k9W1wic2x1Z1wiLFwidGV4dFwiLFwiaWNvblwiLFwiY2xhc3NOYW1lXCIsXCJkaXNhYmxlZFwiLFwiaXNGaXJzdENoaWxkXCIsXCJpc0xhc3RDaGlsZFwiXTtmdW5jdGlvbiBTaSgpe3JldHVybiBTaT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LFNpLmFwcGx5KG51bGwsYXJndW1lbnRzKX12YXIga2k9KDAsYS5jcmVhdGVDb250ZXh0KSgpLEVpPWZ1bmN0aW9uKGUsdCl7dmFyIG49KDAsYS51c2VDb250ZXh0KShraSkscj1lLnNsdWcsbz1lLnRleHQsaT1lLmljb24scz1lLmNsYXNzTmFtZSxjPWUuZGlzYWJsZWQsdT12b2lkIDAhPT1jJiZjLGQ9ZS5pc0ZpcnN0Q2hpbGQsZj1lLmlzTGFzdENoaWxkLG09ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluY2x1ZGVzKHIpKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLHQuaW5jbHVkZXMobil8fHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsd2kpO2lmKCFuKXRocm93IG5ldyBFcnJvcihcIkJ1dHRvbiBzaG91bGQgYmUgdXNlZCBpbnNpZGUgQnV0dG9uIEdyb3VwXCIpO3ZhciBoPW4uYWN0aXZlSXRlbSxwPW4ub25DaGFuZ2UsZz1uLnNpemUseT1uLmljb25Qb3NpdGlvbix2PW9lKFwiYmctYmFja2dyb3VuZC1wcmltYXJ5IHRleHQtcHJpbWFyeSBjdXJzb3ItcG9pbnRlciBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiLFwiaG92ZXI6YmctYnV0dG9uLXRlcnRpYXJ5LWhvdmVyXCIsXCJmb2N1czpvdXRsaW5lLW5vbmVcIix1P1widGV4dC10ZXh0LWRpc2FibGVkIGN1cnNvci1ub3QtYWxsb3dlZFwiOlwiXCIse3hzOlwicHktMSBweC0xIHRleHQtc20gZ2FwLTAuNSBbJj5zdmddOnNpemUtNFwiLHNtOlwicHktMiBweC0yIHRleHQtYmFzZSBnYXAtMSBbJj5zdmddOnNpemUtNFwiLG1kOlwicHktMi41IHB4LTIuNSB0ZXh0LWJhc2UgZ2FwLTEgWyY+c3ZnXTpzaXplLTVcIn1bZ10sXCJib3JkZXItMCBib3JkZXItciBib3JkZXItYm9yZGVyLXN1YnRsZSBib3JkZXItc29saWRcIixoPT09cj9cImJnLWJ1dHRvbi1kaXNhYmxlZFwiOlwiXCIsZD9cInJvdW5kZWQtdGwgcm91bmRlZC1ibCBib3JkZXItMCBib3JkZXItciBib3JkZXItYm9yZGVyLXN1YnRsZVwiOlwiXCIsZj9cInJvdW5kZWQtdHIgcm91bmRlZC1iciBib3JkZXItMFwiOlwiXCIscyk7cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsU2koe3JlZjp0LGNsYXNzTmFtZTp2LGRpc2FibGVkOnUsb25DbGljazpmdW5jdGlvbihlKXtwKGUse3NsdWc6cix0ZXh0Om99KX19LG0pLFwibGVmdFwiPT09eSYmaSYmbCgpLmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2NsYXNzTmFtZTpcIm1yLTFcIn0saSksbyxcInJpZ2h0XCI9PT15JiZpJiZsKCkuY3JlYXRlRWxlbWVudChcInNwYW5cIix7Y2xhc3NOYW1lOlwibWwtMVwifSxpKSl9LENpPSgwLGEuZm9yd2FyZFJlZikoRWkpO0NpLmRpc3BsYXlOYW1lPVwiQnV0dG9uXCI7dmFyIF9pPXtHcm91cDpmdW5jdGlvbihlKXt2YXIgdD1lLmNoaWxkcmVuLG49ZS5hY3RpdmVJdGVtLHI9dm9pZCAwPT09bj9udWxsOm4sbz1lLm9uQ2hhbmdlLGk9ZS5jbGFzc05hbWUscz1lLnNpemUsYz12b2lkIDA9PT1zP1wibWRcIjpzLHU9ZS5pY29uUG9zaXRpb24sZD12b2lkIDA9PT11P1wibGVmdFwiOnUsZj0oMCxhLnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24oZSx0KXtvJiZvKHtldmVudDplLHZhbHVlOnR9KX0pLFtvXSksbT1vZShcImJveC1ib3JkZXIgZmxleCBib3JkZXIgYm9yZGVyLWJvcmRlci1zdWJ0bGUgYm9yZGVyLXNvbGlkIHJvdW5kZWRcIixpKTtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm19LGwoKS5jcmVhdGVFbGVtZW50KGtpLlByb3ZpZGVyLHt2YWx1ZTp7YWN0aXZlSXRlbTpyLG9uQ2hhbmdlOmYsc2l6ZTpjLGljb25Qb3NpdGlvbjpkfX0sbCgpLkNoaWxkcmVuLm1hcCh0LChmdW5jdGlvbihlLG4pe2lmKCEoMCxhLmlzVmFsaWRFbGVtZW50KShlKSlyZXR1cm4gbnVsbDt2YXIgcj0wPT09bixvPW49PT1sKCkuQ2hpbGRyZW4uY291bnQodCktMTtyZXR1cm4gbCgpLmNsb25lRWxlbWVudChlLHtpbmRleDpuLGlzRmlyc3RDaGlsZDpyLGlzTGFzdENoaWxkOm99KX0pKSkpfSxCdXR0b246Q2l9LFBpPV9pO2Z1bmN0aW9uIE9pKGUpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiBQcm94eSlyZXR1cm4gZTtjb25zdCB0PW5ldyBNYXA7cmV0dXJuIG5ldyBQcm94eShlLHtnZXQ6KG4scik9Pih0LmhhcyhyKXx8dC5zZXQocixlKHIpKSx0LmdldChyKSl9KX1mdW5jdGlvbiBOaShlKXtyZXR1cm4gbnVsbCE9PWUmJlwib2JqZWN0XCI9PXR5cGVvZiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnN0YXJ0fWNvbnN0IFRpPWU9PkFycmF5LmlzQXJyYXkoZSk7ZnVuY3Rpb24gTWkoZSx0KXtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4hMTtjb25zdCBuPXQubGVuZ3RoO2lmKG4hPT1lLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHI9MDtyPG47cisrKWlmKHRbcl0hPT1lW3JdKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIFJpKGUpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlfHxBcnJheS5pc0FycmF5KGUpfWZ1bmN0aW9uIERpKGUpe2NvbnN0IHQ9W3t9LHt9XTtyZXR1cm4gbnVsbD09ZXx8ZS52YWx1ZXMuZm9yRWFjaCgoKGUsbik9Pnt0WzBdW25dPWUuZ2V0KCksdFsxXVtuXT1lLmdldFZlbG9jaXR5KCl9KSksdH1mdW5jdGlvbiBqaShlLHQsbixyKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0KXtjb25zdFtvLGldPURpKHIpO3Q9dCh2b2lkIDAhPT1uP246ZS5jdXN0b20sbyxpKX1pZihcInN0cmluZ1wiPT10eXBlb2YgdCYmKHQ9ZS52YXJpYW50cyYmZS52YXJpYW50c1t0XSksXCJmdW5jdGlvblwiPT10eXBlb2YgdCl7Y29uc3RbbyxpXT1EaShyKTt0PXQodm9pZCAwIT09bj9uOmUuY3VzdG9tLG8saSl9cmV0dXJuIHR9ZnVuY3Rpb24gQWkoZSx0LG4pe2NvbnN0IHI9ZS5nZXRQcm9wcygpO3JldHVybiBqaShyLHQsdm9pZCAwIT09bj9uOnIuY3VzdG9tLGUpfWNvbnN0IElpPVtcImFuaW1hdGVcIixcIndoaWxlSW5WaWV3XCIsXCJ3aGlsZUZvY3VzXCIsXCJ3aGlsZUhvdmVyXCIsXCJ3aGlsZVRhcFwiLFwid2hpbGVEcmFnXCIsXCJleGl0XCJdLExpPVtcImluaXRpYWxcIiwuLi5JaV0sRmk9W1widHJhbnNmb3JtUGVyc3BlY3RpdmVcIixcInhcIixcInlcIixcInpcIixcInRyYW5zbGF0ZVhcIixcInRyYW5zbGF0ZVlcIixcInRyYW5zbGF0ZVpcIixcInNjYWxlXCIsXCJzY2FsZVhcIixcInNjYWxlWVwiLFwicm90YXRlXCIsXCJyb3RhdGVYXCIsXCJyb3RhdGVZXCIsXCJyb3RhdGVaXCIsXCJza2V3XCIsXCJza2V3WFwiLFwic2tld1lcIl0semk9bmV3IFNldChGaSksQmk9ZT0+MWUzKmUsV2k9ZT0+ZS8xZTMsVmk9e3R5cGU6XCJzcHJpbmdcIixzdGlmZm5lc3M6NTAwLGRhbXBpbmc6MjUscmVzdFNwZWVkOjEwfSxVaT17dHlwZTpcImtleWZyYW1lc1wiLGR1cmF0aW9uOi44fSwkaT17dHlwZTpcImtleWZyYW1lc1wiLGVhc2U6Wy4yNSwuMSwuMzUsMV0sZHVyYXRpb246LjN9LFlpPShlLHtrZXlmcmFtZXM6dH0pPT50Lmxlbmd0aD4yP1VpOnppLmhhcyhlKT9lLnN0YXJ0c1dpdGgoXCJzY2FsZVwiKT97dHlwZTpcInNwcmluZ1wiLHN0aWZmbmVzczo1NTAsZGFtcGluZzowPT09dFsxXT8yKk1hdGguc3FydCg1NTApOjMwLHJlc3RTcGVlZDoxMH06Vmk6JGk7ZnVuY3Rpb24gSGkoZSx0KXtyZXR1cm4gZVt0XXx8ZS5kZWZhdWx0fHxlfWNvbnN0IEtpPWU9Pm51bGwhPT1lO2Z1bmN0aW9uIHFpKGUse3JlcGVhdDp0LHJlcGVhdFR5cGU6bj1cImxvb3BcIn0scil7Y29uc3Qgbz1lLmZpbHRlcihLaSksaT10JiZcImxvb3BcIiE9PW4mJnQlMj09MT8wOm8ubGVuZ3RoLTE7cmV0dXJuIGkmJnZvaWQgMCE9PXI/cjpvW2ldfWNvbnN0IEdpPWU9PmUsWGk9W1wicmVhZFwiLFwicmVzb2x2ZUtleWZyYW1lc1wiLFwidXBkYXRlXCIsXCJwcmVSZW5kZXJcIixcInJlbmRlclwiLFwicG9zdFJlbmRlclwiXTtmdW5jdGlvbiBaaShlLHQpe2xldCBuPSExLHI9ITA7Y29uc3Qgbz17ZGVsdGE6MCx0aW1lc3RhbXA6MCxpc1Byb2Nlc3Npbmc6ITF9LGk9KCk9Pm49ITAscz1YaS5yZWR1Y2UoKChlLHQpPT4oZVt0XT1mdW5jdGlvbihlKXtsZXQgdD1uZXcgU2V0LG49bmV3IFNldCxyPSExLG89ITE7Y29uc3QgaT1uZXcgV2Vha1NldDtsZXQgcz17ZGVsdGE6MCx0aW1lc3RhbXA6MCxpc1Byb2Nlc3Npbmc6ITF9O2Z1bmN0aW9uIGEodCl7aS5oYXModCkmJihsLnNjaGVkdWxlKHQpLGUoKSksdChzKX1jb25zdCBsPXtzY2hlZHVsZTooZSxvPSExLHM9ITEpPT57Y29uc3QgYT1zJiZyP3Q6bjtyZXR1cm4gbyYmaS5hZGQoZSksYS5oYXMoZSl8fGEuYWRkKGUpLGV9LGNhbmNlbDplPT57bi5kZWxldGUoZSksaS5kZWxldGUoZSl9LHByb2Nlc3M6ZT0+e3M9ZSxyP289ITA6KHI9ITAsW3Qsbl09W24sdF0sbi5jbGVhcigpLHQuZm9yRWFjaChhKSxyPSExLG8mJihvPSExLGwucHJvY2VzcyhlKSkpfX07cmV0dXJuIGx9KGkpLGUpKSx7fSkse3JlYWQ6YSxyZXNvbHZlS2V5ZnJhbWVzOmwsdXBkYXRlOmMscHJlUmVuZGVyOnUscmVuZGVyOmQscG9zdFJlbmRlcjpmfT1zLG09KCk9Pntjb25zdCBpPXBlcmZvcm1hbmNlLm5vdygpO249ITEsby5kZWx0YT1yPzFlMy82MDpNYXRoLm1heChNYXRoLm1pbihpLW8udGltZXN0YW1wLDQwKSwxKSxvLnRpbWVzdGFtcD1pLG8uaXNQcm9jZXNzaW5nPSEwLGEucHJvY2VzcyhvKSxsLnByb2Nlc3MobyksYy5wcm9jZXNzKG8pLHUucHJvY2VzcyhvKSxkLnByb2Nlc3MobyksZi5wcm9jZXNzKG8pLG8uaXNQcm9jZXNzaW5nPSExLG4mJnQmJihyPSExLGUobSkpfTtyZXR1cm57c2NoZWR1bGU6WGkucmVkdWNlKCgodCxpKT0+e2NvbnN0IGE9c1tpXTtyZXR1cm4gdFtpXT0odCxpPSExLHM9ITEpPT4obnx8KG49ITAscj0hMCxvLmlzUHJvY2Vzc2luZ3x8ZShtKSksYS5zY2hlZHVsZSh0LGkscykpLHR9KSx7fSksY2FuY2VsOmU9Pntmb3IobGV0IHQ9MDt0PFhpLmxlbmd0aDt0Kyspc1tYaVt0XV0uY2FuY2VsKGUpfSxzdGF0ZTpvLHN0ZXBzOnN9fWNvbnN0e3NjaGVkdWxlOkppLGNhbmNlbDpRaSxzdGF0ZTplcyxzdGVwczp0c309WmkoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT9yZXF1ZXN0QW5pbWF0aW9uRnJhbWU6R2ksITApLG5zPWU9Pi9eMFteLlxcc10rJC91LnRlc3QoZSk7bGV0IHJzPUdpLG9zPUdpO2NvbnN0IGlzPWU9Pi9eLT8oPzpcXGQrKD86XFwuXFxkKyk/fFxcLlxcZCspJC91LnRlc3QoZSksc3M9ZT0+dD0+XCJzdHJpbmdcIj09dHlwZW9mIHQmJnQuc3RhcnRzV2l0aChlKSxhcz1zcyhcIi0tXCIpLGxzPXNzKFwidmFyKC0tXCIpLGNzPWU9PiEhbHMoZSkmJnVzLnRlc3QoZS5zcGxpdChcIi8qXCIpWzBdLnRyaW0oKSksdXM9L3ZhclxcKC0tKD86W1xcdy1dK1xccyp8W1xcdy1dK1xccyosKD86XFxzKlteKShcXHNdfFxccypcXCgoPzpbXikoXXxcXChbXikoXSpcXCkpKlxcKSkrXFxzKilcXCkkL2l1LGRzPS9edmFyXFwoLS0oPzooW1xcdy1dKyl8KFtcXHctXSspLCA/KFthLXpBLVpcXGQgKCklIy4sLV0rKSlcXCkvdTtmdW5jdGlvbiBmcyhlLHQsbj0xKXtvcyhuPD00LGBNYXggQ1NTIHZhcmlhYmxlIGZhbGxiYWNrIGRlcHRoIGRldGVjdGVkIGluIHByb3BlcnR5IFwiJHtlfVwiLiBUaGlzIG1heSBpbmRpY2F0ZSBhIGNpcmN1bGFyIGZhbGxiYWNrIGRlcGVuZGVuY3kuYCk7Y29uc3RbcixvXT1mdW5jdGlvbihlKXtjb25zdCB0PWRzLmV4ZWMoZSk7aWYoIXQpcmV0dXJuWyxdO2NvbnN0WyxuLHIsb109dDtyZXR1cm5bYC0tJHtudWxsIT1uP246cn1gLG9dfShlKTtpZighcilyZXR1cm47Y29uc3QgaT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5nZXRQcm9wZXJ0eVZhbHVlKHIpO2lmKGkpe2NvbnN0IGU9aS50cmltKCk7cmV0dXJuIGlzKGUpP3BhcnNlRmxvYXQoZSk6ZX1yZXR1cm4gY3Mobyk/ZnMobyx0LG4rMSk6b31jb25zdCBtcz0oZSx0LG4pPT5uPnQ/dDpuPGU/ZTpuLGhzPXt0ZXN0OmU9PlwibnVtYmVyXCI9PXR5cGVvZiBlLHBhcnNlOnBhcnNlRmxvYXQsdHJhbnNmb3JtOmU9PmV9LHBzPXsuLi5ocyx0cmFuc2Zvcm06ZT0+bXMoMCwxLGUpfSxncz17Li4uaHMsZGVmYXVsdDoxfSx5cz1lPT5NYXRoLnJvdW5kKDFlNSplKS8xZTUsdnM9Ly0/KD86XFxkKyg/OlxcLlxcZCspP3xcXC5cXGQrKS9ndSxicz0vKD86I1tcXGRhLWZdezMsOH18KD86cmdifGhzbClhP1xcKCg/Oi0/W1xcZC5dKyU/WyxcXHNdKyl7Mn0tP1tcXGQuXSslP1xccyooPzpbLC9dXFxzKik/KD86XFxiXFxkKyg/OlxcLlxcZCspP3xcXC5cXGQrKT8lP1xcKSkvZ2l1LHhzPS9eKD86I1tcXGRhLWZdezMsOH18KD86cmdifGhzbClhP1xcKCg/Oi0/W1xcZC5dKyU/WyxcXHNdKyl7Mn0tP1tcXGQuXSslP1xccyooPzpbLC9dXFxzKik/KD86XFxiXFxkKyg/OlxcLlxcZCspP3xcXC5cXGQrKT8lP1xcKSkkL2l1O2Z1bmN0aW9uIHdzKGUpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlfWNvbnN0IFNzPWU9Pih7dGVzdDp0PT53cyh0KSYmdC5lbmRzV2l0aChlKSYmMT09PXQuc3BsaXQoXCIgXCIpLmxlbmd0aCxwYXJzZTpwYXJzZUZsb2F0LHRyYW5zZm9ybTp0PT5gJHt0fSR7ZX1gfSksa3M9U3MoXCJkZWdcIiksRXM9U3MoXCIlXCIpLENzPVNzKFwicHhcIiksX3M9U3MoXCJ2aFwiKSxQcz1TcyhcInZ3XCIpLE9zPXsuLi5FcyxwYXJzZTplPT5Fcy5wYXJzZShlKS8xMDAsdHJhbnNmb3JtOmU9PkVzLnRyYW5zZm9ybSgxMDAqZSl9LE5zPW5ldyBTZXQoW1wid2lkdGhcIixcImhlaWdodFwiLFwidG9wXCIsXCJsZWZ0XCIsXCJyaWdodFwiLFwiYm90dG9tXCIsXCJ4XCIsXCJ5XCIsXCJ0cmFuc2xhdGVYXCIsXCJ0cmFuc2xhdGVZXCJdKSxUcz1lPT5lPT09aHN8fGU9PT1DcyxNcz0oZSx0KT0+cGFyc2VGbG9hdChlLnNwbGl0KFwiLCBcIilbdF0pLFJzPShlLHQpPT4obix7dHJhbnNmb3JtOnJ9KT0+e2lmKFwibm9uZVwiPT09cnx8IXIpcmV0dXJuIDA7Y29uc3Qgbz1yLm1hdGNoKC9ebWF0cml4M2RcXCgoLispXFwpJC91KTtpZihvKXJldHVybiBNcyhvWzFdLHQpO3tjb25zdCB0PXIubWF0Y2goL15tYXRyaXhcXCgoLispXFwpJC91KTtyZXR1cm4gdD9Ncyh0WzFdLGUpOjB9fSxEcz1uZXcgU2V0KFtcInhcIixcInlcIixcInpcIl0pLGpzPUZpLmZpbHRlcigoZT0+IURzLmhhcyhlKSkpLEFzPXt3aWR0aDooe3g6ZX0se3BhZGRpbmdMZWZ0OnQ9XCIwXCIscGFkZGluZ1JpZ2h0Om49XCIwXCJ9KT0+ZS5tYXgtZS5taW4tcGFyc2VGbG9hdCh0KS1wYXJzZUZsb2F0KG4pLGhlaWdodDooe3k6ZX0se3BhZGRpbmdUb3A6dD1cIjBcIixwYWRkaW5nQm90dG9tOm49XCIwXCJ9KT0+ZS5tYXgtZS5taW4tcGFyc2VGbG9hdCh0KS1wYXJzZUZsb2F0KG4pLHRvcDooZSx7dG9wOnR9KT0+cGFyc2VGbG9hdCh0KSxsZWZ0OihlLHtsZWZ0OnR9KT0+cGFyc2VGbG9hdCh0KSxib3R0b206KHt5OmV9LHt0b3A6dH0pPT5wYXJzZUZsb2F0KHQpKyhlLm1heC1lLm1pbikscmlnaHQ6KHt4OmV9LHtsZWZ0OnR9KT0+cGFyc2VGbG9hdCh0KSsoZS5tYXgtZS5taW4pLHg6UnMoNCwxMykseTpScyg1LDE0KX07QXMudHJhbnNsYXRlWD1Bcy54LEFzLnRyYW5zbGF0ZVk9QXMueTtjb25zdCBJcz1lPT50PT50LnRlc3QoZSksTHM9W2hzLENzLEVzLGtzLFBzLF9zLHt0ZXN0OmU9PlwiYXV0b1wiPT09ZSxwYXJzZTplPT5lfV0sRnM9ZT0+THMuZmluZChJcyhlKSksenM9bmV3IFNldDtsZXQgQnM9ITEsV3M9ITE7ZnVuY3Rpb24gVnMoKXtpZihXcyl7Y29uc3QgZT1BcnJheS5mcm9tKHpzKS5maWx0ZXIoKGU9PmUubmVlZHNNZWFzdXJlbWVudCkpLHQ9bmV3IFNldChlLm1hcCgoZT0+ZS5lbGVtZW50KSkpLG49bmV3IE1hcDt0LmZvckVhY2goKGU9Pntjb25zdCB0PWZ1bmN0aW9uKGUpe2NvbnN0IHQ9W107cmV0dXJuIGpzLmZvckVhY2goKG49Pntjb25zdCByPWUuZ2V0VmFsdWUobik7dm9pZCAwIT09ciYmKHQucHVzaChbbixyLmdldCgpXSksci5zZXQobi5zdGFydHNXaXRoKFwic2NhbGVcIik/MTowKSl9KSksdH0oZSk7dC5sZW5ndGgmJihuLnNldChlLHQpLGUucmVuZGVyKCkpfSkpLGUuZm9yRWFjaCgoZT0+ZS5tZWFzdXJlSW5pdGlhbFN0YXRlKCkpKSx0LmZvckVhY2goKGU9PntlLnJlbmRlcigpO2NvbnN0IHQ9bi5nZXQoZSk7dCYmdC5mb3JFYWNoKCgoW3Qsbl0pPT57dmFyIHI7bnVsbD09PShyPWUuZ2V0VmFsdWUodCkpfHx2b2lkIDA9PT1yfHxyLnNldChuKX0pKX0pKSxlLmZvckVhY2goKGU9PmUubWVhc3VyZUVuZFN0YXRlKCkpKSxlLmZvckVhY2goKGU9Pnt2b2lkIDAhPT1lLnN1c3BlbmRlZFNjcm9sbFkmJndpbmRvdy5zY3JvbGxUbygwLGUuc3VzcGVuZGVkU2Nyb2xsWSl9KSl9V3M9ITEsQnM9ITEsenMuZm9yRWFjaCgoZT0+ZS5jb21wbGV0ZSgpKSksenMuY2xlYXIoKX1mdW5jdGlvbiBVcygpe3pzLmZvckVhY2goKGU9PntlLnJlYWRLZXlmcmFtZXMoKSxlLm5lZWRzTWVhc3VyZW1lbnQmJihXcz0hMCl9KSl9Y2xhc3MgJHN7Y29uc3RydWN0b3IoZSx0LG4scixvLGk9ITEpe3RoaXMuaXNDb21wbGV0ZT0hMSx0aGlzLmlzQXN5bmM9ITEsdGhpcy5uZWVkc01lYXN1cmVtZW50PSExLHRoaXMuaXNTY2hlZHVsZWQ9ITEsdGhpcy51bnJlc29sdmVkS2V5ZnJhbWVzPVsuLi5lXSx0aGlzLm9uQ29tcGxldGU9dCx0aGlzLm5hbWU9bix0aGlzLm1vdGlvblZhbHVlPXIsdGhpcy5lbGVtZW50PW8sdGhpcy5pc0FzeW5jPWl9c2NoZWR1bGVSZXNvbHZlKCl7dGhpcy5pc1NjaGVkdWxlZD0hMCx0aGlzLmlzQXN5bmM/KHpzLmFkZCh0aGlzKSxCc3x8KEJzPSEwLEppLnJlYWQoVXMpLEppLnJlc29sdmVLZXlmcmFtZXMoVnMpKSk6KHRoaXMucmVhZEtleWZyYW1lcygpLHRoaXMuY29tcGxldGUoKSl9cmVhZEtleWZyYW1lcygpe2NvbnN0e3VucmVzb2x2ZWRLZXlmcmFtZXM6ZSxuYW1lOnQsZWxlbWVudDpuLG1vdGlvblZhbHVlOnJ9PXRoaXM7Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDtvKyspaWYobnVsbD09PWVbb10paWYoMD09PW8pe2NvbnN0IG89bnVsbD09cj92b2lkIDA6ci5nZXQoKSxpPWVbZS5sZW5ndGgtMV07aWYodm9pZCAwIT09byllWzBdPW87ZWxzZSBpZihuJiZ0KXtjb25zdCByPW4ucmVhZFZhbHVlKHQsaSk7bnVsbCE9ciYmKGVbMF09cil9dm9pZCAwPT09ZVswXSYmKGVbMF09aSksciYmdm9pZCAwPT09byYmci5zZXQoZVswXSl9ZWxzZSBlW29dPWVbby0xXX1zZXRGaW5hbEtleWZyYW1lKCl7fW1lYXN1cmVJbml0aWFsU3RhdGUoKXt9cmVuZGVyRW5kU3R5bGVzKCl7fW1lYXN1cmVFbmRTdGF0ZSgpe31jb21wbGV0ZSgpe3RoaXMuaXNDb21wbGV0ZT0hMCx0aGlzLm9uQ29tcGxldGUodGhpcy51bnJlc29sdmVkS2V5ZnJhbWVzLHRoaXMuZmluYWxLZXlmcmFtZSksenMuZGVsZXRlKHRoaXMpfWNhbmNlbCgpe3RoaXMuaXNDb21wbGV0ZXx8KHRoaXMuaXNTY2hlZHVsZWQ9ITEsenMuZGVsZXRlKHRoaXMpKX1yZXN1bWUoKXt0aGlzLmlzQ29tcGxldGV8fHRoaXMuc2NoZWR1bGVSZXNvbHZlKCl9fWNvbnN0IFlzPShlLHQpPT5uPT5Cb29sZWFuKHdzKG4pJiZ4cy50ZXN0KG4pJiZuLnN0YXJ0c1dpdGgoZSl8fHQmJiFmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZX0obikmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHQpKSxIcz0oZSx0LG4pPT5yPT57aWYoIXdzKHIpKXJldHVybiByO2NvbnN0W28saSxzLGFdPXIubWF0Y2godnMpO3JldHVybntbZV06cGFyc2VGbG9hdChvKSxbdF06cGFyc2VGbG9hdChpKSxbbl06cGFyc2VGbG9hdChzKSxhbHBoYTp2b2lkIDAhPT1hP3BhcnNlRmxvYXQoYSk6MX19LEtzPXsuLi5ocyx0cmFuc2Zvcm06ZT0+TWF0aC5yb3VuZCgoZT0+bXMoMCwyNTUsZSkpKGUpKX0scXM9e3Rlc3Q6WXMoXCJyZ2JcIixcInJlZFwiKSxwYXJzZTpIcyhcInJlZFwiLFwiZ3JlZW5cIixcImJsdWVcIiksdHJhbnNmb3JtOih7cmVkOmUsZ3JlZW46dCxibHVlOm4sYWxwaGE6cj0xfSk9PlwicmdiYShcIitLcy50cmFuc2Zvcm0oZSkrXCIsIFwiK0tzLnRyYW5zZm9ybSh0KStcIiwgXCIrS3MudHJhbnNmb3JtKG4pK1wiLCBcIit5cyhwcy50cmFuc2Zvcm0ocikpK1wiKVwifSxHcz17dGVzdDpZcyhcIiNcIikscGFyc2U6ZnVuY3Rpb24oZSl7bGV0IHQ9XCJcIixuPVwiXCIscj1cIlwiLG89XCJcIjtyZXR1cm4gZS5sZW5ndGg+NT8odD1lLnN1YnN0cmluZygxLDMpLG49ZS5zdWJzdHJpbmcoMyw1KSxyPWUuc3Vic3RyaW5nKDUsNyksbz1lLnN1YnN0cmluZyg3LDkpKToodD1lLnN1YnN0cmluZygxLDIpLG49ZS5zdWJzdHJpbmcoMiwzKSxyPWUuc3Vic3RyaW5nKDMsNCksbz1lLnN1YnN0cmluZyg0LDUpLHQrPXQsbis9bixyKz1yLG8rPW8pLHtyZWQ6cGFyc2VJbnQodCwxNiksZ3JlZW46cGFyc2VJbnQobiwxNiksYmx1ZTpwYXJzZUludChyLDE2KSxhbHBoYTpvP3BhcnNlSW50KG8sMTYpLzI1NToxfX0sdHJhbnNmb3JtOnFzLnRyYW5zZm9ybX0sWHM9e3Rlc3Q6WXMoXCJoc2xcIixcImh1ZVwiKSxwYXJzZTpIcyhcImh1ZVwiLFwic2F0dXJhdGlvblwiLFwibGlnaHRuZXNzXCIpLHRyYW5zZm9ybTooe2h1ZTplLHNhdHVyYXRpb246dCxsaWdodG5lc3M6bixhbHBoYTpyPTF9KT0+XCJoc2xhKFwiK01hdGgucm91bmQoZSkrXCIsIFwiK0VzLnRyYW5zZm9ybSh5cyh0KSkrXCIsIFwiK0VzLnRyYW5zZm9ybSh5cyhuKSkrXCIsIFwiK3lzKHBzLnRyYW5zZm9ybShyKSkrXCIpXCJ9LFpzPXt0ZXN0OmU9PnFzLnRlc3QoZSl8fEdzLnRlc3QoZSl8fFhzLnRlc3QoZSkscGFyc2U6ZT0+cXMudGVzdChlKT9xcy5wYXJzZShlKTpYcy50ZXN0KGUpP1hzLnBhcnNlKGUpOkdzLnBhcnNlKGUpLHRyYW5zZm9ybTplPT53cyhlKT9lOmUuaGFzT3duUHJvcGVydHkoXCJyZWRcIik/cXMudHJhbnNmb3JtKGUpOlhzLnRyYW5zZm9ybShlKX0sSnM9XCJudW1iZXJcIixRcz1cImNvbG9yXCIsZWE9XCJ2YXJcIix0YT1cInZhcihcIixuYT1cIiR7fVwiLHJhPS92YXJcXHMqXFwoXFxzKi0tKD86W1xcdy1dK1xccyp8W1xcdy1dK1xccyosKD86XFxzKlteKShcXHNdfFxccypcXCgoPzpbXikoXXxcXChbXikoXSpcXCkpKlxcKSkrXFxzKilcXCl8I1tcXGRhLWZdezMsOH18KD86cmdifGhzbClhP1xcKCg/Oi0/W1xcZC5dKyU/WyxcXHNdKyl7Mn0tP1tcXGQuXSslP1xccyooPzpbLC9dXFxzKik/KD86XFxiXFxkKyg/OlxcLlxcZCspP3xcXC5cXGQrKT8lP1xcKXwtPyg/OlxcZCsoPzpcXC5cXGQrKT98XFwuXFxkKykvZ2l1O2Z1bmN0aW9uIG9hKGUpe2NvbnN0IHQ9ZS50b1N0cmluZygpLG49W10scj17Y29sb3I6W10sbnVtYmVyOltdLHZhcjpbXX0sbz1bXTtsZXQgaT0wO2NvbnN0IHM9dC5yZXBsYWNlKHJhLChlPT4oWnMudGVzdChlKT8oci5jb2xvci5wdXNoKGkpLG8ucHVzaChRcyksbi5wdXNoKFpzLnBhcnNlKGUpKSk6ZS5zdGFydHNXaXRoKHRhKT8oci52YXIucHVzaChpKSxvLnB1c2goZWEpLG4ucHVzaChlKSk6KHIubnVtYmVyLnB1c2goaSksby5wdXNoKEpzKSxuLnB1c2gocGFyc2VGbG9hdChlKSkpLCsraSxuYSkpKS5zcGxpdChuYSk7cmV0dXJue3ZhbHVlczpuLHNwbGl0OnMsaW5kZXhlczpyLHR5cGVzOm99fWZ1bmN0aW9uIGlhKGUpe3JldHVybiBvYShlKS52YWx1ZXN9ZnVuY3Rpb24gc2EoZSl7Y29uc3R7c3BsaXQ6dCx0eXBlczpufT1vYShlKSxyPXQubGVuZ3RoO3JldHVybiBlPT57bGV0IG89XCJcIjtmb3IobGV0IGk9MDtpPHI7aSsrKWlmKG8rPXRbaV0sdm9pZCAwIT09ZVtpXSl7Y29uc3QgdD1uW2ldO28rPXQ9PT1Kcz95cyhlW2ldKTp0PT09UXM/WnMudHJhbnNmb3JtKGVbaV0pOmVbaV19cmV0dXJuIG99fWNvbnN0IGFhPWU9PlwibnVtYmVyXCI9PXR5cGVvZiBlPzA6ZSxsYT17dGVzdDpmdW5jdGlvbihlKXt2YXIgdCxuO3JldHVybiBpc05hTihlKSYmd3MoZSkmJigobnVsbD09PSh0PWUubWF0Y2godnMpKXx8dm9pZCAwPT09dD92b2lkIDA6dC5sZW5ndGgpfHwwKSsoKG51bGw9PT0obj1lLm1hdGNoKGJzKSl8fHZvaWQgMD09PW4/dm9pZCAwOm4ubGVuZ3RoKXx8MCk+MH0scGFyc2U6aWEsY3JlYXRlVHJhbnNmb3JtZXI6c2EsZ2V0QW5pbWF0YWJsZU5vbmU6ZnVuY3Rpb24oZSl7Y29uc3QgdD1pYShlKTtyZXR1cm4gc2EoZSkodC5tYXAoYWEpKX19LGNhPW5ldyBTZXQoW1wiYnJpZ2h0bmVzc1wiLFwiY29udHJhc3RcIixcInNhdHVyYXRlXCIsXCJvcGFjaXR5XCJdKTtmdW5jdGlvbiB1YShlKXtjb25zdFt0LG5dPWUuc2xpY2UoMCwtMSkuc3BsaXQoXCIoXCIpO2lmKFwiZHJvcC1zaGFkb3dcIj09PXQpcmV0dXJuIGU7Y29uc3Rbcl09bi5tYXRjaCh2cyl8fFtdO2lmKCFyKXJldHVybiBlO2NvbnN0IG89bi5yZXBsYWNlKHIsXCJcIik7bGV0IGk9Y2EuaGFzKHQpPzE6MDtyZXR1cm4gciE9PW4mJihpKj0xMDApLHQrXCIoXCIraStvK1wiKVwifWNvbnN0IGRhPS9cXGIoW2Etei1dKilcXCguKj9cXCkvZ3UsZmE9ey4uLmxhLGdldEFuaW1hdGFibGVOb25lOmU9Pntjb25zdCB0PWUubWF0Y2goZGEpO3JldHVybiB0P3QubWFwKHVhKS5qb2luKFwiIFwiKTplfX0sbWE9ey4uLmhzLHRyYW5zZm9ybTpNYXRoLnJvdW5kfSxoYT17Ym9yZGVyV2lkdGg6Q3MsYm9yZGVyVG9wV2lkdGg6Q3MsYm9yZGVyUmlnaHRXaWR0aDpDcyxib3JkZXJCb3R0b21XaWR0aDpDcyxib3JkZXJMZWZ0V2lkdGg6Q3MsYm9yZGVyUmFkaXVzOkNzLHJhZGl1czpDcyxib3JkZXJUb3BMZWZ0UmFkaXVzOkNzLGJvcmRlclRvcFJpZ2h0UmFkaXVzOkNzLGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOkNzLGJvcmRlckJvdHRvbUxlZnRSYWRpdXM6Q3Msd2lkdGg6Q3MsbWF4V2lkdGg6Q3MsaGVpZ2h0OkNzLG1heEhlaWdodDpDcyxzaXplOkNzLHRvcDpDcyxyaWdodDpDcyxib3R0b206Q3MsbGVmdDpDcyxwYWRkaW5nOkNzLHBhZGRpbmdUb3A6Q3MscGFkZGluZ1JpZ2h0OkNzLHBhZGRpbmdCb3R0b206Q3MscGFkZGluZ0xlZnQ6Q3MsbWFyZ2luOkNzLG1hcmdpblRvcDpDcyxtYXJnaW5SaWdodDpDcyxtYXJnaW5Cb3R0b206Q3MsbWFyZ2luTGVmdDpDcyxyb3RhdGU6a3Mscm90YXRlWDprcyxyb3RhdGVZOmtzLHJvdGF0ZVo6a3Msc2NhbGU6Z3Msc2NhbGVYOmdzLHNjYWxlWTpncyxzY2FsZVo6Z3Msc2tldzprcyxza2V3WDprcyxza2V3WTprcyxkaXN0YW5jZTpDcyx0cmFuc2xhdGVYOkNzLHRyYW5zbGF0ZVk6Q3MsdHJhbnNsYXRlWjpDcyx4OkNzLHk6Q3MsejpDcyxwZXJzcGVjdGl2ZTpDcyx0cmFuc2Zvcm1QZXJzcGVjdGl2ZTpDcyxvcGFjaXR5OnBzLG9yaWdpblg6T3Msb3JpZ2luWTpPcyxvcmlnaW5aOkNzLHpJbmRleDptYSxiYWNrZ3JvdW5kUG9zaXRpb25YOkNzLGJhY2tncm91bmRQb3NpdGlvblk6Q3MsZmlsbE9wYWNpdHk6cHMsc3Ryb2tlT3BhY2l0eTpwcyxudW1PY3RhdmVzOm1hfSxwYT17Li4uaGEsY29sb3I6WnMsYmFja2dyb3VuZENvbG9yOlpzLG91dGxpbmVDb2xvcjpacyxmaWxsOlpzLHN0cm9rZTpacyxib3JkZXJDb2xvcjpacyxib3JkZXJUb3BDb2xvcjpacyxib3JkZXJSaWdodENvbG9yOlpzLGJvcmRlckJvdHRvbUNvbG9yOlpzLGJvcmRlckxlZnRDb2xvcjpacyxmaWx0ZXI6ZmEsV2Via2l0RmlsdGVyOmZhfSxnYT1lPT5wYVtlXTtmdW5jdGlvbiB5YShlLHQpe2xldCBuPWdhKGUpO3JldHVybiBuIT09ZmEmJihuPWxhKSxuLmdldEFuaW1hdGFibGVOb25lP24uZ2V0QW5pbWF0YWJsZU5vbmUodCk6dm9pZCAwfWNvbnN0IHZhPW5ldyBTZXQoW1wiYXV0b1wiLFwibm9uZVwiLFwiMFwiXSk7Y2xhc3MgYmEgZXh0ZW5kcyAkc3tjb25zdHJ1Y3RvcihlLHQsbixyLG8pe3N1cGVyKGUsdCxuLHIsbywhMCl9cmVhZEtleWZyYW1lcygpe2NvbnN0e3VucmVzb2x2ZWRLZXlmcmFtZXM6ZSxlbGVtZW50OnQsbmFtZTpufT10aGlzO2lmKCF0fHwhdC5jdXJyZW50KXJldHVybjtzdXBlci5yZWFkS2V5ZnJhbWVzKCk7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2xldCByPWVbbl07aWYoXCJzdHJpbmdcIj09dHlwZW9mIHImJihyPXIudHJpbSgpLGNzKHIpKSl7Y29uc3Qgbz1mcyhyLHQuY3VycmVudCk7dm9pZCAwIT09byYmKGVbbl09byksbj09PWUubGVuZ3RoLTEmJih0aGlzLmZpbmFsS2V5ZnJhbWU9cil9fWlmKHRoaXMucmVzb2x2ZU5vbmVLZXlmcmFtZXMoKSwhTnMuaGFzKG4pfHwyIT09ZS5sZW5ndGgpcmV0dXJuO2NvbnN0W3Isb109ZSxpPUZzKHIpLHM9RnMobyk7aWYoaSE9PXMpaWYoVHMoaSkmJlRzKHMpKWZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXtjb25zdCBuPWVbdF07XCJzdHJpbmdcIj09dHlwZW9mIG4mJihlW3RdPXBhcnNlRmxvYXQobikpfWVsc2UgdGhpcy5uZWVkc01lYXN1cmVtZW50PSEwfXJlc29sdmVOb25lS2V5ZnJhbWVzKCl7Y29uc3R7dW5yZXNvbHZlZEtleWZyYW1lczplLG5hbWU6dH09dGhpcyxuPVtdO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKShcIm51bWJlclwiPT10eXBlb2Yocj1lW3RdKT8wPT09cjpudWxsPT09cnx8XCJub25lXCI9PT1yfHxcIjBcIj09PXJ8fG5zKHIpKSYmbi5wdXNoKHQpO3ZhciByO24ubGVuZ3RoJiZmdW5jdGlvbihlLHQsbil7bGV0IHIsbz0wO2Zvcig7bzxlLmxlbmd0aCYmIXI7KXtjb25zdCB0PWVbb107XCJzdHJpbmdcIj09dHlwZW9mIHQmJiF2YS5oYXModCkmJm9hKHQpLnZhbHVlcy5sZW5ndGgmJihyPWVbb10pLG8rK31pZihyJiZuKWZvcihjb25zdCBvIG9mIHQpZVtvXT15YShuLHIpfShlLG4sdCl9bWVhc3VyZUluaXRpYWxTdGF0ZSgpe2NvbnN0e2VsZW1lbnQ6ZSx1bnJlc29sdmVkS2V5ZnJhbWVzOnQsbmFtZTpufT10aGlzO2lmKCFlfHwhZS5jdXJyZW50KXJldHVybjtcImhlaWdodFwiPT09biYmKHRoaXMuc3VzcGVuZGVkU2Nyb2xsWT13aW5kb3cucGFnZVlPZmZzZXQpLHRoaXMubWVhc3VyZWRPcmlnaW49QXNbbl0oZS5tZWFzdXJlVmlld3BvcnRCb3goKSx3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlLmN1cnJlbnQpKSx0WzBdPXRoaXMubWVhc3VyZWRPcmlnaW47Y29uc3Qgcj10W3QubGVuZ3RoLTFdO3ZvaWQgMCE9PXImJmUuZ2V0VmFsdWUobixyKS5qdW1wKHIsITEpfW1lYXN1cmVFbmRTdGF0ZSgpe3ZhciBlO2NvbnN0e2VsZW1lbnQ6dCxuYW1lOm4sdW5yZXNvbHZlZEtleWZyYW1lczpyfT10aGlzO2lmKCF0fHwhdC5jdXJyZW50KXJldHVybjtjb25zdCBvPXQuZ2V0VmFsdWUobik7byYmby5qdW1wKHRoaXMubWVhc3VyZWRPcmlnaW4sITEpO2NvbnN0IGk9ci5sZW5ndGgtMSxzPXJbaV07cltpXT1Bc1tuXSh0Lm1lYXN1cmVWaWV3cG9ydEJveCgpLHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQuY3VycmVudCkpLG51bGwhPT1zJiZ2b2lkIDA9PT10aGlzLmZpbmFsS2V5ZnJhbWUmJih0aGlzLmZpbmFsS2V5ZnJhbWU9cyksKG51bGw9PT0oZT10aGlzLnJlbW92ZWRUcmFuc2Zvcm1zKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5sZW5ndGgpJiZ0aGlzLnJlbW92ZWRUcmFuc2Zvcm1zLmZvckVhY2goKChbZSxuXSk9Pnt0LmdldFZhbHVlKGUpLnNldChuKX0pKSx0aGlzLnJlc29sdmVOb25lS2V5ZnJhbWVzKCl9fWZ1bmN0aW9uIHhhKGUpe2xldCB0O3JldHVybigpPT4odm9pZCAwPT09dCYmKHQ9ZSgpKSx0KX1sZXQgd2E7ZnVuY3Rpb24gU2EoKXt3YT12b2lkIDB9Y29uc3Qga2E9e25vdzooKT0+KHZvaWQgMD09PXdhJiZrYS5zZXQoZXMuaXNQcm9jZXNzaW5nP2VzLnRpbWVzdGFtcDpwZXJmb3JtYW5jZS5ub3coKSksd2EpLHNldDplPT57d2E9ZSxxdWV1ZU1pY3JvdGFzayhTYSl9fSxFYT0oZSx0KT0+IShcInpJbmRleFwiPT09dHx8XCJudW1iZXJcIiE9dHlwZW9mIGUmJiFBcnJheS5pc0FycmF5KGUpJiYoXCJzdHJpbmdcIiE9dHlwZW9mIGV8fCFsYS50ZXN0KGUpJiZcIjBcIiE9PWV8fGUuc3RhcnRzV2l0aChcInVybChcIikpKTtjbGFzcyBDYXtjb25zdHJ1Y3Rvcih7YXV0b3BsYXk6ZT0hMCxkZWxheTp0PTAsdHlwZTpuPVwia2V5ZnJhbWVzXCIscmVwZWF0OnI9MCxyZXBlYXREZWxheTpvPTAscmVwZWF0VHlwZTppPVwibG9vcFwiLC4uLnN9KXt0aGlzLmlzU3RvcHBlZD0hMSx0aGlzLmhhc0F0dGVtcHRlZFJlc29sdmU9ITEsdGhpcy5jcmVhdGVkQXQ9a2Eubm93KCksdGhpcy5vcHRpb25zPXthdXRvcGxheTplLGRlbGF5OnQsdHlwZTpuLHJlcGVhdDpyLHJlcGVhdERlbGF5Om8scmVwZWF0VHlwZTppLC4uLnN9LHRoaXMudXBkYXRlRmluaXNoZWRQcm9taXNlKCl9Y2FsY1N0YXJ0VGltZSgpe3JldHVybiB0aGlzLnJlc29sdmVkQXQmJnRoaXMucmVzb2x2ZWRBdC10aGlzLmNyZWF0ZWRBdD40MD90aGlzLnJlc29sdmVkQXQ6dGhpcy5jcmVhdGVkQXR9Z2V0IHJlc29sdmVkKCl7cmV0dXJuIHRoaXMuX3Jlc29sdmVkfHx0aGlzLmhhc0F0dGVtcHRlZFJlc29sdmV8fChVcygpLFZzKCkpLHRoaXMuX3Jlc29sdmVkfW9uS2V5ZnJhbWVzUmVzb2x2ZWQoZSx0KXt0aGlzLnJlc29sdmVkQXQ9a2Eubm93KCksdGhpcy5oYXNBdHRlbXB0ZWRSZXNvbHZlPSEwO2NvbnN0e25hbWU6bix0eXBlOnIsdmVsb2NpdHk6byxkZWxheTppLG9uQ29tcGxldGU6cyxvblVwZGF0ZTphLGlzR2VuZXJhdG9yOmx9PXRoaXMub3B0aW9ucztpZighbCYmIWZ1bmN0aW9uKGUsdCxuLHIpe2NvbnN0IG89ZVswXTtpZihudWxsPT09bylyZXR1cm4hMTtpZihcImRpc3BsYXlcIj09PXR8fFwidmlzaWJpbGl0eVwiPT09dClyZXR1cm4hMDtjb25zdCBpPWVbZS5sZW5ndGgtMV0scz1FYShvLHQpLGE9RWEoaSx0KTtyZXR1cm4gcnMocz09PWEsYFlvdSBhcmUgdHJ5aW5nIHRvIGFuaW1hdGUgJHt0fSBmcm9tIFwiJHtvfVwiIHRvIFwiJHtpfVwiLiAke299IGlzIG5vdCBhbiBhbmltYXRhYmxlIHZhbHVlIC0gdG8gZW5hYmxlIHRoaXMgYW5pbWF0aW9uIHNldCAke299IHRvIGEgdmFsdWUgYW5pbWF0YWJsZSB0byAke2l9IHZpYSB0aGUgXFxgc3R5bGVcXGAgcHJvcGVydHkuYCksISghc3x8IWEpJiYoZnVuY3Rpb24oZSl7Y29uc3QgdD1lWzBdO2lmKDE9PT1lLmxlbmd0aClyZXR1cm4hMDtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKylpZihlW25dIT09dClyZXR1cm4hMH0oZSl8fFwic3ByaW5nXCI9PT1uJiZyKX0oZSxuLHIsbykpe2lmKCFpKXJldHVybiBudWxsPT1hfHxhKHFpKGUsdGhpcy5vcHRpb25zLHQpKSxudWxsPT1zfHxzKCksdm9pZCB0aGlzLnJlc29sdmVGaW5pc2hlZFByb21pc2UoKTt0aGlzLm9wdGlvbnMuZHVyYXRpb249MH1jb25zdCBjPXRoaXMuaW5pdFBsYXliYWNrKGUsdCk7ITEhPT1jJiYodGhpcy5fcmVzb2x2ZWQ9e2tleWZyYW1lczplLGZpbmFsS2V5ZnJhbWU6dCwuLi5jfSx0aGlzLm9uUG9zdFJlc29sdmVkKCkpfW9uUG9zdFJlc29sdmVkKCl7fXRoZW4oZSx0KXtyZXR1cm4gdGhpcy5jdXJyZW50RmluaXNoZWRQcm9taXNlLnRoZW4oZSx0KX11cGRhdGVGaW5pc2hlZFByb21pc2UoKXt0aGlzLmN1cnJlbnRGaW5pc2hlZFByb21pc2U9bmV3IFByb21pc2UoKGU9Pnt0aGlzLnJlc29sdmVGaW5pc2hlZFByb21pc2U9ZX0pKX19ZnVuY3Rpb24gX2EoZSx0KXtyZXR1cm4gdD9lKigxZTMvdCk6MH1jb25zdCBQYT01O2Z1bmN0aW9uIE9hKGUsdCxuKXtjb25zdCByPU1hdGgubWF4KHQtUGEsMCk7cmV0dXJuIF9hKG4tZShyKSx0LXIpfWNvbnN0IE5hPS4wMDEsVGE9LjAxLE1hPTEwLFJhPS4wNSxEYT0xO2NvbnN0IGphPTEyO2Z1bmN0aW9uIEFhKGUsdCl7cmV0dXJuIGUqTWF0aC5zcXJ0KDEtdCp0KX1jb25zdCBJYT1bXCJkdXJhdGlvblwiLFwiYm91bmNlXCJdLExhPVtcInN0aWZmbmVzc1wiLFwiZGFtcGluZ1wiLFwibWFzc1wiXTtmdW5jdGlvbiBGYShlLHQpe3JldHVybiB0LnNvbWUoKHQ9PnZvaWQgMCE9PWVbdF0pKX1mdW5jdGlvbiB6YSh7a2V5ZnJhbWVzOmUscmVzdERlbHRhOnQscmVzdFNwZWVkOm4sLi4ucn0pe2NvbnN0IG89ZVswXSxpPWVbZS5sZW5ndGgtMV0scz17ZG9uZTohMSx2YWx1ZTpvfSx7c3RpZmZuZXNzOmEsZGFtcGluZzpsLG1hc3M6YyxkdXJhdGlvbjp1LHZlbG9jaXR5OmQsaXNSZXNvbHZlZEZyb21EdXJhdGlvbjpmfT1mdW5jdGlvbihlKXtsZXQgdD17dmVsb2NpdHk6MCxzdGlmZm5lc3M6MTAwLGRhbXBpbmc6MTAsbWFzczoxLGlzUmVzb2x2ZWRGcm9tRHVyYXRpb246ITEsLi4uZX07aWYoIUZhKGUsTGEpJiZGYShlLElhKSl7Y29uc3Qgbj1mdW5jdGlvbih7ZHVyYXRpb246ZT04MDAsYm91bmNlOnQ9LjI1LHZlbG9jaXR5Om49MCxtYXNzOnI9MX0pe2xldCBvLGk7cnMoZTw9QmkoTWEpLFwiU3ByaW5nIGR1cmF0aW9uIG11c3QgYmUgMTAgc2Vjb25kcyBvciBsZXNzXCIpO2xldCBzPTEtdDtzPW1zKFJhLERhLHMpLGU9bXMoVGEsTWEsV2koZSkpLHM8MT8obz10PT57Y29uc3Qgcj10KnMsbz1yKmUsaT1yLW4sYT1BYSh0LHMpLGw9TWF0aC5leHAoLW8pO3JldHVybiBOYS1pL2EqbH0saT10PT57Y29uc3Qgcj10KnMqZSxpPXIqbituLGE9TWF0aC5wb3cocywyKSpNYXRoLnBvdyh0LDIpKmUsbD1NYXRoLmV4cCgtciksYz1BYShNYXRoLnBvdyh0LDIpLHMpO3JldHVybigtbyh0KStOYT4wPy0xOjEpKigoaS1hKSpsKS9jfSk6KG89dD0+TWF0aC5leHAoLXQqZSkqKCh0LW4pKmUrMSktTmEsaT10PT5NYXRoLmV4cCgtdCplKSooZSplKihuLXQpKSk7Y29uc3QgYT1mdW5jdGlvbihlLHQsbil7bGV0IHI9bjtmb3IobGV0IG49MTtuPGphO24rKylyLT1lKHIpL3Qocik7cmV0dXJuIHJ9KG8saSw1L2UpO2lmKGU9QmkoZSksaXNOYU4oYSkpcmV0dXJue3N0aWZmbmVzczoxMDAsZGFtcGluZzoxMCxkdXJhdGlvbjplfTt7Y29uc3QgdD1NYXRoLnBvdyhhLDIpKnI7cmV0dXJue3N0aWZmbmVzczp0LGRhbXBpbmc6MipzKk1hdGguc3FydChyKnQpLGR1cmF0aW9uOmV9fX0oZSk7dD17Li4udCwuLi5uLG1hc3M6MX0sdC5pc1Jlc29sdmVkRnJvbUR1cmF0aW9uPSEwfXJldHVybiB0fSh7Li4ucix2ZWxvY2l0eTotV2koci52ZWxvY2l0eXx8MCl9KSxtPWR8fDAsaD1sLygyKk1hdGguc3FydChhKmMpKSxwPWktbyxnPVdpKE1hdGguc3FydChhL2MpKSx5PU1hdGguYWJzKHApPDU7bGV0IHY7aWYobnx8KG49eT8uMDE6MiksdHx8KHQ9eT8uMDA1Oi41KSxoPDEpe2NvbnN0IGU9QWEoZyxoKTt2PXQ9Pntjb25zdCBuPU1hdGguZXhwKC1oKmcqdCk7cmV0dXJuIGktbiooKG0raCpnKnApL2UqTWF0aC5zaW4oZSp0KStwKk1hdGguY29zKGUqdCkpfX1lbHNlIGlmKDE9PT1oKXY9ZT0+aS1NYXRoLmV4cCgtZyplKSoocCsobStnKnApKmUpO2Vsc2V7Y29uc3QgZT1nKk1hdGguc3FydChoKmgtMSk7dj10PT57Y29uc3Qgbj1NYXRoLmV4cCgtaCpnKnQpLHI9TWF0aC5taW4oZSp0LDMwMCk7cmV0dXJuIGktbiooKG0raCpnKnApKk1hdGguc2luaChyKStlKnAqTWF0aC5jb3NoKHIpKS9lfX1yZXR1cm57Y2FsY3VsYXRlZER1cmF0aW9uOmYmJnV8fG51bGwsbmV4dDplPT57Y29uc3Qgcj12KGUpO2lmKGYpcy5kb25lPWU+PXU7ZWxzZXtsZXQgbz0wO2g8MSYmKG89MD09PWU/QmkobSk6T2EodixlLHIpKTtjb25zdCBhPU1hdGguYWJzKG8pPD1uLGw9TWF0aC5hYnMoaS1yKTw9dDtzLmRvbmU9YSYmbH1yZXR1cm4gcy52YWx1ZT1zLmRvbmU/aTpyLHN9fX1mdW5jdGlvbiBCYSh7a2V5ZnJhbWVzOmUsdmVsb2NpdHk6dD0wLHBvd2VyOm49LjgsdGltZUNvbnN0YW50OnI9MzI1LGJvdW5jZURhbXBpbmc6bz0xMCxib3VuY2VTdGlmZm5lc3M6aT01MDAsbW9kaWZ5VGFyZ2V0OnMsbWluOmEsbWF4OmwscmVzdERlbHRhOmM9LjUscmVzdFNwZWVkOnV9KXtjb25zdCBkPWVbMF0sZj17ZG9uZTohMSx2YWx1ZTpkfSxtPWU9PnZvaWQgMD09PWE/bDp2b2lkIDA9PT1sfHxNYXRoLmFicyhhLWUpPE1hdGguYWJzKGwtZSk/YTpsO2xldCBoPW4qdDtjb25zdCBwPWQraCxnPXZvaWQgMD09PXM/cDpzKHApO2chPT1wJiYoaD1nLWQpO2NvbnN0IHk9ZT0+LWgqTWF0aC5leHAoLWUvciksdj1lPT5nK3koZSksYj1lPT57Y29uc3QgdD15KGUpLG49dihlKTtmLmRvbmU9TWF0aC5hYnModCk8PWMsZi52YWx1ZT1mLmRvbmU/ZzpufTtsZXQgeCx3O2NvbnN0IFM9ZT0+eyhlPT52b2lkIDAhPT1hJiZlPGF8fHZvaWQgMCE9PWwmJmU+bCkoZi52YWx1ZSkmJih4PWUsdz16YSh7a2V5ZnJhbWVzOltmLnZhbHVlLG0oZi52YWx1ZSldLHZlbG9jaXR5Ok9hKHYsZSxmLnZhbHVlKSxkYW1waW5nOm8sc3RpZmZuZXNzOmkscmVzdERlbHRhOmMscmVzdFNwZWVkOnV9KSl9O3JldHVybiBTKDApLHtjYWxjdWxhdGVkRHVyYXRpb246bnVsbCxuZXh0OmU9PntsZXQgdD0hMTtyZXR1cm4gd3x8dm9pZCAwIT09eHx8KHQ9ITAsYihlKSxTKGUpKSx2b2lkIDAhPT14JiZlPj14P3cubmV4dChlLXgpOighdCYmYihlKSxmKX19fWNvbnN0IFdhPShlLHQsbik9PigoKDEtMypuKzMqdCkqZSsoMypuLTYqdCkpKmUrMyp0KSplO2Z1bmN0aW9uIFZhKGUsdCxuLHIpe2lmKGU9PT10JiZuPT09cilyZXR1cm4gR2k7cmV0dXJuIG89PjA9PT1vfHwxPT09bz9vOldhKGZ1bmN0aW9uKGUsdCxuLHIsbyl7bGV0IGkscyxhPTA7ZG97cz10KyhuLXQpLzIsaT1XYShzLHIsbyktZSxpPjA/bj1zOnQ9c313aGlsZShNYXRoLmFicyhpKT4xZS03JiYrK2E8MTIpO3JldHVybiBzfShvLDAsMSxlLG4pLHQscil9Y29uc3QgVWE9VmEoLjQyLDAsMSwxKSwkYT1WYSgwLDAsLjU4LDEpLFlhPVZhKC40MiwwLC41OCwxKSxIYT1lPT50PT50PD0uNT9lKDIqdCkvMjooMi1lKDIqKDEtdCkpKS8yLEthPWU9PnQ9PjEtZSgxLXQpLHFhPWU9PjEtTWF0aC5zaW4oTWF0aC5hY29zKGUpKSxHYT1LYShxYSksWGE9SGEocWEpLFphPVZhKC4zMywxLjUzLC42OSwuOTkpLEphPUthKFphKSxRYT1IYShKYSksZWw9e2xpbmVhcjpHaSxlYXNlSW46VWEsZWFzZUluT3V0OllhLGVhc2VPdXQ6JGEsY2lyY0luOnFhLGNpcmNJbk91dDpYYSxjaXJjT3V0OkdhLGJhY2tJbjpKYSxiYWNrSW5PdXQ6UWEsYmFja091dDpaYSxhbnRpY2lwYXRlOmU9PihlKj0yKTwxPy41KkphKGUpOi41KigyLU1hdGgucG93KDIsLTEwKihlLTEpKSl9LHRsPWU9PntpZihBcnJheS5pc0FycmF5KGUpKXtvcyg0PT09ZS5sZW5ndGgsXCJDdWJpYyBiZXppZXIgYXJyYXlzIG11c3QgY29udGFpbiBmb3VyIG51bWVyaWNhbCB2YWx1ZXMuXCIpO2NvbnN0W3QsbixyLG9dPWU7cmV0dXJuIFZhKHQsbixyLG8pfXJldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlPyhvcyh2b2lkIDAhPT1lbFtlXSxgSW52YWxpZCBlYXNpbmcgdHlwZSAnJHtlfSdgKSxlbFtlXSk6ZX0sbmw9KGUsdCk9Pm49PnQoZShuKSkscmw9KC4uLmUpPT5lLnJlZHVjZShubCksb2w9KGUsdCxuKT0+e2NvbnN0IHI9dC1lO3JldHVybiAwPT09cj8xOihuLWUpL3J9LGlsPShlLHQsbik9PmUrKHQtZSkqbjtmdW5jdGlvbiBzbChlLHQsbil7cmV0dXJuIG48MCYmKG4rPTEpLG4+MSYmKG4tPTEpLG48MS82P2UrNioodC1lKSpuOm48LjU/dDpuPDIvMz9lKyh0LWUpKigyLzMtbikqNjplfWZ1bmN0aW9uIGFsKGUsdCl7cmV0dXJuIG49Pm4+MD90OmV9Y29uc3QgbGw9KGUsdCxuKT0+e2NvbnN0IHI9ZSplLG89bioodCp0LXIpK3I7cmV0dXJuIG88MD8wOk1hdGguc3FydChvKX0sY2w9W0dzLHFzLFhzXTtmdW5jdGlvbiB1bChlKXtjb25zdCB0PShlPT5jbC5maW5kKCh0PT50LnRlc3QoZSkpKSkoZSk7aWYocnMoQm9vbGVhbih0KSxgJyR7ZX0nIGlzIG5vdCBhbiBhbmltYXRhYmxlIGNvbG9yLiBVc2UgdGhlIGVxdWl2YWxlbnQgY29sb3IgY29kZSBpbnN0ZWFkLmApLCFCb29sZWFuKHQpKXJldHVybiExO2xldCBuPXQucGFyc2UoZSk7cmV0dXJuIHQ9PT1YcyYmKG49ZnVuY3Rpb24oe2h1ZTplLHNhdHVyYXRpb246dCxsaWdodG5lc3M6bixhbHBoYTpyfSl7ZS89MzYwLG4vPTEwMDtsZXQgbz0wLGk9MCxzPTA7aWYodC89MTAwKXtjb25zdCByPW48LjU/biooMSt0KTpuK3Qtbip0LGE9MipuLXI7bz1zbChhLHIsZSsxLzMpLGk9c2woYSxyLGUpLHM9c2woYSxyLGUtMS8zKX1lbHNlIG89aT1zPW47cmV0dXJue3JlZDpNYXRoLnJvdW5kKDI1NSpvKSxncmVlbjpNYXRoLnJvdW5kKDI1NSppKSxibHVlOk1hdGgucm91bmQoMjU1KnMpLGFscGhhOnJ9fShuKSksbn1jb25zdCBkbD0oZSx0KT0+e2NvbnN0IG49dWwoZSkscj11bCh0KTtpZighbnx8IXIpcmV0dXJuIGFsKGUsdCk7Y29uc3Qgbz17Li4ubn07cmV0dXJuIGU9PihvLnJlZD1sbChuLnJlZCxyLnJlZCxlKSxvLmdyZWVuPWxsKG4uZ3JlZW4sci5ncmVlbixlKSxvLmJsdWU9bGwobi5ibHVlLHIuYmx1ZSxlKSxvLmFscGhhPWlsKG4uYWxwaGEsci5hbHBoYSxlKSxxcy50cmFuc2Zvcm0obykpfSxmbD1uZXcgU2V0KFtcIm5vbmVcIixcImhpZGRlblwiXSk7ZnVuY3Rpb24gbWwoZSx0KXtyZXR1cm4gbj0+aWwoZSx0LG4pfWZ1bmN0aW9uIGhsKGUpe3JldHVyblwibnVtYmVyXCI9PXR5cGVvZiBlP21sOlwic3RyaW5nXCI9PXR5cGVvZiBlP2NzKGUpP2FsOlpzLnRlc3QoZSk/ZGw6eWw6QXJyYXkuaXNBcnJheShlKT9wbDpcIm9iamVjdFwiPT10eXBlb2YgZT9acy50ZXN0KGUpP2RsOmdsOmFsfWZ1bmN0aW9uIHBsKGUsdCl7Y29uc3Qgbj1bLi4uZV0scj1uLmxlbmd0aCxvPWUubWFwKCgoZSxuKT0+aGwoZSkoZSx0W25dKSkpO3JldHVybiBlPT57Zm9yKGxldCB0PTA7dDxyO3QrKyluW3RdPW9bdF0oZSk7cmV0dXJuIG59fWZ1bmN0aW9uIGdsKGUsdCl7Y29uc3Qgbj17Li4uZSwuLi50fSxyPXt9O2Zvcihjb25zdCBvIGluIG4pdm9pZCAwIT09ZVtvXSYmdm9pZCAwIT09dFtvXSYmKHJbb109aGwoZVtvXSkoZVtvXSx0W29dKSk7cmV0dXJuIGU9Pntmb3IoY29uc3QgdCBpbiByKW5bdF09clt0XShlKTtyZXR1cm4gbn19Y29uc3QgeWw9KGUsdCk9Pntjb25zdCBuPWxhLmNyZWF0ZVRyYW5zZm9ybWVyKHQpLHI9b2EoZSksbz1vYSh0KTtyZXR1cm4gci5pbmRleGVzLnZhci5sZW5ndGg9PT1vLmluZGV4ZXMudmFyLmxlbmd0aCYmci5pbmRleGVzLmNvbG9yLmxlbmd0aD09PW8uaW5kZXhlcy5jb2xvci5sZW5ndGgmJnIuaW5kZXhlcy5udW1iZXIubGVuZ3RoPj1vLmluZGV4ZXMubnVtYmVyLmxlbmd0aD9mbC5oYXMoZSkmJiFvLnZhbHVlcy5sZW5ndGh8fGZsLmhhcyh0KSYmIXIudmFsdWVzLmxlbmd0aD9mdW5jdGlvbihlLHQpe3JldHVybiBmbC5oYXMoZSk/bj0+bjw9MD9lOnQ6bj0+bj49MT90OmV9KGUsdCk6cmwocGwoZnVuY3Rpb24oZSx0KXt2YXIgbjtjb25zdCByPVtdLG89e2NvbG9yOjAsdmFyOjAsbnVtYmVyOjB9O2ZvcihsZXQgaT0wO2k8dC52YWx1ZXMubGVuZ3RoO2krKyl7Y29uc3Qgcz10LnR5cGVzW2ldLGE9ZS5pbmRleGVzW3NdW29bc11dLGw9bnVsbCE9PShuPWUudmFsdWVzW2FdKSYmdm9pZCAwIT09bj9uOjA7cltpXT1sLG9bc10rK31yZXR1cm4gcn0ocixvKSxvLnZhbHVlcyksbik6KHJzKCEwLGBDb21wbGV4IHZhbHVlcyAnJHtlfScgYW5kICcke3R9JyB0b28gZGlmZmVyZW50IHRvIG1peC4gRW5zdXJlIGFsbCBjb2xvcnMgYXJlIG9mIHRoZSBzYW1lIHR5cGUsIGFuZCB0aGF0IGVhY2ggY29udGFpbnMgdGhlIHNhbWUgcXVhbnRpdHkgb2YgbnVtYmVyIGFuZCBjb2xvciB2YWx1ZXMuIEZhbGxpbmcgYmFjayB0byBpbnN0YW50IHRyYW5zaXRpb24uYCksYWwoZSx0KSl9O2Z1bmN0aW9uIHZsKGUsdCxuKXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YgZSYmXCJudW1iZXJcIj09dHlwZW9mIHQmJlwibnVtYmVyXCI9PXR5cGVvZiBuP2lsKGUsdCxuKTpobChlKShlLHQpfWZ1bmN0aW9uIGJsKHtkdXJhdGlvbjplPTMwMCxrZXlmcmFtZXM6dCx0aW1lczpuLGVhc2U6cj1cImVhc2VJbk91dFwifSl7Y29uc3Qgbz0oZT0+QXJyYXkuaXNBcnJheShlKSYmXCJudW1iZXJcIiE9dHlwZW9mIGVbMF0pKHIpP3IubWFwKHRsKTp0bChyKSxpPXtkb25lOiExLHZhbHVlOnRbMF19LHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5tYXAoKGU9PmUqdCkpfShuJiZuLmxlbmd0aD09PXQubGVuZ3RoP246ZnVuY3Rpb24oZSl7Y29uc3QgdD1bMF07cmV0dXJuIGZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1lW2UubGVuZ3RoLTFdO2ZvcihsZXQgcj0xO3I8PXQ7cisrKXtjb25zdCBvPW9sKDAsdCxyKTtlLnB1c2goaWwobiwxLG8pKX19KHQsZS5sZW5ndGgtMSksdH0odCksZSksYT1mdW5jdGlvbihlLHQse2NsYW1wOm49ITAsZWFzZTpyLG1peGVyOm99PXt9KXtjb25zdCBpPWUubGVuZ3RoO2lmKG9zKGk9PT10Lmxlbmd0aCxcIkJvdGggaW5wdXQgYW5kIG91dHB1dCByYW5nZXMgbXVzdCBiZSB0aGUgc2FtZSBsZW5ndGhcIiksMT09PWkpcmV0dXJuKCk9PnRbMF07aWYoMj09PWkmJmVbMF09PT1lWzFdKXJldHVybigpPT50WzFdO2VbMF0+ZVtpLTFdJiYoZT1bLi4uZV0ucmV2ZXJzZSgpLHQ9Wy4uLnRdLnJldmVyc2UoKSk7Y29uc3Qgcz1mdW5jdGlvbihlLHQsbil7Y29uc3Qgcj1bXSxvPW58fHZsLGk9ZS5sZW5ndGgtMTtmb3IobGV0IG49MDtuPGk7bisrKXtsZXQgaT1vKGVbbl0sZVtuKzFdKTtpZih0KXtjb25zdCBlPUFycmF5LmlzQXJyYXkodCk/dFtuXXx8R2k6dDtpPXJsKGUsaSl9ci5wdXNoKGkpfXJldHVybiByfSh0LHIsbyksYT1zLmxlbmd0aCxsPXQ9PntsZXQgbj0wO2lmKGE+MSlmb3IoO248ZS5sZW5ndGgtMiYmISh0PGVbbisxXSk7bisrKTtjb25zdCByPW9sKGVbbl0sZVtuKzFdLHQpO3JldHVybiBzW25dKHIpfTtyZXR1cm4gbj90PT5sKG1zKGVbMF0sZVtpLTFdLHQpKTpsfShzLHQse2Vhc2U6QXJyYXkuaXNBcnJheShvKT9vOihsPXQsYz1vLGwubWFwKCgoKT0+Y3x8WWEpKS5zcGxpY2UoMCxsLmxlbmd0aC0xKSl9KTt2YXIgbCxjO3JldHVybntjYWxjdWxhdGVkRHVyYXRpb246ZSxuZXh0OnQ9PihpLnZhbHVlPWEodCksaS5kb25lPXQ+PWUsaSl9fWNvbnN0IHhsPWU9Pntjb25zdCB0PSh7dGltZXN0YW1wOnR9KT0+ZSh0KTtyZXR1cm57c3RhcnQ6KCk9PkppLnVwZGF0ZSh0LCEwKSxzdG9wOigpPT5RaSh0KSxub3c6KCk9PmVzLmlzUHJvY2Vzc2luZz9lcy50aW1lc3RhbXA6a2Eubm93KCl9fSx3bD17ZGVjYXk6QmEsaW5lcnRpYTpCYSx0d2VlbjpibCxrZXlmcmFtZXM6Ymwsc3ByaW5nOnphfSxTbD1lPT5lLzEwMDtjbGFzcyBrbCBleHRlbmRzIENhe2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMuaG9sZFRpbWU9bnVsbCx0aGlzLmNhbmNlbFRpbWU9bnVsbCx0aGlzLmN1cnJlbnRUaW1lPTAsdGhpcy5wbGF5YmFja1NwZWVkPTEsdGhpcy5wZW5kaW5nUGxheVN0YXRlPVwicnVubmluZ1wiLHRoaXMuc3RhcnRUaW1lPW51bGwsdGhpcy5zdGF0ZT1cImlkbGVcIix0aGlzLnN0b3A9KCk9PntpZih0aGlzLnJlc29sdmVyLmNhbmNlbCgpLHRoaXMuaXNTdG9wcGVkPSEwLFwiaWRsZVwiPT09dGhpcy5zdGF0ZSlyZXR1cm47dGhpcy50ZWFyZG93bigpO2NvbnN0e29uU3RvcDplfT10aGlzLm9wdGlvbnM7ZSYmZSgpfTtjb25zdHtuYW1lOnQsbW90aW9uVmFsdWU6bixlbGVtZW50OnIsa2V5ZnJhbWVzOm99PXRoaXMub3B0aW9ucyxpPShudWxsPT1yP3ZvaWQgMDpyLktleWZyYW1lUmVzb2x2ZXIpfHwkczt0aGlzLnJlc29sdmVyPW5ldyBpKG8sKChlLHQpPT50aGlzLm9uS2V5ZnJhbWVzUmVzb2x2ZWQoZSx0KSksdCxuLHIpLHRoaXMucmVzb2x2ZXIuc2NoZWR1bGVSZXNvbHZlKCl9aW5pdFBsYXliYWNrKGUpe2NvbnN0e3R5cGU6dD1cImtleWZyYW1lc1wiLHJlcGVhdDpuPTAscmVwZWF0RGVsYXk6cj0wLHJlcGVhdFR5cGU6byx2ZWxvY2l0eTppPTB9PXRoaXMub3B0aW9ucyxzPXdsW3RdfHxibDtsZXQgYSxsO3MhPT1ibCYmXCJudW1iZXJcIiE9dHlwZW9mIGVbMF0mJihhPXJsKFNsLHZsKGVbMF0sZVsxXSkpLGU9WzAsMTAwXSk7Y29uc3QgYz1zKHsuLi50aGlzLm9wdGlvbnMsa2V5ZnJhbWVzOmV9KTtcIm1pcnJvclwiPT09byYmKGw9cyh7Li4udGhpcy5vcHRpb25zLGtleWZyYW1lczpbLi4uZV0ucmV2ZXJzZSgpLHZlbG9jaXR5Oi1pfSkpLG51bGw9PT1jLmNhbGN1bGF0ZWREdXJhdGlvbiYmKGMuY2FsY3VsYXRlZER1cmF0aW9uPWZ1bmN0aW9uKGUpe2xldCB0PTAsbj1lLm5leHQodCk7Zm9yKDshbi5kb25lJiZ0PDJlNDspdCs9NTAsbj1lLm5leHQodCk7cmV0dXJuIHQ+PTJlND8xLzA6dH0oYykpO2NvbnN0e2NhbGN1bGF0ZWREdXJhdGlvbjp1fT1jLGQ9dStyO3JldHVybntnZW5lcmF0b3I6YyxtaXJyb3JlZEdlbmVyYXRvcjpsLG1hcFBlcmNlbnRUb0tleWZyYW1lczphLGNhbGN1bGF0ZWREdXJhdGlvbjp1LHJlc29sdmVkRHVyYXRpb246ZCx0b3RhbER1cmF0aW9uOmQqKG4rMSktcn19b25Qb3N0UmVzb2x2ZWQoKXtjb25zdHthdXRvcGxheTplPSEwfT10aGlzLm9wdGlvbnM7dGhpcy5wbGF5KCksXCJwYXVzZWRcIiE9PXRoaXMucGVuZGluZ1BsYXlTdGF0ZSYmZT90aGlzLnN0YXRlPXRoaXMucGVuZGluZ1BsYXlTdGF0ZTp0aGlzLnBhdXNlKCl9dGljayhlLHQ9ITEpe2NvbnN0e3Jlc29sdmVkOm59PXRoaXM7aWYoIW4pe2NvbnN0e2tleWZyYW1lczplfT10aGlzLm9wdGlvbnM7cmV0dXJue2RvbmU6ITAsdmFsdWU6ZVtlLmxlbmd0aC0xXX19Y29uc3R7ZmluYWxLZXlmcmFtZTpyLGdlbmVyYXRvcjpvLG1pcnJvcmVkR2VuZXJhdG9yOmksbWFwUGVyY2VudFRvS2V5ZnJhbWVzOnMsa2V5ZnJhbWVzOmEsY2FsY3VsYXRlZER1cmF0aW9uOmwsdG90YWxEdXJhdGlvbjpjLHJlc29sdmVkRHVyYXRpb246dX09bjtpZihudWxsPT09dGhpcy5zdGFydFRpbWUpcmV0dXJuIG8ubmV4dCgwKTtjb25zdHtkZWxheTpkLHJlcGVhdDpmLHJlcGVhdFR5cGU6bSxyZXBlYXREZWxheTpoLG9uVXBkYXRlOnB9PXRoaXMub3B0aW9uczt0aGlzLnNwZWVkPjA/dGhpcy5zdGFydFRpbWU9TWF0aC5taW4odGhpcy5zdGFydFRpbWUsZSk6dGhpcy5zcGVlZDwwJiYodGhpcy5zdGFydFRpbWU9TWF0aC5taW4oZS1jL3RoaXMuc3BlZWQsdGhpcy5zdGFydFRpbWUpKSx0P3RoaXMuY3VycmVudFRpbWU9ZTpudWxsIT09dGhpcy5ob2xkVGltZT90aGlzLmN1cnJlbnRUaW1lPXRoaXMuaG9sZFRpbWU6dGhpcy5jdXJyZW50VGltZT1NYXRoLnJvdW5kKGUtdGhpcy5zdGFydFRpbWUpKnRoaXMuc3BlZWQ7Y29uc3QgZz10aGlzLmN1cnJlbnRUaW1lLWQqKHRoaXMuc3BlZWQ+PTA/MTotMSkseT10aGlzLnNwZWVkPj0wP2c8MDpnPmM7dGhpcy5jdXJyZW50VGltZT1NYXRoLm1heChnLDApLFwiZmluaXNoZWRcIj09PXRoaXMuc3RhdGUmJm51bGw9PT10aGlzLmhvbGRUaW1lJiYodGhpcy5jdXJyZW50VGltZT1jKTtsZXQgdj10aGlzLmN1cnJlbnRUaW1lLGI9bztpZihmKXtjb25zdCBlPU1hdGgubWluKHRoaXMuY3VycmVudFRpbWUsYykvdTtsZXQgdD1NYXRoLmZsb29yKGUpLG49ZSUxOyFuJiZlPj0xJiYobj0xKSwxPT09biYmdC0tLHQ9TWF0aC5taW4odCxmKzEpLEJvb2xlYW4odCUyKSYmKFwicmV2ZXJzZVwiPT09bT8obj0xLW4saCYmKG4tPWgvdSkpOlwibWlycm9yXCI9PT1tJiYoYj1pKSksdj1tcygwLDEsbikqdX1jb25zdCB4PXk/e2RvbmU6ITEsdmFsdWU6YVswXX06Yi5uZXh0KHYpO3MmJih4LnZhbHVlPXMoeC52YWx1ZSkpO2xldHtkb25lOnd9PXg7eXx8bnVsbD09PWx8fCh3PXRoaXMuc3BlZWQ+PTA/dGhpcy5jdXJyZW50VGltZT49Yzp0aGlzLmN1cnJlbnRUaW1lPD0wKTtjb25zdCBTPW51bGw9PT10aGlzLmhvbGRUaW1lJiYoXCJmaW5pc2hlZFwiPT09dGhpcy5zdGF0ZXx8XCJydW5uaW5nXCI9PT10aGlzLnN0YXRlJiZ3KTtyZXR1cm4gUyYmdm9pZCAwIT09ciYmKHgudmFsdWU9cWkoYSx0aGlzLm9wdGlvbnMscikpLHAmJnAoeC52YWx1ZSksUyYmdGhpcy5maW5pc2goKSx4fWdldCBkdXJhdGlvbigpe2NvbnN0e3Jlc29sdmVkOmV9PXRoaXM7cmV0dXJuIGU/V2koZS5jYWxjdWxhdGVkRHVyYXRpb24pOjB9Z2V0IHRpbWUoKXtyZXR1cm4gV2kodGhpcy5jdXJyZW50VGltZSl9c2V0IHRpbWUoZSl7ZT1CaShlKSx0aGlzLmN1cnJlbnRUaW1lPWUsbnVsbCE9PXRoaXMuaG9sZFRpbWV8fDA9PT10aGlzLnNwZWVkP3RoaXMuaG9sZFRpbWU9ZTp0aGlzLmRyaXZlciYmKHRoaXMuc3RhcnRUaW1lPXRoaXMuZHJpdmVyLm5vdygpLWUvdGhpcy5zcGVlZCl9Z2V0IHNwZWVkKCl7cmV0dXJuIHRoaXMucGxheWJhY2tTcGVlZH1zZXQgc3BlZWQoZSl7Y29uc3QgdD10aGlzLnBsYXliYWNrU3BlZWQhPT1lO3RoaXMucGxheWJhY2tTcGVlZD1lLHQmJih0aGlzLnRpbWU9V2kodGhpcy5jdXJyZW50VGltZSkpfXBsYXkoKXtpZih0aGlzLnJlc29sdmVyLmlzU2NoZWR1bGVkfHx0aGlzLnJlc29sdmVyLnJlc3VtZSgpLCF0aGlzLl9yZXNvbHZlZClyZXR1cm4gdm9pZCh0aGlzLnBlbmRpbmdQbGF5U3RhdGU9XCJydW5uaW5nXCIpO2lmKHRoaXMuaXNTdG9wcGVkKXJldHVybjtjb25zdHtkcml2ZXI6ZT14bCxvblBsYXk6dCxzdGFydFRpbWU6bn09dGhpcy5vcHRpb25zO3RoaXMuZHJpdmVyfHwodGhpcy5kcml2ZXI9ZSgoZT0+dGhpcy50aWNrKGUpKSkpLHQmJnQoKTtjb25zdCByPXRoaXMuZHJpdmVyLm5vdygpO251bGwhPT10aGlzLmhvbGRUaW1lP3RoaXMuc3RhcnRUaW1lPXItdGhpcy5ob2xkVGltZTp0aGlzLnN0YXJ0VGltZT9cImZpbmlzaGVkXCI9PT10aGlzLnN0YXRlJiYodGhpcy5zdGFydFRpbWU9cik6dGhpcy5zdGFydFRpbWU9bnVsbCE9bj9uOnRoaXMuY2FsY1N0YXJ0VGltZSgpLFwiZmluaXNoZWRcIj09PXRoaXMuc3RhdGUmJnRoaXMudXBkYXRlRmluaXNoZWRQcm9taXNlKCksdGhpcy5jYW5jZWxUaW1lPXRoaXMuc3RhcnRUaW1lLHRoaXMuaG9sZFRpbWU9bnVsbCx0aGlzLnN0YXRlPVwicnVubmluZ1wiLHRoaXMuZHJpdmVyLnN0YXJ0KCl9cGF1c2UoKXt2YXIgZTt0aGlzLl9yZXNvbHZlZD8odGhpcy5zdGF0ZT1cInBhdXNlZFwiLHRoaXMuaG9sZFRpbWU9bnVsbCE9PShlPXRoaXMuY3VycmVudFRpbWUpJiZ2b2lkIDAhPT1lP2U6MCk6dGhpcy5wZW5kaW5nUGxheVN0YXRlPVwicGF1c2VkXCJ9Y29tcGxldGUoKXtcInJ1bm5pbmdcIiE9PXRoaXMuc3RhdGUmJnRoaXMucGxheSgpLHRoaXMucGVuZGluZ1BsYXlTdGF0ZT10aGlzLnN0YXRlPVwiZmluaXNoZWRcIix0aGlzLmhvbGRUaW1lPW51bGx9ZmluaXNoKCl7dGhpcy50ZWFyZG93bigpLHRoaXMuc3RhdGU9XCJmaW5pc2hlZFwiO2NvbnN0e29uQ29tcGxldGU6ZX09dGhpcy5vcHRpb25zO2UmJmUoKX1jYW5jZWwoKXtudWxsIT09dGhpcy5jYW5jZWxUaW1lJiZ0aGlzLnRpY2sodGhpcy5jYW5jZWxUaW1lKSx0aGlzLnRlYXJkb3duKCksdGhpcy51cGRhdGVGaW5pc2hlZFByb21pc2UoKX10ZWFyZG93bigpe3RoaXMuc3RhdGU9XCJpZGxlXCIsdGhpcy5zdG9wRHJpdmVyKCksdGhpcy5yZXNvbHZlRmluaXNoZWRQcm9taXNlKCksdGhpcy51cGRhdGVGaW5pc2hlZFByb21pc2UoKSx0aGlzLnN0YXJ0VGltZT10aGlzLmNhbmNlbFRpbWU9bnVsbCx0aGlzLnJlc29sdmVyLmNhbmNlbCgpfXN0b3BEcml2ZXIoKXt0aGlzLmRyaXZlciYmKHRoaXMuZHJpdmVyLnN0b3AoKSx0aGlzLmRyaXZlcj12b2lkIDApfXNhbXBsZShlKXtyZXR1cm4gdGhpcy5zdGFydFRpbWU9MCx0aGlzLnRpY2soZSwhMCl9fWNvbnN0IEVsPW5ldyBTZXQoW1wib3BhY2l0eVwiLFwiY2xpcFBhdGhcIixcImZpbHRlclwiLFwidHJhbnNmb3JtXCJdKSxDbD1lPT5BcnJheS5pc0FycmF5KGUpJiZcIm51bWJlclwiPT10eXBlb2YgZVswXTtmdW5jdGlvbiBfbChlKXtyZXR1cm4gQm9vbGVhbighZXx8XCJzdHJpbmdcIj09dHlwZW9mIGUmJmUgaW4gT2x8fENsKGUpfHxBcnJheS5pc0FycmF5KGUpJiZlLmV2ZXJ5KF9sKSl9Y29uc3QgUGw9KFtlLHQsbixyXSk9PmBjdWJpYy1iZXppZXIoJHtlfSwgJHt0fSwgJHtufSwgJHtyfSlgLE9sPXtsaW5lYXI6XCJsaW5lYXJcIixlYXNlOlwiZWFzZVwiLGVhc2VJbjpcImVhc2UtaW5cIixlYXNlT3V0OlwiZWFzZS1vdXRcIixlYXNlSW5PdXQ6XCJlYXNlLWluLW91dFwiLGNpcmNJbjpQbChbMCwuNjUsLjU1LDFdKSxjaXJjT3V0OlBsKFsuNTUsMCwxLC40NV0pLGJhY2tJbjpQbChbLjMxLC4wMSwuNjYsLS41OV0pLGJhY2tPdXQ6UGwoWy4zMywxLjUzLC42OSwuOTldKX07ZnVuY3Rpb24gTmwoZSl7cmV0dXJuIFRsKGUpfHxPbC5lYXNlT3V0fWZ1bmN0aW9uIFRsKGUpe3JldHVybiBlP0NsKGUpP1BsKGUpOkFycmF5LmlzQXJyYXkoZSk/ZS5tYXAoTmwpOk9sW2VdOnZvaWQgMH1jb25zdCBNbD14YSgoKCk9Pk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKEVsZW1lbnQucHJvdG90eXBlLFwiYW5pbWF0ZVwiKSkpO2NsYXNzIFJsIGV4dGVuZHMgQ2F7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7Y29uc3R7bmFtZTp0LG1vdGlvblZhbHVlOm4sZWxlbWVudDpyLGtleWZyYW1lczpvfT10aGlzLm9wdGlvbnM7dGhpcy5yZXNvbHZlcj1uZXcgYmEobywoKGUsdCk9PnRoaXMub25LZXlmcmFtZXNSZXNvbHZlZChlLHQpKSx0LG4sciksdGhpcy5yZXNvbHZlci5zY2hlZHVsZVJlc29sdmUoKX1pbml0UGxheWJhY2soZSx0KXt2YXIgbjtsZXR7ZHVyYXRpb246cj0zMDAsdGltZXM6byxlYXNlOmksdHlwZTpzLG1vdGlvblZhbHVlOmEsbmFtZTpsLHN0YXJ0VGltZTpjfT10aGlzLm9wdGlvbnM7aWYoIShudWxsPT09KG49YS5vd25lcil8fHZvaWQgMD09PW4/dm9pZCAwOm4uY3VycmVudCkpcmV0dXJuITE7aWYoXCJzcHJpbmdcIj09PSh1PXRoaXMub3B0aW9ucykudHlwZXx8IV9sKHUuZWFzZSkpe2NvbnN0e29uQ29tcGxldGU6dCxvblVwZGF0ZTpuLG1vdGlvblZhbHVlOmEsZWxlbWVudDpsLC4uLmN9PXRoaXMub3B0aW9ucyx1PWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1uZXcga2woey4uLnQsa2V5ZnJhbWVzOmUscmVwZWF0OjAsZGVsYXk6MCxpc0dlbmVyYXRvcjohMH0pO2xldCByPXtkb25lOiExLHZhbHVlOmVbMF19O2NvbnN0IG89W107bGV0IGk9MDtmb3IoOyFyLmRvbmUmJmk8MmU0OylyPW4uc2FtcGxlKGkpLG8ucHVzaChyLnZhbHVlKSxpKz0xMDtyZXR1cm57dGltZXM6dm9pZCAwLGtleWZyYW1lczpvLGR1cmF0aW9uOmktMTAsZWFzZTpcImxpbmVhclwifX0oZSxjKTsxPT09KGU9dS5rZXlmcmFtZXMpLmxlbmd0aCYmKGVbMV09ZVswXSkscj11LmR1cmF0aW9uLG89dS50aW1lcyxpPXUuZWFzZSxzPVwia2V5ZnJhbWVzXCJ9dmFyIHU7Y29uc3QgZD1mdW5jdGlvbihlLHQsbix7ZGVsYXk6cj0wLGR1cmF0aW9uOm89MzAwLHJlcGVhdDppPTAscmVwZWF0VHlwZTpzPVwibG9vcFwiLGVhc2U6YSx0aW1lczpsfT17fSl7Y29uc3QgYz17W3RdOm59O2wmJihjLm9mZnNldD1sKTtjb25zdCB1PVRsKGEpO3JldHVybiBBcnJheS5pc0FycmF5KHUpJiYoYy5lYXNpbmc9dSksZS5hbmltYXRlKGMse2RlbGF5OnIsZHVyYXRpb246byxlYXNpbmc6QXJyYXkuaXNBcnJheSh1KT9cImxpbmVhclwiOnUsZmlsbDpcImJvdGhcIixpdGVyYXRpb25zOmkrMSxkaXJlY3Rpb246XCJyZXZlcnNlXCI9PT1zP1wiYWx0ZXJuYXRlXCI6XCJub3JtYWxcIn0pfShhLm93bmVyLmN1cnJlbnQsbCxlLHsuLi50aGlzLm9wdGlvbnMsZHVyYXRpb246cix0aW1lczpvLGVhc2U6aX0pO3JldHVybiBkLnN0YXJ0VGltZT1udWxsIT1jP2M6dGhpcy5jYWxjU3RhcnRUaW1lKCksdGhpcy5wZW5kaW5nVGltZWxpbmU/KGQudGltZWxpbmU9dGhpcy5wZW5kaW5nVGltZWxpbmUsdGhpcy5wZW5kaW5nVGltZWxpbmU9dm9pZCAwKTpkLm9uZmluaXNoPSgpPT57Y29uc3R7b25Db21wbGV0ZTpufT10aGlzLm9wdGlvbnM7YS5zZXQocWkoZSx0aGlzLm9wdGlvbnMsdCkpLG4mJm4oKSx0aGlzLmNhbmNlbCgpLHRoaXMucmVzb2x2ZUZpbmlzaGVkUHJvbWlzZSgpfSx7YW5pbWF0aW9uOmQsZHVyYXRpb246cix0aW1lczpvLHR5cGU6cyxlYXNlOmksa2V5ZnJhbWVzOmV9fWdldCBkdXJhdGlvbigpe2NvbnN0e3Jlc29sdmVkOmV9PXRoaXM7aWYoIWUpcmV0dXJuIDA7Y29uc3R7ZHVyYXRpb246dH09ZTtyZXR1cm4gV2kodCl9Z2V0IHRpbWUoKXtjb25zdHtyZXNvbHZlZDplfT10aGlzO2lmKCFlKXJldHVybiAwO2NvbnN0e2FuaW1hdGlvbjp0fT1lO3JldHVybiBXaSh0LmN1cnJlbnRUaW1lfHwwKX1zZXQgdGltZShlKXtjb25zdHtyZXNvbHZlZDp0fT10aGlzO2lmKCF0KXJldHVybjtjb25zdHthbmltYXRpb246bn09dDtuLmN1cnJlbnRUaW1lPUJpKGUpfWdldCBzcGVlZCgpe2NvbnN0e3Jlc29sdmVkOmV9PXRoaXM7aWYoIWUpcmV0dXJuIDE7Y29uc3R7YW5pbWF0aW9uOnR9PWU7cmV0dXJuIHQucGxheWJhY2tSYXRlfXNldCBzcGVlZChlKXtjb25zdHtyZXNvbHZlZDp0fT10aGlzO2lmKCF0KXJldHVybjtjb25zdHthbmltYXRpb246bn09dDtuLnBsYXliYWNrUmF0ZT1lfWdldCBzdGF0ZSgpe2NvbnN0e3Jlc29sdmVkOmV9PXRoaXM7aWYoIWUpcmV0dXJuXCJpZGxlXCI7Y29uc3R7YW5pbWF0aW9uOnR9PWU7cmV0dXJuIHQucGxheVN0YXRlfWdldCBzdGFydFRpbWUoKXtjb25zdHtyZXNvbHZlZDplfT10aGlzO2lmKCFlKXJldHVybiBudWxsO2NvbnN0e2FuaW1hdGlvbjp0fT1lO3JldHVybiB0LnN0YXJ0VGltZX1hdHRhY2hUaW1lbGluZShlKXtpZih0aGlzLl9yZXNvbHZlZCl7Y29uc3R7cmVzb2x2ZWQ6dH09dGhpcztpZighdClyZXR1cm4gR2k7Y29uc3R7YW5pbWF0aW9uOm59PXQ7bi50aW1lbGluZT1lLG4ub25maW5pc2g9bnVsbH1lbHNlIHRoaXMucGVuZGluZ1RpbWVsaW5lPWU7cmV0dXJuIEdpfXBsYXkoKXtpZih0aGlzLmlzU3RvcHBlZClyZXR1cm47Y29uc3R7cmVzb2x2ZWQ6ZX09dGhpcztpZighZSlyZXR1cm47Y29uc3R7YW5pbWF0aW9uOnR9PWU7XCJmaW5pc2hlZFwiPT09dC5wbGF5U3RhdGUmJnRoaXMudXBkYXRlRmluaXNoZWRQcm9taXNlKCksdC5wbGF5KCl9cGF1c2UoKXtjb25zdHtyZXNvbHZlZDplfT10aGlzO2lmKCFlKXJldHVybjtjb25zdHthbmltYXRpb246dH09ZTt0LnBhdXNlKCl9c3RvcCgpe2lmKHRoaXMucmVzb2x2ZXIuY2FuY2VsKCksdGhpcy5pc1N0b3BwZWQ9ITAsXCJpZGxlXCI9PT10aGlzLnN0YXRlKXJldHVybjt0aGlzLnJlc29sdmVGaW5pc2hlZFByb21pc2UoKSx0aGlzLnVwZGF0ZUZpbmlzaGVkUHJvbWlzZSgpO2NvbnN0e3Jlc29sdmVkOmV9PXRoaXM7aWYoIWUpcmV0dXJuO2NvbnN0e2FuaW1hdGlvbjp0LGtleWZyYW1lczpuLGR1cmF0aW9uOnIsdHlwZTpvLGVhc2U6aSx0aW1lczpzfT1lO2lmKFwiaWRsZVwiPT09dC5wbGF5U3RhdGV8fFwiZmluaXNoZWRcIj09PXQucGxheVN0YXRlKXJldHVybjtpZih0aGlzLnRpbWUpe2NvbnN0e21vdGlvblZhbHVlOmUsb25VcGRhdGU6dCxvbkNvbXBsZXRlOmEsZWxlbWVudDpsLC4uLmN9PXRoaXMub3B0aW9ucyx1PW5ldyBrbCh7Li4uYyxrZXlmcmFtZXM6bixkdXJhdGlvbjpyLHR5cGU6byxlYXNlOmksdGltZXM6cyxpc0dlbmVyYXRvcjohMH0pLGQ9QmkodGhpcy50aW1lKTtlLnNldFdpdGhWZWxvY2l0eSh1LnNhbXBsZShkLTEwKS52YWx1ZSx1LnNhbXBsZShkKS52YWx1ZSwxMCl9Y29uc3R7b25TdG9wOmF9PXRoaXMub3B0aW9uczthJiZhKCksdGhpcy5jYW5jZWwoKX1jb21wbGV0ZSgpe2NvbnN0e3Jlc29sdmVkOmV9PXRoaXM7ZSYmZS5hbmltYXRpb24uZmluaXNoKCl9Y2FuY2VsKCl7Y29uc3R7cmVzb2x2ZWQ6ZX09dGhpcztlJiZlLmFuaW1hdGlvbi5jYW5jZWwoKX1zdGF0aWMgc3VwcG9ydHMoZSl7Y29uc3R7bW90aW9uVmFsdWU6dCxuYW1lOm4scmVwZWF0RGVsYXk6cixyZXBlYXRUeXBlOm8sZGFtcGluZzppLHR5cGU6c309ZTtyZXR1cm4gTWwoKSYmbiYmRWwuaGFzKG4pJiZ0JiZ0Lm93bmVyJiZ0Lm93bmVyLmN1cnJlbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmIXQub3duZXIuZ2V0UHJvcHMoKS5vblVwZGF0ZSYmIXImJlwibWlycm9yXCIhPT1vJiYwIT09aSYmXCJpbmVydGlhXCIhPT1zfX1jb25zdCBEbD14YSgoKCk9PnZvaWQgMCE9PXdpbmRvdy5TY3JvbGxUaW1lbGluZSkpO2NsYXNzIGpse2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RvcD0oKT0+dGhpcy5ydW5BbGwoXCJzdG9wXCIpLHRoaXMuYW5pbWF0aW9ucz1lLmZpbHRlcihCb29sZWFuKX10aGVuKGUsdCl7cmV0dXJuIFByb21pc2UuYWxsKHRoaXMuYW5pbWF0aW9ucykudGhlbihlKS5jYXRjaCh0KX1nZXRBbGwoZSl7cmV0dXJuIHRoaXMuYW5pbWF0aW9uc1swXVtlXX1zZXRBbGwoZSx0KXtmb3IobGV0IG49MDtuPHRoaXMuYW5pbWF0aW9ucy5sZW5ndGg7bisrKXRoaXMuYW5pbWF0aW9uc1tuXVtlXT10fWF0dGFjaFRpbWVsaW5lKGUpe2NvbnN0IHQ9dGhpcy5hbmltYXRpb25zLm1hcCgodD0+e2lmKCFEbCgpfHwhdC5hdHRhY2hUaW1lbGluZSlyZXR1cm4gdC5wYXVzZSgpLGZ1bmN0aW9uKGUsbil7bGV0IHI7Y29uc3Qgbz0oKT0+e2NvbnN0e2N1cnJlbnRUaW1lOmV9PW4sbz0obnVsbD09PWU/MDplLnZhbHVlKS8xMDA7ciE9PW8mJihlPT57dC50aW1lPXQuZHVyYXRpb24qZX0pKG8pLHI9b307cmV0dXJuIEppLnVwZGF0ZShvLCEwKSwoKT0+UWkobyl9KDAsZSk7dC5hdHRhY2hUaW1lbGluZShlKX0pKTtyZXR1cm4oKT0+e3QuZm9yRWFjaCgoKGUsdCk9PntlJiZlKCksdGhpcy5hbmltYXRpb25zW3RdLnN0b3AoKX0pKX19Z2V0IHRpbWUoKXtyZXR1cm4gdGhpcy5nZXRBbGwoXCJ0aW1lXCIpfXNldCB0aW1lKGUpe3RoaXMuc2V0QWxsKFwidGltZVwiLGUpfWdldCBzcGVlZCgpe3JldHVybiB0aGlzLmdldEFsbChcInNwZWVkXCIpfXNldCBzcGVlZChlKXt0aGlzLnNldEFsbChcInNwZWVkXCIsZSl9Z2V0IHN0YXJ0VGltZSgpe3JldHVybiB0aGlzLmdldEFsbChcInN0YXJ0VGltZVwiKX1nZXQgZHVyYXRpb24oKXtsZXQgZT0wO2ZvcihsZXQgdD0wO3Q8dGhpcy5hbmltYXRpb25zLmxlbmd0aDt0KyspZT1NYXRoLm1heChlLHRoaXMuYW5pbWF0aW9uc1t0XS5kdXJhdGlvbik7cmV0dXJuIGV9cnVuQWxsKGUpe3RoaXMuYW5pbWF0aW9ucy5mb3JFYWNoKCh0PT50W2VdKCkpKX1wbGF5KCl7dGhpcy5ydW5BbGwoXCJwbGF5XCIpfXBhdXNlKCl7dGhpcy5ydW5BbGwoXCJwYXVzZVwiKX1jYW5jZWwoKXt0aGlzLnJ1bkFsbChcImNhbmNlbFwiKX1jb21wbGV0ZSgpe3RoaXMucnVuQWxsKFwiY29tcGxldGVcIil9fWNvbnN0IEFsPShlLHQsbixyPXt9LG8saSxzKT0+YT0+e2NvbnN0IGw9SGkocixlKXx8e30sYz1sLmRlbGF5fHxyLmRlbGF5fHwwO2xldHtlbGFwc2VkOnU9MH09cjt1LT1CaShjKTtsZXQgZD17a2V5ZnJhbWVzOkFycmF5LmlzQXJyYXkobik/bjpbbnVsbCxuXSxlYXNlOlwiZWFzZU91dFwiLHZlbG9jaXR5OnQuZ2V0VmVsb2NpdHkoKSwuLi5sLGRlbGF5Oi11LG9uVXBkYXRlOmU9Pnt0LnNldChlKSxsLm9uVXBkYXRlJiZsLm9uVXBkYXRlKGUpfSxvbkNvbXBsZXRlOigpPT57YSgpLGwub25Db21wbGV0ZSYmbC5vbkNvbXBsZXRlKCkscyYmcygpfSxvblN0b3A6cyxuYW1lOmUsbW90aW9uVmFsdWU6dCxlbGVtZW50Omk/dm9pZCAwOm99OyhmdW5jdGlvbih7d2hlbjplLGRlbGF5OnQsZGVsYXlDaGlsZHJlbjpuLHN0YWdnZXJDaGlsZHJlbjpyLHN0YWdnZXJEaXJlY3Rpb246byxyZXBlYXQ6aSxyZXBlYXRUeXBlOnMscmVwZWF0RGVsYXk6YSxmcm9tOmwsZWxhcHNlZDpjLC4uLnV9KXtyZXR1cm4hIU9iamVjdC5rZXlzKHUpLmxlbmd0aH0pKGwpfHwoZD17Li4uZCwuLi5ZaShlLGQpfSksZC5kdXJhdGlvbiYmKGQuZHVyYXRpb249QmkoZC5kdXJhdGlvbikpLGQucmVwZWF0RGVsYXkmJihkLnJlcGVhdERlbGF5PUJpKGQucmVwZWF0RGVsYXkpKSx2b2lkIDAhPT1kLmZyb20mJihkLmtleWZyYW1lc1swXT1kLmZyb20pO2xldCBmPSExO2lmKCghMT09PWQudHlwZXx8MD09PWQuZHVyYXRpb24mJiFkLnJlcGVhdERlbGF5KSYmKGQuZHVyYXRpb249MCwwPT09ZC5kZWxheSYmKGY9ITApKSxmJiYhaSYmdm9pZCAwIT09dC5nZXQoKSl7Y29uc3QgZT1xaShkLmtleWZyYW1lcyxsKTtpZih2b2lkIDAhPT1lKXJldHVybiBKaS51cGRhdGUoKCgpPT57ZC5vblVwZGF0ZShlKSxkLm9uQ29tcGxldGUoKX0pKSxuZXcgamwoW10pfXJldHVybiFpJiZSbC5zdXBwb3J0cyhkKT9uZXcgUmwoZCk6bmV3IGtsKGQpfSxJbD1lPT5Cb29sZWFuKGUmJlwib2JqZWN0XCI9PXR5cGVvZiBlJiZlLm1peCYmZS50b1ZhbHVlKSxMbD1lPT5UaShlKT9lW2UubGVuZ3RoLTFdfHwwOmU7ZnVuY3Rpb24gRmwoZSx0KXstMT09PWUuaW5kZXhPZih0KSYmZS5wdXNoKHQpfWZ1bmN0aW9uIHpsKGUsdCl7Y29uc3Qgbj1lLmluZGV4T2YodCk7bj4tMSYmZS5zcGxpY2UobiwxKX1jbGFzcyBCbHtjb25zdHJ1Y3Rvcigpe3RoaXMuc3Vic2NyaXB0aW9ucz1bXX1hZGQoZSl7cmV0dXJuIEZsKHRoaXMuc3Vic2NyaXB0aW9ucyxlKSwoKT0+emwodGhpcy5zdWJzY3JpcHRpb25zLGUpfW5vdGlmeShlLHQsbil7Y29uc3Qgcj10aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoO2lmKHIpaWYoMT09PXIpdGhpcy5zdWJzY3JpcHRpb25zWzBdKGUsdCxuKTtlbHNlIGZvcihsZXQgbz0wO288cjtvKyspe2NvbnN0IHI9dGhpcy5zdWJzY3JpcHRpb25zW29dO3ImJnIoZSx0LG4pfX1nZXRTaXplKCl7cmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGh9Y2xlYXIoKXt0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoPTB9fWNvbnN0IFdsPXtjdXJyZW50OnZvaWQgMH07Y2xhc3MgVmx7Y29uc3RydWN0b3IoZSx0PXt9KXt0aGlzLnZlcnNpb249XCIxMS40LjBcIix0aGlzLmNhblRyYWNrVmVsb2NpdHk9bnVsbCx0aGlzLmV2ZW50cz17fSx0aGlzLnVwZGF0ZUFuZE5vdGlmeT0oZSx0PSEwKT0+e2NvbnN0IG49a2Eubm93KCk7dGhpcy51cGRhdGVkQXQhPT1uJiZ0aGlzLnNldFByZXZGcmFtZVZhbHVlKCksdGhpcy5wcmV2PXRoaXMuY3VycmVudCx0aGlzLnNldEN1cnJlbnQoZSksdGhpcy5jdXJyZW50IT09dGhpcy5wcmV2JiZ0aGlzLmV2ZW50cy5jaGFuZ2UmJnRoaXMuZXZlbnRzLmNoYW5nZS5ub3RpZnkodGhpcy5jdXJyZW50KSx0JiZ0aGlzLmV2ZW50cy5yZW5kZXJSZXF1ZXN0JiZ0aGlzLmV2ZW50cy5yZW5kZXJSZXF1ZXN0Lm5vdGlmeSh0aGlzLmN1cnJlbnQpfSx0aGlzLmhhc0FuaW1hdGVkPSExLHRoaXMuc2V0Q3VycmVudChlKSx0aGlzLm93bmVyPXQub3duZXJ9c2V0Q3VycmVudChlKXt2YXIgdDt0aGlzLmN1cnJlbnQ9ZSx0aGlzLnVwZGF0ZWRBdD1rYS5ub3coKSxudWxsPT09dGhpcy5jYW5UcmFja1ZlbG9jaXR5JiZ2b2lkIDAhPT1lJiYodGhpcy5jYW5UcmFja1ZlbG9jaXR5PSh0PXRoaXMuY3VycmVudCwhaXNOYU4ocGFyc2VGbG9hdCh0KSkpKX1zZXRQcmV2RnJhbWVWYWx1ZShlPXRoaXMuY3VycmVudCl7dGhpcy5wcmV2RnJhbWVWYWx1ZT1lLHRoaXMucHJldlVwZGF0ZWRBdD10aGlzLnVwZGF0ZWRBdH1vbkNoYW5nZShlKXtyZXR1cm4gdGhpcy5vbihcImNoYW5nZVwiLGUpfW9uKGUsdCl7dGhpcy5ldmVudHNbZV18fCh0aGlzLmV2ZW50c1tlXT1uZXcgQmwpO2NvbnN0IG49dGhpcy5ldmVudHNbZV0uYWRkKHQpO3JldHVyblwiY2hhbmdlXCI9PT1lPygpPT57bigpLEppLnJlYWQoKCgpPT57dGhpcy5ldmVudHMuY2hhbmdlLmdldFNpemUoKXx8dGhpcy5zdG9wKCl9KSl9Om59Y2xlYXJMaXN0ZW5lcnMoKXtmb3IoY29uc3QgZSBpbiB0aGlzLmV2ZW50cyl0aGlzLmV2ZW50c1tlXS5jbGVhcigpfWF0dGFjaChlLHQpe3RoaXMucGFzc2l2ZUVmZmVjdD1lLHRoaXMuc3RvcFBhc3NpdmVFZmZlY3Q9dH1zZXQoZSx0PSEwKXt0JiZ0aGlzLnBhc3NpdmVFZmZlY3Q/dGhpcy5wYXNzaXZlRWZmZWN0KGUsdGhpcy51cGRhdGVBbmROb3RpZnkpOnRoaXMudXBkYXRlQW5kTm90aWZ5KGUsdCl9c2V0V2l0aFZlbG9jaXR5KGUsdCxuKXt0aGlzLnNldCh0KSx0aGlzLnByZXY9dm9pZCAwLHRoaXMucHJldkZyYW1lVmFsdWU9ZSx0aGlzLnByZXZVcGRhdGVkQXQ9dGhpcy51cGRhdGVkQXQtbn1qdW1wKGUsdD0hMCl7dGhpcy51cGRhdGVBbmROb3RpZnkoZSksdGhpcy5wcmV2PWUsdGhpcy5wcmV2VXBkYXRlZEF0PXRoaXMucHJldkZyYW1lVmFsdWU9dm9pZCAwLHQmJnRoaXMuc3RvcCgpLHRoaXMuc3RvcFBhc3NpdmVFZmZlY3QmJnRoaXMuc3RvcFBhc3NpdmVFZmZlY3QoKX1nZXQoKXtyZXR1cm4gV2wuY3VycmVudCYmV2wuY3VycmVudC5wdXNoKHRoaXMpLHRoaXMuY3VycmVudH1nZXRQcmV2aW91cygpe3JldHVybiB0aGlzLnByZXZ9Z2V0VmVsb2NpdHkoKXtjb25zdCBlPWthLm5vdygpO2lmKCF0aGlzLmNhblRyYWNrVmVsb2NpdHl8fHZvaWQgMD09PXRoaXMucHJldkZyYW1lVmFsdWV8fGUtdGhpcy51cGRhdGVkQXQ+MzApcmV0dXJuIDA7Y29uc3QgdD1NYXRoLm1pbih0aGlzLnVwZGF0ZWRBdC10aGlzLnByZXZVcGRhdGVkQXQsMzApO3JldHVybiBfYShwYXJzZUZsb2F0KHRoaXMuY3VycmVudCktcGFyc2VGbG9hdCh0aGlzLnByZXZGcmFtZVZhbHVlKSx0KX1zdGFydChlKXtyZXR1cm4gdGhpcy5zdG9wKCksbmV3IFByb21pc2UoKHQ9Pnt0aGlzLmhhc0FuaW1hdGVkPSEwLHRoaXMuYW5pbWF0aW9uPWUodCksdGhpcy5ldmVudHMuYW5pbWF0aW9uU3RhcnQmJnRoaXMuZXZlbnRzLmFuaW1hdGlvblN0YXJ0Lm5vdGlmeSgpfSkpLnRoZW4oKCgpPT57dGhpcy5ldmVudHMuYW5pbWF0aW9uQ29tcGxldGUmJnRoaXMuZXZlbnRzLmFuaW1hdGlvbkNvbXBsZXRlLm5vdGlmeSgpLHRoaXMuY2xlYXJBbmltYXRpb24oKX0pKX1zdG9wKCl7dGhpcy5hbmltYXRpb24mJih0aGlzLmFuaW1hdGlvbi5zdG9wKCksdGhpcy5ldmVudHMuYW5pbWF0aW9uQ2FuY2VsJiZ0aGlzLmV2ZW50cy5hbmltYXRpb25DYW5jZWwubm90aWZ5KCkpLHRoaXMuY2xlYXJBbmltYXRpb24oKX1pc0FuaW1hdGluZygpe3JldHVybiEhdGhpcy5hbmltYXRpb259Y2xlYXJBbmltYXRpb24oKXtkZWxldGUgdGhpcy5hbmltYXRpb259ZGVzdHJveSgpe3RoaXMuY2xlYXJMaXN0ZW5lcnMoKSx0aGlzLnN0b3AoKSx0aGlzLnN0b3BQYXNzaXZlRWZmZWN0JiZ0aGlzLnN0b3BQYXNzaXZlRWZmZWN0KCl9fWZ1bmN0aW9uIFVsKGUsdCl7cmV0dXJuIG5ldyBWbChlLHQpfWZ1bmN0aW9uICRsKGUsdCxuKXtlLmhhc1ZhbHVlKHQpP2UuZ2V0VmFsdWUodCkuc2V0KG4pOmUuYWRkVmFsdWUodCxVbChuKSl9Y29uc3QgWWw9ZT0+ZS5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9ndSxcIiQxLSQyXCIpLnRvTG93ZXJDYXNlKCksSGw9XCJkYXRhLVwiK1lsKFwiZnJhbWVyQXBwZWFySWRcIik7ZnVuY3Rpb24gS2woZSl7cmV0dXJuIGUucHJvcHNbSGxdfWZ1bmN0aW9uIHFsKGUpe3JldHVybiB6aS5oYXMoZSk/XCJ0cmFuc2Zvcm1cIjpFbC5oYXMoZSk/WWwoZSk6dm9pZCAwfWNsYXNzIEdsIGV4dGVuZHMgVmx7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMub3V0cHV0PVtdLHRoaXMuY291bnRzPW5ldyBNYXB9YWRkKGUpe2NvbnN0IHQ9cWwoZSk7aWYoIXQpcmV0dXJuO2NvbnN0IG49dGhpcy5jb3VudHMuZ2V0KHQpfHwwO3RoaXMuY291bnRzLnNldCh0LG4rMSksMD09PW4mJih0aGlzLm91dHB1dC5wdXNoKHQpLHRoaXMudXBkYXRlKCkpO2xldCByPSExO3JldHVybigpPT57aWYocilyZXR1cm47cj0hMDtjb25zdCBlPXRoaXMuY291bnRzLmdldCh0KS0xO3RoaXMuY291bnRzLnNldCh0LGUpLDA9PT1lJiYoemwodGhpcy5vdXRwdXQsdCksdGhpcy51cGRhdGUoKSl9fXVwZGF0ZSgpe3RoaXMuc2V0KHRoaXMub3V0cHV0Lmxlbmd0aD90aGlzLm91dHB1dC5qb2luKFwiLCBcIik6XCJhdXRvXCIpfX1jb25zdCBYbD1lPT5Cb29sZWFuKGUmJmUuZ2V0VmVsb2NpdHkpO2Z1bmN0aW9uIFpsKGUsdCl7dmFyIG47aWYoIWUuYXBwbHlXaWxsQ2hhbmdlKXJldHVybjtsZXQgcj1lLmdldFZhbHVlKFwid2lsbENoYW5nZVwiKTtyZXR1cm4gcnx8KG51bGw9PT0obj1lLnByb3BzLnN0eWxlKXx8dm9pZCAwPT09bj92b2lkIDA6bi53aWxsQ2hhbmdlKXx8KHI9bmV3IEdsKFwiYXV0b1wiKSxlLmFkZFZhbHVlKFwid2lsbENoYW5nZVwiLHIpKSxvPXIsQm9vbGVhbihYbChvKSYmby5hZGQpP3IuYWRkKHQpOnZvaWQgMDt2YXIgb31mdW5jdGlvbiBKbCh7cHJvdGVjdGVkS2V5czplLG5lZWRzQW5pbWF0aW5nOnR9LG4pe2NvbnN0IHI9ZS5oYXNPd25Qcm9wZXJ0eShuKSYmITAhPT10W25dO3JldHVybiB0W25dPSExLHJ9ZnVuY3Rpb24gUWwoZSx0LHtkZWxheTpuPTAsdHJhbnNpdGlvbk92ZXJyaWRlOnIsdHlwZTpvfT17fSl7dmFyIGk7bGV0e3RyYW5zaXRpb246cz1lLmdldERlZmF1bHRUcmFuc2l0aW9uKCksdHJhbnNpdGlvbkVuZDphLC4uLmx9PXQ7ciYmKHM9cik7Y29uc3QgYz1bXSx1PW8mJmUuYW5pbWF0aW9uU3RhdGUmJmUuYW5pbWF0aW9uU3RhdGUuZ2V0U3RhdGUoKVtvXTtmb3IoY29uc3QgdCBpbiBsKXtjb25zdCByPWUuZ2V0VmFsdWUodCxudWxsIT09KGk9ZS5sYXRlc3RWYWx1ZXNbdF0pJiZ2b2lkIDAhPT1pP2k6bnVsbCksbz1sW3RdO2lmKHZvaWQgMD09PW98fHUmJkpsKHUsdCkpY29udGludWU7Y29uc3QgYT17ZGVsYXk6biwuLi5IaShzfHx7fSx0KX07bGV0IGQ9ITE7aWYod2luZG93Lk1vdGlvbkhhbmRvZmZBbmltYXRpb24pe2NvbnN0IG49S2woZSk7aWYobil7Y29uc3QgZT13aW5kb3cuTW90aW9uSGFuZG9mZkFuaW1hdGlvbihuLHQsSmkpO251bGwhPT1lJiYoYS5zdGFydFRpbWU9ZSxkPSEwKX19ci5zdGFydChBbCh0LHIsbyxlLnNob3VsZFJlZHVjZU1vdGlvbiYmemkuaGFzKHQpP3t0eXBlOiExfTphLGUsZCxabChlLHQpKSk7Y29uc3QgZj1yLmFuaW1hdGlvbjtmJiZjLnB1c2goZil9cmV0dXJuIGEmJlByb21pc2UuYWxsKGMpLnRoZW4oKCgpPT57SmkudXBkYXRlKCgoKT0+e2EmJmZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1BaShlLHQpO2xldHt0cmFuc2l0aW9uRW5kOnI9e30sdHJhbnNpdGlvbjpvPXt9LC4uLml9PW58fHt9O2k9ey4uLmksLi4ucn07Zm9yKGNvbnN0IHQgaW4gaSkkbChlLHQsTGwoaVt0XSkpfShlLGEpfSkpfSkpLGN9ZnVuY3Rpb24gZWMoZSx0LG49e30pe3ZhciByO2NvbnN0IG89QWkoZSx0LFwiZXhpdFwiPT09bi50eXBlP251bGw9PT0ocj1lLnByZXNlbmNlQ29udGV4dCl8fHZvaWQgMD09PXI/dm9pZCAwOnIuY3VzdG9tOnZvaWQgMCk7bGV0e3RyYW5zaXRpb246aT1lLmdldERlZmF1bHRUcmFuc2l0aW9uKCl8fHt9fT1vfHx7fTtuLnRyYW5zaXRpb25PdmVycmlkZSYmKGk9bi50cmFuc2l0aW9uT3ZlcnJpZGUpO2NvbnN0IHM9bz8oKT0+UHJvbWlzZS5hbGwoUWwoZSxvLG4pKTooKT0+UHJvbWlzZS5yZXNvbHZlKCksYT1lLnZhcmlhbnRDaGlsZHJlbiYmZS52YXJpYW50Q2hpbGRyZW4uc2l6ZT8ocj0wKT0+e2NvbnN0e2RlbGF5Q2hpbGRyZW46bz0wLHN0YWdnZXJDaGlsZHJlbjpzLHN0YWdnZXJEaXJlY3Rpb246YX09aTtyZXR1cm4gZnVuY3Rpb24oZSx0LG49MCxyPTAsbz0xLGkpe2NvbnN0IHM9W10sYT0oZS52YXJpYW50Q2hpbGRyZW4uc2l6ZS0xKSpyLGw9MT09PW8/KGU9MCk9PmUqcjooZT0wKT0+YS1lKnI7cmV0dXJuIEFycmF5LmZyb20oZS52YXJpYW50Q2hpbGRyZW4pLnNvcnQodGMpLmZvckVhY2goKChlLHIpPT57ZS5ub3RpZnkoXCJBbmltYXRpb25TdGFydFwiLHQpLHMucHVzaChlYyhlLHQsey4uLmksZGVsYXk6bitsKHIpfSkudGhlbigoKCk9PmUubm90aWZ5KFwiQW5pbWF0aW9uQ29tcGxldGVcIix0KSkpKX0pKSxQcm9taXNlLmFsbChzKX0oZSx0LG8rcixzLGEsbil9OigpPT5Qcm9taXNlLnJlc29sdmUoKSx7d2hlbjpsfT1pO2lmKGwpe2NvbnN0W2UsdF09XCJiZWZvcmVDaGlsZHJlblwiPT09bD9bcyxhXTpbYSxzXTtyZXR1cm4gZSgpLnRoZW4oKCgpPT50KCkpKX1yZXR1cm4gUHJvbWlzZS5hbGwoW3MoKSxhKG4uZGVsYXkpXSl9ZnVuY3Rpb24gdGMoZSx0KXtyZXR1cm4gZS5zb3J0Tm9kZVBvc2l0aW9uKHQpfWNvbnN0IG5jPVsuLi5JaV0ucmV2ZXJzZSgpLHJjPUlpLmxlbmd0aDtmdW5jdGlvbiBvYyhlPSExKXtyZXR1cm57aXNBY3RpdmU6ZSxwcm90ZWN0ZWRLZXlzOnt9LG5lZWRzQW5pbWF0aW5nOnt9LHByZXZSZXNvbHZlZFZhbHVlczp7fX19ZnVuY3Rpb24gaWMoKXtyZXR1cm57YW5pbWF0ZTpvYyghMCksd2hpbGVJblZpZXc6b2MoKSx3aGlsZUhvdmVyOm9jKCksd2hpbGVUYXA6b2MoKSx3aGlsZURyYWc6b2MoKSx3aGlsZUZvY3VzOm9jKCksZXhpdDpvYygpfX1jbGFzcyBzY3tjb25zdHJ1Y3RvcihlKXt0aGlzLmlzTW91bnRlZD0hMSx0aGlzLm5vZGU9ZX11cGRhdGUoKXt9fWxldCBhYz0wO2NvbnN0IGxjPXthbmltYXRpb246e0ZlYXR1cmU6Y2xhc3MgZXh0ZW5kcyBzY3tjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSxlLmFuaW1hdGlvblN0YXRlfHwoZS5hbmltYXRpb25TdGF0ZT1mdW5jdGlvbihlKXtsZXQgdD1mdW5jdGlvbihlKXtyZXR1cm4gdD0+UHJvbWlzZS5hbGwodC5tYXAoKCh7YW5pbWF0aW9uOnQsb3B0aW9uczpufSk9PmZ1bmN0aW9uKGUsdCxuPXt9KXtsZXQgcjtpZihlLm5vdGlmeShcIkFuaW1hdGlvblN0YXJ0XCIsdCksQXJyYXkuaXNBcnJheSh0KSl7Y29uc3Qgbz10Lm1hcCgodD0+ZWMoZSx0LG4pKSk7cj1Qcm9taXNlLmFsbChvKX1lbHNlIGlmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXI9ZWMoZSx0LG4pO2Vsc2V7Y29uc3Qgbz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P0FpKGUsdCxuLmN1c3RvbSk6dDtyPVByb21pc2UuYWxsKFFsKGUsbyxuKSl9cmV0dXJuIHIudGhlbigoKCk9PntlLm5vdGlmeShcIkFuaW1hdGlvbkNvbXBsZXRlXCIsdCl9KSl9KGUsdCxuKSkpKX0oZSksbj1pYygpLHI9ITA7Y29uc3Qgbz10PT4obixyKT0+e3ZhciBvO2NvbnN0IGk9QWkoZSxyLFwiZXhpdFwiPT09dD9udWxsPT09KG89ZS5wcmVzZW5jZUNvbnRleHQpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLmN1c3RvbTp2b2lkIDApO2lmKGkpe2NvbnN0e3RyYW5zaXRpb246ZSx0cmFuc2l0aW9uRW5kOnQsLi4ucn09aTtuPXsuLi5uLC4uLnIsLi4udH19cmV0dXJuIG59O2Z1bmN0aW9uIGkoaSl7Y29uc3Qgcz1lLmdldFByb3BzKCksYT1lLmdldFZhcmlhbnRDb250ZXh0KCEwKXx8e30sbD1bXSxjPW5ldyBTZXQ7bGV0IHU9e30sZD0xLzA7Zm9yKGxldCB0PTA7dDxyYzt0Kyspe2NvbnN0IGg9bmNbdF0scD1uW2hdLGc9dm9pZCAwIT09c1toXT9zW2hdOmFbaF0seT1SaShnKSx2PWg9PT1pP3AuaXNBY3RpdmU6bnVsbDshMT09PXYmJihkPXQpO2xldCBiPWc9PT1hW2hdJiZnIT09c1toXSYmeTtpZihiJiZyJiZlLm1hbnVhbGx5QW5pbWF0ZU9uTW91bnQmJihiPSExKSxwLnByb3RlY3RlZEtleXM9ey4uLnV9LCFwLmlzQWN0aXZlJiZudWxsPT09dnx8IWcmJiFwLnByZXZQcm9wfHxOaShnKXx8XCJib29sZWFuXCI9PXR5cGVvZiBnKWNvbnRpbnVlO2xldCB4PShmPXAucHJldlByb3AsKFwic3RyaW5nXCI9PXR5cGVvZihtPWcpP20hPT1mOiEhQXJyYXkuaXNBcnJheShtKSYmIU1pKG0sZikpfHxoPT09aSYmcC5pc0FjdGl2ZSYmIWImJnl8fHQ+ZCYmeSksdz0hMTtjb25zdCBTPUFycmF5LmlzQXJyYXkoZyk/ZzpbZ107bGV0IGs9Uy5yZWR1Y2UobyhoKSx7fSk7ITE9PT12JiYoaz17fSk7Y29uc3R7cHJldlJlc29sdmVkVmFsdWVzOkU9e319PXAsQz17Li4uRSwuLi5rfSxfPXQ9Pnt4PSEwLGMuaGFzKHQpJiYodz0hMCxjLmRlbGV0ZSh0KSkscC5uZWVkc0FuaW1hdGluZ1t0XT0hMDtjb25zdCBuPWUuZ2V0VmFsdWUodCk7biYmKG4ubGl2ZVN0eWxlPSExKX07Zm9yKGNvbnN0IGUgaW4gQyl7Y29uc3QgdD1rW2VdLG49RVtlXTtpZih1Lmhhc093blByb3BlcnR5KGUpKWNvbnRpbnVlO2xldCByPSExO3I9VGkodCkmJlRpKG4pPyFNaSh0LG4pOnQhPT1uLHI/bnVsbCE9dD9fKGUpOmMuYWRkKGUpOnZvaWQgMCE9PXQmJmMuaGFzKGUpP18oZSk6cC5wcm90ZWN0ZWRLZXlzW2VdPSEwfXAucHJldlByb3A9ZyxwLnByZXZSZXNvbHZlZFZhbHVlcz1rLHAuaXNBY3RpdmUmJih1PXsuLi51LC4uLmt9KSxyJiZlLmJsb2NrSW5pdGlhbEFuaW1hdGlvbiYmKHg9ITEpLCF4fHxiJiYhd3x8bC5wdXNoKC4uLlMubWFwKChlPT4oe2FuaW1hdGlvbjplLG9wdGlvbnM6e3R5cGU6aH19KSkpKX12YXIgZixtO2lmKGMuc2l6ZSl7Y29uc3QgdD17fTtjLmZvckVhY2goKG49Pntjb25zdCByPWUuZ2V0QmFzZVRhcmdldChuKSxvPWUuZ2V0VmFsdWUobik7byYmKG8ubGl2ZVN0eWxlPSEwKSx0W25dPW51bGwhPXI/cjpudWxsfSkpLGwucHVzaCh7YW5pbWF0aW9uOnR9KX1sZXQgaD1Cb29sZWFuKGwubGVuZ3RoKTtyZXR1cm4hcnx8ITEhPT1zLmluaXRpYWwmJnMuaW5pdGlhbCE9PXMuYW5pbWF0ZXx8ZS5tYW51YWxseUFuaW1hdGVPbk1vdW50fHwoaD0hMSkscj0hMSxoP3QobCk6UHJvbWlzZS5yZXNvbHZlKCl9cmV0dXJue2FuaW1hdGVDaGFuZ2VzOmksc2V0QWN0aXZlOmZ1bmN0aW9uKHQscil7dmFyIG87aWYoblt0XS5pc0FjdGl2ZT09PXIpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO251bGw9PT0obz1lLnZhcmlhbnRDaGlsZHJlbil8fHZvaWQgMD09PW98fG8uZm9yRWFjaCgoZT0+e3ZhciBuO3JldHVybiBudWxsPT09KG49ZS5hbmltYXRpb25TdGF0ZSl8fHZvaWQgMD09PW4/dm9pZCAwOm4uc2V0QWN0aXZlKHQscil9KSksblt0XS5pc0FjdGl2ZT1yO2NvbnN0IHM9aSh0KTtmb3IoY29uc3QgZSBpbiBuKW5bZV0ucHJvdGVjdGVkS2V5cz17fTtyZXR1cm4gc30sc2V0QW5pbWF0ZUZ1bmN0aW9uOmZ1bmN0aW9uKG4pe3Q9bihlKX0sZ2V0U3RhdGU6KCk9Pm4scmVzZXQ6KCk9PntuPWljKCkscj0hMH19fShlKSl9dXBkYXRlQW5pbWF0aW9uQ29udHJvbHNTdWJzY3JpcHRpb24oKXtjb25zdHthbmltYXRlOmV9PXRoaXMubm9kZS5nZXRQcm9wcygpO05pKGUpJiYodGhpcy51bm1vdW50Q29udHJvbHM9ZS5zdWJzY3JpYmUodGhpcy5ub2RlKSl9bW91bnQoKXt0aGlzLnVwZGF0ZUFuaW1hdGlvbkNvbnRyb2xzU3Vic2NyaXB0aW9uKCl9dXBkYXRlKCl7Y29uc3R7YW5pbWF0ZTplfT10aGlzLm5vZGUuZ2V0UHJvcHMoKSx7YW5pbWF0ZTp0fT10aGlzLm5vZGUucHJldlByb3BzfHx7fTtlIT09dCYmdGhpcy51cGRhdGVBbmltYXRpb25Db250cm9sc1N1YnNjcmlwdGlvbigpfXVubW91bnQoKXt2YXIgZTt0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUucmVzZXQoKSxudWxsPT09KGU9dGhpcy51bm1vdW50Q29udHJvbHMpfHx2b2lkIDA9PT1lfHxlLmNhbGwodGhpcyl9fX0sZXhpdDp7RmVhdHVyZTpjbGFzcyBleHRlbmRzIHNje2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmlkPWFjKyt9dXBkYXRlKCl7aWYoIXRoaXMubm9kZS5wcmVzZW5jZUNvbnRleHQpcmV0dXJuO2NvbnN0e2lzUHJlc2VudDplLG9uRXhpdENvbXBsZXRlOnR9PXRoaXMubm9kZS5wcmVzZW5jZUNvbnRleHQse2lzUHJlc2VudDpufT10aGlzLm5vZGUucHJldlByZXNlbmNlQ29udGV4dHx8e307aWYoIXRoaXMubm9kZS5hbmltYXRpb25TdGF0ZXx8ZT09PW4pcmV0dXJuO2NvbnN0IHI9dGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZShcImV4aXRcIiwhZSk7dCYmIWUmJnIudGhlbigoKCk9PnQodGhpcy5pZCkpKX1tb3VudCgpe2NvbnN0e3JlZ2lzdGVyOmV9PXRoaXMubm9kZS5wcmVzZW5jZUNvbnRleHR8fHt9O2UmJih0aGlzLnVubW91bnQ9ZSh0aGlzLmlkKSl9dW5tb3VudCgpe319fX0sY2M9ZT0+XCJtb3VzZVwiPT09ZS5wb2ludGVyVHlwZT9cIm51bWJlclwiIT10eXBlb2YgZS5idXR0b258fGUuYnV0dG9uPD0wOiExIT09ZS5pc1ByaW1hcnk7ZnVuY3Rpb24gdWMoZSx0PVwicGFnZVwiKXtyZXR1cm57cG9pbnQ6e3g6ZVtgJHt0fVhgXSx5OmVbYCR7dH1ZYF19fX1jb25zdCBkYz1lPT50PT5jYyh0KSYmZSh0LHVjKHQpKTtmdW5jdGlvbiBmYyhlLHQsbixyPXtwYXNzaXZlOiEwfSl7cmV0dXJuIGUuYWRkRXZlbnRMaXN0ZW5lcih0LG4sciksKCk9PmUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4pfWZ1bmN0aW9uIG1jKGUsdCxuLHIpe3JldHVybiBmYyhlLHQsZGMobikscil9Y29uc3QgaGM9KGUsdCk9Pk1hdGguYWJzKGUtdCk7Y2xhc3MgcGN7Y29uc3RydWN0b3IoZSx0LHt0cmFuc2Zvcm1QYWdlUG9pbnQ6bixjb250ZXh0V2luZG93OnIsZHJhZ1NuYXBUb09yaWdpbjpvPSExfT17fSl7aWYodGhpcy5zdGFydEV2ZW50PW51bGwsdGhpcy5sYXN0TW92ZUV2ZW50PW51bGwsdGhpcy5sYXN0TW92ZUV2ZW50SW5mbz1udWxsLHRoaXMuaGFuZGxlcnM9e30sdGhpcy5jb250ZXh0V2luZG93PXdpbmRvdyx0aGlzLnVwZGF0ZVBvaW50PSgpPT57aWYoIXRoaXMubGFzdE1vdmVFdmVudHx8IXRoaXMubGFzdE1vdmVFdmVudEluZm8pcmV0dXJuO2NvbnN0IGU9dmModGhpcy5sYXN0TW92ZUV2ZW50SW5mbyx0aGlzLmhpc3RvcnkpLHQ9bnVsbCE9PXRoaXMuc3RhcnRFdmVudCxuPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1oYyhlLngsdC54KSxyPWhjKGUueSx0LnkpO3JldHVybiBNYXRoLnNxcnQobioqMityKioyKX0oZS5vZmZzZXQse3g6MCx5OjB9KT49MztpZighdCYmIW4pcmV0dXJuO2NvbnN0e3BvaW50OnJ9PWUse3RpbWVzdGFtcDpvfT1lczt0aGlzLmhpc3RvcnkucHVzaCh7Li4ucix0aW1lc3RhbXA6b30pO2NvbnN0e29uU3RhcnQ6aSxvbk1vdmU6c309dGhpcy5oYW5kbGVyczt0fHwoaSYmaSh0aGlzLmxhc3RNb3ZlRXZlbnQsZSksdGhpcy5zdGFydEV2ZW50PXRoaXMubGFzdE1vdmVFdmVudCkscyYmcyh0aGlzLmxhc3RNb3ZlRXZlbnQsZSl9LHRoaXMuaGFuZGxlUG9pbnRlck1vdmU9KGUsdCk9Pnt0aGlzLmxhc3RNb3ZlRXZlbnQ9ZSx0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvPWdjKHQsdGhpcy50cmFuc2Zvcm1QYWdlUG9pbnQpLEppLnVwZGF0ZSh0aGlzLnVwZGF0ZVBvaW50LCEwKX0sdGhpcy5oYW5kbGVQb2ludGVyVXA9KGUsdCk9Pnt0aGlzLmVuZCgpO2NvbnN0e29uRW5kOm4sb25TZXNzaW9uRW5kOnIscmVzdW1lQW5pbWF0aW9uOm99PXRoaXMuaGFuZGxlcnM7aWYodGhpcy5kcmFnU25hcFRvT3JpZ2luJiZvJiZvKCksIXRoaXMubGFzdE1vdmVFdmVudHx8IXRoaXMubGFzdE1vdmVFdmVudEluZm8pcmV0dXJuO2NvbnN0IGk9dmMoXCJwb2ludGVyY2FuY2VsXCI9PT1lLnR5cGU/dGhpcy5sYXN0TW92ZUV2ZW50SW5mbzpnYyh0LHRoaXMudHJhbnNmb3JtUGFnZVBvaW50KSx0aGlzLmhpc3RvcnkpO3RoaXMuc3RhcnRFdmVudCYmbiYmbihlLGkpLHImJnIoZSxpKX0sIWNjKGUpKXJldHVybjt0aGlzLmRyYWdTbmFwVG9PcmlnaW49byx0aGlzLmhhbmRsZXJzPXQsdGhpcy50cmFuc2Zvcm1QYWdlUG9pbnQ9bix0aGlzLmNvbnRleHRXaW5kb3c9cnx8d2luZG93O2NvbnN0IGk9Z2ModWMoZSksdGhpcy50cmFuc2Zvcm1QYWdlUG9pbnQpLHtwb2ludDpzfT1pLHt0aW1lc3RhbXA6YX09ZXM7dGhpcy5oaXN0b3J5PVt7Li4ucyx0aW1lc3RhbXA6YX1dO2NvbnN0e29uU2Vzc2lvblN0YXJ0Omx9PXQ7bCYmbChlLHZjKGksdGhpcy5oaXN0b3J5KSksdGhpcy5yZW1vdmVMaXN0ZW5lcnM9cmwobWModGhpcy5jb250ZXh0V2luZG93LFwicG9pbnRlcm1vdmVcIix0aGlzLmhhbmRsZVBvaW50ZXJNb3ZlKSxtYyh0aGlzLmNvbnRleHRXaW5kb3csXCJwb2ludGVydXBcIix0aGlzLmhhbmRsZVBvaW50ZXJVcCksbWModGhpcy5jb250ZXh0V2luZG93LFwicG9pbnRlcmNhbmNlbFwiLHRoaXMuaGFuZGxlUG9pbnRlclVwKSl9dXBkYXRlSGFuZGxlcnMoZSl7dGhpcy5oYW5kbGVycz1lfWVuZCgpe3RoaXMucmVtb3ZlTGlzdGVuZXJzJiZ0aGlzLnJlbW92ZUxpc3RlbmVycygpLFFpKHRoaXMudXBkYXRlUG9pbnQpfX1mdW5jdGlvbiBnYyhlLHQpe3JldHVybiB0P3twb2ludDp0KGUucG9pbnQpfTplfWZ1bmN0aW9uIHljKGUsdCl7cmV0dXJue3g6ZS54LXQueCx5OmUueS10Lnl9fWZ1bmN0aW9uIHZjKHtwb2ludDplfSx0KXtyZXR1cm57cG9pbnQ6ZSxkZWx0YTp5YyhlLHhjKHQpKSxvZmZzZXQ6eWMoZSxiYyh0KSksdmVsb2NpdHk6d2ModCwuMSl9fWZ1bmN0aW9uIGJjKGUpe3JldHVybiBlWzBdfWZ1bmN0aW9uIHhjKGUpe3JldHVybiBlW2UubGVuZ3RoLTFdfWZ1bmN0aW9uIHdjKGUsdCl7aWYoZS5sZW5ndGg8MilyZXR1cm57eDowLHk6MH07bGV0IG49ZS5sZW5ndGgtMSxyPW51bGw7Y29uc3Qgbz14YyhlKTtmb3IoO24+PTAmJihyPWVbbl0sIShvLnRpbWVzdGFtcC1yLnRpbWVzdGFtcD5CaSh0KSkpOyluLS07aWYoIXIpcmV0dXJue3g6MCx5OjB9O2NvbnN0IGk9V2koby50aW1lc3RhbXAtci50aW1lc3RhbXApO2lmKDA9PT1pKXJldHVybnt4OjAseTowfTtjb25zdCBzPXt4OihvLngtci54KS9pLHk6KG8ueS1yLnkpL2l9O3JldHVybiBzLng9PT0xLzAmJihzLng9MCkscy55PT09MS8wJiYocy55PTApLHN9ZnVuY3Rpb24gU2MoZSl7bGV0IHQ9bnVsbDtyZXR1cm4oKT0+bnVsbD09PXQmJih0PWUsKCk9Pnt0PW51bGx9KX1jb25zdCBrYz1TYyhcImRyYWdIb3Jpem9udGFsXCIpLEVjPVNjKFwiZHJhZ1ZlcnRpY2FsXCIpO2Z1bmN0aW9uIENjKGUpe2xldCB0PSExO2lmKFwieVwiPT09ZSl0PUVjKCk7ZWxzZSBpZihcInhcIj09PWUpdD1rYygpO2Vsc2V7Y29uc3QgZT1rYygpLG49RWMoKTtlJiZuP3Q9KCk9PntlKCksbigpfTooZSYmZSgpLG4mJm4oKSl9cmV0dXJuIHR9ZnVuY3Rpb24gX2MoKXtjb25zdCBlPUNjKCEwKTtyZXR1cm4hZXx8KGUoKSwhMSl9ZnVuY3Rpb24gUGMoZSl7cmV0dXJuIGUmJlwib2JqZWN0XCI9PXR5cGVvZiBlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxcImN1cnJlbnRcIil9Y29uc3QgT2M9Ljk5OTksTmM9MS4wMDAxLFRjPS0uMDEsTWM9LjAxO2Z1bmN0aW9uIFJjKGUpe3JldHVybiBlLm1heC1lLm1pbn1mdW5jdGlvbiBEYyhlLHQsbixyPS41KXtlLm9yaWdpbj1yLGUub3JpZ2luUG9pbnQ9aWwodC5taW4sdC5tYXgsZS5vcmlnaW4pLGUuc2NhbGU9UmMobikvUmModCksZS50cmFuc2xhdGU9aWwobi5taW4sbi5tYXgsZS5vcmlnaW4pLWUub3JpZ2luUG9pbnQsKGUuc2NhbGU+PU9jJiZlLnNjYWxlPD1OY3x8aXNOYU4oZS5zY2FsZSkpJiYoZS5zY2FsZT0xKSwoZS50cmFuc2xhdGU+PVRjJiZlLnRyYW5zbGF0ZTw9TWN8fGlzTmFOKGUudHJhbnNsYXRlKSkmJihlLnRyYW5zbGF0ZT0wKX1mdW5jdGlvbiBqYyhlLHQsbixyKXtEYyhlLngsdC54LG4ueCxyP3Iub3JpZ2luWDp2b2lkIDApLERjKGUueSx0Lnksbi55LHI/ci5vcmlnaW5ZOnZvaWQgMCl9ZnVuY3Rpb24gQWMoZSx0LG4pe2UubWluPW4ubWluK3QubWluLGUubWF4PWUubWluK1JjKHQpfWZ1bmN0aW9uIEljKGUsdCxuKXtlLm1pbj10Lm1pbi1uLm1pbixlLm1heD1lLm1pbitSYyh0KX1mdW5jdGlvbiBMYyhlLHQsbil7SWMoZS54LHQueCxuLngpLEljKGUueSx0Lnksbi55KX1mdW5jdGlvbiBGYyhlLHQsbil7cmV0dXJue21pbjp2b2lkIDAhPT10P2UubWluK3Q6dm9pZCAwLG1heDp2b2lkIDAhPT1uP2UubWF4K24tKGUubWF4LWUubWluKTp2b2lkIDB9fWZ1bmN0aW9uIHpjKGUsdCl7bGV0IG49dC5taW4tZS5taW4scj10Lm1heC1lLm1heDtyZXR1cm4gdC5tYXgtdC5taW48ZS5tYXgtZS5taW4mJihbbixyXT1bcixuXSkse21pbjpuLG1heDpyfX1jb25zdCBCYz0uMzU7ZnVuY3Rpb24gV2MoZSx0LG4pe3JldHVybnttaW46VmMoZSx0KSxtYXg6VmMoZSxuKX19ZnVuY3Rpb24gVmMoZSx0KXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YgZT9lOmVbdF18fDB9Y29uc3QgVWM9KCk9Pih7eDp7dHJhbnNsYXRlOjAsc2NhbGU6MSxvcmlnaW46MCxvcmlnaW5Qb2ludDowfSx5Ont0cmFuc2xhdGU6MCxzY2FsZToxLG9yaWdpbjowLG9yaWdpblBvaW50OjB9fSksJGM9KCk9Pih7eDp7bWluOjAsbWF4OjB9LHk6e21pbjowLG1heDowfX0pO2Z1bmN0aW9uIFljKGUpe3JldHVybltlKFwieFwiKSxlKFwieVwiKV19ZnVuY3Rpb24gSGMoe3RvcDplLGxlZnQ6dCxyaWdodDpuLGJvdHRvbTpyfSl7cmV0dXJue3g6e21pbjp0LG1heDpufSx5OnttaW46ZSxtYXg6cn19fWZ1bmN0aW9uIEtjKGUpe3JldHVybiB2b2lkIDA9PT1lfHwxPT09ZX1mdW5jdGlvbiBxYyh7c2NhbGU6ZSxzY2FsZVg6dCxzY2FsZVk6bn0pe3JldHVybiFLYyhlKXx8IUtjKHQpfHwhS2Mobil9ZnVuY3Rpb24gR2MoZSl7cmV0dXJuIHFjKGUpfHxYYyhlKXx8ZS56fHxlLnJvdGF0ZXx8ZS5yb3RhdGVYfHxlLnJvdGF0ZVl8fGUuc2tld1h8fGUuc2tld1l9ZnVuY3Rpb24gWGMoZSl7cmV0dXJuIFpjKGUueCl8fFpjKGUueSl9ZnVuY3Rpb24gWmMoZSl7cmV0dXJuIGUmJlwiMCVcIiE9PWV9ZnVuY3Rpb24gSmMoZSx0LG4pe3JldHVybiBuK3QqKGUtbil9ZnVuY3Rpb24gUWMoZSx0LG4scixvKXtyZXR1cm4gdm9pZCAwIT09byYmKGU9SmMoZSxvLHIpKSxKYyhlLG4scikrdH1mdW5jdGlvbiBldShlLHQ9MCxuPTEscixvKXtlLm1pbj1RYyhlLm1pbix0LG4scixvKSxlLm1heD1RYyhlLm1heCx0LG4scixvKX1mdW5jdGlvbiB0dShlLHt4OnQseTpufSl7ZXUoZS54LHQudHJhbnNsYXRlLHQuc2NhbGUsdC5vcmlnaW5Qb2ludCksZXUoZS55LG4udHJhbnNsYXRlLG4uc2NhbGUsbi5vcmlnaW5Qb2ludCl9Y29uc3QgbnU9Ljk5OTk5OTk5OTk5OSxydT0xLjAwMDAwMDAwMDAwMDE7ZnVuY3Rpb24gb3UoZSx0KXtlLm1pbj1lLm1pbit0LGUubWF4PWUubWF4K3R9ZnVuY3Rpb24gaXUoZSx0LG4scixvPS41KXtldShlLHQsbixpbChlLm1pbixlLm1heCxvKSxyKX1mdW5jdGlvbiBzdShlLHQpe2l1KGUueCx0LngsdC5zY2FsZVgsdC5zY2FsZSx0Lm9yaWdpblgpLGl1KGUueSx0LnksdC5zY2FsZVksdC5zY2FsZSx0Lm9yaWdpblkpfWZ1bmN0aW9uIGF1KGUsdCl7cmV0dXJuIEhjKGZ1bmN0aW9uKGUsdCl7aWYoIXQpcmV0dXJuIGU7Y29uc3Qgbj10KHt4OmUubGVmdCx5OmUudG9wfSkscj10KHt4OmUucmlnaHQseTplLmJvdHRvbX0pO3JldHVybnt0b3A6bi55LGxlZnQ6bi54LGJvdHRvbTpyLnkscmlnaHQ6ci54fX0oZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0KSl9Y29uc3QgbHU9KHtjdXJyZW50OmV9KT0+ZT9lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc6bnVsbCxjdT1uZXcgV2Vha01hcDtjbGFzcyB1dXtjb25zdHJ1Y3RvcihlKXt0aGlzLm9wZW5HbG9iYWxMb2NrPW51bGwsdGhpcy5pc0RyYWdnaW5nPSExLHRoaXMuY3VycmVudERpcmVjdGlvbj1udWxsLHRoaXMub3JpZ2luUG9pbnQ9e3g6MCx5OjB9LHRoaXMuY29uc3RyYWludHM9ITEsdGhpcy5oYXNNdXRhdGVkQ29uc3RyYWludHM9ITEsdGhpcy5lbGFzdGljPSRjKCksdGhpcy52aXN1YWxFbGVtZW50PWV9c3RhcnQoZSx7c25hcFRvQ3Vyc29yOnQ9ITF9PXt9KXtjb25zdHtwcmVzZW5jZUNvbnRleHQ6bn09dGhpcy52aXN1YWxFbGVtZW50O2lmKG4mJiExPT09bi5pc1ByZXNlbnQpcmV0dXJuO2NvbnN0e2RyYWdTbmFwVG9PcmlnaW46cn09dGhpcy5nZXRQcm9wcygpO3RoaXMucGFuU2Vzc2lvbj1uZXcgcGMoZSx7b25TZXNzaW9uU3RhcnQ6ZT0+e2NvbnN0e2RyYWdTbmFwVG9PcmlnaW46bn09dGhpcy5nZXRQcm9wcygpO24/dGhpcy5wYXVzZUFuaW1hdGlvbigpOnRoaXMuc3RvcEFuaW1hdGlvbigpLHQmJnRoaXMuc25hcFRvQ3Vyc29yKHVjKGUsXCJwYWdlXCIpLnBvaW50KX0sb25TdGFydDooZSx0KT0+e3ZhciBuO2NvbnN0e2RyYWc6cixkcmFnUHJvcGFnYXRpb246byxvbkRyYWdTdGFydDppfT10aGlzLmdldFByb3BzKCk7aWYociYmIW8mJih0aGlzLm9wZW5HbG9iYWxMb2NrJiZ0aGlzLm9wZW5HbG9iYWxMb2NrKCksdGhpcy5vcGVuR2xvYmFsTG9jaz1DYyhyKSwhdGhpcy5vcGVuR2xvYmFsTG9jaykpcmV0dXJuO3RoaXMuaXNEcmFnZ2luZz0hMCx0aGlzLmN1cnJlbnREaXJlY3Rpb249bnVsbCx0aGlzLnJlc29sdmVDb25zdHJhaW50cygpLHRoaXMudmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uJiYodGhpcy52aXN1YWxFbGVtZW50LnByb2plY3Rpb24uaXNBbmltYXRpb25CbG9ja2VkPSEwLHRoaXMudmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uLnRhcmdldD12b2lkIDApLFljKChlPT57bGV0IHQ9dGhpcy5nZXRBeGlzTW90aW9uVmFsdWUoZSkuZ2V0KCl8fDA7aWYoRXMudGVzdCh0KSl7Y29uc3R7cHJvamVjdGlvbjpufT10aGlzLnZpc3VhbEVsZW1lbnQ7aWYobiYmbi5sYXlvdXQpe2NvbnN0IHI9bi5sYXlvdXQubGF5b3V0Qm94W2VdO3ImJih0PVJjKHIpKihwYXJzZUZsb2F0KHQpLzEwMCkpfX10aGlzLm9yaWdpblBvaW50W2VdPXR9KSksaSYmSmkucG9zdFJlbmRlcigoKCk9PmkoZSx0KSkpLG51bGw9PT0obj10aGlzLnJlbW92ZVdpbGxDaGFuZ2UpfHx2b2lkIDA9PT1ufHxuLmNhbGwodGhpcyksdGhpcy5yZW1vdmVXaWxsQ2hhbmdlPVpsKHRoaXMudmlzdWFsRWxlbWVudCxcInRyYW5zZm9ybVwiKTtjb25zdHthbmltYXRpb25TdGF0ZTpzfT10aGlzLnZpc3VhbEVsZW1lbnQ7cyYmcy5zZXRBY3RpdmUoXCJ3aGlsZURyYWdcIiwhMCl9LG9uTW92ZTooZSx0KT0+e2NvbnN0e2RyYWdQcm9wYWdhdGlvbjpuLGRyYWdEaXJlY3Rpb25Mb2NrOnIsb25EaXJlY3Rpb25Mb2NrOm8sb25EcmFnOml9PXRoaXMuZ2V0UHJvcHMoKTtpZighbiYmIXRoaXMub3Blbkdsb2JhbExvY2spcmV0dXJuO2NvbnN0e29mZnNldDpzfT10O2lmKHImJm51bGw9PT10aGlzLmN1cnJlbnREaXJlY3Rpb24pcmV0dXJuIHRoaXMuY3VycmVudERpcmVjdGlvbj1mdW5jdGlvbihlLHQ9MTApe2xldCBuPW51bGw7cmV0dXJuIE1hdGguYWJzKGUueSk+dD9uPVwieVwiOk1hdGguYWJzKGUueCk+dCYmKG49XCJ4XCIpLG59KHMpLHZvaWQobnVsbCE9PXRoaXMuY3VycmVudERpcmVjdGlvbiYmbyYmbyh0aGlzLmN1cnJlbnREaXJlY3Rpb24pKTt0aGlzLnVwZGF0ZUF4aXMoXCJ4XCIsdC5wb2ludCxzKSx0aGlzLnVwZGF0ZUF4aXMoXCJ5XCIsdC5wb2ludCxzKSx0aGlzLnZpc3VhbEVsZW1lbnQucmVuZGVyKCksaSYmaShlLHQpfSxvblNlc3Npb25FbmQ6KGUsdCk9PnRoaXMuc3RvcChlLHQpLHJlc3VtZUFuaW1hdGlvbjooKT0+WWMoKGU9Pnt2YXIgdDtyZXR1cm5cInBhdXNlZFwiPT09dGhpcy5nZXRBbmltYXRpb25TdGF0ZShlKSYmKG51bGw9PT0odD10aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShlKS5hbmltYXRpb24pfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnBsYXkoKSl9KSl9LHt0cmFuc2Zvcm1QYWdlUG9pbnQ6dGhpcy52aXN1YWxFbGVtZW50LmdldFRyYW5zZm9ybVBhZ2VQb2ludCgpLGRyYWdTbmFwVG9PcmlnaW46cixjb250ZXh0V2luZG93Omx1KHRoaXMudmlzdWFsRWxlbWVudCl9KX1zdG9wKGUsdCl7dmFyIG47bnVsbD09PShuPXRoaXMucmVtb3ZlV2lsbENoYW5nZSl8fHZvaWQgMD09PW58fG4uY2FsbCh0aGlzKTtjb25zdCByPXRoaXMuaXNEcmFnZ2luZztpZih0aGlzLmNhbmNlbCgpLCFyKXJldHVybjtjb25zdHt2ZWxvY2l0eTpvfT10O3RoaXMuc3RhcnRBbmltYXRpb24obyk7Y29uc3R7b25EcmFnRW5kOml9PXRoaXMuZ2V0UHJvcHMoKTtpJiZKaS5wb3N0UmVuZGVyKCgoKT0+aShlLHQpKSl9Y2FuY2VsKCl7dGhpcy5pc0RyYWdnaW5nPSExO2NvbnN0e3Byb2plY3Rpb246ZSxhbmltYXRpb25TdGF0ZTp0fT10aGlzLnZpc3VhbEVsZW1lbnQ7ZSYmKGUuaXNBbmltYXRpb25CbG9ja2VkPSExKSx0aGlzLnBhblNlc3Npb24mJnRoaXMucGFuU2Vzc2lvbi5lbmQoKSx0aGlzLnBhblNlc3Npb249dm9pZCAwO2NvbnN0e2RyYWdQcm9wYWdhdGlvbjpufT10aGlzLmdldFByb3BzKCk7IW4mJnRoaXMub3Blbkdsb2JhbExvY2smJih0aGlzLm9wZW5HbG9iYWxMb2NrKCksdGhpcy5vcGVuR2xvYmFsTG9jaz1udWxsKSx0JiZ0LnNldEFjdGl2ZShcIndoaWxlRHJhZ1wiLCExKX11cGRhdGVBeGlzKGUsdCxuKXtjb25zdHtkcmFnOnJ9PXRoaXMuZ2V0UHJvcHMoKTtpZighbnx8IWR1KGUscix0aGlzLmN1cnJlbnREaXJlY3Rpb24pKXJldHVybjtjb25zdCBvPXRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGUpO2xldCBpPXRoaXMub3JpZ2luUG9pbnRbZV0rbltlXTt0aGlzLmNvbnN0cmFpbnRzJiZ0aGlzLmNvbnN0cmFpbnRzW2VdJiYoaT1mdW5jdGlvbihlLHttaW46dCxtYXg6bn0scil7cmV0dXJuIHZvaWQgMCE9PXQmJmU8dD9lPXI/aWwodCxlLHIubWluKTpNYXRoLm1heChlLHQpOnZvaWQgMCE9PW4mJmU+biYmKGU9cj9pbChuLGUsci5tYXgpOk1hdGgubWluKGUsbikpLGV9KGksdGhpcy5jb25zdHJhaW50c1tlXSx0aGlzLmVsYXN0aWNbZV0pKSxvLnNldChpKX1yZXNvbHZlQ29uc3RyYWludHMoKXt2YXIgZTtjb25zdHtkcmFnQ29uc3RyYWludHM6dCxkcmFnRWxhc3RpYzpufT10aGlzLmdldFByb3BzKCkscj10aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbiYmIXRoaXMudmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uLmxheW91dD90aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbi5tZWFzdXJlKCExKTpudWxsPT09KGU9dGhpcy52aXN1YWxFbGVtZW50LnByb2plY3Rpb24pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmxheW91dCxvPXRoaXMuY29uc3RyYWludHM7dCYmUGModCk/dGhpcy5jb25zdHJhaW50c3x8KHRoaXMuY29uc3RyYWludHM9dGhpcy5yZXNvbHZlUmVmQ29uc3RyYWludHMoKSk6dGhpcy5jb25zdHJhaW50cz0hKCF0fHwhcikmJmZ1bmN0aW9uKGUse3RvcDp0LGxlZnQ6bixib3R0b206cixyaWdodDpvfSl7cmV0dXJue3g6RmMoZS54LG4sbykseTpGYyhlLnksdCxyKX19KHIubGF5b3V0Qm94LHQpLHRoaXMuZWxhc3RpYz1mdW5jdGlvbihlPUJjKXtyZXR1cm4hMT09PWU/ZT0wOiEwPT09ZSYmKGU9QmMpLHt4OldjKGUsXCJsZWZ0XCIsXCJyaWdodFwiKSx5OldjKGUsXCJ0b3BcIixcImJvdHRvbVwiKX19KG4pLG8hPT10aGlzLmNvbnN0cmFpbnRzJiZyJiZ0aGlzLmNvbnN0cmFpbnRzJiYhdGhpcy5oYXNNdXRhdGVkQ29uc3RyYWludHMmJlljKChlPT57ITEhPT10aGlzLmNvbnN0cmFpbnRzJiZ0aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShlKSYmKHRoaXMuY29uc3RyYWludHNbZV09ZnVuY3Rpb24oZSx0KXtjb25zdCBuPXt9O3JldHVybiB2b2lkIDAhPT10Lm1pbiYmKG4ubWluPXQubWluLWUubWluKSx2b2lkIDAhPT10Lm1heCYmKG4ubWF4PXQubWF4LWUubWluKSxufShyLmxheW91dEJveFtlXSx0aGlzLmNvbnN0cmFpbnRzW2VdKSl9KSl9cmVzb2x2ZVJlZkNvbnN0cmFpbnRzKCl7Y29uc3R7ZHJhZ0NvbnN0cmFpbnRzOmUsb25NZWFzdXJlRHJhZ0NvbnN0cmFpbnRzOnR9PXRoaXMuZ2V0UHJvcHMoKTtpZighZXx8IVBjKGUpKXJldHVybiExO2NvbnN0IG49ZS5jdXJyZW50O29zKG51bGwhPT1uLFwiSWYgYGRyYWdDb25zdHJhaW50c2AgaXMgc2V0IGFzIGEgUmVhY3QgcmVmLCB0aGF0IHJlZiBtdXN0IGJlIHBhc3NlZCB0byBhbm90aGVyIGNvbXBvbmVudCdzIGByZWZgIHByb3AuXCIpO2NvbnN0e3Byb2plY3Rpb246cn09dGhpcy52aXN1YWxFbGVtZW50O2lmKCFyfHwhci5sYXlvdXQpcmV0dXJuITE7Y29uc3Qgbz1mdW5jdGlvbihlLHQsbil7Y29uc3Qgcj1hdShlLG4pLHtzY3JvbGw6b309dDtyZXR1cm4gbyYmKG91KHIueCxvLm9mZnNldC54KSxvdShyLnksby5vZmZzZXQueSkpLHJ9KG4sci5yb290LHRoaXMudmlzdWFsRWxlbWVudC5nZXRUcmFuc2Zvcm1QYWdlUG9pbnQoKSk7bGV0IGk9ZnVuY3Rpb24oZSx0KXtyZXR1cm57eDp6YyhlLngsdC54KSx5OnpjKGUueSx0LnkpfX0oci5sYXlvdXQubGF5b3V0Qm94LG8pO2lmKHQpe2NvbnN0IGU9dChmdW5jdGlvbih7eDplLHk6dH0pe3JldHVybnt0b3A6dC5taW4scmlnaHQ6ZS5tYXgsYm90dG9tOnQubWF4LGxlZnQ6ZS5taW59fShpKSk7dGhpcy5oYXNNdXRhdGVkQ29uc3RyYWludHM9ISFlLGUmJihpPUhjKGUpKX1yZXR1cm4gaX1zdGFydEFuaW1hdGlvbihlKXtjb25zdHtkcmFnOnQsZHJhZ01vbWVudHVtOm4sZHJhZ0VsYXN0aWM6cixkcmFnVHJhbnNpdGlvbjpvLGRyYWdTbmFwVG9PcmlnaW46aSxvbkRyYWdUcmFuc2l0aW9uRW5kOnN9PXRoaXMuZ2V0UHJvcHMoKSxhPXRoaXMuY29uc3RyYWludHN8fHt9LGw9WWMoKHM9PntpZighZHUocyx0LHRoaXMuY3VycmVudERpcmVjdGlvbikpcmV0dXJuO2xldCBsPWEmJmFbc118fHt9O2kmJihsPXttaW46MCxtYXg6MH0pO2NvbnN0IGM9cj8yMDA6MWU2LHU9cj80MDoxZTcsZD17dHlwZTpcImluZXJ0aWFcIix2ZWxvY2l0eTpuP2Vbc106MCxib3VuY2VTdGlmZm5lc3M6Yyxib3VuY2VEYW1waW5nOnUsdGltZUNvbnN0YW50Ojc1MCxyZXN0RGVsdGE6MSxyZXN0U3BlZWQ6MTAsLi4ubywuLi5sfTtyZXR1cm4gdGhpcy5zdGFydEF4aXNWYWx1ZUFuaW1hdGlvbihzLGQpfSkpO3JldHVybiBQcm9taXNlLmFsbChsKS50aGVuKHMpfXN0YXJ0QXhpc1ZhbHVlQW5pbWF0aW9uKGUsdCl7Y29uc3Qgbj10aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShlKTtyZXR1cm4gbi5zdGFydChBbChlLG4sMCx0LHRoaXMudmlzdWFsRWxlbWVudCwhMSxabCh0aGlzLnZpc3VhbEVsZW1lbnQsZSkpKX1zdG9wQW5pbWF0aW9uKCl7WWMoKGU9PnRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGUpLnN0b3AoKSkpfXBhdXNlQW5pbWF0aW9uKCl7WWMoKGU9Pnt2YXIgdDtyZXR1cm4gbnVsbD09PSh0PXRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGUpLmFuaW1hdGlvbil8fHZvaWQgMD09PXQ/dm9pZCAwOnQucGF1c2UoKX0pKX1nZXRBbmltYXRpb25TdGF0ZShlKXt2YXIgdDtyZXR1cm4gbnVsbD09PSh0PXRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGUpLmFuaW1hdGlvbil8fHZvaWQgMD09PXQ/dm9pZCAwOnQuc3RhdGV9Z2V0QXhpc01vdGlvblZhbHVlKGUpe2NvbnN0IHQ9YF9kcmFnJHtlLnRvVXBwZXJDYXNlKCl9YCxuPXRoaXMudmlzdWFsRWxlbWVudC5nZXRQcm9wcygpO3JldHVybiBuW3RdfHx0aGlzLnZpc3VhbEVsZW1lbnQuZ2V0VmFsdWUoZSwobi5pbml0aWFsP24uaW5pdGlhbFtlXTp2b2lkIDApfHwwKX1zbmFwVG9DdXJzb3IoZSl7WWMoKHQ9Pntjb25zdHtkcmFnOm59PXRoaXMuZ2V0UHJvcHMoKTtpZighZHUodCxuLHRoaXMuY3VycmVudERpcmVjdGlvbikpcmV0dXJuO2NvbnN0e3Byb2plY3Rpb246cn09dGhpcy52aXN1YWxFbGVtZW50LG89dGhpcy5nZXRBeGlzTW90aW9uVmFsdWUodCk7aWYociYmci5sYXlvdXQpe2NvbnN0e21pbjpuLG1heDppfT1yLmxheW91dC5sYXlvdXRCb3hbdF07by5zZXQoZVt0XS1pbChuLGksLjUpKX19KSl9c2NhbGVQb3NpdGlvbldpdGhpbkNvbnN0cmFpbnRzKCl7aWYoIXRoaXMudmlzdWFsRWxlbWVudC5jdXJyZW50KXJldHVybjtjb25zdHtkcmFnOmUsZHJhZ0NvbnN0cmFpbnRzOnR9PXRoaXMuZ2V0UHJvcHMoKSx7cHJvamVjdGlvbjpufT10aGlzLnZpc3VhbEVsZW1lbnQ7aWYoIVBjKHQpfHwhbnx8IXRoaXMuY29uc3RyYWludHMpcmV0dXJuO3RoaXMuc3RvcEFuaW1hdGlvbigpO2NvbnN0IHI9e3g6MCx5OjB9O1ljKChlPT57Y29uc3QgdD10aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShlKTtpZih0JiYhMSE9PXRoaXMuY29uc3RyYWludHMpe2NvbnN0IG49dC5nZXQoKTtyW2VdPWZ1bmN0aW9uKGUsdCl7bGV0IG49LjU7Y29uc3Qgcj1SYyhlKSxvPVJjKHQpO3JldHVybiBvPnI/bj1vbCh0Lm1pbix0Lm1heC1yLGUubWluKTpyPm8mJihuPW9sKGUubWluLGUubWF4LW8sdC5taW4pKSxtcygwLDEsbil9KHttaW46bixtYXg6bn0sdGhpcy5jb25zdHJhaW50c1tlXSl9fSkpO2NvbnN0e3RyYW5zZm9ybVRlbXBsYXRlOm99PXRoaXMudmlzdWFsRWxlbWVudC5nZXRQcm9wcygpO3RoaXMudmlzdWFsRWxlbWVudC5jdXJyZW50LnN0eWxlLnRyYW5zZm9ybT1vP28oe30sXCJcIik6XCJub25lXCIsbi5yb290JiZuLnJvb3QudXBkYXRlU2Nyb2xsKCksbi51cGRhdGVMYXlvdXQoKSx0aGlzLnJlc29sdmVDb25zdHJhaW50cygpLFljKCh0PT57aWYoIWR1KHQsZSxudWxsKSlyZXR1cm47Y29uc3Qgbj10aGlzLmdldEF4aXNNb3Rpb25WYWx1ZSh0KSx7bWluOm8sbWF4Oml9PXRoaXMuY29uc3RyYWludHNbdF07bi5zZXQoaWwobyxpLHJbdF0pKX0pKX1hZGRMaXN0ZW5lcnMoKXtpZighdGhpcy52aXN1YWxFbGVtZW50LmN1cnJlbnQpcmV0dXJuO2N1LnNldCh0aGlzLnZpc3VhbEVsZW1lbnQsdGhpcyk7Y29uc3QgZT1tYyh0aGlzLnZpc3VhbEVsZW1lbnQuY3VycmVudCxcInBvaW50ZXJkb3duXCIsKGU9Pntjb25zdHtkcmFnOnQsZHJhZ0xpc3RlbmVyOm49ITB9PXRoaXMuZ2V0UHJvcHMoKTt0JiZuJiZ0aGlzLnN0YXJ0KGUpfSkpLHQ9KCk9Pntjb25zdHtkcmFnQ29uc3RyYWludHM6ZX09dGhpcy5nZXRQcm9wcygpO1BjKGUpJiZlLmN1cnJlbnQmJih0aGlzLmNvbnN0cmFpbnRzPXRoaXMucmVzb2x2ZVJlZkNvbnN0cmFpbnRzKCkpfSx7cHJvamVjdGlvbjpufT10aGlzLnZpc3VhbEVsZW1lbnQscj1uLmFkZEV2ZW50TGlzdGVuZXIoXCJtZWFzdXJlXCIsdCk7biYmIW4ubGF5b3V0JiYobi5yb290JiZuLnJvb3QudXBkYXRlU2Nyb2xsKCksbi51cGRhdGVMYXlvdXQoKSksSmkucmVhZCh0KTtjb25zdCBvPWZjKHdpbmRvdyxcInJlc2l6ZVwiLCgoKT0+dGhpcy5zY2FsZVBvc2l0aW9uV2l0aGluQ29uc3RyYWludHMoKSkpLGk9bi5hZGRFdmVudExpc3RlbmVyKFwiZGlkVXBkYXRlXCIsKCh7ZGVsdGE6ZSxoYXNMYXlvdXRDaGFuZ2VkOnR9KT0+e3RoaXMuaXNEcmFnZ2luZyYmdCYmKFljKCh0PT57Y29uc3Qgbj10aGlzLmdldEF4aXNNb3Rpb25WYWx1ZSh0KTtuJiYodGhpcy5vcmlnaW5Qb2ludFt0XSs9ZVt0XS50cmFuc2xhdGUsbi5zZXQobi5nZXQoKStlW3RdLnRyYW5zbGF0ZSkpfSkpLHRoaXMudmlzdWFsRWxlbWVudC5yZW5kZXIoKSl9KSk7cmV0dXJuKCk9PntvKCksZSgpLHIoKSxpJiZpKCl9fWdldFByb3BzKCl7Y29uc3QgZT10aGlzLnZpc3VhbEVsZW1lbnQuZ2V0UHJvcHMoKSx7ZHJhZzp0PSExLGRyYWdEaXJlY3Rpb25Mb2NrOm49ITEsZHJhZ1Byb3BhZ2F0aW9uOnI9ITEsZHJhZ0NvbnN0cmFpbnRzOm89ITEsZHJhZ0VsYXN0aWM6aT1CYyxkcmFnTW9tZW50dW06cz0hMH09ZTtyZXR1cm57Li4uZSxkcmFnOnQsZHJhZ0RpcmVjdGlvbkxvY2s6bixkcmFnUHJvcGFnYXRpb246cixkcmFnQ29uc3RyYWludHM6byxkcmFnRWxhc3RpYzppLGRyYWdNb21lbnR1bTpzfX19ZnVuY3Rpb24gZHUoZSx0LG4pe3JldHVybiEoITAhPT10JiZ0IT09ZXx8bnVsbCE9PW4mJm4hPT1lKX1jb25zdCBmdT1lPT4odCxuKT0+e2UmJkppLnBvc3RSZW5kZXIoKCgpPT5lKHQsbikpKX07dmFyIG11PW4oODQ4KTtjb25zdCBodT0oMCxhLmNyZWF0ZUNvbnRleHQpKG51bGwpLHB1PSgwLGEuY3JlYXRlQ29udGV4dCkoe30pLGd1PSgwLGEuY3JlYXRlQ29udGV4dCkoe30pLHl1PXtoYXNBbmltYXRlZFNpbmNlUmVzaXplOiEwLGhhc0V2ZXJVcGRhdGVkOiExfTtmdW5jdGlvbiB2dShlLHQpe3JldHVybiB0Lm1heD09PXQubWluPzA6ZS8odC5tYXgtdC5taW4pKjEwMH1jb25zdCBidT17Y29ycmVjdDooZSx0KT0+e2lmKCF0LnRhcmdldClyZXR1cm4gZTtpZihcInN0cmluZ1wiPT10eXBlb2YgZSl7aWYoIUNzLnRlc3QoZSkpcmV0dXJuIGU7ZT1wYXJzZUZsb2F0KGUpfXJldHVybmAke3Z1KGUsdC50YXJnZXQueCl9JSAke3Z1KGUsdC50YXJnZXQueSl9JWB9fSx4dT17Y29ycmVjdDooZSx7dHJlZVNjYWxlOnQscHJvamVjdGlvbkRlbHRhOm59KT0+e2NvbnN0IHI9ZSxvPWxhLnBhcnNlKGUpO2lmKG8ubGVuZ3RoPjUpcmV0dXJuIHI7Y29uc3QgaT1sYS5jcmVhdGVUcmFuc2Zvcm1lcihlKSxzPVwibnVtYmVyXCIhPXR5cGVvZiBvWzBdPzE6MCxhPW4ueC5zY2FsZSp0LngsbD1uLnkuc2NhbGUqdC55O29bMCtzXS89YSxvWzErc10vPWw7Y29uc3QgYz1pbChhLGwsLjUpO3JldHVyblwibnVtYmVyXCI9PXR5cGVvZiBvWzIrc10mJihvWzIrc10vPWMpLFwibnVtYmVyXCI9PXR5cGVvZiBvWzMrc10mJihvWzMrc10vPWMpLGkobyl9fSx3dT17fSx7c2NoZWR1bGU6U3UsY2FuY2VsOmt1fT1aaShxdWV1ZU1pY3JvdGFzaywhMSk7Y2xhc3MgRXUgZXh0ZW5kcyBhLkNvbXBvbmVudHtjb21wb25lbnREaWRNb3VudCgpe2NvbnN0e3Zpc3VhbEVsZW1lbnQ6ZSxsYXlvdXRHcm91cDp0LHN3aXRjaExheW91dEdyb3VwOm4sbGF5b3V0SWQ6cn09dGhpcy5wcm9wcyx7cHJvamVjdGlvbjpvfT1lO3ZhciBpO2k9X3UsT2JqZWN0LmFzc2lnbih3dSxpKSxvJiYodC5ncm91cCYmdC5ncm91cC5hZGQobyksbiYmbi5yZWdpc3RlciYmciYmbi5yZWdpc3RlcihvKSxvLnJvb3QuZGlkVXBkYXRlKCksby5hZGRFdmVudExpc3RlbmVyKFwiYW5pbWF0aW9uQ29tcGxldGVcIiwoKCk9Pnt0aGlzLnNhZmVUb1JlbW92ZSgpfSkpLG8uc2V0T3B0aW9ucyh7Li4uby5vcHRpb25zLG9uRXhpdENvbXBsZXRlOigpPT50aGlzLnNhZmVUb1JlbW92ZSgpfSkpLHl1Lmhhc0V2ZXJVcGRhdGVkPSEwfWdldFNuYXBzaG90QmVmb3JlVXBkYXRlKGUpe2NvbnN0e2xheW91dERlcGVuZGVuY3k6dCx2aXN1YWxFbGVtZW50Om4sZHJhZzpyLGlzUHJlc2VudDpvfT10aGlzLnByb3BzLGk9bi5wcm9qZWN0aW9uO3JldHVybiBpPyhpLmlzUHJlc2VudD1vLHJ8fGUubGF5b3V0RGVwZW5kZW5jeSE9PXR8fHZvaWQgMD09PXQ/aS53aWxsVXBkYXRlKCk6dGhpcy5zYWZlVG9SZW1vdmUoKSxlLmlzUHJlc2VudCE9PW8mJihvP2kucHJvbW90ZSgpOmkucmVsZWdhdGUoKXx8SmkucG9zdFJlbmRlcigoKCk9Pntjb25zdCBlPWkuZ2V0U3RhY2soKTtlJiZlLm1lbWJlcnMubGVuZ3RofHx0aGlzLnNhZmVUb1JlbW92ZSgpfSkpKSxudWxsKTpudWxsfWNvbXBvbmVudERpZFVwZGF0ZSgpe2NvbnN0e3Byb2plY3Rpb246ZX09dGhpcy5wcm9wcy52aXN1YWxFbGVtZW50O2UmJihlLnJvb3QuZGlkVXBkYXRlKCksU3UucG9zdFJlbmRlcigoKCk9PnshZS5jdXJyZW50QW5pbWF0aW9uJiZlLmlzTGVhZCgpJiZ0aGlzLnNhZmVUb1JlbW92ZSgpfSkpKX1jb21wb25lbnRXaWxsVW5tb3VudCgpe2NvbnN0e3Zpc3VhbEVsZW1lbnQ6ZSxsYXlvdXRHcm91cDp0LHN3aXRjaExheW91dEdyb3VwOm59PXRoaXMucHJvcHMse3Byb2plY3Rpb246cn09ZTtyJiYoci5zY2hlZHVsZUNoZWNrQWZ0ZXJVbm1vdW50KCksdCYmdC5ncm91cCYmdC5ncm91cC5yZW1vdmUociksbiYmbi5kZXJlZ2lzdGVyJiZuLmRlcmVnaXN0ZXIocikpfXNhZmVUb1JlbW92ZSgpe2NvbnN0e3NhZmVUb1JlbW92ZTplfT10aGlzLnByb3BzO2UmJmUoKX1yZW5kZXIoKXtyZXR1cm4gbnVsbH19ZnVuY3Rpb24gQ3UoZSl7Y29uc3RbdCxuXT1mdW5jdGlvbigpe2NvbnN0IGU9KDAsYS51c2VDb250ZXh0KShodSk7aWYobnVsbD09PWUpcmV0dXJuWyEwLG51bGxdO2NvbnN0e2lzUHJlc2VudDp0LG9uRXhpdENvbXBsZXRlOm4scmVnaXN0ZXI6cn09ZSxvPSgwLGEudXNlSWQpKCk7KDAsYS51c2VFZmZlY3QpKCgoKT0+cihvKSksW10pO2NvbnN0IGk9KDAsYS51c2VDYWxsYmFjaykoKCgpPT5uJiZuKG8pKSxbbyxuXSk7cmV0dXJuIXQmJm4/WyExLGldOlshMF19KCkscj0oMCxhLnVzZUNvbnRleHQpKHB1KTtyZXR1cm4oMCxtdS5qc3gpKEV1LHsuLi5lLGxheW91dEdyb3VwOnIsc3dpdGNoTGF5b3V0R3JvdXA6KDAsYS51c2VDb250ZXh0KShndSksaXNQcmVzZW50OnQsc2FmZVRvUmVtb3ZlOm59KX1jb25zdCBfdT17Ym9yZGVyUmFkaXVzOnsuLi5idSxhcHBseVRvOltcImJvcmRlclRvcExlZnRSYWRpdXNcIixcImJvcmRlclRvcFJpZ2h0UmFkaXVzXCIsXCJib3JkZXJCb3R0b21MZWZ0UmFkaXVzXCIsXCJib3JkZXJCb3R0b21SaWdodFJhZGl1c1wiXX0sYm9yZGVyVG9wTGVmdFJhZGl1czpidSxib3JkZXJUb3BSaWdodFJhZGl1czpidSxib3JkZXJCb3R0b21MZWZ0UmFkaXVzOmJ1LGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOmJ1LGJveFNoYWRvdzp4dX0sUHU9W1wiVG9wTGVmdFwiLFwiVG9wUmlnaHRcIixcIkJvdHRvbUxlZnRcIixcIkJvdHRvbVJpZ2h0XCJdLE91PVB1Lmxlbmd0aCxOdT1lPT5cInN0cmluZ1wiPT10eXBlb2YgZT9wYXJzZUZsb2F0KGUpOmUsVHU9ZT0+XCJudW1iZXJcIj09dHlwZW9mIGV8fENzLnRlc3QoZSk7ZnVuY3Rpb24gTXUoZSx0KXtyZXR1cm4gdm9pZCAwIT09ZVt0XT9lW3RdOmUuYm9yZGVyUmFkaXVzfWNvbnN0IFJ1PWp1KDAsLjUsR2EpLER1PWp1KC41LC45NSxHaSk7ZnVuY3Rpb24ganUoZSx0LG4pe3JldHVybiByPT5yPGU/MDpyPnQ/MTpuKG9sKGUsdCxyKSl9ZnVuY3Rpb24gQXUoZSx0KXtlLm1pbj10Lm1pbixlLm1heD10Lm1heH1mdW5jdGlvbiBJdShlLHQpe0F1KGUueCx0LngpLEF1KGUueSx0LnkpfWZ1bmN0aW9uIEx1KGUsdCl7ZS50cmFuc2xhdGU9dC50cmFuc2xhdGUsZS5zY2FsZT10LnNjYWxlLGUub3JpZ2luUG9pbnQ9dC5vcmlnaW5Qb2ludCxlLm9yaWdpbj10Lm9yaWdpbn1mdW5jdGlvbiBGdShlLHQsbixyLG8pe3JldHVybiBlPUpjKGUtPXQsMS9uLHIpLHZvaWQgMCE9PW8mJihlPUpjKGUsMS9vLHIpKSxlfWZ1bmN0aW9uIHp1KGUsdCxbbixyLG9dLGkscyl7IWZ1bmN0aW9uKGUsdD0wLG49MSxyPS41LG8saT1lLHM9ZSl7aWYoRXMudGVzdCh0KSYmKHQ9cGFyc2VGbG9hdCh0KSx0PWlsKHMubWluLHMubWF4LHQvMTAwKS1zLm1pbiksXCJudW1iZXJcIiE9dHlwZW9mIHQpcmV0dXJuO2xldCBhPWlsKGkubWluLGkubWF4LHIpO2U9PT1pJiYoYS09dCksZS5taW49RnUoZS5taW4sdCxuLGEsbyksZS5tYXg9RnUoZS5tYXgsdCxuLGEsbyl9KGUsdFtuXSx0W3JdLHRbb10sdC5zY2FsZSxpLHMpfWNvbnN0IEJ1PVtcInhcIixcInNjYWxlWFwiLFwib3JpZ2luWFwiXSxXdT1bXCJ5XCIsXCJzY2FsZVlcIixcIm9yaWdpbllcIl07ZnVuY3Rpb24gVnUoZSx0LG4scil7enUoZS54LHQsQnUsbj9uLng6dm9pZCAwLHI/ci54OnZvaWQgMCksenUoZS55LHQsV3Usbj9uLnk6dm9pZCAwLHI/ci55OnZvaWQgMCl9ZnVuY3Rpb24gVXUoZSl7cmV0dXJuIDA9PT1lLnRyYW5zbGF0ZSYmMT09PWUuc2NhbGV9ZnVuY3Rpb24gJHUoZSl7cmV0dXJuIFV1KGUueCkmJlV1KGUueSl9ZnVuY3Rpb24gWXUoZSx0KXtyZXR1cm4gZS5taW49PT10Lm1pbiYmZS5tYXg9PT10Lm1heH1mdW5jdGlvbiBIdShlLHQpe3JldHVybiBNYXRoLnJvdW5kKGUubWluKT09PU1hdGgucm91bmQodC5taW4pJiZNYXRoLnJvdW5kKGUubWF4KT09PU1hdGgucm91bmQodC5tYXgpfWZ1bmN0aW9uIEt1KGUsdCl7cmV0dXJuIEh1KGUueCx0LngpJiZIdShlLnksdC55KX1mdW5jdGlvbiBxdShlKXtyZXR1cm4gUmMoZS54KS9SYyhlLnkpfWZ1bmN0aW9uIEd1KGUsdCl7cmV0dXJuIGUudHJhbnNsYXRlPT09dC50cmFuc2xhdGUmJmUuc2NhbGU9PT10LnNjYWxlJiZlLm9yaWdpblBvaW50PT09dC5vcmlnaW5Qb2ludH1jbGFzcyBYdXtjb25zdHJ1Y3Rvcigpe3RoaXMubWVtYmVycz1bXX1hZGQoZSl7RmwodGhpcy5tZW1iZXJzLGUpLGUuc2NoZWR1bGVSZW5kZXIoKX1yZW1vdmUoZSl7aWYoemwodGhpcy5tZW1iZXJzLGUpLGU9PT10aGlzLnByZXZMZWFkJiYodGhpcy5wcmV2TGVhZD12b2lkIDApLGU9PT10aGlzLmxlYWQpe2NvbnN0IGU9dGhpcy5tZW1iZXJzW3RoaXMubWVtYmVycy5sZW5ndGgtMV07ZSYmdGhpcy5wcm9tb3RlKGUpfX1yZWxlZ2F0ZShlKXtjb25zdCB0PXRoaXMubWVtYmVycy5maW5kSW5kZXgoKHQ9PmU9PT10KSk7aWYoMD09PXQpcmV0dXJuITE7bGV0IG47Zm9yKGxldCBlPXQ7ZT49MDtlLS0pe2NvbnN0IHQ9dGhpcy5tZW1iZXJzW2VdO2lmKCExIT09dC5pc1ByZXNlbnQpe249dDticmVha319cmV0dXJuISFuJiYodGhpcy5wcm9tb3RlKG4pLCEwKX1wcm9tb3RlKGUsdCl7Y29uc3Qgbj10aGlzLmxlYWQ7aWYoZSE9PW4mJih0aGlzLnByZXZMZWFkPW4sdGhpcy5sZWFkPWUsZS5zaG93KCksbikpe24uaW5zdGFuY2UmJm4uc2NoZWR1bGVSZW5kZXIoKSxlLnNjaGVkdWxlUmVuZGVyKCksZS5yZXN1bWVGcm9tPW4sdCYmKGUucmVzdW1lRnJvbS5wcmVzZXJ2ZU9wYWNpdHk9ITApLG4uc25hcHNob3QmJihlLnNuYXBzaG90PW4uc25hcHNob3QsZS5zbmFwc2hvdC5sYXRlc3RWYWx1ZXM9bi5hbmltYXRpb25WYWx1ZXN8fG4ubGF0ZXN0VmFsdWVzKSxlLnJvb3QmJmUucm9vdC5pc1VwZGF0aW5nJiYoZS5pc0xheW91dERpcnR5PSEwKTtjb25zdHtjcm9zc2ZhZGU6cn09ZS5vcHRpb25zOyExPT09ciYmbi5oaWRlKCl9fWV4aXRBbmltYXRpb25Db21wbGV0ZSgpe3RoaXMubWVtYmVycy5mb3JFYWNoKChlPT57Y29uc3R7b3B0aW9uczp0LHJlc3VtaW5nRnJvbTpufT1lO3Qub25FeGl0Q29tcGxldGUmJnQub25FeGl0Q29tcGxldGUoKSxuJiZuLm9wdGlvbnMub25FeGl0Q29tcGxldGUmJm4ub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSgpfSkpfXNjaGVkdWxlUmVuZGVyKCl7dGhpcy5tZW1iZXJzLmZvckVhY2goKGU9PntlLmluc3RhbmNlJiZlLnNjaGVkdWxlUmVuZGVyKCExKX0pKX1yZW1vdmVMZWFkU25hcHNob3QoKXt0aGlzLmxlYWQmJnRoaXMubGVhZC5zbmFwc2hvdCYmKHRoaXMubGVhZC5zbmFwc2hvdD12b2lkIDApfX1jb25zdCBadT0oZSx0KT0+ZS5kZXB0aC10LmRlcHRoO2NsYXNzIEp1e2NvbnN0cnVjdG9yKCl7dGhpcy5jaGlsZHJlbj1bXSx0aGlzLmlzRGlydHk9ITF9YWRkKGUpe0ZsKHRoaXMuY2hpbGRyZW4sZSksdGhpcy5pc0RpcnR5PSEwfXJlbW92ZShlKXt6bCh0aGlzLmNoaWxkcmVuLGUpLHRoaXMuaXNEaXJ0eT0hMH1mb3JFYWNoKGUpe3RoaXMuaXNEaXJ0eSYmdGhpcy5jaGlsZHJlbi5zb3J0KFp1KSx0aGlzLmlzRGlydHk9ITEsdGhpcy5jaGlsZHJlbi5mb3JFYWNoKGUpfX1mdW5jdGlvbiBRdShlKXtjb25zdCB0PVhsKGUpP2UuZ2V0KCk6ZTtyZXR1cm4gSWwodCk/dC50b1ZhbHVlKCk6dH1jb25zdCBlZD17dHlwZTpcInByb2plY3Rpb25GcmFtZVwiLHRvdGFsTm9kZXM6MCxyZXNvbHZlZFRhcmdldERlbHRhczowLHJlY2FsY3VsYXRlZFByb2plY3Rpb246MH0sdGQ9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93Lk1vdGlvbkRlYnVnLG5kPVtcIlwiLFwiWFwiLFwiWVwiLFwiWlwiXSxyZD17dmlzaWJpbGl0eTpcImhpZGRlblwifTtsZXQgb2Q9MDtmdW5jdGlvbiBpZChlLHQsbixyKXtjb25zdHtsYXRlc3RWYWx1ZXM6b309dDtvW2VdJiYobltlXT1vW2VdLHQuc2V0U3RhdGljVmFsdWUoZSwwKSxyJiYocltlXT0wKSl9ZnVuY3Rpb24gc2QoZSl7aWYoZS5oYXNDaGVja2VkT3B0aW1pc2VkQXBwZWFyPSEwLGUucm9vdD09PWUpcmV0dXJuO2NvbnN0e3Zpc3VhbEVsZW1lbnQ6dH09ZS5vcHRpb25zO2lmKCF0KXJldHVybjtjb25zdCBuPUtsKHQpO2lmKHdpbmRvdy5Nb3Rpb25IYXNPcHRpbWlzZWRBbmltYXRpb24obixcInRyYW5zZm9ybVwiKSl7Y29uc3R7bGF5b3V0OnQsbGF5b3V0SWQ6cn09ZS5vcHRpb25zO3dpbmRvdy5Nb3Rpb25DYW5jZWxPcHRpbWlzZWRBbmltYXRpb24obixcInRyYW5zZm9ybVwiLEppLCEodHx8cikpfWNvbnN0e3BhcmVudDpyfT1lO3ImJiFyLmhhc0NoZWNrZWRPcHRpbWlzZWRBcHBlYXImJnNkKHIpfWZ1bmN0aW9uIGFkKHthdHRhY2hSZXNpemVMaXN0ZW5lcjplLGRlZmF1bHRQYXJlbnQ6dCxtZWFzdXJlU2Nyb2xsOm4sY2hlY2tJc1Njcm9sbFJvb3Q6cixyZXNldFRyYW5zZm9ybTpvfSl7cmV0dXJuIGNsYXNze2NvbnN0cnVjdG9yKGU9e30sbj0obnVsbD09dD92b2lkIDA6dCgpKSl7dGhpcy5pZD1vZCsrLHRoaXMuYW5pbWF0aW9uSWQ9MCx0aGlzLmNoaWxkcmVuPW5ldyBTZXQsdGhpcy5vcHRpb25zPXt9LHRoaXMuaXNUcmVlQW5pbWF0aW5nPSExLHRoaXMuaXNBbmltYXRpb25CbG9ja2VkPSExLHRoaXMuaXNMYXlvdXREaXJ0eT0hMSx0aGlzLmlzUHJvamVjdGlvbkRpcnR5PSExLHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHk9ITEsdGhpcy5pc1RyYW5zZm9ybURpcnR5PSExLHRoaXMudXBkYXRlTWFudWFsbHlCbG9ja2VkPSExLHRoaXMudXBkYXRlQmxvY2tlZEJ5UmVzaXplPSExLHRoaXMuaXNVcGRhdGluZz0hMSx0aGlzLmlzU1ZHPSExLHRoaXMubmVlZHNSZXNldD0hMSx0aGlzLnNob3VsZFJlc2V0VHJhbnNmb3JtPSExLHRoaXMuaGFzQ2hlY2tlZE9wdGltaXNlZEFwcGVhcj0hMSx0aGlzLnRyZWVTY2FsZT17eDoxLHk6MX0sdGhpcy5ldmVudEhhbmRsZXJzPW5ldyBNYXAsdGhpcy5oYXNUcmVlQW5pbWF0ZWQ9ITEsdGhpcy51cGRhdGVTY2hlZHVsZWQ9ITEsdGhpcy5zY2hlZHVsZVVwZGF0ZT0oKT0+dGhpcy51cGRhdGUoKSx0aGlzLnByb2plY3Rpb25VcGRhdGVTY2hlZHVsZWQ9ITEsdGhpcy5jaGVja1VwZGF0ZUZhaWxlZD0oKT0+e3RoaXMuaXNVcGRhdGluZyYmKHRoaXMuaXNVcGRhdGluZz0hMSx0aGlzLmNsZWFyQWxsU25hcHNob3RzKCkpfSx0aGlzLnVwZGF0ZVByb2plY3Rpb249KCk9Pnt0aGlzLnByb2plY3Rpb25VcGRhdGVTY2hlZHVsZWQ9ITEsdGQmJihlZC50b3RhbE5vZGVzPWVkLnJlc29sdmVkVGFyZ2V0RGVsdGFzPWVkLnJlY2FsY3VsYXRlZFByb2plY3Rpb249MCksdGhpcy5ub2Rlcy5mb3JFYWNoKHVkKSx0aGlzLm5vZGVzLmZvckVhY2goeWQpLHRoaXMubm9kZXMuZm9yRWFjaCh2ZCksdGhpcy5ub2Rlcy5mb3JFYWNoKGRkKSx0ZCYmd2luZG93Lk1vdGlvbkRlYnVnLnJlY29yZChlZCl9LHRoaXMucmVzb2x2ZWRSZWxhdGl2ZVRhcmdldEF0PTAsdGhpcy5oYXNQcm9qZWN0ZWQ9ITEsdGhpcy5pc1Zpc2libGU9ITAsdGhpcy5hbmltYXRpb25Qcm9ncmVzcz0wLHRoaXMuc2hhcmVkTm9kZXM9bmV3IE1hcCx0aGlzLmxhdGVzdFZhbHVlcz1lLHRoaXMucm9vdD1uP24ucm9vdHx8bjp0aGlzLHRoaXMucGF0aD1uP1suLi5uLnBhdGgsbl06W10sdGhpcy5wYXJlbnQ9bix0aGlzLmRlcHRoPW4/bi5kZXB0aCsxOjA7Zm9yKGxldCBlPTA7ZTx0aGlzLnBhdGgubGVuZ3RoO2UrKyl0aGlzLnBhdGhbZV0uc2hvdWxkUmVzZXRUcmFuc2Zvcm09ITA7dGhpcy5yb290PT09dGhpcyYmKHRoaXMubm9kZXM9bmV3IEp1KX1hZGRFdmVudExpc3RlbmVyKGUsdCl7cmV0dXJuIHRoaXMuZXZlbnRIYW5kbGVycy5oYXMoZSl8fHRoaXMuZXZlbnRIYW5kbGVycy5zZXQoZSxuZXcgQmwpLHRoaXMuZXZlbnRIYW5kbGVycy5nZXQoZSkuYWRkKHQpfW5vdGlmeUxpc3RlbmVycyhlLC4uLnQpe2NvbnN0IG49dGhpcy5ldmVudEhhbmRsZXJzLmdldChlKTtuJiZuLm5vdGlmeSguLi50KX1oYXNMaXN0ZW5lcnMoZSl7cmV0dXJuIHRoaXMuZXZlbnRIYW5kbGVycy5oYXMoZSl9bW91bnQodCxuPXRoaXMucm9vdC5oYXNUcmVlQW5pbWF0ZWQpe2lmKHRoaXMuaW5zdGFuY2UpcmV0dXJuO3ZhciByO3RoaXMuaXNTVkc9KHI9dClpbnN0YW5jZW9mIFNWR0VsZW1lbnQmJlwic3ZnXCIhPT1yLnRhZ05hbWUsdGhpcy5pbnN0YW5jZT10O2NvbnN0e2xheW91dElkOm8sbGF5b3V0OmksdmlzdWFsRWxlbWVudDpzfT10aGlzLm9wdGlvbnM7aWYocyYmIXMuY3VycmVudCYmcy5tb3VudCh0KSx0aGlzLnJvb3Qubm9kZXMuYWRkKHRoaXMpLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5jaGlsZHJlbi5hZGQodGhpcyksbiYmKGl8fG8pJiYodGhpcy5pc0xheW91dERpcnR5PSEwKSxlKXtsZXQgbjtjb25zdCByPSgpPT50aGlzLnJvb3QudXBkYXRlQmxvY2tlZEJ5UmVzaXplPSExO2UodCwoKCk9Pnt0aGlzLnJvb3QudXBkYXRlQmxvY2tlZEJ5UmVzaXplPSEwLG4mJm4oKSxuPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9a2Eubm93KCksbj0oe3RpbWVzdGFtcDpyfSk9Pntjb25zdCBvPXItdDtvPj0yNTAmJihRaShuKSxlKG8tMjUwKSl9O3JldHVybiBKaS5yZWFkKG4sITApLCgpPT5RaShuKX0ocikseXUuaGFzQW5pbWF0ZWRTaW5jZVJlc2l6ZSYmKHl1Lmhhc0FuaW1hdGVkU2luY2VSZXNpemU9ITEsdGhpcy5ub2Rlcy5mb3JFYWNoKGdkKSl9KSl9byYmdGhpcy5yb290LnJlZ2lzdGVyU2hhcmVkTm9kZShvLHRoaXMpLCExIT09dGhpcy5vcHRpb25zLmFuaW1hdGUmJnMmJihvfHxpKSYmdGhpcy5hZGRFdmVudExpc3RlbmVyKFwiZGlkVXBkYXRlXCIsKCh7ZGVsdGE6ZSxoYXNMYXlvdXRDaGFuZ2VkOnQsaGFzUmVsYXRpdmVUYXJnZXRDaGFuZ2VkOm4sbGF5b3V0OnJ9KT0+e2lmKHRoaXMuaXNUcmVlQW5pbWF0aW9uQmxvY2tlZCgpKXJldHVybiB0aGlzLnRhcmdldD12b2lkIDAsdm9pZCh0aGlzLnJlbGF0aXZlVGFyZ2V0PXZvaWQgMCk7Y29uc3Qgbz10aGlzLm9wdGlvbnMudHJhbnNpdGlvbnx8cy5nZXREZWZhdWx0VHJhbnNpdGlvbigpfHxFZCx7b25MYXlvdXRBbmltYXRpb25TdGFydDppLG9uTGF5b3V0QW5pbWF0aW9uQ29tcGxldGU6YX09cy5nZXRQcm9wcygpLGw9IXRoaXMudGFyZ2V0TGF5b3V0fHwhS3UodGhpcy50YXJnZXRMYXlvdXQscil8fG4sYz0hdCYmbjtpZih0aGlzLm9wdGlvbnMubGF5b3V0Um9vdHx8dGhpcy5yZXN1bWVGcm9tJiZ0aGlzLnJlc3VtZUZyb20uaW5zdGFuY2V8fGN8fHQmJihsfHwhdGhpcy5jdXJyZW50QW5pbWF0aW9uKSl7dGhpcy5yZXN1bWVGcm9tJiYodGhpcy5yZXN1bWluZ0Zyb209dGhpcy5yZXN1bWVGcm9tLHRoaXMucmVzdW1pbmdGcm9tLnJlc3VtaW5nRnJvbT12b2lkIDApLHRoaXMuc2V0QW5pbWF0aW9uT3JpZ2luKGUsYyk7Y29uc3QgdD17Li4uSGkobyxcImxheW91dFwiKSxvblBsYXk6aSxvbkNvbXBsZXRlOmF9OyhzLnNob3VsZFJlZHVjZU1vdGlvbnx8dGhpcy5vcHRpb25zLmxheW91dFJvb3QpJiYodC5kZWxheT0wLHQudHlwZT0hMSksdGhpcy5zdGFydEFuaW1hdGlvbih0KX1lbHNlIHR8fGdkKHRoaXMpLHRoaXMuaXNMZWFkKCkmJnRoaXMub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSYmdGhpcy5vcHRpb25zLm9uRXhpdENvbXBsZXRlKCk7dGhpcy50YXJnZXRMYXlvdXQ9cn0pKX11bm1vdW50KCl7dGhpcy5vcHRpb25zLmxheW91dElkJiZ0aGlzLndpbGxVcGRhdGUoKSx0aGlzLnJvb3Qubm9kZXMucmVtb3ZlKHRoaXMpO2NvbnN0IGU9dGhpcy5nZXRTdGFjaygpO2UmJmUucmVtb3ZlKHRoaXMpLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5jaGlsZHJlbi5kZWxldGUodGhpcyksdGhpcy5pbnN0YW5jZT12b2lkIDAsUWkodGhpcy51cGRhdGVQcm9qZWN0aW9uKX1ibG9ja1VwZGF0ZSgpe3RoaXMudXBkYXRlTWFudWFsbHlCbG9ja2VkPSEwfXVuYmxvY2tVcGRhdGUoKXt0aGlzLnVwZGF0ZU1hbnVhbGx5QmxvY2tlZD0hMX1pc1VwZGF0ZUJsb2NrZWQoKXtyZXR1cm4gdGhpcy51cGRhdGVNYW51YWxseUJsb2NrZWR8fHRoaXMudXBkYXRlQmxvY2tlZEJ5UmVzaXplfWlzVHJlZUFuaW1hdGlvbkJsb2NrZWQoKXtyZXR1cm4gdGhpcy5pc0FuaW1hdGlvbkJsb2NrZWR8fHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5pc1RyZWVBbmltYXRpb25CbG9ja2VkKCl8fCExfXN0YXJ0VXBkYXRlKCl7dGhpcy5pc1VwZGF0ZUJsb2NrZWQoKXx8KHRoaXMuaXNVcGRhdGluZz0hMCx0aGlzLm5vZGVzJiZ0aGlzLm5vZGVzLmZvckVhY2goYmQpLHRoaXMuYW5pbWF0aW9uSWQrKyl9Z2V0VHJhbnNmb3JtVGVtcGxhdGUoKXtjb25zdHt2aXN1YWxFbGVtZW50OmV9PXRoaXMub3B0aW9ucztyZXR1cm4gZSYmZS5nZXRQcm9wcygpLnRyYW5zZm9ybVRlbXBsYXRlfXdpbGxVcGRhdGUoZT0hMCl7aWYodGhpcy5yb290Lmhhc1RyZWVBbmltYXRlZD0hMCx0aGlzLnJvb3QuaXNVcGRhdGVCbG9ja2VkKCkpcmV0dXJuIHZvaWQodGhpcy5vcHRpb25zLm9uRXhpdENvbXBsZXRlJiZ0aGlzLm9wdGlvbnMub25FeGl0Q29tcGxldGUoKSk7aWYod2luZG93Lk1vdGlvbkNhbmNlbE9wdGltaXNlZEFuaW1hdGlvbiYmIXRoaXMuaGFzQ2hlY2tlZE9wdGltaXNlZEFwcGVhciYmc2QodGhpcyksIXRoaXMucm9vdC5pc1VwZGF0aW5nJiZ0aGlzLnJvb3Quc3RhcnRVcGRhdGUoKSx0aGlzLmlzTGF5b3V0RGlydHkpcmV0dXJuO3RoaXMuaXNMYXlvdXREaXJ0eT0hMDtmb3IobGV0IGU9MDtlPHRoaXMucGF0aC5sZW5ndGg7ZSsrKXtjb25zdCB0PXRoaXMucGF0aFtlXTt0LnNob3VsZFJlc2V0VHJhbnNmb3JtPSEwLHQudXBkYXRlU2Nyb2xsKFwic25hcHNob3RcIiksdC5vcHRpb25zLmxheW91dFJvb3QmJnQud2lsbFVwZGF0ZSghMSl9Y29uc3R7bGF5b3V0SWQ6dCxsYXlvdXQ6bn09dGhpcy5vcHRpb25zO2lmKHZvaWQgMD09PXQmJiFuKXJldHVybjtjb25zdCByPXRoaXMuZ2V0VHJhbnNmb3JtVGVtcGxhdGUoKTt0aGlzLnByZXZUcmFuc2Zvcm1UZW1wbGF0ZVZhbHVlPXI/cih0aGlzLmxhdGVzdFZhbHVlcyxcIlwiKTp2b2lkIDAsdGhpcy51cGRhdGVTbmFwc2hvdCgpLGUmJnRoaXMubm90aWZ5TGlzdGVuZXJzKFwid2lsbFVwZGF0ZVwiKX11cGRhdGUoKXtpZih0aGlzLnVwZGF0ZVNjaGVkdWxlZD0hMSx0aGlzLmlzVXBkYXRlQmxvY2tlZCgpKXJldHVybiB0aGlzLnVuYmxvY2tVcGRhdGUoKSx0aGlzLmNsZWFyQWxsU25hcHNob3RzKCksdm9pZCB0aGlzLm5vZGVzLmZvckVhY2gobWQpO3RoaXMuaXNVcGRhdGluZ3x8dGhpcy5ub2Rlcy5mb3JFYWNoKGhkKSx0aGlzLmlzVXBkYXRpbmc9ITEsdGhpcy5ub2Rlcy5mb3JFYWNoKHBkKSx0aGlzLm5vZGVzLmZvckVhY2gobGQpLHRoaXMubm9kZXMuZm9yRWFjaChjZCksdGhpcy5jbGVhckFsbFNuYXBzaG90cygpO2NvbnN0IGU9a2Eubm93KCk7ZXMuZGVsdGE9bXMoMCwxZTMvNjAsZS1lcy50aW1lc3RhbXApLGVzLnRpbWVzdGFtcD1lLGVzLmlzUHJvY2Vzc2luZz0hMCx0cy51cGRhdGUucHJvY2VzcyhlcyksdHMucHJlUmVuZGVyLnByb2Nlc3MoZXMpLHRzLnJlbmRlci5wcm9jZXNzKGVzKSxlcy5pc1Byb2Nlc3Npbmc9ITF9ZGlkVXBkYXRlKCl7dGhpcy51cGRhdGVTY2hlZHVsZWR8fCh0aGlzLnVwZGF0ZVNjaGVkdWxlZD0hMCxTdS5yZWFkKHRoaXMuc2NoZWR1bGVVcGRhdGUpKX1jbGVhckFsbFNuYXBzaG90cygpe3RoaXMubm9kZXMuZm9yRWFjaChmZCksdGhpcy5zaGFyZWROb2Rlcy5mb3JFYWNoKHhkKX1zY2hlZHVsZVVwZGF0ZVByb2plY3Rpb24oKXt0aGlzLnByb2plY3Rpb25VcGRhdGVTY2hlZHVsZWR8fCh0aGlzLnByb2plY3Rpb25VcGRhdGVTY2hlZHVsZWQ9ITAsSmkucHJlUmVuZGVyKHRoaXMudXBkYXRlUHJvamVjdGlvbiwhMSwhMCkpfXNjaGVkdWxlQ2hlY2tBZnRlclVubW91bnQoKXtKaS5wb3N0UmVuZGVyKCgoKT0+e3RoaXMuaXNMYXlvdXREaXJ0eT90aGlzLnJvb3QuZGlkVXBkYXRlKCk6dGhpcy5yb290LmNoZWNrVXBkYXRlRmFpbGVkKCl9KSl9dXBkYXRlU25hcHNob3QoKXshdGhpcy5zbmFwc2hvdCYmdGhpcy5pbnN0YW5jZSYmKHRoaXMuc25hcHNob3Q9dGhpcy5tZWFzdXJlKCkpfXVwZGF0ZUxheW91dCgpe2lmKCF0aGlzLmluc3RhbmNlKXJldHVybjtpZih0aGlzLnVwZGF0ZVNjcm9sbCgpLCEodGhpcy5vcHRpb25zLmFsd2F5c01lYXN1cmVMYXlvdXQmJnRoaXMuaXNMZWFkKCl8fHRoaXMuaXNMYXlvdXREaXJ0eSkpcmV0dXJuO2lmKHRoaXMucmVzdW1lRnJvbSYmIXRoaXMucmVzdW1lRnJvbS5pbnN0YW5jZSlmb3IobGV0IGU9MDtlPHRoaXMucGF0aC5sZW5ndGg7ZSsrKXRoaXMucGF0aFtlXS51cGRhdGVTY3JvbGwoKTtjb25zdCBlPXRoaXMubGF5b3V0O3RoaXMubGF5b3V0PXRoaXMubWVhc3VyZSghMSksdGhpcy5sYXlvdXRDb3JyZWN0ZWQ9JGMoKSx0aGlzLmlzTGF5b3V0RGlydHk9ITEsdGhpcy5wcm9qZWN0aW9uRGVsdGE9dm9pZCAwLHRoaXMubm90aWZ5TGlzdGVuZXJzKFwibWVhc3VyZVwiLHRoaXMubGF5b3V0LmxheW91dEJveCk7Y29uc3R7dmlzdWFsRWxlbWVudDp0fT10aGlzLm9wdGlvbnM7dCYmdC5ub3RpZnkoXCJMYXlvdXRNZWFzdXJlXCIsdGhpcy5sYXlvdXQubGF5b3V0Qm94LGU/ZS5sYXlvdXRCb3g6dm9pZCAwKX11cGRhdGVTY3JvbGwoZT1cIm1lYXN1cmVcIil7bGV0IHQ9Qm9vbGVhbih0aGlzLm9wdGlvbnMubGF5b3V0U2Nyb2xsJiZ0aGlzLmluc3RhbmNlKTtpZih0aGlzLnNjcm9sbCYmdGhpcy5zY3JvbGwuYW5pbWF0aW9uSWQ9PT10aGlzLnJvb3QuYW5pbWF0aW9uSWQmJnRoaXMuc2Nyb2xsLnBoYXNlPT09ZSYmKHQ9ITEpLHQpe2NvbnN0IHQ9cih0aGlzLmluc3RhbmNlKTt0aGlzLnNjcm9sbD17YW5pbWF0aW9uSWQ6dGhpcy5yb290LmFuaW1hdGlvbklkLHBoYXNlOmUsaXNSb290OnQsb2Zmc2V0Om4odGhpcy5pbnN0YW5jZSksd2FzUm9vdDp0aGlzLnNjcm9sbD90aGlzLnNjcm9sbC5pc1Jvb3Q6dH19fXJlc2V0VHJhbnNmb3JtKCl7aWYoIW8pcmV0dXJuO2NvbnN0IGU9dGhpcy5pc0xheW91dERpcnR5fHx0aGlzLnNob3VsZFJlc2V0VHJhbnNmb3JtfHx0aGlzLm9wdGlvbnMuYWx3YXlzTWVhc3VyZUxheW91dCx0PXRoaXMucHJvamVjdGlvbkRlbHRhJiYhJHUodGhpcy5wcm9qZWN0aW9uRGVsdGEpLG49dGhpcy5nZXRUcmFuc2Zvcm1UZW1wbGF0ZSgpLHI9bj9uKHRoaXMubGF0ZXN0VmFsdWVzLFwiXCIpOnZvaWQgMCxpPXIhPT10aGlzLnByZXZUcmFuc2Zvcm1UZW1wbGF0ZVZhbHVlO2UmJih0fHxHYyh0aGlzLmxhdGVzdFZhbHVlcyl8fGkpJiYobyh0aGlzLmluc3RhbmNlLHIpLHRoaXMuc2hvdWxkUmVzZXRUcmFuc2Zvcm09ITEsdGhpcy5zY2hlZHVsZVJlbmRlcigpKX1tZWFzdXJlKGU9ITApe2NvbnN0IHQ9dGhpcy5tZWFzdXJlUGFnZUJveCgpO2xldCBuPXRoaXMucmVtb3ZlRWxlbWVudFNjcm9sbCh0KTt2YXIgcjtyZXR1cm4gZSYmKG49dGhpcy5yZW1vdmVUcmFuc2Zvcm0obikpLFBkKChyPW4pLngpLFBkKHIueSkse2FuaW1hdGlvbklkOnRoaXMucm9vdC5hbmltYXRpb25JZCxtZWFzdXJlZEJveDp0LGxheW91dEJveDpuLGxhdGVzdFZhbHVlczp7fSxzb3VyY2U6dGhpcy5pZH19bWVhc3VyZVBhZ2VCb3goKXt2YXIgZTtjb25zdHt2aXN1YWxFbGVtZW50OnR9PXRoaXMub3B0aW9ucztpZighdClyZXR1cm4gJGMoKTtjb25zdCBuPXQubWVhc3VyZVZpZXdwb3J0Qm94KCk7aWYoIShudWxsPT09KGU9dGhpcy5zY3JvbGwpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLndhc1Jvb3QpJiYhdGhpcy5wYXRoLnNvbWUoTmQpKXtjb25zdHtzY3JvbGw6ZX09dGhpcy5yb290O2UmJihvdShuLngsZS5vZmZzZXQueCksb3Uobi55LGUub2Zmc2V0LnkpKX1yZXR1cm4gbn1yZW1vdmVFbGVtZW50U2Nyb2xsKGUpe3ZhciB0O2NvbnN0IG49JGMoKTtpZihJdShuLGUpLG51bGw9PT0odD10aGlzLnNjcm9sbCl8fHZvaWQgMD09PXQ/dm9pZCAwOnQud2FzUm9vdClyZXR1cm4gbjtmb3IobGV0IHQ9MDt0PHRoaXMucGF0aC5sZW5ndGg7dCsrKXtjb25zdCByPXRoaXMucGF0aFt0XSx7c2Nyb2xsOm8sb3B0aW9uczppfT1yO3IhPT10aGlzLnJvb3QmJm8mJmkubGF5b3V0U2Nyb2xsJiYoby53YXNSb290JiZJdShuLGUpLG91KG4ueCxvLm9mZnNldC54KSxvdShuLnksby5vZmZzZXQueSkpfXJldHVybiBufWFwcGx5VHJhbnNmb3JtKGUsdD0hMSl7Y29uc3Qgbj0kYygpO0l1KG4sZSk7Zm9yKGxldCBlPTA7ZTx0aGlzLnBhdGgubGVuZ3RoO2UrKyl7Y29uc3Qgcj10aGlzLnBhdGhbZV07IXQmJnIub3B0aW9ucy5sYXlvdXRTY3JvbGwmJnIuc2Nyb2xsJiZyIT09ci5yb290JiZzdShuLHt4Oi1yLnNjcm9sbC5vZmZzZXQueCx5Oi1yLnNjcm9sbC5vZmZzZXQueX0pLEdjKHIubGF0ZXN0VmFsdWVzKSYmc3UobixyLmxhdGVzdFZhbHVlcyl9cmV0dXJuIEdjKHRoaXMubGF0ZXN0VmFsdWVzKSYmc3Uobix0aGlzLmxhdGVzdFZhbHVlcyksbn1yZW1vdmVUcmFuc2Zvcm0oZSl7Y29uc3QgdD0kYygpO0l1KHQsZSk7Zm9yKGxldCBlPTA7ZTx0aGlzLnBhdGgubGVuZ3RoO2UrKyl7Y29uc3Qgbj10aGlzLnBhdGhbZV07aWYoIW4uaW5zdGFuY2UpY29udGludWU7aWYoIUdjKG4ubGF0ZXN0VmFsdWVzKSljb250aW51ZTtxYyhuLmxhdGVzdFZhbHVlcykmJm4udXBkYXRlU25hcHNob3QoKTtjb25zdCByPSRjKCk7SXUocixuLm1lYXN1cmVQYWdlQm94KCkpLFZ1KHQsbi5sYXRlc3RWYWx1ZXMsbi5zbmFwc2hvdD9uLnNuYXBzaG90LmxheW91dEJveDp2b2lkIDAscil9cmV0dXJuIEdjKHRoaXMubGF0ZXN0VmFsdWVzKSYmVnUodCx0aGlzLmxhdGVzdFZhbHVlcyksdH1zZXRUYXJnZXREZWx0YShlKXt0aGlzLnRhcmdldERlbHRhPWUsdGhpcy5yb290LnNjaGVkdWxlVXBkYXRlUHJvamVjdGlvbigpLHRoaXMuaXNQcm9qZWN0aW9uRGlydHk9ITB9c2V0T3B0aW9ucyhlKXt0aGlzLm9wdGlvbnM9ey4uLnRoaXMub3B0aW9ucywuLi5lLGNyb3NzZmFkZTp2b2lkIDA9PT1lLmNyb3NzZmFkZXx8ZS5jcm9zc2ZhZGV9fWNsZWFyTWVhc3VyZW1lbnRzKCl7dGhpcy5zY3JvbGw9dm9pZCAwLHRoaXMubGF5b3V0PXZvaWQgMCx0aGlzLnNuYXBzaG90PXZvaWQgMCx0aGlzLnByZXZUcmFuc2Zvcm1UZW1wbGF0ZVZhbHVlPXZvaWQgMCx0aGlzLnRhcmdldERlbHRhPXZvaWQgMCx0aGlzLnRhcmdldD12b2lkIDAsdGhpcy5pc0xheW91dERpcnR5PSExfWZvcmNlUmVsYXRpdmVQYXJlbnRUb1Jlc29sdmVUYXJnZXQoKXt0aGlzLnJlbGF0aXZlUGFyZW50JiZ0aGlzLnJlbGF0aXZlUGFyZW50LnJlc29sdmVkUmVsYXRpdmVUYXJnZXRBdCE9PWVzLnRpbWVzdGFtcCYmdGhpcy5yZWxhdGl2ZVBhcmVudC5yZXNvbHZlVGFyZ2V0RGVsdGEoITApfXJlc29sdmVUYXJnZXREZWx0YShlPSExKXt2YXIgdDtjb25zdCBuPXRoaXMuZ2V0TGVhZCgpO3RoaXMuaXNQcm9qZWN0aW9uRGlydHl8fCh0aGlzLmlzUHJvamVjdGlvbkRpcnR5PW4uaXNQcm9qZWN0aW9uRGlydHkpLHRoaXMuaXNUcmFuc2Zvcm1EaXJ0eXx8KHRoaXMuaXNUcmFuc2Zvcm1EaXJ0eT1uLmlzVHJhbnNmb3JtRGlydHkpLHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHl8fCh0aGlzLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5PW4uaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkpO2NvbnN0IHI9Qm9vbGVhbih0aGlzLnJlc3VtaW5nRnJvbSl8fHRoaXMhPT1uO2lmKCEoZXx8ciYmdGhpcy5pc1NoYXJlZFByb2plY3Rpb25EaXJ0eXx8dGhpcy5pc1Byb2plY3Rpb25EaXJ0eXx8KG51bGw9PT0odD10aGlzLnBhcmVudCl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuaXNQcm9qZWN0aW9uRGlydHkpfHx0aGlzLmF0dGVtcHRUb1Jlc29sdmVSZWxhdGl2ZVRhcmdldHx8dGhpcy5yb290LnVwZGF0ZUJsb2NrZWRCeVJlc2l6ZSkpcmV0dXJuO2NvbnN0e2xheW91dDpvLGxheW91dElkOml9PXRoaXMub3B0aW9ucztpZih0aGlzLmxheW91dCYmKG98fGkpKXtpZih0aGlzLnJlc29sdmVkUmVsYXRpdmVUYXJnZXRBdD1lcy50aW1lc3RhbXAsIXRoaXMudGFyZ2V0RGVsdGEmJiF0aGlzLnJlbGF0aXZlVGFyZ2V0KXtjb25zdCBlPXRoaXMuZ2V0Q2xvc2VzdFByb2plY3RpbmdQYXJlbnQoKTtlJiZlLmxheW91dCYmMSE9PXRoaXMuYW5pbWF0aW9uUHJvZ3Jlc3M/KHRoaXMucmVsYXRpdmVQYXJlbnQ9ZSx0aGlzLmZvcmNlUmVsYXRpdmVQYXJlbnRUb1Jlc29sdmVUYXJnZXQoKSx0aGlzLnJlbGF0aXZlVGFyZ2V0PSRjKCksdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbj0kYygpLExjKHRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4sdGhpcy5sYXlvdXQubGF5b3V0Qm94LGUubGF5b3V0LmxheW91dEJveCksSXUodGhpcy5yZWxhdGl2ZVRhcmdldCx0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luKSk6dGhpcy5yZWxhdGl2ZVBhcmVudD10aGlzLnJlbGF0aXZlVGFyZ2V0PXZvaWQgMH1pZih0aGlzLnJlbGF0aXZlVGFyZ2V0fHx0aGlzLnRhcmdldERlbHRhKXt2YXIgcyxhLGw7aWYodGhpcy50YXJnZXR8fCh0aGlzLnRhcmdldD0kYygpLHRoaXMudGFyZ2V0V2l0aFRyYW5zZm9ybXM9JGMoKSksdGhpcy5yZWxhdGl2ZVRhcmdldCYmdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbiYmdGhpcy5yZWxhdGl2ZVBhcmVudCYmdGhpcy5yZWxhdGl2ZVBhcmVudC50YXJnZXQ/KHRoaXMuZm9yY2VSZWxhdGl2ZVBhcmVudFRvUmVzb2x2ZVRhcmdldCgpLHM9dGhpcy50YXJnZXQsYT10aGlzLnJlbGF0aXZlVGFyZ2V0LGw9dGhpcy5yZWxhdGl2ZVBhcmVudC50YXJnZXQsQWMocy54LGEueCxsLngpLEFjKHMueSxhLnksbC55KSk6dGhpcy50YXJnZXREZWx0YT8oQm9vbGVhbih0aGlzLnJlc3VtaW5nRnJvbSk/dGhpcy50YXJnZXQ9dGhpcy5hcHBseVRyYW5zZm9ybSh0aGlzLmxheW91dC5sYXlvdXRCb3gpOkl1KHRoaXMudGFyZ2V0LHRoaXMubGF5b3V0LmxheW91dEJveCksdHUodGhpcy50YXJnZXQsdGhpcy50YXJnZXREZWx0YSkpOkl1KHRoaXMudGFyZ2V0LHRoaXMubGF5b3V0LmxheW91dEJveCksdGhpcy5hdHRlbXB0VG9SZXNvbHZlUmVsYXRpdmVUYXJnZXQpe3RoaXMuYXR0ZW1wdFRvUmVzb2x2ZVJlbGF0aXZlVGFyZ2V0PSExO2NvbnN0IGU9dGhpcy5nZXRDbG9zZXN0UHJvamVjdGluZ1BhcmVudCgpO2UmJkJvb2xlYW4oZS5yZXN1bWluZ0Zyb20pPT09Qm9vbGVhbih0aGlzLnJlc3VtaW5nRnJvbSkmJiFlLm9wdGlvbnMubGF5b3V0U2Nyb2xsJiZlLnRhcmdldCYmMSE9PXRoaXMuYW5pbWF0aW9uUHJvZ3Jlc3M/KHRoaXMucmVsYXRpdmVQYXJlbnQ9ZSx0aGlzLmZvcmNlUmVsYXRpdmVQYXJlbnRUb1Jlc29sdmVUYXJnZXQoKSx0aGlzLnJlbGF0aXZlVGFyZ2V0PSRjKCksdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbj0kYygpLExjKHRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4sdGhpcy50YXJnZXQsZS50YXJnZXQpLEl1KHRoaXMucmVsYXRpdmVUYXJnZXQsdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbikpOnRoaXMucmVsYXRpdmVQYXJlbnQ9dGhpcy5yZWxhdGl2ZVRhcmdldD12b2lkIDB9dGQmJmVkLnJlc29sdmVkVGFyZ2V0RGVsdGFzKyt9fX1nZXRDbG9zZXN0UHJvamVjdGluZ1BhcmVudCgpe2lmKHRoaXMucGFyZW50JiYhcWModGhpcy5wYXJlbnQubGF0ZXN0VmFsdWVzKSYmIVhjKHRoaXMucGFyZW50LmxhdGVzdFZhbHVlcykpcmV0dXJuIHRoaXMucGFyZW50LmlzUHJvamVjdGluZygpP3RoaXMucGFyZW50OnRoaXMucGFyZW50LmdldENsb3Nlc3RQcm9qZWN0aW5nUGFyZW50KCl9aXNQcm9qZWN0aW5nKCl7cmV0dXJuIEJvb2xlYW4oKHRoaXMucmVsYXRpdmVUYXJnZXR8fHRoaXMudGFyZ2V0RGVsdGF8fHRoaXMub3B0aW9ucy5sYXlvdXRSb290KSYmdGhpcy5sYXlvdXQpfWNhbGNQcm9qZWN0aW9uKCl7dmFyIGU7Y29uc3QgdD10aGlzLmdldExlYWQoKSxuPUJvb2xlYW4odGhpcy5yZXN1bWluZ0Zyb20pfHx0aGlzIT09dDtsZXQgcj0hMDtpZigodGhpcy5pc1Byb2plY3Rpb25EaXJ0eXx8KG51bGw9PT0oZT10aGlzLnBhcmVudCl8fHZvaWQgMD09PWU/dm9pZCAwOmUuaXNQcm9qZWN0aW9uRGlydHkpKSYmKHI9ITEpLG4mJih0aGlzLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5fHx0aGlzLmlzVHJhbnNmb3JtRGlydHkpJiYocj0hMSksdGhpcy5yZXNvbHZlZFJlbGF0aXZlVGFyZ2V0QXQ9PT1lcy50aW1lc3RhbXAmJihyPSExKSxyKXJldHVybjtjb25zdHtsYXlvdXQ6byxsYXlvdXRJZDppfT10aGlzLm9wdGlvbnM7aWYodGhpcy5pc1RyZWVBbmltYXRpbmc9Qm9vbGVhbih0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuaXNUcmVlQW5pbWF0aW5nfHx0aGlzLmN1cnJlbnRBbmltYXRpb258fHRoaXMucGVuZGluZ0FuaW1hdGlvbiksdGhpcy5pc1RyZWVBbmltYXRpbmd8fCh0aGlzLnRhcmdldERlbHRhPXRoaXMucmVsYXRpdmVUYXJnZXQ9dm9pZCAwKSwhdGhpcy5sYXlvdXR8fCFvJiYhaSlyZXR1cm47SXUodGhpcy5sYXlvdXRDb3JyZWN0ZWQsdGhpcy5sYXlvdXQubGF5b3V0Qm94KTtjb25zdCBzPXRoaXMudHJlZVNjYWxlLngsYT10aGlzLnRyZWVTY2FsZS55OyFmdW5jdGlvbihlLHQsbixyPSExKXtjb25zdCBvPW4ubGVuZ3RoO2lmKCFvKXJldHVybjtsZXQgaSxzO3QueD10Lnk9MTtmb3IobGV0IGE9MDthPG87YSsrKXtpPW5bYV0scz1pLnByb2plY3Rpb25EZWx0YTtjb25zdHt2aXN1YWxFbGVtZW50Om99PWkub3B0aW9ucztvJiZvLnByb3BzLnN0eWxlJiZcImNvbnRlbnRzXCI9PT1vLnByb3BzLnN0eWxlLmRpc3BsYXl8fChyJiZpLm9wdGlvbnMubGF5b3V0U2Nyb2xsJiZpLnNjcm9sbCYmaSE9PWkucm9vdCYmc3UoZSx7eDotaS5zY3JvbGwub2Zmc2V0LngseTotaS5zY3JvbGwub2Zmc2V0Lnl9KSxzJiYodC54Kj1zLnguc2NhbGUsdC55Kj1zLnkuc2NhbGUsdHUoZSxzKSksciYmR2MoaS5sYXRlc3RWYWx1ZXMpJiZzdShlLGkubGF0ZXN0VmFsdWVzKSl9dC54PHJ1JiZ0Lng+bnUmJih0Lng9MSksdC55PHJ1JiZ0Lnk+bnUmJih0Lnk9MSl9KHRoaXMubGF5b3V0Q29ycmVjdGVkLHRoaXMudHJlZVNjYWxlLHRoaXMucGF0aCxuKSwhdC5sYXlvdXR8fHQudGFyZ2V0fHwxPT09dGhpcy50cmVlU2NhbGUueCYmMT09PXRoaXMudHJlZVNjYWxlLnl8fCh0LnRhcmdldD10LmxheW91dC5sYXlvdXRCb3gsdC50YXJnZXRXaXRoVHJhbnNmb3Jtcz0kYygpKTtjb25zdHt0YXJnZXQ6bH09dDtsPyh0aGlzLnByb2plY3Rpb25EZWx0YSYmdGhpcy5wcmV2UHJvamVjdGlvbkRlbHRhPyhMdSh0aGlzLnByZXZQcm9qZWN0aW9uRGVsdGEueCx0aGlzLnByb2plY3Rpb25EZWx0YS54KSxMdSh0aGlzLnByZXZQcm9qZWN0aW9uRGVsdGEueSx0aGlzLnByb2plY3Rpb25EZWx0YS55KSk6dGhpcy5jcmVhdGVQcm9qZWN0aW9uRGVsdGFzKCksamModGhpcy5wcm9qZWN0aW9uRGVsdGEsdGhpcy5sYXlvdXRDb3JyZWN0ZWQsbCx0aGlzLmxhdGVzdFZhbHVlcyksdGhpcy50cmVlU2NhbGUueD09PXMmJnRoaXMudHJlZVNjYWxlLnk9PT1hJiZHdSh0aGlzLnByb2plY3Rpb25EZWx0YS54LHRoaXMucHJldlByb2plY3Rpb25EZWx0YS54KSYmR3UodGhpcy5wcm9qZWN0aW9uRGVsdGEueSx0aGlzLnByZXZQcm9qZWN0aW9uRGVsdGEueSl8fCh0aGlzLmhhc1Byb2plY3RlZD0hMCx0aGlzLnNjaGVkdWxlUmVuZGVyKCksdGhpcy5ub3RpZnlMaXN0ZW5lcnMoXCJwcm9qZWN0aW9uVXBkYXRlXCIsbCkpLHRkJiZlZC5yZWNhbGN1bGF0ZWRQcm9qZWN0aW9uKyspOnRoaXMucHJldlByb2plY3Rpb25EZWx0YSYmKHRoaXMuY3JlYXRlUHJvamVjdGlvbkRlbHRhcygpLHRoaXMuc2NoZWR1bGVSZW5kZXIoKSl9aGlkZSgpe3RoaXMuaXNWaXNpYmxlPSExfXNob3coKXt0aGlzLmlzVmlzaWJsZT0hMH1zY2hlZHVsZVJlbmRlcihlPSEwKXt2YXIgdDtpZihudWxsPT09KHQ9dGhpcy5vcHRpb25zLnZpc3VhbEVsZW1lbnQpfHx2b2lkIDA9PT10fHx0LnNjaGVkdWxlUmVuZGVyKCksZSl7Y29uc3QgZT10aGlzLmdldFN0YWNrKCk7ZSYmZS5zY2hlZHVsZVJlbmRlcigpfXRoaXMucmVzdW1pbmdGcm9tJiYhdGhpcy5yZXN1bWluZ0Zyb20uaW5zdGFuY2UmJih0aGlzLnJlc3VtaW5nRnJvbT12b2lkIDApfWNyZWF0ZVByb2plY3Rpb25EZWx0YXMoKXt0aGlzLnByZXZQcm9qZWN0aW9uRGVsdGE9VWMoKSx0aGlzLnByb2plY3Rpb25EZWx0YT1VYygpLHRoaXMucHJvamVjdGlvbkRlbHRhV2l0aFRyYW5zZm9ybT1VYygpfXNldEFuaW1hdGlvbk9yaWdpbihlLHQ9ITEpe2NvbnN0IG49dGhpcy5zbmFwc2hvdCxyPW4/bi5sYXRlc3RWYWx1ZXM6e30sbz17Li4udGhpcy5sYXRlc3RWYWx1ZXN9LGk9VWMoKTt0aGlzLnJlbGF0aXZlUGFyZW50JiZ0aGlzLnJlbGF0aXZlUGFyZW50Lm9wdGlvbnMubGF5b3V0Um9vdHx8KHRoaXMucmVsYXRpdmVUYXJnZXQ9dGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbj12b2lkIDApLHRoaXMuYXR0ZW1wdFRvUmVzb2x2ZVJlbGF0aXZlVGFyZ2V0PSF0O2NvbnN0IHM9JGMoKSxhPShuP24uc291cmNlOnZvaWQgMCkhPT0odGhpcy5sYXlvdXQ/dGhpcy5sYXlvdXQuc291cmNlOnZvaWQgMCksbD10aGlzLmdldFN0YWNrKCksYz0hbHx8bC5tZW1iZXJzLmxlbmd0aDw9MSx1PUJvb2xlYW4oYSYmIWMmJiEwPT09dGhpcy5vcHRpb25zLmNyb3NzZmFkZSYmIXRoaXMucGF0aC5zb21lKGtkKSk7bGV0IGQ7dGhpcy5hbmltYXRpb25Qcm9ncmVzcz0wLHRoaXMubWl4VGFyZ2V0RGVsdGE9dD0+e2NvbnN0IG49dC8xZTM7dmFyIGwsZixtLGgscCxnO3dkKGkueCxlLngsbiksd2QoaS55LGUueSxuKSx0aGlzLnNldFRhcmdldERlbHRhKGkpLHRoaXMucmVsYXRpdmVUYXJnZXQmJnRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4mJnRoaXMubGF5b3V0JiZ0aGlzLnJlbGF0aXZlUGFyZW50JiZ0aGlzLnJlbGF0aXZlUGFyZW50LmxheW91dCYmKExjKHMsdGhpcy5sYXlvdXQubGF5b3V0Qm94LHRoaXMucmVsYXRpdmVQYXJlbnQubGF5b3V0LmxheW91dEJveCksbT10aGlzLnJlbGF0aXZlVGFyZ2V0LGg9dGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbixwPXMsZz1uLFNkKG0ueCxoLngscC54LGcpLFNkKG0ueSxoLnkscC55LGcpLGQmJihsPXRoaXMucmVsYXRpdmVUYXJnZXQsZj1kLFl1KGwueCxmLngpJiZZdShsLnksZi55KSkmJih0aGlzLmlzUHJvamVjdGlvbkRpcnR5PSExKSxkfHwoZD0kYygpKSxJdShkLHRoaXMucmVsYXRpdmVUYXJnZXQpKSxhJiYodGhpcy5hbmltYXRpb25WYWx1ZXM9byxmdW5jdGlvbihlLHQsbixyLG8saSl7bz8oZS5vcGFjaXR5PWlsKDAsdm9pZCAwIT09bi5vcGFjaXR5P24ub3BhY2l0eToxLFJ1KHIpKSxlLm9wYWNpdHlFeGl0PWlsKHZvaWQgMCE9PXQub3BhY2l0eT90Lm9wYWNpdHk6MSwwLER1KHIpKSk6aSYmKGUub3BhY2l0eT1pbCh2b2lkIDAhPT10Lm9wYWNpdHk/dC5vcGFjaXR5OjEsdm9pZCAwIT09bi5vcGFjaXR5P24ub3BhY2l0eToxLHIpKTtmb3IobGV0IG89MDtvPE91O28rKyl7Y29uc3QgaT1gYm9yZGVyJHtQdVtvXX1SYWRpdXNgO2xldCBzPU11KHQsaSksYT1NdShuLGkpO3ZvaWQgMD09PXMmJnZvaWQgMD09PWF8fChzfHwocz0wKSxhfHwoYT0wKSwwPT09c3x8MD09PWF8fFR1KHMpPT09VHUoYSk/KGVbaV09TWF0aC5tYXgoaWwoTnUocyksTnUoYSksciksMCksKEVzLnRlc3QoYSl8fEVzLnRlc3QocykpJiYoZVtpXSs9XCIlXCIpKTplW2ldPWEpfSh0LnJvdGF0ZXx8bi5yb3RhdGUpJiYoZS5yb3RhdGU9aWwodC5yb3RhdGV8fDAsbi5yb3RhdGV8fDAscikpfShvLHIsdGhpcy5sYXRlc3RWYWx1ZXMsbix1LGMpKSx0aGlzLnJvb3Quc2NoZWR1bGVVcGRhdGVQcm9qZWN0aW9uKCksdGhpcy5zY2hlZHVsZVJlbmRlcigpLHRoaXMuYW5pbWF0aW9uUHJvZ3Jlc3M9bn0sdGhpcy5taXhUYXJnZXREZWx0YSh0aGlzLm9wdGlvbnMubGF5b3V0Um9vdD8xZTM6MCl9c3RhcnRBbmltYXRpb24oZSl7dGhpcy5ub3RpZnlMaXN0ZW5lcnMoXCJhbmltYXRpb25TdGFydFwiKSx0aGlzLmN1cnJlbnRBbmltYXRpb24mJnRoaXMuY3VycmVudEFuaW1hdGlvbi5zdG9wKCksdGhpcy5yZXN1bWluZ0Zyb20mJnRoaXMucmVzdW1pbmdGcm9tLmN1cnJlbnRBbmltYXRpb24mJnRoaXMucmVzdW1pbmdGcm9tLmN1cnJlbnRBbmltYXRpb24uc3RvcCgpLHRoaXMucGVuZGluZ0FuaW1hdGlvbiYmKFFpKHRoaXMucGVuZGluZ0FuaW1hdGlvbiksdGhpcy5wZW5kaW5nQW5pbWF0aW9uPXZvaWQgMCksdGhpcy5wZW5kaW5nQW5pbWF0aW9uPUppLnVwZGF0ZSgoKCk9Pnt5dS5oYXNBbmltYXRlZFNpbmNlUmVzaXplPSEwLHRoaXMuY3VycmVudEFuaW1hdGlvbj1mdW5jdGlvbihlLHQsbil7Y29uc3Qgcj1YbCgwKT8wOlVsKDApO3JldHVybiByLnN0YXJ0KEFsKFwiXCIsciwxZTMsbikpLHIuYW5pbWF0aW9ufSgwLDAsey4uLmUsb25VcGRhdGU6dD0+e3RoaXMubWl4VGFyZ2V0RGVsdGEodCksZS5vblVwZGF0ZSYmZS5vblVwZGF0ZSh0KX0sb25Db21wbGV0ZTooKT0+e2Uub25Db21wbGV0ZSYmZS5vbkNvbXBsZXRlKCksdGhpcy5jb21wbGV0ZUFuaW1hdGlvbigpfX0pLHRoaXMucmVzdW1pbmdGcm9tJiYodGhpcy5yZXN1bWluZ0Zyb20uY3VycmVudEFuaW1hdGlvbj10aGlzLmN1cnJlbnRBbmltYXRpb24pLHRoaXMucGVuZGluZ0FuaW1hdGlvbj12b2lkIDB9KSl9Y29tcGxldGVBbmltYXRpb24oKXt0aGlzLnJlc3VtaW5nRnJvbSYmKHRoaXMucmVzdW1pbmdGcm9tLmN1cnJlbnRBbmltYXRpb249dm9pZCAwLHRoaXMucmVzdW1pbmdGcm9tLnByZXNlcnZlT3BhY2l0eT12b2lkIDApO2NvbnN0IGU9dGhpcy5nZXRTdGFjaygpO2UmJmUuZXhpdEFuaW1hdGlvbkNvbXBsZXRlKCksdGhpcy5yZXN1bWluZ0Zyb209dGhpcy5jdXJyZW50QW5pbWF0aW9uPXRoaXMuYW5pbWF0aW9uVmFsdWVzPXZvaWQgMCx0aGlzLm5vdGlmeUxpc3RlbmVycyhcImFuaW1hdGlvbkNvbXBsZXRlXCIpfWZpbmlzaEFuaW1hdGlvbigpe3RoaXMuY3VycmVudEFuaW1hdGlvbiYmKHRoaXMubWl4VGFyZ2V0RGVsdGEmJnRoaXMubWl4VGFyZ2V0RGVsdGEoMWUzKSx0aGlzLmN1cnJlbnRBbmltYXRpb24uc3RvcCgpKSx0aGlzLmNvbXBsZXRlQW5pbWF0aW9uKCl9YXBwbHlUcmFuc2Zvcm1zVG9UYXJnZXQoKXtjb25zdCBlPXRoaXMuZ2V0TGVhZCgpO2xldHt0YXJnZXRXaXRoVHJhbnNmb3Jtczp0LHRhcmdldDpuLGxheW91dDpyLGxhdGVzdFZhbHVlczpvfT1lO2lmKHQmJm4mJnIpe2lmKHRoaXMhPT1lJiZ0aGlzLmxheW91dCYmciYmT2QodGhpcy5vcHRpb25zLmFuaW1hdGlvblR5cGUsdGhpcy5sYXlvdXQubGF5b3V0Qm94LHIubGF5b3V0Qm94KSl7bj10aGlzLnRhcmdldHx8JGMoKTtjb25zdCB0PVJjKHRoaXMubGF5b3V0LmxheW91dEJveC54KTtuLngubWluPWUudGFyZ2V0LngubWluLG4ueC5tYXg9bi54Lm1pbit0O2NvbnN0IHI9UmModGhpcy5sYXlvdXQubGF5b3V0Qm94LnkpO24ueS5taW49ZS50YXJnZXQueS5taW4sbi55Lm1heD1uLnkubWluK3J9SXUodCxuKSxzdSh0LG8pLGpjKHRoaXMucHJvamVjdGlvbkRlbHRhV2l0aFRyYW5zZm9ybSx0aGlzLmxheW91dENvcnJlY3RlZCx0LG8pfX1yZWdpc3RlclNoYXJlZE5vZGUoZSx0KXt0aGlzLnNoYXJlZE5vZGVzLmhhcyhlKXx8dGhpcy5zaGFyZWROb2Rlcy5zZXQoZSxuZXcgWHUpLHRoaXMuc2hhcmVkTm9kZXMuZ2V0KGUpLmFkZCh0KTtjb25zdCBuPXQub3B0aW9ucy5pbml0aWFsUHJvbW90aW9uQ29uZmlnO3QucHJvbW90ZSh7dHJhbnNpdGlvbjpuP24udHJhbnNpdGlvbjp2b2lkIDAscHJlc2VydmVGb2xsb3dPcGFjaXR5Om4mJm4uc2hvdWxkUHJlc2VydmVGb2xsb3dPcGFjaXR5P24uc2hvdWxkUHJlc2VydmVGb2xsb3dPcGFjaXR5KHQpOnZvaWQgMH0pfWlzTGVhZCgpe2NvbnN0IGU9dGhpcy5nZXRTdGFjaygpO3JldHVybiFlfHxlLmxlYWQ9PT10aGlzfWdldExlYWQoKXt2YXIgZTtjb25zdHtsYXlvdXRJZDp0fT10aGlzLm9wdGlvbnM7cmV0dXJuIHQmJihudWxsPT09KGU9dGhpcy5nZXRTdGFjaygpKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5sZWFkKXx8dGhpc31nZXRQcmV2TGVhZCgpe3ZhciBlO2NvbnN0e2xheW91dElkOnR9PXRoaXMub3B0aW9ucztyZXR1cm4gdD9udWxsPT09KGU9dGhpcy5nZXRTdGFjaygpKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5wcmV2TGVhZDp2b2lkIDB9Z2V0U3RhY2soKXtjb25zdHtsYXlvdXRJZDplfT10aGlzLm9wdGlvbnM7aWYoZSlyZXR1cm4gdGhpcy5yb290LnNoYXJlZE5vZGVzLmdldChlKX1wcm9tb3RlKHtuZWVkc1Jlc2V0OmUsdHJhbnNpdGlvbjp0LHByZXNlcnZlRm9sbG93T3BhY2l0eTpufT17fSl7Y29uc3Qgcj10aGlzLmdldFN0YWNrKCk7ciYmci5wcm9tb3RlKHRoaXMsbiksZSYmKHRoaXMucHJvamVjdGlvbkRlbHRhPXZvaWQgMCx0aGlzLm5lZWRzUmVzZXQ9ITApLHQmJnRoaXMuc2V0T3B0aW9ucyh7dHJhbnNpdGlvbjp0fSl9cmVsZWdhdGUoKXtjb25zdCBlPXRoaXMuZ2V0U3RhY2soKTtyZXR1cm4hIWUmJmUucmVsZWdhdGUodGhpcyl9cmVzZXRTa2V3QW5kUm90YXRpb24oKXtjb25zdHt2aXN1YWxFbGVtZW50OmV9PXRoaXMub3B0aW9ucztpZighZSlyZXR1cm47bGV0IHQ9ITE7Y29uc3R7bGF0ZXN0VmFsdWVzOm59PWU7aWYoKG4uenx8bi5yb3RhdGV8fG4ucm90YXRlWHx8bi5yb3RhdGVZfHxuLnJvdGF0ZVp8fG4uc2tld1h8fG4uc2tld1kpJiYodD0hMCksIXQpcmV0dXJuO2NvbnN0IHI9e307bi56JiZpZChcInpcIixlLHIsdGhpcy5hbmltYXRpb25WYWx1ZXMpO2ZvcihsZXQgdD0wO3Q8bmQubGVuZ3RoO3QrKylpZChgcm90YXRlJHtuZFt0XX1gLGUscix0aGlzLmFuaW1hdGlvblZhbHVlcyksaWQoYHNrZXcke25kW3RdfWAsZSxyLHRoaXMuYW5pbWF0aW9uVmFsdWVzKTtlLnJlbmRlcigpO2Zvcihjb25zdCB0IGluIHIpZS5zZXRTdGF0aWNWYWx1ZSh0LHJbdF0pLHRoaXMuYW5pbWF0aW9uVmFsdWVzJiYodGhpcy5hbmltYXRpb25WYWx1ZXNbdF09clt0XSk7ZS5zY2hlZHVsZVJlbmRlcigpfWdldFByb2plY3Rpb25TdHlsZXMoZSl7dmFyIHQsbjtpZighdGhpcy5pbnN0YW5jZXx8dGhpcy5pc1NWRylyZXR1cm47aWYoIXRoaXMuaXNWaXNpYmxlKXJldHVybiByZDtjb25zdCByPXt2aXNpYmlsaXR5OlwiXCJ9LG89dGhpcy5nZXRUcmFuc2Zvcm1UZW1wbGF0ZSgpO2lmKHRoaXMubmVlZHNSZXNldClyZXR1cm4gdGhpcy5uZWVkc1Jlc2V0PSExLHIub3BhY2l0eT1cIlwiLHIucG9pbnRlckV2ZW50cz1RdShudWxsPT1lP3ZvaWQgMDplLnBvaW50ZXJFdmVudHMpfHxcIlwiLHIudHJhbnNmb3JtPW8/byh0aGlzLmxhdGVzdFZhbHVlcyxcIlwiKTpcIm5vbmVcIixyO2NvbnN0IGk9dGhpcy5nZXRMZWFkKCk7aWYoIXRoaXMucHJvamVjdGlvbkRlbHRhfHwhdGhpcy5sYXlvdXR8fCFpLnRhcmdldCl7Y29uc3QgdD17fTtyZXR1cm4gdGhpcy5vcHRpb25zLmxheW91dElkJiYodC5vcGFjaXR5PXZvaWQgMCE9PXRoaXMubGF0ZXN0VmFsdWVzLm9wYWNpdHk/dGhpcy5sYXRlc3RWYWx1ZXMub3BhY2l0eToxLHQucG9pbnRlckV2ZW50cz1RdShudWxsPT1lP3ZvaWQgMDplLnBvaW50ZXJFdmVudHMpfHxcIlwiKSx0aGlzLmhhc1Byb2plY3RlZCYmIUdjKHRoaXMubGF0ZXN0VmFsdWVzKSYmKHQudHJhbnNmb3JtPW8/byh7fSxcIlwiKTpcIm5vbmVcIix0aGlzLmhhc1Byb2plY3RlZD0hMSksdH1jb25zdCBzPWkuYW5pbWF0aW9uVmFsdWVzfHxpLmxhdGVzdFZhbHVlczt0aGlzLmFwcGx5VHJhbnNmb3Jtc1RvVGFyZ2V0KCksci50cmFuc2Zvcm09ZnVuY3Rpb24oZSx0LG4pe2xldCByPVwiXCI7Y29uc3Qgbz1lLngudHJhbnNsYXRlL3QueCxpPWUueS50cmFuc2xhdGUvdC55LHM9KG51bGw9PW4/dm9pZCAwOm4ueil8fDA7aWYoKG98fGl8fHMpJiYocj1gdHJhbnNsYXRlM2QoJHtvfXB4LCAke2l9cHgsICR7c31weCkgYCksMT09PXQueCYmMT09PXQueXx8KHIrPWBzY2FsZSgkezEvdC54fSwgJHsxL3QueX0pIGApLG4pe2NvbnN0e3RyYW5zZm9ybVBlcnNwZWN0aXZlOmUscm90YXRlOnQscm90YXRlWDpvLHJvdGF0ZVk6aSxza2V3WDpzLHNrZXdZOmF9PW47ZSYmKHI9YHBlcnNwZWN0aXZlKCR7ZX1weCkgJHtyfWApLHQmJihyKz1gcm90YXRlKCR7dH1kZWcpIGApLG8mJihyKz1gcm90YXRlWCgke299ZGVnKSBgKSxpJiYocis9YHJvdGF0ZVkoJHtpfWRlZykgYCkscyYmKHIrPWBza2V3WCgke3N9ZGVnKSBgKSxhJiYocis9YHNrZXdZKCR7YX1kZWcpIGApfWNvbnN0IGE9ZS54LnNjYWxlKnQueCxsPWUueS5zY2FsZSp0Lnk7cmV0dXJuIDE9PT1hJiYxPT09bHx8KHIrPWBzY2FsZSgke2F9LCAke2x9KWApLHJ8fFwibm9uZVwifSh0aGlzLnByb2plY3Rpb25EZWx0YVdpdGhUcmFuc2Zvcm0sdGhpcy50cmVlU2NhbGUscyksbyYmKHIudHJhbnNmb3JtPW8ocyxyLnRyYW5zZm9ybSkpO2NvbnN0e3g6YSx5Omx9PXRoaXMucHJvamVjdGlvbkRlbHRhO3IudHJhbnNmb3JtT3JpZ2luPWAkezEwMCphLm9yaWdpbn0lICR7MTAwKmwub3JpZ2lufSUgMGAsaS5hbmltYXRpb25WYWx1ZXM/ci5vcGFjaXR5PWk9PT10aGlzP251bGwhPT0obj1udWxsIT09KHQ9cy5vcGFjaXR5KSYmdm9pZCAwIT09dD90OnRoaXMubGF0ZXN0VmFsdWVzLm9wYWNpdHkpJiZ2b2lkIDAhPT1uP246MTp0aGlzLnByZXNlcnZlT3BhY2l0eT90aGlzLmxhdGVzdFZhbHVlcy5vcGFjaXR5OnMub3BhY2l0eUV4aXQ6ci5vcGFjaXR5PWk9PT10aGlzP3ZvaWQgMCE9PXMub3BhY2l0eT9zLm9wYWNpdHk6XCJcIjp2b2lkIDAhPT1zLm9wYWNpdHlFeGl0P3Mub3BhY2l0eUV4aXQ6MDtmb3IoY29uc3QgZSBpbiB3dSl7aWYodm9pZCAwPT09c1tlXSljb250aW51ZTtjb25zdHtjb3JyZWN0OnQsYXBwbHlUbzpufT13dVtlXSxvPVwibm9uZVwiPT09ci50cmFuc2Zvcm0/c1tlXTp0KHNbZV0saSk7aWYobil7Y29uc3QgZT1uLmxlbmd0aDtmb3IobGV0IHQ9MDt0PGU7dCsrKXJbblt0XV09b31lbHNlIHJbZV09b31yZXR1cm4gdGhpcy5vcHRpb25zLmxheW91dElkJiYoci5wb2ludGVyRXZlbnRzPWk9PT10aGlzP1F1KG51bGw9PWU/dm9pZCAwOmUucG9pbnRlckV2ZW50cyl8fFwiXCI6XCJub25lXCIpLHJ9Y2xlYXJTbmFwc2hvdCgpe3RoaXMucmVzdW1lRnJvbT10aGlzLnNuYXBzaG90PXZvaWQgMH1yZXNldFRyZWUoKXt0aGlzLnJvb3Qubm9kZXMuZm9yRWFjaCgoZT0+e3ZhciB0O3JldHVybiBudWxsPT09KHQ9ZS5jdXJyZW50QW5pbWF0aW9uKXx8dm9pZCAwPT09dD92b2lkIDA6dC5zdG9wKCl9KSksdGhpcy5yb290Lm5vZGVzLmZvckVhY2gobWQpLHRoaXMucm9vdC5zaGFyZWROb2Rlcy5jbGVhcigpfX19ZnVuY3Rpb24gbGQoZSl7ZS51cGRhdGVMYXlvdXQoKX1mdW5jdGlvbiBjZChlKXt2YXIgdDtjb25zdCBuPShudWxsPT09KHQ9ZS5yZXN1bWVGcm9tKXx8dm9pZCAwPT09dD92b2lkIDA6dC5zbmFwc2hvdCl8fGUuc25hcHNob3Q7aWYoZS5pc0xlYWQoKSYmZS5sYXlvdXQmJm4mJmUuaGFzTGlzdGVuZXJzKFwiZGlkVXBkYXRlXCIpKXtjb25zdHtsYXlvdXRCb3g6dCxtZWFzdXJlZEJveDpyfT1lLmxheW91dCx7YW5pbWF0aW9uVHlwZTpvfT1lLm9wdGlvbnMsaT1uLnNvdXJjZSE9PWUubGF5b3V0LnNvdXJjZTtcInNpemVcIj09PW8/WWMoKGU9Pntjb25zdCByPWk/bi5tZWFzdXJlZEJveFtlXTpuLmxheW91dEJveFtlXSxvPVJjKHIpO3IubWluPXRbZV0ubWluLHIubWF4PXIubWluK299KSk6T2QobyxuLmxheW91dEJveCx0KSYmWWMoKHI9Pntjb25zdCBvPWk/bi5tZWFzdXJlZEJveFtyXTpuLmxheW91dEJveFtyXSxzPVJjKHRbcl0pO28ubWF4PW8ubWluK3MsZS5yZWxhdGl2ZVRhcmdldCYmIWUuY3VycmVudEFuaW1hdGlvbiYmKGUuaXNQcm9qZWN0aW9uRGlydHk9ITAsZS5yZWxhdGl2ZVRhcmdldFtyXS5tYXg9ZS5yZWxhdGl2ZVRhcmdldFtyXS5taW4rcyl9KSk7Y29uc3Qgcz1VYygpO2pjKHMsdCxuLmxheW91dEJveCk7Y29uc3QgYT1VYygpO2k/amMoYSxlLmFwcGx5VHJhbnNmb3JtKHIsITApLG4ubWVhc3VyZWRCb3gpOmpjKGEsdCxuLmxheW91dEJveCk7Y29uc3QgbD0hJHUocyk7bGV0IGM9ITE7aWYoIWUucmVzdW1lRnJvbSl7Y29uc3Qgcj1lLmdldENsb3Nlc3RQcm9qZWN0aW5nUGFyZW50KCk7aWYociYmIXIucmVzdW1lRnJvbSl7Y29uc3R7c25hcHNob3Q6byxsYXlvdXQ6aX09cjtpZihvJiZpKXtjb25zdCBzPSRjKCk7TGMocyxuLmxheW91dEJveCxvLmxheW91dEJveCk7Y29uc3QgYT0kYygpO0xjKGEsdCxpLmxheW91dEJveCksS3UocyxhKXx8KGM9ITApLHIub3B0aW9ucy5sYXlvdXRSb290JiYoZS5yZWxhdGl2ZVRhcmdldD1hLGUucmVsYXRpdmVUYXJnZXRPcmlnaW49cyxlLnJlbGF0aXZlUGFyZW50PXIpfX19ZS5ub3RpZnlMaXN0ZW5lcnMoXCJkaWRVcGRhdGVcIix7bGF5b3V0OnQsc25hcHNob3Q6bixkZWx0YTphLGxheW91dERlbHRhOnMsaGFzTGF5b3V0Q2hhbmdlZDpsLGhhc1JlbGF0aXZlVGFyZ2V0Q2hhbmdlZDpjfSl9ZWxzZSBpZihlLmlzTGVhZCgpKXtjb25zdHtvbkV4aXRDb21wbGV0ZTp0fT1lLm9wdGlvbnM7dCYmdCgpfWUub3B0aW9ucy50cmFuc2l0aW9uPXZvaWQgMH1mdW5jdGlvbiB1ZChlKXt0ZCYmZWQudG90YWxOb2RlcysrLGUucGFyZW50JiYoZS5pc1Byb2plY3RpbmcoKXx8KGUuaXNQcm9qZWN0aW9uRGlydHk9ZS5wYXJlbnQuaXNQcm9qZWN0aW9uRGlydHkpLGUuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHl8fChlLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5PUJvb2xlYW4oZS5pc1Byb2plY3Rpb25EaXJ0eXx8ZS5wYXJlbnQuaXNQcm9qZWN0aW9uRGlydHl8fGUucGFyZW50LmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5KSksZS5pc1RyYW5zZm9ybURpcnR5fHwoZS5pc1RyYW5zZm9ybURpcnR5PWUucGFyZW50LmlzVHJhbnNmb3JtRGlydHkpKX1mdW5jdGlvbiBkZChlKXtlLmlzUHJvamVjdGlvbkRpcnR5PWUuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHk9ZS5pc1RyYW5zZm9ybURpcnR5PSExfWZ1bmN0aW9uIGZkKGUpe2UuY2xlYXJTbmFwc2hvdCgpfWZ1bmN0aW9uIG1kKGUpe2UuY2xlYXJNZWFzdXJlbWVudHMoKX1mdW5jdGlvbiBoZChlKXtlLmlzTGF5b3V0RGlydHk9ITF9ZnVuY3Rpb24gcGQoZSl7Y29uc3R7dmlzdWFsRWxlbWVudDp0fT1lLm9wdGlvbnM7dCYmdC5nZXRQcm9wcygpLm9uQmVmb3JlTGF5b3V0TWVhc3VyZSYmdC5ub3RpZnkoXCJCZWZvcmVMYXlvdXRNZWFzdXJlXCIpLGUucmVzZXRUcmFuc2Zvcm0oKX1mdW5jdGlvbiBnZChlKXtlLmZpbmlzaEFuaW1hdGlvbigpLGUudGFyZ2V0RGVsdGE9ZS5yZWxhdGl2ZVRhcmdldD1lLnRhcmdldD12b2lkIDAsZS5pc1Byb2plY3Rpb25EaXJ0eT0hMH1mdW5jdGlvbiB5ZChlKXtlLnJlc29sdmVUYXJnZXREZWx0YSgpfWZ1bmN0aW9uIHZkKGUpe2UuY2FsY1Byb2plY3Rpb24oKX1mdW5jdGlvbiBiZChlKXtlLnJlc2V0U2tld0FuZFJvdGF0aW9uKCl9ZnVuY3Rpb24geGQoZSl7ZS5yZW1vdmVMZWFkU25hcHNob3QoKX1mdW5jdGlvbiB3ZChlLHQsbil7ZS50cmFuc2xhdGU9aWwodC50cmFuc2xhdGUsMCxuKSxlLnNjYWxlPWlsKHQuc2NhbGUsMSxuKSxlLm9yaWdpbj10Lm9yaWdpbixlLm9yaWdpblBvaW50PXQub3JpZ2luUG9pbnR9ZnVuY3Rpb24gU2QoZSx0LG4scil7ZS5taW49aWwodC5taW4sbi5taW4sciksZS5tYXg9aWwodC5tYXgsbi5tYXgscil9ZnVuY3Rpb24ga2QoZSl7cmV0dXJuIGUuYW5pbWF0aW9uVmFsdWVzJiZ2b2lkIDAhPT1lLmFuaW1hdGlvblZhbHVlcy5vcGFjaXR5RXhpdH1jb25zdCBFZD17ZHVyYXRpb246LjQ1LGVhc2U6Wy40LDAsLjEsMV19LENkPWU9PlwidW5kZWZpbmVkXCIhPXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhlKSxfZD1DZChcImFwcGxld2Via2l0L1wiKSYmIUNkKFwiY2hyb21lL1wiKT9NYXRoLnJvdW5kOkdpO2Z1bmN0aW9uIFBkKGUpe2UubWluPV9kKGUubWluKSxlLm1heD1fZChlLm1heCl9ZnVuY3Rpb24gT2QoZSx0LG4pe3JldHVyblwicG9zaXRpb25cIj09PWV8fFwicHJlc2VydmUtYXNwZWN0XCI9PT1lJiYocj1xdSh0KSxvPXF1KG4pLCEoTWF0aC5hYnMoci1vKTw9LjIpKTt2YXIgcixvfWZ1bmN0aW9uIE5kKGUpe3ZhciB0O3JldHVybiBlIT09ZS5yb290JiYobnVsbD09PSh0PWUuc2Nyb2xsKXx8dm9pZCAwPT09dD92b2lkIDA6dC53YXNSb290KX1jb25zdCBUZD1hZCh7YXR0YWNoUmVzaXplTGlzdGVuZXI6KGUsdCk9PmZjKGUsXCJyZXNpemVcIix0KSxtZWFzdXJlU2Nyb2xsOigpPT4oe3g6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnR8fGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCx5OmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B8fGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wfSksY2hlY2tJc1Njcm9sbFJvb3Q6KCk9PiEwfSksTWQ9e2N1cnJlbnQ6dm9pZCAwfSxSZD1hZCh7bWVhc3VyZVNjcm9sbDplPT4oe3g6ZS5zY3JvbGxMZWZ0LHk6ZS5zY3JvbGxUb3B9KSxkZWZhdWx0UGFyZW50OigpPT57aWYoIU1kLmN1cnJlbnQpe2NvbnN0IGU9bmV3IFRkKHt9KTtlLm1vdW50KHdpbmRvdyksZS5zZXRPcHRpb25zKHtsYXlvdXRTY3JvbGw6ITB9KSxNZC5jdXJyZW50PWV9cmV0dXJuIE1kLmN1cnJlbnR9LHJlc2V0VHJhbnNmb3JtOihlLHQpPT57ZS5zdHlsZS50cmFuc2Zvcm09dm9pZCAwIT09dD90Olwibm9uZVwifSxjaGVja0lzU2Nyb2xsUm9vdDplPT5Cb29sZWFuKFwiZml4ZWRcIj09PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpLnBvc2l0aW9uKX0pLERkPXtwYW46e0ZlYXR1cmU6Y2xhc3MgZXh0ZW5kcyBzY3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZW1vdmVQb2ludGVyRG93bkxpc3RlbmVyPUdpfW9uUG9pbnRlckRvd24oZSl7dGhpcy5zZXNzaW9uPW5ldyBwYyhlLHRoaXMuY3JlYXRlUGFuSGFuZGxlcnMoKSx7dHJhbnNmb3JtUGFnZVBvaW50OnRoaXMubm9kZS5nZXRUcmFuc2Zvcm1QYWdlUG9pbnQoKSxjb250ZXh0V2luZG93Omx1KHRoaXMubm9kZSl9KX1jcmVhdGVQYW5IYW5kbGVycygpe2NvbnN0e29uUGFuU2Vzc2lvblN0YXJ0OmUsb25QYW5TdGFydDp0LG9uUGFuOm4sb25QYW5FbmQ6cn09dGhpcy5ub2RlLmdldFByb3BzKCk7cmV0dXJue29uU2Vzc2lvblN0YXJ0OmZ1KGUpLG9uU3RhcnQ6ZnUodCksb25Nb3ZlOm4sb25FbmQ6KGUsdCk9PntkZWxldGUgdGhpcy5zZXNzaW9uLHImJkppLnBvc3RSZW5kZXIoKCgpPT5yKGUsdCkpKX19fW1vdW50KCl7dGhpcy5yZW1vdmVQb2ludGVyRG93bkxpc3RlbmVyPW1jKHRoaXMubm9kZS5jdXJyZW50LFwicG9pbnRlcmRvd25cIiwoZT0+dGhpcy5vblBvaW50ZXJEb3duKGUpKSl9dXBkYXRlKCl7dGhpcy5zZXNzaW9uJiZ0aGlzLnNlc3Npb24udXBkYXRlSGFuZGxlcnModGhpcy5jcmVhdGVQYW5IYW5kbGVycygpKX11bm1vdW50KCl7dGhpcy5yZW1vdmVQb2ludGVyRG93bkxpc3RlbmVyKCksdGhpcy5zZXNzaW9uJiZ0aGlzLnNlc3Npb24uZW5kKCl9fX0sZHJhZzp7RmVhdHVyZTpjbGFzcyBleHRlbmRzIHNje2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMucmVtb3ZlR3JvdXBDb250cm9scz1HaSx0aGlzLnJlbW92ZUxpc3RlbmVycz1HaSx0aGlzLmNvbnRyb2xzPW5ldyB1dShlKX1tb3VudCgpe2NvbnN0e2RyYWdDb250cm9sczplfT10aGlzLm5vZGUuZ2V0UHJvcHMoKTtlJiYodGhpcy5yZW1vdmVHcm91cENvbnRyb2xzPWUuc3Vic2NyaWJlKHRoaXMuY29udHJvbHMpKSx0aGlzLnJlbW92ZUxpc3RlbmVycz10aGlzLmNvbnRyb2xzLmFkZExpc3RlbmVycygpfHxHaX11bm1vdW50KCl7dGhpcy5yZW1vdmVHcm91cENvbnRyb2xzKCksdGhpcy5yZW1vdmVMaXN0ZW5lcnMoKX19LFByb2plY3Rpb25Ob2RlOlJkLE1lYXN1cmVMYXlvdXQ6Q3V9fTtmdW5jdGlvbiBqZChlLHQpe2NvbnN0IG49dD9cInBvaW50ZXJlbnRlclwiOlwicG9pbnRlcmxlYXZlXCIscj10P1wib25Ib3ZlclN0YXJ0XCI6XCJvbkhvdmVyRW5kXCI7cmV0dXJuIG1jKGUuY3VycmVudCxuLCgobixvKT0+e2lmKFwidG91Y2hcIj09PW4ucG9pbnRlclR5cGV8fF9jKCkpcmV0dXJuO2NvbnN0IGk9ZS5nZXRQcm9wcygpO2UuYW5pbWF0aW9uU3RhdGUmJmkud2hpbGVIb3ZlciYmZS5hbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoXCJ3aGlsZUhvdmVyXCIsdCk7Y29uc3Qgcz1pW3JdO3MmJkppLnBvc3RSZW5kZXIoKCgpPT5zKG4sbykpKX0pLHtwYXNzaXZlOiFlLmdldFByb3BzKClbcl19KX1jb25zdCBBZD0oZSx0KT0+ISF0JiYoZT09PXR8fEFkKGUsdC5wYXJlbnRFbGVtZW50KSk7ZnVuY3Rpb24gSWQoZSx0KXtpZighdClyZXR1cm47Y29uc3Qgbj1uZXcgUG9pbnRlckV2ZW50KFwicG9pbnRlclwiK2UpO3Qobix1YyhuKSl9Y29uc3QgTGQ9bmV3IFdlYWtNYXAsRmQ9bmV3IFdlYWtNYXAsemQ9ZT0+e2NvbnN0IHQ9TGQuZ2V0KGUudGFyZ2V0KTt0JiZ0KGUpfSxCZD1lPT57ZS5mb3JFYWNoKHpkKX07Y29uc3QgV2Q9e3NvbWU6MCxhbGw6MX0sVmQ9e2luVmlldzp7RmVhdHVyZTpjbGFzcyBleHRlbmRzIHNje2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmhhc0VudGVyZWRWaWV3PSExLHRoaXMuaXNJblZpZXc9ITF9c3RhcnRPYnNlcnZlcigpe3RoaXMudW5tb3VudCgpO2NvbnN0e3ZpZXdwb3J0OmU9e319PXRoaXMubm9kZS5nZXRQcm9wcygpLHtyb290OnQsbWFyZ2luOm4sYW1vdW50OnI9XCJzb21lXCIsb25jZTpvfT1lLGk9e3Jvb3Q6dD90LmN1cnJlbnQ6dm9pZCAwLHJvb3RNYXJnaW46bix0aHJlc2hvbGQ6XCJudW1iZXJcIj09dHlwZW9mIHI/cjpXZFtyXX07cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWZ1bmN0aW9uKHtyb290OmUsLi4udH0pe2NvbnN0IG49ZXx8ZG9jdW1lbnQ7RmQuaGFzKG4pfHxGZC5zZXQobix7fSk7Y29uc3Qgcj1GZC5nZXQobiksbz1KU09OLnN0cmluZ2lmeSh0KTtyZXR1cm4gcltvXXx8KHJbb109bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKEJkLHtyb290OmUsLi4udH0pKSxyW29dfSh0KTtyZXR1cm4gTGQuc2V0KGUsbiksci5vYnNlcnZlKGUpLCgpPT57TGQuZGVsZXRlKGUpLHIudW5vYnNlcnZlKGUpfX0odGhpcy5ub2RlLmN1cnJlbnQsaSwoZT0+e2NvbnN0e2lzSW50ZXJzZWN0aW5nOnR9PWU7aWYodGhpcy5pc0luVmlldz09PXQpcmV0dXJuO2lmKHRoaXMuaXNJblZpZXc9dCxvJiYhdCYmdGhpcy5oYXNFbnRlcmVkVmlldylyZXR1cm47dCYmKHRoaXMuaGFzRW50ZXJlZFZpZXc9ITApLHRoaXMubm9kZS5hbmltYXRpb25TdGF0ZSYmdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZShcIndoaWxlSW5WaWV3XCIsdCk7Y29uc3R7b25WaWV3cG9ydEVudGVyOm4sb25WaWV3cG9ydExlYXZlOnJ9PXRoaXMubm9kZS5nZXRQcm9wcygpLGk9dD9uOnI7aSYmaShlKX0pKX1tb3VudCgpe3RoaXMuc3RhcnRPYnNlcnZlcigpfXVwZGF0ZSgpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlcilyZXR1cm47Y29uc3R7cHJvcHM6ZSxwcmV2UHJvcHM6dH09dGhpcy5ub2RlO1tcImFtb3VudFwiLFwibWFyZ2luXCIsXCJyb290XCJdLnNvbWUoZnVuY3Rpb24oe3ZpZXdwb3J0OmU9e319LHt2aWV3cG9ydDp0PXt9fT17fSl7cmV0dXJuIG49PmVbbl0hPT10W25dfShlLHQpKSYmdGhpcy5zdGFydE9ic2VydmVyKCl9dW5tb3VudCgpe319fSx0YXA6e0ZlYXR1cmU6Y2xhc3MgZXh0ZW5kcyBzY3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZW1vdmVTdGFydExpc3RlbmVycz1HaSx0aGlzLnJlbW92ZUVuZExpc3RlbmVycz1HaSx0aGlzLnJlbW92ZUFjY2Vzc2libGVMaXN0ZW5lcnM9R2ksdGhpcy5zdGFydFBvaW50ZXJQcmVzcz0oZSx0KT0+e2lmKHRoaXMuaXNQcmVzc2luZylyZXR1cm47dGhpcy5yZW1vdmVFbmRMaXN0ZW5lcnMoKTtjb25zdCBuPXRoaXMubm9kZS5nZXRQcm9wcygpLHI9bWMod2luZG93LFwicG9pbnRlcnVwXCIsKChlLHQpPT57aWYoIXRoaXMuY2hlY2tQcmVzc0VuZCgpKXJldHVybjtjb25zdHtvblRhcDpuLG9uVGFwQ2FuY2VsOnIsZ2xvYmFsVGFwVGFyZ2V0Om99PXRoaXMubm9kZS5nZXRQcm9wcygpLGk9b3x8QWQodGhpcy5ub2RlLmN1cnJlbnQsZS50YXJnZXQpP246cjtpJiZKaS51cGRhdGUoKCgpPT5pKGUsdCkpKX0pLHtwYXNzaXZlOiEobi5vblRhcHx8bi5vblBvaW50ZXJVcCl9KSxvPW1jKHdpbmRvdyxcInBvaW50ZXJjYW5jZWxcIiwoKGUsdCk9PnRoaXMuY2FuY2VsUHJlc3MoZSx0KSkse3Bhc3NpdmU6IShuLm9uVGFwQ2FuY2VsfHxuLm9uUG9pbnRlckNhbmNlbCl9KTt0aGlzLnJlbW92ZUVuZExpc3RlbmVycz1ybChyLG8pLHRoaXMuc3RhcnRQcmVzcyhlLHQpfSx0aGlzLnN0YXJ0QWNjZXNzaWJsZVByZXNzPSgpPT57Y29uc3QgZT1mYyh0aGlzLm5vZGUuY3VycmVudCxcImtleWRvd25cIiwoZT0+e1wiRW50ZXJcIiE9PWUua2V5fHx0aGlzLmlzUHJlc3Npbmd8fCh0aGlzLnJlbW92ZUVuZExpc3RlbmVycygpLHRoaXMucmVtb3ZlRW5kTGlzdGVuZXJzPWZjKHRoaXMubm9kZS5jdXJyZW50LFwia2V5dXBcIiwoZT0+e1wiRW50ZXJcIj09PWUua2V5JiZ0aGlzLmNoZWNrUHJlc3NFbmQoKSYmSWQoXCJ1cFwiLCgoZSx0KT0+e2NvbnN0e29uVGFwOm59PXRoaXMubm9kZS5nZXRQcm9wcygpO24mJkppLnBvc3RSZW5kZXIoKCgpPT5uKGUsdCkpKX0pKX0pKSxJZChcImRvd25cIiwoKGUsdCk9Pnt0aGlzLnN0YXJ0UHJlc3MoZSx0KX0pKSl9KSksdD1mYyh0aGlzLm5vZGUuY3VycmVudCxcImJsdXJcIiwoKCk9Pnt0aGlzLmlzUHJlc3NpbmcmJklkKFwiY2FuY2VsXCIsKChlLHQpPT50aGlzLmNhbmNlbFByZXNzKGUsdCkpKX0pKTt0aGlzLnJlbW92ZUFjY2Vzc2libGVMaXN0ZW5lcnM9cmwoZSx0KX19c3RhcnRQcmVzcyhlLHQpe3RoaXMuaXNQcmVzc2luZz0hMDtjb25zdHtvblRhcFN0YXJ0Om4sd2hpbGVUYXA6cn09dGhpcy5ub2RlLmdldFByb3BzKCk7ciYmdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlJiZ0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKFwid2hpbGVUYXBcIiwhMCksbiYmSmkucG9zdFJlbmRlcigoKCk9Pm4oZSx0KSkpfWNoZWNrUHJlc3NFbmQoKXtyZXR1cm4gdGhpcy5yZW1vdmVFbmRMaXN0ZW5lcnMoKSx0aGlzLmlzUHJlc3Npbmc9ITEsdGhpcy5ub2RlLmdldFByb3BzKCkud2hpbGVUYXAmJnRoaXMubm9kZS5hbmltYXRpb25TdGF0ZSYmdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZShcIndoaWxlVGFwXCIsITEpLCFfYygpfWNhbmNlbFByZXNzKGUsdCl7aWYoIXRoaXMuY2hlY2tQcmVzc0VuZCgpKXJldHVybjtjb25zdHtvblRhcENhbmNlbDpufT10aGlzLm5vZGUuZ2V0UHJvcHMoKTtuJiZKaS5wb3N0UmVuZGVyKCgoKT0+bihlLHQpKSl9bW91bnQoKXtjb25zdCBlPXRoaXMubm9kZS5nZXRQcm9wcygpLHQ9bWMoZS5nbG9iYWxUYXBUYXJnZXQ/d2luZG93OnRoaXMubm9kZS5jdXJyZW50LFwicG9pbnRlcmRvd25cIix0aGlzLnN0YXJ0UG9pbnRlclByZXNzLHtwYXNzaXZlOiEoZS5vblRhcFN0YXJ0fHxlLm9uUG9pbnRlclN0YXJ0KX0pLG49ZmModGhpcy5ub2RlLmN1cnJlbnQsXCJmb2N1c1wiLHRoaXMuc3RhcnRBY2Nlc3NpYmxlUHJlc3MpO3RoaXMucmVtb3ZlU3RhcnRMaXN0ZW5lcnM9cmwodCxuKX11bm1vdW50KCl7dGhpcy5yZW1vdmVTdGFydExpc3RlbmVycygpLHRoaXMucmVtb3ZlRW5kTGlzdGVuZXJzKCksdGhpcy5yZW1vdmVBY2Nlc3NpYmxlTGlzdGVuZXJzKCl9fX0sZm9jdXM6e0ZlYXR1cmU6Y2xhc3MgZXh0ZW5kcyBzY3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5pc0FjdGl2ZT0hMX1vbkZvY3VzKCl7bGV0IGU9ITE7dHJ5e2U9dGhpcy5ub2RlLmN1cnJlbnQubWF0Y2hlcyhcIjpmb2N1cy12aXNpYmxlXCIpfWNhdGNoKHQpe2U9ITB9ZSYmdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlJiYodGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZShcIndoaWxlRm9jdXNcIiwhMCksdGhpcy5pc0FjdGl2ZT0hMCl9b25CbHVyKCl7dGhpcy5pc0FjdGl2ZSYmdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlJiYodGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZShcIndoaWxlRm9jdXNcIiwhMSksdGhpcy5pc0FjdGl2ZT0hMSl9bW91bnQoKXt0aGlzLnVubW91bnQ9cmwoZmModGhpcy5ub2RlLmN1cnJlbnQsXCJmb2N1c1wiLCgoKT0+dGhpcy5vbkZvY3VzKCkpKSxmYyh0aGlzLm5vZGUuY3VycmVudCxcImJsdXJcIiwoKCk9PnRoaXMub25CbHVyKCkpKSl9dW5tb3VudCgpe319fSxob3Zlcjp7RmVhdHVyZTpjbGFzcyBleHRlbmRzIHNje21vdW50KCl7dGhpcy51bm1vdW50PXJsKGpkKHRoaXMubm9kZSwhMCksamQodGhpcy5ub2RlLCExKSl9dW5tb3VudCgpe319fX0sVWQ9e2xheW91dDp7UHJvamVjdGlvbk5vZGU6UmQsTWVhc3VyZUxheW91dDpDdX19LCRkPSgwLGEuY3JlYXRlQ29udGV4dCkoe3RyYW5zZm9ybVBhZ2VQb2ludDplPT5lLGlzU3RhdGljOiExLHJlZHVjZWRNb3Rpb246XCJuZXZlclwifSksWWQ9KDAsYS5jcmVhdGVDb250ZXh0KSh7fSksSGQ9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdyxLZD1IZD9hLnVzZUxheW91dEVmZmVjdDphLnVzZUVmZmVjdCxxZD0oMCxhLmNyZWF0ZUNvbnRleHQpKHtzdHJpY3Q6ITF9KTtsZXQgR2Q9ITE7ZnVuY3Rpb24gWGQoZSx0LG4scixvKXt2YXIgaTtjb25zdHt2aXN1YWxFbGVtZW50OnN9PSgwLGEudXNlQ29udGV4dCkoWWQpLGw9KDAsYS51c2VDb250ZXh0KShxZCksYz0oMCxhLnVzZUNvbnRleHQpKGh1KSx1PSgwLGEudXNlQ29udGV4dCkoJGQpLnJlZHVjZWRNb3Rpb24sZD0oMCxhLnVzZVJlZikoKTtyPXJ8fGwucmVuZGVyZXIsIWQuY3VycmVudCYmciYmKGQuY3VycmVudD1yKGUse3Zpc3VhbFN0YXRlOnQscGFyZW50OnMscHJvcHM6bixwcmVzZW5jZUNvbnRleHQ6YyxibG9ja0luaXRpYWxBbmltYXRpb246ISFjJiYhMT09PWMuaW5pdGlhbCxyZWR1Y2VkTW90aW9uQ29uZmlnOnV9KSk7Y29uc3QgZj1kLmN1cnJlbnQsbT0oMCxhLnVzZUNvbnRleHQpKGd1KTshZnx8Zi5wcm9qZWN0aW9ufHwhb3x8XCJodG1sXCIhPT1mLnR5cGUmJlwic3ZnXCIhPT1mLnR5cGV8fGZ1bmN0aW9uKGUsdCxuLHIpe2NvbnN0e2xheW91dElkOm8sbGF5b3V0OmksZHJhZzpzLGRyYWdDb25zdHJhaW50czphLGxheW91dFNjcm9sbDpsLGxheW91dFJvb3Q6Y309dDtlLnByb2plY3Rpb249bmV3IG4oZS5sYXRlc3RWYWx1ZXMsdFtcImRhdGEtZnJhbWVyLXBvcnRhbC1pZFwiXT92b2lkIDA6SmQoZS5wYXJlbnQpKSxlLnByb2plY3Rpb24uc2V0T3B0aW9ucyh7bGF5b3V0SWQ6byxsYXlvdXQ6aSxhbHdheXNNZWFzdXJlTGF5b3V0OkJvb2xlYW4ocyl8fGEmJlBjKGEpLHZpc3VhbEVsZW1lbnQ6ZSxhbmltYXRpb25UeXBlOlwic3RyaW5nXCI9PXR5cGVvZiBpP2k6XCJib3RoXCIsaW5pdGlhbFByb21vdGlvbkNvbmZpZzpyLGxheW91dFNjcm9sbDpsLGxheW91dFJvb3Q6Y30pfShkLmN1cnJlbnQsbixvLG0pLCgwLGEudXNlSW5zZXJ0aW9uRWZmZWN0KSgoKCk9PntmJiZmLnVwZGF0ZShuLGMpfSkpO2NvbnN0IGg9bltIbF0scD0oMCxhLnVzZVJlZikoQm9vbGVhbihoKSYmIXdpbmRvdy5Nb3Rpb25IYW5kb2ZmSXNDb21wbGV0ZSYmKG51bGw9PT0oaT13aW5kb3cuTW90aW9uSGFzT3B0aW1pc2VkQW5pbWF0aW9uKXx8dm9pZCAwPT09aT92b2lkIDA6aS5jYWxsKHdpbmRvdyxoKSkpO3JldHVybiBLZCgoKCk9PntmJiYoZi51cGRhdGVGZWF0dXJlcygpLFN1LnJlbmRlcihmLnJlbmRlcikscC5jdXJyZW50JiZmLmFuaW1hdGlvblN0YXRlJiZmLmFuaW1hdGlvblN0YXRlLmFuaW1hdGVDaGFuZ2VzKCkpfSkpLCgwLGEudXNlRWZmZWN0KSgoKCk9PntmJiYoIXAuY3VycmVudCYmZi5hbmltYXRpb25TdGF0ZSYmZi5hbmltYXRpb25TdGF0ZS5hbmltYXRlQ2hhbmdlcygpLHAuY3VycmVudD0hMSxHZHx8KEdkPSEwLHF1ZXVlTWljcm90YXNrKFpkKSkpfSkpLGZ9ZnVuY3Rpb24gWmQoKXt3aW5kb3cuTW90aW9uSGFuZG9mZklzQ29tcGxldGU9ITB9ZnVuY3Rpb24gSmQoZSl7aWYoZSlyZXR1cm4hMSE9PWUub3B0aW9ucy5hbGxvd1Byb2plY3Rpb24/ZS5wcm9qZWN0aW9uOkpkKGUucGFyZW50KX1mdW5jdGlvbiBRZChlLHQsbil7cmV0dXJuKDAsYS51c2VDYWxsYmFjaykoKHI9PntyJiZlLm1vdW50JiZlLm1vdW50KHIpLHQmJihyP3QubW91bnQocik6dC51bm1vdW50KCkpLG4mJihcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP24ocik6UGMobikmJihuLmN1cnJlbnQ9cikpfSksW3RdKX1mdW5jdGlvbiBlZihlKXtyZXR1cm4gTmkoZS5hbmltYXRlKXx8TGkuc29tZSgodD0+UmkoZVt0XSkpKX1mdW5jdGlvbiB0ZihlKXtyZXR1cm4gQm9vbGVhbihlZihlKXx8ZS52YXJpYW50cyl9ZnVuY3Rpb24gbmYoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZS5qb2luKFwiIFwiKTplfWNvbnN0IHJmPXthbmltYXRpb246W1wiYW5pbWF0ZVwiLFwidmFyaWFudHNcIixcIndoaWxlSG92ZXJcIixcIndoaWxlVGFwXCIsXCJleGl0XCIsXCJ3aGlsZUluVmlld1wiLFwid2hpbGVGb2N1c1wiLFwid2hpbGVEcmFnXCJdLGV4aXQ6W1wiZXhpdFwiXSxkcmFnOltcImRyYWdcIixcImRyYWdDb250cm9sc1wiXSxmb2N1czpbXCJ3aGlsZUZvY3VzXCJdLGhvdmVyOltcIndoaWxlSG92ZXJcIixcIm9uSG92ZXJTdGFydFwiLFwib25Ib3ZlckVuZFwiXSx0YXA6W1wid2hpbGVUYXBcIixcIm9uVGFwXCIsXCJvblRhcFN0YXJ0XCIsXCJvblRhcENhbmNlbFwiXSxwYW46W1wib25QYW5cIixcIm9uUGFuU3RhcnRcIixcIm9uUGFuU2Vzc2lvblN0YXJ0XCIsXCJvblBhbkVuZFwiXSxpblZpZXc6W1wid2hpbGVJblZpZXdcIixcIm9uVmlld3BvcnRFbnRlclwiLFwib25WaWV3cG9ydExlYXZlXCJdLGxheW91dDpbXCJsYXlvdXRcIixcImxheW91dElkXCJdfSxvZj17fTtmb3IoY29uc3QgZSBpbiByZilvZltlXT17aXNFbmFibGVkOnQ9PnJmW2VdLnNvbWUoKGU9PiEhdFtlXSkpfTtjb25zdCBzZj1TeW1ib2wuZm9yKFwibW90aW9uQ29tcG9uZW50U3ltYm9sXCIpO2Z1bmN0aW9uIGFmKHtwcmVsb2FkZWRGZWF0dXJlczplLGNyZWF0ZVZpc3VhbEVsZW1lbnQ6dCx1c2VSZW5kZXI6bix1c2VWaXN1YWxTdGF0ZTpyLENvbXBvbmVudDpvfSl7ZSYmZnVuY3Rpb24oZSl7Zm9yKGNvbnN0IHQgaW4gZSlvZlt0XT17Li4ub2ZbdF0sLi4uZVt0XX19KGUpO2NvbnN0IGk9KDAsYS5mb3J3YXJkUmVmKSgoZnVuY3Rpb24oZSxpKXtsZXQgcztjb25zdCBsPXsuLi4oMCxhLnVzZUNvbnRleHQpKCRkKSwuLi5lLGxheW91dElkOmxmKGUpfSx7aXNTdGF0aWM6Y309bCx1PWZ1bmN0aW9uKGUpe2NvbnN0e2luaXRpYWw6dCxhbmltYXRlOm59PWZ1bmN0aW9uKGUsdCl7aWYoZWYoZSkpe2NvbnN0e2luaXRpYWw6dCxhbmltYXRlOm59PWU7cmV0dXJue2luaXRpYWw6ITE9PT10fHxSaSh0KT90OnZvaWQgMCxhbmltYXRlOlJpKG4pP246dm9pZCAwfX1yZXR1cm4hMSE9PWUuaW5oZXJpdD90Ont9fShlLCgwLGEudXNlQ29udGV4dCkoWWQpKTtyZXR1cm4oMCxhLnVzZU1lbW8pKCgoKT0+KHtpbml0aWFsOnQsYW5pbWF0ZTpufSkpLFtuZih0KSxuZihuKV0pfShlKSxkPXIoZSxjKTtpZighYyYmSGQpeygwLGEudXNlQ29udGV4dCkocWQpLnN0cmljdDtjb25zdCBlPWZ1bmN0aW9uKGUpe2NvbnN0e2RyYWc6dCxsYXlvdXQ6bn09b2Y7aWYoIXQmJiFuKXJldHVybnt9O2NvbnN0IHI9ey4uLnQsLi4ubn07cmV0dXJue01lYXN1cmVMYXlvdXQ6KG51bGw9PXQ/dm9pZCAwOnQuaXNFbmFibGVkKGUpKXx8KG51bGw9PW4/dm9pZCAwOm4uaXNFbmFibGVkKGUpKT9yLk1lYXN1cmVMYXlvdXQ6dm9pZCAwLFByb2plY3Rpb25Ob2RlOnIuUHJvamVjdGlvbk5vZGV9fShsKTtzPWUuTWVhc3VyZUxheW91dCx1LnZpc3VhbEVsZW1lbnQ9WGQobyxkLGwsdCxlLlByb2plY3Rpb25Ob2RlKX1yZXR1cm4oMCxtdS5qc3hzKShZZC5Qcm92aWRlcix7dmFsdWU6dSxjaGlsZHJlbjpbcyYmdS52aXN1YWxFbGVtZW50PygwLG11LmpzeCkocyx7dmlzdWFsRWxlbWVudDp1LnZpc3VhbEVsZW1lbnQsLi4ubH0pOm51bGwsbihvLGUsUWQoZCx1LnZpc3VhbEVsZW1lbnQsaSksZCxjLHUudmlzdWFsRWxlbWVudCldfSl9KSk7cmV0dXJuIGlbc2ZdPW8saX1mdW5jdGlvbiBsZih7bGF5b3V0SWQ6ZX0pe2NvbnN0IHQ9KDAsYS51c2VDb250ZXh0KShwdSkuaWQ7cmV0dXJuIHQmJnZvaWQgMCE9PWU/dCtcIi1cIitlOmV9Y29uc3QgY2Y9W1wiYW5pbWF0ZVwiLFwiY2lyY2xlXCIsXCJkZWZzXCIsXCJkZXNjXCIsXCJlbGxpcHNlXCIsXCJnXCIsXCJpbWFnZVwiLFwibGluZVwiLFwiZmlsdGVyXCIsXCJtYXJrZXJcIixcIm1hc2tcIixcIm1ldGFkYXRhXCIsXCJwYXRoXCIsXCJwYXR0ZXJuXCIsXCJwb2x5Z29uXCIsXCJwb2x5bGluZVwiLFwicmVjdFwiLFwic3RvcFwiLFwic3dpdGNoXCIsXCJzeW1ib2xcIixcInN2Z1wiLFwidGV4dFwiLFwidHNwYW5cIixcInVzZVwiLFwidmlld1wiXTtmdW5jdGlvbiB1ZihlKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZSYmIWUuaW5jbHVkZXMoXCItXCIpJiYhIShjZi5pbmRleE9mKGUpPi0xfHwvW0EtWl0vdS50ZXN0KGUpKX1mdW5jdGlvbiBkZihlLHtzdHlsZTp0LHZhcnM6bn0scixvKXtPYmplY3QuYXNzaWduKGUuc3R5bGUsdCxvJiZvLmdldFByb2plY3Rpb25TdHlsZXMocikpO2Zvcihjb25zdCB0IGluIG4pZS5zdHlsZS5zZXRQcm9wZXJ0eSh0LG5bdF0pfWNvbnN0IGZmPW5ldyBTZXQoW1wiYmFzZUZyZXF1ZW5jeVwiLFwiZGlmZnVzZUNvbnN0YW50XCIsXCJrZXJuZWxNYXRyaXhcIixcImtlcm5lbFVuaXRMZW5ndGhcIixcImtleVNwbGluZXNcIixcImtleVRpbWVzXCIsXCJsaW1pdGluZ0NvbmVBbmdsZVwiLFwibWFya2VySGVpZ2h0XCIsXCJtYXJrZXJXaWR0aFwiLFwibnVtT2N0YXZlc1wiLFwidGFyZ2V0WFwiLFwidGFyZ2V0WVwiLFwic3VyZmFjZVNjYWxlXCIsXCJzcGVjdWxhckNvbnN0YW50XCIsXCJzcGVjdWxhckV4cG9uZW50XCIsXCJzdGREZXZpYXRpb25cIixcInRhYmxlVmFsdWVzXCIsXCJ2aWV3Qm94XCIsXCJncmFkaWVudFRyYW5zZm9ybVwiLFwicGF0aExlbmd0aFwiLFwic3RhcnRPZmZzZXRcIixcInRleHRMZW5ndGhcIixcImxlbmd0aEFkanVzdFwiXSk7ZnVuY3Rpb24gbWYoZSx0LG4scil7ZGYoZSx0LHZvaWQgMCxyKTtmb3IoY29uc3QgbiBpbiB0LmF0dHJzKWUuc2V0QXR0cmlidXRlKGZmLmhhcyhuKT9uOllsKG4pLHQuYXR0cnNbbl0pfWZ1bmN0aW9uIGhmKGUse2xheW91dDp0LGxheW91dElkOm59KXtyZXR1cm4gemkuaGFzKGUpfHxlLnN0YXJ0c1dpdGgoXCJvcmlnaW5cIil8fCh0fHx2b2lkIDAhPT1uKSYmKCEhd3VbZV18fFwib3BhY2l0eVwiPT09ZSl9ZnVuY3Rpb24gcGYoZSx0LG4pe3ZhciByO2NvbnN0e3N0eWxlOm99PWUsaT17fTtmb3IoY29uc3QgcyBpbiBvKShYbChvW3NdKXx8dC5zdHlsZSYmWGwodC5zdHlsZVtzXSl8fGhmKHMsZSl8fHZvaWQgMCE9PShudWxsPT09KHI9bnVsbD09bj92b2lkIDA6bi5nZXRWYWx1ZShzKSl8fHZvaWQgMD09PXI/dm9pZCAwOnIubGl2ZVN0eWxlKSkmJihpW3NdPW9bc10pO3JldHVybiBuJiZvJiZcInN0cmluZ1wiPT10eXBlb2Ygby53aWxsQ2hhbmdlJiYobi5hcHBseVdpbGxDaGFuZ2U9ITEpLGl9ZnVuY3Rpb24gZ2YoZSx0LG4pe2NvbnN0IHI9cGYoZSx0LG4pO2Zvcihjb25zdCBuIGluIGUpKFhsKGVbbl0pfHxYbCh0W25dKSkmJihyWy0xIT09RmkuaW5kZXhPZihuKT9cImF0dHJcIituLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK24uc3Vic3RyaW5nKDEpOm5dPWVbbl0pO3JldHVybiByfWZ1bmN0aW9uIHlmKGUpe2NvbnN0IHQ9KDAsYS51c2VSZWYpKG51bGwpO3JldHVybiBudWxsPT09dC5jdXJyZW50JiYodC5jdXJyZW50PWUoKSksdC5jdXJyZW50fWNvbnN0IHZmPWU9Pih0LG4pPT57Y29uc3Qgcj0oMCxhLnVzZUNvbnRleHQpKFlkKSxvPSgwLGEudXNlQ29udGV4dCkoaHUpLGk9KCk9PmZ1bmN0aW9uKHthcHBseVdpbGxDaGFuZ2U6ZT0hMSxzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHM6dCxjcmVhdGVSZW5kZXJTdGF0ZTpuLG9uTW91bnQ6cn0sbyxpLHMsYSl7Y29uc3QgbD17bGF0ZXN0VmFsdWVzOndmKG8saSxzLCFhJiZlLHQpLHJlbmRlclN0YXRlOm4oKX07cmV0dXJuIHImJihsLm1vdW50PWU9PnIobyxlLGwpKSxsfShlLHQscixvLG4pO3JldHVybiBuP2koKTp5ZihpKX07ZnVuY3Rpb24gYmYoZSx0KXtjb25zdCBuPXFsKHQpO24mJkZsKGUsbil9ZnVuY3Rpb24geGYoZSx0LG4pe2NvbnN0IHI9QXJyYXkuaXNBcnJheSh0KT90Olt0XTtmb3IobGV0IHQ9MDt0PHIubGVuZ3RoO3QrKyl7Y29uc3Qgbz1qaShlLHJbdF0pO2lmKG8pe2NvbnN0e3RyYW5zaXRpb25FbmQ6ZSx0cmFuc2l0aW9uOnQsLi4ucn09bztuKHIsZSl9fX1mdW5jdGlvbiB3ZihlLHQsbixyLG8pe3ZhciBpO2NvbnN0IHM9e30sYT1bXSxsPXImJnZvaWQgMD09PShudWxsPT09KGk9ZS5zdHlsZSl8fHZvaWQgMD09PWk/dm9pZCAwOmkud2lsbENoYW5nZSksYz1vKGUse30pO2Zvcihjb25zdCBlIGluIGMpc1tlXT1RdShjW2VdKTtsZXR7aW5pdGlhbDp1LGFuaW1hdGU6ZH09ZTtjb25zdCBmPWVmKGUpLG09dGYoZSk7dCYmbSYmIWYmJiExIT09ZS5pbmhlcml0JiYodm9pZCAwPT09dSYmKHU9dC5pbml0aWFsKSx2b2lkIDA9PT1kJiYoZD10LmFuaW1hdGUpKTtsZXQgaD0hIW4mJiExPT09bi5pbml0aWFsO2g9aHx8ITE9PT11O2NvbnN0IHA9aD9kOnU7cmV0dXJuIHAmJlwiYm9vbGVhblwiIT10eXBlb2YgcCYmIU5pKHApJiZ4ZihlLHAsKChlLHQpPT57Zm9yKGNvbnN0IHQgaW4gZSl7bGV0IG49ZVt0XTtBcnJheS5pc0FycmF5KG4pJiYobj1uW2g/bi5sZW5ndGgtMTowXSksbnVsbCE9PW4mJihzW3RdPW4pfWZvcihjb25zdCBlIGluIHQpc1tlXT10W2VdfSkpLGwmJihkJiYhMSE9PXUmJiFOaShkKSYmeGYoZSxkLChlPT57Zm9yKGNvbnN0IHQgaW4gZSliZihhLHQpfSkpLGEubGVuZ3RoJiYocy53aWxsQ2hhbmdlPWEuam9pbihcIixcIikpKSxzfWNvbnN0IFNmPSgpPT4oe3N0eWxlOnt9LHRyYW5zZm9ybTp7fSx0cmFuc2Zvcm1PcmlnaW46e30sdmFyczp7fX0pLGtmPSgpPT4oey4uLlNmKCksYXR0cnM6e319KSxFZj0oZSx0KT0+dCYmXCJudW1iZXJcIj09dHlwZW9mIGU/dC50cmFuc2Zvcm0oZSk6ZSxDZj17eDpcInRyYW5zbGF0ZVhcIix5OlwidHJhbnNsYXRlWVwiLHo6XCJ0cmFuc2xhdGVaXCIsdHJhbnNmb3JtUGVyc3BlY3RpdmU6XCJwZXJzcGVjdGl2ZVwifSxfZj1GaS5sZW5ndGg7ZnVuY3Rpb24gUGYoZSx0LG4pe2NvbnN0e3N0eWxlOnIsdmFyczpvLHRyYW5zZm9ybU9yaWdpbjppfT1lO2xldCBzPSExLGE9ITE7Zm9yKGNvbnN0IGUgaW4gdCl7Y29uc3Qgbj10W2VdO2lmKHppLmhhcyhlKSlzPSEwO2Vsc2UgaWYoYXMoZSkpb1tlXT1uO2Vsc2V7Y29uc3QgdD1FZihuLGhhW2VdKTtlLnN0YXJ0c1dpdGgoXCJvcmlnaW5cIik/KGE9ITAsaVtlXT10KTpyW2VdPXR9fWlmKHQudHJhbnNmb3JtfHwoc3x8bj9yLnRyYW5zZm9ybT1mdW5jdGlvbihlLHQsbil7bGV0IHI9XCJcIixvPSEwO2ZvcihsZXQgaT0wO2k8X2Y7aSsrKXtjb25zdCBzPUZpW2ldLGE9ZVtzXTtpZih2b2lkIDA9PT1hKWNvbnRpbnVlO2xldCBsPSEwO2lmKGw9XCJudW1iZXJcIj09dHlwZW9mIGE/YT09PShzLnN0YXJ0c1dpdGgoXCJzY2FsZVwiKT8xOjApOjA9PT1wYXJzZUZsb2F0KGEpLCFsfHxuKXtjb25zdCBlPUVmKGEsaGFbc10pO2x8fChvPSExLHIrPWAke0NmW3NdfHxzfSgke2V9KSBgKSxuJiYodFtzXT1lKX19cmV0dXJuIHI9ci50cmltKCksbj9yPW4odCxvP1wiXCI6cik6byYmKHI9XCJub25lXCIpLHJ9KHQsZS50cmFuc2Zvcm0sbik6ci50cmFuc2Zvcm0mJihyLnRyYW5zZm9ybT1cIm5vbmVcIikpLGEpe2NvbnN0e29yaWdpblg6ZT1cIjUwJVwiLG9yaWdpblk6dD1cIjUwJVwiLG9yaWdpblo6bj0wfT1pO3IudHJhbnNmb3JtT3JpZ2luPWAke2V9ICR7dH0gJHtufWB9fWZ1bmN0aW9uIE9mKGUsdCxuKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZT9lOkNzLnRyYW5zZm9ybSh0K24qZSl9Y29uc3QgTmY9e29mZnNldDpcInN0cm9rZS1kYXNob2Zmc2V0XCIsYXJyYXk6XCJzdHJva2UtZGFzaGFycmF5XCJ9LFRmPXtvZmZzZXQ6XCJzdHJva2VEYXNob2Zmc2V0XCIsYXJyYXk6XCJzdHJva2VEYXNoYXJyYXlcIn07ZnVuY3Rpb24gTWYoZSx7YXR0clg6dCxhdHRyWTpuLGF0dHJTY2FsZTpyLG9yaWdpblg6byxvcmlnaW5ZOmkscGF0aExlbmd0aDpzLHBhdGhTcGFjaW5nOmE9MSxwYXRoT2Zmc2V0Omw9MCwuLi5jfSx1LGQpe2lmKFBmKGUsYyxkKSx1KXJldHVybiB2b2lkKGUuc3R5bGUudmlld0JveCYmKGUuYXR0cnMudmlld0JveD1lLnN0eWxlLnZpZXdCb3gpKTtlLmF0dHJzPWUuc3R5bGUsZS5zdHlsZT17fTtjb25zdHthdHRyczpmLHN0eWxlOm0sZGltZW5zaW9uczpofT1lO2YudHJhbnNmb3JtJiYoaCYmKG0udHJhbnNmb3JtPWYudHJhbnNmb3JtKSxkZWxldGUgZi50cmFuc2Zvcm0pLGgmJih2b2lkIDAhPT1vfHx2b2lkIDAhPT1pfHxtLnRyYW5zZm9ybSkmJihtLnRyYW5zZm9ybU9yaWdpbj1mdW5jdGlvbihlLHQsbil7cmV0dXJuYCR7T2YodCxlLngsZS53aWR0aCl9ICR7T2YobixlLnksZS5oZWlnaHQpfWB9KGgsdm9pZCAwIT09bz9vOi41LHZvaWQgMCE9PWk/aTouNSkpLHZvaWQgMCE9PXQmJihmLng9dCksdm9pZCAwIT09biYmKGYueT1uKSx2b2lkIDAhPT1yJiYoZi5zY2FsZT1yKSx2b2lkIDAhPT1zJiZmdW5jdGlvbihlLHQsbj0xLHI9MCxvPSEwKXtlLnBhdGhMZW5ndGg9MTtjb25zdCBpPW8/TmY6VGY7ZVtpLm9mZnNldF09Q3MudHJhbnNmb3JtKC1yKTtjb25zdCBzPUNzLnRyYW5zZm9ybSh0KSxhPUNzLnRyYW5zZm9ybShuKTtlW2kuYXJyYXldPWAke3N9ICR7YX1gfShmLHMsYSxsLCExKX1jb25zdCBSZj1lPT5cInN0cmluZ1wiPT10eXBlb2YgZSYmXCJzdmdcIj09PWUudG9Mb3dlckNhc2UoKSxEZj17dXNlVmlzdWFsU3RhdGU6dmYoe3NjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wczpnZixjcmVhdGVSZW5kZXJTdGF0ZTprZixvbk1vdW50OihlLHQse3JlbmRlclN0YXRlOm4sbGF0ZXN0VmFsdWVzOnJ9KT0+e0ppLnJlYWQoKCgpPT57dHJ5e24uZGltZW5zaW9ucz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmdldEJCb3g/dC5nZXRCQm94KCk6dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1jYXRjaChlKXtuLmRpbWVuc2lvbnM9e3g6MCx5OjAsd2lkdGg6MCxoZWlnaHQ6MH19fSkpLEppLnJlbmRlcigoKCk9PntNZihuLHIsUmYodC50YWdOYW1lKSxlLnRyYW5zZm9ybVRlbXBsYXRlKSxtZih0LG4pfSkpfX0pfSxqZj17dXNlVmlzdWFsU3RhdGU6dmYoe2FwcGx5V2lsbENoYW5nZTohMCxzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHM6cGYsY3JlYXRlUmVuZGVyU3RhdGU6U2Z9KX07ZnVuY3Rpb24gQWYoZSx0LG4pe2Zvcihjb25zdCByIGluIHQpWGwodFtyXSl8fGhmKHIsbil8fChlW3JdPXRbcl0pfWZ1bmN0aW9uIElmKGUsdCl7Y29uc3Qgbj17fSxyPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj17fTtyZXR1cm4gQWYobixlLnN0eWxlfHx7fSxlKSxPYmplY3QuYXNzaWduKG4sZnVuY3Rpb24oe3RyYW5zZm9ybVRlbXBsYXRlOmV9LHQpe3JldHVybigwLGEudXNlTWVtbykoKCgpPT57Y29uc3Qgbj1TZigpO3JldHVybiBQZihuLHQsZSksT2JqZWN0LmFzc2lnbih7fSxuLnZhcnMsbi5zdHlsZSl9KSxbdF0pfShlLHQpKSxufShlLHQpO3JldHVybiBlLmRyYWcmJiExIT09ZS5kcmFnTGlzdGVuZXImJihuLmRyYWdnYWJsZT0hMSxyLnVzZXJTZWxlY3Q9ci5XZWJraXRVc2VyU2VsZWN0PXIuV2Via2l0VG91Y2hDYWxsb3V0PVwibm9uZVwiLHIudG91Y2hBY3Rpb249ITA9PT1lLmRyYWc/XCJub25lXCI6XCJwYW4tXCIrKFwieFwiPT09ZS5kcmFnP1wieVwiOlwieFwiKSksdm9pZCAwPT09ZS50YWJJbmRleCYmKGUub25UYXB8fGUub25UYXBTdGFydHx8ZS53aGlsZVRhcCkmJihuLnRhYkluZGV4PTApLG4uc3R5bGU9cixufWNvbnN0IExmPW5ldyBTZXQoW1wiYW5pbWF0ZVwiLFwiZXhpdFwiLFwidmFyaWFudHNcIixcImluaXRpYWxcIixcInN0eWxlXCIsXCJ2YWx1ZXNcIixcInZhcmlhbnRzXCIsXCJ0cmFuc2l0aW9uXCIsXCJ0cmFuc2Zvcm1UZW1wbGF0ZVwiLFwiY3VzdG9tXCIsXCJpbmhlcml0XCIsXCJvbkJlZm9yZUxheW91dE1lYXN1cmVcIixcIm9uQW5pbWF0aW9uU3RhcnRcIixcIm9uQW5pbWF0aW9uQ29tcGxldGVcIixcIm9uVXBkYXRlXCIsXCJvbkRyYWdTdGFydFwiLFwib25EcmFnXCIsXCJvbkRyYWdFbmRcIixcIm9uTWVhc3VyZURyYWdDb25zdHJhaW50c1wiLFwib25EaXJlY3Rpb25Mb2NrXCIsXCJvbkRyYWdUcmFuc2l0aW9uRW5kXCIsXCJfZHJhZ1hcIixcIl9kcmFnWVwiLFwib25Ib3ZlclN0YXJ0XCIsXCJvbkhvdmVyRW5kXCIsXCJvblZpZXdwb3J0RW50ZXJcIixcIm9uVmlld3BvcnRMZWF2ZVwiLFwiZ2xvYmFsVGFwVGFyZ2V0XCIsXCJpZ25vcmVTdHJpY3RcIixcInZpZXdwb3J0XCJdKTtmdW5jdGlvbiBGZihlKXtyZXR1cm4gZS5zdGFydHNXaXRoKFwid2hpbGVcIil8fGUuc3RhcnRzV2l0aChcImRyYWdcIikmJlwiZHJhZ2dhYmxlXCIhPT1lfHxlLnN0YXJ0c1dpdGgoXCJsYXlvdXRcIil8fGUuc3RhcnRzV2l0aChcIm9uVGFwXCIpfHxlLnN0YXJ0c1dpdGgoXCJvblBhblwiKXx8ZS5zdGFydHNXaXRoKFwib25MYXlvdXRcIil8fExmLmhhcyhlKX1sZXQgemY9ZT0+IUZmKGUpO3RyeXsoQmY9bigzMTYpLkEpJiYoemY9ZT0+ZS5zdGFydHNXaXRoKFwib25cIik/IUZmKGUpOkJmKGUpKX1jYXRjaChlKXt9dmFyIEJmO2Z1bmN0aW9uIFdmKGUsdCxuLHIpe2NvbnN0IG89KDAsYS51c2VNZW1vKSgoKCk9Pntjb25zdCBuPWtmKCk7cmV0dXJuIE1mKG4sdCxSZihyKSxlLnRyYW5zZm9ybVRlbXBsYXRlKSx7Li4ubi5hdHRycyxzdHlsZTp7Li4ubi5zdHlsZX19fSksW3RdKTtpZihlLnN0eWxlKXtjb25zdCB0PXt9O0FmKHQsZS5zdHlsZSxlKSxvLnN0eWxlPXsuLi50LC4uLm8uc3R5bGV9fXJldHVybiBvfWZ1bmN0aW9uIFZmKGU9ITEpe3JldHVybih0LG4scix7bGF0ZXN0VmFsdWVzOm99LGkpPT57Y29uc3Qgcz0odWYodCk/V2Y6SWYpKG4sbyxpLHQpLGw9ZnVuY3Rpb24oZSx0LG4pe2NvbnN0IHI9e307Zm9yKGNvbnN0IG8gaW4gZSlcInZhbHVlc1wiPT09byYmXCJvYmplY3RcIj09dHlwZW9mIGUudmFsdWVzfHwoemYobyl8fCEwPT09biYmRmYobyl8fCF0JiYhRmYobyl8fGUuZHJhZ2dhYmxlJiZvLnN0YXJ0c1dpdGgoXCJvbkRyYWdcIikpJiYocltvXT1lW29dKTtyZXR1cm4gcn0obixcInN0cmluZ1wiPT10eXBlb2YgdCxlKSxjPXQhPT1hLkZyYWdtZW50P3suLi5sLC4uLnMscmVmOnJ9Ont9LHtjaGlsZHJlbjp1fT1uLGQ9KDAsYS51c2VNZW1vKSgoKCk9PlhsKHUpP3UuZ2V0KCk6dSksW3VdKTtyZXR1cm4oMCxhLmNyZWF0ZUVsZW1lbnQpKHQsey4uLmMsY2hpbGRyZW46ZH0pfX1mdW5jdGlvbiBVZihlLHQpe3JldHVybiBmdW5jdGlvbihuLHtmb3J3YXJkTW90aW9uUHJvcHM6cn09e2ZvcndhcmRNb3Rpb25Qcm9wczohMX0pe3JldHVybiBhZih7Li4udWYobik/RGY6amYscHJlbG9hZGVkRmVhdHVyZXM6ZSx1c2VSZW5kZXI6VmYociksY3JlYXRlVmlzdWFsRWxlbWVudDp0LENvbXBvbmVudDpufSl9fWNvbnN0ICRmPXtjdXJyZW50Om51bGx9LFlmPXtjdXJyZW50OiExfSxIZj1uZXcgV2Vha01hcCxLZj1bLi4uTHMsWnMsbGFdLHFmPVtcIkFuaW1hdGlvblN0YXJ0XCIsXCJBbmltYXRpb25Db21wbGV0ZVwiLFwiVXBkYXRlXCIsXCJCZWZvcmVMYXlvdXRNZWFzdXJlXCIsXCJMYXlvdXRNZWFzdXJlXCIsXCJMYXlvdXRBbmltYXRpb25TdGFydFwiLFwiTGF5b3V0QW5pbWF0aW9uQ29tcGxldGVcIl0sR2Y9TGkubGVuZ3RoO2NsYXNzIFhme3NjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhlLHQsbil7cmV0dXJue319Y29uc3RydWN0b3Ioe3BhcmVudDplLHByb3BzOnQscHJlc2VuY2VDb250ZXh0Om4scmVkdWNlZE1vdGlvbkNvbmZpZzpyLGJsb2NrSW5pdGlhbEFuaW1hdGlvbjpvLHZpc3VhbFN0YXRlOml9LHM9e30pe3RoaXMuYXBwbHlXaWxsQ2hhbmdlPSExLHRoaXMuY3VycmVudD1udWxsLHRoaXMuY2hpbGRyZW49bmV3IFNldCx0aGlzLmlzVmFyaWFudE5vZGU9ITEsdGhpcy5pc0NvbnRyb2xsaW5nVmFyaWFudHM9ITEsdGhpcy5zaG91bGRSZWR1Y2VNb3Rpb249bnVsbCx0aGlzLnZhbHVlcz1uZXcgTWFwLHRoaXMuS2V5ZnJhbWVSZXNvbHZlcj0kcyx0aGlzLmZlYXR1cmVzPXt9LHRoaXMudmFsdWVTdWJzY3JpcHRpb25zPW5ldyBNYXAsdGhpcy5wcmV2TW90aW9uVmFsdWVzPXt9LHRoaXMuZXZlbnRzPXt9LHRoaXMucHJvcEV2ZW50U3Vic2NyaXB0aW9ucz17fSx0aGlzLm5vdGlmeVVwZGF0ZT0oKT0+dGhpcy5ub3RpZnkoXCJVcGRhdGVcIix0aGlzLmxhdGVzdFZhbHVlcyksdGhpcy5yZW5kZXI9KCk9Pnt0aGlzLmlzUmVuZGVyU2NoZWR1bGVkPSExLHRoaXMuY3VycmVudCYmKHRoaXMudHJpZ2dlckJ1aWxkKCksdGhpcy5yZW5kZXJJbnN0YW5jZSh0aGlzLmN1cnJlbnQsdGhpcy5yZW5kZXJTdGF0ZSx0aGlzLnByb3BzLnN0eWxlLHRoaXMucHJvamVjdGlvbikpfSx0aGlzLmlzUmVuZGVyU2NoZWR1bGVkPSExLHRoaXMuc2NoZWR1bGVSZW5kZXI9KCk9Pnt0aGlzLmlzUmVuZGVyU2NoZWR1bGVkfHwodGhpcy5pc1JlbmRlclNjaGVkdWxlZD0hMCxKaS5yZW5kZXIodGhpcy5yZW5kZXIsITEsITApKX07Y29uc3R7bGF0ZXN0VmFsdWVzOmEscmVuZGVyU3RhdGU6bH09aTt0aGlzLmxhdGVzdFZhbHVlcz1hLHRoaXMuYmFzZVRhcmdldD17Li4uYX0sdGhpcy5pbml0aWFsVmFsdWVzPXQuaW5pdGlhbD97Li4uYX06e30sdGhpcy5yZW5kZXJTdGF0ZT1sLHRoaXMucGFyZW50PWUsdGhpcy5wcm9wcz10LHRoaXMucHJlc2VuY2VDb250ZXh0PW4sdGhpcy5kZXB0aD1lP2UuZGVwdGgrMTowLHRoaXMucmVkdWNlZE1vdGlvbkNvbmZpZz1yLHRoaXMub3B0aW9ucz1zLHRoaXMuYmxvY2tJbml0aWFsQW5pbWF0aW9uPUJvb2xlYW4obyksdGhpcy5pc0NvbnRyb2xsaW5nVmFyaWFudHM9ZWYodCksdGhpcy5pc1ZhcmlhbnROb2RlPXRmKHQpLHRoaXMuaXNWYXJpYW50Tm9kZSYmKHRoaXMudmFyaWFudENoaWxkcmVuPW5ldyBTZXQpLHRoaXMubWFudWFsbHlBbmltYXRlT25Nb3VudD1Cb29sZWFuKGUmJmUuY3VycmVudCk7Y29uc3R7d2lsbENoYW5nZTpjLC4uLnV9PXRoaXMuc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKHQse30sdGhpcyk7Zm9yKGNvbnN0IGUgaW4gdSl7Y29uc3QgdD11W2VdO3ZvaWQgMCE9PWFbZV0mJlhsKHQpJiZ0LnNldChhW2VdLCExKX19bW91bnQoZSl7dGhpcy5jdXJyZW50PWUsSGYuc2V0KGUsdGhpcyksdGhpcy5wcm9qZWN0aW9uJiYhdGhpcy5wcm9qZWN0aW9uLmluc3RhbmNlJiZ0aGlzLnByb2plY3Rpb24ubW91bnQoZSksdGhpcy5wYXJlbnQmJnRoaXMuaXNWYXJpYW50Tm9kZSYmIXRoaXMuaXNDb250cm9sbGluZ1ZhcmlhbnRzJiYodGhpcy5yZW1vdmVGcm9tVmFyaWFudFRyZWU9dGhpcy5wYXJlbnQuYWRkVmFyaWFudENoaWxkKHRoaXMpKSx0aGlzLnZhbHVlcy5mb3JFYWNoKCgoZSx0KT0+dGhpcy5iaW5kVG9Nb3Rpb25WYWx1ZSh0LGUpKSksWWYuY3VycmVudHx8ZnVuY3Rpb24oKXtpZihZZi5jdXJyZW50PSEwLEhkKWlmKHdpbmRvdy5tYXRjaE1lZGlhKXtjb25zdCBlPXdpbmRvdy5tYXRjaE1lZGlhKFwiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pXCIpLHQ9KCk9PiRmLmN1cnJlbnQ9ZS5tYXRjaGVzO2UuYWRkTGlzdGVuZXIodCksdCgpfWVsc2UgJGYuY3VycmVudD0hMX0oKSx0aGlzLnNob3VsZFJlZHVjZU1vdGlvbj1cIm5ldmVyXCIhPT10aGlzLnJlZHVjZWRNb3Rpb25Db25maWcmJihcImFsd2F5c1wiPT09dGhpcy5yZWR1Y2VkTW90aW9uQ29uZmlnfHwkZi5jdXJyZW50KSx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuY2hpbGRyZW4uYWRkKHRoaXMpLHRoaXMudXBkYXRlKHRoaXMucHJvcHMsdGhpcy5wcmVzZW5jZUNvbnRleHQpfXVubW91bnQoKXtIZi5kZWxldGUodGhpcy5jdXJyZW50KSx0aGlzLnByb2plY3Rpb24mJnRoaXMucHJvamVjdGlvbi51bm1vdW50KCksUWkodGhpcy5ub3RpZnlVcGRhdGUpLFFpKHRoaXMucmVuZGVyKSx0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5mb3JFYWNoKChlPT5lKCkpKSx0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5jbGVhcigpLHRoaXMucmVtb3ZlRnJvbVZhcmlhbnRUcmVlJiZ0aGlzLnJlbW92ZUZyb21WYXJpYW50VHJlZSgpLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5jaGlsZHJlbi5kZWxldGUodGhpcyk7Zm9yKGNvbnN0IGUgaW4gdGhpcy5ldmVudHMpdGhpcy5ldmVudHNbZV0uY2xlYXIoKTtmb3IoY29uc3QgZSBpbiB0aGlzLmZlYXR1cmVzKXtjb25zdCB0PXRoaXMuZmVhdHVyZXNbZV07dCYmKHQudW5tb3VudCgpLHQuaXNNb3VudGVkPSExKX10aGlzLmN1cnJlbnQ9bnVsbH1iaW5kVG9Nb3Rpb25WYWx1ZShlLHQpe3RoaXMudmFsdWVTdWJzY3JpcHRpb25zLmhhcyhlKSYmdGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMuZ2V0KGUpKCk7Y29uc3Qgbj16aS5oYXMoZSkscj10Lm9uKFwiY2hhbmdlXCIsKHQ9Pnt0aGlzLmxhdGVzdFZhbHVlc1tlXT10LHRoaXMucHJvcHMub25VcGRhdGUmJkppLnByZVJlbmRlcih0aGlzLm5vdGlmeVVwZGF0ZSksbiYmdGhpcy5wcm9qZWN0aW9uJiYodGhpcy5wcm9qZWN0aW9uLmlzVHJhbnNmb3JtRGlydHk9ITApfSkpLG89dC5vbihcInJlbmRlclJlcXVlc3RcIix0aGlzLnNjaGVkdWxlUmVuZGVyKTtsZXQgaTt3aW5kb3cuTW90aW9uQ2hlY2tBcHBlYXJTeW5jJiYoaT13aW5kb3cuTW90aW9uQ2hlY2tBcHBlYXJTeW5jKHRoaXMsZSx0KSksdGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMuc2V0KGUsKCgpPT57cigpLG8oKSxpJiZpKCksdC5vd25lciYmdC5zdG9wKCl9KSl9c29ydE5vZGVQb3NpdGlvbihlKXtyZXR1cm4gdGhpcy5jdXJyZW50JiZ0aGlzLnNvcnRJbnN0YW5jZU5vZGVQb3NpdGlvbiYmdGhpcy50eXBlPT09ZS50eXBlP3RoaXMuc29ydEluc3RhbmNlTm9kZVBvc2l0aW9uKHRoaXMuY3VycmVudCxlLmN1cnJlbnQpOjB9dXBkYXRlRmVhdHVyZXMoKXtsZXQgZT1cImFuaW1hdGlvblwiO2ZvcihlIGluIG9mKXtjb25zdCB0PW9mW2VdO2lmKCF0KWNvbnRpbnVlO2NvbnN0e2lzRW5hYmxlZDpuLEZlYXR1cmU6cn09dDtpZighdGhpcy5mZWF0dXJlc1tlXSYmciYmbih0aGlzLnByb3BzKSYmKHRoaXMuZmVhdHVyZXNbZV09bmV3IHIodGhpcykpLHRoaXMuZmVhdHVyZXNbZV0pe2NvbnN0IHQ9dGhpcy5mZWF0dXJlc1tlXTt0LmlzTW91bnRlZD90LnVwZGF0ZSgpOih0Lm1vdW50KCksdC5pc01vdW50ZWQ9ITApfX19dHJpZ2dlckJ1aWxkKCl7dGhpcy5idWlsZCh0aGlzLnJlbmRlclN0YXRlLHRoaXMubGF0ZXN0VmFsdWVzLHRoaXMucHJvcHMpfW1lYXN1cmVWaWV3cG9ydEJveCgpe3JldHVybiB0aGlzLmN1cnJlbnQ/dGhpcy5tZWFzdXJlSW5zdGFuY2VWaWV3cG9ydEJveCh0aGlzLmN1cnJlbnQsdGhpcy5wcm9wcyk6JGMoKX1nZXRTdGF0aWNWYWx1ZShlKXtyZXR1cm4gdGhpcy5sYXRlc3RWYWx1ZXNbZV19c2V0U3RhdGljVmFsdWUoZSx0KXt0aGlzLmxhdGVzdFZhbHVlc1tlXT10fXVwZGF0ZShlLHQpeyhlLnRyYW5zZm9ybVRlbXBsYXRlfHx0aGlzLnByb3BzLnRyYW5zZm9ybVRlbXBsYXRlKSYmdGhpcy5zY2hlZHVsZVJlbmRlcigpLHRoaXMucHJldlByb3BzPXRoaXMucHJvcHMsdGhpcy5wcm9wcz1lLHRoaXMucHJldlByZXNlbmNlQ29udGV4dD10aGlzLnByZXNlbmNlQ29udGV4dCx0aGlzLnByZXNlbmNlQ29udGV4dD10O2ZvcihsZXQgdD0wO3Q8cWYubGVuZ3RoO3QrKyl7Y29uc3Qgbj1xZlt0XTt0aGlzLnByb3BFdmVudFN1YnNjcmlwdGlvbnNbbl0mJih0aGlzLnByb3BFdmVudFN1YnNjcmlwdGlvbnNbbl0oKSxkZWxldGUgdGhpcy5wcm9wRXZlbnRTdWJzY3JpcHRpb25zW25dKTtjb25zdCByPWVbXCJvblwiK25dO3ImJih0aGlzLnByb3BFdmVudFN1YnNjcmlwdGlvbnNbbl09dGhpcy5vbihuLHIpKX10aGlzLnByZXZNb3Rpb25WYWx1ZXM9ZnVuY3Rpb24oZSx0LG4pe2Zvcihjb25zdCByIGluIHQpe2NvbnN0IG89dFtyXSxpPW5bcl07aWYoWGwobykpZS5hZGRWYWx1ZShyLG8pO2Vsc2UgaWYoWGwoaSkpZS5hZGRWYWx1ZShyLFVsKG8se293bmVyOmV9KSk7ZWxzZSBpZihpIT09bylpZihlLmhhc1ZhbHVlKHIpKXtjb25zdCB0PWUuZ2V0VmFsdWUocik7ITA9PT10LmxpdmVTdHlsZT90Lmp1bXAobyk6dC5oYXNBbmltYXRlZHx8dC5zZXQobyl9ZWxzZXtjb25zdCB0PWUuZ2V0U3RhdGljVmFsdWUocik7ZS5hZGRWYWx1ZShyLFVsKHZvaWQgMCE9PXQ/dDpvLHtvd25lcjplfSkpfX1mb3IoY29uc3QgciBpbiBuKXZvaWQgMD09PXRbcl0mJmUucmVtb3ZlVmFsdWUocik7cmV0dXJuIHR9KHRoaXMsdGhpcy5zY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMoZSx0aGlzLnByZXZQcm9wcyx0aGlzKSx0aGlzLnByZXZNb3Rpb25WYWx1ZXMpLHRoaXMuaGFuZGxlQ2hpbGRNb3Rpb25WYWx1ZSYmdGhpcy5oYW5kbGVDaGlsZE1vdGlvblZhbHVlKCl9Z2V0UHJvcHMoKXtyZXR1cm4gdGhpcy5wcm9wc31nZXRWYXJpYW50KGUpe3JldHVybiB0aGlzLnByb3BzLnZhcmlhbnRzP3RoaXMucHJvcHMudmFyaWFudHNbZV06dm9pZCAwfWdldERlZmF1bHRUcmFuc2l0aW9uKCl7cmV0dXJuIHRoaXMucHJvcHMudHJhbnNpdGlvbn1nZXRUcmFuc2Zvcm1QYWdlUG9pbnQoKXtyZXR1cm4gdGhpcy5wcm9wcy50cmFuc2Zvcm1QYWdlUG9pbnR9Z2V0Q2xvc2VzdFZhcmlhbnROb2RlKCl7cmV0dXJuIHRoaXMuaXNWYXJpYW50Tm9kZT90aGlzOnRoaXMucGFyZW50P3RoaXMucGFyZW50LmdldENsb3Nlc3RWYXJpYW50Tm9kZSgpOnZvaWQgMH1nZXRWYXJpYW50Q29udGV4dChlPSExKXtpZihlKXJldHVybiB0aGlzLnBhcmVudD90aGlzLnBhcmVudC5nZXRWYXJpYW50Q29udGV4dCgpOnZvaWQgMDtpZighdGhpcy5pc0NvbnRyb2xsaW5nVmFyaWFudHMpe2NvbnN0IGU9dGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LmdldFZhcmlhbnRDb250ZXh0KCl8fHt9O3JldHVybiB2b2lkIDAhPT10aGlzLnByb3BzLmluaXRpYWwmJihlLmluaXRpYWw9dGhpcy5wcm9wcy5pbml0aWFsKSxlfWNvbnN0IHQ9e307Zm9yKGxldCBlPTA7ZTxHZjtlKyspe2NvbnN0IG49TGlbZV0scj10aGlzLnByb3BzW25dOyhSaShyKXx8ITE9PT1yKSYmKHRbbl09cil9cmV0dXJuIHR9YWRkVmFyaWFudENoaWxkKGUpe2NvbnN0IHQ9dGhpcy5nZXRDbG9zZXN0VmFyaWFudE5vZGUoKTtpZih0KXJldHVybiB0LnZhcmlhbnRDaGlsZHJlbiYmdC52YXJpYW50Q2hpbGRyZW4uYWRkKGUpLCgpPT50LnZhcmlhbnRDaGlsZHJlbi5kZWxldGUoZSl9YWRkVmFsdWUoZSx0KXtjb25zdCBuPXRoaXMudmFsdWVzLmdldChlKTt0IT09biYmKG4mJnRoaXMucmVtb3ZlVmFsdWUoZSksdGhpcy5iaW5kVG9Nb3Rpb25WYWx1ZShlLHQpLHRoaXMudmFsdWVzLnNldChlLHQpLHRoaXMubGF0ZXN0VmFsdWVzW2VdPXQuZ2V0KCkpfXJlbW92ZVZhbHVlKGUpe3RoaXMudmFsdWVzLmRlbGV0ZShlKTtjb25zdCB0PXRoaXMudmFsdWVTdWJzY3JpcHRpb25zLmdldChlKTt0JiYodCgpLHRoaXMudmFsdWVTdWJzY3JpcHRpb25zLmRlbGV0ZShlKSksZGVsZXRlIHRoaXMubGF0ZXN0VmFsdWVzW2VdLHRoaXMucmVtb3ZlVmFsdWVGcm9tUmVuZGVyU3RhdGUoZSx0aGlzLnJlbmRlclN0YXRlKX1oYXNWYWx1ZShlKXtyZXR1cm4gdGhpcy52YWx1ZXMuaGFzKGUpfWdldFZhbHVlKGUsdCl7aWYodGhpcy5wcm9wcy52YWx1ZXMmJnRoaXMucHJvcHMudmFsdWVzW2VdKXJldHVybiB0aGlzLnByb3BzLnZhbHVlc1tlXTtsZXQgbj10aGlzLnZhbHVlcy5nZXQoZSk7cmV0dXJuIHZvaWQgMD09PW4mJnZvaWQgMCE9PXQmJihuPVVsKG51bGw9PT10P3ZvaWQgMDp0LHtvd25lcjp0aGlzfSksdGhpcy5hZGRWYWx1ZShlLG4pKSxufXJlYWRWYWx1ZShlLHQpe3ZhciBuO2xldCByPXZvaWQgMD09PXRoaXMubGF0ZXN0VmFsdWVzW2VdJiZ0aGlzLmN1cnJlbnQ/bnVsbCE9PShuPXRoaXMuZ2V0QmFzZVRhcmdldEZyb21Qcm9wcyh0aGlzLnByb3BzLGUpKSYmdm9pZCAwIT09bj9uOnRoaXMucmVhZFZhbHVlRnJvbUluc3RhbmNlKHRoaXMuY3VycmVudCxlLHRoaXMub3B0aW9ucyk6dGhpcy5sYXRlc3RWYWx1ZXNbZV07cmV0dXJuIG51bGwhPXImJihcInN0cmluZ1wiPT10eXBlb2YgciYmKGlzKHIpfHxucyhyKSk/cj1wYXJzZUZsb2F0KHIpOiEoZT0+S2YuZmluZChJcyhlKSkpKHIpJiZsYS50ZXN0KHQpJiYocj15YShlLHQpKSx0aGlzLnNldEJhc2VUYXJnZXQoZSxYbChyKT9yLmdldCgpOnIpKSxYbChyKT9yLmdldCgpOnJ9c2V0QmFzZVRhcmdldChlLHQpe3RoaXMuYmFzZVRhcmdldFtlXT10fWdldEJhc2VUYXJnZXQoZSl7dmFyIHQ7Y29uc3R7aW5pdGlhbDpufT10aGlzLnByb3BzO2xldCByO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBufHxcIm9iamVjdFwiPT10eXBlb2Ygbil7Y29uc3Qgbz1qaSh0aGlzLnByb3BzLG4sbnVsbD09PSh0PXRoaXMucHJlc2VuY2VDb250ZXh0KXx8dm9pZCAwPT09dD92b2lkIDA6dC5jdXN0b20pO28mJihyPW9bZV0pfWlmKG4mJnZvaWQgMCE9PXIpcmV0dXJuIHI7Y29uc3Qgbz10aGlzLmdldEJhc2VUYXJnZXRGcm9tUHJvcHModGhpcy5wcm9wcyxlKTtyZXR1cm4gdm9pZCAwPT09b3x8WGwobyk/dm9pZCAwIT09dGhpcy5pbml0aWFsVmFsdWVzW2VdJiZ2b2lkIDA9PT1yP3ZvaWQgMDp0aGlzLmJhc2VUYXJnZXRbZV06b31vbihlLHQpe3JldHVybiB0aGlzLmV2ZW50c1tlXXx8KHRoaXMuZXZlbnRzW2VdPW5ldyBCbCksdGhpcy5ldmVudHNbZV0uYWRkKHQpfW5vdGlmeShlLC4uLnQpe3RoaXMuZXZlbnRzW2VdJiZ0aGlzLmV2ZW50c1tlXS5ub3RpZnkoLi4udCl9fWNsYXNzIFpmIGV4dGVuZHMgWGZ7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuS2V5ZnJhbWVSZXNvbHZlcj1iYX1zb3J0SW5zdGFuY2VOb2RlUG9zaXRpb24oZSx0KXtyZXR1cm4gMiZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpPzE6LTF9Z2V0QmFzZVRhcmdldEZyb21Qcm9wcyhlLHQpe3JldHVybiBlLnN0eWxlP2Uuc3R5bGVbdF06dm9pZCAwfXJlbW92ZVZhbHVlRnJvbVJlbmRlclN0YXRlKGUse3ZhcnM6dCxzdHlsZTpufSl7ZGVsZXRlIHRbZV0sZGVsZXRlIG5bZV19fWNsYXNzIEpmIGV4dGVuZHMgWmZ7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudHlwZT1cImh0bWxcIix0aGlzLmFwcGx5V2lsbENoYW5nZT0hMCx0aGlzLnJlbmRlckluc3RhbmNlPWRmfXJlYWRWYWx1ZUZyb21JbnN0YW5jZShlLHQpe2lmKHppLmhhcyh0KSl7Y29uc3QgZT1nYSh0KTtyZXR1cm4gZSYmZS5kZWZhdWx0fHwwfXtjb25zdCByPShuPWUsd2luZG93LmdldENvbXB1dGVkU3R5bGUobikpLG89KGFzKHQpP3IuZ2V0UHJvcGVydHlWYWx1ZSh0KTpyW3RdKXx8MDtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2Ygbz9vLnRyaW0oKTpvfXZhciBufW1lYXN1cmVJbnN0YW5jZVZpZXdwb3J0Qm94KGUse3RyYW5zZm9ybVBhZ2VQb2ludDp0fSl7cmV0dXJuIGF1KGUsdCl9YnVpbGQoZSx0LG4pe1BmKGUsdCxuLnRyYW5zZm9ybVRlbXBsYXRlKX1zY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMoZSx0LG4pe3JldHVybiBwZihlLHQsbil9aGFuZGxlQ2hpbGRNb3Rpb25WYWx1ZSgpe3RoaXMuY2hpbGRTdWJzY3JpcHRpb24mJih0aGlzLmNoaWxkU3Vic2NyaXB0aW9uKCksZGVsZXRlIHRoaXMuY2hpbGRTdWJzY3JpcHRpb24pO2NvbnN0e2NoaWxkcmVuOmV9PXRoaXMucHJvcHM7WGwoZSkmJih0aGlzLmNoaWxkU3Vic2NyaXB0aW9uPWUub24oXCJjaGFuZ2VcIiwoZT0+e3RoaXMuY3VycmVudCYmKHRoaXMuY3VycmVudC50ZXh0Q29udGVudD1gJHtlfWApfSkpKX19Y2xhc3MgUWYgZXh0ZW5kcyBaZntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPVwic3ZnXCIsdGhpcy5pc1NWR1RhZz0hMSx0aGlzLm1lYXN1cmVJbnN0YW5jZVZpZXdwb3J0Qm94PSRjfWdldEJhc2VUYXJnZXRGcm9tUHJvcHMoZSx0KXtyZXR1cm4gZVt0XX1yZWFkVmFsdWVGcm9tSW5zdGFuY2UoZSx0KXtpZih6aS5oYXModCkpe2NvbnN0IGU9Z2EodCk7cmV0dXJuIGUmJmUuZGVmYXVsdHx8MH1yZXR1cm4gdD1mZi5oYXModCk/dDpZbCh0KSxlLmdldEF0dHJpYnV0ZSh0KX1zY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMoZSx0LG4pe3JldHVybiBnZihlLHQsbil9YnVpbGQoZSx0LG4pe01mKGUsdCx0aGlzLmlzU1ZHVGFnLG4udHJhbnNmb3JtVGVtcGxhdGUpfXJlbmRlckluc3RhbmNlKGUsdCxuLHIpe21mKGUsdCwwLHIpfW1vdW50KGUpe3RoaXMuaXNTVkdUYWc9UmYoZS50YWdOYW1lKSxzdXBlci5tb3VudChlKX19Y29uc3QgZW09T2koVWYoey4uLmxjLC4uLlZkLC4uLkRkLC4uLlVkfSwoKGUsdCk9PnVmKGUpP25ldyBRZih0KTpuZXcgSmYodCx7YWxsb3dQcm9qZWN0aW9uOmUhPT1hLkZyYWdtZW50fSkpKSk7dmFyIHRtPVtcInNsdWdcIixcInRleHRcIixcImljb25cIixcImNsYXNzTmFtZVwiLFwiZGlzYWJsZWRcIixcImJhZGdlXCJdO2Z1bmN0aW9uIG5tKCl7cmV0dXJuIG5tPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sbm0uYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBybT0oMCxhLmNyZWF0ZUNvbnRleHQpKCksb209ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLmNoaWxkcmVuLHI9ZS5hY3RpdmVJdGVtLG89dm9pZCAwPT09cj9udWxsOnIsaT1lLm9uQ2hhbmdlLHM9ZS5jbGFzc05hbWUsYz1lLnNpemUsdT12b2lkIDA9PT1jP1wic21cIjpjLGQ9ZS5vcmllbnRhdGlvbixmPXZvaWQgMD09PWQ/XCJob3Jpem9udGFsXCI6ZCxtPWUudmFyaWFudCxoPXZvaWQgMD09PW0/XCJwaWxsXCI6bSxwPWUuaWNvblBvc2l0aW9uLGc9dm9pZCAwPT09cD9cImxlZnRcIjpwLHk9ZS53aWR0aCx2PXZvaWQgMD09PXk/XCJmdWxsXCI6eSxiPSgwLGEudXNlQ2FsbGJhY2spKChmdW5jdGlvbihlLHQpe2kmJmkoe2V2ZW50OmUsdmFsdWU6dH0pfSksW2ldKSx4PVwicm91bmRlZC1mdWxsXCIsdz1cInAtMVwiLFM9XCJyaW5nLTEgcmluZy10YWItYm9yZGVyXCI7XCJ2ZXJ0aWNhbFwiPT09Zj90PVwiZ2FwLTAuNVwiOlwicm91bmRlZFwiIT09aCYmXCJwaWxsXCIhPT1ofHwoXCJ4c1wiPT09dXx8XCJzbVwiPT09dT90PVwiZ2FwLTAuNVwiOlwibWRcIiE9PXUmJlwibGdcIiE9PXV8fCh0PVwiZ2FwLTFcIikpLFwicm91bmRlZFwiPT09aHx8XCJ2ZXJ0aWNhbFwiPT09Zj94PVwicm91bmRlZC1tZFwiOlwidW5kZXJsaW5lXCI9PT1oJiYoeD1cInJvdW5kZWQtbm9uZVwiLHc9XCJwLTBcIixTPVwiYm9yZGVyLXQtMCBib3JkZXItci0wIGJvcmRlci1sLTAgYm9yZGVyLWIgYm9yZGVyLXNvbGlkIGJvcmRlci10YWItYm9yZGVyXCIsXCJ4c1wiPT09dT90PVwiZ2FwLTBcIjpcInNtXCI9PT11P3Q9XCJnYXAtMi41XCI6XCJtZFwiIT09dSYmXCJsZ1wiIT09dXx8KHQ9XCJnYXAtM1wiKSk7dmFyIGs9XCJ2ZXJ0aWNhbFwiPT09Zj9cImZsZXgtY29sXCI6XCJcIixFPVwiYm94LWJvcmRlciBbJj4qXTpib3gtYm9yZGVyIGZsZXggaXRlbXMtY2VudGVyIFwiLmNvbmNhdChcImZ1bGxcIj09PXY/XCJ3LWZ1bGxcIjpcIlwiLFwiIFwiKS5jb25jYXQoayksQz1vZShFLHgsdyx0LFMsXCJ1bmRlcmxpbmVcIiE9PWg/XCJiZy10YWItYmFja2dyb3VuZFwiOlwiXCIscyk7cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpDfSxsKCkuY3JlYXRlRWxlbWVudChybS5Qcm92aWRlcix7dmFsdWU6e2FjdGl2ZUl0ZW06byxvbkNoYW5nZTpiLHNpemU6dSx2YXJpYW50Omgsb3JpZW50YXRpb246ZixpY29uUG9zaXRpb246Zyx3aWR0aDp2fX0sbCgpLkNoaWxkcmVuLm1hcChuLChmdW5jdGlvbihlKXtyZXR1cm4oMCxhLmlzVmFsaWRFbGVtZW50KShlKT9sKCkuY2xvbmVFbGVtZW50KGUpOm51bGx9KSkpKX07b20uZGlzcGxheU5hbWU9XCJUYWJzLkdyb3VwXCI7dmFyIGltPWZ1bmN0aW9uKGUsdCl7dmFyIG49KDAsYS51c2VDb250ZXh0KShybSkscj1lLnNsdWcsbz1lLnRleHQsaT1lLmljb24scz1lLmNsYXNzTmFtZSxjPWUuZGlzYWJsZWQsdT12b2lkIDAhPT1jJiZjLGQ9ZS5iYWRnZSxmPXZvaWQgMD09PWQ/bnVsbDpkLG09ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluY2x1ZGVzKHIpKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLHQuaW5jbHVkZXMobil8fHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsdG0pO2lmKCFuKXRocm93IG5ldyBFcnJvcihcIlRhYiBzaG91bGQgYmUgdXNlZCBpbnNpZGUgVGFicyBHcm91cFwiKTt2YXIgaD1uLmFjdGl2ZUl0ZW0scD1uLm9uQ2hhbmdlLGc9bi5zaXplLHk9bi52YXJpYW50LHY9bi5vcmllbnRhdGlvbixiPW4uaWNvblBvc2l0aW9uLHg9bi53aWR0aCx3PXt4czpcInB4LTEuNSBweS0wLjUgdGV4dC14cyBbJl9zdmddOnNpemUtM1wiLHNtOlwidW5kZXJsaW5lXCI9PT15P1wicHktMS41IHRleHQtc20gWyZfc3ZnXTpzaXplLTRcIjpcInB4LTMgcHktMS41IHRleHQtc20gWyZfc3ZnXTpzaXplLTRcIixtZDpcInVuZGVybGluZVwiPT09eT9cInB5LTIgdGV4dC1iYXNlIFsmX3N2Z106c2l6ZS01XCI6XCJweC0zLjUgcHktMS41IHRleHQtYmFzZSBbJl9zdmddOnNpemUtNVwiLGxnOlwidW5kZXJsaW5lXCI9PT15P1wicC0yLjUgdGV4dC1sZyBbJl9zdmddOnNpemUtNlwiOlwicHgtMy41IHB5LTEuNSB0ZXh0LWxnIFsmX3N2Z106c2l6ZS02XCJ9W2ddLFM9b2UoXCJyZWxhdGl2ZSBib3JkZXItbm9uZSBiZy10cmFuc3BhcmVudCB0ZXh0LXRleHQtc2Vjb25kYXJ5IGN1cnNvci1wb2ludGVyIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRyYW5zaXRpb24tW2JveC1zaGFkb3csY29sb3IsYmFja2dyb3VuZC1jb2xvcl0gZHVyYXRpb24tMjAwXCIsXCJmdWxsXCI9PT14P1wiZmxleC0xXCI6XCJcIixcInZlcnRpY2FsXCI9PT12P1widy1mdWxsIGp1c3RpZnktYmV0d2VlblwiOlwiXCIpLGs9XCJyb3VuZGVkLWZ1bGxcIjtcInJvdW5kZWRcIj09PXk/az1cInJvdW5kZWQtbWRcIjpcInVuZGVybGluZVwiPT09eSYmKGs9XCJyb3VuZGVkLW5vbmVcIik7dmFyIEU9b2UoUyxcImJvcmRlci1ub25lXCIsayxcImhvdmVyOnRleHQtdGV4dC1wcmltYXJ5IGdyb3VwXCIsXCJmb2N1czpvdXRsaW5lLW5vbmVcIix1P1widGV4dC10ZXh0LWRpc2FibGVkIGN1cnNvci1ub3QtYWxsb3dlZFwiOlwiXCIsdyxoPT09cj9cImJnLWJhY2tncm91bmQtcHJpbWFyeSB0ZXh0LXRleHQtcHJpbWFyeSBzaGFkb3ctc21cIjpcIlwiLHMpO3JldHVybiBsKCkuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLG5tKHtyZWY6dCxjbGFzc05hbWU6RSxkaXNhYmxlZDp1LG9uQ2xpY2s6ZnVuY3Rpb24oZSl7cChlLHtzbHVnOnIsdGV4dDpvfSl9fSxtKSxoPT09ciYmXCJ1bmRlcmxpbmVcIj09PXkmJmwoKS5jcmVhdGVFbGVtZW50KGVtLnNwYW4se2xheW91dElkOlwidW5kZXJsaW5lXCIsY2xhc3NOYW1lOlwiYWJzb2x1dGUgcmlnaHQtMCBsZWZ0LTAgLWJvdHRvbS1weCBoLXB4IGJnLWJvcmRlci1pbnRlcmFjdGl2ZVwifSksbCgpLmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2NsYXNzTmFtZTpcImZsZXggaXRlbXMtY2VudGVyIGdhcC0xXCJ9LFwibGVmdFwiPT09YiYmaSYmbCgpLmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2NsYXNzTmFtZTpcIm1yLTEgY29udGVudHMgY2VudGVyLWNlbnRlciBncm91cC1ob3Zlcjp0ZXh0LXRleHQtcHJpbWFyeVwifSxpKSxvLFwicmlnaHRcIj09PWImJmkmJmwoKS5jcmVhdGVFbGVtZW50KFwic3BhblwiLHtjbGFzc05hbWU6XCJtbC0xIGNvbnRlbnRzIGNlbnRlci1jZW50ZXIgZ3JvdXAtaG92ZXI6dGV4dC10ZXh0LXByaW1hcnlcIn0saSkpLGYmJigwLGEuaXNWYWxpZEVsZW1lbnQpKGYpJiZmKX0sc209KDAsYS5mb3J3YXJkUmVmKShpbSk7c20uZGlzcGxheU5hbWU9XCJUYWJzLlRhYlwiO3ZhciBhbT17R3JvdXA6b20sVGFiOnNtfTtjb25zdCBsbT1rZShcIkNoZXZyb25zVXBEb3duXCIsW1tcInBhdGhcIix7ZDpcIm03IDE1IDUgNSA1LTVcIixrZXk6XCIxaGYxdHdcIn1dLFtcInBhdGhcIix7ZDpcIm03IDkgNS01IDUgNVwiLGtleTpcInNndDZ4Z1wifV1dKSxjbT1rZShcIkNoZXZyb25Eb3duXCIsW1tcInBhdGhcIix7ZDpcIm02IDkgNiA2IDYtNlwiLGtleTpcInFydW5zbFwifV1dKSx1bT1rZShcIlNlYXJjaFwiLFtbXCJjaXJjbGVcIix7Y3g6XCIxMVwiLGN5OlwiMTFcIixyOlwiOFwiLGtleTpcIjRlajk3dVwifV0sW1wicGF0aFwiLHtkOlwibTIxIDIxLTQuMy00LjNcIixrZXk6XCIxcWllM3FcIn1dXSk7dmFyIGRtPXtzbTp7aWNvbjpcIlsmPnN2Z106c2l6ZS00XCIsc2VhcmNoSWNvbjpcIlsmPnN2Z106c2l6ZS00XCIsc2VsZWN0QnV0dG9uOlwicHgtMi41IHB5LTIgcm91bmRlZCB0ZXh0LXNtIGZvbnQtbWVkaXVtIGxlYWRpbmctNCBtaW4taC1bMnJlbV1cIixtdWx0aVNlbGVjdDpcInBsLTIgcHItMiBweS0xLjVcIixkaXNwbGF5U2VsZWN0ZWQ6XCJ0ZXh0LXNtIGZvbnQtbm9ybWFsXCIsZHJvcGRvd246XCJyb3VuZGVkLW1kXCIsZHJvcGRvd25JdGVtc1dyYXBwZXI6XCJwLTEuNVwiLHNlYXJjaGJhcldyYXBwZXI6XCJwLTMgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTAuNVwiLHNlYXJjaGJhcjpcImZvbnQtbWVkaXVtIHRleHQtc21cIixzZWFyY2hiYXJJY29uOlwiWyY+c3ZnXTpzaXplLTRcIixsYWJlbDpcInRleHQtc20gZm9udC1tZWRpdW1cIn0sbWQ6e2ljb246XCJbJj5zdmddOnNpemUtNVwiLHNlYXJjaEljb246XCJbJj5zdmddOnNpemUtNVwiLHNlbGVjdEJ1dHRvbjpcInB4LTMuNSBweS0yLjUgcm91bmRlZC1tZCB0ZXh0LXhzIGZvbnQtbWVkaXVtIGxlYWRpbmctNCBtaW4taC1bMi41cmVtXVwiLG11bHRpU2VsZWN0OlwicGwtMiBwci0yLjUgcHktMlwiLGRpc3BsYXlTZWxlY3RlZDpcInRleHQtc20gZm9udC1ub3JtYWxcIixkcm9wZG93bjpcInJvdW5kZWQtbGdcIixkcm9wZG93bkl0ZW1zV3JhcHBlcjpcInAtMlwiLHNlYXJjaGJhcldyYXBwZXI6XCJwLTIuNSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMVwiLHNlYXJjaGJhcjpcImZvbnQtbWVkaXVtIHRleHQtc21cIixzZWFyY2hiYXJJY29uOlwiWyY+c3ZnXTpzaXplLTVcIixsYWJlbDpcInRleHQtc20gZm9udC1tZWRpdW1cIn0sbGc6e2ljb246XCJbJj5zdmddOnNpemUtNlwiLHNlYXJjaEljb246XCJbJj5zdmddOnNpemUtNVwiLHNlbGVjdEJ1dHRvbjpcInB4LTQgcHktMyByb3VuZGVkLWxnIHRleHQtc20gZm9udC1tZWRpdW0gbGVhZGluZy01IG1pbi1oLVszcmVtXVwiLG11bHRpU2VsZWN0OlwicGwtMi41IHByLTMgcHktMi41XCIsZGlzcGxheVNlbGVjdGVkOlwidGV4dC1iYXNlIGZvbnQtbm9ybWFsXCIsZHJvcGRvd246XCJyb3VuZGVkLWxnXCIsZHJvcGRvd25JdGVtc1dyYXBwZXI6XCJwLTJcIixzZWFyY2hiYXJXcmFwcGVyOlwicC0yLjUgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIixzZWFyY2hiYXI6XCJmb250LW1lZGl1bSB0ZXh0LXNtXCIsc2VhcmNoYmFySWNvbjpcIlsmPnN2Z106c2l6ZS01XCIsbGFiZWw6XCJ0ZXh0LWJhc2UgZm9udC1tZWRpdW1cIn19LGZtPVwiZ3JvdXAtZGlzYWJsZWQ6dGV4dC1maWVsZC1jb2xvci1kaXNhYmxlZFwiLG1tPVtcInZhbHVlXCIsXCJzZWxlY3RlZFwiLFwiY2hpbGRyZW5cIixcImNsYXNzTmFtZVwiXTtmdW5jdGlvbiBobShlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1uKXt2YXIgcixvLGkscyxhPVtdLGw9ITAsYz0hMTt0cnl7aWYoaT0obj1uLmNhbGwoZSkpLm5leHQsMD09PXQpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2w9ITF9ZWxzZSBmb3IoOyEobD0ocj1pLmNhbGwobikpLmRvbmUpJiYoYS5wdXNoKHIudmFsdWUpLGEubGVuZ3RoIT09dCk7bD0hMCk7fWNhdGNoKGUpe2M9ITAsbz1lfWZpbmFsbHl7dHJ5e2lmKCFsJiZudWxsIT1uLnJldHVybiYmKHM9bi5yZXR1cm4oKSxPYmplY3QocykhPT1zKSlyZXR1cm59ZmluYWxseXtpZihjKXRocm93IG99fXJldHVybiBhfX0oZSx0KXx8eW0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIHBtKCl7cmV0dXJuIHBtPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0scG0uYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIGdtKGUpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiB2bShlKX0oZSl8fGZ1bmN0aW9uKGUpe2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWVbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZVtcIkBAaXRlcmF0b3JcIl0pcmV0dXJuIEFycmF5LmZyb20oZSl9KGUpfHx5bShlKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX1mdW5jdGlvbiB5bShlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiB2bShlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uP0FycmF5LmZyb20oZSk6XCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP3ZtKGUsdCk6dm9pZCAwfX1mdW5jdGlvbiB2bShlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gYm0oZSl7cmV0dXJuIGJtPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9LGJtKGUpfWZ1bmN0aW9uIHhtKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiB3bShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj94bShPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe1NtKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTp4bShPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX1mdW5jdGlvbiBTbShlLHQsbil7cmV0dXJuKHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSl7aWYoXCJvYmplY3RcIiE9Ym0oZSl8fCFlKXJldHVybiBlO3ZhciB0PWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT10KXt2YXIgbj10LmNhbGwoZSxcInN0cmluZ1wiKTtpZihcIm9iamVjdFwiIT1ibShuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIil9cmV0dXJuIFN0cmluZyhlKX0oZSk7cmV0dXJuXCJzeW1ib2xcIj09Ym0odCk/dDp0K1wiXCJ9KHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfXZhciBrbT0oMCxhLmNyZWF0ZUNvbnRleHQpKCksRW09ZnVuY3Rpb24oKXtyZXR1cm4oMCxhLnVzZUNvbnRleHQpKGttKX07ZnVuY3Rpb24gQ20oZSl7dmFyIHQsbixyLG89ZS5jaGlsZHJlbixpPWUuaWNvbixzPXZvaWQgMD09PWk/bnVsbDppLGw9ZS5wbGFjZWhvbGRlcixjPXZvaWQgMD09PWw/XCJTZWxlY3QgYW4gb3B0aW9uXCI6bCx1PWUub3B0aW9uSWNvbixkPXZvaWQgMD09PXU/bnVsbDp1LGY9ZS5kaXNwbGF5QnksbT12b2lkIDA9PT1mP1wibmFtZVwiOmYsaD1lLmxhYmVsLHA9ZS5jbGFzc05hbWUsZz1FbSgpLHk9Zy5zaXplVmFsdWUsdj1nLmdldFJlZmVyZW5jZVByb3BzLGI9Zy5nZXRWYWx1ZXMseD1nLnNlbGVjdElkLHc9Zy5yZWZzLFM9Zy5pc09wZW4saz1nLm11bHRpcGxlLEU9Zy5jb21ib2JveCxDPWcuc2V0U2VsZWN0ZWQsXz1nLm9uQ2hhbmdlLFA9Zy5pc0NvbnRyb2xsZWQsTz1nLmRpc2FibGVkLE49Zy5ieSxUPW51bGw9PT0odD17c206XCJ4c1wiLG1kOlwic21cIixsZzpcIm1kXCJ9KXx8dm9pZCAwPT09dD92b2lkIDA6dFt5XSxNPSgwLGEudXNlQ2FsbGJhY2spKChmdW5jdGlvbigpe2lmKHMpcmV0dXJuIHM7dmFyIGU9XCJ0ZXh0LWZpZWxkLXBsYWNlaG9sZGVyIGdyb3VwLWRpc2FibGVkOnRleHQtaWNvbi1kaXNhYmxlZFwiO3JldHVybiBFP1JlYWN0LmNyZWF0ZUVsZW1lbnQobG0se2NsYXNzTmFtZTplfSk6UmVhY3QuY3JlYXRlRWxlbWVudChjbSx7Y2xhc3NOYW1lOmV9KX0pLFtzXSksUj0oMCxhLnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24oKXt2YXIgZT1iKCk7aWYoIWUpcmV0dXJuIG51bGw7aWYoXCJmdW5jdGlvblwiPT10eXBlb2Ygbyl7dmFyIHQ9d20oe3ZhbHVlOmV9LGs/e29uQ2xvc2U6RH06e30pO3JldHVybiBvKHQpfWlmKGspcmV0dXJuIGUubWFwKChmdW5jdGlvbihlLHQpe3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFpvLHtpY29uOmQsdHlwZTpcInJvdW5kZWRcIixrZXk6dCxzaXplOlQsb25Nb3VzZURvd246RChlKSxsYWJlbDpcIm9iamVjdFwiPT09Ym0oZSk/ZVttXTplLGNsb3NhYmxlOiEwLGRpc2FibGVkOk99KX0pKTt2YXIgbj1cIm9iamVjdFwiPT09Ym0oZSk/ZVttXTplO3JldHVybigwLGEuaXNWYWxpZEVsZW1lbnQpKG8pJiYobj1vKSxSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLHtjbGFzc05hbWU6b2UoXCJ0cnVuY2F0ZVwiLGRtW3ldLmRpc3BsYXlTZWxlY3RlZCxmbSl9LG4pfSksW2JdKSxEPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgbjtudWxsPT10fHx0LnByZXZlbnREZWZhdWx0KCksbnVsbD09dHx8dC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgcj1nbShudWxsIT09KG49YigpKSYmdm9pZCAwIT09bj9uOltdKSxvPXIuZmluZEluZGV4KChmdW5jdGlvbih0KXtyZXR1cm5cIm9iamVjdFwiPT09Ym0odCk/dFtOXT09PWVbTl06dD09PWV9KSk7LTEhPT1vJiYoci5zcGxpY2UobywxKSxQfHxDKHIpLFwiZnVuY3Rpb25cIj09dHlwZW9mIF8mJl8ocikpfX07cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZmxleCBmbGV4LWNvbCBpdGVtcy1zdGFydCBnYXAtMS41IFsmXypdOmJveC1ib3JkZXIgYm94LWJvcmRlclwifSwhIWgmJlJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsYWJlbFwiLHtjbGFzc05hbWU6b2UobnVsbD09PShuPWRtW3ldKXx8dm9pZCAwPT09bj92b2lkIDA6bi5sYWJlbCxcInRleHQtZmllbGQtbGFiZWxcIiksaHRtbEZvcjp4fSxoKSxSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIscG0oe2lkOngscmVmOncuc2V0UmVmZXJlbmNlLGNsYXNzTmFtZTpvZShcImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiB3LWZ1bGwgYm94LWJvcmRlciB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi0xNTAgYmctd2hpdGVcIixcIm91dGxpbmUgb3V0bGluZS0xIG91dGxpbmUtZmllbGQtYm9yZGVyIGJvcmRlci1ub25lXCIsIVMmJlwiZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctb2Zmc2V0LTQgZm9jdXM6b3V0bGluZS1mb2N1cy1ib3JkZXIgZm9jdXM6cmluZy1mb2N1cyBbJjpob3Zlcjpub3QoOmZvY3VzKTpub3QoOmRpc2FibGVkKV06b3V0bGluZS1ib3JkZXItc3Ryb25nXCIsZG1beV0uc2VsZWN0QnV0dG9uLGsmJmRtW3ldLm11bHRpU2VsZWN0LFwiZ3JvdXAgZGlzYWJsZWQ6b3V0bGluZS1maWVsZC1ib3JkZXItZGlzYWJsZWQgWyY6aG92ZXI6aGFzKDpkaXNhYmxlZCldOm91dGxpbmUtZmllbGQtYm9yZGVyLWRpc2FibGVkXCIscCksXCJhcmlhLWxhYmVsbGVkYnlcIjpcInNlbGVjdC1sYWJlbFwiLHRhYkluZGV4OjAsZGlzYWJsZWQ6T30sdigpKSxSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShcImZsZXgtMSBncmlkIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0IGdhcC0xLjUgb3ZlcmZsb3ctaGlkZGVuXCIsYigpJiZcImZsZXggZmxleC13cmFwXCIpfSxSKCksKGs/IShudWxsIT09KHI9YigpKSYmdm9pZCAwIT09ciYmci5sZW5ndGgpOiFiKCkpJiZSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShcIltncmlkLWFyZWE6MS8xLzIvM10gdGV4dC1maWVsZC1pbnB1dCBweC0xXCIsZG1beV0uZGlzcGxheVNlbGVjdGVkLGZtKX0sYykpLFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKFwiZmxleCBpdGVtcy1jZW50ZXIgWyY+c3ZnXTpzaHJpbmstMFwiLGRtW3ldLmljb24pfSxNKCkpKSl9ZnVuY3Rpb24gX20oZSl7dmFyIHQ9ZS5jaGlsZHJlbixuPWUuc2VhcmNoQnkscj12b2lkIDA9PT1uP1wiaWRcIjpuLG89ZS5zZWFyY2hQbGFjZWhvbGRlcixpPXZvaWQgMD09PW8/XCJTZWFyY2guLi5cIjpvLHM9ZS5kcm9wZG93blBvcnRhbFJvb3QsbD12b2lkIDA9PT1zP251bGw6cyxjPWUuZHJvcGRvd25Qb3J0YWxJZCx1PXZvaWQgMD09PWM/XCJcIjpjLGQ9ZS5jbGFzc05hbWUsZj1FbSgpLG09Zi5pc09wZW4saD1mLmNvbnRleHQscD1mLnJlZnMsZz1mLmNvbWJvYm94LHk9Zi5mbG9hdGluZ1N0eWxlcyx2PWYuZ2V0RmxvYXRpbmdQcm9wcyxiPWYuc2l6ZVZhbHVlLHg9Zi5zZXRTZWFyY2hLZXl3b3JkLHc9Zi5zZXRBY3RpdmVJbmRleCxTPWYuc2V0U2VsZWN0ZWRJbmRleCxrPWYudmFsdWUsRT1mLnNlbGVjdGVkLEM9Zi5nZXRWYWx1ZXMsXz1mLnNlYXJjaEtleXdvcmQsUD1mLmxpc3RDb250ZW50UmVmLE89Zi5ieSxOPSgwLGEudXNlTWVtbykoKGZ1bmN0aW9uKCl7dmFyIGU9QygpLG49MDtyZXR1cm4gZSYmKG49YS5DaGlsZHJlbi50b0FycmF5KHQpLmZpbmRJbmRleCgoZnVuY3Rpb24odCl7cmV0dXJuXCJvYmplY3RcIj09PWJtKHQucHJvcHMudmFsdWUpP3QucHJvcHMudmFsdWVbT109PT1lW09dOnQucHJvcHMudmFsdWU9PT1lfSkpKSwtMT09PW4/MDpufSksW2ssRSx0XSk7KDAsYS51c2VMYXlvdXRFZmZlY3QpKChmdW5jdGlvbigpe3coTiksUyhOKX0pLFtdKTt2YXIgVD0oMCxhLnVzZU1lbW8pKChmdW5jdGlvbigpe3JldHVybiBhLkNoaWxkcmVuLm1hcCh0LChmdW5jdGlvbihlLHQpe2lmKCEoMCxhLmlzVmFsaWRFbGVtZW50KShlKSlyZXR1cm4gbnVsbDtpZihfKXt2YXIgbj1lLnByb3BzLnZhbHVlO2lmKFwib2JqZWN0XCI9PT1ibShuKSl7aWYoLTE9PT1uW3JdLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihfLnRvTG93ZXJDYXNlKCkpKXJldHVybiBudWxsfWVsc2UgaWYoLTE9PT1uLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihfLnRvTG93ZXJDYXNlKCkpKXJldHVybiBudWxsfXJldHVybigwLGEuY2xvbmVFbGVtZW50KShlLHdtKHdtKHt9LGUucHJvcHMpLHt9LHtpbmRleDp0fSkpfSkpfSksW18sayxFLHRdKSxNPWEuQ2hpbGRyZW4uY291bnQoVCk7cmV0dXJuKDAsYS51c2VFZmZlY3QpKChmdW5jdGlvbigpe1AuY3VycmVudD1bXSxhLkNoaWxkcmVuLmZvckVhY2godCwoZnVuY3Rpb24oZSl7aWYoKDAsYS5pc1ZhbGlkRWxlbWVudCkoZSkmJmUucHJvcHMudmFsdWUpe2lmKF8pe3ZhciB0PWUucHJvcHMudmFsdWU7aWYoXCJvYmplY3RcIj09PWJtKHQpKXtpZigtMT09PXRbcl0udG9Mb3dlckNhc2UoKS5pbmRleE9mKF8udG9Mb3dlckNhc2UoKSkpcmV0dXJufWVsc2UgaWYoLTE9PT10LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihfLnRvTG93ZXJDYXNlKCkpKXJldHVybn1QLmN1cnJlbnQucHVzaChlLnByb3BzLnZhbHVlKX19KSl9KSxbX10pLFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsbnVsbCxtJiZSZWFjdC5jcmVhdGVFbGVtZW50KElyLHtpZDp1LHJvb3Q6bH0sUmVhY3QuY3JlYXRlRWxlbWVudChZcix7Y29udGV4dDpoLG1vZGFsOiExfSxSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIscG0oe3JlZjpwLnNldEZsb2F0aW5nLGNsYXNzTmFtZTpvZShcImJveC1ib3JkZXIgWyZfKl06Ym94LWJvcmRlciB3LWZ1bGwgYmctd2hpdGUgb3V0bGluZS1ub25lIHNoYWRvdy1sZyBvdXRsaW5lIG91dGxpbmUtMSBvdXRsaW5lLWJvcmRlci1zdWJ0bGVcIixnJiZcImdyaWQgZ3JpZC1jb2xzLTEgZ3JpZC1yb3dzLVthdXRvXzFmcl0gZGl2aWRlLXkgZGl2aWRlLXgtMCBkaXZpZGUtc29saWQgZGl2aWRlLWJvcmRlci1zdWJ0bGVcIixkbVtiXS5kcm9wZG93biwhZyYmXCJoLWF1dG9cIixnP1wib3ZlcmZsb3ctaGlkZGVuXCI6XCJvdmVyZmxvdy15LWF1dG9cIixkKSxzdHlsZTp3bSh7fSx5KX0sdigpKSxnJiZSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShkbVtiXS5zZWFyY2hiYXJXcmFwcGVyKX0sUmVhY3QuY3JlYXRlRWxlbWVudCh1bSx7Y2xhc3NOYW1lOm9lKFwidGV4dC1pY29uLXNlY29uZGFyeSBzaHJpbmstMFwiLGRtW2JdLnNlYXJjaGJhckljb24pfSksUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIse2NsYXNzTmFtZTpvZShcInB4LTEgdy1mdWxsIHBsYWNlaG9sZGVyOnRleHQtZmllbGQtcGxhY2Vob2xkZXIgYm9yZGVyLTAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnNoYWRvdy1ub25lXCIsZG1bYl0uc2VhcmNoYmFyKSx0eXBlOlwic2VhcmNoXCIsbmFtZTpcImtleXdvcmRcIixwbGFjZWhvbGRlcjppLG9uQ2hhbmdlOmZ1bmN0aW9uKGUpe3JldHVybiB4KGUudGFyZ2V0LnZhbHVlKX0sYXV0b0NvbXBsZXRlOlwib2ZmXCJ9KSksUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6b2UoXCJvdmVyZmxvdy15LWF1dG9cIiwhZyYmXCJ3LWZ1bGwgaC1mdWxsXCIsZG1bYl0uZHJvcGRvd25JdGVtc1dyYXBwZXIpfSwhIU0mJlQsIU0mJlJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwicC0yIHRleHQtY2VudGVyIHRleHQtYmFzZSBmb250LW1lZGl1bSB0ZXh0LWZpZWxkLXBsYWNlaG9sZGVyXCJ9LFwiTm8gaXRlbXMgZm91bmRcIikpKSkpKX1mdW5jdGlvbiBQbShlKXt2YXIgdD1lLnZhbHVlLG49ZS5zZWxlY3RlZCxyPWUuY2hpbGRyZW4sbz1lLmNsYXNzTmFtZSxpPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmNsdWRlcyhyKSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8aS5sZW5ndGg7cisrKW49aVtyXSx0LmluY2x1ZGVzKG4pfHx7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfShlLG1tKSxzPUVtKCksbD1zLnNpemVWYWx1ZSxjPXMuZ2V0SXRlbVByb3BzLHU9cy5vbktleURvd25JdGVtLGQ9cy5vbkNsaWNrSXRlbSxmPXMuYWN0aXZlSW5kZXgsbT1zLnNlbGVjdGVkSW5kZXgsaD1zLnVwZGF0ZUxpc3RSZWYscD1zLmdldFZhbHVlcyxnPXMuYnkseT1zLm11bHRpcGxlLHY9aS5pbmRleCxiPSgwLGEudXNlTWVtbykoKGZ1bmN0aW9uKCl7aWYoIXkpcmV0dXJuITE7dmFyIGU9cCgpO3JldHVybiEhZSYmZS5zb21lKChmdW5jdGlvbihlKXtyZXR1cm5cIm9iamVjdFwiPT09Ym0oZSk/ZVtnXT09PXRbZ106ZT09PXR9KSl9KSxbdCxwXSkseD0oMCxhLnVzZU1lbW8pKChmdW5jdGlvbigpe3JldHVyblwiYm9vbGVhblwiPT10eXBlb2Ygbj9uOnk/Yjp2PT09bX0pLFtiLG0sbl0pO3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIscG0oe2NsYXNzTmFtZTpvZShcInctZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gdGV4dC10ZXh0LXByaW1hcnkgaG92ZXI6YmctYnV0dG9uLXRlcnRpYXJ5LWhvdmVyIHJvdW5kZWQtbWQgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMTUwIGN1cnNvci1wb2ludGVyIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1cy13aXRoaW46b3V0bGluZS1ub25lIG91dGxpbmUtbm9uZVwiLHtzbTpcInB5LTEuNSBweC0yIHRleHQtc20gZm9udC1ub3JtYWxcIixtZDpcInAtMiB0ZXh0LXNtIGZvbnQtbm9ybWFsXCIsbGc6XCJwLTIgdGV4dC1iYXNlIGZvbnQtbm9ybWFsXCJ9W2xdLHY9PT1mJiZcImJnLWJ1dHRvbi10ZXJ0aWFyeS1ob3ZlclwiLG8pLHJlZjpmdW5jdGlvbihlKXtoKHYsZSl9LHJvbGU6XCJvcHRpb25cIix0YWJJbmRleDp2PT09Zj8wOi0xLFwiYXJpYS1zZWxlY3RlZFwiOngmJnY9PT1mfSxjKHtvbkNsaWNrOmZ1bmN0aW9uKCl7ZCh2LHQpfSxvbktleURvd246ZnVuY3Rpb24oZSl7dShlLHYsdCl9fSkpLFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2NsYXNzTmFtZTpcInctZnVsbCB0cnVuY2F0ZVwifSxyKSx4JiZSZWFjdC5jcmVhdGVFbGVtZW50KENlLHtjbGFzc05hbWU6b2UoXCJ0ZXh0LWljb24tb24tY29sb3ItZGlzYWJsZWRcIix7c206XCJzaXplLTRcIixtZDpcInNpemUtNFwiLGxnOlwic2l6ZS01XCJ9W2xdKX0pKX1DbS5kaXNwbGF5TmFtZT1cIlNlbGVjdC5CdXR0b25cIixfbS5kaXNwbGF5TmFtZT1cIlNlbGVjdC5PcHRpb25zXCIsUG0uZGlzcGxheU5hbWU9XCJTZWxlY3QuT3B0aW9uXCI7dmFyIE9tPWZ1bmN0aW9uKGUpe3ZhciB0PWUuaWQsbj1lLnNpemUscj12b2lkIDA9PT1uP1wibWRcIjpuLG89ZS52YWx1ZSxpPWUuZGVmYXVsdFZhbHVlLHM9ZS5vbkNoYW5nZSxsPWUuYnksYz12b2lkIDA9PT1sP1wiaWRcIjpsLHU9ZS5jaGlsZHJlbixkPWUubXVsdGlwbGUsZj12b2lkIDAhPT1kJiZkLG09ZS5jb21ib2JveCxoPXZvaWQgMCE9PW0mJm0scD1lLmRpc2FibGVkLGc9dm9pZCAwIT09cCYmcCx5PSgwLGEudXNlTWVtbykoKGZ1bmN0aW9uKCl7cmV0dXJuIHR8fFwic2VsZWN0LVwiLmNvbmNhdChmZSgpKX0pLFt0XSksdj0oMCxhLnVzZU1lbW8pKChmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT1vfSksW29dKSxiPWhtKCgwLGEudXNlU3RhdGUpKGkpLDIpLHg9YlswXSx3PWJbMV0sUz1obSgoMCxhLnVzZVN0YXRlKShcIlwiKSwyKSxrPVNbMF0sRT1TWzFdLEM9KDAsYS51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKCl7cmV0dXJuIHY/bzp4fSksW3Ysbyx4XSksXz1obSgoMCxhLnVzZVN0YXRlKSghMSksMiksUD1fWzBdLE89X1sxXSxOPWhtKCgwLGEudXNlU3RhdGUpKCksMiksVD1OWzBdLE09TlsxXSxSPWhtKCgwLGEudXNlU3RhdGUpKCksMiksRD1SWzBdLGo9UlsxXSxBPXtzbTpoPzI1NjoxNzIsbWQ6aD8yNTY6MjE2LGxnOmg/MjU2OjIxNn0sST1Rcih7cGxhY2VtZW50OlwiYm90dG9tLXN0YXJ0XCIsb3BlbjpQLG9uT3BlbkNoYW5nZTpPLHdoaWxlRWxlbWVudHNNb3VudGVkOmJuLG1pZGRsZXdhcmU6W0RuKDUpLEFuKHtwYWRkaW5nOjEwfSksSW4oe2FwcGx5OmZ1bmN0aW9uKGUpe3ZhciB0PWUucmVjdHMsbj1lLmVsZW1lbnRzLG89ZS5hdmFpbGFibGVIZWlnaHQ7T2JqZWN0LmFzc2lnbihuLmZsb2F0aW5nLnN0eWxlLHttYXhIZWlnaHQ6XCJtaW4oXCIuY29uY2F0KG8sXCJweCwgXCIpLmNvbmNhdChBW3JdLFwicHgpXCIpLG1heFdpZHRoOlwiXCIuY29uY2F0KHQucmVmZXJlbmNlLndpZHRoLFwicHhcIil9KX0scGFkZGluZzoxMH0pXX0pLEw9SS5yZWZzLEY9SS5mbG9hdGluZ1N0eWxlcyx6PUkuY29udGV4dCxCPSgwLGEudXNlUmVmKShbXSksVz0oMCxhLnVzZVJlZikoW10pLFY9KDAsYS51c2VSZWYpKCExKSxVPXFyKHose2V2ZW50OlwibW91c2Vkb3duXCJ9KSwkPUpyKHopLFk9Zm8oeix7cm9sZTpcImxpc3Rib3hcIn0pLEg9Y28oeix7bGlzdFJlZjpCLGFjdGl2ZUluZGV4OlQsc2VsZWN0ZWRJbmRleDpELG9uTmF2aWdhdGU6TSxsb29wOiEwfSksSz1mdW5jdGlvbihlLHQpe3ZhciBuO2NvbnN0e29wZW46cixkYXRhUmVmOm99PWUse2xpc3RSZWY6aSxhY3RpdmVJbmRleDpzLG9uTWF0Y2g6bCxvblR5cGluZ0NoYW5nZTpjLGVuYWJsZWQ6dT0hMCxmaW5kTWF0Y2g6ZD1udWxsLHJlc2V0TXM6Zj03NTAsaWdub3JlS2V5czptPVtdLHNlbGVjdGVkSW5kZXg6aD1udWxsfT10LHA9YS51c2VSZWYoKSxnPWEudXNlUmVmKFwiXCIpLHk9YS51c2VSZWYobnVsbCE9KG49bnVsbCE9aD9oOnMpP246LTEpLHY9YS51c2VSZWYobnVsbCksYj16bihsKSx4PXpuKGMpLHc9ZnIoZCksUz1mcihtKTtlcigoKCk9PntyJiYoY2xlYXJUaW1lb3V0KHAuY3VycmVudCksdi5jdXJyZW50PW51bGwsZy5jdXJyZW50PVwiXCIpfSksW3JdKSxlcigoKCk9Pnt2YXIgZTtyJiZcIlwiPT09Zy5jdXJyZW50JiYoeS5jdXJyZW50PW51bGwhPShlPW51bGwhPWg/aDpzKT9lOi0xKX0pLFtyLGgsc10pO2NvbnN0IGs9em4oKGU9PntlP28uY3VycmVudC50eXBpbmd8fChvLmN1cnJlbnQudHlwaW5nPWUseChlKSk6by5jdXJyZW50LnR5cGluZyYmKG8uY3VycmVudC50eXBpbmc9ZSx4KGUpKX0pKSxFPXpuKChlPT57ZnVuY3Rpb24gdChlLHQsbil7Y29uc3Qgcj13LmN1cnJlbnQ/dy5jdXJyZW50KHQsbik6dC5maW5kKChlPT4wPT09KG51bGw9PWU/dm9pZCAwOmUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmRleE9mKG4udG9Mb2NhbGVMb3dlckNhc2UoKSkpKSk7cmV0dXJuIHI/ZS5pbmRleE9mKHIpOi0xfWNvbnN0IG49aS5jdXJyZW50O2lmKGcuY3VycmVudC5sZW5ndGg+MCYmXCIgXCIhPT1nLmN1cnJlbnRbMF0mJigtMT09PXQobixuLGcuY3VycmVudCk/ayghMSk6XCIgXCI9PT1lLmtleSYmeXQoZSkpLG51bGw9PW58fFMuY3VycmVudC5pbmNsdWRlcyhlLmtleSl8fDEhPT1lLmtleS5sZW5ndGh8fGUuY3RybEtleXx8ZS5tZXRhS2V5fHxlLmFsdEtleSlyZXR1cm47ciYmXCIgXCIhPT1lLmtleSYmKHl0KGUpLGsoITApKSxuLmV2ZXJ5KChlPT57dmFyIHQsbjtyZXR1cm4hZXx8KG51bGw9PSh0PWVbMF0pP3ZvaWQgMDp0LnRvTG9jYWxlTG93ZXJDYXNlKCkpIT09KG51bGw9PShuPWVbMV0pP3ZvaWQgMDpuLnRvTG9jYWxlTG93ZXJDYXNlKCkpfSkpJiZnLmN1cnJlbnQ9PT1lLmtleSYmKGcuY3VycmVudD1cIlwiLHkuY3VycmVudD12LmN1cnJlbnQpLGcuY3VycmVudCs9ZS5rZXksY2xlYXJUaW1lb3V0KHAuY3VycmVudCkscC5jdXJyZW50PXNldFRpbWVvdXQoKCgpPT57Zy5jdXJyZW50PVwiXCIseS5jdXJyZW50PXYuY3VycmVudCxrKCExKX0pLGYpO2NvbnN0IG89eS5jdXJyZW50LHM9dChuLFsuLi5uLnNsaWNlKChvfHwwKSsxKSwuLi5uLnNsaWNlKDAsKG98fDApKzEpXSxnLmN1cnJlbnQpOy0xIT09cz8oYihzKSx2LmN1cnJlbnQ9cyk6XCIgXCIhPT1lLmtleSYmKGcuY3VycmVudD1cIlwiLGsoITEpKX0pKSxDPWEudXNlTWVtbygoKCk9Pih7b25LZXlEb3duOkV9KSksW0VdKSxfPWEudXNlTWVtbygoKCk9Pih7b25LZXlEb3duOkUsb25LZXlVcChlKXtcIiBcIj09PWUua2V5JiZrKCExKX19KSksW0Usa10pO3JldHVybiBhLnVzZU1lbW8oKCgpPT51P3tyZWZlcmVuY2U6QyxmbG9hdGluZzpffTp7fSksW3UsQyxfXSl9KHose2xpc3RSZWY6VyxhY3RpdmVJbmRleDpULHNlbGVjdGVkSW5kZXg6RCxvbk1hdGNoOlA/TTpqLG9uVHlwaW5nQ2hhbmdlOmZ1bmN0aW9uKGUpe1YuY3VycmVudD1lfX0pLHE9cm8oWyQsWSxILFVdLmNvbmNhdChnbShoP1tdOltLXSkpKSxHPXEuZ2V0UmVmZXJlbmNlUHJvcHMsWD1xLmdldEZsb2F0aW5nUHJvcHMsWj1xLmdldEl0ZW1Qcm9wcyxKPWZ1bmN0aW9uKGUsdCl7aWYoZilyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbixyPWdtKG51bGwhPT0obj1DKCkpJiZ2b2lkIDAhPT1uP246W10pOy0xPT09ci5maW5kSW5kZXgoKGZ1bmN0aW9uKGUpe3JldHVyblwib2JqZWN0XCI9PT1ibShlKT9lW2NdPT09dFtjXTplPT09dH0pKSYmKHIucHVzaCh0KSx2fHx3KHIpLGooZSksTC5yZWZlcmVuY2UuY3VycmVudC5mb2N1cygpLE8oITEpLEUoXCJcIiksXCJmdW5jdGlvblwiPT10eXBlb2YgcyYmcyhyKSl9KGUsdCk7aihlKSx2fHx3KHQpLEwucmVmZXJlbmNlLmN1cnJlbnQuZm9jdXMoKSxPKCExKSxFKFwiXCIpLFwiZnVuY3Rpb25cIj09dHlwZW9mIHMmJnModCl9LFE9KDAsYS51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKGUsdCl7Qi5jdXJyZW50W2VdPXR9KSxbXSk7cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoa20uUHJvdmlkZXIse3ZhbHVlOntzZWxlY3RlZEluZGV4OkQsc2V0U2VsZWN0ZWRJbmRleDpqLGFjdGl2ZUluZGV4OlQsc2V0QWN0aXZlSW5kZXg6TSxzZWxlY3RlZDp4LHNldFNlbGVjdGVkOncsaGFuZGxlU2VsZWN0OkosY29tYm9ib3g6aCxzaXplVmFsdWU6cixtdWx0aXBsZTpmLG9uQ2hhbmdlOnMsaXNUeXBpbmdSZWY6VixnZXRJdGVtUHJvcHM6WixvbkNsaWNrSXRlbTpmdW5jdGlvbihlLHQpe0ooZSx0KX0sb25LZXlEb3duSXRlbTpmdW5jdGlvbihlLHQsbil7XCJFbnRlclwiPT09ZS5rZXkmJihlLnByZXZlbnREZWZhdWx0KCksSih0LG4pKSxcIiBcIiE9PWUua2V5fHxWLmN1cnJlbnR8fChlLnByZXZlbnREZWZhdWx0KCksSih0LG4pKX0sZ2V0VmFsdWVzOkMsc2VsZWN0SWQ6eSxnZXRSZWZlcmVuY2VQcm9wczpHLGlzT3BlbjpQLHZhbHVlOm8sdXBkYXRlTGlzdFJlZjpRLHJlZnM6TCxsaXN0Q29udGVudFJlZjpXLGJ5OmMsZ2V0RmxvYXRpbmdQcm9wczpYLGZsb2F0aW5nU3R5bGVzOkYsY29udGV4dDp6LHNlYXJjaEtleXdvcmQ6ayxzZXRTZWFyY2hLZXl3b3JkOkUsZGlzYWJsZWQ6Z319LHUpfTtDbS5kaXNwbGF5TmFtZT1cIlNlbGVjdC5CdXR0b25cIixfbS5kaXNwbGF5TmFtZT1cIlNlbGVjdC5PcHRpb25zXCIsUG0uZGlzcGxheU5hbWU9XCJTZWxlY3QuSXRlbVwiLE9tLkJ1dHRvbj1DbSxPbS5PcHRpb25zPV9tLE9tLk9wdGlvbj1QbTt2YXIgTm09T20sVG09W1wiaWRcIixcIm1lc3NhZ2VcIixcImpzeFwiXTtmdW5jdGlvbiBNbShlKXtyZXR1cm4gTW09XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgZX0sTW0oZSl9ZnVuY3Rpb24gUm0oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIERtKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP1JtKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7am0oZSx0LG5bdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOlJtKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfWZ1bmN0aW9uIGptKGUsdCxuKXtyZXR1cm4odD1JbSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBBbShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxJbShyLmtleSkscil9fWZ1bmN0aW9uIEltKGUpe3ZhciB0PWZ1bmN0aW9uKGUpe2lmKFwib2JqZWN0XCIhPU1tKGUpfHwhZSlyZXR1cm4gZTt2YXIgdD1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09dCl7dmFyIG49dC5jYWxsKGUsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9TW0obikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcoZSl9KGUpO3JldHVyblwic3ltYm9sXCI9PU1tKHQpP3Q6dCtcIlwifWZ1bmN0aW9uIExtKGUsdCxuKXsoZnVuY3Rpb24oZSx0KXtpZih0LmhhcyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3RcIil9KShlLHQpLHQuc2V0KGUsbil9ZnVuY3Rpb24gRm0oZSx0KXtyZXR1cm4gZS5nZXQoQm0oZSx0KSl9ZnVuY3Rpb24gem0oZSx0LG4pe3JldHVybiBlLnNldChCbShlLHQpLG4pLG59ZnVuY3Rpb24gQm0oZSx0LG4pe2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZT09PXQ6ZS5oYXModCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz90Om47dGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdFwiKX12YXIgV209MSxWbT1uZXcgV2Vha01hcCxVbT1uZXcgV2Vha01hcCwkbT1mdW5jdGlvbigpe3JldHVybiBlPWZ1bmN0aW9uIGUoKXshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLGUpLExtKHRoaXMsVm0sdm9pZCAwKSxMbSh0aGlzLFVtLHZvaWQgMCksem0oVm0sdGhpcyxbXSksem0oVW0sdGhpcyxbXSl9LHQ9W3trZXk6XCJzdWJzY3JpYmVcIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiBGbShVbSx0aGlzKS5wdXNoKGUpLGZ1bmN0aW9uKCl7em0oVW0sdCxGbShVbSx0KS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09ZX0pKSl9fX0se2tleTpcIm5vdGlmeVwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztGbShVbSx0aGlzKS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdChGbShWbSxlKSl9KSl9fSx7a2V5OlwicHVibGlzaFwiLHZhbHVlOmZ1bmN0aW9uKGUpe0ZtKFVtLHRoaXMpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0KGUpfSkpfX0se2tleTpcImFkZFwiLHZhbHVlOmZ1bmN0aW9uKGUpe0ZtKFZtLHRoaXMpLnB1c2goZSksdGhpcy5wdWJsaXNoKGUpfX0se2tleTpcInJlbW92ZVwiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB6bShWbSx0aGlzLEZtKFZtLHRoaXMpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQhPT1lfSkpKSxlfX0se2tleTpcImNyZWF0ZVwiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMsbj1lLmlkLHI9dm9pZCAwPT09bj92b2lkIDA6bixvPWUubWVzc2FnZSxpPXZvaWQgMD09PW8/XCJcIjpvLHM9ZS5qc3gsYT12b2lkIDA9PT1zP3ZvaWQgMDpzLGw9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluY2x1ZGVzKHIpKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLHQuaW5jbHVkZXMobil8fHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsVG0pO2lmKGl8fFwiZnVuY3Rpb25cIj09dHlwZW9mIGEpe3ZhciBjPVwibnVtYmVyXCI9PXR5cGVvZiByP3I6V20rKyx1PUZtKFZtLHRoaXMpLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09Y30pKTtyZXR1cm4gdSYmem0oVm0sdGhpcyxGbShWbSx0aGlzKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09Yz8odC5wdWJsaXNoKERtKERtKHt9LGUpLHt9LHt0aXRsZTppLGpzeDphfSxsKSksRG0oRG0oe30sZSkse30se3RpdGxlOmksanN4OmF9LGwpKTplfSkpKSx0aGlzLmFkZChEbSh7aWQ6Yyx0aXRsZTppLGpzeDphfSxsKSksY319fSx7a2V5OlwidXBkYXRlXCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLHI9dC5yZW5kZXIsbz12b2lkIDA9PT1yP3ZvaWQgMDpyLGk9dDtzd2l0Y2goTW0obykpe2Nhc2VcImZ1bmN0aW9uXCI6aT1EbSh7anN4Om99LHQpO2JyZWFrO2Nhc2VcInN0cmluZ1wiOmk9RG0oe3RpdGxlOm99LHQpfXptKFZtLHRoaXMsRm0oVm0sdGhpcykubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PWU/KG4ucHVibGlzaChEbShEbSh7fSx0KSxpKSksRG0oRG0oe30sdCksaSkpOnR9KSkpfX0se2tleTpcImRpc21pc3NcIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiBlfHxGbShWbSx0aGlzKS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gRm0oVW0sdCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQoe2lkOmUuaWQsZGlzbWlzczohMH0pfSkpfSkpLEZtKFVtLHRoaXMpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0KHtpZDplLGRpc21pc3M6ITB9KX0pKSxlfX0se2tleTpcImhpc3RvcnlcIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBGbShWbSx0aGlzKX19LHtrZXk6XCJkZWZhdWx0XCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06XCJcIix0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4gdGhpcy5jcmVhdGUoRG0oe21lc3NhZ2U6ZSx0eXBlOlwibmV1dHJhbFwifSx0KSl9fSx7a2V5Olwic3VjY2Vzc1wiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOlwiXCIsdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIHRoaXMuY3JlYXRlKERtKHttZXNzYWdlOmUsdHlwZTpcInN1Y2Nlc3NcIn0sdCkpfX0se2tleTpcImVycm9yXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06XCJcIix0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4gdGhpcy5jcmVhdGUoRG0oe21lc3NhZ2U6ZSx0eXBlOlwiZXJyb3JcIn0sdCkpfX0se2tleTpcIndhcm5pbmdcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpcIlwiLHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O3JldHVybiB0aGlzLmNyZWF0ZShEbSh7bWVzc2FnZTplLHR5cGU6XCJ3YXJuaW5nXCJ9LHQpKX19LHtrZXk6XCJpbmZvXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06XCJcIix0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4gdGhpcy5jcmVhdGUoRG0oe21lc3NhZ2U6ZSx0eXBlOlwiaW5mb1wifSx0KSl9fSx7a2V5OlwiY3VzdG9tXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06ZnVuY3Rpb24oKXt9LHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O3JldHVybiB0aGlzLmNyZWF0ZShEbSh7anN4OmUsdHlwZTpcImN1c3RvbVwifSx0KSl9fV0sdCYmQW0oZS5wcm90b3R5cGUsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxlO3ZhciBlLHR9KCksWW09bmV3ICRtLEhtPU9iamVjdC5zZWFsKE9iamVjdC5hc3NpZ24oKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIFltLmRlZmF1bHQoZSx0KX0pLHtzdWNjZXNzOlltLnN1Y2Nlc3MuYmluZChZbSksZXJyb3I6WW0uZXJyb3IuYmluZChZbSksd2FybmluZzpZbS53YXJuaW5nLmJpbmQoWW0pLGluZm86WW0uaW5mby5iaW5kKFltKSxjdXN0b206WW0uY3VzdG9tLmJpbmQoWW0pLGRpc21pc3M6WW0uZGlzbWlzcy5iaW5kKFltKSx1cGRhdGU6WW0udXBkYXRlLmJpbmQoWW0pfSx7Z2V0SGlzdG9yeTpZbS5oaXN0b3J5LmJpbmQoWW0pfSkpLEttPSExLHFtPXtcInRvcC1sZWZ0XCI6XCJ0b3AtMCBib3R0b20tMCBsZWZ0LTAganVzdGlmeS1zdGFydCBpdGVtcy1zdGFydFwiLFwidG9wLXJpZ2h0XCI6XCJ0b3AtMCBib3R0b20tMCByaWdodC0wIGp1c3RpZnktc3RhcnQgaXRlbXMtZW5kXCIsXCJib3R0b20tbGVmdFwiOlwidG9wLTAgYm90dG9tLTAgbGVmdC0wIGp1c3RpZnktZW5kIGl0ZW1zLXN0YXJ0XCIsXCJib3R0b20tcmlnaHRcIjpcInRvcC0wIGJvdHRvbS0wIHJpZ2h0LTAganVzdGlmeS1lbmQgaXRlbXMtZW5kXCJ9LEdtPXtuZXV0cmFsOlwiYm9yZGVyLWFsZXJ0LWJvcmRlci1uZXV0cmFsIGJnLWFsZXJ0LWJhY2tncm91bmQtbmV1dHJhbFwiLGN1c3RvbTpcImJvcmRlci1hbGVydC1ib3JkZXItbmV1dHJhbCBiZy1hbGVydC1iYWNrZ3JvdW5kLW5ldXRyYWxcIixpbmZvOlwiYm9yZGVyLWFsZXJ0LWJvcmRlci1pbmZvIGJnLWFsZXJ0LWJhY2tncm91bmQtaW5mb1wiLHN1Y2Nlc3M6XCJib3JkZXItYWxlcnQtYm9yZGVyLWdyZWVuIGJnLWFsZXJ0LWJhY2tncm91bmQtZ3JlZW5cIix3YXJuaW5nOlwiYm9yZGVyLWFsZXJ0LWJvcmRlci13YXJuaW5nIGJnLWFsZXJ0LWJhY2tncm91bmQtd2FybmluZ1wiLGVycm9yOlwiYm9yZGVyLWFsZXJ0LWJvcmRlci1kYW5nZXIgYmctYWxlcnQtYmFja2dyb3VuZC1kYW5nZXJcIn0sWG09XCJiZy1iYWNrZ3JvdW5kLWludmVyc2UgYm9yZGVyLWJhY2tncm91bmQtaW52ZXJzZVwiLFptPXtsaWdodDpcInRleHQtaWNvbi1zZWNvbmRhcnlcIixkYXJrOlwidGV4dC1pY29uLWludmVyc2VcIn07Y2xhc3MgSm0gZXh0ZW5kcyBhLkNvbXBvbmVudHtnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShlKXtjb25zdCB0PXRoaXMucHJvcHMuY2hpbGRSZWYuY3VycmVudDtpZih0JiZlLmlzUHJlc2VudCYmIXRoaXMucHJvcHMuaXNQcmVzZW50KXtjb25zdCBlPXRoaXMucHJvcHMuc2l6ZVJlZi5jdXJyZW50O2UuaGVpZ2h0PXQub2Zmc2V0SGVpZ2h0fHwwLGUud2lkdGg9dC5vZmZzZXRXaWR0aHx8MCxlLnRvcD10Lm9mZnNldFRvcCxlLmxlZnQ9dC5vZmZzZXRMZWZ0fXJldHVybiBudWxsfWNvbXBvbmVudERpZFVwZGF0ZSgpe31yZW5kZXIoKXtyZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbn19ZnVuY3Rpb24gUW0oe2NoaWxkcmVuOmUsaXNQcmVzZW50OnR9KXtjb25zdCBuPSgwLGEudXNlSWQpKCkscj0oMCxhLnVzZVJlZikobnVsbCksbz0oMCxhLnVzZVJlZikoe3dpZHRoOjAsaGVpZ2h0OjAsdG9wOjAsbGVmdDowfSkse25vbmNlOml9PSgwLGEudXNlQ29udGV4dCkoJGQpO3JldHVybigwLGEudXNlSW5zZXJ0aW9uRWZmZWN0KSgoKCk9Pntjb25zdHt3aWR0aDplLGhlaWdodDpzLHRvcDphLGxlZnQ6bH09by5jdXJyZW50O2lmKHR8fCFyLmN1cnJlbnR8fCFlfHwhcylyZXR1cm47ci5jdXJyZW50LmRhdGFzZXQubW90aW9uUG9wSWQ9bjtjb25zdCBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtyZXR1cm4gaSYmKGMubm9uY2U9aSksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChjKSxjLnNoZWV0JiZjLnNoZWV0Lmluc2VydFJ1bGUoYFxcbiAgICAgICAgICBbZGF0YS1tb3Rpb24tcG9wLWlkPVwiJHtufVwiXSB7XFxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgd2lkdGg6ICR7ZX1weCAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGhlaWdodDogJHtzfXB4ICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgdG9wOiAke2F9cHggIWltcG9ydGFudDtcXG4gICAgICAgICAgICBsZWZ0OiAke2x9cHggIWltcG9ydGFudDtcXG4gICAgICAgICAgfVxcbiAgICAgICAgYCksKCk9Pntkb2N1bWVudC5oZWFkLnJlbW92ZUNoaWxkKGMpfX0pLFt0XSksKDAsbXUuanN4KShKbSx7aXNQcmVzZW50OnQsY2hpbGRSZWY6cixzaXplUmVmOm8sY2hpbGRyZW46YS5jbG9uZUVsZW1lbnQoZSx7cmVmOnJ9KX0pfWNvbnN0IGVoPSh7Y2hpbGRyZW46ZSxpbml0aWFsOnQsaXNQcmVzZW50Om4sb25FeGl0Q29tcGxldGU6cixjdXN0b206byxwcmVzZW5jZUFmZmVjdHNMYXlvdXQ6aSxtb2RlOnN9KT0+e2NvbnN0IGw9eWYodGgpLGM9KDAsYS51c2VJZCkoKSx1PSgwLGEudXNlTWVtbykoKCgpPT4oe2lkOmMsaW5pdGlhbDp0LGlzUHJlc2VudDpuLGN1c3RvbTpvLG9uRXhpdENvbXBsZXRlOmU9PntsLnNldChlLCEwKTtmb3IoY29uc3QgZSBvZiBsLnZhbHVlcygpKWlmKCFlKXJldHVybjtyJiZyKCl9LHJlZ2lzdGVyOmU9PihsLnNldChlLCExKSwoKT0+bC5kZWxldGUoZSkpfSkpLGk/W01hdGgucmFuZG9tKCldOltuXSk7cmV0dXJuKDAsYS51c2VNZW1vKSgoKCk9PntsLmZvckVhY2goKChlLHQpPT5sLnNldCh0LCExKSkpfSksW25dKSxhLnVzZUVmZmVjdCgoKCk9PnshbiYmIWwuc2l6ZSYmciYmcigpfSksW25dKSxcInBvcExheW91dFwiPT09cyYmKGU9KDAsbXUuanN4KShRbSx7aXNQcmVzZW50Om4sY2hpbGRyZW46ZX0pKSwoMCxtdS5qc3gpKGh1LlByb3ZpZGVyLHt2YWx1ZTp1LGNoaWxkcmVuOmV9KX07ZnVuY3Rpb24gdGgoKXtyZXR1cm4gbmV3IE1hcH1jb25zdCBuaD1lPT5lLmtleXx8XCJcIjtmdW5jdGlvbiByaChlKXtjb25zdCB0PVtdO3JldHVybiBhLkNoaWxkcmVuLmZvckVhY2goZSwoZT0+eygwLGEuaXNWYWxpZEVsZW1lbnQpKGUpJiZ0LnB1c2goZSl9KSksdH1jb25zdCBvaD0oe2NoaWxkcmVuOmUsZXhpdEJlZm9yZUVudGVyOnQsY3VzdG9tOm4saW5pdGlhbDpyPSEwLG9uRXhpdENvbXBsZXRlOm8scHJlc2VuY2VBZmZlY3RzTGF5b3V0Omk9ITAsbW9kZTpzPVwic3luY1wifSk9PntvcyghdCxcIlJlcGxhY2UgZXhpdEJlZm9yZUVudGVyIHdpdGggbW9kZT0nd2FpdCdcIik7Y29uc3QgbD0oMCxhLnVzZU1lbW8pKCgoKT0+cmgoZSkpLFtlXSksYz1sLm1hcChuaCksdT0oMCxhLnVzZVJlZikoITApLGQ9KDAsYS51c2VSZWYpKGwpLGY9eWYoKCgpPT5uZXcgTWFwKSksW20saF09KDAsYS51c2VTdGF0ZSkobCksW3AsZ109KDAsYS51c2VTdGF0ZSkobCk7S2QoKCgpPT57dS5jdXJyZW50PSExLGQuY3VycmVudD1sO2ZvcihsZXQgZT0wO2U8cC5sZW5ndGg7ZSsrKXtjb25zdCB0PW5oKHBbZV0pO2MuaW5jbHVkZXModCk/Zi5kZWxldGUodCk6ITAhPT1mLmdldCh0KSYmZi5zZXQodCwhMSl9fSksW3AsYy5sZW5ndGgsYy5qb2luKFwiLVwiKV0pO2NvbnN0IHk9W107aWYobCE9PW0pe2xldCBlPVsuLi5sXTtmb3IobGV0IHQ9MDt0PHAubGVuZ3RoO3QrKyl7Y29uc3Qgbj1wW3RdLHI9bmgobik7Yy5pbmNsdWRlcyhyKXx8KGUuc3BsaWNlKHQsMCxuKSx5LnB1c2gobikpfXJldHVyblwid2FpdFwiPT09cyYmeS5sZW5ndGgmJihlPXkpLGcocmgoZSkpLHZvaWQgaChsKX1jb25zdHtmb3JjZVJlbmRlcjp2fT0oMCxhLnVzZUNvbnRleHQpKHB1KTtyZXR1cm4oMCxtdS5qc3gpKG11LkZyYWdtZW50LHtjaGlsZHJlbjpwLm1hcCgoZT0+e2NvbnN0IHQ9bmgoZSksYT1sPT09cHx8Yy5pbmNsdWRlcyh0KTtyZXR1cm4oMCxtdS5qc3gpKGVoLHtpc1ByZXNlbnQ6YSxpbml0aWFsOiEodS5jdXJyZW50JiYhcikmJnZvaWQgMCxjdXN0b206YT92b2lkIDA6bixwcmVzZW5jZUFmZmVjdHNMYXlvdXQ6aSxtb2RlOnMsb25FeGl0Q29tcGxldGU6YT92b2lkIDA6KCk9PntpZighZi5oYXModCkpcmV0dXJuO2Yuc2V0KHQsITApO2xldCBlPSEwO2YuZm9yRWFjaCgodD0+e3R8fChlPSExKX0pKSxlJiYobnVsbD09dnx8digpLGcoZC5jdXJyZW50KSxvJiZvKCkpfSxjaGlsZHJlbjplfSx0KX0pKX0pfTtmdW5jdGlvbiBpaChlKXtyZXR1cm4gaWg9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgZX0saWgoZSl9ZnVuY3Rpb24gc2goZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIGFoKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP3NoKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7bGgoZSx0LG5bdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOnNoKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSkpfXJldHVybiBlfWZ1bmN0aW9uIGxoKGUsdCxuKXtyZXR1cm4odD1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlKXtpZihcIm9iamVjdFwiIT1paChlKXx8IWUpcmV0dXJuIGU7dmFyIHQ9ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXQpe3ZhciBuPXQuY2FsbChlLFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPWloKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKGUpfShlKTtyZXR1cm5cInN5bWJvbFwiPT1paCh0KT90OnQrXCJcIn0odCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gY2goZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gdWgoZSx0KTt2YXIgbj17fS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVyblwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bj9BcnJheS5mcm9tKGUpOlwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT91aChlLHQpOnZvaWQgMH19ZnVuY3Rpb24gdWgoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfXZhciBkaCxmaD1mdW5jdGlvbihlKXt2YXIgdD1lLnRvYXN0SXRlbSxuPWUudGl0bGUscj12b2lkIDA9PT1uP251bGw6bixvPWUuY29udGVudCxpPXZvaWQgMD09PW8/bnVsbDpvLHM9ZS5hdXRvRGlzbWlzcyxsPXZvaWQgMD09PXN8fHMsYz1lLmRpc21pc3NBZnRlcix1PXZvaWQgMD09PWM/NWUzOmMsZD1lLnRoZW1lLGY9dm9pZCAwPT09ZD9cImxpZ2h0XCI6ZCxtPWUuZGVzaWduLGg9dm9pZCAwPT09bT9cInN0YWNrXCI6bSxwPWUuaWNvbixnPXZvaWQgMD09PXA/bnVsbDpwLHk9ZS52YXJpYW50LHY9dm9pZCAwPT09eT9cIm5ldXRyYWxcIjp5LGI9ZS5yZW1vdmVUb2FzdCx4PSgwLGEudXNlUmVmKSgwKSx3PSgwLGEudXNlUmVmKSgwKSxTPSgwLGEudXNlUmVmKSgwKSxrPWZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp1O2lmKGwmJiEodTwwKSlyZXR1cm4geC5jdXJyZW50PShuZXcgRGF0ZSkuZ2V0VGltZSgpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7YihlLmlkKX0pLHQpfTsoMCxhLnVzZUVmZmVjdCkoKGZ1bmN0aW9uKCl7dmFyIGU9dTtyZXR1cm4gUy5jdXJyZW50PWsodCxlKSxmdW5jdGlvbigpe2NsZWFyVGltZW91dChTLmN1cnJlbnQpfX0pLFtdKSwoMCxhLnVzZUVmZmVjdCkoKGZ1bmN0aW9uKCl7bnVsbCE9dCYmdC5kaXNtaXNzJiZiKHQuaWQpfSksW3RdKTt2YXIgRSxDLF8sUCxPLE4sVCxNLFIsRCxqPWZ1bmN0aW9uKCl7dmFyIGUsbjtudWxsPT10fHxudWxsPT09KGU9dC5hY3Rpb24pfHx2b2lkIDA9PT1lfHxudWxsPT09KG49ZS5vbkNsaWNrKXx8dm9pZCAwPT09bnx8bi5jYWxsKGUsKGZ1bmN0aW9uKCl7cmV0dXJuIGIodC5pZCl9KSl9LEE9bnVsbDtyZXR1cm5cInN0YWNrXCI9PT1oJiYoQT1SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShcImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnQgcC00IGdhcC0yIHJlbGF0aXZlIGJvcmRlciBib3JkZXItc29saWQgcm91bmRlZC1tZCBzaGFkb3ctbGdcIixcImRhcmtcIj09PWY/WG06bnVsbD09PShFPUdtKXx8dm9pZCAwPT09RT92b2lkIDA6RVt2XSxcInctWzIyLjVyZW1dXCIpLG9uTW91c2VFbnRlcjpmdW5jdGlvbigpe2NsZWFyVGltZW91dChTLmN1cnJlbnQpLHcuY3VycmVudD0obmV3IERhdGUpLmdldFRpbWUoKX0sb25Nb3VzZUxlYXZlOmZ1bmN0aW9uKCl7Uy5jdXJyZW50PWsodCx1LSh3LmN1cnJlbnQteC5jdXJyZW50KSl9fSxcImN1c3RvbVwiIT09dC50eXBlP1JlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsbnVsbCxSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcInNlbGYtc3RhcnQgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgWyZfc3ZnXTpzaXplLTUgc2hyaW5rLTBcIn0sU28oe3ZhcmlhbnQ6dixpY29uOmcsdGhlbWU6Zn0pKSxSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImZsZXggZmxleC1jb2wgaXRlbXMtc3RhcnQganVzdGlmeS1zdGFydCBnYXAtMC41XCJ9LEVvKHt0aXRsZTpyLHRoZW1lOmZ9KSxDbyh7Y29udGVudDppLHRoZW1lOmZ9KSwobnVsbD09dHx8bnVsbD09PShDPXQuYWN0aW9uKXx8dm9pZCAwPT09Qz92b2lkIDA6Qy5sYWJlbCkmJlwiZnVuY3Rpb25cIj09dHlwZW9mKG51bGw9PXR8fG51bGw9PT0oXz10LmFjdGlvbil8fHZvaWQgMD09PV8/dm9pZCAwOl8ub25DbGljaykmJlJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwibXQtMi41XCJ9LGtvKHthY3Rpb25MYWJlbDpudWxsPT10fHxudWxsPT09KFA9dC5hY3Rpb24pfHx2b2lkIDA9PT1QP3ZvaWQgMDpQLmxhYmVsLGFjdGlvblR5cGU6bnVsbCE9PShPPW51bGw9PXR8fG51bGw9PT0oTj10LmFjdGlvbil8fHZvaWQgMD09PU4/dm9pZCAwOk4udHlwZSkmJnZvaWQgMCE9PU8/TzpcImJ1dHRvblwiLG9uQWN0aW9uOmosdGhlbWU6Zn0pKSksUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJhYnNvbHV0ZSByaWdodC00IHRvcC00IFsmX3N2Z106c2l6ZS01XCJ9LFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIix7Y2xhc3NOYW1lOm9lKFwiYmctdHJhbnNwYXJlbnQgbS0wIHAtMCBib3JkZXItbm9uZSBmb2N1czpvdXRsaW5lLW5vbmUgYWN0aXZlOm91dGxpbmUtbm9uZSBjdXJzb3ItcG9pbnRlclwiLG51bGwhPT0oVD1abVtmXSkmJnZvaWQgMCE9PVQ/VDpabS5saWdodCksb25DbGljazpmdW5jdGlvbigpe3JldHVybiBiKHQuaWQpfX0sUmVhY3QuY3JlYXRlRWxlbWVudChxbyxudWxsKSkpKTpudWxsPT10fHxudWxsPT09KE09dC5qc3gpfHx2b2lkIDA9PT1NP3ZvaWQgMDpNLmNhbGwodCx7Y2xvc2U6ZnVuY3Rpb24oKXtyZXR1cm4gYih0LmlkKX0sYWN0aW9uOm51bGwhPXQmJnQuYWN0aW9uP2FoKGFoKHt9LG51bGw9PXQ/dm9pZCAwOnQuYWN0aW9uKSx7fSx7b25DbGljazpqfSk6bnVsbH0pKSksXCJpbmxpbmVcIj09PWgmJihBPVJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKFwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydCBwLTMgZ2FwLTIgcmVsYXRpdmUgYm9yZGVyIGJvcmRlci1zb2xpZCByb3VuZGVkLW1kIHNoYWRvdy1sZ1wiLFwiZGFya1wiPT09Zj9YbTpudWxsPT09KFI9R20pfHx2b2lkIDA9PT1SP3ZvaWQgMDpSW3ZdLFwibGc6dy1bNDcuNXJlbV0gdy1mdWxsXCIpfSxSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcInNlbGYtc3RhcnQgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgWyZfc3ZnXTpzaXplLTUgc2hyaW5rLTBcIn0sU28oe3ZhcmlhbnQ6dixpY29uOmcsdGhlbWU6Zn0pKSxSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1zdGFydCBnYXAtMSBtci0xMCBbJj5zcGFuOmZpcnN0LWNoaWxkXTpzaHJpbmstMFwifSxFbyh7dGl0bGU6cix0aGVtZTpmfSksQ28oe2NvbnRlbnQ6aSx0aGVtZTpmfSkpLFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiYWJzb2x1dGUgcmlnaHQtMyB0b3AtMyBbJl9zdmddOnNpemUtNVwifSxSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIse2NsYXNzTmFtZTpvZShcImJnLXRyYW5zcGFyZW50IG0tMCBwLTAgYm9yZGVyLW5vbmUgZm9jdXM6b3V0bGluZS1ub25lIGFjdGl2ZTpvdXRsaW5lLW5vbmUgY3Vyc29yLXBvaW50ZXJcIixudWxsIT09KEQ9Wm1bZl0pJiZ2b2lkIDAhPT1EP0Q6Wm0ubGlnaHQpLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gYih0LmlkKX19LFJlYWN0LmNyZWF0ZUVsZW1lbnQocW8sbnVsbCkpKSkpLEF9LG1oPShkaD1mdW5jdGlvbihlKXt2YXIgdCxuLHIsbz1lLnBvc2l0aW9uLGk9dm9pZCAwPT09bz9cInRvcC1yaWdodFwiOm8scz1lLmRlc2lnbixsPXZvaWQgMD09PXM/XCJzdGFja1wiOnMsYz1lLnRoZW1lLHU9dm9pZCAwPT09Yz9cImxpZ2h0XCI6YyxkPWUuY2xhc3NOYW1lLGY9dm9pZCAwPT09ZD9cIlwiOmQsbT1lLmF1dG9EaXNtaXNzLGg9dm9pZCAwPT09bXx8bSxwPWUuZGlzbWlzc0FmdGVyLGc9dm9pZCAwPT09cD81ZTM6cCx5PShuPSgwLGEudXNlU3RhdGUpKFtdKSxyPTIsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0obil8fGZ1bmN0aW9uKGUsdCl7dmFyIG49bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9bil7dmFyIHIsbyxpLHMsYT1bXSxsPSEwLGM9ITE7dHJ5e2lmKGk9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtsPSExfWVsc2UgZm9yKDshKGw9KHI9aS5jYWxsKG4pKS5kb25lKSYmKGEucHVzaChyLnZhbHVlKSxhLmxlbmd0aCE9PXQpO2w9ITApO31jYXRjaChlKXtjPSEwLG89ZX1maW5hbGx5e3RyeXtpZighbCYmbnVsbCE9bi5yZXR1cm4mJihzPW4ucmV0dXJuKCksT2JqZWN0KHMpIT09cykpcmV0dXJufWZpbmFsbHl7aWYoYyl0aHJvdyBvfX1yZXR1cm4gYX19KG4scil8fGNoKG4scil8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksdj15WzBdLGI9eVsxXTsoMCxhLnVzZUVmZmVjdCkoKGZ1bmN0aW9uKCl7WW0uc3Vic2NyaWJlKChmdW5jdGlvbihlKXtudWxsIT1lJiZlLmRpc21pc3M/YigoZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PWUuaWQ/YWgoYWgoe30sdCkse30se2Rpc21pc3M6ITB9KTp0fSkpfSkpOnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7KDAsdG4uZmx1c2hTeW5jKSgoZnVuY3Rpb24oKXtyZXR1cm4gYigoZnVuY3Rpb24odCl7cmV0dXJuLTEhPT10LmZpbmRJbmRleCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1lLmlkfSkpP3QubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PWUuaWQ/YWgoYWgoe30sdCksZSk6dH0pKTpbXS5jb25jYXQoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHVoKGUpfShlKXx8ZnVuY3Rpb24oZSl7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZVtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1lW1wiQEBpdGVyYXRvclwiXSlyZXR1cm4gQXJyYXkuZnJvbShlKX0oZSl8fGNoKGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfSh0KSxbZV0pfSkpfSkpfSkpfSkpfSksW10pO3ZhciB4PWZ1bmN0aW9uKGUpe2IoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQhPT1lfSkpfSkpfTtyZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcInVsXCIse2NsYXNzTmFtZTpvZShcImZpeGVkIGZsZXggZmxleC1jb2wgbGlzdC1ub25lIHotMjAgcC0xMCBwb2ludGVyLWV2ZW50cy1ub25lIFsmPmxpXTpwb2ludGVyLWV2ZW50cy1hdXRvIGdhcC0zXCIsbnVsbCE9PSh0PXFtW2ldKSYmdm9pZCAwIT09dD90OnFtW1widG9wLXJpZ2h0XCJdLGYpfSxSZWFjdC5jcmVhdGVFbGVtZW50KG9oLHtpbml0aWFsOiExfSx2Lm1hcCgoZnVuY3Rpb24oZSl7dmFyIHQsbixyLG8saTtyZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChlbS5saSx7a2V5OmUuaWQscG9zaXRpb25UcmFuc2l0aW9uOiEwLGluaXRpYWw6e29wYWNpdHk6MCx5OjUwLHNjYWxlOi43fSxhbmltYXRlOntvcGFjaXR5OjEseTowLHNjYWxlOjF9LGV4aXQ6e29wYWNpdHk6MCxzY2FsZTouNix0cmFuc2l0aW9uOntkdXJhdGlvbjouMTV9fSxsYXlvdXRJZDpcInRvYXN0LVwiLmNvbmNhdChlLmlkKX0sUmVhY3QuY3JlYXRlRWxlbWVudChmaCx7dG9hc3RJdGVtOmUsdGl0bGU6ZS50aXRsZSxjb250ZW50Om51bGw9PWU/dm9pZCAwOmUuZGVzY3JpcHRpb24saWNvbjpudWxsIT09KHQ9bnVsbD09ZT92b2lkIDA6ZS5pY29uKSYmdm9pZCAwIT09dD90Om51bGwsZGVzaWduOm51bGwhPT0obj1udWxsPT1lP3ZvaWQgMDplLmRlc2lnbikmJnZvaWQgMCE9PW4/bjpsLGF1dG9EaXNtaXNzOm51bGwhPT0ocj1udWxsPT1lP3ZvaWQgMDplLmF1dG9EaXNtaXNzKSYmdm9pZCAwIT09cj9yOmgsZGlzbWlzc0FmdGVyOm51bGwhPT0obz1udWxsPT1lP3ZvaWQgMDplLmRpc21pc3NBZnRlcikmJnZvaWQgMCE9PW8/bzpnLHJlbW92ZVRvYXN0OngsdmFyaWFudDplLnR5cGUsdGhlbWU6bnVsbCE9PShpPW51bGw9PWU/dm9pZCAwOmUudGhlbWUpJiZ2b2lkIDAhPT1pP2k6dX0pKX0pKSkpfSwoMCxhLm1lbW8pKChmdW5jdGlvbihlKXt2YXIgdD1lLnNpbmdsZVRvbjtyZXR1cm4gS20mJnQ/bnVsbDooS209ITAsUmVhY3QuY3JlYXRlRWxlbWVudChkaCxlKSl9KSkpLGhoPXtzbTp7MTpcImdyaWQtY29scy0xXCIsMjpcImdyaWQtY29scy0yXCIsMzpcImdyaWQtY29scy0zXCIsNDpcImdyaWQtY29scy00XCIsNTpcImdyaWQtY29scy01XCIsNjpcImdyaWQtY29scy02XCIsNzpcImdyaWQtY29scy03XCIsODpcImdyaWQtY29scy04XCIsOTpcImdyaWQtY29scy05XCIsMTA6XCJncmlkLWNvbHMtMTBcIiwxMTpcImdyaWQtY29scy0xMVwiLDEyOlwiZ3JpZC1jb2xzLTEyXCJ9LG1kOnsxOlwibWQ6Z3JpZC1jb2xzLTFcIiwyOlwibWQ6Z3JpZC1jb2xzLTJcIiwzOlwibWQ6Z3JpZC1jb2xzLTNcIiw0OlwibWQ6Z3JpZC1jb2xzLTRcIiw1OlwibWQ6Z3JpZC1jb2xzLTVcIiw2OlwibWQ6Z3JpZC1jb2xzLTZcIiw3OlwibWQ6Z3JpZC1jb2xzLTdcIiw4OlwibWQ6Z3JpZC1jb2xzLThcIiw5OlwibWQ6Z3JpZC1jb2xzLTlcIiwxMDpcIm1kOmdyaWQtY29scy0xMFwiLDExOlwibWQ6Z3JpZC1jb2xzLTExXCIsMTI6XCJtZDpncmlkLWNvbHMtMTJcIn0sbGc6ezE6XCJsZzpncmlkLWNvbHMtMVwiLDI6XCJsZzpncmlkLWNvbHMtMlwiLDM6XCJsZzpncmlkLWNvbHMtM1wiLDQ6XCJsZzpncmlkLWNvbHMtNFwiLDU6XCJsZzpncmlkLWNvbHMtNVwiLDY6XCJsZzpncmlkLWNvbHMtNlwiLDc6XCJsZzpncmlkLWNvbHMtN1wiLDg6XCJsZzpncmlkLWNvbHMtOFwiLDk6XCJsZzpncmlkLWNvbHMtOVwiLDEwOlwibGc6Z3JpZC1jb2xzLTEwXCIsMTE6XCJsZzpncmlkLWNvbHMtMTFcIiwxMjpcImxnOmdyaWQtY29scy0xMlwifX0scGg9e3NtOnt4czpcImdhcC0yXCIsc206XCJnYXAtNFwiLG1kOlwiZ2FwLTVcIixsZzpcImdhcC02XCIseGw6XCJnYXAtNlwiLFwiMnhsXCI6XCJnYXAtOFwifSxtZDp7eHM6XCJtZDpnYXAtMlwiLHNtOlwibWQ6Z2FwLTRcIixtZDpcIm1kOmdhcC01XCIsbGc6XCJtZDpnYXAtNlwiLHhsOlwibWQ6Z2FwLTZcIixcIjJ4bFwiOlwibWQ6Z2FwLThcIn0sbGc6e3hzOlwibGc6Z2FwLTJcIixzbTpcImxnOmdhcC00XCIsbWQ6XCJsZzpnYXAtNVwiLGxnOlwibGc6Z2FwLTZcIix4bDpcImxnOmdhcC02XCIsXCIyeGxcIjpcImxnOmdhcC04XCJ9fSxnaD17c206e3hzOlwiZ2FwLXgtMlwiLHNtOlwiZ2FwLXgtNFwiLG1kOlwiZ2FwLXgtNVwiLGxnOlwiZ2FwLXgtNlwiLHhsOlwiZ2FwLXgtNlwiLFwiMnhsXCI6XCJnYXAteC04XCJ9LG1kOnt4czpcIm1kOmdhcC14LTJcIixzbTpcIm1kOmdhcC14LTRcIixtZDpcIm1kOmdhcC14LTVcIixsZzpcIm1kOmdhcC14LTZcIix4bDpcIm1kOmdhcC14LTZcIixcIjJ4bFwiOlwibWQ6Z2FwLXgtOFwifSxsZzp7eHM6XCJsZzpnYXAteC0yXCIsc206XCJsZzpnYXAteC00XCIsbWQ6XCJsZzpnYXAteC01XCIsbGc6XCJsZzpnYXAteC02XCIseGw6XCJsZzpnYXAteC02XCIsXCIyeGxcIjpcImxnOmdhcC14LThcIn19LHloPXtzbTp7eHM6XCJnYXAteS0yXCIsc206XCJnYXAteS00XCIsbWQ6XCJnYXAteS01XCIsbGc6XCJnYXAteS02XCIseGw6XCJnYXAteS02XCIsXCIyeGxcIjpcImdhcC15LThcIn0sbWQ6e3hzOlwibWQ6Z2FwLXktMlwiLHNtOlwibWQ6Z2FwLXktNFwiLG1kOlwibWQ6Z2FwLXktNVwiLGxnOlwibWQ6Z2FwLXktNlwiLHhsOlwibWQ6Z2FwLXktNlwiLFwiMnhsXCI6XCJtZDpnYXAteS04XCJ9LGxnOnt4czpcImxnOmdhcC15LTJcIixzbTpcImxnOmdhcC15LTRcIixtZDpcImxnOmdhcC15LTVcIixsZzpcImxnOmdhcC15LTZcIix4bDpcImxnOmdhcC15LTZcIixcIjJ4bFwiOlwibGc6Z2FwLXktOFwifX0sdmg9e3NtOnsxOlwiY29sLXNwYW4tMVwiLDI6XCJjb2wtc3Bhbi0yXCIsMzpcImNvbC1zcGFuLTNcIiw0OlwiY29sLXNwYW4tNFwiLDU6XCJjb2wtc3Bhbi01XCIsNjpcImNvbC1zcGFuLTZcIiw3OlwiY29sLXNwYW4tN1wiLDg6XCJjb2wtc3Bhbi04XCIsOTpcImNvbC1zcGFuLTlcIiwxMDpcImNvbC1zcGFuLTEwXCIsMTE6XCJjb2wtc3Bhbi0xMVwiLDEyOlwiY29sLXNwYW4tMTJcIn0sbWQ6ezE6XCJtZDpjb2wtc3Bhbi0xXCIsMjpcIm1kOmNvbC1zcGFuLTJcIiwzOlwibWQ6Y29sLXNwYW4tM1wiLDQ6XCJtZDpjb2wtc3Bhbi00XCIsNTpcIm1kOmNvbC1zcGFuLTVcIiw2OlwibWQ6Y29sLXNwYW4tNlwiLDc6XCJtZDpjb2wtc3Bhbi03XCIsODpcIm1kOmNvbC1zcGFuLThcIiw5OlwibWQ6Y29sLXNwYW4tOVwiLDEwOlwibWQ6Y29sLXNwYW4tMTBcIiwxMTpcIm1kOmNvbC1zcGFuLTExXCIsMTI6XCJtZDpjb2wtc3Bhbi0xMlwifSxsZzp7MTpcImxnOmNvbC1zcGFuLTFcIiwyOlwibGc6Y29sLXNwYW4tMlwiLDM6XCJsZzpjb2wtc3Bhbi0zXCIsNDpcImxnOmNvbC1zcGFuLTRcIiw1OlwibGc6Y29sLXNwYW4tNVwiLDY6XCJsZzpjb2wtc3Bhbi02XCIsNzpcImxnOmNvbC1zcGFuLTdcIiw4OlwibGc6Y29sLXNwYW4tOFwiLDk6XCJsZzpjb2wtc3Bhbi05XCIsMTA6XCJsZzpjb2wtc3Bhbi0xMFwiLDExOlwibGc6Y29sLXNwYW4tMTFcIiwxMjpcImxnOmNvbC1zcGFuLTEyXCJ9fSxiaD17c206ezE6XCJjb2wtc3RhcnQtMVwiLDI6XCJjb2wtc3RhcnQtMlwiLDM6XCJjb2wtc3RhcnQtM1wiLDQ6XCJjb2wtc3RhcnQtNFwiLDU6XCJjb2wtc3RhcnQtNVwiLDY6XCJjb2wtc3RhcnQtNlwiLDc6XCJjb2wtc3RhcnQtN1wiLDg6XCJjb2wtc3RhcnQtOFwiLDk6XCJjb2wtc3RhcnQtOVwiLDEwOlwiY29sLXN0YXJ0LTEwXCIsMTE6XCJjb2wtc3RhcnQtMTFcIiwxMjpcImNvbC1zdGFydC0xMlwifSxtZDp7MTpcIm1kOmNvbC1zdGFydC0xXCIsMjpcIm1kOmNvbC1zdGFydC0yXCIsMzpcIm1kOmNvbC1zdGFydC0zXCIsNDpcIm1kOmNvbC1zdGFydC00XCIsNTpcIm1kOmNvbC1zdGFydC01XCIsNjpcIm1kOmNvbC1zdGFydC02XCIsNzpcIm1kOmNvbC1zdGFydC03XCIsODpcIm1kOmNvbC1zdGFydC04XCIsOTpcIm1kOmNvbC1zdGFydC05XCIsMTA6XCJtZDpjb2wtc3RhcnQtMTBcIiwxMTpcIm1kOmNvbC1zdGFydC0xMVwiLDEyOlwibWQ6Y29sLXN0YXJ0LTEyXCJ9LGxnOnsxOlwibGc6Y29sLXN0YXJ0LTFcIiwyOlwibGc6Y29sLXN0YXJ0LTJcIiwzOlwibGc6Y29sLXN0YXJ0LTNcIiw0OlwibGc6Y29sLXN0YXJ0LTRcIiw1OlwibGc6Y29sLXN0YXJ0LTVcIiw2OlwibGc6Y29sLXN0YXJ0LTZcIiw3OlwibGc6Y29sLXN0YXJ0LTdcIiw4OlwibGc6Y29sLXN0YXJ0LThcIiw5OlwibGc6Y29sLXN0YXJ0LTlcIiwxMDpcImxnOmNvbC1zdGFydC0xMFwiLDExOlwibGc6Y29sLXN0YXJ0LTExXCIsMTI6XCJsZzpjb2wtc3RhcnQtMTJcIn19LHhoPXtzbTp7cm93OlwiZ3JpZC1mbG93LXJvd1wiLGNvbHVtbjpcImdyaWQtZmxvdy1jb2xcIixcInJvdy1kZW5zZVwiOlwiZ3JpZC1mbG93LXJvdy1kZW5zZVwiLFwiY29sdW1uLWRlbnNlXCI6XCJncmlkLWZsb3ctY29sLWRlbnNlXCJ9LG1kOntyb3c6XCJtZDpncmlkLWZsb3ctcm93XCIsY29sdW1uOlwibWQ6Z3JpZC1mbG93LWNvbFwiLFwicm93LWRlbnNlXCI6XCJtZDpncmlkLWZsb3ctcm93LWRlbnNlXCIsXCJjb2x1bW4tZGVuc2VcIjpcIm1kOmdyaWQtZmxvdy1jb2wtZGVuc2VcIn0sbGc6e3JvdzpcImxnOmdyaWQtZmxvdy1yb3dcIixjb2x1bW46XCJsZzpncmlkLWZsb3ctY29sXCIsXCJyb3ctZGVuc2VcIjpcImxnOmdyaWQtZmxvdy1yb3ctZGVuc2VcIixcImNvbHVtbi1kZW5zZVwiOlwibGc6Z3JpZC1mbG93LWNvbC1kZW5zZVwifX0sd2g9e3NtOntub3JtYWw6XCJqdXN0aWZ5LW5vcm1hbFwiLHN0YXJ0OlwianVzdGlmeS1zdGFydFwiLGVuZDpcImp1c3RpZnktZW5kXCIsY2VudGVyOlwianVzdGlmeS1jZW50ZXJcIixiZXR3ZWVuOlwianVzdGlmeS1iZXR3ZWVuXCIsYXJvdW5kOlwianVzdGlmeS1hcm91bmRcIixldmVubHk6XCJqdXN0aWZ5LWV2ZW5seVwiLHN0cmV0Y2g6XCJqdXN0aWZ5LXN0cmV0Y2hcIn0sbWQ6e25vcm1hbDpcIm1kOmp1c3RpZnktbm9ybWFsXCIsc3RhcnQ6XCJtZDpqdXN0aWZ5LXN0YXJ0XCIsZW5kOlwibWQ6anVzdGlmeS1lbmRcIixjZW50ZXI6XCJtZDpqdXN0aWZ5LWNlbnRlclwiLGJldHdlZW46XCJtZDpqdXN0aWZ5LWJldHdlZW5cIixhcm91bmQ6XCJtZDpqdXN0aWZ5LWFyb3VuZFwiLGV2ZW5seTpcIm1kOmp1c3RpZnktZXZlbmx5XCIsc3RyZXRjaDpcIm1kOmp1c3RpZnktc3RyZXRjaFwifSxsZzp7bm9ybWFsOlwibGc6anVzdGlmeS1ub3JtYWxcIixzdGFydDpcImxnOmp1c3RpZnktc3RhcnRcIixlbmQ6XCJsZzpqdXN0aWZ5LWVuZFwiLGNlbnRlcjpcImxnOmp1c3RpZnktY2VudGVyXCIsYmV0d2VlbjpcImxnOmp1c3RpZnktYmV0d2VlblwiLGFyb3VuZDpcImxnOmp1c3RpZnktYXJvdW5kXCIsZXZlbmx5OlwibGc6anVzdGlmeS1ldmVubHlcIixzdHJldGNoOlwibGc6anVzdGlmeS1zdHJldGNoXCJ9fSxTaD17c206e3N0YXJ0OlwiaXRlbXMtc3RhcnRcIixlbmQ6XCJpdGVtcy1lbmRcIixjZW50ZXI6XCJpdGVtcy1jZW50ZXJcIixiYXNlbGluZTpcIml0ZW1zLWJhc2VsaW5lXCIsc3RyZXRjaDpcIml0ZW1zLXN0cmV0Y2hcIn0sbWQ6e3N0YXJ0OlwibWQ6aXRlbXMtc3RhcnRcIixlbmQ6XCJtZDppdGVtcy1lbmRcIixjZW50ZXI6XCJtZDppdGVtcy1jZW50ZXJcIixiYXNlbGluZTpcIm1kOml0ZW1zLWJhc2VsaW5lXCIsc3RyZXRjaDpcIm1kOml0ZW1zLXN0cmV0Y2hcIn0sbGc6e3N0YXJ0OlwibGc6aXRlbXMtc3RhcnRcIixlbmQ6XCJsZzppdGVtcy1lbmRcIixjZW50ZXI6XCJsZzppdGVtcy1jZW50ZXJcIixiYXNlbGluZTpcImxnOml0ZW1zLWJhc2VsaW5lXCIsc3RyZXRjaDpcImxnOml0ZW1zLXN0cmV0Y2hcIn19LGtoPXtzbTp7c3RhcnQ6XCJzZWxmLXN0YXJ0XCIsZW5kOlwic2VsZi1lbmRcIixjZW50ZXI6XCJzZWxmLWNlbnRlclwiLGJhc2VsaW5lOlwic2VsZi1iYXNlbGluZVwiLHN0cmV0Y2g6XCJzZWxmLXN0cmV0Y2hcIn0sbWQ6e3N0YXJ0OlwibWQ6c2VsZi1zdGFydFwiLGVuZDpcIm1kOnNlbGYtZW5kXCIsY2VudGVyOlwibWQ6c2VsZi1jZW50ZXJcIixiYXNlbGluZTpcIm1kOnNlbGYtYmFzZWxpbmVcIixzdHJldGNoOlwibWQ6c2VsZi1zdHJldGNoXCJ9LGxnOntzdGFydDpcImxnOnNlbGYtc3RhcnRcIixlbmQ6XCJsZzpzZWxmLWVuZFwiLGNlbnRlcjpcImxnOnNlbGYtY2VudGVyXCIsYmFzZWxpbmU6XCJsZzpzZWxmLWJhc2VsaW5lXCIsc3RyZXRjaDpcImxnOnNlbGYtc3RyZXRjaFwifX0sRWg9e3NtOnthdXRvOlwianVzdGlmeS1zZWxmLWF1dG9cIixzdGFydDpcImp1c3RpZnktc2VsZi1zdGFydFwiLGVuZDpcImp1c3RpZnktc2VsZi1lbmRcIixjZW50ZXI6XCJqdXN0aWZ5LXNlbGYtY2VudGVyXCIsYmFzZWxpbmU6XCJqdXN0aWZ5LXNlbGYtYmFzZWxpbmVcIixzdHJldGNoOlwianVzdGlmeS1zZWxmLXN0cmV0Y2hcIn0sbWQ6e2F1dG86XCJtZDpqdXN0aWZ5LXNlbGYtYXV0b1wiLHN0YXJ0OlwibWQ6anVzdGlmeS1zZWxmLXN0YXJ0XCIsZW5kOlwibWQ6anVzdGlmeS1zZWxmLWVuZFwiLGNlbnRlcjpcIm1kOmp1c3RpZnktc2VsZi1jZW50ZXJcIixiYXNlbGluZTpcIm1kOmp1c3RpZnktc2VsZi1iYXNlbGluZVwiLHN0cmV0Y2g6XCJtZDpqdXN0aWZ5LXNlbGYtc3RyZXRjaFwifSxsZzp7YXV0bzpcImxnOmp1c3RpZnktc2VsZi1hdXRvXCIsc3RhcnQ6XCJsZzpqdXN0aWZ5LXNlbGYtc3RhcnRcIixlbmQ6XCJsZzpqdXN0aWZ5LXNlbGYtZW5kXCIsY2VudGVyOlwibGc6anVzdGlmeS1zZWxmLWNlbnRlclwiLGJhc2VsaW5lOlwibGc6anVzdGlmeS1zZWxmLWJhc2VsaW5lXCIsc3RyZXRjaDpcImxnOmp1c3RpZnktc2VsZi1zdHJldGNoXCJ9fSxDaD17c206e3JvdzpcImZsZXgtcm93XCIsXCJyb3ctcmV2ZXJzZVwiOlwiZmxleC1yb3ctcmV2ZXJzZVwiLGNvbHVtbjpcImZsZXgtY29sXCIsXCJjb2x1bW4tcmV2ZXJzZVwiOlwiZmxleC1jb2wtcmV2ZXJzZVwifSxtZDp7cm93OlwibWQ6ZmxleC1yb3dcIixcInJvdy1yZXZlcnNlXCI6XCJtZDpmbGV4LXJvdy1yZXZlcnNlXCIsY29sdW1uOlwibWQ6ZmxleC1jb2xcIixcImNvbHVtbi1yZXZlcnNlXCI6XCJtZDpmbGV4LWNvbC1yZXZlcnNlXCJ9LGxnOntyb3c6XCJsZzpmbGV4LXJvd1wiLFwicm93LXJldmVyc2VcIjpcImxnOmZsZXgtcm93LXJldmVyc2VcIixjb2x1bW46XCJsZzpmbGV4LWNvbFwiLFwiY29sdW1uLXJldmVyc2VcIjpcImxnOmZsZXgtY29sLXJldmVyc2VcIn19LF9oPXtzbTp7d3JhcDpcImZsZXgtd3JhcFwiLFwid3JhcC1yZXZlcnNlXCI6XCJmbGV4LXdyYXAtcmV2ZXJzZVwiLG5vd3JhcDpcImZsZXgtbm93cmFwXCJ9LG1kOnt3cmFwOlwibWQ6ZmxleC13cmFwXCIsXCJ3cmFwLXJldmVyc2VcIjpcIm1kOmZsZXgtd3JhcC1yZXZlcnNlXCIsbm93cmFwOlwibWQ6ZmxleC1ub3dyYXBcIn0sbGc6e3dyYXA6XCJsZzpmbGV4LXdyYXBcIixcIndyYXAtcmV2ZXJzZVwiOlwibGc6ZmxleC13cmFwLXJldmVyc2VcIixub3dyYXA6XCJsZzpmbGV4LW5vd3JhcFwifX0sUGg9e3NtOnsxOlwidy1mdWxsXCIsMjpcInctMS8yXCIsMzpcInctMS8zXCIsNDpcInctMS80XCIsNTpcInctMS81XCIsNjpcInctMS82XCIsNzpcInctMS83XCIsODpcInctMS84XCIsOTpcInctMS85XCIsMTA6XCJ3LTEvMTBcIiwxMTpcInctMS8xMVwiLDEyOlwidy0xLzEyXCJ9LG1kOnsxOlwibWQ6dy1mdWxsXCIsMjpcIm1kOnctMS8yXCIsMzpcIm1kOnctMS8zXCIsNDpcIm1kOnctMS80XCIsNTpcIm1kOnctMS81XCIsNjpcIm1kOnctMS82XCIsNzpcIm1kOnctMS83XCIsODpcIm1kOnctMS84XCIsOTpcIm1kOnctMS85XCIsMTA6XCJtZDp3LTEvMTBcIiwxMTpcIm1kOnctMS8xMVwiLDEyOlwibWQ6dy0xLzEyXCJ9LGxnOnsxOlwibGc6dy1mdWxsXCIsMjpcImxnOnctMS8yXCIsMzpcImxnOnctMS8zXCIsNDpcImxnOnctMS80XCIsNTpcImxnOnctMS81XCIsNjpcImxnOnctMS82XCIsNzpcImxnOnctMS83XCIsODpcImxnOnctMS84XCIsOTpcImxnOnctMS85XCIsMTA6XCJsZzp3LTEvMTBcIiwxMTpcImxnOnctMS8xMVwiLDEyOlwibGc6dy0xLzEyXCJ9fSxPaD17c206ezE6XCJvcmRlci0xXCIsMjpcIm9yZGVyLTJcIiwzOlwib3JkZXItM1wiLDQ6XCJvcmRlci00XCIsNTpcIm9yZGVyLTVcIiw2Olwib3JkZXItNlwiLDc6XCJvcmRlci03XCIsODpcIm9yZGVyLThcIiw5Olwib3JkZXItOVwiLDEwOlwib3JkZXItMTBcIiwxMTpcIm9yZGVyLTExXCIsMTI6XCJvcmRlci0xMlwiLGZpcnN0Olwib3JkZXItZmlyc3RcIixsYXN0Olwib3JkZXItbGFzdFwiLG5vbmU6XCJvcmRlci1ub25lXCJ9LG1kOnsxOlwibWQ6b3JkZXItMVwiLDI6XCJtZDpvcmRlci0yXCIsMzpcIm1kOm9yZGVyLTNcIiw0OlwibWQ6b3JkZXItNFwiLDU6XCJtZDpvcmRlci01XCIsNjpcIm1kOm9yZGVyLTZcIiw3OlwibWQ6b3JkZXItN1wiLDg6XCJtZDpvcmRlci04XCIsOTpcIm1kOm9yZGVyLTlcIiwxMDpcIm1kOm9yZGVyLTEwXCIsMTE6XCJtZDpvcmRlci0xMVwiLDEyOlwibWQ6b3JkZXItMTJcIixmaXJzdDpcIm1kOm9yZGVyLWZpcnN0XCIsbGFzdDpcIm1kOm9yZGVyLWxhc3RcIixub25lOlwibWQ6b3JkZXItbm9uZVwifSxsZzp7MTpcImxnOm9yZGVyLTFcIiwyOlwibGc6b3JkZXItMlwiLDM6XCJsZzpvcmRlci0zXCIsNDpcImxnOm9yZGVyLTRcIiw1OlwibGc6b3JkZXItNVwiLDY6XCJsZzpvcmRlci02XCIsNzpcImxnOm9yZGVyLTdcIiw4OlwibGc6b3JkZXItOFwiLDk6XCJsZzpvcmRlci05XCIsMTA6XCJsZzpvcmRlci0xMFwiLDExOlwibGc6b3JkZXItMTFcIiwxMjpcImxnOm9yZGVyLTEyXCIsZmlyc3Q6XCJsZzpvcmRlci1maXJzdFwiLGxhc3Q6XCJsZzpvcmRlci1sYXN0XCIsbm9uZTpcImxnOm9yZGVyLW5vbmVcIn19LE5oPXtzbTp7MDpcImdyb3ctMFwiLDE6XCJncm93XCJ9LG1kOnswOlwibWQ6Z3Jvdy0wXCIsMTpcIm1kOmdyb3dcIn0sbGc6ezA6XCJsZzpncm93LTBcIiwxOlwibGc6Z3Jvd1wifX0sVGg9e3NtOnswOlwic2hyaW5rLTBcIiwxOlwic2hyaW5rXCJ9LG1kOnswOlwibWQ6c2hyaW5rLTBcIiwxOlwibWQ6c2hyaW5rXCJ9LGxnOnswOlwibGc6c2hyaW5rLTBcIiwxOlwibGc6c2hyaW5rXCJ9fTtmdW5jdGlvbiBNaChlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gUmgoZSl7cmV0dXJuIFJoPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9LFJoKGUpfXZhciBEaD1mdW5jdGlvbihlLHQsbil7dmFyIHIsbyxpLHMsYSxsLGMsdSxkPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpcInNtXCIsZj1bXTtzd2l0Y2goUmgoZSkpe2Nhc2VcIm9iamVjdFwiOmZvcih2YXIgbT0wLGg9T2JqZWN0LmVudHJpZXMoZSk7bTxoLmxlbmd0aDttKyspe3ZhciBwLGcseSx2LGI9KGM9aFttXSx1PTIsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oYyl8fGZ1bmN0aW9uKGUsdCl7dmFyIG49bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9bil7dmFyIHIsbyxpLHMsYT1bXSxsPSEwLGM9ITE7dHJ5e2lmKGk9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtsPSExfWVsc2UgZm9yKDshKGw9KHI9aS5jYWxsKG4pKS5kb25lKSYmKGEucHVzaChyLnZhbHVlKSxhLmxlbmd0aCE9PXQpO2w9ITApO31jYXRjaChlKXtjPSEwLG89ZX1maW5hbGx5e3RyeXtpZighbCYmbnVsbCE9bi5yZXR1cm4mJihzPW4ucmV0dXJuKCksT2JqZWN0KHMpIT09cykpcmV0dXJufWZpbmFsbHl7aWYoYyl0aHJvdyBvfX1yZXR1cm4gYX19KGMsdSl8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIE1oKGUsdCk7dmFyIG49e30udG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm5cIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4/QXJyYXkuZnJvbShlKTpcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/TWgoZSx0KTp2b2lkIDB9fShjLHUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpLHg9YlswXSx3PWJbMV07dFt4XSYmZi5wdXNoKG51bGwhPT0ocD1udWxsIT09KGc9bnVsbD09dHx8bnVsbD09PSh5PXRbeF0pfHx2b2lkIDA9PT15P3ZvaWQgMDp5W3ddKSYmdm9pZCAwIT09Zz9nOm51bGw9PXR8fG51bGw9PT0odj10W3hdKXx8dm9pZCAwPT09dj92b2lkIDA6dltudWxsPT1uP3ZvaWQgMDpuW3hdXSkmJnZvaWQgMCE9PXA/cDpcIlwiKX1icmVhaztjYXNlXCJzdHJpbmdcIjpjYXNlXCJudW1iZXJcIjp2YXIgUz1kO2YucHVzaChudWxsIT09KHI9bnVsbCE9PShvPW51bGw9PXR8fG51bGw9PT0oaT10W1NdKXx8dm9pZCAwPT09aT92b2lkIDA6aVtlXSkmJnZvaWQgMCE9PW8/bzpudWxsPT10fHxudWxsPT09KHM9dFtTXSl8fHZvaWQgMD09PXM/dm9pZCAwOnNbbnVsbD09bj92b2lkIDA6bltTXV0pJiZ2b2lkIDAhPT1yP3I6XCJcIik7YnJlYWs7ZGVmYXVsdDpmLnB1c2gobnVsbCE9PShhPW51bGw9PXR8fG51bGw9PT0obD10W2RdKXx8dm9pZCAwPT09bD92b2lkIDA6bFtuXSkmJnZvaWQgMCE9PWE/YTpcIlwiKX1yZXR1cm4gZi5qb2luKFwiIFwiKX0samg9W1wiY2xhc3NOYW1lXCIsXCJjb2xzXCIsXCJnYXBcIixcImdhcFhcIixcImdhcFlcIixcImFsaWduXCIsXCJqdXN0aWZ5XCIsXCJncmlkRmxvd1wiLFwiY29sc1N1YkdyaWRcIixcInJvd3NTdWJHcmlkXCIsXCJhdXRvUm93c1wiLFwiYXV0b0NvbHNcIixcImNoaWxkcmVuXCJdLEFoPVtcImNsYXNzTmFtZVwiLFwiY2hpbGRyZW5cIixcImNvbFNwYW5cIixcImNvbFN0YXJ0XCIsXCJhbGlnblNlbGZcIixcImp1c3RpZnlTZWxmXCJdO2Z1bmN0aW9uIEloKCl7cmV0dXJuIEloPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sSWguYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIExoKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmNsdWRlcyhyKSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8aS5sZW5ndGg7cisrKW49aVtyXSx0LmluY2x1ZGVzKG4pfHx7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfXZhciBGaD1mdW5jdGlvbihlKXt2YXIgdD1lLmNsYXNzTmFtZSxuPWUuY29scyxyPWUuZ2FwLG89ZS5nYXBYLGk9ZS5nYXBZLHM9ZS5hbGlnbixhPWUuanVzdGlmeSxjPWUuZ3JpZEZsb3csdT12b2lkIDA9PT1jP1wiXCI6YyxkPWUuY29sc1N1YkdyaWQsZj12b2lkIDAhPT1kJiZkLG09ZS5yb3dzU3ViR3JpZCxoPXZvaWQgMCE9PW0mJm0scD1lLmF1dG9Sb3dzLGc9dm9pZCAwIT09cCYmcCx5PWUuYXV0b0NvbHMsdj12b2lkIDAhPT15JiZ5LGI9ZS5jaGlsZHJlbix4PUxoKGUsamgpLHc9RGgobixoaCwxKSxTPURoKHIscGgsXCJzbVwiKSxrPURoKG8sZ2gsXCJcIiksRT1EaChpLHloLFwiXCIpLEM9RGgocyxTaCxcIlwiKSxfPURoKGEsd2gsXCJcIiksUD1EaCh1LHhoLFwiXCIpO3JldHVybiBsKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLEloKHtjbGFzc05hbWU6b2UoXCJncmlkXCIse1wiZ3JpZC1jb2xzLXN1YmdyaWRcIjpmLFwiZ3JpZC1yb3dzLXN1YmdyaWRcIjpoLFwiYXV0by1jb2xzLWF1dG9cIjp2LFwiYXV0by1yb3dzLWF1dG9cIjpnfSx3LFMsayxFLEMsXyxQLHQpfSx4KSxiKX07T2JqZWN0LmFzc2lnbihGaCx7SXRlbTpmdW5jdGlvbihlKXt2YXIgdD1lLmNsYXNzTmFtZSxuPWUuY2hpbGRyZW4scj1lLmNvbFNwYW4sbz1lLmNvbFN0YXJ0LGk9ZS5hbGlnblNlbGYscz1lLmp1c3RpZnlTZWxmLGE9TGgoZSxBaCksYz1EaChyLHZoLDApLHU9RGgobyxiaCwwKSxkPURoKGksa2gsXCJcIiksZj1EaChzLEVoLFwiXCIpO3JldHVybiBsKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLEloKHtjbGFzc05hbWU6b2UoYyx1LGQsZix0KX0sYSksbil9fSk7dmFyIHpoPUZoLEJoPVtcImNvbnRhaW5lclR5cGVcIixcImdhcFwiLFwiZ2FwWFwiLFwiZ2FwWVwiLFwiZGlyZWN0aW9uXCIsXCJqdXN0aWZ5XCIsXCJhbGlnblwiLFwid3JhcFwiLFwiY29sc1wiLFwiY2xhc3NOYW1lXCIsXCJjaGlsZHJlblwiXSxXaD1bXCJjb250YWluZXJUeXBlXCJdLFZoPVtcImdyb3dcIixcInNocmlua1wiLFwib3JkZXJcIixcImFsaWduU2VsZlwiLFwianVzdGlmeVNlbGZcIixcImNsYXNzTmFtZVwiLFwiY2hpbGRyZW5cIl07ZnVuY3Rpb24gVWgoKXtyZXR1cm4gVWg9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxVaC5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gJGgoZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluY2x1ZGVzKHIpKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLHQuaW5jbHVkZXMobil8fHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99dmFyIFloPSgwLGEuY3JlYXRlQ29udGV4dCkoKSxIaD1mdW5jdGlvbihlKXt2YXIgdD1lLmNvbnRhaW5lclR5cGUsbj12b2lkIDA9PT10P1wiZmxleFwiOnQscj1lLmdhcCxvPXZvaWQgMD09PXI/XCJzbVwiOnIsaT1lLmdhcFgscz12b2lkIDA9PT1pP1wiXCI6aSxhPWUuZ2FwWSxjPXZvaWQgMD09PWE/XCJcIjphLHU9ZS5kaXJlY3Rpb24sZD12b2lkIDA9PT11P1wiXCI6dSxmPWUuanVzdGlmeSxtPXZvaWQgMD09PWY/XCJcIjpmLGg9ZS5hbGlnbixwPXZvaWQgMD09PWg/XCJcIjpoLGc9ZS53cmFwLHk9ZS5jb2xzLHY9dm9pZCAwPT09eT9cIlwiOnksYj1lLmNsYXNzTmFtZSx4PWUuY2hpbGRyZW4sdz0kaChlLEJoKTtpZihcImdyaWRcIj09PW4pe3ZhciBTPWUuY29udGFpbmVyVHlwZSxrPSRoKGUsV2gpO3JldHVybiBsKCkuY3JlYXRlRWxlbWVudChZaC5Qcm92aWRlcix7dmFsdWU6e2NvbnRhaW5lclR5cGU6U319LGwoKS5jcmVhdGVFbGVtZW50KHpoLGspKX12YXIgRT1EaChnLF9oLFwiXCIpLEM9RGgobyxwaCxcInNtXCIpLF89RGgocyxnaCxcIlwiKSxQPURoKGMseWgsXCJcIiksTz1EaChkLENoLFwiXCIpLE49RGgobSx3aCxcIlwiKSxUPURoKHAsU2gsXCJcIiksTT1vZShcImZsZXhcIixFLEMsXyxQLE8sTixULGIpO3JldHVybiBsKCkuY3JlYXRlRWxlbWVudChZaC5Qcm92aWRlcix7dmFsdWU6e2NvbnRhaW5lclR5cGU6bixjb2xzOnZ9fSxcImdyaWRcIj09PW4/bCgpLmNyZWF0ZUVsZW1lbnQoemgsZSk6bCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIixVaCh7Y2xhc3NOYW1lOk19LHcpLHgpKX07SGguSXRlbT1mdW5jdGlvbihlKXt2YXIgdD1lLmdyb3csbj1lLnNocmluayxyPWUub3JkZXIsbz1lLmFsaWduU2VsZixpPWUuanVzdGlmeVNlbGYscz1lLmNsYXNzTmFtZSxjPWUuY2hpbGRyZW4sdT0kaChlLFZoKSxkPSgwLGEudXNlQ29udGV4dCkoWWgpLGY9ZC5jb250YWluZXJUeXBlLG09ZC5jb2xzO2lmKFwiZ3JpZFwiPT09Zil7dmFyIGg9VWgoe30sKGZ1bmN0aW9uKGUpe2lmKG51bGw9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBkZXN0cnVjdHVyZSBcIitlKX0oZSksZSkpO3JldHVybiBsKCkuY3JlYXRlRWxlbWVudCh6aC5JdGVtLGgpfXZhciBwPURoKG8sa2gsXCJcIiksZz1EaChpLEVoLFwiXCIpLHk9RGgodCxOaCwwKSx2PURoKG4sVGgsMCksYj1EaChyLE9oLDApLHg9RGgobSxQaCwxKTtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIixVaCh7Y2xhc3NOYW1lOm9lKFwiYm94LWJvcmRlclwiLHksdixiLHAsZyx4LHMpfSx1KSxjKX0sSGguZGlzcGxheU5hbWU9XCJDb250YWluZXJcIixIaC5JdGVtLmRpc3BsYXlOYW1lPVwiQ29udGFpbmVyLkl0ZW1cIjt2YXIgS2gscWg9SGgsR2g9ZnVuY3Rpb24oZSl7dmFyIHQsbixyLG8saSxzLGE9ZS5kZXNpZ24sbD12b2lkIDA9PT1hP1wiaW5saW5lXCI6YSxjPWUudGhlbWUsdT12b2lkIDA9PT1jP1wibGlnaHRcIjpjLGQ9ZS52YXJpYW50LGY9dm9pZCAwPT09ZD9cIm5ldXRyYWxcIjpkLG09ZS5jbGFzc05hbWUsaD12b2lkIDA9PT1tP1wiXCI6bSxwPWUudGl0bGUsZz12b2lkIDA9PT1wP1wiVGl0bGVcIjpwLHk9ZS5jb250ZW50LHY9dm9pZCAwPT09eT9cIkRlc2NyaXB0aW9uXCI6eSxiPWUuaWNvbix4PXZvaWQgMD09PWI/bnVsbDpiLHc9ZS5vbkNsb3NlLFM9dm9pZCAwPT09dz9mdW5jdGlvbigpe306dyxrPWUuYWN0aW9uLEU9dm9pZCAwPT09az97bGFiZWw6XCJcIixvbkNsaWNrOmZ1bmN0aW9uKCl7fSx0eXBlOlwibGlua1wifTprLEM9ZnVuY3Rpb24oKXtTKCl9LF89e25ldXRyYWw6XCJyaW5nLWFsZXJ0LWJvcmRlci1uZXV0cmFsIGJnLWFsZXJ0LWJhY2tncm91bmQtbmV1dHJhbFwiLGN1c3RvbTpcInJpbmctYWxlcnQtYm9yZGVyLW5ldXRyYWwgYmctYWxlcnQtYmFja2dyb3VuZC1uZXV0cmFsXCIsaW5mbzpcInJpbmctYWxlcnQtYm9yZGVyLWluZm8gYmctYWxlcnQtYmFja2dyb3VuZC1pbmZvXCIsc3VjY2VzczpcInJpbmctYWxlcnQtYm9yZGVyLWdyZWVuIGJnLWFsZXJ0LWJhY2tncm91bmQtZ3JlZW5cIix3YXJuaW5nOlwicmluZy1hbGVydC1ib3JkZXItd2FybmluZyBiZy1hbGVydC1iYWNrZ3JvdW5kLXdhcm5pbmdcIixlcnJvcjpcInJpbmctYWxlcnQtYm9yZGVyLWRhbmdlciBiZy1hbGVydC1iYWNrZ3JvdW5kLWRhbmdlclwifSxQPVwiYmctYmFja2dyb3VuZC1pbnZlcnNlIHJpbmctYmFja2dyb3VuZC1pbnZlcnNlXCIsTz17bGlnaHQ6XCJ0ZXh0LWljb24tc2Vjb25kYXJ5XCIsZGFyazpcInRleHQtaWNvbi1pbnZlcnNlXCJ9LE49ZnVuY3Rpb24oKXt2YXIgZTtudWxsPT1FfHxudWxsPT09KGU9RS5vbkNsaWNrKXx8dm9pZCAwPT09ZXx8ZS5jYWxsKEUsKGZ1bmN0aW9uKCl7cmV0dXJuIEMoKX0pKX07cmV0dXJuXCJzdGFja1wiPT09bD9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShcImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnQgcC00IGdhcC0yIHJlbGF0aXZlIHJpbmctMSByb3VuZGVkLW1kIHNoYWRvdy1sZ1wiLFwiZGFya1wiPT09dT9QOm51bGw9PT0obz1fKXx8dm9pZCAwPT09bz92b2lkIDA6b1tmXSxoKX0sUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCxudWxsLFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwic2VsZi1zdGFydCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBbJl9zdmddOnNpemUtNSBzaHJpbmstMFwifSxTbyh7dmFyaWFudDpmLGljb246eCx0aGVtZTp1fSkpLFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZmxleCBmbGV4LWNvbCBpdGVtcy1zdGFydCBqdXN0aWZ5LXN0YXJ0IGdhcC0wLjVcIn0sRW8oe3RpdGxlOmcsdGhlbWU6dX0pLENvKHtjb250ZW50OnYsdGhlbWU6dX0pLChudWxsPT1FP3ZvaWQgMDpFLmxhYmVsKSYmXCJmdW5jdGlvblwiPT10eXBlb2YobnVsbD09RT92b2lkIDA6RS5vbkNsaWNrKSYmUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJtdC0yLjVcIn0sa28oe2FjdGlvbkxhYmVsOm51bGw9PUU/dm9pZCAwOkUubGFiZWwsYWN0aW9uVHlwZTpudWxsIT09KGk9bnVsbD09RT92b2lkIDA6RS50eXBlKSYmdm9pZCAwIT09aT9pOlwiYnV0dG9uXCIsb25BY3Rpb246Tix0aGVtZTp1fSkpKSxSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImFic29sdXRlIHJpZ2h0LTQgdG9wLTQgWyZfc3ZnXTpzaXplLTVcIn0sUmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLHtjbGFzc05hbWU6b2UoXCJiZy10cmFuc3BhcmVudCBtLTAgcC0wIGJvcmRlci1ub25lIGZvY3VzOm91dGxpbmUtbm9uZSBhY3RpdmU6b3V0bGluZS1ub25lIGN1cnNvci1wb2ludGVyXCIsbnVsbCE9PShzPU9bdV0pJiZ2b2lkIDAhPT1zP3M6Ty5saWdodCksb25DbGljazpmdW5jdGlvbigpe3JldHVybiBDKCl9fSxSZWFjdC5jcmVhdGVFbGVtZW50KHFvLG51bGwpKSkpKTpSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShcImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBwLTMgZ2FwLTIgcmVsYXRpdmUgcmluZy0xIHJvdW5kZWQtbGcgc2hhZG93LWxnXCIsXCJkYXJrXCI9PT11P1A6bnVsbD09PSh0PV8pfHx2b2lkIDA9PT10P3ZvaWQgMDp0W2ZdLGgpfSxSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnQgZ2FwLTJcIn0sUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJzZWxmLXN0YXJ0IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIFsmX3N2Z106c2l6ZS01IHNocmluay0wXCJ9LFNvKHt2YXJpYW50OmYsaWNvbjp4LHRoZW1lOnV9KSksUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktc3RhcnQgZ2FwLTEgbXItMTAgWyY+c3BhbjpmaXJzdC1jaGlsZF06c2hyaW5rLTAgcHgtMVwifSxFbyh7dGl0bGU6Zyx0aGVtZTp1fSksQ28oe2NvbnRlbnQ6dix0aGVtZTp1fSkpKSxSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnQgZ2FwLTQgWyZfc3ZnXTpzaXplLTRcIn0sKG51bGw9PUU/dm9pZCAwOkUubGFiZWwpJiZcImZ1bmN0aW9uXCI9PXR5cGVvZihudWxsPT1FP3ZvaWQgMDpFLm9uQ2xpY2spJiZSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImZsZXggaC01XCJ9LGtvKHthY3Rpb25MYWJlbDpudWxsPT1FP3ZvaWQgMDpFLmxhYmVsLGFjdGlvblR5cGU6bnVsbCE9PShuPW51bGw9PUU/dm9pZCAwOkUudHlwZSkmJnZvaWQgMCE9PW4/bjpcImJ1dHRvblwiLG9uQWN0aW9uOk4sdGhlbWU6dX0pKSxSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIse2NsYXNzTmFtZTpvZShcImJnLXRyYW5zcGFyZW50IG0tMCBib3JkZXItbm9uZSBwLTAuNSBmb2N1czpvdXRsaW5lLW5vbmUgYWN0aXZlOm91dGxpbmUtbm9uZSBjdXJzb3ItcG9pbnRlciBzaXplLTVcIixudWxsIT09KHI9T1t1XSkmJnZvaWQgMCE9PXI/cjpPLmxpZ2h0KSxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIEMoKX19LFJlYWN0LmNyZWF0ZUVsZW1lbnQocW8sbnVsbCkpKSl9LFhoPShLaD1mdW5jdGlvbihlKXtjb25zdCB0PW5ldyBVUkxTZWFyY2hQYXJhbXM7dC5hcHBlbmQoXCJjb2RlXCIsZSk7Zm9yKGxldCBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0LmFwcGVuZChcInZcIixhcmd1bWVudHNbZV0pO3Rocm93IEVycm9yKGBNaW5pZmllZCBMZXhpY2FsIGVycm9yICMke2V9OyB2aXNpdCBodHRwczovL2xleGljYWwuZGV2L2RvY3MvZXJyb3I/JHt0fSBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuYCl9LEtoJiZLaC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoS2gsXCJkZWZhdWx0XCIpP0toLmRlZmF1bHQ6S2gpO2NvbnN0IFpoPSgwLGEuY3JlYXRlQ29udGV4dCkobnVsbCk7ZnVuY3Rpb24gSmgoKXtjb25zdCBlPSgwLGEudXNlQ29udGV4dCkoWmgpO3JldHVybiBudWxsPT1lJiZYaCg4KSxlfWZ1bmN0aW9uIFFoKHtkZWZhdWx0U2VsZWN0aW9uOmV9KXtjb25zdFt0XT1KaCgpO3JldHVybigwLGEudXNlRWZmZWN0KSgoKCk9Pnt0LmZvY3VzKCgoKT0+e2NvbnN0IGU9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxuPXQuZ2V0Um9vdEVsZW1lbnQoKTtudWxsPT09bnx8bnVsbCE9PWUmJm4uY29udGFpbnMoZSl8fG4uZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KX0pLHtkZWZhdWx0U2VsZWN0aW9uOmV9KX0pLFtlLHRdKSxudWxsfWNvbnN0IGVwPXt9LHRwPXt9LG5wPXt9LHJwPXt9LG9wPXt9LGlwPXt9LHNwPXt9LGFwPXt9LGxwPXt9LGNwPXt9LHVwPXt9LGRwPXt9LGZwPXt9LG1wPXt9LGhwPXt9LHBwPXt9LGdwPXt9LHlwPXt9LHZwPXt9LGJwPXt9LHhwPXt9LHdwPXt9LFNwPXt9LGtwPXt9LEVwPXt9LENwPXt9LF9wPXt9LFBwPXt9LE9wPXt9LE5wPXt9LFRwPXt9LE1wPXt9LFJwPXt9LERwPXt9LGpwPXt9LEFwPXt9LElwPXt9LExwPXt9LEZwPXt9LHpwPXt9LEJwPVwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5kb2N1bWVudCYmdm9pZCAwIT09d2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQsV3A9QnAmJlwiZG9jdW1lbnRNb2RlXCJpbiBkb2N1bWVudD9kb2N1bWVudC5kb2N1bWVudE1vZGU6bnVsbCxWcD1CcCYmL01hY3xpUG9kfGlQaG9uZXxpUGFkLy50ZXN0KG5hdmlnYXRvci5wbGF0Zm9ybSksVXA9QnAmJi9eKD8hLipTZWFtb25rZXkpKD89LipGaXJlZm94KS4qL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSwkcD0hKCFCcHx8IShcIklucHV0RXZlbnRcImluIHdpbmRvdyl8fFdwKSYmXCJnZXRUYXJnZXRSYW5nZXNcImluIG5ldyB3aW5kb3cuSW5wdXRFdmVudChcImlucHV0XCIpLFlwPUJwJiYvVmVyc2lvblxcL1tcXGQuXSsuKlNhZmFyaS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxIcD1CcCYmL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJiF3aW5kb3cuTVNTdHJlYW0sS3A9QnAmJi9BbmRyb2lkLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHFwPUJwJiYvXig/PS4qQ2hyb21lKS4qL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxHcD1CcCYmS3AmJnFwLFhwPUJwJiYvQXBwbGVXZWJLaXRcXC9bXFxkLl0rLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYhcXAsWnA9MSxKcD0zLFFwPTAsZWc9Mix0Zz0wLG5nPTEscmc9MixvZz00LGlnPTgsc2c9M3xvZ3xpZ3wyNDAsYWc9MSxsZz0yLGNnPTMsdWc9NCxkZz01LGZnPTYsbWc9WXB8fEhwfHxYcD9cIsKgXCI6XCLigItcIixoZz1cIlxcblxcblwiLHBnPVVwP1wiwqBcIjptZyxnZz1cItaRLd+/76ydLe+3ve+5sC3vu7xcIix5Zz1cIkEtWmEtesOALcOWw5gtw7bDuC3KuMyALdaQ4KCALeG/v+KAjuKwgC3vrJzvuIAt77mv77u9Le+/v1wiLHZnPW5ldyBSZWdFeHAoXCJeW15cIit5ZytcIl0qW1wiK2dnK1wiXVwiKSxiZz1uZXcgUmVnRXhwKFwiXlteXCIrZ2crXCJdKltcIit5ZytcIl1cIikseGc9e2JvbGQ6MSxjb2RlOjE2LGhpZ2hsaWdodDoxMjgsaXRhbGljOjIsc3RyaWtldGhyb3VnaDpvZyxzdWJzY3JpcHQ6MzIsc3VwZXJzY3JpcHQ6NjQsdW5kZXJsaW5lOmlnfSx3Zz17ZGlyZWN0aW9ubGVzczoxLHVubWVyZ2VhYmxlOjJ9LFNnPXtjZW50ZXI6bGcsZW5kOmZnLGp1c3RpZnk6dWcsbGVmdDphZyxyaWdodDpjZyxzdGFydDpkZ30sa2c9e1tsZ106XCJjZW50ZXJcIixbZmddOlwiZW5kXCIsW3VnXTpcImp1c3RpZnlcIixbYWddOlwibGVmdFwiLFtjZ106XCJyaWdodFwiLFtkZ106XCJzdGFydFwifSxFZz17bm9ybWFsOjAsc2VnbWVudGVkOjIsdG9rZW46MX0sQ2c9e1t0Z106XCJub3JtYWxcIixbcmddOlwic2VnbWVudGVkXCIsW25nXTpcInRva2VuXCJ9O3ZhciBfZyxQZz0oX2c9ZnVuY3Rpb24oZSl7Y29uc3QgdD1uZXcgVVJMU2VhcmNoUGFyYW1zO3QuYXBwZW5kKFwiY29kZVwiLGUpO2ZvcihsZXQgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdC5hcHBlbmQoXCJ2XCIsYXJndW1lbnRzW2VdKTt0aHJvdyBFcnJvcihgTWluaWZpZWQgTGV4aWNhbCBlcnJvciAjJHtlfTsgdmlzaXQgaHR0cHM6Ly9sZXhpY2FsLmRldi9kb2NzL2Vycm9yPyR7dH0gZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLmApfSxfZyYmX2cuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKF9nLFwiZGVmYXVsdFwiKT9fZy5kZWZhdWx0Ol9nKTtmdW5jdGlvbiBPZyguLi5lKXtjb25zdCB0PVtdO2Zvcihjb25zdCBuIG9mIGUpaWYobiYmXCJzdHJpbmdcIj09dHlwZW9mIG4pZm9yKGNvbnN0W2Vdb2Ygbi5tYXRjaEFsbCgvXFxTKy9nKSl0LnB1c2goZSk7cmV0dXJuIHR9Y29uc3QgTmc9MTAwO2xldCBUZz0hMSxNZz0wO2Z1bmN0aW9uIFJnKGUpe01nPWUudGltZVN0YW1wfWZ1bmN0aW9uIERnKGUsdCxuKXtyZXR1cm4gdC5fX2xleGljYWxMaW5lQnJlYWs9PT1lfHx2b2lkIDAhPT1lW2BfX2xleGljYWxLZXlfJHtuLl9rZXl9YF19ZnVuY3Rpb24gamcoZSx0LG4pe2NvbnN0IHI9Vnkobi5fd2luZG93KTtsZXQgbz1udWxsLGk9bnVsbDtudWxsIT09ciYmci5hbmNob3JOb2RlPT09ZSYmKG89ci5hbmNob3JPZmZzZXQsaT1yLmZvY3VzT2Zmc2V0KTtjb25zdCBzPWUubm9kZVZhbHVlO251bGwhPT1zJiZieSh0LHMsbyxpLCExKX1mdW5jdGlvbiBBZyhlLHQsbil7aWYoRGIoZSkpe2NvbnN0IHQ9ZS5hbmNob3IuZ2V0Tm9kZSgpO2lmKHQuaXMobikmJmUuZm9ybWF0IT09dC5nZXRGb3JtYXQoKSlyZXR1cm4hMX1yZXR1cm4gdC5ub2RlVHlwZT09PUpwJiZuLmlzQXR0YWNoZWQoKX1mdW5jdGlvbiBJZyhlLHQsbil7VGc9ITA7Y29uc3Qgcj1wZXJmb3JtYW5jZS5ub3coKS1NZz5OZzt0cnl7d3goZSwoKCk9Pntjb25zdCBvPUhiKCl8fGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKCk9Pntjb25zdCBlPUhiKCk7cmV0dXJuIG51bGwhPT1lP2UuY2xvbmUoKTpudWxsfSkpfShlKSxpPW5ldyBNYXAscz1lLmdldFJvb3RFbGVtZW50KCksYT1lLl9lZGl0b3JTdGF0ZSxsPWUuX2Jsb2NrQ3Vyc29yRWxlbWVudDtsZXQgYz0hMSx1PVwiXCI7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2NvbnN0IGQ9dFtuXSxmPWQudHlwZSxtPWQudGFyZ2V0O2xldCBoPXN5KG0sYSk7aWYoIShudWxsPT09aCYmbSE9PXN8fFB4KGgpKSlpZihcImNoYXJhY3RlckRhdGFcIj09PWYpciYma2IoaCkmJkFnKG8sbSxoKSYmamcobSxoLGUpO2Vsc2UgaWYoXCJjaGlsZExpc3RcIj09PWYpe2M9ITA7Y29uc3QgdD1kLmFkZGVkTm9kZXM7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2NvbnN0IHI9dFtuXSxvPWl5KHIpLGk9ci5wYXJlbnROb2RlO2lmKG51bGwhPWkmJnIhPT1sJiZudWxsPT09byYmKFwiQlJcIiE9PXIubm9kZU5hbWV8fCFEZyhyLGksZSkpKXtpZihVcCl7Y29uc3QgZT1yLmlubmVyVGV4dHx8ci5ub2RlVmFsdWU7ZSYmKHUrPWUpfWkucmVtb3ZlQ2hpbGQocil9fWNvbnN0IG49ZC5yZW1vdmVkTm9kZXMscj1uLmxlbmd0aDtpZihyPjApe2xldCB0PTA7Zm9yKGxldCBvPTA7bzxyO28rKyl7Y29uc3Qgcj1uW29dOyhcIkJSXCI9PT1yLm5vZGVOYW1lJiZEZyhyLG0sZSl8fGw9PT1yKSYmKG0uYXBwZW5kQ2hpbGQociksdCsrKX1yIT09dCYmKG09PT1zJiYoaD11eShhKSksaS5zZXQobSxoKSl9fX1pZihpLnNpemU+MClmb3IoY29uc3RbdCxuXW9mIGkpaWYoa3gobikpe2NvbnN0IHI9bi5nZXRDaGlsZHJlbktleXMoKTtsZXQgbz10LmZpcnN0Q2hpbGQ7Zm9yKGxldCBuPTA7bjxyLmxlbmd0aDtuKyspe2NvbnN0IGk9cltuXSxzPWUuZ2V0RWxlbWVudEJ5S2V5KGkpO251bGwhPT1zJiYobnVsbD09bz8odC5hcHBlbmRDaGlsZChzKSxvPXMpOm8hPT1zJiZ0LnJlcGxhY2VDaGlsZChzLG8pLG89by5uZXh0U2libGluZyl9fWVsc2Uga2IobikmJm4ubWFya0RpcnR5KCk7Y29uc3QgZD1uLnRha2VSZWNvcmRzKCk7aWYoZC5sZW5ndGg+MCl7Zm9yKGxldCB0PTA7dDxkLmxlbmd0aDt0Kyspe2NvbnN0IG49ZFt0XSxyPW4uYWRkZWROb2RlcyxvPW4udGFyZ2V0O2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7dCsrKXtjb25zdCBuPXJbdF0saT1uLnBhcmVudE5vZGU7bnVsbD09aXx8XCJCUlwiIT09bi5ub2RlTmFtZXx8RGcobixvLGUpfHxpLnJlbW92ZUNoaWxkKG4pfX1uLnRha2VSZWNvcmRzKCl9bnVsbCE9PW8mJihjJiYoby5kaXJ0eT0hMCxkeShvKSksVXAmJk15KGUpJiZvLmluc2VydFJhd1RleHQodSkpfSkpfWZpbmFsbHl7VGc9ITF9fWZ1bmN0aW9uIExnKGUpe2NvbnN0IHQ9ZS5fb2JzZXJ2ZXI7bnVsbCE9PXQmJklnKGUsdC50YWtlUmVjb3JkcygpLHQpfWZ1bmN0aW9uIEZnKGUpeyFmdW5jdGlvbihlKXswPT09TWcmJkx5KGUpLmFkZEV2ZW50TGlzdGVuZXIoXCJ0ZXh0SW5wdXRcIixSZywhMCl9KGUpLGUuX29ic2VydmVyPW5ldyBNdXRhdGlvbk9ic2VydmVyKCgodCxuKT0+e0lnKGUsdCxuKX0pKX1mdW5jdGlvbiB6ZyhlLHQpe2NvbnN0IG49ZS5fX21vZGUscj1lLl9fZm9ybWF0LG89ZS5fX3N0eWxlLGk9dC5fX21vZGUscz10Ll9fZm9ybWF0LGE9dC5fX3N0eWxlO3JldHVybiEobnVsbCE9PW4mJm4hPT1pfHxudWxsIT09ciYmciE9PXN8fG51bGwhPT1vJiZvIT09YSl9ZnVuY3Rpb24gQmcoZSx0KXtjb25zdCBuPWUubWVyZ2VXaXRoU2libGluZyh0KSxyPXV4KCkuX25vcm1hbGl6ZWROb2RlcztyZXR1cm4gci5hZGQoZS5fX2tleSksci5hZGQodC5fX2tleSksbn1mdW5jdGlvbiBXZyhlKXtsZXQgdCxuLHI9ZTtpZihcIlwiIT09ci5fX3RleHR8fCFyLmlzU2ltcGxlVGV4dCgpfHxyLmlzVW5tZXJnZWFibGUoKSl7Zm9yKDtudWxsIT09KHQ9ci5nZXRQcmV2aW91c1NpYmxpbmcoKSkmJmtiKHQpJiZ0LmlzU2ltcGxlVGV4dCgpJiYhdC5pc1VubWVyZ2VhYmxlKCk7KXtpZihcIlwiIT09dC5fX3RleHQpe2lmKHpnKHQscikpe3I9QmcodCxyKTticmVha31icmVha310LnJlbW92ZSgpfWZvcig7bnVsbCE9PShuPXIuZ2V0TmV4dFNpYmxpbmcoKSkmJmtiKG4pJiZuLmlzU2ltcGxlVGV4dCgpJiYhbi5pc1VubWVyZ2VhYmxlKCk7KXtpZihcIlwiIT09bi5fX3RleHQpe2lmKHpnKHIsbikpe3I9QmcocixuKTticmVha31icmVha31uLnJlbW92ZSgpfX1lbHNlIHIucmVtb3ZlKCl9ZnVuY3Rpb24gVmcoZSl7Zm9yKDtcImVsZW1lbnRcIj09PWUudHlwZTspe2NvbnN0IHQ9ZS5nZXROb2RlKCksbj1lLm9mZnNldDtsZXQgcixvO2lmKG49PT10LmdldENoaWxkcmVuU2l6ZSgpPyhyPXQuZ2V0Q2hpbGRBdEluZGV4KG4tMSksbz0hMCk6KHI9dC5nZXRDaGlsZEF0SW5kZXgobiksbz0hMSksa2Iocikpe2Uuc2V0KHIuX19rZXksbz9yLmdldFRleHRDb250ZW50U2l6ZSgpOjAsXCJ0ZXh0XCIpO2JyZWFrfWlmKCFreChyKSlicmVhaztlLnNldChyLl9fa2V5LG8/ci5nZXRDaGlsZHJlblNpemUoKTowLFwiZWxlbWVudFwiKX19bGV0IFVnPTE7Y29uc3QgJGc9XCJmdW5jdGlvblwiPT10eXBlb2YgcXVldWVNaWNyb3Rhc2s/cXVldWVNaWNyb3Rhc2s6ZT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oZSl9O2Z1bmN0aW9uIFlnKGUpe2NvbnN0IHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZihudWxsPT09dClyZXR1cm4hMTtjb25zdCBuPXQubm9kZU5hbWU7cmV0dXJuIFB4KHN5KGUpKSYmKFwiSU5QVVRcIj09PW58fFwiVEVYVEFSRUFcIj09PW58fFwidHJ1ZVwiPT09dC5jb250ZW50RWRpdGFibGUmJm51bGw9PUdnKHQpKX1mdW5jdGlvbiBIZyhlLHQsbil7Y29uc3Qgcj1lLmdldFJvb3RFbGVtZW50KCk7dHJ5e3JldHVybiBudWxsIT09ciYmci5jb250YWlucyh0KSYmci5jb250YWlucyhuKSYmbnVsbCE9PXQmJiFZZyh0KSYmcWcodCk9PT1lfWNhdGNoKGUpe3JldHVybiExfX1mdW5jdGlvbiBLZyhlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEJ4fWZ1bmN0aW9uIHFnKGUpe2xldCB0PWU7Zm9yKDtudWxsIT10Oyl7Y29uc3QgZT1HZyh0KTtpZihLZyhlKSlyZXR1cm4gZTt0PUF5KHQpfXJldHVybiBudWxsfWZ1bmN0aW9uIEdnKGUpe3JldHVybiBlP2UuX19sZXhpY2FsRWRpdG9yOm51bGx9ZnVuY3Rpb24gWGcoZSl7cmV0dXJuIGUuaXNUb2tlbigpfHxlLmlzU2VnbWVudGVkKCl9ZnVuY3Rpb24gWmcoZSl7cmV0dXJuIGUubm9kZVR5cGU9PT1KcH1mdW5jdGlvbiBKZyhlKXtsZXQgdD1lO2Zvcig7bnVsbCE9dDspe2lmKFpnKHQpKXJldHVybiB0O3Q9dC5maXJzdENoaWxkfXJldHVybiBudWxsfWZ1bmN0aW9uIFFnKGUsdCxuKXtjb25zdCByPXhnW3RdO2lmKG51bGwhPT1uJiYoZSZyKT09KG4mcikpcmV0dXJuIGU7bGV0IG89ZV5yO3JldHVyblwic3Vic2NyaXB0XCI9PT10P28mPX54Zy5zdXBlcnNjcmlwdDpcInN1cGVyc2NyaXB0XCI9PT10JiYobyY9fnhnLnN1YnNjcmlwdCksb31mdW5jdGlvbiBleShlKXtjb25zdCB0PWUuZ2V0UGFyZW50KCk7aWYobnVsbCE9PXQpe2NvbnN0IG49ZS5nZXRXcml0YWJsZSgpLHI9dC5nZXRXcml0YWJsZSgpLG89ZS5nZXRQcmV2aW91c1NpYmxpbmcoKSxpPWUuZ2V0TmV4dFNpYmxpbmcoKTtpZihudWxsPT09bylpZihudWxsIT09aSl7Y29uc3QgZT1pLmdldFdyaXRhYmxlKCk7ci5fX2ZpcnN0PWkuX19rZXksZS5fX3ByZXY9bnVsbH1lbHNlIHIuX19maXJzdD1udWxsO2Vsc2V7Y29uc3QgZT1vLmdldFdyaXRhYmxlKCk7aWYobnVsbCE9PWkpe2NvbnN0IHQ9aS5nZXRXcml0YWJsZSgpO3QuX19wcmV2PWUuX19rZXksZS5fX25leHQ9dC5fX2tleX1lbHNlIGUuX19uZXh0PW51bGw7bi5fX3ByZXY9bnVsbH1pZihudWxsPT09aSlpZihudWxsIT09byl7Y29uc3QgZT1vLmdldFdyaXRhYmxlKCk7ci5fX2xhc3Q9by5fX2tleSxlLl9fbmV4dD1udWxsfWVsc2Ugci5fX2xhc3Q9bnVsbDtlbHNle2NvbnN0IGU9aS5nZXRXcml0YWJsZSgpO2lmKG51bGwhPT1vKXtjb25zdCB0PW8uZ2V0V3JpdGFibGUoKTt0Ll9fbmV4dD1lLl9fa2V5LGUuX19wcmV2PXQuX19rZXl9ZWxzZSBlLl9fcHJldj1udWxsO24uX19uZXh0PW51bGx9ci5fX3NpemUtLSxuLl9fcGFyZW50PW51bGx9fWZ1bmN0aW9uIHR5KGUpe2x4KCk7Y29uc3QgdD1lLmdldExhdGVzdCgpLG49dC5fX3BhcmVudCxyPWN4KCksbz11eCgpLGk9ci5fbm9kZU1hcCxzPW8uX2RpcnR5RWxlbWVudHM7bnVsbCE9PW4mJmZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1lO2Zvcig7bnVsbCE9PXI7KXtpZihuLmhhcyhyKSlyZXR1cm47Y29uc3QgZT10LmdldChyKTtpZih2b2lkIDA9PT1lKWJyZWFrO24uc2V0KHIsITEpLHI9ZS5fX3BhcmVudH19KG4saSxzKTtjb25zdCBhPXQuX19rZXk7by5fZGlydHlUeXBlPTEsa3goZSk/cy5zZXQoYSwhMCk6by5fZGlydHlMZWF2ZXMuYWRkKGEpfWZ1bmN0aW9uIG55KGUpe2F4KCk7Y29uc3QgdD11eCgpLG49dC5fY29tcG9zaXRpb25LZXk7aWYoZSE9PW4pe2lmKHQuX2NvbXBvc2l0aW9uS2V5PWUsbnVsbCE9PW4pe2NvbnN0IGU9b3kobik7bnVsbCE9PWUmJmUuZ2V0V3JpdGFibGUoKX1pZihudWxsIT09ZSl7Y29uc3QgdD1veShlKTtudWxsIT09dCYmdC5nZXRXcml0YWJsZSgpfX19ZnVuY3Rpb24gcnkoKXtyZXR1cm4gc3goKT9udWxsOnV4KCkuX2NvbXBvc2l0aW9uS2V5fWZ1bmN0aW9uIG95KGUsdCl7Y29uc3Qgbj0odHx8Y3goKSkuX25vZGVNYXAuZ2V0KGUpO3JldHVybiB2b2lkIDA9PT1uP251bGw6bn1mdW5jdGlvbiBpeShlLHQpe2NvbnN0IG49ZVtgX19sZXhpY2FsS2V5XyR7dXgoKS5fa2V5fWBdO3JldHVybiB2b2lkIDAhPT1uP295KG4sdCk6bnVsbH1mdW5jdGlvbiBzeShlLHQpe2xldCBuPWU7Zm9yKDtudWxsIT1uOyl7Y29uc3QgZT1peShuLHQpO2lmKG51bGwhPT1lKXJldHVybiBlO249QXkobil9cmV0dXJuIG51bGx9ZnVuY3Rpb24gYXkoZSl7Y29uc3QgdD1lLl9kZWNvcmF0b3JzLG49T2JqZWN0LmFzc2lnbih7fSx0KTtyZXR1cm4gZS5fcGVuZGluZ0RlY29yYXRvcnM9bixufWZ1bmN0aW9uIGx5KGUpe3JldHVybiBlLnJlYWQoKCgpPT5jeSgpLmdldFRleHRDb250ZW50KCkpKX1mdW5jdGlvbiBjeSgpe3JldHVybiB1eShjeCgpKX1mdW5jdGlvbiB1eShlKXtyZXR1cm4gZS5fbm9kZU1hcC5nZXQoXCJyb290XCIpfWZ1bmN0aW9uIGR5KGUpe2F4KCk7Y29uc3QgdD1jeCgpO251bGwhPT1lJiYoZS5kaXJ0eT0hMCxlLnNldENhY2hlZE5vZGVzKG51bGwpKSx0Ll9zZWxlY3Rpb249ZX1mdW5jdGlvbiBmeShlKXtjb25zdCB0PXV4KCksbj1mdW5jdGlvbihlLHQpe2xldCBuPWU7Zm9yKDtudWxsIT1uOyl7Y29uc3QgZT1uW2BfX2xleGljYWxLZXlfJHt0Ll9rZXl9YF07aWYodm9pZCAwIT09ZSlyZXR1cm4gZTtuPUF5KG4pfXJldHVybiBudWxsfShlLHQpO3JldHVybiBudWxsPT09bj9lPT09dC5nZXRSb290RWxlbWVudCgpP295KFwicm9vdFwiKTpudWxsOm95KG4pfWZ1bmN0aW9uIG15KGUsdCl7cmV0dXJuIHQ/ZS5nZXRUZXh0Q29udGVudFNpemUoKTowfWZ1bmN0aW9uIGh5KGUpe3JldHVybi9bXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZdL2cudGVzdChlKX1mdW5jdGlvbiBweShlKXtjb25zdCB0PVtdO2xldCBuPWU7Zm9yKDtudWxsIT09bjspdC5wdXNoKG4pLG49bi5fcGFyZW50RWRpdG9yO3JldHVybiB0fWZ1bmN0aW9uIGd5KCl7cmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnJlcGxhY2UoL1teYS16XSsvZyxcIlwiKS5zdWJzdHIoMCw1KX1mdW5jdGlvbiB5eShlKXtyZXR1cm4gZS5ub2RlVHlwZT09PUpwP2Uubm9kZVZhbHVlOm51bGx9ZnVuY3Rpb24gdnkoZSx0LG4pe2NvbnN0IHI9VnkodC5fd2luZG93KTtpZihudWxsPT09cilyZXR1cm47Y29uc3Qgbz1yLmFuY2hvck5vZGU7bGV0e2FuY2hvck9mZnNldDppLGZvY3VzT2Zmc2V0OnN9PXI7aWYobnVsbCE9PW8pe2xldCB0PXl5KG8pO2NvbnN0IHI9c3kobyk7aWYobnVsbCE9PXQmJmtiKHIpKXtpZih0PT09bWcmJm4pe2NvbnN0IGU9bi5sZW5ndGg7dD1uLGk9ZSxzPWV9bnVsbCE9PXQmJmJ5KHIsdCxpLHMsZSl9fX1mdW5jdGlvbiBieShlLHQsbixyLG8pe2xldCBpPWU7aWYoaS5pc0F0dGFjaGVkKCkmJihvfHwhaS5pc0RpcnR5KCkpKXtjb25zdCBzPWkuaXNDb21wb3NpbmcoKTtsZXQgYT10OyhzfHxvKSYmdFt0Lmxlbmd0aC0xXT09PW1nJiYoYT10LnNsaWNlKDAsLTEpKTtjb25zdCBsPWkuZ2V0VGV4dENvbnRlbnQoKTtpZihvfHxhIT09bCl7aWYoXCJcIj09PWEpe2lmKG55KG51bGwpLFlwfHxIcHx8WHApaS5yZW1vdmUoKTtlbHNle2NvbnN0IGU9dXgoKTtzZXRUaW1lb3V0KCgoKT0+e2UudXBkYXRlKCgoKT0+e2kuaXNBdHRhY2hlZCgpJiZpLnJlbW92ZSgpfSkpfSksMjApfXJldHVybn1jb25zdCB0PWkuZ2V0UGFyZW50KCksbz1LYigpLGw9aS5nZXRUZXh0Q29udGVudFNpemUoKSxjPXJ5KCksdT1pLmdldEtleSgpO2lmKGkuaXNUb2tlbigpfHxudWxsIT09YyYmdT09PWMmJiFzfHxEYihvKSYmKG51bGwhPT10JiYhdC5jYW5JbnNlcnRUZXh0QmVmb3JlKCkmJjA9PT1vLmFuY2hvci5vZmZzZXR8fG8uYW5jaG9yLmtleT09PWUuX19rZXkmJjA9PT1vLmFuY2hvci5vZmZzZXQmJiFpLmNhbkluc2VydFRleHRCZWZvcmUoKSYmIXN8fG8uZm9jdXMua2V5PT09ZS5fX2tleSYmby5mb2N1cy5vZmZzZXQ9PT1sJiYhaS5jYW5JbnNlcnRUZXh0QWZ0ZXIoKSYmIXMpKXJldHVybiB2b2lkIGkubWFya0RpcnR5KCk7Y29uc3QgZD1IYigpO2lmKCFEYihkKXx8bnVsbD09PW58fG51bGw9PT1yKXJldHVybiB2b2lkIGkuc2V0VGV4dENvbnRlbnQoYSk7aWYoZC5zZXRUZXh0Tm9kZVJhbmdlKGksbixpLHIpLGkuaXNTZWdtZW50ZWQoKSl7Y29uc3QgZT1TYihpLmdldFRleHRDb250ZW50KCkpO2kucmVwbGFjZShlKSxpPWV9aS5zZXRUZXh0Q29udGVudChhKX19fWZ1bmN0aW9uIHh5KGUpe3JldHVyblwiQXJyb3dMZWZ0XCI9PT1lfWZ1bmN0aW9uIHd5KGUpe3JldHVyblwiQXJyb3dSaWdodFwiPT09ZX1mdW5jdGlvbiBTeShlLHQpe3JldHVybiBWcD9lOnR9ZnVuY3Rpb24ga3koZSl7cmV0dXJuXCJFbnRlclwiPT09ZX1mdW5jdGlvbiBFeShlKXtyZXR1cm5cIkJhY2tzcGFjZVwiPT09ZX1mdW5jdGlvbiBDeShlKXtyZXR1cm5cIkRlbGV0ZVwiPT09ZX1mdW5jdGlvbiBfeShlLHQsbil7cmV0dXJuXCJhXCI9PT1lLnRvTG93ZXJDYXNlKCkmJlN5KHQsbil9ZnVuY3Rpb24gUHkoZSx0KXt2b2lkIDA9PT1lLl9fbGV4aWNhbENsYXNzTmFtZUNhY2hlJiYoZS5fX2xleGljYWxDbGFzc05hbWVDYWNoZT17fSk7Y29uc3Qgbj1lLl9fbGV4aWNhbENsYXNzTmFtZUNhY2hlLHI9blt0XTtpZih2b2lkIDAhPT1yKXJldHVybiByO2NvbnN0IG89ZVt0XTtpZihcInN0cmluZ1wiPT10eXBlb2Ygbyl7Y29uc3QgZT1PZyhvKTtyZXR1cm4gblt0XT1lLGV9cmV0dXJuIG99ZnVuY3Rpb24gT3koZSx0LG4scixvKXtpZigwPT09bi5zaXplKXJldHVybjtjb25zdCBpPXIuX190eXBlLHM9ci5fX2tleSxhPXQuZ2V0KGkpO3ZvaWQgMD09PWEmJlBnKDMzLGkpO2NvbnN0IGw9YS5rbGFzcztsZXQgYz1lLmdldChsKTt2b2lkIDA9PT1jJiYoYz1uZXcgTWFwLGUuc2V0KGwsYykpO2NvbnN0IHU9Yy5nZXQocyksZD1cImRlc3Ryb3llZFwiPT09dSYmXCJjcmVhdGVkXCI9PT1vOyh2b2lkIDA9PT11fHxkKSYmYy5zZXQocyxkP1widXBkYXRlZFwiOm8pfWZ1bmN0aW9uIE55KGUsdCxuKXtjb25zdCByPWUuZ2V0UGFyZW50KCk7bGV0IG89bixpPWU7cmV0dXJuIG51bGwhPT1yJiYodCYmMD09PW4/KG89aS5nZXRJbmRleFdpdGhpblBhcmVudCgpLGk9cik6dHx8biE9PWkuZ2V0Q2hpbGRyZW5TaXplKCl8fChvPWkuZ2V0SW5kZXhXaXRoaW5QYXJlbnQoKSsxLGk9cikpLGkuZ2V0Q2hpbGRBdEluZGV4KHQ/by0xOm8pfWZ1bmN0aW9uIFR5KGUsdCl7Y29uc3Qgbj1lLm9mZnNldDtpZihcImVsZW1lbnRcIj09PWUudHlwZSlyZXR1cm4gTnkoZS5nZXROb2RlKCksdCxuKTt7Y29uc3Qgcj1lLmdldE5vZGUoKTtpZih0JiYwPT09bnx8IXQmJm49PT1yLmdldFRleHRDb250ZW50U2l6ZSgpKXtjb25zdCBlPXQ/ci5nZXRQcmV2aW91c1NpYmxpbmcoKTpyLmdldE5leHRTaWJsaW5nKCk7cmV0dXJuIG51bGw9PT1lP055KHIuZ2V0UGFyZW50T3JUaHJvdygpLHQsci5nZXRJbmRleFdpdGhpblBhcmVudCgpKyh0PzA6MSkpOmV9fXJldHVybiBudWxsfWZ1bmN0aW9uIE15KGUpe2NvbnN0IHQ9THkoZSkuZXZlbnQsbj10JiZ0LmlucHV0VHlwZTtyZXR1cm5cImluc2VydEZyb21QYXN0ZVwiPT09bnx8XCJpbnNlcnRGcm9tUGFzdGVBc1F1b3RhdGlvblwiPT09bn1mdW5jdGlvbiBSeShlLHQsbil7cmV0dXJuIHZ4KGUsdCxuKX1mdW5jdGlvbiBEeShlKXtyZXR1cm4hTngoZSkmJiFlLmlzTGFzdENoaWxkKCkmJiFlLmlzSW5saW5lKCl9ZnVuY3Rpb24gankoZSx0KXtjb25zdCBuPWUuX2tleVRvRE9NTWFwLmdldCh0KTtyZXR1cm4gdm9pZCAwPT09biYmUGcoNzUsdCksbn1mdW5jdGlvbiBBeShlKXtjb25zdCB0PWUuYXNzaWduZWRTbG90fHxlLnBhcmVudEVsZW1lbnQ7cmV0dXJuIG51bGwhPT10JiYxMT09PXQubm9kZVR5cGU/dC5ob3N0OnR9ZnVuY3Rpb24gSXkoZSx0KXtsZXQgbj1lLmdldFBhcmVudCgpO2Zvcig7bnVsbCE9PW47KXtpZihuLmlzKHQpKXJldHVybiEwO249bi5nZXRQYXJlbnQoKX1yZXR1cm4hMX1mdW5jdGlvbiBMeShlKXtjb25zdCB0PWUuX3dpbmRvdztyZXR1cm4gbnVsbD09PXQmJlBnKDc4KSx0fWZ1bmN0aW9uIEZ5KGUpe3JldHVybiBOeChlKXx8a3goZSkmJmUuaXNTaGFkb3dSb290KCl9ZnVuY3Rpb24genkoZSl7Y29uc3QgdD11eCgpLG49ZS5jb25zdHJ1Y3Rvci5nZXRUeXBlKCkscj10Ll9ub2Rlcy5nZXQobik7dm9pZCAwPT09ciYmUGcoOTcpO2NvbnN0IG89ci5yZXBsYWNlO2lmKG51bGwhPT1vKXtjb25zdCB0PW8oZSk7cmV0dXJuIHQgaW5zdGFuY2VvZiBlLmNvbnN0cnVjdG9yfHxQZyg5OCksdH1yZXR1cm4gZX1mdW5jdGlvbiBCeShlLHQpeyFOeChlLmdldFBhcmVudCgpKXx8a3godCl8fFB4KHQpfHxQZyg5OSl9ZnVuY3Rpb24gV3koZSl7cmV0dXJuKFB4KGUpfHxreChlKSYmIWUuY2FuQmVFbXB0eSgpKSYmIWUuaXNJbmxpbmUoKX1mdW5jdGlvbiBfbihlLHQsbil7bi5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcImNhcmV0LWNvbG9yXCIpLHQuX2Jsb2NrQ3Vyc29yRWxlbWVudD1udWxsO2NvbnN0IHI9ZS5wYXJlbnRFbGVtZW50O251bGwhPT1yJiZyLnJlbW92ZUNoaWxkKGUpfWZ1bmN0aW9uIFZ5KGUpe3JldHVybiBCcD8oZXx8d2luZG93KS5nZXRTZWxlY3Rpb24oKTpudWxsfWZ1bmN0aW9uIFV5KGUpe3JldHVybiAxPT09ZS5ub2RlVHlwZX1mdW5jdGlvbiAkeShlKXtjb25zdCB0PW5ldyBSZWdFeHAoL14oYXxhYmJyfGFjcm9ueW18YnxjaXRlfGNvZGV8ZGVsfGVtfGl8aW5zfGtiZHxsYWJlbHxvdXRwdXR8cXxydWJ5fHN8c2FtcHxzcGFufHN0cm9uZ3xzdWJ8c3VwfHRpbWV8dXx0dHx2YXJ8I3RleHQpJC8sXCJpXCIpO3JldHVybiBudWxsIT09ZS5ub2RlTmFtZS5tYXRjaCh0KX1mdW5jdGlvbiBZeShlKXtjb25zdCB0PW5ldyBSZWdFeHAoL14oYWRkcmVzc3xhcnRpY2xlfGFzaWRlfGJsb2NrcXVvdGV8Y2FudmFzfGRkfGRpdnxkbHxkdHxmaWVsZHNldHxmaWdjYXB0aW9ufGZpZ3VyZXxmb290ZXJ8Zm9ybXxoMXxoMnxoM3xoNHxoNXxoNnxoZWFkZXJ8aHJ8bGl8bWFpbnxuYXZ8bm9zY3JpcHR8b2x8cHxwcmV8c2VjdGlvbnx0YWJsZXx0ZHx0Zm9vdHx1bHx2aWRlbykkLyxcImlcIik7cmV0dXJuIG51bGwhPT1lLm5vZGVOYW1lLm1hdGNoKHQpfWZ1bmN0aW9uIEh5KGUpe2lmKE54KGUpfHxQeChlKSYmIWUuaXNJbmxpbmUoKSlyZXR1cm4hMDtpZigha3goZSl8fEZ5KGUpKXJldHVybiExO2NvbnN0IHQ9ZS5nZXRGaXJzdENoaWxkKCksbj1udWxsPT09dHx8aWIodCl8fGtiKHQpfHx0LmlzSW5saW5lKCk7cmV0dXJuIWUuaXNJbmxpbmUoKSYmITEhPT1lLmNhbkJlRW1wdHkoKSYmbn1mdW5jdGlvbiBLeShlLHQpe2xldCBuPWU7Zm9yKDtudWxsIT09biYmbnVsbCE9PW4uZ2V0UGFyZW50KCkmJiF0KG4pOyluPW4uZ2V0UGFyZW50T3JUaHJvdygpO3JldHVybiB0KG4pP246bnVsbH1jb25zdCBxeT1uZXcgV2Vha01hcCxHeT1uZXcgTWFwO2Z1bmN0aW9uIFh5KGUpe2NvbnN0IHQ9ZS5jb25zdHJ1Y3Rvci5jbG9uZShlKTtyZXR1cm4gdC5hZnRlckNsb25lRnJvbShlKSx0fWZ1bmN0aW9uIFp5KGUsdCxuLHIsbyxpKXtsZXQgcz1lLmdldEZpcnN0Q2hpbGQoKTtmb3IoO251bGwhPT1zOyl7Y29uc3QgZT1zLl9fa2V5O3MuX19wYXJlbnQ9PT10JiYoa3gocykmJlp5KHMsZSxuLHIsbyxpKSxuLmhhcyhlKXx8aS5kZWxldGUoZSksby5wdXNoKGUpKSxzPXMuZ2V0TmV4dFNpYmxpbmcoKX19bGV0IEp5LFF5LGV2LHR2LG52LHJ2LG92LGl2LHN2LGF2LGx2PVwiXCIsY3Y9XCJcIix1dj1udWxsLGR2PVwiXCIsZnY9XCJcIixtdj0hMSxodj0hMSxwdj1udWxsO2Z1bmN0aW9uIGd2KGUsdCl7Y29uc3Qgbj1vdi5nZXQoZSk7aWYobnVsbCE9PXQpe2NvbnN0IG49TXYoZSk7bi5wYXJlbnROb2RlPT09dCYmdC5yZW1vdmVDaGlsZChuKX1pZihpdi5oYXMoZSl8fFF5Ll9rZXlUb0RPTU1hcC5kZWxldGUoZSksa3gobikpe2NvbnN0IGU9UHYobixvdik7eXYoZSwwLGUubGVuZ3RoLTEsbnVsbCl9dm9pZCAwIT09biYmT3koYXYsZXYsdHYsbixcImRlc3Ryb3llZFwiKX1mdW5jdGlvbiB5dihlLHQsbixyKXtsZXQgbz10O2Zvcig7bzw9bjsrK28pe2NvbnN0IHQ9ZVtvXTt2b2lkIDAhPT10JiZndih0LHIpfX1mdW5jdGlvbiB2dihlLHQpe2Uuc2V0UHJvcGVydHkoXCJ0ZXh0LWFsaWduXCIsdCl9Y29uc3QgYnY9XCI0MHB4XCI7ZnVuY3Rpb24geHYoZSx0KXtjb25zdCBuPUp5LnRoZW1lLmluZGVudDtpZihcInN0cmluZ1wiPT10eXBlb2Ygbil7Y29uc3Qgcj1lLmNsYXNzTGlzdC5jb250YWlucyhuKTt0PjAmJiFyP2UuY2xhc3NMaXN0LmFkZChuKTp0PDEmJnImJmUuY2xhc3NMaXN0LnJlbW92ZShuKX1jb25zdCByPWdldENvbXB1dGVkU3R5bGUoZSkuZ2V0UHJvcGVydHlWYWx1ZShcIi0tbGV4aWNhbC1pbmRlbnQtYmFzZS12YWx1ZVwiKXx8YnY7ZS5zdHlsZS5zZXRQcm9wZXJ0eShcInBhZGRpbmctaW5saW5lLXN0YXJ0XCIsMD09PXQ/XCJcIjpgY2FsYygke3R9ICogJHtyfSlgKX1mdW5jdGlvbiB3dihlLHQpe2NvbnN0IG49ZS5zdHlsZTswPT09dD92dihuLFwiXCIpOnQ9PT1hZz92dihuLFwibGVmdFwiKTp0PT09bGc/dnYobixcImNlbnRlclwiKTp0PT09Y2c/dnYobixcInJpZ2h0XCIpOnQ9PT11Zz92dihuLFwianVzdGlmeVwiKTp0PT09ZGc/dnYobixcInN0YXJ0XCIpOnQ9PT1mZyYmdnYobixcImVuZFwiKX1mdW5jdGlvbiBTdihlLHQsbil7Y29uc3Qgcj1pdi5nZXQoZSk7dm9pZCAwPT09ciYmUGcoNjApO2NvbnN0IG89ci5jcmVhdGVET00oSnksUXkpO2lmKGZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPW4uX2tleVRvRE9NTWFwO3RbXCJfX2xleGljYWxLZXlfXCIrbi5fa2V5XT1lLHIuc2V0KGUsdCl9KGUsbyxReSksa2Iocik/by5zZXRBdHRyaWJ1dGUoXCJkYXRhLWxleGljYWwtdGV4dFwiLFwidHJ1ZVwiKTpQeChyKSYmby5zZXRBdHRyaWJ1dGUoXCJkYXRhLWxleGljYWwtZGVjb3JhdG9yXCIsXCJ0cnVlXCIpLGt4KHIpKXtjb25zdCBlPXIuX19pbmRlbnQsdD1yLl9fc2l6ZTtpZigwIT09ZSYmeHYobyxlKSwwIT09dCl7Y29uc3QgZT10LTE7IWZ1bmN0aW9uKGUsdCxuLHIpe2NvbnN0IG89Y3Y7Y3Y9XCJcIixrdihlLG4sMCx0LHIsbnVsbCksX3YobixyKSxjdj1vfShQdihyLGl2KSxlLHIsbyl9Y29uc3Qgbj1yLl9fZm9ybWF0OzAhPT1uJiZ3dihvLG4pLHIuaXNJbmxpbmUoKXx8Q3YobnVsbCxyLG8pLER5KHIpJiYobHYrPWhnLGZ2Kz1oZyl9ZWxzZXtjb25zdCB0PXIuZ2V0VGV4dENvbnRlbnQoKTtpZihQeChyKSl7Y29uc3QgdD1yLmRlY29yYXRlKFF5LEp5KTtudWxsIT09dCYmTnYoZSx0KSxvLmNvbnRlbnRFZGl0YWJsZT1cImZhbHNlXCJ9ZWxzZSBrYihyKSYmKHIuaXNEaXJlY3Rpb25sZXNzKCl8fChjdis9dCkpO2x2Kz10LGZ2Kz10fWlmKG51bGwhPT10KWlmKG51bGwhPW4pdC5pbnNlcnRCZWZvcmUobyxuKTtlbHNle2NvbnN0IGU9dC5fX2xleGljYWxMaW5lQnJlYWs7bnVsbCE9ZT90Lmluc2VydEJlZm9yZShvLGUpOnQuYXBwZW5kQ2hpbGQobyl9cmV0dXJuIE95KGF2LGV2LHR2LHIsXCJjcmVhdGVkXCIpLG99ZnVuY3Rpb24ga3YoZSx0LG4scixvLGkpe2NvbnN0IHM9bHY7bHY9XCJcIjtsZXQgYT1uO2Zvcig7YTw9cjsrK2Epe1N2KGVbYV0sbyxpKTtjb25zdCB0PWl2LmdldChlW2FdKTtudWxsIT09dCYma2IodCkmJihudWxsPT09dXYmJih1dj10LmdldEZvcm1hdCgpKSxcIlwiPT09ZHYmJihkdj10LmdldFN0eWxlKCkpKX1EeSh0KSYmKGx2Kz1oZyksby5fX2xleGljYWxUZXh0Q29udGVudD1sdixsdj1zK2x2fWZ1bmN0aW9uIEV2KGUsdCl7Y29uc3Qgbj10LmdldChlKTtyZXR1cm4gaWIobil8fFB4KG4pJiZuLmlzSW5saW5lKCl9ZnVuY3Rpb24gQ3YoZSx0LG4pe2NvbnN0IHI9bnVsbCE9PWUmJigwPT09ZS5fX3NpemV8fEV2KGUuX19sYXN0LG92KSksbz0wPT09dC5fX3NpemV8fEV2KHQuX19sYXN0LGl2KTtpZihyKXtpZighbyl7Y29uc3QgZT1uLl9fbGV4aWNhbExpbmVCcmVhaztpZihudWxsIT1lKXRyeXtuLnJlbW92ZUNoaWxkKGUpfWNhdGNoKHQpe2lmKFwib2JqZWN0XCI9PXR5cGVvZiB0JiZudWxsIT10KXtjb25zdCByPWAke3QudG9TdHJpbmcoKX0gUGFyZW50OiAke24udGFnTmFtZX0sIGNoaWxkOiAke2UudGFnTmFtZX0uYDt0aHJvdyBuZXcgRXJyb3Iocil9dGhyb3cgdH1uLl9fbGV4aWNhbExpbmVCcmVhaz1udWxsfX1lbHNlIGlmKG8pe2NvbnN0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImJyXCIpO24uX19sZXhpY2FsTGluZUJyZWFrPWUsbi5hcHBlbmRDaGlsZChlKX19ZnVuY3Rpb24gX3YoZSx0KXtjb25zdCBuPXQuX19sZXhpY2FsRGlyVGV4dENvbnRlbnQscj10Ll9fbGV4aWNhbERpcjtpZihuIT09Y3Z8fHIhPT1wdil7Y29uc3Qgbj1cIlwiPT09Y3YsaT1uP3B2OihvPWN2LHZnLnRlc3Qobyk/XCJydGxcIjpiZy50ZXN0KG8pP1wibHRyXCI6bnVsbCk7aWYoaSE9PXIpe2NvbnN0IG89dC5jbGFzc0xpc3Qscz1KeS50aGVtZTtsZXQgYT1udWxsIT09cj9zW3JdOnZvaWQgMCxsPW51bGwhPT1pP3NbaV06dm9pZCAwO2lmKHZvaWQgMCE9PWEpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBhKXtjb25zdCBlPU9nKGEpO2E9c1tyXT1lfW8ucmVtb3ZlKC4uLmEpfWlmKG51bGw9PT1pfHxuJiZcImx0clwiPT09aSl0LnJlbW92ZUF0dHJpYnV0ZShcImRpclwiKTtlbHNle2lmKHZvaWQgMCE9PWwpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBsKXtjb25zdCBlPU9nKGwpO2w9c1tpXT1lfXZvaWQgMCE9PWwmJm8uYWRkKC4uLmwpfXQuZGlyPWl9aHZ8fChlLmdldFdyaXRhYmxlKCkuX19kaXI9aSl9cHY9aSx0Ll9fbGV4aWNhbERpclRleHRDb250ZW50PWN2LHQuX19sZXhpY2FsRGlyPWl9dmFyIG99ZnVuY3Rpb24gUHYoZSx0KXtjb25zdCBuPVtdO2xldCByPWUuX19maXJzdDtmb3IoO251bGwhPT1yOyl7Y29uc3QgZT10LmdldChyKTt2b2lkIDA9PT1lJiZQZygxMDEpLG4ucHVzaChyKSxyPWUuX19uZXh0fXJldHVybiBufWZ1bmN0aW9uIE92KGUsdCl7Y29uc3Qgbj1vdi5nZXQoZSk7bGV0IHI9aXYuZ2V0KGUpO3ZvaWQgMCE9PW4mJnZvaWQgMCE9PXJ8fFBnKDYxKTtjb25zdCBvPW12fHxydi5oYXMoZSl8fG52LmhhcyhlKSxpPWp5KFF5LGUpO2lmKG49PT1yJiYhbyl7aWYoa3gobikpe2NvbnN0IGU9aS5fX2xleGljYWxUZXh0Q29udGVudDt2b2lkIDAhPT1lJiYobHYrPWUsZnYrPWUpO2NvbnN0IHQ9aS5fX2xleGljYWxEaXJUZXh0Q29udGVudDt2b2lkIDAhPT10JiYoY3YrPXQpfWVsc2V7Y29uc3QgZT1uLmdldFRleHRDb250ZW50KCk7a2IobikmJiFuLmlzRGlyZWN0aW9ubGVzcygpJiYoY3YrPWUpLGZ2Kz1lLGx2Kz1lfXJldHVybiBpfWlmKG4hPT1yJiZvJiZPeShhdixldix0dixyLFwidXBkYXRlZFwiKSxyLnVwZGF0ZURPTShuLGksSnkpKXtjb25zdCBuPVN2KGUsbnVsbCxudWxsKTtyZXR1cm4gbnVsbD09PXQmJlBnKDYyKSx0LnJlcGxhY2VDaGlsZChuLGkpLGd2KGUsbnVsbCksbn1pZihreChuKSYma3gocikpe2NvbnN0IGU9ci5fX2luZGVudDtlIT09bi5fX2luZGVudCYmeHYoaSxlKTtjb25zdCB0PXIuX19mb3JtYXQ7dCE9PW4uX19mb3JtYXQmJnd2KGksdCksbyYmKGZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWN2O3ZhciBvO2N2PVwiXCIsdXY9bnVsbCxkdj1cIlwiLGZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWx2LG89ZS5fX3NpemUsaT10Ll9fc2l6ZTtpZihsdj1cIlwiLDE9PT1vJiYxPT09aSl7Y29uc3Qgcj1lLl9fZmlyc3Qsbz10Ll9fZmlyc3Q7aWYocj09PW8pT3YocixuKTtlbHNle2NvbnN0IGU9TXYociksdD1TdihvLG51bGwsbnVsbCk7dHJ5e24ucmVwbGFjZUNoaWxkKHQsZSl9Y2F0Y2goaSl7aWYoXCJvYmplY3RcIj09dHlwZW9mIGkmJm51bGwhPWkpe2NvbnN0IHM9YCR7aS50b1N0cmluZygpfSBQYXJlbnQ6ICR7bi50YWdOYW1lfSwgbmV3IGNoaWxkOiB7dGFnOiAke3QudGFnTmFtZX0ga2V5OiAke299fSwgb2xkIGNoaWxkOiB7dGFnOiAke2UudGFnTmFtZX0sIGtleTogJHtyfX0uYDt0aHJvdyBuZXcgRXJyb3Iocyl9dGhyb3cgaX1ndihyLG51bGwpfWNvbnN0IHM9aXYuZ2V0KG8pO2tiKHMpJiYobnVsbD09PXV2JiYodXY9cy5nZXRGb3JtYXQoKSksXCJcIj09PWR2JiYoZHY9cy5nZXRTdHlsZSgpKSl9ZWxzZXtjb25zdCByPVB2KGUsb3YpLHM9UHYodCxpdik7aWYoMD09PW8pMCE9PWkmJmt2KHMsdCwwLGktMSxuLG51bGwpO2Vsc2UgaWYoMD09PWkpe2lmKDAhPT1vKXtjb25zdCBlPW51bGw9PW4uX19sZXhpY2FsTGluZUJyZWFrO3l2KHIsMCxvLTEsZT9udWxsOm4pLGUmJihuLnRleHRDb250ZW50PVwiXCIpfX1lbHNlIWZ1bmN0aW9uKGUsdCxuLHIsbyxpKXtjb25zdCBzPXItMSxhPW8tMTtsZXQgbCxjLHU9aS5maXJzdENoaWxkLGQ9MCxmPTA7Zm9yKDtkPD1zJiZmPD1hOyl7Y29uc3QgZT10W2RdLHI9bltmXTtpZihlPT09cil1PVR2KE92KHIsaSkpLGQrKyxmKys7ZWxzZXt2b2lkIDA9PT1sJiYobD1uZXcgU2V0KHQpKSx2b2lkIDA9PT1jJiYoYz1uZXcgU2V0KG4pKTtjb25zdCBvPWMuaGFzKGUpLHM9bC5oYXMocik7aWYobylpZihzKXtjb25zdCBlPWp5KFF5LHIpO2U9PT11P3U9VHYoT3YocixpKSk6KG51bGwhPXU/aS5pbnNlcnRCZWZvcmUoZSx1KTppLmFwcGVuZENoaWxkKGUpLE92KHIsaSkpLGQrKyxmKyt9ZWxzZSBTdihyLGksdSksZisrO2Vsc2UgdT1UdihNdihlKSksZ3YoZSxpKSxkKyt9Y29uc3Qgbz1pdi5nZXQocik7bnVsbCE9PW8mJmtiKG8pJiYobnVsbD09PXV2JiYodXY9by5nZXRGb3JtYXQoKSksXCJcIj09PWR2JiYoZHY9by5nZXRTdHlsZSgpKSl9Y29uc3QgbT1kPnMsaD1mPmE7aWYobSYmIWgpe2NvbnN0IHQ9blthKzFdO2t2KG4sZSxmLGEsaSx2b2lkIDA9PT10P251bGw6UXkuZ2V0RWxlbWVudEJ5S2V5KHQpKX1lbHNlIGgmJiFtJiZ5dih0LGQscyxpKX0odCxyLHMsbyxpLG4pfUR5KHQpJiYobHYrPWhnKSxuLl9fbGV4aWNhbFRleHRDb250ZW50PWx2LGx2PXIrbHZ9KGUsdCxuKSxfdih0LG4pLEx4KG89dCkmJm51bGwhPXV2JiZ1diE9PW8uX190ZXh0Rm9ybWF0JiYhaHYmJihvLnNldFRleHRGb3JtYXQodXYpLG8uc2V0VGV4dFN0eWxlKGR2KSksZnVuY3Rpb24oZSl7THgoZSkmJlwiXCIhPT1kdiYmZHYhPT1lLl9fdGV4dFN0eWxlJiYhaHYmJmUuc2V0VGV4dFN0eWxlKGR2KX0odCksY3Y9cn0obixyLGkpLE54KHIpfHxyLmlzSW5saW5lKCl8fEN2KG4scixpKSksRHkocikmJihsdis9aGcsZnYrPWhnKX1lbHNle2NvbnN0IHQ9ci5nZXRUZXh0Q29udGVudCgpO2lmKFB4KHIpKXtjb25zdCB0PXIuZGVjb3JhdGUoUXksSnkpO251bGwhPT10JiZOdihlLHQpfWVsc2Uga2IocikmJiFyLmlzRGlyZWN0aW9ubGVzcygpJiYoY3YrPXQpO2x2Kz10LGZ2Kz10fWlmKCFodiYmTngocikmJnIuX19jYWNoZWRUZXh0IT09ZnYpe2NvbnN0IGU9ci5nZXRXcml0YWJsZSgpO2UuX19jYWNoZWRUZXh0PWZ2LHI9ZX1yZXR1cm4gaX1mdW5jdGlvbiBOdihlLHQpe2xldCBuPVF5Ll9wZW5kaW5nRGVjb3JhdG9ycztjb25zdCByPVF5Ll9kZWNvcmF0b3JzO2lmKG51bGw9PT1uKXtpZihyW2VdPT09dClyZXR1cm47bj1heShReSl9bltlXT10fWZ1bmN0aW9uIFR2KGUpe2xldCB0PWUubmV4dFNpYmxpbmc7cmV0dXJuIG51bGwhPT10JiZ0PT09UXkuX2Jsb2NrQ3Vyc29yRWxlbWVudCYmKHQ9dC5uZXh0U2libGluZyksdH1mdW5jdGlvbiBNdihlKXtjb25zdCB0PXN2LmdldChlKTtyZXR1cm4gdm9pZCAwPT09dCYmUGcoNzUsZSksdH1jb25zdCBSdj1PYmplY3QuZnJlZXplKHt9KSxEdj1bW1wia2V5ZG93blwiLGZ1bmN0aW9uKGUsdCl7aWYoanY9ZS50aW1lU3RhbXAsQXY9ZS5rZXksdC5pc0NvbXBvc2luZygpKXJldHVybjtjb25zdHtrZXk6bixzaGlmdEtleTpyLGN0cmxLZXk6byxtZXRhS2V5OmksYWx0S2V5OnN9PWU7UnkodCxtcCxlKXx8bnVsbCE9biYmKGZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB3eShlKSYmIXQmJiFyJiYhbn0obixvLHMsaSk/UnkodCxocCxlKTpmdW5jdGlvbihlLHQsbixyLG8pe3JldHVybiB3eShlKSYmIXImJiFuJiYodHx8byl9KG4sbyxyLHMsaSk/UnkodCxwcCxlKTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4geHkoZSkmJiF0JiYhciYmIW59KG4sbyxzLGkpP1J5KHQsZ3AsZSk6ZnVuY3Rpb24oZSx0LG4scixvKXtyZXR1cm4geHkoZSkmJiFyJiYhbiYmKHR8fG8pfShuLG8scixzLGkpP1J5KHQseXAsZSk6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm5cIkFycm93VXBcIj09PWV9KGUpJiYhdCYmIW59KG4sbyxpKT9SeSh0LHZwLGUpOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuXCJBcnJvd0Rvd25cIj09PWV9KGUpJiYhdCYmIW59KG4sbyxpKT9SeSh0LGJwLGUpOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGt5KGUpJiZ0fShuLHIpPyhXdj0hMCxSeSh0LHhwLGUpKTpmdW5jdGlvbihlKXtyZXR1cm5cIiBcIj09PWV9KG4pP1J5KHQsd3AsZSk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVnAmJnQmJlwib1wiPT09ZS50b0xvd2VyQ2FzZSgpfShuLG8pPyhlLnByZXZlbnREZWZhdWx0KCksV3Y9ITAsUnkodCxycCwhMCkpOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGt5KGUpJiYhdH0obixyKT8oV3Y9ITEsUnkodCx4cCxlKSk6ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIFZwPyF0JiYhbiYmKEV5KGUpfHxcImhcIj09PWUudG9Mb3dlckNhc2UoKSYmcik6IShyfHx0fHxuKSYmRXkoZSl9KG4scyxpLG8pP0V5KG4pP1J5KHQsU3AsZSk6KGUucHJldmVudERlZmF1bHQoKSxSeSh0LG5wLCEwKSk6ZnVuY3Rpb24oZSl7cmV0dXJuXCJFc2NhcGVcIj09PWV9KG4pP1J5KHQsa3AsZSk6ZnVuY3Rpb24oZSx0LG4scixvKXtyZXR1cm4gVnA/IShufHxyfHxvKSYmKEN5KGUpfHxcImRcIj09PWUudG9Mb3dlckNhc2UoKSYmdCk6ISh0fHxyfHxvKSYmQ3koZSl9KG4sbyxyLHMsaSk/Q3kobik/UnkodCxFcCxlKTooZS5wcmV2ZW50RGVmYXVsdCgpLFJ5KHQsbnAsITEpKTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIEV5KGUpJiYoVnA/dDpuKX0obixzLG8pPyhlLnByZXZlbnREZWZhdWx0KCksUnkodCxscCwhMCkpOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gQ3koZSkmJihWcD90Om4pfShuLHMsbyk/KGUucHJldmVudERlZmF1bHQoKSxSeSh0LGxwLCExKSk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVnAmJnQmJkV5KGUpfShuLGkpPyhlLnByZXZlbnREZWZhdWx0KCksUnkodCxjcCwhMCkpOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIFZwJiZ0JiZDeShlKX0obixpKT8oZS5wcmV2ZW50RGVmYXVsdCgpLFJ5KHQsY3AsITEpKTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm5cImJcIj09PWUudG9Mb3dlckNhc2UoKSYmIXQmJlN5KG4scil9KG4scyxpLG8pPyhlLnByZXZlbnREZWZhdWx0KCksUnkodCx1cCxcImJvbGRcIikpOmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVyblwidVwiPT09ZS50b0xvd2VyQ2FzZSgpJiYhdCYmU3kobixyKX0obixzLGksbyk/KGUucHJldmVudERlZmF1bHQoKSxSeSh0LHVwLFwidW5kZXJsaW5lXCIpKTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm5cImlcIj09PWUudG9Mb3dlckNhc2UoKSYmIXQmJlN5KG4scil9KG4scyxpLG8pPyhlLnByZXZlbnREZWZhdWx0KCksUnkodCx1cCxcIml0YWxpY1wiKSk6ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuXCJUYWJcIj09PWUmJiF0JiYhbiYmIXJ9KG4scyxvLGkpP1J5KHQsQ3AsZSk6ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuXCJ6XCI9PT1lLnRvTG93ZXJDYXNlKCkmJiF0JiZTeShuLHIpfShuLHIsaSxvKT8oZS5wcmV2ZW50RGVmYXVsdCgpLFJ5KHQsZHAsdm9pZCAwKSk6ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIFZwP1wielwiPT09ZS50b0xvd2VyQ2FzZSgpJiZuJiZ0OlwieVwiPT09ZS50b0xvd2VyQ2FzZSgpJiZyfHxcInpcIj09PWUudG9Mb3dlckNhc2UoKSYmciYmdH0obixyLGksbyk/KGUucHJldmVudERlZmF1bHQoKSxSeSh0LGZwLHZvaWQgMCkpOkFiKHQuX2VkaXRvclN0YXRlLl9zZWxlY3Rpb24pP2Z1bmN0aW9uKGUsdCxuLHIpe3JldHVybiF0JiZcImNcIj09PWUudG9Mb3dlckNhc2UoKSYmKFZwP246cil9KG4scixpLG8pPyhlLnByZXZlbnREZWZhdWx0KCksUnkodCxUcCxlKSk6ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIXQmJlwieFwiPT09ZS50b0xvd2VyQ2FzZSgpJiYoVnA/bjpyKX0obixyLGksbyk/KGUucHJldmVudERlZmF1bHQoKSxSeSh0LE1wLGUpKTpfeShuLGksbykmJihlLnByZXZlbnREZWZhdWx0KCksUnkodCxScCxlKSk6IVVwJiZfeShuLGksbykmJihlLnByZXZlbnREZWZhdWx0KCksUnkodCxScCxlKSksZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIGV8fHR8fG58fHJ9KG8scixzLGkpJiZSeSh0LHpwLGUpKX1dLFtcInBvaW50ZXJkb3duXCIsZnVuY3Rpb24oZSx0KXtjb25zdCBuPWUudGFyZ2V0LHI9ZS5wb2ludGVyVHlwZTtuIGluc3RhbmNlb2YgTm9kZSYmXCJ0b3VjaFwiIT09ciYmd3godCwoKCk9PntQeChzeShuKSl8fChCdj0hMCl9KSl9XSxbXCJjb21wb3NpdGlvbnN0YXJ0XCIsZnVuY3Rpb24oZSx0KXt3eCh0LCgoKT0+e2NvbnN0IG49SGIoKTtpZihEYihuKSYmIXQuaXNDb21wb3NpbmcoKSl7Y29uc3Qgcj1uLmFuY2hvcixvPW4uYW5jaG9yLmdldE5vZGUoKTtueShyLmtleSksKGUudGltZVN0YW1wPGp2KzMwfHxcImVsZW1lbnRcIj09PXIudHlwZXx8IW4uaXNDb2xsYXBzZWQoKXx8by5nZXRGb3JtYXQoKSE9PW4uZm9ybWF0fHxrYihvKSYmby5nZXRTdHlsZSgpIT09bi5zdHlsZSkmJlJ5KHQsaXAscGcpfX0pKX1dLFtcImNvbXBvc2l0aW9uZW5kXCIsZnVuY3Rpb24oZSx0KXtVcD9Wdj0hMDp3eCh0LCgoKT0+e3F2KHQsZS5kYXRhKX0pKX1dLFtcImlucHV0XCIsZnVuY3Rpb24oZSx0KXtlLnN0b3BQcm9wYWdhdGlvbigpLHd4KHQsKCgpPT57Y29uc3Qgbj1IYigpLHI9ZS5kYXRhLG89S3YoZSk7aWYobnVsbCE9ciYmRGIobikmJiR2KG4sbyxyLGUudGltZVN0YW1wLCExKSl7VnYmJihxdih0LHIpLFZ2PSExKTtjb25zdCBvPW4uYW5jaG9yLmdldE5vZGUoKSxpPVZ5KHQuX3dpbmRvdyk7aWYobnVsbD09PWkpcmV0dXJuO2NvbnN0IHM9bi5pc0JhY2t3YXJkKCksYT1zP24uYW5jaG9yLm9mZnNldDpuLmZvY3VzLm9mZnNldCxsPXM/bi5mb2N1cy5vZmZzZXQ6bi5hbmNob3Iub2Zmc2V0OyRwJiYhbi5pc0NvbGxhcHNlZCgpJiZrYihvKSYmbnVsbCE9PWkuYW5jaG9yTm9kZSYmby5nZXRUZXh0Q29udGVudCgpLnNsaWNlKDAsYSkrcitvLmdldFRleHRDb250ZW50KCkuc2xpY2UoYStsKT09PXl5KGkuYW5jaG9yTm9kZSl8fFJ5KHQsaXAscik7Y29uc3QgYz1yLmxlbmd0aDtVcCYmYz4xJiZcImluc2VydENvbXBvc2l0aW9uVGV4dFwiPT09ZS5pbnB1dFR5cGUmJiF0LmlzQ29tcG9zaW5nKCkmJihuLmFuY2hvci5vZmZzZXQtPWMpLFlwfHxIcHx8WHB8fCF0LmlzQ29tcG9zaW5nKCl8fChqdj0wLG55KG51bGwpKX1lbHNlIHZ5KCExLHQsbnVsbCE9PXI/cjp2b2lkIDApLFZ2JiYocXYodCxyfHx2b2lkIDApLFZ2PSExKTtheCgpLExnKHV4KCkpfSkpLEx2PW51bGx9XSxbXCJjbGlja1wiLGZ1bmN0aW9uKGUsdCl7d3godCwoKCk9Pntjb25zdCBuPUhiKCkscj1WeSh0Ll93aW5kb3cpLG89S2IoKTtpZihyKWlmKERiKG4pKXtjb25zdCB0PW4uYW5jaG9yLGk9dC5nZXROb2RlKCk7XCJlbGVtZW50XCI9PT10LnR5cGUmJjA9PT10Lm9mZnNldCYmbi5pc0NvbGxhcHNlZCgpJiYhTngoaSkmJjE9PT1jeSgpLmdldENoaWxkcmVuU2l6ZSgpJiZpLmdldFRvcExldmVsRWxlbWVudE9yVGhyb3coKS5pc0VtcHR5KCkmJm51bGwhPT1vJiZuLmlzKG8pPyhyLnJlbW92ZUFsbFJhbmdlcygpLG4uZGlydHk9ITApOjMhPT1lLmRldGFpbHx8bi5pc0NvbGxhcHNlZCgpfHxpIT09bi5mb2N1cy5nZXROb2RlKCkmJihreChpKT9pLnNlbGVjdCgwKTppLmdldFBhcmVudE9yVGhyb3coKS5zZWxlY3QoMCkpfWVsc2UgaWYoXCJ0b3VjaFwiPT09ZS5wb2ludGVyVHlwZSl7Y29uc3Qgbj1yLmFuY2hvck5vZGU7aWYobnVsbCE9PW4pe2NvbnN0IGk9bi5ub2RlVHlwZTtpIT09WnAmJmkhPT1KcHx8ZHkoWWIobyxyLHQsZSkpfX1SeSh0LHRwLGUpfSkpfV0sW1wiY3V0XCIsUnZdLFtcImNvcHlcIixSdl0sW1wiZHJhZ3N0YXJ0XCIsUnZdLFtcImRyYWdvdmVyXCIsUnZdLFtcImRyYWdlbmRcIixSdl0sW1wicGFzdGVcIixSdl0sW1wiZm9jdXNcIixSdl0sW1wiYmx1clwiLFJ2XSxbXCJkcm9wXCIsUnZdXTskcCYmRHYucHVzaChbXCJiZWZvcmVpbnB1dFwiLChlLHQpPT5mdW5jdGlvbihlLHQpe2NvbnN0IG49ZS5pbnB1dFR5cGUscj1LdihlKTtcImRlbGV0ZUNvbXBvc2l0aW9uVGV4dFwiPT09bnx8VXAmJk15KHQpfHxcImluc2VydENvbXBvc2l0aW9uVGV4dFwiIT09biYmd3godCwoKCk9Pntjb25zdCBvPUhiKCk7aWYoXCJkZWxldGVDb250ZW50QmFja3dhcmRcIj09PW4pe2lmKG51bGw9PT1vKXtjb25zdCBlPUtiKCk7aWYoIURiKGUpKXJldHVybjtkeShlLmNsb25lKCkpfWlmKERiKG8pKXtjb25zdCBuPW8uYW5jaG9yLmtleT09PW8uZm9jdXMua2V5O2lmKGk9ZS50aW1lU3RhbXAsXCJNZWRpYUxhc3RcIj09PUF2JiZpPGp2KzMwJiZ0LmlzQ29tcG9zaW5nKCkmJm4pe2lmKG55KG51bGwpLGp2PTAsc2V0VGltZW91dCgoKCk9Pnt3eCh0LCgoKT0+e255KG51bGwpfSkpfSksMzApLERiKG8pKXtjb25zdCBlPW8uYW5jaG9yLmdldE5vZGUoKTtlLm1hcmtEaXJ0eSgpLG8uZm9ybWF0PWUuZ2V0Rm9ybWF0KCksa2IoZSl8fFBnKDE0Miksby5zdHlsZT1lLmdldFN0eWxlKCl9fWVsc2V7bnkobnVsbCksZS5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IHI9by5hbmNob3IuZ2V0Tm9kZSgpLmdldFRleHRDb250ZW50KCksaT0wPT09by5hbmNob3Iub2Zmc2V0JiZvLmZvY3VzLm9mZnNldD09PXIubGVuZ3RoO0dwJiZuJiYhaXx8UnkodCxucCwhMCl9cmV0dXJufX12YXIgaTtpZighRGIobykpcmV0dXJuO2NvbnN0IHM9ZS5kYXRhO251bGwhPT1MdiYmdnkoITEsdCxMdiksby5kaXJ0eSYmbnVsbD09PUx2fHwhby5pc0NvbGxhcHNlZCgpfHxOeChvLmFuY2hvci5nZXROb2RlKCkpfHxudWxsPT09cnx8by5hcHBseURPTVJhbmdlKHIpLEx2PW51bGw7Y29uc3QgYT1vLmFuY2hvcixsPW8uZm9jdXMsYz1hLmdldE5vZGUoKSx1PWwuZ2V0Tm9kZSgpO2lmKFwiaW5zZXJ0VGV4dFwiIT09biYmXCJpbnNlcnRUcmFuc3Bvc2VcIiE9PW4pc3dpdGNoKGUucHJldmVudERlZmF1bHQoKSxuKXtjYXNlXCJpbnNlcnRGcm9tWWFua1wiOmNhc2VcImluc2VydEZyb21Ecm9wXCI6Y2FzZVwiaW5zZXJ0UmVwbGFjZW1lbnRUZXh0XCI6UnkodCxpcCxlKTticmVhaztjYXNlXCJpbnNlcnRGcm9tQ29tcG9zaXRpb25cIjpueShudWxsKSxSeSh0LGlwLGUpO2JyZWFrO2Nhc2VcImluc2VydExpbmVCcmVha1wiOm55KG51bGwpLFJ5KHQscnAsITEpO2JyZWFrO2Nhc2VcImluc2VydFBhcmFncmFwaFwiOm55KG51bGwpLFd2JiYhSHA/KFd2PSExLFJ5KHQscnAsITEpKTpSeSh0LG9wLHZvaWQgMCk7YnJlYWs7Y2FzZVwiaW5zZXJ0RnJvbVBhc3RlXCI6Y2FzZVwiaW5zZXJ0RnJvbVBhc3RlQXNRdW90YXRpb25cIjpSeSh0LHNwLGUpO2JyZWFrO2Nhc2VcImRlbGV0ZUJ5Q29tcG9zaXRpb25cIjooZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSE9PXR8fGt4KGUpfHxreCh0KXx8IWUuaXNUb2tlbigpfHwhdC5pc1Rva2VuKCl9KShjLHUpJiZSeSh0LGFwLGUpO2JyZWFrO2Nhc2VcImRlbGV0ZUJ5RHJhZ1wiOmNhc2VcImRlbGV0ZUJ5Q3V0XCI6UnkodCxhcCxlKTticmVhaztjYXNlXCJkZWxldGVDb250ZW50XCI6UnkodCxucCwhMSk7YnJlYWs7Y2FzZVwiZGVsZXRlV29yZEJhY2t3YXJkXCI6UnkodCxscCwhMCk7YnJlYWs7Y2FzZVwiZGVsZXRlV29yZEZvcndhcmRcIjpSeSh0LGxwLCExKTticmVhaztjYXNlXCJkZWxldGVIYXJkTGluZUJhY2t3YXJkXCI6Y2FzZVwiZGVsZXRlU29mdExpbmVCYWNrd2FyZFwiOlJ5KHQsY3AsITApO2JyZWFrO2Nhc2VcImRlbGV0ZUNvbnRlbnRGb3J3YXJkXCI6Y2FzZVwiZGVsZXRlSGFyZExpbmVGb3J3YXJkXCI6Y2FzZVwiZGVsZXRlU29mdExpbmVGb3J3YXJkXCI6UnkodCxjcCwhMSk7YnJlYWs7Y2FzZVwiZm9ybWF0U3RyaWtlVGhyb3VnaFwiOlJ5KHQsdXAsXCJzdHJpa2V0aHJvdWdoXCIpO2JyZWFrO2Nhc2VcImZvcm1hdEJvbGRcIjpSeSh0LHVwLFwiYm9sZFwiKTticmVhaztjYXNlXCJmb3JtYXRJdGFsaWNcIjpSeSh0LHVwLFwiaXRhbGljXCIpO2JyZWFrO2Nhc2VcImZvcm1hdFVuZGVybGluZVwiOlJ5KHQsdXAsXCJ1bmRlcmxpbmVcIik7YnJlYWs7Y2FzZVwiaGlzdG9yeVVuZG9cIjpSeSh0LGRwLHZvaWQgMCk7YnJlYWs7Y2FzZVwiaGlzdG9yeVJlZG9cIjpSeSh0LGZwLHZvaWQgMCl9ZWxzZXtpZihcIlxcblwiPT09cyllLnByZXZlbnREZWZhdWx0KCksUnkodCxycCwhMSk7ZWxzZSBpZihzPT09aGcpZS5wcmV2ZW50RGVmYXVsdCgpLFJ5KHQsb3Asdm9pZCAwKTtlbHNlIGlmKG51bGw9PXMmJmUuZGF0YVRyYW5zZmVyKXtjb25zdCB0PWUuZGF0YVRyYW5zZmVyLmdldERhdGEoXCJ0ZXh0L3BsYWluXCIpO2UucHJldmVudERlZmF1bHQoKSxvLmluc2VydFJhd1RleHQodCl9ZWxzZSBudWxsIT1zJiYkdihvLHIscyxlLnRpbWVTdGFtcCwhMCk/KGUucHJldmVudERlZmF1bHQoKSxSeSh0LGlwLHMpKTpMdj1zO0l2PWUudGltZVN0YW1wfX0pKX0oZSx0KV0pO2xldCBqdj0wLEF2PW51bGwsSXY9MCxMdj1udWxsO2NvbnN0IEZ2PW5ldyBXZWFrTWFwO2xldCB6dj0hMSxCdj0hMSxXdj0hMSxWdj0hMSxVdj1bMCxcIlwiLDAsXCJyb290XCIsMF07ZnVuY3Rpb24gJHYoZSx0LG4scixvKXtjb25zdCBpPWUuYW5jaG9yLHM9ZS5mb2N1cyxhPWkuZ2V0Tm9kZSgpLGw9dXgoKSxjPVZ5KGwuX3dpbmRvdyksdT1udWxsIT09Yz9jLmFuY2hvck5vZGU6bnVsbCxkPWkua2V5LGY9bC5nZXRFbGVtZW50QnlLZXkoZCksbT1uLmxlbmd0aDtyZXR1cm4gZCE9PXMua2V5fHwha2IoYSl8fCghbyYmKCEkcHx8SXY8cis1MCl8fGEuaXNEaXJ0eSgpJiZtPDJ8fGh5KG4pKSYmaS5vZmZzZXQhPT1zLm9mZnNldCYmIWEuaXNDb21wb3NpbmcoKXx8WGcoYSl8fGEuaXNEaXJ0eSgpJiZtPjF8fChvfHwhJHApJiZudWxsIT09ZiYmIWEuaXNDb21wb3NpbmcoKSYmdSE9PUpnKGYpfHxudWxsIT09YyYmbnVsbCE9PXQmJighdC5jb2xsYXBzZWR8fHQuc3RhcnRDb250YWluZXIhPT1jLmFuY2hvck5vZGV8fHQuc3RhcnRPZmZzZXQhPT1jLmFuY2hvck9mZnNldCl8fGEuZ2V0Rm9ybWF0KCkhPT1lLmZvcm1hdHx8YS5nZXRTdHlsZSgpIT09ZS5zdHlsZXx8ZnVuY3Rpb24oZSx0KXtpZih0LmlzU2VnbWVudGVkKCkpcmV0dXJuITA7aWYoIWUuaXNDb2xsYXBzZWQoKSlyZXR1cm4hMTtjb25zdCBuPWUuYW5jaG9yLm9mZnNldCxyPXQuZ2V0UGFyZW50T3JUaHJvdygpLG89dC5pc1Rva2VuKCk7cmV0dXJuIDA9PT1uPyF0LmNhbkluc2VydFRleHRCZWZvcmUoKXx8IXIuY2FuSW5zZXJ0VGV4dEJlZm9yZSgpJiYhdC5pc0NvbXBvc2luZygpfHxvfHxmdW5jdGlvbihlKXtjb25zdCB0PWUuZ2V0UHJldmlvdXNTaWJsaW5nKCk7cmV0dXJuKGtiKHQpfHxreCh0KSYmdC5pc0lubGluZSgpKSYmIXQuY2FuSW5zZXJ0VGV4dEFmdGVyKCl9KHQpOm49PT10LmdldFRleHRDb250ZW50U2l6ZSgpJiYoIXQuY2FuSW5zZXJ0VGV4dEFmdGVyKCl8fCFyLmNhbkluc2VydFRleHRBZnRlcigpJiYhdC5pc0NvbXBvc2luZygpfHxvKX0oZSxhKX1mdW5jdGlvbiBZdihlLHQpe3JldHVybiBudWxsIT09ZSYmbnVsbCE9PWUubm9kZVZhbHVlJiZlLm5vZGVUeXBlPT09SnAmJjAhPT10JiZ0IT09ZS5ub2RlVmFsdWUubGVuZ3RofWZ1bmN0aW9uIEh2KGUsdCxuKXtjb25zdHthbmNob3JOb2RlOnIsYW5jaG9yT2Zmc2V0Om8sZm9jdXNOb2RlOmksZm9jdXNPZmZzZXQ6c309ZTt6diYmKHp2PSExLFl2KHIsbykmJll2KGkscykpfHx3eCh0LCgoKT0+e2lmKCFuKXJldHVybiB2b2lkIGR5KG51bGwpO2lmKCFIZyh0LHIsaSkpcmV0dXJuO2NvbnN0IGE9SGIoKTtpZihEYihhKSl7Y29uc3Qgbj1hLmFuY2hvcixyPW4uZ2V0Tm9kZSgpO2lmKGEuaXNDb2xsYXBzZWQoKSl7XCJSYW5nZVwiPT09ZS50eXBlJiZlLmFuY2hvck5vZGU9PT1lLmZvY3VzTm9kZSYmKGEuZGlydHk9ITApO2NvbnN0IG89THkodCkuZXZlbnQsaT1vP28udGltZVN0YW1wOnBlcmZvcm1hbmNlLm5vdygpLFtzLGwsYyx1LGRdPVV2LGY9Y3koKSxtPSExPT09dC5pc0NvbXBvc2luZygpJiZcIlwiPT09Zi5nZXRUZXh0Q29udGVudCgpO2lmKGk8ZCsyMDAmJm4ub2Zmc2V0PT09YyYmbi5rZXk9PT11KWEuZm9ybWF0PXMsYS5zdHlsZT1sO2Vsc2UgaWYoXCJ0ZXh0XCI9PT1uLnR5cGUpa2Iocil8fFBnKDE0MSksYS5mb3JtYXQ9ci5nZXRGb3JtYXQoKSxhLnN0eWxlPXIuZ2V0U3R5bGUoKTtlbHNlIGlmKFwiZWxlbWVudFwiPT09bi50eXBlJiYhbSl7Y29uc3QgZT1uLmdldE5vZGUoKTthLnN0eWxlPVwiXCIsZSBpbnN0YW5jZW9mIGp4JiYwPT09ZS5nZXRDaGlsZHJlblNpemUoKT8oYS5mb3JtYXQ9ZS5nZXRUZXh0Rm9ybWF0KCksYS5zdHlsZT1lLmdldFRleHRTdHlsZSgpKTphLmZvcm1hdD0wfX1lbHNle2NvbnN0IGU9bi5rZXksdD1hLmZvY3VzLmtleSxyPWEuZ2V0Tm9kZXMoKSxpPXIubGVuZ3RoLGw9YS5pc0JhY2t3YXJkKCksYz1sP3M6byx1PWw/bzpzLGQ9bD90OmUsZj1sP2U6dDtsZXQgbT1zZyxoPSExO2ZvcihsZXQgZT0wO2U8aTtlKyspe2NvbnN0IHQ9cltlXSxuPXQuZ2V0VGV4dENvbnRlbnRTaXplKCk7aWYoa2IodCkmJjAhPT1uJiYhKDA9PT1lJiZ0Ll9fa2V5PT09ZCYmYz09PW58fGU9PT1pLTEmJnQuX19rZXk9PT1mJiYwPT09dSkmJihoPSEwLG0mPXQuZ2V0Rm9ybWF0KCksMD09PW0pKWJyZWFrfWEuZm9ybWF0PWg/bTowfX1SeSh0LGVwLHZvaWQgMCl9KSl9ZnVuY3Rpb24gS3YoZSl7aWYoIWUuZ2V0VGFyZ2V0UmFuZ2VzKXJldHVybiBudWxsO2NvbnN0IHQ9ZS5nZXRUYXJnZXRSYW5nZXMoKTtyZXR1cm4gMD09PXQubGVuZ3RoP251bGw6dFswXX1mdW5jdGlvbiBxdihlLHQpe2NvbnN0IG49ZS5fY29tcG9zaXRpb25LZXk7aWYobnkobnVsbCksbnVsbCE9PW4mJm51bGwhPXQpe2lmKFwiXCI9PT10KXtjb25zdCB0PW95KG4pLHI9SmcoZS5nZXRFbGVtZW50QnlLZXkobikpO3JldHVybiB2b2lkKG51bGwhPT1yJiZudWxsIT09ci5ub2RlVmFsdWUmJmtiKHQpJiZieSh0LHIubm9kZVZhbHVlLG51bGwsbnVsbCwhMCkpfWlmKFwiXFxuXCI9PT10W3QubGVuZ3RoLTFdKXtjb25zdCB0PUhiKCk7aWYoRGIodCkpe2NvbnN0IG49dC5mb2N1cztyZXR1cm4gdC5hbmNob3Iuc2V0KG4ua2V5LG4ub2Zmc2V0LG4udHlwZSksdm9pZCBSeShlLHhwLG51bGwpfX19dnkoITAsZSx0KX1mdW5jdGlvbiBHdihlKXtsZXQgdD1lLl9fbGV4aWNhbEV2ZW50SGFuZGxlcztyZXR1cm4gdm9pZCAwPT09dCYmKHQ9W10sZS5fX2xleGljYWxFdmVudEhhbmRsZXM9dCksdH1jb25zdCBYdj1uZXcgTWFwO2Z1bmN0aW9uIFp2KGUpe2NvbnN0IHQ9ZS50YXJnZXQsbj1WeShudWxsPT10P251bGw6OT09PXQubm9kZVR5cGU/dC5kZWZhdWx0Vmlldzp0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpO2lmKG51bGw9PT1uKXJldHVybjtjb25zdCByPXFnKG4uYW5jaG9yTm9kZSk7aWYobnVsbD09PXIpcmV0dXJuO0J2JiYoQnY9ITEsd3gociwoKCk9Pntjb25zdCB0PUtiKCksbz1uLmFuY2hvck5vZGU7aWYobnVsbD09PW8pcmV0dXJuO2NvbnN0IGk9by5ub2RlVHlwZTtpIT09WnAmJmkhPT1KcHx8ZHkoWWIodCxuLHIsZSkpfSkpKTtjb25zdCBvPXB5KHIpLGk9b1tvLmxlbmd0aC0xXSxzPWkuX2tleSxhPVh2LmdldChzKSxsPWF8fGk7bCE9PXImJkh2KG4sbCwhMSksSHYobixyLCEwKSxyIT09aT9Ydi5zZXQocyxyKTphJiZYdi5kZWxldGUocyl9ZnVuY3Rpb24gSnYoZSl7ZS5fbGV4aWNhbEhhbmRsZWQ9ITB9ZnVuY3Rpb24gUXYoZSl7cmV0dXJuITA9PT1lLl9sZXhpY2FsSGFuZGxlZH1mdW5jdGlvbiBlYihlLHQsbil7YXgoKTtjb25zdCByPWUuX19rZXksbz1lLmdldFBhcmVudCgpO2lmKG51bGw9PT1vKXJldHVybjtjb25zdCBpPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9SGIoKTtpZighRGIodCl8fCFreChlKSlyZXR1cm4gdDtjb25zdHthbmNob3I6bixmb2N1czpyfT10LG89bi5nZXROb2RlKCksaT1yLmdldE5vZGUoKTtyZXR1cm4gSXkobyxlKSYmbi5zZXQoZS5fX2tleSwwLFwiZWxlbWVudFwiKSxJeShpLGUpJiZyLnNldChlLl9fa2V5LDAsXCJlbGVtZW50XCIpLHR9KGUpO2xldCBzPSExO2lmKERiKGkpJiZ0KXtjb25zdCB0PWkuYW5jaG9yLG49aS5mb2N1czt0LmtleT09PXImJihYYih0LGUsbyxlLmdldFByZXZpb3VzU2libGluZygpLGUuZ2V0TmV4dFNpYmxpbmcoKSkscz0hMCksbi5rZXk9PT1yJiYoWGIobixlLG8sZS5nZXRQcmV2aW91c1NpYmxpbmcoKSxlLmdldE5leHRTaWJsaW5nKCkpLHM9ITApfWVsc2UgQWIoaSkmJnQmJmUuaXNTZWxlY3RlZCgpJiZlLnNlbGVjdFByZXZpb3VzKCk7aWYoRGIoaSkmJnQmJiFzKXtjb25zdCB0PWUuZ2V0SW5kZXhXaXRoaW5QYXJlbnQoKTtleShlKSxxYihpLG8sdCwtMSl9ZWxzZSBleShlKTtufHxGeShvKXx8by5jYW5CZUVtcHR5KCl8fCFvLmlzRW1wdHkoKXx8ZWIobyx0KSx0JiZOeChvKSYmby5pc0VtcHR5KCkmJm8uc2VsZWN0RW5kKCl9Y2xhc3MgdGJ7c3RhdGljIGdldFR5cGUoKXtQZyg2NCx0aGlzLm5hbWUpfXN0YXRpYyBjbG9uZShlKXtQZyg2NSx0aGlzLm5hbWUpfWFmdGVyQ2xvbmVGcm9tKGUpe3RoaXMuX19wYXJlbnQ9ZS5fX3BhcmVudCx0aGlzLl9fbmV4dD1lLl9fbmV4dCx0aGlzLl9fcHJldj1lLl9fcHJldn1jb25zdHJ1Y3RvcihlKXt0aGlzLl9fdHlwZT10aGlzLmNvbnN0cnVjdG9yLmdldFR5cGUoKSx0aGlzLl9fcGFyZW50PW51bGwsdGhpcy5fX3ByZXY9bnVsbCx0aGlzLl9fbmV4dD1udWxsLGZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClyZXR1cm4gdm9pZChlLl9fa2V5PXQpO2F4KCksbHgoKTtjb25zdCBuPXV4KCkscj1jeCgpLG89XCJcIitVZysrO3IuX25vZGVNYXAuc2V0KG8sZSksa3goZSk/bi5fZGlydHlFbGVtZW50cy5zZXQobywhMCk6bi5fZGlydHlMZWF2ZXMuYWRkKG8pLG4uX2Nsb25lTm90TmVlZGVkLmFkZChvKSxuLl9kaXJ0eVR5cGU9MSxlLl9fa2V5PW99KHRoaXMsZSl9Z2V0VHlwZSgpe3JldHVybiB0aGlzLl9fdHlwZX1pc0lubGluZSgpe1BnKDEzNyx0aGlzLmNvbnN0cnVjdG9yLm5hbWUpfWlzQXR0YWNoZWQoKXtsZXQgZT10aGlzLl9fa2V5O2Zvcig7bnVsbCE9PWU7KXtpZihcInJvb3RcIj09PWUpcmV0dXJuITA7Y29uc3QgdD1veShlKTtpZihudWxsPT09dClicmVhaztlPXQuX19wYXJlbnR9cmV0dXJuITF9aXNTZWxlY3RlZChlKXtjb25zdCB0PWV8fEhiKCk7aWYobnVsbD09dClyZXR1cm4hMTtjb25zdCBuPXQuZ2V0Tm9kZXMoKS5zb21lKChlPT5lLl9fa2V5PT09dGhpcy5fX2tleSkpO2lmKGtiKHRoaXMpKXJldHVybiBuO2lmKERiKHQpJiZcImVsZW1lbnRcIj09PXQuYW5jaG9yLnR5cGUmJlwiZWxlbWVudFwiPT09dC5mb2N1cy50eXBlKXtpZih0LmlzQ29sbGFwc2VkKCkpcmV0dXJuITE7Y29uc3QgZT10aGlzLmdldFBhcmVudCgpO2lmKFB4KHRoaXMpJiZ0aGlzLmlzSW5saW5lKCkmJmUpe2NvbnN0IG49dC5pc0JhY2t3YXJkKCk/dC5mb2N1czp0LmFuY2hvcixyPW4uZ2V0Tm9kZSgpO2lmKG4ub2Zmc2V0PT09ci5nZXRDaGlsZHJlblNpemUoKSYmci5pcyhlKSYmci5nZXRMYXN0Q2hpbGRPclRocm93KCkuaXModGhpcykpcmV0dXJuITF9fXJldHVybiBufWdldEtleSgpe3JldHVybiB0aGlzLl9fa2V5fWdldEluZGV4V2l0aGluUGFyZW50KCl7Y29uc3QgZT10aGlzLmdldFBhcmVudCgpO2lmKG51bGw9PT1lKXJldHVybi0xO2xldCB0PWUuZ2V0Rmlyc3RDaGlsZCgpLG49MDtmb3IoO251bGwhPT10Oyl7aWYodGhpcy5pcyh0KSlyZXR1cm4gbjtuKyssdD10LmdldE5leHRTaWJsaW5nKCl9cmV0dXJuLTF9Z2V0UGFyZW50KCl7Y29uc3QgZT10aGlzLmdldExhdGVzdCgpLl9fcGFyZW50O3JldHVybiBudWxsPT09ZT9udWxsOm95KGUpfWdldFBhcmVudE9yVGhyb3coKXtjb25zdCBlPXRoaXMuZ2V0UGFyZW50KCk7cmV0dXJuIG51bGw9PT1lJiZQZyg2Nix0aGlzLl9fa2V5KSxlfWdldFRvcExldmVsRWxlbWVudCgpe2xldCBlPXRoaXM7Zm9yKDtudWxsIT09ZTspe2NvbnN0IHQ9ZS5nZXRQYXJlbnQoKTtpZihGeSh0KSlyZXR1cm4ga3goZSl8fGU9PT10aGlzJiZQeChlKXx8UGcoMTk0KSxlO2U9dH1yZXR1cm4gbnVsbH1nZXRUb3BMZXZlbEVsZW1lbnRPclRocm93KCl7Y29uc3QgZT10aGlzLmdldFRvcExldmVsRWxlbWVudCgpO3JldHVybiBudWxsPT09ZSYmUGcoNjcsdGhpcy5fX2tleSksZX1nZXRQYXJlbnRzKCl7Y29uc3QgZT1bXTtsZXQgdD10aGlzLmdldFBhcmVudCgpO2Zvcig7bnVsbCE9PXQ7KWUucHVzaCh0KSx0PXQuZ2V0UGFyZW50KCk7cmV0dXJuIGV9Z2V0UGFyZW50S2V5cygpe2NvbnN0IGU9W107bGV0IHQ9dGhpcy5nZXRQYXJlbnQoKTtmb3IoO251bGwhPT10OyllLnB1c2godC5fX2tleSksdD10LmdldFBhcmVudCgpO3JldHVybiBlfWdldFByZXZpb3VzU2libGluZygpe2NvbnN0IGU9dGhpcy5nZXRMYXRlc3QoKS5fX3ByZXY7cmV0dXJuIG51bGw9PT1lP251bGw6b3koZSl9Z2V0UHJldmlvdXNTaWJsaW5ncygpe2NvbnN0IGU9W10sdD10aGlzLmdldFBhcmVudCgpO2lmKG51bGw9PT10KXJldHVybiBlO2xldCBuPXQuZ2V0Rmlyc3RDaGlsZCgpO2Zvcig7bnVsbCE9PW4mJiFuLmlzKHRoaXMpOyllLnB1c2gobiksbj1uLmdldE5leHRTaWJsaW5nKCk7cmV0dXJuIGV9Z2V0TmV4dFNpYmxpbmcoKXtjb25zdCBlPXRoaXMuZ2V0TGF0ZXN0KCkuX19uZXh0O3JldHVybiBudWxsPT09ZT9udWxsOm95KGUpfWdldE5leHRTaWJsaW5ncygpe2NvbnN0IGU9W107bGV0IHQ9dGhpcy5nZXROZXh0U2libGluZygpO2Zvcig7bnVsbCE9PXQ7KWUucHVzaCh0KSx0PXQuZ2V0TmV4dFNpYmxpbmcoKTtyZXR1cm4gZX1nZXRDb21tb25BbmNlc3RvcihlKXtjb25zdCB0PXRoaXMuZ2V0UGFyZW50cygpLG49ZS5nZXRQYXJlbnRzKCk7a3godGhpcykmJnQudW5zaGlmdCh0aGlzKSxreChlKSYmbi51bnNoaWZ0KGUpO2NvbnN0IHI9dC5sZW5ndGgsbz1uLmxlbmd0aDtpZigwPT09cnx8MD09PW98fHRbci0xXSE9PW5bby0xXSlyZXR1cm4gbnVsbDtjb25zdCBpPW5ldyBTZXQobik7Zm9yKGxldCBlPTA7ZTxyO2UrKyl7Y29uc3Qgbj10W2VdO2lmKGkuaGFzKG4pKXJldHVybiBufXJldHVybiBudWxsfWlzKGUpe3JldHVybiBudWxsIT1lJiZ0aGlzLl9fa2V5PT09ZS5fX2tleX1pc0JlZm9yZShlKXtpZih0aGlzPT09ZSlyZXR1cm4hMTtpZihlLmlzUGFyZW50T2YodGhpcykpcmV0dXJuITA7aWYodGhpcy5pc1BhcmVudE9mKGUpKXJldHVybiExO2NvbnN0IHQ9dGhpcy5nZXRDb21tb25BbmNlc3RvcihlKTtsZXQgbj0wLHI9MCxvPXRoaXM7Zm9yKDs7KXtjb25zdCBlPW8uZ2V0UGFyZW50T3JUaHJvdygpO2lmKGU9PT10KXtuPW8uZ2V0SW5kZXhXaXRoaW5QYXJlbnQoKTticmVha31vPWV9Zm9yKG89ZTs7KXtjb25zdCBlPW8uZ2V0UGFyZW50T3JUaHJvdygpO2lmKGU9PT10KXtyPW8uZ2V0SW5kZXhXaXRoaW5QYXJlbnQoKTticmVha31vPWV9cmV0dXJuIG48cn1pc1BhcmVudE9mKGUpe2NvbnN0IHQ9dGhpcy5fX2tleTtpZih0PT09ZS5fX2tleSlyZXR1cm4hMTtsZXQgbj1lO2Zvcig7bnVsbCE9PW47KXtpZihuLl9fa2V5PT09dClyZXR1cm4hMDtuPW4uZ2V0UGFyZW50KCl9cmV0dXJuITF9Z2V0Tm9kZXNCZXR3ZWVuKGUpe2NvbnN0IHQ9dGhpcy5pc0JlZm9yZShlKSxuPVtdLHI9bmV3IFNldDtsZXQgbz10aGlzO2Zvcig7bnVsbCE9PW87KXtjb25zdCBpPW8uX19rZXk7aWYoci5oYXMoaSl8fChyLmFkZChpKSxuLnB1c2gobykpLG89PT1lKWJyZWFrO2NvbnN0IHM9a3gobyk/dD9vLmdldEZpcnN0Q2hpbGQoKTpvLmdldExhc3RDaGlsZCgpOm51bGw7aWYobnVsbCE9PXMpe289cztjb250aW51ZX1jb25zdCBhPXQ/by5nZXROZXh0U2libGluZygpOm8uZ2V0UHJldmlvdXNTaWJsaW5nKCk7aWYobnVsbCE9PWEpe289YTtjb250aW51ZX1jb25zdCBsPW8uZ2V0UGFyZW50T3JUaHJvdygpO2lmKHIuaGFzKGwuX19rZXkpfHxuLnB1c2gobCksbD09PWUpYnJlYWs7bGV0IGM9bnVsbCx1PWw7ZG97aWYobnVsbD09PXUmJlBnKDY4KSxjPXQ/dS5nZXROZXh0U2libGluZygpOnUuZ2V0UHJldmlvdXNTaWJsaW5nKCksdT11LmdldFBhcmVudCgpLG51bGw9PT11KWJyZWFrO251bGwhPT1jfHxyLmhhcyh1Ll9fa2V5KXx8bi5wdXNoKHUpfXdoaWxlKG51bGw9PT1jKTtvPWN9cmV0dXJuIHR8fG4ucmV2ZXJzZSgpLG59aXNEaXJ0eSgpe2NvbnN0IGU9dXgoKS5fZGlydHlMZWF2ZXM7cmV0dXJuIG51bGwhPT1lJiZlLmhhcyh0aGlzLl9fa2V5KX1nZXRMYXRlc3QoKXtjb25zdCBlPW95KHRoaXMuX19rZXkpO3JldHVybiBudWxsPT09ZSYmUGcoMTEzKSxlfWdldFdyaXRhYmxlKCl7YXgoKTtjb25zdCBlPWN4KCksdD11eCgpLG49ZS5fbm9kZU1hcCxyPXRoaXMuX19rZXksbz10aGlzLmdldExhdGVzdCgpLGk9dC5fY2xvbmVOb3ROZWVkZWQscz1IYigpO2lmKG51bGwhPT1zJiZzLnNldENhY2hlZE5vZGVzKG51bGwpLGkuaGFzKHIpKXJldHVybiB0eShvKSxvO2NvbnN0IGE9WHkobyk7cmV0dXJuIGkuYWRkKHIpLHR5KGEpLG4uc2V0KHIsYSksYX1nZXRUZXh0Q29udGVudCgpe3JldHVyblwiXCJ9Z2V0VGV4dENvbnRlbnRTaXplKCl7cmV0dXJuIHRoaXMuZ2V0VGV4dENvbnRlbnQoKS5sZW5ndGh9Y3JlYXRlRE9NKGUsdCl7UGcoNzApfXVwZGF0ZURPTShlLHQsbil7UGcoNzEpfWV4cG9ydERPTShlKXtyZXR1cm57ZWxlbWVudDp0aGlzLmNyZWF0ZURPTShlLl9jb25maWcsZSl9fWV4cG9ydEpTT04oKXtQZyg3Mil9c3RhdGljIGltcG9ydEpTT04oZSl7UGcoMTgsdGhpcy5uYW1lKX1zdGF0aWMgdHJhbnNmb3JtKCl7cmV0dXJuIG51bGx9cmVtb3ZlKGUpe2ViKHRoaXMsITAsZSl9cmVwbGFjZShlLHQpe2F4KCk7bGV0IG49SGIoKTtudWxsIT09biYmKG49bi5jbG9uZSgpKSxCeSh0aGlzLGUpO2NvbnN0IHI9dGhpcy5nZXRMYXRlc3QoKSxvPXRoaXMuX19rZXksaT1lLl9fa2V5LHM9ZS5nZXRXcml0YWJsZSgpLGE9dGhpcy5nZXRQYXJlbnRPclRocm93KCkuZ2V0V3JpdGFibGUoKSxsPWEuX19zaXplO2V5KHMpO2NvbnN0IGM9ci5nZXRQcmV2aW91c1NpYmxpbmcoKSx1PXIuZ2V0TmV4dFNpYmxpbmcoKSxkPXIuX19wcmV2LGY9ci5fX25leHQsbT1yLl9fcGFyZW50O2lmKGViKHIsITEsITApLG51bGw9PT1jP2EuX19maXJzdD1pOmMuZ2V0V3JpdGFibGUoKS5fX25leHQ9aSxzLl9fcHJldj1kLG51bGw9PT11P2EuX19sYXN0PWk6dS5nZXRXcml0YWJsZSgpLl9fcHJldj1pLHMuX19uZXh0PWYscy5fX3BhcmVudD1tLGEuX19zaXplPWwsdCYmKGt4KHRoaXMpJiZreChzKXx8UGcoMTM5KSx0aGlzLmdldENoaWxkcmVuKCkuZm9yRWFjaCgoZT0+e3MuYXBwZW5kKGUpfSkpKSxEYihuKSl7ZHkobik7Y29uc3QgZT1uLmFuY2hvcix0PW4uZm9jdXM7ZS5rZXk9PT1vJiZUYihlLHMpLHQua2V5PT09byYmVGIodCxzKX1yZXR1cm4gcnkoKT09PW8mJm55KGkpLHN9aW5zZXJ0QWZ0ZXIoZSx0PSEwKXtheCgpLEJ5KHRoaXMsZSk7Y29uc3Qgbj10aGlzLmdldFdyaXRhYmxlKCkscj1lLmdldFdyaXRhYmxlKCksbz1yLmdldFBhcmVudCgpLGk9SGIoKTtsZXQgcz0hMSxhPSExO2lmKG51bGwhPT1vKXtjb25zdCB0PWUuZ2V0SW5kZXhXaXRoaW5QYXJlbnQoKTtpZihleShyKSxEYihpKSl7Y29uc3QgZT1vLl9fa2V5LG49aS5hbmNob3Iscj1pLmZvY3VzO3M9XCJlbGVtZW50XCI9PT1uLnR5cGUmJm4ua2V5PT09ZSYmbi5vZmZzZXQ9PT10KzEsYT1cImVsZW1lbnRcIj09PXIudHlwZSYmci5rZXk9PT1lJiZyLm9mZnNldD09PXQrMX19Y29uc3QgbD10aGlzLmdldE5leHRTaWJsaW5nKCksYz10aGlzLmdldFBhcmVudE9yVGhyb3coKS5nZXRXcml0YWJsZSgpLHU9ci5fX2tleSxkPW4uX19uZXh0O2lmKG51bGw9PT1sP2MuX19sYXN0PXU6bC5nZXRXcml0YWJsZSgpLl9fcHJldj11LGMuX19zaXplKyssbi5fX25leHQ9dSxyLl9fbmV4dD1kLHIuX19wcmV2PW4uX19rZXksci5fX3BhcmVudD1uLl9fcGFyZW50LHQmJkRiKGkpKXtjb25zdCBlPXRoaXMuZ2V0SW5kZXhXaXRoaW5QYXJlbnQoKTtxYihpLGMsZSsxKTtjb25zdCB0PWMuX19rZXk7cyYmaS5hbmNob3Iuc2V0KHQsZSsyLFwiZWxlbWVudFwiKSxhJiZpLmZvY3VzLnNldCh0LGUrMixcImVsZW1lbnRcIil9cmV0dXJuIGV9aW5zZXJ0QmVmb3JlKGUsdD0hMCl7YXgoKSxCeSh0aGlzLGUpO2NvbnN0IG49dGhpcy5nZXRXcml0YWJsZSgpLHI9ZS5nZXRXcml0YWJsZSgpLG89ci5fX2tleTtleShyKTtjb25zdCBpPXRoaXMuZ2V0UHJldmlvdXNTaWJsaW5nKCkscz10aGlzLmdldFBhcmVudE9yVGhyb3coKS5nZXRXcml0YWJsZSgpLGE9bi5fX3ByZXYsbD10aGlzLmdldEluZGV4V2l0aGluUGFyZW50KCk7bnVsbD09PWk/cy5fX2ZpcnN0PW86aS5nZXRXcml0YWJsZSgpLl9fbmV4dD1vLHMuX19zaXplKyssbi5fX3ByZXY9byxyLl9fcHJldj1hLHIuX19uZXh0PW4uX19rZXksci5fX3BhcmVudD1uLl9fcGFyZW50O2NvbnN0IGM9SGIoKTtyZXR1cm4gdCYmRGIoYykmJnFiKGMsdGhpcy5nZXRQYXJlbnRPclRocm93KCksbCksZX1pc1BhcmVudFJlcXVpcmVkKCl7cmV0dXJuITF9Y3JlYXRlUGFyZW50RWxlbWVudE5vZGUoKXtyZXR1cm4gSXgoKX1zZWxlY3RTdGFydCgpe3JldHVybiB0aGlzLnNlbGVjdFByZXZpb3VzKCl9c2VsZWN0RW5kKCl7cmV0dXJuIHRoaXMuc2VsZWN0TmV4dCgwLDApfXNlbGVjdFByZXZpb3VzKGUsdCl7YXgoKTtjb25zdCBuPXRoaXMuZ2V0UHJldmlvdXNTaWJsaW5nKCkscj10aGlzLmdldFBhcmVudE9yVGhyb3coKTtpZihudWxsPT09bilyZXR1cm4gci5zZWxlY3QoMCwwKTtpZihreChuKSlyZXR1cm4gbi5zZWxlY3QoKTtpZigha2Iobikpe2NvbnN0IGU9bi5nZXRJbmRleFdpdGhpblBhcmVudCgpKzE7cmV0dXJuIHIuc2VsZWN0KGUsZSl9cmV0dXJuIG4uc2VsZWN0KGUsdCl9c2VsZWN0TmV4dChlLHQpe2F4KCk7Y29uc3Qgbj10aGlzLmdldE5leHRTaWJsaW5nKCkscj10aGlzLmdldFBhcmVudE9yVGhyb3coKTtpZihudWxsPT09bilyZXR1cm4gci5zZWxlY3QoKTtpZihreChuKSlyZXR1cm4gbi5zZWxlY3QoMCwwKTtpZigha2Iobikpe2NvbnN0IGU9bi5nZXRJbmRleFdpdGhpblBhcmVudCgpO3JldHVybiByLnNlbGVjdChlLGUpfXJldHVybiBuLnNlbGVjdChlLHQpfW1hcmtEaXJ0eSgpe3RoaXMuZ2V0V3JpdGFibGUoKX19Y2xhc3MgbmIgZXh0ZW5kcyB0YntzdGF0aWMgZ2V0VHlwZSgpe3JldHVyblwibGluZWJyZWFrXCJ9c3RhdGljIGNsb25lKGUpe3JldHVybiBuZXcgbmIoZS5fX2tleSl9Y29uc3RydWN0b3IoZSl7c3VwZXIoZSl9Z2V0VGV4dENvbnRlbnQoKXtyZXR1cm5cIlxcblwifWNyZWF0ZURPTSgpe3JldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYnJcIil9dXBkYXRlRE9NKCl7cmV0dXJuITF9c3RhdGljIGltcG9ydERPTSgpe3JldHVybnticjplPT5mdW5jdGlvbihlKXtjb25zdCB0PWUucGFyZW50RWxlbWVudDtpZihudWxsIT09dCYmWXkodCkpe2NvbnN0IG49dC5maXJzdENoaWxkO2lmKG49PT1lfHxuLm5leHRTaWJsaW5nPT09ZSYmc2Iobikpe2NvbnN0IG49dC5sYXN0Q2hpbGQ7aWYobj09PWV8fG4ucHJldmlvdXNTaWJsaW5nPT09ZSYmc2IobikpcmV0dXJuITB9fXJldHVybiExfShlKXx8ZnVuY3Rpb24oZSl7Y29uc3QgdD1lLnBhcmVudEVsZW1lbnQ7aWYobnVsbCE9PXQmJll5KHQpKXtjb25zdCBuPXQuZmlyc3RDaGlsZDtpZihuPT09ZXx8bi5uZXh0U2libGluZz09PWUmJnNiKG4pKXJldHVybiExO2NvbnN0IHI9dC5sYXN0Q2hpbGQ7aWYocj09PWV8fHIucHJldmlvdXNTaWJsaW5nPT09ZSYmc2IocikpcmV0dXJuITB9cmV0dXJuITF9KGUpP251bGw6e2NvbnZlcnNpb246cmIscHJpb3JpdHk6MH19fXN0YXRpYyBpbXBvcnRKU09OKGUpe3JldHVybiBvYigpfWV4cG9ydEpTT04oKXtyZXR1cm57dHlwZTpcImxpbmVicmVha1wiLHZlcnNpb246MX19fWZ1bmN0aW9uIHJiKGUpe3JldHVybntub2RlOm9iKCl9fWZ1bmN0aW9uIG9iKCl7cmV0dXJuIHp5KG5ldyBuYil9ZnVuY3Rpb24gaWIoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBuYn1mdW5jdGlvbiBzYihlKXtyZXR1cm4gZS5ub2RlVHlwZT09PUpwJiYvXiggfFxcdHxcXHI/XFxuKSskLy50ZXN0KGUudGV4dENvbnRlbnR8fFwiXCIpfWZ1bmN0aW9uIGFiKGUsdCl7cmV0dXJuIDE2JnQ/XCJjb2RlXCI6MTI4JnQ/XCJtYXJrXCI6MzImdD9cInN1YlwiOjY0JnQ/XCJzdXBcIjpudWxsfWZ1bmN0aW9uIGxiKGUsdCl7cmV0dXJuIDEmdD9cInN0cm9uZ1wiOjImdD9cImVtXCI6XCJzcGFuXCJ9ZnVuY3Rpb24gY2IoZSx0LG4scixvKXtjb25zdCBpPXIuY2xhc3NMaXN0O2xldCBzPVB5KG8sXCJiYXNlXCIpO3ZvaWQgMCE9PXMmJmkuYWRkKC4uLnMpLHM9UHkobyxcInVuZGVybGluZVN0cmlrZXRocm91Z2hcIik7bGV0IGE9ITE7Y29uc3QgbD10JmlnJiZ0Jm9nO3ZvaWQgMCE9PXMmJihuJmlnJiZuJm9nPyhhPSEwLGx8fGkuYWRkKC4uLnMpKTpsJiZpLnJlbW92ZSguLi5zKSk7Zm9yKGNvbnN0IGUgaW4geGcpe2NvbnN0IHI9eGdbZV07aWYocz1QeShvLGUpLHZvaWQgMCE9PXMpaWYobiZyKXtpZihhJiYoXCJ1bmRlcmxpbmVcIj09PWV8fFwic3RyaWtldGhyb3VnaFwiPT09ZSkpe3QmciYmaS5yZW1vdmUoLi4ucyk7Y29udGludWV9dCZyJiYoIWx8fFwidW5kZXJsaW5lXCIhPT1lKSYmXCJzdHJpa2V0aHJvdWdoXCIhPT1lfHxpLmFkZCguLi5zKX1lbHNlIHQmciYmaS5yZW1vdmUoLi4ucyl9fWZ1bmN0aW9uIHViKGUsdCxuKXtjb25zdCByPXQuZmlyc3RDaGlsZCxvPW4uaXNDb21wb3NpbmcoKSxpPWUrKG8/bWc6XCJcIik7aWYobnVsbD09cil0LnRleHRDb250ZW50PWk7ZWxzZXtjb25zdCBlPXIubm9kZVZhbHVlO2lmKGUhPT1pKWlmKG98fFVwKXtjb25zdFt0LG4sb109ZnVuY3Rpb24oZSx0KXtjb25zdCBuPWUubGVuZ3RoLHI9dC5sZW5ndGg7bGV0IG89MCxpPTA7Zm9yKDtvPG4mJm88ciYmZVtvXT09PXRbb107KW8rKztmb3IoO2krbzxuJiZpK288ciYmZVtuLWktMV09PT10W3ItaS0xXTspaSsrO3JldHVybltvLG4tby1pLHQuc2xpY2UobyxyLWkpXX0oZSxpKTswIT09biYmci5kZWxldGVEYXRhKHQsbiksci5pbnNlcnREYXRhKHQsbyl9ZWxzZSByLm5vZGVWYWx1ZT1pfX1mdW5jdGlvbiBkYihlLHQsbixyLG8saSl7dWIobyxlLHQpO2NvbnN0IHM9aS50aGVtZS50ZXh0O3ZvaWQgMCE9PXMmJmNiKDAsMCxyLGUscyl9ZnVuY3Rpb24gZmIoZSx0KXtjb25zdCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCk7cmV0dXJuIG4uYXBwZW5kQ2hpbGQoZSksbn1jbGFzcyBtYiBleHRlbmRzIHRie3N0YXRpYyBnZXRUeXBlKCl7cmV0dXJuXCJ0ZXh0XCJ9c3RhdGljIGNsb25lKGUpe3JldHVybiBuZXcgbWIoZS5fX3RleHQsZS5fX2tleSl9YWZ0ZXJDbG9uZUZyb20oZSl7c3VwZXIuYWZ0ZXJDbG9uZUZyb20oZSksdGhpcy5fX2Zvcm1hdD1lLl9fZm9ybWF0LHRoaXMuX19zdHlsZT1lLl9fc3R5bGUsdGhpcy5fX21vZGU9ZS5fX21vZGUsdGhpcy5fX2RldGFpbD1lLl9fZGV0YWlsfWNvbnN0cnVjdG9yKGUsdCl7c3VwZXIodCksdGhpcy5fX3RleHQ9ZSx0aGlzLl9fZm9ybWF0PTAsdGhpcy5fX3N0eWxlPVwiXCIsdGhpcy5fX21vZGU9MCx0aGlzLl9fZGV0YWlsPTB9Z2V0Rm9ybWF0KCl7cmV0dXJuIHRoaXMuZ2V0TGF0ZXN0KCkuX19mb3JtYXR9Z2V0RGV0YWlsKCl7cmV0dXJuIHRoaXMuZ2V0TGF0ZXN0KCkuX19kZXRhaWx9Z2V0TW9kZSgpe2NvbnN0IGU9dGhpcy5nZXRMYXRlc3QoKTtyZXR1cm4gQ2dbZS5fX21vZGVdfWdldFN0eWxlKCl7cmV0dXJuIHRoaXMuZ2V0TGF0ZXN0KCkuX19zdHlsZX1pc1Rva2VuKCl7cmV0dXJuIDE9PT10aGlzLmdldExhdGVzdCgpLl9fbW9kZX1pc0NvbXBvc2luZygpe3JldHVybiB0aGlzLl9fa2V5PT09cnkoKX1pc1NlZ21lbnRlZCgpe3JldHVybiAyPT09dGhpcy5nZXRMYXRlc3QoKS5fX21vZGV9aXNEaXJlY3Rpb25sZXNzKCl7cmV0dXJuISEoMSZ0aGlzLmdldExhdGVzdCgpLl9fZGV0YWlsKX1pc1VubWVyZ2VhYmxlKCl7cmV0dXJuISEoMiZ0aGlzLmdldExhdGVzdCgpLl9fZGV0YWlsKX1oYXNGb3JtYXQoZSl7Y29uc3QgdD14Z1tlXTtyZXR1cm4hISh0aGlzLmdldEZvcm1hdCgpJnQpfWlzU2ltcGxlVGV4dCgpe3JldHVyblwidGV4dFwiPT09dGhpcy5fX3R5cGUmJjA9PT10aGlzLl9fbW9kZX1nZXRUZXh0Q29udGVudCgpe3JldHVybiB0aGlzLmdldExhdGVzdCgpLl9fdGV4dH1nZXRGb3JtYXRGbGFncyhlLHQpe3JldHVybiBRZyh0aGlzLmdldExhdGVzdCgpLl9fZm9ybWF0LGUsdCl9Y2FuSGF2ZUZvcm1hdCgpe3JldHVybiEwfWNyZWF0ZURPTShlLHQpe2NvbnN0IG49dGhpcy5fX2Zvcm1hdCxyPWFiKDAsbiksbz1sYigwLG4pLGk9bnVsbD09PXI/bzpyLHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpKTtsZXQgYT1zO3RoaXMuaGFzRm9ybWF0KFwiY29kZVwiKSYmcy5zZXRBdHRyaWJ1dGUoXCJzcGVsbGNoZWNrXCIsXCJmYWxzZVwiKSxudWxsIT09ciYmKGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChvKSxzLmFwcGVuZENoaWxkKGEpKSxkYihhLHRoaXMsMCxuLHRoaXMuX190ZXh0LGUpO2NvbnN0IGw9dGhpcy5fX3N0eWxlO3JldHVyblwiXCIhPT1sJiYocy5zdHlsZS5jc3NUZXh0PWwpLHN9dXBkYXRlRE9NKGUsdCxuKXtjb25zdCByPXRoaXMuX190ZXh0LG89ZS5fX2Zvcm1hdCxpPXRoaXMuX19mb3JtYXQscz1hYigwLG8pLGE9YWIoMCxpKSxsPWxiKDAsbyksYz1sYigwLGkpO2lmKChudWxsPT09cz9sOnMpIT09KG51bGw9PT1hP2M6YSkpcmV0dXJuITA7aWYocz09PWEmJmwhPT1jKXtjb25zdCBlPXQuZmlyc3RDaGlsZDtudWxsPT1lJiZQZyg0OCk7Y29uc3Qgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGMpO3JldHVybiBkYihvLHRoaXMsMCxpLHIsbiksdC5yZXBsYWNlQ2hpbGQobyxlKSwhMX1sZXQgdT10O251bGwhPT1hJiZudWxsIT09cyYmKHU9dC5maXJzdENoaWxkLG51bGw9PXUmJlBnKDQ5KSksdWIocix1LHRoaXMpO2NvbnN0IGQ9bi50aGVtZS50ZXh0O3ZvaWQgMCE9PWQmJm8hPT1pJiZjYigwLG8saSx1LGQpO2NvbnN0IGY9ZS5fX3N0eWxlLG09dGhpcy5fX3N0eWxlO3JldHVybiBmIT09bSYmKHQuc3R5bGUuY3NzVGV4dD1tKSwhMX1zdGF0aWMgaW1wb3J0RE9NKCl7cmV0dXJue1wiI3RleHRcIjooKT0+KHtjb252ZXJzaW9uOnZiLHByaW9yaXR5OjB9KSxiOigpPT4oe2NvbnZlcnNpb246cGIscHJpb3JpdHk6MH0pLGNvZGU6KCk9Pih7Y29udmVyc2lvbjp3Yixwcmlvcml0eTowfSksZW06KCk9Pih7Y29udmVyc2lvbjp3Yixwcmlvcml0eTowfSksaTooKT0+KHtjb252ZXJzaW9uOndiLHByaW9yaXR5OjB9KSxzOigpPT4oe2NvbnZlcnNpb246d2IscHJpb3JpdHk6MH0pLHNwYW46KCk9Pih7Y29udmVyc2lvbjpoYixwcmlvcml0eTowfSksc3Ryb25nOigpPT4oe2NvbnZlcnNpb246d2IscHJpb3JpdHk6MH0pLHN1YjooKT0+KHtjb252ZXJzaW9uOndiLHByaW9yaXR5OjB9KSxzdXA6KCk9Pih7Y29udmVyc2lvbjp3Yixwcmlvcml0eTowfSksdTooKT0+KHtjb252ZXJzaW9uOndiLHByaW9yaXR5OjB9KX19c3RhdGljIGltcG9ydEpTT04oZSl7Y29uc3QgdD1TYihlLnRleHQpO3JldHVybiB0LnNldEZvcm1hdChlLmZvcm1hdCksdC5zZXREZXRhaWwoZS5kZXRhaWwpLHQuc2V0TW9kZShlLm1vZGUpLHQuc2V0U3R5bGUoZS5zdHlsZSksdH1leHBvcnRET00oZSl7bGV0e2VsZW1lbnQ6dH09c3VwZXIuZXhwb3J0RE9NKGUpO3JldHVybiBudWxsIT09dCYmVXkodCl8fFBnKDEzMiksdC5zdHlsZS53aGl0ZVNwYWNlPVwicHJlLXdyYXBcIix0aGlzLmhhc0Zvcm1hdChcImJvbGRcIikmJih0PWZiKHQsXCJiXCIpKSx0aGlzLmhhc0Zvcm1hdChcIml0YWxpY1wiKSYmKHQ9ZmIodCxcImlcIikpLHRoaXMuaGFzRm9ybWF0KFwic3RyaWtldGhyb3VnaFwiKSYmKHQ9ZmIodCxcInNcIikpLHRoaXMuaGFzRm9ybWF0KFwidW5kZXJsaW5lXCIpJiYodD1mYih0LFwidVwiKSkse2VsZW1lbnQ6dH19ZXhwb3J0SlNPTigpe3JldHVybntkZXRhaWw6dGhpcy5nZXREZXRhaWwoKSxmb3JtYXQ6dGhpcy5nZXRGb3JtYXQoKSxtb2RlOnRoaXMuZ2V0TW9kZSgpLHN0eWxlOnRoaXMuZ2V0U3R5bGUoKSx0ZXh0OnRoaXMuZ2V0VGV4dENvbnRlbnQoKSx0eXBlOlwidGV4dFwiLHZlcnNpb246MX19c2VsZWN0aW9uVHJhbnNmb3JtKGUsdCl7fXNldEZvcm1hdChlKXtjb25zdCB0PXRoaXMuZ2V0V3JpdGFibGUoKTtyZXR1cm4gdC5fX2Zvcm1hdD1cInN0cmluZ1wiPT10eXBlb2YgZT94Z1tlXTplLHR9c2V0RGV0YWlsKGUpe2NvbnN0IHQ9dGhpcy5nZXRXcml0YWJsZSgpO3JldHVybiB0Ll9fZGV0YWlsPVwic3RyaW5nXCI9PXR5cGVvZiBlP3dnW2VdOmUsdH1zZXRTdHlsZShlKXtjb25zdCB0PXRoaXMuZ2V0V3JpdGFibGUoKTtyZXR1cm4gdC5fX3N0eWxlPWUsdH10b2dnbGVGb3JtYXQoZSl7Y29uc3QgdD1RZyh0aGlzLmdldEZvcm1hdCgpLGUsbnVsbCk7cmV0dXJuIHRoaXMuc2V0Rm9ybWF0KHQpfXRvZ2dsZURpcmVjdGlvbmxlc3MoKXtjb25zdCBlPXRoaXMuZ2V0V3JpdGFibGUoKTtyZXR1cm4gZS5fX2RldGFpbF49MSxlfXRvZ2dsZVVubWVyZ2VhYmxlKCl7Y29uc3QgZT10aGlzLmdldFdyaXRhYmxlKCk7cmV0dXJuIGUuX19kZXRhaWxePTIsZX1zZXRNb2RlKGUpe2NvbnN0IHQ9RWdbZV07aWYodGhpcy5fX21vZGU9PT10KXJldHVybiB0aGlzO2NvbnN0IG49dGhpcy5nZXRXcml0YWJsZSgpO3JldHVybiBuLl9fbW9kZT10LG59c2V0VGV4dENvbnRlbnQoZSl7aWYodGhpcy5fX3RleHQ9PT1lKXJldHVybiB0aGlzO2NvbnN0IHQ9dGhpcy5nZXRXcml0YWJsZSgpO3JldHVybiB0Ll9fdGV4dD1lLHR9c2VsZWN0KGUsdCl7YXgoKTtsZXQgbj1lLHI9dDtjb25zdCBvPUhiKCksaT10aGlzLmdldFRleHRDb250ZW50KCkscz10aGlzLl9fa2V5O2lmKFwic3RyaW5nXCI9PXR5cGVvZiBpKXtjb25zdCBlPWkubGVuZ3RoO3ZvaWQgMD09PW4mJihuPWUpLHZvaWQgMD09PXImJihyPWUpfWVsc2Ugbj0wLHI9MDtpZighRGIobykpcmV0dXJuIFViKHMsbixzLHIsXCJ0ZXh0XCIsXCJ0ZXh0XCIpO3tjb25zdCBlPXJ5KCk7ZSE9PW8uYW5jaG9yLmtleSYmZSE9PW8uZm9jdXMua2V5fHxueShzKSxvLnNldFRleHROb2RlUmFuZ2UodGhpcyxuLHRoaXMscil9cmV0dXJuIG99c2VsZWN0U3RhcnQoKXtyZXR1cm4gdGhpcy5zZWxlY3QoMCwwKX1zZWxlY3RFbmQoKXtjb25zdCBlPXRoaXMuZ2V0VGV4dENvbnRlbnRTaXplKCk7cmV0dXJuIHRoaXMuc2VsZWN0KGUsZSl9c3BsaWNlVGV4dChlLHQsbixyKXtjb25zdCBvPXRoaXMuZ2V0V3JpdGFibGUoKSxpPW8uX190ZXh0LHM9bi5sZW5ndGg7bGV0IGE9ZTthPDAmJihhPXMrYSxhPDAmJihhPTApKTtjb25zdCBsPUhiKCk7aWYociYmRGIobCkpe2NvbnN0IHQ9ZStzO2wuc2V0VGV4dE5vZGVSYW5nZShvLHQsbyx0KX1jb25zdCBjPWkuc2xpY2UoMCxhKStuK2kuc2xpY2UoYSt0KTtyZXR1cm4gby5fX3RleHQ9YyxvfWNhbkluc2VydFRleHRCZWZvcmUoKXtyZXR1cm4hMH1jYW5JbnNlcnRUZXh0QWZ0ZXIoKXtyZXR1cm4hMH1zcGxpdFRleHQoLi4uZSl7YXgoKTtjb25zdCB0PXRoaXMuZ2V0TGF0ZXN0KCksbj10LmdldFRleHRDb250ZW50KCkscj10Ll9fa2V5LG89cnkoKSxpPW5ldyBTZXQoZSkscz1bXSxhPW4ubGVuZ3RoO2xldCBsPVwiXCI7Zm9yKGxldCBlPTA7ZTxhO2UrKylcIlwiIT09bCYmaS5oYXMoZSkmJihzLnB1c2gobCksbD1cIlwiKSxsKz1uW2VdO1wiXCIhPT1sJiZzLnB1c2gobCk7Y29uc3QgYz1zLmxlbmd0aDtpZigwPT09YylyZXR1cm5bXTtpZihzWzBdPT09bilyZXR1cm5bdF07Y29uc3QgdT1zWzBdLGQ9dC5nZXRQYXJlbnQoKTtsZXQgZjtjb25zdCBtPXQuZ2V0Rm9ybWF0KCksaD10LmdldFN0eWxlKCkscD10Ll9fZGV0YWlsO2xldCBnPSExO3QuaXNTZWdtZW50ZWQoKT8oZj1TYih1KSxmLl9fZm9ybWF0PW0sZi5fX3N0eWxlPWgsZi5fX2RldGFpbD1wLGc9ITApOihmPXQuZ2V0V3JpdGFibGUoKSxmLl9fdGV4dD11KTtjb25zdCB5PUhiKCksdj1bZl07bGV0IGI9dS5sZW5ndGg7Zm9yKGxldCBlPTE7ZTxjO2UrKyl7Y29uc3QgdD1zW2VdLG49dC5sZW5ndGgsaT1TYih0KS5nZXRXcml0YWJsZSgpO2kuX19mb3JtYXQ9bSxpLl9fc3R5bGU9aCxpLl9fZGV0YWlsPXA7Y29uc3QgYT1pLl9fa2V5LGw9YituO2lmKERiKHkpKXtjb25zdCBlPXkuYW5jaG9yLHQ9eS5mb2N1cztlLmtleT09PXImJlwidGV4dFwiPT09ZS50eXBlJiZlLm9mZnNldD5iJiZlLm9mZnNldDw9bCYmKGUua2V5PWEsZS5vZmZzZXQtPWIseS5kaXJ0eT0hMCksdC5rZXk9PT1yJiZcInRleHRcIj09PXQudHlwZSYmdC5vZmZzZXQ+YiYmdC5vZmZzZXQ8PWwmJih0LmtleT1hLHQub2Zmc2V0LT1iLHkuZGlydHk9ITApfW89PT1yJiZueShhKSxiPWwsdi5wdXNoKGkpfWlmKG51bGwhPT1kKXshZnVuY3Rpb24oZSl7Y29uc3QgdD1lLmdldFByZXZpb3VzU2libGluZygpLG49ZS5nZXROZXh0U2libGluZygpO251bGwhPT10JiZ0eSh0KSxudWxsIT09biYmdHkobil9KHRoaXMpO2NvbnN0IGU9ZC5nZXRXcml0YWJsZSgpLHQ9dGhpcy5nZXRJbmRleFdpdGhpblBhcmVudCgpO2c/KGUuc3BsaWNlKHQsMCx2KSx0aGlzLnJlbW92ZSgpKTplLnNwbGljZSh0LDEsdiksRGIoeSkmJnFiKHksZCx0LGMtMSl9cmV0dXJuIHZ9bWVyZ2VXaXRoU2libGluZyhlKXtjb25zdCB0PWU9PT10aGlzLmdldFByZXZpb3VzU2libGluZygpO3R8fGU9PT10aGlzLmdldE5leHRTaWJsaW5nKCl8fFBnKDUwKTtjb25zdCBuPXRoaXMuX19rZXkscj1lLl9fa2V5LG89dGhpcy5fX3RleHQsaT1vLmxlbmd0aDtyeSgpPT09ciYmbnkobik7Y29uc3Qgcz1IYigpO2lmKERiKHMpKXtjb25zdCBvPXMuYW5jaG9yLGE9cy5mb2N1cztudWxsIT09byYmby5rZXk9PT1yJiYoWmIobyx0LG4sZSxpKSxzLmRpcnR5PSEwKSxudWxsIT09YSYmYS5rZXk9PT1yJiYoWmIoYSx0LG4sZSxpKSxzLmRpcnR5PSEwKX1jb25zdCBhPWUuX190ZXh0LGw9dD9hK286bythO3RoaXMuc2V0VGV4dENvbnRlbnQobCk7Y29uc3QgYz10aGlzLmdldFdyaXRhYmxlKCk7cmV0dXJuIGUucmVtb3ZlKCksY31pc1RleHRFbnRpdHkoKXtyZXR1cm4hMX19ZnVuY3Rpb24gaGIoZSl7cmV0dXJue2ZvckNoaWxkOkViKGUuc3R5bGUpLG5vZGU6bnVsbH19ZnVuY3Rpb24gcGIoZSl7Y29uc3QgdD1lLG49XCJub3JtYWxcIj09PXQuc3R5bGUuZm9udFdlaWdodDtyZXR1cm57Zm9yQ2hpbGQ6RWIodC5zdHlsZSxuP3ZvaWQgMDpcImJvbGRcIiksbm9kZTpudWxsfX1jb25zdCBnYj1uZXcgV2Vha01hcDtmdW5jdGlvbiB5YihlKXtyZXR1cm5cIlBSRVwiPT09ZS5ub2RlTmFtZXx8ZS5ub2RlVHlwZT09PVpwJiZ2b2lkIDAhPT1lLnN0eWxlJiZ2b2lkIDAhPT1lLnN0eWxlLndoaXRlU3BhY2UmJmUuc3R5bGUud2hpdGVTcGFjZS5zdGFydHNXaXRoKFwicHJlXCIpfWZ1bmN0aW9uIHZiKGUpe2NvbnN0IHQ9ZTtudWxsPT09ZS5wYXJlbnRFbGVtZW50JiZQZygxMjkpO2xldCBuPXQudGV4dENvbnRlbnR8fFwiXCI7aWYobnVsbCE9PWZ1bmN0aW9uKGUpe2xldCB0LG49ZS5wYXJlbnROb2RlO2NvbnN0IHI9W2VdO2Zvcig7bnVsbCE9PW4mJnZvaWQgMD09PSh0PWdiLmdldChuKSkmJiF5YihuKTspci5wdXNoKG4pLG49bi5wYXJlbnROb2RlO2NvbnN0IG89dm9pZCAwPT09dD9uOnQ7Zm9yKGxldCBlPTA7ZTxyLmxlbmd0aDtlKyspZ2Iuc2V0KHJbZV0sbyk7cmV0dXJuIG99KHQpKXtjb25zdCBlPW4uc3BsaXQoLyhcXHI/XFxufFxcdCkvKSx0PVtdLHI9ZS5sZW5ndGg7Zm9yKGxldCBuPTA7bjxyO24rKyl7Y29uc3Qgcj1lW25dO1wiXFxuXCI9PT1yfHxcIlxcclxcblwiPT09cj90LnB1c2gob2IoKSk6XCJcXHRcIj09PXI/dC5wdXNoKF9iKCkpOlwiXCIhPT1yJiZ0LnB1c2goU2IocikpfXJldHVybntub2RlOnR9fWlmKG49bi5yZXBsYWNlKC9cXHIvZyxcIlwiKS5yZXBsYWNlKC9bIFxcdFxcbl0rL2csXCIgXCIpLFwiXCI9PT1uKXJldHVybntub2RlOm51bGx9O2lmKFwiIFwiPT09blswXSl7bGV0IGU9dCxyPSEwO2Zvcig7bnVsbCE9PWUmJm51bGwhPT0oZT1iYihlLCExKSk7KXtjb25zdCB0PWUudGV4dENvbnRlbnR8fFwiXCI7aWYodC5sZW5ndGg+MCl7L1sgXFx0XFxuXSQvLnRlc3QodCkmJihuPW4uc2xpY2UoMSkpLHI9ITE7YnJlYWt9fXImJihuPW4uc2xpY2UoMSkpfWlmKFwiIFwiPT09bltuLmxlbmd0aC0xXSl7bGV0IGU9dCxyPSEwO2Zvcig7bnVsbCE9PWUmJm51bGwhPT0oZT1iYihlLCEwKSk7KWlmKChlLnRleHRDb250ZW50fHxcIlwiKS5yZXBsYWNlKC9eKCB8XFx0fFxccj9cXG4pKy8sXCJcIikubGVuZ3RoPjApe3I9ITE7YnJlYWt9ciYmKG49bi5zbGljZSgwLG4ubGVuZ3RoLTEpKX1yZXR1cm5cIlwiPT09bj97bm9kZTpudWxsfTp7bm9kZTpTYihuKX19ZnVuY3Rpb24gYmIoZSx0KXtsZXQgbj1lO2Zvcig7Oyl7bGV0IGU7Zm9yKDtudWxsPT09KGU9dD9uLm5leHRTaWJsaW5nOm4ucHJldmlvdXNTaWJsaW5nKTspe2NvbnN0IGU9bi5wYXJlbnRFbGVtZW50O2lmKG51bGw9PT1lKXJldHVybiBudWxsO249ZX1pZihuPWUsbi5ub2RlVHlwZT09PVpwKXtjb25zdCBlPW4uc3R5bGUuZGlzcGxheTtpZihcIlwiPT09ZSYmISR5KG4pfHxcIlwiIT09ZSYmIWUuc3RhcnRzV2l0aChcImlubGluZVwiKSlyZXR1cm4gbnVsbH1sZXQgcj1uO2Zvcig7bnVsbCE9PShyPXQ/bi5maXJzdENoaWxkOm4ubGFzdENoaWxkKTspbj1yO2lmKG4ubm9kZVR5cGU9PT1KcClyZXR1cm4gbjtpZihcIkJSXCI9PT1uLm5vZGVOYW1lKXJldHVybiBudWxsfX1jb25zdCB4Yj17Y29kZTpcImNvZGVcIixlbTpcIml0YWxpY1wiLGk6XCJpdGFsaWNcIixzOlwic3RyaWtldGhyb3VnaFwiLHN0cm9uZzpcImJvbGRcIixzdWI6XCJzdWJzY3JpcHRcIixzdXA6XCJzdXBlcnNjcmlwdFwiLHU6XCJ1bmRlcmxpbmVcIn07ZnVuY3Rpb24gd2IoZSl7Y29uc3QgdD14YltlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldO3JldHVybiB2b2lkIDA9PT10P3tub2RlOm51bGx9Ontmb3JDaGlsZDpFYihlLnN0eWxlLHQpLG5vZGU6bnVsbH19ZnVuY3Rpb24gU2IoZT1cIlwiKXtyZXR1cm4genkobmV3IG1iKGUpKX1mdW5jdGlvbiBrYihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIG1ifWZ1bmN0aW9uIEViKGUsdCl7Y29uc3Qgbj1lLmZvbnRXZWlnaHQscj1lLnRleHREZWNvcmF0aW9uLnNwbGl0KFwiIFwiKSxvPVwiNzAwXCI9PT1ufHxcImJvbGRcIj09PW4saT1yLmluY2x1ZGVzKFwibGluZS10aHJvdWdoXCIpLHM9XCJpdGFsaWNcIj09PWUuZm9udFN0eWxlLGE9ci5pbmNsdWRlcyhcInVuZGVybGluZVwiKSxsPWUudmVydGljYWxBbGlnbjtyZXR1cm4gZT0+a2IoZSk/KG8mJiFlLmhhc0Zvcm1hdChcImJvbGRcIikmJmUudG9nZ2xlRm9ybWF0KFwiYm9sZFwiKSxpJiYhZS5oYXNGb3JtYXQoXCJzdHJpa2V0aHJvdWdoXCIpJiZlLnRvZ2dsZUZvcm1hdChcInN0cmlrZXRocm91Z2hcIikscyYmIWUuaGFzRm9ybWF0KFwiaXRhbGljXCIpJiZlLnRvZ2dsZUZvcm1hdChcIml0YWxpY1wiKSxhJiYhZS5oYXNGb3JtYXQoXCJ1bmRlcmxpbmVcIikmJmUudG9nZ2xlRm9ybWF0KFwidW5kZXJsaW5lXCIpLFwic3ViXCIhPT1sfHxlLmhhc0Zvcm1hdChcInN1YnNjcmlwdFwiKXx8ZS50b2dnbGVGb3JtYXQoXCJzdWJzY3JpcHRcIiksXCJzdXBlclwiIT09bHx8ZS5oYXNGb3JtYXQoXCJzdXBlcnNjcmlwdFwiKXx8ZS50b2dnbGVGb3JtYXQoXCJzdXBlcnNjcmlwdFwiKSx0JiYhZS5oYXNGb3JtYXQodCkmJmUudG9nZ2xlRm9ybWF0KHQpLGUpOmV9Y2xhc3MgQ2IgZXh0ZW5kcyBtYntzdGF0aWMgZ2V0VHlwZSgpe3JldHVyblwidGFiXCJ9c3RhdGljIGNsb25lKGUpe3JldHVybiBuZXcgQ2IoZS5fX2tleSl9YWZ0ZXJDbG9uZUZyb20oZSl7c3VwZXIuYWZ0ZXJDbG9uZUZyb20oZSksdGhpcy5fX3RleHQ9ZS5fX3RleHR9Y29uc3RydWN0b3IoZSl7c3VwZXIoXCJcXHRcIixlKSx0aGlzLl9fZGV0YWlsPTJ9c3RhdGljIGltcG9ydERPTSgpe3JldHVybiBudWxsfXN0YXRpYyBpbXBvcnRKU09OKGUpe2NvbnN0IHQ9X2IoKTtyZXR1cm4gdC5zZXRGb3JtYXQoZS5mb3JtYXQpLHQuc2V0U3R5bGUoZS5zdHlsZSksdH1leHBvcnRKU09OKCl7cmV0dXJuey4uLnN1cGVyLmV4cG9ydEpTT04oKSx0eXBlOlwidGFiXCIsdmVyc2lvbjoxfX1zZXRUZXh0Q29udGVudChlKXtQZygxMjYpfXNldERldGFpbChlKXtQZygxMjcpfXNldE1vZGUoZSl7UGcoMTI4KX1jYW5JbnNlcnRUZXh0QmVmb3JlKCl7cmV0dXJuITF9Y2FuSW5zZXJ0VGV4dEFmdGVyKCl7cmV0dXJuITF9fWZ1bmN0aW9uIF9iKCl7cmV0dXJuIHp5KG5ldyBDYil9Y2xhc3MgUGJ7Y29uc3RydWN0b3IoZSx0LG4pe3RoaXMuX3NlbGVjdGlvbj1udWxsLHRoaXMua2V5PWUsdGhpcy5vZmZzZXQ9dCx0aGlzLnR5cGU9bn1pcyhlKXtyZXR1cm4gdGhpcy5rZXk9PT1lLmtleSYmdGhpcy5vZmZzZXQ9PT1lLm9mZnNldCYmdGhpcy50eXBlPT09ZS50eXBlfWlzQmVmb3JlKGUpe2xldCB0PXRoaXMuZ2V0Tm9kZSgpLG49ZS5nZXROb2RlKCk7Y29uc3Qgcj10aGlzLm9mZnNldCxvPWUub2Zmc2V0O2lmKGt4KHQpKXtjb25zdCBlPXQuZ2V0RGVzY2VuZGFudEJ5SW5kZXgocik7dD1udWxsIT1lP2U6dH1pZihreChuKSl7Y29uc3QgZT1uLmdldERlc2NlbmRhbnRCeUluZGV4KG8pO249bnVsbCE9ZT9lOm59cmV0dXJuIHQ9PT1uP3I8bzp0LmlzQmVmb3JlKG4pfWdldE5vZGUoKXtjb25zdCBlPW95KHRoaXMua2V5KTtyZXR1cm4gbnVsbD09PWUmJlBnKDIwKSxlfXNldChlLHQsbil7Y29uc3Qgcj10aGlzLl9zZWxlY3Rpb24sbz10aGlzLmtleTt0aGlzLmtleT1lLHRoaXMub2Zmc2V0PXQsdGhpcy50eXBlPW4sc3goKXx8KHJ5KCk9PT1vJiZueShlKSxudWxsIT09ciYmKHIuc2V0Q2FjaGVkTm9kZXMobnVsbCksci5kaXJ0eT0hMCkpfX1mdW5jdGlvbiBPYihlLHQsbil7cmV0dXJuIG5ldyBQYihlLHQsbil9ZnVuY3Rpb24gTmIoZSx0KXtsZXQgbj10Ll9fa2V5LHI9ZS5vZmZzZXQsbz1cImVsZW1lbnRcIjtpZihrYih0KSl7bz1cInRleHRcIjtjb25zdCBlPXQuZ2V0VGV4dENvbnRlbnRTaXplKCk7cj5lJiYocj1lKX1lbHNlIGlmKCFreCh0KSl7Y29uc3QgZT10LmdldE5leHRTaWJsaW5nKCk7aWYoa2IoZSkpbj1lLl9fa2V5LHI9MCxvPVwidGV4dFwiO2Vsc2V7Y29uc3QgZT10LmdldFBhcmVudCgpO2UmJihuPWUuX19rZXkscj10LmdldEluZGV4V2l0aGluUGFyZW50KCkrMSl9fWUuc2V0KG4scixvKX1mdW5jdGlvbiBUYihlLHQpe2lmKGt4KHQpKXtjb25zdCBuPXQuZ2V0TGFzdERlc2NlbmRhbnQoKTtreChuKXx8a2Iobik/TmIoZSxuKTpOYihlLHQpfWVsc2UgTmIoZSx0KX1mdW5jdGlvbiBNYihlLHQsbixyKXtlLmtleT10LGUub2Zmc2V0PW4sZS50eXBlPXJ9Y2xhc3MgUmJ7Y29uc3RydWN0b3IoZSl7dGhpcy5fY2FjaGVkTm9kZXM9bnVsbCx0aGlzLl9ub2Rlcz1lLHRoaXMuZGlydHk9ITF9Z2V0Q2FjaGVkTm9kZXMoKXtyZXR1cm4gdGhpcy5fY2FjaGVkTm9kZXN9c2V0Q2FjaGVkTm9kZXMoZSl7dGhpcy5fY2FjaGVkTm9kZXM9ZX1pcyhlKXtpZighQWIoZSkpcmV0dXJuITE7Y29uc3QgdD10aGlzLl9ub2RlcyxuPWUuX25vZGVzO3JldHVybiB0LnNpemU9PT1uLnNpemUmJkFycmF5LmZyb20odCkuZXZlcnkoKGU9Pm4uaGFzKGUpKSl9aXNDb2xsYXBzZWQoKXtyZXR1cm4hMX1pc0JhY2t3YXJkKCl7cmV0dXJuITF9Z2V0U3RhcnRFbmRQb2ludHMoKXtyZXR1cm4gbnVsbH1hZGQoZSl7dGhpcy5kaXJ0eT0hMCx0aGlzLl9ub2Rlcy5hZGQoZSksdGhpcy5fY2FjaGVkTm9kZXM9bnVsbH1kZWxldGUoZSl7dGhpcy5kaXJ0eT0hMCx0aGlzLl9ub2Rlcy5kZWxldGUoZSksdGhpcy5fY2FjaGVkTm9kZXM9bnVsbH1jbGVhcigpe3RoaXMuZGlydHk9ITAsdGhpcy5fbm9kZXMuY2xlYXIoKSx0aGlzLl9jYWNoZWROb2Rlcz1udWxsfWhhcyhlKXtyZXR1cm4gdGhpcy5fbm9kZXMuaGFzKGUpfWNsb25lKCl7cmV0dXJuIG5ldyBSYihuZXcgU2V0KHRoaXMuX25vZGVzKSl9ZXh0cmFjdCgpe3JldHVybiB0aGlzLmdldE5vZGVzKCl9aW5zZXJ0UmF3VGV4dChlKXt9aW5zZXJ0VGV4dCgpe31pbnNlcnROb2RlcyhlKXtjb25zdCB0PXRoaXMuZ2V0Tm9kZXMoKSxuPXQubGVuZ3RoLHI9dFtuLTFdO2xldCBvO2lmKGtiKHIpKW89ci5zZWxlY3QoKTtlbHNle2NvbnN0IGU9ci5nZXRJbmRleFdpdGhpblBhcmVudCgpKzE7bz1yLmdldFBhcmVudE9yVGhyb3coKS5zZWxlY3QoZSxlKX1vLmluc2VydE5vZGVzKGUpO2ZvcihsZXQgZT0wO2U8bjtlKyspdFtlXS5yZW1vdmUoKX1nZXROb2Rlcygpe2NvbnN0IGU9dGhpcy5fY2FjaGVkTm9kZXM7aWYobnVsbCE9PWUpcmV0dXJuIGU7Y29uc3QgdD10aGlzLl9ub2RlcyxuPVtdO2Zvcihjb25zdCBlIG9mIHQpe2NvbnN0IHQ9b3koZSk7bnVsbCE9PXQmJm4ucHVzaCh0KX1yZXR1cm4gc3goKXx8KHRoaXMuX2NhY2hlZE5vZGVzPW4pLG59Z2V0VGV4dENvbnRlbnQoKXtjb25zdCBlPXRoaXMuZ2V0Tm9kZXMoKTtsZXQgdD1cIlwiO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXQrPWVbbl0uZ2V0VGV4dENvbnRlbnQoKTtyZXR1cm4gdH19ZnVuY3Rpb24gRGIoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBqYn1jbGFzcyBqYntjb25zdHJ1Y3RvcihlLHQsbixyKXt0aGlzLmFuY2hvcj1lLHRoaXMuZm9jdXM9dCxlLl9zZWxlY3Rpb249dGhpcyx0Ll9zZWxlY3Rpb249dGhpcyx0aGlzLl9jYWNoZWROb2Rlcz1udWxsLHRoaXMuZm9ybWF0PW4sdGhpcy5zdHlsZT1yLHRoaXMuZGlydHk9ITF9Z2V0Q2FjaGVkTm9kZXMoKXtyZXR1cm4gdGhpcy5fY2FjaGVkTm9kZXN9c2V0Q2FjaGVkTm9kZXMoZSl7dGhpcy5fY2FjaGVkTm9kZXM9ZX1pcyhlKXtyZXR1cm4hIURiKGUpJiZ0aGlzLmFuY2hvci5pcyhlLmFuY2hvcikmJnRoaXMuZm9jdXMuaXMoZS5mb2N1cykmJnRoaXMuZm9ybWF0PT09ZS5mb3JtYXQmJnRoaXMuc3R5bGU9PT1lLnN0eWxlfWlzQ29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuYW5jaG9yLmlzKHRoaXMuZm9jdXMpfWdldE5vZGVzKCl7Y29uc3QgZT10aGlzLl9jYWNoZWROb2RlcztpZihudWxsIT09ZSlyZXR1cm4gZTtjb25zdCB0PXRoaXMuYW5jaG9yLG49dGhpcy5mb2N1cyxyPXQuaXNCZWZvcmUobiksbz1yP3Q6bixpPXI/bjp0O2xldCBzPW8uZ2V0Tm9kZSgpLGE9aS5nZXROb2RlKCk7Y29uc3QgbD1vLm9mZnNldCxjPWkub2Zmc2V0O2lmKGt4KHMpKXtjb25zdCBlPXMuZ2V0RGVzY2VuZGFudEJ5SW5kZXgobCk7cz1udWxsIT1lP2U6c31pZihreChhKSl7bGV0IGU9YS5nZXREZXNjZW5kYW50QnlJbmRleChjKTtudWxsIT09ZSYmZSE9PXMmJmEuZ2V0Q2hpbGRBdEluZGV4KGMpPT09ZSYmKGU9ZS5nZXRQcmV2aW91c1NpYmxpbmcoKSksYT1udWxsIT1lP2U6YX1sZXQgdTtyZXR1cm4gdT1zLmlzKGEpP2t4KHMpJiZzLmdldENoaWxkcmVuU2l6ZSgpPjA/W106W3NdOnMuZ2V0Tm9kZXNCZXR3ZWVuKGEpLHN4KCl8fCh0aGlzLl9jYWNoZWROb2Rlcz11KSx1fXNldFRleHROb2RlUmFuZ2UoZSx0LG4scil7TWIodGhpcy5hbmNob3IsZS5fX2tleSx0LFwidGV4dFwiKSxNYih0aGlzLmZvY3VzLG4uX19rZXkscixcInRleHRcIiksdGhpcy5fY2FjaGVkTm9kZXM9bnVsbCx0aGlzLmRpcnR5PSEwfWdldFRleHRDb250ZW50KCl7Y29uc3QgZT10aGlzLmdldE5vZGVzKCk7aWYoMD09PWUubGVuZ3RoKXJldHVyblwiXCI7Y29uc3QgdD1lWzBdLG49ZVtlLmxlbmd0aC0xXSxyPXRoaXMuYW5jaG9yLG89dGhpcy5mb2N1cyxpPXIuaXNCZWZvcmUobyksW3MsYV09TGIodGhpcyk7bGV0IGw9XCJcIixjPSEwO2ZvcihsZXQgdT0wO3U8ZS5sZW5ndGg7dSsrKXtjb25zdCBkPWVbdV07aWYoa3goZCkmJiFkLmlzSW5saW5lKCkpY3x8KGwrPVwiXFxuXCIpLGM9IWQuaXNFbXB0eSgpO2Vsc2UgaWYoYz0hMSxrYihkKSl7bGV0IGU9ZC5nZXRUZXh0Q29udGVudCgpO2Q9PT10P2Q9PT1uP1wiZWxlbWVudFwiPT09ci50eXBlJiZcImVsZW1lbnRcIj09PW8udHlwZSYmby5vZmZzZXQhPT1yLm9mZnNldHx8KGU9czxhP2Uuc2xpY2UocyxhKTplLnNsaWNlKGEscykpOmU9aT9lLnNsaWNlKHMpOmUuc2xpY2UoYSk6ZD09PW4mJihlPWk/ZS5zbGljZSgwLGEpOmUuc2xpY2UoMCxzKSksbCs9ZX1lbHNlIVB4KGQpJiYhaWIoZCl8fGQ9PT1uJiZ0aGlzLmlzQ29sbGFwc2VkKCl8fChsKz1kLmdldFRleHRDb250ZW50KCkpfXJldHVybiBsfWFwcGx5RE9NUmFuZ2UoZSl7Y29uc3QgdD11eCgpLG49dC5nZXRFZGl0b3JTdGF0ZSgpLl9zZWxlY3Rpb24scj1WYihlLnN0YXJ0Q29udGFpbmVyLGUuc3RhcnRPZmZzZXQsZS5lbmRDb250YWluZXIsZS5lbmRPZmZzZXQsdCxuKTtpZihudWxsPT09cilyZXR1cm47Y29uc3RbbyxpXT1yO01iKHRoaXMuYW5jaG9yLG8ua2V5LG8ub2Zmc2V0LG8udHlwZSksTWIodGhpcy5mb2N1cyxpLmtleSxpLm9mZnNldCxpLnR5cGUpLHRoaXMuX2NhY2hlZE5vZGVzPW51bGx9Y2xvbmUoKXtjb25zdCBlPXRoaXMuYW5jaG9yLHQ9dGhpcy5mb2N1cztyZXR1cm4gbmV3IGpiKE9iKGUua2V5LGUub2Zmc2V0LGUudHlwZSksT2IodC5rZXksdC5vZmZzZXQsdC50eXBlKSx0aGlzLmZvcm1hdCx0aGlzLnN0eWxlKX10b2dnbGVGb3JtYXQoZSl7dGhpcy5mb3JtYXQ9UWcodGhpcy5mb3JtYXQsZSxudWxsKSx0aGlzLmRpcnR5PSEwfXNldFN0eWxlKGUpe3RoaXMuc3R5bGU9ZSx0aGlzLmRpcnR5PSEwfWhhc0Zvcm1hdChlKXtjb25zdCB0PXhnW2VdO3JldHVybiEhKHRoaXMuZm9ybWF0JnQpfWluc2VydFJhd1RleHQoZSl7Y29uc3QgdD1lLnNwbGl0KC8oXFxyP1xcbnxcXHQpLyksbj1bXSxyPXQubGVuZ3RoO2ZvcihsZXQgZT0wO2U8cjtlKyspe2NvbnN0IHI9dFtlXTtcIlxcblwiPT09cnx8XCJcXHJcXG5cIj09PXI/bi5wdXNoKG9iKCkpOlwiXFx0XCI9PT1yP24ucHVzaChfYigpKTpuLnB1c2goU2IocikpfXRoaXMuaW5zZXJ0Tm9kZXMobil9aW5zZXJ0VGV4dChlKXtjb25zdCB0PXRoaXMuYW5jaG9yLG49dGhpcy5mb2N1cyxyPXRoaXMuZm9ybWF0LG89dGhpcy5zdHlsZTtsZXQgaT10LHM9bjshdGhpcy5pc0NvbGxhcHNlZCgpJiZuLmlzQmVmb3JlKHQpJiYoaT1uLHM9dCksXCJlbGVtZW50XCI9PT1pLnR5cGUmJmZ1bmN0aW9uKGUsdCxuLHIpe2NvbnN0IG89ZS5nZXROb2RlKCksaT1vLmdldENoaWxkQXRJbmRleChlLm9mZnNldCkscz1TYigpLGE9Tngobyk/SXgoKS5hcHBlbmQocyk6cztzLnNldEZvcm1hdChuKSxzLnNldFN0eWxlKHIpLG51bGw9PT1pP28uYXBwZW5kKGEpOmkuaW5zZXJ0QmVmb3JlKGEpLGUuaXModCkmJnQuc2V0KHMuX19rZXksMCxcInRleHRcIiksZS5zZXQocy5fX2tleSwwLFwidGV4dFwiKX0oaSxzLHIsbyk7Y29uc3QgYT1pLm9mZnNldDtsZXQgbD1zLm9mZnNldDtjb25zdCBjPXRoaXMuZ2V0Tm9kZXMoKSx1PWMubGVuZ3RoO2xldCBkPWNbMF07a2IoZCl8fFBnKDI2KTtjb25zdCBmPWQuZ2V0VGV4dENvbnRlbnQoKS5sZW5ndGgsbT1kLmdldFBhcmVudE9yVGhyb3coKTtsZXQgaD1jW3UtMV07aWYoMT09PXUmJlwiZWxlbWVudFwiPT09cy50eXBlJiYobD1mLHMuc2V0KGkua2V5LGwsXCJ0ZXh0XCIpKSx0aGlzLmlzQ29sbGFwc2VkKCkmJmE9PT1mJiYoZC5pc1NlZ21lbnRlZCgpfHxkLmlzVG9rZW4oKXx8IWQuY2FuSW5zZXJ0VGV4dEFmdGVyKCl8fCFtLmNhbkluc2VydFRleHRBZnRlcigpJiZudWxsPT09ZC5nZXROZXh0U2libGluZygpKSl7bGV0IHQ9ZC5nZXROZXh0U2libGluZygpO2lmKGtiKHQpJiZ0LmNhbkluc2VydFRleHRCZWZvcmUoKSYmIVhnKHQpfHwodD1TYigpLHQuc2V0Rm9ybWF0KHIpLHQuc2V0U3R5bGUobyksbS5jYW5JbnNlcnRUZXh0QWZ0ZXIoKT9kLmluc2VydEFmdGVyKHQpOm0uaW5zZXJ0QWZ0ZXIodCkpLHQuc2VsZWN0KDAsMCksZD10LFwiXCIhPT1lKXJldHVybiB2b2lkIHRoaXMuaW5zZXJ0VGV4dChlKX1lbHNlIGlmKHRoaXMuaXNDb2xsYXBzZWQoKSYmMD09PWEmJihkLmlzU2VnbWVudGVkKCl8fGQuaXNUb2tlbigpfHwhZC5jYW5JbnNlcnRUZXh0QmVmb3JlKCl8fCFtLmNhbkluc2VydFRleHRCZWZvcmUoKSYmbnVsbD09PWQuZ2V0UHJldmlvdXNTaWJsaW5nKCkpKXtsZXQgdD1kLmdldFByZXZpb3VzU2libGluZygpO2lmKGtiKHQpJiYhWGcodCl8fCh0PVNiKCksdC5zZXRGb3JtYXQociksbS5jYW5JbnNlcnRUZXh0QmVmb3JlKCk/ZC5pbnNlcnRCZWZvcmUodCk6bS5pbnNlcnRCZWZvcmUodCkpLHQuc2VsZWN0KCksZD10LFwiXCIhPT1lKXJldHVybiB2b2lkIHRoaXMuaW5zZXJ0VGV4dChlKX1lbHNlIGlmKGQuaXNTZWdtZW50ZWQoKSYmYSE9PWYpe2NvbnN0IGU9U2IoZC5nZXRUZXh0Q29udGVudCgpKTtlLnNldEZvcm1hdChyKSxkLnJlcGxhY2UoZSksZD1lfWVsc2UgaWYoIXRoaXMuaXNDb2xsYXBzZWQoKSYmXCJcIiE9PWUpe2NvbnN0IHQ9aC5nZXRQYXJlbnQoKTtpZighbS5jYW5JbnNlcnRUZXh0QmVmb3JlKCl8fCFtLmNhbkluc2VydFRleHRBZnRlcigpfHxreCh0KSYmKCF0LmNhbkluc2VydFRleHRCZWZvcmUoKXx8IXQuY2FuSW5zZXJ0VGV4dEFmdGVyKCkpKXJldHVybiB0aGlzLmluc2VydFRleHQoXCJcIiksV2IodGhpcy5hbmNob3IsdGhpcy5mb2N1cyxudWxsKSx2b2lkIHRoaXMuaW5zZXJ0VGV4dChlKX1pZigxPT09dSl7aWYoZC5pc1Rva2VuKCkpe2NvbnN0IHQ9U2IoZSk7cmV0dXJuIHQuc2VsZWN0KCksdm9pZCBkLnJlcGxhY2UodCl9Y29uc3QgdD1kLmdldEZvcm1hdCgpLG49ZC5nZXRTdHlsZSgpO2lmKGEhPT1sfHx0PT09ciYmbj09PW8pe2lmKGZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgQ2J9KGQpKXtjb25zdCB0PVNiKGUpO3JldHVybiB0LnNldEZvcm1hdChyKSx0LnNldFN0eWxlKG8pLHQuc2VsZWN0KCksdm9pZCBkLnJlcGxhY2UodCl9fWVsc2V7aWYoXCJcIiE9PWQuZ2V0VGV4dENvbnRlbnQoKSl7Y29uc3QgdD1TYihlKTtpZih0LnNldEZvcm1hdChyKSx0LnNldFN0eWxlKG8pLHQuc2VsZWN0KCksMD09PWEpZC5pbnNlcnRCZWZvcmUodCwhMSk7ZWxzZXtjb25zdFtlXT1kLnNwbGl0VGV4dChhKTtlLmluc2VydEFmdGVyKHQsITEpfXJldHVybiB2b2lkKHQuaXNDb21wb3NpbmcoKSYmXCJ0ZXh0XCI9PT10aGlzLmFuY2hvci50eXBlJiYodGhpcy5hbmNob3Iub2Zmc2V0LT1lLmxlbmd0aCkpfWQuc2V0Rm9ybWF0KHIpLGQuc2V0U3R5bGUobyl9Y29uc3QgaT1sLWE7ZD1kLnNwbGljZVRleHQoYSxpLGUsITApLFwiXCI9PT1kLmdldFRleHRDb250ZW50KCk/ZC5yZW1vdmUoKTpcInRleHRcIj09PXRoaXMuYW5jaG9yLnR5cGUmJihkLmlzQ29tcG9zaW5nKCk/dGhpcy5hbmNob3Iub2Zmc2V0LT1lLmxlbmd0aDoodGhpcy5mb3JtYXQ9dCx0aGlzLnN0eWxlPW4pKX1lbHNle2NvbnN0IHQ9bmV3IFNldChbLi4uZC5nZXRQYXJlbnRLZXlzKCksLi4uaC5nZXRQYXJlbnRLZXlzKCldKSxuPWt4KGQpP2Q6ZC5nZXRQYXJlbnRPclRocm93KCk7bGV0IHI9a3goaCk/aDpoLmdldFBhcmVudE9yVGhyb3coKSxvPWg7aWYoIW4uaXMocikmJnIuaXNJbmxpbmUoKSlkb3tvPXIscj1yLmdldFBhcmVudE9yVGhyb3coKX13aGlsZShyLmlzSW5saW5lKCkpO2lmKFwidGV4dFwiPT09cy50eXBlJiYoMCE9PWx8fFwiXCI9PT1oLmdldFRleHRDb250ZW50KCkpfHxcImVsZW1lbnRcIj09PXMudHlwZSYmaC5nZXRJbmRleFdpdGhpblBhcmVudCgpPGwpaWYoa2IoaCkmJiFoLmlzVG9rZW4oKSYmbCE9PWguZ2V0VGV4dENvbnRlbnRTaXplKCkpe2lmKGguaXNTZWdtZW50ZWQoKSl7Y29uc3QgZT1TYihoLmdldFRleHRDb250ZW50KCkpO2gucmVwbGFjZShlKSxoPWV9Tngocy5nZXROb2RlKCkpfHxcInRleHRcIiE9PXMudHlwZXx8KGg9aC5zcGxpY2VUZXh0KDAsbCxcIlwiKSksdC5hZGQoaC5fX2tleSl9ZWxzZXtjb25zdCBlPWguZ2V0UGFyZW50T3JUaHJvdygpO2UuY2FuQmVFbXB0eSgpfHwxIT09ZS5nZXRDaGlsZHJlblNpemUoKT9oLnJlbW92ZSgpOmUucmVtb3ZlKCl9ZWxzZSB0LmFkZChoLl9fa2V5KTtjb25zdCBpPXIuZ2V0Q2hpbGRyZW4oKSxtPW5ldyBTZXQoYykscD1uLmlzKHIpLGc9bi5pc0lubGluZSgpJiZudWxsPT09ZC5nZXROZXh0U2libGluZygpP246ZDtmb3IobGV0IGU9aS5sZW5ndGgtMTtlPj0wO2UtLSl7Y29uc3QgdD1pW2VdO2lmKHQuaXMoZCl8fGt4KHQpJiZ0LmlzUGFyZW50T2YoZCkpYnJlYWs7dC5pc0F0dGFjaGVkKCkmJighbS5oYXModCl8fHQuaXMobyk/cHx8Zy5pbnNlcnRBZnRlcih0LCExKTp0LnJlbW92ZSgpKX1pZighcCl7bGV0IGU9cixuPW51bGw7Zm9yKDtudWxsIT09ZTspe2NvbnN0IHI9ZS5nZXRDaGlsZHJlbigpLG89ci5sZW5ndGg7KDA9PT1vfHxyW28tMV0uaXMobikpJiYodC5kZWxldGUoZS5fX2tleSksbj1lKSxlPWUuZ2V0UGFyZW50KCl9fWlmKGQuaXNUb2tlbigpKWlmKGE9PT1mKWQuc2VsZWN0KCk7ZWxzZXtjb25zdCB0PVNiKGUpO3Quc2VsZWN0KCksZC5yZXBsYWNlKHQpfWVsc2UgZD1kLnNwbGljZVRleHQoYSxmLWEsZSwhMCksXCJcIj09PWQuZ2V0VGV4dENvbnRlbnQoKT9kLnJlbW92ZSgpOmQuaXNDb21wb3NpbmcoKSYmXCJ0ZXh0XCI9PT10aGlzLmFuY2hvci50eXBlJiYodGhpcy5hbmNob3Iub2Zmc2V0LT1lLmxlbmd0aCk7Zm9yKGxldCBlPTE7ZTx1O2UrKyl7Y29uc3Qgbj1jW2VdLHI9bi5fX2tleTt0LmhhcyhyKXx8bi5yZW1vdmUoKX19fXJlbW92ZVRleHQoKXt0aGlzLmluc2VydFRleHQoXCJcIil9Zm9ybWF0VGV4dChlKXtpZih0aGlzLmlzQ29sbGFwc2VkKCkpcmV0dXJuIHRoaXMudG9nZ2xlRm9ybWF0KGUpLHZvaWQgbnkobnVsbCk7Y29uc3QgdD10aGlzLmdldE5vZGVzKCksbj1bXTtmb3IoY29uc3QgZSBvZiB0KWtiKGUpJiZuLnB1c2goZSk7Y29uc3Qgcj1uLmxlbmd0aDtpZigwPT09cilyZXR1cm4gdGhpcy50b2dnbGVGb3JtYXQoZSksdm9pZCBueShudWxsKTtjb25zdCBvPXRoaXMuYW5jaG9yLGk9dGhpcy5mb2N1cyxzPXRoaXMuaXNCYWNrd2FyZCgpLGE9cz9pOm8sbD1zP286aTtsZXQgYz0wLHU9blswXSxkPVwiZWxlbWVudFwiPT09YS50eXBlPzA6YS5vZmZzZXQ7aWYoXCJ0ZXh0XCI9PT1hLnR5cGUmJmQ9PT11LmdldFRleHRDb250ZW50U2l6ZSgpJiYoYz0xLHU9blsxXSxkPTApLG51bGw9PXUpcmV0dXJuO2NvbnN0IGY9dS5nZXRGb3JtYXRGbGFncyhlLG51bGwpLG09ci0xO2xldCBoPW5bbV07Y29uc3QgcD1cInRleHRcIj09PWwudHlwZT9sLm9mZnNldDpoLmdldFRleHRDb250ZW50U2l6ZSgpO2lmKHUuaXMoaCkpe2lmKGQ9PT1wKXJldHVybjtpZihYZyh1KXx8MD09PWQmJnA9PT11LmdldFRleHRDb250ZW50U2l6ZSgpKXUuc2V0Rm9ybWF0KGYpO2Vsc2V7Y29uc3QgZT11LnNwbGl0VGV4dChkLHApLHQ9MD09PWQ/ZVswXTplWzFdO3Quc2V0Rm9ybWF0KGYpLFwidGV4dFwiPT09YS50eXBlJiZhLnNldCh0Ll9fa2V5LDAsXCJ0ZXh0XCIpLFwidGV4dFwiPT09bC50eXBlJiZsLnNldCh0Ll9fa2V5LHAtZCxcInRleHRcIil9cmV0dXJuIHZvaWQodGhpcy5mb3JtYXQ9Zil9MD09PWR8fFhnKHUpfHwoWyx1XT11LnNwbGl0VGV4dChkKSxkPTApLHUuc2V0Rm9ybWF0KGYpO2NvbnN0IGc9aC5nZXRGb3JtYXRGbGFncyhlLGYpO3A+MCYmKHA9PT1oLmdldFRleHRDb250ZW50U2l6ZSgpfHxYZyhoKXx8KFtoXT1oLnNwbGl0VGV4dChwKSksaC5zZXRGb3JtYXQoZykpO2ZvcihsZXQgdD1jKzE7dDxtO3QrKyl7Y29uc3Qgcj1uW3RdLG89ci5nZXRGb3JtYXRGbGFncyhlLGcpO3Iuc2V0Rm9ybWF0KG8pfVwidGV4dFwiPT09YS50eXBlJiZhLnNldCh1Ll9fa2V5LGQsXCJ0ZXh0XCIpLFwidGV4dFwiPT09bC50eXBlJiZsLnNldChoLl9fa2V5LHAsXCJ0ZXh0XCIpLHRoaXMuZm9ybWF0PWZ8Z31pbnNlcnROb2RlcyhlKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuO2lmKFwicm9vdFwiPT09dGhpcy5hbmNob3Iua2V5KXt0aGlzLmluc2VydFBhcmFncmFwaCgpO2NvbnN0IHQ9SGIoKTtyZXR1cm4gRGIodCl8fFBnKDEzNCksdC5pbnNlcnROb2RlcyhlKX1jb25zdCB0PUt5KCh0aGlzLmlzQmFja3dhcmQoKT90aGlzLmZvY3VzOnRoaXMuYW5jaG9yKS5nZXROb2RlKCksSHkpLG49ZVtlLmxlbmd0aC0xXTtpZihcIl9fbGFuZ3VhZ2VcImluIHQmJmt4KHQpKXtpZihcIl9fbGFuZ3VhZ2VcImluIGVbMF0pdGhpcy5pbnNlcnRUZXh0KGVbMF0uZ2V0VGV4dENvbnRlbnQoKSk7ZWxzZXtjb25zdCByPUpiKHRoaXMpO3Quc3BsaWNlKHIsMCxlKSxuLnNlbGVjdEVuZCgpfXJldHVybn1pZighZS5zb21lKChlPT4oa3goZSl8fFB4KGUpKSYmIWUuaXNJbmxpbmUoKSkpKXtreCh0KXx8UGcoMTM1KTtjb25zdCByPUpiKHRoaXMpO3JldHVybiB0LnNwbGljZShyLDAsZSksdm9pZCBuLnNlbGVjdEVuZCgpfWNvbnN0IHI9ZnVuY3Rpb24oZSl7Y29uc3QgdD1JeCgpO2xldCBuPW51bGw7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspe2NvbnN0IG89ZVtyXSxpPWliKG8pO2lmKGl8fFB4KG8pJiZvLmlzSW5saW5lKCl8fGt4KG8pJiZvLmlzSW5saW5lKCl8fGtiKG8pfHxvLmlzUGFyZW50UmVxdWlyZWQoKSl7aWYobnVsbD09PW4mJihuPW8uY3JlYXRlUGFyZW50RWxlbWVudE5vZGUoKSx0LmFwcGVuZChuKSxpKSljb250aW51ZTtudWxsIT09biYmbi5hcHBlbmQobyl9ZWxzZSB0LmFwcGVuZChvKSxuPW51bGx9cmV0dXJuIHR9KGUpLG89ci5nZXRMYXN0RGVzY2VuZGFudCgpLGk9ci5nZXRDaGlsZHJlbigpLHM9a3godCkmJnQuaXNFbXB0eSgpP251bGw6dGhpcy5pbnNlcnRQYXJhZ3JhcGgoKSxhPWlbaS5sZW5ndGgtMV07bGV0IGw9aVswXTt2YXIgYztreChjPWwpJiZIeShjKSYmIWMuaXNFbXB0eSgpJiZreCh0KSYmKCF0LmlzRW1wdHkoKXx8dC5jYW5NZXJnZVdoZW5FbXB0eSgpKSYmKGt4KHQpfHxQZygxMzUpLHQuYXBwZW5kKC4uLmwuZ2V0Q2hpbGRyZW4oKSksbD1pWzFdKSxsJiZmdW5jdGlvbihlLHQpe2NvbnN0IG49dC5nZXRQYXJlbnRPclRocm93KCkuZ2V0TGFzdENoaWxkKCk7bGV0IHI9dDtjb25zdCBvPVt0XTtmb3IoO3IhPT1uOylyLmdldE5leHRTaWJsaW5nKCl8fFBnKDE0MCkscj1yLmdldE5leHRTaWJsaW5nKCksby5wdXNoKHIpO2xldCBpPWU7Zm9yKGNvbnN0IGUgb2YgbylpPWkuaW5zZXJ0QWZ0ZXIoZSl9KHQsbCk7Y29uc3QgdT1LeShvLEh5KTtzJiZreCh1KSYmKHMuY2FuTWVyZ2VXaGVuRW1wdHkoKXx8SHkoYSkpJiYodS5hcHBlbmQoLi4ucy5nZXRDaGlsZHJlbigpKSxzLnJlbW92ZSgpKSxreCh0KSYmdC5pc0VtcHR5KCkmJnQucmVtb3ZlKCksby5zZWxlY3RFbmQoKTtjb25zdCBkPWt4KHQpP3QuZ2V0TGFzdENoaWxkKCk6bnVsbDtpYihkKSYmdSE9PXQmJmQucmVtb3ZlKCl9aW5zZXJ0UGFyYWdyYXBoKCl7aWYoXCJyb290XCI9PT10aGlzLmFuY2hvci5rZXkpe2NvbnN0IGU9SXgoKTtyZXR1cm4gY3koKS5zcGxpY2UodGhpcy5hbmNob3Iub2Zmc2V0LDAsW2VdKSxlLnNlbGVjdCgpLGV9Y29uc3QgZT1KYih0aGlzKSx0PUt5KHRoaXMuYW5jaG9yLmdldE5vZGUoKSxIeSk7a3godCl8fFBnKDEzNik7Y29uc3Qgbj10LmdldENoaWxkQXRJbmRleChlKSxyPW4/W24sLi4ubi5nZXROZXh0U2libGluZ3MoKV06W10sbz10Lmluc2VydE5ld0FmdGVyKHRoaXMsITEpO3JldHVybiBvPyhvLmFwcGVuZCguLi5yKSxvLnNlbGVjdFN0YXJ0KCksbyk6bnVsbH1pbnNlcnRMaW5lQnJlYWsoZSl7Y29uc3QgdD1vYigpO2lmKHRoaXMuaW5zZXJ0Tm9kZXMoW3RdKSxlKXtjb25zdCBlPXQuZ2V0UGFyZW50T3JUaHJvdygpLG49dC5nZXRJbmRleFdpdGhpblBhcmVudCgpO2Uuc2VsZWN0KG4sbil9fWV4dHJhY3QoKXtjb25zdCBlPXRoaXMuZ2V0Tm9kZXMoKSx0PWUubGVuZ3RoLG49dC0xLHI9dGhpcy5hbmNob3Isbz10aGlzLmZvY3VzO2xldCBpPWVbMF0scz1lW25dO2NvbnN0W2EsbF09TGIodGhpcyk7aWYoMD09PXQpcmV0dXJuW107aWYoMT09PXQpe2lmKGtiKGkpJiYhdGhpcy5pc0NvbGxhcHNlZCgpKXtjb25zdCBlPWE+bD9sOmEsdD1hPmw/YTpsLG49aS5zcGxpdFRleHQoZSx0KSxyPTA9PT1lP25bMF06blsxXTtyZXR1cm4gbnVsbCE9cj9bcl06W119cmV0dXJuW2ldfWNvbnN0IGM9ci5pc0JlZm9yZShvKTtpZihrYihpKSl7Y29uc3QgdD1jP2E6bDt0PT09aS5nZXRUZXh0Q29udGVudFNpemUoKT9lLnNoaWZ0KCk6MCE9PXQmJihbLGldPWkuc3BsaXRUZXh0KHQpLGVbMF09aSl9aWYoa2Iocykpe2NvbnN0IHQ9cy5nZXRUZXh0Q29udGVudCgpLmxlbmd0aCxyPWM/bDphOzA9PT1yP2UucG9wKCk6ciE9PXQmJihbc109cy5zcGxpdFRleHQociksZVtuXT1zKX1yZXR1cm4gZX1tb2RpZnkoZSx0LG4pe2NvbnN0IHI9dGhpcy5mb2N1cyxvPXRoaXMuYW5jaG9yLGk9XCJtb3ZlXCI9PT1lLHM9VHkocix0KTtpZihQeChzKSYmIXMuaXNJc29sYXRlZCgpKXtpZihpJiZzLmlzS2V5Ym9hcmRTZWxlY3RhYmxlKCkpe2NvbnN0IGU9JGIoKTtyZXR1cm4gZS5hZGQocy5fX2tleSksdm9pZCBkeShlKX1jb25zdCBlPXQ/cy5nZXRQcmV2aW91c1NpYmxpbmcoKTpzLmdldE5leHRTaWJsaW5nKCk7aWYoa2IoZSkpe2NvbnN0IG49ZS5fX2tleSxzPXQ/ZS5nZXRUZXh0Q29udGVudCgpLmxlbmd0aDowO3JldHVybiByLnNldChuLHMsXCJ0ZXh0XCIpLHZvaWQoaSYmby5zZXQobixzLFwidGV4dFwiKSl9e2NvbnN0IG49cy5nZXRQYXJlbnRPclRocm93KCk7bGV0IGEsbDtyZXR1cm4ga3goZSk/KGw9ZS5fX2tleSxhPXQ/ZS5nZXRDaGlsZHJlblNpemUoKTowKTooYT1zLmdldEluZGV4V2l0aGluUGFyZW50KCksbD1uLl9fa2V5LHR8fGErKyksci5zZXQobCxhLFwiZWxlbWVudFwiKSx2b2lkKGkmJm8uc2V0KGwsYSxcImVsZW1lbnRcIikpfX1jb25zdCBhPXV4KCksbD1WeShhLl93aW5kb3cpO2lmKCFsKXJldHVybjtjb25zdCBjPWEuX2Jsb2NrQ3Vyc29yRWxlbWVudCx1PWEuX3Jvb3RFbGVtZW50O2lmKG51bGw9PT11fHxudWxsPT09Y3x8IWt4KHMpfHxzLmlzSW5saW5lKCl8fHMuY2FuQmVFbXB0eSgpfHxfbihjLGEsdSksZnVuY3Rpb24oZSx0LG4scil7ZS5tb2RpZnkodCxuLHIpfShsLGUsdD9cImJhY2t3YXJkXCI6XCJmb3J3YXJkXCIsbiksbC5yYW5nZUNvdW50PjApe2NvbnN0IGU9bC5nZXRSYW5nZUF0KDApLG49dGhpcy5hbmNob3IuZ2V0Tm9kZSgpLHI9Tngobik/bjpmdW5jdGlvbihlKXtsZXQgdD1lLmdldFBhcmVudE9yVGhyb3coKTtmb3IoO251bGwhPT10Oyl7aWYoRnkodCkpcmV0dXJuIHQ7dD10LmdldFBhcmVudE9yVGhyb3coKX1yZXR1cm4gdH0obik7aWYodGhpcy5hcHBseURPTVJhbmdlKGUpLHRoaXMuZGlydHk9ITAsIWkpe2NvbnN0IG49dGhpcy5nZXROb2RlcygpLG89W107bGV0IGk9ITE7Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKyspe2NvbnN0IHQ9bltlXTtJeSh0LHIpP28ucHVzaCh0KTppPSEwfWlmKGkmJm8ubGVuZ3RoPjApaWYodCl7Y29uc3QgZT1vWzBdO2t4KGUpP2Uuc2VsZWN0U3RhcnQoKTplLmdldFBhcmVudE9yVGhyb3coKS5zZWxlY3RTdGFydCgpfWVsc2V7Y29uc3QgZT1vW28ubGVuZ3RoLTFdO2t4KGUpP2Uuc2VsZWN0RW5kKCk6ZS5nZXRQYXJlbnRPclRocm93KCkuc2VsZWN0RW5kKCl9bC5hbmNob3JOb2RlPT09ZS5zdGFydENvbnRhaW5lciYmbC5hbmNob3JPZmZzZXQ9PT1lLnN0YXJ0T2Zmc2V0fHxmdW5jdGlvbihlKXtjb25zdCB0PWUuZm9jdXMsbj1lLmFuY2hvcixyPW4ua2V5LG89bi5vZmZzZXQsaT1uLnR5cGU7TWIobix0LmtleSx0Lm9mZnNldCx0LnR5cGUpLE1iKHQscixvLGkpLGUuX2NhY2hlZE5vZGVzPW51bGx9KHRoaXMpfX19Zm9yd2FyZERlbGV0aW9uKGUsdCxuKXtpZighbiYmKFwiZWxlbWVudFwiPT09ZS50eXBlJiZreCh0KSYmZS5vZmZzZXQ9PT10LmdldENoaWxkcmVuU2l6ZSgpfHxcInRleHRcIj09PWUudHlwZSYmZS5vZmZzZXQ9PT10LmdldFRleHRDb250ZW50U2l6ZSgpKSl7Y29uc3QgZT10LmdldFBhcmVudCgpLG49dC5nZXROZXh0U2libGluZygpfHwobnVsbD09PWU/bnVsbDplLmdldE5leHRTaWJsaW5nKCkpO2lmKGt4KG4pJiZuLmlzU2hhZG93Um9vdCgpKXJldHVybiEwfXJldHVybiExfWRlbGV0ZUNoYXJhY3RlcihlKXtjb25zdCB0PXRoaXMuaXNDb2xsYXBzZWQoKTtpZih0aGlzLmlzQ29sbGFwc2VkKCkpe2NvbnN0IHQ9dGhpcy5hbmNob3I7bGV0IG49dC5nZXROb2RlKCk7aWYodGhpcy5mb3J3YXJkRGVsZXRpb24odCxuLGUpKXJldHVybjtjb25zdCByPXRoaXMuZm9jdXMsbz1UeShyLGUpO2lmKFB4KG8pJiYhby5pc0lzb2xhdGVkKCkpe2lmKG8uaXNLZXlib2FyZFNlbGVjdGFibGUoKSYma3gobikmJjA9PT1uLmdldENoaWxkcmVuU2l6ZSgpKXtuLnJlbW92ZSgpO2NvbnN0IGU9JGIoKTtlLmFkZChvLl9fa2V5KSxkeShlKX1lbHNlIG8ucmVtb3ZlKCksdXgoKS5kaXNwYXRjaENvbW1hbmQoZXAsdm9pZCAwKTtyZXR1cm59aWYoIWUmJmt4KG8pJiZreChuKSYmbi5pc0VtcHR5KCkpcmV0dXJuIG4ucmVtb3ZlKCksdm9pZCBvLnNlbGVjdFN0YXJ0KCk7aWYodGhpcy5tb2RpZnkoXCJleHRlbmRcIixlLFwiY2hhcmFjdGVyXCIpLHRoaXMuaXNDb2xsYXBzZWQoKSl7aWYoZSYmMD09PXQub2Zmc2V0JiYoXCJlbGVtZW50XCI9PT10LnR5cGU/dC5nZXROb2RlKCk6dC5nZXROb2RlKCkuZ2V0UGFyZW50T3JUaHJvdygpKS5jb2xsYXBzZUF0U3RhcnQodGhpcykpcmV0dXJufWVsc2V7Y29uc3Qgbz1cInRleHRcIj09PXIudHlwZT9yLmdldE5vZGUoKTpudWxsO2lmKG49XCJ0ZXh0XCI9PT10LnR5cGU/dC5nZXROb2RlKCk6bnVsbCxudWxsIT09byYmby5pc1NlZ21lbnRlZCgpKXtjb25zdCB0PXIub2Zmc2V0LGk9by5nZXRUZXh0Q29udGVudFNpemUoKTtpZihvLmlzKG4pfHxlJiZ0IT09aXx8IWUmJjAhPT10KXJldHVybiB2b2lkIEZiKG8sZSx0KX1lbHNlIGlmKG51bGwhPT1uJiZuLmlzU2VnbWVudGVkKCkpe2NvbnN0IHI9dC5vZmZzZXQsaT1uLmdldFRleHRDb250ZW50U2l6ZSgpO2lmKG4uaXMobyl8fGUmJjAhPT1yfHwhZSYmciE9PWkpcmV0dXJuIHZvaWQgRmIobixlLHIpfSFmdW5jdGlvbihlLHQpe2NvbnN0IG49ZS5hbmNob3Iscj1lLmZvY3VzLG89bi5nZXROb2RlKCk7aWYobz09PXIuZ2V0Tm9kZSgpJiZcInRleHRcIj09PW4udHlwZSYmXCJ0ZXh0XCI9PT1yLnR5cGUpe2NvbnN0IGU9bi5vZmZzZXQsaT1yLm9mZnNldCxzPWU8aSxhPXM/ZTppLGw9cz9pOmUsYz1sLTE7YSE9PWMmJihoeShvLmdldFRleHRDb250ZW50KCkuc2xpY2UoYSxsKSl8fCh0P3Iub2Zmc2V0PWM6bi5vZmZzZXQ9YykpfX0odGhpcyxlKX19aWYodGhpcy5yZW1vdmVUZXh0KCksZSYmIXQmJnRoaXMuaXNDb2xsYXBzZWQoKSYmXCJlbGVtZW50XCI9PT10aGlzLmFuY2hvci50eXBlJiYwPT09dGhpcy5hbmNob3Iub2Zmc2V0KXtjb25zdCBlPXRoaXMuYW5jaG9yLmdldE5vZGUoKTtlLmlzRW1wdHkoKSYmTngoZS5nZXRQYXJlbnQoKSkmJjA9PT1lLmdldEluZGV4V2l0aGluUGFyZW50KCkmJmUuY29sbGFwc2VBdFN0YXJ0KHRoaXMpfX1kZWxldGVMaW5lKGUpe2lmKHRoaXMuaXNDb2xsYXBzZWQoKSl7Y29uc3QgdD1cImVsZW1lbnRcIj09PXRoaXMuYW5jaG9yLnR5cGU7aWYodCYmdGhpcy5pbnNlcnRUZXh0KFwiIFwiKSx0aGlzLm1vZGlmeShcImV4dGVuZFwiLGUsXCJsaW5lYm91bmRhcnlcIiksMD09PShlP3RoaXMuZm9jdXM6dGhpcy5hbmNob3IpLm9mZnNldCYmdGhpcy5tb2RpZnkoXCJleHRlbmRcIixlLFwiY2hhcmFjdGVyXCIpLHQpe2NvbnN0IHQ9ZT90aGlzLmFuY2hvcjp0aGlzLmZvY3VzO3Quc2V0KHQua2V5LHQub2Zmc2V0KzEsdC50eXBlKX19dGhpcy5yZW1vdmVUZXh0KCl9ZGVsZXRlV29yZChlKXtpZih0aGlzLmlzQ29sbGFwc2VkKCkpe2NvbnN0IHQ9dGhpcy5hbmNob3Isbj10LmdldE5vZGUoKTtpZih0aGlzLmZvcndhcmREZWxldGlvbih0LG4sZSkpcmV0dXJuO3RoaXMubW9kaWZ5KFwiZXh0ZW5kXCIsZSxcIndvcmRcIil9dGhpcy5yZW1vdmVUZXh0KCl9aXNCYWNrd2FyZCgpe3JldHVybiB0aGlzLmZvY3VzLmlzQmVmb3JlKHRoaXMuYW5jaG9yKX1nZXRTdGFydEVuZFBvaW50cygpe3JldHVyblt0aGlzLmFuY2hvcix0aGlzLmZvY3VzXX19ZnVuY3Rpb24gQWIoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBSYn1mdW5jdGlvbiBJYihlKXtjb25zdCB0PWUub2Zmc2V0O2lmKFwidGV4dFwiPT09ZS50eXBlKXJldHVybiB0O2NvbnN0IG49ZS5nZXROb2RlKCk7cmV0dXJuIHQ9PT1uLmdldENoaWxkcmVuU2l6ZSgpP24uZ2V0VGV4dENvbnRlbnQoKS5sZW5ndGg6MH1mdW5jdGlvbiBMYihlKXtjb25zdCB0PWUuZ2V0U3RhcnRFbmRQb2ludHMoKTtpZihudWxsPT09dClyZXR1cm5bMCwwXTtjb25zdFtuLHJdPXQ7cmV0dXJuXCJlbGVtZW50XCI9PT1uLnR5cGUmJlwiZWxlbWVudFwiPT09ci50eXBlJiZuLmtleT09PXIua2V5JiZuLm9mZnNldD09PXIub2Zmc2V0P1swLDBdOltJYihuKSxJYihyKV19ZnVuY3Rpb24gRmIoZSx0LG4pe2NvbnN0IHI9ZSxvPXIuZ2V0VGV4dENvbnRlbnQoKS5zcGxpdCgvKD89XFxzKS9nKSxpPW8ubGVuZ3RoO2xldCBzPTAsYT0wO2ZvcihsZXQgZT0wO2U8aTtlKyspe2NvbnN0IHI9ZT09PWktMTtpZihhPXMscys9b1tlXS5sZW5ndGgsdCYmcz09PW58fHM+bnx8cil7by5zcGxpY2UoZSwxKSxyJiYoYT12b2lkIDApO2JyZWFrfX1jb25zdCBsPW8uam9pbihcIlwiKS50cmltKCk7XCJcIj09PWw/ci5yZW1vdmUoKTooci5zZXRUZXh0Q29udGVudChsKSxyLnNlbGVjdChhLGEpKX1mdW5jdGlvbiB6YihlLHQsbixyKXtsZXQgbyxpPXQ7aWYoZS5ub2RlVHlwZT09PVpwKXtsZXQgcz0hMTtjb25zdCBhPWUuY2hpbGROb2RlcyxsPWEubGVuZ3RoLGM9ci5fYmxvY2tDdXJzb3JFbGVtZW50O2k9PT1sJiYocz0hMCxpPWwtMSk7bGV0IHU9YVtpXSxkPSExO2lmKHU9PT1jKXU9YVtpKzFdLGQ9ITA7ZWxzZSBpZihudWxsIT09Yyl7Y29uc3Qgbj1jLnBhcmVudE5vZGU7ZT09PW4mJnQ+QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChuLmNoaWxkcmVuLGMpJiZpLS19aWYobz1meSh1KSxrYihvKSlpPW15KG8scyk7ZWxzZXtsZXQgcj1meShlKTtpZihudWxsPT09cilyZXR1cm4gbnVsbDtpZihreChyKSl7aT1NYXRoLm1pbihyLmdldENoaWxkcmVuU2l6ZSgpLGkpO2xldCBlPXIuZ2V0Q2hpbGRBdEluZGV4KGkpO2lmKGt4KGUpJiZmdW5jdGlvbihlLHQsbil7Y29uc3Qgcj1lLmdldFBhcmVudCgpO3JldHVybiBudWxsPT09bnx8bnVsbD09PXJ8fCFyLmNhbkJlRW1wdHkoKXx8ciE9PW4uZ2V0Tm9kZSgpfShlLDAsbikpe2NvbnN0IHQ9cz9lLmdldExhc3REZXNjZW5kYW50KCk6ZS5nZXRGaXJzdERlc2NlbmRhbnQoKTtudWxsPT09dD9yPWU6KGU9dCxyPWt4KGUpP2U6ZS5nZXRQYXJlbnRPclRocm93KCkpLGk9MH1rYihlKT8obz1lLHI9bnVsbCxpPW15KGUscykpOmUhPT1yJiZzJiYhZCYmaSsrfWVsc2V7Y29uc3Qgbj1yLmdldEluZGV4V2l0aGluUGFyZW50KCk7aT0wPT09dCYmUHgocikmJmZ5KGUpPT09cj9uOm4rMSxyPXIuZ2V0UGFyZW50T3JUaHJvdygpfWlmKGt4KHIpKXJldHVybiBPYihyLl9fa2V5LGksXCJlbGVtZW50XCIpfX1lbHNlIG89ZnkoZSk7cmV0dXJuIGtiKG8pP09iKG8uX19rZXksaSxcInRleHRcIik6bnVsbH1mdW5jdGlvbiBCYihlLHQsbil7Y29uc3Qgcj1lLm9mZnNldCxvPWUuZ2V0Tm9kZSgpO2lmKDA9PT1yKXtjb25zdCByPW8uZ2V0UHJldmlvdXNTaWJsaW5nKCksaT1vLmdldFBhcmVudCgpO2lmKHQpe2lmKChufHwhdCkmJm51bGw9PT1yJiZreChpKSYmaS5pc0lubGluZSgpKXtjb25zdCB0PWkuZ2V0UHJldmlvdXNTaWJsaW5nKCk7a2IodCkmJihlLmtleT10Ll9fa2V5LGUub2Zmc2V0PXQuZ2V0VGV4dENvbnRlbnQoKS5sZW5ndGgpfX1lbHNlIGt4KHIpJiYhbiYmci5pc0lubGluZSgpPyhlLmtleT1yLl9fa2V5LGUub2Zmc2V0PXIuZ2V0Q2hpbGRyZW5TaXplKCksZS50eXBlPVwiZWxlbWVudFwiKTprYihyKSYmKGUua2V5PXIuX19rZXksZS5vZmZzZXQ9ci5nZXRUZXh0Q29udGVudCgpLmxlbmd0aCl9ZWxzZSBpZihyPT09by5nZXRUZXh0Q29udGVudCgpLmxlbmd0aCl7Y29uc3Qgcj1vLmdldE5leHRTaWJsaW5nKCksaT1vLmdldFBhcmVudCgpO2lmKHQmJmt4KHIpJiZyLmlzSW5saW5lKCkpZS5rZXk9ci5fX2tleSxlLm9mZnNldD0wLGUudHlwZT1cImVsZW1lbnRcIjtlbHNlIGlmKChufHx0KSYmbnVsbD09PXImJmt4KGkpJiZpLmlzSW5saW5lKCkmJiFpLmNhbkluc2VydFRleHRBZnRlcigpKXtjb25zdCB0PWkuZ2V0TmV4dFNpYmxpbmcoKTtrYih0KSYmKGUua2V5PXQuX19rZXksZS5vZmZzZXQ9MCl9fX1mdW5jdGlvbiBXYihlLHQsbil7aWYoXCJ0ZXh0XCI9PT1lLnR5cGUmJlwidGV4dFwiPT09dC50eXBlKXtjb25zdCByPWUuaXNCZWZvcmUodCksbz1lLmlzKHQpO0JiKGUscixvKSxCYih0LCFyLG8pLG8mJih0LmtleT1lLmtleSx0Lm9mZnNldD1lLm9mZnNldCx0LnR5cGU9ZS50eXBlKTtjb25zdCBpPXV4KCk7aWYoaS5pc0NvbXBvc2luZygpJiZpLl9jb21wb3NpdGlvbktleSE9PWUua2V5JiZEYihuKSl7Y29uc3Qgcj1uLmFuY2hvcixvPW4uZm9jdXM7TWIoZSxyLmtleSxyLm9mZnNldCxyLnR5cGUpLE1iKHQsby5rZXksby5vZmZzZXQsby50eXBlKX19fWZ1bmN0aW9uIFZiKGUsdCxuLHIsbyxpKXtpZihudWxsPT09ZXx8bnVsbD09PW58fCFIZyhvLGUsbikpcmV0dXJuIG51bGw7Y29uc3Qgcz16YihlLHQsRGIoaSk/aS5hbmNob3I6bnVsbCxvKTtpZihudWxsPT09cylyZXR1cm4gbnVsbDtjb25zdCBhPXpiKG4scixEYihpKT9pLmZvY3VzOm51bGwsbyk7aWYobnVsbD09PWEpcmV0dXJuIG51bGw7aWYoXCJlbGVtZW50XCI9PT1zLnR5cGUmJlwiZWxlbWVudFwiPT09YS50eXBlKXtjb25zdCB0PWZ5KGUpLHI9Znkobik7aWYoUHgodCkmJlB4KHIpKXJldHVybiBudWxsfXJldHVybiBXYihzLGEsaSksW3MsYV19ZnVuY3Rpb24gVWIoZSx0LG4scixvLGkpe2NvbnN0IHM9Y3goKSxhPW5ldyBqYihPYihlLHQsbyksT2IobixyLGkpLDAsXCJcIik7cmV0dXJuIGEuZGlydHk9ITAscy5fc2VsZWN0aW9uPWEsYX1mdW5jdGlvbiAkYigpe3JldHVybiBuZXcgUmIobmV3IFNldCl9ZnVuY3Rpb24gWWIoZSx0LG4scil7Y29uc3Qgbz1uLl93aW5kb3c7aWYobnVsbD09PW8pcmV0dXJuIG51bGw7Y29uc3QgaT1yfHxvLmV2ZW50LHM9aT9pLnR5cGU6dm9pZCAwLGE9XCJzZWxlY3Rpb25jaGFuZ2VcIj09PXMsbD0hVGcmJihhfHxcImJlZm9yZWlucHV0XCI9PT1zfHxcImNvbXBvc2l0aW9uc3RhcnRcIj09PXN8fFwiY29tcG9zaXRpb25lbmRcIj09PXN8fFwiY2xpY2tcIj09PXMmJmkmJjM9PT1pLmRldGFpbHx8XCJkcm9wXCI9PT1zfHx2b2lkIDA9PT1zKTtsZXQgYyx1LGQsZjtpZihEYihlKSYmIWwpcmV0dXJuIGUuY2xvbmUoKTtpZihudWxsPT09dClyZXR1cm4gbnVsbDtpZihjPXQuYW5jaG9yTm9kZSx1PXQuZm9jdXNOb2RlLGQ9dC5hbmNob3JPZmZzZXQsZj10LmZvY3VzT2Zmc2V0LGEmJkRiKGUpJiYhSGcobixjLHUpKXJldHVybiBlLmNsb25lKCk7Y29uc3QgbT1WYihjLGQsdSxmLG4sZSk7aWYobnVsbD09PW0pcmV0dXJuIG51bGw7Y29uc3RbaCxwXT1tO3JldHVybiBuZXcgamIoaCxwLERiKGUpP2UuZm9ybWF0OjAsRGIoZSk/ZS5zdHlsZTpcIlwiKX1mdW5jdGlvbiBIYigpe3JldHVybiBjeCgpLl9zZWxlY3Rpb259ZnVuY3Rpb24gS2IoKXtyZXR1cm4gdXgoKS5fZWRpdG9yU3RhdGUuX3NlbGVjdGlvbn1mdW5jdGlvbiBxYihlLHQsbixyPTEpe2NvbnN0IG89ZS5hbmNob3IsaT1lLmZvY3VzLHM9by5nZXROb2RlKCksYT1pLmdldE5vZGUoKTtpZighdC5pcyhzKSYmIXQuaXMoYSkpcmV0dXJuO2NvbnN0IGw9dC5fX2tleTtpZihlLmlzQ29sbGFwc2VkKCkpe2NvbnN0IHQ9by5vZmZzZXQ7aWYobjw9dCYmcj4wfHxuPHQmJnI8MCl7Y29uc3Qgbj1NYXRoLm1heCgwLHQrcik7by5zZXQobCxuLFwiZWxlbWVudFwiKSxpLnNldChsLG4sXCJlbGVtZW50XCIpLEdiKGUpfX1lbHNle2NvbnN0IHM9ZS5pc0JhY2t3YXJkKCksYT1zP2k6byxjPWEuZ2V0Tm9kZSgpLHU9cz9vOmksZD11LmdldE5vZGUoKTtpZih0LmlzKGMpKXtjb25zdCBlPWEub2Zmc2V0OyhuPD1lJiZyPjB8fG48ZSYmcjwwKSYmYS5zZXQobCxNYXRoLm1heCgwLGUrciksXCJlbGVtZW50XCIpfWlmKHQuaXMoZCkpe2NvbnN0IGU9dS5vZmZzZXQ7KG48PWUmJnI+MHx8bjxlJiZyPDApJiZ1LnNldChsLE1hdGgubWF4KDAsZStyKSxcImVsZW1lbnRcIil9fUdiKGUpfWZ1bmN0aW9uIEdiKGUpe2NvbnN0IHQ9ZS5hbmNob3Isbj10Lm9mZnNldCxyPWUuZm9jdXMsbz1yLm9mZnNldCxpPXQuZ2V0Tm9kZSgpLHM9ci5nZXROb2RlKCk7aWYoZS5pc0NvbGxhcHNlZCgpKXtpZigha3goaSkpcmV0dXJuO2NvbnN0IGU9aS5nZXRDaGlsZHJlblNpemUoKSxvPW4+PWUscz1vP2kuZ2V0Q2hpbGRBdEluZGV4KGUtMSk6aS5nZXRDaGlsZEF0SW5kZXgobik7aWYoa2Iocykpe2xldCBlPTA7byYmKGU9cy5nZXRUZXh0Q29udGVudFNpemUoKSksdC5zZXQocy5fX2tleSxlLFwidGV4dFwiKSxyLnNldChzLl9fa2V5LGUsXCJ0ZXh0XCIpfX1lbHNle2lmKGt4KGkpKXtjb25zdCBlPWkuZ2V0Q2hpbGRyZW5TaXplKCkscj1uPj1lLG89cj9pLmdldENoaWxkQXRJbmRleChlLTEpOmkuZ2V0Q2hpbGRBdEluZGV4KG4pO2lmKGtiKG8pKXtsZXQgZT0wO3ImJihlPW8uZ2V0VGV4dENvbnRlbnRTaXplKCkpLHQuc2V0KG8uX19rZXksZSxcInRleHRcIil9fWlmKGt4KHMpKXtjb25zdCBlPXMuZ2V0Q2hpbGRyZW5TaXplKCksdD1vPj1lLG49dD9zLmdldENoaWxkQXRJbmRleChlLTEpOnMuZ2V0Q2hpbGRBdEluZGV4KG8pO2lmKGtiKG4pKXtsZXQgZT0wO3QmJihlPW4uZ2V0VGV4dENvbnRlbnRTaXplKCkpLHIuc2V0KG4uX19rZXksZSxcInRleHRcIil9fX19ZnVuY3Rpb24gWGIoZSx0LG4scixvKXtsZXQgaT1udWxsLHM9MCxhPW51bGw7bnVsbCE9PXI/KGk9ci5fX2tleSxrYihyKT8ocz1yLmdldFRleHRDb250ZW50U2l6ZSgpLGE9XCJ0ZXh0XCIpOmt4KHIpJiYocz1yLmdldENoaWxkcmVuU2l6ZSgpLGE9XCJlbGVtZW50XCIpKTpudWxsIT09byYmKGk9by5fX2tleSxrYihvKT9hPVwidGV4dFwiOmt4KG8pJiYoYT1cImVsZW1lbnRcIikpLG51bGwhPT1pJiZudWxsIT09YT9lLnNldChpLHMsYSk6KHM9dC5nZXRJbmRleFdpdGhpblBhcmVudCgpLC0xPT09cyYmKHM9bi5nZXRDaGlsZHJlblNpemUoKSksZS5zZXQobi5fX2tleSxzLFwiZWxlbWVudFwiKSl9ZnVuY3Rpb24gWmIoZSx0LG4scixvKXtcInRleHRcIj09PWUudHlwZT8oZS5rZXk9bix0fHwoZS5vZmZzZXQrPW8pKTplLm9mZnNldD5yLmdldEluZGV4V2l0aGluUGFyZW50KCkmJihlLm9mZnNldC09MSl9ZnVuY3Rpb24gSmIoZSl7bGV0IHQ9ZTtlLmlzQ29sbGFwc2VkKCl8fHQucmVtb3ZlVGV4dCgpO2NvbnN0IG49SGIoKTtEYihuKSYmKHQ9biksRGIodCl8fFBnKDE2MSk7Y29uc3Qgcj10LmFuY2hvcjtsZXQgbz1yLmdldE5vZGUoKSxpPXIub2Zmc2V0O2Zvcig7IUh5KG8pOylbbyxpXT1RYihvLGkpO3JldHVybiBpfWZ1bmN0aW9uIFFiKGUsdCl7Y29uc3Qgbj1lLmdldFBhcmVudCgpO2lmKCFuKXtjb25zdCBlPUl4KCk7cmV0dXJuIGN5KCkuYXBwZW5kKGUpLGUuc2VsZWN0KCksW2N5KCksMF19aWYoa2IoZSkpe2NvbnN0IHI9ZS5zcGxpdFRleHQodCk7aWYoMD09PXIubGVuZ3RoKXJldHVybltuLGUuZ2V0SW5kZXhXaXRoaW5QYXJlbnQoKV07Y29uc3Qgbz0wPT09dD8wOjE7cmV0dXJuW24sclswXS5nZXRJbmRleFdpdGhpblBhcmVudCgpK29dfWlmKCFreChlKXx8MD09PXQpcmV0dXJuW24sZS5nZXRJbmRleFdpdGhpblBhcmVudCgpXTtjb25zdCByPWUuZ2V0Q2hpbGRBdEluZGV4KHQpO2lmKHIpe2NvbnN0IG49bmV3IGpiKE9iKGUuX19rZXksdCxcImVsZW1lbnRcIiksT2IoZS5fX2tleSx0LFwiZWxlbWVudFwiKSwwLFwiXCIpLG89ZS5pbnNlcnROZXdBZnRlcihuKTtvJiZvLmFwcGVuZChyLC4uLnIuZ2V0TmV4dFNpYmxpbmdzKCkpfXJldHVybltuLGUuZ2V0SW5kZXhXaXRoaW5QYXJlbnQoKSsxXX1sZXQgZXg9bnVsbCx0eD1udWxsLG54PSExLHJ4PSExLG94PTA7Y29uc3QgaXg9e2NoYXJhY3RlckRhdGE6ITAsY2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9O2Z1bmN0aW9uIHN4KCl7cmV0dXJuIG54fHxudWxsIT09ZXgmJmV4Ll9yZWFkT25seX1mdW5jdGlvbiBheCgpe254JiZQZygxMyl9ZnVuY3Rpb24gbHgoKXtveD45OSYmUGcoMTQpfWZ1bmN0aW9uIGN4KCl7cmV0dXJuIG51bGw9PT1leCYmUGcoMTk1LGR4KCkpLGV4fWZ1bmN0aW9uIHV4KCl7cmV0dXJuIG51bGw9PT10eCYmUGcoMTk2LGR4KCkpLHR4fWZ1bmN0aW9uIGR4KCl7bGV0IGU9MDtjb25zdCB0PW5ldyBTZXQsbj1CeC52ZXJzaW9uO2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3cpZm9yKGNvbnN0IHIgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIltjb250ZW50ZWRpdGFibGVdXCIpKXtjb25zdCBvPUdnKHIpO2lmKEtnKG8pKWUrKztlbHNlIGlmKG8pe2xldCBlPVN0cmluZyhvLmNvbnN0cnVjdG9yLnZlcnNpb258fFwiPDAuMTcuMVwiKTtlPT09biYmKGUrPVwiIChzZXBhcmF0ZWx5IGJ1aWx0LCBsaWtlbHkgYSBidW5kbGVyIGNvbmZpZ3VyYXRpb24gaXNzdWUpXCIpLHQuYWRkKGUpfX1sZXQgcj1gIERldGVjdGVkIG9uIHRoZSBwYWdlOiAke2V9IGNvbXBhdGlibGUgZWRpdG9yKHMpIHdpdGggdmVyc2lvbiAke259YDtyZXR1cm4gdC5zaXplJiYocis9YCBhbmQgaW5jb21wYXRpYmxlIGVkaXRvcnMgd2l0aCB2ZXJzaW9ucyAke0FycmF5LmZyb20odCkuam9pbihcIiwgXCIpfWApLHJ9ZnVuY3Rpb24gZngoZSx0LG4pe2NvbnN0IHI9dC5fX3R5cGUsbz1mdW5jdGlvbihlLHQpe2NvbnN0IG49ZS5fbm9kZXMuZ2V0KHQpO3JldHVybiB2b2lkIDA9PT1uJiZQZygzMCx0KSxufShlLHIpO2xldCBpPW4uZ2V0KHIpO3ZvaWQgMD09PWkmJihpPUFycmF5LmZyb20oby50cmFuc2Zvcm1zKSxuLnNldChyLGkpKTtjb25zdCBzPWkubGVuZ3RoO2ZvcihsZXQgZT0wO2U8cyYmKGlbZV0odCksdC5pc0F0dGFjaGVkKCkpO2UrKyk7fWZ1bmN0aW9uIG14KGUsdCl7cmV0dXJuIHZvaWQgMCE9PWUmJmUuX19rZXkhPT10JiZlLmlzQXR0YWNoZWQoKX1mdW5jdGlvbiBoeChlLHQpe2NvbnN0IG49ZS50eXBlLHI9dC5nZXQobik7dm9pZCAwPT09ciYmUGcoMTcsbik7Y29uc3Qgbz1yLmtsYXNzO2UudHlwZSE9PW8uZ2V0VHlwZSgpJiZQZygxOCxvLm5hbWUpO2NvbnN0IGk9by5pbXBvcnRKU09OKGUpLHM9ZS5jaGlsZHJlbjtpZihreChpKSYmQXJyYXkuaXNBcnJheShzKSlmb3IobGV0IGU9MDtlPHMubGVuZ3RoO2UrKyl7Y29uc3Qgbj1oeChzW2VdLHQpO2kuYXBwZW5kKG4pfXJldHVybiBpfWZ1bmN0aW9uIHB4KGUsdCxuKXtjb25zdCByPWV4LG89bngsaT10eDtleD10LG54PSEwLHR4PWU7dHJ5e3JldHVybiBuKCl9ZmluYWxseXtleD1yLG54PW8sdHg9aX19ZnVuY3Rpb24gZ3goZSx0KXtjb25zdCBuPWUuX3BlbmRpbmdFZGl0b3JTdGF0ZSxyPWUuX3Jvb3RFbGVtZW50LG89ZS5faGVhZGxlc3N8fG51bGw9PT1yO2lmKG51bGw9PT1uKXJldHVybjtjb25zdCBpPWUuX2VkaXRvclN0YXRlLHM9aS5fc2VsZWN0aW9uLGE9bi5fc2VsZWN0aW9uLGw9ZS5fZGlydHlUeXBlIT09UXAsYz1leCx1PW54LGQ9dHgsZj1lLl91cGRhdGluZyxtPWUuX29ic2VydmVyO2xldCBoPW51bGw7aWYoZS5fcGVuZGluZ0VkaXRvclN0YXRlPW51bGwsZS5fZWRpdG9yU3RhdGU9biwhbyYmbCYmbnVsbCE9PW0pe3R4PWUsZXg9bixueD0hMSxlLl91cGRhdGluZz0hMDt0cnl7Y29uc3QgdD1lLl9kaXJ0eVR5cGUscj1lLl9kaXJ0eUVsZW1lbnRzLG89ZS5fZGlydHlMZWF2ZXM7bS5kaXNjb25uZWN0KCksaD1mdW5jdGlvbihlLHQsbixyLG8saSl7bHY9XCJcIixmdj1cIlwiLGN2PVwiXCIsbXY9cj09PWVnLHB2PW51bGwsUXk9bixKeT1uLl9jb25maWcsZXY9bi5fbm9kZXMsdHY9UXkuX2xpc3RlbmVycy5tdXRhdGlvbixudj1vLHJ2PWksb3Y9ZS5fbm9kZU1hcCxpdj10Ll9ub2RlTWFwLGh2PXQuX3JlYWRPbmx5LHN2PW5ldyBNYXAobi5fa2V5VG9ET01NYXApO2NvbnN0IHM9bmV3IE1hcDtyZXR1cm4gYXY9cyxPdihcInJvb3RcIixudWxsKSxReT12b2lkIDAsZXY9dm9pZCAwLG52PXZvaWQgMCxydj12b2lkIDAsb3Y9dm9pZCAwLGl2PXZvaWQgMCxKeT12b2lkIDAsc3Y9dm9pZCAwLGF2PXZvaWQgMCxzfShpLG4sZSx0LHIsbyl9Y2F0Y2godCl7aWYodCBpbnN0YW5jZW9mIEVycm9yJiZlLl9vbkVycm9yKHQpLHJ4KXRocm93IHQ7cmV0dXJuIHp4KGUsbnVsbCxyLG4pLEZnKGUpLGUuX2RpcnR5VHlwZT1lZyxyeD0hMCxneChlLGkpLHZvaWQocng9ITEpfWZpbmFsbHl7bS5vYnNlcnZlKHIsaXgpLGUuX3VwZGF0aW5nPWYsZXg9YyxueD11LHR4PWR9fW4uX3JlYWRPbmx5fHwobi5fcmVhZE9ubHk9ITApO2NvbnN0IHA9ZS5fZGlydHlMZWF2ZXMsZz1lLl9kaXJ0eUVsZW1lbnRzLHk9ZS5fbm9ybWFsaXplZE5vZGVzLHY9ZS5fdXBkYXRlVGFncyxiPWUuX2RlZmVycmVkO2wmJihlLl9kaXJ0eVR5cGU9UXAsZS5fY2xvbmVOb3ROZWVkZWQuY2xlYXIoKSxlLl9kaXJ0eUxlYXZlcz1uZXcgU2V0LGUuX2RpcnR5RWxlbWVudHM9bmV3IE1hcCxlLl9ub3JtYWxpemVkTm9kZXM9bmV3IFNldCxlLl91cGRhdGVUYWdzPW5ldyBTZXQpLGZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1lLl9kZWNvcmF0b3JzO2xldCByPWUuX3BlbmRpbmdEZWNvcmF0b3JzfHxuO2NvbnN0IG89dC5fbm9kZU1hcDtsZXQgaTtmb3IoaSBpbiByKW8uaGFzKGkpfHwocj09PW4mJihyPWF5KGUpKSxkZWxldGUgcltpXSl9KGUsbik7Y29uc3QgeD1vP251bGw6VnkoZS5fd2luZG93KTtpZihlLl9lZGl0YWJsZSYmbnVsbCE9PXgmJihsfHxudWxsPT09YXx8YS5kaXJ0eSkpe3R4PWUsZXg9bjt0cnl7aWYobnVsbCE9PW0mJm0uZGlzY29ubmVjdCgpLGx8fG51bGw9PT1hfHxhLmRpcnR5KXtjb25zdCB0PWUuX2Jsb2NrQ3Vyc29yRWxlbWVudDtudWxsIT09dCYmX24odCxlLHIpLGZ1bmN0aW9uKGUsdCxuLHIsbyxpKXtjb25zdCBzPXIuYW5jaG9yTm9kZSxhPXIuZm9jdXNOb2RlLGw9ci5hbmNob3JPZmZzZXQsYz1yLmZvY3VzT2Zmc2V0LHU9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZihvLmhhcyhcImNvbGxhYm9yYXRpb25cIikmJnUhPT1pfHxudWxsIT09dSYmWWcodSkpcmV0dXJuO2lmKCFEYih0KSlyZXR1cm4gdm9pZChudWxsIT09ZSYmSGcobixzLGEpJiZyLnJlbW92ZUFsbFJhbmdlcygpKTtjb25zdCBkPXQuYW5jaG9yLGY9dC5mb2N1cyxtPWQua2V5LGg9Zi5rZXkscD1qeShuLG0pLGc9ankobixoKSx5PWQub2Zmc2V0LHY9Zi5vZmZzZXQsYj10LmZvcm1hdCx4PXQuc3R5bGUsdz10LmlzQ29sbGFwc2VkKCk7bGV0IFM9cCxrPWcsRT0hMTtpZihcInRleHRcIj09PWQudHlwZSl7Uz1KZyhwKTtjb25zdCBlPWQuZ2V0Tm9kZSgpO0U9ZS5nZXRGb3JtYXQoKSE9PWJ8fGUuZ2V0U3R5bGUoKSE9PXh9ZWxzZSBEYihlKSYmXCJ0ZXh0XCI9PT1lLmFuY2hvci50eXBlJiYoRT0hMCk7dmFyIEMsXyxQLE8sTjtpZihcInRleHRcIj09PWYudHlwZSYmKGs9SmcoZykpLG51bGwhPT1TJiZudWxsIT09ayYmKHcmJihudWxsPT09ZXx8RXx8RGIoZSkmJihlLmZvcm1hdCE9PWJ8fGUuc3R5bGUhPT14KSkmJihDPWIsXz14LFA9eSxPPW0sTj1wZXJmb3JtYW5jZS5ub3coKSxVdj1bQyxfLFAsTyxOXSksbCE9PXl8fGMhPT12fHxzIT09U3x8YSE9PWt8fFwiUmFuZ2VcIj09PXIudHlwZSYmd3x8KG51bGwhPT11JiZpLmNvbnRhaW5zKHUpfHxpLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSksXCJlbGVtZW50XCI9PT1kLnR5cGUpKSl7dHJ5e3Iuc2V0QmFzZUFuZEV4dGVudChTLHksayx2KX1jYXRjaChlKXt9aWYoIW8uaGFzKFwic2tpcC1zY3JvbGwtaW50by12aWV3XCIpJiZ0LmlzQ29sbGFwc2VkKCkmJm51bGwhPT1pJiZpPT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl7Y29uc3QgZT10IGluc3RhbmNlb2YgamImJlwiZWxlbWVudFwiPT09dC5hbmNob3IudHlwZT9TLmNoaWxkTm9kZXNbeV18fG51bGw6ci5yYW5nZUNvdW50PjA/ci5nZXRSYW5nZUF0KDApOm51bGw7aWYobnVsbCE9PWUpe2xldCB0O2lmKGUgaW5zdGFuY2VvZiBUZXh0KXtjb25zdCBuPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7bi5zZWxlY3ROb2RlKGUpLHQ9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1lbHNlIHQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTshZnVuY3Rpb24oZSx0LG4pe2NvbnN0IHI9bi5vd25lckRvY3VtZW50LG89ci5kZWZhdWx0VmlldztpZihudWxsPT09bylyZXR1cm47bGV0e3RvcDppLGJvdHRvbTpzfT10LGE9MCxsPTAsYz1uO2Zvcig7bnVsbCE9PWM7KXtjb25zdCB0PWM9PT1yLmJvZHk7aWYodClhPTAsbD1MeShlKS5pbm5lckhlaWdodDtlbHNle2NvbnN0IGU9Yy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTthPWUudG9wLGw9ZS5ib3R0b219bGV0IG49MDtpZihpPGE/bj0tKGEtaSk6cz5sJiYobj1zLWwpLDAhPT1uKWlmKHQpby5zY3JvbGxCeSgwLG4pO2Vsc2V7Y29uc3QgZT1jLnNjcm9sbFRvcDtjLnNjcm9sbFRvcCs9bjtjb25zdCB0PWMuc2Nyb2xsVG9wLWU7aS09dCxzLT10fWlmKHQpYnJlYWs7Yz1BeShjKX19KG4sdCxpKX19enY9ITB9fShzLGEsZSx4LHYscil9KGZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1lLl9ibG9ja0N1cnNvckVsZW1lbnQ7aWYoRGIobikmJm4uaXNDb2xsYXBzZWQoKSYmXCJlbGVtZW50XCI9PT1uLmFuY2hvci50eXBlJiZ0LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKXtjb25zdCBvPW4uYW5jaG9yLGk9by5nZXROb2RlKCkscz1vLm9mZnNldDtsZXQgYT0hMSxsPW51bGw7aWYocz09PWkuZ2V0Q2hpbGRyZW5TaXplKCkpV3koaS5nZXRDaGlsZEF0SW5kZXgocy0xKSkmJihhPSEwKTtlbHNle2NvbnN0IHQ9aS5nZXRDaGlsZEF0SW5kZXgocyk7aWYoV3kodCkpe2NvbnN0IG49dC5nZXRQcmV2aW91c1NpYmxpbmcoKTsobnVsbD09PW58fFd5KG4pKSYmKGE9ITAsbD1lLmdldEVsZW1lbnRCeUtleSh0Ll9fa2V5KSl9fWlmKGEpe2NvbnN0IG49ZS5nZXRFbGVtZW50QnlLZXkoaS5fX2tleSk7cmV0dXJuIG51bGw9PT1yJiYoZS5fYmxvY2tDdXJzb3JFbGVtZW50PXI9ZnVuY3Rpb24oZSl7Y29uc3QgdD1lLnRoZW1lLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtuLmNvbnRlbnRFZGl0YWJsZT1cImZhbHNlXCIsbi5zZXRBdHRyaWJ1dGUoXCJkYXRhLWxleGljYWwtY3Vyc29yXCIsXCJ0cnVlXCIpO2xldCByPXQuYmxvY2tDdXJzb3I7aWYodm9pZCAwIT09cil7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHIpe2NvbnN0IGU9T2cocik7cj10LmJsb2NrQ3Vyc29yPWV9dm9pZCAwIT09ciYmbi5jbGFzc0xpc3QuYWRkKC4uLnIpfXJldHVybiBufShlLl9jb25maWcpKSx0LnN0eWxlLmNhcmV0Q29sb3I9XCJ0cmFuc3BhcmVudFwiLHZvaWQobnVsbD09PWw/bi5hcHBlbmRDaGlsZChyKTpuLmluc2VydEJlZm9yZShyLGwpKX19bnVsbCE9PXImJl9uKHIsZSx0KX0pKGUscixhKSxudWxsIT09bSYmbS5vYnNlcnZlKHIsaXgpfWZpbmFsbHl7dHg9ZCxleD1jfX1udWxsIT09aCYmZnVuY3Rpb24oZSx0LG4scixvKXtjb25zdCBpPUFycmF5LmZyb20oZS5fbGlzdGVuZXJzLm11dGF0aW9uKSxzPWkubGVuZ3RoO2ZvcihsZXQgZT0wO2U8cztlKyspe2NvbnN0W3MsYV09aVtlXSxsPXQuZ2V0KGEpO3ZvaWQgMCE9PWwmJnMobCx7ZGlydHlMZWF2ZXM6cixwcmV2RWRpdG9yU3RhdGU6byx1cGRhdGVUYWdzOm59KX19KGUsaCx2LHAsaSksRGIoYSl8fG51bGw9PT1hfHxudWxsIT09cyYmcy5pcyhhKXx8ZS5kaXNwYXRjaENvbW1hbmQoZXAsdm9pZCAwKTtjb25zdCB3PWUuX3BlbmRpbmdEZWNvcmF0b3JzO251bGwhPT13JiYoZS5fZGVjb3JhdG9ycz13LGUuX3BlbmRpbmdEZWNvcmF0b3JzPW51bGwseXgoXCJkZWNvcmF0b3JcIixlLCEwLHcpKSxmdW5jdGlvbihlLHQsbil7Y29uc3Qgcj1seSh0KSxvPWx5KG4pO3IhPT1vJiZ5eChcInRleHRjb250ZW50XCIsZSwhMCxvKX0oZSx0fHxpLG4pLHl4KFwidXBkYXRlXCIsZSwhMCx7ZGlydHlFbGVtZW50czpnLGRpcnR5TGVhdmVzOnAsZWRpdG9yU3RhdGU6bixub3JtYWxpemVkTm9kZXM6eSxwcmV2RWRpdG9yU3RhdGU6dHx8aSx0YWdzOnZ9KSxmdW5jdGlvbihlLHQpe2lmKGUuX2RlZmVycmVkPVtdLDAhPT10Lmxlbmd0aCl7Y29uc3Qgbj1lLl91cGRhdGluZztlLl91cGRhdGluZz0hMDt0cnl7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspdFtlXSgpfWZpbmFsbHl7ZS5fdXBkYXRpbmc9bn19fShlLGIpLGZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5fdXBkYXRlcztpZigwIT09dC5sZW5ndGgpe2NvbnN0IG49dC5zaGlmdCgpO2lmKG4pe2NvbnN0W3Qscl09bjt4eChlLHQscil9fX0oZSl9ZnVuY3Rpb24geXgoZSx0LG4sLi4ucil7Y29uc3Qgbz10Ll91cGRhdGluZzt0Ll91cGRhdGluZz1uO3RyeXtjb25zdCBuPUFycmF5LmZyb20odC5fbGlzdGVuZXJzW2VdKTtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoO2UrKyluW2VdLmFwcGx5KG51bGwscil9ZmluYWxseXt0Ll91cGRhdGluZz1vfX1mdW5jdGlvbiB2eChlLHQsbil7aWYoITE9PT1lLl91cGRhdGluZ3x8dHghPT1lKXtsZXQgcj0hMTtyZXR1cm4gZS51cGRhdGUoKCgpPT57cj12eChlLHQsbil9KSkscn1jb25zdCByPXB5KGUpO2ZvcihsZXQgbz00O28+PTA7by0tKWZvcihsZXQgaT0wO2k8ci5sZW5ndGg7aSsrKXtjb25zdCBzPXJbaV0uX2NvbW1hbmRzLmdldCh0KTtpZih2b2lkIDAhPT1zKXtjb25zdCB0PXNbb107aWYodm9pZCAwIT09dCl7Y29uc3Qgcj1BcnJheS5mcm9tKHQpLG89ci5sZW5ndGg7Zm9yKGxldCB0PTA7dDxvO3QrKylpZighMD09PXJbdF0obixlKSlyZXR1cm4hMH19fXJldHVybiExfWZ1bmN0aW9uIGJ4KGUsdCl7Y29uc3Qgbj1lLl91cGRhdGVzO2xldCByPXR8fCExO2Zvcig7MCE9PW4ubGVuZ3RoOyl7Y29uc3QgdD1uLnNoaWZ0KCk7aWYodCl7Y29uc3RbbixvXT10O2xldCBpLHM7aWYodm9pZCAwIT09byl7aWYoaT1vLm9uVXBkYXRlLHM9by50YWcsby5za2lwVHJhbnNmb3JtcyYmKHI9ITApLG8uZGlzY3JldGUpe2NvbnN0IHQ9ZS5fcGVuZGluZ0VkaXRvclN0YXRlO251bGw9PT10JiZQZygxOTEpLHQuX2ZsdXNoU3luYz0hMH1pJiZlLl9kZWZlcnJlZC5wdXNoKGkpLHMmJmUuX3VwZGF0ZVRhZ3MuYWRkKHMpfW4oKX19cmV0dXJuIHJ9ZnVuY3Rpb24geHgoZSx0LG4pe2NvbnN0IHI9ZS5fdXBkYXRlVGFncztsZXQgbyxpLHM9ITEsYT0hMTt2b2lkIDAhPT1uJiYobz1uLm9uVXBkYXRlLGk9bi50YWcsbnVsbCE9aSYmci5hZGQoaSkscz1uLnNraXBUcmFuc2Zvcm1zfHwhMSxhPW4uZGlzY3JldGV8fCExKSxvJiZlLl9kZWZlcnJlZC5wdXNoKG8pO2NvbnN0IGw9ZS5fZWRpdG9yU3RhdGU7bGV0IGM9ZS5fcGVuZGluZ0VkaXRvclN0YXRlLHU9ITE7KG51bGw9PT1jfHxjLl9yZWFkT25seSkmJihjPWUuX3BlbmRpbmdFZGl0b3JTdGF0ZT1uZXcgUngobmV3IE1hcCgoY3x8bCkuX25vZGVNYXApKSx1PSEwKSxjLl9mbHVzaFN5bmM9YTtjb25zdCBkPWV4LGY9bngsbT10eCxoPWUuX3VwZGF0aW5nO2V4PWMsbng9ITEsZS5fdXBkYXRpbmc9ITAsdHg9ZTt0cnl7dSYmKGUuX2hlYWRsZXNzP251bGwhPT1sLl9zZWxlY3Rpb24mJihjLl9zZWxlY3Rpb249bC5fc2VsZWN0aW9uLmNsb25lKCkpOmMuX3NlbGVjdGlvbj1mdW5jdGlvbihlKXtjb25zdCB0PWUuZ2V0RWRpdG9yU3RhdGUoKS5fc2VsZWN0aW9uLG49VnkoZS5fd2luZG93KTtyZXR1cm4gRGIodCl8fG51bGw9PXQ/WWIodCxuLGUsbnVsbCk6dC5jbG9uZSgpfShlKSk7Y29uc3Qgbj1lLl9jb21wb3NpdGlvbktleTt0KCkscz1ieChlLHMpLGZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj10LmdldEVkaXRvclN0YXRlKCkuX3NlbGVjdGlvbixyPWUuX3NlbGVjdGlvbjtpZihEYihyKSl7Y29uc3QgZT1yLmFuY2hvcix0PXIuZm9jdXM7bGV0IG87aWYoXCJ0ZXh0XCI9PT1lLnR5cGUmJihvPWUuZ2V0Tm9kZSgpLG8uc2VsZWN0aW9uVHJhbnNmb3JtKG4scikpLFwidGV4dFwiPT09dC50eXBlKXtjb25zdCBlPXQuZ2V0Tm9kZSgpO28hPT1lJiZlLnNlbGVjdGlvblRyYW5zZm9ybShuLHIpfX19KGMsZSksZS5fZGlydHlUeXBlIT09UXAmJihzP2Z1bmN0aW9uKGUsdCl7Y29uc3Qgbj10Ll9kaXJ0eUxlYXZlcyxyPWUuX25vZGVNYXA7Zm9yKGNvbnN0IGUgb2Ygbil7Y29uc3QgdD1yLmdldChlKTtrYih0KSYmdC5pc0F0dGFjaGVkKCkmJnQuaXNTaW1wbGVUZXh0KCkmJiF0LmlzVW5tZXJnZWFibGUoKSYmV2codCl9fShjLGUpOmZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj10Ll9kaXJ0eUxlYXZlcyxyPXQuX2RpcnR5RWxlbWVudHMsbz1lLl9ub2RlTWFwLGk9cnkoKSxzPW5ldyBNYXA7bGV0IGE9bixsPWEuc2l6ZSxjPXIsdT1jLnNpemU7Zm9yKDtsPjB8fHU+MDspe2lmKGw+MCl7dC5fZGlydHlMZWF2ZXM9bmV3IFNldDtmb3IoY29uc3QgZSBvZiBhKXtjb25zdCByPW8uZ2V0KGUpO2tiKHIpJiZyLmlzQXR0YWNoZWQoKSYmci5pc1NpbXBsZVRleHQoKSYmIXIuaXNVbm1lcmdlYWJsZSgpJiZXZyhyKSx2b2lkIDAhPT1yJiZteChyLGkpJiZmeCh0LHIscyksbi5hZGQoZSl9aWYoYT10Ll9kaXJ0eUxlYXZlcyxsPWEuc2l6ZSxsPjApe294Kys7Y29udGludWV9fXQuX2RpcnR5TGVhdmVzPW5ldyBTZXQsdC5fZGlydHlFbGVtZW50cz1uZXcgTWFwO2Zvcihjb25zdCBlIG9mIGMpe2NvbnN0IG49ZVswXSxhPWVbMV07aWYoXCJyb290XCIhPT1uJiYhYSljb250aW51ZTtjb25zdCBsPW8uZ2V0KG4pO3ZvaWQgMCE9PWwmJm14KGwsaSkmJmZ4KHQsbCxzKSxyLnNldChuLGEpfWE9dC5fZGlydHlMZWF2ZXMsbD1hLnNpemUsYz10Ll9kaXJ0eUVsZW1lbnRzLHU9Yy5zaXplLG94Kyt9dC5fZGlydHlMZWF2ZXM9bix0Ll9kaXJ0eUVsZW1lbnRzPXJ9KGMsZSksYngoZSksZnVuY3Rpb24oZSx0LG4scil7Y29uc3Qgbz1lLl9ub2RlTWFwLGk9dC5fbm9kZU1hcCxzPVtdO2Zvcihjb25zdFtlXW9mIHIpe2NvbnN0IHQ9aS5nZXQoZSk7dm9pZCAwIT09dCYmKHQuaXNBdHRhY2hlZCgpfHwoa3godCkmJlp5KHQsZSxvLGkscyxyKSxvLmhhcyhlKXx8ci5kZWxldGUoZSkscy5wdXNoKGUpKSl9Zm9yKGNvbnN0IGUgb2YgcylpLmRlbGV0ZShlKTtmb3IoY29uc3QgZSBvZiBuKXtjb25zdCB0PWkuZ2V0KGUpO3ZvaWQgMD09PXR8fHQuaXNBdHRhY2hlZCgpfHwoby5oYXMoZSl8fG4uZGVsZXRlKGUpLGkuZGVsZXRlKGUpKX19KGwsYyxlLl9kaXJ0eUxlYXZlcyxlLl9kaXJ0eUVsZW1lbnRzKSksbiE9PWUuX2NvbXBvc2l0aW9uS2V5JiYoYy5fZmx1c2hTeW5jPSEwKTtjb25zdCByPWMuX3NlbGVjdGlvbjtpZihEYihyKSl7Y29uc3QgZT1jLl9ub2RlTWFwLHQ9ci5hbmNob3Iua2V5LG49ci5mb2N1cy5rZXk7dm9pZCAwIT09ZS5nZXQodCkmJnZvaWQgMCE9PWUuZ2V0KG4pfHxQZygxOSl9ZWxzZSBBYihyKSYmMD09PXIuX25vZGVzLnNpemUmJihjLl9zZWxlY3Rpb249bnVsbCl9Y2F0Y2godCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBFcnJvciYmZS5fb25FcnJvcih0KSxlLl9wZW5kaW5nRWRpdG9yU3RhdGU9bCxlLl9kaXJ0eVR5cGU9ZWcsZS5fY2xvbmVOb3ROZWVkZWQuY2xlYXIoKSxlLl9kaXJ0eUxlYXZlcz1uZXcgU2V0LGUuX2RpcnR5RWxlbWVudHMuY2xlYXIoKSx2b2lkIGd4KGUpfWZpbmFsbHl7ZXg9ZCxueD1mLHR4PW0sZS5fdXBkYXRpbmc9aCxveD0wfWNvbnN0IHA9ZS5fZGlydHlUeXBlIT09UXB8fGZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj10LmdldEVkaXRvclN0YXRlKCkuX3NlbGVjdGlvbixyPWUuX3NlbGVjdGlvbjtpZihudWxsIT09cil7aWYoci5kaXJ0eXx8IXIuaXMobikpcmV0dXJuITB9ZWxzZSBpZihudWxsIT09bilyZXR1cm4hMDtyZXR1cm4hMX0oYyxlKTtwP2MuX2ZsdXNoU3luYz8oYy5fZmx1c2hTeW5jPSExLGd4KGUpKTp1JiYkZygoKCk9PntneChlKX0pKTooYy5fZmx1c2hTeW5jPSExLHUmJihyLmNsZWFyKCksZS5fZGVmZXJyZWQ9W10sZS5fcGVuZGluZ0VkaXRvclN0YXRlPW51bGwpKX1mdW5jdGlvbiB3eChlLHQsbil7ZS5fdXBkYXRpbmc/ZS5fdXBkYXRlcy5wdXNoKFt0LG5dKTp4eChlLHQsbil9Y2xhc3MgU3ggZXh0ZW5kcyB0Yntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLl9fZmlyc3Q9bnVsbCx0aGlzLl9fbGFzdD1udWxsLHRoaXMuX19zaXplPTAsdGhpcy5fX2Zvcm1hdD0wLHRoaXMuX19zdHlsZT1cIlwiLHRoaXMuX19pbmRlbnQ9MCx0aGlzLl9fZGlyPW51bGx9YWZ0ZXJDbG9uZUZyb20oZSl7c3VwZXIuYWZ0ZXJDbG9uZUZyb20oZSksdGhpcy5fX2ZpcnN0PWUuX19maXJzdCx0aGlzLl9fbGFzdD1lLl9fbGFzdCx0aGlzLl9fc2l6ZT1lLl9fc2l6ZSx0aGlzLl9faW5kZW50PWUuX19pbmRlbnQsdGhpcy5fX2Zvcm1hdD1lLl9fZm9ybWF0LHRoaXMuX19zdHlsZT1lLl9fc3R5bGUsdGhpcy5fX2Rpcj1lLl9fZGlyfWdldEZvcm1hdCgpe3JldHVybiB0aGlzLmdldExhdGVzdCgpLl9fZm9ybWF0fWdldEZvcm1hdFR5cGUoKXtjb25zdCBlPXRoaXMuZ2V0Rm9ybWF0KCk7cmV0dXJuIGtnW2VdfHxcIlwifWdldFN0eWxlKCl7cmV0dXJuIHRoaXMuZ2V0TGF0ZXN0KCkuX19zdHlsZX1nZXRJbmRlbnQoKXtyZXR1cm4gdGhpcy5nZXRMYXRlc3QoKS5fX2luZGVudH1nZXRDaGlsZHJlbigpe2NvbnN0IGU9W107bGV0IHQ9dGhpcy5nZXRGaXJzdENoaWxkKCk7Zm9yKDtudWxsIT09dDspZS5wdXNoKHQpLHQ9dC5nZXROZXh0U2libGluZygpO3JldHVybiBlfWdldENoaWxkcmVuS2V5cygpe2NvbnN0IGU9W107bGV0IHQ9dGhpcy5nZXRGaXJzdENoaWxkKCk7Zm9yKDtudWxsIT09dDspZS5wdXNoKHQuX19rZXkpLHQ9dC5nZXROZXh0U2libGluZygpO3JldHVybiBlfWdldENoaWxkcmVuU2l6ZSgpe3JldHVybiB0aGlzLmdldExhdGVzdCgpLl9fc2l6ZX1pc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLmdldENoaWxkcmVuU2l6ZSgpfWlzRGlydHkoKXtjb25zdCBlPXV4KCkuX2RpcnR5RWxlbWVudHM7cmV0dXJuIG51bGwhPT1lJiZlLmhhcyh0aGlzLl9fa2V5KX1pc0xhc3RDaGlsZCgpe2NvbnN0IGU9dGhpcy5nZXRMYXRlc3QoKSx0PXRoaXMuZ2V0UGFyZW50T3JUaHJvdygpLmdldExhc3RDaGlsZCgpO3JldHVybiBudWxsIT09dCYmdC5pcyhlKX1nZXRBbGxUZXh0Tm9kZXMoKXtjb25zdCBlPVtdO2xldCB0PXRoaXMuZ2V0Rmlyc3RDaGlsZCgpO2Zvcig7bnVsbCE9PXQ7KXtpZihrYih0KSYmZS5wdXNoKHQpLGt4KHQpKXtjb25zdCBuPXQuZ2V0QWxsVGV4dE5vZGVzKCk7ZS5wdXNoKC4uLm4pfXQ9dC5nZXROZXh0U2libGluZygpfXJldHVybiBlfWdldEZpcnN0RGVzY2VuZGFudCgpe2xldCBlPXRoaXMuZ2V0Rmlyc3RDaGlsZCgpO2Zvcig7a3goZSk7KXtjb25zdCB0PWUuZ2V0Rmlyc3RDaGlsZCgpO2lmKG51bGw9PT10KWJyZWFrO2U9dH1yZXR1cm4gZX1nZXRMYXN0RGVzY2VuZGFudCgpe2xldCBlPXRoaXMuZ2V0TGFzdENoaWxkKCk7Zm9yKDtreChlKTspe2NvbnN0IHQ9ZS5nZXRMYXN0Q2hpbGQoKTtpZihudWxsPT09dClicmVhaztlPXR9cmV0dXJuIGV9Z2V0RGVzY2VuZGFudEJ5SW5kZXgoZSl7Y29uc3QgdD10aGlzLmdldENoaWxkcmVuKCksbj10Lmxlbmd0aDtpZihlPj1uKXtjb25zdCBlPXRbbi0xXTtyZXR1cm4ga3goZSkmJmUuZ2V0TGFzdERlc2NlbmRhbnQoKXx8ZXx8bnVsbH1jb25zdCByPXRbZV07cmV0dXJuIGt4KHIpJiZyLmdldEZpcnN0RGVzY2VuZGFudCgpfHxyfHxudWxsfWdldEZpcnN0Q2hpbGQoKXtjb25zdCBlPXRoaXMuZ2V0TGF0ZXN0KCkuX19maXJzdDtyZXR1cm4gbnVsbD09PWU/bnVsbDpveShlKX1nZXRGaXJzdENoaWxkT3JUaHJvdygpe2NvbnN0IGU9dGhpcy5nZXRGaXJzdENoaWxkKCk7cmV0dXJuIG51bGw9PT1lJiZQZyg0NSx0aGlzLl9fa2V5KSxlfWdldExhc3RDaGlsZCgpe2NvbnN0IGU9dGhpcy5nZXRMYXRlc3QoKS5fX2xhc3Q7cmV0dXJuIG51bGw9PT1lP251bGw6b3koZSl9Z2V0TGFzdENoaWxkT3JUaHJvdygpe2NvbnN0IGU9dGhpcy5nZXRMYXN0Q2hpbGQoKTtyZXR1cm4gbnVsbD09PWUmJlBnKDk2LHRoaXMuX19rZXkpLGV9Z2V0Q2hpbGRBdEluZGV4KGUpe2NvbnN0IHQ9dGhpcy5nZXRDaGlsZHJlblNpemUoKTtsZXQgbixyO2lmKGU8dC8yKXtmb3Iobj10aGlzLmdldEZpcnN0Q2hpbGQoKSxyPTA7bnVsbCE9PW4mJnI8PWU7KXtpZihyPT09ZSlyZXR1cm4gbjtuPW4uZ2V0TmV4dFNpYmxpbmcoKSxyKyt9cmV0dXJuIG51bGx9Zm9yKG49dGhpcy5nZXRMYXN0Q2hpbGQoKSxyPXQtMTtudWxsIT09biYmcj49ZTspe2lmKHI9PT1lKXJldHVybiBuO249bi5nZXRQcmV2aW91c1NpYmxpbmcoKSxyLS19cmV0dXJuIG51bGx9Z2V0VGV4dENvbnRlbnQoKXtsZXQgZT1cIlwiO2NvbnN0IHQ9dGhpcy5nZXRDaGlsZHJlbigpLG49dC5sZW5ndGg7Zm9yKGxldCByPTA7cjxuO3IrKyl7Y29uc3Qgbz10W3JdO2UrPW8uZ2V0VGV4dENvbnRlbnQoKSxreChvKSYmciE9PW4tMSYmIW8uaXNJbmxpbmUoKSYmKGUrPWhnKX1yZXR1cm4gZX1nZXRUZXh0Q29udGVudFNpemUoKXtsZXQgZT0wO2NvbnN0IHQ9dGhpcy5nZXRDaGlsZHJlbigpLG49dC5sZW5ndGg7Zm9yKGxldCByPTA7cjxuO3IrKyl7Y29uc3Qgbz10W3JdO2UrPW8uZ2V0VGV4dENvbnRlbnRTaXplKCksa3gobykmJnIhPT1uLTEmJiFvLmlzSW5saW5lKCkmJihlKz1oZy5sZW5ndGgpfXJldHVybiBlfWdldERpcmVjdGlvbigpe3JldHVybiB0aGlzLmdldExhdGVzdCgpLl9fZGlyfWhhc0Zvcm1hdChlKXtpZihcIlwiIT09ZSl7Y29uc3QgdD1TZ1tlXTtyZXR1cm4hISh0aGlzLmdldEZvcm1hdCgpJnQpfXJldHVybiExfXNlbGVjdChlLHQpe2F4KCk7Y29uc3Qgbj1IYigpO2xldCByPWUsbz10O2NvbnN0IGk9dGhpcy5nZXRDaGlsZHJlblNpemUoKTtpZighdGhpcy5jYW5CZUVtcHR5KCkpaWYoMD09PWUmJjA9PT10KXtjb25zdCBlPXRoaXMuZ2V0Rmlyc3RDaGlsZCgpO2lmKGtiKGUpfHxreChlKSlyZXR1cm4gZS5zZWxlY3QoMCwwKX1lbHNlIGlmKCEodm9pZCAwIT09ZSYmZSE9PWl8fHZvaWQgMCE9PXQmJnQhPT1pKSl7Y29uc3QgZT10aGlzLmdldExhc3RDaGlsZCgpO2lmKGtiKGUpfHxreChlKSlyZXR1cm4gZS5zZWxlY3QoKX12b2lkIDA9PT1yJiYocj1pKSx2b2lkIDA9PT1vJiYobz1pKTtjb25zdCBzPXRoaXMuX19rZXk7cmV0dXJuIERiKG4pPyhuLmFuY2hvci5zZXQocyxyLFwiZWxlbWVudFwiKSxuLmZvY3VzLnNldChzLG8sXCJlbGVtZW50XCIpLG4uZGlydHk9ITAsbik6VWIocyxyLHMsbyxcImVsZW1lbnRcIixcImVsZW1lbnRcIil9c2VsZWN0U3RhcnQoKXtjb25zdCBlPXRoaXMuZ2V0Rmlyc3REZXNjZW5kYW50KCk7cmV0dXJuIGU/ZS5zZWxlY3RTdGFydCgpOnRoaXMuc2VsZWN0KCl9c2VsZWN0RW5kKCl7Y29uc3QgZT10aGlzLmdldExhc3REZXNjZW5kYW50KCk7cmV0dXJuIGU/ZS5zZWxlY3RFbmQoKTp0aGlzLnNlbGVjdCgpfWNsZWFyKCl7Y29uc3QgZT10aGlzLmdldFdyaXRhYmxlKCk7cmV0dXJuIHRoaXMuZ2V0Q2hpbGRyZW4oKS5mb3JFYWNoKChlPT5lLnJlbW92ZSgpKSksZX1hcHBlbmQoLi4uZSl7cmV0dXJuIHRoaXMuc3BsaWNlKHRoaXMuZ2V0Q2hpbGRyZW5TaXplKCksMCxlKX1zZXREaXJlY3Rpb24oZSl7Y29uc3QgdD10aGlzLmdldFdyaXRhYmxlKCk7cmV0dXJuIHQuX19kaXI9ZSx0fXNldEZvcm1hdChlKXtyZXR1cm4gdGhpcy5nZXRXcml0YWJsZSgpLl9fZm9ybWF0PVwiXCIhPT1lP1NnW2VdOjAsdGhpc31zZXRTdHlsZShlKXtyZXR1cm4gdGhpcy5nZXRXcml0YWJsZSgpLl9fc3R5bGU9ZXx8XCJcIix0aGlzfXNldEluZGVudChlKXtyZXR1cm4gdGhpcy5nZXRXcml0YWJsZSgpLl9faW5kZW50PWUsdGhpc31zcGxpY2UoZSx0LG4pe2NvbnN0IHI9bi5sZW5ndGgsbz10aGlzLmdldENoaWxkcmVuU2l6ZSgpLGk9dGhpcy5nZXRXcml0YWJsZSgpLHM9aS5fX2tleSxhPVtdLGw9W10sYz10aGlzLmdldENoaWxkQXRJbmRleChlK3QpO2xldCB1PW51bGwsZD1vLXQrcjtpZigwIT09ZSlpZihlPT09byl1PXRoaXMuZ2V0TGFzdENoaWxkKCk7ZWxzZXtjb25zdCB0PXRoaXMuZ2V0Q2hpbGRBdEluZGV4KGUpO251bGwhPT10JiYodT10LmdldFByZXZpb3VzU2libGluZygpKX1pZih0PjApe2xldCBlPW51bGw9PT11P3RoaXMuZ2V0Rmlyc3RDaGlsZCgpOnUuZ2V0TmV4dFNpYmxpbmcoKTtmb3IobGV0IG49MDtuPHQ7bisrKXtudWxsPT09ZSYmUGcoMTAwKTtjb25zdCB0PWUuZ2V0TmV4dFNpYmxpbmcoKSxuPWUuX19rZXk7ZXkoZS5nZXRXcml0YWJsZSgpKSxsLnB1c2gobiksZT10fX1sZXQgZj11O2ZvcihsZXQgZT0wO2U8cjtlKyspe2NvbnN0IHQ9bltlXTtudWxsIT09ZiYmdC5pcyhmKSYmKHU9Zj1mLmdldFByZXZpb3VzU2libGluZygpKTtjb25zdCByPXQuZ2V0V3JpdGFibGUoKTtyLl9fcGFyZW50PT09cyYmZC0tLGV5KHIpO2NvbnN0IG89dC5fX2tleTtpZihudWxsPT09ZilpLl9fZmlyc3Q9byxyLl9fcHJldj1udWxsO2Vsc2V7Y29uc3QgZT1mLmdldFdyaXRhYmxlKCk7ZS5fX25leHQ9byxyLl9fcHJldj1lLl9fa2V5fXQuX19rZXk9PT1zJiZQZyg3Niksci5fX3BhcmVudD1zLGEucHVzaChvKSxmPXR9aWYoZSt0PT09byludWxsIT09ZiYmKGYuZ2V0V3JpdGFibGUoKS5fX25leHQ9bnVsbCxpLl9fbGFzdD1mLl9fa2V5KTtlbHNlIGlmKG51bGwhPT1jKXtjb25zdCBlPWMuZ2V0V3JpdGFibGUoKTtpZihudWxsIT09Zil7Y29uc3QgdD1mLmdldFdyaXRhYmxlKCk7ZS5fX3ByZXY9Zi5fX2tleSx0Ll9fbmV4dD1jLl9fa2V5fWVsc2UgZS5fX3ByZXY9bnVsbH1pZihpLl9fc2l6ZT1kLGwubGVuZ3RoKXtjb25zdCBlPUhiKCk7aWYoRGIoZSkpe2NvbnN0IHQ9bmV3IFNldChsKSxuPW5ldyBTZXQoYSkse2FuY2hvcjpyLGZvY3VzOm99PWU7RXgocix0LG4pJiZYYihyLHIuZ2V0Tm9kZSgpLHRoaXMsdSxjKSxFeChvLHQsbikmJlhiKG8sby5nZXROb2RlKCksdGhpcyx1LGMpLDAhPT1kfHx0aGlzLmNhbkJlRW1wdHkoKXx8RnkodGhpcyl8fHRoaXMucmVtb3ZlKCl9fXJldHVybiBpfWV4cG9ydEpTT04oKXtyZXR1cm57Y2hpbGRyZW46W10sZGlyZWN0aW9uOnRoaXMuZ2V0RGlyZWN0aW9uKCksZm9ybWF0OnRoaXMuZ2V0Rm9ybWF0VHlwZSgpLGluZGVudDp0aGlzLmdldEluZGVudCgpLHR5cGU6XCJlbGVtZW50XCIsdmVyc2lvbjoxfX1pbnNlcnROZXdBZnRlcihlLHQpe3JldHVybiBudWxsfWNhbkluZGVudCgpe3JldHVybiEwfWNvbGxhcHNlQXRTdGFydChlKXtyZXR1cm4hMX1leGNsdWRlRnJvbUNvcHkoZSl7cmV0dXJuITF9Y2FuUmVwbGFjZVdpdGgoZSl7cmV0dXJuITB9Y2FuSW5zZXJ0QWZ0ZXIoZSl7cmV0dXJuITB9Y2FuQmVFbXB0eSgpe3JldHVybiEwfWNhbkluc2VydFRleHRCZWZvcmUoKXtyZXR1cm4hMH1jYW5JbnNlcnRUZXh0QWZ0ZXIoKXtyZXR1cm4hMH1pc0lubGluZSgpe3JldHVybiExfWlzU2hhZG93Um9vdCgpe3JldHVybiExfWNhbk1lcmdlV2l0aChlKXtyZXR1cm4hMX1leHRyYWN0V2l0aENoaWxkKGUsdCxuKXtyZXR1cm4hMX1jYW5NZXJnZVdoZW5FbXB0eSgpe3JldHVybiExfX1mdW5jdGlvbiBreChlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIFN4fWZ1bmN0aW9uIEV4KGUsdCxuKXtsZXQgcj1lLmdldE5vZGUoKTtmb3IoO3I7KXtjb25zdCBlPXIuX19rZXk7aWYodC5oYXMoZSkmJiFuLmhhcyhlKSlyZXR1cm4hMDtyPXIuZ2V0UGFyZW50KCl9cmV0dXJuITF9Y2xhc3MgQ3ggZXh0ZW5kcyB0Yntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKX1kZWNvcmF0ZShlLHQpe1BnKDQ3KX1pc0lzb2xhdGVkKCl7cmV0dXJuITF9aXNJbmxpbmUoKXtyZXR1cm4hMH1pc0tleWJvYXJkU2VsZWN0YWJsZSgpe3JldHVybiEwfX1mdW5jdGlvbiBQeChlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEN4fWNsYXNzIE94IGV4dGVuZHMgU3h7c3RhdGljIGdldFR5cGUoKXtyZXR1cm5cInJvb3RcIn1zdGF0aWMgY2xvbmUoKXtyZXR1cm4gbmV3IE94fWNvbnN0cnVjdG9yKCl7c3VwZXIoXCJyb290XCIpLHRoaXMuX19jYWNoZWRUZXh0PW51bGx9Z2V0VG9wTGV2ZWxFbGVtZW50T3JUaHJvdygpe1BnKDUxKX1nZXRUZXh0Q29udGVudCgpe2NvbnN0IGU9dGhpcy5fX2NhY2hlZFRleHQ7cmV0dXJuIXN4KCkmJnV4KCkuX2RpcnR5VHlwZSE9PVFwfHxudWxsPT09ZT9zdXBlci5nZXRUZXh0Q29udGVudCgpOmV9cmVtb3ZlKCl7UGcoNTIpfXJlcGxhY2UoZSl7UGcoNTMpfWluc2VydEJlZm9yZShlKXtQZyg1NCl9aW5zZXJ0QWZ0ZXIoZSl7UGcoNTUpfXVwZGF0ZURPTShlLHQpe3JldHVybiExfWFwcGVuZCguLi5lKXtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbj1lW3RdO2t4KG4pfHxQeChuKXx8UGcoNTYpfXJldHVybiBzdXBlci5hcHBlbmQoLi4uZSl9c3RhdGljIGltcG9ydEpTT04oZSl7Y29uc3QgdD1jeSgpO3JldHVybiB0LnNldEZvcm1hdChlLmZvcm1hdCksdC5zZXRJbmRlbnQoZS5pbmRlbnQpLHQuc2V0RGlyZWN0aW9uKGUuZGlyZWN0aW9uKSx0fWV4cG9ydEpTT04oKXtyZXR1cm57Y2hpbGRyZW46W10sZGlyZWN0aW9uOnRoaXMuZ2V0RGlyZWN0aW9uKCksZm9ybWF0OnRoaXMuZ2V0Rm9ybWF0VHlwZSgpLGluZGVudDp0aGlzLmdldEluZGVudCgpLHR5cGU6XCJyb290XCIsdmVyc2lvbjoxfX1jb2xsYXBzZUF0U3RhcnQoKXtyZXR1cm4hMH19ZnVuY3Rpb24gTngoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBPeH1mdW5jdGlvbiBUeCgpe3JldHVybiBuZXcgUngobmV3IE1hcChbW1wicm9vdFwiLG5ldyBPeF1dKSl9ZnVuY3Rpb24gTXgoZSl7Y29uc3QgdD1lLmV4cG9ydEpTT04oKSxuPWUuY29uc3RydWN0b3I7aWYodC50eXBlIT09bi5nZXRUeXBlKCkmJlBnKDEzMCxuLm5hbWUpLGt4KGUpKXtjb25zdCByPXQuY2hpbGRyZW47QXJyYXkuaXNBcnJheShyKXx8UGcoNTksbi5uYW1lKTtjb25zdCBvPWUuZ2V0Q2hpbGRyZW4oKTtmb3IobGV0IGU9MDtlPG8ubGVuZ3RoO2UrKyl7Y29uc3QgdD1NeChvW2VdKTtyLnB1c2godCl9fXJldHVybiB0fWNsYXNzIFJ4e2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fbm9kZU1hcD1lLHRoaXMuX3NlbGVjdGlvbj10fHxudWxsLHRoaXMuX2ZsdXNoU3luYz0hMSx0aGlzLl9yZWFkT25seT0hMX1pc0VtcHR5KCl7cmV0dXJuIDE9PT10aGlzLl9ub2RlTWFwLnNpemUmJm51bGw9PT10aGlzLl9zZWxlY3Rpb259cmVhZChlLHQpe3JldHVybiBweCh0JiZ0LmVkaXRvcnx8bnVsbCx0aGlzLGUpfWNsb25lKGUpe2NvbnN0IHQ9bmV3IFJ4KHRoaXMuX25vZGVNYXAsdm9pZCAwPT09ZT90aGlzLl9zZWxlY3Rpb246ZSk7cmV0dXJuIHQuX3JlYWRPbmx5PSEwLHR9dG9KU09OKCl7cmV0dXJuIHB4KG51bGwsdGhpcywoKCk9Pih7cm9vdDpNeChjeSgpKX0pKSl9fWNsYXNzIER4IGV4dGVuZHMgU3h7c3RhdGljIGdldFR5cGUoKXtyZXR1cm5cImFydGlmaWNpYWxcIn1jcmVhdGVET00oZSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIil9fWNsYXNzIGp4IGV4dGVuZHMgU3h7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5fX3RleHRGb3JtYXQ9MCx0aGlzLl9fdGV4dFN0eWxlPVwiXCJ9c3RhdGljIGdldFR5cGUoKXtyZXR1cm5cInBhcmFncmFwaFwifWdldFRleHRGb3JtYXQoKXtyZXR1cm4gdGhpcy5nZXRMYXRlc3QoKS5fX3RleHRGb3JtYXR9c2V0VGV4dEZvcm1hdChlKXtjb25zdCB0PXRoaXMuZ2V0V3JpdGFibGUoKTtyZXR1cm4gdC5fX3RleHRGb3JtYXQ9ZSx0fWhhc1RleHRGb3JtYXQoZSl7Y29uc3QgdD14Z1tlXTtyZXR1cm4hISh0aGlzLmdldFRleHRGb3JtYXQoKSZ0KX1nZXRUZXh0U3R5bGUoKXtyZXR1cm4gdGhpcy5nZXRMYXRlc3QoKS5fX3RleHRTdHlsZX1zZXRUZXh0U3R5bGUoZSl7Y29uc3QgdD10aGlzLmdldFdyaXRhYmxlKCk7cmV0dXJuIHQuX190ZXh0U3R5bGU9ZSx0fXN0YXRpYyBjbG9uZShlKXtyZXR1cm4gbmV3IGp4KGUuX19rZXkpfWFmdGVyQ2xvbmVGcm9tKGUpe3N1cGVyLmFmdGVyQ2xvbmVGcm9tKGUpLHRoaXMuX190ZXh0Rm9ybWF0PWUuX190ZXh0Rm9ybWF0LHRoaXMuX190ZXh0U3R5bGU9ZS5fX3RleHRTdHlsZX1jcmVhdGVET00oZSl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwicFwiKSxuPVB5KGUudGhlbWUsXCJwYXJhZ3JhcGhcIik7cmV0dXJuIHZvaWQgMCE9PW4mJnQuY2xhc3NMaXN0LmFkZCguLi5uKSx0fXVwZGF0ZURPTShlLHQsbil7cmV0dXJuITF9c3RhdGljIGltcG9ydERPTSgpe3JldHVybntwOmU9Pih7Y29udmVyc2lvbjpBeCxwcmlvcml0eTowfSl9fWV4cG9ydERPTShlKXtjb25zdHtlbGVtZW50OnR9PXN1cGVyLmV4cG9ydERPTShlKTtpZih0JiZVeSh0KSl7dGhpcy5pc0VtcHR5KCkmJnQuYXBwZW5kKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJiclwiKSk7Y29uc3QgZT10aGlzLmdldEZvcm1hdFR5cGUoKTt0LnN0eWxlLnRleHRBbGlnbj1lO2NvbnN0IG49dGhpcy5nZXREaXJlY3Rpb24oKTtuJiYodC5kaXI9bik7Y29uc3Qgcj10aGlzLmdldEluZGVudCgpO3I+MCYmKHQuc3R5bGUudGV4dEluZGVudD0yMCpyK1wicHhcIil9cmV0dXJue2VsZW1lbnQ6dH19c3RhdGljIGltcG9ydEpTT04oZSl7Y29uc3QgdD1JeCgpO3JldHVybiB0LnNldEZvcm1hdChlLmZvcm1hdCksdC5zZXRJbmRlbnQoZS5pbmRlbnQpLHQuc2V0RGlyZWN0aW9uKGUuZGlyZWN0aW9uKSx0LnNldFRleHRGb3JtYXQoZS50ZXh0Rm9ybWF0KSx0fWV4cG9ydEpTT04oKXtyZXR1cm57Li4uc3VwZXIuZXhwb3J0SlNPTigpLHRleHRGb3JtYXQ6dGhpcy5nZXRUZXh0Rm9ybWF0KCksdGV4dFN0eWxlOnRoaXMuZ2V0VGV4dFN0eWxlKCksdHlwZTpcInBhcmFncmFwaFwiLHZlcnNpb246MX19aW5zZXJ0TmV3QWZ0ZXIoZSx0KXtjb25zdCBuPUl4KCk7bi5zZXRUZXh0Rm9ybWF0KGUuZm9ybWF0KSxuLnNldFRleHRTdHlsZShlLnN0eWxlKTtjb25zdCByPXRoaXMuZ2V0RGlyZWN0aW9uKCk7cmV0dXJuIG4uc2V0RGlyZWN0aW9uKHIpLG4uc2V0Rm9ybWF0KHRoaXMuZ2V0Rm9ybWF0VHlwZSgpKSxuLnNldFN0eWxlKHRoaXMuZ2V0VGV4dFN0eWxlKCkpLHRoaXMuaW5zZXJ0QWZ0ZXIobix0KSxufWNvbGxhcHNlQXRTdGFydCgpe2NvbnN0IGU9dGhpcy5nZXRDaGlsZHJlbigpO2lmKDA9PT1lLmxlbmd0aHx8a2IoZVswXSkmJlwiXCI9PT1lWzBdLmdldFRleHRDb250ZW50KCkudHJpbSgpKXtpZihudWxsIT09dGhpcy5nZXROZXh0U2libGluZygpKXJldHVybiB0aGlzLnNlbGVjdE5leHQoKSx0aGlzLnJlbW92ZSgpLCEwO2lmKG51bGwhPT10aGlzLmdldFByZXZpb3VzU2libGluZygpKXJldHVybiB0aGlzLnNlbGVjdFByZXZpb3VzKCksdGhpcy5yZW1vdmUoKSwhMH1yZXR1cm4hMX19ZnVuY3Rpb24gQXgoZSl7Y29uc3QgdD1JeCgpO2lmKGUuc3R5bGUpe3Quc2V0Rm9ybWF0KGUuc3R5bGUudGV4dEFsaWduKTtjb25zdCBuPXBhcnNlSW50KGUuc3R5bGUudGV4dEluZGVudCwxMCkvMjA7bj4wJiZ0LnNldEluZGVudChuKX1yZXR1cm57bm9kZTp0fX1mdW5jdGlvbiBJeCgpe3JldHVybiB6eShuZXcgangpfWZ1bmN0aW9uIEx4KGUpe3JldHVybiBlIGluc3RhbmNlb2Yganh9Y29uc3QgRng9MTtmdW5jdGlvbiB6eChlLHQsbixyKXtjb25zdCBvPWUuX2tleVRvRE9NTWFwO28uY2xlYXIoKSxlLl9lZGl0b3JTdGF0ZT1UeCgpLGUuX3BlbmRpbmdFZGl0b3JTdGF0ZT1yLGUuX2NvbXBvc2l0aW9uS2V5PW51bGwsZS5fZGlydHlUeXBlPVFwLGUuX2Nsb25lTm90TmVlZGVkLmNsZWFyKCksZS5fZGlydHlMZWF2ZXM9bmV3IFNldCxlLl9kaXJ0eUVsZW1lbnRzLmNsZWFyKCksZS5fbm9ybWFsaXplZE5vZGVzPW5ldyBTZXQsZS5fdXBkYXRlVGFncz1uZXcgU2V0LGUuX3VwZGF0ZXM9W10sZS5fYmxvY2tDdXJzb3JFbGVtZW50PW51bGw7Y29uc3QgaT1lLl9vYnNlcnZlcjtudWxsIT09aSYmKGkuZGlzY29ubmVjdCgpLGUuX29ic2VydmVyPW51bGwpLG51bGwhPT10JiYodC50ZXh0Q29udGVudD1cIlwiKSxudWxsIT09biYmKG4udGV4dENvbnRlbnQ9XCJcIixvLnNldChcInJvb3RcIixuKSl9Y2xhc3MgQnh7Y29uc3RydWN0b3IoZSx0LG4scixvLGkscyl7dGhpcy5fcGFyZW50RWRpdG9yPXQsdGhpcy5fcm9vdEVsZW1lbnQ9bnVsbCx0aGlzLl9lZGl0b3JTdGF0ZT1lLHRoaXMuX3BlbmRpbmdFZGl0b3JTdGF0ZT1udWxsLHRoaXMuX2NvbXBvc2l0aW9uS2V5PW51bGwsdGhpcy5fZGVmZXJyZWQ9W10sdGhpcy5fa2V5VG9ET01NYXA9bmV3IE1hcCx0aGlzLl91cGRhdGVzPVtdLHRoaXMuX3VwZGF0aW5nPSExLHRoaXMuX2xpc3RlbmVycz17ZGVjb3JhdG9yOm5ldyBTZXQsZWRpdGFibGU6bmV3IFNldCxtdXRhdGlvbjpuZXcgTWFwLHJvb3Q6bmV3IFNldCx0ZXh0Y29udGVudDpuZXcgU2V0LHVwZGF0ZTpuZXcgU2V0fSx0aGlzLl9jb21tYW5kcz1uZXcgTWFwLHRoaXMuX2NvbmZpZz1yLHRoaXMuX25vZGVzPW4sdGhpcy5fZGVjb3JhdG9ycz17fSx0aGlzLl9wZW5kaW5nRGVjb3JhdG9ycz1udWxsLHRoaXMuX2RpcnR5VHlwZT1RcCx0aGlzLl9jbG9uZU5vdE5lZWRlZD1uZXcgU2V0LHRoaXMuX2RpcnR5TGVhdmVzPW5ldyBTZXQsdGhpcy5fZGlydHlFbGVtZW50cz1uZXcgTWFwLHRoaXMuX25vcm1hbGl6ZWROb2Rlcz1uZXcgU2V0LHRoaXMuX3VwZGF0ZVRhZ3M9bmV3IFNldCx0aGlzLl9vYnNlcnZlcj1udWxsLHRoaXMuX2tleT1neSgpLHRoaXMuX29uRXJyb3I9byx0aGlzLl9odG1sQ29udmVyc2lvbnM9aSx0aGlzLl9lZGl0YWJsZT1zLHRoaXMuX2hlYWRsZXNzPW51bGwhPT10JiZ0Ll9oZWFkbGVzcyx0aGlzLl93aW5kb3c9bnVsbCx0aGlzLl9ibG9ja0N1cnNvckVsZW1lbnQ9bnVsbH1pc0NvbXBvc2luZygpe3JldHVybiBudWxsIT10aGlzLl9jb21wb3NpdGlvbktleX1yZWdpc3RlclVwZGF0ZUxpc3RlbmVyKGUpe2NvbnN0IHQ9dGhpcy5fbGlzdGVuZXJzLnVwZGF0ZTtyZXR1cm4gdC5hZGQoZSksKCk9Pnt0LmRlbGV0ZShlKX19cmVnaXN0ZXJFZGl0YWJsZUxpc3RlbmVyKGUpe2NvbnN0IHQ9dGhpcy5fbGlzdGVuZXJzLmVkaXRhYmxlO3JldHVybiB0LmFkZChlKSwoKT0+e3QuZGVsZXRlKGUpfX1yZWdpc3RlckRlY29yYXRvckxpc3RlbmVyKGUpe2NvbnN0IHQ9dGhpcy5fbGlzdGVuZXJzLmRlY29yYXRvcjtyZXR1cm4gdC5hZGQoZSksKCk9Pnt0LmRlbGV0ZShlKX19cmVnaXN0ZXJUZXh0Q29udGVudExpc3RlbmVyKGUpe2NvbnN0IHQ9dGhpcy5fbGlzdGVuZXJzLnRleHRjb250ZW50O3JldHVybiB0LmFkZChlKSwoKT0+e3QuZGVsZXRlKGUpfX1yZWdpc3RlclJvb3RMaXN0ZW5lcihlKXtjb25zdCB0PXRoaXMuX2xpc3RlbmVycy5yb290O3JldHVybiBlKHRoaXMuX3Jvb3RFbGVtZW50LG51bGwpLHQuYWRkKGUpLCgpPT57ZShudWxsLHRoaXMuX3Jvb3RFbGVtZW50KSx0LmRlbGV0ZShlKX19cmVnaXN0ZXJDb21tYW5kKGUsdCxuKXt2b2lkIDA9PT1uJiZQZygzNSk7Y29uc3Qgcj10aGlzLl9jb21tYW5kcztyLmhhcyhlKXx8ci5zZXQoZSxbbmV3IFNldCxuZXcgU2V0LG5ldyBTZXQsbmV3IFNldCxuZXcgU2V0XSk7Y29uc3Qgbz1yLmdldChlKTt2b2lkIDA9PT1vJiZQZygzNixTdHJpbmcoZSkpO2NvbnN0IGk9b1tuXTtyZXR1cm4gaS5hZGQodCksKCk9PntpLmRlbGV0ZSh0KSxvLmV2ZXJ5KChlPT4wPT09ZS5zaXplKSkmJnIuZGVsZXRlKGUpfX1yZWdpc3Rlck11dGF0aW9uTGlzdGVuZXIoZSx0LG4pe2NvbnN0IHI9dGhpcy5yZXNvbHZlUmVnaXN0ZXJlZE5vZGVBZnRlclJlcGxhY2VtZW50cyh0aGlzLmdldFJlZ2lzdGVyZWROb2RlKGUpKS5rbGFzcyxvPXRoaXMuX2xpc3RlbmVycy5tdXRhdGlvbjtvLnNldCh0LHIpO2NvbnN0IGk9biYmbi5za2lwSW5pdGlhbGl6YXRpb247cmV0dXJuIHZvaWQgMD09PWl8fGl8fHRoaXMuaW5pdGlhbGl6ZU11dGF0aW9uTGlzdGVuZXIodCxyKSwoKT0+e28uZGVsZXRlKHQpfX1nZXRSZWdpc3RlcmVkTm9kZShlKXtjb25zdCB0PXRoaXMuX25vZGVzLmdldChlLmdldFR5cGUoKSk7cmV0dXJuIHZvaWQgMD09PXQmJlBnKDM3LGUubmFtZSksdH1yZXNvbHZlUmVnaXN0ZXJlZE5vZGVBZnRlclJlcGxhY2VtZW50cyhlKXtmb3IoO2UucmVwbGFjZVdpdGhLbGFzczspZT10aGlzLmdldFJlZ2lzdGVyZWROb2RlKGUucmVwbGFjZVdpdGhLbGFzcyk7cmV0dXJuIGV9aW5pdGlhbGl6ZU11dGF0aW9uTGlzdGVuZXIoZSx0KXtjb25zdCBuPXRoaXMuX2VkaXRvclN0YXRlLHI9ZnVuY3Rpb24oZSl7aWYoIWUuX3JlYWRPbmx5JiZlLmlzRW1wdHkoKSlyZXR1cm4gR3k7ZS5fcmVhZE9ubHl8fFBnKDE5Mik7bGV0IHQ9cXkuZ2V0KGUpO2lmKCF0KXt0PW5ldyBNYXAscXkuc2V0KGUsdCk7Zm9yKGNvbnN0W24scl1vZiBlLl9ub2RlTWFwKXtjb25zdCBlPXIuX190eXBlO2xldCBvPXQuZ2V0KGUpO298fChvPW5ldyBNYXAsdC5zZXQoZSxvKSksby5zZXQobixyKX19cmV0dXJuIHR9KG4pLmdldCh0LmdldFR5cGUoKSk7aWYoIXIpcmV0dXJuO2NvbnN0IG89bmV3IE1hcDtmb3IoY29uc3QgZSBvZiByLmtleXMoKSlvLnNldChlLFwiY3JlYXRlZFwiKTtvLnNpemU+MCYmZShvLHtkaXJ0eUxlYXZlczpuZXcgU2V0LHByZXZFZGl0b3JTdGF0ZTpuLHVwZGF0ZVRhZ3M6bmV3IFNldChbXCJyZWdpc3Rlck11dGF0aW9uTGlzdGVuZXJcIl0pfSl9cmVnaXN0ZXJOb2RlVHJhbnNmb3JtVG9LbGFzcyhlLHQpe2NvbnN0IG49dGhpcy5nZXRSZWdpc3RlcmVkTm9kZShlKTtyZXR1cm4gbi50cmFuc2Zvcm1zLmFkZCh0KSxufXJlZ2lzdGVyTm9kZVRyYW5zZm9ybShlLHQpe2NvbnN0IG49dGhpcy5yZWdpc3Rlck5vZGVUcmFuc2Zvcm1Ub0tsYXNzKGUsdCkscj1bbl0sbz1uLnJlcGxhY2VXaXRoS2xhc3M7aWYobnVsbCE9byl7Y29uc3QgZT10aGlzLnJlZ2lzdGVyTm9kZVRyYW5zZm9ybVRvS2xhc3Mobyx0KTtyLnB1c2goZSl9dmFyIGk7cmV0dXJuIGk9ZS5nZXRUeXBlKCksd3godGhpcywoKCk9Pntjb25zdCBlPWN4KCk7aWYoZS5pc0VtcHR5KCkpcmV0dXJuO2lmKFwicm9vdFwiPT09aSlyZXR1cm4gdm9pZCBjeSgpLm1hcmtEaXJ0eSgpO2NvbnN0IHQ9ZS5fbm9kZU1hcDtmb3IoY29uc3RbLGVdb2YgdCllLm1hcmtEaXJ0eSgpfSksbnVsbD09PXRoaXMuX3BlbmRpbmdFZGl0b3JTdGF0ZT97dGFnOlwiaGlzdG9yeS1tZXJnZVwifTp2b2lkIDApLCgpPT57ci5mb3JFYWNoKChlPT5lLnRyYW5zZm9ybXMuZGVsZXRlKHQpKSl9fWhhc05vZGUoZSl7cmV0dXJuIHRoaXMuX25vZGVzLmhhcyhlLmdldFR5cGUoKSl9aGFzTm9kZXMoZSl7cmV0dXJuIGUuZXZlcnkodGhpcy5oYXNOb2RlLmJpbmQodGhpcykpfWRpc3BhdGNoQ29tbWFuZChlLHQpe3JldHVybiBSeSh0aGlzLGUsdCl9Z2V0RGVjb3JhdG9ycygpe3JldHVybiB0aGlzLl9kZWNvcmF0b3JzfWdldFJvb3RFbGVtZW50KCl7cmV0dXJuIHRoaXMuX3Jvb3RFbGVtZW50fWdldEtleSgpe3JldHVybiB0aGlzLl9rZXl9c2V0Um9vdEVsZW1lbnQoZSl7Y29uc3QgdD10aGlzLl9yb290RWxlbWVudDtpZihlIT09dCl7Y29uc3Qgbj1QeSh0aGlzLl9jb25maWcudGhlbWUsXCJyb290XCIpLHI9dGhpcy5fcGVuZGluZ0VkaXRvclN0YXRlfHx0aGlzLl9lZGl0b3JTdGF0ZTtpZih0aGlzLl9yb290RWxlbWVudD1lLHp4KHRoaXMsdCxlLHIpLG51bGwhPT10JiYodGhpcy5fY29uZmlnLmRpc2FibGVFdmVudHN8fGZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5vd25lckRvY3VtZW50LG49RnYuZ2V0KHQpO3ZvaWQgMD09PW4mJlBnKDE2Mik7Y29uc3Qgcj1uLTE7cj49MHx8UGcoMTY0KSxGdi5zZXQodCxyKSwwPT09ciYmdC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2VsZWN0aW9uY2hhbmdlXCIsWnYpO2NvbnN0IG89R2coZSk7S2cobyk/KGZ1bmN0aW9uKGUpe2lmKG51bGwhPT1lLl9wYXJlbnRFZGl0b3Ipe2NvbnN0IHQ9cHkoZSksbj10W3QubGVuZ3RoLTFdLl9rZXk7WHYuZ2V0KG4pPT09ZSYmWHYuZGVsZXRlKG4pfWVsc2UgWHYuZGVsZXRlKGUuX2tleSl9KG8pLGUuX19sZXhpY2FsRWRpdG9yPW51bGwpOm8mJlBnKDE5OCk7Y29uc3QgaT1HdihlKTtmb3IobGV0IGU9MDtlPGkubGVuZ3RoO2UrKylpW2VdKCk7ZS5fX2xleGljYWxFdmVudEhhbmRsZXM9W119KHQpLG51bGwhPW4mJnQuY2xhc3NMaXN0LnJlbW92ZSguLi5uKSksbnVsbCE9PWUpe2NvbnN0IHQ9ZnVuY3Rpb24oZSl7Y29uc3QgdD1lLm93bmVyRG9jdW1lbnQ7cmV0dXJuIHQmJnQuZGVmYXVsdFZpZXd8fG51bGx9KGUpLHI9ZS5zdHlsZTtyLnVzZXJTZWxlY3Q9XCJ0ZXh0XCIsci53aGl0ZVNwYWNlPVwicHJlLXdyYXBcIixyLndvcmRCcmVhaz1cImJyZWFrLXdvcmRcIixlLnNldEF0dHJpYnV0ZShcImRhdGEtbGV4aWNhbC1lZGl0b3JcIixcInRydWVcIiksdGhpcy5fd2luZG93PXQsdGhpcy5fZGlydHlUeXBlPWVnLEZnKHRoaXMpLHRoaXMuX3VwZGF0ZVRhZ3MuYWRkKFwiaGlzdG9yeS1tZXJnZVwiKSxneCh0aGlzKSx0aGlzLl9jb25maWcuZGlzYWJsZUV2ZW50c3x8ZnVuY3Rpb24oZSx0KXtjb25zdCBuPWUub3duZXJEb2N1bWVudCxyPUZ2LmdldChuKTsodm9pZCAwPT09cnx8cjwxKSYmbi5hZGRFdmVudExpc3RlbmVyKFwic2VsZWN0aW9uY2hhbmdlXCIsWnYpLEZ2LnNldChuLChyfHwwKSsxKSxlLl9fbGV4aWNhbEVkaXRvcj10O2NvbnN0IG89R3YoZSk7Zm9yKGxldCBuPTA7bjxEdi5sZW5ndGg7bisrKXtjb25zdFtyLGldPUR2W25dLHM9XCJmdW5jdGlvblwiPT10eXBlb2YgaT9lPT57UXYoZSl8fChKdihlKSwodC5pc0VkaXRhYmxlKCl8fFwiY2xpY2tcIj09PXIpJiZpKGUsdCkpfTplPT57aWYoUXYoZSkpcmV0dXJuO0p2KGUpO2NvbnN0IG49dC5pc0VkaXRhYmxlKCk7c3dpdGNoKHIpe2Nhc2VcImN1dFwiOnJldHVybiBuJiZSeSh0LE1wLGUpO2Nhc2VcImNvcHlcIjpyZXR1cm4gUnkodCxUcCxlKTtjYXNlXCJwYXN0ZVwiOnJldHVybiBuJiZSeSh0LHNwLGUpO2Nhc2VcImRyYWdzdGFydFwiOnJldHVybiBuJiZSeSh0LFBwLGUpO2Nhc2VcImRyYWdvdmVyXCI6cmV0dXJuIG4mJlJ5KHQsT3AsZSk7Y2FzZVwiZHJhZ2VuZFwiOnJldHVybiBuJiZSeSh0LE5wLGUpO2Nhc2VcImZvY3VzXCI6cmV0dXJuIG4mJlJ5KHQsTHAsZSk7Y2FzZVwiYmx1clwiOnJldHVybiBuJiZSeSh0LEZwLGUpO2Nhc2VcImRyb3BcIjpyZXR1cm4gbiYmUnkodCxfcCxlKX19O2UuYWRkRXZlbnRMaXN0ZW5lcihyLHMpLG8ucHVzaCgoKCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIocixzKX0pKX19KGUsdGhpcyksbnVsbCE9biYmZS5jbGFzc0xpc3QuYWRkKC4uLm4pfWVsc2UgdGhpcy5fZWRpdG9yU3RhdGU9cix0aGlzLl9wZW5kaW5nRWRpdG9yU3RhdGU9bnVsbCx0aGlzLl93aW5kb3c9bnVsbDt5eChcInJvb3RcIix0aGlzLCExLGUsdCl9fWdldEVsZW1lbnRCeUtleShlKXtyZXR1cm4gdGhpcy5fa2V5VG9ET01NYXAuZ2V0KGUpfHxudWxsfWdldEVkaXRvclN0YXRlKCl7cmV0dXJuIHRoaXMuX2VkaXRvclN0YXRlfXNldEVkaXRvclN0YXRlKGUsdCl7ZS5pc0VtcHR5KCkmJlBnKDM4KSxMZyh0aGlzKTtjb25zdCBuPXRoaXMuX3BlbmRpbmdFZGl0b3JTdGF0ZSxyPXRoaXMuX3VwZGF0ZVRhZ3Msbz12b2lkIDAhPT10P3QudGFnOm51bGw7bnVsbD09PW58fG4uaXNFbXB0eSgpfHwobnVsbCE9byYmci5hZGQobyksZ3godGhpcykpLHRoaXMuX3BlbmRpbmdFZGl0b3JTdGF0ZT1lLHRoaXMuX2RpcnR5VHlwZT1lZyx0aGlzLl9kaXJ0eUVsZW1lbnRzLnNldChcInJvb3RcIiwhMSksdGhpcy5fY29tcG9zaXRpb25LZXk9bnVsbCxudWxsIT1vJiZyLmFkZChvKSxneCh0aGlzKX1wYXJzZUVkaXRvclN0YXRlKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPVR4KCksbz1leCxpPW54LHM9dHgsYT10Ll9kaXJ0eUVsZW1lbnRzLGw9dC5fZGlydHlMZWF2ZXMsYz10Ll9jbG9uZU5vdE5lZWRlZCx1PXQuX2RpcnR5VHlwZTt0Ll9kaXJ0eUVsZW1lbnRzPW5ldyBNYXAsdC5fZGlydHlMZWF2ZXM9bmV3IFNldCx0Ll9jbG9uZU5vdE5lZWRlZD1uZXcgU2V0LHQuX2RpcnR5VHlwZT0wLGV4PXIsbng9ITEsdHg9dDt0cnl7Y29uc3Qgbz10Ll9ub2RlcztoeChlLnJvb3QsbyksbiYmbigpLHIuX3JlYWRPbmx5PSEwfWNhdGNoKGUpe2UgaW5zdGFuY2VvZiBFcnJvciYmdC5fb25FcnJvcihlKX1maW5hbGx5e3QuX2RpcnR5RWxlbWVudHM9YSx0Ll9kaXJ0eUxlYXZlcz1sLHQuX2Nsb25lTm90TmVlZGVkPWMsdC5fZGlydHlUeXBlPXUsZXg9byxueD1pLHR4PXN9cmV0dXJuIHJ9KFwic3RyaW5nXCI9PXR5cGVvZiBlP0pTT04ucGFyc2UoZSk6ZSx0aGlzLHQpfXJlYWQoZSl7cmV0dXJuIGd4KHRoaXMpLHRoaXMuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKGUse2VkaXRvcjp0aGlzfSl9dXBkYXRlKGUsdCl7d3godGhpcyxlLHQpfWZvY3VzKGUsdD17fSl7Y29uc3Qgbj10aGlzLl9yb290RWxlbWVudDtudWxsIT09biYmKG4uc2V0QXR0cmlidXRlKFwiYXV0b2NhcGl0YWxpemVcIixcIm9mZlwiKSx3eCh0aGlzLCgoKT0+e2NvbnN0IGU9SGIoKSxuPWN5KCk7bnVsbCE9PWU/ZS5kaXJ0eT0hMDowIT09bi5nZXRDaGlsZHJlblNpemUoKSYmKFwicm9vdFN0YXJ0XCI9PT10LmRlZmF1bHRTZWxlY3Rpb24/bi5zZWxlY3RTdGFydCgpOm4uc2VsZWN0RW5kKCkpfSkse29uVXBkYXRlOigpPT57bi5yZW1vdmVBdHRyaWJ1dGUoXCJhdXRvY2FwaXRhbGl6ZVwiKSxlJiZlKCl9LHRhZzpcImZvY3VzXCJ9KSxudWxsPT09dGhpcy5fcGVuZGluZ0VkaXRvclN0YXRlJiZuLnJlbW92ZUF0dHJpYnV0ZShcImF1dG9jYXBpdGFsaXplXCIpKX1ibHVyKCl7Y29uc3QgZT10aGlzLl9yb290RWxlbWVudDtudWxsIT09ZSYmZS5ibHVyKCk7Y29uc3QgdD1WeSh0aGlzLl93aW5kb3cpO251bGwhPT10JiZ0LnJlbW92ZUFsbFJhbmdlcygpfWlzRWRpdGFibGUoKXtyZXR1cm4gdGhpcy5fZWRpdGFibGV9c2V0RWRpdGFibGUoZSl7dGhpcy5fZWRpdGFibGUhPT1lJiYodGhpcy5fZWRpdGFibGU9ZSx5eChcImVkaXRhYmxlXCIsdGhpcywhMCxlKSl9dG9KU09OKCl7cmV0dXJue2VkaXRvclN0YXRlOnRoaXMuX2VkaXRvclN0YXRlLnRvSlNPTigpfX19QngudmVyc2lvbj1cIjAuMTcuMStwcm9kLmVzbVwiO2NvbnN0IFd4PVwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5kb2N1bWVudCYmdm9pZCAwIT09d2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQsVng9V3g/YS51c2VMYXlvdXRFZmZlY3Q6YS51c2VFZmZlY3QsVXg9e3RhZzpcImhpc3RvcnktbWVyZ2VcIn07ZnVuY3Rpb24gJHgoe2luaXRpYWxDb25maWc6ZSxjaGlsZHJlbjp0fSl7Y29uc3Qgbj0oMCxhLnVzZU1lbW8pKCgoKT0+e2NvbnN0e3RoZW1lOnQsbmFtZXNwYWNlOm4sbm9kZXM6cixvbkVycm9yOm8sZWRpdG9yU3RhdGU6aSxodG1sOnN9PWUsYT1mdW5jdGlvbihlLHQpe2xldCBuPW51bGw7cmV0dXJue2dldFRoZW1lOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPXQ/dDpudWxsIT1uP24uZ2V0VGhlbWUoKTpudWxsfX19KDAsdCksbD1mdW5jdGlvbihlKXtjb25zdCB0PWV8fHt9LG49dHgscj10LnRoZW1lfHx7fSxvPXZvaWQgMD09PWU/bjp0LnBhcmVudEVkaXRvcnx8bnVsbCxpPXQuZGlzYWJsZUV2ZW50c3x8ITEscz1UeCgpLGE9dC5uYW1lc3BhY2V8fChudWxsIT09bz9vLl9jb25maWcubmFtZXNwYWNlOmd5KCkpLGw9dC5lZGl0b3JTdGF0ZSxjPVtPeCxtYixuYixDYixqeCxEeCwuLi50Lm5vZGVzfHxbXV0se29uRXJyb3I6dSxodG1sOmR9PXQsZj12b2lkIDA9PT10LmVkaXRhYmxlfHx0LmVkaXRhYmxlO2xldCBtO2lmKHZvaWQgMD09PWUmJm51bGwhPT1uKW09bi5fbm9kZXM7ZWxzZXttPW5ldyBNYXA7Zm9yKGxldCBlPTA7ZTxjLmxlbmd0aDtlKyspe2xldCB0PWNbZV0sbj1udWxsLHI9bnVsbDtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiB0KXtjb25zdCBlPXQ7dD1lLnJlcGxhY2Usbj1lLndpdGgscj1lLndpdGhLbGFzc3x8bnVsbH1jb25zdCBvPXQuZ2V0VHlwZSgpLGk9dC50cmFuc2Zvcm0oKSxzPW5ldyBTZXQ7bnVsbCE9PWkmJnMuYWRkKGkpLG0uc2V0KG8se2V4cG9ydERPTTpkJiZkLmV4cG9ydD9kLmV4cG9ydC5nZXQodCk6dm9pZCAwLGtsYXNzOnQscmVwbGFjZTpuLHJlcGxhY2VXaXRoS2xhc3M6cix0cmFuc2Zvcm1zOnN9KX19Y29uc3QgaD1uZXcgQngocyxvLG0se2Rpc2FibGVFdmVudHM6aSxuYW1lc3BhY2U6YSx0aGVtZTpyfSx1fHxjb25zb2xlLmVycm9yLGZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1uZXcgTWFwLHI9bmV3IFNldCxvPWU9PntPYmplY3Qua2V5cyhlKS5mb3JFYWNoKCh0PT57bGV0IHI9bi5nZXQodCk7dm9pZCAwPT09ciYmKHI9W10sbi5zZXQodCxyKSksci5wdXNoKGVbdF0pfSkpfTtyZXR1cm4gZS5mb3JFYWNoKChlPT57Y29uc3QgdD1lLmtsYXNzLmltcG9ydERPTTtpZihudWxsPT10fHxyLmhhcyh0KSlyZXR1cm47ci5hZGQodCk7Y29uc3Qgbj10LmNhbGwoZS5rbGFzcyk7bnVsbCE9PW4mJm8obil9KSksdCYmbyh0KSxufShtLGQ/ZC5pbXBvcnQ6dm9pZCAwKSxmKTtyZXR1cm4gdm9pZCAwIT09bCYmKGguX3BlbmRpbmdFZGl0b3JTdGF0ZT1sLGguX2RpcnR5VHlwZT1lZyksaH0oe2VkaXRhYmxlOmUuZWRpdGFibGUsaHRtbDpzLG5hbWVzcGFjZTpuLG5vZGVzOnIsb25FcnJvcjplPT5vKGUsbCksdGhlbWU6dH0pO3JldHVybiBmdW5jdGlvbihlLHQpe2lmKG51bGwhPT10KWlmKHZvaWQgMD09PXQpZS51cGRhdGUoKCgpPT57Y29uc3QgdD1jeSgpO2lmKHQuaXNFbXB0eSgpKXtjb25zdCBuPUl4KCk7dC5hcHBlbmQobik7Y29uc3Qgcj1XeD9kb2N1bWVudC5hY3RpdmVFbGVtZW50Om51bGw7KG51bGwhPT1IYigpfHxudWxsIT09ciYmcj09PWUuZ2V0Um9vdEVsZW1lbnQoKSkmJm4uc2VsZWN0KCl9fSksVXgpO2Vsc2UgaWYobnVsbCE9PXQpc3dpdGNoKHR5cGVvZiB0KXtjYXNlXCJzdHJpbmdcIjp7Y29uc3Qgbj1lLnBhcnNlRWRpdG9yU3RhdGUodCk7ZS5zZXRFZGl0b3JTdGF0ZShuLFV4KTticmVha31jYXNlXCJvYmplY3RcIjplLnNldEVkaXRvclN0YXRlKHQsVXgpO2JyZWFrO2Nhc2VcImZ1bmN0aW9uXCI6ZS51cGRhdGUoKCgpPT57Y3koKS5pc0VtcHR5KCkmJnQoZSl9KSxVeCl9fShsLGkpLFtsLGFdfSksW10pO3JldHVybiBWeCgoKCk9Pntjb25zdCB0PWUuZWRpdGFibGUsW3JdPW47ci5zZXRFZGl0YWJsZSh2b2lkIDA9PT10fHx0KX0pLFtdKSwoMCxtdS5qc3gpKFpoLlByb3ZpZGVyLHt2YWx1ZTpuLGNoaWxkcmVuOnR9KX1jb25zdCBZeD1cInVuZGVmaW5lZFwiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuZG9jdW1lbnQmJnZvaWQgMCE9PXdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50P2EudXNlTGF5b3V0RWZmZWN0OmEudXNlRWZmZWN0O2Z1bmN0aW9uIEh4KGUpe3JldHVybntpbml0aWFsVmFsdWVGbjooKT0+ZS5pc0VkaXRhYmxlKCksc3Vic2NyaWJlOnQ9PmUucmVnaXN0ZXJFZGl0YWJsZUxpc3RlbmVyKHQpfX1mdW5jdGlvbiBLeChlKXtyZXR1cm4oKT0+ZnVuY3Rpb24oZSl7aWYoIWZ1bmN0aW9uKGUsdD0hMCl7aWYoZSlyZXR1cm4hMTtsZXQgbj1jeSgpLmdldFRleHRDb250ZW50KCk7cmV0dXJuIHQmJihuPW4udHJpbSgpKSxcIlwiPT09bn0oZSwhMSkpcmV0dXJuITE7Y29uc3QgdD1jeSgpLmdldENoaWxkcmVuKCksbj10Lmxlbmd0aDtpZihuPjEpcmV0dXJuITE7Zm9yKGxldCBlPTA7ZTxuO2UrKyl7Y29uc3Qgbj10W2VdO2lmKFB4KG4pKXJldHVybiExO2lmKGt4KG4pKXtpZighTHgobikpcmV0dXJuITE7aWYoMCE9PW4uX19pbmRlbnQpcmV0dXJuITE7Y29uc3QgdD1uLmdldENoaWxkcmVuKCkscj10Lmxlbmd0aDtmb3IobGV0IG49MDtuPHI7bisrKWlmKCFrYih0W2VdKSlyZXR1cm4hMX19cmV0dXJuITB9KGUpfSFmdW5jdGlvbihlKXtlJiZlLl9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLFwiZGVmYXVsdFwiKX0oKGZ1bmN0aW9uKGUpe2NvbnN0IHQ9bmV3IFVSTFNlYXJjaFBhcmFtczt0LmFwcGVuZChcImNvZGVcIixlKTtmb3IobGV0IGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXQuYXBwZW5kKFwidlwiLGFyZ3VtZW50c1tlXSk7dGhyb3cgRXJyb3IoYE1pbmlmaWVkIExleGljYWwgZXJyb3IgIyR7ZX07IHZpc2l0IGh0dHBzOi8vbGV4aWNhbC5kZXYvZG9jcy9lcnJvcj8ke3R9IGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy5gKX0pKSxmdW5jdGlvbihlKXtlJiZlLl9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLFwiZGVmYXVsdFwiKX0oKGZ1bmN0aW9uKGUpe2NvbnN0IHQ9bmV3IFVSTFNlYXJjaFBhcmFtczt0LmFwcGVuZChcImNvZGVcIixlKTtmb3IobGV0IGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXQuYXBwZW5kKFwidlwiLGFyZ3VtZW50c1tlXSk7dGhyb3cgRXJyb3IoYE1pbmlmaWVkIExleGljYWwgZXJyb3IgIyR7ZX07IHZpc2l0IGh0dHBzOi8vbGV4aWNhbC5kZXYvZG9jcy9lcnJvcj8ke3R9IGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy5gKX0pKTtjb25zdCBxeD1cInVuZGVmaW5lZFwiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuZG9jdW1lbnQmJnZvaWQgMCE9PXdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50LEd4PXF4JiZcImRvY3VtZW50TW9kZVwiaW4gZG9jdW1lbnQ/ZG9jdW1lbnQuZG9jdW1lbnRNb2RlOm51bGw7cXgmJi9NYWN8aVBvZHxpUGhvbmV8aVBhZC8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pLHF4JiYvXig/IS4qU2VhbW9ua2V5KSg/PS4qRmlyZWZveCkuKi9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksISghcXh8fCEoXCJJbnB1dEV2ZW50XCJpbiB3aW5kb3cpfHxHeCkmJm5ldyB3aW5kb3cuSW5wdXRFdmVudChcImlucHV0XCIpLHF4JiYvVmVyc2lvblxcL1tcXGQuXSsuKlNhZmFyaS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxxeCYmL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJndpbmRvdy5NU1N0cmVhbSxxeCYmL0FuZHJvaWQvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkscXgmJi9eKD89LipDaHJvbWUpLiovaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO2Z1bmN0aW9uIFh4KC4uLmUpe3JldHVybigpPT57Zm9yKGxldCB0PWUubGVuZ3RoLTE7dD49MDt0LS0pZVt0XSgpO2UubGVuZ3RoPTB9fWZ1bmN0aW9uIFp4KGUsdCl7Y29uc3Qgbj1UeShlLmZvY3VzLHQpO3JldHVybiBQeChuKSYmIW4uaXNJc29sYXRlZCgpfHxreChuKSYmIW4uaXNJbmxpbmUoKSYmIW4uY2FuQmVFbXB0eSgpfWZ1bmN0aW9uIEp4KGUsdCxuKXtjb25zdCByPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZS5hbmNob3IuZ2V0Tm9kZSgpO3JldHVyblwicnRsXCI9PT0oTngodCk/dDp0LmdldFBhcmVudE9yVGhyb3coKSkuZ2V0RGlyZWN0aW9uKCl9KGUpOyFmdW5jdGlvbihlLHQsbil7ZS5tb2RpZnkodD9cImV4dGVuZFwiOlwibW92ZVwiLG4sXCJjaGFyYWN0ZXJcIil9KGUsdCxuPyFyOnIpfWZ1bmN0aW9uIFF4KGUsdCxuLHI9bnVsbCl7bGV0IG89bnVsbD09PXJ8fHQuaXNTZWxlY3RlZChyKTtjb25zdCBpPWt4KHQpJiZ0LmV4Y2x1ZGVGcm9tQ29weShcImh0bWxcIik7bGV0IHM9dDtpZihudWxsIT09cil7bGV0IGU9WHkodCk7ZT1rYihlKSYmbnVsbCE9PXI/ZnVuY3Rpb24oZSx0KXtjb25zdCBuPWUuZ2V0U3RhcnRFbmRQb2ludHMoKTtpZih0LmlzU2VsZWN0ZWQoZSkmJiF0LmlzU2VnbWVudGVkKCkmJiF0LmlzVG9rZW4oKSYmbnVsbCE9PW4pe2NvbnN0W3Isb109bixpPWUuaXNCYWNrd2FyZCgpLHM9ci5nZXROb2RlKCksYT1vLmdldE5vZGUoKSxsPXQuaXMocyksYz10LmlzKGEpO2lmKGx8fGMpe2NvbnN0W24scl09TGIoZSksbz1zLmlzKGEpLGw9dC5pcyhpP2E6cyksYz10LmlzKGk/czphKTtsZXQgdSxkPTA7cmV0dXJuIG8/KGQ9bj5yP3I6bix1PW4+cj9uOnIpOmw/KGQ9aT9yOm4sdT12b2lkIDApOmMmJihkPTAsdT1pP246ciksdC5fX3RleHQ9dC5fX3RleHQuc2xpY2UoZCx1KSx0fX1yZXR1cm4gdH0ocixlKTplLHM9ZX1jb25zdCBhPWt4KHMpP3MuZ2V0Q2hpbGRyZW4oKTpbXSxsPWUuX25vZGVzLmdldChzLmdldFR5cGUoKSk7bGV0IGM7Yz1sJiZ2b2lkIDAhPT1sLmV4cG9ydERPTT9sLmV4cG9ydERPTShlLHMpOnMuZXhwb3J0RE9NKGUpO2NvbnN0e2VsZW1lbnQ6dSxhZnRlcjpkfT1jO2lmKCF1KXJldHVybiExO2NvbnN0IGY9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2ZvcihsZXQgbj0wO248YS5sZW5ndGg7bisrKXtjb25zdCBpPWFbbl0scz1ReChlLGksZixyKTshbyYma3godCkmJnMmJnQuZXh0cmFjdFdpdGhDaGlsZChpLHIsXCJodG1sXCIpJiYobz0hMCl9aWYobyYmIWkpe2lmKFV5KHUpJiZ1LmFwcGVuZChmKSxuLmFwcGVuZCh1KSxkKXtjb25zdCBlPWQuY2FsbChzLHUpO2UmJnUucmVwbGFjZVdpdGgoZSl9fWVsc2Ugbi5hcHBlbmQoZik7cmV0dXJuIG99cXgmJi9BcHBsZVdlYktpdFxcL1tcXGQuXSsvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksZnVuY3Rpb24oZSl7ZSYmZS5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxcImRlZmF1bHRcIil9KChmdW5jdGlvbihlKXtjb25zdCB0PW5ldyBVUkxTZWFyY2hQYXJhbXM7dC5hcHBlbmQoXCJjb2RlXCIsZSk7Zm9yKGxldCBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0LmFwcGVuZChcInZcIixhcmd1bWVudHNbZV0pO3Rocm93IEVycm9yKGBNaW5pZmllZCBMZXhpY2FsIGVycm9yICMke2V9OyB2aXNpdCBodHRwczovL2xleGljYWwuZGV2L2RvY3MvZXJyb3I/JHt0fSBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuYCl9KSksbmV3IE1hcCxuZXcgU2V0KFtcIlNUWUxFXCIsXCJTQ1JJUFRcIl0pO3ZhciBldz1mdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxcImRlZmF1bHRcIik/ZS5kZWZhdWx0OmV9KChmdW5jdGlvbihlKXtjb25zdCB0PW5ldyBVUkxTZWFyY2hQYXJhbXM7dC5hcHBlbmQoXCJjb2RlXCIsZSk7Zm9yKGxldCBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl0LmFwcGVuZChcInZcIixhcmd1bWVudHNbZV0pO3Rocm93IEVycm9yKGBNaW5pZmllZCBMZXhpY2FsIGVycm9yICMke2V9OyB2aXNpdCBodHRwczovL2xleGljYWwuZGV2L2RvY3MvZXJyb3I/JHt0fSBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuYCl9KSk7ZnVuY3Rpb24gdHcoZSx0KXtjb25zdCBuPWUuZ2V0RGF0YShcInRleHQvcGxhaW5cIil8fGUuZ2V0RGF0YShcInRleHQvdXJpLWxpc3RcIik7bnVsbCE9biYmdC5pbnNlcnRSYXdUZXh0KG4pfVwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5kb2N1bWVudCYmd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQ7Y29uc3Qgbnc9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LmRvY3VtZW50JiZ2b2lkIDAhPT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCxydz1udyYmXCJkb2N1bWVudE1vZGVcImluIGRvY3VtZW50P2RvY3VtZW50LmRvY3VtZW50TW9kZTpudWxsLG93PSEoIW53fHwhKFwiSW5wdXRFdmVudFwiaW4gd2luZG93KXx8cncpJiZcImdldFRhcmdldFJhbmdlc1wiaW4gbmV3IHdpbmRvdy5JbnB1dEV2ZW50KFwiaW5wdXRcIiksaXc9bncmJi9WZXJzaW9uXFwvW1xcZC5dKy4qU2FmYXJpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHN3PW53JiYvaVBhZHxpUGhvbmV8aVBvZC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmIXdpbmRvdy5NU1N0cmVhbSxhdz1udyYmL14oPz0uKkNocm9tZSkuKi9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksbHc9bncmJi9BcHBsZVdlYktpdFxcL1tcXGQuXSsvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJiFhdztmdW5jdGlvbiBjdyhlLHQpe3QudXBkYXRlKCgoKT0+e2lmKG51bGwhPT1lKXtjb25zdCByPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGwhPT1lJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkuY29uc3RydWN0b3IubmFtZT09PXQubmFtZX0oZSxLZXlib2FyZEV2ZW50KT9udWxsOmUuY2xpcGJvYXJkRGF0YSxvPUhiKCk7aWYobnVsbCE9PW8mJm51bGwhPXIpe2UucHJldmVudERlZmF1bHQoKTtjb25zdCBpPWZ1bmN0aW9uKGUsdD1IYigpKXtyZXR1cm4gbnVsbD09dCYmZXcoMTY2KSxEYih0KSYmdC5pc0NvbGxhcHNlZCgpfHwwPT09dC5nZXROb2RlcygpLmxlbmd0aD9cIlwiOmZ1bmN0aW9uKGUsdCl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGRvY3VtZW50fHxcInVuZGVmaW5lZFwiPT10eXBlb2Ygd2luZG93JiZ2b2lkIDA9PT1uLmcud2luZG93KXRocm93IG5ldyBFcnJvcihcIlRvIHVzZSAkZ2VuZXJhdGVIdG1sRnJvbU5vZGVzIGluIGhlYWRsZXNzIG1vZGUgcGxlYXNlIGluaXRpYWxpemUgYSBoZWFkbGVzcyBicm93c2VyIGltcGxlbWVudGF0aW9uIHN1Y2ggYXMgSlNEb20gYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi5cIik7Y29uc3Qgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLG89Y3koKS5nZXRDaGlsZHJlbigpO2ZvcihsZXQgbj0wO248by5sZW5ndGg7bisrKVF4KGUsb1tuXSxyLHQpO3JldHVybiByLmlubmVySFRNTH0oZSx0KX0odCk7bnVsbCE9PWkmJnIuc2V0RGF0YShcInRleHQvaHRtbFwiLGkpLHIuc2V0RGF0YShcInRleHQvcGxhaW5cIixvLmdldFRleHRDb250ZW50KCkpfX19KSl9Y29uc3QgdXc9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LmRvY3VtZW50JiZ2b2lkIDAhPT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudD9hLnVzZUxheW91dEVmZmVjdDphLnVzZUVmZmVjdDtmdW5jdGlvbiBkdyhlKXtyZXR1cm4gZS5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoS3goZS5pc0NvbXBvc2luZygpKSl9ZnVuY3Rpb24gZncoe2NvbnRlbnRFZGl0YWJsZTplLHBsYWNlaG9sZGVyOnQ9bnVsbCxFcnJvckJvdW5kYXJ5Om59KXtjb25zdFtyXT1KaCgpLG89ZnVuY3Rpb24oZSx0KXtjb25zdFtuLHJdPSgwLGEudXNlU3RhdGUpKCgoKT0+ZS5nZXREZWNvcmF0b3JzKCkpKTtyZXR1cm4gdXcoKCgpPT5lLnJlZ2lzdGVyRGVjb3JhdG9yTGlzdGVuZXIoKGU9PnsoMCx0bi5mbHVzaFN5bmMpKCgoKT0+e3IoZSl9KSl9KSkpLFtlXSksKDAsYS51c2VFZmZlY3QpKCgoKT0+e3IoZS5nZXREZWNvcmF0b3JzKCkpfSksW2VdKSwoMCxhLnVzZU1lbW8pKCgoKT0+e2NvbnN0IHI9W10sbz1PYmplY3Qua2V5cyhuKTtmb3IobGV0IGk9MDtpPG8ubGVuZ3RoO2krKyl7Y29uc3Qgcz1vW2ldLGw9KDAsbXUuanN4KSh0LHtvbkVycm9yOnQ9PmUuX29uRXJyb3IodCksY2hpbGRyZW46KDAsbXUuanN4KShhLlN1c3BlbnNlLHtmYWxsYmFjazpudWxsLGNoaWxkcmVuOm5bc119KX0pLGM9ZS5nZXRFbGVtZW50QnlLZXkocyk7bnVsbCE9PWMmJnIucHVzaCgoMCx0bi5jcmVhdGVQb3J0YWwpKGwsYyxzKSl9cmV0dXJuIHJ9KSxbdCxuLGVdKX0ocixuKTtyZXR1cm4gZnVuY3Rpb24oZSl7dXcoKCgpPT5YeChmdW5jdGlvbihlKXtyZXR1cm4gWHgoZS5yZWdpc3RlckNvbW1hbmQobnAsKGU9Pntjb25zdCB0PUhiKCk7cmV0dXJuISFEYih0KSYmKHQuZGVsZXRlQ2hhcmFjdGVyKGUpLCEwKX0pLDApLGUucmVnaXN0ZXJDb21tYW5kKGxwLChlPT57Y29uc3QgdD1IYigpO3JldHVybiEhRGIodCkmJih0LmRlbGV0ZVdvcmQoZSksITApfSksMCksZS5yZWdpc3RlckNvbW1hbmQoY3AsKGU9Pntjb25zdCB0PUhiKCk7cmV0dXJuISFEYih0KSYmKHQuZGVsZXRlTGluZShlKSwhMCl9KSwwKSxlLnJlZ2lzdGVyQ29tbWFuZChpcCwoZT0+e2NvbnN0IHQ9SGIoKTtpZighRGIodCkpcmV0dXJuITE7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpdC5pbnNlcnRUZXh0KGUpO2Vsc2V7Y29uc3Qgbj1lLmRhdGFUcmFuc2ZlcjtpZihudWxsIT1uKXR3KG4sdCk7ZWxzZXtjb25zdCBuPWUuZGF0YTtuJiZ0Lmluc2VydFRleHQobil9fXJldHVybiEwfSksMCksZS5yZWdpc3RlckNvbW1hbmQoYXAsKCgpPT57Y29uc3QgZT1IYigpO3JldHVybiEhRGIoZSkmJihlLnJlbW92ZVRleHQoKSwhMCl9KSwwKSxlLnJlZ2lzdGVyQ29tbWFuZChycCwoZT0+e2NvbnN0IHQ9SGIoKTtyZXR1cm4hIURiKHQpJiYodC5pbnNlcnRMaW5lQnJlYWsoZSksITApfSksMCksZS5yZWdpc3RlckNvbW1hbmQob3AsKCgpPT57Y29uc3QgZT1IYigpO3JldHVybiEhRGIoZSkmJihlLmluc2VydExpbmVCcmVhaygpLCEwKX0pLDApLGUucmVnaXN0ZXJDb21tYW5kKGdwLChlPT57Y29uc3QgdD1IYigpO2lmKCFEYih0KSlyZXR1cm4hMTtjb25zdCBuPWUscj1uLnNoaWZ0S2V5O3JldHVybiEhWngodCwhMCkmJihuLnByZXZlbnREZWZhdWx0KCksSngodCxyLCEwKSwhMCl9KSwwKSxlLnJlZ2lzdGVyQ29tbWFuZChocCwoZT0+e2NvbnN0IHQ9SGIoKTtpZighRGIodCkpcmV0dXJuITE7Y29uc3Qgbj1lLHI9bi5zaGlmdEtleTtyZXR1cm4hIVp4KHQsITEpJiYobi5wcmV2ZW50RGVmYXVsdCgpLEp4KHQsciwhMSksITApfSksMCksZS5yZWdpc3RlckNvbW1hbmQoU3AsKHQ9PiEhRGIoSGIoKSkmJih0LnByZXZlbnREZWZhdWx0KCksZS5kaXNwYXRjaENvbW1hbmQobnAsITApKSksMCksZS5yZWdpc3RlckNvbW1hbmQoRXAsKHQ9PiEhRGIoSGIoKSkmJih0LnByZXZlbnREZWZhdWx0KCksZS5kaXNwYXRjaENvbW1hbmQobnAsITEpKSksMCksZS5yZWdpc3RlckNvbW1hbmQoeHAsKHQ9PntpZighRGIoSGIoKSkpcmV0dXJuITE7aWYobnVsbCE9PXQpe2lmKChzd3x8aXd8fGx3KSYmb3cpcmV0dXJuITE7dC5wcmV2ZW50RGVmYXVsdCgpfXJldHVybiBlLmRpc3BhdGNoQ29tbWFuZChycCwhMSl9KSwwKSxlLnJlZ2lzdGVyQ29tbWFuZChScCwoKCk9PihmdW5jdGlvbigpe2NvbnN0IGU9Y3koKTtkeShmdW5jdGlvbihlKXtyZXR1cm4gVmcoZS5hbmNob3IpLFZnKGUuZm9jdXMpLGV9KGUuc2VsZWN0KDAsZS5nZXRDaGlsZHJlblNpemUoKSkpKX0oKSwhMCkpLDApLGUucmVnaXN0ZXJDb21tYW5kKFRwLCh0PT4hIURiKEhiKCkpJiYoY3codCxlKSwhMCkpLDApLGUucmVnaXN0ZXJDb21tYW5kKE1wLCh0PT4hIURiKEhiKCkpJiYoZnVuY3Rpb24oZSx0KXtjdyhlLHQpLHQudXBkYXRlKCgoKT0+e2NvbnN0IGU9SGIoKTtEYihlKSYmZS5yZW1vdmVUZXh0KCl9KSl9KHQsZSksITApKSwwKSxlLnJlZ2lzdGVyQ29tbWFuZChzcCwodD0+ISFEYihIYigpKSYmKGZ1bmN0aW9uKGUsdCl7ZS5wcmV2ZW50RGVmYXVsdCgpLHQudXBkYXRlKCgoKT0+e2NvbnN0IHQ9SGIoKSx7Y2xpcGJvYXJkRGF0YTpufT1lO251bGwhPW4mJkRiKHQpJiZ0dyhuLHQpfSkse3RhZzpcInBhc3RlXCJ9KX0odCxlKSwhMCkpLDApLGUucmVnaXN0ZXJDb21tYW5kKF9wLChlPT4hIURiKEhiKCkpJiYoZS5wcmV2ZW50RGVmYXVsdCgpLCEwKSksMCksZS5yZWdpc3RlckNvbW1hbmQoUHAsKGU9PiEhRGIoSGIoKSkmJihlLnByZXZlbnREZWZhdWx0KCksITApKSwwKSl9KGUpLGZ1bmN0aW9uKGUpe2NvbnN0IHQ9d2luZG93LmxvY2F0aW9uLm9yaWdpbixuPW49PntpZihuLm9yaWdpbiE9PXQpcmV0dXJuO2NvbnN0IHI9ZS5nZXRSb290RWxlbWVudCgpO2lmKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1yKXJldHVybjtjb25zdCBvPW4uZGF0YTtpZihcInN0cmluZ1wiPT10eXBlb2Ygbyl7bGV0IHQ7dHJ5e3Q9SlNPTi5wYXJzZShvKX1jYXRjaChlKXtyZXR1cm59aWYodCYmXCJudWFucmlhX21lc3NhZ2luZ1wiPT09dC5wcm90b2NvbCYmXCJyZXF1ZXN0XCI9PT10LnR5cGUpe2NvbnN0IHI9dC5wYXlsb2FkO2lmKHImJlwibWFrZUNoYW5nZXNcIj09PXIuZnVuY3Rpb25JZCl7Y29uc3QgdD1yLmFyZ3M7aWYodCl7Y29uc3RbcixvLGkscyxhLGxdPXQ7ZS51cGRhdGUoKCgpPT57Y29uc3QgZT1IYigpO2lmKERiKGUpKXtjb25zdCB0PWUuYW5jaG9yO2xldCBsPXQuZ2V0Tm9kZSgpLGM9MCx1PTA7aWYoa2IobCkmJnI+PTAmJm8+PTAmJihjPXIsdT1yK28sZS5zZXRUZXh0Tm9kZVJhbmdlKGwsYyxsLHUpKSxjPT09dSYmXCJcIj09PWl8fChlLmluc2VydFJhd1RleHQoaSksbD10LmdldE5vZGUoKSksa2IobCkpe2M9cyx1PXMrYTtjb25zdCB0PWwuZ2V0VGV4dENvbnRlbnRTaXplKCk7Yz1jPnQ/dDpjLHU9dT50P3Q6dSxlLnNldFRleHROb2RlUmFuZ2UobCxjLGwsdSl9bi5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX19KSl9fX19fTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsbiwhMCksKCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIixuLCEwKX19KGUpKSksW2VdKX0ociksKDAsbXUuanN4cykobXUuRnJhZ21lbnQse2NoaWxkcmVuOltlLCgwLG11LmpzeCkobXcse2NvbnRlbnQ6dH0pLG9dfSl9ZnVuY3Rpb24gbXcoe2NvbnRlbnQ6ZX0pe2NvbnN0W3RdPUpoKCksbj1mdW5jdGlvbihlKXtjb25zdFt0LG5dPSgwLGEudXNlU3RhdGUpKCgoKT0+ZHcoZSkpKTtyZXR1cm4gdXcoKCgpPT57ZnVuY3Rpb24gdCgpe2NvbnN0IHQ9ZHcoZSk7bih0KX1yZXR1cm4gdCgpLFh4KGUucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcigoKCk9Pnt0KCl9KSksZS5yZWdpc3RlckVkaXRhYmxlTGlzdGVuZXIoKCgpPT57dCgpfSkpKX0pLFtlXSksdH0odCkscj1mdW5jdGlvbihlKXtjb25zdFt0XT1KaCgpLG49KDAsYS51c2VNZW1vKSgoKCk9PmUodCkpLFt0LGVdKSxyPSgwLGEudXNlUmVmKShuLmluaXRpYWxWYWx1ZUZuKCkpLFtvLGldPSgwLGEudXNlU3RhdGUpKHIuY3VycmVudCk7cmV0dXJuIFl4KCgoKT0+e2NvbnN0e2luaXRpYWxWYWx1ZUZuOmUsc3Vic2NyaWJlOnR9PW4sbz1lKCk7cmV0dXJuIHIuY3VycmVudCE9PW8mJihyLmN1cnJlbnQ9byxpKG8pKSx0KChlPT57ci5jdXJyZW50PWUsaShlKX0pKX0pLFtuLGVdKSxvfShIeCk7cmV0dXJuIG4/XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lKHIpOmU6bnVsbH1jb25zdCBodz1cInVuZGVmaW5lZFwiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuZG9jdW1lbnQmJnZvaWQgMCE9PXdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50P2EudXNlTGF5b3V0RWZmZWN0OmEudXNlRWZmZWN0LHB3PSgwLGEuZm9yd2FyZFJlZikoKGZ1bmN0aW9uKHtlZGl0b3I6ZSxhcmlhQWN0aXZlRGVzY2VuZGFudDp0LGFyaWFBdXRvQ29tcGxldGU6bixhcmlhQ29udHJvbHM6cixhcmlhRGVzY3JpYmVkQnk6byxhcmlhRXhwYW5kZWQ6aSxhcmlhTGFiZWw6cyxhcmlhTGFiZWxsZWRCeTpsLGFyaWFNdWx0aWxpbmU6YyxhcmlhT3duczp1LGFyaWFSZXF1aXJlZDpkLGF1dG9DYXBpdGFsaXplOmYsY2xhc3NOYW1lOm0saWQ6aCxyb2xlOnA9XCJ0ZXh0Ym94XCIsc3BlbGxDaGVjazpnPSEwLHN0eWxlOnksdGFiSW5kZXg6dixcImRhdGEtdGVzdGlkXCI6YiwuLi54fSx3KXtjb25zdFtTLGtdPSgwLGEudXNlU3RhdGUpKGUuaXNFZGl0YWJsZSgpKSxFPSgwLGEudXNlQ2FsbGJhY2spKCh0PT57dCYmdC5vd25lckRvY3VtZW50JiZ0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc/ZS5zZXRSb290RWxlbWVudCh0KTplLnNldFJvb3RFbGVtZW50KG51bGwpfSksW2VdKSxDPSgwLGEudXNlTWVtbykoKCgpPT5mdW5jdGlvbiguLi5lKXtyZXR1cm4gdD0+e2UuZm9yRWFjaCgoZT0+e1wiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZSh0KTpudWxsIT1lJiYoZS5jdXJyZW50PXQpfSkpfX0odyxFKSksW0Usd10pO3JldHVybiBodygoKCk9PihrKGUuaXNFZGl0YWJsZSgpKSxlLnJlZ2lzdGVyRWRpdGFibGVMaXN0ZW5lcigoZT0+e2soZSl9KSkpKSxbZV0pLCgwLG11LmpzeCkoXCJkaXZcIix7Li4ueCxcImFyaWEtYWN0aXZlZGVzY2VuZGFudFwiOlM/dDp2b2lkIDAsXCJhcmlhLWF1dG9jb21wbGV0ZVwiOlM/bjpcIm5vbmVcIixcImFyaWEtY29udHJvbHNcIjpTP3I6dm9pZCAwLFwiYXJpYS1kZXNjcmliZWRieVwiOm8sXCJhcmlhLWV4cGFuZGVkXCI6UyYmXCJjb21ib2JveFwiPT09cD8hIWk6dm9pZCAwLFwiYXJpYS1sYWJlbFwiOnMsXCJhcmlhLWxhYmVsbGVkYnlcIjpsLFwiYXJpYS1tdWx0aWxpbmVcIjpjLFwiYXJpYS1vd25zXCI6Uz91OnZvaWQgMCxcImFyaWEtcmVhZG9ubHlcIjohU3x8dm9pZCAwLFwiYXJpYS1yZXF1aXJlZFwiOmQsYXV0b0NhcGl0YWxpemU6ZixjbGFzc05hbWU6bSxjb250ZW50RWRpdGFibGU6UyxcImRhdGEtdGVzdGlkXCI6YixpZDpoLHJlZjpDLHJvbGU6Uz9wOnZvaWQgMCxzcGVsbENoZWNrOmcsc3R5bGU6eSx0YWJJbmRleDp2fSl9KSk7ZnVuY3Rpb24gZ3coZSl7cmV0dXJuIGUuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKEt4KGUuaXNDb21wb3NpbmcoKSkpfWNvbnN0IHl3PSgwLGEuZm9yd2FyZFJlZikoKGZ1bmN0aW9uKGUsdCl7Y29uc3R7cGxhY2Vob2xkZXI6biwuLi5yfT1lLFtvXT1KaCgpO3JldHVybigwLG11LmpzeHMpKG11LkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsbXUuanN4KShwdyx7ZWRpdG9yOm8sLi4ucixyZWY6dH0pLG51bGwhPW4mJigwLG11LmpzeCkodncse2VkaXRvcjpvLGNvbnRlbnQ6bn0pXX0pfSkpO2Z1bmN0aW9uIHZ3KHtjb250ZW50OmUsZWRpdG9yOnR9KXtjb25zdCBuPWZ1bmN0aW9uKGUpe2NvbnN0W3Qsbl09KDAsYS51c2VTdGF0ZSkoKCgpPT5ndyhlKSkpO3JldHVybiBodygoKCk9PntmdW5jdGlvbiB0KCl7Y29uc3QgdD1ndyhlKTtuKHQpfXJldHVybiB0KCksWHgoZS5yZWdpc3RlclVwZGF0ZUxpc3RlbmVyKCgoKT0+e3QoKX0pKSxlLnJlZ2lzdGVyRWRpdGFibGVMaXN0ZW5lcigoKCk9Pnt0KCl9KSkpfSksW2VdKSx0fSh0KSxbcixvXT0oMCxhLnVzZVN0YXRlKSh0LmlzRWRpdGFibGUoKSk7aWYoKDAsYS51c2VMYXlvdXRFZmZlY3QpKCgoKT0+KG8odC5pc0VkaXRhYmxlKCkpLHQucmVnaXN0ZXJFZGl0YWJsZUxpc3RlbmVyKChlPT57byhlKX0pKSkpLFt0XSksIW4pcmV0dXJuIG51bGw7bGV0IGk9bnVsbDtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2k9ZShyKTpudWxsIT09ZSYmKGk9ZSksbnVsbD09PWk/bnVsbDooMCxtdS5qc3gpKFwiZGl2XCIse1wiYXJpYS1oaWRkZW5cIjohMCxjaGlsZHJlbjppfSl9Y29uc3QgYnc9MCx4dz0xLHd3PTIsU3c9MCxrdz0xLEV3PTIsQ3c9Myxfdz00O2Z1bmN0aW9uIFB3KGUpe2UudW5kb1N0YWNrPVtdLGUucmVkb1N0YWNrPVtdLGUuY3VycmVudD1udWxsfWZ1bmN0aW9uIE93KHtkZWxheTplLGV4dGVybmFsSGlzdG9yeVN0YXRlOnR9KXtjb25zdFtuXT1KaCgpO3JldHVybiBmdW5jdGlvbihlLHQsbj0xZTMpe2NvbnN0IHI9KDAsYS51c2VNZW1vKSgoKCk9PnR8fHtjdXJyZW50Om51bGwscmVkb1N0YWNrOltdLHVuZG9TdGFjazpbXX0pLFt0XSk7KDAsYS51c2VFZmZlY3QpKCgoKT0+ZnVuY3Rpb24oZSx0LG4pe2NvbnN0IHI9ZnVuY3Rpb24oZSx0KXtsZXQgbj1EYXRlLm5vdygpLHI9U3c7cmV0dXJuKG8saSxzLGEsbCxjKT0+e2NvbnN0IHU9RGF0ZS5ub3coKTtpZihjLmhhcyhcImhpc3RvcmljXCIpKXJldHVybiByPVN3LG49dSx3dztjb25zdCBkPWZ1bmN0aW9uKGUsdCxuLHIsbyl7aWYobnVsbD09PWV8fDA9PT1uLnNpemUmJjA9PT1yLnNpemUmJiFvKXJldHVybiBTdztjb25zdCBpPXQuX3NlbGVjdGlvbixzPWUuX3NlbGVjdGlvbjtpZihvKXJldHVybiBrdztpZighKERiKGkpJiZEYihzKSYmcy5pc0NvbGxhcHNlZCgpJiZpLmlzQ29sbGFwc2VkKCkpKXJldHVybiBTdztjb25zdCBhPWZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWUuX25vZGVNYXAsbz1bXTtmb3IoY29uc3QgZSBvZiB0KXtjb25zdCB0PXIuZ2V0KGUpO3ZvaWQgMCE9PXQmJm8ucHVzaCh0KX1mb3IoY29uc3RbZSx0XW9mIG4pe2lmKCF0KWNvbnRpbnVlO2NvbnN0IG49ci5nZXQoZSk7dm9pZCAwPT09bnx8Tngobil8fG8ucHVzaChuKX1yZXR1cm4gb30odCxuLHIpO2lmKDA9PT1hLmxlbmd0aClyZXR1cm4gU3c7aWYoYS5sZW5ndGg+MSl7Y29uc3Qgbj10Ll9ub2RlTWFwLHI9bi5nZXQoaS5hbmNob3Iua2V5KSxvPW4uZ2V0KHMuYW5jaG9yLmtleSk7cmV0dXJuIHImJm8mJiFlLl9ub2RlTWFwLmhhcyhyLl9fa2V5KSYma2IocikmJjE9PT1yLl9fdGV4dC5sZW5ndGgmJjE9PT1pLmFuY2hvci5vZmZzZXQ/RXc6U3d9Y29uc3QgbD1hWzBdLGM9ZS5fbm9kZU1hcC5nZXQobC5fX2tleSk7aWYoIWtiKGMpfHwha2IobCl8fGMuX19tb2RlIT09bC5fX21vZGUpcmV0dXJuIFN3O2NvbnN0IHU9Yy5fX3RleHQsZD1sLl9fdGV4dDtpZih1PT09ZClyZXR1cm4gU3c7Y29uc3QgZj1pLmFuY2hvcixtPXMuYW5jaG9yO2lmKGYua2V5IT09bS5rZXl8fFwidGV4dFwiIT09Zi50eXBlKXJldHVybiBTdztjb25zdCBoPWYub2Zmc2V0LHA9bS5vZmZzZXQsZz1kLmxlbmd0aC11Lmxlbmd0aDtyZXR1cm4gMT09PWcmJnA9PT1oLTE/RXc6LTE9PT1nJiZwPT09aCsxP0N3Oi0xPT09ZyYmcD09PWg/X3c6U3d9KG8saSxhLGwsZS5pc0NvbXBvc2luZygpKSxmPSgoKT0+e2NvbnN0IGY9bnVsbD09PXN8fHMuZWRpdG9yPT09ZSxtPWMuaGFzKFwiaGlzdG9yeS1wdXNoXCIpO2lmKCFtJiZmJiZjLmhhcyhcImhpc3RvcnktbWVyZ2VcIikpcmV0dXJuIGJ3O2lmKG51bGw9PT1vKXJldHVybiB4dztjb25zdCBoPWkuX3NlbGVjdGlvbjtyZXR1cm4gYS5zaXplPjB8fGwuc2l6ZT4wPyExPT09bSYmZCE9PVN3JiZkPT09ciYmdTxuK3QmJmZ8fDE9PT1hLnNpemUmJmZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPXQuX25vZGVNYXAuZ2V0KGUpLG89bi5fbm9kZU1hcC5nZXQoZSksaT10Ll9zZWxlY3Rpb24scz1uLl9zZWxlY3Rpb247cmV0dXJuIShEYihpKSYmRGIocykmJlwiZWxlbWVudFwiPT09aS5hbmNob3IudHlwZSYmXCJlbGVtZW50XCI9PT1pLmZvY3VzLnR5cGUmJlwidGV4dFwiPT09cy5hbmNob3IudHlwZSYmXCJ0ZXh0XCI9PT1zLmZvY3VzLnR5cGV8fCFrYihyKXx8IWtiKG8pfHxyLl9fcGFyZW50IT09by5fX3BhcmVudCkmJkpTT04uc3RyaW5naWZ5KHQucmVhZCgoKCk9PnIuZXhwb3J0SlNPTigpKSkpPT09SlNPTi5zdHJpbmdpZnkobi5yZWFkKCgoKT0+by5leHBvcnRKU09OKCkpKSl9KEFycmF5LmZyb20oYSlbMF0sbyxpKT9idzp4dzpudWxsIT09aD9idzp3d30pKCk7cmV0dXJuIG49dSxyPWQsZn19KGUsbiksbz1YeChlLnJlZ2lzdGVyQ29tbWFuZChkcCwoKCk9PihmdW5jdGlvbihlLHQpe2NvbnN0IG49dC5yZWRvU3RhY2sscj10LnVuZG9TdGFjaztpZigwIT09ci5sZW5ndGgpe2NvbnN0IG89dC5jdXJyZW50LGk9ci5wb3AoKTtudWxsIT09byYmKG4ucHVzaChvKSxlLmRpc3BhdGNoQ29tbWFuZChBcCwhMCkpLDA9PT1yLmxlbmd0aCYmZS5kaXNwYXRjaENvbW1hbmQoSXAsITEpLHQuY3VycmVudD1pfHxudWxsLGkmJmkuZWRpdG9yLnNldEVkaXRvclN0YXRlKGkuZWRpdG9yU3RhdGUse3RhZzpcImhpc3RvcmljXCJ9KX19KGUsdCksITApKSwwKSxlLnJlZ2lzdGVyQ29tbWFuZChmcCwoKCk9PihmdW5jdGlvbihlLHQpe2NvbnN0IG49dC5yZWRvU3RhY2sscj10LnVuZG9TdGFjaztpZigwIT09bi5sZW5ndGgpe2NvbnN0IG89dC5jdXJyZW50O251bGwhPT1vJiYoci5wdXNoKG8pLGUuZGlzcGF0Y2hDb21tYW5kKElwLCEwKSk7Y29uc3QgaT1uLnBvcCgpOzA9PT1uLmxlbmd0aCYmZS5kaXNwYXRjaENvbW1hbmQoQXAsITEpLHQuY3VycmVudD1pfHxudWxsLGkmJmkuZWRpdG9yLnNldEVkaXRvclN0YXRlKGkuZWRpdG9yU3RhdGUse3RhZzpcImhpc3RvcmljXCJ9KX19KGUsdCksITApKSwwKSxlLnJlZ2lzdGVyQ29tbWFuZChEcCwoKCk9PihQdyh0KSwhMSkpLDApLGUucmVnaXN0ZXJDb21tYW5kKGpwLCgoKT0+KFB3KHQpLGUuZGlzcGF0Y2hDb21tYW5kKEFwLCExKSxlLmRpc3BhdGNoQ29tbWFuZChJcCwhMSksITApKSwwKSxlLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIoKCh7ZWRpdG9yU3RhdGU6bixwcmV2RWRpdG9yU3RhdGU6byxkaXJ0eUxlYXZlczppLGRpcnR5RWxlbWVudHM6cyx0YWdzOmF9KT0+e2NvbnN0IGw9dC5jdXJyZW50LGM9dC5yZWRvU3RhY2ssdT10LnVuZG9TdGFjayxkPW51bGw9PT1sP251bGw6bC5lZGl0b3JTdGF0ZTtpZihudWxsIT09bCYmbj09PWQpcmV0dXJuO2NvbnN0IGY9cihvLG4sbCxpLHMsYSk7aWYoZj09PXh3KTAhPT1jLmxlbmd0aCYmKHQucmVkb1N0YWNrPVtdLGUuZGlzcGF0Y2hDb21tYW5kKEFwLCExKSksbnVsbCE9PWwmJih1LnB1c2goey4uLmx9KSxlLmRpc3BhdGNoQ29tbWFuZChJcCwhMCkpO2Vsc2UgaWYoZj09PXd3KXJldHVybjt0LmN1cnJlbnQ9e2VkaXRvcjplLGVkaXRvclN0YXRlOm59fSkpKTtyZXR1cm4gb30oZSxyLG4pKSxbbixlLHJdKX0obix0LGUpLG51bGx9ZnVuY3Rpb24gTncoZSx0KXtyZXR1cm4gTnc9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5fX3Byb3RvX189dCxlfSxOdyhlLHQpfXZhciBUdz17ZXJyb3I6bnVsbH0sTXc9ZnVuY3Rpb24oZSl7dmFyIHQsbjtmdW5jdGlvbiByKCl7Zm9yKHZhciB0LG49YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShuKSxvPTA7bzxuO28rKylyW29dPWFyZ3VtZW50c1tvXTtyZXR1cm4odD1lLmNhbGwuYXBwbHkoZSxbdGhpc10uY29uY2F0KHIpKXx8dGhpcykuc3RhdGU9VHcsdC5yZXNldEVycm9yQm91bmRhcnk9ZnVuY3Rpb24oKXtmb3IodmFyIGUsbj1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KG4pLG89MDtvPG47bysrKXJbb109YXJndW1lbnRzW29dO251bGw9PXQucHJvcHMub25SZXNldHx8KGU9dC5wcm9wcykub25SZXNldC5hcHBseShlLHIpLHQucmVzZXQoKX0sdH1uPWUsKHQ9cikucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobi5wcm90b3R5cGUpLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXQsTncodCxuKSxyLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcj1mdW5jdGlvbihlKXtyZXR1cm57ZXJyb3I6ZX19O3ZhciBvPXIucHJvdG90eXBlO3JldHVybiBvLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5zZXRTdGF0ZShUdyl9LG8uY29tcG9uZW50RGlkQ2F0Y2g9ZnVuY3Rpb24oZSx0KXt2YXIgbixyO251bGw9PShuPShyPXRoaXMucHJvcHMpLm9uRXJyb3IpfHxuLmNhbGwocixlLHQpfSxvLmNvbXBvbmVudERpZFVwZGF0ZT1mdW5jdGlvbihlLHQpe3ZhciBuLHIsbyxpLHM9dGhpcy5zdGF0ZS5lcnJvcixhPXRoaXMucHJvcHMucmVzZXRLZXlzO251bGwhPT1zJiZudWxsIT09dC5lcnJvciYmKHZvaWQgMD09PShvPWUucmVzZXRLZXlzKSYmKG89W10pLHZvaWQgMD09PShpPWEpJiYoaT1bXSksby5sZW5ndGghPT1pLmxlbmd0aHx8by5zb21lKChmdW5jdGlvbihlLHQpe3JldHVybiFPYmplY3QuaXMoZSxpW3RdKX0pKSkmJihudWxsPT0obj0ocj10aGlzLnByb3BzKS5vblJlc2V0S2V5c0NoYW5nZSl8fG4uY2FsbChyLGUucmVzZXRLZXlzLGEpLHRoaXMucmVzZXQoKSl9LG8ucmVuZGVyPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zdGF0ZS5lcnJvcix0PXRoaXMucHJvcHMsbj10LmZhbGxiYWNrUmVuZGVyLHI9dC5GYWxsYmFja0NvbXBvbmVudCxvPXQuZmFsbGJhY2s7aWYobnVsbCE9PWUpe3ZhciBpPXtlcnJvcjplLHJlc2V0RXJyb3JCb3VuZGFyeTp0aGlzLnJlc2V0RXJyb3JCb3VuZGFyeX07aWYoYS5pc1ZhbGlkRWxlbWVudChvKSlyZXR1cm4gbztpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBuKXJldHVybiBuKGkpO2lmKHIpcmV0dXJuIGEuY3JlYXRlRWxlbWVudChyLGkpO3Rocm93IG5ldyBFcnJvcihcInJlYWN0LWVycm9yLWJvdW5kYXJ5IHJlcXVpcmVzIGVpdGhlciBhIGZhbGxiYWNrLCBmYWxsYmFja1JlbmRlciwgb3IgRmFsbGJhY2tDb21wb25lbnQgcHJvcFwiKX1yZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbn0scn0oYS5Db21wb25lbnQpO2Z1bmN0aW9uIFJ3KHtjaGlsZHJlbjplLG9uRXJyb3I6dH0pe3JldHVybigwLG11LmpzeCkoTXcse2ZhbGxiYWNrOigwLG11LmpzeCkoXCJkaXZcIix7c3R5bGU6e2JvcmRlcjpcIjFweCBzb2xpZCAjZjAwXCIsY29sb3I6XCIjZjAwXCIscGFkZGluZzpcIjhweFwifSxjaGlsZHJlbjpcIkFuIGVycm9yIHdhcyB0aHJvd24uXCJ9KSxvbkVycm9yOnQsY2hpbGRyZW46ZX0pfWNvbnN0IER3PVwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5kb2N1bWVudCYmdm9pZCAwIT09d2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQ/YS51c2VMYXlvdXRFZmZlY3Q6YS51c2VFZmZlY3Q7ZnVuY3Rpb24gancoe2lnbm9yZUhpc3RvcnlNZXJnZVRhZ0NoYW5nZTplPSEwLGlnbm9yZVNlbGVjdGlvbkNoYW5nZTp0PSExLG9uQ2hhbmdlOm59KXtjb25zdFtyXT1KaCgpO3JldHVybiBEdygoKCk9PntpZihuKXJldHVybiByLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIoKCh7ZWRpdG9yU3RhdGU6byxkaXJ0eUVsZW1lbnRzOmksZGlydHlMZWF2ZXM6cyxwcmV2RWRpdG9yU3RhdGU6YSx0YWdzOmx9KT0+e3QmJjA9PT1pLnNpemUmJjA9PT1zLnNpemV8fGUmJmwuaGFzKFwiaGlzdG9yeS1tZXJnZVwiKXx8YS5pc0VtcHR5KCl8fG4obyxyLGwpfSkpfSksW3IsZSx0LG5dKSxudWxsfWZ1bmN0aW9uIEF3KHtlZGl0b3JSZWY6ZX0pe2NvbnN0W3RdPUpoKCk7cmV0dXJuIGEudXNlRWZmZWN0KCgoKT0+e1wiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZSh0KTpcIm9iamVjdFwiPT10eXBlb2YgZSYmKGUuY3VycmVudD10KX0pLFt0XSksbnVsbH12YXIgSXc9e3hzOlwicHktMSBweC0yIHByLTIgcm91bmRlZCBbJl8uZWRpdG9yLWNvbnRlbnQ+cF06dGV4dC14cyBbJl8uZWRpdG9yLWNvbnRlbnQ+cF06Zm9udC1ub3JtYWwgWyZfLnBvaW50ZXItZXZlbnRzLW5vbmVdOnRleHQteHNcIixzbTpcInB4LTMgcHktMiByb3VuZGVkIFsmXy5lZGl0b3ItY29udGVudD5wXTp0ZXh0LXhzIFsmXy5lZGl0b3ItY29udGVudD5wXTpmb250LW5vcm1hbCBbJl8ucG9pbnRlci1ldmVudHMtbm9uZV06dGV4dC14cyBbJl8ucG9pbnRlci1ldmVudHMtbm9uZV06Zm9udC1ub3JtYWxcIixtZDpcInB4LTMuNSBweS0yLjUgcm91bmRlZC1tZCBbJl8uZWRpdG9yLWNvbnRlbnQ+cF06dGV4dC1zbSBbJl8uZWRpdG9yLWNvbnRlbnQ+cF06Zm9udC1ub3JtYWwgWyZfLnBvaW50ZXItZXZlbnRzLW5vbmVdOnRleHQtc20gWyZfLnBvaW50ZXItZXZlbnRzLW5vbmVdOmZvbnQtbm9ybWFsXCIsbGc6XCJweC00IHB5LTMgcm91bmRlZC1tZCBbJl8uZWRpdG9yLWNvbnRlbnQ+cF06dGV4dC1iYXNlIFsmXy5lZGl0b3ItY29udGVudD5wXTpmb250LW5vcm1hbCBbJl8ucG9pbnRlci1ldmVudHMtbm9uZV06dGV4dC1iYXNlIFsmXy5wb2ludGVyLWV2ZW50cy1ub25lXTpmb250LW5vcm1hbFwifSxMdz17eHM6XCJwLTEgcm91bmRlZC1tZCBtYXgtaC1bOC43NXJlbV1cIixzbTpcInAtMS41IHJvdW5kZWQtbWQgbWF4LWgtWzEwLjc1cmVtXVwiLG1kOlwicC0yIHJvdW5kZWQtbGcgbWF4LWgtWzEzLjVyZW1dXCIsbGc6XCJwLTIgcm91bmRlZC1sZyBtYXgtaC1bMTMuNXJlbV1cIn0sRnc9e3hzOlwicC0xIHJvdW5kZWQgdGV4dC14cyBsZWFkaW5nLTQgZm9udC1ub3JtYWxcIixzbTpcInAtMS41IHJvdW5kZWQgdGV4dC14cyBsZWFkaW5nLTUgZm9udC1ub3JtYWxcIixtZDpcInAtMiByb3VuZGVkLW1kIHRleHQtc20gbGVhZGluZy02IGZvbnQtbm9ybWFsXCIsbGc6XCJwLTIgcm91bmRlZC1tZCB0ZXh0LWJhc2UgbGVhZGluZy02IGZvbnQtbm9ybWFsXCJ9O2NvbnN0IHp3PVwic3RhcnRUcmFuc2l0aW9uXCIsQnc9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LmRvY3VtZW50JiZ2b2lkIDAhPT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudD9hLnVzZUxheW91dEVmZmVjdDphLnVzZUVmZmVjdCxXdz1lPT57Y29uc3QgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInR5cGVhaGVhZC1tZW51XCIpO2lmKCF0KXJldHVybjtjb25zdCBuPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bi50b3Arbi5oZWlnaHQ+d2luZG93LmlubmVySGVpZ2h0JiZ0LnNjcm9sbEludG9WaWV3KHtibG9jazpcImNlbnRlclwifSksbi50b3A8MCYmdC5zY3JvbGxJbnRvVmlldyh7YmxvY2s6XCJjZW50ZXJcIn0pLGUuc2Nyb2xsSW50b1ZpZXcoe2Jsb2NrOlwibmVhcmVzdFwifSl9O2Z1bmN0aW9uIFZ3KGUsdCl7Y29uc3Qgbj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHI9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gbi50b3A+ci50b3AmJm4udG9wPHIuYm90dG9tfWNvbnN0IFV3PXt9O2Z1bmN0aW9uICR3KHtjbG9zZTplLGVkaXRvcjp0LGFuY2hvckVsZW1lbnRSZWY6bixyZXNvbHV0aW9uOnIsb3B0aW9uczpvLG1lbnVSZW5kZXJGbjppLG9uU2VsZWN0T3B0aW9uOnMsc2hvdWxkU3BsaXROb2RlV2l0aFF1ZXJ5Omw9ITEsY29tbWFuZFByaW9yaXR5OmM9Rnh9KXtjb25zdFt1LGRdPSgwLGEudXNlU3RhdGUpKG51bGwpLGY9ci5tYXRjaCYmci5tYXRjaC5tYXRjaGluZ1N0cmluZzsoMCxhLnVzZUVmZmVjdCkoKCgpPT57ZCgwKX0pLFtmXSk7Y29uc3QgbT0oMCxhLnVzZUNhbGxiYWNrKSgobj0+e3QudXBkYXRlKCgoKT0+e2NvbnN0IHQ9bnVsbCE9ci5tYXRjaCYmbD9mdW5jdGlvbihlKXtjb25zdCB0PUhiKCk7aWYoIURiKHQpfHwhdC5pc0NvbGxhcHNlZCgpKXJldHVybiBudWxsO2NvbnN0IG49dC5hbmNob3I7aWYoXCJ0ZXh0XCIhPT1uLnR5cGUpcmV0dXJuIG51bGw7Y29uc3Qgcj1uLmdldE5vZGUoKTtpZighci5pc1NpbXBsZVRleHQoKSlyZXR1cm4gbnVsbDtjb25zdCBvPW4ub2Zmc2V0LGk9ci5nZXRUZXh0Q29udGVudCgpLnNsaWNlKDAsbykscz1lLnJlcGxhY2VhYmxlU3RyaW5nLmxlbmd0aCxhPW8tZnVuY3Rpb24oZSx0LG4pe2xldCByPW47Zm9yKGxldCBuPXI7bjw9dC5sZW5ndGg7bisrKWUuc3Vic3RyKC1uKT09PXQuc3Vic3RyKDAsbikmJihyPW4pO3JldHVybiByfShpLGUubWF0Y2hpbmdTdHJpbmcscyk7aWYoYTwwKXJldHVybiBudWxsO2xldCBsO3JldHVybiAwPT09YT9bbF09ci5zcGxpdFRleHQobyk6WyxsXT1yLnNwbGl0VGV4dChhLG8pLGx9KHIubWF0Y2gpOm51bGw7cyhuLHQsZSxyLm1hdGNoP3IubWF0Y2gubWF0Y2hpbmdTdHJpbmc6XCJcIil9KSl9KSxbdCxsLHIubWF0Y2gscyxlXSksaD0oMCxhLnVzZUNhbGxiYWNrKSgoZT0+e2NvbnN0IG49dC5nZXRSb290RWxlbWVudCgpO251bGwhPT1uJiYobi5zZXRBdHRyaWJ1dGUoXCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnRcIixcInR5cGVhaGVhZC1pdGVtLVwiK2UpLGQoZSkpfSksW3RdKTtyZXR1cm4oMCxhLnVzZUVmZmVjdCkoKCgpPT4oKT0+e2NvbnN0IGU9dC5nZXRSb290RWxlbWVudCgpO251bGwhPT1lJiZlLnJlbW92ZUF0dHJpYnV0ZShcImFyaWEtYWN0aXZlZGVzY2VuZGFudFwiKX0pLFt0XSksQncoKCgpPT57bnVsbD09PW8/ZChudWxsKTpudWxsPT09dSYmaCgwKX0pLFtvLHUsaF0pLCgwLGEudXNlRWZmZWN0KSgoKCk9Plh4KHQucmVnaXN0ZXJDb21tYW5kKFV3LCgoe29wdGlvbjplfSk9PiEoIWUucmVmfHxudWxsPT1lLnJlZi5jdXJyZW50fHwoV3coZS5yZWYuY3VycmVudCksMCkpKSxjKSkpLFt0LGgsY10pLCgwLGEudXNlRWZmZWN0KSgoKCk9Plh4KHQucmVnaXN0ZXJDb21tYW5kKGJwLChlPT57Y29uc3Qgbj1lO2lmKG51bGwhPT1vJiZvLmxlbmd0aCYmbnVsbCE9PXUpe2NvbnN0IGU9dSE9PW8ubGVuZ3RoLTE/dSsxOjA7aChlKTtjb25zdCByPW9bZV07bnVsbCE9ci5yZWYmJnIucmVmLmN1cnJlbnQmJnQuZGlzcGF0Y2hDb21tYW5kKFV3LHtpbmRleDplLG9wdGlvbjpyfSksbi5wcmV2ZW50RGVmYXVsdCgpLG4uc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9cmV0dXJuITB9KSxjKSx0LnJlZ2lzdGVyQ29tbWFuZCh2cCwoZT0+e2NvbnN0IHQ9ZTtpZihudWxsIT09byYmby5sZW5ndGgmJm51bGwhPT11KXtjb25zdCBlPTAhPT11P3UtMTpvLmxlbmd0aC0xO2goZSk7Y29uc3Qgbj1vW2VdO251bGwhPW4ucmVmJiZuLnJlZi5jdXJyZW50JiZXdyhuLnJlZi5jdXJyZW50KSx0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1yZXR1cm4hMH0pLGMpLHQucmVnaXN0ZXJDb21tYW5kKGtwLCh0PT57Y29uc3Qgbj10O3JldHVybiBuLnByZXZlbnREZWZhdWx0KCksbi5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxlKCksITB9KSxjKSx0LnJlZ2lzdGVyQ29tbWFuZChDcCwoZT0+e2NvbnN0IHQ9ZTtyZXR1cm4gbnVsbCE9PW8mJm51bGwhPT11JiZudWxsIT1vW3VdJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksbShvW3VdKSwhMCl9KSxjKSx0LnJlZ2lzdGVyQ29tbWFuZCh4cCwoZT0+bnVsbCE9PW8mJm51bGwhPT11JiZudWxsIT1vW3VdJiYobnVsbCE9PWUmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSksbShvW3VdKSwhMCkpLGMpKSksW20sZSx0LG8sdSxoLGNdKSxpKG4sKDAsYS51c2VNZW1vKSgoKCk9Pih7b3B0aW9uczpvLHNlbGVjdE9wdGlvbkFuZENsZWFuVXA6bSxzZWxlY3RlZEluZGV4OnUsc2V0SGlnaGxpZ2h0ZWRJbmRleDpkfSkpLFttLHUsb10pLHIubWF0Y2g/ci5tYXRjaC5tYXRjaGluZ1N0cmluZzpcIlwiKX1mdW5jdGlvbiBZdyh7b3B0aW9uczplLG9uUXVlcnlDaGFuZ2U6dCxvblNlbGVjdE9wdGlvbjpuLG9uT3BlbjpyLG9uQ2xvc2U6byxtZW51UmVuZGVyRm46aSx0cmlnZ2VyRm46cyxhbmNob3JDbGFzc05hbWU6Yyxjb21tYW5kUHJpb3JpdHk6dT1GeCxwYXJlbnQ6ZH0pe2NvbnN0W2ZdPUpoKCksW20saF09KDAsYS51c2VTdGF0ZSkobnVsbCkscD1mdW5jdGlvbihlLHQsbixyPWRvY3VtZW50LmJvZHkpe2NvbnN0W29dPUpoKCksaT0oMCxhLnVzZVJlZikoZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSkscz0oMCxhLnVzZUNhbGxiYWNrKSgoKCk9PntpLmN1cnJlbnQuc3R5bGUudG9wPWkuY3VycmVudC5zdHlsZS5ib3R0b207Y29uc3QgdD1vLmdldFJvb3RFbGVtZW50KCkscz1pLmN1cnJlbnQsYT1zLmZpcnN0Q2hpbGQ7aWYobnVsbCE9PXQmJm51bGwhPT1lKXtjb25zdHtsZWZ0Om8sdG9wOmwsd2lkdGg6YyxoZWlnaHQ6dX09ZS5nZXRSZWN0KCksZD1pLmN1cnJlbnQub2Zmc2V0SGVpZ2h0O2lmKHMuc3R5bGUudG9wPWAke2wrd2luZG93LnBhZ2VZT2Zmc2V0K2QrM31weGAscy5zdHlsZS5sZWZ0PWAke28rd2luZG93LnBhZ2VYT2Zmc2V0fXB4YCxzLnN0eWxlLmhlaWdodD1gJHt1fXB4YCxzLnN0eWxlLndpZHRoPWAke2N9cHhgLG51bGwhPT1hKXthLnN0eWxlLnRvcD1gJHtsfWA7Y29uc3QgZT1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49ZS5oZWlnaHQscj1lLndpZHRoLGk9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtvK3I+aS5yaWdodCYmKHMuc3R5bGUubGVmdD1gJHtpLnJpZ2h0LXIrd2luZG93LnBhZ2VYT2Zmc2V0fXB4YCksKGwrbj53aW5kb3cuaW5uZXJIZWlnaHR8fGwrbj5pLmJvdHRvbSkmJmwtaS50b3A+bit1JiYocy5zdHlsZS50b3A9bC1uK3dpbmRvdy5wYWdlWU9mZnNldC11K1wicHhcIil9cy5pc0Nvbm5lY3RlZHx8KG51bGwhPW4mJihzLmNsYXNzTmFtZT1uKSxzLnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxcIixcIlR5cGVhaGVhZCBtZW51XCIpLHMuc2V0QXR0cmlidXRlKFwiaWRcIixcInR5cGVhaGVhZC1tZW51XCIpLHMuc2V0QXR0cmlidXRlKFwicm9sZVwiLFwibGlzdGJveFwiKSxzLnN0eWxlLmRpc3BsYXk9XCJibG9ja1wiLHMuc3R5bGUucG9zaXRpb249XCJhYnNvbHV0ZVwiLHIuYXBwZW5kKHMpKSxpLmN1cnJlbnQ9cyx0LnNldEF0dHJpYnV0ZShcImFyaWEtY29udHJvbHNcIixcInR5cGVhaGVhZC1tZW51XCIpfX0pLFtvLGUsbixyXSk7KDAsYS51c2VFZmZlY3QpKCgoKT0+e2NvbnN0IHQ9by5nZXRSb290RWxlbWVudCgpO2lmKG51bGwhPT1lKXJldHVybiBzKCksKCk9PntudWxsIT09dCYmdC5yZW1vdmVBdHRyaWJ1dGUoXCJhcmlhLWNvbnRyb2xzXCIpO2NvbnN0IGU9aS5jdXJyZW50O251bGwhPT1lJiZlLmlzQ29ubmVjdGVkJiZlLnJlbW92ZSgpfX0pLFtvLHMsZV0pO2NvbnN0IGw9KDAsYS51c2VDYWxsYmFjaykoKG49PntudWxsIT09ZSYmKG58fHQobnVsbCkpfSksW2UsdF0pO3JldHVybiBmdW5jdGlvbihlLHQsbixyKXtjb25zdFtvXT1KaCgpOygwLGEudXNlRWZmZWN0KSgoKCk9PntpZihudWxsIT10JiZudWxsIT1lKXtjb25zdCBlPW8uZ2V0Um9vdEVsZW1lbnQoKSxpPW51bGwhPWU/ZnVuY3Rpb24oZSl7bGV0IHQ9Z2V0Q29tcHV0ZWRTdHlsZShlKTtjb25zdCBuPVwiYWJzb2x1dGVcIj09PXQucG9zaXRpb24scj0vKGF1dG98c2Nyb2xsKS87aWYoXCJmaXhlZFwiPT09dC5wb3NpdGlvbilyZXR1cm4gZG9jdW1lbnQuYm9keTtmb3IobGV0IG89ZTtvPW8ucGFyZW50RWxlbWVudDspaWYodD1nZXRDb21wdXRlZFN0eWxlKG8pLCghbnx8XCJzdGF0aWNcIiE9PXQucG9zaXRpb24pJiZyLnRlc3QodC5vdmVyZmxvdyt0Lm92ZXJmbG93WSt0Lm92ZXJmbG93WCkpcmV0dXJuIG87cmV0dXJuIGRvY3VtZW50LmJvZHl9KGUpOmRvY3VtZW50LmJvZHk7bGV0IHM9ITEsYT1Wdyh0LGkpO2NvbnN0IGw9ZnVuY3Rpb24oKXtzfHwod2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24oKXtuKCkscz0hMX0pKSxzPSEwKTtjb25zdCBlPVZ3KHQsaSk7ZSE9PWEmJihhPWUsbnVsbCE9ciYmcihlKSl9LGM9bmV3IFJlc2l6ZU9ic2VydmVyKG4pO3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLG4pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixsLHtjYXB0dXJlOiEwLHBhc3NpdmU6ITB9KSxjLm9ic2VydmUodCksKCk9PntjLnVub2JzZXJ2ZSh0KSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLG4pLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixsLCEwKX19fSksW3QsbyxyLG4sZV0pfShlLGkuY3VycmVudCxzLGwpLGl9KG0saCxjLGQpLGc9KDAsYS51c2VDYWxsYmFjaykoKCgpPT57aChudWxsKSxudWxsIT1vJiZudWxsIT09bSYmbygpfSksW28sbV0pLHk9KDAsYS51c2VDYWxsYmFjaykoKGU9PntoKGUpLG51bGwhPXImJm51bGw9PT1tJiZyKGUpfSksW3IsbV0pO3JldHVybigwLGEudXNlRWZmZWN0KSgoKCk9Pntjb25zdCBlPWYucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcigoKCk9PntmLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKCk9Pntjb25zdCBlPWYuX3dpbmRvd3x8d2luZG93LG49ZS5kb2N1bWVudC5jcmVhdGVSYW5nZSgpLHI9SGIoKSxvPWZ1bmN0aW9uKGUpe2xldCB0PW51bGw7cmV0dXJuIGUuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgoKT0+e2NvbnN0IGU9SGIoKTtEYihlKSYmKHQ9ZnVuY3Rpb24oZSl7Y29uc3QgdD1lLmFuY2hvcjtpZihcInRleHRcIiE9PXQudHlwZSlyZXR1cm4gbnVsbDtjb25zdCBuPXQuZ2V0Tm9kZSgpO2lmKCFuLmlzU2ltcGxlVGV4dCgpKXJldHVybiBudWxsO2NvbnN0IHI9dC5vZmZzZXQ7cmV0dXJuIG4uZ2V0VGV4dENvbnRlbnQoKS5zbGljZSgwLHIpfShlKSl9KSksdH0oZik7aWYoIURiKHIpfHwhci5pc0NvbGxhcHNlZCgpfHxudWxsPT09b3x8bnVsbD09PW4pcmV0dXJuIHZvaWQgZygpO2NvbnN0IGk9cyhvLGYpO2lmKHQoaT9pLm1hdGNoaW5nU3RyaW5nOm51bGwpLG51bGwhPT1pJiYhZnVuY3Rpb24oZSx0KXtyZXR1cm4gMD09PXQmJmUuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgoKT0+e2NvbnN0IGU9SGIoKTtpZihEYihlKSl7Y29uc3QgdD1lLmFuY2hvci5nZXROb2RlKCkuZ2V0UHJldmlvdXNTaWJsaW5nKCk7cmV0dXJuIGtiKHQpJiZ0LmlzVGV4dEVudGl0eSgpfXJldHVybiExfSkpfShmLGkubGVhZE9mZnNldCkpe2NvbnN0IHQ9ZnVuY3Rpb24oZSx0LG4pe2NvbnN0IHI9bi5nZXRTZWxlY3Rpb24oKTtpZihudWxsPT09cnx8IXIuaXNDb2xsYXBzZWQpcmV0dXJuITE7Y29uc3Qgbz1yLmFuY2hvck5vZGUsaT1lLHM9ci5hbmNob3JPZmZzZXQ7aWYobnVsbD09b3x8bnVsbD09cylyZXR1cm4hMTt0cnl7dC5zZXRTdGFydChvLGkpLHQuc2V0RW5kKG8scyl9Y2F0Y2goZSl7cmV0dXJuITF9cmV0dXJuITB9KGkubGVhZE9mZnNldCxuLGUpO2lmKG51bGwhPT10KXJldHVybiBhPSgpPT55KHtnZXRSZWN0OigpPT5uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG1hdGNoOml9KSx2b2lkKHp3IGluIGwoKT9sKClbenddKGEpOmEoKSl9dmFyIGE7ZygpfSkpfSkpO3JldHVybigpPT57ZSgpfX0pLFtmLHMsdCxtLGcseV0pLG51bGw9PT1tfHxudWxsPT09Zj9udWxsOigwLG11LmpzeCkoJHcse2Nsb3NlOmcscmVzb2x1dGlvbjptLGVkaXRvcjpmLGFuY2hvckVsZW1lbnRSZWY6cCxvcHRpb25zOmUsbWVudVJlbmRlckZuOmksc2hvdWxkU3BsaXROb2RlV2l0aFF1ZXJ5OiEwLG9uU2VsZWN0T3B0aW9uOm4sY29tbWFuZFByaW9yaXR5OnV9KX1mdW5jdGlvbiBIdyhlKXtyZXR1cm4gSHc9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgZX0sSHcoZSl9ZnVuY3Rpb24gS3coZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfXZhciBxdz1mdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZVwic21cIjpyZXR1cm5cInhzXCI7Y2FzZVwibWRcIjpkZWZhdWx0OnJldHVyblwic21cIjtjYXNlXCJsZ1wiOnJldHVyblwibWRcIn19LEd3PWZ1bmN0aW9uKGUpe3ZhciB0PWUuZGF0YSxuPWUuYnkscj1lLnNpemUsbz1lLm5vZGVLZXksaT1mdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1uKXt2YXIgcixvLGkscyxhPVtdLGw9ITAsYz0hMTt0cnl7aWYoaT0obj1uLmNhbGwoZSkpLm5leHQsMD09PXQpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2w9ITF9ZWxzZSBmb3IoOyEobD0ocj1pLmNhbGwobikpLmRvbmUpJiYoYS5wdXNoKHIudmFsdWUpLGEubGVuZ3RoIT09dCk7bD0hMCk7fWNhdGNoKGUpe2M9ITAsbz1lfWZpbmFsbHl7dHJ5e2lmKCFsJiZudWxsIT1uLnJldHVybiYmKHM9bi5yZXR1cm4oKSxPYmplY3QocykhPT1zKSlyZXR1cm59ZmluYWxseXtpZihjKXRocm93IG99fXJldHVybiBhfX0oZSx0KXx8ZnVuY3Rpb24oZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gS3coZSx0KTt2YXIgbj17fS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVyblwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bj9BcnJheS5mcm9tKGUpOlwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9LdyhlLHQpOnZvaWQgMH19KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX0oSmgoKSwxKVswXSxzPSFpLmlzRWRpdGFibGUoKSxsPXQ7XCJvYmplY3RcIj09PUh3KHQpJiYobD10W25dKTt2YXIgYz0oMCxhLnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24oZSl7dmFyIHQ9b3kobyk7aWYoIXR8fCF0LmlzU2VsZWN0ZWQoKSlyZXR1cm4hMTt2YXIgbj0hMSxyPXQuZ2V0UHJldmlvdXNTaWJsaW5nKCk7cmV0dXJuIGt4KHIpJiYoci5zZWxlY3RFbmQoKSxuPSEwKSxrYihyKSYmKHIuc2VsZWN0KCksbj0hMCksUHgocikmJihyLnNlbGVjdE5leHQoKSxuPSEwKSxudWxsPT09ciYmKHQuc2VsZWN0UHJldmlvdXMoKSxuPSEwKSxuJiZlLnByZXZlbnREZWZhdWx0KCksbn0pLFtvXSksdT0oMCxhLnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24oZSl7dmFyIHQ9b3kobyk7aWYoIXR8fCF0LmlzU2VsZWN0ZWQoKSlyZXR1cm4hMTt2YXIgbj0hMSxyPXQuZ2V0TmV4dFNpYmxpbmcoKTtyZXR1cm4ga3gocikmJihyLnNlbGVjdFN0YXJ0KCksbj0hMCksa2IocikmJihyLnNlbGVjdCgwLDApLG49ITApLFB4KHIpJiYoci5zZWxlY3RQcmV2aW91cygpLG49ITApLG51bGw9PT1yJiYodC5zZWxlY3ROZXh0KCksbj0hMCksbiYmZS5wcmV2ZW50RGVmYXVsdCgpLG59KSxbb10pO3JldHVybigwLGEudXNlRWZmZWN0KSgoZnVuY3Rpb24oKXt2YXIgZT1YeChpLnJlZ2lzdGVyQ29tbWFuZChncCxjLEZ4KSxpLnJlZ2lzdGVyQ29tbWFuZChocCx1LEZ4KSk7cmV0dXJuIGZ1bmN0aW9uKCl7ZSgpfX0pLFtpLGMsdV0pLFJlYWN0LmNyZWF0ZUVsZW1lbnQoWm8se2NsYXNzTmFtZTpcImlubGluZS1mbGV4IG1yLTAuNVwiLHR5cGU6XCJyb3VuZGVkXCIsc2l6ZTpxdyhyKSxsYWJlbDpsLGljb246bnVsbCxjbG9zYWJsZTohMCxvbkNsb3NlOmZ1bmN0aW9uKGUpe2Uuc3RvcFByb3BhZ2F0aW9uKCksZS5wcmV2ZW50RGVmYXVsdCgpLHN8fGkudXBkYXRlKChmdW5jdGlvbigpe3ZhciBlPW95KG8pO2UmJmUucmVtb3ZlKCl9KSl9LGRpc2FibGVkOnN9KX07ZnVuY3Rpb24gWHcoZSl7cmV0dXJuIFh3PVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9LFh3KGUpfWZ1bmN0aW9uIFp3KGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHJTKHIua2V5KSxyKX19ZnVuY3Rpb24gSncoZSx0LG4pe3JldHVybiB0PWVTKHQpLGZ1bmN0aW9uKGUsdCl7aWYodCYmKFwib2JqZWN0XCI9PVh3KHQpfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0KSlyZXR1cm4gdDtpZih2b2lkIDAhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoXCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZFwiKTtyZXR1cm4gZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7cmV0dXJuIGV9KGUpfShlLFF3KCk/UmVmbGVjdC5jb25zdHJ1Y3QodCxufHxbXSxlUyhlKS5jb25zdHJ1Y3Rvcik6dC5hcHBseShlLG4pKX1mdW5jdGlvbiBRdygpe3RyeXt2YXIgZT0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKX1jYXRjaChlKXt9cmV0dXJuKFF3PWZ1bmN0aW9uKCl7cmV0dXJuISFlfSkoKX1mdW5jdGlvbiBlUyhlKXtyZXR1cm4gZVM9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSl9LGVTKGUpfWZ1bmN0aW9uIHRTKGUsdCl7cmV0dXJuIHRTPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuX19wcm90b19fPXQsZX0sdFMoZSx0KX1mdW5jdGlvbiBuUyhlLHQsbil7cmV0dXJuKHQ9clModCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9ZnVuY3Rpb24gclMoZSl7dmFyIHQ9ZnVuY3Rpb24oZSl7aWYoXCJvYmplY3RcIiE9WHcoZSl8fCFlKXJldHVybiBlO3ZhciB0PWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT10KXt2YXIgbj10LmNhbGwoZSxcInN0cmluZ1wiKTtpZihcIm9iamVjdFwiIT1YdyhuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIil9cmV0dXJuIFN0cmluZyhlKX0oZSk7cmV0dXJuXCJzeW1ib2xcIj09WHcodCk/dDp0K1wiXCJ9dmFyIG9TPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSxuLHIsbyl7dmFyIGk7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyx0KSxuUyhpPUp3KHRoaXMsdCxbb10pLFwiX19kYXRhXCIsdm9pZCAwKSxuUyhpLFwiX19ieVwiLHZvaWQgMCksblMoaSxcIl9fc2l6ZVwiLHZvaWQgMCksaS5fX2RhdGE9ZSxpLl9fYnk9bixpLl9fc2l6ZT1yLGl9cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdCYmbnVsbCE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcInByb3RvdHlwZVwiLHt3cml0YWJsZTohMX0pLHQmJnRTKGUsdCl9KHQsZSksZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZadyhlLnByb3RvdHlwZSx0KSxuJiZadyhlLG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwicHJvdG90eXBlXCIse3dyaXRhYmxlOiExfSksZX0odCxbe2tleTpcImNyZWF0ZURPTVwiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpfX0se2tleTpcInVwZGF0ZURPTVwiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuITF9fSx7a2V5OlwiZXhwb3J0RE9NXCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57ZWxlbWVudDpkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3BhblwiKX19fSx7a2V5OlwiZXhwb3J0SlNPTlwiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6dC5nZXRUeXBlKCksZGF0YTp0aGlzLl9fZGF0YSxieTp0aGlzLl9fYnksc2l6ZTp0aGlzLl9fc2l6ZSx2ZXJzaW9uOjF9fX0se2tleTpcImRlY29yYXRlXCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChHdyx7ZGF0YTp0aGlzLl9fZGF0YSxieTp0aGlzLl9fYnksc2l6ZTp0aGlzLl9fc2l6ZSxub2RlS2V5OnRoaXMuX19rZXl9KX19XSxbe2tleTpcImdldFR5cGVcIix2YWx1ZTpmdW5jdGlvbigpe3JldHVyblwibWVudGlvblwifX0se2tleTpcImNsb25lXCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KGUuX19kYXRhLGUuX19ieSxlLl9fc2l6ZSxlLl9fa2V5KX19LHtrZXk6XCJpbXBvcnRKU09OXCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGlTKGUuZGF0YSxlLmJ5LGUuc2l6ZSl9fV0pfShDeCksaVM9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuZXcgb1MoZSx0LG4pfSxzUz1vUztmdW5jdGlvbiBhUyhlKXtyZXR1cm4gYVM9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZcInN5bWJvbFwiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/XCJzeW1ib2xcIjp0eXBlb2YgZX0sYVMoZSl9ZnVuY3Rpb24gbFMoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsZFMoci5rZXkpLHIpfX1mdW5jdGlvbiBjUyhlLHQsbil7cmV0dXJuIHQmJmxTKGUucHJvdG90eXBlLHQpLG4mJmxTKGUsbiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm90b3R5cGVcIix7d3JpdGFibGU6ITF9KSxlfWZ1bmN0aW9uIHVTKGUsdCxuKXtyZXR1cm4odD1kUyh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBkUyhlKXt2YXIgdD1mdW5jdGlvbihlKXtpZihcIm9iamVjdFwiIT1hUyhlKXx8IWUpcmV0dXJuIGU7dmFyIHQ9ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXQpe3ZhciBuPXQuY2FsbChlLFwic3RyaW5nXCIpO2lmKFwib2JqZWN0XCIhPWFTKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKX1yZXR1cm4gU3RyaW5nKGUpfShlKTtyZXR1cm5cInN5bWJvbFwiPT1hUyh0KT90OnQrXCJcIn12YXIgZlM9Y1MoKGZ1bmN0aW9uIGUodCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyxlKSx1Uyh0aGlzLFwiZGF0YVwiLHZvaWQgMCksdVModGhpcyxcInJlZlwiLHtjdXJyZW50Om51bGx9KSx0aGlzLmRhdGE9dH0pKTtmdW5jdGlvbiBtUyhlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9dmFyIGhTPW5ldyBNYXAscFM9ZnVuY3Rpb24oZSx0LG4scil7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt2YXIgbz1lLmZpbHRlcigoZnVuY3Rpb24oZSl7dmFyIG47aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0LnRvTG93ZXJDYXNlKCkpO3ZhciBvPW51bGw9PWV8fG51bGw9PT0obj1lW3JdKXx8dm9pZCAwPT09bj92b2lkIDA6bi50b1N0cmluZygpO3JldHVybiEhbyYmby50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHQudG9Mb3dlckNhc2UoKSl9KSk7bihvKX0pLDUwMCl9LGdTPWZ1bmN0aW9uKGUsdCl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOlwibmFtZVwiLHI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG49bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9bil7dmFyIHIsbyxpLHMsYT1bXSxsPSEwLGM9ITE7dHJ5e2lmKGk9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtsPSExfWVsc2UgZm9yKDshKGw9KHI9aS5jYWxsKG4pKS5kb25lKSYmKGEucHVzaChyLnZhbHVlKSxhLmxlbmd0aCE9PXQpO2w9ITApO31jYXRjaChlKXtjPSEwLG89ZX1maW5hbGx5e3RyeXtpZighbCYmbnVsbCE9bi5yZXR1cm4mJihzPW4ucmV0dXJuKCksT2JqZWN0KHMpIT09cykpcmV0dXJufWZpbmFsbHl7aWYoYyl0aHJvdyBvfX1yZXR1cm4gYX19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG1TKGUsdCk7dmFyIG49e30udG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm5cIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4/QXJyYXkuZnJvbShlKTpcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/bVMoZSx0KTp2b2lkIDB9fShlLHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9KCgwLGEudXNlU3RhdGUpKFtdKSwyKSxvPXJbMF0saT1yWzFdO3JldHVybigwLGEudXNlRWZmZWN0KSgoZnVuY3Rpb24oKXtpZihudWxsIT09dCl7dmFyIHI9aFMuZ2V0KHQpO251bGwhPT1yJiYodm9pZCAwPT09cj8oaFMuc2V0KHQsbnVsbCkscFMoZSx0LChmdW5jdGlvbihlKXtoUy5zZXQodCxlKSxpKGUpfSksbikpOmkocikpfWVsc2UgaShbXSl9KSxbdF0pLG99LHlTPVtcInNpemVcIixcImNoaWxkcmVuXCIsXCJzZWxlY3RlZFwiLFwiY2xhc3NOYW1lXCJdO2Z1bmN0aW9uIHZTKCl7cmV0dXJuIHZTPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sdlMuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBiUz0oMCxhLmZvcndhcmRSZWYpKChmdW5jdGlvbihlLHQpe3ZhciBuPWUuc2l6ZSxyPWUuY2hpbGRyZW4sbz1lLnNlbGVjdGVkLGk9dm9pZCAwIT09byYmbyxzPWUuY2xhc3NOYW1lLGE9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluY2x1ZGVzKHIpKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLHQuaW5jbHVkZXMobil8fHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUseVMpO3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGlcIix2Uyh7cm9sZTpcIm9wdGlvblwiLHJlZjp0LGNsYXNzTmFtZTpvZShcIm0tMCB0ZXh0LXRleHQtcHJpbWFyeSBjdXJzb3ItcG9pbnRlclwiLEZ3W25dLGkmJlwiYmctYnV0dG9uLXRlcnRpYXJ5LWhvdmVyXCIscyl9LGEpLHIpfSkpO2JTLmRpc3BsYXlOYW1lPVwiSXRlbVwiO3ZhciB4Uz1PYmplY3QuYXNzaWduKChmdW5jdGlvbihlKXt2YXIgdD1lLnNpemUsbj1lLmNsYXNzTmFtZSxyPWUuY2hpbGRyZW47cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLHtyb2xlOlwibWVudVwiLGNsYXNzTmFtZTpvZShcImFic29sdXRlIGluc2V0LXgtMCB0b3AtZnVsbCBtdC0yIG14LTAgbWItMCB3LWZ1bGwgaC1hdXRvIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlbiB6LTEwIGJnLWJhY2tncm91bmQtcHJpbWFyeSBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ib3JkZXItc3VidGxlIHNoYWRvdy1sZ1wiLEx3W3RdLG4pfSxyKX0pLHtJdGVtOmJTfSk7ZnVuY3Rpb24gd1MoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG49bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9bil7dmFyIHIsbyxpLHMsYT1bXSxsPSEwLGM9ITE7dHJ5e2lmKGk9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtsPSExfWVsc2UgZm9yKDshKGw9KHI9aS5jYWxsKG4pKS5kb25lKSYmKGEucHVzaChyLnZhbHVlKSxhLmxlbmd0aCE9PXQpO2w9ITApO31jYXRjaChlKXtjPSEwLG89ZX1maW5hbGx5e3RyeXtpZighbCYmbnVsbCE9bi5yZXR1cm4mJihzPW4ucmV0dXJuKCksT2JqZWN0KHMpIT09cykpcmV0dXJufWZpbmFsbHl7aWYoYyl0aHJvdyBvfX1yZXR1cm4gYX19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIFNTKGUsdCk7dmFyIG49e30udG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm5cIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4/QXJyYXkuZnJvbShlKTpcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/U1MoZSx0KTp2b2lkIDB9fShlLHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gU1MoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfXZhciBrUz1mdW5jdGlvbihlKXt2YXIgdD1lLm9wdGlvbnNBcnJheSxuPWUuYnkscj12b2lkIDA9PT1uP1wibmFtZVwiOm4sbz1lLnNpemUsaT12b2lkIDA9PT1vP1wibWRcIjpvLHM9ZS50cmlnZ2VyLGw9dm9pZCAwPT09cz9cIkBcIjpzLGM9ZS5tZW51Q29tcG9uZW50LHU9dm9pZCAwPT09Yz94UzpjLGQ9ZS5tZW51SXRlbUNvbXBvbmVudCxmPXZvaWQgMD09PWQ/eFMuSXRlbTpkLG09ZS5hdXRvU3BhY2UsaD12b2lkIDA9PT1tfHxtLHA9KDAsYS51c2VSZWYpKCExKSxnPVwiXFxcXC4sXFxcXCtcXFxcKlxcXFw/XFxcXCRcXFxcQFxcXFx8I3t9XFxcXChcXFxcKVxcXFxeXFxcXC1cXFxcW1xcXFxdXFxcXFxcXFwvISUnXFxcIn49PD5fOjtcIix5PVtsXS5qb2luKFwiXCIpLHY9XCJbXlwiK3krZytcIlxcXFxzXVwiLGI9XCIoPzpcXFxcLlsgfCRdfCB8W1wiK2crXCJdfClcIix4PW5ldyBSZWdFeHAoXCIoXnxcXFxcc3xcXFxcKCkoW1wiLmNvbmNhdCh5LFwiXSgoPzpcIikuY29uY2F0KHYpLmNvbmNhdChiLFwiKXswLFwiKS5jb25jYXQoNzUsXCJ9KSkkXCIpKSx3PW5ldyBSZWdFeHAoXCIoXnxcXFxcc3xcXFxcKCkoW1wiLmNvbmNhdCh5LFwiXSgoPzpcIikuY29uY2F0KHYsXCIpezAsXCIpLmNvbmNhdCg1MCxcIn0pKSRcIikpLFM9d1MoSmgoKSwxKVswXSxrPXdTKCgwLGEudXNlU3RhdGUpKG51bGwpLDIpLEU9a1swXSxDPWtbMV0sXz1nUyh0LEUsciksUD0oMCxhLnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24oZSx0LG4pe1MudXBkYXRlKChmdW5jdGlvbigpe3ZhciBvPWlTKGUuZGF0YSxyLGkpO3QmJnQucmVwbGFjZShvKSxuKCl9KSl9KSxbU10pLE89KDAsYS51c2VNZW1vKSgoZnVuY3Rpb24oKXtyZXR1cm4gXy5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgZlMoZSl9KSl9KSxbUyxfXSksTj0oMCxhLnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24oZSl7aWYoIWgpcmV0dXJuITE7dmFyIHQ9ZS5rZXksbj1lLmN0cmxLZXkscj1lLm1ldGFLZXk7aWYobnx8cnx8XCIgXCI9PT10fHx0Lmxlbmd0aD4xfHxwLmN1cnJlbnQpcmV0dXJuIHAuY3VycmVudCYmKHAuY3VycmVudD0hMSksITE7dmFyIG89SGIoKSxpPW8uZm9jdXMscz1vLmFuY2hvcixhPXdTKG8uZ2V0Tm9kZXMoKSwxKVswXTtpZighc3x8IWl8fChudWxsPT1zP3ZvaWQgMDpzLmtleSkhPT0obnVsbD09aT92b2lkIDA6aS5rZXkpfHwobnVsbD09cz92b2lkIDA6cy5vZmZzZXQpIT09KG51bGw9PWk/dm9pZCAwOmkub2Zmc2V0KXx8IWEpcmV0dXJuITE7aWYoZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBvU30oYSkpe3ZhciBsPVNiKFwiIFwiKTthLmluc2VydEFmdGVyKGwpfX0pLFtTLGwsaF0pLFQ9KDAsYS51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKGUpe1wiQmFja3NwYWNlXCI9PT1lLmtleSYmKHAuY3VycmVudD0hMCl9KSxbcF0pO3JldHVybigwLGEudXNlRWZmZWN0KSgoZnVuY3Rpb24oKXtpZihTKXJldHVybiBYeChTLnJlZ2lzdGVyQ29tbWFuZChtcCxOLEZ4KSxTLnJlZ2lzdGVyQ29tbWFuZChTcCxULEZ4KSl9KSxbUyxOXSksUmVhY3QuY3JlYXRlRWxlbWVudChZdyx7b25RdWVyeUNoYW5nZTpDLG9uU2VsZWN0T3B0aW9uOlAsdHJpZ2dlckZuOmZ1bmN0aW9uKGUpe3ZhciB0PXguZXhlYyhlKTtpZihudWxsPT09dCYmKHQ9dy5leGVjKGUpKSxudWxsIT09dCl7dmFyIG49dFsxXSxyPXRbM107aWYoci5sZW5ndGg+PTApcmV0dXJue2xlYWRPZmZzZXQ6dC5pbmRleCtuLmxlbmd0aCxtYXRjaGluZ1N0cmluZzpyLHJlcGxhY2VhYmxlU3RyaW5nOnRbMl19fXJldHVybiBudWxsfSxvcHRpb25zOk8sbWVudVJlbmRlckZuOmZ1bmN0aW9uKGUsdCl7dmFyIG49dC5zZWxlY3RlZEluZGV4LG89dC5zZWxlY3RPcHRpb25BbmRDbGVhblVwLHM9dC5zZXRIaWdobGlnaHRlZEluZGV4O3JldHVybiBlLmN1cnJlbnQmJiEobnVsbD09T3x8IU8ubGVuZ3RoKSYmUmVhY3QuY3JlYXRlRWxlbWVudCh1LHtzaXplOml9LE8ubWFwKChmdW5jdGlvbihlLHQpe3ZhciBhO3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KGYse2tleTp0LHJlZjplLnJlZixzaXplOmksc2VsZWN0ZWQ6dD09PW4sb25Nb3VzZUVudGVyOmZ1bmN0aW9uKCl7cyh0KX0sb25DbGljazpmdW5jdGlvbigpe3JldHVybiBvKGUpfX0sXCJzdHJpbmdcIj09dHlwZW9mIGUuZGF0YT9lLmRhdGE6bnVsbD09PShhPWUuZGF0YSl8fHZvaWQgMD09PWE/dm9pZCAwOmFbcl0pfSkpKX19KX0sRVM9e2x0cjpcImx0clwiLHJ0bDpcInJ0bFwiLHBhcmFncmFwaDpcImVkaXRvci1wYXJhZ3JhcGhcIixxdW90ZTpcImVkaXRvci1xdW90ZVwiLGhlYWRpbmc6e2gxOlwiZWRpdG9yLWhlYWRpbmctaDFcIixoMjpcImVkaXRvci1oZWFkaW5nLWgyXCIsaDM6XCJlZGl0b3ItaGVhZGluZy1oM1wiLGg0OlwiZWRpdG9yLWhlYWRpbmctaDRcIixoNTpcImVkaXRvci1oZWFkaW5nLWg1XCIsaDY6XCJlZGl0b3ItaGVhZGluZy1oNlwifSxsaXN0OntuZXN0ZWQ6e2xpc3RpdGVtOlwiZWRpdG9yLW5lc3RlZC1saXN0aXRlbVwifSxvbDpcImVkaXRvci1saXN0LW9sXCIsdWw6XCJlZGl0b3ItbGlzdC11bFwiLGxpc3RpdGVtOlwiZWRpdG9yLWxpc3RJdGVtXCIsbGlzdGl0ZW1DaGVja2VkOlwiZWRpdG9yLWxpc3RJdGVtQ2hlY2tlZFwiLGxpc3RpdGVtVW5jaGVja2VkOlwiZWRpdG9yLWxpc3RJdGVtVW5jaGVja2VkXCJ9LGhhc2h0YWc6XCJlZGl0b3ItaGFzaHRhZ1wiLGltYWdlOlwiZWRpdG9yLWltYWdlXCIsbGluazpcImVkaXRvci1saW5rXCIsdGV4dDp7Ym9sZDpcImVkaXRvci10ZXh0Qm9sZFwiLGNvZGU6XCJlZGl0b3ItdGV4dENvZGVcIixpdGFsaWM6XCJlZGl0b3ItdGV4dEl0YWxpY1wiLHN0cmlrZXRocm91Z2g6XCJlZGl0b3ItdGV4dFN0cmlrZXRocm91Z2hcIixzdWJzY3JpcHQ6XCJlZGl0b3ItdGV4dFN1YnNjcmlwdFwiLHN1cGVyc2NyaXB0OlwiZWRpdG9yLXRleHRTdXBlcnNjcmlwdFwiLHVuZGVybGluZTpcImVkaXRvci10ZXh0VW5kZXJsaW5lXCIsdW5kZXJsaW5lU3RyaWtldGhyb3VnaDpcImVkaXRvci10ZXh0VW5kZXJsaW5lU3RyaWtldGhyb3VnaFwifSxjb2RlOlwiZWRpdG9yLWNvZGVcIixjb2RlSGlnaGxpZ2h0OnthdHJ1bGU6XCJlZGl0b3ItdG9rZW5BdHRyXCIsYXR0cjpcImVkaXRvci10b2tlbkF0dHJcIixib29sZWFuOlwiZWRpdG9yLXRva2VuUHJvcGVydHlcIixidWlsdGluOlwiZWRpdG9yLXRva2VuU2VsZWN0b3JcIixjZGF0YTpcImVkaXRvci10b2tlbkNvbW1lbnRcIixjaGFyOlwiZWRpdG9yLXRva2VuU2VsZWN0b3JcIixjbGFzczpcImVkaXRvci10b2tlbkZ1bmN0aW9uXCIsXCJjbGFzcy1uYW1lXCI6XCJlZGl0b3ItdG9rZW5GdW5jdGlvblwiLGNvbW1lbnQ6XCJlZGl0b3ItdG9rZW5Db21tZW50XCIsY29uc3RhbnQ6XCJlZGl0b3ItdG9rZW5Qcm9wZXJ0eVwiLGRlbGV0ZWQ6XCJlZGl0b3ItdG9rZW5Qcm9wZXJ0eVwiLGRvY3R5cGU6XCJlZGl0b3ItdG9rZW5Db21tZW50XCIsZW50aXR5OlwiZWRpdG9yLXRva2VuT3BlcmF0b3JcIixmdW5jdGlvbjpcImVkaXRvci10b2tlbkZ1bmN0aW9uXCIsaW1wb3J0YW50OlwiZWRpdG9yLXRva2VuVmFyaWFibGVcIixpbnNlcnRlZDpcImVkaXRvci10b2tlblNlbGVjdG9yXCIsa2V5d29yZDpcImVkaXRvci10b2tlbkF0dHJcIixuYW1lc3BhY2U6XCJlZGl0b3ItdG9rZW5WYXJpYWJsZVwiLG51bWJlcjpcImVkaXRvci10b2tlblByb3BlcnR5XCIsb3BlcmF0b3I6XCJlZGl0b3ItdG9rZW5PcGVyYXRvclwiLHByb2xvZzpcImVkaXRvci10b2tlbkNvbW1lbnRcIixwcm9wZXJ0eTpcImVkaXRvci10b2tlblByb3BlcnR5XCIscHVuY3R1YXRpb246XCJlZGl0b3ItdG9rZW5QdW5jdHVhdGlvblwiLHJlZ2V4OlwiZWRpdG9yLXRva2VuVmFyaWFibGVcIixzZWxlY3RvcjpcImVkaXRvci10b2tlblNlbGVjdG9yXCIsc3RyaW5nOlwiZWRpdG9yLXRva2VuU2VsZWN0b3JcIixzeW1ib2w6XCJlZGl0b3ItdG9rZW5Qcm9wZXJ0eVwiLHRhZzpcImVkaXRvci10b2tlblByb3BlcnR5XCIsdXJsOlwiZWRpdG9yLXRva2VuT3BlcmF0b3JcIix2YXJpYWJsZTpcImVkaXRvci10b2tlblZhcmlhYmxlXCJ9fSxDUz1mdW5jdGlvbihlKXt2YXIgdD1lLmNvbnRlbnQ7cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwicG9pbnRlci1ldmVudHMtbm9uZSBhYnNvbHV0ZSBpbnNldC0wIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnQgdGV4dC1maWVsZC1wbGFjZWhvbGRlclwifSx0KX07ZnVuY3Rpb24gX1MoZSl7Y29uc29sZS5lcnJvcihlKX12YXIgUFM9ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89ZS5kZWZhdWx0VmFsdWUsaT12b2lkIDA9PT1vP1wiXCI6byxzPWUucGxhY2Vob2xkZXIsbD12b2lkIDA9PT1zP1wiUHJlc3MgQCB0byB2aWV3IHZhcmlhYmxlIHN1Z2dlc3Rpb25zXCI6cyxjPWUub25DaGFuZ2UsdT1lLnNpemUsZD12b2lkIDA9PT11P1wibWRcIjp1LGY9ZS5hdXRvRm9jdXMsbT12b2lkIDAhPT1mJiZmLGg9ZS5vcHRpb25zLHA9dm9pZCAwPT09aD9bXTpoLGc9ZS5ieSx5PXZvaWQgMD09PWc/XCJuYW1lXCI6Zyx2PWUudHJpZ2dlcixiPXZvaWQgMD09PXY/XCJAXCI6dix4PWUubWVudUNvbXBvbmVudCx3PWUubWVudUl0ZW1Db21wb25lbnQsUz1lLmNsYXNzTmFtZSxrPWUud3JhcHBlckNsYXNzTmFtZSxFPWUuZGlzYWJsZWQsQz12b2lkIDAhPT1FJiZFLF89ZS5hdXRvU3BhY2VBZnRlck1lbnRpb24sUD12b2lkIDAhPT1fJiZfLE89e25hbWVzcGFjZTpcIkVkaXRvclwiLGVkaXRvclRoZW1lOkVTLG9uRXJyb3I6X1Msbm9kZXM6W3NTXSxlZGl0b3JTdGF0ZTppfHwne1xcbiAgICBcInJvb3RcIjoge1xcbiAgICAgICAgXCJjaGlsZHJlblwiOiBbXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICBcImNoaWxkcmVuXCI6IFtdLFxcbiAgICAgICAgICAgICAgICBcImRpcmVjdGlvblwiOiBudWxsLFxcbiAgICAgICAgICAgICAgICBcImZvcm1hdFwiOiBcIlwiLFxcbiAgICAgICAgICAgICAgICBcImluZGVudFwiOiAwLFxcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcXG4gICAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IDEsXFxuICAgICAgICAgICAgICAgIFwidGV4dEZvcm1hdFwiOiAwLFxcbiAgICAgICAgICAgICAgICBcInRleHRTdHlsZVwiOiBcIlwiXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgXSxcXG4gICAgICAgIFwiZGlyZWN0aW9uXCI6IG51bGwsXFxuICAgICAgICBcImZvcm1hdFwiOiBcIlwiLFxcbiAgICAgICAgXCJpbmRlbnRcIjogMCxcXG4gICAgICAgIFwidHlwZVwiOiBcInJvb3RcIixcXG4gICAgICAgIFwidmVyc2lvblwiOiAxXFxuICAgIH1cXG59JyxlZGl0YWJsZTohQ307cmV0dXJuKDAsYS5pc1ZhbGlkRWxlbWVudCkoeCkmJihuPXgpLCgwLGEuaXNWYWxpZEVsZW1lbnQpKHcpJiYocj13KSxSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShcInJlbGF0aXZlIHctZnVsbFwiLFwiZm9jdXMtd2l0aGluOnJpbmctMiBmb2N1cy13aXRoaW46cmluZy1vZmZzZXQtMiBob3Zlcjpib3JkZXItYm9yZGVyLXN0cm9uZyBmb2N1cy13aXRoaW46IWJvcmRlci1mb2N1cy1ib3JkZXIgZm9jdXMtd2l0aGluOnJpbmctZm9jdXMgdHJhbnNpdGlvbiBkdXJhdGlvbi0xNTAgZWFzZS1pbi1vdXQgb3V0bGluZSBvdXRsaW5lLTEgb3V0bGluZS1maWVsZC1ib3JkZXJcIixJd1tkXSxDJiZcImJnLWZpZWxkLXNlY29uZGFyeS1iYWNrZ3JvdW5kIGJvcmRlci1maWVsZC1ib3JkZXItZGlzYWJsZWQgaG92ZXI6Ym9yZGVyLWZpZWxkLWJvcmRlci1kaXNhYmxlZCBbJl9wXTp0ZXh0LWJhZGdlLWNvbG9yLWRpc2FibGVkIGN1cnNvci1ub3QtYWxsb3dlZFwiLGspfSxSZWFjdC5jcmVhdGVFbGVtZW50KCR4LHtpbml0aWFsQ29uZmlnOk99LFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwicmVsYXRpdmUgdy1mdWxsIFsmX3BdOm0tMFwifSxSZWFjdC5jcmVhdGVFbGVtZW50KGZ3LHtjb250ZW50RWRpdGFibGU6UmVhY3QuY3JlYXRlRWxlbWVudCh5dyx7Y2xhc3NOYW1lOm9lKFwiZWRpdG9yLWNvbnRlbnQgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgb3V0bGluZS1ub25lXCIsXCJ3LWZ1bGwgWyY+cF06dy1mdWxsIFsmPnBdOm0tMFwiLFMpfSkscGxhY2Vob2xkZXI6UmVhY3QuY3JlYXRlRWxlbWVudChDUyx7Y29udGVudDpsfSksRXJyb3JCb3VuZGFyeTpSd30pKSxSZWFjdC5jcmVhdGVFbGVtZW50KE93LG51bGwpLFJlYWN0LmNyZWF0ZUVsZW1lbnQoa1Mse21lbnVDb21wb25lbnQ6bixtZW51SXRlbUNvbXBvbmVudDpyLHNpemU6ZCxieTp5LG9wdGlvbnNBcnJheTpwLHRyaWdnZXI6YixhdXRvU3BhY2U6UH0pLFJlYWN0LmNyZWF0ZUVsZW1lbnQoancse29uQ2hhbmdlOmZ1bmN0aW9uKGUsdCl7XCJmdW5jdGlvblwiPT10eXBlb2YgYyYmYyhlLHQpfSxpZ25vcmVTZWxlY3Rpb25DaGFuZ2U6ITB9KSx0JiZSZWFjdC5jcmVhdGVFbGVtZW50KEF3LHtlZGl0b3JSZWY6dH0pLG0mJlJlYWN0LmNyZWF0ZUVsZW1lbnQoUWgsbnVsbCkpKX0sT1M9KDAsYS5mb3J3YXJkUmVmKShQUyk7T1MuZGlzcGxheU5hbWU9XCJFZGl0b3JJbnB1dFwiO3ZhciBOUz1PUztjb25zdCBUUz1rZShcIlBsdXNcIixbW1wicGF0aFwiLHtkOlwiTTUgMTJoMTRcIixrZXk6XCIxYXlzMGhcIn1dLFtcInBhdGhcIix7ZDpcIk0xMiA1djE0XCIsa2V5OlwiczY5OWxlXCJ9XV0pO3ZhciBNUz1mdW5jdGlvbihlLHQpe3JldHVybiBvZShcInJvdW5kZWQtZnVsbCB0ZXh0LWJyYW5kLXByaW1hcnktNjAwIHRyYW5zaXRpb24tY29sb3JzIGR1cmF0aW9uLTMwMFwiLGVbdF0uZG90LGVbdF0ucmluZyl9LFJTPVtcInZhcmlhbnRcIixcInNpemVcIixcInR5cGVcIixcImN1cnJlbnRTdGVwXCIsXCJjaGlsZHJlblwiLFwiY2xhc3NOYW1lXCIsXCJsaW5lUHJvcHNcIl0sRFM9W1wibGFiZWxUZXh0XCIsXCJpY29uXCIsXCJzdGVwQ2xhc3Nlc1wiLFwiaXNDdXJyZW50XCIsXCJpc0NvbXBsZXRlZFwiLFwiY2xhc3NOYW1lXCIsXCJ0eXBlXCIsXCJ2YXJpYW50XCIsXCJzaXplQ2xhc3Nlc1wiLFwic2l6ZVwiLFwiaXNMYXN0XCIsXCJpbmRleFwiLFwibGluZVByb3BzXCJdO2Z1bmN0aW9uIGpTKCl7cmV0dXJuIGpTPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0salMuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIEFTKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmNsdWRlcyhyKSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8aS5sZW5ndGg7cisrKW49aVtyXSx0LmluY2x1ZGVzKG4pfHx7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfXZhciBJUz1mdW5jdGlvbihlKXt2YXIgdD1lLnZhcmlhbnQsbj12b2lkIDA9PT10P1wiZG90XCI6dCxyPWUuc2l6ZSxvPXZvaWQgMD09PXI/XCJzbVwiOnIsaT1lLnR5cGUscz12b2lkIDA9PT1pP1wiaW5saW5lXCI6aSxhPWUuY3VycmVudFN0ZXAsYz12b2lkIDA9PT1hPzE6YSx1PWUuY2hpbGRyZW4sZD1lLmNsYXNzTmFtZSxmPWUubGluZVByb3BzLG09dm9pZCAwPT09Zj9cIm1pbi13LTEwXCI6ZixoPUFTKGUsUlMpLHA9bCgpLkNoaWxkcmVuLmNvdW50KHUpLGc9e3NtOntkb3Q6XCJzaXplLTIuNVwiLHJpbmc6XCJzaXplLTVcIixudW1iZXJJY29uOlwic2l6ZS01IHRleHQtdGlueVwiLGljb246XCJzaXplLTVcIixsYWJlbDpcInRleHQteHNcIn0sbWQ6e2RvdDpcInNpemUtM1wiLHJpbmc6XCJzaXplLTZcIixudW1iZXJJY29uOlwic2l6ZS02IHRleHQtc21cIixpY29uOlwic2l6ZS02XCIsbGFiZWw6XCJ0ZXh0LXNtXCJ9LGxnOntkb3Q6XCJzaXplLTMuNVwiLHJpbmc6XCJzaXplLTdcIixudW1iZXJJY29uOlwic2l6ZS03IHRleHQtbWRcIixpY29uOlwic2l6ZS03XCIsbGFiZWw6XCJ0ZXh0LXNtXCJ9fSx5PWwoKS5DaGlsZHJlbi5tYXAodSwoZnVuY3Rpb24oZSx0KXt2YXIgcj17aXNDb21wbGV0ZWQ6dCsxPGMsaXNDdXJyZW50OnQrMT09PWMsc2l6ZUNsYXNzZXM6ZyxzaXplOm8sdmFyaWFudDpuLHR5cGU6cyxpc0xhc3Q6dCsxPT09cCxpbmRleDp0LGxpbmVQcm9wczptfTtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQobCgpLkZyYWdtZW50LHtrZXk6dH0sbCgpLmNsb25lRWxlbWVudChlLHIpKX0pKTtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIixqUyh7Y2xhc3NOYW1lOm9lKFwiZmxleCB3LWZ1bGxcIixkLFwiaW5saW5lXCI9PT1zP1wiaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiOlwiXCIpfSxoKSx5KX0sTFM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5sYWJlbFRleHQsbj12b2lkIDA9PT10P1wiXCI6dCxyPWUuaWNvbixvPXZvaWQgMD09PXI/bCgpLmNyZWF0ZUVsZW1lbnQoVFMsbnVsbCk6cixpPShlLnN0ZXBDbGFzc2VzLGUuaXNDdXJyZW50KSxzPWUuaXNDb21wbGV0ZWQsYT1lLmNsYXNzTmFtZSxjPWUudHlwZSx1PWUudmFyaWFudCxkPWUuc2l6ZUNsYXNzZXMsZj1lLnNpemUsbT1lLmlzTGFzdCxoPWUuaW5kZXgscD1lLmxpbmVQcm9wcyxnPUFTKGUsRFMpLHk9RlModSxzLGksZCxmLG8saCksdj17bGc6XCJsZWZ0LVtjYWxjKDUwJSsxNHB4KV0gcmlnaHQtW2NhbGMoLTUwJSsxNHB4KV1cIixtZDpcImxlZnQtW2NhbGMoNTAlKzEycHgpXSByaWdodC1bY2FsYygtNTAlKzEycHgpXVwiLHNtOlwibGVmdC1bY2FsYyg1MCUrMTBweCldIHJpZ2h0LVtjYWxjKC01MCUrMTBweCldXCJ9LGI9e2xnOlwidG9wLTMuNVwiLG1kOlwidG9wLTNcIixzbTpcInRvcC0yLjVcIn0seD1mdW5jdGlvbigpe2lmKG4pe3ZhciBlPW9lKGRbZl0ubGFiZWwsXCJ0ZXh0LXRleHQtdGVydGlhcnlcIixpP1widGV4dC1icmFuZC1wcmltYXJ5LTYwMFwiOlwiXCIsXCJicmVhay13b3JkXCIsXCJzdGFja1wiPT09Yz9cIm10LTIgdHJhbnNmb3JtIG1heC13LXhzXCI6XCJteC0yIG1heC13LTMyXCIpO3JldHVybiBsKCkuY3JlYXRlRWxlbWVudChcInNwYW5cIix7Y2xhc3NOYW1lOmV9LG4pfXJldHVybiBudWxsfSx3PWZ1bmN0aW9uKCl7aWYoIW0pe3ZhciBlPW9lKFwiYmxvY2tcIixzP1wiYm9yZGVyLWJyYW5kLXByaW1hcnktNjAwXCI6XCJib3JkZXItYm9yZGVyLXN1YnRsZVwiLHApO3JldHVyblwic3RhY2tcIj09PWM/bCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKFwicmVsYXRpdmVcIixcImZsZXhcIixcImJvcmRlci1zb2xpZFwiLFwiYm9yZGVyLXlcIixcImFic29sdXRlXCIscz9cImJvcmRlci1icmFuZC1wcmltYXJ5LTYwMFwiOlwiYm9yZGVyLWJvcmRlci1zdWJ0bGVcIixiW2ZdLHZbZl0pfSxsKCkuY3JlYXRlRWxlbWVudChcInNwYW5cIix7Y2xhc3NOYW1lOlwiYmxvY2tcIn0pKTpsKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJmbGV4LTFcIn0sbCgpLmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2NsYXNzTmFtZTpvZShlLFwibXItMiBib3JkZXIteSBib3JkZXItc29saWRcIiwhbiYmXCJtbC0yXCIpfSkpfXJldHVybiBudWxsfTtyZXR1cm5cInN0YWNrXCI9PT1jP2woKS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcInJlbGF0aXZlIGZsZXgtMSBqdXN0aWZ5LWNlbnRlclwifSxsKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLGpTKHtjbGFzc05hbWU6b2UoXCJmbGV4IGl0ZW1zLWNlbnRlciBmbGV4LWNvbFwiLGEpfSxnKSx5LHgoKSksdygpKTpsKCkuY3JlYXRlRWxlbWVudChsKCkuRnJhZ21lbnQsbnVsbCxsKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLGpTKHtjbGFzc05hbWU6b2UoXCJmbGV4IGl0ZW1zLWNlbnRlclwiLGEpfSxnKSx5LHgoKSksdygpKX07TFMuZGlzcGxheU5hbWU9XCJQcm9ncmVzc1N0ZXBzLlN0ZXBcIjt2YXIgRlM9ZnVuY3Rpb24oZSx0LG4scixvLGkscyl7aWYodClyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoQ2Use2NsYXNzTmFtZTpNUyhyLG8pfSk7dmFyIGE9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBvZShcInJlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIHJvdW5kZWQtZnVsbCBqdXN0aWZ5LWNlbnRlciB0cmFuc2l0aW9uLWNvbG9ycyB6LTEwIGR1cmF0aW9uLTUwMCByaW5nLTFcIixlP1wicmluZy1icmFuZC1wcmltYXJ5LTYwMFwiOlwicmluZy1ib3JkZXItc3VidGxlXCIsdFtuXS5yaW5nKX0obixyLG8pLGM9ZnVuY3Rpb24oZSx0LG4scil7dmFyIG89XCJhYnNvbHV0ZSByb3VuZGVkLWZ1bGwgdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tNTAwIFwiLmNvbmNhdChuW3JdLmRvdCk7cmV0dXJuXCJkb3RcIj09PWU/b2UobyxuW3JdLmRvdCx0P1wiYmctYnJhbmQtcHJpbWFyeS02MDBcIjpcImJnLXRleHQtdGVydGlhcnlcIik6XCJudW1iZXJcIj09PWU/b2UobyxuW3JdLmRvdCx0P1widGV4dC1icmFuZC1wcmltYXJ5LTYwMFwiOlwidGV4dC10ZXh0LXRlcnRpYXJ5XCIsXCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiKTpcImljb25cIj09PWU/b2Uobyx0P1widGV4dC1icmFuZC1wcmltYXJ5LTYwMFwiOlwidGV4dC10ZXh0LXRlcnRpYXJ5XCIsXCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiKTpcIlwifShlLG4scixvKSx1PW51bGw7cmV0dXJuXCJudW1iZXJcIj09PWU/dT1zKzE6XCJpY29uXCI9PT1lJiZpJiYodT1pKSxsKCkuY3JlYXRlRWxlbWVudChcInNwYW5cIix7Y2xhc3NOYW1lOmF9LGwoKS5jcmVhdGVFbGVtZW50KFwic3BhblwiLHtjbGFzc05hbWU6Y30sdSkpfTtJUy5TdGVwPUxTO3ZhciB6Uz1JUyxCUz1bXCJ2YXJpYW50XCIsXCJjbGFzc05hbWVcIl07ZnVuY3Rpb24gV1MoKXtyZXR1cm4gV1M9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxXUy5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIFZTPWZ1bmN0aW9uKGUpe3ZhciB0LG4scj1lLnZhcmlhbnQsbz12b2lkIDA9PT1yP1wicmVjdGFuZ3VsYXJcIjpyLGk9ZS5jbGFzc05hbWUscz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5jbHVkZXMocikpY29udGludWU7bltyXT1lW3JdfXJldHVybiBufShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKyluPWlbcl0sdC5pbmNsdWRlcyhuKXx8e30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb30oZSxCUyksYT1udWxsPT09KHQ9e2NpcmN1bGFyOlwicm91bmRlZC1mdWxsIGJnLWdyYXktMjAwIFwiLHJlY3Rhbmd1bGFyOlwicm91bmRlZC1tZCBiZy1ncmF5LTIwMFwifSl8fHZvaWQgMD09PXQ/dm9pZCAwOnRbb10sYz1udWxsPT09KG49e2NpcmN1bGFyOlwic2l6ZS0xMFwiLHJlY3Rhbmd1bGFyOlwidy05NiBoLTNcIn0pfHx2b2lkIDA9PT1uP3ZvaWQgMDpuW29dO3JldHVybiBsKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLFdTKHtjbGFzc05hbWU6b2UoYSxcImFuaW1hdGUtcHVsc2VcIixjLGkpfSxzKSl9O2Z1bmN0aW9uIFVTKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW4pe3ZhciByLG8saSxzLGE9W10sbD0hMCxjPSExO3RyeXtpZihpPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47bD0hMX1lbHNlIGZvcig7IShsPShyPWkuY2FsbChuKSkuZG9uZSkmJihhLnB1c2goci52YWx1ZSksYS5sZW5ndGghPT10KTtsPSEwKTt9Y2F0Y2goZSl7Yz0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWwmJm51bGwhPW4ucmV0dXJuJiYocz1uLnJldHVybigpLE9iamVjdChzKSE9PXMpKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgb319cmV0dXJuIGF9fShlLHQpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiAkUyhlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uP0FycmF5LmZyb20oZSk6XCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pPyRTKGUsdCk6dm9pZCAwfX0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uICRTKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn12YXIgWVM9KDAsYS5jcmVhdGVDb250ZXh0KSgpLEhTPWZ1bmN0aW9uKCl7cmV0dXJuKDAsYS51c2VDb250ZXh0KShZUyl9LEtTPWZ1bmN0aW9uKGUpe3ZhciB0PWUuc2l6ZSxuPXZvaWQgMD09PXQ/XCJtZFwiOnQscj1lLmNoaWxkcmVuLG89ZS5jbGFzc05hbWU7cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KFlTLlByb3ZpZGVyLHt2YWx1ZTp7c2l6ZTpufX0sbCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKFwiZmxleCBmbGV4LWNvbCBiZy1iYWNrZ3JvdW5kLXByaW1hcnkgcC0yXCIsbyl9LHIpKX07S1MuZGlzcGxheU5hbWU9XCJNZW51XCI7dmFyIHFTPWZ1bmN0aW9uKGUpe3ZhciB0LG4scj1lLmhlYWRpbmcsbz1lLmFycm93LGk9dm9pZCAwIT09byYmbyxzPWUuc2hvd0Fycm93T25Ib3ZlcixjPXZvaWQgMD09PXN8fHMsdT1lLm9wZW4sZD12b2lkIDA9PT11fHx1LGY9ZS5vbkNsaWNrLG09ZS5jaGlsZHJlbixoPWUuY2xhc3NOYW1lLHA9VVMoKDAsYS51c2VTdGF0ZSkoZCksMiksZz1wWzBdLHk9cFsxXSx2PVVTKCgwLGEudXNlU3RhdGUpKCExKSwyKSxiPXZbMF0seD12WzFdLHc9SFMoKS5zaXplLFM9bnVsbD09PSh0PXtzbTpcInRleHQteHNcIixtZDpcInRleHQtc21cIn0pfHx2b2lkIDA9PT10P3ZvaWQgMDp0W3ddLGs9bnVsbD09PShuPXtzbTpcIlsmPnN2Z106c2l6ZS00XCIsbWQ6XCJbJj5zdmddOnNpemUtNVwifSl8fHZvaWQgMD09PW4/dm9pZCAwOm5bd10sRT1mdW5jdGlvbigpe3koIWcpLGYmJmYoIWcpfTtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIixudWxsLGwoKS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse3JvbGU6XCJidXR0b25cIix0YWJJbmRleDpcIjBcIixvbkNsaWNrOkUsb25LZXlEb3duOmZ1bmN0aW9uKGUpe1wiRW50ZXJcIiE9PWUua2V5JiZcIiBcIiE9PWUua2V5fHxFKCl9LG9uTW91c2VFbnRlcjpmdW5jdGlvbigpe3JldHVybiBjJiZ4KCEwKX0sb25Nb3VzZUxlYXZlOmZ1bmN0aW9uKCl7cmV0dXJuIGMmJngoITEpfSxjbGFzc05hbWU6b2UoXCJ0ZXh0LXRleHQtcHJpbWFyeSBiZy10cmFuc3BhcmVudCBjdXJzb3ItcG9pbnRlciBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgZ2FwLTFcIixTLHI/XCJwLTFcIjpcInAtMFwiLGgpLFwiYXJpYS1leHBhbmRlZFwiOmd9LGwoKS5jcmVhdGVFbGVtZW50KFwic3BhblwiLHtjbGFzc05hbWU6XCJ0ZXh0LXRleHQtdGVydGlhcnlcIn0sciksaSYmbCgpLmNyZWF0ZUVsZW1lbnQoZW0uc3Bhbix7dmFyaWFudHM6e29wZW46e3JvdGF0ZToxODB9LGNsb3NlZDp7cm90YXRlOjB9fSxhbmltYXRlOmc/XCJvcGVuXCI6XCJjbG9zZWRcIix0cmFuc2l0aW9uOntkdXJhdGlvbjouMTV9LGNsYXNzTmFtZTpvZShcImZsZXggaXRlbXMtY2VudGVyIHRleHQtYm9yZGVyLXN0cm9uZ1wiLGspfSxsKCkuY3JlYXRlRWxlbWVudChlbS5kaXYse2luaXRpYWw6XCJoaWRkZW5cIixhbmltYXRlOmd8fGI/XCJ2aXNpYmxlXCI6XCJoaWRkZW5cIixleGl0OlwiaGlkZGVuXCIsdmFyaWFudHM6e3Zpc2libGU6e29wYWNpdHk6MX0saGlkZGVuOntvcGFjaXR5OjB9fSx0cmFuc2l0aW9uOntkdXJhdGlvbjouMTV9fSxsKCkuY3JlYXRlRWxlbWVudChjbSxudWxsKSkpKSxsKCkuY3JlYXRlRWxlbWVudChvaCx7aW5pdGlhbDohMX0sZyYmbCgpLmNyZWF0ZUVsZW1lbnQoZW0udWwse3ZhcmlhbnRzOntvcGVuOntoZWlnaHQ6XCJhdXRvXCIsb3BhY2l0eToxfSxjbG9zZWQ6e2hlaWdodDowLG9wYWNpdHk6MH19LGluaXRpYWw6XCJjbG9zZWRcIixhbmltYXRlOlwib3BlblwiLGV4aXQ6XCJjbG9zZWRcIix0cmFuc2l0aW9uOntkdXJhdGlvbjouMyxlYXNlOlwiZWFzZUluT3V0XCJ9LGNsYXNzTmFtZTpcIm92ZXJmbG93IGZsZXggZ2FwLTAuNSBmbGV4LWNvbCBtLTAgYmctd2hpdGUgcm91bmRlZCBwLTBcIn0sbSkpKX07cVMuZGlzcGxheU5hbWU9XCJNZW51Lkxpc3RcIjt2YXIgR1M9ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLmRpc2FibGVkLHI9dm9pZCAwIT09biYmbixvPWUuYWN0aXZlLGk9ZS5vbkNsaWNrLHM9ZS5jaGlsZHJlbixhPWUuY2xhc3NOYW1lLGM9SFMoKS5zaXplLHU9bnVsbD09PSh0PXtzbTpcIlsmPnN2Z106c2l6ZS00IFsmPnN2Z106bS0xIFsmPio6bm90KHN2ZyldOm14LTEgWyY+Kjpub3Qoc3ZnKV06bXktMC41IHRleHQtc21cIixtZDpcIlsmPnN2Z106c2l6ZS01IFsmPnN2Z106bS0xLjUgWyY+Kjpub3Qoc3ZnKV06bS0xIHRleHQtYmFzZVwifSl8fHZvaWQgMD09PXQ/dm9pZCAwOnRbY10sZD1yP1widGV4dC10ZXh0LWRpc2FibGVkIGhvdmVyOnRleHQtdGV4dC1kaXNhYmxlZCBjdXJzb3Itbm90LWFsbG93ZWQgaG92ZXI6YmctdHJhbnNwYXJlbnRcIjpcIlwiLGY9bz9cInRleHQtaWNvbi1wcmltYXJ5IFsmPnN2Z106dGV4dC1pY29uLWludGVyYWN0aXZlIGJnLWJhY2tncm91bmQtc2Vjb25kYXJ5XCI6XCJcIjtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoXCJsaVwiLHtyb2xlOlwibWVudWl0ZW1cIix0YWJJbmRleDpcIjBcIixvbkNsaWNrOmksb25LZXlEb3duOmZ1bmN0aW9uKGUpe1wiRW50ZXJcIiE9PWUua2V5JiZcIiBcIiE9PWUua2V5fHxpKCl9LGNsYXNzTmFtZTpvZShcImZsZXggcC0xIGdhcC0xIGl0ZW1zLWNlbnRlciBiZy10cmFuc3BhcmVudCBib3JkZXItbm9uZSByb3VuZGVkIHRleHQtdGV4dC1zZWNvbmRhcnkgY3Vyc29yLXBvaW50ZXIgbS0wXCIsdSxcImhvdmVyOmJnLWJhY2tncm91bmQtc2Vjb25kYXJ5IGhvdmVyOnRleHQtdGV4dC1wcmltYXJ5XCIsZCxmLFwidHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMzAwIGVhc2UtaW4tb3V0XCIsYSl9LHMpfTtHUy5kaXNwbGF5TmFtZT1cIk1lbnUuSXRlbVwiO3ZhciBYUz1mdW5jdGlvbihlKXt2YXIgdCxuPWUudmFyaWFudCxyPXZvaWQgMD09PW4/XCJzb2xpZFwiOm4sbz1lLmNsYXNzTmFtZSxpPW51bGw9PT0odD17c29saWQ6XCJib3JkZXItc29saWRcIixkYXNoZWQ6XCJib3JkZXItZGFzaGVkXCIsZG90dGVkOlwiYm9yZGVyLWRvdHRlZFwiLGRvdWJsZTpcImJvcmRlci1kb3VibGVcIixoaWRkZW46XCJib3JkZXItaGlkZGVuXCIsbm9uZTpcImJvcmRlci1ub25lXCJ9KXx8dm9pZCAwPT09dD92b2lkIDA6dFtyXTtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQobCgpLkZyYWdtZW50LG51bGwsbCgpLmNyZWF0ZUVsZW1lbnQoXCJoclwiLHtjbGFzc05hbWU6b2UoXCJ3LWZ1bGwgYm9yZGVyLTAgYm9yZGVyLXQgYm9yZGVyLWJvcmRlci1zdWJ0bGVcIixpLG8pfSkpfTtYUy5kaXNwbGF5TmFtZT1cIk1lbnUuU2VwYXJhdG9yXCI7dmFyIFpTPU9iamVjdC5hc3NpZ24oS1Mse0xpc3Q6cVMsSXRlbTpHUyxTZXBhcmF0b3I6WFN9KTtjb25zdCBKUz1rZShcIlBhbmVsTGVmdE9wZW5cIixbW1wicmVjdFwiLHt3aWR0aDpcIjE4XCIsaGVpZ2h0OlwiMThcIix4OlwiM1wiLHk6XCIzXCIscng6XCIyXCIsa2V5OlwiYWZpdHY3XCJ9XSxbXCJwYXRoXCIse2Q6XCJNOSAzdjE4XCIsa2V5OlwiZmgzaHFhXCJ9XSxbXCJwYXRoXCIse2Q6XCJtMTQgOSAzIDMtMyAzXCIsa2V5OlwiODAxMGVlXCJ9XV0pLFFTPWtlKFwiUGFuZWxMZWZ0Q2xvc2VcIixbW1wicmVjdFwiLHt3aWR0aDpcIjE4XCIsaGVpZ2h0OlwiMThcIix4OlwiM1wiLHk6XCIzXCIscng6XCIyXCIsa2V5OlwiYWZpdHY3XCJ9XSxbXCJwYXRoXCIse2Q6XCJNOSAzdjE4XCIsa2V5OlwiZmgzaHFhXCJ9XSxbXCJwYXRoXCIse2Q6XCJtMTYgMTUtMy0zIDMtM1wiLGtleTpcIjE0eTk5elwifV1dKTt2YXIgZWs9W1wiY2hpbGRyZW5cIixcImNsYXNzTmFtZVwiLFwib25Db2xsYXBzZUNoYW5nZVwiLFwiY29sbGFwc2libGVcIixcInNjcmVlbkhlaWdodFwiLFwiYm9yZGVyT25cIl07ZnVuY3Rpb24gdGsoKXtyZXR1cm4gdGs9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSx0ay5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbmsoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfXZhciByaz0oMCxhLmNyZWF0ZUNvbnRleHQpKCksb2s9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jaGlsZHJlbixuPWUuY2xhc3NOYW1lLHI9ZS5vbkNvbGxhcHNlQ2hhbmdlLG89ZS5jb2xsYXBzaWJsZSxpPXZvaWQgMD09PW98fG8scz1lLnNjcmVlbkhlaWdodCxjPXZvaWQgMD09PXN8fHMsdT1lLmJvcmRlck9uLGQ9dm9pZCAwPT09dXx8dSxmPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmNsdWRlcyhyKSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8aS5sZW5ndGg7cisrKW49aVtyXSx0LmluY2x1ZGVzKG4pfHx7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfShlLGVrKSxtPSgwLGEudXNlUmVmKShudWxsKSxoPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW4pe3ZhciByLG8saSxzLGE9W10sbD0hMCxjPSExO3RyeXtpZihpPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47bD0hMX1lbHNlIGZvcig7IShsPShyPWkuY2FsbChuKSkuZG9uZSkmJihhLnB1c2goci52YWx1ZSksYS5sZW5ndGghPT10KTtsPSEwKTt9Y2F0Y2goZSl7Yz0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWwmJm51bGwhPW4ucmV0dXJuJiYocz1uLnJldHVybigpLE9iamVjdChzKSE9PXMpKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgb319cmV0dXJuIGF9fShlLHQpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBuayhlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uP0FycmF5LmZyb20oZSk6XCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP25rKGUsdCk6dm9pZCAwfX0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfSgoMCxhLnVzZVN0YXRlKSgoZnVuY3Rpb24oKXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInNpZGViYXItY29sbGFwc2VkXCIpLHQ9d2luZG93LmlubmVyV2lkdGg8MTI4MDtyZXR1cm4gZT9KU09OLnBhcnNlKGUpOnR9KSksMikscD1oWzBdLGc9aFsxXTtyZXR1cm4oMCxhLnVzZUVmZmVjdCkoKGZ1bmN0aW9uKCl7ciYmcihwKX0pLFtwLHJdKSwoMCxhLnVzZUVmZmVjdCkoKGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgZT13aW5kb3cuaW5uZXJXaWR0aDwxMjgwO2lmKGkpaWYoZSlnKCEwKSxsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcInNpZGViYXItY29sbGFwc2VkXCIsSlNPTi5zdHJpbmdpZnkoITApKTtlbHNle3ZhciB0PWxvY2FsU3RvcmFnZS5nZXRJdGVtKFwic2lkZWJhci1jb2xsYXBzZWRcIik7ZyghIXQmJkpTT04ucGFyc2UodCkpfWVsc2UgZyghMSksbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJzaWRlYmFyLWNvbGxhcHNlZFwiKTttLmN1cnJlbnQmJihtLmN1cnJlbnQuc3R5bGUuaGVpZ2h0PWM/XCJcIi5jb25jYXQod2luZG93LmlubmVySGVpZ2h0LFwicHhcIik6XCJhdXRvXCIpfTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIixlKSxlKCksZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLGUpfX0pLFtjLGldKSxsKCkuY3JlYXRlRWxlbWVudChyay5Qcm92aWRlcix7dmFsdWU6e2lzQ29sbGFwc2VkOnAsc2V0SXNDb2xsYXBzZWQ6Zyxjb2xsYXBzaWJsZTppfX0sbCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix0ayh7cmVmOm0sY2xhc3NOYW1lOm9lKFwib3ZlcmZsb3ctYXV0byB3LTcyIHB4LTQgcHktNCBnYXAtNCBmbGV4IGZsZXgtY29sIGJnLWJhY2tncm91bmQtcHJpbWFyeVwiLGQmJlwiYm9yZGVyLTAgYm9yZGVyLXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ib3JkZXItc3VidGxlXCIsISFjJiZcImgtc2NyZWVuXCIsXCJ0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0yMDBcIixwJiZcInctMTYgcHgtMlwiLG4pfSxmKSx0KSl9O29rLmRpc3BsYXlOYW1lPVwiU2lkZWJhclwiO3ZhciBpaz1mdW5jdGlvbihlKXt2YXIgdD1lLmNoaWxkcmVuO3JldHVybiBsKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJzcGFjZS15LTJcIn0sdCl9O2lrLmRpc3BsYXlOYW1lPVwiU2lkZWJhci5IZWFkZXJcIjt2YXIgc2s9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jaGlsZHJlbjtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKFwic3BhY2UteS00IGdyb3cgaXRlbXMtc3RhcnRcIil9LHQpfTtzay5kaXNwbGF5TmFtZT1cIlNpZGViYXIuQm9keVwiO3ZhciBhaz1mdW5jdGlvbihlKXt2YXIgdD1lLmNoaWxkcmVuLG49KDAsYS51c2VDb250ZXh0KShyaykscj1uLmlzQ29sbGFwc2VkLG89bi5zZXRJc0NvbGxhcHNlZCxpPW4uY29sbGFwc2libGU7cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcInNwYWNlLXktNFwifSx0LGkmJmwoKS5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIse2NsYXNzTmFtZTpvZShcImJnLXRyYW5zcGFyZW50IHctZnVsbCBib3JkZXItMCBwLTAgbS0wIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtYmFzZSBjdXJzb3ItcG9pbnRlclwiLHImJlwianVzdGlmeS1jZW50ZXJcIiksb25DbGljazpmdW5jdGlvbigpe28oIXIpLGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwic2lkZWJhci1jb2xsYXBzZWRcIixKU09OLnN0cmluZ2lmeSghcikpfSxcImFyaWEtbGFiZWxcIjpyP1wiRXhwYW5kIHNpZGViYXJcIjpcIkNvbGxhcHNlIHNpZGViYXJcIn0scj9sKCkuY3JlYXRlRWxlbWVudChsKCkuRnJhZ21lbnQsbnVsbCxsKCkuY3JlYXRlRWxlbWVudChEbyx7dGl0bGU6XCJFeHBhbmRcIixwbGFjZW1lbnQ6XCJyaWdodFwifSxsKCkuY3JlYXRlRWxlbWVudChKUyx7Y2xhc3NOYW1lOlwic2l6ZS01XCJ9KSkpOmwoKS5jcmVhdGVFbGVtZW50KGwoKS5GcmFnbWVudCxudWxsLGwoKS5jcmVhdGVFbGVtZW50KFFTLHtjbGFzc05hbWU6XCJzaXplLTVcIn0pLFwiIENvbGxhcHNlXCIpKSl9O2FrLmRpc3BsYXlOYW1lPVwiU2lkZWJhci5Gb290ZXJcIjt2YXIgbGs9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jaGlsZHJlbixuPWUuY2xhc3NOYW1lO3JldHVybiBsKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6b2UoXCJ3LWZ1bGxcIixuKX0sdCl9O2xrLmRpc3BsYXlOYW1lPVwiU2lkZWJhci5JdGVtXCI7dmFyIGNrPU9iamVjdC5hc3NpZ24ob2sse0hlYWRlcjppayxCb2R5OnNrLEZvb3RlcjphayxJdGVtOmxrfSk7Y29uc3QgdWs9a2UoXCJDaGV2cm9uUmlnaHRcIixbW1wicGF0aFwiLHtkOlwibTkgMTggNi02LTYtNlwiLGtleTpcIm10aGh3cVwifV1dKSxkaz1rZShcIkVsbGlwc2lzXCIsW1tcImNpcmNsZVwiLHtjeDpcIjEyXCIsY3k6XCIxMlwiLHI6XCIxXCIsa2V5OlwiNDFoaWxmXCJ9XSxbXCJjaXJjbGVcIix7Y3g6XCIxOVwiLGN5OlwiMTJcIixyOlwiMVwiLGtleTpcIjF3amw4aVwifV0sW1wiY2lyY2xlXCIse2N4OlwiNVwiLGN5OlwiMTJcIixyOlwiMVwiLGtleTpcIjFwY3o4Y1wifV1dKTt2YXIgZms9W1wiaHJlZlwiLFwiY2hpbGRyZW5cIixcImNsYXNzTmFtZVwiLFwiYXNcIl07ZnVuY3Rpb24gbWsoKXtyZXR1cm4gbWs9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxtay5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIGhrPSgwLGEuY3JlYXRlQ29udGV4dCkoKSxwaz17c206e3RleHQ6XCJ0ZXh0LXNtXCIsc2VwYXJhdG9yOlwidGV4dC1zbVwiLHNlcGFyYXRvckljb25TaXplOjE2fSxtZDp7dGV4dDpcInRleHQtYmFzZVwiLHNlcGFyYXRvcjpcInRleHQtYmFzZVwiLHNlcGFyYXRvckljb25TaXplOjE4fX0sZ2s9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jaGlsZHJlbixuPWUuc2l6ZSxyPXBrW3ZvaWQgMD09PW4/XCJzbVwiOm5dfHxway5zbTtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoaGsuUHJvdmlkZXIse3ZhbHVlOntzaXplczpyfX0sbCgpLmNyZWF0ZUVsZW1lbnQoXCJuYXZcIix7Y2xhc3NOYW1lOlwiZmxleCBtLTBcIixcImFyaWEtbGFiZWxcIjpcIkJyZWFkY3J1bWJcIn0sbCgpLmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLHtjbGFzc05hbWU6XCJtLTAgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtMSBtZDpzcGFjZS14LTFcIn0sdCkpKX07Z2suZGlzcGxheU5hbWU9XCJCcmVhZGNydW1iXCI7dmFyIHlrPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2hpbGRyZW47cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KGwoKS5GcmFnbWVudCxudWxsLHQpfTt5ay5kaXNwbGF5TmFtZT1cIkJyZWFkY3J1bWIuTGlzdFwiO3ZhciB2az1mdW5jdGlvbihlKXt2YXIgdD1lLmNoaWxkcmVuO3JldHVybiBsKCkuY3JlYXRlRWxlbWVudChcImxpXCIse2NsYXNzTmFtZTpcIm0tMCBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIn0sdCl9O3ZrLmRpc3BsYXlOYW1lPVwiQnJlYWRjcnVtYi5JdGVtXCI7dmFyIGJrPWZ1bmN0aW9uKGUpe3ZhciB0PWUuaHJlZixuPWUuY2hpbGRyZW4scj1lLmNsYXNzTmFtZSxvPWUuYXMsaT12b2lkIDA9PT1vP1wiYVwiOm8scz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5jbHVkZXMocikpY29udGludWU7bltyXT1lW3JdfXJldHVybiBufShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKyluPWlbcl0sdC5pbmNsdWRlcyhuKXx8e30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb30oZSxmayksYz0oMCxhLnVzZUNvbnRleHQpKGhrKS5zaXplcztyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoaSxtayh7aHJlZjp0LGNsYXNzTmFtZTpvZShjLnRleHQsXCJweC0xIGZvbnQtbWVkaXVtIG5vLXVuZGVybGluZSB0ZXh0LXRleHQtdGVydGlhcnkgaG92ZXI6dGV4dC10ZXh0LXByaW1hcnkgaG92ZXI6dW5kZXJsaW5lXCIsXCJmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0xIGZvY3VzOnJpbmctYm9yZGVyLWludGVyYWN0aXZlIGZvY3VzOmJvcmRlci1ib3JkZXItaW50ZXJhY3RpdmUgZm9jdXM6cm91bmRlZC1zbVwiLFwidHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMjAwXCIscil9LHMpLG4pfTtiay5kaXNwbGF5TmFtZT1cIkJyZWFkY3J1bWIuTGlua1wiO3ZhciB4az1mdW5jdGlvbihlKXt2YXIgdD1lLnR5cGUsbj0oMCxhLnVzZUNvbnRleHQpKGhrKS5zaXplcyxyPXtzbGFzaDpsKCkuY3JlYXRlRWxlbWVudChcInNwYW5cIix7Y2xhc3NOYW1lOm9lKFwibXgtMVwiLG4uc2VwYXJhdG9yKX0sXCIvXCIpLGFycm93OmwoKS5jcmVhdGVFbGVtZW50KHVrLHtzaXplOm4uc2VwYXJhdG9ySWNvblNpemV9KX07cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KFwic3BhblwiLHtjbGFzc05hbWU6XCJmbGV4IGl0ZW1zLWNlbnRlciB0ZXh0LXRleHQtdGVydGlhcnkgbXgtMlwifSxyW3RdfHxyLmFycm93KX07eGsuZGlzcGxheU5hbWU9XCJCcmVhZGNydW1iLlNlcGFyYXRvclwiO3ZhciB3az1mdW5jdGlvbigpe3ZhciBlPSgwLGEudXNlQ29udGV4dCkoaGspLnNpemVzO3JldHVybiBsKCkuY3JlYXRlRWxlbWVudChkayx7Y2xhc3NOYW1lOlwibXQtWzJweF0gY3Vyc29yLXBvaW50ZXIgdGV4dC10ZXh0LXRlcnRpYXJ5IGhvdmVyOnRleHQtdGV4dC1wcmltYXJ5XCIsc2l6ZTplLnNlcGFyYXRvckljb25TaXplKzR9KX07d2suZGlzcGxheU5hbWU9XCJCcmVhZGNydW1iLkVsbGlwc2lzXCI7dmFyIFNrPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2hpbGRyZW4sbj0oMCxhLnVzZUNvbnRleHQpKGhrKS5zaXplcztyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2NsYXNzTmFtZTpvZShuLnRleHQsXCJmb250LW1lZGl1bSB0ZXh0LXRleHQtcHJpbWFyeVwiKX0sdCl9O1NrLmRpc3BsYXlOYW1lPVwiQnJlYWRjcnVtYi5QYWdlXCI7dmFyIGtrPU9iamVjdC5hc3NpZ24oZ2sse0xpc3Q6eWssSXRlbTp2ayxMaW5rOmJrLFNlcGFyYXRvcjp4ayxFbGxpcHNpczp3ayxQYWdlOlNrfSksRWs9W1wiY2xhc3NOYW1lXCJdLENrPVtcImNoaWxkcmVuXCIsXCJjbGFzc05hbWVcIl0sX2s9W1wiY2hpbGRyZW5cIixcImFzXCIsXCJjbGFzc05hbWVcIl0sUGs9W1wiY2hpbGRyZW5cIixcImFzXCIsXCJjbGFzc05hbWVcIl0sT2s9W1wiY2xhc3NOYW1lXCJdLE5rPVtcImNoaWxkcmVuXCIsXCJhc1wiXSxUaz1bXCJjaGlsZHJlblwiLFwiY2xhc3NOYW1lXCJdO2Z1bmN0aW9uIE1rKCl7cmV0dXJuIE1rPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sTWsuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIFJrKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmNsdWRlcyhyKSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8aS5sZW5ndGg7cisrKW49aVtyXSx0LmluY2x1ZGVzKG4pfHx7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfWZ1bmN0aW9uIERrKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn12YXIgams9KDAsYS5jcmVhdGVDb250ZXh0KSgpLEFrPWZ1bmN0aW9uKCl7cmV0dXJuKDAsYS51c2VDb250ZXh0KShqayl9LElrPXtvcGVuOntvcGFjaXR5OjF9LGV4aXQ6e29wYWNpdHk6MH19LExrPXtkdXJhdGlvbjouMn0sRms9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vcGVuLG49ZS5zZXRPcGVuLHI9ZS5jaGlsZHJlbixvPWUudHJpZ2dlcixpPWUuY2xhc3NOYW1lLHM9ZS5leGl0T25DbGlja091dHNpZGUsbD12b2lkIDAhPT1zJiZzLGM9ZS5leGl0T25Fc2MsdT12b2lkIDA9PT1jfHxjLGQ9ZS5kZXNpZ24sZj12b2lkIDA9PT1kP1wic2ltcGxlXCI6ZCxtPWUuc2Nyb2xsTG9jayxoPXZvaWQgMD09PW18fG0scD12b2lkIDAhPT10JiZ2b2lkIDAhPT1uLGc9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG49bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9bil7dmFyIHIsbyxpLHMsYT1bXSxsPSEwLGM9ITE7dHJ5e2lmKGk9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtsPSExfWVsc2UgZm9yKDshKGw9KHI9aS5jYWxsKG4pKS5kb25lKSYmKGEucHVzaChyLnZhbHVlKSxhLmxlbmd0aCE9PXQpO2w9ITApO31jYXRjaChlKXtjPSEwLG89ZX1maW5hbGx5e3RyeXtpZighbCYmbnVsbCE9bi5yZXR1cm4mJihzPW4ucmV0dXJuKCksT2JqZWN0KHMpIT09cykpcmV0dXJufWZpbmFsbHl7aWYoYyl0aHJvdyBvfX1yZXR1cm4gYX19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIERrKGUsdCk7dmFyIG49e30udG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm5cIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4/QXJyYXkuZnJvbShlKTpcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/RGsoZSx0KTp2b2lkIDB9fShlLHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9KCgwLGEudXNlU3RhdGUpKCExKSwyKSx5PWdbMF0sdj1nWzFdLGI9KDAsYS51c2VSZWYpKG51bGwpLHg9KDAsYS51c2VSZWYpKG51bGwpLHc9KDAsYS51c2VNZW1vKSgoZnVuY3Rpb24oKXtyZXR1cm4gcD90Onl9KSxbdCx5XSksUz0oMCxhLnVzZU1lbW8pKChmdW5jdGlvbigpe3JldHVybiBwP246dn0pLFt2LHZdKSxrPWZ1bmN0aW9uKCl7d3x8UyghMCl9LEU9ZnVuY3Rpb24oKXt3JiZTKCExKX0sQz0oMCxhLnVzZUNhbGxiYWNrKSgoZnVuY3Rpb24oKXtyZXR1cm4oMCxhLmlzVmFsaWRFbGVtZW50KShvKT8oMCxhLmNsb25lRWxlbWVudCkobyx7b25DbGljazppZShrLG8ucHJvcHMub25DbGljayl9KTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBvP28oe29uQ2xpY2s6a30pOm51bGx9KSxbbyxrLEVdKSxfPWZ1bmN0aW9uKGUpe1wiRXNjYXBlXCI9PT1lLmtleSYmdSYmRSgpfSxQPWZ1bmN0aW9uKGUpe2wmJmIuY3VycmVudCYmIWIuY3VycmVudC5jb250YWlucyhlLnRhcmdldCkmJkUoKX07cmV0dXJuKDAsYS51c2VFZmZlY3QpKChmdW5jdGlvbigpe3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixfKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsUCksZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixfKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsUCl9fSksW3ddKSwoMCxhLnVzZUVmZmVjdCkoKGZ1bmN0aW9uKCl7aWYoaClyZXR1cm4gdyYmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJodG1sXCIpLnN0eWxlLm92ZXJmbG93PVwiaGlkZGVuXCIpLGZ1bmN0aW9uKCl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImh0bWxcIikuc3R5bGUub3ZlcmZsb3c9XCJcIn19KSxbd10pLFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsbnVsbCxDKCksUmVhY3QuY3JlYXRlRWxlbWVudChqay5Qcm92aWRlcix7dmFsdWU6e29wZW46dyxzZXRPcGVuOlMsaGFuZGxlQ2xvc2U6RSxkZXNpZ246ZixkaWFsb2dDb250YWluZXJSZWY6eCxkaWFsb2dSZWY6Yn19LFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7cmVmOngsY2xhc3NOYW1lOm9lKFwiZml4ZWQgei05OTk5OTkgdy0wIGgtMCBvdmVyZmxvdy12aXNpYmxlXCIsaSl9LHIpKSl9O0ZrLmRpc3BsYXlOYW1lPVwiRGlhbG9nXCI7dmFyIHprPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2hpbGRyZW4sbj1lLmNsYXNzTmFtZSxyPUFrKCksbz1yLm9wZW4saT1yLmhhbmRsZUNsb3NlLHM9ci5kaWFsb2dSZWY7cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQob2gsbnVsbCxvJiZSZWFjdC5jcmVhdGVFbGVtZW50KGVtLmRpdix7Y2xhc3NOYW1lOlwiZml4ZWQgaW5zZXQtMCBvdmVyZmxvdy15LWF1dG9cIixpbml0aWFsOlwiZXhpdFwiLGFuaW1hdGU6XCJvcGVuXCIsZXhpdDpcImV4aXRcIix2YXJpYW50czpJayxyb2xlOlwiZGlhbG9nXCIsdHJhbnNpdGlvbjpMa30sUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtaW4taC1mdWxsXCJ9LFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7cmVmOnMsY2xhc3NOYW1lOm9lKFwiZmxleCBmbGV4LWNvbCBnYXAtNSB3LTEyMCBoLWZpdCBiZy1iYWNrZ3JvdW5kLXByaW1hcnkgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItYm9yZGVyLXN1YnRsZSByb3VuZGVkLXhsIHNoYWRvdy1zb2Z0LXNoYWRvdy0yeGwgbXktNSBvdmVyZmxvdy1oaWRkZW5cIixuKX0sXCJmdW5jdGlvblwiPT10eXBlb2YgdD90KHtjbG9zZTppfSk6dCkpKSl9O3prLmRpc3BsYXlOYW1lPVwiRGlhbG9nLlBhbmVsXCI7dmFyIEJrPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2xhc3NOYW1lLG49UmsoZSxFaykscj1BaygpLG89ci5vcGVuLGk9ci5kaWFsb2dDb250YWluZXJSZWY7cmV0dXJuIGkuY3VycmVudCYmKDAsdG4uY3JlYXRlUG9ydGFsKShSZWFjdC5jcmVhdGVFbGVtZW50KG9oLG51bGwsbyYmUmVhY3QuY3JlYXRlRWxlbWVudChlbS5kaXYsTWsoe2NsYXNzTmFtZTpvZShcImZpeGVkIGluc2V0LTAgLXotMTAgYmctYmFja2dyb3VuZC1pbnZlcnNlLzkwIGJhY2tkcm9wLWJsdXItc21cIix0KX0sbix7aW5pdGlhbDpcImV4aXRcIixhbmltYXRlOlwib3BlblwiLGV4aXQ6XCJleGl0XCIsdmFyaWFudHM6SWssdHJhbnNpdGlvbjpMa30pKSksaS5jdXJyZW50KX07QmsuZGlzcGxheU5hbWU9XCJEaWFsb2cuQmFja2Ryb3BcIjt2YXIgV2s9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jaGlsZHJlbixuPWUuY2xhc3NOYW1lLHI9UmsoZSxDayk7cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIixNayh7Y2xhc3NOYW1lOm9lKFwic3BhY2UteS0yIHB4LTUgcHQtNSBwYi0xXCIsbil9LHIpLHQpfTtXay5kaXNwbGF5TmFtZT1cIkRpYWxvZy5IZWFkZXJcIjt2YXIgVms9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jaGlsZHJlbixuPWUuYXMscj12b2lkIDA9PT1uP1wiaDNcIjpuLG89ZS5jbGFzc05hbWUsaT1SayhlLF9rKTtyZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChyLE1rKHtjbGFzc05hbWU6b2UoXCJ0ZXh0LWJhc2UgZm9udC1zZW1pYm9sZCB0ZXh0LXRleHQtcHJpbWFyeSBtLTAgcC0wXCIsbyl9LGkpLHQpfTtWay5kaXNwbGF5TmFtZT1cIkRpYWxvZy5UaXRsZVwiO3ZhciBVaz1mdW5jdGlvbihlKXt2YXIgdD1lLmNoaWxkcmVuLG49ZS5hcyxyPXZvaWQgMD09PW4/XCJwXCI6bixvPWUuY2xhc3NOYW1lLGk9UmsoZSxQayk7cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQocixNayh7Y2xhc3NOYW1lOm9lKFwidGV4dC1zbSBmb250LW5vcm1hbCB0ZXh0LXRleHQtc2Vjb25kYXJ5IG15LTAgbWwtMCBtci0xIHAtMFwiLG8pfSxpKSx0KX07VWsuZGlzcGxheU5hbWU9XCJEaWFsb2cuRGVzY3JpcHRpb25cIjt2YXIgJGs9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jbGFzc05hbWUsbj1SayhlLE9rKTtyZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLE1rKHtjbGFzc05hbWU6b2UoXCJiZy10cmFuc3BhcmVudCBpbmxpbmUtZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgYm9yZGVyLTAgcC0xIG0tMCBjdXJzb3ItcG9pbnRlciBmb2N1czpvdXRsaW5lLW5vbmUgb3V0bGluZS1ub25lIHNoYWRvdy1ub25lXCIsdCksXCJhcmlhLWxhYmVsXCI6XCJDbG9zZSBkaWFsb2dcIn0sbiksUmVhY3QuY3JlYXRlRWxlbWVudChxbyx7Y2xhc3NOYW1lOlwic2l6ZS00IHRleHQtdGV4dC1wcmltYXJ5IHNocmluay0wXCJ9KSl9LFlrPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2hpbGRyZW4sbj1lLmFzLHI9dm9pZCAwPT09bj9hLkZyYWdtZW50Om4sbz1SayhlLE5rKSxpPUFrKCkuaGFuZGxlQ2xvc2U7cmV0dXJuKDAsYS5pc1ZhbGlkRWxlbWVudCkodCkmJnQ/cj09PWEuRnJhZ21lbnQ/XCJmdW5jdGlvblwiPT10eXBlb2YgdD90KHtjbG9zZTppfSk6KDAsYS5jbG9uZUVsZW1lbnQpKHQse29uQ2xpY2s6aX0pOlJlYWN0LmNyZWF0ZUVsZW1lbnQocixNayh7fSxvLHtvbkNsaWNrOml9KSx0KTpSZWFjdC5jcmVhdGVFbGVtZW50KCRrLE1rKHtvbkNsaWNrOml9LG8pKX07WWsuZGlzcGxheU5hbWU9XCJEaWFsb2cuQ2xvc2VCdXR0b25cIjt2YXIgSGs9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jaGlsZHJlbixuPWUuY2xhc3NOYW1lLHI9UmsoZSxUayk7cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIixNayh7Y2xhc3NOYW1lOm9lKFwicHgtNVwiLG4pfSxyKSx0KX07SGsuZGlzcGxheU5hbWU9XCJEaWFsb2cuQm9keVwiO3ZhciBLaz1mdW5jdGlvbihlKXt2YXIgdD1lLmNoaWxkcmVuLG49ZS5jbGFzc05hbWUscj1BaygpLG89ci5kZXNpZ24saT1yLmhhbmRsZUNsb3NlO3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShcInAtNCBmbGV4IGp1c3RpZnktZW5kIGdhcC0zXCIse1wiYmctYmFja2dyb3VuZC1zZWNvbmRhcnlcIjpcImZvb3Rlci1kaXZpZGVkXCI9PT1vfSxuKX0sdD9cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Qoe2Nsb3NlOml9KTp0Om51bGwpfTtLay5kaXNwbGF5TmFtZT1cIkRpYWxvZy5Gb290ZXJcIjt2YXIgcWs9T2JqZWN0LmFzc2lnbihGayx7UGFuZWw6emssQmFja2Ryb3A6QmssVGl0bGU6VmssRGVzY3JpcHRpb246VWssQ2xvc2VCdXR0b246WWssSGVhZGVyOldrLEJvZHk6SGssRm9vdGVyOktrfSksR2s9W1wiY2hpbGRyZW5cIixcImdhcFwiLFwiY2xhc3NOYW1lXCJdO2Z1bmN0aW9uIFhrKCl7cmV0dXJuIFhrPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sWGsuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBaaz1mdW5jdGlvbihlKXt2YXIgdD1lLmNoaWxkcmVuLG49ZS5nYXAscj12b2lkIDA9PT1uP1wibGdcIjpuLG89ZS5jbGFzc05hbWUsaT1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5jbHVkZXMocikpY29udGludWU7bltyXT1lW3JdfXJldHVybiBufShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKyluPWlbcl0sdC5pbmNsdWRlcyhuKXx8e30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb30oZSxHayk7cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsWGsoe2NsYXNzTmFtZTpvZShcInctZnVsbCBib3gtYm9yZGVyIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBiZy1iYWNrZ3JvdW5kLXByaW1hcnkgcC01IG1pbi1oLTE2XCIsc2Uociksbyl9LGkpLHQpfTtaay5kaXNwbGF5TmFtZT1cIlRvcGJhclwiO3ZhciBKaz1mdW5jdGlvbihlKXt2YXIgdD1lLmdhcCxuPXZvaWQgMD09PXQ/XCJzbVwiOnQscj1lLmNoaWxkcmVuLG89ZS5jbGFzc05hbWU7cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShcImZsZXggaXRlbXMtY2VudGVyXCIsc2Uobiksbyl9LHIpfTtKay5kaXNwbGF5TmFtZT1cIlRvcGJhci5MZWZ0XCI7dmFyIFFrPWZ1bmN0aW9uKGUpe3ZhciB0LG49ZS5nYXAscj12b2lkIDA9PT1uP1wibWRcIjpuLG89ZS5jaGlsZHJlbixpPWUuYWxpZ24scz12b2lkIDA9PT1pP1wiY2VudGVyXCI6aSxhPWUuY2xhc3NOYW1lLGM9bnVsbD09PSh0PXtsZWZ0OlwianVzdGlmeS1zdGFydFwiLGNlbnRlcjpcImp1c3RpZnktY2VudGVyXCIscmlnaHQ6XCJqdXN0aWZ5LWVuZFwifSl8fHZvaWQgMD09PXQ/dm9pZCAwOnRbc107cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShcImZsZXggaXRlbXMtY2VudGVyIGdyb3dcIixzZShyKSxjLGEpfSxvKX07UWsuZGlzcGxheU5hbWU9XCJUb3BiYXIuTWlkZGxlXCI7dmFyIGVFPWZ1bmN0aW9uKGUpe3ZhciB0PWUuZ2FwLG49dm9pZCAwPT09dD9cInNtXCI6dCxyPWUuY2hpbGRyZW4sbz1lLmNsYXNzTmFtZTtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKFwiZmxleCBpdGVtcy1jZW50ZXJcIixzZShuKSxvKX0scil9O2VFLmRpc3BsYXlOYW1lPVwiVG9wYmFyLlJpZ2h0XCI7dmFyIHRFPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2hpbGRyZW4sbj1lLmNsYXNzTmFtZTtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKFwiZmxleCBpdGVtcy1jZW50ZXIgWyY+c3ZnXTpibG9jayBoLWZ1bGxcIixuKX0sdCl9O3RFLmRpc3BsYXlOYW1lPVwiVG9wYmFyLkl0ZW1cIjt2YXIgbkU9T2JqZWN0LmFzc2lnbihaayx7TGVmdDpKayxNaWRkbGU6UWssUmlnaHQ6ZUUsSXRlbTp0RX0pLHJFPXtzbTpcInRleHQteHMgWyY+c3ZnXTpzaXplLTQgcm91bmRlZFwiLG1kOlwidGV4dC1zbSBbJj5zdmddOnNpemUtNSByb3VuZGVkLW1kXCIsbGc6XCJ0ZXh0LWJhc2UgWyY+c3ZnXTpzaXplLTYgcm91bmRlZC1tZFwifSxvRT17aW5wdXQ6e3NtOlwicHktMS41IHB4LTIgcm91bmRlZFwiLG1kOlwicC0yLjUgcm91bmRlZC1tZFwiLGxnOlwicC0zIHJvdW5kZWQtbWRcIn0sY29udGVudDp7c206XCJwLTEuNVwiLG1kOlwicC0xLjVcIixsZzpcInAtMlwifSx0aXRsZTp7c206XCJwLTIgdGV4dC14c1wiLG1kOlwicC0yIHRleHQtc21cIixsZzpcInAtMiB0ZXh0LXNtXCJ9LGl0ZW06e3NtOlwidGV4dC1zbSB0ZXh0LXRleHQtc2Vjb25kYXJ5IHJvdW5kZWRcIixtZDpcInRleHQtYmFzZSB0ZXh0LXRleHQtc2Vjb25kYXJ5IHJvdW5kZWQtbWRcIixsZzpcInRleHQtYmFzZSB0ZXh0LXRleHQtc2Vjb25kYXJ5IHJvdW5kZWQtbWRcIn0saWNvbjp7c206XCJwLTEgdGV4dC1zbSBbJj5zdmddOnNpemUtNCB0ZXh0LWljb24tc2Vjb25kYXJ5XCIsbWQ6XCJwLTIgdGV4dC1iYXNlIFsmPnN2Z106c2l6ZS01IHRleHQtaWNvbi1zZWNvbmRhcnlcIixsZzpcInAtMiB0ZXh0LWJhc2UgWyY+c3ZnXTpzaXplLTUgdGV4dC1pY29uLXNlY29uZGFyeVwifSxkaWFsb2c6e3NtOlwibXQtMSByb3VuZGVkLW1kXCIsbWQ6XCJtdC0xLjUgcm91bmRlZC1sZ1wiLGxnOlwibXQtMS41IHJvdW5kZWQtbGdcIn0sc2xhc2hJY29uOntzbTpcInB4LTIgcHktMC41XCIsbWQ6XCJweC0zIHB5LTFcIixsZzpcInB4LTMuNSBweS0xXCJ9fSxpRT17cHJpbWFyeTpcImJnLWZpZWxkLXByaW1hcnktYmFja2dyb3VuZCBvdXRsaW5lIG91dGxpbmUtMSBvdXRsaW5lLWZpZWxkLWJvcmRlciBob3ZlcjpvdXRsaW5lLWJvcmRlci1zdHJvbmdcIixzZWNvbmRhcnk6XCJiZy1maWVsZC1zZWNvbmRhcnktYmFja2dyb3VuZCBvdXRsaW5lIG91dGxpbmUtMSBvdXRsaW5lLWZpZWxkLWJvcmRlciBob3ZlcjpvdXRsaW5lLWJvcmRlci1zdHJvbmdcIixnaG9zdDpcImJnLWZpZWxkLXNlY29uZGFyeS1iYWNrZ3JvdW5kIG91dGxpbmUgb3V0bGluZS0xIG91dGxpbmUtdHJhbnNwYXJlbnRcIn0sc0U9e2dob3N0OlwiY3Vyc29yLW5vdC1hbGxvd2VkIHRleHQtdGV4dC1kaXNhYmxlZCBwbGFjZWhvbGRlcjp0ZXh0LXRleHQtZGlzYWJsZWRcIixwcmltYXJ5OlwiYm9yZGVyLWJvcmRlci1kaXNhYmxlZCBob3Zlcjpib3JkZXItYm9yZGVyLWRpc2FibGVkIGJnLWZpZWxkLWJhY2tncm91bmQtZGlzYWJsZWQgY3Vyc29yLW5vdC1hbGxvd2VkIHRleHQtdGV4dC1kaXNhYmxlZCBwbGFjZWhvbGRlcjp0ZXh0LXRleHQtZGlzYWJsZWRcIixzZWNvbmRhcnk6XCJib3JkZXItYm9yZGVyLWRpc2FibGVkIGhvdmVyOmJvcmRlci1ib3JkZXItZGlzYWJsZWQgY3Vyc29yLW5vdC1hbGxvd2VkIHRleHQtdGV4dC1kaXNhYmxlZCBwbGFjZWhvbGRlcjp0ZXh0LXRleHQtZGlzYWJsZWRcIn07ZnVuY3Rpb24gYUUoZSl7cmV0dXJuIGFFPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9LGFFKGUpfXZhciBsRT1bXCJjbGFzc05hbWVcIixcInNpemVcIixcIm9wZW5cIixcIm9uT3BlbkNoYW5nZVwiLFwibG9hZGluZ1wiXSxjRT1bXCJjbGFzc05hbWVcIixcInR5cGVcIixcInBsYWNlaG9sZGVyXCIsXCJ2YXJpYW50XCIsXCJkaXNhYmxlZFwiLFwib25DaGFuZ2VcIl0sdUU9W1wiY2xhc3NOYW1lXCIsXCJkcm9wZG93blBvcnRhbFJvb3RcIixcImRyb3Bkb3duUG9ydGFsSWRcIixcImNoaWxkcmVuXCJdLGRFPVtcImNsYXNzTmFtZVwiLFwiaWNvblwiLFwiY2hpbGRyZW5cIl0sZkU9W1wiY2xhc3NOYW1lXCJdO2Z1bmN0aW9uIG1FKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBoRShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9tRShPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe3BFKGUsdCxuW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTptRShPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pKX1yZXR1cm4gZX1mdW5jdGlvbiBwRShlLHQsbil7cmV0dXJuKHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSl7aWYoXCJvYmplY3RcIiE9YUUoZSl8fCFlKXJldHVybiBlO3ZhciB0PWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT10KXt2YXIgbj10LmNhbGwoZSxcInN0cmluZ1wiKTtpZihcIm9iamVjdFwiIT1hRShuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIil9cmV0dXJuIFN0cmluZyhlKX0oZSk7cmV0dXJuXCJzeW1ib2xcIj09YUUodCk/dDp0K1wiXCJ9KHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIGdFKCl7cmV0dXJuIGdFPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sZ0UuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIHlFKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW4pe3ZhciByLG8saSxzLGE9W10sbD0hMCxjPSExO3RyeXtpZihpPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47bD0hMX1lbHNlIGZvcig7IShsPShyPWkuY2FsbChuKSkuZG9uZSkmJihhLnB1c2goci52YWx1ZSksYS5sZW5ndGghPT10KTtsPSEwKTt9Y2F0Y2goZSl7Yz0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWwmJm51bGwhPW4ucmV0dXJuJiYocz1uLnJldHVybigpLE9iamVjdChzKSE9PXMpKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgb319cmV0dXJuIGF9fShlLHQpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiB2RShlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uP0FycmF5LmZyb20oZSk6XCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP3ZFKGUsdCk6dm9pZCAwfX0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIHZFKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBiRShlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5jbHVkZXMocikpY29udGludWU7bltyXT1lW3JdfXJldHVybiBufShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKyluPWlbcl0sdC5pbmNsdWRlcyhuKXx8e30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb312YXIgeEU9KDAsYS5jcmVhdGVDb250ZXh0KSgpLHdFPWZ1bmN0aW9uKCl7cmV0dXJuKDAsYS51c2VDb250ZXh0KSh4RSl9LFNFPSgwLGEuZm9yd2FyZFJlZikoKGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5jbGFzc05hbWUscj1lLnNpemUsbz12b2lkIDA9PT1yP1wic21cIjpyLGk9ZS5vcGVuLHM9dm9pZCAwIT09aSYmaSxsPWUub25PcGVuQ2hhbmdlLGM9dm9pZCAwPT09bD9mdW5jdGlvbigpe306bCx1PWUubG9hZGluZyxkPXZvaWQgMCE9PXUmJnUsZj1iRShlLGxFKSxtPXlFKCgwLGEudXNlU3RhdGUpKFwiXCIpLDIpLGg9bVswXSxwPW1bMV0sZz15RSgoMCxhLnVzZVN0YXRlKShudWxsIT1kJiZkKSwyKSx5PWdbMF0sdj1nWzFdLGI9UXIoe29wZW46cyxvbk9wZW5DaGFuZ2U6YyxwbGFjZW1lbnQ6XCJib3R0b20tc3RhcnRcIix3aGlsZUVsZW1lbnRzTW91bnRlZDpibixtaWRkbGV3YXJlOltEbihcInNtXCI9PT1vPzQ6NiksQW4oe3BhZGRpbmc6MTB9KSxJbih7YXBwbHk6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZWN0cyxuPWUuZWxlbWVudHMscj1lLmF2YWlsYWJsZUhlaWdodDtuLmZsb2F0aW5nLnN0eWxlLm1heEhlaWdodD1cIlwiLmNvbmNhdChyLFwicHhcIiksbi5mbG9hdGluZy5zdHlsZS53aWR0aD1cIlwiLmNvbmNhdCh0LnJlZmVyZW5jZS53aWR0aCxcInB4XCIpLG4uZmxvYXRpbmcuc3R5bGUuZm9udEZhbWlseT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShuLnJlZmVyZW5jZSkuZm9udEZhbWlseX19KV19KSx4PWIucmVmcyx3PWIuZmxvYXRpbmdTdHlsZXMsUz1iLmNvbnRleHQsaz1ybyhbSnIoUyldKSxFPWsuZ2V0UmVmZXJlbmNlUHJvcHMsQz1rLmdldEZsb2F0aW5nUHJvcHM7cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoeEUuUHJvdmlkZXIse3ZhbHVlOntzaXplOm8sb3BlbjpzLG9uT3BlbkNoYW5nZTpjLHJlZnM6eCxmbG9hdGluZ1N0eWxlczp3LGNvbnRleHQ6UyxnZXRSZWZlcmVuY2VQcm9wczpFLGdldEZsb2F0aW5nUHJvcHM6QyxzZWFyY2hUZXJtOmgsc2V0U2VhcmNoVGVybTpwLGlzTG9hZGluZzp5LHNldElzTG9hZGluZzp2fX0sUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLGdFKHtjbGFzc05hbWU6b2UoXCJzZWFyY2hib3gtd3JhcHBlciBib3gtYm9yZGVyIHJlbGF0aXZlIHctZnVsbFwiLG4pfSxmLHtyZWY6dH0pKSl9KSk7U0UuZGlzcGxheU5hbWU9XCJTZWFyY2hCb3hcIjt2YXIga0U9KDAsYS5mb3J3YXJkUmVmKSgoZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmNsYXNzTmFtZSxyPWUudHlwZSxvPXZvaWQgMD09PXI/XCJ0ZXh0XCI6cixpPWUucGxhY2Vob2xkZXIscz12b2lkIDA9PT1pP1wiU2VhcmNoLi4uXCI6aSxhPWUudmFyaWFudCxsPXZvaWQgMD09PWE/XCJwcmltYXJ5XCI6YSxjPWUuZGlzYWJsZWQsdT12b2lkIDAhPT1jJiZjLGQ9ZS5vbkNoYW5nZSxmPXZvaWQgMD09PWQ/ZnVuY3Rpb24oKXt9OmQsbT1iRShlLGNFKSxoPXdFKCkscD1oLnNpemUsZz1oLm9uT3BlbkNoYW5nZSx5PWgucmVmcyx2PWguZ2V0UmVmZXJlbmNlUHJvcHMsYj1oLnNlYXJjaFRlcm0seD1oLnNldFNlYXJjaFRlcm0sdz1cImxnXCI9PT1wP1wic21cIjpcInhzXCI7cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIixnRSh7dGFiSW5kZXg6MCxyZWY6eS5zZXRSZWZlcmVuY2UsY2xhc3NOYW1lOm9lKFwidy1mdWxsIGdyb3VwIHJlbGF0aXZlIGZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIGdhcC0xLjUgZm9jdXMtd2l0aGluOnotMTAgdHJhbnNpdGlvbi1jb2xvcnMgZWFzZS1pbi1vdXQgZHVyYXRpb24tMTUwXCIsaUVbbF0sb0UuaW5wdXRbcF0sdT9zRVtsXTpcImZvY3VzLXdpdGhpbjpyaW5nLTIgZm9jdXMtd2l0aGluOnJpbmctZm9jdXMgZm9jdXMtd2l0aGluOnJpbmctb2Zmc2V0LTIgZm9jdXMtd2l0aGluOmJvcmRlci1mb2N1cy1ib3JkZXIgZm9jdXMtd2l0aGluOmhvdmVyOmJvcmRlci1mb2N1cy1ib3JkZXJcIil9LHYpLFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2NsYXNzTmFtZTpvZShyRVtwXSx1P1widGV4dC1pY29uLWRpc2FibGVkXCI6XCJ0ZXh0LWljb24tc2Vjb25kYXJ5IGdyb3VwLWhvdmVyOnRleHQtaWNvbi1wcmltYXJ5IGdyb3VwLWZvY3VzLXdpdGhpbjp0ZXh0LWljb24tcHJpbWFyeVwiLFwiZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXJcIil9LFJlYWN0LmNyZWF0ZUVsZW1lbnQodW0sbnVsbCkpLFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLGdFKHt0eXBlOm8scmVmOnQsY2xhc3NOYW1lOm9lKHJFW3BdLFwiZmxleC1ncm93IGZvbnQtbWVkaXVtIGJnLXRyYW5zcGFyZW50IGJvcmRlci1ub25lIG91dGxpbmUtbm9uZSBib3JkZXItdHJhbnNwYXJlbnQgZm9jdXM6cmluZy0wIHB5LTBcIix1P3NFW2xdOltcInRleHQtZmllbGQtcGxhY2Vob2xkZXIgZm9jdXMtd2l0aGluOnRleHQtZmllbGQtaW5wdXQgZ3JvdXAtaG92ZXI6dGV4dC1maWVsZC1pbnB1dFwiLFwicGxhY2Vob2xkZXI6dGV4dC1maWVsZC1wbGFjZWhvbGRlclwiXSxuKSxkaXNhYmxlZDp1LHZhbHVlOmIsb25DaGFuZ2U6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQudmFsdWU7eCh0KSxmKHQpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGcmJih0LnRyaW0oKT9nKCEwKTpnKCExKSl9LHBsYWNlaG9sZGVyOnN9LG0pKSxSZWFjdC5jcmVhdGVFbGVtZW50KFpvLHtsYWJlbDpcIi9cIixzaXplOncsdHlwZTpcInJvdW5kZWRcIix2YXJpYW50OlwibmV1dHJhbFwifSkpfSkpO2tFLmRpc3BsYXlOYW1lPVwiU2VhcmNoQm94LklucHV0XCI7dmFyIEVFPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2xhc3NOYW1lLG49ZS5kcm9wZG93blBvcnRhbFJvb3Qscj12b2lkIDA9PT1uP251bGw6bixvPWUuZHJvcGRvd25Qb3J0YWxJZCxpPXZvaWQgMD09PW8/XCJcIjpvLHM9ZS5jaGlsZHJlbixhPWJFKGUsdUUpLGw9d0UoKSxjPWwuc2l6ZSx1PWwub3BlbixkPWwucmVmcyxmPWwuZmxvYXRpbmdTdHlsZXMsbT1sLmdldEZsb2F0aW5nUHJvcHM7cmV0dXJuIHU/UmVhY3QuY3JlYXRlRWxlbWVudChJcix7aWQ6aSxyb290OnJ9LFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIixnRSh7cmVmOmQuc2V0RmxvYXRpbmcsc3R5bGU6aEUoe30sZiksY2xhc3NOYW1lOm9lKFwiYmctYmFja2dyb3VuZC1wcmltYXJ5IHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItYm9yZGVyLXN1YnRsZSBzaGFkb3ctc29mdC1zaGFkb3ctbGcgb3ZlcmZsb3cteS1hdXRvIHRleHQtd3JhcFwiLG9FLmRpYWxvZ1tjXSx0KX0sbSgpLGEpLHMpKTpudWxsfTtFRS5kaXNwbGF5TmFtZT1cIlNlYXJjaEJveC5Db250ZW50XCI7dmFyIENFPWZ1bmN0aW9uKGUpe3ZhciB0PWUuZmlsdGVyLG49dm9pZCAwPT09dHx8dCxyPWUuY2hpbGRyZW4sbz13RSgpLGk9by5zZWFyY2hUZXJtLHM9by5pc0xvYWRpbmc7aWYoIW4pcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIixudWxsLHIpO3ZhciBsPWEuQ2hpbGRyZW4udG9BcnJheShyKS5tYXAoKGZ1bmN0aW9uKGUpe2lmKGUudHlwZT09PVBFKXt2YXIgdD1hLkNoaWxkcmVuLnRvQXJyYXkoZS5wcm9wcy5jaGlsZHJlbikuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZS5wcm9wcy5jaGlsZHJlbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGkudG9Mb3dlckNhc2UoKSl9KSk7cmV0dXJuIHQubGVuZ3RoPjA/KDAsYS5jbG9uZUVsZW1lbnQpKGUse2NoaWxkcmVuOnR9KTpudWxsfXJldHVybiBlfSkpLmZpbHRlcihCb29sZWFuKTtyZXR1cm4gcz9SZWFjdC5jcmVhdGVFbGVtZW50KE5FLG51bGwpOlJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIixudWxsLGwuc29tZSgoZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZSE9PVRFfSkpP2w6UmVhY3QuY3JlYXRlRWxlbWVudChfRSxudWxsKSl9O0NFLmRpc3BsYXlOYW1lPVwiU2VhcmNoQm94Lkxpc3RcIjt2YXIgX0U9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jaGlsZHJlbixuPXZvaWQgMD09PXQ/XCJObyByZXN1bHRzIGZvdW5kLlwiOnQscj13RSgpLnNpemU7cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKFwiZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXJcIixvRS5pdGVtW3JdLFwidGV4dC10ZXh0LXRlcnRpYXJ5IHAtNFwiKX0sbil9O19FLmRpc3BsYXlOYW1lPVwiU2VhcmNoQm94LkVtcHR5XCI7dmFyIFBFPWZ1bmN0aW9uKGUpe3ZhciB0PWUuaGVhZGluZyxuPWUuY2hpbGRyZW4scj13RSgpLnNpemU7cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKG9FLmNvbnRlbnRbcl0sb0UuaXRlbVtyXSl9LHQmJlJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKG9FLnRpdGxlW3JdLFwidGV4dC10ZXh0LXNlY29uZGFyeVwiKX0sdCksbil9O1BFLmRpc3BsYXlOYW1lPVwiU2VhcmNoQm94Lkdyb3VwXCI7dmFyIE9FPSgwLGEuZm9yd2FyZFJlZikoKGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5jbGFzc05hbWUscj1lLmljb24sbz1lLmNoaWxkcmVuLGk9YkUoZSxkRSkscz13RSgpLnNpemU7cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIixnRSh7cmVmOnQsY2xhc3NOYW1lOm9lKFwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydCBnYXAtMSBwLTEgaG92ZXI6YmctYmFja2dyb3VuZC1zZWNvbmRhcnkgZm9jdXM6YmctYmFja2dyb3VuZC1zZWNvbmRhcnkgY3Vyc29yLXBvaW50ZXJcIixvRS5pdGVtW3NdKX0saSksciYmUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIix7Y2xhc3NOYW1lOm9lKG9FLmljb25bc10sXCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiKX0sciksUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIix7Y2xhc3NOYW1lOm9lKFwiZmxleC1ncm93IHAtMSBmb250LW5vcm1hbCBjdXJzb3ItcG9pbnRlclwiLG9FLml0ZW1bc10sbil9LG8pKX0pKTtPRS5kaXNwbGF5TmFtZT1cIlNlYXJjaEJveC5JdGVtXCI7dmFyIE5FPWZ1bmN0aW9uKGUpe3ZhciB0PWUubG9hZGluZ0ljb24sbj12b2lkIDA9PT10P1JlYWN0LmNyZWF0ZUVsZW1lbnQoYmksbnVsbCk6dCxyPXdFKCkuc2l6ZSxvPSgwLGEuY2xvbmVFbGVtZW50KShuLHtzaXplOnJ9KTtyZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6b2UoXCJmbGV4IGp1c3RpZnktY2VudGVyIHAtNFwiLHJFW3JdLG9FLml0ZW1bcl0pfSxvKX07TkUuZGlzcGxheU5hbWU9XCJTZWFyY2hCb3guTG9hZGluZ1wiO3ZhciBURT0oMCxhLmZvcndhcmRSZWYpKChmdW5jdGlvbihlLHQpe3ZhciBuPWUuY2xhc3NOYW1lLHI9YkUoZSxmRSk7cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJoclwiLGdFKHtyZWY6dCxjbGFzc05hbWU6b2UoXCJib3JkZXItMCBib3JkZXItdCBib3JkZXItYm9yZGVyLXN1YnRsZSBib3JkZXItc29saWQgbS0wXCIsbil9LHIpKX0pKTtURS5kaXNwbGF5TmFtZT1cIlNlYXJjaEJveC5TZXBhcmF0b3JcIixTRS5JbnB1dD1rRSxTRS5Mb2FkaW5nPU5FLFNFLlNlcGFyYXRvcj1URSxTRS5Db250ZW50PUVFLFNFLkxpc3Q9Q0UsU0UuRW1wdHk9X0UsU0UuR3JvdXA9UEUsU0UuSXRlbT1PRTt2YXIgTUU9U0U7ZnVuY3Rpb24gUkUoZSl7cmV0dXJuIFJFPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9LFJFKGUpfXZhciBERT1bXCJjaGlsZHJlblwiLFwiY2xhc3NOYW1lXCJdLGpFPVtcImNoaWxkcmVuXCJdLEFFPVtcImNoaWxkcmVuXCIsXCJhc1wiXTtmdW5jdGlvbiBJRShlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5jbHVkZXMocikpY29udGludWU7bltyXT1lW3JdfXJldHVybiBufShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKyluPWlbcl0sdC5pbmNsdWRlcyhuKXx8e30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb31mdW5jdGlvbiBMRShlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gRkUoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/TEUoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXt6RShlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6TEUoT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSl9cmV0dXJuIGV9ZnVuY3Rpb24gekUoZSx0LG4pe3JldHVybih0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKGUpe2lmKFwib2JqZWN0XCIhPVJFKGUpfHwhZSlyZXR1cm4gZTt2YXIgdD1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09dCl7dmFyIG49dC5jYWxsKGUsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9UkUobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcoZSl9KGUpO3JldHVyblwic3ltYm9sXCI9PVJFKHQpP3Q6dCtcIlwifSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBCRSgpe3JldHVybiBCRT1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LEJFLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBXRShlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9dmFyIFZFPSgwLGEuY3JlYXRlQ29udGV4dCkoKSxVRT1mdW5jdGlvbihlKXt2YXIgdD1lLnBsYWNlbWVudCxuPXZvaWQgMD09PXQ/XCJib3R0b21cIjp0LHI9ZS5vZmZzZXQsbz12b2lkIDA9PT1yPzEwOnIsaT1lLmJvdW5kYXJ5LHM9dm9pZCAwPT09aT9cImNsaXBwaW5nQW5jZXN0b3JzXCI6aSxjPWUuZHJvcGRvd25Qb3J0YWxSb290LHU9dm9pZCAwPT09Yz9udWxsOmMsZD1lLmRyb3Bkb3duUG9ydGFsSWQsZj12b2lkIDA9PT1kP1wiXCI6ZCxtPWUuY2hpbGRyZW4saD1lLmNsYXNzTmFtZSxwPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW4pe3ZhciByLG8saSxzLGE9W10sbD0hMCxjPSExO3RyeXtpZihpPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47bD0hMX1lbHNlIGZvcig7IShsPShyPWkuY2FsbChuKSkuZG9uZSkmJihhLnB1c2goci52YWx1ZSksYS5sZW5ndGghPT10KTtsPSEwKTt9Y2F0Y2goZSl7Yz0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWwmJm51bGwhPW4ucmV0dXJuJiYocz1uLnJldHVybigpLE9iamVjdChzKSE9PXMpKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgb319cmV0dXJuIGF9fShlLHQpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBXRShlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uP0FycmF5LmZyb20oZSk6XCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP1dFKGUsdCk6dm9pZCAwfX0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfSgoMCxhLnVzZVN0YXRlKSghMSksMiksZz1wWzBdLHk9cFsxXSx2PVFyKHtvcGVuOmcsb25PcGVuQ2hhbmdlOnkscGxhY2VtZW50Om4sc3RyYXRlZ3k6XCJhYnNvbHV0ZVwiLG1pZGRsZXdhcmU6W0RuKG8pLEFuKHtib3VuZGFyeTpzfSksam4oe2JvdW5kYXJ5OnN9KV0sd2hpbGVFbGVtZW50c01vdW50ZWQ6Ym59KSxiPXYucmVmcyx4PXYuZmxvYXRpbmdTdHlsZXMsdz12LmNvbnRleHQsUz1ybyhbcXIodyksSnIodyksZm8odyx7cm9sZTpcIm1lbnVcIn0pXSksaz1TLmdldFJlZmVyZW5jZVByb3BzLEU9Uy5nZXRGbG9hdGluZ1Byb3BzLEM9cG8odyx7ZHVyYXRpb246MTUwLGluaXRpYWw6e29wYWNpdHk6MCxzY2FsZTouOTV9LG9wZW46e29wYWNpdHk6MSxzY2FsZToxfSxjbG9zZTp7b3BhY2l0eTowLHNjYWxlOi45NX19KSxfPUMuaXNNb3VudGVkLFA9Qy5zdHlsZXM7cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KFZFLlByb3ZpZGVyLHt2YWx1ZTp7aGFuZGxlQ2xvc2U6ZnVuY3Rpb24oKXtyZXR1cm4geSghMSl9fX0sbCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKFwicmVsYXRpdmUgaW5saW5lLWJsb2NrXCIsaCl9LGwoKS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsQkUoe3JlZjpiLnNldFJlZmVyZW5jZSxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHkoKGZ1bmN0aW9uKGUpe3JldHVybiFlfSkpfSxyb2xlOlwiYnV0dG9uXCIsdGFiSW5kZXg6MH0saygpLHtjbGFzc05hbWU6XCJjdXJzb3ItcG9pbnRlclwifSksbCgpLkNoaWxkcmVuLm1hcChtLChmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm5cIkRyb3Bkb3duTWVudS5UcmlnZ2VyXCI9PT0obnVsbD09PSh0PWUudHlwZSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuZGlzcGxheU5hbWUpP2U6bnVsbH0pKSksXyYmbCgpLmNyZWF0ZUVsZW1lbnQoSXIse2lkOmYscm9vdDp1fSxsKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLEJFKHtyZWY6Yi5zZXRGbG9hdGluZyxzdHlsZTpGRShGRSh7fSx4KSxQKX0sRSgpKSxsKCkuQ2hpbGRyZW4ubWFwKG0sKGZ1bmN0aW9uKGUpe3ZhciB0O3JldHVyblwiRHJvcGRvd25NZW51LkNvbnRlbnRcIj09PShudWxsPT09KHQ9ZS50eXBlKXx8dm9pZCAwPT09dD92b2lkIDA6dC5kaXNwbGF5TmFtZSk/ZTpudWxsfSkpKSkpKX07VUUuZGlzcGxheU5hbWU9XCJEcm9wZG93bk1lbnVcIjt2YXIgJEU9bCgpLmZvcndhcmRSZWYoKGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5jaGlsZHJlbixyPWUuY2xhc3NOYW1lO3JldHVybiBsKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLHtyZWY6dCxyb2xlOlwiYnV0dG9uXCIsdGFiSW5kZXg6MCxjbGFzc05hbWU6cn0sbil9KSk7JEUuZGlzcGxheU5hbWU9XCJEcm9wZG93bk1lbnUuVHJpZ2dlclwiO3ZhciBZRT1mdW5jdGlvbihlKXt2YXIgdD1lLmNoaWxkcmVuLG49ZS5jbGFzc05hbWUscj1JRShlLERFKTtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKFwiYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItYm9yZGVyLXN1YnRsZSByb3VuZGVkLW1kIHNoYWRvdy1sZyBvdmVyZmxvdy1oaWRkZW5cIixuKX0sbCgpLmNyZWF0ZUVsZW1lbnQoWlMscix0KSl9O1lFLmRpc3BsYXlOYW1lPVwiRHJvcGRvd25NZW51LkNvbnRlbnRcIjt2YXIgSEU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jaGlsZHJlbixuPUlFKGUsakUpO3JldHVybiBsKCkuY3JlYXRlRWxlbWVudChaUy5MaXN0LG4sdCl9O0hFLmRpc3BsYXlOYW1lPVwiRHJvcGRvd25NZW51Lkxpc3RcIjt2YXIgS0U9ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLmNoaWxkcmVuLHI9ZS5hcyxvPXZvaWQgMD09PXI/WlMuSXRlbTpyLGk9SUUoZSxBRSkscz0oMCxhLnVzZUNvbnRleHQpKFZFKS5oYW5kbGVDbG9zZTtyZXR1cm4gbj9vPT09YS5GcmFnbWVudD8oMCxhLmNsb25lRWxlbWVudCkobix7b25DbGljazppZShudWxsPT09KHQ9bi5wcm9wcyl8fHZvaWQgMD09PXQ/dm9pZCAwOnQub25DbGljayxzKX0pOmwoKS5jcmVhdGVFbGVtZW50KG8sQkUoe30saSx7Y2xhc3NOYW1lOlwicHgtMlwiLG9uQ2xpY2s6aWUoaS5vbkNsaWNrLHMpfSksbik6bnVsbH07S0UuZGlzcGxheU5hbWU9XCJEcm9wZG93bk1lbnUuSXRlbVwiO3ZhciBxRT1mdW5jdGlvbihlKXt2YXIgdD1CRSh7fSwoZnVuY3Rpb24oZSl7aWYobnVsbD09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGRlc3RydWN0dXJlIFwiK2UpfShlKSxlKSk7cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KFpTLlNlcGFyYXRvcix0KX07cUUuZGlzcGxheU5hbWU9XCJEcm9wZG93bk1lbnUuU2VwYXJhdG9yXCI7dmFyIEdFPU9iamVjdC5hc3NpZ24oVUUse1RyaWdnZXI6JEUsQ29udGVudDpZRSxMaXN0OkhFLEl0ZW06S0UsU2VwYXJhdG9yOnFFfSk7ZnVuY3Rpb24gWEUoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfXZhciBaRT0oMCxhLmNyZWF0ZUNvbnRleHQpKCksSkU9ZnVuY3Rpb24oKXtyZXR1cm4oMCxhLnVzZUNvbnRleHQpKFpFKX0sUUU9T2JqZWN0LmFzc2lnbigoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vcGVuLG49ZS5zZXRPcGVuLHI9ZS5jaGlsZHJlbixvPWUudHJpZ2dlcixpPWUuY2xhc3NOYW1lLHM9ZS5leGl0T25DbGlja091dHNpZGUsbD12b2lkIDAhPT1zJiZzLGM9ZS5leGl0T25Fc2MsdT12b2lkIDA9PT1jfHxjLGQ9ZS5kZXNpZ24sZj12b2lkIDA9PT1kP1wic2ltcGxlXCI6ZCxtPWUucG9zaXRpb24saD12b2lkIDA9PT1tP1wicmlnaHRcIjptLHA9ZS50cmFuc2l0aW9uRHVyYXRpb24sZz12b2lkIDA9PT1wPy4yOnAseT1lLnNjcm9sbExvY2ssdj12b2lkIDA9PT15fHx5LGI9dm9pZCAwIT09dCYmdm9pZCAwIT09bix4PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW4pe3ZhciByLG8saSxzLGE9W10sbD0hMCxjPSExO3RyeXtpZihpPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47bD0hMX1lbHNlIGZvcig7IShsPShyPWkuY2FsbChuKSkuZG9uZSkmJihhLnB1c2goci52YWx1ZSksYS5sZW5ndGghPT10KTtsPSEwKTt9Y2F0Y2goZSl7Yz0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWwmJm51bGwhPW4ucmV0dXJuJiYocz1uLnJldHVybigpLE9iamVjdChzKSE9PXMpKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgb319cmV0dXJuIGF9fShlLHQpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBYRShlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uP0FycmF5LmZyb20oZSk6XCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP1hFKGUsdCk6dm9pZCAwfX0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfSgoMCxhLnVzZVN0YXRlKSghMSksMiksdz14WzBdLFM9eFsxXSxrPSgwLGEudXNlUmVmKShudWxsKSxFPSgwLGEudXNlUmVmKShudWxsKSxDPSgwLGEudXNlTWVtbykoKGZ1bmN0aW9uKCl7cmV0dXJuIGI/dDp3fSksW3Qsd10pLF89KDAsYS51c2VNZW1vKSgoZnVuY3Rpb24oKXtyZXR1cm4gYj9uOlN9KSxbUyxTXSksUD1mdW5jdGlvbigpe0N8fF8oITApfSxPPWZ1bmN0aW9uKCl7QyYmXyghMSl9LE49KDAsYS51c2VDYWxsYmFjaykoKGZ1bmN0aW9uKCl7cmV0dXJuKDAsYS5pc1ZhbGlkRWxlbWVudCkobyk/KDAsYS5jbG9uZUVsZW1lbnQpKG8se29uQ2xpY2s6aWUoUCxvLnByb3BzLm9uQ2xpY2spfSk6XCJmdW5jdGlvblwiPT10eXBlb2Ygbz9vKHtvbkNsaWNrOlB9KTpudWxsfSksW28sUCxPXSksVD1mdW5jdGlvbihlKXtcIkVzY2FwZVwiPT09ZS5rZXkmJnUmJk8oKX0sTT1mdW5jdGlvbihlKXtsJiZrLmN1cnJlbnQmJiFrLmN1cnJlbnQuY29udGFpbnMoZS50YXJnZXQpJiZPKCl9O3JldHVybigwLGEudXNlRWZmZWN0KSgoZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsVCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLE0pLGZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsVCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLE0pfX0pLFtDXSksKDAsYS51c2VFZmZlY3QpKChmdW5jdGlvbigpe2lmKHYpcmV0dXJuIEMmJihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiaHRtbFwiKS5zdHlsZS5vdmVyZmxvdz1cImhpZGRlblwiKSxmdW5jdGlvbigpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJodG1sXCIpLnN0eWxlLm92ZXJmbG93PVwiXCJ9fSksW0NdKSxSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LG51bGwsTigpLFJlYWN0LmNyZWF0ZUVsZW1lbnQoWkUuUHJvdmlkZXIse3ZhbHVlOntvcGVuOkMsc2V0T3BlbjpfLGhhbmRsZUNsb3NlOk8sZGVzaWduOmYscG9zaXRpb246aCxkcmF3ZXJDb250YWluZXJSZWY6RSxkcmF3ZXJSZWY6ayx0cmFuc2l0aW9uRHVyYXRpb246e2R1cmF0aW9uOmd9fX0sUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6b2UoXCJmaXhlZCB6LTk5OTk5OSB3LTAgaC0wIG92ZXJmbG93LXZpc2libGVcIixpKSxyb2xlOlwiZGlhbG9nXCIscmVmOkV9LHIpKSl9KSx7ZGlzcGxheU5hbWU6XCJEcmF3ZXJcIn0pLGVDPXtsZWZ0OntvcGVuOnt4OjB9LGV4aXQ6e3g6XCItMTAwJVwifX0scmlnaHQ6e29wZW46e3g6MH0sZXhpdDp7eDpcIjEwMCVcIn19fSx0Qz1PYmplY3QuYXNzaWduKChmdW5jdGlvbihlKXt2YXIgdD1lLmNoaWxkcmVuLG49ZS5jbGFzc05hbWUscj1KRSgpLG89ci5vcGVuLGk9ci5wb3NpdGlvbixzPXIuaGFuZGxlQ2xvc2UsYT1yLmRyYXdlclJlZixsPXIudHJhbnNpdGlvbkR1cmF0aW9uO3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KG9oLG51bGwsbyYmUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJmaXhlZCBpbnNldC0wXCJ9LFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOm9lKFwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgaC1mdWxsXCIse1wianVzdGlmeS1zdGFydFwiOlwibGVmdFwiPT09aSxcImp1c3RpZnktZW5kXCI6XCJyaWdodFwiPT09aX0pfSxSZWFjdC5jcmVhdGVFbGVtZW50KGVtLmRpdix7cmVmOmEsY2xhc3NOYW1lOm9lKFwiZmxleCBmbGV4LWNvbCBnYXAtNSB3LTEyMCBoLWZ1bGwgYmctYmFja2dyb3VuZC1wcmltYXJ5IHNoYWRvdy0yeGwgbXktNSBvdmVyZmxvdy1oaWRkZW5cIixuKSxpbml0aWFsOlwiZXhpdFwiLGFuaW1hdGU6XCJvcGVuXCIsZXhpdDpcImV4aXRcIix2YXJpYW50czplQ1tpXSx0cmFuc2l0aW9uOmx9LFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dCh7Y2xvc2U6c30pOnQpKSkpfSkse2Rpc3BsYXlOYW1lOlwiRHJhd2VyLlBhbmVsXCJ9KSxuQz1bXCJjaGlsZHJlblwiLFwiY2xhc3NOYW1lXCJdO2Z1bmN0aW9uIHJDKCl7cmV0dXJuIHJDPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sckMuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciBvQz1PYmplY3QuYXNzaWduKChmdW5jdGlvbihlKXt2YXIgdD1lLmNoaWxkcmVuLG49ZS5jbGFzc05hbWUscj1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5jbHVkZXMocikpY29udGludWU7bltyXT1lW3JdfXJldHVybiBufShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKyluPWlbcl0sdC5pbmNsdWRlcyhuKXx8e30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb30oZSxuQyk7cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIixyQyh7Y2xhc3NOYW1lOm9lKFwic3BhY2UteS0yIHB4LTUgcHQtNSBwYi0xXCIsbil9LHIpLHQpfSkse2Rpc3BsYXlOYW1lOlwiRHJhd2VyLkhlYWRlclwifSksaUM9W1wiY2hpbGRyZW5cIixcImFzXCIsXCJjbGFzc05hbWVcIl07ZnVuY3Rpb24gc0MoKXtyZXR1cm4gc0M9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxzQy5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIGFDPU9iamVjdC5hc3NpZ24oKGZ1bmN0aW9uKGUpe3ZhciB0PWUuY2hpbGRyZW4sbj1lLmFzLHI9dm9pZCAwPT09bj9cImgzXCI6bixvPWUuY2xhc3NOYW1lLGk9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluY2x1ZGVzKHIpKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLHQuaW5jbHVkZXMobil8fHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsaUMpO3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KHIsc0Moe2NsYXNzTmFtZTpvZShcInRleHQtYmFzZSBmb250LXNlbWlib2xkIHRleHQtdGV4dC1wcmltYXJ5IG0tMCBwLTBcIixvKX0saSksdCl9KSx7ZGlzcGxheU5hbWU6XCJEcmF3ZXIuVGl0bGVcIn0pLGxDPVtcImNoaWxkcmVuXCIsXCJhc1wiLFwiY2xhc3NOYW1lXCJdO2Z1bmN0aW9uIGNDKCl7cmV0dXJuIGNDPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sY0MuYXBwbHkobnVsbCxhcmd1bWVudHMpfXZhciB1Qz1PYmplY3QuYXNzaWduKChmdW5jdGlvbihlKXt2YXIgdD1lLmNoaWxkcmVuLG49ZS5hcyxyPXZvaWQgMD09PW4/XCJwXCI6bixvPWUuY2xhc3NOYW1lLGk9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluY2x1ZGVzKHIpKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLHQuaW5jbHVkZXMobil8fHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsbEMpO3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KHIsY0Moe2NsYXNzTmFtZTpvZShcInRleHQtc20gZm9udC1ub3JtYWwgdGV4dC10ZXh0LXNlY29uZGFyeSBteS0wIG1sLTAgbXItMSBwLTBcIixvKX0saSksdCl9KSx7ZGlzcGxheU5hbWU6XCJEcmF3ZXIuRGVzY3JpcHRpb25cIn0pLGRDPVtcImNoaWxkcmVuXCIsXCJjbGFzc05hbWVcIl07ZnVuY3Rpb24gZkMoKXtyZXR1cm4gZkM9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxmQy5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIG1DPU9iamVjdC5hc3NpZ24oKGZ1bmN0aW9uKGUpe3ZhciB0PWUuY2hpbGRyZW4sbj1lLmNsYXNzTmFtZSxyPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmNsdWRlcyhyKSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8aS5sZW5ndGg7cisrKW49aVtyXSx0LmluY2x1ZGVzKG4pfHx7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfShlLGRDKTtyZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLGZDKHtjbGFzc05hbWU6b2UoXCJweC01IGZsZXggZmxleC1jb2wgZmxleC0xIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlblwiLG4pfSxyKSx0KX0pLHtkaXNwbGF5TmFtZTpcIkRyYXdlci5Cb2R5XCJ9KSxoQz1PYmplY3QuYXNzaWduKChmdW5jdGlvbihlKXt2YXIgdD1lLmNoaWxkcmVuLG49ZS5jbGFzc05hbWUscj1KRSgpLG89ci5kZXNpZ24saT1yLmhhbmRsZUNsb3NlO3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpvZShcInAtNSBmbGV4IGp1c3RpZnktZW5kIGdhcC0zIG10LWF1dG9cIix7XCJiZy1iYWNrZ3JvdW5kLXNlY29uZGFyeVwiOlwiZm9vdGVyLWRpdmlkZWRcIj09PW99LG4pfSx0P1wiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dCh7Y2xvc2U6aX0pOnQ6bnVsbCl9KSx7ZGlzcGxheU5hbWU6XCJEcmF3ZXIuRm9vdGVyXCJ9KSxwQz1bXCJjbGFzc05hbWVcIl0sZ0M9W1wiY2hpbGRyZW5cIixcImFzXCJdO2Z1bmN0aW9uIHlDKCl7cmV0dXJuIHlDPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0seUMuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIHZDKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmNsdWRlcyhyKSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8aS5sZW5ndGg7cisrKW49aVtyXSx0LmluY2x1ZGVzKG4pfHx7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfXZhciBiQz1mdW5jdGlvbihlKXt2YXIgdD1lLmNsYXNzTmFtZSxuPXZDKGUscEMpO3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIseUMoe2NsYXNzTmFtZTpvZShcImJnLXRyYW5zcGFyZW50IGlubGluZS1mbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciBib3JkZXItMCBwLTEgbS0wIGN1cnNvci1wb2ludGVyIGZvY3VzOm91dGxpbmUtbm9uZSBvdXRsaW5lLW5vbmUgc2hhZG93LW5vbmVcIix0KSxcImFyaWEtbGFiZWxcIjpcIkNsb3NlIGRyYXdlclwifSxuKSxSZWFjdC5jcmVhdGVFbGVtZW50KHFvLHtjbGFzc05hbWU6XCJzaXplLTQgdGV4dC10ZXh0LXByaW1hcnkgc2hyaW5rLTBcIn0pKX0seEM9T2JqZWN0LmFzc2lnbigoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jaGlsZHJlbixuPWUuYXMscj12b2lkIDA9PT1uP2EuRnJhZ21lbnQ6bixvPXZDKGUsZ0MpLGk9SkUoKS5oYW5kbGVDbG9zZTtyZXR1cm4oMCxhLmlzVmFsaWRFbGVtZW50KSh0KSYmdD9yPT09YS5GcmFnbWVudD9cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Qoe2Nsb3NlOml9KTooMCxhLmNsb25lRWxlbWVudCkodCx7b25DbGljazppfSk6UmVhY3QuY3JlYXRlRWxlbWVudChyLHlDKHt9LG8se29uQ2xpY2s6aX0pLHQpOlJlYWN0LmNyZWF0ZUVsZW1lbnQoYkMseUMoe29uQ2xpY2s6aX0sbykpfSkse2Rpc3BsYXlOYW1lOlwiRHJhd2VyLkNsb3NlQnV0dG9uXCJ9KSx3Qz1bXCJjbGFzc05hbWVcIl07ZnVuY3Rpb24gU0MoKXtyZXR1cm4gU0M9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciByIGluIG4pKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJihlW3JdPW5bcl0pfXJldHVybiBlfSxTQy5hcHBseShudWxsLGFyZ3VtZW50cyl9dmFyIGtDPXtvcGVuOntvcGFjaXR5OjF9LGV4aXQ6e29wYWNpdHk6MH19LEVDPU9iamVjdC5hc3NpZ24oKGZ1bmN0aW9uKGUpe3ZhciB0PWUuY2xhc3NOYW1lLG49ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluY2x1ZGVzKHIpKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLHQuaW5jbHVkZXMobil8fHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsd0MpLHI9SkUoKSxvPXIub3BlbixpPXIuZHJhd2VyQ29udGFpbmVyUmVmLHM9ci50cmFuc2l0aW9uRHVyYXRpb247cmV0dXJuIGkuY3VycmVudCYmKDAsdG4uY3JlYXRlUG9ydGFsKShSZWFjdC5jcmVhdGVFbGVtZW50KG9oLG51bGwsbyYmUmVhY3QuY3JlYXRlRWxlbWVudChlbS5kaXYsU0Moe2NsYXNzTmFtZTpvZShcImZpeGVkIGluc2V0LTAgLXotMTAgYmctYmFja2dyb3VuZC1pbnZlcnNlLzkwIGJhY2tkcm9wLWJsdXItc21cIix0KX0sbix7aW5pdGlhbDpcImV4aXRcIixhbmltYXRlOlwib3BlblwiLGV4aXQ6XCJleGl0XCIsdmFyaWFudHM6a0MsdHJhbnNpdGlvbjpzfSkpKSxpLmN1cnJlbnQpfSkse2Rpc3BsYXlOYW1lOlwiRHJhd2VyLkJhY2tkcm9wXCJ9KSxDQz1PYmplY3QuYXNzaWduKFFFLHtQYW5lbDp0QyxIZWFkZXI6b0MsVGl0bGU6YUMsRGVzY3JpcHRpb246dUMsQm9keTptQyxDbG9zZUJ1dHRvbjp4QyxGb290ZXI6aEMsQmFja2Ryb3A6RUN9KTtjb25zdCBfQz1rZShcIkNoZXZyb25MZWZ0XCIsW1tcInBhdGhcIix7ZDpcIm0xNSAxOC02LTYgNi02XCIsa2V5OlwiMXduZmczXCJ9XV0pO3ZhciBQQz17eHM6e2dlbmVyYWw6XCJweC0yIHRleHQteHNcIixlbGxpcHNlOlwicHgtMS41IHRleHQteHNcIixpY29uOlwicHgtMSB0ZXh0LXhzXCJ9LHNtOntnZW5lcmFsOlwicHgtMyB0ZXh0LXhzXCIsZWxsaXBzZTpcInB4LTIuNSB0ZXh0LXhzXCIsaWNvbjpcInB4LTIgdGV4dC14c1wifSxtZDp7Z2VuZXJhbDpcInB4LTQgdGV4dC1zbVwiLGVsbGlwc2U6XCJweC0yLjUgdGV4dC1zbVwiLGljb246XCJweC0yLjUgdGV4dC1zbVwifSxsZzp7Z2VuZXJhbDpcInB4LTUgdGV4dC1iYXNlXCIsZWxsaXBzZTpcInB4LTQgdGV4dC1iYXNlXCIsaWNvbjpcInB4LTMgdGV4dC1iYXNlXCJ9fSxPQz1cImdyb3VwIGRpc2FibGVkOmJvcmRlci1maWVsZC1ib3JkZXItZGlzYWJsZWQgb3BhY2l0eS01MFwiLE5DPVtcInNpemVcIixcImRpc2FibGVkXCIsXCJjaGlsZHJlblwiLFwiY2xhc3NOYW1lXCJdLFRDPVtcImNsYXNzTmFtZVwiXSxNQz1bXCJpc0FjdGl2ZVwiLFwiY2xhc3NOYW1lXCIsXCJjaGlsZHJlblwiXSxSQz1bXCJpY29uXCIsXCJpc0FjdGl2ZVwiLFwidGFnXCIsXCJjaGlsZHJlblwiLFwiY2xhc3NOYW1lXCJdLERDPVtcImljb25cIl0sakM9W1wiaWNvblwiXTtmdW5jdGlvbiBBQygpe3JldHVybiBBQz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LEFDLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBJQyhlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbj17fTtmb3IodmFyIHIgaW4gZSlpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikpe2lmKHQuaW5jbHVkZXMocikpY29udGludWU7bltyXT1lW3JdfXJldHVybiBufShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKyluPWlbcl0sdC5pbmNsdWRlcyhuKXx8e30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb312YXIgTEM9KDAsYS5jcmVhdGVDb250ZXh0KSgpLEZDPWZ1bmN0aW9uKCl7cmV0dXJuKDAsYS51c2VDb250ZXh0KShMQyl9LHpDPWZ1bmN0aW9uKGUpe3ZhciB0PWUuc2l6ZSxuPXZvaWQgMD09PXQ/XCJzbVwiOnQscj1lLmRpc2FibGVkLG89dm9pZCAwIT09ciYmcixpPWUuY2hpbGRyZW4scz1lLmNsYXNzTmFtZSxhPUlDKGUsTkMpO3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KExDLlByb3ZpZGVyLHt2YWx1ZTp7c2l6ZTpuLGRpc2FibGVkOm99fSxSZWFjdC5jcmVhdGVFbGVtZW50KFwibmF2XCIsQUMoe3JvbGU6XCJuYXZpZ2F0aW9uXCIsXCJhcmlhLWxhYmVsXCI6XCJwYWdpbmF0aW9uXCIsY2xhc3NOYW1lOm9lKFwiZmxleCB3LWZ1bGwganVzdGlmeS1jZW50ZXIgYm94LWJvcmRlciBtLTBcIixzKX0sYSksaSkpfTt6Qy5kaXNwbGF5TmFtZT1cIlBhZ2luYXRpb25cIjt2YXIgQkM9KDAsYS5mb3J3YXJkUmVmKSgoZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmNsYXNzTmFtZSxyPUlDKGUsVEMpO3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwidWxcIixBQyh7cmVmOnQsY2xhc3NOYW1lOm9lKFwibS0wIHAtMCB3LWZ1bGwgZmxleCBqdXN0aWZ5LWNlbnRlciBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTFcIixcImxpc3Qtbm9uZVwiLG4pfSxyKSl9KSk7QkMuZGlzcGxheU5hbWU9XCJQYWdpbmF0aW9uLkNvbnRlbnRcIjt2YXIgV0M9KDAsYS5mb3J3YXJkUmVmKSgoZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmlzQWN0aXZlLHI9dm9pZCAwIT09biYmbixvPWUuY2xhc3NOYW1lLGk9ZS5jaGlsZHJlbixzPUlDKGUsTUMpLGE9RkMoKS5kaXNhYmxlZDtyZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImxpXCIse3JlZjp0LHRhYkluZGV4OjAsY2xhc3NOYW1lOm9lKFwiZmxleFwiLGEmJk9DKX0sUmVhY3QuY3JlYXRlRWxlbWVudChWQyxBQyh7aXNBY3RpdmU6cixkaXNhYmxlZDphLGNsYXNzTmFtZTpvfSxzKSxpKSl9KSk7V0MuZGlzcGxheU5hbWU9XCJQYWdpbmF0aW9uLkl0ZW1cIjt2YXIgVkM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5pY29uLG49dm9pZCAwPT09dD9udWxsOnQscj1lLmlzQWN0aXZlLG89dm9pZCAwIT09ciYmcixpPWUudGFnLHM9dm9pZCAwPT09aT9cImFcIjppLGE9ZS5jaGlsZHJlbixsPWUuY2xhc3NOYW1lLGM9SUMoZSxSQyksdT1GQygpLGQ9dS5zaXplLGY9dS5kaXNhYmxlZDtyZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChkZSxBQyh7dGFnOnMsc2l6ZTpkLHZhcmlhbnQ6XCJnaG9zdFwiLGNsYXNzTmFtZTpvZShcIm5vLXVuZGVybGluZSBiZy10cmFuc3BhcmVudCBwLTAgbS0wIGJvcmRlci1ub25lXCIsXCJmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciByb3VuZGVkIHRleHQtYnV0dG9uLXNlY29uZGFyeVwiLFwiZm9jdXM6b3V0bGluZSBmb2N1czpvdXRsaW5lLTEgZm9jdXM6b3V0bGluZS1ib3JkZXItc3VidGxlIGZvY3VzOmJnLWJ1dHRvbi10ZXJ0aWFyeS1ob3ZlclwiLFBDW2RdLmdlbmVyYWwsIWYmJm8mJlwidGV4dC1idXR0b24tcHJpbWFyeSBhY3RpdmU6dGV4dC1idXR0b24tcHJpbWFyeSBiZy1icmFuZC1iYWNrZ3JvdW5kLTUwXCIsZiYmW09DLFwiZ3JvdXAtZGlzYWJsZWQ6dGV4dC1pY29uLWRpc2FibGVkXCIsXCJncm91cC1kaXNhYmxlZDp0ZXh0LWZpZWxkLWNvbG9yLWRpc2FibGVkXCIsXCJmb2N1czpyaW5nLXRyYW5zcGFyZW50IGN1cnNvci1ub3QtYWxsb3dlZFwiXSxsKSxkaXNhYmxlZDpmLGljb246bn0sYyksYSl9LFVDPWZ1bmN0aW9uKGUpe3ZhciB0PWUuaWNvbixuPXZvaWQgMD09PXQ/UmVhY3QuY3JlYXRlRWxlbWVudChfQyxudWxsKTp0LHI9SUMoZSxEQyksbz1GQygpLGk9by5zaXplLHM9by5kaXNhYmxlZDtyZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImxpXCIse3RhYkluZGV4OjAsY2xhc3NOYW1lOm9lKFwiZmxleFwiLHMmJk9DKX0sUmVhY3QuY3JlYXRlRWxlbWVudChWQyxBQyh7aWNvbjpuLFwiYXJpYS1sYWJlbFwiOlwiR28gdG8gcHJldmlvdXMgcGFnZVwiLGNsYXNzTmFtZTpQQ1tpXS5pY29ufSxyKSkpfTtVQy5kaXNwbGF5TmFtZT1cIlBhZ2luYXRpb24uUHJldmlvdXNcIjt2YXIgJEM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5pY29uLG49dm9pZCAwPT09dD9SZWFjdC5jcmVhdGVFbGVtZW50KHVrLG51bGwpOnQscj1JQyhlLGpDKSxvPUZDKCksaT1vLnNpemUscz1vLmRpc2FibGVkO3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGlcIix7dGFiSW5kZXg6MCxjbGFzc05hbWU6b2UoXCJmbGV4XCIscyYmT0MpfSxSZWFjdC5jcmVhdGVFbGVtZW50KFZDLEFDKHtpY29uOm4sXCJhcmlhLWxhYmVsXCI6XCJHbyB0byBuZXh0IHBhZ2VcIixjbGFzc05hbWU6UENbaV0uaWNvbn0scikpKX07JEMuZGlzcGxheU5hbWU9XCJQYWdpbmF0aW9uLk5leHRcIjt2YXIgWUM9ZnVuY3Rpb24oZSl7dmFyIHQ9RkMoKSxuPXQuc2l6ZSxyPXQuZGlzYWJsZWQ7cmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaVwiLHt0YWJJbmRleDowLGNsYXNzTmFtZTpvZShcImZsZXhcIixyJiZPQyl9LFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsQUMoe2NsYXNzTmFtZTpvZShQQ1tuXS5lbGxpcHNlLHImJk9DKX0sZSksXCIuLi5cIikpfTtZQy5kaXNwbGF5TmFtZT1cIlBhZ2luYXRpb24uRWxsaXBzaXNcIix6Qy5Db250ZW50PUJDLHpDLkl0ZW09V0MsekMuUHJldmlvdXM9VUMsekMuTmV4dD0kQyx6Qy5FbGxpcHNpcz1ZQzt2YXIgSEMsS0MscUMsR0M9ekM7ZnVuY3Rpb24gWEMoZSl7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLHsuLi5lfSl9ZnVuY3Rpb24gWkMoZSl7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChcInNwYW5cIix7Li4uZX0pfWZ1bmN0aW9uIEpDKGUpe2NvbnN0e3NpemU6dD0yNCxvcmllbnRhdGlvbjpuPVwibGVmdFwiLGNsYXNzTmFtZTpyfT1lO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIix7Y2xhc3NOYW1lOnIsd2lkdGg6dCxoZWlnaHQ6dCx2aWV3Qm94OlwiMCAwIDI0IDI0XCJ9LFwidXBcIj09PW4mJmEuY3JlYXRlRWxlbWVudChcInBvbHlnb25cIix7cG9pbnRzOlwiNi43NyAxNyAxMi41IDExLjQzIDE4LjI0IDE3IDIwIDE1LjI4IDEyLjUgOCA1IDE1LjI4XCJ9KSxcImRvd25cIj09PW4mJmEuY3JlYXRlRWxlbWVudChcInBvbHlnb25cIix7cG9pbnRzOlwiNi43NyA4IDEyLjUgMTMuNTcgMTguMjQgOCAyMCA5LjcyIDEyLjUgMTcgNSA5LjcyXCJ9KSxcImxlZnRcIj09PW4mJmEuY3JlYXRlRWxlbWVudChcInBvbHlnb25cIix7cG9pbnRzOlwiMTYgMTguMTEyIDkuODExMTExMTEgMTIgMTYgNS44NzczMzMzMyAxNC4wODg4ODg5IDQgNiAxMiAxNC4wODg4ODg5IDIwXCJ9KSxcInJpZ2h0XCI9PT1uJiZhLmNyZWF0ZUVsZW1lbnQoXCJwb2x5Z29uXCIse3BvaW50czpcIjggMTguNjEyIDE0LjE4ODg4ODkgMTIuNSA4IDYuMzc3MzMzMzMgOS45MTExMTExMSA0LjUgMTggMTIuNSA5LjkxMTExMTExIDIwLjVcIn0pKX1mdW5jdGlvbiBRQyhlKXtjb25zdHtkYXk6dCxtb2RpZmllcnM6biwuLi5yfT1lO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoXCJ0ZFwiLHsuLi5yfSl9ZnVuY3Rpb24gZV8oZSl7Y29uc3R7ZGF5OnQsbW9kaWZpZXJzOm4sLi4ucn09ZSxvPWEudXNlUmVmKG51bGwpO3JldHVybiBhLnVzZUVmZmVjdCgoKCk9PntuLmZvY3VzZWQmJm8uY3VycmVudD8uZm9jdXMoKX0pLFtuLmZvY3VzZWRdKSxhLmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIix7cmVmOm8sLi4ucn0pfWZ1bmN0aW9uIHRfKGUpe2NvbnN0e29wdGlvbnM6dCxjbGFzc05hbWU6bixjb21wb25lbnRzOnIsY2xhc3NOYW1lczpvLC4uLml9PWUscz1bb1tIQy5Ecm9wZG93bl0sbl0uam9pbihcIiBcIiksbD10Py5maW5kKCgoe3ZhbHVlOmV9KT0+ZT09PWkudmFsdWUpKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KFwic3BhblwiLHtcImRhdGEtZGlzYWJsZWRcIjppLmRpc2FibGVkLGNsYXNzTmFtZTpvW0hDLkRyb3Bkb3duUm9vdF19LGEuY3JlYXRlRWxlbWVudChyLlNlbGVjdCx7Y2xhc3NOYW1lOnMsLi4uaX0sdD8ubWFwKCgoe3ZhbHVlOmUsbGFiZWw6dCxkaXNhYmxlZDpufSk9PmEuY3JlYXRlRWxlbWVudChyLk9wdGlvbix7a2V5OmUsdmFsdWU6ZSxkaXNhYmxlZDpufSx0KSkpKSxhLmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2NsYXNzTmFtZTpvW0hDLkNhcHRpb25MYWJlbF0sXCJhcmlhLWhpZGRlblwiOiEwfSxsPy5sYWJlbCxhLmNyZWF0ZUVsZW1lbnQoci5DaGV2cm9uLHtvcmllbnRhdGlvbjpcImRvd25cIixzaXplOjE4LGNsYXNzTmFtZTpvW0hDLkNoZXZyb25dfSkpKX1mdW5jdGlvbiBuXyhlKXtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsey4uLmV9KX1mdW5jdGlvbiByXyhlKXtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsey4uLmV9KX1mdW5jdGlvbiBvXyhlKXtjb25zdHtjYWxlbmRhck1vbnRoOnQsZGlzcGxheUluZGV4Om4sLi4ucn09ZTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsey4uLnJ9LGUuY2hpbGRyZW4pfWZ1bmN0aW9uIGlfKGUpe2NvbnN0e2NhbGVuZGFyTW9udGg6dCxkaXNwbGF5SW5kZXg6biwuLi5yfT1lO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Li4ucn0pfWZ1bmN0aW9uIHNfKGUpe3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoXCJ0YWJsZVwiLHsuLi5lfSl9ZnVuY3Rpb24gYV8oZSl7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChcImRpdlwiLHsuLi5lfSl9IWZ1bmN0aW9uKGUpe2UuUm9vdD1cInJvb3RcIixlLkNoZXZyb249XCJjaGV2cm9uXCIsZS5EYXk9XCJkYXlcIixlLkRheUJ1dHRvbj1cImRheV9idXR0b25cIixlLkNhcHRpb25MYWJlbD1cImNhcHRpb25fbGFiZWxcIixlLkRyb3Bkb3ducz1cImRyb3Bkb3duc1wiLGUuRHJvcGRvd249XCJkcm9wZG93blwiLGUuRHJvcGRvd25Sb290PVwiZHJvcGRvd25fcm9vdFwiLGUuRm9vdGVyPVwiZm9vdGVyXCIsZS5Nb250aEdyaWQ9XCJtb250aF9ncmlkXCIsZS5Nb250aENhcHRpb249XCJtb250aF9jYXB0aW9uXCIsZS5Nb250aHNEcm9wZG93bj1cIm1vbnRoc19kcm9wZG93blwiLGUuTW9udGg9XCJtb250aFwiLGUuTW9udGhzPVwibW9udGhzXCIsZS5OYXY9XCJuYXZcIixlLk5leHRNb250aEJ1dHRvbj1cImJ1dHRvbl9uZXh0XCIsZS5QcmV2aW91c01vbnRoQnV0dG9uPVwiYnV0dG9uX3ByZXZpb3VzXCIsZS5XZWVrPVwid2Vla1wiLGUuV2Vla3M9XCJ3ZWVrc1wiLGUuV2Vla2RheT1cIndlZWtkYXlcIixlLldlZWtkYXlzPVwid2Vla2RheXNcIixlLldlZWtOdW1iZXI9XCJ3ZWVrX251bWJlclwiLGUuV2Vla051bWJlckhlYWRlcj1cIndlZWtfbnVtYmVyX2hlYWRlclwiLGUuWWVhcnNEcm9wZG93bj1cInllYXJzX2Ryb3Bkb3duXCJ9KEhDfHwoSEM9e30pKSxmdW5jdGlvbihlKXtlLmRpc2FibGVkPVwiZGlzYWJsZWRcIixlLmhpZGRlbj1cImhpZGRlblwiLGUub3V0c2lkZT1cIm91dHNpZGVcIixlLmZvY3VzZWQ9XCJmb2N1c2VkXCIsZS50b2RheT1cInRvZGF5XCJ9KEtDfHwoS0M9e30pKSxmdW5jdGlvbihlKXtlLnJhbmdlX2VuZD1cInJhbmdlX2VuZFwiLGUucmFuZ2VfbWlkZGxlPVwicmFuZ2VfbWlkZGxlXCIsZS5yYW5nZV9zdGFydD1cInJhbmdlX3N0YXJ0XCIsZS5zZWxlY3RlZD1cInNlbGVjdGVkXCJ9KHFDfHwocUM9e30pKTtjb25zdCBsXz0oMCxhLmNyZWF0ZUNvbnRleHQpKHZvaWQgMCk7ZnVuY3Rpb24gY18oKXtjb25zdCBlPSgwLGEudXNlQ29udGV4dCkobF8pO2lmKHZvaWQgMD09PWUpdGhyb3cgbmV3IEVycm9yKFwidXNlRGF5UGlja2VyKCkgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIGN1c3RvbSBjb21wb25lbnQuXCIpO3JldHVybiBlfWZ1bmN0aW9uIHVfKGUpe2NvbnN0e2NvbXBvbmVudHM6dH09Y18oKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KHQuRHJvcGRvd24sey4uLmV9KX1mdW5jdGlvbiBkXyhlKXtjb25zdHtvblByZXZpb3VzQ2xpY2s6dCxvbk5leHRDbGljazpuLHByZXZpb3VzTW9udGg6cixuZXh0TW9udGg6bywuLi5pfT1lLHtjb21wb25lbnRzOnMsY2xhc3NOYW1lczpsLGxhYmVsczp7bGFiZWxQcmV2aW91czpjLGxhYmVsTmV4dDp1fX09Y18oKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KFwibmF2XCIsey4uLml9LGEuY3JlYXRlRWxlbWVudChzLlByZXZpb3VzTW9udGhCdXR0b24se3R5cGU6XCJidXR0b25cIixjbGFzc05hbWU6bFtIQy5QcmV2aW91c01vbnRoQnV0dG9uXSx0YWJJbmRleDpyP3ZvaWQgMDotMSxkaXNhYmxlZDohcnx8dm9pZCAwLFwiYXJpYS1sYWJlbFwiOmMociksb25DbGljazplLm9uUHJldmlvdXNDbGlja30sYS5jcmVhdGVFbGVtZW50KHMuQ2hldnJvbix7ZGlzYWJsZWQ6IXJ8fHZvaWQgMCxjbGFzc05hbWU6bFtIQy5DaGV2cm9uXSxvcmllbnRhdGlvbjpcImxlZnRcIn0pKSxhLmNyZWF0ZUVsZW1lbnQocy5OZXh0TW9udGhCdXR0b24se3R5cGU6XCJidXR0b25cIixjbGFzc05hbWU6bFtIQy5OZXh0TW9udGhCdXR0b25dLHRhYkluZGV4Om8/dm9pZCAwOi0xLGRpc2FibGVkOiFvfHx2b2lkIDAsXCJhcmlhLWxhYmVsXCI6dShvKSxvbkNsaWNrOmUub25OZXh0Q2xpY2t9LGEuY3JlYXRlRWxlbWVudChzLkNoZXZyb24se2Rpc2FibGVkOiFvfHx2b2lkIDAsb3JpZW50YXRpb246XCJyaWdodFwiLGNsYXNzTmFtZTpsW0hDLkNoZXZyb25dfSkpKX1mdW5jdGlvbiBmXyhlKXtjb25zdHtjb21wb25lbnRzOnR9PWNfKCk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCh0LkJ1dHRvbix7Li4uZX0pfWZ1bmN0aW9uIG1fKGUpe3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoXCJvcHRpb25cIix7Li4uZX0pfWZ1bmN0aW9uIGhfKGUpe2NvbnN0e2NvbXBvbmVudHM6dH09Y18oKTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KHQuQnV0dG9uLHsuLi5lfSl9ZnVuY3Rpb24gcF8oZSl7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChcImRpdlwiLHsuLi5lfSl9ZnVuY3Rpb24gZ18oZSl7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChcInNlbGVjdFwiLHsuLi5lfSl9ZnVuY3Rpb24geV8oZSl7Y29uc3R7d2Vlazp0LC4uLm59PWU7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChcInRyXCIsey4uLm59KX1mdW5jdGlvbiB2XyhlKXtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KFwidGhcIix7Li4uZX0pfWZ1bmN0aW9uIGJfKGUpe3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoXCJ0aGVhZFwiLG51bGwsYS5jcmVhdGVFbGVtZW50KFwidHJcIix7Li4uZX0pKX1mdW5jdGlvbiB4XyhlKXtjb25zdHt3ZWVrOnQsLi4ubn09ZTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KFwidGhcIix7Li4ubn0pfWZ1bmN0aW9uIHdfKGUpe3JldHVybiBhLmNyZWF0ZUVsZW1lbnQoXCJ0aFwiLHsuLi5lfSl9ZnVuY3Rpb24gU18oZSl7cmV0dXJuIGEuY3JlYXRlRWxlbWVudChcInRib2R5XCIsey4uLmV9KX1mdW5jdGlvbiBrXyhlKXtjb25zdHtjb21wb25lbnRzOnR9PWNfKCk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCh0LkRyb3Bkb3duLHsuLi5lfSl9TWF0aC5wb3coMTAsOCk7Y29uc3QgRV89NjA0OGU1LENfPTg2NGU1LFBfPVN5bWJvbC5mb3IoXCJjb25zdHJ1Y3REYXRlRnJvbVwiKTtmdW5jdGlvbiBPXyhlLHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZSh0KTplJiZcIm9iamVjdFwiPT10eXBlb2YgZSYmUF8gaW4gZT9lW1BfXSh0KTplIGluc3RhbmNlb2YgRGF0ZT9uZXcgZS5jb25zdHJ1Y3Rvcih0KTpuZXcgRGF0ZSh0KX1mdW5jdGlvbiBOXyhlLHQpe3JldHVybiBPXyh0fHxlLGUpfWZ1bmN0aW9uIFRfKGUsdCxuKXtjb25zdCByPU5fKGUsbj8uaW4pO3JldHVybiBpc05hTih0KT9PXyhuPy5pbnx8ZSxOYU4pOnQ/KHIuc2V0RGF0ZShyLmdldERhdGUoKSt0KSxyKTpyfWZ1bmN0aW9uIE1fKGUsdCxuKXtjb25zdCByPU5fKGUsbj8uaW4pO2lmKGlzTmFOKHQpKXJldHVybiBPXyhuPy5pbnx8ZSxOYU4pO2lmKCF0KXJldHVybiByO2NvbnN0IG89ci5nZXREYXRlKCksaT1PXyhuPy5pbnx8ZSxyLmdldFRpbWUoKSk7cmV0dXJuIGkuc2V0TW9udGgoci5nZXRNb250aCgpK3QrMSwwKSxvPj1pLmdldERhdGUoKT9pOihyLnNldEZ1bGxZZWFyKGkuZ2V0RnVsbFllYXIoKSxpLmdldE1vbnRoKCksbykscil9ZnVuY3Rpb24gUl8oZSx0LG4pe3JldHVybiBUXyhlLDcqdCxuKX1mdW5jdGlvbiBEXyhlKXtjb25zdCB0PU5fKGUpLG49bmV3IERhdGUoRGF0ZS5VVEModC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSx0LmdldERhdGUoKSx0LmdldEhvdXJzKCksdC5nZXRNaW51dGVzKCksdC5nZXRTZWNvbmRzKCksdC5nZXRNaWxsaXNlY29uZHMoKSkpO3JldHVybiBuLnNldFVUQ0Z1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKSksK2UtK259ZnVuY3Rpb24gal8oZSwuLi50KXtjb25zdCBuPU9fLmJpbmQobnVsbCxlfHx0LmZpbmQoKGU9Plwib2JqZWN0XCI9PXR5cGVvZiBlKSkpO3JldHVybiB0Lm1hcChuKX1mdW5jdGlvbiBBXyhlLHQpe2NvbnN0IG49Tl8oZSx0Py5pbik7cmV0dXJuIG4uc2V0SG91cnMoMCwwLDAsMCksbn1mdW5jdGlvbiBJXyhlLHQsbil7Y29uc3RbcixvXT1qXyhuPy5pbixlLHQpLGk9QV8ocikscz1BXyhvKSxhPStpLURfKGkpLGw9K3MtRF8ocyk7cmV0dXJuIE1hdGgucm91bmQoKGEtbCkvQ18pfWxldCBMXz17fTtmdW5jdGlvbiBGXygpe3JldHVybiBMX31mdW5jdGlvbiB6XyhlLHQpe2NvbnN0IG49Rl8oKSxyPXQ/LndlZWtTdGFydHNPbj8/dD8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P24ud2Vla1N0YXJ0c09uPz9uLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLG89Tl8oZSx0Py5pbiksaT1vLmdldERheSgpLHM9NisoaTxyPy03OjApLShpLXIpO3JldHVybiBvLnNldERhdGUoby5nZXREYXRlKCkrcyksby5zZXRIb3VycygyMyw1OSw1OSw5OTkpLG99ZnVuY3Rpb24gQl8oZSx0KXtjb25zdCBuPU5fKGUsdD8uaW4pLHI9bi5nZXRNb250aCgpO3JldHVybiBuLnNldEZ1bGxZZWFyKG4uZ2V0RnVsbFllYXIoKSxyKzEsMCksbi5zZXRIb3VycygyMyw1OSw1OSw5OTkpLG59Y29uc3QgV189e2xlc3NUaGFuWFNlY29uZHM6e29uZTpcImxlc3MgdGhhbiBhIHNlY29uZFwiLG90aGVyOlwibGVzcyB0aGFuIHt7Y291bnR9fSBzZWNvbmRzXCJ9LHhTZWNvbmRzOntvbmU6XCIxIHNlY29uZFwiLG90aGVyOlwie3tjb3VudH19IHNlY29uZHNcIn0saGFsZkFNaW51dGU6XCJoYWxmIGEgbWludXRlXCIsbGVzc1RoYW5YTWludXRlczp7b25lOlwibGVzcyB0aGFuIGEgbWludXRlXCIsb3RoZXI6XCJsZXNzIHRoYW4ge3tjb3VudH19IG1pbnV0ZXNcIn0seE1pbnV0ZXM6e29uZTpcIjEgbWludXRlXCIsb3RoZXI6XCJ7e2NvdW50fX0gbWludXRlc1wifSxhYm91dFhIb3Vyczp7b25lOlwiYWJvdXQgMSBob3VyXCIsb3RoZXI6XCJhYm91dCB7e2NvdW50fX0gaG91cnNcIn0seEhvdXJzOntvbmU6XCIxIGhvdXJcIixvdGhlcjpcInt7Y291bnR9fSBob3Vyc1wifSx4RGF5czp7b25lOlwiMSBkYXlcIixvdGhlcjpcInt7Y291bnR9fSBkYXlzXCJ9LGFib3V0WFdlZWtzOntvbmU6XCJhYm91dCAxIHdlZWtcIixvdGhlcjpcImFib3V0IHt7Y291bnR9fSB3ZWVrc1wifSx4V2Vla3M6e29uZTpcIjEgd2Vla1wiLG90aGVyOlwie3tjb3VudH19IHdlZWtzXCJ9LGFib3V0WE1vbnRoczp7b25lOlwiYWJvdXQgMSBtb250aFwiLG90aGVyOlwiYWJvdXQge3tjb3VudH19IG1vbnRoc1wifSx4TW9udGhzOntvbmU6XCIxIG1vbnRoXCIsb3RoZXI6XCJ7e2NvdW50fX0gbW9udGhzXCJ9LGFib3V0WFllYXJzOntvbmU6XCJhYm91dCAxIHllYXJcIixvdGhlcjpcImFib3V0IHt7Y291bnR9fSB5ZWFyc1wifSx4WWVhcnM6e29uZTpcIjEgeWVhclwiLG90aGVyOlwie3tjb3VudH19IHllYXJzXCJ9LG92ZXJYWWVhcnM6e29uZTpcIm92ZXIgMSB5ZWFyXCIsb3RoZXI6XCJvdmVyIHt7Y291bnR9fSB5ZWFyc1wifSxhbG1vc3RYWWVhcnM6e29uZTpcImFsbW9zdCAxIHllYXJcIixvdGhlcjpcImFsbW9zdCB7e2NvdW50fX0geWVhcnNcIn19O2Z1bmN0aW9uIFZfKGUpe3JldHVybih0PXt9KT0+e2NvbnN0IG49dC53aWR0aD9TdHJpbmcodC53aWR0aCk6ZS5kZWZhdWx0V2lkdGg7cmV0dXJuIGUuZm9ybWF0c1tuXXx8ZS5mb3JtYXRzW2UuZGVmYXVsdFdpZHRoXX19Y29uc3QgVV89e2RhdGU6Vl8oe2Zvcm1hdHM6e2Z1bGw6XCJFRUVFLCBNTU1NIGRvLCB5XCIsbG9uZzpcIk1NTU0gZG8sIHlcIixtZWRpdW06XCJNTU0gZCwgeVwiLHNob3J0OlwiTU0vZGQveXl5eVwifSxkZWZhdWx0V2lkdGg6XCJmdWxsXCJ9KSx0aW1lOlZfKHtmb3JtYXRzOntmdWxsOlwiaDptbTpzcyBhIHp6enpcIixsb25nOlwiaDptbTpzcyBhIHpcIixtZWRpdW06XCJoOm1tOnNzIGFcIixzaG9ydDpcImg6bW0gYVwifSxkZWZhdWx0V2lkdGg6XCJmdWxsXCJ9KSxkYXRlVGltZTpWXyh7Zm9ybWF0czp7ZnVsbDpcInt7ZGF0ZX19ICdhdCcge3t0aW1lfX1cIixsb25nOlwie3tkYXRlfX0gJ2F0JyB7e3RpbWV9fVwiLG1lZGl1bTpcInt7ZGF0ZX19LCB7e3RpbWV9fVwiLHNob3J0Olwie3tkYXRlfX0sIHt7dGltZX19XCJ9LGRlZmF1bHRXaWR0aDpcImZ1bGxcIn0pfSwkXz17bGFzdFdlZWs6XCInbGFzdCcgZWVlZSAnYXQnIHBcIix5ZXN0ZXJkYXk6XCIneWVzdGVyZGF5IGF0JyBwXCIsdG9kYXk6XCIndG9kYXkgYXQnIHBcIix0b21vcnJvdzpcIid0b21vcnJvdyBhdCcgcFwiLG5leHRXZWVrOlwiZWVlZSAnYXQnIHBcIixvdGhlcjpcIlBcIn07ZnVuY3Rpb24gWV8oZSl7cmV0dXJuKHQsbik9PntsZXQgcjtpZihcImZvcm1hdHRpbmdcIj09PShuPy5jb250ZXh0P1N0cmluZyhuLmNvbnRleHQpOlwic3RhbmRhbG9uZVwiKSYmZS5mb3JtYXR0aW5nVmFsdWVzKXtjb25zdCB0PWUuZGVmYXVsdEZvcm1hdHRpbmdXaWR0aHx8ZS5kZWZhdWx0V2lkdGgsbz1uPy53aWR0aD9TdHJpbmcobi53aWR0aCk6dDtyPWUuZm9ybWF0dGluZ1ZhbHVlc1tvXXx8ZS5mb3JtYXR0aW5nVmFsdWVzW3RdfWVsc2V7Y29uc3QgdD1lLmRlZmF1bHRXaWR0aCxvPW4/LndpZHRoP1N0cmluZyhuLndpZHRoKTplLmRlZmF1bHRXaWR0aDtyPWUudmFsdWVzW29dfHxlLnZhbHVlc1t0XX1yZXR1cm4gcltlLmFyZ3VtZW50Q2FsbGJhY2s/ZS5hcmd1bWVudENhbGxiYWNrKHQpOnRdfX1jb25zdCBIXz17b3JkaW5hbE51bWJlcjooZSx0KT0+e2NvbnN0IG49TnVtYmVyKGUpLHI9biUxMDA7aWYocj4yMHx8cjwxMClzd2l0Y2gociUxMCl7Y2FzZSAxOnJldHVybiBuK1wic3RcIjtjYXNlIDI6cmV0dXJuIG4rXCJuZFwiO2Nhc2UgMzpyZXR1cm4gbitcInJkXCJ9cmV0dXJuIG4rXCJ0aFwifSxlcmE6WV8oe3ZhbHVlczp7bmFycm93OltcIkJcIixcIkFcIl0sYWJicmV2aWF0ZWQ6W1wiQkNcIixcIkFEXCJdLHdpZGU6W1wiQmVmb3JlIENocmlzdFwiLFwiQW5ubyBEb21pbmlcIl19LGRlZmF1bHRXaWR0aDpcIndpZGVcIn0pLHF1YXJ0ZXI6WV8oe3ZhbHVlczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIl0sYWJicmV2aWF0ZWQ6W1wiUTFcIixcIlEyXCIsXCJRM1wiLFwiUTRcIl0sd2lkZTpbXCIxc3QgcXVhcnRlclwiLFwiMm5kIHF1YXJ0ZXJcIixcIjNyZCBxdWFydGVyXCIsXCI0dGggcXVhcnRlclwiXX0sZGVmYXVsdFdpZHRoOlwid2lkZVwiLGFyZ3VtZW50Q2FsbGJhY2s6ZT0+ZS0xfSksbW9udGg6WV8oe3ZhbHVlczp7bmFycm93OltcIkpcIixcIkZcIixcIk1cIixcIkFcIixcIk1cIixcIkpcIixcIkpcIixcIkFcIixcIlNcIixcIk9cIixcIk5cIixcIkRcIl0sYWJicmV2aWF0ZWQ6W1wiSmFuXCIsXCJGZWJcIixcIk1hclwiLFwiQXByXCIsXCJNYXlcIixcIkp1blwiLFwiSnVsXCIsXCJBdWdcIixcIlNlcFwiLFwiT2N0XCIsXCJOb3ZcIixcIkRlY1wiXSx3aWRlOltcIkphbnVhcnlcIixcIkZlYnJ1YXJ5XCIsXCJNYXJjaFwiLFwiQXByaWxcIixcIk1heVwiLFwiSnVuZVwiLFwiSnVseVwiLFwiQXVndXN0XCIsXCJTZXB0ZW1iZXJcIixcIk9jdG9iZXJcIixcIk5vdmVtYmVyXCIsXCJEZWNlbWJlclwiXX0sZGVmYXVsdFdpZHRoOlwid2lkZVwifSksZGF5OllfKHt2YWx1ZXM6e25hcnJvdzpbXCJTXCIsXCJNXCIsXCJUXCIsXCJXXCIsXCJUXCIsXCJGXCIsXCJTXCJdLHNob3J0OltcIlN1XCIsXCJNb1wiLFwiVHVcIixcIldlXCIsXCJUaFwiLFwiRnJcIixcIlNhXCJdLGFiYnJldmlhdGVkOltcIlN1blwiLFwiTW9uXCIsXCJUdWVcIixcIldlZFwiLFwiVGh1XCIsXCJGcmlcIixcIlNhdFwiXSx3aWRlOltcIlN1bmRheVwiLFwiTW9uZGF5XCIsXCJUdWVzZGF5XCIsXCJXZWRuZXNkYXlcIixcIlRodXJzZGF5XCIsXCJGcmlkYXlcIixcIlNhdHVyZGF5XCJdfSxkZWZhdWx0V2lkdGg6XCJ3aWRlXCJ9KSxkYXlQZXJpb2Q6WV8oe3ZhbHVlczp7bmFycm93OnthbTpcImFcIixwbTpcInBcIixtaWRuaWdodDpcIm1pXCIsbm9vbjpcIm5cIixtb3JuaW5nOlwibW9ybmluZ1wiLGFmdGVybm9vbjpcImFmdGVybm9vblwiLGV2ZW5pbmc6XCJldmVuaW5nXCIsbmlnaHQ6XCJuaWdodFwifSxhYmJyZXZpYXRlZDp7YW06XCJBTVwiLHBtOlwiUE1cIixtaWRuaWdodDpcIm1pZG5pZ2h0XCIsbm9vbjpcIm5vb25cIixtb3JuaW5nOlwibW9ybmluZ1wiLGFmdGVybm9vbjpcImFmdGVybm9vblwiLGV2ZW5pbmc6XCJldmVuaW5nXCIsbmlnaHQ6XCJuaWdodFwifSx3aWRlOnthbTpcImEubS5cIixwbTpcInAubS5cIixtaWRuaWdodDpcIm1pZG5pZ2h0XCIsbm9vbjpcIm5vb25cIixtb3JuaW5nOlwibW9ybmluZ1wiLGFmdGVybm9vbjpcImFmdGVybm9vblwiLGV2ZW5pbmc6XCJldmVuaW5nXCIsbmlnaHQ6XCJuaWdodFwifX0sZGVmYXVsdFdpZHRoOlwid2lkZVwiLGZvcm1hdHRpbmdWYWx1ZXM6e25hcnJvdzp7YW06XCJhXCIscG06XCJwXCIsbWlkbmlnaHQ6XCJtaVwiLG5vb246XCJuXCIsbW9ybmluZzpcImluIHRoZSBtb3JuaW5nXCIsYWZ0ZXJub29uOlwiaW4gdGhlIGFmdGVybm9vblwiLGV2ZW5pbmc6XCJpbiB0aGUgZXZlbmluZ1wiLG5pZ2h0OlwiYXQgbmlnaHRcIn0sYWJicmV2aWF0ZWQ6e2FtOlwiQU1cIixwbTpcIlBNXCIsbWlkbmlnaHQ6XCJtaWRuaWdodFwiLG5vb246XCJub29uXCIsbW9ybmluZzpcImluIHRoZSBtb3JuaW5nXCIsYWZ0ZXJub29uOlwiaW4gdGhlIGFmdGVybm9vblwiLGV2ZW5pbmc6XCJpbiB0aGUgZXZlbmluZ1wiLG5pZ2h0OlwiYXQgbmlnaHRcIn0sd2lkZTp7YW06XCJhLm0uXCIscG06XCJwLm0uXCIsbWlkbmlnaHQ6XCJtaWRuaWdodFwiLG5vb246XCJub29uXCIsbW9ybmluZzpcImluIHRoZSBtb3JuaW5nXCIsYWZ0ZXJub29uOlwiaW4gdGhlIGFmdGVybm9vblwiLGV2ZW5pbmc6XCJpbiB0aGUgZXZlbmluZ1wiLG5pZ2h0OlwiYXQgbmlnaHRcIn19LGRlZmF1bHRGb3JtYXR0aW5nV2lkdGg6XCJ3aWRlXCJ9KX07ZnVuY3Rpb24gS18oZSl7cmV0dXJuKHQsbj17fSk9Pntjb25zdCByPW4ud2lkdGgsbz1yJiZlLm1hdGNoUGF0dGVybnNbcl18fGUubWF0Y2hQYXR0ZXJuc1tlLmRlZmF1bHRNYXRjaFdpZHRoXSxpPXQubWF0Y2gobyk7aWYoIWkpcmV0dXJuIG51bGw7Y29uc3Qgcz1pWzBdLGE9ciYmZS5wYXJzZVBhdHRlcm5zW3JdfHxlLnBhcnNlUGF0dGVybnNbZS5kZWZhdWx0UGFyc2VXaWR0aF0sbD1BcnJheS5pc0FycmF5KGEpP2Z1bmN0aW9uKGUpe2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKWlmKGVbdF0udGVzdChzKSlyZXR1cm4gdH0oYSk6ZnVuY3Rpb24oZSl7Zm9yKGNvbnN0IHQgaW4gZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KSYmZVt0XS50ZXN0KHMpKXJldHVybiB0fShhKTtsZXQgYztyZXR1cm4gYz1lLnZhbHVlQ2FsbGJhY2s/ZS52YWx1ZUNhbGxiYWNrKGwpOmwsYz1uLnZhbHVlQ2FsbGJhY2s/bi52YWx1ZUNhbGxiYWNrKGMpOmMse3ZhbHVlOmMscmVzdDp0LnNsaWNlKHMubGVuZ3RoKX19fWNvbnN0IHFfPXtvcmRpbmFsTnVtYmVyOihHXz17bWF0Y2hQYXR0ZXJuOi9eKFxcZCspKHRofHN0fG5kfHJkKT8vaSxwYXJzZVBhdHRlcm46L1xcZCsvaSx2YWx1ZUNhbGxiYWNrOmU9PnBhcnNlSW50KGUsMTApfSwoZSx0PXt9KT0+e2NvbnN0IG49ZS5tYXRjaChHXy5tYXRjaFBhdHRlcm4pO2lmKCFuKXJldHVybiBudWxsO2NvbnN0IHI9blswXSxvPWUubWF0Y2goR18ucGFyc2VQYXR0ZXJuKTtpZighbylyZXR1cm4gbnVsbDtsZXQgaT1HXy52YWx1ZUNhbGxiYWNrP0dfLnZhbHVlQ2FsbGJhY2sob1swXSk6b1swXTtyZXR1cm4gaT10LnZhbHVlQ2FsbGJhY2s/dC52YWx1ZUNhbGxiYWNrKGkpOmkse3ZhbHVlOmkscmVzdDplLnNsaWNlKHIubGVuZ3RoKX19KSxlcmE6S18oe21hdGNoUGF0dGVybnM6e25hcnJvdzovXihifGEpL2ksYWJicmV2aWF0ZWQ6L14oYlxcLj9cXHM/Y1xcLj98YlxcLj9cXHM/Y1xcLj9cXHM/ZVxcLj98YVxcLj9cXHM/ZFxcLj98Y1xcLj9cXHM/ZVxcLj8pL2ksd2lkZTovXihiZWZvcmUgY2hyaXN0fGJlZm9yZSBjb21tb24gZXJhfGFubm8gZG9taW5pfGNvbW1vbiBlcmEpL2l9LGRlZmF1bHRNYXRjaFdpZHRoOlwid2lkZVwiLHBhcnNlUGF0dGVybnM6e2FueTpbL15iL2ksL14oYXxjKS9pXX0sZGVmYXVsdFBhcnNlV2lkdGg6XCJhbnlcIn0pLHF1YXJ0ZXI6S18oe21hdGNoUGF0dGVybnM6e25hcnJvdzovXlsxMjM0XS9pLGFiYnJldmlhdGVkOi9ecVsxMjM0XS9pLHdpZGU6L15bMTIzNF0odGh8c3R8bmR8cmQpPyBxdWFydGVyL2l9LGRlZmF1bHRNYXRjaFdpZHRoOlwid2lkZVwiLHBhcnNlUGF0dGVybnM6e2FueTpbLzEvaSwvMi9pLC8zL2ksLzQvaV19LGRlZmF1bHRQYXJzZVdpZHRoOlwiYW55XCIsdmFsdWVDYWxsYmFjazplPT5lKzF9KSxtb250aDpLXyh7bWF0Y2hQYXR0ZXJuczp7bmFycm93Oi9eW2pmbWFzb25kXS9pLGFiYnJldmlhdGVkOi9eKGphbnxmZWJ8bWFyfGFwcnxtYXl8anVufGp1bHxhdWd8c2VwfG9jdHxub3Z8ZGVjKS9pLHdpZGU6L14oamFudWFyeXxmZWJydWFyeXxtYXJjaHxhcHJpbHxtYXl8anVuZXxqdWx5fGF1Z3VzdHxzZXB0ZW1iZXJ8b2N0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcikvaX0sZGVmYXVsdE1hdGNoV2lkdGg6XCJ3aWRlXCIscGFyc2VQYXR0ZXJuczp7bmFycm93OlsvXmovaSwvXmYvaSwvXm0vaSwvXmEvaSwvXm0vaSwvXmovaSwvXmovaSwvXmEvaSwvXnMvaSwvXm8vaSwvXm4vaSwvXmQvaV0sYW55OlsvXmphL2ksL15mL2ksL15tYXIvaSwvXmFwL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hdS9pLC9ecy9pLC9eby9pLC9ebi9pLC9eZC9pXX0sZGVmYXVsdFBhcnNlV2lkdGg6XCJhbnlcIn0pLGRheTpLXyh7bWF0Y2hQYXR0ZXJuczp7bmFycm93Oi9eW3NtdHdmXS9pLHNob3J0Oi9eKHN1fG1vfHR1fHdlfHRofGZyfHNhKS9pLGFiYnJldmlhdGVkOi9eKHN1bnxtb258dHVlfHdlZHx0aHV8ZnJpfHNhdCkvaSx3aWRlOi9eKHN1bmRheXxtb25kYXl8dHVlc2RheXx3ZWRuZXNkYXl8dGh1cnNkYXl8ZnJpZGF5fHNhdHVyZGF5KS9pfSxkZWZhdWx0TWF0Y2hXaWR0aDpcIndpZGVcIixwYXJzZVBhdHRlcm5zOntuYXJyb3c6Wy9ecy9pLC9ebS9pLC9edC9pLC9edy9pLC9edC9pLC9eZi9pLC9ecy9pXSxhbnk6Wy9ec3UvaSwvXm0vaSwvXnR1L2ksL153L2ksL150aC9pLC9eZi9pLC9ec2EvaV19LGRlZmF1bHRQYXJzZVdpZHRoOlwiYW55XCJ9KSxkYXlQZXJpb2Q6S18oe21hdGNoUGF0dGVybnM6e25hcnJvdzovXihhfHB8bWl8bnwoaW4gdGhlfGF0KSAobW9ybmluZ3xhZnRlcm5vb258ZXZlbmluZ3xuaWdodCkpL2ksYW55Oi9eKFthcF1cXC4/XFxzP21cXC4/fG1pZG5pZ2h0fG5vb258KGluIHRoZXxhdCkgKG1vcm5pbmd8YWZ0ZXJub29ufGV2ZW5pbmd8bmlnaHQpKS9pfSxkZWZhdWx0TWF0Y2hXaWR0aDpcImFueVwiLHBhcnNlUGF0dGVybnM6e2FueTp7YW06L15hL2kscG06L15wL2ksbWlkbmlnaHQ6L15taS9pLG5vb246L15uby9pLG1vcm5pbmc6L21vcm5pbmcvaSxhZnRlcm5vb246L2FmdGVybm9vbi9pLGV2ZW5pbmc6L2V2ZW5pbmcvaSxuaWdodDovbmlnaHQvaX19LGRlZmF1bHRQYXJzZVdpZHRoOlwiYW55XCJ9KX07dmFyIEdfO2NvbnN0IFhfPXtjb2RlOlwiZW4tVVNcIixmb3JtYXREaXN0YW5jZTooZSx0LG4pPT57bGV0IHI7Y29uc3Qgbz1XX1tlXTtyZXR1cm4gcj1cInN0cmluZ1wiPT10eXBlb2Ygbz9vOjE9PT10P28ub25lOm8ub3RoZXIucmVwbGFjZShcInt7Y291bnR9fVwiLHQudG9TdHJpbmcoKSksbj8uYWRkU3VmZml4P24uY29tcGFyaXNvbiYmbi5jb21wYXJpc29uPjA/XCJpbiBcIityOnIrXCIgYWdvXCI6cn0sZm9ybWF0TG9uZzpVXyxmb3JtYXRSZWxhdGl2ZTooZSx0LG4scik9PiRfW2VdLGxvY2FsaXplOkhfLG1hdGNoOnFfLG9wdGlvbnM6e3dlZWtTdGFydHNPbjowLGZpcnN0V2Vla0NvbnRhaW5zRGF0ZToxfX07ZnVuY3Rpb24gWl8oZSx0KXtjb25zdCBuPU5fKGUsdD8uaW4pO3JldHVybiBuLnNldEZ1bGxZZWFyKG4uZ2V0RnVsbFllYXIoKSwwLDEpLG4uc2V0SG91cnMoMCwwLDAsMCksbn1mdW5jdGlvbiBKXyhlLHQpe2NvbnN0IG49Rl8oKSxyPXQ/LndlZWtTdGFydHNPbj8/dD8ubG9jYWxlPy5vcHRpb25zPy53ZWVrU3RhcnRzT24/P24ud2Vla1N0YXJ0c09uPz9uLmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz8wLG89Tl8oZSx0Py5pbiksaT1vLmdldERheSgpLHM9KGk8cj83OjApK2ktcjtyZXR1cm4gby5zZXREYXRlKG8uZ2V0RGF0ZSgpLXMpLG8uc2V0SG91cnMoMCwwLDAsMCksb31mdW5jdGlvbiBRXyhlLHQpe3JldHVybiBKXyhlLHsuLi50LHdlZWtTdGFydHNPbjoxfSl9ZnVuY3Rpb24gZVAoZSx0KXtjb25zdCBuPU5fKGUsdD8uaW4pLHI9bi5nZXRGdWxsWWVhcigpLG89T18obiwwKTtvLnNldEZ1bGxZZWFyKHIrMSwwLDQpLG8uc2V0SG91cnMoMCwwLDAsMCk7Y29uc3QgaT1RXyhvKSxzPU9fKG4sMCk7cy5zZXRGdWxsWWVhcihyLDAsNCkscy5zZXRIb3VycygwLDAsMCwwKTtjb25zdCBhPVFfKHMpO3JldHVybiBuLmdldFRpbWUoKT49aS5nZXRUaW1lKCk/cisxOm4uZ2V0VGltZSgpPj1hLmdldFRpbWUoKT9yOnItMX1mdW5jdGlvbiB0UChlLHQpe2NvbnN0IG49Tl8oZSx0Py5pbikscj0rUV8obiktK2Z1bmN0aW9uKGUsdCl7Y29uc3Qgbj1lUChlLHQpLHI9T18odD8uaW58fGUsMCk7cmV0dXJuIHIuc2V0RnVsbFllYXIobiwwLDQpLHIuc2V0SG91cnMoMCwwLDAsMCksUV8ocil9KG4pO3JldHVybiBNYXRoLnJvdW5kKHIvRV8pKzF9ZnVuY3Rpb24gblAoZSx0KXtjb25zdCBuPU5fKGUsdD8uaW4pLHI9bi5nZXRGdWxsWWVhcigpLG89Rl8oKSxpPXQ/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/dD8ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/P28uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9vLmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz8xLHM9T18odD8uaW58fGUsMCk7cy5zZXRGdWxsWWVhcihyKzEsMCxpKSxzLnNldEhvdXJzKDAsMCwwLDApO2NvbnN0IGE9Sl8ocyx0KSxsPU9fKHQ/LmlufHxlLDApO2wuc2V0RnVsbFllYXIociwwLGkpLGwuc2V0SG91cnMoMCwwLDAsMCk7Y29uc3QgYz1KXyhsLHQpO3JldHVybituPj0rYT9yKzE6K24+PStjP3I6ci0xfWZ1bmN0aW9uIHJQKGUsdCl7Y29uc3Qgbj1OXyhlLHQ/LmluKSxyPStKXyhuLHQpLStmdW5jdGlvbihlLHQpe2NvbnN0IG49Rl8oKSxyPXQ/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/dD8ubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/P24uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9uLmxvY2FsZT8ub3B0aW9ucz8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz8xLG89blAoZSx0KSxpPU9fKHQ/LmlufHxlLDApO3JldHVybiBpLnNldEZ1bGxZZWFyKG8sMCxyKSxpLnNldEhvdXJzKDAsMCwwLDApLEpfKGksdCl9KG4sdCk7cmV0dXJuIE1hdGgucm91bmQoci9FXykrMX1mdW5jdGlvbiBvUChlLHQpe3JldHVybihlPDA/XCItXCI6XCJcIikrTWF0aC5hYnMoZSkudG9TdHJpbmcoKS5wYWRTdGFydCh0LFwiMFwiKX1jb25zdCBpUD17eShlLHQpe2NvbnN0IG49ZS5nZXRGdWxsWWVhcigpLHI9bj4wP246MS1uO3JldHVybiBvUChcInl5XCI9PT10P3IlMTAwOnIsdC5sZW5ndGgpfSxNKGUsdCl7Y29uc3Qgbj1lLmdldE1vbnRoKCk7cmV0dXJuXCJNXCI9PT10P1N0cmluZyhuKzEpOm9QKG4rMSwyKX0sZChlLHQpe3JldHVybiBvUChlLmdldERhdGUoKSx0Lmxlbmd0aCl9LGEoZSx0KXtjb25zdCBuPWUuZ2V0SG91cnMoKS8xMj49MT9cInBtXCI6XCJhbVwiO3N3aXRjaCh0KXtjYXNlXCJhXCI6Y2FzZVwiYWFcIjpyZXR1cm4gbi50b1VwcGVyQ2FzZSgpO2Nhc2VcImFhYVwiOnJldHVybiBuO2Nhc2VcImFhYWFhXCI6cmV0dXJuIG5bMF07ZGVmYXVsdDpyZXR1cm5cImFtXCI9PT1uP1wiYS5tLlwiOlwicC5tLlwifX0saChlLHQpe3JldHVybiBvUChlLmdldEhvdXJzKCklMTJ8fDEyLHQubGVuZ3RoKX0sSChlLHQpe3JldHVybiBvUChlLmdldEhvdXJzKCksdC5sZW5ndGgpfSxtKGUsdCl7cmV0dXJuIG9QKGUuZ2V0TWludXRlcygpLHQubGVuZ3RoKX0scyhlLHQpe3JldHVybiBvUChlLmdldFNlY29uZHMoKSx0Lmxlbmd0aCl9LFMoZSx0KXtjb25zdCBuPXQubGVuZ3RoLHI9ZS5nZXRNaWxsaXNlY29uZHMoKTtyZXR1cm4gb1AoTWF0aC50cnVuYyhyKk1hdGgucG93KDEwLG4tMykpLHQubGVuZ3RoKX19LHNQPXtHOmZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWUuZ2V0RnVsbFllYXIoKT4wPzE6MDtzd2l0Y2godCl7Y2FzZVwiR1wiOmNhc2VcIkdHXCI6Y2FzZVwiR0dHXCI6cmV0dXJuIG4uZXJhKHIse3dpZHRoOlwiYWJicmV2aWF0ZWRcIn0pO2Nhc2VcIkdHR0dHXCI6cmV0dXJuIG4uZXJhKHIse3dpZHRoOlwibmFycm93XCJ9KTtkZWZhdWx0OnJldHVybiBuLmVyYShyLHt3aWR0aDpcIndpZGVcIn0pfX0seTpmdW5jdGlvbihlLHQsbil7aWYoXCJ5b1wiPT09dCl7Y29uc3QgdD1lLmdldEZ1bGxZZWFyKCkscj10PjA/dDoxLXQ7cmV0dXJuIG4ub3JkaW5hbE51bWJlcihyLHt1bml0OlwieWVhclwifSl9cmV0dXJuIGlQLnkoZSx0KX0sWTpmdW5jdGlvbihlLHQsbixyKXtjb25zdCBvPW5QKGUsciksaT1vPjA/bzoxLW87cmV0dXJuXCJZWVwiPT09dD9vUChpJTEwMCwyKTpcIllvXCI9PT10P24ub3JkaW5hbE51bWJlcihpLHt1bml0OlwieWVhclwifSk6b1AoaSx0Lmxlbmd0aCl9LFI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gb1AoZVAoZSksdC5sZW5ndGgpfSx1OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG9QKGUuZ2V0RnVsbFllYXIoKSx0Lmxlbmd0aCl9LFE6ZnVuY3Rpb24oZSx0LG4pe2NvbnN0IHI9TWF0aC5jZWlsKChlLmdldE1vbnRoKCkrMSkvMyk7c3dpdGNoKHQpe2Nhc2VcIlFcIjpyZXR1cm4gU3RyaW5nKHIpO2Nhc2VcIlFRXCI6cmV0dXJuIG9QKHIsMik7Y2FzZVwiUW9cIjpyZXR1cm4gbi5vcmRpbmFsTnVtYmVyKHIse3VuaXQ6XCJxdWFydGVyXCJ9KTtjYXNlXCJRUVFcIjpyZXR1cm4gbi5xdWFydGVyKHIse3dpZHRoOlwiYWJicmV2aWF0ZWRcIixjb250ZXh0OlwiZm9ybWF0dGluZ1wifSk7Y2FzZVwiUVFRUVFcIjpyZXR1cm4gbi5xdWFydGVyKHIse3dpZHRoOlwibmFycm93XCIsY29udGV4dDpcImZvcm1hdHRpbmdcIn0pO2RlZmF1bHQ6cmV0dXJuIG4ucXVhcnRlcihyLHt3aWR0aDpcIndpZGVcIixjb250ZXh0OlwiZm9ybWF0dGluZ1wifSl9fSxxOmZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPU1hdGguY2VpbCgoZS5nZXRNb250aCgpKzEpLzMpO3N3aXRjaCh0KXtjYXNlXCJxXCI6cmV0dXJuIFN0cmluZyhyKTtjYXNlXCJxcVwiOnJldHVybiBvUChyLDIpO2Nhc2VcInFvXCI6cmV0dXJuIG4ub3JkaW5hbE51bWJlcihyLHt1bml0OlwicXVhcnRlclwifSk7Y2FzZVwicXFxXCI6cmV0dXJuIG4ucXVhcnRlcihyLHt3aWR0aDpcImFiYnJldmlhdGVkXCIsY29udGV4dDpcInN0YW5kYWxvbmVcIn0pO2Nhc2VcInFxcXFxXCI6cmV0dXJuIG4ucXVhcnRlcihyLHt3aWR0aDpcIm5hcnJvd1wiLGNvbnRleHQ6XCJzdGFuZGFsb25lXCJ9KTtkZWZhdWx0OnJldHVybiBuLnF1YXJ0ZXIocix7d2lkdGg6XCJ3aWRlXCIsY29udGV4dDpcInN0YW5kYWxvbmVcIn0pfX0sTTpmdW5jdGlvbihlLHQsbil7Y29uc3Qgcj1lLmdldE1vbnRoKCk7c3dpdGNoKHQpe2Nhc2VcIk1cIjpjYXNlXCJNTVwiOnJldHVybiBpUC5NKGUsdCk7Y2FzZVwiTW9cIjpyZXR1cm4gbi5vcmRpbmFsTnVtYmVyKHIrMSx7dW5pdDpcIm1vbnRoXCJ9KTtjYXNlXCJNTU1cIjpyZXR1cm4gbi5tb250aChyLHt3aWR0aDpcImFiYnJldmlhdGVkXCIsY29udGV4dDpcImZvcm1hdHRpbmdcIn0pO2Nhc2VcIk1NTU1NXCI6cmV0dXJuIG4ubW9udGgocix7d2lkdGg6XCJuYXJyb3dcIixjb250ZXh0OlwiZm9ybWF0dGluZ1wifSk7ZGVmYXVsdDpyZXR1cm4gbi5tb250aChyLHt3aWR0aDpcIndpZGVcIixjb250ZXh0OlwiZm9ybWF0dGluZ1wifSl9fSxMOmZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWUuZ2V0TW9udGgoKTtzd2l0Y2godCl7Y2FzZVwiTFwiOnJldHVybiBTdHJpbmcocisxKTtjYXNlXCJMTFwiOnJldHVybiBvUChyKzEsMik7Y2FzZVwiTG9cIjpyZXR1cm4gbi5vcmRpbmFsTnVtYmVyKHIrMSx7dW5pdDpcIm1vbnRoXCJ9KTtjYXNlXCJMTExcIjpyZXR1cm4gbi5tb250aChyLHt3aWR0aDpcImFiYnJldmlhdGVkXCIsY29udGV4dDpcInN0YW5kYWxvbmVcIn0pO2Nhc2VcIkxMTExMXCI6cmV0dXJuIG4ubW9udGgocix7d2lkdGg6XCJuYXJyb3dcIixjb250ZXh0Olwic3RhbmRhbG9uZVwifSk7ZGVmYXVsdDpyZXR1cm4gbi5tb250aChyLHt3aWR0aDpcIndpZGVcIixjb250ZXh0Olwic3RhbmRhbG9uZVwifSl9fSx3OmZ1bmN0aW9uKGUsdCxuLHIpe2NvbnN0IG89clAoZSxyKTtyZXR1cm5cIndvXCI9PT10P24ub3JkaW5hbE51bWJlcihvLHt1bml0Olwid2Vla1wifSk6b1Aobyx0Lmxlbmd0aCl9LEk6ZnVuY3Rpb24oZSx0LG4pe2NvbnN0IHI9dFAoZSk7cmV0dXJuXCJJb1wiPT09dD9uLm9yZGluYWxOdW1iZXIocix7dW5pdDpcIndlZWtcIn0pOm9QKHIsdC5sZW5ndGgpfSxkOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm5cImRvXCI9PT10P24ub3JkaW5hbE51bWJlcihlLmdldERhdGUoKSx7dW5pdDpcImRhdGVcIn0pOmlQLmQoZSx0KX0sRDpmdW5jdGlvbihlLHQsbil7Y29uc3Qgcj1mdW5jdGlvbihlLHQpe2NvbnN0IG49Tl8oZSx0Py5pbik7cmV0dXJuIElfKG4sWl8obikpKzF9KGUpO3JldHVyblwiRG9cIj09PXQ/bi5vcmRpbmFsTnVtYmVyKHIse3VuaXQ6XCJkYXlPZlllYXJcIn0pOm9QKHIsdC5sZW5ndGgpfSxFOmZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWUuZ2V0RGF5KCk7c3dpdGNoKHQpe2Nhc2VcIkVcIjpjYXNlXCJFRVwiOmNhc2VcIkVFRVwiOnJldHVybiBuLmRheShyLHt3aWR0aDpcImFiYnJldmlhdGVkXCIsY29udGV4dDpcImZvcm1hdHRpbmdcIn0pO2Nhc2VcIkVFRUVFXCI6cmV0dXJuIG4uZGF5KHIse3dpZHRoOlwibmFycm93XCIsY29udGV4dDpcImZvcm1hdHRpbmdcIn0pO2Nhc2VcIkVFRUVFRVwiOnJldHVybiBuLmRheShyLHt3aWR0aDpcInNob3J0XCIsY29udGV4dDpcImZvcm1hdHRpbmdcIn0pO2RlZmF1bHQ6cmV0dXJuIG4uZGF5KHIse3dpZHRoOlwid2lkZVwiLGNvbnRleHQ6XCJmb3JtYXR0aW5nXCJ9KX19LGU6ZnVuY3Rpb24oZSx0LG4scil7Y29uc3Qgbz1lLmdldERheSgpLGk9KG8tci53ZWVrU3RhcnRzT24rOCklN3x8Nztzd2l0Y2godCl7Y2FzZVwiZVwiOnJldHVybiBTdHJpbmcoaSk7Y2FzZVwiZWVcIjpyZXR1cm4gb1AoaSwyKTtjYXNlXCJlb1wiOnJldHVybiBuLm9yZGluYWxOdW1iZXIoaSx7dW5pdDpcImRheVwifSk7Y2FzZVwiZWVlXCI6cmV0dXJuIG4uZGF5KG8se3dpZHRoOlwiYWJicmV2aWF0ZWRcIixjb250ZXh0OlwiZm9ybWF0dGluZ1wifSk7Y2FzZVwiZWVlZWVcIjpyZXR1cm4gbi5kYXkobyx7d2lkdGg6XCJuYXJyb3dcIixjb250ZXh0OlwiZm9ybWF0dGluZ1wifSk7Y2FzZVwiZWVlZWVlXCI6cmV0dXJuIG4uZGF5KG8se3dpZHRoOlwic2hvcnRcIixjb250ZXh0OlwiZm9ybWF0dGluZ1wifSk7ZGVmYXVsdDpyZXR1cm4gbi5kYXkobyx7d2lkdGg6XCJ3aWRlXCIsY29udGV4dDpcImZvcm1hdHRpbmdcIn0pfX0sYzpmdW5jdGlvbihlLHQsbixyKXtjb25zdCBvPWUuZ2V0RGF5KCksaT0oby1yLndlZWtTdGFydHNPbis4KSU3fHw3O3N3aXRjaCh0KXtjYXNlXCJjXCI6cmV0dXJuIFN0cmluZyhpKTtjYXNlXCJjY1wiOnJldHVybiBvUChpLHQubGVuZ3RoKTtjYXNlXCJjb1wiOnJldHVybiBuLm9yZGluYWxOdW1iZXIoaSx7dW5pdDpcImRheVwifSk7Y2FzZVwiY2NjXCI6cmV0dXJuIG4uZGF5KG8se3dpZHRoOlwiYWJicmV2aWF0ZWRcIixjb250ZXh0Olwic3RhbmRhbG9uZVwifSk7Y2FzZVwiY2NjY2NcIjpyZXR1cm4gbi5kYXkobyx7d2lkdGg6XCJuYXJyb3dcIixjb250ZXh0Olwic3RhbmRhbG9uZVwifSk7Y2FzZVwiY2NjY2NjXCI6cmV0dXJuIG4uZGF5KG8se3dpZHRoOlwic2hvcnRcIixjb250ZXh0Olwic3RhbmRhbG9uZVwifSk7ZGVmYXVsdDpyZXR1cm4gbi5kYXkobyx7d2lkdGg6XCJ3aWRlXCIsY29udGV4dDpcInN0YW5kYWxvbmVcIn0pfX0saTpmdW5jdGlvbihlLHQsbil7Y29uc3Qgcj1lLmdldERheSgpLG89MD09PXI/NzpyO3N3aXRjaCh0KXtjYXNlXCJpXCI6cmV0dXJuIFN0cmluZyhvKTtjYXNlXCJpaVwiOnJldHVybiBvUChvLHQubGVuZ3RoKTtjYXNlXCJpb1wiOnJldHVybiBuLm9yZGluYWxOdW1iZXIobyx7dW5pdDpcImRheVwifSk7Y2FzZVwiaWlpXCI6cmV0dXJuIG4uZGF5KHIse3dpZHRoOlwiYWJicmV2aWF0ZWRcIixjb250ZXh0OlwiZm9ybWF0dGluZ1wifSk7Y2FzZVwiaWlpaWlcIjpyZXR1cm4gbi5kYXkocix7d2lkdGg6XCJuYXJyb3dcIixjb250ZXh0OlwiZm9ybWF0dGluZ1wifSk7Y2FzZVwiaWlpaWlpXCI6cmV0dXJuIG4uZGF5KHIse3dpZHRoOlwic2hvcnRcIixjb250ZXh0OlwiZm9ybWF0dGluZ1wifSk7ZGVmYXVsdDpyZXR1cm4gbi5kYXkocix7d2lkdGg6XCJ3aWRlXCIsY29udGV4dDpcImZvcm1hdHRpbmdcIn0pfX0sYTpmdW5jdGlvbihlLHQsbil7Y29uc3Qgcj1lLmdldEhvdXJzKCkvMTI+PTE/XCJwbVwiOlwiYW1cIjtzd2l0Y2godCl7Y2FzZVwiYVwiOmNhc2VcImFhXCI6cmV0dXJuIG4uZGF5UGVyaW9kKHIse3dpZHRoOlwiYWJicmV2aWF0ZWRcIixjb250ZXh0OlwiZm9ybWF0dGluZ1wifSk7Y2FzZVwiYWFhXCI6cmV0dXJuIG4uZGF5UGVyaW9kKHIse3dpZHRoOlwiYWJicmV2aWF0ZWRcIixjb250ZXh0OlwiZm9ybWF0dGluZ1wifSkudG9Mb3dlckNhc2UoKTtjYXNlXCJhYWFhYVwiOnJldHVybiBuLmRheVBlcmlvZChyLHt3aWR0aDpcIm5hcnJvd1wiLGNvbnRleHQ6XCJmb3JtYXR0aW5nXCJ9KTtkZWZhdWx0OnJldHVybiBuLmRheVBlcmlvZChyLHt3aWR0aDpcIndpZGVcIixjb250ZXh0OlwiZm9ybWF0dGluZ1wifSl9fSxiOmZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWUuZ2V0SG91cnMoKTtsZXQgbztzd2l0Y2gobz0xMj09PXI/XCJub29uXCI6MD09PXI/XCJtaWRuaWdodFwiOnIvMTI+PTE/XCJwbVwiOlwiYW1cIix0KXtjYXNlXCJiXCI6Y2FzZVwiYmJcIjpyZXR1cm4gbi5kYXlQZXJpb2Qobyx7d2lkdGg6XCJhYmJyZXZpYXRlZFwiLGNvbnRleHQ6XCJmb3JtYXR0aW5nXCJ9KTtjYXNlXCJiYmJcIjpyZXR1cm4gbi5kYXlQZXJpb2Qobyx7d2lkdGg6XCJhYmJyZXZpYXRlZFwiLGNvbnRleHQ6XCJmb3JtYXR0aW5nXCJ9KS50b0xvd2VyQ2FzZSgpO2Nhc2VcImJiYmJiXCI6cmV0dXJuIG4uZGF5UGVyaW9kKG8se3dpZHRoOlwibmFycm93XCIsY29udGV4dDpcImZvcm1hdHRpbmdcIn0pO2RlZmF1bHQ6cmV0dXJuIG4uZGF5UGVyaW9kKG8se3dpZHRoOlwid2lkZVwiLGNvbnRleHQ6XCJmb3JtYXR0aW5nXCJ9KX19LEI6ZnVuY3Rpb24oZSx0LG4pe2NvbnN0IHI9ZS5nZXRIb3VycygpO2xldCBvO3N3aXRjaChvPXI+PTE3P1wiZXZlbmluZ1wiOnI+PTEyP1wiYWZ0ZXJub29uXCI6cj49ND9cIm1vcm5pbmdcIjpcIm5pZ2h0XCIsdCl7Y2FzZVwiQlwiOmNhc2VcIkJCXCI6Y2FzZVwiQkJCXCI6cmV0dXJuIG4uZGF5UGVyaW9kKG8se3dpZHRoOlwiYWJicmV2aWF0ZWRcIixjb250ZXh0OlwiZm9ybWF0dGluZ1wifSk7Y2FzZVwiQkJCQkJcIjpyZXR1cm4gbi5kYXlQZXJpb2Qobyx7d2lkdGg6XCJuYXJyb3dcIixjb250ZXh0OlwiZm9ybWF0dGluZ1wifSk7ZGVmYXVsdDpyZXR1cm4gbi5kYXlQZXJpb2Qobyx7d2lkdGg6XCJ3aWRlXCIsY29udGV4dDpcImZvcm1hdHRpbmdcIn0pfX0saDpmdW5jdGlvbihlLHQsbil7aWYoXCJob1wiPT09dCl7bGV0IHQ9ZS5nZXRIb3VycygpJTEyO3JldHVybiAwPT09dCYmKHQ9MTIpLG4ub3JkaW5hbE51bWJlcih0LHt1bml0OlwiaG91clwifSl9cmV0dXJuIGlQLmgoZSx0KX0sSDpmdW5jdGlvbihlLHQsbil7cmV0dXJuXCJIb1wiPT09dD9uLm9yZGluYWxOdW1iZXIoZS5nZXRIb3VycygpLHt1bml0OlwiaG91clwifSk6aVAuSChlLHQpfSxLOmZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWUuZ2V0SG91cnMoKSUxMjtyZXR1cm5cIktvXCI9PT10P24ub3JkaW5hbE51bWJlcihyLHt1bml0OlwiaG91clwifSk6b1Aocix0Lmxlbmd0aCl9LGs6ZnVuY3Rpb24oZSx0LG4pe2xldCByPWUuZ2V0SG91cnMoKTtyZXR1cm4gMD09PXImJihyPTI0KSxcImtvXCI9PT10P24ub3JkaW5hbE51bWJlcihyLHt1bml0OlwiaG91clwifSk6b1Aocix0Lmxlbmd0aCl9LG06ZnVuY3Rpb24oZSx0LG4pe3JldHVyblwibW9cIj09PXQ/bi5vcmRpbmFsTnVtYmVyKGUuZ2V0TWludXRlcygpLHt1bml0OlwibWludXRlXCJ9KTppUC5tKGUsdCl9LHM6ZnVuY3Rpb24oZSx0LG4pe3JldHVyblwic29cIj09PXQ/bi5vcmRpbmFsTnVtYmVyKGUuZ2V0U2Vjb25kcygpLHt1bml0Olwic2Vjb25kXCJ9KTppUC5zKGUsdCl9LFM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gaVAuUyhlLHQpfSxYOmZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtpZigwPT09cilyZXR1cm5cIlpcIjtzd2l0Y2godCl7Y2FzZVwiWFwiOnJldHVybiBsUChyKTtjYXNlXCJYWFhYXCI6Y2FzZVwiWFhcIjpyZXR1cm4gY1Aocik7ZGVmYXVsdDpyZXR1cm4gY1AocixcIjpcIil9fSx4OmZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2godCl7Y2FzZVwieFwiOnJldHVybiBsUChyKTtjYXNlXCJ4eHh4XCI6Y2FzZVwieHhcIjpyZXR1cm4gY1Aocik7ZGVmYXVsdDpyZXR1cm4gY1AocixcIjpcIil9fSxPOmZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2godCl7Y2FzZVwiT1wiOmNhc2VcIk9PXCI6Y2FzZVwiT09PXCI6cmV0dXJuXCJHTVRcIithUChyLFwiOlwiKTtkZWZhdWx0OnJldHVyblwiR01UXCIrY1AocixcIjpcIil9fSx6OmZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtzd2l0Y2godCl7Y2FzZVwielwiOmNhc2VcInp6XCI6Y2FzZVwienp6XCI6cmV0dXJuXCJHTVRcIithUChyLFwiOlwiKTtkZWZhdWx0OnJldHVyblwiR01UXCIrY1AocixcIjpcIil9fSx0OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gb1AoTWF0aC50cnVuYygrZS8xZTMpLHQubGVuZ3RoKX0sVDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIG9QKCtlLHQubGVuZ3RoKX19O2Z1bmN0aW9uIGFQKGUsdD1cIlwiKXtjb25zdCBuPWU+MD9cIi1cIjpcIitcIixyPU1hdGguYWJzKGUpLG89TWF0aC50cnVuYyhyLzYwKSxpPXIlNjA7cmV0dXJuIDA9PT1pP24rU3RyaW5nKG8pOm4rU3RyaW5nKG8pK3Qrb1AoaSwyKX1mdW5jdGlvbiBsUChlLHQpe3JldHVybiBlJTYwPT0wPyhlPjA/XCItXCI6XCIrXCIpK29QKE1hdGguYWJzKGUpLzYwLDIpOmNQKGUsdCl9ZnVuY3Rpb24gY1AoZSx0PVwiXCIpe2NvbnN0IG49ZT4wP1wiLVwiOlwiK1wiLHI9TWF0aC5hYnMoZSk7cmV0dXJuIG4rb1AoTWF0aC50cnVuYyhyLzYwKSwyKSt0K29QKHIlNjAsMil9Y29uc3QgdVA9KGUsdCk9Pntzd2l0Y2goZSl7Y2FzZVwiUFwiOnJldHVybiB0LmRhdGUoe3dpZHRoOlwic2hvcnRcIn0pO2Nhc2VcIlBQXCI6cmV0dXJuIHQuZGF0ZSh7d2lkdGg6XCJtZWRpdW1cIn0pO2Nhc2VcIlBQUFwiOnJldHVybiB0LmRhdGUoe3dpZHRoOlwibG9uZ1wifSk7ZGVmYXVsdDpyZXR1cm4gdC5kYXRlKHt3aWR0aDpcImZ1bGxcIn0pfX0sZFA9KGUsdCk9Pntzd2l0Y2goZSl7Y2FzZVwicFwiOnJldHVybiB0LnRpbWUoe3dpZHRoOlwic2hvcnRcIn0pO2Nhc2VcInBwXCI6cmV0dXJuIHQudGltZSh7d2lkdGg6XCJtZWRpdW1cIn0pO2Nhc2VcInBwcFwiOnJldHVybiB0LnRpbWUoe3dpZHRoOlwibG9uZ1wifSk7ZGVmYXVsdDpyZXR1cm4gdC50aW1lKHt3aWR0aDpcImZ1bGxcIn0pfX0sZlA9e3A6ZFAsUDooZSx0KT0+e2NvbnN0IG49ZS5tYXRjaCgvKFArKShwKyk/Lyl8fFtdLHI9blsxXSxvPW5bMl07aWYoIW8pcmV0dXJuIHVQKGUsdCk7bGV0IGk7c3dpdGNoKHIpe2Nhc2VcIlBcIjppPXQuZGF0ZVRpbWUoe3dpZHRoOlwic2hvcnRcIn0pO2JyZWFrO2Nhc2VcIlBQXCI6aT10LmRhdGVUaW1lKHt3aWR0aDpcIm1lZGl1bVwifSk7YnJlYWs7Y2FzZVwiUFBQXCI6aT10LmRhdGVUaW1lKHt3aWR0aDpcImxvbmdcIn0pO2JyZWFrO2RlZmF1bHQ6aT10LmRhdGVUaW1lKHt3aWR0aDpcImZ1bGxcIn0pfXJldHVybiBpLnJlcGxhY2UoXCJ7e2RhdGV9fVwiLHVQKHIsdCkpLnJlcGxhY2UoXCJ7e3RpbWV9fVwiLGRQKG8sdCkpfX0sbVA9L15EKyQvLGhQPS9eWSskLyxwUD1bXCJEXCIsXCJERFwiLFwiWVlcIixcIllZWVlcIl07ZnVuY3Rpb24gZ1AoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBEYXRlfHxcIm9iamVjdFwiPT10eXBlb2YgZSYmXCJbb2JqZWN0IERhdGVdXCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSl9Y29uc3QgeVA9L1t5WVFxTUx3SWREZWNpaEhLa21zXW98KFxcdylcXDEqfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLHZQPS9QK3ArfFArfHArfCcnfCcoJyd8W14nXSkrKCd8JCl8Li9nLGJQPS9eJyhbXl0qPyknPyQvLHhQPS8nJy9nLHdQPS9bYS16QS1aXS87ZnVuY3Rpb24gU1AoZSx0LG4pe2NvbnN0IHI9Rl8oKSxvPW4/LmxvY2FsZT8/ci5sb2NhbGU/P1hfLGk9bj8uZmlyc3RXZWVrQ29udGFpbnNEYXRlPz9uPy5sb2NhbGU/Lm9wdGlvbnM/LmZpcnN0V2Vla0NvbnRhaW5zRGF0ZT8/ci5maXJzdFdlZWtDb250YWluc0RhdGU/P3IubG9jYWxlPy5vcHRpb25zPy5maXJzdFdlZWtDb250YWluc0RhdGU/PzEscz1uPy53ZWVrU3RhcnRzT24/P24/LmxvY2FsZT8ub3B0aW9ucz8ud2Vla1N0YXJ0c09uPz9yLndlZWtTdGFydHNPbj8/ci5sb2NhbGU/Lm9wdGlvbnM/LndlZWtTdGFydHNPbj8/MCxhPU5fKGUsbj8uaW4pO2lmKCFmdW5jdGlvbihlKXtyZXR1cm4hKCFnUChlKSYmXCJudW1iZXJcIiE9dHlwZW9mIGV8fGlzTmFOKCtOXyhlKSkpfShhKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkludmFsaWQgdGltZSB2YWx1ZVwiKTtsZXQgbD10Lm1hdGNoKHZQKS5tYXAoKGU9Pntjb25zdCB0PWVbMF07cmV0dXJuXCJwXCI9PT10fHxcIlBcIj09PXQ/KDAsZlBbdF0pKGUsby5mb3JtYXRMb25nKTplfSkpLmpvaW4oXCJcIikubWF0Y2goeVApLm1hcCgoZT0+e2lmKFwiJydcIj09PWUpcmV0dXJue2lzVG9rZW46ITEsdmFsdWU6XCInXCJ9O2NvbnN0IHQ9ZVswXTtpZihcIidcIj09PXQpcmV0dXJue2lzVG9rZW46ITEsdmFsdWU6a1AoZSl9O2lmKHNQW3RdKXJldHVybntpc1Rva2VuOiEwLHZhbHVlOmV9O2lmKHQubWF0Y2god1ApKXRocm93IG5ldyBSYW5nZUVycm9yKFwiRm9ybWF0IHN0cmluZyBjb250YWlucyBhbiB1bmVzY2FwZWQgbGF0aW4gYWxwaGFiZXQgY2hhcmFjdGVyIGBcIit0K1wiYFwiKTtyZXR1cm57aXNUb2tlbjohMSx2YWx1ZTplfX0pKTtvLmxvY2FsaXplLnByZXByb2Nlc3NvciYmKGw9by5sb2NhbGl6ZS5wcmVwcm9jZXNzb3IoYSxsKSk7Y29uc3QgYz17Zmlyc3RXZWVrQ29udGFpbnNEYXRlOmksd2Vla1N0YXJ0c09uOnMsbG9jYWxlOm99O3JldHVybiBsLm1hcCgocj0+e2lmKCFyLmlzVG9rZW4pcmV0dXJuIHIudmFsdWU7Y29uc3QgaT1yLnZhbHVlO3JldHVybighbj8udXNlQWRkaXRpb25hbFdlZWtZZWFyVG9rZW5zJiZmdW5jdGlvbihlKXtyZXR1cm4gaFAudGVzdChlKX0oaSl8fCFuPy51c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zJiZmdW5jdGlvbihlKXtyZXR1cm4gbVAudGVzdChlKX0oaSkpJiZmdW5jdGlvbihlLHQsbil7Y29uc3Qgcj1mdW5jdGlvbihlLHQsbil7Y29uc3Qgcj1cIllcIj09PWVbMF0/XCJ5ZWFyc1wiOlwiZGF5cyBvZiB0aGUgbW9udGhcIjtyZXR1cm5gVXNlIFxcYCR7ZS50b0xvd2VyQ2FzZSgpfVxcYCBpbnN0ZWFkIG9mIFxcYCR7ZX1cXGAgKGluIFxcYCR7dH1cXGApIGZvciBmb3JtYXR0aW5nICR7cn0gdG8gdGhlIGlucHV0IFxcYCR7bn1cXGA7IHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdW5pY29kZVRva2Vucy5tZGB9KGUsdCxuKTtpZihjb25zb2xlLndhcm4ocikscFAuaW5jbHVkZXMoZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3Iocil9KGksdCxTdHJpbmcoZSkpLCgwLHNQW2lbMF1dKShhLGksby5sb2NhbGl6ZSxjKX0pKS5qb2luKFwiXCIpfWZ1bmN0aW9uIGtQKGUpe2NvbnN0IHQ9ZS5tYXRjaChiUCk7cmV0dXJuIHQ/dFsxXS5yZXBsYWNlKHhQLFwiJ1wiKTplfWZ1bmN0aW9uIEVQKGUsdCl7Y29uc3Qgbj1OXyhlLHQ/LmluKTtyZXR1cm4gbi5zZXREYXRlKDEpLG4uc2V0SG91cnMoMCwwLDAsMCksbn1jb25zdCBDUD17YWRkRGF5czpUXyxhZGRNb250aHM6TV8sYWRkV2Vla3M6Ul8sYWRkWWVhcnM6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBNXyhlLDEyKnQsbil9LGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5czpJXyxkaWZmZXJlbmNlSW5DYWxlbmRhck1vbnRoczpmdW5jdGlvbihlLHQsbil7Y29uc3RbcixvXT1qXyhuPy5pbixlLHQpO3JldHVybiAxMiooci5nZXRGdWxsWWVhcigpLW8uZ2V0RnVsbFllYXIoKSkrKHIuZ2V0TW9udGgoKS1vLmdldE1vbnRoKCkpfSxlbmRPZklTT1dlZWs6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gel8oZSx7Li4udCx3ZWVrU3RhcnRzT246MX0pfSxlbmRPZk1vbnRoOkJfLGVuZE9mV2Vlazp6XyxlbmRPZlllYXI6ZnVuY3Rpb24oZSx0KXtjb25zdCBuPU5fKGUsdD8uaW4pLHI9bi5nZXRGdWxsWWVhcigpO3JldHVybiBuLnNldEZ1bGxZZWFyKHIrMSwwLDApLG4uc2V0SG91cnMoMjMsNTksNTksOTk5KSxufSxmb3JtYXQ6U1AsZ2V0SVNPV2Vlazp0UCxnZXRXZWVrOnJQLGlzQWZ0ZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4rTl8oZSk+K05fKHQpfSxpc0JlZm9yZTpmdW5jdGlvbihlLHQpe3JldHVybitOXyhlKTwrTl8odCl9LGlzRGF0ZTpnUCxpc1NhbWVEYXk6ZnVuY3Rpb24oZSx0LG4pe2NvbnN0W3Isb109al8obj8uaW4sZSx0KTtyZXR1cm4rQV8ocik9PStBXyhvKX0saXNTYW1lTW9udGg6ZnVuY3Rpb24oZSx0LG4pe2NvbnN0W3Isb109al8obj8uaW4sZSx0KTtyZXR1cm4gci5nZXRGdWxsWWVhcigpPT09by5nZXRGdWxsWWVhcigpJiZyLmdldE1vbnRoKCk9PT1vLmdldE1vbnRoKCl9LGlzU2FtZVllYXI6ZnVuY3Rpb24oZSx0LG4pe2NvbnN0W3Isb109al8obj8uaW4sZSx0KTtyZXR1cm4gci5nZXRGdWxsWWVhcigpPT09by5nZXRGdWxsWWVhcigpfSxtYXg6ZnVuY3Rpb24oZSx0KXtsZXQgbixyPXQ/LmluO3JldHVybiBlLmZvckVhY2goKGU9PntyfHxcIm9iamVjdFwiIT10eXBlb2YgZXx8KHI9T18uYmluZChudWxsLGUpKTtjb25zdCB0PU5fKGUscik7KCFufHxuPHR8fGlzTmFOKCt0KSkmJihuPXQpfSkpLE9fKHIsbnx8TmFOKX0sbWluOmZ1bmN0aW9uKGUsdCl7bGV0IG4scj10Py5pbjtyZXR1cm4gZS5mb3JFYWNoKChlPT57cnx8XCJvYmplY3RcIiE9dHlwZW9mIGV8fChyPU9fLmJpbmQobnVsbCxlKSk7Y29uc3QgdD1OXyhlLHIpOyghbnx8bj50fHxpc05hTigrdCkpJiYobj10KX0pKSxPXyhyLG58fE5hTil9LHNldE1vbnRoOmZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPU5fKGUsbj8uaW4pLG89ci5nZXRGdWxsWWVhcigpLGk9ci5nZXREYXRlKCkscz1PXyhuPy5pbnx8ZSwwKTtzLnNldEZ1bGxZZWFyKG8sdCwxNSkscy5zZXRIb3VycygwLDAsMCwwKTtjb25zdCBhPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1OXyhlLHQ/LmluKSxyPW4uZ2V0RnVsbFllYXIoKSxvPW4uZ2V0TW9udGgoKSxpPU9fKG4sMCk7cmV0dXJuIGkuc2V0RnVsbFllYXIocixvKzEsMCksaS5zZXRIb3VycygwLDAsMCwwKSxpLmdldERhdGUoKX0ocyk7cmV0dXJuIHIuc2V0TW9udGgodCxNYXRoLm1pbihpLGEpKSxyfSxzZXRZZWFyOmZ1bmN0aW9uKGUsdCxuKXtjb25zdCByPU5fKGUsbj8uaW4pO3JldHVybiBpc05hTigrcik/T18obj8uaW58fGUsTmFOKTooci5zZXRGdWxsWWVhcih0KSxyKX0sc3RhcnRPZkRheTpBXyxzdGFydE9mSVNPV2VlazpRXyxzdGFydE9mTW9udGg6RVAsc3RhcnRPZldlZWs6Sl8sc3RhcnRPZlllYXI6Wl99O2Z1bmN0aW9uIF9QKCl7Y29uc3QgZT17fTtmb3IoY29uc3QgdCBpbiBIQyllW0hDW3RdXT1gcmRwLSR7SENbdF19YDtmb3IoY29uc3QgdCBpbiBLQyllW0tDW3RdXT1gcmRwLSR7S0NbdF19YDtmb3IoY29uc3QgdCBpbiBxQyllW3FDW3RdXT1gcmRwLSR7cUNbdF19YDtyZXR1cm4gZX1TeW1ib2wuZm9yKFwiY29uc3RydWN0RGF0ZUZyb21cIik7Y29uc3QgUFA9e30sT1A9e307ZnVuY3Rpb24gTlAoZSx0KXt0cnl7Y29uc3Qgbj0oUFBbZV18fD1uZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImVuLUdCXCIse3RpbWVab25lOmUsaG91cjpcIm51bWVyaWNcIix0aW1lWm9uZU5hbWU6XCJsb25nT2Zmc2V0XCJ9KS5mb3JtYXQpKHQpLnNwbGl0KFwiR01UXCIpWzFdfHxcIlwiO3JldHVybiBuIGluIE9QP09QW25dOk1QKG4sbi5zcGxpdChcIjpcIikpfWNhdGNoe2lmKGUgaW4gT1ApcmV0dXJuIE9QW2VdO2NvbnN0IHQ9ZT8ubWF0Y2goVFApO3JldHVybiB0P01QKGUsdC5zbGljZSgxKSk6TmFOfX1jb25zdCBUUD0vKFsrLV1cXGRcXGQpOj8oXFxkXFxkKT8vO2Z1bmN0aW9uIE1QKGUsdCl7Y29uc3Qgbj0rdFswXSxyPSsodFsxXXx8MCk7cmV0dXJuIE9QW2VdPW4+MD82MCpuK3I6NjAqbi1yfWNsYXNzIFJQIGV4dGVuZHMgRGF0ZXtjb25zdHJ1Y3RvciguLi5lKXtzdXBlcigpLGUubGVuZ3RoPjEmJlwic3RyaW5nXCI9PXR5cGVvZiBlW2UubGVuZ3RoLTFdJiYodGhpcy50aW1lWm9uZT1lLnBvcCgpKSx0aGlzLmludGVybmFsPW5ldyBEYXRlLGlzTmFOKE5QKHRoaXMudGltZVpvbmUsdGhpcykpP3RoaXMuc2V0VGltZShOYU4pOmUubGVuZ3RoP1wibnVtYmVyXCI9PXR5cGVvZiBlWzBdJiYoMT09PWUubGVuZ3RofHwyPT09ZS5sZW5ndGgmJlwibnVtYmVyXCIhPXR5cGVvZiBlWzFdKT90aGlzLnNldFRpbWUoZVswXSk6XCJzdHJpbmdcIj09dHlwZW9mIGVbMF0/dGhpcy5zZXRUaW1lKCtuZXcgRGF0ZShlWzBdKSk6ZVswXWluc3RhbmNlb2YgRGF0ZT90aGlzLnNldFRpbWUoK2VbMF0pOih0aGlzLnNldFRpbWUoK25ldyBEYXRlKC4uLmUpKSxBUCh0aGlzKSk6dGhpcy5zZXRUaW1lKERhdGUubm93KCkpLGpQKHRoaXMpfXN0YXRpYyB0eihlLC4uLnQpe3JldHVybiB0Lmxlbmd0aD9uZXcgUlAoLi4udCxlKTpuZXcgUlAoRGF0ZS5ub3coKSxlKX13aXRoVGltZVpvbmUoZSl7cmV0dXJuIG5ldyBSUCgrdGhpcyxlKX1nZXRUaW1lem9uZU9mZnNldCgpe3JldHVybi1OUCh0aGlzLnRpbWVab25lLHRoaXMpfVtTeW1ib2wuZm9yKFwiY29uc3RydWN0RGF0ZUZyb21cIildKGUpe3JldHVybiBuZXcgUlAoK25ldyBEYXRlKGUpLHRoaXMudGltZVpvbmUpfX1jb25zdCBEUD0vXihnZXR8c2V0KSg/IVVUQykvO2Z1bmN0aW9uIGpQKGUpe2UuaW50ZXJuYWwuc2V0VGltZSgrZSksZS5pbnRlcm5hbC5zZXRVVENNaW51dGVzKGUuaW50ZXJuYWwuZ2V0VVRDTWludXRlcygpLWUuZ2V0VGltZXpvbmVPZmZzZXQoKSl9ZnVuY3Rpb24gQVAoZSl7Y29uc3QgdD1OUChlLnRpbWVab25lLGUpLG49bmV3IERhdGUoK2UpO24uc2V0VVRDSG91cnMobi5nZXRVVENIb3VycygpLTEpO2NvbnN0IHI9LW5ldyBEYXRlKCtlKS5nZXRUaW1lem9uZU9mZnNldCgpLG89ci0gLW5ldyBEYXRlKCtuKS5nZXRUaW1lem9uZU9mZnNldCgpLGk9RGF0ZS5wcm90b3R5cGUuZ2V0SG91cnMuYXBwbHkoZSkhPT1lLmludGVybmFsLmdldFVUQ0hvdXJzKCk7byYmaSYmZS5pbnRlcm5hbC5zZXRVVENNaW51dGVzKGUuaW50ZXJuYWwuZ2V0VVRDTWludXRlcygpK28pO2NvbnN0IHM9ci10O3MmJkRhdGUucHJvdG90eXBlLnNldFVUQ01pbnV0ZXMuY2FsbChlLERhdGUucHJvdG90eXBlLmdldFVUQ01pbnV0ZXMuY2FsbChlKStzKTtjb25zdCBhPU5QKGUudGltZVpvbmUsZSksbD0tbmV3IERhdGUoK2UpLmdldFRpbWV6b25lT2Zmc2V0KCktYS1zO2lmKGEhPT10JiZsKXtEYXRlLnByb3RvdHlwZS5zZXRVVENNaW51dGVzLmNhbGwoZSxEYXRlLnByb3RvdHlwZS5nZXRVVENNaW51dGVzLmNhbGwoZSkrbCk7Y29uc3QgdD1hLU5QKGUudGltZVpvbmUsZSk7dCYmKGUuaW50ZXJuYWwuc2V0VVRDTWludXRlcyhlLmludGVybmFsLmdldFVUQ01pbnV0ZXMoKSt0KSxEYXRlLnByb3RvdHlwZS5zZXRVVENNaW51dGVzLmNhbGwoZSxEYXRlLnByb3RvdHlwZS5nZXRVVENNaW51dGVzLmNhbGwoZSkrdCkpfX1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhEYXRlLnByb3RvdHlwZSkuZm9yRWFjaCgoZT0+e2lmKCFEUC50ZXN0KGUpKXJldHVybjtjb25zdCB0PWUucmVwbGFjZShEUCxcIiQxVVRDXCIpO1JQLnByb3RvdHlwZVt0XSYmKGUuc3RhcnRzV2l0aChcImdldFwiKT9SUC5wcm90b3R5cGVbZV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnRlcm5hbFt0XSgpfTooUlAucHJvdG90eXBlW2VdPWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIERhdGUucHJvdG90eXBlW3RdLmFwcGx5KHRoaXMuaW50ZXJuYWwsYXJndW1lbnRzKSxlPXRoaXMsRGF0ZS5wcm90b3R5cGUuc2V0RnVsbFllYXIuY2FsbChlLGUuaW50ZXJuYWwuZ2V0VVRDRnVsbFllYXIoKSxlLmludGVybmFsLmdldFVUQ01vbnRoKCksZS5pbnRlcm5hbC5nZXRVVENEYXRlKCkpLERhdGUucHJvdG90eXBlLnNldEhvdXJzLmNhbGwoZSxlLmludGVybmFsLmdldFVUQ0hvdXJzKCksZS5pbnRlcm5hbC5nZXRVVENNaW51dGVzKCksZS5pbnRlcm5hbC5nZXRVVENTZWNvbmRzKCksZS5pbnRlcm5hbC5nZXRVVENNaWxsaXNlY29uZHMoKSksQVAoZSksK3RoaXN9LFJQLnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe3JldHVybiBEYXRlLnByb3RvdHlwZVt0XS5hcHBseSh0aGlzLGFyZ3VtZW50cyksalAodGhpcyksK3RoaXN9KSl9KSk7Y2xhc3MgSVAgZXh0ZW5kcyBSUHtzdGF0aWMgdHooZSwuLi50KXtyZXR1cm4gdC5sZW5ndGg/bmV3IElQKC4uLnQsZSk6bmV3IElQKERhdGUubm93KCksZSl9dG9JU09TdHJpbmcoKXtjb25zdFtlLHQsbl09dGhpcy50ekNvbXBvbmVudHMoKSxyPWAke2V9JHt0fToke259YDtyZXR1cm4gdGhpcy5pbnRlcm5hbC50b0lTT1N0cmluZygpLnNsaWNlKDAsLTEpK3J9dG9TdHJpbmcoKXtyZXR1cm5gJHt0aGlzLnRvRGF0ZVN0cmluZygpfSAke3RoaXMudG9UaW1lU3RyaW5nKCl9YH10b0RhdGVTdHJpbmcoKXtjb25zdFtlLHQsbixyXT10aGlzLmludGVybmFsLnRvVVRDU3RyaW5nKCkuc3BsaXQoXCIgXCIpO3JldHVybmAke2U/LnNsaWNlKDAsLTEpfSAke259ICR7dH0gJHtyfWB9dG9UaW1lU3RyaW5nKCl7Y29uc3QgZT10aGlzLmludGVybmFsLnRvVVRDU3RyaW5nKCkuc3BsaXQoXCIgXCIpWzRdLFt0LG4scl09dGhpcy50ekNvbXBvbmVudHMoKTtyZXR1cm5gJHtlfSBHTVQke3R9JHtufSR7cn0gKCR7bz10aGlzLnRpbWVab25lLGk9dGhpcyxuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImVuLUdCXCIse3RpbWVab25lOm8sdGltZVpvbmVOYW1lOlwibG9uZ1wifSkuZm9ybWF0KGkpLnNsaWNlKDEyKX0pYDt2YXIgbyxpfXRvTG9jYWxlU3RyaW5nKGUsdCl7cmV0dXJuIERhdGUucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLmNhbGwodGhpcyxlLHsuLi50LHRpbWVab25lOnQ/LnRpbWVab25lfHx0aGlzLnRpbWVab25lfSl9dG9Mb2NhbGVEYXRlU3RyaW5nKGUsdCl7cmV0dXJuIERhdGUucHJvdG90eXBlLnRvTG9jYWxlRGF0ZVN0cmluZy5jYWxsKHRoaXMsZSx7Li4udCx0aW1lWm9uZTp0Py50aW1lWm9uZXx8dGhpcy50aW1lWm9uZX0pfXRvTG9jYWxlVGltZVN0cmluZyhlLHQpe3JldHVybiBEYXRlLnByb3RvdHlwZS50b0xvY2FsZVRpbWVTdHJpbmcuY2FsbCh0aGlzLGUsey4uLnQsdGltZVpvbmU6dD8udGltZVpvbmV8fHRoaXMudGltZVpvbmV9KX10ekNvbXBvbmVudHMoKXtjb25zdCBlPXRoaXMuZ2V0VGltZXpvbmVPZmZzZXQoKTtyZXR1cm5bZT4wP1wiLVwiOlwiK1wiLFN0cmluZyhNYXRoLmZsb29yKE1hdGguYWJzKGUpLzYwKSkucGFkU3RhcnQoMixcIjBcIiksU3RyaW5nKE1hdGguYWJzKGUpJTYwKS5wYWRTdGFydCgyLFwiMFwiKV19d2l0aFRpbWVab25lKGUpe3JldHVybiBuZXcgSVAoK3RoaXMsZSl9W1N5bWJvbC5mb3IoXCJjb25zdHJ1Y3REYXRlRnJvbVwiKV0oZSl7cmV0dXJuIG5ldyBJUCgrbmV3IERhdGUoZSksdGhpcy50aW1lWm9uZSl9fWZ1bmN0aW9uIExQKGUsdCxuPUNQKXtyZXR1cm4gbi5mb3JtYXQoZSxcIkxMTEwgeVwiLHQpfWNvbnN0IEZQPUxQO2Z1bmN0aW9uIHpQKGUsdCxuPUNQKXtyZXR1cm4gbi5mb3JtYXQoZSxcImRcIix0KX1mdW5jdGlvbiBCUChlLHQ9WF8pe3JldHVybiB0LmxvY2FsaXplPy5tb250aChlKX1mdW5jdGlvbiBXUChlKXtyZXR1cm4gZTwxMD9gMCR7ZS50b0xvY2FsZVN0cmluZygpfWA6YCR7ZS50b0xvY2FsZVN0cmluZygpfWB9ZnVuY3Rpb24gVlAoKXtyZXR1cm5cIlwifWZ1bmN0aW9uIFVQKGUsdCxuPUNQKXtyZXR1cm4gbi5mb3JtYXQoZSxcImNjY2NjY1wiLHQpfWZ1bmN0aW9uICRQKGUpe3JldHVybiBlLnRvU3RyaW5nKCl9Y29uc3QgWVA9JFA7ZnVuY3Rpb24gSFAoZSx0LG49Q1Ape3JldHVybiBuLmZvcm1hdChlLFwiTExMTCB5XCIsdCl9Y29uc3QgS1A9SFA7ZnVuY3Rpb24gcVAoZSx0LG4scj1DUCl7bGV0IG89ci5mb3JtYXQoZSxcIlBQUFBcIixuKTtyZXR1cm4gdD8udG9kYXkmJihvPWBUb2RheSwgJHtvfWApLG99ZnVuY3Rpb24gR1AoZSx0LG4scj1DUCl7bGV0IG89ci5mb3JtYXQoZSxcIlBQUFBcIixuKTtyZXR1cm4gdC50b2RheSYmKG89YFRvZGF5LCAke299YCksdC5zZWxlY3RlZCYmKG89YCR7b30sIHNlbGVjdGVkYCksb31jb25zdCBYUD1HUDtmdW5jdGlvbiBaUCgpe3JldHVyblwiXCJ9ZnVuY3Rpb24gSlAoZSl7cmV0dXJuXCJDaG9vc2UgdGhlIE1vbnRoXCJ9ZnVuY3Rpb24gUVAoZSl7cmV0dXJuXCJHbyB0byB0aGUgTmV4dCBNb250aFwifWZ1bmN0aW9uIGVPKGUpe3JldHVyblwiR28gdG8gdGhlIFByZXZpb3VzIE1vbnRoXCJ9ZnVuY3Rpb24gdE8oZSx0LG49Q1Ape3JldHVybiBuLmZvcm1hdChlLFwiY2NjY1wiLHQpfWZ1bmN0aW9uIG5PKGUsdCl7cmV0dXJuYFdlZWsgJHtlfWB9ZnVuY3Rpb24gck8oZSl7cmV0dXJuXCJXZWVrIE51bWJlclwifWZ1bmN0aW9uIG9PKGUpe3JldHVyblwiQ2hvb3NlIHRoZSBZZWFyXCJ9Y29uc3QgaU89NDI7ZnVuY3Rpb24gc08oZSx0KXtjb25zdHttb250aDpuLGRlZmF1bHRNb250aDpyLHRvZGF5Om89KGUudGltZVpvbmU/SVAudHooZS50aW1lWm9uZSk6dC5EYXRlP25ldyB0LkRhdGU6bmV3IERhdGUpLG51bWJlck9mTW9udGhzOmk9MSxlbmRNb250aDpzLHN0YXJ0TW9udGg6YX09ZTtsZXQgbD1ufHxyfHxvO2NvbnN0e2RpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzOmMsYWRkTW9udGhzOnUsc3RhcnRPZk1vbnRoOmR9PXQ7cmV0dXJuIHMmJmMocyxsKTwwJiYobD11KHMsLTEqKGktMSkpKSxhJiZjKGwsYSk8MCYmKGw9YSksZChsKX1jbGFzcyBhT3tjb25zdHJ1Y3RvcihlLHQsbj1DUCl7dGhpcy5kYXRlPWUsdGhpcy5kaXNwbGF5TW9udGg9dCx0aGlzLm91dHNpZGU9Qm9vbGVhbih0JiYhbi5pc1NhbWVNb250aChlLHQpKSx0aGlzLmRhdGVMaWI9bn1pc0VxdWFsVG8oZSl7cmV0dXJuIHRoaXMuZGF0ZUxpYi5pc1NhbWVEYXkoZS5kYXRlLHRoaXMuZGF0ZSkmJnRoaXMuZGF0ZUxpYi5pc1NhbWVNb250aChlLmRpc3BsYXlNb250aCx0aGlzLmRpc3BsYXlNb250aCl9fWNsYXNzIGxPe2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5kYXRlPWUsdGhpcy53ZWVrcz10fX1jbGFzcyBjT3tjb25zdHJ1Y3RvcihlLHQpe3RoaXMuZGF5cz10LHRoaXMud2Vla051bWJlcj1lfX1mdW5jdGlvbiB1TyhlLHQpe2NvbnN0W24scl09KDAsYS51c2VTdGF0ZSkoZSk7cmV0dXJuW3ZvaWQgMD09PXQ/bjp0LHJdfWZ1bmN0aW9uIGRPKGUsdCxuPSExLHI9Q1Ape2xldHtmcm9tOm8sdG86aX09ZTtjb25zdHtkaWZmZXJlbmNlSW5DYWxlbmRhckRheXM6cyxpc1NhbWVEYXk6YX09cjtyZXR1cm4gbyYmaT8ocyhpLG8pPDAmJihbbyxpXT1baSxvXSkscyh0LG8pPj0obj8xOjApJiZzKGksdCk+PShuPzE6MCkpOiFuJiZpP2EoaSx0KTohKG58fCFvKSYmYShvLHQpfWZ1bmN0aW9uIGZPKGUpe3JldHVybiBCb29sZWFuKGUmJlwib2JqZWN0XCI9PXR5cGVvZiBlJiZcImZyb21cImluIGUpfWZ1bmN0aW9uIG1PKGUsdCxuPUNQKXtjb25zdCByPUFycmF5LmlzQXJyYXkodCk/dDpbdF0se2lzU2FtZURheTpvLGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5czppLGlzQWZ0ZXI6c309bjtyZXR1cm4gci5zb21lKCh0PT57aWYoXCJib29sZWFuXCI9PXR5cGVvZiB0KXJldHVybiB0O2lmKG4uaXNEYXRlKHQpKXJldHVybiBvKGUsdCk7aWYoZnVuY3Rpb24oZSx0KXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKSYmZS5ldmVyeSh0LmlzRGF0ZSl9KHQsbikpcmV0dXJuIHQuaW5jbHVkZXMoZSk7aWYoZk8odCkpcmV0dXJuIGRPKHQsZSwhMSxuKTtpZihyPXQsQm9vbGVhbihyJiZcIm9iamVjdFwiPT10eXBlb2YgciYmXCJkYXlPZldlZWtcImluIHIpKXJldHVybiBBcnJheS5pc0FycmF5KHQuZGF5T2ZXZWVrKT90LmRheU9mV2Vlay5pbmNsdWRlcyhlLmdldERheSgpKTp0LmRheU9mV2Vlaz09PWUuZ2V0RGF5KCk7dmFyIHI7aWYoZnVuY3Rpb24oZSl7cmV0dXJuIEJvb2xlYW4oZSYmXCJvYmplY3RcIj09dHlwZW9mIGUmJlwiYmVmb3JlXCJpbiBlJiZcImFmdGVyXCJpbiBlKX0odCkpe2NvbnN0IG49aSh0LmJlZm9yZSxlKT4wLHI9aSh0LmFmdGVyLGUpPDA7cmV0dXJuIHModC5iZWZvcmUsdC5hZnRlcik/ciYmbjpufHxyfXJldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gQm9vbGVhbihlJiZcIm9iamVjdFwiPT10eXBlb2YgZSYmXCJhZnRlclwiaW4gZSl9KHQpP2koZSx0LmFmdGVyKT4wOmZ1bmN0aW9uKGUpe3JldHVybiBCb29sZWFuKGUmJlwib2JqZWN0XCI9PXR5cGVvZiBlJiZcImJlZm9yZVwiaW4gZSl9KHQpP2kodC5iZWZvcmUsZSk+MDpcImZ1bmN0aW9uXCI9PXR5cGVvZiB0JiZ0KGUpfSkpfWZ1bmN0aW9uIGhPKGUsdCxuLHIsbyxpLHMsYT0wKXtpZihhPjM2NSlyZXR1cm47Y29uc3QgbD1mdW5jdGlvbihlLHQsbixyLG8saSxzKXtjb25zdHt3ZWVrU3RhcnRzT246YSxsb2NhbGU6bCxJU09XZWVrOmN9PWkse2FkZERheXM6dSxhZGRNb250aHM6ZCxhZGRZZWFyczpmLGFkZFdlZWtzOm0sc3RhcnRPZklTT1dlZWs6aCxlbmRPZklTT1dlZWs6cCxzdGFydE9mV2VlazpnLGVuZE9mV2Vlazp5LG1heDp2LG1pbjpifT1zO2xldCB4PXtkYXk6dSx3ZWVrOm0sbW9udGg6ZCx5ZWFyOmYsc3RhcnRPZldlZWs6ZT0+Yz9oKGUpOmcoZSx7bG9jYWxlOmwsd2Vla1N0YXJ0c09uOmF9KSxlbmRPZldlZWs6ZT0+Yz9wKGUpOnkoZSx7bG9jYWxlOmwsd2Vla1N0YXJ0c09uOmF9KX1bZV0obixcImFmdGVyXCI9PT10PzE6LTEpO3JldHVyblwiYmVmb3JlXCI9PT10JiZyP3g9dihbcix4XSk6XCJhZnRlclwiPT09dCYmbyYmKHg9Yihbbyx4XSkpLHh9KGUsdCxuLmRhdGUscixvLGkscyksYz1Cb29sZWFuKGkuZGlzYWJsZWQmJm1PKGwsaS5kaXNhYmxlZCxzKSksdT1Cb29sZWFuKGkuaGlkZGVuJiZtTyhsLGkuaGlkZGVuLHMpKSxkPW5ldyBhTyhsLGwscyk7cmV0dXJuIGN8fHU/aE8oZSx0LGQscixvLGkscyxhKzEpOmR9ZnVuY3Rpb24gcE8oZSx0LG4scixvKXtjb25zdHthdXRvRm9jdXM6aX09ZSxbcyxsXT0oMCxhLnVzZVN0YXRlKSgpLGM9ZnVuY3Rpb24oZSx0LG4scil7bGV0IG8saT0wLHM9ITE7Zm9yKDtpPGUubGVuZ3RoJiYhczspe2NvbnN0IGE9ZVtpXSxsPXQoYSk7bFtLQy5kaXNhYmxlZF18fGxbS0MuaGlkZGVuXXx8bFtLQy5vdXRzaWRlXXx8KGxbS0MuZm9jdXNlZF18fHI/LmlzRXF1YWxUbyhhKXx8bihhLmRhdGUpfHxsW0tDLnRvZGF5XSkmJihvPWEscz0hMCksaSsrfXJldHVybiBvfHwobz1lLmZpbmQoKGU9Pntjb25zdCBuPXQoZSk7cmV0dXJuIW5bS0MuZGlzYWJsZWRdJiYhbltLQy5oaWRkZW5dJiYhbltLQy5vdXRzaWRlXX0pKSksb30odC5kYXlzLG4scnx8KCgpPT4hMSkscyksW3UsZF09KDAsYS51c2VTdGF0ZSkoaT9jOnZvaWQgMCk7cmV0dXJue2lzRm9jdXNUYXJnZXQ6ZT0+Qm9vbGVhbihjPy5pc0VxdWFsVG8oZSkpLHNldEZvY3VzZWQ6ZCxmb2N1c2VkOnUsYmx1cjooKT0+e2wodSksZCh2b2lkIDApfSxtb3ZlRm9jdXM6KG4scik9PntpZighdSlyZXR1cm47Y29uc3QgaT1oTyhuLHIsdSx0Lm5hdlN0YXJ0LHQubmF2RW5kLGUsbyk7aSYmKHQuZ29Ub0RheShpKSxkKGkpKX19fWZ1bmN0aW9uIGdPKGUsdCl7Y29uc3Qgbj1mdW5jdGlvbihlLHQpe2NvbnN0e3NlbGVjdGVkOm4scmVxdWlyZWQ6cixvblNlbGVjdDpvfT1lLFtpLHNdPXVPKG4sbz9uOnZvaWQgMCksYT1vP246aSx7aXNTYW1lRGF5Omx9PXQ7cmV0dXJue3NlbGVjdGVkOmEsc2VsZWN0OihlLHQsbik9PntsZXQgaT1lO3JldHVybiFyJiZhJiZhJiZsKGUsYSkmJihpPXZvaWQgMCksb3x8cyhpKSxvPy4oaSxlLHQsbiksaX0saXNTZWxlY3RlZDplPT4hIWEmJmwoYSxlKX19KGUsdCkscj1mdW5jdGlvbihlLHQpe2NvbnN0e3NlbGVjdGVkOm4scmVxdWlyZWQ6cixvblNlbGVjdDpvfT1lLFtpLHNdPXVPKG4sbz9uOnZvaWQgMCksYT1vP246aSx7aXNTYW1lRGF5Omx9PXQsYz1lPT5hPy5zb21lKCh0PT5sKHQsZSkpKT8/ITEse21pbjp1LG1heDpkfT1lO3JldHVybntzZWxlY3RlZDphLHNlbGVjdDooZSx0LG4pPT57bGV0IGk9Wy4uLmE/P1tdXTtpZihjKGUpKXtpZihhPy5sZW5ndGg9PT11KXJldHVybjtpZihyJiYxPT09YT8ubGVuZ3RoKXJldHVybjtpPWE/LmZpbHRlcigodD0+IWwodCxlKSkpfWVsc2UgaT1hPy5sZW5ndGg9PT1kP1tlXTpbLi4uaSxlXTtyZXR1cm4gb3x8cyhpKSxvPy4oaSxlLHQsbiksaX0saXNTZWxlY3RlZDpjfX0oZSx0KSxvPWZ1bmN0aW9uKGUsdCl7Y29uc3R7ZGlzYWJsZWQ6bixleGNsdWRlRGlzYWJsZWQ6cixzZWxlY3RlZDpvLHJlcXVpcmVkOmksb25TZWxlY3Q6c309ZSxbYSxsXT11TyhvLHM/bzp2b2lkIDApLGM9cz9vOmE7cmV0dXJue3NlbGVjdGVkOmMsc2VsZWN0OihvLGEsdSk9Pntjb25zdHttaW46ZCxtYXg6Zn09ZSxtPW8/ZnVuY3Rpb24oZSx0LG49MCxyPTAsbz0hMSxpPUNQKXtjb25zdHtmcm9tOnMsdG86YX09dHx8e30se2lzU2FtZURheTpsLGlzQWZ0ZXI6Yyxpc0JlZm9yZTp1fT1pO2xldCBkO2lmKHN8fGEpe2lmKHMmJiFhKWQ9bChzLGUpP28/e2Zyb206cyx0bzp2b2lkIDB9OnZvaWQgMDp1KGUscyk/e2Zyb206ZSx0bzpzfTp7ZnJvbTpzLHRvOmV9O2Vsc2UgaWYocyYmYSlpZihsKHMsZSkmJmwoYSxlKSlkPW8/e2Zyb206cyx0bzphfTp2b2lkIDA7ZWxzZSBpZihsKHMsZSkpZD17ZnJvbTpzLHRvOm4+MD92b2lkIDA6ZX07ZWxzZSBpZihsKGEsZSkpZD17ZnJvbTplLHRvOm4+MD92b2lkIDA6ZX07ZWxzZSBpZih1KGUscykpZD17ZnJvbTplLHRvOmF9O2Vsc2UgaWYoYyhlLHMpKWQ9e2Zyb206cyx0bzplfTtlbHNle2lmKCFjKGUsYSkpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCByYW5nZVwiKTtkPXtmcm9tOnMsdG86ZX19fWVsc2UgZD17ZnJvbTplLHRvOm4+MD92b2lkIDA6ZX07aWYoZD8uZnJvbSYmZD8udG8pe2NvbnN0IHQ9aS5kaWZmZXJlbmNlSW5DYWxlbmRhckRheXMoZC50byxkLmZyb20pOyhyPjAmJnQ+cnx8bj4xJiZ0PG4pJiYoZD17ZnJvbTplLHRvOnZvaWQgMH0pfXJldHVybiBkfShvLGMsZCxmLGksdCk6dm9pZCAwO2lmKG0/LmZyb20mJm0udG8pe2xldCBlPW0uZnJvbTtmb3IoO3QuZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKG0udG8sZSk+MDspaWYoZT10LmFkZERheXMoZSwxKSxyJiZuJiZtTyhlLG4sdCkpe20uZnJvbT1vLG0udG89dm9pZCAwO2JyZWFrfX1yZXR1cm4gc3x8bChtKSxzPy4obSxvLGEsdSksbX0saXNTZWxlY3RlZDplPT5jJiZkTyhjLGUsITEsdCl9fShlLHQpO3N3aXRjaChlLm1vZGUpe2Nhc2VcInNpbmdsZVwiOnJldHVybiBuO2Nhc2VcIm11bHRpcGxlXCI6cmV0dXJuIHI7Y2FzZVwicmFuZ2VcIjpyZXR1cm4gbztkZWZhdWx0OnJldHVybn19ZnVuY3Rpb24geU8oZSl7Y29uc3R7Y29tcG9uZW50czp0LGZvcm1hdHRlcnM6bixsYWJlbHM6cixkYXRlTGliOmwsbG9jYWxlOmMsY2xhc3NOYW1lczp1fT0oMCxhLnVzZU1lbW8pKCgoKT0+e3JldHVybntkYXRlTGliOihyPWUuZGF0ZUxpYix7Li4uQ1AsLi4ucn0pLGNvbXBvbmVudHM6KG49ZS5jb21wb25lbnRzLHsuLi5vLC4uLm59KSxmb3JtYXR0ZXJzOih0PWUuZm9ybWF0dGVycyx0Py5mb3JtYXRNb250aENhcHRpb24mJiF0LmZvcm1hdENhcHRpb24mJih0LmZvcm1hdENhcHRpb249dC5mb3JtYXRNb250aENhcHRpb24pLHQ/LmZvcm1hdFllYXJDYXB0aW9uJiYhdC5mb3JtYXRZZWFyRHJvcGRvd24mJih0LmZvcm1hdFllYXJEcm9wZG93bj10LmZvcm1hdFllYXJDYXB0aW9uKSx7Li4uaSwuLi50fSksbGFiZWxzOnsuLi5zLC4uLmUubGFiZWxzfSxsb2NhbGU6ey4uLlhfLC4uLmUubG9jYWxlfSxjbGFzc05hbWVzOnsuLi5fUCgpLC4uLmUuY2xhc3NOYW1lc319O3ZhciB0LG4scn0pLFtlLmNsYXNzTmFtZXMsZS5jb21wb25lbnRzLGUuZGF0ZUxpYixlLmZvcm1hdHRlcnMsZS5sYWJlbHMsZS5sb2NhbGVdKSx7Y2FwdGlvbkxheW91dDpkLGZpcnN0V2Vla0NvbnRhaW5zRGF0ZTpmLG1vZGU6bSxvbkRheUJsdXI6aCxvbkRheUNsaWNrOnAsb25EYXlGb2N1czpnLG9uRGF5S2V5RG93bjp5LG9uRGF5TW91c2VFbnRlcjp2LG9uRGF5TW91c2VMZWF2ZTpiLG9uTmV4dENsaWNrOngsb25QcmV2Q2xpY2s6dyxzaG93V2Vla051bWJlcjpTLHN0eWxlczprLHVzZUFkZGl0aW9uYWxEYXlPZlllYXJUb2tlbnM6RSx1c2VBZGRpdGlvbmFsV2Vla1llYXJUb2tlbnM6Qyx3ZWVrU3RhcnRzT246X309ZSxQPXtsb2NhbGU6Yyx3ZWVrU3RhcnRzT246XyxmaXJzdFdlZWtDb250YWluc0RhdGU6Zix1c2VBZGRpdGlvbmFsV2Vla1llYXJUb2tlbnM6Qyx1c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zOkV9LE89UCx7Zm9ybWF0Q2FwdGlvbjpOLGZvcm1hdERheTpULGZvcm1hdE1vbnRoRHJvcGRvd246TSxmb3JtYXRXZWVrTnVtYmVyOlIsZm9ybWF0V2Vla051bWJlckhlYWRlcjpELGZvcm1hdFdlZWtkYXlOYW1lOmosZm9ybWF0WWVhckRyb3Bkb3duOkF9PW4sST1mdW5jdGlvbihlLHQpe2NvbnN0W24scl09ZnVuY3Rpb24oZSx0KXtsZXR7c3RhcnRNb250aDpuLGVuZE1vbnRoOnJ9PWU7Y29uc3R7c3RhcnRPZlllYXI6byxzdGFydE9mRGF5Omksc3RhcnRPZk1vbnRoOnMsZW5kT2ZNb250aDphLGFkZFllYXJzOmwsZW5kT2ZZZWFyOmN9PXQse2Zyb21ZZWFyOnUsdG9ZZWFyOmQsZnJvbU1vbnRoOmYsdG9Nb250aDptfT1lOyFuJiZmJiYobj1mKSwhbiYmdSYmKG49bmV3IERhdGUodSwwLDEpKSwhciYmbSYmKHI9bSksIXImJmQmJihyPW5ldyBEYXRlKGQsMTEsMzEpKTtjb25zdCBoPWUuY2FwdGlvbkxheW91dD8uc3RhcnRzV2l0aChcImRyb3Bkb3duXCIpO3JldHVybiBuP249cyhuKTp1P249bmV3IERhdGUodSwwLDEpOiFuJiZoJiYobj1vKGwoZS50b2RheT8/KGUudGltZVpvbmU/SVAudHooZS50aW1lWm9uZSk6dC5EYXRlP25ldyB0LkRhdGU6bmV3IERhdGUpLC0xMDApKSkscj9yPWEocik6ZD9yPW5ldyBEYXRlKGQsMTEsMzEpOiFyJiZoJiYocj1jKGUudG9kYXk/PyhlLnRpbWVab25lP0lQLnR6KGUudGltZVpvbmUpOnQuRGF0ZT9uZXcgdC5EYXRlOm5ldyBEYXRlKSkpLFtuP2kobik6bixyP2kocik6cl19KGUsdCkse3N0YXJ0T2ZNb250aDpvLGVuZE9mTW9udGg6aX09dCxzPXNPKGUsdCksW2wsY109dU8ocyxlLm1vbnRoP28oZS5tb250aCk6dm9pZCAwKTsoMCxhLnVzZUVmZmVjdCkoKCgpPT57Y29uc3Qgbj1zTyhlLHQpO2Mobil9KSxbZS50aW1lWm9uZV0pO2NvbnN0IHU9ZnVuY3Rpb24oZSx0LG4scil7Y29uc3R7bnVtYmVyT2ZNb250aHM6bz0xfT1uLGk9W107Zm9yKGxldCBuPTA7bjxvO24rKyl7Y29uc3Qgbz1yLmFkZE1vbnRocyhlLG4pO2lmKHQmJm8+dClicmVhaztpLnB1c2gobyl9cmV0dXJuIGl9KGwscixlLHQpLGQ9ZnVuY3Rpb24oZSx0LG4scil7Y29uc3Qgbz1lWzBdLGk9ZVtlLmxlbmd0aC0xXSx7SVNPV2VlazpzLGZpeGVkV2Vla3M6YSxsb2NhbGU6bCx3ZWVrU3RhcnRzT246Y309bj8/e30se3N0YXJ0T2ZXZWVrOnUsZW5kT2ZXZWVrOmQsc3RhcnRPZklTT1dlZWs6ZixlbmRPZklTT1dlZWs6bSxhZGREYXlzOmgsZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzOnAsZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHM6Zyxpc0FmdGVyOnksZW5kT2ZNb250aDp2fT1yLGI9cz9mKG8pOnUobyx7d2Vla1N0YXJ0c09uOmMsbG9jYWxlOmx9KSx4PXAocz9tKHYoaSkpOmQodihpKSx7d2Vla1N0YXJ0c09uOmMsbG9jYWxlOmx9KSxiKSx3PWcoaSxvKSsxLFM9W107Zm9yKGxldCBlPTA7ZTw9eDtlKyspe2NvbnN0IG49aChiLGUpO2lmKHQmJnkobix0KSlicmVhaztTLnB1c2gobil9Y29uc3Qgaz1pTyp3O2lmKGEmJlMubGVuZ3RoPGspZm9yKGxldCBlPTA7ZTw3O2UrKyl7Y29uc3QgZT1oKFNbUy5sZW5ndGgtMV0sMSk7Uy5wdXNoKGUpfXJldHVybiBTfSh1LGUuZW5kTW9udGg/aShlLmVuZE1vbnRoKTp2b2lkIDAsZSx0KSxmPWZ1bmN0aW9uKGUsdCxuLHIpe2NvbnN0e3N0YXJ0T2ZXZWVrOm8sZW5kT2ZXZWVrOmksc3RhcnRPZklTT1dlZWs6cyxlbmRPZklTT1dlZWs6YSxlbmRPZk1vbnRoOmwsYWRkRGF5czpjLGdldFdlZWs6dSxnZXRJU09XZWVrOmR9PXIsZj1lLnJlZHVjZSgoKGUsZik9Pntjb25zdCBtPW4uSVNPV2Vlaz9zKGYpOm8oZix7bG9jYWxlOm4ubG9jYWxlLHdlZWtTdGFydHNPbjpuLndlZWtTdGFydHNPbn0pLGg9bi5JU09XZWVrP2EobChmKSk6aShsKGYpLHtsb2NhbGU6bi5sb2NhbGUsd2Vla1N0YXJ0c09uOm4ud2Vla1N0YXJ0c09ufSkscD10LmZpbHRlcigoZT0+ZT49bSYmZTw9aCkpO2lmKG4uZml4ZWRXZWVrcyYmcC5sZW5ndGg8NDIpe2NvbnN0IGU9dC5maWx0ZXIoKGU9PmU+aCYmZTw9YyhoLDcpKSk7cC5wdXNoKC4uLmUpfWNvbnN0IGc9cC5yZWR1Y2UoKChlLHQpPT57Y29uc3Qgbz1uLklTT1dlZWs/ZCh0KTp1KHQse2xvY2FsZTpuLmxvY2FsZSx3ZWVrU3RhcnRzT246bi53ZWVrU3RhcnRzT24sZmlyc3RXZWVrQ29udGFpbnNEYXRlOm4uZmlyc3RXZWVrQ29udGFpbnNEYXRlfSksaT1lLmZpbmQoKGU9PmUud2Vla051bWJlcj09PW8pKSxzPW5ldyBhTyh0LGYscik7cmV0dXJuIGk/aS5kYXlzLnB1c2gocyk6ZS5wdXNoKG5ldyBjTyhvLFtzXSkpLGV9KSxbXSkseT1uZXcgbE8oZixnKTtyZXR1cm4gZS5wdXNoKHkpLGV9KSxbXSk7cmV0dXJuIG4ucmV2ZXJzZU1vbnRocz9mLnJldmVyc2UoKTpmfSh1LGQsZSx0KSxtPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlZHVjZSgoKGUsdCk9PlsuLi5lLC4uLnQud2Vla3NdKSxbXSl9KGYpLGg9Zi5yZWR1Y2UoKChlLHQpPT5bLi4uZSwuLi50LndlZWtzLnJlZHVjZSgoKGUsdCk9PlsuLi5lLC4uLnQuZGF5c10pLFtdKV0pLFtdKSxwPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKG4uZGlzYWJsZU5hdmlnYXRpb24pcmV0dXJuO2NvbnN0e3BhZ2VkTmF2aWdhdGlvbjpvLG51bWJlck9mTW9udGhzOml9PW4se3N0YXJ0T2ZNb250aDpzLGFkZE1vbnRoczphLGRpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzOmx9PXIsYz1vP2k/PzE6MSx1PXMoZSk7cmV0dXJuIHQmJmwodSx0KTw9MD92b2lkIDA6YSh1LC1jKX0obCxuLGUsdCksZz1mdW5jdGlvbihlLHQsbixyKXtpZihuLmRpc2FibGVOYXZpZ2F0aW9uKXJldHVybjtjb25zdHtwYWdlZE5hdmlnYXRpb246byxudW1iZXJPZk1vbnRoczppPTF9PW4se3N0YXJ0T2ZNb250aDpzLGFkZE1vbnRoczphLGRpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzOmx9PXIsYz1vP2k6MSx1PXMoZSk7cmV0dXJuIHQmJmwodCxlKTxpP3ZvaWQgMDphKHUsYyl9KGwscixlLHQpLHtkaXNhYmxlTmF2aWdhdGlvbjp5LG9uTW9udGhDaGFuZ2U6dn09ZSxiPWU9PntpZih5KXJldHVybjtsZXQgdD1vKGUpO24mJnQ8byhuKSYmKHQ9byhuKSksciYmdD5vKHIpJiYodD1vKHIpKSxjKHQpLHY/Lih0KX07cmV0dXJue21vbnRoczpmLHdlZWtzOm0sZGF5czpoLG5hdlN0YXJ0Om4sbmF2RW5kOnIscHJldmlvdXNNb250aDpwLG5leHRNb250aDpnLGdvVG9Nb250aDpiLGdvVG9EYXk6ZT0+eyhlPT5tLnNvbWUoKHQ9PnQuZGF5cy5zb21lKCh0PT50LmlzRXF1YWxUbyhlKSkpKSkpKGUpfHxiKGUuZGF0ZSl9fX0oZSxsKSx7ZGF5czpMLG1vbnRoczpGLG5hdlN0YXJ0OnosbmF2RW5kOkIscHJldmlvdXNNb250aDpXLG5leHRNb250aDpWLGdvVG9Nb250aDpVfT1JLCQ9ZnVuY3Rpb24oZSx0LG4pe2NvbnN0e2Rpc2FibGVkOnIsaGlkZGVuOm8sbW9kaWZpZXJzOmksc2hvd091dHNpZGVEYXlzOnMsdG9kYXk6YX09dCx7aXNTYW1lRGF5OmwsaXNTYW1lTW9udGg6Y309bix1PXtbS0MuZm9jdXNlZF06W10sW0tDLm91dHNpZGVdOltdLFtLQy5kaXNhYmxlZF06W10sW0tDLmhpZGRlbl06W10sW0tDLnRvZGF5XTpbXX0sZD17fSxmPXtbcUMucmFuZ2VfZW5kXTpbXSxbcUMucmFuZ2VfbWlkZGxlXTpbXSxbcUMucmFuZ2Vfc3RhcnRdOltdLFtxQy5zZWxlY3RlZF06W119O2Zvcihjb25zdCBmIG9mIGUpe2NvbnN0e2RhdGU6ZSxkaXNwbGF5TW9udGg6bX09ZixoPUJvb2xlYW4obSYmIWMoZSxtKSkscD1Cb29sZWFuKHImJm1PKGUscixuKSksZz1Cb29sZWFuKG8mJm1PKGUsbyxuKSl8fCFzJiZoLHk9bChlLGE/Pyh0LnRpbWVab25lP0lQLnR6KHQudGltZVpvbmUpOm4uRGF0ZT9uZXcgbi5EYXRlOm5ldyBEYXRlKSk7aCYmdS5vdXRzaWRlLnB1c2goZikscCYmdS5kaXNhYmxlZC5wdXNoKGYpLGcmJnUuaGlkZGVuLnB1c2goZikseSYmdS50b2RheS5wdXNoKGYpLGkmJk9iamVjdC5rZXlzKGkpLmZvckVhY2goKHQ9Pntjb25zdCByPWk/Llt0XTtyJiZtTyhlLHIsbikmJihkW3RdP2RbdF0ucHVzaChmKTpkW3RdPVtmXSl9KSl9cmV0dXJuIGU9Pntjb25zdCB0PXtbS0MuZm9jdXNlZF06ITEsW0tDLmRpc2FibGVkXTohMSxbS0MuaGlkZGVuXTohMSxbS0Mub3V0c2lkZV06ITEsW0tDLnRvZGF5XTohMX0sbj17W3FDLnJhbmdlX2VuZF06ITEsW3FDLnJhbmdlX21pZGRsZV06ITEsW3FDLnJhbmdlX3N0YXJ0XTohMSxbcUMuc2VsZWN0ZWRdOiExfSxyPXt9O2Zvcihjb25zdCBuIGluIHUpe2NvbnN0IHI9dVtuXTt0W25dPXIuc29tZSgodD0+dD09PWUpKX1mb3IoY29uc3QgdCBpbiBmKXtjb25zdCByPWZbdF07blt0XT1yLnNvbWUoKHQ9PnQ9PT1lKSl9Zm9yKGNvbnN0IHQgaW4gZClyW3RdPWRbdF0uc29tZSgodD0+dD09PWUpKTtyZXR1cm57Li4ubiwuLi50LC4uLnJ9fX0oTCxlLGwpLHtpc1NlbGVjdGVkOlksc2VsZWN0Okgsc2VsZWN0ZWQ6S309Z08oZSxsKT8/e30se2JsdXI6cSxmb2N1c2VkOkcsaXNGb2N1c1RhcmdldDpYLG1vdmVGb2N1czpaLHNldEZvY3VzZWQ6Sn09cE8oZSxJLCQsWT8/KCgpPT4hMSksbCkse2xhYmVsRGF5QnV0dG9uOlEsbGFiZWxHcmlkY2VsbDplZSxsYWJlbEdyaWQ6dGUsbGFiZWxNb250aERyb3Bkb3duOm5lLGxhYmVsTmF2OnJlLGxhYmVsV2Vla2RheTpvZSxsYWJlbFdlZWtOdW1iZXI6aWUsbGFiZWxXZWVrTnVtYmVySGVhZGVyOnNlLGxhYmVsWWVhckRyb3Bkb3duOmFlfT1yLGxlPSgwLGEudXNlTWVtbykoKCgpPT5mdW5jdGlvbihlLHQsbixyLG89Q1Ape2NvbnN0IGk9cj9JUC50eihyKTpvLkRhdGU/bmV3IG8uRGF0ZTpuZXcgRGF0ZSxzPW4/by5zdGFydE9mSVNPV2VlayhpKTpvLnN0YXJ0T2ZXZWVrKGkse2xvY2FsZTplLHdlZWtTdGFydHNPbjp0fSksYT1bXTtmb3IobGV0IGU9MDtlPDc7ZSsrKXtjb25zdCB0PW8uYWRkRGF5cyhzLGUpO2EucHVzaCh0KX1yZXR1cm4gYX0oYyxlLndlZWtTdGFydHNPbixlLklTT1dlZWssZS50aW1lWm9uZSxsKSksW2wsYyxlLklTT1dlZWssZS50aW1lWm9uZSxlLndlZWtTdGFydHNPbl0pLGNlPXZvaWQgMCE9PW18fHZvaWQgMCE9PXAsdWU9KDAsYS51c2VDYWxsYmFjaykoKCgpPT57VyYmKFUoVyksdz8uKFcpKX0pLFtXLFUsd10pLGRlPSgwLGEudXNlQ2FsbGJhY2spKCgoKT0+e1YmJihVKFYpLHg/LihWKSl9KSxbVSxWLHhdKSxmZT0oMCxhLnVzZUNhbGxiYWNrKSgoKGUsdCk9Pm49PntuLnByZXZlbnREZWZhdWx0KCksbi5zdG9wUHJvcGFnYXRpb24oKSxKKGUpLEg/LihlLmRhdGUsdCxuKSxwPy4oZS5kYXRlLHQsbil9KSxbSCxwLEpdKSxtZT0oMCxhLnVzZUNhbGxiYWNrKSgoKGUsdCk9Pm49PntKKGUpLGc/LihlLmRhdGUsdCxuKX0pLFtnLEpdKSxoZT0oMCxhLnVzZUNhbGxiYWNrKSgoKGUsdCk9Pm49PntxKCksaD8uKGUuZGF0ZSx0LG4pfSksW3EsaF0pLHBlPSgwLGEudXNlQ2FsbGJhY2spKCgodCxuKT0+cj0+e2NvbnN0IG89e0Fycm93TGVmdDpbXCJkYXlcIixcInJ0bFwiPT09ZS5kaXI/XCJhZnRlclwiOlwiYmVmb3JlXCJdLEFycm93UmlnaHQ6W1wiZGF5XCIsXCJydGxcIj09PWUuZGlyP1wiYmVmb3JlXCI6XCJhZnRlclwiXSxBcnJvd0Rvd246W1wid2Vla1wiLFwiYWZ0ZXJcIl0sQXJyb3dVcDpbXCJ3ZWVrXCIsXCJiZWZvcmVcIl0sUGFnZVVwOltyLnNoaWZ0S2V5P1wieWVhclwiOlwibW9udGhcIixcImJlZm9yZVwiXSxQYWdlRG93bjpbci5zaGlmdEtleT9cInllYXJcIjpcIm1vbnRoXCIsXCJhZnRlclwiXSxIb21lOltcInN0YXJ0T2ZXZWVrXCIsXCJiZWZvcmVcIl0sRW5kOltcImVuZE9mV2Vla1wiLFwiYWZ0ZXJcIl19O2lmKG9bci5rZXldKXtyLnByZXZlbnREZWZhdWx0KCksci5zdG9wUHJvcGFnYXRpb24oKTtjb25zdFtlLHRdPW9bci5rZXldO1ooZSx0KX15Py4odC5kYXRlLG4scil9KSxbWix5LGUuZGlyXSksZ2U9KDAsYS51c2VDYWxsYmFjaykoKChlLHQpPT5uPT57dj8uKGUuZGF0ZSx0LG4pfSksW3ZdKSx5ZT0oMCxhLnVzZUNhbGxiYWNrKSgoKGUsdCk9Pm49PntiPy4oZS5kYXRlLHQsbil9KSxbYl0pLHtjbGFzc05hbWU6dmUsc3R5bGU6YmV9PSgwLGEudXNlTWVtbykoKCgpPT4oe2NsYXNzTmFtZTpbdVtIQy5Sb290XSxlLmNsYXNzTmFtZV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCIgXCIpLHN0eWxlOnsuLi5rPy5bSEMuUm9vdF0sLi4uZS5zdHlsZX19KSksW3UsZS5jbGFzc05hbWUsZS5zdHlsZSxrXSkseGU9ZnVuY3Rpb24oZSl7Y29uc3QgdD17XCJkYXRhLW1vZGVcIjplLm1vZGU/P3ZvaWQgMCxcImRhdGEtcmVxdWlyZWRcIjpcInJlcXVpcmVkXCJpbiBlP2UucmVxdWlyZWQ6dm9pZCAwLFwiZGF0YS1tdWx0aXBsZS1tb250aHNcIjplLm51bWJlck9mTW9udGhzJiZlLm51bWJlck9mTW9udGhzPjF8fHZvaWQgMCxcImRhdGEtd2Vlay1udW1iZXJzXCI6ZS5zaG93V2Vla051bWJlcnx8dm9pZCAwfTtyZXR1cm4gT2JqZWN0LmVudHJpZXMoZSkuZm9yRWFjaCgoKFtlLG5dKT0+e2Uuc3RhcnRzV2l0aChcImRhdGEtXCIpJiYodFtlXT1uKX0pKSx0fShlKSx3ZT17c2VsZWN0ZWQ6SyxzZWxlY3Q6SCxpc1NlbGVjdGVkOlksbW9udGhzOkYsbmV4dE1vbnRoOlYscHJldmlvdXNNb250aDpXLGdvVG9Nb250aDpVLGdldE1vZGlmaWVyczokLGNvbXBvbmVudHM6dCxjbGFzc05hbWVzOnUsc3R5bGVzOmssbGFiZWxzOnIsZm9ybWF0dGVyczpufTtyZXR1cm4gYS5jcmVhdGVFbGVtZW50KGxfLlByb3ZpZGVyLHt2YWx1ZTp3ZX0sYS5jcmVhdGVFbGVtZW50KHQuUm9vdCx7Y2xhc3NOYW1lOnZlLHN0eWxlOmJlLGRpcjplLmRpcixpZDplLmlkLGxhbmc6ZS5sYW5nLG5vbmNlOmUubm9uY2UsdGl0bGU6ZS50aXRsZSwuLi54ZX0sYS5jcmVhdGVFbGVtZW50KHQuTW9udGhzLHtjbGFzc05hbWU6dVtIQy5Nb250aHNdLHN0eWxlOms/LltIQy5Nb250aHNdfSwhZS5oaWRlTmF2aWdhdGlvbiYmYS5jcmVhdGVFbGVtZW50KHQuTmF2LHtjbGFzc05hbWU6dVtIQy5OYXZdLHN0eWxlOms/LltIQy5OYXZdLFwiYXJpYS1sYWJlbFwiOnJlKCksb25QcmV2aW91c0NsaWNrOnVlLG9uTmV4dENsaWNrOmRlLHByZXZpb3VzTW9udGg6VyxuZXh0TW9udGg6Vn0pLEYubWFwKCgocixvKT0+e2NvbnN0IGk9ZnVuY3Rpb24oZSx0LG4scixvLGkpe2lmKCF0KXJldHVybjtpZighbilyZXR1cm47Y29uc3R7YWRkTW9udGhzOnMsc3RhcnRPZk1vbnRoOmEsaXNCZWZvcmU6bH09aSxjPWUuZ2V0RnVsbFllYXIoKSx1PVtdO2xldCBkPXQ7Zm9yKDt1Lmxlbmd0aDwxMiYmbChkLHMobiwxKSk7KXUucHVzaChkLmdldE1vbnRoKCkpLGQ9cyhkLDEpO2NvbnN0IGY9dS5zb3J0KCgoZSx0KT0+ZS10KSkubWFwKChlPT57Y29uc3Qgcz1yLmZvcm1hdE1vbnRoRHJvcGRvd24oZSxvKSxsPWkuRGF0ZT9uZXcgaS5EYXRlKGMsZSk6bmV3IERhdGUoYyxlKTtyZXR1cm57dmFsdWU6ZSxsYWJlbDpzLGRpc2FibGVkOnQmJmw8YSh0KXx8biYmbD5hKG4pfHwhMX19KSk7cmV0dXJuIGZ9KHIuZGF0ZSx6LEIsbixjLGwpLHM9ZnVuY3Rpb24oZSx0LG4scixvKXtpZighdClyZXR1cm47aWYoIW4pcmV0dXJuO2NvbnN0e3N0YXJ0T2ZNb250aDppLHN0YXJ0T2ZZZWFyOnMsZW5kT2ZZZWFyOmEsYWRkWWVhcnM6bCxpc0JlZm9yZTpjLGlzU2FtZVllYXI6dX09byxkPWUuZ2V0TW9udGgoKSxmPXModCksbT1hKG4pLGg9W107bGV0IHA9Zjtmb3IoO2MocCxtKXx8dShwLG0pOyloLnB1c2gocC5nZXRGdWxsWWVhcigpKSxwPWwocCwxKTtyZXR1cm4gaC5tYXAoKGU9Pntjb25zdCBzPW8uRGF0ZT9uZXcgby5EYXRlKGUsZCk6bmV3IERhdGUoZSxkKSxhPXQmJnM8aSh0KXx8ZCYmbiYmcz5pKG4pfHwhMTtyZXR1cm57dmFsdWU6ZSxsYWJlbDpyLmZvcm1hdFllYXJEcm9wZG93bihlKSxkaXNhYmxlZDphfX0pKX0oRlswXS5kYXRlLHosQixuLGwpO3JldHVybiBhLmNyZWF0ZUVsZW1lbnQodC5Nb250aCx7Y2xhc3NOYW1lOnVbSEMuTW9udGhdLHN0eWxlOms/LltIQy5Nb250aF0sa2V5Om8sZGlzcGxheUluZGV4Om8sY2FsZW5kYXJNb250aDpyfSxhLmNyZWF0ZUVsZW1lbnQodC5Nb250aENhcHRpb24se2NsYXNzTmFtZTp1W0hDLk1vbnRoQ2FwdGlvbl0sc3R5bGU6az8uW0hDLk1vbnRoQ2FwdGlvbl0sY2FsZW5kYXJNb250aDpyLGRpc3BsYXlJbmRleDpvfSxkPy5zdGFydHNXaXRoKFwiZHJvcGRvd25cIik/YS5jcmVhdGVFbGVtZW50KHQuRHJvcGRvd25OYXYse2NsYXNzTmFtZTp1W0hDLkRyb3Bkb3duc10sc3R5bGU6az8uW0hDLkRyb3Bkb3duc119LFwiZHJvcGRvd25cIj09PWR8fFwiZHJvcGRvd24tbW9udGhzXCI9PT1kP2EuY3JlYXRlRWxlbWVudCh0Lk1vbnRoc0Ryb3Bkb3duLHtjbGFzc05hbWU6dVtIQy5Nb250aHNEcm9wZG93bl0sXCJhcmlhLWxhYmVsXCI6bmUoKSxjbGFzc05hbWVzOnUsY29tcG9uZW50czp0LGRpc2FibGVkOkJvb2xlYW4oZS5kaXNhYmxlTmF2aWdhdGlvbiksb25DaGFuZ2U6ZT0+e2NvbnN0IHQ9TnVtYmVyKGUudGFyZ2V0LnZhbHVlKSxuPWwuc2V0TW9udGgobC5zdGFydE9mTW9udGgoci5kYXRlKSx0KTtVKG4pfSxvcHRpb25zOmksc3R5bGU6az8uW0hDLkRyb3Bkb3duXSx2YWx1ZTpyLmRhdGUuZ2V0TW9udGgoKX0pOmEuY3JlYXRlRWxlbWVudChcInNwYW5cIix7cm9sZTpcInN0YXR1c1wiLFwiYXJpYS1saXZlXCI6XCJwb2xpdGVcIn0sTShyLmRhdGUuZ2V0TW9udGgoKSkpLFwiZHJvcGRvd25cIj09PWR8fFwiZHJvcGRvd24teWVhcnNcIj09PWQ/YS5jcmVhdGVFbGVtZW50KHQuWWVhcnNEcm9wZG93bix7Y2xhc3NOYW1lOnVbSEMuWWVhcnNEcm9wZG93bl0sXCJhcmlhLWxhYmVsXCI6YWUoTyksY2xhc3NOYW1lczp1LGNvbXBvbmVudHM6dCxkaXNhYmxlZDpCb29sZWFuKGUuZGlzYWJsZU5hdmlnYXRpb24pLG9uQ2hhbmdlOmU9Pntjb25zdCB0PWwuc2V0WWVhcihsLnN0YXJ0T2ZNb250aChyLmRhdGUpLE51bWJlcihlLnRhcmdldC52YWx1ZSkpO1UodCl9LG9wdGlvbnM6cyxzdHlsZTprPy5bSEMuRHJvcGRvd25dLHZhbHVlOnIuZGF0ZS5nZXRGdWxsWWVhcigpfSk6YS5jcmVhdGVFbGVtZW50KFwic3BhblwiLHtyb2xlOlwic3RhdHVzXCIsXCJhcmlhLWxpdmVcIjpcInBvbGl0ZVwifSxBKHIuZGF0ZS5nZXRGdWxsWWVhcigpKSkpOmEuY3JlYXRlRWxlbWVudCh0LkNhcHRpb25MYWJlbCx7Y2xhc3NOYW1lOnVbSEMuQ2FwdGlvbkxhYmVsXSxyb2xlOlwic3RhdHVzXCIsXCJhcmlhLWxpdmVcIjpcInBvbGl0ZVwifSxOKHIuZGF0ZSxQLGwpKSksYS5jcmVhdGVFbGVtZW50KHQuTW9udGhHcmlkLHtyb2xlOlwiZ3JpZFwiLFwiYXJpYS1tdWx0aXNlbGVjdGFibGVcIjpcIm11bHRpcGxlXCI9PT1tfHxcInJhbmdlXCI9PT1tLFwiYXJpYS1sYWJlbFwiOnRlKHIuZGF0ZSxPLGwpfHx2b2lkIDAsY2xhc3NOYW1lOnVbSEMuTW9udGhHcmlkXSxzdHlsZTprPy5bSEMuTW9udGhHcmlkXX0sIWUuaGlkZVdlZWtkYXlzJiZhLmNyZWF0ZUVsZW1lbnQodC5XZWVrZGF5cyx7Y2xhc3NOYW1lOnVbSEMuV2Vla2RheXNdLHN0eWxlOms/LltIQy5XZWVrZGF5c119LFMmJmEuY3JlYXRlRWxlbWVudCh0LldlZWtOdW1iZXJIZWFkZXIse1wiYXJpYS1sYWJlbFwiOnNlKE8pLGNsYXNzTmFtZTp1W0hDLldlZWtOdW1iZXJIZWFkZXJdLHN0eWxlOms/LltIQy5XZWVrTnVtYmVySGVhZGVyXSxzY29wZTpcImNvbFwifSxEKCkpLGxlLm1hcCgoKGUsbik9PmEuY3JlYXRlRWxlbWVudCh0LldlZWtkYXkse1wiYXJpYS1sYWJlbFwiOm9lKGUsTyxsKSxjbGFzc05hbWU6dVtIQy5XZWVrZGF5XSxrZXk6bixzdHlsZTprPy5bSEMuV2Vla2RheV0sc2NvcGU6XCJjb2xcIn0saihlLFAsbCkpKSkpLGEuY3JlYXRlRWxlbWVudCh0LldlZWtzLHtjbGFzc05hbWU6dVtIQy5XZWVrc10sc3R5bGU6az8uW0hDLldlZWtzXX0sci53ZWVrcy5tYXAoKChuLHIpPT5hLmNyZWF0ZUVsZW1lbnQodC5XZWVrLHtjbGFzc05hbWU6dVtIQy5XZWVrXSxrZXk6bi53ZWVrTnVtYmVyLHN0eWxlOms/LltIQy5XZWVrXSx3ZWVrOm59LFMmJmEuY3JlYXRlRWxlbWVudCh0LldlZWtOdW1iZXIse3dlZWs6bixzdHlsZTprPy5bSEMuV2Vla051bWJlcl0sXCJhcmlhLWxhYmVsXCI6aWUobi53ZWVrTnVtYmVyLHtsb2NhbGU6Y30pLGNsYXNzTmFtZTp1W0hDLldlZWtOdW1iZXJdLHNjb3BlOlwicm93XCJ9LFIobi53ZWVrTnVtYmVyKSksbi5kYXlzLm1hcCgobj0+e2NvbnN0e2RhdGU6cn09bixvPSQobik7aWYob1tLQy5mb2N1c2VkXT0hby5oaWRkZW4mJkJvb2xlYW4oRz8uaXNFcXVhbFRvKG4pKSxvW3FDLnNlbGVjdGVkXT0hby5kaXNhYmxlZCYmKFk/LihyKXx8by5zZWxlY3RlZCksZk8oSykpe2NvbnN0e2Zyb206ZSx0bzp0fT1LO29bcUMucmFuZ2Vfc3RhcnRdPUJvb2xlYW4oZSYmdCYmbC5pc1NhbWVEYXkocixlKSksb1txQy5yYW5nZV9lbmRdPUJvb2xlYW4oZSYmdCYmbC5pc1NhbWVEYXkocix0KSksb1txQy5yYW5nZV9taWRkbGVdPWRPKEssciwhMCxsKX1jb25zdCBpPWZ1bmN0aW9uKGUsdD17fSxuPXt9KXtsZXQgcj17Li4udD8uW0hDLkRheV19O3JldHVybiBPYmplY3QuZW50cmllcyhlKS5maWx0ZXIoKChbLGVdKT0+ITA9PT1lKSkuZm9yRWFjaCgoKFtlXSk9PntyPXsuLi5yLC4uLm4/LltlXX19KSkscn0obyxrLGUubW9kaWZpZXJzU3R5bGVzKSxzPWZ1bmN0aW9uKGUsdCxuPXt9KXtyZXR1cm4gT2JqZWN0LmVudHJpZXMoZSkuZmlsdGVyKCgoWyxlXSk9PiEwPT09ZSkpLnJlZHVjZSgoKGUsW3JdKT0+KG5bcl0/ZS5wdXNoKG5bcl0pOnRbS0Nbcl1dP2UucHVzaCh0W0tDW3JdXSk6dFtxQ1tyXV0mJmUucHVzaCh0W3FDW3JdXSksZSkpLFt0W0hDLkRheV1dKX0obyx1LGUubW9kaWZpZXJzQ2xhc3NOYW1lcyksYz1jZT92b2lkIDA6ZWUocixvLE8sbCk7cmV0dXJuIGEuY3JlYXRlRWxlbWVudCh0LkRheSx7a2V5OmAke2wuZm9ybWF0KHIsXCJ5eXl5LU1NLWRkXCIpfV8ke2wuZm9ybWF0KG4uZGlzcGxheU1vbnRoLFwieXl5eS1NTVwiKX1gLGRheTpuLG1vZGlmaWVyczpvLGNsYXNzTmFtZTpzLmpvaW4oXCIgXCIpLHN0eWxlOmksXCJhcmlhLWhpZGRlblwiOm8uaGlkZGVufHx2b2lkIDAsXCJhcmlhLXNlbGVjdGVkXCI6by5zZWxlY3RlZHx8dm9pZCAwLFwiYXJpYS1sYWJlbFwiOmMsXCJkYXRhLWRheVwiOmwuZm9ybWF0KHIsXCJ5eXl5LU1NLWRkXCIpLFwiZGF0YS1tb250aFwiOm4ub3V0c2lkZT9sLmZvcm1hdChyLFwieXl5eS1NTVwiKTp2b2lkIDAsXCJkYXRhLXNlbGVjdGVkXCI6by5zZWxlY3RlZHx8dm9pZCAwLFwiZGF0YS1kaXNhYmxlZFwiOm8uZGlzYWJsZWR8fHZvaWQgMCxcImRhdGEtaGlkZGVuXCI6by5oaWRkZW58fHZvaWQgMCxcImRhdGEtb3V0c2lkZVwiOm4ub3V0c2lkZXx8dm9pZCAwLFwiZGF0YS1mb2N1c2VkXCI6by5mb2N1c2VkfHx2b2lkIDAsXCJkYXRhLXRvZGF5XCI6by50b2RheXx8dm9pZCAwfSxjZT9hLmNyZWF0ZUVsZW1lbnQodC5EYXlCdXR0b24se2NsYXNzTmFtZTp1W0hDLkRheUJ1dHRvbl0sc3R5bGU6az8uW0hDLkRheUJ1dHRvbl0sdHlwZTpcImJ1dHRvblwiLGRheTpuLG1vZGlmaWVyczpvLGRpc2FibGVkOm8uZGlzYWJsZWR8fHZvaWQgMCx0YWJJbmRleDpYKG4pPzA6LTEsXCJhcmlhLWxhYmVsXCI6UShyLG8sTyxsKSxvbkNsaWNrOmZlKG4sbyksb25CbHVyOmhlKG4sbyksb25Gb2N1czptZShuLG8pLG9uS2V5RG93bjpwZShuLG8pLG9uTW91c2VFbnRlcjpnZShuLG8pLG9uTW91c2VMZWF2ZTp5ZShuLG8pfSxUKHIsUCxsKSk6VChuLmRhdGUsUCxsKSl9KSkpKSkpKSl9KSkpLGUuZm9vdGVyJiZhLmNyZWF0ZUVsZW1lbnQodC5Gb290ZXIse2NsYXNzTmFtZTp1W0hDLkZvb3Rlcl0sc3R5bGU6az8uW0hDLkZvb3Rlcl0scm9sZTpcInN0YXR1c1wiLFwiYXJpYS1saXZlXCI6XCJwb2xpdGVcIn0sZS5mb290ZXIpKSl9ZnVuY3Rpb24gdk8oZSx0LG4pe3JldHVybiBNXyhlLC10LG4pfXZhciBiTz1mdW5jdGlvbigpe3JldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLHtjbGFzc05hbWU6XCJiZy1pY29uLWludGVyYWN0aXZlIGgtMSB3LTEgYWJzb2x1dGUgcm91bmRlZC1mdWxsIGlubGluZS1ibG9jayBib3R0b20tMCBsZWZ0LTEvMiByaWdodC0xLzJcIn0pfSx4Tz1mdW5jdGlvbihlKXtyZXR1cm4gU1AoZSxcIkVcIikuc2xpY2UoMCwxKX07ZnVuY3Rpb24gd08oZSl7cmV0dXJuIHdPPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9LHdPKGUpfXZhciBTTz1bXCJ3aWR0aFwiLFwiY2xhc3NOYW1lXCIsXCJjbGFzc05hbWVzXCIsXCJzZWxlY3RlZERhdGVzXCIsXCJzZXRTZWxlY3RlZERhdGVzXCIsXCJzaG93T3V0c2lkZURheXNcIixcIm1vZGVcIixcInZhcmlhbnRcIixcImFsaWdubWVudFwiLFwib25CbHVyXCIsXCJvbkNoYW5nZVwiXTtmdW5jdGlvbiBrTyhlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gRU8oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/a08oT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXtDTyhlLHQsblt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6a08oT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSl9cmV0dXJuIGV9ZnVuY3Rpb24gQ08oZSx0LG4pe3JldHVybih0PWZ1bmN0aW9uKGUpe3ZhciB0PWZ1bmN0aW9uKGUpe2lmKFwib2JqZWN0XCIhPXdPKGUpfHwhZSlyZXR1cm4gZTt2YXIgdD1lW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09dCl7dmFyIG49dC5jYWxsKGUsXCJzdHJpbmdcIik7aWYoXCJvYmplY3RcIiE9d08obikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpfXJldHVybiBTdHJpbmcoZSl9KGUpO3JldHVyblwic3ltYm9sXCI9PXdPKHQpP3Q6dCtcIlwifSh0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBfTygpe3JldHVybiBfTz1PYmplY3QuYXNzaWduP09iamVjdC5hc3NpZ24uYmluZCgpOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIHIgaW4gbikoe30pLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9cmV0dXJuIGV9LF9PLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBQTyhlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1uKXt2YXIgcixvLGkscyxhPVtdLGw9ITAsYz0hMTt0cnl7aWYoaT0obj1uLmNhbGwoZSkpLm5leHQsMD09PXQpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2w9ITF9ZWxzZSBmb3IoOyEobD0ocj1pLmNhbGwobikpLmRvbmUpJiYoYS5wdXNoKHIudmFsdWUpLGEubGVuZ3RoIT09dCk7bD0hMCk7fWNhdGNoKGUpe2M9ITAsbz1lfWZpbmFsbHl7dHJ5e2lmKCFsJiZudWxsIT1uLnJldHVybiYmKHM9bi5yZXR1cm4oKSxPYmplY3QocykhPT1zKSlyZXR1cm59ZmluYWxseXtpZihjKXRocm93IG99fXJldHVybiBhfX0oZSx0KXx8T08oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIE9PKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIE5PKGUsdCk7dmFyIG49e30udG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm5cIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4/QXJyYXkuZnJvbShlKTpcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/Tk8oZSx0KTp2b2lkIDB9fWZ1bmN0aW9uIE5PKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn12YXIgVE89ZnVuY3Rpb24oZSl7dmFyIHQ9ZS53aWR0aCxuPWUuY2xhc3NOYW1lLHI9ZS5jbGFzc05hbWVzLG89ZS5zZWxlY3RlZERhdGVzLGk9ZS5zZXRTZWxlY3RlZERhdGVzLHM9ZS5zaG93T3V0c2lkZURheXMsYz12b2lkIDA9PT1zfHxzLHU9ZS5tb2RlLGQ9dm9pZCAwPT09dT9cInNpbmdsZVwiOnUsZj1lLnZhcmlhbnQsbT12b2lkIDA9PT1mP1wibm9ybWFsXCI6ZixoPWUuYWxpZ25tZW50LHA9dm9pZCAwPT09aD9cImhvcml6b250YWxcIjpoLGc9KGUub25CbHVyLGUub25DaGFuZ2UsZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZih0LmluY2x1ZGVzKHIpKWNvbnRpbnVlO25bcl09ZVtyXX1yZXR1cm4gbn0oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLHQuaW5jbHVkZXMobil8fHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsU08pKSx5PWcubnVtYmVyT2ZNb250aHMsdj1QTygoMCxhLnVzZVN0YXRlKSghMSksMiksYj12WzBdLHg9dlsxXSx3PVBPKCgwLGEudXNlU3RhdGUpKCExKSwyKSxTPXdbMF0saz13WzFdLEU9UE8oKDAsYS51c2VTdGF0ZSkoKG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpKSwyKSxDPUVbMF0sXz1FWzFdLFA9UE8oKDAsYS51c2VTdGF0ZSkoQy1DJTI0KSwyKSxPPVBbMF0sTj1QWzFdO251bGw9PW8mJihvPVwibXVsdGlwbGVcIj09PWQ/W106XCJyYW5nZVwiPT09ZD97ZnJvbTpudWxsLHRvOm51bGx9Om51bGwpO3ZhciBUPWZ1bmN0aW9uKGUpe3ZhciB0PWUud2Vla2RheXM7cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcImZsZXgganVzdGlmeS1iZXR3ZWVuXCJ9LHQubWFwKChmdW5jdGlvbihlLHQpe3JldHVybiBsKCkuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLHtrZXk6dCxjbGFzc05hbWU6XCJoLTEwIHctMTAgcHgtMS41IHB5LTIgdGV4dC1jZW50ZXIgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHRleHQtWzAuOHJlbV0gZm9udC1ub3JtYWwgY29udGVudC1jZW50ZXIgYmctdHJhbnNwYXJlbnQgYm9yZGVyLW5vbmVcIn0sZSl9KSkpfSxNPWZ1bmN0aW9uKGUpe3ZhciB0LG49ZS5kYXkscj1lLm1vZGlmaWVycyxpPWUub25TZWxlY3Qscz1yLnNlbGVjdGVkLGE9ci50b2RheSx1PXIuZGlzYWJsZWQsZD1yLm91dHNpZGUsZj1yLnJhbmdlX21pZGRsZSxtPXIucmFuZ2Vfc3RhcnQsaD1yLnJhbmdlX2VuZCxwPW18fGh8fGYsZz1uZXcgRGF0ZSx5PW51bGw9PT0odD1vKXx8dm9pZCAwPT09dD92b2lkIDA6dC50byx2PVNQKG4uZGlzcGxheU1vbnRoLFwieXl5eS1NTVwiKT09PVNQKGcsXCJ5eXl5LU1NXCIpLGI9eSYmU1AoeSxcInl5eXktTU1cIik9PT1TUChuLmRhdGUsXCJ5eXl5LU1NXCIpLHg9dk8oZywxKSx3PVNQKG4uZGF0ZSxcInl5eXktTU1cIik9PT1TUCh4LFwieXl5eS1NTVwiKSxTPXZ8fGJ8fHAsaz0hYyYmZCxFPW9lKFwiaC0xMCB3LTEwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRyYW5zaXRpb24gdGV4dC10ZXh0LXNlY29uZGFyeSByZWxhdGl2ZVwiLFwiYm9yZGVyLW5vbmUgcm91bmRlZFwiLCFzJiYhcHx8ZCYmIXc/XCJiZy10cmFuc3BhcmVudCBob3ZlcjpiZy1idXR0b24tdGVydGlhcnktaG92ZXJcIjpcImJnLWJhY2tncm91bmQtYnJhbmQgdGV4dC10ZXh0LW9uLWNvbG9yXCIsZiYmUyYmKCFkfHxwKT9cImJnLWJyYW5kLWJhY2tncm91bmQtNTAgdGV4dC10ZXh0LXNlY29uZGFyeSByb3VuZGVkLW5vbmVcIjpcIlwiLHU/XCJvcGFjaXR5LTUwIGN1cnNvci1ub3QtYWxsb3dlZCB0ZXh0LXRleHQtZGlzYWJsZWRcIjpcImN1cnNvci1wb2ludGVyXCIsZCYmIXB8fCFTJiZkfHxkJiYhdz9cImJnLXRyYW5zcGVyYW50IG9wYWNpdHktNTAgdGV4dC10ZXh0LWRpc2FibGVkIGN1cnNvci1hdXRvXCI6XCJcIik7cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIse29uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4hdSYmaShuLmRhdGUpfSxjbGFzc05hbWU6RSxkaXNhYmxlZDp1fHxkLFwiYXJpYS1sYWJlbFwiOlNQKG4uZGF0ZSxcIkVFRUUsIE1NTU0gZG8sIHl5eXlcIil9LCgha3x8cCYmUykmJlNQKG4uZGF0ZSxcImRcIiksYSYmbCgpLmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2NsYXNzTmFtZTpcImFic29sdXRlIGgtMSB3LTEgYmctYmFja2dyb3VuZC1icmFuZCByb3VuZGVkLWZ1bGwgYm90dG9tLTFcIn0pKX0sUj1mdW5jdGlvbihlKXt2YXIgdD1lLmRheSxuPWUubW9kaWZpZXJzLHI9ZS5jbGFzc05hbWUsbz1lLm9uU2VsZWN0O3JldHVybiBsKCkuY3JlYXRlRWxlbWVudChcInRkXCIse2NsYXNzTmFtZTpyfSxsKCkuY3JlYXRlRWxlbWVudChNLHtkYXk6dCxtb2RpZmllcnM6bixvblNlbGVjdDpvfSkpfSxEPWZ1bmN0aW9uKGUpe3ZhciB0PWUubW9udGhHcmlkUHJvcHMsbj1lLm9uU2VsZWN0O3JldHVybiBsKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJmbGV4IGZsZXgtY29sXCJ9LHQuY2hpbGRyZW5bMV0ucHJvcHMuY2hpbGRyZW4ubWFwKChmdW5jdGlvbihlLHQpe3JldHVybiBsKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLHtrZXk6dCxjbGFzc05hbWU6XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlblwifSxlLnByb3BzLmNoaWxkcmVuWzFdLm1hcCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7a2V5OnQsY2xhc3NOYW1lOlwiZmxleCBnYXAtMVwifSxsKCkuY3JlYXRlRWxlbWVudChNLF9PKHt9LGUucHJvcHMse29uU2VsZWN0Om59KSkpfSkpKX0pKSl9LGo9ZnVuY3Rpb24oZSl7dmFyIHQ7XCJyYW5nZVwiPT09ZD8hby5mcm9tfHxvLmZyb20mJm8udG8/aSh7ZnJvbTplLHRvOm51bGx9KTppKHtmcm9tOm8uZnJvbSx0bzplfSk6XCJtdWx0aXBsZVwiPT09ZD9vLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiBTUCh0LFwieXl5eS1NTS1kZFwiKT09PVNQKGUsXCJ5eXl5LU1NLWRkXCIpfSkpP2koby5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBTUCh0LFwieXl5eS1NTS1kZFwiKSE9PVNQKGUsXCJ5eXl5LU1NLWRkXCIpfSkpKTppKFtdLmNvbmNhdChmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBOTyhlKX0odD1vKXx8ZnVuY3Rpb24oZSl7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZVtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1lW1wiQEBpdGVyYXRvclwiXSlyZXR1cm4gQXJyYXkuZnJvbShlKX0odCl8fE9PKHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpLFtlXSkpOlwic2luZ2xlXCI9PT1kJiZpKFtlXSl9LEE9b2UoXCJyZWxhdGl2ZSBiZy1iYWNrZ3JvdW5kLXByaW1hcnkgc2hhZG93LWRhdGVwaWNrZXItd3JhcHBlclwiLHQsXCJ2ZXJ0aWNhbFwiPT09cD9cImZsZXggZmxleC1jb2xcIjpcImZsZXggZmxleC1yb3cgIGdhcC0zXCIsXCJub3JtYWxcIj09PW0/XCJyb3VuZGVkLW1kIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLWJvcmRlci1zdWJ0bGVcIjpcIlwiLFwicHJlc2V0c1wiPT09bT9cInJvdW5kZWQtdHItbWQgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItYm9yZGVyLXN1YnRsZVwiOlwiXCIsXCJkdWFsZGF0ZVwiPT09bT9cInJvdW5kZWQtdHItbWQgcm91bmRlZC10bC1tZCBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ib3JkZXItc3VidGxlXCI6XCJcIik7cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KGwoKS5GcmFnbWVudCxudWxsLGwoKS5jcmVhdGVFbGVtZW50KHlPLF9PKHttb2RlOmQsc2VsZWN0ZWQ6byxvblNlbGVjdDpqLGhpZGVOYXZpZ2F0aW9uOiEwLGNhcHRpb25MYXlvdXQ6XCJsYWJlbFwiLGNsYXNzTmFtZTpvZShuKSxmb3JtYXR0ZXJzOntmb3JtYXRXZWVrZGF5TmFtZTp4T30sc2hvd0hlYWQ6ITEsY2xhc3NOYW1lczpFTyh7bW9udGhzOkEsbW9udGg6XCJmbGV4IGZsZXgtY29sIHAtMiBnYXAtMSB0ZXh0LWNlbnRlciBib3JkZXIgYm9yZGVyLWJvcmRlci1zdWJ0bGUgcm91bmRlZC1tZCB3LWZ1bGxcIixjYXB0aW9uOlwicmVsYXRpdmUgZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXJcIix0YWJsZTpcInctZnVsbCBib3JkZXItc2VwYXJhdGUgYm9yZGVyLXNwYWNpbmctWzBfMC4yNXJlbV0gYm9yZGVyLXNwYWNpbmctMFwiLGhlYWRfcm93OlwiZmxleCBtYi0xXCIsaGVhZF9jZWxsOlwidGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHJvdW5kZWQtbWQgdy0xMCBmb250LW5vcm1hbCB0ZXh0LVswLjhyZW1dXCIscm93OlwiZmxleCB3LWZ1bGwgbXQtMlwiLGNlbGw6XCJoLTEwIHctMTAgdGV4dC1jZW50ZXIgdGV4dC1zbSBwLTAgcmVsYXRpdmVcIixkYXk6XCJoLTEwIHctMTAgcC0wIGZvbnQtbm9ybWFsIGJnLWJhY2tncm91bmQtcHJpbWFyeSB0ZXh0LWN1cnJlbnRcIn0sciksY29tcG9uZW50czp7TW9udGhDYXB0aW9uOmZ1bmN0aW9uKGUpe3ZhciB0PWNfKCksbj10LmdvVG9Nb250aCxyPXQubmV4dE1vbnRoLG89dC5wcmV2aW91c01vbnRoLGk9U1AoZS5jYWxlbmRhck1vbnRoLmRhdGUsXCJ5eXl5XCIpLHM9U1AoZS5jYWxlbmRhck1vbnRoLmRhdGUsXCJNTU1NXCIpLGE9bmV3IERhdGUoZS5jYWxlbmRhck1vbnRoLmRhdGUpO2Euc2V0RGF0ZShhLmdldERhdGUoKS1hLmdldERheSgpKTt2YXIgYyx1PUFycmF5LmZyb20oe2xlbmd0aDo3fSwoZnVuY3Rpb24oZSx0KXt2YXIgbj1uZXcgRGF0ZShhKTtyZXR1cm4gbi5zZXREYXRlKGEuZ2V0RGF0ZSgpK3QpLHhPKG4pfSkpO3JldHVybiBjPVM/XCJcIi5jb25jYXQoTyxcIiAtIFwiKS5jb25jYXQoTysyMyk6Yj9pOlwiXCIuY29uY2F0KHMsXCIgXCIpLmNvbmNhdChpKSxsKCkuY3JlYXRlRWxlbWVudChsKCkuRnJhZ21lbnQsbnVsbCxsKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJmbGV4IGp1c3RpZnktYmV0d2VlblwifSxsKCkuY3JlYXRlRWxlbWVudChkZSx7dmFyaWFudDpcImdob3N0XCIsb25DbGljazpmdW5jdGlvbigpe2lmKFMpTihPLTI0KTtlbHNlIGlmKGIpe3ZhciB0PW5ldyBEYXRlKEMtMSxlLmNhbGVuZGFyTW9udGguZGF0ZS5nZXRNb250aCgpKTtfKHQuZ2V0RnVsbFllYXIoKSksbih0KX1lbHNlIG4obyl9LGNsYXNzTmFtZTpcImJnLWJhY2tncm91bmQtcHJpbWFyeSBib3JkZXItbm9uZSBjdXJzb3ItcG9pbnRlclwifSxsKCkuY3JlYXRlRWxlbWVudChfQyx7Y2xhc3NOYW1lOlwiaC00IHctNFwifSkpLGwoKS5jcmVhdGVFbGVtZW50KGRlLHt2YXJpYW50OlwiZ2hvc3RcIixvbkNsaWNrOmZ1bmN0aW9uKCl7eT4xfHwoYj8oayghMCkseCghMSkpOlM/ayghMSk6eCghYikpfX0sYyksbCgpLmNyZWF0ZUVsZW1lbnQoZGUse3ZhcmlhbnQ6XCJnaG9zdFwiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtpZihTKU4oTysyNCk7ZWxzZSBpZihiKXt2YXIgdD1uZXcgRGF0ZShDKzEsZS5jYWxlbmRhck1vbnRoLmRhdGUuZ2V0TW9udGgoKSk7Xyh0LmdldEZ1bGxZZWFyKCkpLG4odCl9ZWxzZSBuKHIpfSxjbGFzc05hbWU6XCJiZy1iYWNrZ3JvdW5kLXByaW1hcnkgYm9yZGVyLW5vbmUgY3Vyc29yLXBvaW50ZXJcIn0sbCgpLmNyZWF0ZUVsZW1lbnQodWsse2NsYXNzTmFtZTpcImgtNCB3LTRcIn0pKSksUyYmbCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZ3JpZCBncmlkLWNvbHMtNCB3LWZ1bGxcIn0sZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjI0O3JldHVybiBBcnJheS5mcm9tKHtsZW5ndGg6dH0sKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUrbn0pKX0oTykubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoZGUse2tleTp0LHZhcmlhbnQ6XCJnaG9zdFwiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCl7Xyh0KSxrKCExKSx4KCEwKSxuKG5ldyBEYXRlKHQsZS5jYWxlbmRhck1vbnRoLmRhdGUuZ2V0TW9udGgoKSkpfSh0KX0sY2xhc3NOYW1lOm9lKFwiaC0xMCB3LWZ1bGwgdGV4dC1jZW50ZXIgZm9udC1ub3JtYWwgcmVsYXRpdmVcIix0PT09QyYmdCE9PShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSYmXCJiZy1iYWNrZ3JvdW5kLWJyYW5kIHRleHQtdGV4dC1vbi1jb2xvciBob3ZlcjpiZy1iYWNrZ3JvdW5kLWJyYW5kIGhvdmVyOnRleHQtYmxhY2tcIil9LHQsdD09PShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSYmYk8oKSl9KSkpLGImJiFTJiZsKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJncmlkIGdyaWQtY29scy00IGdhcC0yIG15LTEyXCJ9LEFycmF5LmZyb20oe2xlbmd0aDoxMn0sKGZ1bmN0aW9uKHQscil7cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KGRlLHtrZXk6cix2YXJpYW50OlwiZ2hvc3RcIixvbkNsaWNrOmZ1bmN0aW9uKCl7eCghMSksbihuZXcgRGF0ZShDLHIpKX0sY2xhc3NOYW1lOm9lKFwicHgtMS41IHB5LTIgaC0xMCB3LVs0LjM3NXJlbV0gdGV4dC1jZW50ZXIgZm9udC1ub3JtYWwgcmVsYXRpdmVcIixyPT09ZS5jYWxlbmRhck1vbnRoLmRhdGUuZ2V0TW9udGgoKSYmciE9PShuZXcgRGF0ZSkuZ2V0TW9udGgoKSYmQz09PWUuY2FsZW5kYXJNb250aC5kYXRlLmdldEZ1bGxZZWFyKCkmJmUuY2FsZW5kYXJNb250aC5kYXRlLmdldEZ1bGxZZWFyKCkhPT0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCkmJlwiYmctYmFja2dyb3VuZC1icmFuZCB0ZXh0LXRleHQtb24tY29sb3IgaG92ZXI6YmctYmFja2dyb3VuZC1icmFuZCBob3Zlcjp0ZXh0LWJsYWNrXCIpfSxTUChuZXcgRGF0ZSgwLHIpLFwiTU1NXCIpLChuZXcgRGF0ZSkuZ2V0TW9udGgoKT09PXImJihuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKT09PUMmJmJPKCkpfSkpKSwhYiYmIVMmJmwoKS5jcmVhdGVFbGVtZW50KFQse3dlZWtkYXlzOnV9KSl9LERheTpmdW5jdGlvbihlKXtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoUixfTyh7fSxlLHtvblNlbGVjdDpqfSkpfSxXZWVrZGF5czpmdW5jdGlvbigpe3JldHVybiBudWxsfSxNb250aHM6ZnVuY3Rpb24oZSl7cmV0dXJuIGwoKS5jcmVhdGVFbGVtZW50KGwoKS5GcmFnbWVudCxudWxsLGwoKS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpBfSxlLmNoaWxkcmVuLm1hcCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT9sKCkuY3JlYXRlRWxlbWVudChsKCkuRnJhZ21lbnQse2tleTp0fSxlLm1hcCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQobCgpLkZyYWdtZW50LHtrZXk6dH0sdD4wJiZsKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ib3JkZXItc3VidGxlIGJvcmRlci1sLTBcIn0pLGUpfSkpKTpudWxsfSkpKSl9LE1vbnRoR3JpZDpmdW5jdGlvbihlKXtyZXR1cm4hYiYmIVMmJmwoKS5jcmVhdGVFbGVtZW50KEQse21vbnRoR3JpZFByb3BzOmUsb25TZWxlY3Q6an0pfX19LGcpKSl9O2Z1bmN0aW9uIE1PKGUpe3JldHVybiBBXyhEYXRlLm5vdygpLGUpfWZ1bmN0aW9uIFJPKGUpe3JldHVybiBPXyhlLERhdGUubm93KCkpfWZ1bmN0aW9uIERPKGUpe2NvbnN0IHQ9Uk8oZT8uaW4pLG49dC5nZXRGdWxsWWVhcigpLHI9dC5nZXRNb250aCgpLG89dC5nZXREYXRlKCksaT1STyhlPy5pbik7cmV0dXJuIGkuc2V0RnVsbFllYXIobixyLG8tMSksaS5zZXRIb3VycygwLDAsMCwwKSxpfWZ1bmN0aW9uIGpPKGUsdCxuKXtyZXR1cm4gUl8oZSwtdCxuKX12YXIgQU89W1wic2VsZWN0aW9uVHlwZVwiLFwidmFyaWFudFwiLFwicHJlc2V0c1wiLFwib25DYW5jZWxcIixcIm9uQXBwbHlcIixcImFwcGx5QnV0dG9uVGV4dFwiLFwiY2FuY2VsQnV0dG9uVGV4dFwiLFwic2hvd091dHNpZGVEYXlzXCJdO2Z1bmN0aW9uIElPKCl7cmV0dXJuIElPPU9iamVjdC5hc3NpZ24/T2JqZWN0LmFzc2lnbi5iaW5kKCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiYoZVtyXT1uW3JdKX1yZXR1cm4gZX0sSU8uYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIExPKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn12YXIgRk89ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zZWxlY3Rpb25UeXBlLG49dm9pZCAwPT09dD9cInNpbmdsZVwiOnQscj1lLnZhcmlhbnQsbz12b2lkIDA9PT1yP1wibm9ybWFsXCI6cixpPWUucHJlc2V0cyxzPXZvaWQgMD09PWk/W106aSxjPWUub25DYW5jZWwsdT1lLm9uQXBwbHksZD1lLmFwcGx5QnV0dG9uVGV4dCxmPXZvaWQgMD09PWQ/XCJBcHBseVwiOmQsbT1lLmNhbmNlbEJ1dHRvblRleHQsaD12b2lkIDA9PT1tP1wiQ2FuY2VsXCI6bSxwPWUuc2hvd091dHNpZGVEYXlzLGc9dm9pZCAwPT09cHx8cCx5PWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuPXt9O2Zvcih2YXIgciBpbiBlKWlmKHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSxyKSl7aWYodC5pbmNsdWRlcyhyKSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8aS5sZW5ndGg7cisrKW49aVtyXSx0LmluY2x1ZGVzKG4pfHx7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfShlLEFPKSx2PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW4pe3ZhciByLG8saSxzLGE9W10sbD0hMCxjPSExO3RyeXtpZihpPShuPW4uY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47bD0hMX1lbHNlIGZvcig7IShsPShyPWkuY2FsbChuKSkuZG9uZSkmJihhLnB1c2goci52YWx1ZSksYS5sZW5ndGghPT10KTtsPSEwKTt9Y2F0Y2goZSl7Yz0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIWwmJm51bGwhPW4ucmV0dXJuJiYocz1uLnJldHVybigpLE9iamVjdChzKSE9PXMpKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgb319cmV0dXJuIGF9fShlLHQpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBMTyhlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uP0FycmF5LmZyb20oZSk6XCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP0xPKGUsdCk6dm9pZCAwfX0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfSgoMCxhLnVzZVN0YXRlKSgoZnVuY3Rpb24oKXtyZXR1cm5cIm11bHRpcGxlXCI9PT1uP1tdOlwicmFuZ2VcIj09PW4/e2Zyb206bnVsbCx0bzpudWxsfTpudWxsfSkpLDIpLGI9dlswXSx4PXZbMV0sdz1be2xhYmVsOlwiVG9kYXlcIixyYW5nZTp7ZnJvbTpNTygpLHRvOk1PKCl9fSx7bGFiZWw6XCJZZXN0ZXJkYXlcIixyYW5nZTp7ZnJvbTpETygpLHRvOkRPKCl9fSx7bGFiZWw6XCJUaGlzIFdlZWtcIixyYW5nZTp7ZnJvbTpKXyhuZXcgRGF0ZSx7d2Vla1N0YXJ0c09uOjF9KSx0bzp6XyhuZXcgRGF0ZSx7d2Vla1N0YXJ0c09uOjF9KX19LHtsYWJlbDpcIkxhc3QgV2Vla1wiLHJhbmdlOntmcm9tOkpfKGpPKG5ldyBEYXRlLDEpLHt3ZWVrU3RhcnRzT246MX0pLHRvOnpfKGpPKG5ldyBEYXRlLDEpLHt3ZWVrU3RhcnRzT246MX0pfX0se2xhYmVsOlwiVGhpcyBNb250aFwiLHJhbmdlOntmcm9tOkVQKG5ldyBEYXRlKSx0bzpCXyhuZXcgRGF0ZSl9fSx7bGFiZWw6XCJMYXN0IE1vbnRoXCIscmFuZ2U6e2Zyb206RVAodk8obmV3IERhdGUsMSkpLHRvOkJfKHZPKG5ldyBEYXRlLDEpKX19XSxTPXMubGVuZ3RoPjA/czp3LGs9ZnVuY3Rpb24oKXt4KFwibXVsdGlwbGVcIj09PW4/W106e2Zyb206bnVsbCx0bzpudWxsfSksYyYmYygpfSxFPWZ1bmN0aW9uKCl7dSYmdShiKX07cmV0dXJuXCJub3JtYWxcIj09PW8/bCgpLmNyZWF0ZUVsZW1lbnQoVE8sSU8oe30seSx7bW9kZTpuLHZhcmlhbnQ6byx3aWR0aDpcInctWzE4LjVyZW1dXCIsc2VsZWN0ZWREYXRlczpiLHNob3dPdXRzaWRlRGF5czpnLHNldFNlbGVjdGVkRGF0ZXM6eH0pKTpcImR1YWxkYXRlXCI9PT1vP2woKS5jcmVhdGVFbGVtZW50KFRPLHttb2RlOm4sbnVtYmVyT2ZNb250aHM6MixhbGlnbm1lbnQ6XCJob3Jpem9udGFsXCIsc2VsZWN0ZWREYXRlczpiLHNldFNlbGVjdGVkRGF0ZXM6eCxzaG93T3V0c2lkZURheXM6Zyx2YXJpYW50Om8sd2lkdGg6XCJ3LWF1dG9cIixmb290ZXI6bCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZmxleCBqdXN0aWZ5LWVuZCBwLTIgZ2FwLTMgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItYm9yZGVyLXN1YnRsZSBib3JkZXItdC0wIHJvdW5kZWQtbWQgcm91bmRlZC10bC1ub25lIHJvdW5kZWQtdHItbm9uZVwifSxsKCkuY3JlYXRlRWxlbWVudChkZSx7dmFyaWFudDpcIm91dGxpbmVcIixvbkNsaWNrOmt9LGgpLGwoKS5jcmVhdGVFbGVtZW50KGRlLHtvbkNsaWNrOkV9LGYpKX0pOlwicHJlc2V0c1wiPT09bz9sKCkuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJmbGV4IGZsZXgtcm93IHNoYWRvdy1kYXRlcGlja2VyLXdyYXBwZXJcIn0sbCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZmxleCBmbGV4LWNvbCBnYXAtMSBwLTMgaXRlbXMtc3RhcnQgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItYm9yZGVyLXN1YnRsZSBib3JkZXItci0wIHJvdW5kZWQtdGwtbWQgcm91bmRlZC1ibC1tZFwifSxTLm1hcCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gbCgpLmNyZWF0ZUVsZW1lbnQoZGUse2tleTp0LG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gdD1lLnJhbmdlLHZvaWQgeCh0KTt2YXIgdH0sdmFyaWFudDpcImdob3N0XCIsY2xhc3NOYW1lOlwiZm9udC1tZWRpdW0gdGV4dC1zbVwifSxlLmxhYmVsKX0pKSksbCgpLmNyZWF0ZUVsZW1lbnQoVE8sSU8oe30seSx7bW9kZTpuLHNlbGVjdGVkRGF0ZXM6YixzZXRTZWxlY3RlZERhdGVzOngsdmFyaWFudDpvLHNob3dPdXRzaWRlRGF5czpnLHdpZHRoOlwidy1hdXRvXCIsbnVtYmVyT2ZNb250aHM6Mixmb290ZXI6bCgpLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZmxleCBqdXN0aWZ5LWVuZCBwLTIgZ2FwLTMgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItYm9yZGVyLXN1YnRsZSBib3JkZXItdC0wIHJvdW5kZWQtYnItbWRcIn0sbCgpLmNyZWF0ZUVsZW1lbnQoZGUse3ZhcmlhbnQ6XCJvdXRsaW5lXCIsb25DbGljazprfSxoKSxsKCkuY3JlYXRlRWxlbWVudChkZSx7b25DbGljazpFfSxmKSl9KSkpOnZvaWQgMH07cmV0dXJuIHJ9KCl9KSk7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@bsf/force-ui/dist/force-ui.js\n");
/***/ }),
/***/ "./node_modules/@fontsource/figtree/400-italic.css":
/*!*********************************************************!*\
!*** ./node_modules/@fontsource/figtree/400-italic.css ***!
\*********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGZvbnRzb3VyY2UvZmlndHJlZS80MDAtaXRhbGljLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL0Bmb250c291cmNlL2ZpZ3RyZWUvNDAwLWl0YWxpYy5jc3M/NzkyZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCB7fTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@fontsource/figtree/400-italic.css\n");
/***/ }),
/***/ "./node_modules/@fontsource/figtree/400.css":
/*!**************************************************!*\
!*** ./node_modules/@fontsource/figtree/400.css ***!
\**************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGZvbnRzb3VyY2UvZmlndHJlZS80MDAuY3NzIiwibWFwcGluZ3MiOiI7QUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvQGZvbnRzb3VyY2UvZmlndHJlZS80MDAuY3NzPzhlZjkiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQge307Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@fontsource/figtree/400.css\n");
/***/ }),
/***/ "./node_modules/@fontsource/figtree/index.css":
/*!****************************************************!*\
!*** ./node_modules/@fontsource/figtree/index.css ***!
\****************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQGZvbnRzb3VyY2UvZmlndHJlZS9pbmRleC5jc3MiLCJtYXBwaW5ncyI6IjtBQUFBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL25vZGVfbW9kdWxlcy9AZm9udHNvdXJjZS9maWd0cmVlL2luZGV4LmNzcz83NTY5Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IHt9OyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@fontsource/figtree/index.css\n");
/***/ }),
/***/ "./node_modules/classnames/index.js":
/*!******************************************!*\
!*** ./node_modules/classnames/index.js ***!
\******************************************/
/***/ (function(module, exports) {
eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif ( true && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn classNames;\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}());\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY2xhc3NuYW1lcy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxnQkFBZ0I7O0FBRWhCO0FBQ0E7O0FBRUEsa0JBQWtCLHNCQUFzQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsS0FBSyxLQUE2QjtBQUNsQztBQUNBO0FBQ0EsR0FBRyxTQUFTLElBQTRFO0FBQ3hGO0FBQ0EsRUFBRSxpQ0FBcUIsRUFBRSxtQ0FBRTtBQUMzQjtBQUNBLEdBQUc7QUFBQSxrR0FBQztBQUNKLEdBQUcsS0FBSyxFQUVOO0FBQ0YsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvY2xhc3NuYW1lcy9pbmRleC5qcz83OGExIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIVxuXHRDb3B5cmlnaHQgKGMpIDIwMTggSmVkIFdhdHNvbi5cblx0TGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlIChNSVQpLCBzZWVcblx0aHR0cDovL2plZHdhdHNvbi5naXRodWIuaW8vY2xhc3NuYW1lc1xuKi9cbi8qIGdsb2JhbCBkZWZpbmUgKi9cblxuKGZ1bmN0aW9uICgpIHtcblx0J3VzZSBzdHJpY3QnO1xuXG5cdHZhciBoYXNPd24gPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxuXHRmdW5jdGlvbiBjbGFzc05hbWVzICgpIHtcblx0XHR2YXIgY2xhc3NlcyA9ICcnO1xuXG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhciBhcmcgPSBhcmd1bWVudHNbaV07XG5cdFx0XHRpZiAoYXJnKSB7XG5cdFx0XHRcdGNsYXNzZXMgPSBhcHBlbmRDbGFzcyhjbGFzc2VzLCBwYXJzZVZhbHVlKGFyZykpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBjbGFzc2VzO1xuXHR9XG5cblx0ZnVuY3Rpb24gcGFyc2VWYWx1ZSAoYXJnKSB7XG5cdFx0aWYgKHR5cGVvZiBhcmcgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBhcmcgPT09ICdudW1iZXInKSB7XG5cdFx0XHRyZXR1cm4gYXJnO1xuXHRcdH1cblxuXHRcdGlmICh0eXBlb2YgYXJnICE9PSAnb2JqZWN0Jykge1xuXHRcdFx0cmV0dXJuICcnO1xuXHRcdH1cblxuXHRcdGlmIChBcnJheS5pc0FycmF5KGFyZykpIHtcblx0XHRcdHJldHVybiBjbGFzc05hbWVzLmFwcGx5KG51bGwsIGFyZyk7XG5cdFx0fVxuXG5cdFx0aWYgKGFyZy50b1N0cmluZyAhPT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyAmJiAhYXJnLnRvU3RyaW5nLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ1tuYXRpdmUgY29kZV0nKSkge1xuXHRcdFx0cmV0dXJuIGFyZy50b1N0cmluZygpO1xuXHRcdH1cblxuXHRcdHZhciBjbGFzc2VzID0gJyc7XG5cblx0XHRmb3IgKHZhciBrZXkgaW4gYXJnKSB7XG5cdFx0XHRpZiAoaGFzT3duLmNhbGwoYXJnLCBrZXkpICYmIGFyZ1trZXldKSB7XG5cdFx0XHRcdGNsYXNzZXMgPSBhcHBlbmRDbGFzcyhjbGFzc2VzLCBrZXkpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBjbGFzc2VzO1xuXHR9XG5cblx0ZnVuY3Rpb24gYXBwZW5kQ2xhc3MgKHZhbHVlLCBuZXdDbGFzcykge1xuXHRcdGlmICghbmV3Q2xhc3MpIHtcblx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHR9XG5cdFxuXHRcdGlmICh2YWx1ZSkge1xuXHRcdFx0cmV0dXJuIHZhbHVlICsgJyAnICsgbmV3Q2xhc3M7XG5cdFx0fVxuXHRcblx0XHRyZXR1cm4gdmFsdWUgKyBuZXdDbGFzcztcblx0fVxuXG5cdGlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyAmJiBtb2R1bGUuZXhwb3J0cykge1xuXHRcdGNsYXNzTmFtZXMuZGVmYXVsdCA9IGNsYXNzTmFtZXM7XG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBjbGFzc05hbWVzO1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGRlZmluZS5hbWQgPT09ICdvYmplY3QnICYmIGRlZmluZS5hbWQpIHtcblx0XHQvLyByZWdpc3RlciBhcyAnY2xhc3NuYW1lcycsIGNvbnNpc3RlbnQgd2l0aCBucG0gcGFja2FnZSBuYW1lXG5cdFx0ZGVmaW5lKCdjbGFzc25hbWVzJywgW10sIGZ1bmN0aW9uICgpIHtcblx0XHRcdHJldHVybiBjbGFzc05hbWVzO1xuXHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHdpbmRvdy5jbGFzc05hbWVzID0gY2xhc3NOYW1lcztcblx0fVxufSgpKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/classnames/index.js\n");
/***/ }),
/***/ "./node_modules/goober/dist/goober.modern.js":
/*!***************************************************!*\
!*** ./node_modules/goober/dist/goober.modern.js ***!
\***************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ css: function() { return /* binding */ u; },\n/* harmony export */ extractCss: function() { return /* binding */ r; },\n/* harmony export */ glob: function() { return /* binding */ b; },\n/* harmony export */ keyframes: function() { return /* binding */ h; },\n/* harmony export */ setup: function() { return /* binding */ m; },\n/* harmony export */ styled: function() { return /* binding */ j; }\n/* harmony export */ });\nlet e={data:\"\"},t=t=>\"object\"==typeof window?((t?t.querySelector(\"#_goober\"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement(\"style\")),{innerHTML:\" \",id:\"_goober\"})).firstChild:t||e,r=e=>{let r=t(e),l=r.data;return r.data=\"\",l},l=/(?:([\\u0080-\\uFFFF\\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\\s*)/g,a=/\\/\\*[^]*?\\*\\/| +/g,n=/\\n+/g,o=(e,t)=>{let r=\"\",l=\"\",a=\"\";for(let n in e){let c=e[n];\"@\"==n[0]?\"i\"==n[1]?r=n+\" \"+c+\";\":l+=\"f\"==n[1]?o(c,n):n+\"{\"+o(c,\"k\"==n[1]?\"\":t)+\"}\":\"object\"==typeof c?l+=o(c,t?t.replace(/([^,])+/g,e=>n.replace(/([^,]*:\\S+\\([^)]*\\))|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):n):null!=c&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,\"-$&\").toLowerCase(),a+=o.p?o.p(n,c):n+\":\"+c+\";\")}return r+(t&&a?t+\"{\"+a+\"}\":a)+l},c={},s=e=>{if(\"object\"==typeof e){let t=\"\";for(let r in e)t+=r+s(e[r]);return t}return e},i=(e,t,r,i,p)=>{let u=s(e),d=c[u]||(c[u]=(e=>{let t=0,r=11;for(;t<e.length;)r=101*r+e.charCodeAt(t++)>>>0;return\"go\"+r})(u));if(!c[d]){let t=u!==e?e:(e=>{let t,r,o=[{}];for(;t=l.exec(e.replace(a,\"\"));)t[4]?o.shift():t[3]?(r=t[3].replace(n,\" \").trim(),o.unshift(o[0][r]=o[0][r]||{})):o[0][t[1]]=t[2].replace(n,\" \").trim();return o[0]})(e);c[d]=o(p?{[\"@keyframes \"+d]:t}:t,r?\"\":\".\"+d)}let f=r&&c.g?c.g:null;return r&&(c.g=c[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(c[d],t,i,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):!1===e?\"\":e}return e+l+(null==n?\"\":n)},\"\");function u(e){let r=this||{},l=e.call?e(r.p):e;return i(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let d,f,g,b=u.bind({g:1}),h=u.bind({k:1});function m(e,t,r,l){o.p=t,d=e,f=r,g=l}function j(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/.test(s),c.className=u.apply(r,l)+(s?\" \"+s:\"\"),t&&(c.ref=o);let i=e;return e[0]&&(i=c.as||e,delete c.as),g&&i[0]&&g(c),d(i,c)}return t?t(a):a}}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZ29vYmVyL2Rpc3QvZ29vYmVyLm1vZGVybi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLFFBQVEsOEpBQThKLDJCQUEyQix5QkFBeUIsb0JBQW9CLG1CQUFtQix5Q0FBeUMsS0FBSyxPQUFPLE9BQU8sSUFBSSxpREFBaUQsbUJBQW1CLGdCQUFnQixXQUFXLGdDQUFnQywwQkFBMEIsd0JBQXdCLGdQQUFnUCxHQUFHLG1CQUFtQixNQUFNLE9BQU8sS0FBSyxPQUFPLHVCQUF1QixTQUFTLDRCQUE0QixTQUFTLFNBQVMsaUJBQWlCLDhCQUE4QixhQUFhLEtBQUssV0FBVywrQkFBK0IsYUFBYSxNQUFNLFVBQVUsbUJBQW1CLGFBQWEsRUFBRSxLQUFLLDBCQUEwQixnRkFBZ0YseUNBQXlDLFlBQVksS0FBSyxVQUFVLG9CQUFvQixlQUFlLHNCQUFzQixrQ0FBa0Msa0ZBQWtGLGdCQUFnQiwrQkFBK0IsV0FBVyxjQUFjLDZEQUE2RCwrREFBK0QsMEJBQTBCLEtBQUssY0FBYyxjQUFjLG1CQUFtQixtSEFBbUgsNkJBQTZCLG9CQUFvQixJQUFJLFlBQVksSUFBSSxFQUFFLG9CQUFvQixrQkFBa0IsZ0JBQWdCLGVBQWUsa0JBQWtCLGdCQUFnQixnQkFBZ0Isc0JBQXNCLCtCQUErQixtQkFBbUIsYUFBYSw2RUFBNkUsUUFBUSwwREFBMEQsaUJBQWtHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL25vZGVfbW9kdWxlcy9nb29iZXIvZGlzdC9nb29iZXIubW9kZXJuLmpzP2FjZTIiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IGU9e2RhdGE6XCJcIn0sdD10PT5cIm9iamVjdFwiPT10eXBlb2Ygd2luZG93PygodD90LnF1ZXJ5U2VsZWN0b3IoXCIjX2dvb2JlclwiKTp3aW5kb3cuX2dvb2Jlcil8fE9iamVjdC5hc3NpZ24oKHR8fGRvY3VtZW50LmhlYWQpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKSkse2lubmVySFRNTDpcIiBcIixpZDpcIl9nb29iZXJcIn0pKS5maXJzdENoaWxkOnR8fGUscj1lPT57bGV0IHI9dChlKSxsPXIuZGF0YTtyZXR1cm4gci5kYXRhPVwiXCIsbH0sbD0vKD86KFtcXHUwMDgwLVxcdUZGRkZcXHctJUBdKykgKjo/ICooW157O10rPyk7fChbXjt9e10qPykgKnspfCh9XFxzKikvZyxhPS9cXC9cXCpbXl0qP1xcKlxcL3wgICsvZyxuPS9cXG4rL2csbz0oZSx0KT0+e2xldCByPVwiXCIsbD1cIlwiLGE9XCJcIjtmb3IobGV0IG4gaW4gZSl7bGV0IGM9ZVtuXTtcIkBcIj09blswXT9cImlcIj09blsxXT9yPW4rXCIgXCIrYytcIjtcIjpsKz1cImZcIj09blsxXT9vKGMsbik6bitcIntcIitvKGMsXCJrXCI9PW5bMV0/XCJcIjp0KStcIn1cIjpcIm9iamVjdFwiPT10eXBlb2YgYz9sKz1vKGMsdD90LnJlcGxhY2UoLyhbXixdKSsvZyxlPT5uLnJlcGxhY2UoLyhbXixdKjpcXFMrXFwoW14pXSpcXCkpfChbXixdKSsvZyx0PT4vJi8udGVzdCh0KT90LnJlcGxhY2UoLyYvZyxlKTplP2UrXCIgXCIrdDp0KSk6bik6bnVsbCE9YyYmKG49L14tLS8udGVzdChuKT9uOm4ucmVwbGFjZSgvW0EtWl0vZyxcIi0kJlwiKS50b0xvd2VyQ2FzZSgpLGErPW8ucD9vLnAobixjKTpuK1wiOlwiK2MrXCI7XCIpfXJldHVybiByKyh0JiZhP3QrXCJ7XCIrYStcIn1cIjphKStsfSxjPXt9LHM9ZT0+e2lmKFwib2JqZWN0XCI9PXR5cGVvZiBlKXtsZXQgdD1cIlwiO2ZvcihsZXQgciBpbiBlKXQrPXIrcyhlW3JdKTtyZXR1cm4gdH1yZXR1cm4gZX0saT0oZSx0LHIsaSxwKT0+e2xldCB1PXMoZSksZD1jW3VdfHwoY1t1XT0oZT0+e2xldCB0PTAscj0xMTtmb3IoO3Q8ZS5sZW5ndGg7KXI9MTAxKnIrZS5jaGFyQ29kZUF0KHQrKyk+Pj4wO3JldHVyblwiZ29cIityfSkodSkpO2lmKCFjW2RdKXtsZXQgdD11IT09ZT9lOihlPT57bGV0IHQscixvPVt7fV07Zm9yKDt0PWwuZXhlYyhlLnJlcGxhY2UoYSxcIlwiKSk7KXRbNF0/by5zaGlmdCgpOnRbM10/KHI9dFszXS5yZXBsYWNlKG4sXCIgXCIpLnRyaW0oKSxvLnVuc2hpZnQob1swXVtyXT1vWzBdW3JdfHx7fSkpOm9bMF1bdFsxXV09dFsyXS5yZXBsYWNlKG4sXCIgXCIpLnRyaW0oKTtyZXR1cm4gb1swXX0pKGUpO2NbZF09byhwP3tbXCJAa2V5ZnJhbWVzIFwiK2RdOnR9OnQscj9cIlwiOlwiLlwiK2QpfWxldCBmPXImJmMuZz9jLmc6bnVsbDtyZXR1cm4gciYmKGMuZz1jW2RdKSwoKGUsdCxyLGwpPT57bD90LmRhdGE9dC5kYXRhLnJlcGxhY2UobCxlKTotMT09PXQuZGF0YS5pbmRleE9mKGUpJiYodC5kYXRhPXI/ZSt0LmRhdGE6dC5kYXRhK2UpfSkoY1tkXSx0LGksZiksZH0scD0oZSx0LHIpPT5lLnJlZHVjZSgoZSxsLGEpPT57bGV0IG49dFthXTtpZihuJiZuLmNhbGwpe2xldCBlPW4ociksdD1lJiZlLnByb3BzJiZlLnByb3BzLmNsYXNzTmFtZXx8L15nby8udGVzdChlKSYmZTtuPXQ/XCIuXCIrdDplJiZcIm9iamVjdFwiPT10eXBlb2YgZT9lLnByb3BzP1wiXCI6byhlLFwiXCIpOiExPT09ZT9cIlwiOmV9cmV0dXJuIGUrbCsobnVsbD09bj9cIlwiOm4pfSxcIlwiKTtmdW5jdGlvbiB1KGUpe2xldCByPXRoaXN8fHt9LGw9ZS5jYWxsP2Uoci5wKTplO3JldHVybiBpKGwudW5zaGlmdD9sLnJhdz9wKGwsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSksci5wKTpsLnJlZHVjZSgoZSx0KT0+T2JqZWN0LmFzc2lnbihlLHQmJnQuY2FsbD90KHIucCk6dCkse30pOmwsdChyLnRhcmdldCksci5nLHIubyxyLmspfWxldCBkLGYsZyxiPXUuYmluZCh7ZzoxfSksaD11LmJpbmQoe2s6MX0pO2Z1bmN0aW9uIG0oZSx0LHIsbCl7by5wPXQsZD1lLGY9cixnPWx9ZnVuY3Rpb24gaihlLHQpe2xldCByPXRoaXN8fHt9O3JldHVybiBmdW5jdGlvbigpe2xldCBsPWFyZ3VtZW50cztmdW5jdGlvbiBhKG4sbyl7bGV0IGM9T2JqZWN0LmFzc2lnbih7fSxuKSxzPWMuY2xhc3NOYW1lfHxhLmNsYXNzTmFtZTtyLnA9T2JqZWN0LmFzc2lnbih7dGhlbWU6ZiYmZigpfSxjKSxyLm89LyAqZ29cXGQrLy50ZXN0KHMpLGMuY2xhc3NOYW1lPXUuYXBwbHkocixsKSsocz9cIiBcIitzOlwiXCIpLHQmJihjLnJlZj1vKTtsZXQgaT1lO3JldHVybiBlWzBdJiYoaT1jLmFzfHxlLGRlbGV0ZSBjLmFzKSxnJiZpWzBdJiZnKGMpLGQoaSxjKX1yZXR1cm4gdD90KGEpOmF9fWV4cG9ydHt1IGFzIGNzcyxyIGFzIGV4dHJhY3RDc3MsYiBhcyBnbG9iLGggYXMga2V5ZnJhbWVzLG0gYXMgc2V0dXAsaiBhcyBzdHlsZWR9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/goober/dist/goober.modern.js\n");
/***/ }),
/***/ "./node_modules/history/index.js":
/*!***************************************!*\
!*** ./node_modules/history/index.js ***!
\***************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Action: function() { return /* binding */ Action; },\n/* harmony export */ createBrowserHistory: function() { return /* binding */ createBrowserHistory; },\n/* harmony export */ createHashHistory: function() { return /* binding */ createHashHistory; },\n/* harmony export */ createMemoryHistory: function() { return /* binding */ createMemoryHistory; },\n/* harmony export */ createPath: function() { return /* binding */ createPath; },\n/* harmony export */ parsePath: function() { return /* binding */ parsePath; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n\n\n/**\r\n * Actions represent the type of change to a location value.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#action\r\n */\nvar Action;\n\n(function (Action) {\n /**\r\n * A POP indicates a change to an arbitrary index in the history stack, such\r\n * as a back or forward navigation. It does not describe the direction of the\r\n * navigation, only that the current index changed.\r\n *\r\n * Note: This is the default action for newly created history objects.\r\n */\n Action[\"Pop\"] = \"POP\";\n /**\r\n * A PUSH indicates a new entry being added to the history stack, such as when\r\n * a link is clicked and a new page loads. When this happens, all subsequent\r\n * entries in the stack are lost.\r\n */\n\n Action[\"Push\"] = \"PUSH\";\n /**\r\n * A REPLACE indicates the entry at the current index in the history stack\r\n * being replaced by a new one.\r\n */\n\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\n\nvar readOnly = true ? function (obj) {\n return Object.freeze(obj);\n} : 0;\n\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== 'undefined') console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nvar BeforeUnloadEventType = 'beforeunload';\nvar HashChangeEventType = 'hashchange';\nvar PopStateEventType = 'popstate';\n/**\r\n * Browser history stores the location in regular URLs. This is the standard for\r\n * most web apps, but it requires some configuration on the server to ensure you\r\n * serve the same app at multiple URLs.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\r\n */\n\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$window = _options.window,\n window = _options$window === void 0 ? document.defaultView : _options$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation[0],\n nextLocation = _getIndexAndLocation[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n true ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better what\n // is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop);\n var action = Action.Pop;\n\n var _getIndexAndLocation2 = getIndexAndLocation(),\n index = _getIndexAndLocation2[0],\n location = _getIndexAndLocation2[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n } // state defaults to `null` because `window.history.state` does\n\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation3 = getIndexAndLocation();\n\n index = _getIndexAndLocation3[0];\n location = _getIndexAndLocation3[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr[0],\n url = _getHistoryStateAndUr[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr2 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr2[0],\n url = _getHistoryStateAndUr2[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Hash history stores the location in window.location.hash. This makes it ideal\r\n * for situations where you don't want to send the location to the server for\r\n * some reason, either because you do cannot configure it or the URL space is\r\n * reserved for something else.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\r\n */\n\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options2 = options,\n _options2$window = _options2.window,\n window = _options2$window === void 0 ? document.defaultView : _options2$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _parsePath = parsePath(window.location.hash.substr(1)),\n _parsePath$pathname = _parsePath.pathname,\n pathname = _parsePath$pathname === void 0 ? '/' : _parsePath$pathname,\n _parsePath$search = _parsePath.search,\n search = _parsePath$search === void 0 ? '' : _parsePath$search,\n _parsePath$hash = _parsePath.hash,\n hash = _parsePath$hash === void 0 ? '' : _parsePath$hash;\n\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation4 = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation4[0],\n nextLocation = _getIndexAndLocation4[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n true ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better\n // what is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop); // popstate does not fire on hashchange in IE 11 and old (trident) Edge\n // https://developer.mozilla.org/de/docs/Web/API/Window/popstate_event\n\n window.addEventListener(HashChangeEventType, function () {\n var _getIndexAndLocation5 = getIndexAndLocation(),\n nextLocation = _getIndexAndLocation5[1]; // Ignore extraneous hashchange events.\n\n\n if (createPath(nextLocation) !== createPath(location)) {\n handlePop();\n }\n });\n var action = Action.Pop;\n\n var _getIndexAndLocation6 = getIndexAndLocation(),\n index = _getIndexAndLocation6[0],\n location = _getIndexAndLocation6[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function getBaseHref() {\n var base = document.querySelector('base');\n var href = '';\n\n if (base && base.getAttribute('href')) {\n var url = window.location.href;\n var hashIndex = url.indexOf('#');\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href;\n }\n\n function createHref(to) {\n return getBaseHref() + '#' + (typeof to === 'string' ? to : createPath(to));\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation7 = getIndexAndLocation();\n\n index = _getIndexAndLocation7[0];\n location = _getIndexAndLocation7[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n true ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\") : 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr3 = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr3[0],\n url = _getHistoryStateAndUr3[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n true ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.replace(\" + JSON.stringify(to) + \")\") : 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr4 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr4[0],\n url = _getHistoryStateAndUr4[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Memory history stores the current location in memory. It is designed for use\r\n * in stateful non-browser environments like tests and React Native.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#creatememoryhistory\r\n */\n\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options3 = options,\n _options3$initialEntr = _options3.initialEntries,\n initialEntries = _options3$initialEntr === void 0 ? ['/'] : _options3$initialEntr,\n initialIndex = _options3.initialIndex;\n var entries = initialEntries.map(function (entry) {\n var location = readOnly((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n pathname: '/',\n search: '',\n hash: '',\n state: null,\n key: createKey()\n }, typeof entry === 'string' ? parsePath(entry) : entry));\n true ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in createMemoryHistory({ initialEntries }) (invalid entry: \" + JSON.stringify(entry) + \")\") : 0;\n return location;\n });\n var index = clamp(initialIndex == null ? entries.length - 1 : initialIndex, 0, entries.length - 1);\n var action = Action.Pop;\n var location = entries[index];\n var listeners = createEvents();\n var blockers = createEvents();\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n pathname: location.pathname,\n search: '',\n hash: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction, nextLocation) {\n action = nextAction;\n location = nextLocation;\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n true ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.push(\" + JSON.stringify(to) + \")\") : 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n applyTx(nextAction, nextLocation);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n true ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.replace(\" + JSON.stringify(to) + \")\") : 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n entries[index] = nextLocation;\n applyTx(nextAction, nextLocation);\n }\n }\n\n function go(delta) {\n var nextIndex = clamp(index + delta, 0, entries.length - 1);\n var nextAction = Action.Pop;\n var nextLocation = entries[nextIndex];\n\n function retry() {\n go(delta);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index = nextIndex;\n applyTx(nextAction, nextLocation);\n }\n }\n\n var history = {\n get index() {\n return index;\n },\n\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n return blockers.push(blocker);\n }\n };\n return history;\n} ////////////////////////////////////////////////////////////////////////////////\n// UTILS\n////////////////////////////////////////////////////////////////////////////////\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n\nfunction promptBeforeUnload(event) {\n // Cancel the event.\n event.preventDefault(); // Chrome (and legacy IE) requires returnValue to be set.\n\n event.returnValue = '';\n}\n\nfunction createEvents() {\n var handlers = [];\n return {\n get length() {\n return handlers.length;\n },\n\n push: function push(fn) {\n handlers.push(fn);\n return function () {\n handlers = handlers.filter(function (handler) {\n return handler !== fn;\n });\n };\n },\n call: function call(arg) {\n handlers.forEach(function (fn) {\n return fn && fn(arg);\n });\n }\n };\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\r\n * Creates a string URL path from the given pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createpath\r\n */\n\n\nfunction createPath(_ref) {\n var _ref$pathname = _ref.pathname,\n pathname = _ref$pathname === void 0 ? '/' : _ref$pathname,\n _ref$search = _ref.search,\n search = _ref$search === void 0 ? '' : _ref$search,\n _ref$hash = _ref.hash,\n hash = _ref$hash === void 0 ? '' : _ref$hash;\n if (search && search !== '?') pathname += search.charAt(0) === '?' ? search : '?' + search;\n if (hash && hash !== '#') pathname += hash.charAt(0) === '#' ? hash : '#' + hash;\n return pathname;\n}\n/**\r\n * Parses a string URL path into its separate pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#parsepath\r\n */\n\nfunction parsePath(path) {\n var parsedPath = {};\n\n if (path) {\n var hashIndex = path.indexOf('#');\n\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n var searchIndex = path.indexOf('?');\n\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\n\n//# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvaGlzdG9yeS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQTBEOztBQUUxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsQ0FBQyx3QkFBd0I7O0FBRXpCLGVBQWUsS0FBcUM7QUFDcEQ7QUFDQSxFQUFFLEVBQUUsQ0FFSDs7QUFFRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEMsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsVUFBVSxLQUFxQztBQUMvQztBQUNBO0FBQ0Esc1VBQXNVLENBQU07QUFDNVU7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsK0JBQStCLDhFQUFRLEdBQUc7QUFDMUM7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG9CQUFvQiw4RUFBUTtBQUM1QjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsMENBQTBDO0FBQzFDOzs7QUFHQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7O0FBRzNDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FB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OztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsMEJBQTBCOztBQUUxQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFdUc7QUFDdkciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL2hpc3RvcnkvaW5kZXguanM/MjUxMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX2V4dGVuZHMgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kcyc7XG5cbi8qKlxyXG4gKiBBY3Rpb25zIHJlcHJlc2VudCB0aGUgdHlwZSBvZiBjaGFuZ2UgdG8gYSBsb2NhdGlvbiB2YWx1ZS5cclxuICpcclxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vcmVtaXgtcnVuL2hpc3RvcnkvdHJlZS9tYWluL2RvY3MvYXBpLXJlZmVyZW5jZS5tZCNhY3Rpb25cclxuICovXG52YXIgQWN0aW9uO1xuXG4oZnVuY3Rpb24gKEFjdGlvbikge1xuICAvKipcclxuICAgKiBBIFBPUCBpbmRpY2F0ZXMgYSBjaGFuZ2UgdG8gYW4gYXJiaXRyYXJ5IGluZGV4IGluIHRoZSBoaXN0b3J5IHN0YWNrLCBzdWNoXHJcbiAgICogYXMgYSBiYWNrIG9yIGZvcndhcmQgbmF2aWdhdGlvbi4gSXQgZG9lcyBub3QgZGVzY3JpYmUgdGhlIGRpcmVjdGlvbiBvZiB0aGVcclxuICAgKiBuYXZpZ2F0aW9uLCBvbmx5IHRoYXQgdGhlIGN1cnJlbnQgaW5kZXggY2hhbmdlZC5cclxuICAgKlxyXG4gICAqIE5vdGU6IFRoaXMgaXMgdGhlIGRlZmF1bHQgYWN0aW9uIGZvciBuZXdseSBjcmVhdGVkIGhpc3Rvcnkgb2JqZWN0cy5cclxuICAgKi9cbiAgQWN0aW9uW1wiUG9wXCJdID0gXCJQT1BcIjtcbiAgLyoqXHJcbiAgICogQSBQVVNIIGluZGljYXRlcyBhIG5ldyBlbnRyeSBiZWluZyBhZGRlZCB0byB0aGUgaGlzdG9yeSBzdGFjaywgc3VjaCBhcyB3aGVuXHJcbiAgICogYSBsaW5rIGlzIGNsaWNrZWQgYW5kIGEgbmV3IHBhZ2UgbG9hZHMuIFdoZW4gdGhpcyBoYXBwZW5zLCBhbGwgc3Vic2VxdWVudFxyXG4gICAqIGVudHJpZXMgaW4gdGhlIHN0YWNrIGFyZSBsb3N0LlxyXG4gICAqL1xuXG4gIEFjdGlvbltcIlB1c2hcIl0gPSBcIlBVU0hcIjtcbiAgLyoqXHJcbiAgICogQSBSRVBMQUNFIGluZGljYXRlcyB0aGUgZW50cnkgYXQgdGhlIGN1cnJlbnQgaW5kZXggaW4gdGhlIGhpc3Rvcnkgc3RhY2tcclxuICAgKiBiZWluZyByZXBsYWNlZCBieSBhIG5ldyBvbmUuXHJcbiAgICovXG5cbiAgQWN0aW9uW1wiUmVwbGFjZVwiXSA9IFwiUkVQTEFDRVwiO1xufSkoQWN0aW9uIHx8IChBY3Rpb24gPSB7fSkpO1xuXG52YXIgcmVhZE9ubHkgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiBPYmplY3QuZnJlZXplKG9iaik7XG59IDogZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gb2JqO1xufTtcblxuZnVuY3Rpb24gd2FybmluZyhjb25kLCBtZXNzYWdlKSB7XG4gIGlmICghY29uZCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFdlbGNvbWUgdG8gZGVidWdnaW5nIGhpc3RvcnkhXG4gICAgICAvL1xuICAgICAgLy8gVGhpcyBlcnJvciBpcyB0aHJvd24gYXMgYSBjb252ZW5pZW5jZSBzbyB5b3UgY2FuIG1vcmUgZWFzaWx5XG4gICAgICAvLyBmaW5kIHRoZSBzb3VyY2UgZm9yIGEgd2FybmluZyB0aGF0IGFwcGVhcnMgaW4gdGhlIGNvbnNvbGUgYnlcbiAgICAgIC8vIGVuYWJsaW5nIFwicGF1c2Ugb24gZXhjZXB0aW9uc1wiIGluIHlvdXIgSmF2YVNjcmlwdCBkZWJ1Z2dlci5cbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5XG4gICAgfSBjYXRjaCAoZSkge31cbiAgfVxufVxuXG52YXIgQmVmb3JlVW5sb2FkRXZlbnRUeXBlID0gJ2JlZm9yZXVubG9hZCc7XG52YXIgSGFzaENoYW5nZUV2ZW50VHlwZSA9ICdoYXNoY2hhbmdlJztcbnZhciBQb3BTdGF0ZUV2ZW50VHlwZSA9ICdwb3BzdGF0ZSc7XG4vKipcclxuICogQnJvd3NlciBoaXN0b3J5IHN0b3JlcyB0aGUgbG9jYXRpb24gaW4gcmVndWxhciBVUkxzLiBUaGlzIGlzIHRoZSBzdGFuZGFyZCBmb3JcclxuICogbW9zdCB3ZWIgYXBwcywgYnV0IGl0IHJlcXVpcmVzIHNvbWUgY29uZmlndXJhdGlvbiBvbiB0aGUgc2VydmVyIHRvIGVuc3VyZSB5b3VcclxuICogc2VydmUgdGhlIHNhbWUgYXBwIGF0IG11bHRpcGxlIFVSTHMuXHJcbiAqXHJcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JlbWl4LXJ1bi9oaXN0b3J5L3RyZWUvbWFpbi9kb2NzL2FwaS1yZWZlcmVuY2UubWQjY3JlYXRlYnJvd3Nlcmhpc3RvcnlcclxuICovXG5cbmZ1bmN0aW9uIGNyZWF0ZUJyb3dzZXJIaXN0b3J5KG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIHZhciBfb3B0aW9ucyA9IG9wdGlvbnMsXG4gICAgICBfb3B0aW9ucyR3aW5kb3cgPSBfb3B0aW9ucy53aW5kb3csXG4gICAgICB3aW5kb3cgPSBfb3B0aW9ucyR3aW5kb3cgPT09IHZvaWQgMCA/IGRvY3VtZW50LmRlZmF1bHRWaWV3IDogX29wdGlvbnMkd2luZG93O1xuICB2YXIgZ2xvYmFsSGlzdG9yeSA9IHdpbmRvdy5oaXN0b3J5O1xuXG4gIGZ1bmN0aW9uIGdldEluZGV4QW5kTG9jYXRpb24oKSB7XG4gICAgdmFyIF93aW5kb3ckbG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb24sXG4gICAgICAgIHBhdGhuYW1lID0gX3dpbmRvdyRsb2NhdGlvbi5wYXRobmFtZSxcbiAgICAgICAgc2VhcmNoID0gX3dpbmRvdyRsb2NhdGlvbi5zZWFyY2gsXG4gICAgICAgIGhhc2ggPSBfd2luZG93JGxvY2F0aW9uLmhhc2g7XG4gICAgdmFyIHN0YXRlID0gZ2xvYmFsSGlzdG9yeS5zdGF0ZSB8fCB7fTtcbiAgICByZXR1cm4gW3N0YXRlLmlkeCwgcmVhZE9ubHkoe1xuICAgICAgcGF0aG5hbWU6IHBhdGhuYW1lLFxuICAgICAgc2VhcmNoOiBzZWFyY2gsXG4gICAgICBoYXNoOiBoYXNoLFxuICAgICAgc3RhdGU6IHN0YXRlLnVzciB8fCBudWxsLFxuICAgICAga2V5OiBzdGF0ZS5rZXkgfHwgJ2RlZmF1bHQnXG4gICAgfSldO1xuICB9XG5cbiAgdmFyIGJsb2NrZWRQb3BUeCA9IG51bGw7XG5cbiAgZnVuY3Rpb24gaGFuZGxlUG9wKCkge1xuICAgIGlmIChibG9ja2VkUG9wVHgpIHtcbiAgICAgIGJsb2NrZXJzLmNhbGwoYmxvY2tlZFBvcFR4KTtcbiAgICAgIGJsb2NrZWRQb3BUeCA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBuZXh0QWN0aW9uID0gQWN0aW9uLlBvcDtcblxuICAgICAgdmFyIF9nZXRJbmRleEFuZExvY2F0aW9uID0gZ2V0SW5kZXhBbmRMb2NhdGlvbigpLFxuICAgICAgICAgIG5leHRJbmRleCA9IF9nZXRJbmRleEFuZExvY2F0aW9uWzBdLFxuICAgICAgICAgIG5leHRMb2NhdGlvbiA9IF9nZXRJbmRleEFuZExvY2F0aW9uWzFdO1xuXG4gICAgICBpZiAoYmxvY2tlcnMubGVuZ3RoKSB7XG4gICAgICAgIGlmIChuZXh0SW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgIHZhciBkZWx0YSA9IGluZGV4IC0gbmV4dEluZGV4O1xuXG4gICAgICAgICAgaWYgKGRlbHRhKSB7XG4gICAgICAgICAgICAvLyBSZXZlcnQgdGhlIFBPUFxuICAgICAgICAgICAgYmxvY2tlZFBvcFR4ID0ge1xuICAgICAgICAgICAgICBhY3Rpb246IG5leHRBY3Rpb24sXG4gICAgICAgICAgICAgIGxvY2F0aW9uOiBuZXh0TG9jYXRpb24sXG4gICAgICAgICAgICAgIHJldHJ5OiBmdW5jdGlvbiByZXRyeSgpIHtcbiAgICAgICAgICAgICAgICBnbyhkZWx0YSAqIC0xKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGdvKGRlbHRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gVHJ5aW5nIHRvIFBPUCB0byBhIGxvY2F0aW9uIHdpdGggbm8gaW5kZXguIFdlIGRpZCBub3QgY3JlYXRlXG4gICAgICAgICAgLy8gdGhpcyBsb2NhdGlvbiwgc28gd2UgY2FuJ3QgZWZmZWN0aXZlbHkgYmxvY2sgdGhlIG5hdmlnYXRpb24uXG4gICAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyhmYWxzZSwgLy8gVE9ETzogV3JpdGUgdXAgYSBkb2MgdGhhdCBleHBsYWlucyBvdXIgYmxvY2tpbmcgc3RyYXRlZ3kgaW5cbiAgICAgICAgICAvLyBkZXRhaWwgYW5kIGxpbmsgdG8gaXQgaGVyZSBzbyBwZW9wbGUgY2FuIHVuZGVyc3RhbmQgYmV0dGVyIHdoYXRcbiAgICAgICAgICAvLyBpcyBnb2luZyBvbiBhbmQgaG93IHRvIGF2b2lkIGl0LlxuICAgICAgICAgIFwiWW91IGFyZSB0cnlpbmcgdG8gYmxvY2sgYSBQT1AgbmF2aWdhdGlvbiB0byBhIGxvY2F0aW9uIHRoYXQgd2FzIG5vdCBcIiArIFwiY3JlYXRlZCBieSB0aGUgaGlzdG9yeSBsaWJyYXJ5LiBUaGUgYmxvY2sgd2lsbCBmYWlsIHNpbGVudGx5IGluIFwiICsgXCJwcm9kdWN0aW9uLCBidXQgaW4gZ2VuZXJhbCB5b3Ugc2hvdWxkIGRvIGFsbCBuYXZpZ2F0aW9uIHdpdGggdGhlIFwiICsgXCJoaXN0b3J5IGxpYnJhcnkgKGluc3RlYWQgb2YgdXNpbmcgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlIGRpcmVjdGx5KSBcIiArIFwidG8gYXZvaWQgdGhpcyBzaXR1YXRpb24uXCIpIDogdm9pZCAwO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhcHBseVR4KG5leHRBY3Rpb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFBvcFN0YXRlRXZlbnRUeXBlLCBoYW5kbGVQb3ApO1xuICB2YXIgYWN0aW9uID0gQWN0aW9uLlBvcDtcblxuICB2YXIgX2dldEluZGV4QW5kTG9jYXRpb24yID0gZ2V0SW5kZXhBbmRMb2NhdGlvbigpLFxuICAgICAgaW5kZXggPSBfZ2V0SW5kZXhBbmRMb2NhdGlvbjJbMF0sXG4gICAgICBsb2NhdGlvbiA9IF9nZXRJbmRleEFuZExvY2F0aW9uMlsxXTtcblxuICB2YXIgbGlzdGVuZXJzID0gY3JlYXRlRXZlbnRzKCk7XG4gIHZhciBibG9ja2VycyA9IGNyZWF0ZUV2ZW50cygpO1xuXG4gIGlmIChpbmRleCA9PSBudWxsKSB7XG4gICAgaW5kZXggPSAwO1xuICAgIGdsb2JhbEhpc3RvcnkucmVwbGFjZVN0YXRlKF9leHRlbmRzKHt9LCBnbG9iYWxIaXN0b3J5LnN0YXRlLCB7XG4gICAgICBpZHg6IGluZGV4XG4gICAgfSksICcnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUhyZWYodG8pIHtcbiAgICByZXR1cm4gdHlwZW9mIHRvID09PSAnc3RyaW5nJyA/IHRvIDogY3JlYXRlUGF0aCh0byk7XG4gIH0gLy8gc3RhdGUgZGVmYXVsdHMgdG8gYG51bGxgIGJlY2F1c2UgYHdpbmRvdy5oaXN0b3J5LnN0YXRlYCBkb2VzXG5cblxuICBmdW5jdGlvbiBnZXROZXh0TG9jYXRpb24odG8sIHN0YXRlKSB7XG4gICAgaWYgKHN0YXRlID09PSB2b2lkIDApIHtcbiAgICAgIHN0YXRlID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVhZE9ubHkoX2V4dGVuZHMoe1xuICAgICAgcGF0aG5hbWU6IGxvY2F0aW9uLnBhdGhuYW1lLFxuICAgICAgaGFzaDogJycsXG4gICAgICBzZWFyY2g6ICcnXG4gICAgfSwgdHlwZW9mIHRvID09PSAnc3RyaW5nJyA/IHBhcnNlUGF0aCh0bykgOiB0bywge1xuICAgICAgc3RhdGU6IHN0YXRlLFxuICAgICAga2V5OiBjcmVhdGVLZXkoKVxuICAgIH0pKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldEhpc3RvcnlTdGF0ZUFuZFVybChuZXh0TG9jYXRpb24sIGluZGV4KSB7XG4gICAgcmV0dXJuIFt7XG4gICAgICB1c3I6IG5leHRMb2NhdGlvbi5zdGF0ZSxcbiAgICAgIGtleTogbmV4dExvY2F0aW9uLmtleSxcbiAgICAgIGlkeDogaW5kZXhcbiAgICB9LCBjcmVhdGVIcmVmKG5leHRMb2NhdGlvbildO1xuICB9XG5cbiAgZnVuY3Rpb24gYWxsb3dUeChhY3Rpb24sIGxvY2F0aW9uLCByZXRyeSkge1xuICAgIHJldHVybiAhYmxvY2tlcnMubGVuZ3RoIHx8IChibG9ja2Vycy5jYWxsKHtcbiAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgbG9jYXRpb246IGxvY2F0aW9uLFxuICAgICAgcmV0cnk6IHJldHJ5XG4gICAgfSksIGZhbHNlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFwcGx5VHgobmV4dEFjdGlvbikge1xuICAgIGFjdGlvbiA9IG5leHRBY3Rpb247XG5cbiAgICB2YXIgX2dldEluZGV4QW5kTG9jYXRpb24zID0gZ2V0SW5kZXhBbmRMb2NhdGlvbigpO1xuXG4gICAgaW5kZXggPSBfZ2V0SW5kZXhBbmRMb2NhdGlvbjNbMF07XG4gICAgbG9jYXRpb24gPSBfZ2V0SW5kZXhBbmRMb2NhdGlvbjNbMV07XG4gICAgbGlzdGVuZXJzLmNhbGwoe1xuICAgICAgYWN0aW9uOiBhY3Rpb24sXG4gICAgICBsb2NhdGlvbjogbG9jYXRpb25cbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHB1c2godG8sIHN0YXRlKSB7XG4gICAgdmFyIG5leHRBY3Rpb24gPSBBY3Rpb24uUHVzaDtcbiAgICB2YXIgbmV4dExvY2F0aW9uID0gZ2V0TmV4dExvY2F0aW9uKHRvLCBzdGF0ZSk7XG5cbiAgICBmdW5jdGlvbiByZXRyeSgpIHtcbiAgICAgIHB1c2godG8sIHN0YXRlKTtcbiAgICB9XG5cbiAgICBpZiAoYWxsb3dUeChuZXh0QWN0aW9uLCBuZXh0TG9jYXRpb24sIHJldHJ5KSkge1xuICAgICAgdmFyIF9nZXRIaXN0b3J5U3RhdGVBbmRVciA9IGdldEhpc3RvcnlTdGF0ZUFuZFVybChuZXh0TG9jYXRpb24sIGluZGV4ICsgMSksXG4gICAgICAgICAgaGlzdG9yeVN0YXRlID0gX2dldEhpc3RvcnlTdGF0ZUFuZFVyWzBdLFxuICAgICAgICAgIHVybCA9IF9nZXRIaXN0b3J5U3RhdGVBbmRVclsxXTsgLy8gVE9ETzogU3VwcG9ydCBmb3JjZWQgcmVsb2FkaW5nXG4gICAgICAvLyB0cnkuLi5jYXRjaCBiZWNhdXNlIGlPUyBsaW1pdHMgdXMgdG8gMTAwIHB1c2hTdGF0ZSBjYWxscyA6L1xuXG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGdsb2JhbEhpc3RvcnkucHVzaFN0YXRlKGhpc3RvcnlTdGF0ZSwgJycsIHVybCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBUaGV5IGFyZSBnb2luZyB0byBsb3NlIHN0YXRlIGhlcmUsIGJ1dCB0aGVyZSBpcyBubyByZWFsXG4gICAgICAgIC8vIHdheSB0byB3YXJuIHRoZW0gYWJvdXQgaXQgc2luY2UgdGhlIHBhZ2Ugd2lsbCByZWZyZXNoLi4uXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24odXJsKTtcbiAgICAgIH1cblxuICAgICAgYXBwbHlUeChuZXh0QWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiByZXBsYWNlKHRvLCBzdGF0ZSkge1xuICAgIHZhciBuZXh0QWN0aW9uID0gQWN0aW9uLlJlcGxhY2U7XG4gICAgdmFyIG5leHRMb2NhdGlvbiA9IGdldE5leHRMb2NhdGlvbih0bywgc3RhdGUpO1xuXG4gICAgZnVuY3Rpb24gcmV0cnkoKSB7XG4gICAgICByZXBsYWNlKHRvLCBzdGF0ZSk7XG4gICAgfVxuXG4gICAgaWYgKGFsbG93VHgobmV4dEFjdGlvbiwgbmV4dExvY2F0aW9uLCByZXRyeSkpIHtcbiAgICAgIHZhciBfZ2V0SGlzdG9yeVN0YXRlQW5kVXIyID0gZ2V0SGlzdG9yeVN0YXRlQW5kVXJsKG5leHRMb2NhdGlvbiwgaW5kZXgpLFxuICAgICAgICAgIGhpc3RvcnlTdGF0ZSA9IF9nZXRIaXN0b3J5U3RhdGVBbmRVcjJbMF0sXG4gICAgICAgICAgdXJsID0gX2dldEhpc3RvcnlTdGF0ZUFuZFVyMlsxXTsgLy8gVE9ETzogU3VwcG9ydCBmb3JjZWQgcmVsb2FkaW5nXG5cblxuICAgICAgZ2xvYmFsSGlzdG9yeS5yZXBsYWNlU3RhdGUoaGlzdG9yeVN0YXRlLCAnJywgdXJsKTtcbiAgICAgIGFwcGx5VHgobmV4dEFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZ28oZGVsdGEpIHtcbiAgICBnbG9iYWxIaXN0b3J5LmdvKGRlbHRhKTtcbiAgfVxuXG4gIHZhciBoaXN0b3J5ID0ge1xuICAgIGdldCBhY3Rpb24oKSB7XG4gICAgICByZXR1cm4gYWN0aW9uO1xuICAgIH0sXG5cbiAgICBnZXQgbG9jYXRpb24oKSB7XG4gICAgICByZXR1cm4gbG9jYXRpb247XG4gICAgfSxcblxuICAgIGNyZWF0ZUhyZWY6IGNyZWF0ZUhyZWYsXG4gICAgcHVzaDogcHVzaCxcbiAgICByZXBsYWNlOiByZXBsYWNlLFxuICAgIGdvOiBnbyxcbiAgICBiYWNrOiBmdW5jdGlvbiBiYWNrKCkge1xuICAgICAgZ28oLTEpO1xuICAgIH0sXG4gICAgZm9yd2FyZDogZnVuY3Rpb24gZm9yd2FyZCgpIHtcbiAgICAgIGdvKDEpO1xuICAgIH0sXG4gICAgbGlzdGVuOiBmdW5jdGlvbiBsaXN0ZW4obGlzdGVuZXIpIHtcbiAgICAgIHJldHVybiBsaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gICAgfSxcbiAgICBibG9jazogZnVuY3Rpb24gYmxvY2soYmxvY2tlcikge1xuICAgICAgdmFyIHVuYmxvY2sgPSBibG9ja2Vycy5wdXNoKGJsb2NrZXIpO1xuXG4gICAgICBpZiAoYmxvY2tlcnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKEJlZm9yZVVubG9hZEV2ZW50VHlwZSwgcHJvbXB0QmVmb3JlVW5sb2FkKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdW5ibG9jaygpOyAvLyBSZW1vdmUgdGhlIGJlZm9yZXVubG9hZCBsaXN0ZW5lciBzbyB0aGUgZG9jdW1lbnQgbWF5XG4gICAgICAgIC8vIHN0aWxsIGJlIHNhbHZhZ2VhYmxlIGluIHRoZSBwYWdlaGlkZSBldmVudC5cbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI3VubG9hZGluZy1kb2N1bWVudHNcblxuICAgICAgICBpZiAoIWJsb2NrZXJzLmxlbmd0aCkge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKEJlZm9yZVVubG9hZEV2ZW50VHlwZSwgcHJvbXB0QmVmb3JlVW5sb2FkKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBoaXN0b3J5O1xufVxuLyoqXHJcbiAqIEhhc2ggaGlzdG9yeSBzdG9yZXMgdGhlIGxvY2F0aW9uIGluIHdpbmRvdy5sb2NhdGlvbi5oYXNoLiBUaGlzIG1ha2VzIGl0IGlkZWFsXHJcbiAqIGZvciBzaXR1YXRpb25zIHdoZXJlIHlvdSBkb24ndCB3YW50IHRvIHNlbmQgdGhlIGxvY2F0aW9uIHRvIHRoZSBzZXJ2ZXIgZm9yXHJcbiAqIHNvbWUgcmVhc29uLCBlaXRoZXIgYmVjYXVzZSB5b3UgZG8gY2Fubm90IGNvbmZpZ3VyZSBpdCBvciB0aGUgVVJMIHNwYWNlIGlzXHJcbiAqIHJlc2VydmVkIGZvciBzb21ldGhpbmcgZWxzZS5cclxuICpcclxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vcmVtaXgtcnVuL2hpc3RvcnkvdHJlZS9tYWluL2RvY3MvYXBpLXJlZmVyZW5jZS5tZCNjcmVhdGVoYXNoaGlzdG9yeVxyXG4gKi9cblxuZnVuY3Rpb24gY3JlYXRlSGFzaEhpc3Rvcnkob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgdmFyIF9vcHRpb25zMiA9IG9wdGlvbnMsXG4gICAgICBfb3B0aW9uczIkd2luZG93ID0gX29wdGlvbnMyLndpbmRvdyxcbiAgICAgIHdpbmRvdyA9IF9vcHRpb25zMiR3aW5kb3cgPT09IHZvaWQgMCA/IGRvY3VtZW50LmRlZmF1bHRWaWV3IDogX29wdGlvbnMyJHdpbmRvdztcbiAgdmFyIGdsb2JhbEhpc3RvcnkgPSB3aW5kb3cuaGlzdG9yeTtcblxuICBmdW5jdGlvbiBnZXRJbmRleEFuZExvY2F0aW9uKCkge1xuICAgIHZhciBfcGFyc2VQYXRoID0gcGFyc2VQYXRoKHdpbmRvdy5sb2NhdGlvbi5oYXNoLnN1YnN0cigxKSksXG4gICAgICAgIF9wYXJzZVBhdGgkcGF0aG5hbWUgPSBfcGFyc2VQYXRoLnBhdGhuYW1lLFxuICAgICAgICBwYXRobmFtZSA9IF9wYXJzZVBhdGgkcGF0aG5hbWUgPT09IHZvaWQgMCA/ICcvJyA6IF9wYXJzZVBhdGgkcGF0aG5hbWUsXG4gICAgICAgIF9wYXJzZVBhdGgkc2VhcmNoID0gX3BhcnNlUGF0aC5zZWFyY2gsXG4gICAgICAgIHNlYXJjaCA9IF9wYXJzZVBhdGgkc2VhcmNoID09PSB2b2lkIDAgPyAnJyA6IF9wYXJzZVBhdGgkc2VhcmNoLFxuICAgICAgICBfcGFyc2VQYXRoJGhhc2ggPSBfcGFyc2VQYXRoLmhhc2gsXG4gICAgICAgIGhhc2ggPSBfcGFyc2VQYXRoJGhhc2ggPT09IHZvaWQgMCA/ICcnIDogX3BhcnNlUGF0aCRoYXNoO1xuXG4gICAgdmFyIHN0YXRlID0gZ2xvYmFsSGlzdG9yeS5zdGF0ZSB8fCB7fTtcbiAgICByZXR1cm4gW3N0YXRlLmlkeCwgcmVhZE9ubHkoe1xuICAgICAgcGF0aG5hbWU6IHBhdGhuYW1lLFxuICAgICAgc2VhcmNoOiBzZWFyY2gsXG4gICAgICBoYXNoOiBoYXNoLFxuICAgICAgc3RhdGU6IHN0YXRlLnVzciB8fCBudWxsLFxuICAgICAga2V5OiBzdGF0ZS5rZXkgfHwgJ2RlZmF1bHQnXG4gICAgfSldO1xuICB9XG5cbiAgdmFyIGJsb2NrZWRQb3BUeCA9IG51bGw7XG5cbiAgZnVuY3Rpb24gaGFuZGxlUG9wKCkge1xuICAgIGlmIChibG9ja2VkUG9wVHgpIHtcbiAgICAgIGJsb2NrZXJzLmNhbGwoYmxvY2tlZFBvcFR4KTtcbiAgICAgIGJsb2NrZWRQb3BUeCA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBuZXh0QWN0aW9uID0gQWN0aW9uLlBvcDtcblxuICAgICAgdmFyIF9nZXRJbmRleEFuZExvY2F0aW9uNCA9IGdldEluZGV4QW5kTG9jYXRpb24oKSxcbiAgICAgICAgICBuZXh0SW5kZXggPSBfZ2V0SW5kZXhBbmRMb2NhdGlvbjRbMF0sXG4gICAgICAgICAgbmV4dExvY2F0aW9uID0gX2dldEluZGV4QW5kTG9jYXRpb240WzFdO1xuXG4gICAgICBpZiAoYmxvY2tlcnMubGVuZ3RoKSB7XG4gICAgICAgIGlmIChuZXh0SW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgIHZhciBkZWx0YSA9IGluZGV4IC0gbmV4dEluZGV4O1xuXG4gICAgICAgICAgaWYgKGRlbHRhKSB7XG4gICAgICAgICAgICAvLyBSZXZlcnQgdGhlIFBPUFxuICAgICAgICAgICAgYmxvY2tlZFBvcFR4ID0ge1xuICAgICAgICAgICAgICBhY3Rpb246IG5leHRBY3Rpb24sXG4gICAgICAgICAgICAgIGxvY2F0aW9uOiBuZXh0TG9jYXRpb24sXG4gICAgICAgICAgICAgIHJldHJ5OiBmdW5jdGlvbiByZXRyeSgpIHtcbiAgICAgICAgICAgICAgICBnbyhkZWx0YSAqIC0xKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGdvKGRlbHRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gVHJ5aW5nIHRvIFBPUCB0byBhIGxvY2F0aW9uIHdpdGggbm8gaW5kZXguIFdlIGRpZCBub3QgY3JlYXRlXG4gICAgICAgICAgLy8gdGhpcyBsb2NhdGlvbiwgc28gd2UgY2FuJ3QgZWZmZWN0aXZlbHkgYmxvY2sgdGhlIG5hdmlnYXRpb24uXG4gICAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyhmYWxzZSwgLy8gVE9ETzogV3JpdGUgdXAgYSBkb2MgdGhhdCBleHBsYWlucyBvdXIgYmxvY2tpbmcgc3RyYXRlZ3kgaW5cbiAgICAgICAgICAvLyBkZXRhaWwgYW5kIGxpbmsgdG8gaXQgaGVyZSBzbyBwZW9wbGUgY2FuIHVuZGVyc3RhbmQgYmV0dGVyXG4gICAgICAgICAgLy8gd2hhdCBpcyBnb2luZyBvbiBhbmQgaG93IHRvIGF2b2lkIGl0LlxuICAgICAgICAgIFwiWW91IGFyZSB0cnlpbmcgdG8gYmxvY2sgYSBQT1AgbmF2aWdhdGlvbiB0byBhIGxvY2F0aW9uIHRoYXQgd2FzIG5vdCBcIiArIFwiY3JlYXRlZCBieSB0aGUgaGlzdG9yeSBsaWJyYXJ5LiBUaGUgYmxvY2sgd2lsbCBmYWlsIHNpbGVudGx5IGluIFwiICsgXCJwcm9kdWN0aW9uLCBidXQgaW4gZ2VuZXJhbCB5b3Ugc2hvdWxkIGRvIGFsbCBuYXZpZ2F0aW9uIHdpdGggdGhlIFwiICsgXCJoaXN0b3J5IGxpYnJhcnkgKGluc3RlYWQgb2YgdXNpbmcgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlIGRpcmVjdGx5KSBcIiArIFwidG8gYXZvaWQgdGhpcyBzaXR1YXRpb24uXCIpIDogdm9pZCAwO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhcHBseVR4KG5leHRBY3Rpb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFBvcFN0YXRlRXZlbnRUeXBlLCBoYW5kbGVQb3ApOyAvLyBwb3BzdGF0ZSBkb2VzIG5vdCBmaXJlIG9uIGhhc2hjaGFuZ2UgaW4gSUUgMTEgYW5kIG9sZCAodHJpZGVudCkgRWRnZVxuICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kZS9kb2NzL1dlYi9BUEkvV2luZG93L3BvcHN0YXRlX2V2ZW50XG5cbiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoSGFzaENoYW5nZUV2ZW50VHlwZSwgZnVuY3Rpb24gKCkge1xuICAgIHZhciBfZ2V0SW5kZXhBbmRMb2NhdGlvbjUgPSBnZXRJbmRleEFuZExvY2F0aW9uKCksXG4gICAgICAgIG5leHRMb2NhdGlvbiA9IF9nZXRJbmRleEFuZExvY2F0aW9uNVsxXTsgLy8gSWdub3JlIGV4dHJhbmVvdXMgaGFzaGNoYW5nZSBldmVudHMuXG5cblxuICAgIGlmIChjcmVhdGVQYXRoKG5leHRMb2NhdGlvbikgIT09IGNyZWF0ZVBhdGgobG9jYXRpb24pKSB7XG4gICAgICBoYW5kbGVQb3AoKTtcbiAgICB9XG4gIH0pO1xuICB2YXIgYWN0aW9uID0gQWN0aW9uLlBvcDtcblxuICB2YXIgX2dldEluZGV4QW5kTG9jYXRpb242ID0gZ2V0SW5kZXhBbmRMb2NhdGlvbigpLFxuICAgICAgaW5kZXggPSBfZ2V0SW5kZXhBbmRMb2NhdGlvbjZbMF0sXG4gICAgICBsb2NhdGlvbiA9IF9nZXRJbmRleEFuZExvY2F0aW9uNlsxXTtcblxuICB2YXIgbGlzdGVuZXJzID0gY3JlYXRlRXZlbnRzKCk7XG4gIHZhciBibG9ja2VycyA9IGNyZWF0ZUV2ZW50cygpO1xuXG4gIGlmIChpbmRleCA9PSBudWxsKSB7XG4gICAgaW5kZXggPSAwO1xuICAgIGdsb2JhbEhpc3RvcnkucmVwbGFjZVN0YXRlKF9leHRlbmRzKHt9LCBnbG9iYWxIaXN0b3J5LnN0YXRlLCB7XG4gICAgICBpZHg6IGluZGV4XG4gICAgfSksICcnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldEJhc2VIcmVmKCkge1xuICAgIHZhciBiYXNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYmFzZScpO1xuICAgIHZhciBocmVmID0gJyc7XG5cbiAgICBpZiAoYmFzZSAmJiBiYXNlLmdldEF0dHJpYnV0ZSgnaHJlZicpKSB7XG4gICAgICB2YXIgdXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XG4gICAgICB2YXIgaGFzaEluZGV4ID0gdXJsLmluZGV4T2YoJyMnKTtcbiAgICAgIGhyZWYgPSBoYXNoSW5kZXggPT09IC0xID8gdXJsIDogdXJsLnNsaWNlKDAsIGhhc2hJbmRleCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhyZWY7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVIcmVmKHRvKSB7XG4gICAgcmV0dXJuIGdldEJhc2VIcmVmKCkgKyAnIycgKyAodHlwZW9mIHRvID09PSAnc3RyaW5nJyA/IHRvIDogY3JlYXRlUGF0aCh0bykpO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0TmV4dExvY2F0aW9uKHRvLCBzdGF0ZSkge1xuICAgIGlmIChzdGF0ZSA9PT0gdm9pZCAwKSB7XG4gICAgICBzdGF0ZSA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlYWRPbmx5KF9leHRlbmRzKHtcbiAgICAgIHBhdGhuYW1lOiBsb2NhdGlvbi5wYXRobmFtZSxcbiAgICAgIGhhc2g6ICcnLFxuICAgICAgc2VhcmNoOiAnJ1xuICAgIH0sIHR5cGVvZiB0byA9PT0gJ3N0cmluZycgPyBwYXJzZVBhdGgodG8pIDogdG8sIHtcbiAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgIGtleTogY3JlYXRlS2V5KClcbiAgICB9KSk7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRIaXN0b3J5U3RhdGVBbmRVcmwobmV4dExvY2F0aW9uLCBpbmRleCkge1xuICAgIHJldHVybiBbe1xuICAgICAgdXNyOiBuZXh0TG9jYXRpb24uc3RhdGUsXG4gICAgICBrZXk6IG5leHRMb2NhdGlvbi5rZXksXG4gICAgICBpZHg6IGluZGV4XG4gICAgfSwgY3JlYXRlSHJlZihuZXh0TG9jYXRpb24pXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFsbG93VHgoYWN0aW9uLCBsb2NhdGlvbiwgcmV0cnkpIHtcbiAgICByZXR1cm4gIWJsb2NrZXJzLmxlbmd0aCB8fCAoYmxvY2tlcnMuY2FsbCh7XG4gICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgIGxvY2F0aW9uOiBsb2NhdGlvbixcbiAgICAgIHJldHJ5OiByZXRyeVxuICAgIH0pLCBmYWxzZSk7XG4gIH1cblxuICBmdW5jdGlvbiBhcHBseVR4KG5leHRBY3Rpb24pIHtcbiAgICBhY3Rpb24gPSBuZXh0QWN0aW9uO1xuXG4gICAgdmFyIF9nZXRJbmRleEFuZExvY2F0aW9uNyA9IGdldEluZGV4QW5kTG9jYXRpb24oKTtcblxuICAgIGluZGV4ID0gX2dldEluZGV4QW5kTG9jYXRpb243WzBdO1xuICAgIGxvY2F0aW9uID0gX2dldEluZGV4QW5kTG9jYXRpb243WzFdO1xuICAgIGxpc3RlbmVycy5jYWxsKHtcbiAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgbG9jYXRpb246IGxvY2F0aW9uXG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBwdXNoKHRvLCBzdGF0ZSkge1xuICAgIHZhciBuZXh0QWN0aW9uID0gQWN0aW9uLlB1c2g7XG4gICAgdmFyIG5leHRMb2NhdGlvbiA9IGdldE5leHRMb2NhdGlvbih0bywgc3RhdGUpO1xuXG4gICAgZnVuY3Rpb24gcmV0cnkoKSB7XG4gICAgICBwdXNoKHRvLCBzdGF0ZSk7XG4gICAgfVxuXG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyhuZXh0TG9jYXRpb24ucGF0aG5hbWUuY2hhckF0KDApID09PSAnLycsIFwiUmVsYXRpdmUgcGF0aG5hbWVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIGhhc2ggaGlzdG9yeS5wdXNoKFwiICsgSlNPTi5zdHJpbmdpZnkodG8pICsgXCIpXCIpIDogdm9pZCAwO1xuXG4gICAgaWYgKGFsbG93VHgobmV4dEFjdGlvbiwgbmV4dExvY2F0aW9uLCByZXRyeSkpIHtcbiAgICAgIHZhciBfZ2V0SGlzdG9yeVN0YXRlQW5kVXIzID0gZ2V0SGlzdG9yeVN0YXRlQW5kVXJsKG5leHRMb2NhdGlvbiwgaW5kZXggKyAxKSxcbiAgICAgICAgICBoaXN0b3J5U3RhdGUgPSBfZ2V0SGlzdG9yeVN0YXRlQW5kVXIzWzBdLFxuICAgICAgICAgIHVybCA9IF9nZXRIaXN0b3J5U3RhdGVBbmRVcjNbMV07IC8vIFRPRE86IFN1cHBvcnQgZm9yY2VkIHJlbG9hZGluZ1xuICAgICAgLy8gdHJ5Li4uY2F0Y2ggYmVjYXVzZSBpT1MgbGltaXRzIHVzIHRvIDEwMCBwdXNoU3RhdGUgY2FsbHMgOi9cblxuXG4gICAgICB0cnkge1xuICAgICAgICBnbG9iYWxIaXN0b3J5LnB1c2hTdGF0ZShoaXN0b3J5U3RhdGUsICcnLCB1cmwpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gVGhleSBhcmUgZ29pbmcgdG8gbG9zZSBzdGF0ZSBoZXJlLCBidXQgdGhlcmUgaXMgbm8gcmVhbFxuICAgICAgICAvLyB3YXkgdG8gd2FybiB0aGVtIGFib3V0IGl0IHNpbmNlIHRoZSBwYWdlIHdpbGwgcmVmcmVzaC4uLlxuICAgICAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKHVybCk7XG4gICAgICB9XG5cbiAgICAgIGFwcGx5VHgobmV4dEFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVwbGFjZSh0bywgc3RhdGUpIHtcbiAgICB2YXIgbmV4dEFjdGlvbiA9IEFjdGlvbi5SZXBsYWNlO1xuICAgIHZhciBuZXh0TG9jYXRpb24gPSBnZXROZXh0TG9jYXRpb24odG8sIHN0YXRlKTtcblxuICAgIGZ1bmN0aW9uIHJldHJ5KCkge1xuICAgICAgcmVwbGFjZSh0bywgc3RhdGUpO1xuICAgIH1cblxuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHdhcm5pbmcobmV4dExvY2F0aW9uLnBhdGhuYW1lLmNoYXJBdCgwKSA9PT0gJy8nLCBcIlJlbGF0aXZlIHBhdGhuYW1lcyBhcmUgbm90IHN1cHBvcnRlZCBpbiBoYXNoIGhpc3RvcnkucmVwbGFjZShcIiArIEpTT04uc3RyaW5naWZ5KHRvKSArIFwiKVwiKSA6IHZvaWQgMDtcblxuICAgIGlmIChhbGxvd1R4KG5leHRBY3Rpb24sIG5leHRMb2NhdGlvbiwgcmV0cnkpKSB7XG4gICAgICB2YXIgX2dldEhpc3RvcnlTdGF0ZUFuZFVyNCA9IGdldEhpc3RvcnlTdGF0ZUFuZFVybChuZXh0TG9jYXRpb24sIGluZGV4KSxcbiAgICAgICAgICBoaXN0b3J5U3RhdGUgPSBfZ2V0SGlzdG9yeVN0YXRlQW5kVXI0WzBdLFxuICAgICAgICAgIHVybCA9IF9nZXRIaXN0b3J5U3RhdGVBbmRVcjRbMV07IC8vIFRPRE86IFN1cHBvcnQgZm9yY2VkIHJlbG9hZGluZ1xuXG5cbiAgICAgIGdsb2JhbEhpc3RvcnkucmVwbGFjZVN0YXRlKGhpc3RvcnlTdGF0ZSwgJycsIHVybCk7XG4gICAgICBhcHBseVR4KG5leHRBY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGdvKGRlbHRhKSB7XG4gICAgZ2xvYmFsSGlzdG9yeS5nbyhkZWx0YSk7XG4gIH1cblxuICB2YXIgaGlzdG9yeSA9IHtcbiAgICBnZXQgYWN0aW9uKCkge1xuICAgICAgcmV0dXJuIGFjdGlvbjtcbiAgICB9LFxuXG4gICAgZ2V0IGxvY2F0aW9uKCkge1xuICAgICAgcmV0dXJuIGxvY2F0aW9uO1xuICAgIH0sXG5cbiAgICBjcmVhdGVIcmVmOiBjcmVhdGVIcmVmLFxuICAgIHB1c2g6IHB1c2gsXG4gICAgcmVwbGFjZTogcmVwbGFjZSxcbiAgICBnbzogZ28sXG4gICAgYmFjazogZnVuY3Rpb24gYmFjaygpIHtcbiAgICAgIGdvKC0xKTtcbiAgICB9LFxuICAgIGZvcndhcmQ6IGZ1bmN0aW9uIGZvcndhcmQoKSB7XG4gICAgICBnbygxKTtcbiAgICB9LFxuICAgIGxpc3RlbjogZnVuY3Rpb24gbGlzdGVuKGxpc3RlbmVyKSB7XG4gICAgICByZXR1cm4gbGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuICAgIH0sXG4gICAgYmxvY2s6IGZ1bmN0aW9uIGJsb2NrKGJsb2NrZXIpIHtcbiAgICAgIHZhciB1bmJsb2NrID0gYmxvY2tlcnMucHVzaChibG9ja2VyKTtcblxuICAgICAgaWYgKGJsb2NrZXJzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihCZWZvcmVVbmxvYWRFdmVudFR5cGUsIHByb21wdEJlZm9yZVVubG9hZCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHVuYmxvY2soKTsgLy8gUmVtb3ZlIHRoZSBiZWZvcmV1bmxvYWQgbGlzdGVuZXIgc28gdGhlIGRvY3VtZW50IG1heVxuICAgICAgICAvLyBzdGlsbCBiZSBzYWx2YWdlYWJsZSBpbiB0aGUgcGFnZWhpZGUgZXZlbnQuXG4gICAgICAgIC8vIFNlZSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyN1bmxvYWRpbmctZG9jdW1lbnRzXG5cbiAgICAgICAgaWYgKCFibG9ja2Vycy5sZW5ndGgpIHtcbiAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihCZWZvcmVVbmxvYWRFdmVudFR5cGUsIHByb21wdEJlZm9yZVVubG9hZCk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9O1xuICByZXR1cm4gaGlzdG9yeTtcbn1cbi8qKlxyXG4gKiBNZW1vcnkgaGlzdG9yeSBzdG9yZXMgdGhlIGN1cnJlbnQgbG9jYXRpb24gaW4gbWVtb3J5LiBJdCBpcyBkZXNpZ25lZCBmb3IgdXNlXHJcbiAqIGluIHN0YXRlZnVsIG5vbi1icm93c2VyIGVudmlyb25tZW50cyBsaWtlIHRlc3RzIGFuZCBSZWFjdCBOYXRpdmUuXHJcbiAqXHJcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JlbWl4LXJ1bi9oaXN0b3J5L3RyZWUvbWFpbi9kb2NzL2FwaS1yZWZlcmVuY2UubWQjY3JlYXRlbWVtb3J5aGlzdG9yeVxyXG4gKi9cblxuZnVuY3Rpb24gY3JlYXRlTWVtb3J5SGlzdG9yeShvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cblxuICB2YXIgX29wdGlvbnMzID0gb3B0aW9ucyxcbiAgICAgIF9vcHRpb25zMyRpbml0aWFsRW50ciA9IF9vcHRpb25zMy5pbml0aWFsRW50cmllcyxcbiAgICAgIGluaXRpYWxFbnRyaWVzID0gX29wdGlvbnMzJGluaXRpYWxFbnRyID09PSB2b2lkIDAgPyBbJy8nXSA6IF9vcHRpb25zMyRpbml0aWFsRW50cixcbiAgICAgIGluaXRpYWxJbmRleCA9IF9vcHRpb25zMy5pbml0aWFsSW5kZXg7XG4gIHZhciBlbnRyaWVzID0gaW5pdGlhbEVudHJpZXMubWFwKGZ1bmN0aW9uIChlbnRyeSkge1xuICAgIHZhciBsb2NhdGlvbiA9IHJlYWRPbmx5KF9leHRlbmRzKHtcbiAgICAgIHBhdGhuYW1lOiAnLycsXG4gICAgICBzZWFyY2g6ICcnLFxuICAgICAgaGFzaDogJycsXG4gICAgICBzdGF0ZTogbnVsbCxcbiAgICAgIGtleTogY3JlYXRlS2V5KClcbiAgICB9LCB0eXBlb2YgZW50cnkgPT09ICdzdHJpbmcnID8gcGFyc2VQYXRoKGVudHJ5KSA6IGVudHJ5KSk7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gd2FybmluZyhsb2NhdGlvbi5wYXRobmFtZS5jaGFyQXQoMCkgPT09ICcvJywgXCJSZWxhdGl2ZSBwYXRobmFtZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gY3JlYXRlTWVtb3J5SGlzdG9yeSh7IGluaXRpYWxFbnRyaWVzIH0pIChpbnZhbGlkIGVudHJ5OiBcIiArIEpTT04uc3RyaW5naWZ5KGVudHJ5KSArIFwiKVwiKSA6IHZvaWQgMDtcbiAgICByZXR1cm4gbG9jYXRpb247XG4gIH0pO1xuICB2YXIgaW5kZXggPSBjbGFtcChpbml0aWFsSW5kZXggPT0gbnVsbCA/IGVudHJpZXMubGVuZ3RoIC0gMSA6IGluaXRpYWxJbmRleCwgMCwgZW50cmllcy5sZW5ndGggLSAxKTtcbiAgdmFyIGFjdGlvbiA9IEFjdGlvbi5Qb3A7XG4gIHZhciBsb2NhdGlvbiA9IGVudHJpZXNbaW5kZXhdO1xuICB2YXIgbGlzdGVuZXJzID0gY3JlYXRlRXZlbnRzKCk7XG4gIHZhciBibG9ja2VycyA9IGNyZWF0ZUV2ZW50cygpO1xuXG4gIGZ1bmN0aW9uIGNyZWF0ZUhyZWYodG8pIHtcbiAgICByZXR1cm4gdHlwZW9mIHRvID09PSAnc3RyaW5nJyA/IHRvIDogY3JlYXRlUGF0aCh0byk7XG4gIH1cblxuICBmdW5jdGlvbiBnZXROZXh0TG9jYXRpb24odG8sIHN0YXRlKSB7XG4gICAgaWYgKHN0YXRlID09PSB2b2lkIDApIHtcbiAgICAgIHN0YXRlID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVhZE9ubHkoX2V4dGVuZHMoe1xuICAgICAgcGF0aG5hbWU6IGxvY2F0aW9uLnBhdGhuYW1lLFxuICAgICAgc2VhcmNoOiAnJyxcbiAgICAgIGhhc2g6ICcnXG4gICAgfSwgdHlwZW9mIHRvID09PSAnc3RyaW5nJyA/IHBhcnNlUGF0aCh0bykgOiB0bywge1xuICAgICAgc3RhdGU6IHN0YXRlLFxuICAgICAga2V5OiBjcmVhdGVLZXkoKVxuICAgIH0pKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFsbG93VHgoYWN0aW9uLCBsb2NhdGlvbiwgcmV0cnkpIHtcbiAgICByZXR1cm4gIWJsb2NrZXJzLmxlbmd0aCB8fCAoYmxvY2tlcnMuY2FsbCh7XG4gICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgIGxvY2F0aW9uOiBsb2NhdGlvbixcbiAgICAgIHJldHJ5OiByZXRyeVxuICAgIH0pLCBmYWxzZSk7XG4gIH1cblxuICBmdW5jdGlvbiBhcHBseVR4KG5leHRBY3Rpb24sIG5leHRMb2NhdGlvbikge1xuICAgIGFjdGlvbiA9IG5leHRBY3Rpb247XG4gICAgbG9jYXRpb24gPSBuZXh0TG9jYXRpb247XG4gICAgbGlzdGVuZXJzLmNhbGwoe1xuICAgICAgYWN0aW9uOiBhY3Rpb24sXG4gICAgICBsb2NhdGlvbjogbG9jYXRpb25cbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHB1c2godG8sIHN0YXRlKSB7XG4gICAgdmFyIG5leHRBY3Rpb24gPSBBY3Rpb24uUHVzaDtcbiAgICB2YXIgbmV4dExvY2F0aW9uID0gZ2V0TmV4dExvY2F0aW9uKHRvLCBzdGF0ZSk7XG5cbiAgICBmdW5jdGlvbiByZXRyeSgpIHtcbiAgICAgIHB1c2godG8sIHN0YXRlKTtcbiAgICB9XG5cbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB3YXJuaW5nKGxvY2F0aW9uLnBhdGhuYW1lLmNoYXJBdCgwKSA9PT0gJy8nLCBcIlJlbGF0aXZlIHBhdGhuYW1lcyBhcmUgbm90IHN1cHBvcnRlZCBpbiBtZW1vcnkgaGlzdG9yeS5wdXNoKFwiICsgSlNPTi5zdHJpbmdpZnkodG8pICsgXCIpXCIpIDogdm9pZCAwO1xuXG4gICAgaWYgKGFsbG93VHgobmV4dEFjdGlvbiwgbmV4dExvY2F0aW9uLCByZXRyeSkpIHtcbiAgICAgIGluZGV4ICs9IDE7XG4gICAgICBlbnRyaWVzLnNwbGljZShpbmRleCwgZW50cmllcy5sZW5ndGgsIG5leHRMb2NhdGlvbik7XG4gICAgICBhcHBseVR4KG5leHRBY3Rpb24sIG5leHRMb2NhdGlvbik7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVwbGFjZSh0bywgc3RhdGUpIHtcbiAgICB2YXIgbmV4dEFjdGlvbiA9IEFjdGlvbi5SZXBsYWNlO1xuICAgIHZhciBuZXh0TG9jYXRpb24gPSBnZXROZXh0TG9jYXRpb24odG8sIHN0YXRlKTtcblxuICAgIGZ1bmN0aW9uIHJldHJ5KCkge1xuICAgICAgcmVwbGFjZSh0bywgc3RhdGUpO1xuICAgIH1cblxuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHdhcm5pbmcobG9jYXRpb24ucGF0aG5hbWUuY2hhckF0KDApID09PSAnLycsIFwiUmVsYXRpdmUgcGF0aG5hbWVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIG1lbW9yeSBoaXN0b3J5LnJlcGxhY2UoXCIgKyBKU09OLnN0cmluZ2lmeSh0bykgKyBcIilcIikgOiB2b2lkIDA7XG5cbiAgICBpZiAoYWxsb3dUeChuZXh0QWN0aW9uLCBuZXh0TG9jYXRpb24sIHJldHJ5KSkge1xuICAgICAgZW50cmllc1tpbmRleF0gPSBuZXh0TG9jYXRpb247XG4gICAgICBhcHBseVR4KG5leHRBY3Rpb24sIG5leHRMb2NhdGlvbik7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZ28oZGVsdGEpIHtcbiAgICB2YXIgbmV4dEluZGV4ID0gY2xhbXAoaW5kZXggKyBkZWx0YSwgMCwgZW50cmllcy5sZW5ndGggLSAxKTtcbiAgICB2YXIgbmV4dEFjdGlvbiA9IEFjdGlvbi5Qb3A7XG4gICAgdmFyIG5leHRMb2NhdGlvbiA9IGVudHJpZXNbbmV4dEluZGV4XTtcblxuICAgIGZ1bmN0aW9uIHJldHJ5KCkge1xuICAgICAgZ28oZGVsdGEpO1xuICAgIH1cblxuICAgIGlmIChhbGxvd1R4KG5leHRBY3Rpb24sIG5leHRMb2NhdGlvbiwgcmV0cnkpKSB7XG4gICAgICBpbmRleCA9IG5leHRJbmRleDtcbiAgICAgIGFwcGx5VHgobmV4dEFjdGlvbiwgbmV4dExvY2F0aW9uKTtcbiAgICB9XG4gIH1cblxuICB2YXIgaGlzdG9yeSA9IHtcbiAgICBnZXQgaW5kZXgoKSB7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICAgfSxcblxuICAgIGdldCBhY3Rpb24oKSB7XG4gICAgICByZXR1cm4gYWN0aW9uO1xuICAgIH0sXG5cbiAgICBnZXQgbG9jYXRpb24oKSB7XG4gICAgICByZXR1cm4gbG9jYXRpb247XG4gICAgfSxcblxuICAgIGNyZWF0ZUhyZWY6IGNyZWF0ZUhyZWYsXG4gICAgcHVzaDogcHVzaCxcbiAgICByZXBsYWNlOiByZXBsYWNlLFxuICAgIGdvOiBnbyxcbiAgICBiYWNrOiBmdW5jdGlvbiBiYWNrKCkge1xuICAgICAgZ28oLTEpO1xuICAgIH0sXG4gICAgZm9yd2FyZDogZnVuY3Rpb24gZm9yd2FyZCgpIHtcbiAgICAgIGdvKDEpO1xuICAgIH0sXG4gICAgbGlzdGVuOiBmdW5jdGlvbiBsaXN0ZW4obGlzdGVuZXIpIHtcbiAgICAgIHJldHVybiBsaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gICAgfSxcbiAgICBibG9jazogZnVuY3Rpb24gYmxvY2soYmxvY2tlcikge1xuICAgICAgcmV0dXJuIGJsb2NrZXJzLnB1c2goYmxvY2tlcik7XG4gICAgfVxuICB9O1xuICByZXR1cm4gaGlzdG9yeTtcbn0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFVUSUxTXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5mdW5jdGlvbiBjbGFtcChuLCBsb3dlckJvdW5kLCB1cHBlckJvdW5kKSB7XG4gIHJldHVybiBNYXRoLm1pbihNYXRoLm1heChuLCBsb3dlckJvdW5kKSwgdXBwZXJCb3VuZCk7XG59XG5cbmZ1bmN0aW9uIHByb21wdEJlZm9yZVVubG9hZChldmVudCkge1xuICAvLyBDYW5jZWwgdGhlIGV2ZW50LlxuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyAvLyBDaHJvbWUgKGFuZCBsZWdhY3kgSUUpIHJlcXVpcmVzIHJldHVyblZhbHVlIHRvIGJlIHNldC5cblxuICBldmVudC5yZXR1cm5WYWx1ZSA9ICcnO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVFdmVudHMoKSB7XG4gIHZhciBoYW5kbGVycyA9IFtdO1xuICByZXR1cm4ge1xuICAgIGdldCBsZW5ndGgoKSB7XG4gICAgICByZXR1cm4gaGFuZGxlcnMubGVuZ3RoO1xuICAgIH0sXG5cbiAgICBwdXNoOiBmdW5jdGlvbiBwdXNoKGZuKSB7XG4gICAgICBoYW5kbGVycy5wdXNoKGZuKTtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGhhbmRsZXJzID0gaGFuZGxlcnMuZmlsdGVyKGZ1bmN0aW9uIChoYW5kbGVyKSB7XG4gICAgICAgICAgcmV0dXJuIGhhbmRsZXIgIT09IGZuO1xuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfSxcbiAgICBjYWxsOiBmdW5jdGlvbiBjYWxsKGFyZykge1xuICAgICAgaGFuZGxlcnMuZm9yRWFjaChmdW5jdGlvbiAoZm4pIHtcbiAgICAgICAgcmV0dXJuIGZuICYmIGZuKGFyZyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUtleSgpIHtcbiAgcmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA4KTtcbn1cbi8qKlxyXG4gKiBDcmVhdGVzIGEgc3RyaW5nIFVSTCBwYXRoIGZyb20gdGhlIGdpdmVuIHBhdGhuYW1lLCBzZWFyY2gsIGFuZCBoYXNoIGNvbXBvbmVudHMuXHJcbiAqXHJcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JlbWl4LXJ1bi9oaXN0b3J5L3RyZWUvbWFpbi9kb2NzL2FwaS1yZWZlcmVuY2UubWQjY3JlYXRlcGF0aFxyXG4gKi9cblxuXG5mdW5jdGlvbiBjcmVhdGVQYXRoKF9yZWYpIHtcbiAgdmFyIF9yZWYkcGF0aG5hbWUgPSBfcmVmLnBhdGhuYW1lLFxuICAgICAgcGF0aG5hbWUgPSBfcmVmJHBhdGhuYW1lID09PSB2b2lkIDAgPyAnLycgOiBfcmVmJHBhdGhuYW1lLFxuICAgICAgX3JlZiRzZWFyY2ggPSBfcmVmLnNlYXJjaCxcbiAgICAgIHNlYXJjaCA9IF9yZWYkc2VhcmNoID09PSB2b2lkIDAgPyAnJyA6IF9yZWYkc2VhcmNoLFxuICAgICAgX3JlZiRoYXNoID0gX3JlZi5oYXNoLFxuICAgICAgaGFzaCA9IF9yZWYkaGFzaCA9PT0gdm9pZCAwID8gJycgOiBfcmVmJGhhc2g7XG4gIGlmIChzZWFyY2ggJiYgc2VhcmNoICE9PSAnPycpIHBhdGhuYW1lICs9IHNlYXJjaC5jaGFyQXQoMCkgPT09ICc/JyA/IHNlYXJjaCA6ICc/JyArIHNlYXJjaDtcbiAgaWYgKGhhc2ggJiYgaGFzaCAhPT0gJyMnKSBwYXRobmFtZSArPSBoYXNoLmNoYXJBdCgwKSA9PT0gJyMnID8gaGFzaCA6ICcjJyArIGhhc2g7XG4gIHJldHVybiBwYXRobmFtZTtcbn1cbi8qKlxyXG4gKiBQYXJzZXMgYSBzdHJpbmcgVVJMIHBhdGggaW50byBpdHMgc2VwYXJhdGUgcGF0aG5hbWUsIHNlYXJjaCwgYW5kIGhhc2ggY29tcG9uZW50cy5cclxuICpcclxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vcmVtaXgtcnVuL2hpc3RvcnkvdHJlZS9tYWluL2RvY3MvYXBpLXJlZmVyZW5jZS5tZCNwYXJzZXBhdGhcclxuICovXG5cbmZ1bmN0aW9uIHBhcnNlUGF0aChwYXRoKSB7XG4gIHZhciBwYXJzZWRQYXRoID0ge307XG5cbiAgaWYgKHBhdGgpIHtcbiAgICB2YXIgaGFzaEluZGV4ID0gcGF0aC5pbmRleE9mKCcjJyk7XG5cbiAgICBpZiAoaGFzaEluZGV4ID49IDApIHtcbiAgICAgIHBhcnNlZFBhdGguaGFzaCA9IHBhdGguc3Vic3RyKGhhc2hJbmRleCk7XG4gICAgICBwYXRoID0gcGF0aC5zdWJzdHIoMCwgaGFzaEluZGV4KTtcbiAgICB9XG5cbiAgICB2YXIgc2VhcmNoSW5kZXggPSBwYXRoLmluZGV4T2YoJz8nKTtcblxuICAgIGlmIChzZWFyY2hJbmRleCA+PSAwKSB7XG4gICAgICBwYXJzZWRQYXRoLnNlYXJjaCA9IHBhdGguc3Vic3RyKHNlYXJjaEluZGV4KTtcbiAgICAgIHBhdGggPSBwYXRoLnN1YnN0cigwLCBzZWFyY2hJbmRleCk7XG4gICAgfVxuXG4gICAgaWYgKHBhdGgpIHtcbiAgICAgIHBhcnNlZFBhdGgucGF0aG5hbWUgPSBwYXRoO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJzZWRQYXRoO1xufVxuXG5leHBvcnQgeyBBY3Rpb24sIGNyZWF0ZUJyb3dzZXJIaXN0b3J5LCBjcmVhdGVIYXNoSGlzdG9yeSwgY3JlYXRlTWVtb3J5SGlzdG9yeSwgY3JlYXRlUGF0aCwgcGFyc2VQYXRoIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/history/index.js\n");
/***/ }),
/***/ "./node_modules/lodash.debounce/index.js":
/*!***********************************************!*\
!*** ./node_modules/lodash.debounce/index.js ***!
\***********************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
eval("/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbG9kYXNoLmRlYm91bmNlL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCLHFCQUFNLGdCQUFnQixxQkFBTSxJQUFJLHFCQUFNLHNCQUFzQixxQkFBTTs7QUFFMUY7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFVBQVU7QUFDckIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUSxXQUFXO0FBQzlCLFdBQVcsU0FBUztBQUNwQjtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLFdBQVcsU0FBUztBQUNwQjtBQUNBLGFBQWEsVUFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLCtDQUErQyxpQkFBaUI7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxHQUFHO0FBQ2QsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL25vZGVfbW9kdWxlcy9sb2Rhc2guZGVib3VuY2UvaW5kZXguanM/ZjdmZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGxvZGFzaCAoQ3VzdG9tIEJ1aWxkKSA8aHR0cHM6Ly9sb2Rhc2guY29tLz5cbiAqIEJ1aWxkOiBgbG9kYXNoIG1vZHVsYXJpemUgZXhwb3J0cz1cIm5wbVwiIC1vIC4vYFxuICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMgPGh0dHBzOi8vanF1ZXJ5Lm9yZy8+XG4gKiBSZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZSA8aHR0cHM6Ly9sb2Rhc2guY29tL2xpY2Vuc2U+XG4gKiBCYXNlZCBvbiBVbmRlcnNjb3JlLmpzIDEuOC4zIDxodHRwOi8vdW5kZXJzY29yZWpzLm9yZy9MSUNFTlNFPlxuICogQ29weXJpZ2h0IEplcmVteSBBc2hrZW5hcywgRG9jdW1lbnRDbG91ZCBhbmQgSW52ZXN0aWdhdGl2ZSBSZXBvcnRlcnMgJiBFZGl0b3JzXG4gKi9cblxuLyoqIFVzZWQgYXMgdGhlIGBUeXBlRXJyb3JgIG1lc3NhZ2UgZm9yIFwiRnVuY3Rpb25zXCIgbWV0aG9kcy4gKi9cbnZhciBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbic7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE5BTiA9IDAgLyAwO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXSc7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuICovXG52YXIgcmVUcmltID0gL15cXHMrfFxccyskL2c7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBiYWQgc2lnbmVkIGhleGFkZWNpbWFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JhZEhleCA9IC9eWy0rXTB4WzAtOWEtZl0rJC9pO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgYmluYXJ5IHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc0JpbmFyeSA9IC9eMGJbMDFdKyQvaTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG9jdGFsIHN0cmluZyB2YWx1ZXMuICovXG52YXIgcmVJc09jdGFsID0gL14wb1swLTddKyQvaTtcblxuLyoqIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHdpdGhvdXQgYSBkZXBlbmRlbmN5IG9uIGByb290YC4gKi9cbnZhciBmcmVlUGFyc2VJbnQgPSBwYXJzZUludDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwgJiYgZ2xvYmFsLk9iamVjdCA9PT0gT2JqZWN0ICYmIGdsb2JhbDtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcbiAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgb2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1heCA9IE1hdGgubWF4LFxuICAgIG5hdGl2ZU1pbiA9IE1hdGgubWluO1xuXG4vKipcbiAqIEdldHMgdGhlIHRpbWVzdGFtcCBvZiB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGF0IGhhdmUgZWxhcHNlZCBzaW5jZVxuICogdGhlIFVuaXggZXBvY2ggKDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAyLjQuMFxuICogQGNhdGVnb3J5IERhdGVcbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHRpbWVzdGFtcC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5kZWZlcihmdW5jdGlvbihzdGFtcCkge1xuICogICBjb25zb2xlLmxvZyhfLm5vdygpIC0gc3RhbXApO1xuICogfSwgXy5ub3coKSk7XG4gKiAvLyA9PiBMb2dzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGl0IHRvb2sgZm9yIHRoZSBkZWZlcnJlZCBpbnZvY2F0aW9uLlxuICovXG52YXIgbm93ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiByb290LkRhdGUubm93KCk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBkZWJvdW5jZWQgZnVuY3Rpb24gdGhhdCBkZWxheXMgaW52b2tpbmcgYGZ1bmNgIHVudGlsIGFmdGVyIGB3YWl0YFxuICogbWlsbGlzZWNvbmRzIGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCB0aW1lIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gd2FzXG4gKiBpbnZva2VkLiBUaGUgZGVib3VuY2VkIGZ1bmN0aW9uIGNvbWVzIHdpdGggYSBgY2FuY2VsYCBtZXRob2QgdG8gY2FuY2VsXG4gKiBkZWxheWVkIGBmdW5jYCBpbnZvY2F0aW9ucyBhbmQgYSBgZmx1c2hgIG1ldGhvZCB0byBpbW1lZGlhdGVseSBpbnZva2UgdGhlbS5cbiAqIFByb3ZpZGUgYG9wdGlvbnNgIHRvIGluZGljYXRlIHdoZXRoZXIgYGZ1bmNgIHNob3VsZCBiZSBpbnZva2VkIG9uIHRoZVxuICogbGVhZGluZyBhbmQvb3IgdHJhaWxpbmcgZWRnZSBvZiB0aGUgYHdhaXRgIHRpbWVvdXQuIFRoZSBgZnVuY2AgaXMgaW52b2tlZFxuICogd2l0aCB0aGUgbGFzdCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbi4gU3Vic2VxdWVudFxuICogY2FsbHMgdG8gdGhlIGRlYm91bmNlZCBmdW5jdGlvbiByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBgZnVuY2BcbiAqIGludm9jYXRpb24uXG4gKlxuICogKipOb3RlOioqIElmIGBsZWFkaW5nYCBhbmQgYHRyYWlsaW5nYCBvcHRpb25zIGFyZSBgdHJ1ZWAsIGBmdW5jYCBpc1xuICogaW52b2tlZCBvbiB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgdGltZW91dCBvbmx5IGlmIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb25cbiAqIGlzIGludm9rZWQgbW9yZSB0aGFuIG9uY2UgZHVyaW5nIHRoZSBgd2FpdGAgdGltZW91dC5cbiAqXG4gKiBJZiBgd2FpdGAgaXMgYDBgIGFuZCBgbGVhZGluZ2AgaXMgYGZhbHNlYCwgYGZ1bmNgIGludm9jYXRpb24gaXMgZGVmZXJyZWRcbiAqIHVudGlsIHRvIHRoZSBuZXh0IHRpY2ssIHNpbWlsYXIgdG8gYHNldFRpbWVvdXRgIHdpdGggYSB0aW1lb3V0IG9mIGAwYC5cbiAqXG4gKiBTZWUgW0RhdmlkIENvcmJhY2hvJ3MgYXJ0aWNsZV0oaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9kZWJvdW5jaW5nLXRocm90dGxpbmctZXhwbGFpbmVkLWV4YW1wbGVzLylcbiAqIGZvciBkZXRhaWxzIG92ZXIgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gYF8uZGVib3VuY2VgIGFuZCBgXy50aHJvdHRsZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBkZWJvdW5jZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbd2FpdD0wXSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5sZWFkaW5nPWZhbHNlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIGxlYWRpbmcgZWRnZSBvZiB0aGUgdGltZW91dC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5tYXhXYWl0XVxuICogIFRoZSBtYXhpbXVtIHRpbWUgYGZ1bmNgIGlzIGFsbG93ZWQgdG8gYmUgZGVsYXllZCBiZWZvcmUgaXQncyBpbnZva2VkLlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy50cmFpbGluZz10cnVlXVxuICogIFNwZWNpZnkgaW52b2tpbmcgb24gdGhlIHRyYWlsaW5nIGVkZ2Ugb2YgdGhlIHRpbWVvdXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBkZWJvdW5jZWQgZnVuY3Rpb24uXG4gKiBAZXhhbXBsZVxuICpcbiAqIC8vIEF2b2lkIGNvc3RseSBjYWxjdWxhdGlvbnMgd2hpbGUgdGhlIHdpbmRvdyBzaXplIGlzIGluIGZsdXguXG4gKiBqUXVlcnkod2luZG93KS5vbigncmVzaXplJywgXy5kZWJvdW5jZShjYWxjdWxhdGVMYXlvdXQsIDE1MCkpO1xuICpcbiAqIC8vIEludm9rZSBgc2VuZE1haWxgIHdoZW4gY2xpY2tlZCwgZGVib3VuY2luZyBzdWJzZXF1ZW50IGNhbGxzLlxuICogalF1ZXJ5KGVsZW1lbnQpLm9uKCdjbGljaycsIF8uZGVib3VuY2Uoc2VuZE1haWwsIDMwMCwge1xuICogICAnbGVhZGluZyc6IHRydWUsXG4gKiAgICd0cmFpbGluZyc6IGZhbHNlXG4gKiB9KSk7XG4gKlxuICogLy8gRW5zdXJlIGBiYXRjaExvZ2AgaXMgaW52b2tlZCBvbmNlIGFmdGVyIDEgc2Vjb25kIG9mIGRlYm91bmNlZCBjYWxscy5cbiAqIHZhciBkZWJvdW5jZWQgPSBfLmRlYm91bmNlKGJhdGNoTG9nLCAyNTAsIHsgJ21heFdhaXQnOiAxMDAwIH0pO1xuICogdmFyIHNvdXJjZSA9IG5ldyBFdmVudFNvdXJjZSgnL3N0cmVhbScpO1xuICogalF1ZXJ5KHNvdXJjZSkub24oJ21lc3NhZ2UnLCBkZWJvdW5jZWQpO1xuICpcbiAqIC8vIENhbmNlbCB0aGUgdHJhaWxpbmcgZGVib3VuY2VkIGludm9jYXRpb24uXG4gKiBqUXVlcnkod2luZG93KS5vbigncG9wc3RhdGUnLCBkZWJvdW5jZWQuY2FuY2VsKTtcbiAqL1xuZnVuY3Rpb24gZGVib3VuY2UoZnVuYywgd2FpdCwgb3B0aW9ucykge1xuICB2YXIgbGFzdEFyZ3MsXG4gICAgICBsYXN0VGhpcyxcbiAgICAgIG1heFdhaXQsXG4gICAgICByZXN1bHQsXG4gICAgICB0aW1lcklkLFxuICAgICAgbGFzdENhbGxUaW1lLFxuICAgICAgbGFzdEludm9rZVRpbWUgPSAwLFxuICAgICAgbGVhZGluZyA9IGZhbHNlLFxuICAgICAgbWF4aW5nID0gZmFsc2UsXG4gICAgICB0cmFpbGluZyA9IHRydWU7XG5cbiAgaWYgKHR5cGVvZiBmdW5jICE9ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gIH1cbiAgd2FpdCA9IHRvTnVtYmVyKHdhaXQpIHx8IDA7XG4gIGlmIChpc09iamVjdChvcHRpb25zKSkge1xuICAgIGxlYWRpbmcgPSAhIW9wdGlvbnMubGVhZGluZztcbiAgICBtYXhpbmcgPSAnbWF4V2FpdCcgaW4gb3B0aW9ucztcbiAgICBtYXhXYWl0ID0gbWF4aW5nID8gbmF0aXZlTWF4KHRvTnVtYmVyKG9wdGlvbnMubWF4V2FpdCkgfHwgMCwgd2FpdCkgOiBtYXhXYWl0O1xuICAgIHRyYWlsaW5nID0gJ3RyYWlsaW5nJyBpbiBvcHRpb25zID8gISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gIH1cblxuICBmdW5jdGlvbiBpbnZva2VGdW5jKHRpbWUpIHtcbiAgICB2YXIgYXJncyA9IGxhc3RBcmdzLFxuICAgICAgICB0aGlzQXJnID0gbGFzdFRoaXM7XG5cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIGxhc3RJbnZva2VUaW1lID0gdGltZTtcbiAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBsZWFkaW5nRWRnZSh0aW1lKSB7XG4gICAgLy8gUmVzZXQgYW55IGBtYXhXYWl0YCB0aW1lci5cbiAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XG4gICAgLy8gU3RhcnQgdGhlIHRpbWVyIGZvciB0aGUgdHJhaWxpbmcgZWRnZS5cbiAgICB0aW1lcklkID0gc2V0VGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgIC8vIEludm9rZSB0aGUgbGVhZGluZyBlZGdlLlxuICAgIHJldHVybiBsZWFkaW5nID8gaW52b2tlRnVuYyh0aW1lKSA6IHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbWFpbmluZ1dhaXQodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWUsXG4gICAgICAgIHJlc3VsdCA9IHdhaXQgLSB0aW1lU2luY2VMYXN0Q2FsbDtcblxuICAgIHJldHVybiBtYXhpbmcgPyBuYXRpdmVNaW4ocmVzdWx0LCBtYXhXYWl0IC0gdGltZVNpbmNlTGFzdEludm9rZSkgOiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBzaG91bGRJbnZva2UodGltZSkge1xuICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRpbWUsXG4gICAgICAgIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWU7XG5cbiAgICAvLyBFaXRoZXIgdGhpcyBpcyB0aGUgZmlyc3QgY2FsbCwgYWN0aXZpdHkgaGFzIHN0b3BwZWQgYW5kIHdlJ3JlIGF0IHRoZVxuICAgIC8vIHRyYWlsaW5nIGVkZ2UsIHRoZSBzeXN0ZW0gdGltZSBoYXMgZ29uZSBiYWNrd2FyZHMgYW5kIHdlJ3JlIHRyZWF0aW5nXG4gICAgLy8gaXQgYXMgdGhlIHRyYWlsaW5nIGVkZ2UsIG9yIHdlJ3ZlIGhpdCB0aGUgYG1heFdhaXRgIGxpbWl0LlxuICAgIHJldHVybiAobGFzdENhbGxUaW1lID09PSB1bmRlZmluZWQgfHwgKHRpbWVTaW5jZUxhc3RDYWxsID49IHdhaXQpIHx8XG4gICAgICAodGltZVNpbmNlTGFzdENhbGwgPCAwKSB8fCAobWF4aW5nICYmIHRpbWVTaW5jZUxhc3RJbnZva2UgPj0gbWF4V2FpdCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gdGltZXJFeHBpcmVkKCkge1xuICAgIHZhciB0aW1lID0gbm93KCk7XG4gICAgaWYgKHNob3VsZEludm9rZSh0aW1lKSkge1xuICAgICAgcmV0dXJuIHRyYWlsaW5nRWRnZSh0aW1lKTtcbiAgICB9XG4gICAgLy8gUmVzdGFydCB0aGUgdGltZXIuXG4gICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCByZW1haW5pbmdXYWl0KHRpbWUpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYWlsaW5nRWRnZSh0aW1lKSB7XG4gICAgdGltZXJJZCA9IHVuZGVmaW5lZDtcblxuICAgIC8vIE9ubHkgaW52b2tlIGlmIHdlIGhhdmUgYGxhc3RBcmdzYCB3aGljaCBtZWFucyBgZnVuY2AgaGFzIGJlZW5cbiAgICAvLyBkZWJvdW5jZWQgYXQgbGVhc3Qgb25jZS5cbiAgICBpZiAodHJhaWxpbmcgJiYgbGFzdEFyZ3MpIHtcbiAgICAgIHJldHVybiBpbnZva2VGdW5jKHRpbWUpO1xuICAgIH1cbiAgICBsYXN0QXJncyA9IGxhc3RUaGlzID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBjYW5jZWwoKSB7XG4gICAgaWYgKHRpbWVySWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgIH1cbiAgICBsYXN0SW52b2tlVGltZSA9IDA7XG4gICAgbGFzdEFyZ3MgPSBsYXN0Q2FsbFRpbWUgPSBsYXN0VGhpcyA9IHRpbWVySWQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICByZXR1cm4gdGltZXJJZCA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogdHJhaWxpbmdFZGdlKG5vdygpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlYm91bmNlZCgpIHtcbiAgICB2YXIgdGltZSA9IG5vdygpLFxuICAgICAgICBpc0ludm9raW5nID0gc2hvdWxkSW52b2tlKHRpbWUpO1xuXG4gICAgbGFzdEFyZ3MgPSBhcmd1bWVudHM7XG4gICAgbGFzdFRoaXMgPSB0aGlzO1xuICAgIGxhc3RDYWxsVGltZSA9IHRpbWU7XG5cbiAgICBpZiAoaXNJbnZva2luZykge1xuICAgICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbGVhZGluZ0VkZ2UobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICAgIGlmIChtYXhpbmcpIHtcbiAgICAgICAgLy8gSGFuZGxlIGludm9jYXRpb25zIGluIGEgdGlnaHQgbG9vcC5cbiAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAgICAgcmV0dXJuIGludm9rZUZ1bmMobGFzdENhbGxUaW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRpbWVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGltZXJFeHBpcmVkLCB3YWl0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBkZWJvdW5jZWQuY2FuY2VsID0gY2FuY2VsO1xuICBkZWJvdW5jZWQuZmx1c2ggPSBmbHVzaDtcbiAgcmV0dXJuIGRlYm91bmNlZDtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAqIG9mIGBPYmplY3RgLiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdCh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiAhIXZhbHVlICYmICh0eXBlID09ICdvYmplY3QnIHx8IHR5cGUgPT0gJ2Z1bmN0aW9uJyk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UuIEEgdmFsdWUgaXMgb2JqZWN0LWxpa2UgaWYgaXQncyBub3QgYG51bGxgXG4gKiBhbmQgaGFzIGEgYHR5cGVvZmAgcmVzdWx0IG9mIFwib2JqZWN0XCIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdExpa2Uoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc09iamVjdExpa2UobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWUpIHtcbiAgcmV0dXJuICEhdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09ICdvYmplY3QnO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU3ltYm9sYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc3ltYm9sLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTeW1ib2woU3ltYm9sLml0ZXJhdG9yKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzU3ltYm9sKCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzU3ltYm9sKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ3N5bWJvbCcgfHxcbiAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBvYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBzeW1ib2xUYWcpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBudW1iZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udG9OdW1iZXIoMy4yKTtcbiAqIC8vID0+IDMuMlxuICpcbiAqIF8udG9OdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gKiAvLyA9PiA1ZS0zMjRcbiAqXG4gKiBfLnRvTnVtYmVyKEluZmluaXR5KTtcbiAqIC8vID0+IEluZmluaXR5XG4gKlxuICogXy50b051bWJlcignMy4yJyk7XG4gKiAvLyA9PiAzLjJcbiAqL1xuZnVuY3Rpb24gdG9OdW1iZXIodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIE5BTjtcbiAgfVxuICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgdmFyIG90aGVyID0gdHlwZW9mIHZhbHVlLnZhbHVlT2YgPT0gJ2Z1bmN0aW9uJyA/IHZhbHVlLnZhbHVlT2YoKSA6IHZhbHVlO1xuICAgIHZhbHVlID0gaXNPYmplY3Qob3RoZXIpID8gKG90aGVyICsgJycpIDogb3RoZXI7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogK3ZhbHVlO1xuICB9XG4gIHZhbHVlID0gdmFsdWUucmVwbGFjZShyZVRyaW0sICcnKTtcbiAgdmFyIGlzQmluYXJ5ID0gcmVJc0JpbmFyeS50ZXN0KHZhbHVlKTtcbiAgcmV0dXJuIChpc0JpbmFyeSB8fCByZUlzT2N0YWwudGVzdCh2YWx1ZSkpXG4gICAgPyBmcmVlUGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIGlzQmluYXJ5ID8gMiA6IDgpXG4gICAgOiAocmVJc0JhZEhleC50ZXN0KHZhbHVlKSA/IE5BTiA6ICt2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZGVib3VuY2U7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lodash.debounce/index.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/Icon.js":
/*!****************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/Icon.js ***!
\****************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Icon; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultAttributes.js */ \"./node_modules/lucide-react/dist/esm/defaultAttributes.js\");\n/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\n\n\nconst Icon = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => {\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\n \"svg\",\n {\n ref,\n ..._defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(\"lucide\", className),\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n );\n }\n);\n\n\n//# sourceMappingURL=Icon.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL0ljb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWtEO0FBQ0s7QUFDRjs7QUFFckQsYUFBYSxpREFBVTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsV0FBVyxvREFBYTtBQUN4QjtBQUNBO0FBQ0E7QUFDQSxXQUFXLDZEQUFpQjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixrRUFBWTtBQUMvQjtBQUNBLE9BQU87QUFDUDtBQUNBLDBDQUEwQyxvREFBYTtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUUyQjtBQUMzQiIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL0ljb24uanM/Y2VkNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40NDYuMCAtIElTQ1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLlxuICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuaW1wb3J0IHsgZm9yd2FyZFJlZiwgY3JlYXRlRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBkZWZhdWx0QXR0cmlidXRlcyBmcm9tICcuL2RlZmF1bHRBdHRyaWJ1dGVzLmpzJztcbmltcG9ydCB7IG1lcmdlQ2xhc3NlcyB9IGZyb20gJy4vc2hhcmVkL3NyYy91dGlscy5qcyc7XG5cbmNvbnN0IEljb24gPSBmb3J3YXJkUmVmKFxuICAoe1xuICAgIGNvbG9yID0gXCJjdXJyZW50Q29sb3JcIixcbiAgICBzaXplID0gMjQsXG4gICAgc3Ryb2tlV2lkdGggPSAyLFxuICAgIGFic29sdXRlU3Ryb2tlV2lkdGgsXG4gICAgY2xhc3NOYW1lID0gXCJcIixcbiAgICBjaGlsZHJlbixcbiAgICBpY29uTm9kZSxcbiAgICAuLi5yZXN0XG4gIH0sIHJlZikgPT4ge1xuICAgIHJldHVybiBjcmVhdGVFbGVtZW50KFxuICAgICAgXCJzdmdcIixcbiAgICAgIHtcbiAgICAgICAgcmVmLFxuICAgICAgICAuLi5kZWZhdWx0QXR0cmlidXRlcyxcbiAgICAgICAgd2lkdGg6IHNpemUsXG4gICAgICAgIGhlaWdodDogc2l6ZSxcbiAgICAgICAgc3Ryb2tlOiBjb2xvcixcbiAgICAgICAgc3Ryb2tlV2lkdGg6IGFic29sdXRlU3Ryb2tlV2lkdGggPyBOdW1iZXIoc3Ryb2tlV2lkdGgpICogMjQgLyBOdW1iZXIoc2l6ZSkgOiBzdHJva2VXaWR0aCxcbiAgICAgICAgY2xhc3NOYW1lOiBtZXJnZUNsYXNzZXMoXCJsdWNpZGVcIiwgY2xhc3NOYW1lKSxcbiAgICAgICAgLi4ucmVzdFxuICAgICAgfSxcbiAgICAgIFtcbiAgICAgICAgLi4uaWNvbk5vZGUubWFwKChbdGFnLCBhdHRyc10pID0+IGNyZWF0ZUVsZW1lbnQodGFnLCBhdHRycykpLFxuICAgICAgICAuLi5BcnJheS5pc0FycmF5KGNoaWxkcmVuKSA/IGNoaWxkcmVuIDogW2NoaWxkcmVuXVxuICAgICAgXVxuICAgICk7XG4gIH1cbik7XG5cbmV4cG9ydCB7IEljb24gYXMgZGVmYXVsdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SWNvbi5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/Icon.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/createLucideIcon.js":
/*!****************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/createLucideIcon.js ***!
\****************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ createLucideIcon; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/* harmony import */ var _Icon_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Icon.js */ \"./node_modules/lucide-react/dist/esm/Icon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\n\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(\n ({ className, ...props }, ref) => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_Icon_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n ref,\n iconNode,\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(`lucide-${(0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.toKebabCase)(iconName)}`, className),\n ...props\n })\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\n\n//# sourceMappingURL=createLucideIcon.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2NyZWF0ZUx1Y2lkZUljb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWtEO0FBQ2dCO0FBQ3JDOztBQUU3QjtBQUNBLG9CQUFvQixpREFBVTtBQUM5QixPQUFPLHFCQUFxQixVQUFVLG9EQUFhLENBQUMsZ0RBQUk7QUFDeEQ7QUFDQTtBQUNBLGlCQUFpQixrRUFBWSxXQUFXLGlFQUFXLFdBQVc7QUFDOUQ7QUFDQSxLQUFLO0FBQ0w7QUFDQSw2QkFBNkIsU0FBUztBQUN0QztBQUNBOztBQUV1QztBQUN2QyIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2NyZWF0ZUx1Y2lkZUljb24uanM/ZTc2OSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40NDYuMCAtIElTQ1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLlxuICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuaW1wb3J0IHsgZm9yd2FyZFJlZiwgY3JlYXRlRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IG1lcmdlQ2xhc3NlcywgdG9LZWJhYkNhc2UgfSBmcm9tICcuL3NoYXJlZC9zcmMvdXRpbHMuanMnO1xuaW1wb3J0IEljb24gZnJvbSAnLi9JY29uLmpzJztcblxuY29uc3QgY3JlYXRlTHVjaWRlSWNvbiA9IChpY29uTmFtZSwgaWNvbk5vZGUpID0+IHtcbiAgY29uc3QgQ29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgICAoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gY3JlYXRlRWxlbWVudChJY29uLCB7XG4gICAgICByZWYsXG4gICAgICBpY29uTm9kZSxcbiAgICAgIGNsYXNzTmFtZTogbWVyZ2VDbGFzc2VzKGBsdWNpZGUtJHt0b0tlYmFiQ2FzZShpY29uTmFtZSl9YCwgY2xhc3NOYW1lKSxcbiAgICAgIC4uLnByb3BzXG4gICAgfSlcbiAgKTtcbiAgQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gYCR7aWNvbk5hbWV9YDtcbiAgcmV0dXJuIENvbXBvbmVudDtcbn07XG5cbmV4cG9ydCB7IGNyZWF0ZUx1Y2lkZUljb24gYXMgZGVmYXVsdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlTHVjaWRlSWNvbi5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/createLucideIcon.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/defaultAttributes.js":
/*!*****************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/defaultAttributes.js ***!
\*****************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ defaultAttributes; }\n/* harmony export */ });\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\n\n//# sourceMappingURL=defaultAttributes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2RlZmF1bHRBdHRyaWJ1dGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFd0M7QUFDeEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL2x1Y2lkZS1yZWFjdC9kaXN0L2VzbS9kZWZhdWx0QXR0cmlidXRlcy5qcz8yYzVkIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQ0Ni4wIC0gSVNDXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuXG4gKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG52YXIgZGVmYXVsdEF0dHJpYnV0ZXMgPSB7XG4gIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gIHdpZHRoOiAyNCxcbiAgaGVpZ2h0OiAyNCxcbiAgdmlld0JveDogXCIwIDAgMjQgMjRcIixcbiAgZmlsbDogXCJub25lXCIsXG4gIHN0cm9rZTogXCJjdXJyZW50Q29sb3JcIixcbiAgc3Ryb2tlV2lkdGg6IDIsXG4gIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIixcbiAgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIlxufTtcblxuZXhwb3J0IHsgZGVmYXVsdEF0dHJpYnV0ZXMgYXMgZGVmYXVsdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVmYXVsdEF0dHJpYnV0ZXMuanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/defaultAttributes.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/icons/arrow-right.js":
/*!*****************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/arrow-right.js ***!
\*****************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ ArrowRight; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\nconst ArrowRight = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ArrowRight\", [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"m12 5 7 7-7 7\", key: \"xquz4c\" }]\n]);\n\n\n//# sourceMappingURL=arrow-right.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2Fycm93LXJpZ2h0LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVzRDs7QUFFdEQsbUJBQW1CLGdFQUFnQjtBQUNuQyxhQUFhLDhCQUE4QjtBQUMzQyxhQUFhLG1DQUFtQztBQUNoRDs7QUFFaUM7QUFDakMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL2x1Y2lkZS1yZWFjdC9kaXN0L2VzbS9pY29ucy9hcnJvdy1yaWdodC5qcz85YjFkIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQ0Ni4wIC0gSVNDXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuXG4gKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uLmpzJztcblxuY29uc3QgQXJyb3dSaWdodCA9IGNyZWF0ZUx1Y2lkZUljb24oXCJBcnJvd1JpZ2h0XCIsIFtcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTUgMTJoMTRcIiwga2V5OiBcIjFheXMwaFwiIH1dLFxuICBbXCJwYXRoXCIsIHsgZDogXCJtMTIgNSA3IDctNyA3XCIsIGtleTogXCJ4cXV6NGNcIiB9XVxuXSk7XG5cbmV4cG9ydCB7IEFycm93UmlnaHQgYXMgZGVmYXVsdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXJyb3ctcmlnaHQuanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/icons/arrow-right.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/icons/arrow-up-right.js":
/*!********************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/arrow-up-right.js ***!
\********************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ ArrowUpRight; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\nconst ArrowUpRight = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ArrowUpRight\", [\n [\"path\", { d: \"M7 7h10v10\", key: \"1tivn9\" }],\n [\"path\", { d: \"M7 17 17 7\", key: \"1vkiza\" }]\n]);\n\n\n//# sourceMappingURL=arrow-up-right.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2Fycm93LXVwLXJpZ2h0LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVzRDs7QUFFdEQscUJBQXFCLGdFQUFnQjtBQUNyQyxhQUFhLGdDQUFnQztBQUM3QyxhQUFhLGdDQUFnQztBQUM3Qzs7QUFFbUM7QUFDbkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL2x1Y2lkZS1yZWFjdC9kaXN0L2VzbS9pY29ucy9hcnJvdy11cC1yaWdodC5qcz9kNTRlIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQ0Ni4wIC0gSVNDXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuXG4gKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uLmpzJztcblxuY29uc3QgQXJyb3dVcFJpZ2h0ID0gY3JlYXRlTHVjaWRlSWNvbihcIkFycm93VXBSaWdodFwiLCBbXG4gIFtcInBhdGhcIiwgeyBkOiBcIk03IDdoMTB2MTBcIiwga2V5OiBcIjF0aXZuOVwiIH1dLFxuICBbXCJwYXRoXCIsIHsgZDogXCJNNyAxNyAxNyA3XCIsIGtleTogXCIxdmtpemFcIiB9XVxuXSk7XG5cbmV4cG9ydCB7IEFycm93VXBSaWdodCBhcyBkZWZhdWx0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcnJvdy11cC1yaWdodC5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/icons/arrow-up-right.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/icons/chevron-left.js":
/*!******************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/chevron-left.js ***!
\******************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ ChevronLeft; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\nconst ChevronLeft = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronLeft\", [\n [\"path\", { d: \"m15 18-6-6 6-6\", key: \"1wnfg3\" }]\n]);\n\n\n//# sourceMappingURL=chevron-left.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tbGVmdC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFc0Q7O0FBRXRELG9CQUFvQixnRUFBZ0I7QUFDcEMsYUFBYSxvQ0FBb0M7QUFDakQ7O0FBRWtDO0FBQ2xDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1sZWZ0LmpzP2Q2OGEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDQ2LjAgLSBJU0NcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS5cbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24uanMnO1xuXG5jb25zdCBDaGV2cm9uTGVmdCA9IGNyZWF0ZUx1Y2lkZUljb24oXCJDaGV2cm9uTGVmdFwiLCBbXG4gIFtcInBhdGhcIiwgeyBkOiBcIm0xNSAxOC02LTYgNi02XCIsIGtleTogXCIxd25mZzNcIiB9XVxuXSk7XG5cbmV4cG9ydCB7IENoZXZyb25MZWZ0IGFzIGRlZmF1bHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNoZXZyb24tbGVmdC5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/icons/chevron-left.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/icons/chevron-right.js":
/*!*******************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/chevron-right.js ***!
\*******************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ ChevronRight; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\nconst ChevronRight = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronRight\", [\n [\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]\n]);\n\n\n//# sourceMappingURL=chevron-right.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tcmlnaHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXNEOztBQUV0RCxxQkFBcUIsZ0VBQWdCO0FBQ3JDLGFBQWEsbUNBQW1DO0FBQ2hEOztBQUVtQztBQUNuQyIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2NoZXZyb24tcmlnaHQuanM/ZmI1YyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40NDYuMCAtIElTQ1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLlxuICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbi5qcyc7XG5cbmNvbnN0IENoZXZyb25SaWdodCA9IGNyZWF0ZUx1Y2lkZUljb24oXCJDaGV2cm9uUmlnaHRcIiwgW1xuICBbXCJwYXRoXCIsIHsgZDogXCJtOSAxOCA2LTYtNi02XCIsIGtleTogXCJtdGhod3FcIiB9XVxuXSk7XG5cbmV4cG9ydCB7IENoZXZyb25SaWdodCBhcyBkZWZhdWx0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jaGV2cm9uLXJpZ2h0LmpzLm1hcFxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/icons/chevron-right.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/icons/circle-help.js":
/*!*****************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/circle-help.js ***!
\*****************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ CircleHelp; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\nconst CircleHelp = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"CircleHelp\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\", key: \"1u773s\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n]);\n\n\n//# sourceMappingURL=circle-help.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1oZWxwLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVzRDs7QUFFdEQsbUJBQW1CLGdFQUFnQjtBQUNuQyxlQUFlLDRDQUE0QztBQUMzRCxhQUFhLDBEQUEwRDtBQUN2RSxhQUFhLGdDQUFnQztBQUM3Qzs7QUFFaUM7QUFDakMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL2x1Y2lkZS1yZWFjdC9kaXN0L2VzbS9pY29ucy9jaXJjbGUtaGVscC5qcz9iMTIzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQ0Ni4wIC0gSVNDXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuXG4gKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uLmpzJztcblxuY29uc3QgQ2lyY2xlSGVscCA9IGNyZWF0ZUx1Y2lkZUljb24oXCJDaXJjbGVIZWxwXCIsIFtcbiAgW1wiY2lyY2xlXCIsIHsgY3g6IFwiMTJcIiwgY3k6IFwiMTJcIiwgcjogXCIxMFwiLCBrZXk6IFwiMW1nbGF5XCIgfV0sXG4gIFtcInBhdGhcIiwgeyBkOiBcIk05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgM1wiLCBrZXk6IFwiMXU3NzNzXCIgfV0sXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0xMiAxN2guMDFcIiwga2V5OiBcInAzMnAwNVwiIH1dXG5dKTtcblxuZXhwb3J0IHsgQ2lyY2xlSGVscCBhcyBkZWZhdWx0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jaXJjbGUtaGVscC5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/icons/circle-help.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/icons/external-link.js":
/*!*******************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/external-link.js ***!
\*******************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ ExternalLink; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\nconst ExternalLink = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ExternalLink\", [\n [\"path\", { d: \"M15 3h6v6\", key: \"1q9fwt\" }],\n [\"path\", { d: \"M10 14 21 3\", key: \"gplh6r\" }],\n [\"path\", { d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\", key: \"a6xqqp\" }]\n]);\n\n\n//# sourceMappingURL=external-link.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2V4dGVybmFsLWxpbmsuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXNEOztBQUV0RCxxQkFBcUIsZ0VBQWdCO0FBQ3JDLGFBQWEsK0JBQStCO0FBQzVDLGFBQWEsaUNBQWlDO0FBQzlDLGFBQWEsOEVBQThFO0FBQzNGOztBQUVtQztBQUNuQyIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2V4dGVybmFsLWxpbmsuanM/NDUzZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40NDYuMCAtIElTQ1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLlxuICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbi5qcyc7XG5cbmNvbnN0IEV4dGVybmFsTGluayA9IGNyZWF0ZUx1Y2lkZUljb24oXCJFeHRlcm5hbExpbmtcIiwgW1xuICBbXCJwYXRoXCIsIHsgZDogXCJNMTUgM2g2djZcIiwga2V5OiBcIjFxOWZ3dFwiIH1dLFxuICBbXCJwYXRoXCIsIHsgZDogXCJNMTAgMTQgMjEgM1wiLCBrZXk6IFwiZ3BsaDZyXCIgfV0sXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2XCIsIGtleTogXCJhNnhxcXBcIiB9XVxuXSk7XG5cbmV4cG9ydCB7IEV4dGVybmFsTGluayBhcyBkZWZhdWx0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1leHRlcm5hbC1saW5rLmpzLm1hcFxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/icons/external-link.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/icons/file-text.js":
/*!***************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/file-text.js ***!
\***************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ FileText; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\nconst FileText = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"FileText\", [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"M10 9H8\", key: \"b1mrlr\" }],\n [\"path\", { d: \"M16 13H8\", key: \"t4e002\" }],\n [\"path\", { d: \"M16 17H8\", key: \"z1uh3a\" }]\n]);\n\n\n//# sourceMappingURL=file-text.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2ZpbGUtdGV4dC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFc0Q7O0FBRXRELGlCQUFpQixnRUFBZ0I7QUFDakMsYUFBYSxnRkFBZ0Y7QUFDN0YsYUFBYSw2Q0FBNkM7QUFDMUQsYUFBYSw2QkFBNkI7QUFDMUMsYUFBYSw4QkFBOEI7QUFDM0MsYUFBYSw4QkFBOEI7QUFDM0M7O0FBRStCO0FBQy9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvZmlsZS10ZXh0LmpzPzRiMzgiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDQ2LjAgLSBJU0NcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS5cbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24uanMnO1xuXG5jb25zdCBGaWxlVGV4dCA9IGNyZWF0ZUx1Y2lkZUljb24oXCJGaWxlVGV4dFwiLCBbXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0xNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWN1pcIiwga2V5OiBcIjFycWZ6N1wiIH1dLFxuICBbXCJwYXRoXCIsIHsgZDogXCJNMTQgMnY0YTIgMiAwIDAgMCAyIDJoNFwiLCBrZXk6IFwidG5xcmxiXCIgfV0sXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0xMCA5SDhcIiwga2V5OiBcImIxbXJsclwiIH1dLFxuICBbXCJwYXRoXCIsIHsgZDogXCJNMTYgMTNIOFwiLCBrZXk6IFwidDRlMDAyXCIgfV0sXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0xNiAxN0g4XCIsIGtleTogXCJ6MXVoM2FcIiB9XVxuXSk7XG5cbmV4cG9ydCB7IEZpbGVUZXh0IGFzIGRlZmF1bHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZpbGUtdGV4dC5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/icons/file-text.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/icons/headphones.js":
/*!****************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/headphones.js ***!
\****************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Headphones; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\nconst Headphones = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Headphones\", [\n [\n \"path\",\n {\n d: \"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3\",\n key: \"1xhozi\"\n }\n ]\n]);\n\n\n//# sourceMappingURL=headphones.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2hlYWRwaG9uZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXNEOztBQUV0RCxtQkFBbUIsZ0VBQWdCO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWlDO0FBQ2pDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvaGVhZHBob25lcy5qcz9kZWE3Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQ0Ni4wIC0gSVNDXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuXG4gKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uLmpzJztcblxuY29uc3QgSGVhZHBob25lcyA9IGNyZWF0ZUx1Y2lkZUljb24oXCJIZWFkcGhvbmVzXCIsIFtcbiAgW1xuICAgIFwicGF0aFwiLFxuICAgIHtcbiAgICAgIGQ6IFwiTTMgMTRoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTdhOSA5IDAgMCAxIDE4IDB2N2EyIDIgMCAwIDEtMiAyaC0xYTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmgzXCIsXG4gICAgICBrZXk6IFwiMXhob3ppXCJcbiAgICB9XG4gIF1cbl0pO1xuXG5leHBvcnQgeyBIZWFkcGhvbmVzIGFzIGRlZmF1bHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWRwaG9uZXMuanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/icons/headphones.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/icons/headset.js":
/*!*************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/headset.js ***!
\*************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Headset; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\nconst Headset = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Headset\", [\n [\n \"path\",\n {\n d: \"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z\",\n key: \"12oyoe\"\n }\n ],\n [\"path\", { d: \"M21 16v2a4 4 0 0 1-4 4h-5\", key: \"1x7m43\" }]\n]);\n\n\n//# sourceMappingURL=headset.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2hlYWRzZXQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXNEOztBQUV0RCxnQkFBZ0IsZ0VBQWdCO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSwrQ0FBK0M7QUFDNUQ7O0FBRThCO0FBQzlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvaGVhZHNldC5qcz80Y2QzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQ0Ni4wIC0gSVNDXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuXG4gKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uLmpzJztcblxuY29uc3QgSGVhZHNldCA9IGNyZWF0ZUx1Y2lkZUljb24oXCJIZWFkc2V0XCIsIFtcbiAgW1xuICAgIFwicGF0aFwiLFxuICAgIHtcbiAgICAgIGQ6IFwiTTMgMTFoM2EyIDIgMCAwIDEgMiAydjNhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTVabTAgMGE5IDkgMCAxIDEgMTggMG0wIDB2NWEyIDIgMCAwIDEtMiAyaC0xYTIgMiAwIDAgMS0yLTJ2LTNhMiAyIDAgMCAxIDItMmgzWlwiLFxuICAgICAga2V5OiBcIjEyb3lvZVwiXG4gICAgfVxuICBdLFxuICBbXCJwYXRoXCIsIHsgZDogXCJNMjEgMTZ2MmE0IDQgMCAwIDEtNCA0aC01XCIsIGtleTogXCIxeDdtNDNcIiB9XVxuXSk7XG5cbmV4cG9ydCB7IEhlYWRzZXQgYXMgZGVmYXVsdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVhZHNldC5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/icons/headset.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/icons/info.js":
/*!**********************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/info.js ***!
\**********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Info; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\nconst Info = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Info\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 16v-4\", key: \"1dtifu\" }],\n [\"path\", { d: \"M12 8h.01\", key: \"e9boi3\" }]\n]);\n\n\n//# sourceMappingURL=info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2luZm8uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXNEOztBQUV0RCxhQUFhLGdFQUFnQjtBQUM3QixlQUFlLDRDQUE0QztBQUMzRCxhQUFhLCtCQUErQjtBQUM1QyxhQUFhLCtCQUErQjtBQUM1Qzs7QUFFMkI7QUFDM0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL2x1Y2lkZS1yZWFjdC9kaXN0L2VzbS9pY29ucy9pbmZvLmpzPzFlZmIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDQ2LjAgLSBJU0NcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS5cbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24uanMnO1xuXG5jb25zdCBJbmZvID0gY3JlYXRlTHVjaWRlSWNvbihcIkluZm9cIiwgW1xuICBbXCJjaXJjbGVcIiwgeyBjeDogXCIxMlwiLCBjeTogXCIxMlwiLCByOiBcIjEwXCIsIGtleTogXCIxbWdsYXlcIiB9XSxcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTEyIDE2di00XCIsIGtleTogXCIxZHRpZnVcIiB9XSxcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTEyIDhoLjAxXCIsIGtleTogXCJlOWJvaTNcIiB9XVxuXSk7XG5cbmV4cG9ydCB7IEluZm8gYXMgZGVmYXVsdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5mby5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/icons/info.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/icons/loader-circle.js":
/*!*******************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/loader-circle.js ***!
\*******************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ LoaderCircle; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\nconst LoaderCircle = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"LoaderCircle\", [\n [\"path\", { d: \"M21 12a9 9 0 1 1-6.219-8.56\", key: \"13zald\" }]\n]);\n\n\n//# sourceMappingURL=loader-circle.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2xvYWRlci1jaXJjbGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXNEOztBQUV0RCxxQkFBcUIsZ0VBQWdCO0FBQ3JDLGFBQWEsaURBQWlEO0FBQzlEOztBQUVtQztBQUNuQyIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2xvYWRlci1jaXJjbGUuanM/ZWZjNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIGx1Y2lkZS1yZWFjdCB2MC40NDYuMCAtIElTQ1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIElTQyBsaWNlbnNlLlxuICogU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbi5qcyc7XG5cbmNvbnN0IExvYWRlckNpcmNsZSA9IGNyZWF0ZUx1Y2lkZUljb24oXCJMb2FkZXJDaXJjbGVcIiwgW1xuICBbXCJwYXRoXCIsIHsgZDogXCJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTZcIiwga2V5OiBcIjEzemFsZFwiIH1dXG5dKTtcblxuZXhwb3J0IHsgTG9hZGVyQ2lyY2xlIGFzIGRlZmF1bHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxvYWRlci1jaXJjbGUuanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/icons/loader-circle.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/icons/notepad-text.js":
/*!******************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/notepad-text.js ***!
\******************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ NotepadText; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\nconst NotepadText = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"NotepadText\", [\n [\"path\", { d: \"M8 2v4\", key: \"1cmpym\" }],\n [\"path\", { d: \"M12 2v4\", key: \"3427ic\" }],\n [\"path\", { d: \"M16 2v4\", key: \"4m81vk\" }],\n [\"rect\", { width: \"16\", height: \"18\", x: \"4\", y: \"4\", rx: \"2\", key: \"1u9h20\" }],\n [\"path\", { d: \"M8 10h6\", key: \"3oa6kw\" }],\n [\"path\", { d: \"M8 14h8\", key: \"1fgep2\" }],\n [\"path\", { d: \"M8 18h5\", key: \"17enja\" }]\n]);\n\n\n//# sourceMappingURL=notepad-text.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL25vdGVwYWQtdGV4dC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFc0Q7O0FBRXRELG9CQUFvQixnRUFBZ0I7QUFDcEMsYUFBYSw0QkFBNEI7QUFDekMsYUFBYSw2QkFBNkI7QUFDMUMsYUFBYSw2QkFBNkI7QUFDMUMsYUFBYSxtRUFBbUU7QUFDaEYsYUFBYSw2QkFBNkI7QUFDMUMsYUFBYSw2QkFBNkI7QUFDMUMsYUFBYSw2QkFBNkI7QUFDMUM7O0FBRWtDO0FBQ2xDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbm90ZXBhZC10ZXh0LmpzPzA4ZGMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDQ2LjAgLSBJU0NcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS5cbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24uanMnO1xuXG5jb25zdCBOb3RlcGFkVGV4dCA9IGNyZWF0ZUx1Y2lkZUljb24oXCJOb3RlcGFkVGV4dFwiLCBbXG4gIFtcInBhdGhcIiwgeyBkOiBcIk04IDJ2NFwiLCBrZXk6IFwiMWNtcHltXCIgfV0sXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0xMiAydjRcIiwga2V5OiBcIjM0MjdpY1wiIH1dLFxuICBbXCJwYXRoXCIsIHsgZDogXCJNMTYgMnY0XCIsIGtleTogXCI0bTgxdmtcIiB9XSxcbiAgW1wicmVjdFwiLCB7IHdpZHRoOiBcIjE2XCIsIGhlaWdodDogXCIxOFwiLCB4OiBcIjRcIiwgeTogXCI0XCIsIHJ4OiBcIjJcIiwga2V5OiBcIjF1OWgyMFwiIH1dLFxuICBbXCJwYXRoXCIsIHsgZDogXCJNOCAxMGg2XCIsIGtleTogXCIzb2E2a3dcIiB9XSxcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTggMTRoOFwiLCBrZXk6IFwiMWZnZXAyXCIgfV0sXG4gIFtcInBhdGhcIiwgeyBkOiBcIk04IDE4aDVcIiwga2V5OiBcIjE3ZW5qYVwiIH1dXG5dKTtcblxuZXhwb3J0IHsgTm90ZXBhZFRleHQgYXMgZGVmYXVsdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm90ZXBhZC10ZXh0LmpzLm1hcFxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/icons/notepad-text.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/icons/plus.js":
/*!**********************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/plus.js ***!
\**********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Plus; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\nconst Plus = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Plus\", [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"M12 5v14\", key: \"s699le\" }]\n]);\n\n\n//# sourceMappingURL=plus.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3BsdXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXNEOztBQUV0RCxhQUFhLGdFQUFnQjtBQUM3QixhQUFhLDhCQUE4QjtBQUMzQyxhQUFhLDhCQUE4QjtBQUMzQzs7QUFFMkI7QUFDM0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL2x1Y2lkZS1yZWFjdC9kaXN0L2VzbS9pY29ucy9wbHVzLmpzP2M4YzAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDQ2LjAgLSBJU0NcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS5cbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24uanMnO1xuXG5jb25zdCBQbHVzID0gY3JlYXRlTHVjaWRlSWNvbihcIlBsdXNcIiwgW1xuICBbXCJwYXRoXCIsIHsgZDogXCJNNSAxMmgxNFwiLCBrZXk6IFwiMWF5czBoXCIgfV0sXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0xMiA1djE0XCIsIGtleTogXCJzNjk5bGVcIiB9XVxuXSk7XG5cbmV4cG9ydCB7IFBsdXMgYXMgZGVmYXVsdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGx1cy5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/icons/plus.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/icons/refresh-ccw.js":
/*!*****************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/refresh-ccw.js ***!
\*****************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ RefreshCcw; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\nconst RefreshCcw = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"RefreshCcw\", [\n [\"path\", { d: \"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\", key: \"14sxne\" }],\n [\"path\", { d: \"M3 3v5h5\", key: \"1xhq8a\" }],\n [\"path\", { d: \"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16\", key: \"1hlbsb\" }],\n [\"path\", { d: \"M16 16h5v5\", key: \"ccwih5\" }]\n]);\n\n\n//# sourceMappingURL=refresh-ccw.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3JlZnJlc2gtY2N3LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVzRDs7QUFFdEQsbUJBQW1CLGdFQUFnQjtBQUNuQyxhQUFhLHdFQUF3RTtBQUNyRixhQUFhLDhCQUE4QjtBQUMzQyxhQUFhLHlFQUF5RTtBQUN0RixhQUFhLGdDQUFnQztBQUM3Qzs7QUFFaUM7QUFDakMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL2x1Y2lkZS1yZWFjdC9kaXN0L2VzbS9pY29ucy9yZWZyZXNoLWNjdy5qcz8yOWU4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQ0Ni4wIC0gSVNDXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuXG4gKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uLmpzJztcblxuY29uc3QgUmVmcmVzaENjdyA9IGNyZWF0ZUx1Y2lkZUljb24oXCJSZWZyZXNoQ2N3XCIsIFtcbiAgW1wicGF0aFwiLCB7IGQ6IFwiTTIxIDEyYTkgOSAwIDAgMC05LTkgOS43NSA5Ljc1IDAgMCAwLTYuNzQgMi43NEwzIDhcIiwga2V5OiBcIjE0c3huZVwiIH1dLFxuICBbXCJwYXRoXCIsIHsgZDogXCJNMyAzdjVoNVwiLCBrZXk6IFwiMXhocThhXCIgfV0sXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0zIDEyYTkgOSAwIDAgMCA5IDkgOS43NSA5Ljc1IDAgMCAwIDYuNzQtMi43NEwyMSAxNlwiLCBrZXk6IFwiMWhsYnNiXCIgfV0sXG4gIFtcInBhdGhcIiwgeyBkOiBcIk0xNiAxNmg1djVcIiwga2V5OiBcImNjd2loNVwiIH1dXG5dKTtcblxuZXhwb3J0IHsgUmVmcmVzaENjdyBhcyBkZWZhdWx0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWZyZXNoLWNjdy5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/icons/refresh-ccw.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/icons/search.js":
/*!************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/search.js ***!
\************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Search; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\nconst Search = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Search\", [\n [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }],\n [\"path\", { d: \"m21 21-4.3-4.3\", key: \"1qie3q\" }]\n]);\n\n\n//# sourceMappingURL=search.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3NlYXJjaC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFc0Q7O0FBRXRELGVBQWUsZ0VBQWdCO0FBQy9CLGVBQWUsMkNBQTJDO0FBQzFELGFBQWEsb0NBQW9DO0FBQ2pEOztBQUU2QjtBQUM3QiIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3NlYXJjaC5qcz9lOTcwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgbHVjaWRlLXJlYWN0IHYwLjQ0Ni4wIC0gSVNDXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgSVNDIGxpY2Vuc2UuXG4gKiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uLmpzJztcblxuY29uc3QgU2VhcmNoID0gY3JlYXRlTHVjaWRlSWNvbihcIlNlYXJjaFwiLCBbXG4gIFtcImNpcmNsZVwiLCB7IGN4OiBcIjExXCIsIGN5OiBcIjExXCIsIHI6IFwiOFwiLCBrZXk6IFwiNGVqOTd1XCIgfV0sXG4gIFtcInBhdGhcIiwgeyBkOiBcIm0yMSAyMS00LjMtNC4zXCIsIGtleTogXCIxcWllM3FcIiB9XVxuXSk7XG5cbmV4cG9ydCB7IFNlYXJjaCBhcyBkZWZhdWx0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZWFyY2guanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/icons/search.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/icons/user.js":
/*!**********************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/user.js ***!
\**********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ User; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\nconst User = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"User\", [\n [\"path\", { d: \"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\", key: \"975kel\" }],\n [\"circle\", { cx: \"12\", cy: \"7\", r: \"4\", key: \"17ys0d\" }]\n]);\n\n\n//# sourceMappingURL=user.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3VzZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXNEOztBQUV0RCxhQUFhLGdFQUFnQjtBQUM3QixhQUFhLCtEQUErRDtBQUM1RSxlQUFlLDBDQUEwQztBQUN6RDs7QUFFMkI7QUFDM0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL2x1Y2lkZS1yZWFjdC9kaXN0L2VzbS9pY29ucy91c2VyLmpzP2YzMGQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDQ2LjAgLSBJU0NcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS5cbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24uanMnO1xuXG5jb25zdCBVc2VyID0gY3JlYXRlTHVjaWRlSWNvbihcIlVzZXJcIiwgW1xuICBbXCJwYXRoXCIsIHsgZDogXCJNMTkgMjF2LTJhNCA0IDAgMCAwLTQtNEg5YTQgNCAwIDAgMC00IDR2MlwiLCBrZXk6IFwiOTc1a2VsXCIgfV0sXG4gIFtcImNpcmNsZVwiLCB7IGN4OiBcIjEyXCIsIGN5OiBcIjdcIiwgcjogXCI0XCIsIGtleTogXCIxN3lzMGRcIiB9XVxuXSk7XG5cbmV4cG9ydCB7IFVzZXIgYXMgZGVmYXVsdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlci5qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/icons/user.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/icons/x.js":
/*!*******************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/x.js ***!
\*******************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ X; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\n\n\nconst X = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"X\", [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n]);\n\n\n//# sourceMappingURL=x.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXNEOztBQUV0RCxVQUFVLGdFQUFnQjtBQUMxQixhQUFhLGdDQUFnQztBQUM3QyxhQUFhLGdDQUFnQztBQUM3Qzs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL2x1Y2lkZS1yZWFjdC9kaXN0L2VzbS9pY29ucy94LmpzPzIyMTAiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDQ2LjAgLSBJU0NcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS5cbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24uanMnO1xuXG5jb25zdCBYID0gY3JlYXRlTHVjaWRlSWNvbihcIlhcIiwgW1xuICBbXCJwYXRoXCIsIHsgZDogXCJNMTggNiA2IDE4XCIsIGtleTogXCIxYmw1ZjhcIiB9XSxcbiAgW1wicGF0aFwiLCB7IGQ6IFwibTYgNiAxMiAxMlwiLCBrZXk6IFwiZDhiazZ2XCIgfV1cbl0pO1xuXG5leHBvcnQgeyBYIGFzIGRlZmF1bHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXguanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/icons/x.js\n");
/***/ }),
/***/ "./node_modules/lucide-react/dist/esm/shared/src/utils.js":
/*!****************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/shared/src/utils.js ***!
\****************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mergeClasses: function() { return /* binding */ mergeClasses; },\n/* harmony export */ toKebabCase: function() { return /* binding */ toKebabCase; }\n/* harmony export */ });\n/**\n * @license lucide-react v0.446.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && array.indexOf(className) === index;\n}).join(\" \");\n\n\n//# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL3NoYXJlZC9zcmMvdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFb0M7QUFDckMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL2x1Y2lkZS1yZWFjdC9kaXN0L2VzbS9zaGFyZWQvc3JjL3V0aWxzLmpzP2JiYjYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuNDQ2LjAgLSBJU0NcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS5cbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmNvbnN0IHRvS2ViYWJDYXNlID0gKHN0cmluZykgPT4gc3RyaW5nLnJlcGxhY2UoLyhbYS16MC05XSkoW0EtWl0pL2csIFwiJDEtJDJcIikudG9Mb3dlckNhc2UoKTtcbmNvbnN0IG1lcmdlQ2xhc3NlcyA9ICguLi5jbGFzc2VzKSA9PiBjbGFzc2VzLmZpbHRlcigoY2xhc3NOYW1lLCBpbmRleCwgYXJyYXkpID0+IHtcbiAgcmV0dXJuIEJvb2xlYW4oY2xhc3NOYW1lKSAmJiBhcnJheS5pbmRleE9mKGNsYXNzTmFtZSkgPT09IGluZGV4O1xufSkuam9pbihcIiBcIik7XG5cbmV4cG9ydCB7IG1lcmdlQ2xhc3NlcywgdG9LZWJhYkNhc2UgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcFxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/lucide-react/dist/esm/shared/src/utils.js\n");
/***/ }),
/***/ "./node_modules/path-to-regexp/dist/index.js":
/*!***************************************************!*\
!*** ./node_modules/path-to-regexp/dist/index.js ***!
\***************************************************/
/***/ (function(__unused_webpack_module, exports) {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.TokenData = void 0;\nexports.parse = parse;\nexports.compile = compile;\nexports.match = match;\nexports.pathToRegexp = pathToRegexp;\nexports.stringify = stringify;\nconst DEFAULT_DELIMITER = \"/\";\nconst NOOP_VALUE = (value) => value;\nconst ID_START = /^[$_\\p{ID_Start}]$/u;\nconst ID_CONTINUE = /^[$\\u200c\\u200d\\p{ID_Continue}]$/u;\nconst DEBUG_URL = \"https://git.new/pathToRegexpError\";\nconst SIMPLE_TOKENS = {\n // Groups.\n \"{\": \"{\",\n \"}\": \"}\",\n // Reserved.\n \"(\": \"(\",\n \")\": \")\",\n \"[\": \"[\",\n \"]\": \"]\",\n \"+\": \"+\",\n \"?\": \"?\",\n \"!\": \"!\",\n};\n/**\n * Escape text for stringify to path.\n */\nfunction escapeText(str) {\n return str.replace(/[{}()\\[\\]+?!:*]/g, \"\\\\$&\");\n}\n/**\n * Escape a regular expression string.\n */\nfunction escape(str) {\n return str.replace(/[.+*?^${}()[\\]|/\\\\]/g, \"\\\\$&\");\n}\n/**\n * Tokenize input string.\n */\nfunction* lexer(str) {\n const chars = [...str];\n let i = 0;\n function name() {\n let value = \"\";\n if (ID_START.test(chars[++i])) {\n value += chars[i];\n while (ID_CONTINUE.test(chars[++i])) {\n value += chars[i];\n }\n }\n else if (chars[i] === '\"') {\n let pos = i;\n while (i < chars.length) {\n if (chars[++i] === '\"') {\n i++;\n pos = 0;\n break;\n }\n if (chars[i] === \"\\\\\") {\n value += chars[++i];\n }\n else {\n value += chars[i];\n }\n }\n if (pos) {\n throw new TypeError(`Unterminated quote at ${pos}: ${DEBUG_URL}`);\n }\n }\n if (!value) {\n throw new TypeError(`Missing parameter name at ${i}: ${DEBUG_URL}`);\n }\n return value;\n }\n while (i < chars.length) {\n const value = chars[i];\n const type = SIMPLE_TOKENS[value];\n if (type) {\n yield { type, index: i++, value };\n }\n else if (value === \"\\\\\") {\n yield { type: \"ESCAPED\", index: i++, value: chars[i++] };\n }\n else if (value === \":\") {\n const value = name();\n yield { type: \"PARAM\", index: i, value };\n }\n else if (value === \"*\") {\n const value = name();\n yield { type: \"WILDCARD\", index: i, value };\n }\n else {\n yield { type: \"CHAR\", index: i, value: chars[i++] };\n }\n }\n return { type: \"END\", index: i, value: \"\" };\n}\nclass Iter {\n constructor(tokens) {\n this.tokens = tokens;\n }\n peek() {\n if (!this._peek) {\n const next = this.tokens.next();\n this._peek = next.value;\n }\n return this._peek;\n }\n tryConsume(type) {\n const token = this.peek();\n if (token.type !== type)\n return;\n this._peek = undefined; // Reset after consumed.\n return token.value;\n }\n consume(type) {\n const value = this.tryConsume(type);\n if (value !== undefined)\n return value;\n const { type: nextType, index } = this.peek();\n throw new TypeError(`Unexpected ${nextType} at ${index}, expected ${type}: ${DEBUG_URL}`);\n }\n text() {\n let result = \"\";\n let value;\n while ((value = this.tryConsume(\"CHAR\") || this.tryConsume(\"ESCAPED\"))) {\n result += value;\n }\n return result;\n }\n}\n/**\n * Tokenized path instance.\n */\nclass TokenData {\n constructor(tokens) {\n this.tokens = tokens;\n }\n}\nexports.TokenData = TokenData;\n/**\n * Parse a string for the raw tokens.\n */\nfunction parse(str, options = {}) {\n const { encodePath = NOOP_VALUE } = options;\n const it = new Iter(lexer(str));\n function consume(endType) {\n const tokens = [];\n while (true) {\n const path = it.text();\n if (path)\n tokens.push({ type: \"text\", value: encodePath(path) });\n const param = it.tryConsume(\"PARAM\");\n if (param) {\n tokens.push({\n type: \"param\",\n name: param,\n });\n continue;\n }\n const wildcard = it.tryConsume(\"WILDCARD\");\n if (wildcard) {\n tokens.push({\n type: \"wildcard\",\n name: wildcard,\n });\n continue;\n }\n const open = it.tryConsume(\"{\");\n if (open) {\n tokens.push({\n type: \"group\",\n tokens: consume(\"}\"),\n });\n continue;\n }\n it.consume(endType);\n return tokens;\n }\n }\n const tokens = consume(\"END\");\n return new TokenData(tokens);\n}\n/**\n * Compile a string to a template function for the path.\n */\nfunction compile(path, options = {}) {\n const { encode = encodeURIComponent, delimiter = DEFAULT_DELIMITER } = options;\n const data = path instanceof TokenData ? path : parse(path, options);\n const fn = tokensToFunction(data.tokens, delimiter, encode);\n return function path(data = {}) {\n const [path, ...missing] = fn(data);\n if (missing.length) {\n throw new TypeError(`Missing parameters: ${missing.join(\", \")}`);\n }\n return path;\n };\n}\nfunction tokensToFunction(tokens, delimiter, encode) {\n const encoders = tokens.map((token) => tokenToFunction(token, delimiter, encode));\n return (data) => {\n const result = [\"\"];\n for (const encoder of encoders) {\n const [value, ...extras] = encoder(data);\n result[0] += value;\n result.push(...extras);\n }\n return result;\n };\n}\n/**\n * Convert a single token into a path building function.\n */\nfunction tokenToFunction(token, delimiter, encode) {\n if (token.type === \"text\")\n return () => [token.value];\n if (token.type === \"group\") {\n const fn = tokensToFunction(token.tokens, delimiter, encode);\n return (data) => {\n const [value, ...missing] = fn(data);\n if (!missing.length)\n return [value];\n return [\"\"];\n };\n }\n const encodeValue = encode || NOOP_VALUE;\n if (token.type === \"wildcard\" && encode !== false) {\n return (data) => {\n const value = data[token.name];\n if (value == null)\n return [\"\", token.name];\n if (!Array.isArray(value) || value.length === 0) {\n throw new TypeError(`Expected \"${token.name}\" to be a non-empty array`);\n }\n return [\n value\n .map((value, index) => {\n if (typeof value !== \"string\") {\n throw new TypeError(`Expected \"${token.name}/${index}\" to be a string`);\n }\n return encodeValue(value);\n })\n .join(delimiter),\n ];\n };\n }\n return (data) => {\n const value = data[token.name];\n if (value == null)\n return [\"\", token.name];\n if (typeof value !== \"string\") {\n throw new TypeError(`Expected \"${token.name}\" to be a string`);\n }\n return [encodeValue(value)];\n };\n}\n/**\n * Transform a path into a match function.\n */\nfunction match(path, options = {}) {\n const { decode = decodeURIComponent, delimiter = DEFAULT_DELIMITER } = options;\n const { regexp, keys } = pathToRegexp(path, options);\n const decoders = keys.map((key) => {\n if (decode === false)\n return NOOP_VALUE;\n if (key.type === \"param\")\n return decode;\n return (value) => value.split(delimiter).map(decode);\n });\n return function match(input) {\n const m = regexp.exec(input);\n if (!m)\n return false;\n const path = m[0];\n const params = Object.create(null);\n for (let i = 1; i < m.length; i++) {\n if (m[i] === undefined)\n continue;\n const key = keys[i - 1];\n const decoder = decoders[i - 1];\n params[key.name] = decoder(m[i]);\n }\n return { path, params };\n };\n}\nfunction pathToRegexp(path, options = {}) {\n const { delimiter = DEFAULT_DELIMITER, end = true, sensitive = false, trailing = true, } = options;\n const keys = [];\n const sources = [];\n const flags = sensitive ? \"\" : \"i\";\n const paths = Array.isArray(path) ? path : [path];\n const items = paths.map((path) => path instanceof TokenData ? path : parse(path, options));\n for (const { tokens } of items) {\n for (const seq of flatten(tokens, 0, [])) {\n const regexp = sequenceToRegExp(seq, delimiter, keys);\n sources.push(regexp);\n }\n }\n let pattern = `^(?:${sources.join(\"|\")})`;\n if (trailing)\n pattern += `(?:${escape(delimiter)}$)?`;\n pattern += end ? \"$\" : `(?=${escape(delimiter)}|$)`;\n const regexp = new RegExp(pattern, flags);\n return { regexp, keys };\n}\n/**\n * Generate a flat list of sequence tokens from the given tokens.\n */\nfunction* flatten(tokens, index, init) {\n if (index === tokens.length) {\n return yield init;\n }\n const token = tokens[index];\n if (token.type === \"group\") {\n const fork = init.slice();\n for (const seq of flatten(token.tokens, 0, fork)) {\n yield* flatten(tokens, index + 1, seq);\n }\n }\n else {\n init.push(token);\n }\n yield* flatten(tokens, index + 1, init);\n}\n/**\n * Transform a flat sequence of tokens into a regular expression.\n */\nfunction sequenceToRegExp(tokens, delimiter, keys) {\n let result = \"\";\n let backtrack = \"\";\n let isSafeSegmentParam = true;\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n if (token.type === \"text\") {\n result += escape(token.value);\n backtrack += token.value;\n isSafeSegmentParam || (isSafeSegmentParam = token.value.includes(delimiter));\n continue;\n }\n if (token.type === \"param\" || token.type === \"wildcard\") {\n if (!isSafeSegmentParam && !backtrack) {\n throw new TypeError(`Missing text after \"${token.name}\": ${DEBUG_URL}`);\n }\n if (token.type === \"param\") {\n result += `(${negate(delimiter, isSafeSegmentParam ? \"\" : backtrack)}+)`;\n }\n else {\n result += `([\\\\s\\\\S]+)`;\n }\n keys.push(token);\n backtrack = \"\";\n isSafeSegmentParam = false;\n continue;\n }\n }\n return result;\n}\nfunction negate(delimiter, backtrack) {\n if (backtrack.length < 2) {\n if (delimiter.length < 2)\n return `[^${escape(delimiter + backtrack)}]`;\n return `(?:(?!${escape(delimiter)})[^${escape(backtrack)}])`;\n }\n if (delimiter.length < 2) {\n return `(?:(?!${escape(backtrack)})[^${escape(delimiter)}])`;\n }\n return `(?:(?!${escape(backtrack)}|${escape(delimiter)})[\\\\s\\\\S])`;\n}\n/**\n * Stringify token data into a path string.\n */\nfunction stringify(data) {\n return data.tokens\n .map(function stringifyToken(token, index, tokens) {\n if (token.type === \"text\")\n return escapeText(token.value);\n if (token.type === \"group\") {\n return `{${token.tokens.map(stringifyToken).join(\"\")}}`;\n }\n const isSafe = isNameSafe(token.name) && isNextNameSafe(tokens[index + 1]);\n const key = isSafe ? token.name : JSON.stringify(token.name);\n if (token.type === \"param\")\n return `:${key}`;\n if (token.type === \"wildcard\")\n return `*${key}`;\n throw new TypeError(`Unexpected token: ${token}`);\n })\n .join(\"\");\n}\nfunction isNameSafe(name) {\n const [first, ...rest] = name;\n if (!ID_START.test(first))\n return false;\n return rest.every((char) => ID_CONTINUE.test(char));\n}\nfunction isNextNameSafe(token) {\n if ((token === null || token === void 0 ? void 0 : token.type) !== \"text\")\n return true;\n return !ID_CONTINUE.test(token.value[0]);\n}\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcGF0aC10by1yZWdleHAvZGlzdC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QyxFQUFFLGFBQWEsRUFBQztBQUM3RCxpQkFBaUI7QUFDakIsYUFBYTtBQUNiLGVBQWU7QUFDZixhQUFhO0FBQ2Isb0JBQW9CO0FBQ3BCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EseUJBQXlCLFNBQVM7QUFDbEMsdUNBQXVDLFlBQVk7QUFDbkQ7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFLO0FBQ1gsTUFBTSxLQUFLO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZEQUE2RCxJQUFJLElBQUksVUFBVTtBQUMvRTtBQUNBO0FBQ0E7QUFDQSw2REFBNkQsRUFBRSxJQUFJLFVBQVU7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNB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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsRUFBRSwyQ0FBMkM7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsSUFBSTtBQUMzQjtBQUNBLHVCQUF1QixJQUFJO0FBQzNCLGlEQUFpRCxNQUFNO0FBQ3ZELEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL25vZGVfbW9kdWxlcy9wYXRoLXRvLXJlZ2V4cC9kaXN0L2luZGV4LmpzPzBmZDIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLlRva2VuRGF0YSA9IHZvaWQgMDtcbmV4cG9ydHMucGFyc2UgPSBwYXJzZTtcbmV4cG9ydHMuY29tcGlsZSA9IGNvbXBpbGU7XG5leHBvcnRzLm1hdGNoID0gbWF0Y2g7XG5leHBvcnRzLnBhdGhUb1JlZ2V4cCA9IHBhdGhUb1JlZ2V4cDtcbmV4cG9ydHMuc3RyaW5naWZ5ID0gc3RyaW5naWZ5O1xuY29uc3QgREVGQVVMVF9ERUxJTUlURVIgPSBcIi9cIjtcbmNvbnN0IE5PT1BfVkFMVUUgPSAodmFsdWUpID0+IHZhbHVlO1xuY29uc3QgSURfU1RBUlQgPSAvXlskX1xccHtJRF9TdGFydH1dJC91O1xuY29uc3QgSURfQ09OVElOVUUgPSAvXlskXFx1MjAwY1xcdTIwMGRcXHB7SURfQ29udGludWV9XSQvdTtcbmNvbnN0IERFQlVHX1VSTCA9IFwiaHR0cHM6Ly9naXQubmV3L3BhdGhUb1JlZ2V4cEVycm9yXCI7XG5jb25zdCBTSU1QTEVfVE9LRU5TID0ge1xuICAgIC8vIEdyb3Vwcy5cbiAgICBcIntcIjogXCJ7XCIsXG4gICAgXCJ9XCI6IFwifVwiLFxuICAgIC8vIFJlc2VydmVkLlxuICAgIFwiKFwiOiBcIihcIixcbiAgICBcIilcIjogXCIpXCIsXG4gICAgXCJbXCI6IFwiW1wiLFxuICAgIFwiXVwiOiBcIl1cIixcbiAgICBcIitcIjogXCIrXCIsXG4gICAgXCI/XCI6IFwiP1wiLFxuICAgIFwiIVwiOiBcIiFcIixcbn07XG4vKipcbiAqIEVzY2FwZSB0ZXh0IGZvciBzdHJpbmdpZnkgdG8gcGF0aC5cbiAqL1xuZnVuY3Rpb24gZXNjYXBlVGV4dChzdHIpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1t7fSgpXFxbXFxdKz8hOipdL2csIFwiXFxcXCQmXCIpO1xufVxuLyoqXG4gKiBFc2NhcGUgYSByZWd1bGFyIGV4cHJlc3Npb24gc3RyaW5nLlxuICovXG5mdW5jdGlvbiBlc2NhcGUoc3RyKSB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC9bLisqP14ke30oKVtcXF18L1xcXFxdL2csIFwiXFxcXCQmXCIpO1xufVxuLyoqXG4gKiBUb2tlbml6ZSBpbnB1dCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uKiBsZXhlcihzdHIpIHtcbiAgICBjb25zdCBjaGFycyA9IFsuLi5zdHJdO1xuICAgIGxldCBpID0gMDtcbiAgICBmdW5jdGlvbiBuYW1lKCkge1xuICAgICAgICBsZXQgdmFsdWUgPSBcIlwiO1xuICAgICAgICBpZiAoSURfU1RBUlQudGVzdChjaGFyc1srK2ldKSkge1xuICAgICAgICAgICAgdmFsdWUgKz0gY2hhcnNbaV07XG4gICAgICAgICAgICB3aGlsZSAoSURfQ09OVElOVUUudGVzdChjaGFyc1srK2ldKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlICs9IGNoYXJzW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGNoYXJzW2ldID09PSAnXCInKSB7XG4gICAgICAgICAgICBsZXQgcG9zID0gaTtcbiAgICAgICAgICAgIHdoaWxlIChpIDwgY2hhcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoYXJzWysraV0gPT09ICdcIicpIHtcbiAgICAgICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgICAgICBwb3MgPSAwO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNoYXJzW2ldID09PSBcIlxcXFxcIikge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSArPSBjaGFyc1srK2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgKz0gY2hhcnNbaV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBvcykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFVudGVybWluYXRlZCBxdW90ZSBhdCAke3Bvc306ICR7REVCVUdfVVJMfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE1pc3NpbmcgcGFyYW1ldGVyIG5hbWUgYXQgJHtpfTogJHtERUJVR19VUkx9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICB3aGlsZSAoaSA8IGNoYXJzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGNoYXJzW2ldO1xuICAgICAgICBjb25zdCB0eXBlID0gU0lNUExFX1RPS0VOU1t2YWx1ZV07XG4gICAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgICAgICB5aWVsZCB7IHR5cGUsIGluZGV4OiBpKyssIHZhbHVlIH07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodmFsdWUgPT09IFwiXFxcXFwiKSB7XG4gICAgICAgICAgICB5aWVsZCB7IHR5cGU6IFwiRVNDQVBFRFwiLCBpbmRleDogaSsrLCB2YWx1ZTogY2hhcnNbaSsrXSB9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHZhbHVlID09PSBcIjpcIikge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBuYW1lKCk7XG4gICAgICAgICAgICB5aWVsZCB7IHR5cGU6IFwiUEFSQU1cIiwgaW5kZXg6IGksIHZhbHVlIH07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodmFsdWUgPT09IFwiKlwiKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG5hbWUoKTtcbiAgICAgICAgICAgIHlpZWxkIHsgdHlwZTogXCJXSUxEQ0FSRFwiLCBpbmRleDogaSwgdmFsdWUgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHlpZWxkIHsgdHlwZTogXCJDSEFSXCIsIGluZGV4OiBpLCB2YWx1ZTogY2hhcnNbaSsrXSB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHR5cGU6IFwiRU5EXCIsIGluZGV4OiBpLCB2YWx1ZTogXCJcIiB9O1xufVxuY2xhc3MgSXRlciB7XG4gICAgY29uc3RydWN0b3IodG9rZW5zKSB7XG4gICAgICAgIHRoaXMudG9rZW5zID0gdG9rZW5zO1xuICAgIH1cbiAgICBwZWVrKCkge1xuICAgICAgICBpZiAoIXRoaXMuX3BlZWspIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSB0aGlzLnRva2Vucy5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLl9wZWVrID0gbmV4dC52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcGVlaztcbiAgICB9XG4gICAgdHJ5Q29uc3VtZSh0eXBlKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5wZWVrKCk7XG4gICAgICAgIGlmICh0b2tlbi50eXBlICE9PSB0eXBlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLl9wZWVrID0gdW5kZWZpbmVkOyAvLyBSZXNldCBhZnRlciBjb25zdW1lZC5cbiAgICAgICAgcmV0dXJuIHRva2VuLnZhbHVlO1xuICAgIH1cbiAgICBjb25zdW1lKHR5cGUpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnRyeUNvbnN1bWUodHlwZSk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICBjb25zdCB7IHR5cGU6IG5leHRUeXBlLCBpbmRleCB9ID0gdGhpcy5wZWVrKCk7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFVuZXhwZWN0ZWQgJHtuZXh0VHlwZX0gYXQgJHtpbmRleH0sIGV4cGVjdGVkICR7dHlwZX06ICR7REVCVUdfVVJMfWApO1xuICAgIH1cbiAgICB0ZXh0KCkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgICAgICAgbGV0IHZhbHVlO1xuICAgICAgICB3aGlsZSAoKHZhbHVlID0gdGhpcy50cnlDb25zdW1lKFwiQ0hBUlwiKSB8fCB0aGlzLnRyeUNvbnN1bWUoXCJFU0NBUEVEXCIpKSkge1xuICAgICAgICAgICAgcmVzdWx0ICs9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuLyoqXG4gKiBUb2tlbml6ZWQgcGF0aCBpbnN0YW5jZS5cbiAqL1xuY2xhc3MgVG9rZW5EYXRhIHtcbiAgICBjb25zdHJ1Y3Rvcih0b2tlbnMpIHtcbiAgICAgICAgdGhpcy50b2tlbnMgPSB0b2tlbnM7XG4gICAgfVxufVxuZXhwb3J0cy5Ub2tlbkRhdGEgPSBUb2tlbkRhdGE7XG4vKipcbiAqIFBhcnNlIGEgc3RyaW5nIGZvciB0aGUgcmF3IHRva2Vucy5cbiAqL1xuZnVuY3Rpb24gcGFyc2Uoc3RyLCBvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCB7IGVuY29kZVBhdGggPSBOT09QX1ZBTFVFIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGl0ID0gbmV3IEl0ZXIobGV4ZXIoc3RyKSk7XG4gICAgZnVuY3Rpb24gY29uc3VtZShlbmRUeXBlKSB7XG4gICAgICAgIGNvbnN0IHRva2VucyA9IFtdO1xuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgY29uc3QgcGF0aCA9IGl0LnRleHQoKTtcbiAgICAgICAgICAgIGlmIChwYXRoKVxuICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKHsgdHlwZTogXCJ0ZXh0XCIsIHZhbHVlOiBlbmNvZGVQYXRoKHBhdGgpIH0pO1xuICAgICAgICAgICAgY29uc3QgcGFyYW0gPSBpdC50cnlDb25zdW1lKFwiUEFSQU1cIik7XG4gICAgICAgICAgICBpZiAocGFyYW0pIHtcbiAgICAgICAgICAgICAgICB0b2tlbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicGFyYW1cIixcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogcGFyYW0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB3aWxkY2FyZCA9IGl0LnRyeUNvbnN1bWUoXCJXSUxEQ0FSRFwiKTtcbiAgICAgICAgICAgIGlmICh3aWxkY2FyZCkge1xuICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ3aWxkY2FyZFwiLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiB3aWxkY2FyZCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG9wZW4gPSBpdC50cnlDb25zdW1lKFwie1wiKTtcbiAgICAgICAgICAgIGlmIChvcGVuKSB7XG4gICAgICAgICAgICAgICAgdG9rZW5zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImdyb3VwXCIsXG4gICAgICAgICAgICAgICAgICAgIHRva2VuczogY29uc3VtZShcIn1cIiksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpdC5jb25zdW1lKGVuZFR5cGUpO1xuICAgICAgICAgICAgcmV0dXJuIHRva2VucztcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB0b2tlbnMgPSBjb25zdW1lKFwiRU5EXCIpO1xuICAgIHJldHVybiBuZXcgVG9rZW5EYXRhKHRva2Vucyk7XG59XG4vKipcbiAqIENvbXBpbGUgYSBzdHJpbmcgdG8gYSB0ZW1wbGF0ZSBmdW5jdGlvbiBmb3IgdGhlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIGNvbXBpbGUocGF0aCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgeyBlbmNvZGUgPSBlbmNvZGVVUklDb21wb25lbnQsIGRlbGltaXRlciA9IERFRkFVTFRfREVMSU1JVEVSIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGRhdGEgPSBwYXRoIGluc3RhbmNlb2YgVG9rZW5EYXRhID8gcGF0aCA6IHBhcnNlKHBhdGgsIG9wdGlvbnMpO1xuICAgIGNvbnN0IGZuID0gdG9rZW5zVG9GdW5jdGlvbihkYXRhLnRva2VucywgZGVsaW1pdGVyLCBlbmNvZGUpO1xuICAgIHJldHVybiBmdW5jdGlvbiBwYXRoKGRhdGEgPSB7fSkge1xuICAgICAgICBjb25zdCBbcGF0aCwgLi4ubWlzc2luZ10gPSBmbihkYXRhKTtcbiAgICAgICAgaWYgKG1pc3NpbmcubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBNaXNzaW5nIHBhcmFtZXRlcnM6ICR7bWlzc2luZy5qb2luKFwiLCBcIil9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIHRva2Vuc1RvRnVuY3Rpb24odG9rZW5zLCBkZWxpbWl0ZXIsIGVuY29kZSkge1xuICAgIGNvbnN0IGVuY29kZXJzID0gdG9rZW5zLm1hcCgodG9rZW4pID0+IHRva2VuVG9GdW5jdGlvbih0b2tlbiwgZGVsaW1pdGVyLCBlbmNvZGUpKTtcbiAgICByZXR1cm4gKGRhdGEpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW1wiXCJdO1xuICAgICAgICBmb3IgKGNvbnN0IGVuY29kZXIgb2YgZW5jb2RlcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IFt2YWx1ZSwgLi4uZXh0cmFzXSA9IGVuY29kZXIoZGF0YSk7XG4gICAgICAgICAgICByZXN1bHRbMF0gKz0gdmFsdWU7XG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi5leHRyYXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbn1cbi8qKlxuICogQ29udmVydCBhIHNpbmdsZSB0b2tlbiBpbnRvIGEgcGF0aCBidWlsZGluZyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gdG9rZW5Ub0Z1bmN0aW9uKHRva2VuLCBkZWxpbWl0ZXIsIGVuY29kZSkge1xuICAgIGlmICh0b2tlbi50eXBlID09PSBcInRleHRcIilcbiAgICAgICAgcmV0dXJuICgpID0+IFt0b2tlbi52YWx1ZV07XG4gICAgaWYgKHRva2VuLnR5cGUgPT09IFwiZ3JvdXBcIikge1xuICAgICAgICBjb25zdCBmbiA9IHRva2Vuc1RvRnVuY3Rpb24odG9rZW4udG9rZW5zLCBkZWxpbWl0ZXIsIGVuY29kZSk7XG4gICAgICAgIHJldHVybiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgW3ZhbHVlLCAuLi5taXNzaW5nXSA9IGZuKGRhdGEpO1xuICAgICAgICAgICAgaWYgKCFtaXNzaW5nLmxlbmd0aClcbiAgICAgICAgICAgICAgICByZXR1cm4gW3ZhbHVlXTtcbiAgICAgICAgICAgIHJldHVybiBbXCJcIl07XG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IGVuY29kZVZhbHVlID0gZW5jb2RlIHx8IE5PT1BfVkFMVUU7XG4gICAgaWYgKHRva2VuLnR5cGUgPT09IFwid2lsZGNhcmRcIiAmJiBlbmNvZGUgIT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhW3Rva2VuLm5hbWVdO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcIlwiLCB0b2tlbi5uYW1lXTtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgdmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXCIke3Rva2VuLm5hbWV9XCIgdG8gYmUgYSBub24tZW1wdHkgYXJyYXlgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgodmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFwiJHt0b2tlbi5uYW1lfS8ke2luZGV4fVwiIHRvIGJlIGEgc3RyaW5nYCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVuY29kZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuam9pbihkZWxpbWl0ZXIpLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIChkYXRhKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YVt0b2tlbi5uYW1lXTtcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpXG4gICAgICAgICAgICByZXR1cm4gW1wiXCIsIHRva2VuLm5hbWVdO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBcIiR7dG9rZW4ubmFtZX1cIiB0byBiZSBhIHN0cmluZ2ApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbZW5jb2RlVmFsdWUodmFsdWUpXTtcbiAgICB9O1xufVxuLyoqXG4gKiBUcmFuc2Zvcm0gYSBwYXRoIGludG8gYSBtYXRjaCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gbWF0Y2gocGF0aCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgeyBkZWNvZGUgPSBkZWNvZGVVUklDb21wb25lbnQsIGRlbGltaXRlciA9IERFRkFVTFRfREVMSU1JVEVSIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHsgcmVnZXhwLCBrZXlzIH0gPSBwYXRoVG9SZWdleHAocGF0aCwgb3B0aW9ucyk7XG4gICAgY29uc3QgZGVjb2RlcnMgPSBrZXlzLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgIGlmIChkZWNvZGUgPT09IGZhbHNlKVxuICAgICAgICAgICAgcmV0dXJuIE5PT1BfVkFMVUU7XG4gICAgICAgIGlmIChrZXkudHlwZSA9PT0gXCJwYXJhbVwiKVxuICAgICAgICAgICAgcmV0dXJuIGRlY29kZTtcbiAgICAgICAgcmV0dXJuICh2YWx1ZSkgPT4gdmFsdWUuc3BsaXQoZGVsaW1pdGVyKS5tYXAoZGVjb2RlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZnVuY3Rpb24gbWF0Y2goaW5wdXQpIHtcbiAgICAgICAgY29uc3QgbSA9IHJlZ2V4cC5leGVjKGlucHV0KTtcbiAgICAgICAgaWYgKCFtKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBwYXRoID0gbVswXTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBtLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAobVtpXSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgY29uc3Qga2V5ID0ga2V5c1tpIC0gMV07XG4gICAgICAgICAgICBjb25zdCBkZWNvZGVyID0gZGVjb2RlcnNbaSAtIDFdO1xuICAgICAgICAgICAgcGFyYW1zW2tleS5uYW1lXSA9IGRlY29kZXIobVtpXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgcGF0aCwgcGFyYW1zIH07XG4gICAgfTtcbn1cbmZ1bmN0aW9uIHBhdGhUb1JlZ2V4cChwYXRoLCBvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCB7IGRlbGltaXRlciA9IERFRkFVTFRfREVMSU1JVEVSLCBlbmQgPSB0cnVlLCBzZW5zaXRpdmUgPSBmYWxzZSwgdHJhaWxpbmcgPSB0cnVlLCB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBrZXlzID0gW107XG4gICAgY29uc3Qgc291cmNlcyA9IFtdO1xuICAgIGNvbnN0IGZsYWdzID0gc2Vuc2l0aXZlID8gXCJcIiA6IFwiaVwiO1xuICAgIGNvbnN0IHBhdGhzID0gQXJyYXkuaXNBcnJheShwYXRoKSA/IHBhdGggOiBbcGF0aF07XG4gICAgY29uc3QgaXRlbXMgPSBwYXRocy5tYXAoKHBhdGgpID0+IHBhdGggaW5zdGFuY2VvZiBUb2tlbkRhdGEgPyBwYXRoIDogcGFyc2UocGF0aCwgb3B0aW9ucykpO1xuICAgIGZvciAoY29uc3QgeyB0b2tlbnMgfSBvZiBpdGVtcykge1xuICAgICAgICBmb3IgKGNvbnN0IHNlcSBvZiBmbGF0dGVuKHRva2VucywgMCwgW10pKSB7XG4gICAgICAgICAgICBjb25zdCByZWdleHAgPSBzZXF1ZW5jZVRvUmVnRXhwKHNlcSwgZGVsaW1pdGVyLCBrZXlzKTtcbiAgICAgICAgICAgIHNvdXJjZXMucHVzaChyZWdleHApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxldCBwYXR0ZXJuID0gYF4oPzoke3NvdXJjZXMuam9pbihcInxcIil9KWA7XG4gICAgaWYgKHRyYWlsaW5nKVxuICAgICAgICBwYXR0ZXJuICs9IGAoPzoke2VzY2FwZShkZWxpbWl0ZXIpfSQpP2A7XG4gICAgcGF0dGVybiArPSBlbmQgPyBcIiRcIiA6IGAoPz0ke2VzY2FwZShkZWxpbWl0ZXIpfXwkKWA7XG4gICAgY29uc3QgcmVnZXhwID0gbmV3IFJlZ0V4cChwYXR0ZXJuLCBmbGFncyk7XG4gICAgcmV0dXJuIHsgcmVnZXhwLCBrZXlzIH07XG59XG4vKipcbiAqIEdlbmVyYXRlIGEgZmxhdCBsaXN0IG9mIHNlcXVlbmNlIHRva2VucyBmcm9tIHRoZSBnaXZlbiB0b2tlbnMuXG4gKi9cbmZ1bmN0aW9uKiBmbGF0dGVuKHRva2VucywgaW5kZXgsIGluaXQpIHtcbiAgICBpZiAoaW5kZXggPT09IHRva2Vucy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHlpZWxkIGluaXQ7XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gdG9rZW5zW2luZGV4XTtcbiAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJncm91cFwiKSB7XG4gICAgICAgIGNvbnN0IGZvcmsgPSBpbml0LnNsaWNlKCk7XG4gICAgICAgIGZvciAoY29uc3Qgc2VxIG9mIGZsYXR0ZW4odG9rZW4udG9rZW5zLCAwLCBmb3JrKSkge1xuICAgICAgICAgICAgeWllbGQqIGZsYXR0ZW4odG9rZW5zLCBpbmRleCArIDEsIHNlcSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGluaXQucHVzaCh0b2tlbik7XG4gICAgfVxuICAgIHlpZWxkKiBmbGF0dGVuKHRva2VucywgaW5kZXggKyAxLCBpbml0KTtcbn1cbi8qKlxuICogVHJhbnNmb3JtIGEgZmxhdCBzZXF1ZW5jZSBvZiB0b2tlbnMgaW50byBhIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqL1xuZnVuY3Rpb24gc2VxdWVuY2VUb1JlZ0V4cCh0b2tlbnMsIGRlbGltaXRlciwga2V5cykge1xuICAgIGxldCByZXN1bHQgPSBcIlwiO1xuICAgIGxldCBiYWNrdHJhY2sgPSBcIlwiO1xuICAgIGxldCBpc1NhZmVTZWdtZW50UGFyYW0gPSB0cnVlO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdG9rZW5zW2ldO1xuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJ0ZXh0XCIpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSBlc2NhcGUodG9rZW4udmFsdWUpO1xuICAgICAgICAgICAgYmFja3RyYWNrICs9IHRva2VuLnZhbHVlO1xuICAgICAgICAgICAgaXNTYWZlU2VnbWVudFBhcmFtIHx8IChpc1NhZmVTZWdtZW50UGFyYW0gPSB0b2tlbi52YWx1ZS5pbmNsdWRlcyhkZWxpbWl0ZXIpKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbi50eXBlID09PSBcInBhcmFtXCIgfHwgdG9rZW4udHlwZSA9PT0gXCJ3aWxkY2FyZFwiKSB7XG4gICAgICAgICAgICBpZiAoIWlzU2FmZVNlZ21lbnRQYXJhbSAmJiAhYmFja3RyYWNrKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgTWlzc2luZyB0ZXh0IGFmdGVyIFwiJHt0b2tlbi5uYW1lfVwiOiAke0RFQlVHX1VSTH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0b2tlbi50eXBlID09PSBcInBhcmFtXCIpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gYCgke25lZ2F0ZShkZWxpbWl0ZXIsIGlzU2FmZVNlZ21lbnRQYXJhbSA/IFwiXCIgOiBiYWNrdHJhY2spfSspYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3VsdCArPSBgKFtcXFxcc1xcXFxTXSspYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGtleXMucHVzaCh0b2tlbik7XG4gICAgICAgICAgICBiYWNrdHJhY2sgPSBcIlwiO1xuICAgICAgICAgICAgaXNTYWZlU2VnbWVudFBhcmFtID0gZmFsc2U7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gbmVnYXRlKGRlbGltaXRlciwgYmFja3RyYWNrKSB7XG4gICAgaWYgKGJhY2t0cmFjay5sZW5ndGggPCAyKSB7XG4gICAgICAgIGlmIChkZWxpbWl0ZXIubGVuZ3RoIDwgMilcbiAgICAgICAgICAgIHJldHVybiBgW14ke2VzY2FwZShkZWxpbWl0ZXIgKyBiYWNrdHJhY2spfV1gO1xuICAgICAgICByZXR1cm4gYCg/Oig/ISR7ZXNjYXBlKGRlbGltaXRlcil9KVteJHtlc2NhcGUoYmFja3RyYWNrKX1dKWA7XG4gICAgfVxuICAgIGlmIChkZWxpbWl0ZXIubGVuZ3RoIDwgMikge1xuICAgICAgICByZXR1cm4gYCg/Oig/ISR7ZXNjYXBlKGJhY2t0cmFjayl9KVteJHtlc2NhcGUoZGVsaW1pdGVyKX1dKWA7XG4gICAgfVxuICAgIHJldHVybiBgKD86KD8hJHtlc2NhcGUoYmFja3RyYWNrKX18JHtlc2NhcGUoZGVsaW1pdGVyKX0pW1xcXFxzXFxcXFNdKWA7XG59XG4vKipcbiAqIFN0cmluZ2lmeSB0b2tlbiBkYXRhIGludG8gYSBwYXRoIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gc3RyaW5naWZ5KGRhdGEpIHtcbiAgICByZXR1cm4gZGF0YS50b2tlbnNcbiAgICAgICAgLm1hcChmdW5jdGlvbiBzdHJpbmdpZnlUb2tlbih0b2tlbiwgaW5kZXgsIHRva2Vucykge1xuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJ0ZXh0XCIpXG4gICAgICAgICAgICByZXR1cm4gZXNjYXBlVGV4dCh0b2tlbi52YWx1ZSk7XG4gICAgICAgIGlmICh0b2tlbi50eXBlID09PSBcImdyb3VwXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBgeyR7dG9rZW4udG9rZW5zLm1hcChzdHJpbmdpZnlUb2tlbikuam9pbihcIlwiKX19YDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc1NhZmUgPSBpc05hbWVTYWZlKHRva2VuLm5hbWUpICYmIGlzTmV4dE5hbWVTYWZlKHRva2Vuc1tpbmRleCArIDFdKTtcbiAgICAgICAgY29uc3Qga2V5ID0gaXNTYWZlID8gdG9rZW4ubmFtZSA6IEpTT04uc3RyaW5naWZ5KHRva2VuLm5hbWUpO1xuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJwYXJhbVwiKVxuICAgICAgICAgICAgcmV0dXJuIGA6JHtrZXl9YDtcbiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFwid2lsZGNhcmRcIilcbiAgICAgICAgICAgIHJldHVybiBgKiR7a2V5fWA7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFVuZXhwZWN0ZWQgdG9rZW46ICR7dG9rZW59YCk7XG4gICAgfSlcbiAgICAgICAgLmpvaW4oXCJcIik7XG59XG5mdW5jdGlvbiBpc05hbWVTYWZlKG5hbWUpIHtcbiAgICBjb25zdCBbZmlyc3QsIC4uLnJlc3RdID0gbmFtZTtcbiAgICBpZiAoIUlEX1NUQVJULnRlc3QoZmlyc3QpKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHJlc3QuZXZlcnkoKGNoYXIpID0+IElEX0NPTlRJTlVFLnRlc3QoY2hhcikpO1xufVxuZnVuY3Rpb24gaXNOZXh0TmFtZVNhZmUodG9rZW4pIHtcbiAgICBpZiAoKHRva2VuID09PSBudWxsIHx8IHRva2VuID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0b2tlbi50eXBlKSAhPT0gXCJ0ZXh0XCIpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIHJldHVybiAhSURfQ09OVElOVUUudGVzdCh0b2tlbi52YWx1ZVswXSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/path-to-regexp/dist/index.js\n");
/***/ }),
/***/ "./node_modules/querystringify/index.js":
/*!**********************************************!*\
!*** ./node_modules/querystringify/index.js ***!
\**********************************************/
/***/ (function(__unused_webpack_module, exports) {
"use strict";
eval("\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcXVlcnlzdHJpbmdpZnkvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsYUFBYSxhQUFhO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhLGFBQWE7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixhQUFhIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL25vZGVfbW9kdWxlcy9xdWVyeXN0cmluZ2lmeS9pbmRleC5qcz85YzU5Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxudmFyIGhhcyA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHlcbiAgLCB1bmRlZjtcblxuLyoqXG4gKiBEZWNvZGUgYSBVUkkgZW5jb2RlZCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGlucHV0IFRoZSBVUkkgZW5jb2RlZCBzdHJpbmcuXG4gKiBAcmV0dXJucyB7U3RyaW5nfE51bGx9IFRoZSBkZWNvZGVkIHN0cmluZy5cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBkZWNvZGUoaW5wdXQpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGlucHV0LnJlcGxhY2UoL1xcKy9nLCAnICcpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbi8qKlxuICogQXR0ZW1wdHMgdG8gZW5jb2RlIGEgZ2l2ZW4gaW5wdXQuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGlucHV0IFRoZSBzdHJpbmcgdGhhdCBuZWVkcyB0byBiZSBlbmNvZGVkLlxuICogQHJldHVybnMge1N0cmluZ3xOdWxsfSBUaGUgZW5jb2RlZCBzdHJpbmcuXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gZW5jb2RlKGlucHV0KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChpbnB1dCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIFNpbXBsZSBxdWVyeSBzdHJpbmcgcGFyc2VyLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBxdWVyeSBUaGUgcXVlcnkgc3RyaW5nIHRoYXQgbmVlZHMgdG8gYmUgcGFyc2VkLlxuICogQHJldHVybnMge09iamVjdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cbmZ1bmN0aW9uIHF1ZXJ5c3RyaW5nKHF1ZXJ5KSB7XG4gIHZhciBwYXJzZXIgPSAvKFtePT8jJl0rKT0/KFteJl0qKS9nXG4gICAgLCByZXN1bHQgPSB7fVxuICAgICwgcGFydDtcblxuICB3aGlsZSAocGFydCA9IHBhcnNlci5leGVjKHF1ZXJ5KSkge1xuICAgIHZhciBrZXkgPSBkZWNvZGUocGFydFsxXSlcbiAgICAgICwgdmFsdWUgPSBkZWNvZGUocGFydFsyXSk7XG5cbiAgICAvL1xuICAgIC8vIFByZXZlbnQgb3ZlcnJpZGluZyBvZiBleGlzdGluZyBwcm9wZXJ0aWVzLiBUaGlzIGVuc3VyZXMgdGhhdCBidWlsZC1pblxuICAgIC8vIG1ldGhvZHMgbGlrZSBgdG9TdHJpbmdgIG9yIF9fcHJvdG9fXyBhcmUgbm90IG92ZXJyaWRlbiBieSBtYWxpY2lvdXNcbiAgICAvLyBxdWVyeXN0cmluZ3MuXG4gICAgLy9cbiAgICAvLyBJbiB0aGUgY2FzZSBpZiBmYWlsZWQgZGVjb2RpbmcsIHdlIHdhbnQgdG8gb21pdCB0aGUga2V5L3ZhbHVlIHBhaXJzXG4gICAgLy8gZnJvbSB0aGUgcmVzdWx0LlxuICAgIC8vXG4gICAgaWYgKGtleSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gbnVsbCB8fCBrZXkgaW4gcmVzdWx0KSBjb250aW51ZTtcbiAgICByZXN1bHRba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gYSBxdWVyeSBzdHJpbmcgdG8gYW4gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmogT2JqZWN0IHRoYXQgc2hvdWxkIGJlIHRyYW5zZm9ybWVkLlxuICogQHBhcmFtIHtTdHJpbmd9IHByZWZpeCBPcHRpb25hbCBwcmVmaXguXG4gKiBAcmV0dXJucyB7U3RyaW5nfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuZnVuY3Rpb24gcXVlcnlzdHJpbmdpZnkob2JqLCBwcmVmaXgpIHtcbiAgcHJlZml4ID0gcHJlZml4IHx8ICcnO1xuXG4gIHZhciBwYWlycyA9IFtdXG4gICAgLCB2YWx1ZVxuICAgICwga2V5O1xuXG4gIC8vXG4gIC8vIE9wdGlvbmFsbHkgcHJlZml4IHdpdGggYSAnPycgaWYgbmVlZGVkXG4gIC8vXG4gIGlmICgnc3RyaW5nJyAhPT0gdHlwZW9mIHByZWZpeCkgcHJlZml4ID0gJz8nO1xuXG4gIGZvciAoa2V5IGluIG9iaikge1xuICAgIGlmIChoYXMuY2FsbChvYmosIGtleSkpIHtcbiAgICAgIHZhbHVlID0gb2JqW2tleV07XG5cbiAgICAgIC8vXG4gICAgICAvLyBFZGdlIGNhc2VzIHdoZXJlIHdlIGFjdHVhbGx5IHdhbnQgdG8gZW5jb2RlIHRoZSB2YWx1ZSB0byBhbiBlbXB0eVxuICAgICAgLy8gc3RyaW5nIGluc3RlYWQgb2YgdGhlIHN0cmluZ2lmaWVkIHZhbHVlLlxuICAgICAgLy9cbiAgICAgIGlmICghdmFsdWUgJiYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZiB8fCBpc05hTih2YWx1ZSkpKSB7XG4gICAgICAgIHZhbHVlID0gJyc7XG4gICAgICB9XG5cbiAgICAgIGtleSA9IGVuY29kZShrZXkpO1xuICAgICAgdmFsdWUgPSBlbmNvZGUodmFsdWUpO1xuXG4gICAgICAvL1xuICAgICAgLy8gSWYgd2UgZmFpbGVkIHRvIGVuY29kZSB0aGUgc3RyaW5ncywgd2Ugc2hvdWxkIGJhaWwgb3V0IGFzIHdlIGRvbid0XG4gICAgICAvLyB3YW50IHRvIGFkZCBpbnZhbGlkIHN0cmluZ3MgdG8gdGhlIHF1ZXJ5LlxuICAgICAgLy9cbiAgICAgIGlmIChrZXkgPT09IG51bGwgfHwgdmFsdWUgPT09IG51bGwpIGNvbnRpbnVlO1xuICAgICAgcGFpcnMucHVzaChrZXkgKyc9JysgdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYWlycy5sZW5ndGggPyBwcmVmaXggKyBwYWlycy5qb2luKCcmJykgOiAnJztcbn1cblxuLy9cbi8vIEV4cG9zZSB0aGUgbW9kdWxlLlxuLy9cbmV4cG9ydHMuc3RyaW5naWZ5ID0gcXVlcnlzdHJpbmdpZnk7XG5leHBvcnRzLnBhcnNlID0gcXVlcnlzdHJpbmc7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/querystringify/index.js\n");
/***/ }),
/***/ "./node_modules/react-dom/client.js":
/*!******************************************!*\
!*** ./node_modules/react-dom/client.js ***!
\******************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
"use strict";
eval("\n\nvar m = __webpack_require__(/*! react-dom */ \"react-dom\");\nif (false) {} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2NsaWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixRQUFRLG1CQUFPLENBQUMsNEJBQVc7QUFDM0IsSUFBSSxLQUFxQyxFQUFFLEVBRzFDLENBQUM7QUFDRjtBQUNBLEVBQUUsa0JBQWtCO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxFQUFFLG1CQUFtQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9jbGllbnQuanM/MTFiMSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciBtID0gcmVxdWlyZSgncmVhY3QtZG9tJyk7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBleHBvcnRzLmNyZWF0ZVJvb3QgPSBtLmNyZWF0ZVJvb3Q7XG4gIGV4cG9ydHMuaHlkcmF0ZVJvb3QgPSBtLmh5ZHJhdGVSb290O1xufSBlbHNlIHtcbiAgdmFyIGkgPSBtLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEO1xuICBleHBvcnRzLmNyZWF0ZVJvb3QgPSBmdW5jdGlvbihjLCBvKSB7XG4gICAgaS51c2luZ0NsaWVudEVudHJ5UG9pbnQgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbS5jcmVhdGVSb290KGMsIG8pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpLnVzaW5nQ2xpZW50RW50cnlQb2ludCA9IGZhbHNlO1xuICAgIH1cbiAgfTtcbiAgZXhwb3J0cy5oeWRyYXRlUm9vdCA9IGZ1bmN0aW9uKGMsIGgsIG8pIHtcbiAgICBpLnVzaW5nQ2xpZW50RW50cnlQb2ludCA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBtLmh5ZHJhdGVSb290KGMsIGgsIG8pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpLnVzaW5nQ2xpZW50RW50cnlQb2ludCA9IGZhbHNlO1xuICAgIH1cbiAgfTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/react-dom/client.js\n");
/***/ }),
/***/ "./node_modules/react-hot-toast/dist/index.mjs":
/*!*****************************************************!*\
!*** ./node_modules/react-hot-toast/dist/index.mjs ***!
\*****************************************************/
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CheckmarkIcon: function() { return /* binding */ _; },\n/* harmony export */ ErrorIcon: function() { return /* binding */ k; },\n/* harmony export */ LoaderIcon: function() { return /* binding */ V; },\n/* harmony export */ ToastBar: function() { return /* binding */ C; },\n/* harmony export */ ToastIcon: function() { return /* binding */ M; },\n/* harmony export */ Toaster: function() { return /* binding */ Oe; },\n/* harmony export */ \"default\": function() { return /* binding */ Vt; },\n/* harmony export */ resolveValue: function() { return /* binding */ f; },\n/* harmony export */ toast: function() { return /* binding */ c; },\n/* harmony export */ useToaster: function() { return /* binding */ O; },\n/* harmony export */ useToasterStore: function() { return /* binding */ D; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var goober__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! goober */ \"./node_modules/goober/dist/goober.modern.js\");\n\"use client\";\nvar W=e=>typeof e==\"function\",f=(e,t)=>W(e)?e(t):e;var F=(()=>{let e=0;return()=>(++e).toString()})(),A=(()=>{let e;return()=>{if(e===void 0&&typeof window<\"u\"){let t=matchMedia(\"(prefers-reduced-motion: reduce)\");e=!t||t.matches}return e}})();var Y=20;var U=(e,t)=>{switch(t.type){case 0:return{...e,toasts:[t.toast,...e.toasts].slice(0,Y)};case 1:return{...e,toasts:e.toasts.map(o=>o.id===t.toast.id?{...o,...t.toast}:o)};case 2:let{toast:r}=t;return U(e,{type:e.toasts.find(o=>o.id===r.id)?1:0,toast:r});case 3:let{toastId:s}=t;return{...e,toasts:e.toasts.map(o=>o.id===s||s===void 0?{...o,dismissed:!0,visible:!1}:o)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(o=>o.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let a=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(o=>({...o,pauseDuration:o.pauseDuration+a}))}}},P=[],y={toasts:[],pausedAt:void 0},u=e=>{y=U(y,e),P.forEach(t=>{t(y)})},q={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},D=(e={})=>{let[t,r]=(0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(y),s=(0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(y);(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>(s.current!==y&&r(y),P.push(r),()=>{let o=P.indexOf(r);o>-1&&P.splice(o,1)}),[]);let a=t.toasts.map(o=>{var n,i,p;return{...e,...e[o.type],...o,removeDelay:o.removeDelay||((n=e[o.type])==null?void 0:n.removeDelay)||(e==null?void 0:e.removeDelay),duration:o.duration||((i=e[o.type])==null?void 0:i.duration)||(e==null?void 0:e.duration)||q[o.type],style:{...e.style,...(p=e[o.type])==null?void 0:p.style,...o.style}}});return{...t,toasts:a}};var J=(e,t=\"blank\",r)=>({createdAt:Date.now(),visible:!0,dismissed:!1,type:t,ariaProps:{role:\"status\",\"aria-live\":\"polite\"},message:e,pauseDuration:0,...r,id:(r==null?void 0:r.id)||F()}),x=e=>(t,r)=>{let s=J(t,e,r);return u({type:2,toast:s}),s.id},c=(e,t)=>x(\"blank\")(e,t);c.error=x(\"error\");c.success=x(\"success\");c.loading=x(\"loading\");c.custom=x(\"custom\");c.dismiss=e=>{u({type:3,toastId:e})};c.remove=e=>u({type:4,toastId:e});c.promise=(e,t,r)=>{let s=c.loading(t.loading,{...r,...r==null?void 0:r.loading});return typeof e==\"function\"&&(e=e()),e.then(a=>{let o=t.success?f(t.success,a):void 0;return o?c.success(o,{id:s,...r,...r==null?void 0:r.success}):c.dismiss(s),a}).catch(a=>{let o=t.error?f(t.error,a):void 0;o?c.error(o,{id:s,...r,...r==null?void 0:r.error}):c.dismiss(s)}),e};var K=(e,t)=>{u({type:1,toast:{id:e,height:t}})},X=()=>{u({type:5,time:Date.now()})},b=new Map,Z=1e3,ee=(e,t=Z)=>{if(b.has(e))return;let r=setTimeout(()=>{b.delete(e),u({type:4,toastId:e})},t);b.set(e,r)},O=e=>{let{toasts:t,pausedAt:r}=D(e);(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{if(r)return;let o=Date.now(),n=t.map(i=>{if(i.duration===1/0)return;let p=(i.duration||0)+i.pauseDuration-(o-i.createdAt);if(p<0){i.visible&&c.dismiss(i.id);return}return setTimeout(()=>c.dismiss(i.id),p)});return()=>{n.forEach(i=>i&&clearTimeout(i))}},[t,r]);let s=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(()=>{r&&u({type:6,time:Date.now()})},[r]),a=(0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((o,n)=>{let{reverseOrder:i=!1,gutter:p=8,defaultPosition:d}=n||{},h=t.filter(m=>(m.position||d)===(o.position||d)&&m.height),v=h.findIndex(m=>m.id===o.id),S=h.filter((m,E)=>E<v&&m.visible).length;return h.filter(m=>m.visible).slice(...i?[S+1]:[0,S]).reduce((m,E)=>m+(E.height||0)+p,0)},[t]);return (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{t.forEach(o=>{if(o.dismissed)ee(o.id,o.removeDelay);else{let n=b.get(o.id);n&&(clearTimeout(n),b.delete(o.id))}})},[t]),{toasts:t,handlers:{updateHeight:K,startPause:X,endPause:s,calculateOffset:a}}};var oe=(0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)`\nfrom {\n transform: scale(0) rotate(45deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(45deg);\n opacity: 1;\n}`,re=(0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)`\nfrom {\n transform: scale(0);\n opacity: 0;\n}\nto {\n transform: scale(1);\n opacity: 1;\n}`,se=(0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)`\nfrom {\n transform: scale(0) rotate(90deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(90deg);\n\topacity: 1;\n}`,k=(0,goober__WEBPACK_IMPORTED_MODULE_1__.styled)(\"div\")`\n width: 20px;\n opacity: 0;\n height: 20px;\n border-radius: 10px;\n background: ${e=>e.primary||\"#ff4b4b\"};\n position: relative;\n transform: rotate(45deg);\n\n animation: ${oe} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n animation-delay: 100ms;\n\n &:after,\n &:before {\n content: '';\n animation: ${re} 0.15s ease-out forwards;\n animation-delay: 150ms;\n position: absolute;\n border-radius: 3px;\n opacity: 0;\n background: ${e=>e.secondary||\"#fff\"};\n bottom: 9px;\n left: 4px;\n height: 2px;\n width: 12px;\n }\n\n &:before {\n animation: ${se} 0.15s ease-out forwards;\n animation-delay: 180ms;\n transform: rotate(90deg);\n }\n`;var ne=(0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`,V=(0,goober__WEBPACK_IMPORTED_MODULE_1__.styled)(\"div\")`\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n border: 2px solid;\n border-radius: 100%;\n border-color: ${e=>e.secondary||\"#e0e0e0\"};\n border-right-color: ${e=>e.primary||\"#616161\"};\n animation: ${ne} 1s linear infinite;\n`;var pe=(0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)`\nfrom {\n transform: scale(0) rotate(45deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(45deg);\n\topacity: 1;\n}`,de=(0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)`\n0% {\n\theight: 0;\n\twidth: 0;\n\topacity: 0;\n}\n40% {\n height: 0;\n\twidth: 6px;\n\topacity: 1;\n}\n100% {\n opacity: 1;\n height: 10px;\n}`,_=(0,goober__WEBPACK_IMPORTED_MODULE_1__.styled)(\"div\")`\n width: 20px;\n opacity: 0;\n height: 20px;\n border-radius: 10px;\n background: ${e=>e.primary||\"#61d345\"};\n position: relative;\n transform: rotate(45deg);\n\n animation: ${pe} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n animation-delay: 100ms;\n &:after {\n content: '';\n box-sizing: border-box;\n animation: ${de} 0.2s ease-out forwards;\n opacity: 0;\n animation-delay: 200ms;\n position: absolute;\n border-right: 2px solid;\n border-bottom: 2px solid;\n border-color: ${e=>e.secondary||\"#fff\"};\n bottom: 6px;\n left: 6px;\n height: 10px;\n width: 6px;\n }\n`;var ue=(0,goober__WEBPACK_IMPORTED_MODULE_1__.styled)(\"div\")`\n position: absolute;\n`,le=(0,goober__WEBPACK_IMPORTED_MODULE_1__.styled)(\"div\")`\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: 20px;\n min-height: 20px;\n`,fe=(0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)`\nfrom {\n transform: scale(0.6);\n opacity: 0.4;\n}\nto {\n transform: scale(1);\n opacity: 1;\n}`,Te=(0,goober__WEBPACK_IMPORTED_MODULE_1__.styled)(\"div\")`\n position: relative;\n transform: scale(0.6);\n opacity: 0.4;\n min-width: 20px;\n animation: ${fe} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n`,M=({toast:e})=>{let{icon:t,type:r,iconTheme:s}=e;return t!==void 0?typeof t==\"string\"?react__WEBPACK_IMPORTED_MODULE_0__.createElement(Te,null,t):t:r===\"blank\"?null:react__WEBPACK_IMPORTED_MODULE_0__.createElement(le,null,react__WEBPACK_IMPORTED_MODULE_0__.createElement(V,{...s}),r!==\"loading\"&&react__WEBPACK_IMPORTED_MODULE_0__.createElement(ue,null,r===\"error\"?react__WEBPACK_IMPORTED_MODULE_0__.createElement(k,{...s}):react__WEBPACK_IMPORTED_MODULE_0__.createElement(_,{...s})))};var ye=e=>`\n0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;}\n100% {transform: translate3d(0,0,0) scale(1); opacity:1;}\n`,ge=e=>`\n0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}\n100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;}\n`,he=\"0%{opacity:0;} 100%{opacity:1;}\",xe=\"0%{opacity:1;} 100%{opacity:0;}\",be=(0,goober__WEBPACK_IMPORTED_MODULE_1__.styled)(\"div\")`\n display: flex;\n align-items: center;\n background: #fff;\n color: #363636;\n line-height: 1.3;\n will-change: transform;\n box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1), 0 3px 3px rgba(0, 0, 0, 0.05);\n max-width: 350px;\n pointer-events: auto;\n padding: 8px 10px;\n border-radius: 8px;\n`,Se=(0,goober__WEBPACK_IMPORTED_MODULE_1__.styled)(\"div\")`\n display: flex;\n justify-content: center;\n margin: 4px 10px;\n color: inherit;\n flex: 1 1 auto;\n white-space: pre-line;\n`,Ae=(e,t)=>{let s=e.includes(\"top\")?1:-1,[a,o]=A()?[he,xe]:[ye(s),ge(s)];return{animation:t?`${(0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)(a)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${(0,goober__WEBPACK_IMPORTED_MODULE_1__.keyframes)(o)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},C=react__WEBPACK_IMPORTED_MODULE_0__.memo(({toast:e,position:t,style:r,children:s})=>{let a=e.height?Ae(e.position||t||\"top-center\",e.visible):{opacity:0},o=react__WEBPACK_IMPORTED_MODULE_0__.createElement(M,{toast:e}),n=react__WEBPACK_IMPORTED_MODULE_0__.createElement(Se,{...e.ariaProps},f(e.message,e));return react__WEBPACK_IMPORTED_MODULE_0__.createElement(be,{className:e.className,style:{...a,...r,...e.style}},typeof s==\"function\"?s({icon:o,message:n}):react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment,null,o,n))});(0,goober__WEBPACK_IMPORTED_MODULE_1__.setup)(react__WEBPACK_IMPORTED_MODULE_0__.createElement);var ve=({id:e,className:t,style:r,onHeightUpdate:s,children:a})=>{let o=react__WEBPACK_IMPORTED_MODULE_0__.useCallback(n=>{if(n){let i=()=>{let p=n.getBoundingClientRect().height;s(e,p)};i(),new MutationObserver(i).observe(n,{subtree:!0,childList:!0,characterData:!0})}},[e,s]);return react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\",{ref:o,className:t,style:r},a)},Ee=(e,t)=>{let r=e.includes(\"top\"),s=r?{top:0}:{bottom:0},a=e.includes(\"center\")?{justifyContent:\"center\"}:e.includes(\"right\")?{justifyContent:\"flex-end\"}:{};return{left:0,right:0,display:\"flex\",position:\"absolute\",transition:A()?void 0:\"all 230ms cubic-bezier(.21,1.02,.73,1)\",transform:`translateY(${t*(r?1:-1)}px)`,...s,...a}},De=(0,goober__WEBPACK_IMPORTED_MODULE_1__.css)`\n z-index: 9999;\n > * {\n pointer-events: auto;\n }\n`,R=16,Oe=({reverseOrder:e,position:t=\"top-center\",toastOptions:r,gutter:s,children:a,containerStyle:o,containerClassName:n})=>{let{toasts:i,handlers:p}=O(r);return react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\",{id:\"_rht_toaster\",style:{position:\"fixed\",zIndex:9999,top:R,left:R,right:R,bottom:R,pointerEvents:\"none\",...o},className:n,onMouseEnter:p.startPause,onMouseLeave:p.endPause},i.map(d=>{let h=d.position||t,v=p.calculateOffset(d,{reverseOrder:e,gutter:s,defaultPosition:t}),S=Ee(h,v);return react__WEBPACK_IMPORTED_MODULE_0__.createElement(ve,{id:d.id,key:d.id,onHeightUpdate:p.updateHeight,className:d.visible?De:\"\",style:S},d.type===\"custom\"?f(d.message,d):a?a(d):react__WEBPACK_IMPORTED_MODULE_0__.createElement(C,{toast:d,position:h}))}))};var Vt=c;\n//# sourceMappingURL=index.mjs.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtaG90LXRvYXN0L2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBLG1EQUFtRCxZQUFZLFFBQVEsMkJBQTJCLFlBQVksTUFBTSxXQUFXLGtDQUFrQyxxREFBcUQsZ0JBQWdCLFVBQVUsSUFBZ0UsU0FBUyxjQUFjLGVBQWUsY0FBYyw4Q0FBOEMsY0FBYywrQ0FBK0MsZ0JBQWdCLEtBQUssV0FBVyxRQUFRLEdBQUcsWUFBWSwrQ0FBK0MsRUFBRSxXQUFXLFVBQVUsR0FBRyxPQUFPLGtEQUFrRCw2QkFBNkIsS0FBSyxrQ0FBa0MsZUFBZSxFQUFFLGtEQUFrRCxjQUFjLHNCQUFzQixvQ0FBb0MsT0FBTyw4Q0FBOEMscUNBQXFDLEtBQUssU0FBUywwQkFBMEIsT0FBTyx1QkFBdUIsS0FBSyxFQUFFLElBQUksdURBQXVELFFBQVEsSUFBSSxTQUFTLCtDQUFDLE1BQU0sNkNBQUMsSUFBSSxnREFBQyx5Q0FBeUMsbUJBQW1CLG9CQUFvQixNQUFNLHVCQUF1QixVQUFVLE9BQU8seU9BQXlPLDhEQUE4RCxFQUFFLE9BQU8sZ0JBQWdCLHlCQUF5QiwrREFBK0QsbUNBQW1DLDhEQUE4RCxlQUFlLGVBQWUsVUFBVSxlQUFlLE9BQU8sMEJBQTBCLG1CQUFtQix1QkFBdUIsdUJBQXVCLHFCQUFxQixjQUFjLEdBQUcsaUJBQWlCLEdBQUcsZUFBZSxpQkFBaUIsRUFBRSxvQkFBb0IsMkJBQTJCLGlDQUFpQyxFQUFFLGdEQUFnRCxzQ0FBc0Msc0JBQXNCLHNDQUFzQyxpQkFBaUIsWUFBWSxrQ0FBa0MsYUFBYSxvQ0FBb0MsZUFBZSxLQUF3RCxjQUFjLEdBQUcsY0FBYyxlQUFlLEVBQUUsUUFBUSxHQUFHLHVCQUF1QixFQUFFLDhCQUE4QixtQkFBbUIsc0JBQXNCLGVBQWUsaUJBQWlCLEVBQUUsSUFBSSxXQUFXLE9BQU8sSUFBSSxvQkFBb0IsTUFBTSxnREFBQyxNQUFNLFlBQVksNkJBQTZCLDJCQUEyQixz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T0FBTyxnREFBZSxLQUFLLDZCQUE2QixzQkFBc0IseUJBQXlCLGlCQUFpQixFQUFFLGdEQUFlLENBQUMsMkNBQVUsWUFBWSxFQUFvRSw2Q0FBRSxDQUFDLGdEQUFlLEVBQUUsU0FBUyxxREFBcUQsSUFBSSxNQUFNLDhDQUFhLEtBQUssTUFBTSxXQUFXLHVDQUF1QyxRQUFRLHVDQUF1Qyx5Q0FBeUMsR0FBRyxRQUFRLE9BQU8sZ0RBQWUsUUFBUSwwQkFBMEIsSUFBSSxZQUFZLDZCQUE2QixNQUFNLEVBQUUsU0FBUyx5QkFBeUIsd0JBQXdCLHNCQUFzQiwwQkFBMEIsSUFBSSxPQUFPLHlJQUF5SSxXQUFXLGdCQUFnQixJQUFJLDJDQUFFO0FBQ2p4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksZ0hBQWdILElBQUksSUFBSSxvQkFBb0IsTUFBTSxPQUFPLGdEQUFlLFFBQVEseUJBQXlCLHFGQUFxRiwrREFBK0QsV0FBVywyQ0FBMkMsMENBQTBDLFlBQVksT0FBTyxnREFBZSxLQUFLLGlGQUFpRix5Q0FBeUMsZ0RBQWUsSUFBSSxtQkFBbUIsR0FBRyxJQUFJLFNBQThMO0FBQ3IxQiIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9ub2RlX21vZHVsZXMvcmVhY3QtaG90LXRvYXN0L2Rpc3QvaW5kZXgubWpzPzFmNWMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG52YXIgVz1lPT50eXBlb2YgZT09XCJmdW5jdGlvblwiLGY9KGUsdCk9PlcoZSk/ZSh0KTplO3ZhciBGPSgoKT0+e2xldCBlPTA7cmV0dXJuKCk9PigrK2UpLnRvU3RyaW5nKCl9KSgpLEE9KCgpPT57bGV0IGU7cmV0dXJuKCk9PntpZihlPT09dm9pZCAwJiZ0eXBlb2Ygd2luZG93PFwidVwiKXtsZXQgdD1tYXRjaE1lZGlhKFwiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSlcIik7ZT0hdHx8dC5tYXRjaGVzfXJldHVybiBlfX0pKCk7aW1wb3J0e3VzZUVmZmVjdCBhcyBILHVzZVN0YXRlIGFzIGosdXNlUmVmIGFzIFF9ZnJvbVwicmVhY3RcIjt2YXIgWT0yMDt2YXIgVT0oZSx0KT0+e3N3aXRjaCh0LnR5cGUpe2Nhc2UgMDpyZXR1cm57Li4uZSx0b2FzdHM6W3QudG9hc3QsLi4uZS50b2FzdHNdLnNsaWNlKDAsWSl9O2Nhc2UgMTpyZXR1cm57Li4uZSx0b2FzdHM6ZS50b2FzdHMubWFwKG89Pm8uaWQ9PT10LnRvYXN0LmlkP3suLi5vLC4uLnQudG9hc3R9Om8pfTtjYXNlIDI6bGV0e3RvYXN0OnJ9PXQ7cmV0dXJuIFUoZSx7dHlwZTplLnRvYXN0cy5maW5kKG89Pm8uaWQ9PT1yLmlkKT8xOjAsdG9hc3Q6cn0pO2Nhc2UgMzpsZXR7dG9hc3RJZDpzfT10O3JldHVybnsuLi5lLHRvYXN0czplLnRvYXN0cy5tYXAobz0+by5pZD09PXN8fHM9PT12b2lkIDA/ey4uLm8sZGlzbWlzc2VkOiEwLHZpc2libGU6ITF9Om8pfTtjYXNlIDQ6cmV0dXJuIHQudG9hc3RJZD09PXZvaWQgMD97Li4uZSx0b2FzdHM6W119OnsuLi5lLHRvYXN0czplLnRvYXN0cy5maWx0ZXIobz0+by5pZCE9PXQudG9hc3RJZCl9O2Nhc2UgNTpyZXR1cm57Li4uZSxwYXVzZWRBdDp0LnRpbWV9O2Nhc2UgNjpsZXQgYT10LnRpbWUtKGUucGF1c2VkQXR8fDApO3JldHVybnsuLi5lLHBhdXNlZEF0OnZvaWQgMCx0b2FzdHM6ZS50b2FzdHMubWFwKG89Pih7Li4ubyxwYXVzZUR1cmF0aW9uOm8ucGF1c2VEdXJhdGlvbithfSkpfX19LFA9W10seT17dG9hc3RzOltdLHBhdXNlZEF0OnZvaWQgMH0sdT1lPT57eT1VKHksZSksUC5mb3JFYWNoKHQ9Pnt0KHkpfSl9LHE9e2JsYW5rOjRlMyxlcnJvcjo0ZTMsc3VjY2VzczoyZTMsbG9hZGluZzoxLzAsY3VzdG9tOjRlM30sRD0oZT17fSk9PntsZXRbdCxyXT1qKHkpLHM9USh5KTtIKCgpPT4ocy5jdXJyZW50IT09eSYmcih5KSxQLnB1c2gociksKCk9PntsZXQgbz1QLmluZGV4T2Yocik7bz4tMSYmUC5zcGxpY2UobywxKX0pLFtdKTtsZXQgYT10LnRvYXN0cy5tYXAobz0+e3ZhciBuLGkscDtyZXR1cm57Li4uZSwuLi5lW28udHlwZV0sLi4ubyxyZW1vdmVEZWxheTpvLnJlbW92ZURlbGF5fHwoKG49ZVtvLnR5cGVdKT09bnVsbD92b2lkIDA6bi5yZW1vdmVEZWxheSl8fChlPT1udWxsP3ZvaWQgMDplLnJlbW92ZURlbGF5KSxkdXJhdGlvbjpvLmR1cmF0aW9ufHwoKGk9ZVtvLnR5cGVdKT09bnVsbD92b2lkIDA6aS5kdXJhdGlvbil8fChlPT1udWxsP3ZvaWQgMDplLmR1cmF0aW9uKXx8cVtvLnR5cGVdLHN0eWxlOnsuLi5lLnN0eWxlLC4uLihwPWVbby50eXBlXSk9PW51bGw/dm9pZCAwOnAuc3R5bGUsLi4uby5zdHlsZX19fSk7cmV0dXJuey4uLnQsdG9hc3RzOmF9fTt2YXIgSj0oZSx0PVwiYmxhbmtcIixyKT0+KHtjcmVhdGVkQXQ6RGF0ZS5ub3coKSx2aXNpYmxlOiEwLGRpc21pc3NlZDohMSx0eXBlOnQsYXJpYVByb3BzOntyb2xlOlwic3RhdHVzXCIsXCJhcmlhLWxpdmVcIjpcInBvbGl0ZVwifSxtZXNzYWdlOmUscGF1c2VEdXJhdGlvbjowLC4uLnIsaWQ6KHI9PW51bGw/dm9pZCAwOnIuaWQpfHxGKCl9KSx4PWU9Pih0LHIpPT57bGV0IHM9Sih0LGUscik7cmV0dXJuIHUoe3R5cGU6Mix0b2FzdDpzfSkscy5pZH0sYz0oZSx0KT0+eChcImJsYW5rXCIpKGUsdCk7Yy5lcnJvcj14KFwiZXJyb3JcIik7Yy5zdWNjZXNzPXgoXCJzdWNjZXNzXCIpO2MubG9hZGluZz14KFwibG9hZGluZ1wiKTtjLmN1c3RvbT14KFwiY3VzdG9tXCIpO2MuZGlzbWlzcz1lPT57dSh7dHlwZTozLHRvYXN0SWQ6ZX0pfTtjLnJlbW92ZT1lPT51KHt0eXBlOjQsdG9hc3RJZDplfSk7Yy5wcm9taXNlPShlLHQscik9PntsZXQgcz1jLmxvYWRpbmcodC5sb2FkaW5nLHsuLi5yLC4uLnI9PW51bGw/dm9pZCAwOnIubG9hZGluZ30pO3JldHVybiB0eXBlb2YgZT09XCJmdW5jdGlvblwiJiYoZT1lKCkpLGUudGhlbihhPT57bGV0IG89dC5zdWNjZXNzP2YodC5zdWNjZXNzLGEpOnZvaWQgMDtyZXR1cm4gbz9jLnN1Y2Nlc3Mobyx7aWQ6cywuLi5yLC4uLnI9PW51bGw/dm9pZCAwOnIuc3VjY2Vzc30pOmMuZGlzbWlzcyhzKSxhfSkuY2F0Y2goYT0+e2xldCBvPXQuZXJyb3I/Zih0LmVycm9yLGEpOnZvaWQgMDtvP2MuZXJyb3Iobyx7aWQ6cywuLi5yLC4uLnI9PW51bGw/dm9pZCAwOnIuZXJyb3J9KTpjLmRpc21pc3Mocyl9KSxlfTtpbXBvcnR7dXNlRWZmZWN0IGFzICQsdXNlQ2FsbGJhY2sgYXMgTH1mcm9tXCJyZWFjdFwiO3ZhciBLPShlLHQpPT57dSh7dHlwZToxLHRvYXN0OntpZDplLGhlaWdodDp0fX0pfSxYPSgpPT57dSh7dHlwZTo1LHRpbWU6RGF0ZS5ub3coKX0pfSxiPW5ldyBNYXAsWj0xZTMsZWU9KGUsdD1aKT0+e2lmKGIuaGFzKGUpKXJldHVybjtsZXQgcj1zZXRUaW1lb3V0KCgpPT57Yi5kZWxldGUoZSksdSh7dHlwZTo0LHRvYXN0SWQ6ZX0pfSx0KTtiLnNldChlLHIpfSxPPWU9PntsZXR7dG9hc3RzOnQscGF1c2VkQXQ6cn09RChlKTskKCgpPT57aWYocilyZXR1cm47bGV0IG89RGF0ZS5ub3coKSxuPXQubWFwKGk9PntpZihpLmR1cmF0aW9uPT09MS8wKXJldHVybjtsZXQgcD0oaS5kdXJhdGlvbnx8MCkraS5wYXVzZUR1cmF0aW9uLShvLWkuY3JlYXRlZEF0KTtpZihwPDApe2kudmlzaWJsZSYmYy5kaXNtaXNzKGkuaWQpO3JldHVybn1yZXR1cm4gc2V0VGltZW91dCgoKT0+Yy5kaXNtaXNzKGkuaWQpLHApfSk7cmV0dXJuKCk9PntuLmZvckVhY2goaT0+aSYmY2xlYXJUaW1lb3V0KGkpKX19LFt0LHJdKTtsZXQgcz1MKCgpPT57ciYmdSh7dHlwZTo2LHRpbWU6RGF0ZS5ub3coKX0pfSxbcl0pLGE9TCgobyxuKT0+e2xldHtyZXZlcnNlT3JkZXI6aT0hMSxndXR0ZXI6cD04LGRlZmF1bHRQb3NpdGlvbjpkfT1ufHx7fSxoPXQuZmlsdGVyKG09PihtLnBvc2l0aW9ufHxkKT09PShvLnBvc2l0aW9ufHxkKSYmbS5oZWlnaHQpLHY9aC5maW5kSW5kZXgobT0+bS5pZD09PW8uaWQpLFM9aC5maWx0ZXIoKG0sRSk9PkU8diYmbS52aXNpYmxlKS5sZW5ndGg7cmV0dXJuIGguZmlsdGVyKG09Pm0udmlzaWJsZSkuc2xpY2UoLi4uaT9bUysxXTpbMCxTXSkucmVkdWNlKChtLEUpPT5tKyhFLmhlaWdodHx8MCkrcCwwKX0sW3RdKTtyZXR1cm4gJCgoKT0+e3QuZm9yRWFjaChvPT57aWYoby5kaXNtaXNzZWQpZWUoby5pZCxvLnJlbW92ZURlbGF5KTtlbHNle2xldCBuPWIuZ2V0KG8uaWQpO24mJihjbGVhclRpbWVvdXQobiksYi5kZWxldGUoby5pZCkpfX0pfSxbdF0pLHt0b2FzdHM6dCxoYW5kbGVyczp7dXBkYXRlSGVpZ2h0Okssc3RhcnRQYXVzZTpYLGVuZFBhdXNlOnMsY2FsY3VsYXRlT2Zmc2V0OmF9fX07aW1wb3J0KmFzIGwgZnJvbVwicmVhY3RcIjtpbXBvcnR7c3R5bGVkIGFzIEIsa2V5ZnJhbWVzIGFzIHp9ZnJvbVwiZ29vYmVyXCI7aW1wb3J0KmFzIGcgZnJvbVwicmVhY3RcIjtpbXBvcnR7c3R5bGVkIGFzIHcsa2V5ZnJhbWVzIGFzIG1lfWZyb21cImdvb2JlclwiO2ltcG9ydHtzdHlsZWQgYXMgdGUsa2V5ZnJhbWVzIGFzIEl9ZnJvbVwiZ29vYmVyXCI7dmFyIG9lPUlgXG5mcm9tIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKSByb3RhdGUoNDVkZWcpO1xuXHRvcGFjaXR5OiAwO1xufVxudG8ge1xuIHRyYW5zZm9ybTogc2NhbGUoMSkgcm90YXRlKDQ1ZGVnKTtcbiAgb3BhY2l0eTogMTtcbn1gLHJlPUlgXG5mcm9tIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgb3BhY2l0eTogMDtcbn1cbnRvIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgb3BhY2l0eTogMTtcbn1gLHNlPUlgXG5mcm9tIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKSByb3RhdGUoOTBkZWcpO1xuXHRvcGFjaXR5OiAwO1xufVxudG8ge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpIHJvdGF0ZSg5MGRlZyk7XG5cdG9wYWNpdHk6IDE7XG59YCxrPXRlKFwiZGl2XCIpYFxuICB3aWR0aDogMjBweDtcbiAgb3BhY2l0eTogMDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAke2U9PmUucHJpbWFyeXx8XCIjZmY0YjRiXCJ9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblxuICBhbmltYXRpb246ICR7b2V9IDAuM3MgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpXG4gICAgZm9yd2FyZHM7XG4gIGFuaW1hdGlvbi1kZWxheTogMTAwbXM7XG5cbiAgJjphZnRlcixcbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGFuaW1hdGlvbjogJHtyZX0gMC4xNXMgZWFzZS1vdXQgZm9yd2FyZHM7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAxNTBtcztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgYmFja2dyb3VuZDogJHtlPT5lLnNlY29uZGFyeXx8XCIjZmZmXCJ9O1xuICAgIGJvdHRvbTogOXB4O1xuICAgIGxlZnQ6IDRweDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICB3aWR0aDogMTJweDtcbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICBhbmltYXRpb246ICR7c2V9IDAuMTVzIGVhc2Utb3V0IGZvcndhcmRzO1xuICAgIGFuaW1hdGlvbi1kZWxheTogMTgwbXM7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICB9XG5gO2ltcG9ydHtzdHlsZWQgYXMgYWUsa2V5ZnJhbWVzIGFzIGllfWZyb21cImdvb2JlclwiO3ZhciBuZT1pZWBcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbmAsVj1hZShcImRpdlwiKWBcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiAycHggc29saWQ7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGJvcmRlci1jb2xvcjogJHtlPT5lLnNlY29uZGFyeXx8XCIjZTBlMGUwXCJ9O1xuICBib3JkZXItcmlnaHQtY29sb3I6ICR7ZT0+ZS5wcmltYXJ5fHxcIiM2MTYxNjFcIn07XG4gIGFuaW1hdGlvbjogJHtuZX0gMXMgbGluZWFyIGluZmluaXRlO1xuYDtpbXBvcnR7c3R5bGVkIGFzIGNlLGtleWZyYW1lcyBhcyBOfWZyb21cImdvb2JlclwiO3ZhciBwZT1OYFxuZnJvbSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCkgcm90YXRlKDQ1ZGVnKTtcblx0b3BhY2l0eTogMDtcbn1cbnRvIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKSByb3RhdGUoNDVkZWcpO1xuXHRvcGFjaXR5OiAxO1xufWAsZGU9TmBcbjAlIHtcblx0aGVpZ2h0OiAwO1xuXHR3aWR0aDogMDtcblx0b3BhY2l0eTogMDtcbn1cbjQwJSB7XG4gIGhlaWdodDogMDtcblx0d2lkdGg6IDZweDtcblx0b3BhY2l0eTogMTtcbn1cbjEwMCUge1xuICBvcGFjaXR5OiAxO1xuICBoZWlnaHQ6IDEwcHg7XG59YCxfPWNlKFwiZGl2XCIpYFxuICB3aWR0aDogMjBweDtcbiAgb3BhY2l0eTogMDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAke2U9PmUucHJpbWFyeXx8XCIjNjFkMzQ1XCJ9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblxuICBhbmltYXRpb246ICR7cGV9IDAuM3MgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpXG4gICAgZm9yd2FyZHM7XG4gIGFuaW1hdGlvbi1kZWxheTogMTAwbXM7XG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYW5pbWF0aW9uOiAke2RlfSAwLjJzIGVhc2Utb3V0IGZvcndhcmRzO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAyMDBtcztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJHtlPT5lLnNlY29uZGFyeXx8XCIjZmZmXCJ9O1xuICAgIGJvdHRvbTogNnB4O1xuICAgIGxlZnQ6IDZweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgd2lkdGg6IDZweDtcbiAgfVxuYDt2YXIgdWU9dyhcImRpdlwiKWBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuYCxsZT13KFwiZGl2XCIpYFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4td2lkdGg6IDIwcHg7XG4gIG1pbi1oZWlnaHQ6IDIwcHg7XG5gLGZlPW1lYFxuZnJvbSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgb3BhY2l0eTogMC40O1xufVxudG8ge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxO1xufWAsVGU9dyhcImRpdlwiKWBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIG9wYWNpdHk6IDAuNDtcbiAgbWluLXdpZHRoOiAyMHB4O1xuICBhbmltYXRpb246ICR7ZmV9IDAuM3MgMC4xMnMgY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpXG4gICAgZm9yd2FyZHM7XG5gLE09KHt0b2FzdDplfSk9PntsZXR7aWNvbjp0LHR5cGU6cixpY29uVGhlbWU6c309ZTtyZXR1cm4gdCE9PXZvaWQgMD90eXBlb2YgdD09XCJzdHJpbmdcIj9nLmNyZWF0ZUVsZW1lbnQoVGUsbnVsbCx0KTp0OnI9PT1cImJsYW5rXCI/bnVsbDpnLmNyZWF0ZUVsZW1lbnQobGUsbnVsbCxnLmNyZWF0ZUVsZW1lbnQoVix7Li4uc30pLHIhPT1cImxvYWRpbmdcIiYmZy5jcmVhdGVFbGVtZW50KHVlLG51bGwscj09PVwiZXJyb3JcIj9nLmNyZWF0ZUVsZW1lbnQoayx7Li4uc30pOmcuY3JlYXRlRWxlbWVudChfLHsuLi5zfSkpKX07dmFyIHllPWU9PmBcbjAlIHt0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsJHtlKi0yMDB9JSwwKSBzY2FsZSguNik7IG9wYWNpdHk6LjU7fVxuMTAwJSB7dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCkgc2NhbGUoMSk7IG9wYWNpdHk6MTt9XG5gLGdlPWU9PmBcbjAlIHt0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwtMXB4KSBzY2FsZSgxKTsgb3BhY2l0eToxO31cbjEwMCUge3RyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwke2UqLTE1MH0lLC0xcHgpIHNjYWxlKC42KTsgb3BhY2l0eTowO31cbmAsaGU9XCIwJXtvcGFjaXR5OjA7fSAxMDAle29wYWNpdHk6MTt9XCIseGU9XCIwJXtvcGFjaXR5OjE7fSAxMDAle29wYWNpdHk6MDt9XCIsYmU9QihcImRpdlwiKWBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICMzNjM2MzY7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIGJveC1zaGFkb3c6IDAgM3B4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgbWF4LXdpZHRoOiAzNTBweDtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG5gLFNlPUIoXCJkaXZcIilgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDRweCAxMHB4O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZmxleDogMSAxIGF1dG87XG4gIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbmAsQWU9KGUsdCk9PntsZXQgcz1lLmluY2x1ZGVzKFwidG9wXCIpPzE6LTEsW2Esb109QSgpP1toZSx4ZV06W3llKHMpLGdlKHMpXTtyZXR1cm57YW5pbWF0aW9uOnQ/YCR7eihhKX0gMC4zNXMgY3ViaWMtYmV6aWVyKC4yMSwxLjAyLC43MywxKSBmb3J3YXJkc2A6YCR7eihvKX0gMC40cyBmb3J3YXJkcyBjdWJpYy1iZXppZXIoLjA2LC43MSwuNTUsMSlgfX0sQz1sLm1lbW8oKHt0b2FzdDplLHBvc2l0aW9uOnQsc3R5bGU6cixjaGlsZHJlbjpzfSk9PntsZXQgYT1lLmhlaWdodD9BZShlLnBvc2l0aW9ufHx0fHxcInRvcC1jZW50ZXJcIixlLnZpc2libGUpOntvcGFjaXR5OjB9LG89bC5jcmVhdGVFbGVtZW50KE0se3RvYXN0OmV9KSxuPWwuY3JlYXRlRWxlbWVudChTZSx7Li4uZS5hcmlhUHJvcHN9LGYoZS5tZXNzYWdlLGUpKTtyZXR1cm4gbC5jcmVhdGVFbGVtZW50KGJlLHtjbGFzc05hbWU6ZS5jbGFzc05hbWUsc3R5bGU6ey4uLmEsLi4uciwuLi5lLnN0eWxlfX0sdHlwZW9mIHM9PVwiZnVuY3Rpb25cIj9zKHtpY29uOm8sbWVzc2FnZTpufSk6bC5jcmVhdGVFbGVtZW50KGwuRnJhZ21lbnQsbnVsbCxvLG4pKX0pO2ltcG9ydHtjc3MgYXMgUGUsc2V0dXAgYXMgUmV9ZnJvbVwiZ29vYmVyXCI7aW1wb3J0KmFzIFQgZnJvbVwicmVhY3RcIjtSZShULmNyZWF0ZUVsZW1lbnQpO3ZhciB2ZT0oe2lkOmUsY2xhc3NOYW1lOnQsc3R5bGU6cixvbkhlaWdodFVwZGF0ZTpzLGNoaWxkcmVuOmF9KT0+e2xldCBvPVQudXNlQ2FsbGJhY2sobj0+e2lmKG4pe2xldCBpPSgpPT57bGV0IHA9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7cyhlLHApfTtpKCksbmV3IE11dGF0aW9uT2JzZXJ2ZXIoaSkub2JzZXJ2ZShuLHtzdWJ0cmVlOiEwLGNoaWxkTGlzdDohMCxjaGFyYWN0ZXJEYXRhOiEwfSl9fSxbZSxzXSk7cmV0dXJuIFQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtyZWY6byxjbGFzc05hbWU6dCxzdHlsZTpyfSxhKX0sRWU9KGUsdCk9PntsZXQgcj1lLmluY2x1ZGVzKFwidG9wXCIpLHM9cj97dG9wOjB9Ontib3R0b206MH0sYT1lLmluY2x1ZGVzKFwiY2VudGVyXCIpP3tqdXN0aWZ5Q29udGVudDpcImNlbnRlclwifTplLmluY2x1ZGVzKFwicmlnaHRcIik/e2p1c3RpZnlDb250ZW50OlwiZmxleC1lbmRcIn06e307cmV0dXJue2xlZnQ6MCxyaWdodDowLGRpc3BsYXk6XCJmbGV4XCIscG9zaXRpb246XCJhYnNvbHV0ZVwiLHRyYW5zaXRpb246QSgpP3ZvaWQgMDpcImFsbCAyMzBtcyBjdWJpYy1iZXppZXIoLjIxLDEuMDIsLjczLDEpXCIsdHJhbnNmb3JtOmB0cmFuc2xhdGVZKCR7dCoocj8xOi0xKX1weClgLC4uLnMsLi4uYX19LERlPVBlYFxuICB6LWluZGV4OiA5OTk5O1xuICA+ICoge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICB9XG5gLFI9MTYsT2U9KHtyZXZlcnNlT3JkZXI6ZSxwb3NpdGlvbjp0PVwidG9wLWNlbnRlclwiLHRvYXN0T3B0aW9uczpyLGd1dHRlcjpzLGNoaWxkcmVuOmEsY29udGFpbmVyU3R5bGU6byxjb250YWluZXJDbGFzc05hbWU6bn0pPT57bGV0e3RvYXN0czppLGhhbmRsZXJzOnB9PU8ocik7cmV0dXJuIFQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtpZDpcIl9yaHRfdG9hc3RlclwiLHN0eWxlOntwb3NpdGlvbjpcImZpeGVkXCIsekluZGV4Ojk5OTksdG9wOlIsbGVmdDpSLHJpZ2h0OlIsYm90dG9tOlIscG9pbnRlckV2ZW50czpcIm5vbmVcIiwuLi5vfSxjbGFzc05hbWU6bixvbk1vdXNlRW50ZXI6cC5zdGFydFBhdXNlLG9uTW91c2VMZWF2ZTpwLmVuZFBhdXNlfSxpLm1hcChkPT57bGV0IGg9ZC5wb3NpdGlvbnx8dCx2PXAuY2FsY3VsYXRlT2Zmc2V0KGQse3JldmVyc2VPcmRlcjplLGd1dHRlcjpzLGRlZmF1bHRQb3NpdGlvbjp0fSksUz1FZShoLHYpO3JldHVybiBULmNyZWF0ZUVsZW1lbnQodmUse2lkOmQuaWQsa2V5OmQuaWQsb25IZWlnaHRVcGRhdGU6cC51cGRhdGVIZWlnaHQsY2xhc3NOYW1lOmQudmlzaWJsZT9EZTpcIlwiLHN0eWxlOlN9LGQudHlwZT09PVwiY3VzdG9tXCI/ZihkLm1lc3NhZ2UsZCk6YT9hKGQpOlQuY3JlYXRlRWxlbWVudChDLHt0b2FzdDpkLHBvc2l0aW9uOmh9KSl9KSl9O3ZhciBWdD1jO2V4cG9ydHtfIGFzIENoZWNrbWFya0ljb24sayBhcyBFcnJvckljb24sViBhcyBMb2FkZXJJY29uLEMgYXMgVG9hc3RCYXIsTSBhcyBUb2FzdEljb24sT2UgYXMgVG9hc3RlcixWdCBhcyBkZWZhdWx0LGYgYXMgcmVzb2x2ZVZhbHVlLGMgYXMgdG9hc3QsTyBhcyB1c2VUb2FzdGVyLEQgYXMgdXNlVG9hc3RlclN0b3JlfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-hot-toast/dist/index.mjs\n");
/***/ }),
/***/ "./node_modules/whats-new-rss/dist/react/useWhatsNewRSS.js":
/*!*****************************************************************!*\
!*** ./node_modules/whats-new-rss/dist/react/useWhatsNewRSS.js ***!
\*****************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * === Whats New RSS ===\n *\n * Version: 1.0.6\n * Generated on: 25th June, 2024\n * Documentation: https://github.com/brainstormforce/whats-new-rss/blob/master/README.md\n */\n\n\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar WhatsNewRSSDefaultArgs = {\n rssFeedURL: '',\n selector: '',\n loaderIcon: \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" viewBox=\\\"0 0 100 100\\\" preserveAspectRatio=\\\"xMidYMid\\\">\\n\\t<circle cx=\\\"50\\\" cy=\\\"50\\\" fill=\\\"none\\\" stroke=\\\"#9f9f9f\\\" stroke-width=\\\"10\\\" r=\\\"35\\\" stroke-dasharray=\\\"164.93361431346415 56.97787143782138\\\">\\n\\t\\t<animateTransform attributeName=\\\"transform\\\" type=\\\"rotate\\\" repeatCount=\\\"indefinite\\\" dur=\\\"1s\\\" values=\\\"0 50 50;360 50 50\\\" keyTimes=\\\"0;1\\\"></animateTransform>\\n\\t</circle>\\n\\t</svg>\",\n viewAll: {\n link: '',\n label: 'View All',\n },\n triggerButton: {\n icon: \"<svg width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 20 20\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M8.61703 13.1998C8.04294 13.1503 7.46192 13.125 6.875 13.125H6.25C4.17893 13.125 2.5 11.4461 2.5 9.375C2.5 7.30393 4.17893 5.625 6.25 5.625H6.875C7.46192 5.625 8.04294 5.59972 8.61703 5.55018M8.61703 13.1998C8.82774 14.0012 9.1031 14.7764 9.43719 15.5195C9.64341 15.9782 9.48685 16.5273 9.05134 16.7787L8.50441 17.0945C8.04492 17.3598 7.45466 17.1921 7.23201 16.7106C6.70983 15.5811 6.30451 14.3866 6.03155 13.1425M8.61703 13.1998C8.29598 11.9787 8.125 10.6968 8.125 9.375C8.125 8.05316 8.29598 6.77125 8.61703 5.55018M8.61703 13.1998C11.25 13.427 13.737 14.1643 15.9789 15.3124M8.61703 5.55018C11.25 5.323 13.737 4.58569 15.9789 3.43757M15.9789 3.43757C15.8808 3.12162 15.7751 2.80903 15.662 2.5M15.9789 3.43757C16.4247 4.87356 16.7131 6.37885 16.8238 7.93326M15.9789 15.3124C15.8808 15.6284 15.7751 15.941 15.662 16.25M15.9789 15.3124C16.4247 13.8764 16.7131 12.3711 16.8238 10.8167M16.8238 7.93326C17.237 8.2772 17.5 8.79539 17.5 9.375C17.5 9.95461 17.237 10.4728 16.8238 10.8167M16.8238 7.93326C16.8578 8.40942 16.875 8.8902 16.875 9.375C16.875 9.8598 16.8578 10.3406 16.8238 10.8167\\\" stroke=\\\"#94A3B8\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/></svg>\",\n beforeBtn: '',\n afterBtn: '',\n className: '',\n onClick: function () { },\n },\n notification: {\n setLastPostUnixTime: null,\n getLastPostUnixTime: null\n },\n flyout: {\n title: \"What's New?\",\n innerContent: {\n titleLink: true,\n additionalClasses: []\n },\n excerpt: {\n wordLimit: 500,\n moreSymbol: '…',\n readMore: {\n label: 'Read More',\n className: '',\n }\n },\n className: '',\n closeOnEsc: true,\n closeOnOverlayClick: true,\n closeBtnIcon: \"<svg width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M6 18L18 6M6 6L18 18\\\" stroke=\\\"#94A3B8\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/></svg>\",\n formatDate: null,\n onOpen: function () { },\n onClose: function () { },\n onReady: function () { },\n }\n};\nvar WhatsNewRSS = /** @class */ (function () {\n /**\n * Initialize our class.\n *\n * @param {ConstructorArgs} args\n */\n function WhatsNewRSS(args) {\n this.rssFeedURLs = [];\n /**\n * UnixTime stamp of the last seen or read post.\n */\n this.lastPostUnixTime = 0;\n /**\n * UnixTime stamp of the last seen or read post for multi feeds by feed key.\n */\n this.multiLastPostUnixTime = {};\n /**\n * Total number of new notification counts.\n */\n this.notificationsCount = 0;\n /**\n * Notification counts for multi feeds by feed key.\n */\n this.multiNotificationCount = {};\n /**\n * Check if has new feeds.\n */\n this.hasNewFeeds = false;\n /**\n * Check if has new feeds in multi feeds mode.\n */\n this.multiHasNewFeeds = {};\n this.validateArgs(args);\n this.parseDefaults(args);\n this.setElement();\n if (!this.getElement()) {\n console.warn('WNR: Cannot find element with', this.getArgs().selector);\n return;\n }\n this.setID();\n this.setRSSFeedURLs();\n WhatsNewRSSCacheUtils.setInstanceID(this.getID());\n this.RSS_Fetch_Instance = new WhatsNewRSSFetch(this);\n this.RSS_View_Instance = new WhatsNewRSSView(this);\n this.setNotificationsCount();\n this.setTriggers();\n }\n ;\n /**\n * Validate the passed arguments in constructor.\n *\n * @param {ConstructorArgs} args\n */\n WhatsNewRSS.prototype.validateArgs = function (args) {\n [\"rssFeedURL\", \"selector\"].map(function (requiredArg) {\n if (!args[requiredArg]) {\n throw new Error(\"\".concat(requiredArg, \" is a required argument. It cannot be empty or undefined.\"));\n }\n switch (requiredArg) {\n case 'rssFeedURL':\n var arg = args[requiredArg];\n if (Array.isArray(arg)) {\n arg.forEach(function (rssFeedURL) {\n if (!(rssFeedURL === null || rssFeedURL === void 0 ? void 0 : rssFeedURL.key)) {\n throw new Error(\"The parameter \\\"key\\\" is required for \\\"\".concat(requiredArg, \"\\\" parameter in multi-feed mode.\"));\n }\n if (rssFeedURL.key.includes(' ')) {\n throw new Error(\"The parameter \\\"key\\\" cannot have spaces for \\\"\".concat(requiredArg, \"\\\" parameter in multi-feed mode. Ref Key: \\\"\").concat(rssFeedURL.key, \"\\\"\"));\n }\n });\n }\n break;\n default:\n break;\n }\n });\n };\n /**\n * Parse the arguments passed by the user with the defaults.\n *\n * @param {ConstructorArgs} args\n */\n WhatsNewRSS.prototype.parseDefaults = function (args) {\n var _a, _b;\n this.args = __assign(__assign(__assign({}, WhatsNewRSSDefaultArgs), args), { viewAll: __assign(__assign({}, WhatsNewRSSDefaultArgs.viewAll), args === null || args === void 0 ? void 0 : args.viewAll), triggerButton: __assign(__assign({}, WhatsNewRSSDefaultArgs.triggerButton), args === null || args === void 0 ? void 0 : args.triggerButton), flyout: __assign(__assign(__assign({}, WhatsNewRSSDefaultArgs.flyout), args === null || args === void 0 ? void 0 : args.flyout), { innerContent: __assign(__assign({}, WhatsNewRSSDefaultArgs.flyout.innerContent), (_a = args === null || args === void 0 ? void 0 : args.flyout) === null || _a === void 0 ? void 0 : _a.innerContent), excerpt: __assign(__assign({}, WhatsNewRSSDefaultArgs.flyout.excerpt), (_b = args === null || args === void 0 ? void 0 : args.flyout) === null || _b === void 0 ? void 0 : _b.excerpt) }) });\n };\n /**\n * Returns parsed args.\n *\n * @returns {ConstructorArgs}\n */\n WhatsNewRSS.prototype.getArgs = function () {\n return this.args;\n };\n /**\n * Sets the HTML element queried using passed selector.\n */\n WhatsNewRSS.prototype.setElement = function () {\n this.element = document.querySelector(this.args.selector);\n };\n /**\n * Returns the html element according to the selector.\n *\n * @returns {HTMLElement}\n */\n WhatsNewRSS.prototype.getElement = function () {\n return this.element;\n };\n /**\n * Creates unique ID for current instance, that can be used by the library elements.\n */\n WhatsNewRSS.prototype.setID = function () {\n var data = [this.getArgs().selector];\n var rssFeedURL = this.getArgs().rssFeedURL;\n if (Array.isArray(rssFeedURL)) {\n rssFeedURL.forEach(function (_rssFeedURL) {\n data.push(_rssFeedURL.key);\n });\n }\n else {\n data.push(rssFeedURL);\n }\n this.ID = btoa(data.join('-')).slice(-12).replace(/=/g, '');\n };\n /**\n * Whether or not multiple feed urls is provided or not.\n *\n * @returns {boolean}\n */\n WhatsNewRSS.prototype.isMultiFeedRSS = function () {\n return 'string' !== typeof this.getArgs().rssFeedURL;\n };\n WhatsNewRSS.prototype.setRSSFeedURLs = function () {\n var _this = this;\n var rssFeedURL = this.getArgs().rssFeedURL;\n if (!this.isMultiFeedRSS()) {\n this.rssFeedURLs.push({\n key: null,\n label: '',\n url: rssFeedURL.toString(),\n });\n }\n else {\n if (Array.isArray(rssFeedURL)) {\n rssFeedURL.forEach(function (_item) {\n _this.rssFeedURLs.push(_item);\n });\n }\n }\n };\n WhatsNewRSS.prototype.getRSSFeedURLs = function () {\n return this.rssFeedURLs;\n };\n /**\n * Returns the current instance unique ID.\n *\n * @returns {string}\n */\n WhatsNewRSS.prototype.getID = function () {\n return this.ID;\n };\n /**\n * Checks and counts new notification for the notification badge.\n */\n WhatsNewRSS.prototype.setNotificationsCount = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Promise.all(this.getRSSFeedURLs().map(function (_a) {\n var key = _a.key;\n return __awaiter(_this, void 0, void 0, function () {\n var lastPostUnixTime;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n lastPostUnixTime = 0;\n if (!('function' === typeof this.getArgs().notification.getLastPostUnixTime)) return [3 /*break*/, 2];\n return [4 /*yield*/, this.getArgs().notification.getLastPostUnixTime(key, this)];\n case 1:\n lastPostUnixTime = _b.sent();\n return [3 /*break*/, 3];\n case 2:\n lastPostUnixTime = WhatsNewRSSCacheUtils.getLastPostUnixTime(key);\n _b.label = 3;\n case 3:\n if (this.isMultiFeedRSS()) {\n this.multiLastPostUnixTime[key] = +lastPostUnixTime;\n }\n else {\n this.lastPostUnixTime = +lastPostUnixTime;\n }\n return [2 /*return*/];\n }\n });\n });\n }))];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.RSS_Fetch_Instance.fetchData()\n .then(function (res) {\n Object.keys(res).forEach(function (key) {\n var data = res[key];\n if (!data.length) {\n return;\n }\n _this.multiNotificationCount[key] = 0;\n var currentPostUnixTime = +data[0].date;\n var lastPostUnixTime = _this.isMultiFeedRSS() ? _this.multiLastPostUnixTime[key] : _this.lastPostUnixTime;\n if (currentPostUnixTime > lastPostUnixTime) {\n data.forEach(function (item) {\n if (item.date > lastPostUnixTime) {\n if (_this.isMultiFeedRSS()) {\n _this.multiNotificationCount[key]++;\n _this.multiHasNewFeeds[key] = true;\n }\n // Keep a record of total notifications even in multi-feed mode.\n _this.notificationsCount++;\n _this.hasNewFeeds = true;\n }\n });\n _this.RSS_View_Instance.setNotification(_this.notificationsCount);\n }\n });\n })];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Returns total number of new notifications.\n *\n * @returns {number}\n */\n WhatsNewRSS.prototype.getNotificationsCount = function () {\n return this.notificationsCount;\n };\n /**\n * Sets the triggers for the library, eg: close, open, fetch.\n */\n WhatsNewRSS.prototype.setTriggers = function () {\n var _this = this;\n var triggerButton = document.getElementById(this.RSS_View_Instance.getTriggerButtonID());\n var flyout = document.getElementById(this.RSS_View_Instance.getFlyoutID());\n var flyoutInner = flyout.querySelector('.whats-new-rss-flyout-inner-content');\n var flyoutCloseBtn = document.getElementById(this.RSS_View_Instance.getFlyoutCloseBtnID());\n var multiFeedNav = document.getElementById(this.RSS_View_Instance.getFlyoutMultiFeedNavID());\n var injectContents = function (key) {\n /**\n * Fetch data on flyout open.\n */\n _this.RSS_Fetch_Instance.fetchData()\n .then(function (res) {\n flyoutInner.innerHTML = '';\n var data = res[key];\n if (!data.length) {\n return;\n }\n var currentPostUnixTime = +data[0].date;\n var lastPostUnixTime = _this.isMultiFeedRSS() ? _this.multiLastPostUnixTime[key] : _this.lastPostUnixTime;\n data.forEach(function (item) {\n var isNewPost = !!lastPostUnixTime ? item.date > lastPostUnixTime : false;\n var contentTitle = _this.getArgs().flyout.innerContent.titleLink ?\n \"<a href=\\\"\".concat(item.postLink, \"\\\" target=\\\"_blank\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t<h2>\").concat(item.title, \"</h2>\\n\\t\\t\\t\\t\\t\\t\\t</a>\")\n :\n \"<h2>\".concat(item.title, \"</h2>\");\n var innerContent = \"\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"rss-content-header\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<p>\".concat(_this.RSS_View_Instance.formatDate(new Date(item.date)), \"</p>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\").concat(contentTitle, \"\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\").concat(_this.RSS_View_Instance.createExcerpt(item.description, item.postLink, _this.getArgs().flyout.excerpt), \"\\n\\t\\t\\t\\t\\t\\t\\t\\t\").concat(_this.RSS_View_Instance.listChildrenPosts(item.children), \"\\n\\t\\t\\t\\t\\t\\t\\t\");\n var additionalClasses = _this.getArgs().flyout.innerContent.additionalClasses;\n if (!!key) {\n additionalClasses.push('`inner-content-item-feed-key-${key}`');\n }\n flyoutInner.innerHTML += _this.RSS_View_Instance.innerContentWrapper(innerContent, isNewPost, additionalClasses.join(' '));\n });\n if (_this.getArgs().viewAll.link) {\n // If we have link provided for the view all button then append a view all button at the end of the contents.\n flyoutInner.innerHTML += _this.RSS_View_Instance.innerContentWrapper(\"\\n\\t\\t\\t\\t\\t\\t\\t<a href=\\\"\".concat(_this.getArgs().viewAll.link, \"\\\" class=\\\"button view-all\\\">\").concat(_this.getArgs().viewAll.label, \"</a>\\n\\t\\t\\t\\t\\t\\t\\t\"));\n }\n _this.RSS_View_Instance.setIsLoading(false);\n flyout.classList.add('ready');\n _this.getArgs().flyout.onReady(_this);\n /**\n * Change focus to flyout on flyout ready.\n */\n flyout.focus();\n // Set the last latest post date for notification handling.\n if (!_this.isMultiFeedRSS()) {\n _this.lastPostUnixTime = currentPostUnixTime;\n if (_this.hasNewFeeds) {\n if ('function' === typeof _this.getArgs().notification.setLastPostUnixTime) {\n _this.getArgs().notification.setLastPostUnixTime(currentPostUnixTime, key);\n }\n else {\n WhatsNewRSSCacheUtils.setLastPostUnixTime(currentPostUnixTime, key);\n }\n }\n }\n });\n };\n /**\n * Open flyout on trigger button click.\n * Flyout has three states: `closed | open | ready`\n */\n triggerButton.addEventListener(\"click\", function (e) {\n e.preventDefault();\n _this.getArgs().triggerButton.onClick(_this);\n _this.RSS_View_Instance.setIsLoading(true);\n flyout.classList.remove('closed');\n flyout.classList.add('open');\n document.body.classList.add('whats-new-rss-is-active');\n _this.getArgs().flyout.onOpen(_this);\n if (!_this.isMultiFeedRSS()) {\n return injectContents(null);\n }\n var navBtns = multiFeedNav.querySelectorAll('button');\n navBtns.forEach(function (navBtn) {\n _this.RSS_View_Instance.setMultiFeedTabNotificationCount(navBtn.dataset.feedKey, _this.multiNotificationCount[navBtn.dataset.feedKey]);\n navBtn.addEventListener('click', function (e) {\n e.preventDefault();\n var currentFeedKey = navBtn.dataset.feedKey;\n _this.multiNotificationCount[currentFeedKey] = 0;\n _this.RSS_Fetch_Instance.fetchData()\n .then(function (res) {\n var currentPostUnixTime = res[currentFeedKey][0].date;\n _this.multiLastPostUnixTime[currentFeedKey] = currentPostUnixTime;\n if (true === _this.multiHasNewFeeds[currentFeedKey]) {\n if ('function' === typeof _this.getArgs().notification.setLastPostUnixTime) {\n _this.getArgs().notification.setLastPostUnixTime(currentPostUnixTime, currentFeedKey);\n }\n else {\n WhatsNewRSSCacheUtils.setLastPostUnixTime(currentPostUnixTime, currentFeedKey);\n }\n }\n _this.multiHasNewFeeds[currentFeedKey] = false;\n });\n navBtns.forEach(function (navBtn) {\n navBtn.classList.remove('selected');\n var feedKey = navBtn.dataset.feedKey;\n var innerContentClassName = \".inner-content-item-feed-key-\".concat(feedKey);\n document.querySelectorAll(innerContentClassName).forEach(function (item) {\n if (currentFeedKey !== feedKey) {\n item.classList.add('hidden');\n }\n else {\n item.classList.remove('hidden');\n }\n });\n });\n navBtn.classList.add('selected');\n injectContents(currentFeedKey);\n });\n });\n navBtns[0].click();\n });\n /**\n * Handle events for the closing of the flyout.\n */\n var handleFlyoutClose = function () {\n flyout.classList.add('closed');\n flyout.classList.remove('open');\n flyout.classList.remove('ready');\n document.body.classList.remove('whats-new-rss-is-active');\n if (_this.isMultiFeedRSS()) {\n _this.RSS_View_Instance.setNotification(Object.values(_this.multiNotificationCount).filter(Boolean).length);\n }\n else {\n _this.hasNewFeeds = false;\n _this.RSS_View_Instance.setNotification(false);\n }\n flyoutInner.innerHTML = '';\n _this.getArgs().flyout.onClose(_this);\n /**\n * Change focus back to trigger button after flyout close.\n */\n triggerButton.focus();\n };\n if (this.getArgs().flyout.closeOnEsc) {\n document.addEventListener('keydown', function (e) {\n if ('Escape' !== e.key)\n return;\n if (!flyout.classList.contains('open'))\n return;\n handleFlyoutClose();\n });\n }\n if (this.getArgs().flyout.closeOnOverlayClick) {\n flyout.querySelector('.whats-new-rss-flyout-overlay').addEventListener('click', handleFlyoutClose);\n }\n flyoutCloseBtn.addEventListener('click', handleFlyoutClose);\n };\n return WhatsNewRSS;\n}());\nvar WhatsNewRSSCacheUtils = /** @class */ (function () {\n function WhatsNewRSSCacheUtils() {\n }\n WhatsNewRSSCacheUtils.setInstanceID = function (instanceID) {\n if (!this.instanceID) {\n this.instanceID = instanceID;\n }\n };\n WhatsNewRSSCacheUtils.prefixer = function (key, prefixKey) {\n if (prefixKey === void 0) { prefixKey = ''; }\n if (!this.instanceID) {\n throw new Error('Instance ID not set.');\n }\n return !!prefixKey ? \"\".concat(this.keys[key], \"-\").concat(this.instanceID, \"-\").concat(prefixKey) : \"\".concat(this.keys[key], \"-\").concat(this.instanceID);\n };\n WhatsNewRSSCacheUtils._setDataExpiry = function (prefixKey) {\n if (prefixKey === void 0) { prefixKey = ''; }\n var expiryInSeconds = 86400; // Defaults to 24 hours.\n var now = new Date();\n var expiry = now.getTime() + (expiryInSeconds * 1000);\n sessionStorage.setItem(this.prefixer('SESSION_DATA_EXPIRY', prefixKey), JSON.stringify(expiry));\n };\n WhatsNewRSSCacheUtils._isDataExpired = function (prefixKey) {\n if (prefixKey === void 0) { prefixKey = ''; }\n var key = this.prefixer('SESSION_DATA_EXPIRY', prefixKey);\n var value = window.sessionStorage.getItem(key);\n if (!value) {\n return true;\n }\n var expiry = JSON.parse(value);\n var now = new Date();\n if (now.getTime() > expiry) {\n window.sessionStorage.removeItem(key);\n return true;\n }\n return false;\n };\n WhatsNewRSSCacheUtils.setSessionData = function (data, prefixKey) {\n if (prefixKey === void 0) { prefixKey = ''; }\n this._setDataExpiry(prefixKey);\n return window.sessionStorage.setItem(this.prefixer('SESSION', prefixKey), data);\n };\n WhatsNewRSSCacheUtils.getSessionData = function (prefixKey) {\n if (prefixKey === void 0) { prefixKey = ''; }\n if (!this._isDataExpired(prefixKey)) {\n return window.sessionStorage.getItem(this.prefixer('SESSION', prefixKey));\n }\n return '{}';\n };\n WhatsNewRSSCacheUtils.setLastPostUnixTime = function (unixTime, prefixKey) {\n if (prefixKey === void 0) { prefixKey = ''; }\n return window.localStorage.setItem(this.prefixer('LAST_LATEST_POST', prefixKey), unixTime.toString());\n };\n WhatsNewRSSCacheUtils.getLastPostUnixTime = function (prefixKey) {\n if (prefixKey === void 0) { prefixKey = ''; }\n return +window.localStorage.getItem(this.prefixer('LAST_LATEST_POST', prefixKey));\n };\n WhatsNewRSSCacheUtils.keys = {\n SESSION_DATA_EXPIRY: \"whats-new-cache-expiry\",\n LAST_LATEST_POST: \"whats-new-last-unixtime\",\n SESSION: \"whats-new-cache\"\n };\n return WhatsNewRSSCacheUtils;\n}());\n/**\n * Class for handling the data fetching.\n * It also handles the session caching of the fetched data internally.\n */\nvar WhatsNewRSSFetch = /** @class */ (function () {\n function WhatsNewRSSFetch(RSS) {\n var _this = this;\n this.data = {};\n this.RSS = RSS;\n this.RSS.getRSSFeedURLs().forEach(function (feed) {\n var sessionCache = JSON.parse(WhatsNewRSSCacheUtils.getSessionData(feed.key));\n if (sessionCache && sessionCache.length) {\n _this.data[feed.key] = sessionCache;\n }\n });\n }\n WhatsNewRSSFetch.prototype.fetchData = function () {\n return __awaiter(this, void 0, void 0, function () {\n var fetchPromises;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (Object.keys(this.data).length) {\n return [2 /*return*/, this.data];\n }\n fetchPromises = this.RSS.getRSSFeedURLs().map(function (feed) { return __awaiter(_this, void 0, void 0, function () {\n var res, data, parser, xmlDoc, items;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.data[feed.key] = [];\n return [4 /*yield*/, fetch(feed.url)];\n case 1:\n res = _a.sent();\n return [4 /*yield*/, res.text()];\n case 2:\n data = _a.sent();\n /**\n * There was an issue with the xml content parse\n * And during parse we were getting \"<parsererror>\" because of the ‘raquo’ entity.\n */\n data = data.replace(/»/g, '&raquo;');\n parser = new DOMParser();\n xmlDoc = parser.parseFromString(data, 'text/xml');\n items = xmlDoc.querySelectorAll('item');\n items.forEach(function (item) {\n var _a;\n var title = item.querySelector('title').textContent;\n var link = item.querySelector('link').textContent;\n var contentEncoded = item.querySelector('content\\\\:encoded, encoded');\n var content = contentEncoded ? contentEncoded.textContent : '';\n var rssDate = item.querySelector('pubDate').innerHTML;\n _this.data[feed.key].push({\n title: title,\n date: !!rssDate ? +new Date(rssDate) : null,\n postLink: link,\n description: content.replace(/<a\\b((?:(?!target=)[^>])*)>/g, '<a$1 target=\"_blank\">').replace(/<p>\\s*<\\/p>/g, ''),\n children: JSON.parse(((_a = item.querySelector('children')) === null || _a === void 0 ? void 0 : _a.innerHTML) || '{}')\n });\n });\n WhatsNewRSSCacheUtils.setSessionData(JSON.stringify(this.data[feed.key]), feed.key);\n return [2 /*return*/];\n }\n });\n }); });\n return [4 /*yield*/, Promise.all(fetchPromises)];\n case 1:\n _a.sent();\n return [2 /*return*/, this.data];\n }\n });\n });\n };\n return WhatsNewRSSFetch;\n}());\n/**\n * The class for handling library trigger button and flyout elements.\n * It also provides some necessary methods that can be used during development.\n */\nvar WhatsNewRSSView = /** @class */ (function () {\n function WhatsNewRSSView(RSS) {\n this.RSS = RSS;\n this.createTriggerButton();\n this.createFlyOut();\n }\n WhatsNewRSSView.prototype.getTriggerButtonID = function () {\n return \"whats-new-rss-btn-\".concat(this.RSS.getID());\n };\n WhatsNewRSSView.prototype.getFlyoutID = function () {\n return \"whats-new-rss-flyout-\".concat(this.RSS.getID());\n };\n WhatsNewRSSView.prototype.getFlyoutCloseBtnID = function () {\n return \"whats-new-rss-flyout-close-\".concat(this.RSS.getID());\n };\n WhatsNewRSSView.prototype.getFlyoutMultiFeedNavID = function () {\n return \"whats-new-rss-flyout-multi-feed-nav-\".concat(this.RSS.getID());\n };\n WhatsNewRSSView.prototype.setIsLoading = function (isLoading) {\n if (isLoading === void 0) { isLoading = false; }\n var flyoutWrapper = document.getElementById(this.getFlyoutID());\n if (isLoading) {\n flyoutWrapper.classList.add('is-loading');\n }\n else {\n flyoutWrapper.classList.remove('is-loading');\n }\n };\n WhatsNewRSSView.prototype.setNotification = function (notificationsCount) {\n var notificationBadge = document.querySelector(\"#\".concat(this.getTriggerButtonID(), \" .whats-new-rss-notification-badge\"));\n if (!!notificationsCount) {\n if (this.RSS.isMultiFeedRSS()) {\n notificationBadge.innerHTML = '';\n notificationBadge.classList.add('is-multi-feed');\n }\n else {\n notificationBadge.innerHTML = notificationsCount > 9 ? \"9+\" : notificationsCount.toString();\n }\n notificationBadge.classList.remove('hide');\n }\n else {\n notificationBadge.classList.add('hide');\n }\n };\n WhatsNewRSSView.prototype.createTriggerButton = function () {\n var button = \"\\n\\t\\t\".concat(this.RSS.getArgs().triggerButton.beforeBtn, \"\\n\\t\\t<a class=\\\"whats-new-rss-trigger-button\\\" id=\\\"\").concat(this.getTriggerButtonID(), \"\\\">\\n\\t\\t\\t\").concat(this.RSS.getArgs().triggerButton.icon, \"\\n\\t\\t\\t<div class=\\\"whats-new-rss-notification-badge hide\\\">0</div>\\n\\t\\t</a>\\n\\t\\t\").concat(this.RSS.getArgs().triggerButton.afterBtn, \"\\n\\t\\t\");\n this.RSS.getElement().innerHTML += button;\n };\n WhatsNewRSSView.prototype.createFlyOut = function () {\n var wrapperClasses = [\n 'whats-new-rss-flyout',\n 'closed',\n ];\n if (this.RSS.getArgs().flyout.className) {\n wrapperClasses.push(this.RSS.getArgs().flyout.className);\n }\n var multiFeedNav = [];\n if (this.RSS.isMultiFeedRSS()) {\n multiFeedNav.push(\"<nav id=\\\"\".concat(this.getFlyoutMultiFeedNavID(), \"\\\" class=\\\"whats-new-rss-multi-feed-nav\\\">\"));\n this.RSS.getRSSFeedURLs().forEach(function (feed) {\n multiFeedNav.push(\"<button type=\\\"button\\\" data-feed-key=\\\"\".concat(feed.key, \"\\\">\\n\\t\\t\\t\\t\\t\\t\").concat(feed.label, \"\\n\\t\\t\\t\\t\\t\\t<div class=\\\"new-notification-count\\\"></div>\\n\\t\\t\\t\\t\\t</button>\\n\\t\\t\\t\\t\\t\"));\n });\n multiFeedNav.push('</nav>');\n }\n var flyoutWrapper = document.createElement('div');\n flyoutWrapper.setAttribute('id', this.getFlyoutID());\n flyoutWrapper.setAttribute('class', wrapperClasses.join(' '));\n flyoutWrapper.setAttribute('role', 'dialog');\n flyoutWrapper.innerHTML = \"\\n\\t\\t<div class=\\\"whats-new-rss-flyout-contents\\\">\\n\\n\\t\\t\\t<div class=\\\"whats-new-rss-flyout-inner-header\\\">\\n\\n\\t\\t\\t\\t<div class=\\\"whats-new-rss-flyout-inner-header__title-icon-wrapper\\\">\\n\\t\\t\\t\\t\\t<h3>\".concat(this.RSS.getArgs().flyout.title, \"</h3>\\n\\n\\t\\t\\t\\t\\t<span class=\\\"whats-new-rss-flyout-inner-header__loading-icon\\\">\\n\\t\\t\\t\\t\\t\").concat(this.RSS.getArgs().loaderIcon, \"\\n\\t\\t\\t\\t\\t</span>\\n\\t\\t\\t\\t</div>\\n\\n\\t\\t\\t\\t<button type=\\\"button\\\" id=\\\"\").concat(this.getFlyoutCloseBtnID(), \"\\\">\").concat(this.RSS.getArgs().flyout.closeBtnIcon, \"</button>\\n\\t\\t\\t</div>\\n\\n\\t\\t\\t\").concat(multiFeedNav.join(''), \"\\n\\n\\t\\t\\t<div class=\\\"whats-new-rss-flyout-inner-content\\\">\\n\\t\\t\\t\\t<div class=\\\"skeleton-container\\\">\\n\\t\\t\\t\\t\\t<div class=\\\"skeleton-row whats-new-rss-flyout-inner-content-item\\\"></div>\\n\\t\\t\\t\\t\\t<div class=\\\"skeleton-row whats-new-rss-flyout-inner-content-item\\\"></div>\\n\\t\\t\\t\\t\\t<div class=\\\"skeleton-row whats-new-rss-flyout-inner-content-item\\\"></div>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t</div>\\n\\n\\t\\t</div>\\n\\n\\t\\t<div class=\\\"whats-new-rss-flyout-overlay\\\"></div>\\n\\t\\t\");\n document.body.appendChild(flyoutWrapper);\n };\n WhatsNewRSSView.prototype.setMultiFeedTabNotificationCount = function (key, notificationCount) {\n if (notificationCount === void 0) { notificationCount = 0; }\n var tabBtn = document.querySelector(\"#\".concat(this.getFlyoutMultiFeedNavID(), \" button[data-feed-key=\\\"\").concat(key, \"\\\"]\"));\n if (!tabBtn) {\n return;\n }\n var el = tabBtn.querySelector('.new-notification-count');\n if (notificationCount) {\n var _count = notificationCount > 9 ? '9+' : notificationCount;\n el.innerHTML = _count.toString();\n }\n else {\n el.innerHTML = '';\n }\n };\n WhatsNewRSSView.prototype.innerContentWrapper = function (content, isNewPost, additionalClasses) {\n if (isNewPost === void 0) { isNewPost = false; }\n if (additionalClasses === void 0) { additionalClasses = ''; }\n var classes = ['whats-new-rss-flyout-inner-content-item'];\n if (isNewPost) {\n classes.push('rss-new-post');\n }\n if (!!additionalClasses) {\n classes.push(additionalClasses);\n }\n return \"\\n\\t\\t<div class=\\\"\".concat(classes.join(' '), \"\\\">\\n\\t\\t\\t\").concat(isNewPost ? '<small class=\"new-post-badge\">New ✨</small>' : '', \"\\n\\t\\t\\t\").concat(content, \"\\n\\t\\t</div>\\n\\t\\t\");\n };\n WhatsNewRSSView.prototype.createExcerpt = function (content, readMoreLink, options) {\n var wordLimit = options.wordLimit, moreSymbol = options.moreSymbol, readMore = options.readMore;\n if (!wordLimit) {\n return content;\n }\n var plainText = content.replace(/<[^>]*>/g, '');\n var words = plainText.split(/\\s+/);\n var rawExcerpt = words.slice(0, wordLimit).join(' ');\n if (moreSymbol) {\n rawExcerpt += moreSymbol;\n }\n if (wordLimit > words.length) {\n return content;\n }\n if (!!readMoreLink && !!(readMore === null || readMore === void 0 ? void 0 : readMore.label)) {\n return \"<p>\".concat(rawExcerpt, \" <a href=\\\"\").concat(readMoreLink, \"\\\" target=\\\"_blank\\\" class=\\\"\").concat(readMore.className, \"\\\">\").concat(readMore.label, \"</a></p>\");\n }\n return \"<p>\".concat(rawExcerpt, \"</p>\");\n };\n WhatsNewRSSView.prototype.listChildrenPosts = function (children) {\n var _this = this;\n var _children = Object.values(children);\n if (!_children.length)\n return '';\n var details = document.createElement('details');\n var summary = document.createElement('summary');\n var itemsWrapper = document.createElement('div');\n _children.forEach(function (child) {\n var postContentDoc = new DOMParser().parseFromString(child.post_content, 'text/html');\n var itemDiv = document.createElement('div');\n itemDiv.classList.add('sub-version-item');\n itemDiv.innerHTML = \"\\n\\t\\t\\t\\t<div class=\\\"sub-version-header\\\">\\n\\t\\t\\t\\t\\t<h4 class=\\\"sub-version-title\\\">\".concat(child.post_title, \"</h4>\\n\\t\\t\\t\\t\\t<span class=\\\"sub-version-date\\\">\").concat(_this.formatDate(new Date(child.post_date)), \"</span>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t<div class=\\\"sub-version-content\\\">\").concat(postContentDoc.documentElement.textContent, \"</div>\\n\\t\\t\\t\");\n itemsWrapper.appendChild(itemDiv);\n });\n summary.innerHTML = '<p class=\"text-see-more\">See More</p><p class=\"text-see-less\">See Less</p>';\n details.appendChild(summary);\n details.appendChild(itemsWrapper);\n itemsWrapper.classList.add('sub-version-items-wrapper');\n details.classList.add('whats-new-rss-sub-version-details');\n return details.outerHTML;\n };\n WhatsNewRSSView.prototype.formatDate = function (date) {\n if ('function' === typeof this.RSS.getArgs().flyout.formatDate) {\n return this.RSS.getArgs().flyout.formatDate(date);\n }\n var currentDate = new Date();\n var timestamp = date.getTime();\n var currentTimestamp = currentDate.getTime();\n var difference = currentTimestamp - timestamp;\n // Define time intervals in milliseconds\n var minute = 60 * 1000;\n var hour = minute * 60;\n var day = hour * 24;\n var week = day * 7;\n var month = day * 30; // Rough estimate, assuming 30 days in a month\n if (difference < minute) {\n return 'Just now';\n }\n else if (difference < hour) {\n var minutes = Math.floor(difference / minute);\n return \"\".concat(minutes, \" minute\").concat(minutes > 1 ? 's' : '', \" ago\");\n }\n else if (difference < day) {\n var hours = Math.floor(difference / hour);\n return \"\".concat(hours, \" hour\").concat(hours > 1 ? 's' : '', \" ago\");\n }\n else if (difference < week) {\n var days = Math.floor(difference / day);\n return \"\".concat(days, \" day\").concat(days > 1 ? 's' : '', \" ago\");\n }\n else if (difference < month) {\n var weeks = Math.floor(difference / week);\n return \"\".concat(weeks, \" week\").concat(weeks > 1 ? 's' : '', \" ago\");\n }\n else {\n // Handle months and years accordingly\n // This is a rough estimate and may not be accurate in all cases\n var months = Math.floor(difference / month);\n return \"\".concat(months, \" month\").concat(months > 1 ? 's' : '', \" ago\");\n }\n };\n return WhatsNewRSSView;\n}());\n\nasync function getCSS() {\n return `.whats-new-rss-is-active{overflow:hidden}.whats-new-rss-trigger-button{display:flex;align-items:center;position:relative;width:auto;padding:5px;cursor:pointer}.whats-new-rss-trigger-button .whats-new-rss-notification-badge{position:absolute;top:-8px;right:-5px;width:20px;font-size:10px;line-height:20px;text-align:center;border-radius:10px;color:#fff;background:red;transition:transform .2s ease-in-out}.whats-new-rss-trigger-button .whats-new-rss-notification-badge.is-multi-feed{top:-2px;right:-2px;font-size:0;width:10px;height:10px}.whats-new-rss-trigger-button .whats-new-rss-notification-badge.hide{display:none}.whats-new-rss-trigger-button:hover .whats-new-rss-notification-badge{transform:scale(1.2)}.whats-new-rss-flyout{position:fixed;top:0;right:0;bottom:0;width:100%;z-index:99999;transition:visibility .3s ease-in-out;font-family:Arial,Helvetica,sans-serif}.whats-new-rss-flyout .lightbox-trigger,.whats-new-rss-flyout.hidden{display:none}.whats-new-rss-flyout.is-loading .whats-new-rss-flyout-inner-header__loading-icon{display:block;margin:auto}.whats-new-rss-flyout.is-loading .whats-new-rss-flyout-inner-header__loading-icon svg{display:block;background:0 0;width:25px;height:25px}.whats-new-rss-flyout .whats-new-rss-flyout-contents{position:fixed;display:flex;right:0;width:30%;height:100%;flex-direction:column;background-color:#fff;transition:transform .3s ease-in-out;z-index:9999}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 16px 24px;border-bottom:1px solid #ccc}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-header button{border:none;background:0 0;font-size:30px;cursor:pointer;color:#94a3b8;padding:0;margin:0;box-shadow:none}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-header .whats-new-rss-flyout-inner-header__title-icon-wrapper{display:flex;gap:10px}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-header .whats-new-rss-flyout-inner-header__title-icon-wrapper h3{margin:0;padding:0;color:#0f172a;font-weight:600;font-size:16px;line-height:24px}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-multi-feed-nav{display:flex;padding:0 30px;border-bottom:1px solid #ccc;gap:2em;overflow:auto;white-space:nowrap}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-multi-feed-nav button{position:relative;background:0 0;color:inherit;padding:15px 0;border-bottom:2px solid transparent}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-multi-feed-nav button:focus,.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-multi-feed-nav button:hover{border-color:inherit}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-multi-feed-nav button.selected{border-color:#5d5d5d}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-multi-feed-nav button .new-notification-count{position:absolute;top:0;right:-10px;width:20px;font-size:10px;line-height:20px;text-align:center;border-radius:10px;color:#fff;background:red}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content{flex:1;overflow-y:auto}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .skeleton-container{margin:30px}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item{border-bottom:1px solid #d8dfe9;padding:30px 24px;color:#475569;font-weight:400;font-size:14px;line-height:20px;display:flex;flex-direction:column;gap:13px}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item>*{margin:0}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item.skeleton-row{height:25vh;margin:40px 0;background:linear-gradient(90deg,#eee 25%,#ddd 50%,#eee 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item.rss-new-post{position:relative}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item.rss-new-post .new-post-badge{background:#ff3d3d;border-radius:5px;position:absolute;right:45px;padding:0 5px;color:#fff}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item .rss-content-header{display:flex;flex-direction:column;gap:15px;padding:0 0 8px 0}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item .rss-content-header p{color:#94a3b8;margin:0;padding:0;font-weight:600;font-size:14px;line-height:16px}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item .rss-content-header h2{margin:0;color:#0f172a;font-weight:700;line-height:28px;font-size:20px}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item h2{font-weight:700;font-size:18px;line-height:24px}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item h3{font-weight:700;font-size:16px;line-height:22px;margin-top:12px}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item h4{font-weight:700;font-size:15px;line-height:20px;margin-top:12px}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item h5{font-weight:700;font-size:14px;line-height:18px}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item h6{font-weight:700;font-size:13px;line-height:16px}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item p{padding:0;font-size:14px}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item p:last-child{margin-bottom:0;padding-bottom:0}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item a{color:#1170ff;text-decoration:none}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item figure{margin:10px 0}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item figure.wp-block-embed.is-type-video{position:relative;width:100%;height:0;padding-bottom:56.25%}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item figure iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item video{vertical-align:middle;width:100%}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item strong{font-weight:600}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item ol,.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item ul{padding-inline-start:20px}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item ol li,.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item ul li{margin-bottom:5px}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item ul{list-style-type:disc}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-flyout-inner-content .whats-new-rss-flyout-inner-content-item ol{list-style-type:decimal}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-sub-version-details{line-height:20px;font-size:.9em;margin:10px 0;background:#f9fafb}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-sub-version-details summary{display:flex;justify-content:space-between;cursor:pointer;padding:20px 15px;height:1em;line-height:20px;font-weight:800}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-sub-version-details summary::after{content:'⌃';font-size:20px;transform:rotateX(180deg);font-weight:800}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-sub-version-details summary .text-see-more{display:block}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-sub-version-details summary .text-see-less{display:none}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-sub-version-details[open] summary{border-bottom:1px solid #e2e8f0}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-sub-version-details[open] summary::after{transform:rotateX(45deg)}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-sub-version-details[open] summary .text-see-more{display:none}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-sub-version-details[open] summary .text-see-less{display:block}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-sub-version-details .sub-version-item{position:relative;padding:1em;border-bottom:1px solid #e2e8f0}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-sub-version-details .sub-version-item .sub-version-header{display:flex;justify-content:space-between}.whats-new-rss-flyout .whats-new-rss-flyout-contents .whats-new-rss-sub-version-details .sub-version-item .sub-version-content{margin-top:1em}.whats-new-rss-flyout .whats-new-rss-flyout-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.5);transition:all .3s ease-in-out}.whats-new-rss-flyout.closed{visibility:hidden}.whats-new-rss-flyout.closed .whats-new-rss-flyout-overlay{opacity:0;visibility:hidden}.whats-new-rss-flyout.closed .whats-new-rss-flyout-contents{transform:translateX(100%)}.whats-new-rss-flyout .whats-new-rss-flyout-inner-header__loading-icon{display:none}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}@media screen and (max-width:1024px){.whats-new-rss-flyout .whats-new-rss-flyout-contents{width:40%}}@media screen and (max-width:768px){.whats-new-rss-flyout .whats-new-rss-flyout-contents{width:85%}}`;\n}\n\nasync function addStyleIfNotExists() {\n const styleId = 'whats-new-rss-styles';\n if (!document.getElementById(styleId)) {\n const style = document.createElement('style');\n style.id = styleId;\n style.innerHTML = await getCSS();\n document.head.appendChild(style);\n }\n}\n\n\nfunction createWhatsNewRSSInstance(args) {\n return new WhatsNewRSS(args);\n}\n\nfunction useWhatsNewRSS({ selector, ...rest }) {\n const instanceRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n addStyleIfNotExists();\n\n if (!instanceRef.current) {\n instanceRef.current = createWhatsNewRSSInstance({ selector, ...rest });\n }\n\n // Cleanup function\n return () => {\n if (instanceRef.current && typeof instanceRef.current.destroy === 'function') {\n instanceRef.current.destroy();\n }\n };\n }, [selector, ...Object.values(rest)]); // Adjust dependencies as needed\n\n return instanceRef.current;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (useWhatsNewRSS);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvd2hhdHMtbmV3LXJzcy9kaXN0L3JlYWN0L3VzZVdoYXRzTmV3UlNTLmpzIiwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUUwQztBQUMxQyxnQkFBZ0IsU0FBSSxJQUFJLFNBQUk7QUFDNUI7QUFDQSxpREFBaUQsT0FBTztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLFNBQUksSUFBSSxTQUFJO0FBQzdCLDRCQUE0QiwrREFBK0QsaUJBQWlCO0FBQzVHO0FBQ0Esb0NBQW9DLE1BQU0sK0JBQStCLFlBQVk7QUFDckYsbUNBQW1DLE1BQU0sbUNBQW1DLFlBQVk7QUFDeEYsZ0NBQWdDO0FBQ2hDO0FBQ0EsS0FBSztBQUNMO0FBQ0EsbUJBQW1CLFNBQUksSUFBSSxTQUFJO0FBQy9CLGNBQWMsNkJBQTZCLDBCQUEwQixjQUFjLHFCQUFxQjtBQUN4RyxpQkFBaUIsb0RBQW9ELHFFQUFxRSxjQUFjO0FBQ3hKLHVCQUF1QixzQkFBc0I7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDLG1DQUFtQyxTQUFTO0FBQzVDLG1DQUFtQyxXQUFXLFVBQVU7QUFDeEQsMENBQTBDLGNBQWM7QUFDeEQ7QUFDQSw4R0FBOEcsT0FBTztBQUNySCxpRkFBaUYsaUJBQWlCO0FBQ2xHLHlEQUF5RCxnQkFBZ0IsUUFBUTtBQUNqRiwrQ0FBK0MsZ0JBQWdCLGdCQUFnQjtBQUMvRTtBQUNBLGtDQUFrQztBQUNsQztBQUNBO0FBQ0EsVUFBVSxZQUFZLGFBQWEsU0FBUyxVQUFVO0FBQ3RELG9DQUFvQyxTQUFTO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvYkFBb2IseUJBQXlCO0FBQzdjO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDO0FBQ2hDLEtBQUs7QUFDTDtBQUNB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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyx1Q0FBdUM7O0FBRTVDO0FBQ0E7O0FBRUEsK0RBQWUsY0FBYyxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL25vZGVfbW9kdWxlcy93aGF0cy1uZXctcnNzL2Rpc3QvcmVhY3QvdXNlV2hhdHNOZXdSU1MuanM/ODMyOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqID09PSBXaGF0cyBOZXcgUlNTID09PVxuICpcbiAqIFZlcnNpb246IDEuMC42XG4gKiBHZW5lcmF0ZWQgb246IDI1dGggSnVuZSwgMjAyNFxuICogRG9jdW1lbnRhdGlvbjogaHR0cHM6Ly9naXRodWIuY29tL2JyYWluc3Rvcm1mb3JjZS93aGF0cy1uZXctcnNzL2Jsb2IvbWFzdGVyL1JFQURNRS5tZFxuICovXG5cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19nZW5lcmF0b3IgPSAodGhpcyAmJiB0aGlzLl9fZ2VuZXJhdG9yKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgYm9keSkge1xuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IHJldHVybiBmdW5jdGlvbiAodikgeyByZXR1cm4gc3RlcChbbiwgdl0pOyB9OyB9XG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICAgIHdoaWxlIChnICYmIChnID0gMCwgb3BbMF0gJiYgKF8gPSAwKSksIF8pIHRyeSB7XG4gICAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgICB9XG59O1xudmFyIFdoYXRzTmV3UlNTRGVmYXVsdEFyZ3MgPSB7XG4gICAgcnNzRmVlZFVSTDogJycsXG4gICAgc2VsZWN0b3I6ICcnLFxuICAgIGxvYWRlckljb246IFwiPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHhtbG5zOnhsaW5rPVxcXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTAwIDEwMFxcXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cXFwieE1pZFlNaWRcXFwiPlxcblxcdDxjaXJjbGUgY3g9XFxcIjUwXFxcIiBjeT1cXFwiNTBcXFwiIGZpbGw9XFxcIm5vbmVcXFwiIHN0cm9rZT1cXFwiIzlmOWY5ZlxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIxMFxcXCIgcj1cXFwiMzVcXFwiIHN0cm9rZS1kYXNoYXJyYXk9XFxcIjE2NC45MzM2MTQzMTM0NjQxNSA1Ni45Nzc4NzE0Mzc4MjEzOFxcXCI+XFxuXFx0XFx0PGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT1cXFwidHJhbnNmb3JtXFxcIiB0eXBlPVxcXCJyb3RhdGVcXFwiIHJlcGVhdENvdW50PVxcXCJpbmRlZmluaXRlXFxcIiBkdXI9XFxcIjFzXFxcIiB2YWx1ZXM9XFxcIjAgNTAgNTA7MzYwIDUwIDUwXFxcIiBrZXlUaW1lcz1cXFwiMDsxXFxcIj48L2FuaW1hdGVUcmFuc2Zvcm0+XFxuXFx0PC9jaXJjbGU+XFxuXFx0PC9zdmc+XCIsXG4gICAgdmlld0FsbDoge1xuICAgICAgICBsaW5rOiAnJyxcbiAgICAgICAgbGFiZWw6ICdWaWV3IEFsbCcsXG4gICAgfSxcbiAgICB0cmlnZ2VyQnV0dG9uOiB7XG4gICAgICAgIGljb246IFwiPHN2ZyB3aWR0aD1cXFwiMjBcXFwiIGhlaWdodD1cXFwiMjBcXFwiIHZpZXdCb3g9XFxcIjAgMCAyMCAyMFxcXCIgZmlsbD1cXFwibm9uZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cGF0aCBkPVxcXCJNOC42MTcwMyAxMy4xOTk4QzguMDQyOTQgMTMuMTUwMyA3LjQ2MTkyIDEzLjEyNSA2Ljg3NSAxMy4xMjVINi4yNUM0LjE3ODkzIDEzLjEyNSAyLjUgMTEuNDQ2MSAyLjUgOS4zNzVDMi41IDcuMzAzOTMgNC4xNzg5MyA1LjYyNSA2LjI1IDUuNjI1SDYuODc1QzcuNDYxOTIgNS42MjUgOC4wNDI5NCA1LjU5OTcyIDguNjE3MDMgNS41NTAxOE04LjYxNzAzIDEzLjE5OThDOC44Mjc3NCAxNC4wMDEyIDkuMTAzMSAxNC43NzY0IDkuNDM3MTkgMTUuNTE5NUM5LjY0MzQxIDE1Ljk3ODIgOS40ODY4NSAxNi41MjczIDkuMDUxMzQgMTYuNzc4N0w4LjUwNDQxIDE3LjA5NDVDOC4wNDQ5MiAxNy4zNTk4IDcuNDU0NjYgMTcuMTkyMSA3LjIzMjAxIDE2LjcxMDZDNi43MDk4MyAxNS41ODExIDYuMzA0NTEgMTQuMzg2NiA2LjAzMTU1IDEzLjE0MjVNOC42MTcwMyAxMy4xOTk4QzguMjk1OTggMTEuOTc4NyA4LjEyNSAxMC42OTY4IDguMTI1IDkuMzc1QzguMTI1IDguMDUzMTYgOC4yOTU5OCA2Ljc3MTI1IDguNjE3MDMgNS41NTAxOE04LjYxNzAzIDEzLjE5OThDMTEuMjUgMTMuNDI3IDEzLjczNyAxNC4xNjQzIDE1Ljk3ODkgMTUuMzEyNE04LjYxNzAzIDUuNTUwMThDMTEuMjUgNS4zMjMgMTMuNzM3IDQuNTg1NjkgMTUuOTc4OSAzLjQzNzU3TTE1Ljk3ODkgMy40Mzc1N0MxNS44ODA4IDMuMTIxNjIgMTUuNzc1MSAyLjgwOTAzIDE1LjY2MiAyLjVNMTUuOTc4OSAzLjQzNzU3QzE2LjQyNDcgNC44NzM1NiAxNi43MTMxIDYuMzc4ODUgMTYuODIzOCA3LjkzMzI2TTE1Ljk3ODkgMTUuMzEyNEMxNS44ODA4IDE1LjYyODQgMTUuNzc1MSAxNS45NDEgMTUuNjYyIDE2LjI1TTE1Ljk3ODkgMTUuMzEyNEMxNi40MjQ3IDEzLjg3NjQgMTYuNzEzMSAxMi4zNzExIDE2LjgyMzggMTAuODE2N00xNi44MjM4IDcuOTMzMjZDMTcuMjM3IDguMjc3MiAxNy41IDguNzk1MzkgMTcuNSA5LjM3NUMxNy41IDkuOTU0NjEgMTcuMjM3IDEwLjQ3MjggMTYuODIzOCAxMC44MTY3TTE2LjgyMzggNy45MzMyNkMxNi44NTc4IDguNDA5NDIgMTYuODc1IDguODkwMiAxNi44NzUgOS4zNzVDMTYuODc1IDkuODU5OCAxNi44NTc4IDEwLjM0MDYgMTYuODIzOCAxMC44MTY3XFxcIiBzdHJva2U9XFxcIiM5NEEzQjhcXFwiIHN0cm9rZS13aWR0aD1cXFwiMS41XFxcIiBzdHJva2UtbGluZWNhcD1cXFwicm91bmRcXFwiIHN0cm9rZS1saW5lam9pbj1cXFwicm91bmRcXFwiLz48L3N2Zz5cIixcbiAgICAgICAgYmVmb3JlQnRuOiAnJyxcbiAgICAgICAgYWZ0ZXJCdG46ICcnLFxuICAgICAgICBjbGFzc05hbWU6ICcnLFxuICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IH0sXG4gICAgfSxcbiAgICBub3RpZmljYXRpb246IHtcbiAgICAgICAgc2V0TGFzdFBvc3RVbml4VGltZTogbnVsbCxcbiAgICAgICAgZ2V0TGFzdFBvc3RVbml4VGltZTogbnVsbFxuICAgIH0sXG4gICAgZmx5b3V0OiB7XG4gICAgICAgIHRpdGxlOiBcIldoYXQncyBOZXc/XCIsXG4gICAgICAgIGlubmVyQ29udGVudDoge1xuICAgICAgICAgICAgdGl0bGVMaW5rOiB0cnVlLFxuICAgICAgICAgICAgYWRkaXRpb25hbENsYXNzZXM6IFtdXG4gICAgICAgIH0sXG4gICAgICAgIGV4Y2VycHQ6IHtcbiAgICAgICAgICAgIHdvcmRMaW1pdDogNTAwLFxuICAgICAgICAgICAgbW9yZVN5bWJvbDogJyZoZWxsaXA7JyxcbiAgICAgICAgICAgIHJlYWRNb3JlOiB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdSZWFkIE1vcmUnLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJycsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZTogJycsXG4gICAgICAgIGNsb3NlT25Fc2M6IHRydWUsXG4gICAgICAgIGNsb3NlT25PdmVybGF5Q2xpY2s6IHRydWUsXG4gICAgICAgIGNsb3NlQnRuSWNvbjogXCI8c3ZnIHdpZHRoPVxcXCIyNFxcXCIgaGVpZ2h0PVxcXCIyNFxcXCIgdmlld0JveD1cXFwiMCAwIDI0IDI0XFxcIiBmaWxsPVxcXCJub25lXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwYXRoIGQ9XFxcIk02IDE4TDE4IDZNNiA2TDE4IDE4XFxcIiBzdHJva2U9XFxcIiM5NEEzQjhcXFwiIHN0cm9rZS13aWR0aD1cXFwiMS41XFxcIiBzdHJva2UtbGluZWNhcD1cXFwicm91bmRcXFwiIHN0cm9rZS1saW5lam9pbj1cXFwicm91bmRcXFwiLz48L3N2Zz5cIixcbiAgICAgICAgZm9ybWF0RGF0ZTogbnVsbCxcbiAgICAgICAgb25PcGVuOiBmdW5jdGlvbiAoKSB7IH0sXG4gICAgICAgIG9uQ2xvc2U6IGZ1bmN0aW9uICgpIHsgfSxcbiAgICAgICAgb25SZWFkeTogZnVuY3Rpb24gKCkgeyB9LFxuICAgIH1cbn07XG52YXIgV2hhdHNOZXdSU1MgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZSBvdXIgY2xhc3MuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yQXJnc30gYXJnc1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIFdoYXRzTmV3UlNTKGFyZ3MpIHtcbiAgICAgICAgdGhpcy5yc3NGZWVkVVJMcyA9IFtdO1xuICAgICAgICAvKipcbiAgICAgICAgICogVW5peFRpbWUgc3RhbXAgb2YgdGhlIGxhc3Qgc2VlbiBvciByZWFkIHBvc3QuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmxhc3RQb3N0VW5peFRpbWUgPSAwO1xuICAgICAgICAvKipcbiAgICAgICAgICogVW5peFRpbWUgc3RhbXAgb2YgdGhlIGxhc3Qgc2VlbiBvciByZWFkIHBvc3QgZm9yIG11bHRpIGZlZWRzIGJ5IGZlZWQga2V5LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5tdWx0aUxhc3RQb3N0VW5peFRpbWUgPSB7fTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRvdGFsIG51bWJlciBvZiBuZXcgbm90aWZpY2F0aW9uIGNvdW50cy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uc0NvdW50ID0gMDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE5vdGlmaWNhdGlvbiBjb3VudHMgZm9yIG11bHRpIGZlZWRzIGJ5IGZlZWQga2V5LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5tdWx0aU5vdGlmaWNhdGlvbkNvdW50ID0ge307XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDaGVjayBpZiBoYXMgbmV3IGZlZWRzLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5oYXNOZXdGZWVkcyA9IGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogQ2hlY2sgaWYgaGFzIG5ldyBmZWVkcyBpbiBtdWx0aSBmZWVkcyBtb2RlLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5tdWx0aUhhc05ld0ZlZWRzID0ge307XG4gICAgICAgIHRoaXMudmFsaWRhdGVBcmdzKGFyZ3MpO1xuICAgICAgICB0aGlzLnBhcnNlRGVmYXVsdHMoYXJncyk7XG4gICAgICAgIHRoaXMuc2V0RWxlbWVudCgpO1xuICAgICAgICBpZiAoIXRoaXMuZ2V0RWxlbWVudCgpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1dOUjogQ2Fubm90IGZpbmQgZWxlbWVudCB3aXRoJywgdGhpcy5nZXRBcmdzKCkuc2VsZWN0b3IpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0SUQoKTtcbiAgICAgICAgdGhpcy5zZXRSU1NGZWVkVVJMcygpO1xuICAgICAgICBXaGF0c05ld1JTU0NhY2hlVXRpbHMuc2V0SW5zdGFuY2VJRCh0aGlzLmdldElEKCkpO1xuICAgICAgICB0aGlzLlJTU19GZXRjaF9JbnN0YW5jZSA9IG5ldyBXaGF0c05ld1JTU0ZldGNoKHRoaXMpO1xuICAgICAgICB0aGlzLlJTU19WaWV3X0luc3RhbmNlID0gbmV3IFdoYXRzTmV3UlNTVmlldyh0aGlzKTtcbiAgICAgICAgdGhpcy5zZXROb3RpZmljYXRpb25zQ291bnQoKTtcbiAgICAgICAgdGhpcy5zZXRUcmlnZ2VycygpO1xuICAgIH1cbiAgICA7XG4gICAgLyoqXG4gICAgICogVmFsaWRhdGUgdGhlIHBhc3NlZCBhcmd1bWVudHMgaW4gY29uc3RydWN0b3IuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yQXJnc30gYXJnc1xuICAgICAqL1xuICAgIFdoYXRzTmV3UlNTLnByb3RvdHlwZS52YWxpZGF0ZUFyZ3MgPSBmdW5jdGlvbiAoYXJncykge1xuICAgICAgICBbXCJyc3NGZWVkVVJMXCIsIFwic2VsZWN0b3JcIl0ubWFwKGZ1bmN0aW9uIChyZXF1aXJlZEFyZykge1xuICAgICAgICAgICAgaWYgKCFhcmdzW3JlcXVpcmVkQXJnXSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlwiLmNvbmNhdChyZXF1aXJlZEFyZywgXCIgaXMgYSByZXF1aXJlZCBhcmd1bWVudC4gSXQgY2Fubm90IGJlIGVtcHR5IG9yIHVuZGVmaW5lZC5cIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3dpdGNoIChyZXF1aXJlZEFyZykge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3Jzc0ZlZWRVUkwnOlxuICAgICAgICAgICAgICAgICAgICB2YXIgYXJnID0gYXJnc1tyZXF1aXJlZEFyZ107XG4gICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFyZykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZy5mb3JFYWNoKGZ1bmN0aW9uIChyc3NGZWVkVVJMKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEocnNzRmVlZFVSTCA9PT0gbnVsbCB8fCByc3NGZWVkVVJMID09PSB2b2lkIDAgPyB2b2lkIDAgOiByc3NGZWVkVVJMLmtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIHBhcmFtZXRlciBcXFwia2V5XFxcIiBpcyByZXF1aXJlZCBmb3IgXFxcIlwiLmNvbmNhdChyZXF1aXJlZEFyZywgXCJcXFwiIHBhcmFtZXRlciBpbiBtdWx0aS1mZWVkIG1vZGUuXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJzc0ZlZWRVUkwua2V5LmluY2x1ZGVzKCcgJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIHBhcmFtZXRlciBcXFwia2V5XFxcIiBjYW5ub3QgaGF2ZSBzcGFjZXMgZm9yIFxcXCJcIi5jb25jYXQocmVxdWlyZWRBcmcsIFwiXFxcIiBwYXJhbWV0ZXIgaW4gbXVsdGktZmVlZCBtb2RlLiBSZWYgS2V5OiBcXFwiXCIpLmNvbmNhdChyc3NGZWVkVVJMLmtleSwgXCJcXFwiXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBQYXJzZSB0aGUgYXJndW1lbnRzIHBhc3NlZCBieSB0aGUgdXNlciB3aXRoIHRoZSBkZWZhdWx0cy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q29uc3RydWN0b3JBcmdzfSBhcmdzXG4gICAgICovXG4gICAgV2hhdHNOZXdSU1MucHJvdG90eXBlLnBhcnNlRGVmYXVsdHMgPSBmdW5jdGlvbiAoYXJncykge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICB0aGlzLmFyZ3MgPSBfX2Fzc2lnbihfX2Fzc2lnbihfX2Fzc2lnbih7fSwgV2hhdHNOZXdSU1NEZWZhdWx0QXJncyksIGFyZ3MpLCB7IHZpZXdBbGw6IF9fYXNzaWduKF9fYXNzaWduKHt9LCBXaGF0c05ld1JTU0RlZmF1bHRBcmdzLnZpZXdBbGwpLCBhcmdzID09PSBudWxsIHx8IGFyZ3MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFyZ3Mudmlld0FsbCksIHRyaWdnZXJCdXR0b246IF9fYXNzaWduKF9fYXNzaWduKHt9LCBXaGF0c05ld1JTU0RlZmF1bHRBcmdzLnRyaWdnZXJCdXR0b24pLCBhcmdzID09PSBudWxsIHx8IGFyZ3MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFyZ3MudHJpZ2dlckJ1dHRvbiksIGZseW91dDogX19hc3NpZ24oX19hc3NpZ24oX19hc3NpZ24oe30sIFdoYXRzTmV3UlNTRGVmYXVsdEFyZ3MuZmx5b3V0KSwgYXJncyA9PT0gbnVsbCB8fCBhcmdzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhcmdzLmZseW91dCksIHsgaW5uZXJDb250ZW50OiBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgV2hhdHNOZXdSU1NEZWZhdWx0QXJncy5mbHlvdXQuaW5uZXJDb250ZW50KSwgKF9hID0gYXJncyA9PT0gbnVsbCB8fCBhcmdzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhcmdzLmZseW91dCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmlubmVyQ29udGVudCksIGV4Y2VycHQ6IF9fYXNzaWduKF9fYXNzaWduKHt9LCBXaGF0c05ld1JTU0RlZmF1bHRBcmdzLmZseW91dC5leGNlcnB0KSwgKF9iID0gYXJncyA9PT0gbnVsbCB8fCBhcmdzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhcmdzLmZseW91dCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmV4Y2VycHQpIH0pIH0pO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBwYXJzZWQgYXJncy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHtDb25zdHJ1Y3RvckFyZ3N9XG4gICAgICovXG4gICAgV2hhdHNOZXdSU1MucHJvdG90eXBlLmdldEFyZ3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFyZ3M7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBIVE1MIGVsZW1lbnQgcXVlcmllZCB1c2luZyBwYXNzZWQgc2VsZWN0b3IuXG4gICAgICovXG4gICAgV2hhdHNOZXdSU1MucHJvdG90eXBlLnNldEVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5hcmdzLnNlbGVjdG9yKTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGh0bWwgZWxlbWVudCBhY2NvcmRpbmcgdG8gdGhlIHNlbGVjdG9yLlxuICAgICAqXG4gICAgICogQHJldHVybnMge0hUTUxFbGVtZW50fVxuICAgICAqL1xuICAgIFdoYXRzTmV3UlNTLnByb3RvdHlwZS5nZXRFbGVtZW50ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB1bmlxdWUgSUQgZm9yIGN1cnJlbnQgaW5zdGFuY2UsIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhlIGxpYnJhcnkgZWxlbWVudHMuXG4gICAgICovXG4gICAgV2hhdHNOZXdSU1MucHJvdG90eXBlLnNldElEID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgZGF0YSA9IFt0aGlzLmdldEFyZ3MoKS5zZWxlY3Rvcl07XG4gICAgICAgIHZhciByc3NGZWVkVVJMID0gdGhpcy5nZXRBcmdzKCkucnNzRmVlZFVSTDtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocnNzRmVlZFVSTCkpIHtcbiAgICAgICAgICAgIHJzc0ZlZWRVUkwuZm9yRWFjaChmdW5jdGlvbiAoX3Jzc0ZlZWRVUkwpIHtcbiAgICAgICAgICAgICAgICBkYXRhLnB1c2goX3Jzc0ZlZWRVUkwua2V5KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZGF0YS5wdXNoKHJzc0ZlZWRVUkwpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuSUQgPSBidG9hKGRhdGEuam9pbignLScpKS5zbGljZSgtMTIpLnJlcGxhY2UoLz0vZywgJycpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgbXVsdGlwbGUgZmVlZCB1cmxzIGlzIHByb3ZpZGVkIG9yIG5vdC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgICAqL1xuICAgIFdoYXRzTmV3UlNTLnByb3RvdHlwZS5pc011bHRpRmVlZFJTUyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICdzdHJpbmcnICE9PSB0eXBlb2YgdGhpcy5nZXRBcmdzKCkucnNzRmVlZFVSTDtcbiAgICB9O1xuICAgIFdoYXRzTmV3UlNTLnByb3RvdHlwZS5zZXRSU1NGZWVkVVJMcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIHJzc0ZlZWRVUkwgPSB0aGlzLmdldEFyZ3MoKS5yc3NGZWVkVVJMO1xuICAgICAgICBpZiAoIXRoaXMuaXNNdWx0aUZlZWRSU1MoKSkge1xuICAgICAgICAgICAgdGhpcy5yc3NGZWVkVVJMcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBrZXk6IG51bGwsXG4gICAgICAgICAgICAgICAgbGFiZWw6ICcnLFxuICAgICAgICAgICAgICAgIHVybDogcnNzRmVlZFVSTC50b1N0cmluZygpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyc3NGZWVkVVJMKSkge1xuICAgICAgICAgICAgICAgIHJzc0ZlZWRVUkwuZm9yRWFjaChmdW5jdGlvbiAoX2l0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMucnNzRmVlZFVSTHMucHVzaChfaXRlbSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFdoYXRzTmV3UlNTLnByb3RvdHlwZS5nZXRSU1NGZWVkVVJMcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucnNzRmVlZFVSTHM7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGluc3RhbmNlIHVuaXF1ZSBJRC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAgICovXG4gICAgV2hhdHNOZXdSU1MucHJvdG90eXBlLmdldElEID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5JRDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIENoZWNrcyBhbmQgY291bnRzIG5ldyBub3RpZmljYXRpb24gZm9yIHRoZSBub3RpZmljYXRpb24gYmFkZ2UuXG4gICAgICovXG4gICAgV2hhdHNOZXdSU1MucHJvdG90eXBlLnNldE5vdGlmaWNhdGlvbnNDb3VudCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKF9hLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDogcmV0dXJuIFs0IC8qeWllbGQqLywgUHJvbWlzZS5hbGwodGhpcy5nZXRSU1NGZWVkVVJMcygpLm1hcChmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIga2V5ID0gX2Eua2V5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIoX3RoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsYXN0UG9zdFVuaXhUaW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9iKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKF9iLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0UG9zdFVuaXhUaW1lID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEoJ2Z1bmN0aW9uJyA9PT0gdHlwZW9mIHRoaXMuZ2V0QXJncygpLm5vdGlmaWNhdGlvbi5nZXRMYXN0UG9zdFVuaXhUaW1lKSkgcmV0dXJuIFszIC8qYnJlYWsqLywgMl07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbNCAvKnlpZWxkKi8sIHRoaXMuZ2V0QXJncygpLm5vdGlmaWNhdGlvbi5nZXRMYXN0UG9zdFVuaXhUaW1lKGtleSwgdGhpcyldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFBvc3RVbml4VGltZSA9IF9iLnNlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFszIC8qYnJlYWsqLywgM107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0UG9zdFVuaXhUaW1lID0gV2hhdHNOZXdSU1NDYWNoZVV0aWxzLmdldExhc3RQb3N0VW5peFRpbWUoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2IubGFiZWwgPSAzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNNdWx0aUZlZWRSU1MoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tdWx0aUxhc3RQb3N0VW5peFRpbWVba2V5XSA9ICtsYXN0UG9zdFVuaXhUaW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0UG9zdFVuaXhUaW1lID0gK2xhc3RQb3N0VW5peFRpbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi9dO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKV07XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hLnNlbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbNCAvKnlpZWxkKi8sIHRoaXMuUlNTX0ZldGNoX0luc3RhbmNlLmZldGNoRGF0YSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMocmVzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gcmVzW2tleV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWRhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMubXVsdGlOb3RpZmljYXRpb25Db3VudFtrZXldID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjdXJyZW50UG9zdFVuaXhUaW1lID0gK2RhdGFbMF0uZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsYXN0UG9zdFVuaXhUaW1lID0gX3RoaXMuaXNNdWx0aUZlZWRSU1MoKSA/IF90aGlzLm11bHRpTGFzdFBvc3RVbml4VGltZVtrZXldIDogX3RoaXMubGFzdFBvc3RVbml4VGltZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50UG9zdFVuaXhUaW1lID4gbGFzdFBvc3RVbml4VGltZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5kYXRlID4gbGFzdFBvc3RVbml4VGltZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF90aGlzLmlzTXVsdGlGZWVkUlNTKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5tdWx0aU5vdGlmaWNhdGlvbkNvdW50W2tleV0rKztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5tdWx0aUhhc05ld0ZlZWRzW2tleV0gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gS2VlcCBhIHJlY29yZCBvZiB0b3RhbCBub3RpZmljYXRpb25zIGV2ZW4gaW4gbXVsdGktZmVlZCBtb2RlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMubm90aWZpY2F0aW9uc0NvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5oYXNOZXdGZWVkcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5SU1NfVmlld19JbnN0YW5jZS5zZXROb3RpZmljYXRpb24oX3RoaXMubm90aWZpY2F0aW9uc0NvdW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSldO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgICAgICBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0b3RhbCBudW1iZXIgb2YgbmV3IG5vdGlmaWNhdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfVxuICAgICAqL1xuICAgIFdoYXRzTmV3UlNTLnByb3RvdHlwZS5nZXROb3RpZmljYXRpb25zQ291bnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvbnNDb3VudDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHRyaWdnZXJzIGZvciB0aGUgbGlicmFyeSwgZWc6IGNsb3NlLCBvcGVuLCBmZXRjaC5cbiAgICAgKi9cbiAgICBXaGF0c05ld1JTUy5wcm90b3R5cGUuc2V0VHJpZ2dlcnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciB0cmlnZ2VyQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5SU1NfVmlld19JbnN0YW5jZS5nZXRUcmlnZ2VyQnV0dG9uSUQoKSk7XG4gICAgICAgIHZhciBmbHlvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLlJTU19WaWV3X0luc3RhbmNlLmdldEZseW91dElEKCkpO1xuICAgICAgICB2YXIgZmx5b3V0SW5uZXIgPSBmbHlvdXQucXVlcnlTZWxlY3RvcignLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQnKTtcbiAgICAgICAgdmFyIGZseW91dENsb3NlQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5SU1NfVmlld19JbnN0YW5jZS5nZXRGbHlvdXRDbG9zZUJ0bklEKCkpO1xuICAgICAgICB2YXIgbXVsdGlGZWVkTmF2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5SU1NfVmlld19JbnN0YW5jZS5nZXRGbHlvdXRNdWx0aUZlZWROYXZJRCgpKTtcbiAgICAgICAgdmFyIGluamVjdENvbnRlbnRzID0gZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBGZXRjaCBkYXRhIG9uIGZseW91dCBvcGVuLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBfdGhpcy5SU1NfRmV0Y2hfSW5zdGFuY2UuZmV0Y2hEYXRhKClcbiAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgZmx5b3V0SW5uZXIuaW5uZXJIVE1MID0gJyc7XG4gICAgICAgICAgICAgICAgdmFyIGRhdGEgPSByZXNba2V5XTtcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRQb3N0VW5peFRpbWUgPSArZGF0YVswXS5kYXRlO1xuICAgICAgICAgICAgICAgIHZhciBsYXN0UG9zdFVuaXhUaW1lID0gX3RoaXMuaXNNdWx0aUZlZWRSU1MoKSA/IF90aGlzLm11bHRpTGFzdFBvc3RVbml4VGltZVtrZXldIDogX3RoaXMubGFzdFBvc3RVbml4VGltZTtcbiAgICAgICAgICAgICAgICBkYXRhLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGlzTmV3UG9zdCA9ICEhbGFzdFBvc3RVbml4VGltZSA/IGl0ZW0uZGF0ZSA+IGxhc3RQb3N0VW5peFRpbWUgOiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbnRlbnRUaXRsZSA9IF90aGlzLmdldEFyZ3MoKS5mbHlvdXQuaW5uZXJDb250ZW50LnRpdGxlTGluayA/XG4gICAgICAgICAgICAgICAgICAgICAgICBcIjxhIGhyZWY9XFxcIlwiLmNvbmNhdChpdGVtLnBvc3RMaW5rLCBcIlxcXCIgdGFyZ2V0PVxcXCJfYmxhbmtcXFwiPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxoMj5cIikuY29uY2F0KGl0ZW0udGl0bGUsIFwiPC9oMj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2E+XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI8aDI+XCIuY29uY2F0KGl0ZW0udGl0bGUsIFwiPC9oMj5cIik7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpbm5lckNvbnRlbnQgPSBcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxkaXYgY2xhc3M9XFxcInJzcy1jb250ZW50LWhlYWRlclxcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PHA+XCIuY29uY2F0KF90aGlzLlJTU19WaWV3X0luc3RhbmNlLmZvcm1hdERhdGUobmV3IERhdGUoaXRlbS5kYXRlKSksIFwiPC9wPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFwiKS5jb25jYXQoY29udGVudFRpdGxlLCBcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDwvZGl2PlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFwiKS5jb25jYXQoX3RoaXMuUlNTX1ZpZXdfSW5zdGFuY2UuY3JlYXRlRXhjZXJwdChpdGVtLmRlc2NyaXB0aW9uLCBpdGVtLnBvc3RMaW5rLCBfdGhpcy5nZXRBcmdzKCkuZmx5b3V0LmV4Y2VycHQpLCBcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFwiKS5jb25jYXQoX3RoaXMuUlNTX1ZpZXdfSW5zdGFuY2UubGlzdENoaWxkcmVuUG9zdHMoaXRlbS5jaGlsZHJlbiksIFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XCIpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgYWRkaXRpb25hbENsYXNzZXMgPSBfdGhpcy5nZXRBcmdzKCkuZmx5b3V0LmlubmVyQ29udGVudC5hZGRpdGlvbmFsQ2xhc3NlcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEha2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsQ2xhc3Nlcy5wdXNoKCdgaW5uZXItY29udGVudC1pdGVtLWZlZWQta2V5LSR7a2V5fWAnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBmbHlvdXRJbm5lci5pbm5lckhUTUwgKz0gX3RoaXMuUlNTX1ZpZXdfSW5zdGFuY2UuaW5uZXJDb250ZW50V3JhcHBlcihpbm5lckNvbnRlbnQsIGlzTmV3UG9zdCwgYWRkaXRpb25hbENsYXNzZXMuam9pbignICcpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoX3RoaXMuZ2V0QXJncygpLnZpZXdBbGwubGluaykge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGxpbmsgcHJvdmlkZWQgZm9yIHRoZSB2aWV3IGFsbCBidXR0b24gdGhlbiBhcHBlbmQgYSB2aWV3IGFsbCBidXR0b24gYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudHMuXG4gICAgICAgICAgICAgICAgICAgIGZseW91dElubmVyLmlubmVySFRNTCArPSBfdGhpcy5SU1NfVmlld19JbnN0YW5jZS5pbm5lckNvbnRlbnRXcmFwcGVyKFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0PGEgaHJlZj1cXFwiXCIuY29uY2F0KF90aGlzLmdldEFyZ3MoKS52aWV3QWxsLmxpbmssIFwiXFxcIiBjbGFzcz1cXFwiYnV0dG9uIHZpZXctYWxsXFxcIj5cIikuY29uY2F0KF90aGlzLmdldEFyZ3MoKS52aWV3QWxsLmxhYmVsLCBcIjwvYT5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcIikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBfdGhpcy5SU1NfVmlld19JbnN0YW5jZS5zZXRJc0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgIGZseW91dC5jbGFzc0xpc3QuYWRkKCdyZWFkeScpO1xuICAgICAgICAgICAgICAgIF90aGlzLmdldEFyZ3MoKS5mbHlvdXQub25SZWFkeShfdGhpcyk7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQ2hhbmdlIGZvY3VzIHRvIGZseW91dCBvbiBmbHlvdXQgcmVhZHkuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgZmx5b3V0LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBsYXN0IGxhdGVzdCBwb3N0IGRhdGUgZm9yIG5vdGlmaWNhdGlvbiBoYW5kbGluZy5cbiAgICAgICAgICAgICAgICBpZiAoIV90aGlzLmlzTXVsdGlGZWVkUlNTKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMubGFzdFBvc3RVbml4VGltZSA9IGN1cnJlbnRQb3N0VW5peFRpbWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChfdGhpcy5oYXNOZXdGZWVkcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCdmdW5jdGlvbicgPT09IHR5cGVvZiBfdGhpcy5nZXRBcmdzKCkubm90aWZpY2F0aW9uLnNldExhc3RQb3N0VW5peFRpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5nZXRBcmdzKCkubm90aWZpY2F0aW9uLnNldExhc3RQb3N0VW5peFRpbWUoY3VycmVudFBvc3RVbml4VGltZSwga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoYXRzTmV3UlNTQ2FjaGVVdGlscy5zZXRMYXN0UG9zdFVuaXhUaW1lKGN1cnJlbnRQb3N0VW5peFRpbWUsIGtleSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE9wZW4gZmx5b3V0IG9uIHRyaWdnZXIgYnV0dG9uIGNsaWNrLlxuICAgICAgICAgKiBGbHlvdXQgaGFzIHRocmVlIHN0YXRlczogYGNsb3NlZCB8IG9wZW4gfCByZWFkeWBcbiAgICAgICAgICovXG4gICAgICAgIHRyaWdnZXJCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBfdGhpcy5nZXRBcmdzKCkudHJpZ2dlckJ1dHRvbi5vbkNsaWNrKF90aGlzKTtcbiAgICAgICAgICAgIF90aGlzLlJTU19WaWV3X0luc3RhbmNlLnNldElzTG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIGZseW91dC5jbGFzc0xpc3QucmVtb3ZlKCdjbG9zZWQnKTtcbiAgICAgICAgICAgIGZseW91dC5jbGFzc0xpc3QuYWRkKCdvcGVuJyk7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ3doYXRzLW5ldy1yc3MtaXMtYWN0aXZlJyk7XG4gICAgICAgICAgICBfdGhpcy5nZXRBcmdzKCkuZmx5b3V0Lm9uT3BlbihfdGhpcyk7XG4gICAgICAgICAgICBpZiAoIV90aGlzLmlzTXVsdGlGZWVkUlNTKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaW5qZWN0Q29udGVudHMobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgbmF2QnRucyA9IG11bHRpRmVlZE5hdi5xdWVyeVNlbGVjdG9yQWxsKCdidXR0b24nKTtcbiAgICAgICAgICAgIG5hdkJ0bnMuZm9yRWFjaChmdW5jdGlvbiAobmF2QnRuKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuUlNTX1ZpZXdfSW5zdGFuY2Uuc2V0TXVsdGlGZWVkVGFiTm90aWZpY2F0aW9uQ291bnQobmF2QnRuLmRhdGFzZXQuZmVlZEtleSwgX3RoaXMubXVsdGlOb3RpZmljYXRpb25Db3VudFtuYXZCdG4uZGF0YXNldC5mZWVkS2V5XSk7XG4gICAgICAgICAgICAgICAgbmF2QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgY3VycmVudEZlZWRLZXkgPSBuYXZCdG4uZGF0YXNldC5mZWVkS2V5O1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5tdWx0aU5vdGlmaWNhdGlvbkNvdW50W2N1cnJlbnRGZWVkS2V5XSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLlJTU19GZXRjaF9JbnN0YW5jZS5mZXRjaERhdGEoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRQb3N0VW5peFRpbWUgPSByZXNbY3VycmVudEZlZWRLZXldWzBdLmRhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5tdWx0aUxhc3RQb3N0VW5peFRpbWVbY3VycmVudEZlZWRLZXldID0gY3VycmVudFBvc3RVbml4VGltZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0cnVlID09PSBfdGhpcy5tdWx0aUhhc05ld0ZlZWRzW2N1cnJlbnRGZWVkS2V5XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgnZnVuY3Rpb24nID09PSB0eXBlb2YgX3RoaXMuZ2V0QXJncygpLm5vdGlmaWNhdGlvbi5zZXRMYXN0UG9zdFVuaXhUaW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLmdldEFyZ3MoKS5ub3RpZmljYXRpb24uc2V0TGFzdFBvc3RVbml4VGltZShjdXJyZW50UG9zdFVuaXhUaW1lLCBjdXJyZW50RmVlZEtleSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGF0c05ld1JTU0NhY2hlVXRpbHMuc2V0TGFzdFBvc3RVbml4VGltZShjdXJyZW50UG9zdFVuaXhUaW1lLCBjdXJyZW50RmVlZEtleSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMubXVsdGlIYXNOZXdGZWVkc1tjdXJyZW50RmVlZEtleV0gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIG5hdkJ0bnMuZm9yRWFjaChmdW5jdGlvbiAobmF2QnRuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZCdG4uY2xhc3NMaXN0LnJlbW92ZSgnc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmZWVkS2V5ID0gbmF2QnRuLmRhdGFzZXQuZmVlZEtleTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpbm5lckNvbnRlbnRDbGFzc05hbWUgPSBcIi5pbm5lci1jb250ZW50LWl0ZW0tZmVlZC1rZXktXCIuY29uY2F0KGZlZWRLZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChpbm5lckNvbnRlbnRDbGFzc05hbWUpLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudEZlZWRLZXkgIT09IGZlZWRLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBuYXZCdG4uY2xhc3NMaXN0LmFkZCgnc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgaW5qZWN0Q29udGVudHMoY3VycmVudEZlZWRLZXkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBuYXZCdG5zWzBdLmNsaWNrKCk7XG4gICAgICAgIH0pO1xuICAgICAgICAvKipcbiAgICAgICAgICogSGFuZGxlIGV2ZW50cyBmb3IgdGhlIGNsb3Npbmcgb2YgdGhlIGZseW91dC5cbiAgICAgICAgICovXG4gICAgICAgIHZhciBoYW5kbGVGbHlvdXRDbG9zZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGZseW91dC5jbGFzc0xpc3QuYWRkKCdjbG9zZWQnKTtcbiAgICAgICAgICAgIGZseW91dC5jbGFzc0xpc3QucmVtb3ZlKCdvcGVuJyk7XG4gICAgICAgICAgICBmbHlvdXQuY2xhc3NMaXN0LnJlbW92ZSgncmVhZHknKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnd2hhdHMtbmV3LXJzcy1pcy1hY3RpdmUnKTtcbiAgICAgICAgICAgIGlmIChfdGhpcy5pc011bHRpRmVlZFJTUygpKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuUlNTX1ZpZXdfSW5zdGFuY2Uuc2V0Tm90aWZpY2F0aW9uKE9iamVjdC52YWx1ZXMoX3RoaXMubXVsdGlOb3RpZmljYXRpb25Db3VudCkuZmlsdGVyKEJvb2xlYW4pLmxlbmd0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5oYXNOZXdGZWVkcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIF90aGlzLlJTU19WaWV3X0luc3RhbmNlLnNldE5vdGlmaWNhdGlvbihmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmbHlvdXRJbm5lci5pbm5lckhUTUwgPSAnJztcbiAgICAgICAgICAgIF90aGlzLmdldEFyZ3MoKS5mbHlvdXQub25DbG9zZShfdGhpcyk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIENoYW5nZSBmb2N1cyBiYWNrIHRvIHRyaWdnZXIgYnV0dG9uIGFmdGVyIGZseW91dCBjbG9zZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdHJpZ2dlckJ1dHRvbi5mb2N1cygpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5nZXRBcmdzKCkuZmx5b3V0LmNsb3NlT25Fc2MpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIGlmICgnRXNjYXBlJyAhPT0gZS5rZXkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBpZiAoIWZseW91dC5jbGFzc0xpc3QuY29udGFpbnMoJ29wZW4nKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGhhbmRsZUZseW91dENsb3NlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5nZXRBcmdzKCkuZmx5b3V0LmNsb3NlT25PdmVybGF5Q2xpY2spIHtcbiAgICAgICAgICAgIGZseW91dC5xdWVyeVNlbGVjdG9yKCcud2hhdHMtbmV3LXJzcy1mbHlvdXQtb3ZlcmxheScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlRmx5b3V0Q2xvc2UpO1xuICAgICAgICB9XG4gICAgICAgIGZseW91dENsb3NlQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlRmx5b3V0Q2xvc2UpO1xuICAgIH07XG4gICAgcmV0dXJuIFdoYXRzTmV3UlNTO1xufSgpKTtcbnZhciBXaGF0c05ld1JTU0NhY2hlVXRpbHMgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gV2hhdHNOZXdSU1NDYWNoZVV0aWxzKCkge1xuICAgIH1cbiAgICBXaGF0c05ld1JTU0NhY2hlVXRpbHMuc2V0SW5zdGFuY2VJRCA9IGZ1bmN0aW9uIChpbnN0YW5jZUlEKSB7XG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZUlEKSB7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlSUQgPSBpbnN0YW5jZUlEO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBXaGF0c05ld1JTU0NhY2hlVXRpbHMucHJlZml4ZXIgPSBmdW5jdGlvbiAoa2V5LCBwcmVmaXhLZXkpIHtcbiAgICAgICAgaWYgKHByZWZpeEtleSA9PT0gdm9pZCAwKSB7IHByZWZpeEtleSA9ICcnOyB9XG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZUlEKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luc3RhbmNlIElEIG5vdCBzZXQuJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICEhcHJlZml4S2V5ID8gXCJcIi5jb25jYXQodGhpcy5rZXlzW2tleV0sIFwiLVwiKS5jb25jYXQodGhpcy5pbnN0YW5jZUlELCBcIi1cIikuY29uY2F0KHByZWZpeEtleSkgOiBcIlwiLmNvbmNhdCh0aGlzLmtleXNba2V5XSwgXCItXCIpLmNvbmNhdCh0aGlzLmluc3RhbmNlSUQpO1xuICAgIH07XG4gICAgV2hhdHNOZXdSU1NDYWNoZVV0aWxzLl9zZXREYXRhRXhwaXJ5ID0gZnVuY3Rpb24gKHByZWZpeEtleSkge1xuICAgICAgICBpZiAocHJlZml4S2V5ID09PSB2b2lkIDApIHsgcHJlZml4S2V5ID0gJyc7IH1cbiAgICAgICAgdmFyIGV4cGlyeUluU2Vjb25kcyA9IDg2NDAwOyAvLyBEZWZhdWx0cyB0byAyNCBob3Vycy5cbiAgICAgICAgdmFyIG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgICAgIHZhciBleHBpcnkgPSBub3cuZ2V0VGltZSgpICsgKGV4cGlyeUluU2Vjb25kcyAqIDEwMDApO1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMucHJlZml4ZXIoJ1NFU1NJT05fREFUQV9FWFBJUlknLCBwcmVmaXhLZXkpLCBKU09OLnN0cmluZ2lmeShleHBpcnkpKTtcbiAgICB9O1xuICAgIFdoYXRzTmV3UlNTQ2FjaGVVdGlscy5faXNEYXRhRXhwaXJlZCA9IGZ1bmN0aW9uIChwcmVmaXhLZXkpIHtcbiAgICAgICAgaWYgKHByZWZpeEtleSA9PT0gdm9pZCAwKSB7IHByZWZpeEtleSA9ICcnOyB9XG4gICAgICAgIHZhciBrZXkgPSB0aGlzLnByZWZpeGVyKCdTRVNTSU9OX0RBVEFfRVhQSVJZJywgcHJlZml4S2V5KTtcbiAgICAgICAgdmFyIHZhbHVlID0gd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGV4cGlyeSA9IEpTT04ucGFyc2UodmFsdWUpO1xuICAgICAgICB2YXIgbm93ID0gbmV3IERhdGUoKTtcbiAgICAgICAgaWYgKG5vdy5nZXRUaW1lKCkgPiBleHBpcnkpIHtcbiAgICAgICAgICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgICBXaGF0c05ld1JTU0NhY2hlVXRpbHMuc2V0U2Vzc2lvbkRhdGEgPSBmdW5jdGlvbiAoZGF0YSwgcHJlZml4S2V5KSB7XG4gICAgICAgIGlmIChwcmVmaXhLZXkgPT09IHZvaWQgMCkgeyBwcmVmaXhLZXkgPSAnJzsgfVxuICAgICAgICB0aGlzLl9zZXREYXRhRXhwaXJ5KHByZWZpeEtleSk7XG4gICAgICAgIHJldHVybiB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnByZWZpeGVyKCdTRVNTSU9OJywgcHJlZml4S2V5KSwgZGF0YSk7XG4gICAgfTtcbiAgICBXaGF0c05ld1JTU0NhY2hlVXRpbHMuZ2V0U2Vzc2lvbkRhdGEgPSBmdW5jdGlvbiAocHJlZml4S2V5KSB7XG4gICAgICAgIGlmIChwcmVmaXhLZXkgPT09IHZvaWQgMCkgeyBwcmVmaXhLZXkgPSAnJzsgfVxuICAgICAgICBpZiAoIXRoaXMuX2lzRGF0YUV4cGlyZWQocHJlZml4S2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMucHJlZml4ZXIoJ1NFU1NJT04nLCBwcmVmaXhLZXkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJ3t9JztcbiAgICB9O1xuICAgIFdoYXRzTmV3UlNTQ2FjaGVVdGlscy5zZXRMYXN0UG9zdFVuaXhUaW1lID0gZnVuY3Rpb24gKHVuaXhUaW1lLCBwcmVmaXhLZXkpIHtcbiAgICAgICAgaWYgKHByZWZpeEtleSA9PT0gdm9pZCAwKSB7IHByZWZpeEtleSA9ICcnOyB9XG4gICAgICAgIHJldHVybiB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5wcmVmaXhlcignTEFTVF9MQVRFU1RfUE9TVCcsIHByZWZpeEtleSksIHVuaXhUaW1lLnRvU3RyaW5nKCkpO1xuICAgIH07XG4gICAgV2hhdHNOZXdSU1NDYWNoZVV0aWxzLmdldExhc3RQb3N0VW5peFRpbWUgPSBmdW5jdGlvbiAocHJlZml4S2V5KSB7XG4gICAgICAgIGlmIChwcmVmaXhLZXkgPT09IHZvaWQgMCkgeyBwcmVmaXhLZXkgPSAnJzsgfVxuICAgICAgICByZXR1cm4gK3dpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnByZWZpeGVyKCdMQVNUX0xBVEVTVF9QT1NUJywgcHJlZml4S2V5KSk7XG4gICAgfTtcbiAgICBXaGF0c05ld1JTU0NhY2hlVXRpbHMua2V5cyA9IHtcbiAgICAgICAgU0VTU0lPTl9EQVRBX0VYUElSWTogXCJ3aGF0cy1uZXctY2FjaGUtZXhwaXJ5XCIsXG4gICAgICAgIExBU1RfTEFURVNUX1BPU1Q6IFwid2hhdHMtbmV3LWxhc3QtdW5peHRpbWVcIixcbiAgICAgICAgU0VTU0lPTjogXCJ3aGF0cy1uZXctY2FjaGVcIlxuICAgIH07XG4gICAgcmV0dXJuIFdoYXRzTmV3UlNTQ2FjaGVVdGlscztcbn0oKSk7XG4vKipcbiAqIENsYXNzIGZvciBoYW5kbGluZyB0aGUgZGF0YSBmZXRjaGluZy5cbiAqIEl0IGFsc28gaGFuZGxlcyB0aGUgc2Vzc2lvbiBjYWNoaW5nIG9mIHRoZSBmZXRjaGVkIGRhdGEgaW50ZXJuYWxseS5cbiAqL1xudmFyIFdoYXRzTmV3UlNTRmV0Y2ggPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gV2hhdHNOZXdSU1NGZXRjaChSU1MpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdGhpcy5kYXRhID0ge307XG4gICAgICAgIHRoaXMuUlNTID0gUlNTO1xuICAgICAgICB0aGlzLlJTUy5nZXRSU1NGZWVkVVJMcygpLmZvckVhY2goZnVuY3Rpb24gKGZlZWQpIHtcbiAgICAgICAgICAgIHZhciBzZXNzaW9uQ2FjaGUgPSBKU09OLnBhcnNlKFdoYXRzTmV3UlNTQ2FjaGVVdGlscy5nZXRTZXNzaW9uRGF0YShmZWVkLmtleSkpO1xuICAgICAgICAgICAgaWYgKHNlc3Npb25DYWNoZSAmJiBzZXNzaW9uQ2FjaGUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuZGF0YVtmZWVkLmtleV0gPSBzZXNzaW9uQ2FjaGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBXaGF0c05ld1JTU0ZldGNoLnByb3RvdHlwZS5mZXRjaERhdGEgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBmZXRjaFByb21pc2VzO1xuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKF9hLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLmRhdGEpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovLCB0aGlzLmRhdGFdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hQcm9taXNlcyA9IHRoaXMuUlNTLmdldFJTU0ZlZWRVUkxzKCkubWFwKGZ1bmN0aW9uIChmZWVkKSB7IHJldHVybiBfX2F3YWl0ZXIoX3RoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlcywgZGF0YSwgcGFyc2VyLCB4bWxEb2MsIGl0ZW1zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKF9hLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhW2ZlZWQua2V5XSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbNCAvKnlpZWxkKi8sIGZldGNoKGZlZWQudXJsKV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gX2Euc2VudCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbNCAvKnlpZWxkKi8sIHJlcy50ZXh0KCldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogVGhlcmUgd2FzIGFuIGlzc3VlIHdpdGggdGhlIHhtbCBjb250ZW50IHBhcnNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogQW5kIGR1cmluZyBwYXJzZSB3ZSB3ZXJlIGdldHRpbmcgXCI8cGFyc2VyZXJyb3I+XCIgYmVjYXVzZSBvZiB0aGUg4oCYcmFxdW/igJkgZW50aXR5LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoLyZyYXF1bzsvZywgJyZhbXA7cmFxdW87Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbERvYyA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoZGF0YSwgJ3RleHQveG1sJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMgPSB4bWxEb2MucXVlcnlTZWxlY3RvckFsbCgnaXRlbScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBpdGVtLnF1ZXJ5U2VsZWN0b3IoJ3RpdGxlJykudGV4dENvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaW5rID0gaXRlbS5xdWVyeVNlbGVjdG9yKCdsaW5rJykudGV4dENvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb250ZW50RW5jb2RlZCA9IGl0ZW0ucXVlcnlTZWxlY3RvcignY29udGVudFxcXFw6ZW5jb2RlZCwgZW5jb2RlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY29udGVudCA9IGNvbnRlbnRFbmNvZGVkID8gY29udGVudEVuY29kZWQudGV4dENvbnRlbnQgOiAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJzc0RhdGUgPSBpdGVtLnF1ZXJ5U2VsZWN0b3IoJ3B1YkRhdGUnKS5pbm5lckhUTUw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLmRhdGFbZmVlZC5rZXldLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZTogISFyc3NEYXRlID8gK25ldyBEYXRlKHJzc0RhdGUpIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RMaW5rOiBsaW5rLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNvbnRlbnQucmVwbGFjZSgvPGFcXGIoKD86KD8hdGFyZ2V0PSlbXj5dKSopPi9nLCAnPGEkMSB0YXJnZXQ9XCJfYmxhbmtcIj4nKS5yZXBsYWNlKC88cD5cXHMqPFxcL3A+L2csICcnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBKU09OLnBhcnNlKCgoX2EgPSBpdGVtLnF1ZXJ5U2VsZWN0b3IoJ2NoaWxkcmVuJykpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5pbm5lckhUTUwpIHx8ICd7fScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoYXRzTmV3UlNTQ2FjaGVVdGlscy5zZXRTZXNzaW9uRGF0YShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFbZmVlZC5rZXldKSwgZmVlZC5rZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7IH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgUHJvbWlzZS5hbGwoZmV0Y2hQcm9taXNlcyldO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgICAgICBfYS5zZW50KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qLywgdGhpcy5kYXRhXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gV2hhdHNOZXdSU1NGZXRjaDtcbn0oKSk7XG4vKipcbiAqIFRoZSBjbGFzcyBmb3IgaGFuZGxpbmcgbGlicmFyeSB0cmlnZ2VyIGJ1dHRvbiBhbmQgZmx5b3V0IGVsZW1lbnRzLlxuICogSXQgYWxzbyBwcm92aWRlcyBzb21lIG5lY2Vzc2FyeSBtZXRob2RzIHRoYXQgY2FuIGJlIHVzZWQgZHVyaW5nIGRldmVsb3BtZW50LlxuICovXG52YXIgV2hhdHNOZXdSU1NWaWV3ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFdoYXRzTmV3UlNTVmlldyhSU1MpIHtcbiAgICAgICAgdGhpcy5SU1MgPSBSU1M7XG4gICAgICAgIHRoaXMuY3JlYXRlVHJpZ2dlckJ1dHRvbigpO1xuICAgICAgICB0aGlzLmNyZWF0ZUZseU91dCgpO1xuICAgIH1cbiAgICBXaGF0c05ld1JTU1ZpZXcucHJvdG90eXBlLmdldFRyaWdnZXJCdXR0b25JRCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFwid2hhdHMtbmV3LXJzcy1idG4tXCIuY29uY2F0KHRoaXMuUlNTLmdldElEKCkpO1xuICAgIH07XG4gICAgV2hhdHNOZXdSU1NWaWV3LnByb3RvdHlwZS5nZXRGbHlvdXRJRCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIFwid2hhdHMtbmV3LXJzcy1mbHlvdXQtXCIuY29uY2F0KHRoaXMuUlNTLmdldElEKCkpO1xuICAgIH07XG4gICAgV2hhdHNOZXdSU1NWaWV3LnByb3RvdHlwZS5nZXRGbHlvdXRDbG9zZUJ0bklEID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gXCJ3aGF0cy1uZXctcnNzLWZseW91dC1jbG9zZS1cIi5jb25jYXQodGhpcy5SU1MuZ2V0SUQoKSk7XG4gICAgfTtcbiAgICBXaGF0c05ld1JTU1ZpZXcucHJvdG90eXBlLmdldEZseW91dE11bHRpRmVlZE5hdklEID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gXCJ3aGF0cy1uZXctcnNzLWZseW91dC1tdWx0aS1mZWVkLW5hdi1cIi5jb25jYXQodGhpcy5SU1MuZ2V0SUQoKSk7XG4gICAgfTtcbiAgICBXaGF0c05ld1JTU1ZpZXcucHJvdG90eXBlLnNldElzTG9hZGluZyA9IGZ1bmN0aW9uIChpc0xvYWRpbmcpIHtcbiAgICAgICAgaWYgKGlzTG9hZGluZyA9PT0gdm9pZCAwKSB7IGlzTG9hZGluZyA9IGZhbHNlOyB9XG4gICAgICAgIHZhciBmbHlvdXRXcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5nZXRGbHlvdXRJRCgpKTtcbiAgICAgICAgaWYgKGlzTG9hZGluZykge1xuICAgICAgICAgICAgZmx5b3V0V3JhcHBlci5jbGFzc0xpc3QuYWRkKCdpcy1sb2FkaW5nJyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBmbHlvdXRXcmFwcGVyLmNsYXNzTGlzdC5yZW1vdmUoJ2lzLWxvYWRpbmcnKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgV2hhdHNOZXdSU1NWaWV3LnByb3RvdHlwZS5zZXROb3RpZmljYXRpb24gPSBmdW5jdGlvbiAobm90aWZpY2F0aW9uc0NvdW50KSB7XG4gICAgICAgIHZhciBub3RpZmljYXRpb25CYWRnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjXCIuY29uY2F0KHRoaXMuZ2V0VHJpZ2dlckJ1dHRvbklEKCksIFwiIC53aGF0cy1uZXctcnNzLW5vdGlmaWNhdGlvbi1iYWRnZVwiKSk7XG4gICAgICAgIGlmICghIW5vdGlmaWNhdGlvbnNDb3VudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuUlNTLmlzTXVsdGlGZWVkUlNTKCkpIHtcbiAgICAgICAgICAgICAgICBub3RpZmljYXRpb25CYWRnZS5pbm5lckhUTUwgPSAnJztcbiAgICAgICAgICAgICAgICBub3RpZmljYXRpb25CYWRnZS5jbGFzc0xpc3QuYWRkKCdpcy1tdWx0aS1mZWVkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBub3RpZmljYXRpb25CYWRnZS5pbm5lckhUTUwgPSBub3RpZmljYXRpb25zQ291bnQgPiA5ID8gXCI5K1wiIDogbm90aWZpY2F0aW9uc0NvdW50LnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBub3RpZmljYXRpb25CYWRnZS5jbGFzc0xpc3QucmVtb3ZlKCdoaWRlJyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBub3RpZmljYXRpb25CYWRnZS5jbGFzc0xpc3QuYWRkKCdoaWRlJyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFdoYXRzTmV3UlNTVmlldy5wcm90b3R5cGUuY3JlYXRlVHJpZ2dlckJ1dHRvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGJ1dHRvbiA9IFwiXFxuXFx0XFx0XCIuY29uY2F0KHRoaXMuUlNTLmdldEFyZ3MoKS50cmlnZ2VyQnV0dG9uLmJlZm9yZUJ0biwgXCJcXG5cXHRcXHQ8YSBjbGFzcz1cXFwid2hhdHMtbmV3LXJzcy10cmlnZ2VyLWJ1dHRvblxcXCIgaWQ9XFxcIlwiKS5jb25jYXQodGhpcy5nZXRUcmlnZ2VyQnV0dG9uSUQoKSwgXCJcXFwiPlxcblxcdFxcdFxcdFwiKS5jb25jYXQodGhpcy5SU1MuZ2V0QXJncygpLnRyaWdnZXJCdXR0b24uaWNvbiwgXCJcXG5cXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJ3aGF0cy1uZXctcnNzLW5vdGlmaWNhdGlvbi1iYWRnZSBoaWRlXFxcIj4wPC9kaXY+XFxuXFx0XFx0PC9hPlxcblxcdFxcdFwiKS5jb25jYXQodGhpcy5SU1MuZ2V0QXJncygpLnRyaWdnZXJCdXR0b24uYWZ0ZXJCdG4sIFwiXFxuXFx0XFx0XCIpO1xuICAgICAgICB0aGlzLlJTUy5nZXRFbGVtZW50KCkuaW5uZXJIVE1MICs9IGJ1dHRvbjtcbiAgICB9O1xuICAgIFdoYXRzTmV3UlNTVmlldy5wcm90b3R5cGUuY3JlYXRlRmx5T3V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgd3JhcHBlckNsYXNzZXMgPSBbXG4gICAgICAgICAgICAnd2hhdHMtbmV3LXJzcy1mbHlvdXQnLFxuICAgICAgICAgICAgJ2Nsb3NlZCcsXG4gICAgICAgIF07XG4gICAgICAgIGlmICh0aGlzLlJTUy5nZXRBcmdzKCkuZmx5b3V0LmNsYXNzTmFtZSkge1xuICAgICAgICAgICAgd3JhcHBlckNsYXNzZXMucHVzaCh0aGlzLlJTUy5nZXRBcmdzKCkuZmx5b3V0LmNsYXNzTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG11bHRpRmVlZE5hdiA9IFtdO1xuICAgICAgICBpZiAodGhpcy5SU1MuaXNNdWx0aUZlZWRSU1MoKSkge1xuICAgICAgICAgICAgbXVsdGlGZWVkTmF2LnB1c2goXCI8bmF2IGlkPVxcXCJcIi5jb25jYXQodGhpcy5nZXRGbHlvdXRNdWx0aUZlZWROYXZJRCgpLCBcIlxcXCIgY2xhc3M9XFxcIndoYXRzLW5ldy1yc3MtbXVsdGktZmVlZC1uYXZcXFwiPlwiKSk7XG4gICAgICAgICAgICB0aGlzLlJTUy5nZXRSU1NGZWVkVVJMcygpLmZvckVhY2goZnVuY3Rpb24gKGZlZWQpIHtcbiAgICAgICAgICAgICAgICBtdWx0aUZlZWROYXYucHVzaChcIjxidXR0b24gdHlwZT1cXFwiYnV0dG9uXFxcIiBkYXRhLWZlZWQta2V5PVxcXCJcIi5jb25jYXQoZmVlZC5rZXksIFwiXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcIikuY29uY2F0KGZlZWQubGFiZWwsIFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0PGRpdiBjbGFzcz1cXFwibmV3LW5vdGlmaWNhdGlvbi1jb3VudFxcXCI+PC9kaXY+XFxuXFx0XFx0XFx0XFx0XFx0PC9idXR0b24+XFxuXFx0XFx0XFx0XFx0XFx0XCIpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbXVsdGlGZWVkTmF2LnB1c2goJzwvbmF2PicpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBmbHlvdXRXcmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGZseW91dFdyYXBwZXIuc2V0QXR0cmlidXRlKCdpZCcsIHRoaXMuZ2V0Rmx5b3V0SUQoKSk7XG4gICAgICAgIGZseW91dFdyYXBwZXIuc2V0QXR0cmlidXRlKCdjbGFzcycsIHdyYXBwZXJDbGFzc2VzLmpvaW4oJyAnKSk7XG4gICAgICAgIGZseW91dFdyYXBwZXIuc2V0QXR0cmlidXRlKCdyb2xlJywgJ2RpYWxvZycpO1xuICAgICAgICBmbHlvdXRXcmFwcGVyLmlubmVySFRNTCA9IFwiXFxuXFx0XFx0PGRpdiBjbGFzcz1cXFwid2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHNcXFwiPlxcblxcblxcdFxcdFxcdDxkaXYgY2xhc3M9XFxcIndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWhlYWRlclxcXCI+XFxuXFxuXFx0XFx0XFx0XFx0PGRpdiBjbGFzcz1cXFwid2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItaGVhZGVyX190aXRsZS1pY29uLXdyYXBwZXJcXFwiPlxcblxcdFxcdFxcdFxcdFxcdDxoMz5cIi5jb25jYXQodGhpcy5SU1MuZ2V0QXJncygpLmZseW91dC50aXRsZSwgXCI8L2gzPlxcblxcblxcdFxcdFxcdFxcdFxcdDxzcGFuIGNsYXNzPVxcXCJ3aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1oZWFkZXJfX2xvYWRpbmctaWNvblxcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XCIpLmNvbmNhdCh0aGlzLlJTUy5nZXRBcmdzKCkubG9hZGVySWNvbiwgXCJcXG5cXHRcXHRcXHRcXHRcXHQ8L3NwYW4+XFxuXFx0XFx0XFx0XFx0PC9kaXY+XFxuXFxuXFx0XFx0XFx0XFx0PGJ1dHRvbiB0eXBlPVxcXCJidXR0b25cXFwiIGlkPVxcXCJcIikuY29uY2F0KHRoaXMuZ2V0Rmx5b3V0Q2xvc2VCdG5JRCgpLCBcIlxcXCI+XCIpLmNvbmNhdCh0aGlzLlJTUy5nZXRBcmdzKCkuZmx5b3V0LmNsb3NlQnRuSWNvbiwgXCI8L2J1dHRvbj5cXG5cXHRcXHRcXHQ8L2Rpdj5cXG5cXG5cXHRcXHRcXHRcIikuY29uY2F0KG11bHRpRmVlZE5hdi5qb2luKCcnKSwgXCJcXG5cXG5cXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJ3aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50XFxcIj5cXG5cXHRcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJza2VsZXRvbi1jb250YWluZXJcXFwiPlxcblxcdFxcdFxcdFxcdFxcdDxkaXYgY2xhc3M9XFxcInNrZWxldG9uLXJvdyB3aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50LWl0ZW1cXFwiPjwvZGl2PlxcblxcdFxcdFxcdFxcdFxcdDxkaXYgY2xhc3M9XFxcInNrZWxldG9uLXJvdyB3aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50LWl0ZW1cXFwiPjwvZGl2PlxcblxcdFxcdFxcdFxcdFxcdDxkaXYgY2xhc3M9XFxcInNrZWxldG9uLXJvdyB3aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50LWl0ZW1cXFwiPjwvZGl2PlxcblxcdFxcdFxcdFxcdDwvZGl2PlxcblxcdFxcdFxcdDwvZGl2PlxcblxcblxcdFxcdDwvZGl2PlxcblxcblxcdFxcdDxkaXYgY2xhc3M9XFxcIndoYXRzLW5ldy1yc3MtZmx5b3V0LW92ZXJsYXlcXFwiPjwvZGl2PlxcblxcdFxcdFwiKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmbHlvdXRXcmFwcGVyKTtcbiAgICB9O1xuICAgIFdoYXRzTmV3UlNTVmlldy5wcm90b3R5cGUuc2V0TXVsdGlGZWVkVGFiTm90aWZpY2F0aW9uQ291bnQgPSBmdW5jdGlvbiAoa2V5LCBub3RpZmljYXRpb25Db3VudCkge1xuICAgICAgICBpZiAobm90aWZpY2F0aW9uQ291bnQgPT09IHZvaWQgMCkgeyBub3RpZmljYXRpb25Db3VudCA9IDA7IH1cbiAgICAgICAgdmFyIHRhYkJ0biA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjXCIuY29uY2F0KHRoaXMuZ2V0Rmx5b3V0TXVsdGlGZWVkTmF2SUQoKSwgXCIgYnV0dG9uW2RhdGEtZmVlZC1rZXk9XFxcIlwiKS5jb25jYXQoa2V5LCBcIlxcXCJdXCIpKTtcbiAgICAgICAgaWYgKCF0YWJCdG4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZWwgPSB0YWJCdG4ucXVlcnlTZWxlY3RvcignLm5ldy1ub3RpZmljYXRpb24tY291bnQnKTtcbiAgICAgICAgaWYgKG5vdGlmaWNhdGlvbkNvdW50KSB7XG4gICAgICAgICAgICB2YXIgX2NvdW50ID0gbm90aWZpY2F0aW9uQ291bnQgPiA5ID8gJzkrJyA6IG5vdGlmaWNhdGlvbkNvdW50O1xuICAgICAgICAgICAgZWwuaW5uZXJIVE1MID0gX2NvdW50LnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBlbC5pbm5lckhUTUwgPSAnJztcbiAgICAgICAgfVxuICAgIH07XG4gICAgV2hhdHNOZXdSU1NWaWV3LnByb3RvdHlwZS5pbm5lckNvbnRlbnRXcmFwcGVyID0gZnVuY3Rpb24gKGNvbnRlbnQsIGlzTmV3UG9zdCwgYWRkaXRpb25hbENsYXNzZXMpIHtcbiAgICAgICAgaWYgKGlzTmV3UG9zdCA9PT0gdm9pZCAwKSB7IGlzTmV3UG9zdCA9IGZhbHNlOyB9XG4gICAgICAgIGlmIChhZGRpdGlvbmFsQ2xhc3NlcyA9PT0gdm9pZCAwKSB7IGFkZGl0aW9uYWxDbGFzc2VzID0gJyc7IH1cbiAgICAgICAgdmFyIGNsYXNzZXMgPSBbJ3doYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQtaXRlbSddO1xuICAgICAgICBpZiAoaXNOZXdQb3N0KSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3Jzcy1uZXctcG9zdCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghIWFkZGl0aW9uYWxDbGFzc2VzKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goYWRkaXRpb25hbENsYXNzZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBcIlxcblxcdFxcdDxkaXYgY2xhc3M9XFxcIlwiLmNvbmNhdChjbGFzc2VzLmpvaW4oJyAnKSwgXCJcXFwiPlxcblxcdFxcdFxcdFwiKS5jb25jYXQoaXNOZXdQb3N0ID8gJzxzbWFsbCBjbGFzcz1cIm5ldy1wb3N0LWJhZGdlXCI+TmV3IOKcqDwvc21hbGw+JyA6ICcnLCBcIlxcblxcdFxcdFxcdFwiKS5jb25jYXQoY29udGVudCwgXCJcXG5cXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcIik7XG4gICAgfTtcbiAgICBXaGF0c05ld1JTU1ZpZXcucHJvdG90eXBlLmNyZWF0ZUV4Y2VycHQgPSBmdW5jdGlvbiAoY29udGVudCwgcmVhZE1vcmVMaW5rLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciB3b3JkTGltaXQgPSBvcHRpb25zLndvcmRMaW1pdCwgbW9yZVN5bWJvbCA9IG9wdGlvbnMubW9yZVN5bWJvbCwgcmVhZE1vcmUgPSBvcHRpb25zLnJlYWRNb3JlO1xuICAgICAgICBpZiAoIXdvcmRMaW1pdCkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHBsYWluVGV4dCA9IGNvbnRlbnQucmVwbGFjZSgvPFtePl0qPi9nLCAnJyk7XG4gICAgICAgIHZhciB3b3JkcyA9IHBsYWluVGV4dC5zcGxpdCgvXFxzKy8pO1xuICAgICAgICB2YXIgcmF3RXhjZXJwdCA9IHdvcmRzLnNsaWNlKDAsIHdvcmRMaW1pdCkuam9pbignICcpO1xuICAgICAgICBpZiAobW9yZVN5bWJvbCkge1xuICAgICAgICAgICAgcmF3RXhjZXJwdCArPSBtb3JlU3ltYm9sO1xuICAgICAgICB9XG4gICAgICAgIGlmICh3b3JkTGltaXQgPiB3b3Jkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBjb250ZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmICghIXJlYWRNb3JlTGluayAmJiAhIShyZWFkTW9yZSA9PT0gbnVsbCB8fCByZWFkTW9yZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVhZE1vcmUubGFiZWwpKSB7XG4gICAgICAgICAgICByZXR1cm4gXCI8cD5cIi5jb25jYXQocmF3RXhjZXJwdCwgXCIgPGEgaHJlZj1cXFwiXCIpLmNvbmNhdChyZWFkTW9yZUxpbmssIFwiXFxcIiB0YXJnZXQ9XFxcIl9ibGFua1xcXCIgY2xhc3M9XFxcIlwiKS5jb25jYXQocmVhZE1vcmUuY2xhc3NOYW1lLCBcIlxcXCI+XCIpLmNvbmNhdChyZWFkTW9yZS5sYWJlbCwgXCI8L2E+PC9wPlwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gXCI8cD5cIi5jb25jYXQocmF3RXhjZXJwdCwgXCI8L3A+XCIpO1xuICAgIH07XG4gICAgV2hhdHNOZXdSU1NWaWV3LnByb3RvdHlwZS5saXN0Q2hpbGRyZW5Qb3N0cyA9IGZ1bmN0aW9uIChjaGlsZHJlbikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgX2NoaWxkcmVuID0gT2JqZWN0LnZhbHVlcyhjaGlsZHJlbik7XG4gICAgICAgIGlmICghX2NoaWxkcmVuLmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgdmFyIGRldGFpbHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkZXRhaWxzJyk7XG4gICAgICAgIHZhciBzdW1tYXJ5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3VtbWFyeScpO1xuICAgICAgICB2YXIgaXRlbXNXcmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIF9jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICAgICAgdmFyIHBvc3RDb250ZW50RG9jID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhjaGlsZC5wb3N0X2NvbnRlbnQsICd0ZXh0L2h0bWwnKTtcbiAgICAgICAgICAgIHZhciBpdGVtRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICBpdGVtRGl2LmNsYXNzTGlzdC5hZGQoJ3N1Yi12ZXJzaW9uLWl0ZW0nKTtcbiAgICAgICAgICAgIGl0ZW1EaXYuaW5uZXJIVE1MID0gXCJcXG5cXHRcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJzdWItdmVyc2lvbi1oZWFkZXJcXFwiPlxcblxcdFxcdFxcdFxcdFxcdDxoNCBjbGFzcz1cXFwic3ViLXZlcnNpb24tdGl0bGVcXFwiPlwiLmNvbmNhdChjaGlsZC5wb3N0X3RpdGxlLCBcIjwvaDQ+XFxuXFx0XFx0XFx0XFx0XFx0PHNwYW4gY2xhc3M9XFxcInN1Yi12ZXJzaW9uLWRhdGVcXFwiPlwiKS5jb25jYXQoX3RoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZShjaGlsZC5wb3N0X2RhdGUpKSwgXCI8L3NwYW4+XFxuXFx0XFx0XFx0XFx0PC9kaXY+XFxuXFx0XFx0XFx0XFx0PGRpdiBjbGFzcz1cXFwic3ViLXZlcnNpb24tY29udGVudFxcXCI+XCIpLmNvbmNhdChwb3N0Q29udGVudERvYy5kb2N1bWVudEVsZW1lbnQudGV4dENvbnRlbnQsIFwiPC9kaXY+XFxuXFx0XFx0XFx0XCIpO1xuICAgICAgICAgICAgaXRlbXNXcmFwcGVyLmFwcGVuZENoaWxkKGl0ZW1EaXYpO1xuICAgICAgICB9KTtcbiAgICAgICAgc3VtbWFyeS5pbm5lckhUTUwgPSAnPHAgY2xhc3M9XCJ0ZXh0LXNlZS1tb3JlXCI+U2VlIE1vcmU8L3A+PHAgY2xhc3M9XCJ0ZXh0LXNlZS1sZXNzXCI+U2VlIExlc3M8L3A+JztcbiAgICAgICAgZGV0YWlscy5hcHBlbmRDaGlsZChzdW1tYXJ5KTtcbiAgICAgICAgZGV0YWlscy5hcHBlbmRDaGlsZChpdGVtc1dyYXBwZXIpO1xuICAgICAgICBpdGVtc1dyYXBwZXIuY2xhc3NMaXN0LmFkZCgnc3ViLXZlcnNpb24taXRlbXMtd3JhcHBlcicpO1xuICAgICAgICBkZXRhaWxzLmNsYXNzTGlzdC5hZGQoJ3doYXRzLW5ldy1yc3Mtc3ViLXZlcnNpb24tZGV0YWlscycpO1xuICAgICAgICByZXR1cm4gZGV0YWlscy5vdXRlckhUTUw7XG4gICAgfTtcbiAgICBXaGF0c05ld1JTU1ZpZXcucHJvdG90eXBlLmZvcm1hdERhdGUgPSBmdW5jdGlvbiAoZGF0ZSkge1xuICAgICAgICBpZiAoJ2Z1bmN0aW9uJyA9PT0gdHlwZW9mIHRoaXMuUlNTLmdldEFyZ3MoKS5mbHlvdXQuZm9ybWF0RGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuUlNTLmdldEFyZ3MoKS5mbHlvdXQuZm9ybWF0RGF0ZShkYXRlKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICB2YXIgdGltZXN0YW1wID0gZGF0ZS5nZXRUaW1lKCk7XG4gICAgICAgIHZhciBjdXJyZW50VGltZXN0YW1wID0gY3VycmVudERhdGUuZ2V0VGltZSgpO1xuICAgICAgICB2YXIgZGlmZmVyZW5jZSA9IGN1cnJlbnRUaW1lc3RhbXAgLSB0aW1lc3RhbXA7XG4gICAgICAgIC8vIERlZmluZSB0aW1lIGludGVydmFscyBpbiBtaWxsaXNlY29uZHNcbiAgICAgICAgdmFyIG1pbnV0ZSA9IDYwICogMTAwMDtcbiAgICAgICAgdmFyIGhvdXIgPSBtaW51dGUgKiA2MDtcbiAgICAgICAgdmFyIGRheSA9IGhvdXIgKiAyNDtcbiAgICAgICAgdmFyIHdlZWsgPSBkYXkgKiA3O1xuICAgICAgICB2YXIgbW9udGggPSBkYXkgKiAzMDsgLy8gUm91Z2ggZXN0aW1hdGUsIGFzc3VtaW5nIDMwIGRheXMgaW4gYSBtb250aFxuICAgICAgICBpZiAoZGlmZmVyZW5jZSA8IG1pbnV0ZSkge1xuICAgICAgICAgICAgcmV0dXJuICdKdXN0IG5vdyc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZGlmZmVyZW5jZSA8IGhvdXIpIHtcbiAgICAgICAgICAgIHZhciBtaW51dGVzID0gTWF0aC5mbG9vcihkaWZmZXJlbmNlIC8gbWludXRlKTtcbiAgICAgICAgICAgIHJldHVybiBcIlwiLmNvbmNhdChtaW51dGVzLCBcIiBtaW51dGVcIikuY29uY2F0KG1pbnV0ZXMgPiAxID8gJ3MnIDogJycsIFwiIGFnb1wiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChkaWZmZXJlbmNlIDwgZGF5KSB7XG4gICAgICAgICAgICB2YXIgaG91cnMgPSBNYXRoLmZsb29yKGRpZmZlcmVuY2UgLyBob3VyKTtcbiAgICAgICAgICAgIHJldHVybiBcIlwiLmNvbmNhdChob3VycywgXCIgaG91clwiKS5jb25jYXQoaG91cnMgPiAxID8gJ3MnIDogJycsIFwiIGFnb1wiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChkaWZmZXJlbmNlIDwgd2Vlaykge1xuICAgICAgICAgICAgdmFyIGRheXMgPSBNYXRoLmZsb29yKGRpZmZlcmVuY2UgLyBkYXkpO1xuICAgICAgICAgICAgcmV0dXJuIFwiXCIuY29uY2F0KGRheXMsIFwiIGRheVwiKS5jb25jYXQoZGF5cyA+IDEgPyAncycgOiAnJywgXCIgYWdvXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGRpZmZlcmVuY2UgPCBtb250aCkge1xuICAgICAgICAgICAgdmFyIHdlZWtzID0gTWF0aC5mbG9vcihkaWZmZXJlbmNlIC8gd2Vlayk7XG4gICAgICAgICAgICByZXR1cm4gXCJcIi5jb25jYXQod2Vla3MsIFwiIHdlZWtcIikuY29uY2F0KHdlZWtzID4gMSA/ICdzJyA6ICcnLCBcIiBhZ29cIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgbW9udGhzIGFuZCB5ZWFycyBhY2NvcmRpbmdseVxuICAgICAgICAgICAgLy8gVGhpcyBpcyBhIHJvdWdoIGVzdGltYXRlIGFuZCBtYXkgbm90IGJlIGFjY3VyYXRlIGluIGFsbCBjYXNlc1xuICAgICAgICAgICAgdmFyIG1vbnRocyA9IE1hdGguZmxvb3IoZGlmZmVyZW5jZSAvIG1vbnRoKTtcbiAgICAgICAgICAgIHJldHVybiBcIlwiLmNvbmNhdChtb250aHMsIFwiIG1vbnRoXCIpLmNvbmNhdChtb250aHMgPiAxID8gJ3MnIDogJycsIFwiIGFnb1wiKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIFdoYXRzTmV3UlNTVmlldztcbn0oKSk7XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENTUygpIHtcbiAgICByZXR1cm4gYC53aGF0cy1uZXctcnNzLWlzLWFjdGl2ZXtvdmVyZmxvdzpoaWRkZW59LndoYXRzLW5ldy1yc3MtdHJpZ2dlci1idXR0b257ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDphdXRvO3BhZGRpbmc6NXB4O2N1cnNvcjpwb2ludGVyfS53aGF0cy1uZXctcnNzLXRyaWdnZXItYnV0dG9uIC53aGF0cy1uZXctcnNzLW5vdGlmaWNhdGlvbi1iYWRnZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LThweDtyaWdodDotNXB4O3dpZHRoOjIwcHg7Zm9udC1zaXplOjEwcHg7bGluZS1oZWlnaHQ6MjBweDt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItcmFkaXVzOjEwcHg7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOnJlZDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgZWFzZS1pbi1vdXR9LndoYXRzLW5ldy1yc3MtdHJpZ2dlci1idXR0b24gLndoYXRzLW5ldy1yc3Mtbm90aWZpY2F0aW9uLWJhZGdlLmlzLW11bHRpLWZlZWR7dG9wOi0ycHg7cmlnaHQ6LTJweDtmb250LXNpemU6MDt3aWR0aDoxMHB4O2hlaWdodDoxMHB4fS53aGF0cy1uZXctcnNzLXRyaWdnZXItYnV0dG9uIC53aGF0cy1uZXctcnNzLW5vdGlmaWNhdGlvbi1iYWRnZS5oaWRle2Rpc3BsYXk6bm9uZX0ud2hhdHMtbmV3LXJzcy10cmlnZ2VyLWJ1dHRvbjpob3ZlciAud2hhdHMtbmV3LXJzcy1ub3RpZmljYXRpb24tYmFkZ2V7dHJhbnNmb3JtOnNjYWxlKDEuMil9LndoYXRzLW5ldy1yc3MtZmx5b3V0e3Bvc2l0aW9uOmZpeGVkO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7d2lkdGg6MTAwJTt6LWluZGV4Ojk5OTk5O3RyYW5zaXRpb246dmlzaWJpbGl0eSAuM3MgZWFzZS1pbi1vdXQ7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWZ9LndoYXRzLW5ldy1yc3MtZmx5b3V0IC5saWdodGJveC10cmlnZ2VyLC53aGF0cy1uZXctcnNzLWZseW91dC5oaWRkZW57ZGlzcGxheTpub25lfS53aGF0cy1uZXctcnNzLWZseW91dC5pcy1sb2FkaW5nIC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1oZWFkZXJfX2xvYWRpbmctaWNvbntkaXNwbGF5OmJsb2NrO21hcmdpbjphdXRvfS53aGF0cy1uZXctcnNzLWZseW91dC5pcy1sb2FkaW5nIC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1oZWFkZXJfX2xvYWRpbmctaWNvbiBzdmd7ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kOjAgMDt3aWR0aDoyNXB4O2hlaWdodDoyNXB4fS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHN7cG9zaXRpb246Zml4ZWQ7ZGlzcGxheTpmbGV4O3JpZ2h0OjA7d2lkdGg6MzAlO2hlaWdodDoxMDAlO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0O3otaW5kZXg6OTk5OX0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1oZWFkZXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjE2cHggMjBweCAxNnB4IDI0cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjY30ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1oZWFkZXIgYnV0dG9ue2JvcmRlcjpub25lO2JhY2tncm91bmQ6MCAwO2ZvbnQtc2l6ZTozMHB4O2N1cnNvcjpwb2ludGVyO2NvbG9yOiM5NGEzYjg7cGFkZGluZzowO21hcmdpbjowO2JveC1zaGFkb3c6bm9uZX0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1oZWFkZXIgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWhlYWRlcl9fdGl0bGUtaWNvbi13cmFwcGVye2Rpc3BsYXk6ZmxleDtnYXA6MTBweH0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1oZWFkZXIgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWhlYWRlcl9fdGl0bGUtaWNvbi13cmFwcGVyIGgze21hcmdpbjowO3BhZGRpbmc6MDtjb2xvcjojMGYxNzJhO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoyNHB4fS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3MtbXVsdGktZmVlZC1uYXZ7ZGlzcGxheTpmbGV4O3BhZGRpbmc6MCAzMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2M7Z2FwOjJlbTtvdmVyZmxvdzphdXRvO3doaXRlLXNwYWNlOm5vd3JhcH0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLW11bHRpLWZlZWQtbmF2IGJ1dHRvbntwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOjAgMDtjb2xvcjppbmhlcml0O3BhZGRpbmc6MTVweCAwO2JvcmRlci1ib3R0b206MnB4IHNvbGlkIHRyYW5zcGFyZW50fS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3MtbXVsdGktZmVlZC1uYXYgYnV0dG9uOmZvY3VzLC53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3MtbXVsdGktZmVlZC1uYXYgYnV0dG9uOmhvdmVye2JvcmRlci1jb2xvcjppbmhlcml0fS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3MtbXVsdGktZmVlZC1uYXYgYnV0dG9uLnNlbGVjdGVke2JvcmRlci1jb2xvcjojNWQ1ZDVkfS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3MtbXVsdGktZmVlZC1uYXYgYnV0dG9uIC5uZXctbm90aWZpY2F0aW9uLWNvdW50e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0Oi0xMHB4O3dpZHRoOjIwcHg7Zm9udC1zaXplOjEwcHg7bGluZS1oZWlnaHQ6MjBweDt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItcmFkaXVzOjEwcHg7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOnJlZH0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50e2ZsZXg6MTtvdmVyZmxvdy15OmF1dG99LndoYXRzLW5ldy1yc3MtZmx5b3V0IC53aGF0cy1uZXctcnNzLWZseW91dC1jb250ZW50cyAud2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItY29udGVudCAuc2tlbGV0b24tY29udGFpbmVye21hcmdpbjozMHB4fS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQtaXRlbXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZDhkZmU5O3BhZGRpbmc6MzBweCAyNHB4O2NvbG9yOiM0NzU1Njk7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIwcHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTNweH0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50IC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50LWl0ZW0+KnttYXJnaW46MH0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50IC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50LWl0ZW0uc2tlbGV0b24tcm93e2hlaWdodDoyNXZoO21hcmdpbjo0MHB4IDA7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsI2VlZSAyNSUsI2RkZCA1MCUsI2VlZSA3NSUpO2JhY2tncm91bmQtc2l6ZToyMDAlIDEwMCU7YW5pbWF0aW9uOnNoaW1tZXIgMS41cyBpbmZpbml0ZX0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50IC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50LWl0ZW0ucnNzLW5ldy1wb3N0e3Bvc2l0aW9uOnJlbGF0aXZlfS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQtaXRlbS5yc3MtbmV3LXBvc3QgLm5ldy1wb3N0LWJhZGdle2JhY2tncm91bmQ6I2ZmM2QzZDtib3JkZXItcmFkaXVzOjVweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDo0NXB4O3BhZGRpbmc6MCA1cHg7Y29sb3I6I2ZmZn0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50IC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50LWl0ZW0gLnJzcy1jb250ZW50LWhlYWRlcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxNXB4O3BhZGRpbmc6MCAwIDhweCAwfS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQtaXRlbSAucnNzLWNvbnRlbnQtaGVhZGVyIHB7Y29sb3I6Izk0YTNiODttYXJnaW46MDtwYWRkaW5nOjA7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjE2cHh9LndoYXRzLW5ldy1yc3MtZmx5b3V0IC53aGF0cy1uZXctcnNzLWZseW91dC1jb250ZW50cyAud2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItY29udGVudCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItY29udGVudC1pdGVtIC5yc3MtY29udGVudC1oZWFkZXIgaDJ7bWFyZ2luOjA7Y29sb3I6IzBmMTcyYTtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MjhweDtmb250LXNpemU6MjBweH0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50IC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50LWl0ZW0gaDJ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjI0cHh9LndoYXRzLW5ldy1yc3MtZmx5b3V0IC53aGF0cy1uZXctcnNzLWZseW91dC1jb250ZW50cyAud2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItY29udGVudCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItY29udGVudC1pdGVtIGgze2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoyMnB4O21hcmdpbi10b3A6MTJweH0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50IC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50LWl0ZW0gaDR7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxNXB4O2xpbmUtaGVpZ2h0OjIwcHg7bWFyZ2luLXRvcDoxMnB4fS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQtaXRlbSBoNXtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MThweH0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50IC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50LWl0ZW0gaDZ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjE2cHh9LndoYXRzLW5ldy1yc3MtZmx5b3V0IC53aGF0cy1uZXctcnNzLWZseW91dC1jb250ZW50cyAud2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItY29udGVudCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItY29udGVudC1pdGVtIHB7cGFkZGluZzowO2ZvbnQtc2l6ZToxNHB4fS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQtaXRlbSBwOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowO3BhZGRpbmctYm90dG9tOjB9LndoYXRzLW5ldy1yc3MtZmx5b3V0IC53aGF0cy1uZXctcnNzLWZseW91dC1jb250ZW50cyAud2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItY29udGVudCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItY29udGVudC1pdGVtIGF7Y29sb3I6IzExNzBmZjt0ZXh0LWRlY29yYXRpb246bm9uZX0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50IC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50LWl0ZW0gZmlndXJle21hcmdpbjoxMHB4IDB9LndoYXRzLW5ldy1yc3MtZmx5b3V0IC53aGF0cy1uZXctcnNzLWZseW91dC1jb250ZW50cyAud2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItY29udGVudCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItY29udGVudC1pdGVtIGZpZ3VyZS53cC1ibG9jay1lbWJlZC5pcy10eXBlLXZpZGVve3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7aGVpZ2h0OjA7cGFkZGluZy1ib3R0b206NTYuMjUlfS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQtaXRlbSBmaWd1cmUgaWZyYW1le3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvcmRlcjowfS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQtaXRlbSBpbWd7Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDphdXRvO21heC13aWR0aDoxMDAlO3ZlcnRpY2FsLWFsaWduOmJvdHRvbX0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50IC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50LWl0ZW0gdmlkZW97dmVydGljYWwtYWxpZ246bWlkZGxlO3dpZHRoOjEwMCV9LndoYXRzLW5ldy1yc3MtZmx5b3V0IC53aGF0cy1uZXctcnNzLWZseW91dC1jb250ZW50cyAud2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItY29udGVudCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItY29udGVudC1pdGVtIHN0cm9uZ3tmb250LXdlaWdodDo2MDB9LndoYXRzLW5ldy1yc3MtZmx5b3V0IC53aGF0cy1uZXctcnNzLWZseW91dC1jb250ZW50cyAud2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItY29udGVudCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItY29udGVudC1pdGVtIG9sLC53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQtaXRlbSB1bHtwYWRkaW5nLWlubGluZS1zdGFydDoyMHB4fS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQtaXRlbSBvbCBsaSwud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50IC53aGF0cy1uZXctcnNzLWZseW91dC1pbm5lci1jb250ZW50LWl0ZW0gdWwgbGl7bWFyZ2luLWJvdHRvbTo1cHh9LndoYXRzLW5ldy1yc3MtZmx5b3V0IC53aGF0cy1uZXctcnNzLWZseW91dC1jb250ZW50cyAud2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItY29udGVudCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtaW5uZXItY29udGVudC1pdGVtIHVse2xpc3Qtc3R5bGUtdHlwZTpkaXNjfS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWNvbnRlbnQtaXRlbSBvbHtsaXN0LXN0eWxlLXR5cGU6ZGVjaW1hbH0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLXN1Yi12ZXJzaW9uLWRldGFpbHN7bGluZS1oZWlnaHQ6MjBweDtmb250LXNpemU6LjllbTttYXJnaW46MTBweCAwO2JhY2tncm91bmQ6I2Y5ZmFmYn0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLXN1Yi12ZXJzaW9uLWRldGFpbHMgc3VtbWFyeXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzoyMHB4IDE1cHg7aGVpZ2h0OjFlbTtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtd2VpZ2h0OjgwMH0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLXN1Yi12ZXJzaW9uLWRldGFpbHMgc3VtbWFyeTo6YWZ0ZXJ7Y29udGVudDon4oyDJztmb250LXNpemU6MjBweDt0cmFuc2Zvcm06cm90YXRlWCgxODBkZWcpO2ZvbnQtd2VpZ2h0OjgwMH0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLXN1Yi12ZXJzaW9uLWRldGFpbHMgc3VtbWFyeSAudGV4dC1zZWUtbW9yZXtkaXNwbGF5OmJsb2NrfS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3Mtc3ViLXZlcnNpb24tZGV0YWlscyBzdW1tYXJ5IC50ZXh0LXNlZS1sZXNze2Rpc3BsYXk6bm9uZX0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRzIC53aGF0cy1uZXctcnNzLXN1Yi12ZXJzaW9uLWRldGFpbHNbb3Blbl0gc3VtbWFyeXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTJlOGYwfS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3Mtc3ViLXZlcnNpb24tZGV0YWlsc1tvcGVuXSBzdW1tYXJ5OjphZnRlcnt0cmFuc2Zvcm06cm90YXRlWCg0NWRlZyl9LndoYXRzLW5ldy1yc3MtZmx5b3V0IC53aGF0cy1uZXctcnNzLWZseW91dC1jb250ZW50cyAud2hhdHMtbmV3LXJzcy1zdWItdmVyc2lvbi1kZXRhaWxzW29wZW5dIHN1bW1hcnkgLnRleHQtc2VlLW1vcmV7ZGlzcGxheTpub25lfS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3Mtc3ViLXZlcnNpb24tZGV0YWlsc1tvcGVuXSBzdW1tYXJ5IC50ZXh0LXNlZS1sZXNze2Rpc3BsYXk6YmxvY2t9LndoYXRzLW5ldy1yc3MtZmx5b3V0IC53aGF0cy1uZXctcnNzLWZseW91dC1jb250ZW50cyAud2hhdHMtbmV3LXJzcy1zdWItdmVyc2lvbi1kZXRhaWxzIC5zdWItdmVyc2lvbi1pdGVte3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MWVtO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlMmU4ZjB9LndoYXRzLW5ldy1yc3MtZmx5b3V0IC53aGF0cy1uZXctcnNzLWZseW91dC1jb250ZW50cyAud2hhdHMtbmV3LXJzcy1zdWItdmVyc2lvbi1kZXRhaWxzIC5zdWItdmVyc2lvbi1pdGVtIC5zdWItdmVyc2lvbi1oZWFkZXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS53aGF0cy1uZXctcnNzLWZseW91dCAud2hhdHMtbmV3LXJzcy1mbHlvdXQtY29udGVudHMgLndoYXRzLW5ldy1yc3Mtc3ViLXZlcnNpb24tZGV0YWlscyAuc3ViLXZlcnNpb24taXRlbSAuc3ViLXZlcnNpb24tY29udGVudHttYXJnaW4tdG9wOjFlbX0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC41KTt0cmFuc2l0aW9uOmFsbCAuM3MgZWFzZS1pbi1vdXR9LndoYXRzLW5ldy1yc3MtZmx5b3V0LmNsb3NlZHt2aXNpYmlsaXR5OmhpZGRlbn0ud2hhdHMtbmV3LXJzcy1mbHlvdXQuY2xvc2VkIC53aGF0cy1uZXctcnNzLWZseW91dC1vdmVybGF5e29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbn0ud2hhdHMtbmV3LXJzcy1mbHlvdXQuY2xvc2VkIC53aGF0cy1uZXctcnNzLWZseW91dC1jb250ZW50c3t0cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKX0ud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWlubmVyLWhlYWRlcl9fbG9hZGluZy1pY29ue2Rpc3BsYXk6bm9uZX1Aa2V5ZnJhbWVzIHNoaW1tZXJ7MCV7YmFja2dyb3VuZC1wb3NpdGlvbjotMjAwJSAwfTEwMCV7YmFja2dyb3VuZC1wb3NpdGlvbjoyMDAlIDB9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MTAyNHB4KXsud2hhdHMtbmV3LXJzcy1mbHlvdXQgLndoYXRzLW5ldy1yc3MtZmx5b3V0LWNvbnRlbnRze3dpZHRoOjQwJX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjhweCl7LndoYXRzLW5ldy1yc3MtZmx5b3V0IC53aGF0cy1uZXctcnNzLWZseW91dC1jb250ZW50c3t3aWR0aDo4NSV9fWA7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGFkZFN0eWxlSWZOb3RFeGlzdHMoKSB7XG4gICAgY29uc3Qgc3R5bGVJZCA9ICd3aGF0cy1uZXctcnNzLXN0eWxlcyc7XG4gICAgaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzdHlsZUlkKSkge1xuICAgICAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgICAgIHN0eWxlLmlkID0gc3R5bGVJZDtcbiAgICAgICAgc3R5bGUuaW5uZXJIVE1MID0gYXdhaXQgZ2V0Q1NTKCk7XG4gICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuICAgIH1cbn1cblxuXG5mdW5jdGlvbiBjcmVhdGVXaGF0c05ld1JTU0luc3RhbmNlKGFyZ3MpIHtcbiAgICByZXR1cm4gbmV3IFdoYXRzTmV3UlNTKGFyZ3MpO1xufVxuXG5mdW5jdGlvbiB1c2VXaGF0c05ld1JTUyh7IHNlbGVjdG9yLCAuLi5yZXN0IH0pIHtcbiAgICBjb25zdCBpbnN0YW5jZVJlZiA9IHVzZVJlZihudWxsKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGFkZFN0eWxlSWZOb3RFeGlzdHMoKTtcblxuICAgICAgICBpZiAoIWluc3RhbmNlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGluc3RhbmNlUmVmLmN1cnJlbnQgPSBjcmVhdGVXaGF0c05ld1JTU0luc3RhbmNlKHsgc2VsZWN0b3IsIC4uLnJlc3QgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDbGVhbnVwIGZ1bmN0aW9uXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5zdGFuY2VSZWYuY3VycmVudCAmJiB0eXBlb2YgaW5zdGFuY2VSZWYuY3VycmVudC5kZXN0cm95ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgaW5zdGFuY2VSZWYuY3VycmVudC5kZXN0cm95KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW3NlbGVjdG9yLCAuLi5PYmplY3QudmFsdWVzKHJlc3QpXSk7IC8vIEFkanVzdCBkZXBlbmRlbmNpZXMgYXMgbmVlZGVkXG5cbiAgICByZXR1cm4gaW5zdGFuY2VSZWYuY3VycmVudDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlV2hhdHNOZXdSU1M7XG5cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/whats-new-rss/dist/react/useWhatsNewRSS.js\n");
/***/ }),
/***/ "./src/App.js":
/*!********************!*\
!*** ./src/App.js ***!
\********************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _fontsource_figtree__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @fontsource/figtree */ \"./node_modules/@fontsource/figtree/index.css\");\n/* harmony import */ var _fontsource_figtree_400_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @fontsource/figtree/400.css */ \"./node_modules/@fontsource/figtree/400.css\");\n/* harmony import */ var _fontsource_figtree_400_italic_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @fontsource/figtree/400-italic.css */ \"./node_modules/@fontsource/figtree/400-italic.css\");\n/* harmony import */ var _router_customRouter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./router/customRouter */ \"./src/router/customRouter.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__);\n\n\n // Defaults to weight 400\n // Specify weight\n // Specify weight and style\n\n\nvar App = function App() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n loaded = _useState2[0],\n setLoaded = _useState2[1];\n\n // scroll top on route change\n window.onhashchange = function () {\n window.scrollTo(0, 0);\n };\n\n // Simulate loading (replace with actual loading logic if needed)\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n setTimeout(function () {\n setLoaded(true);\n }, 1000); // Simulating a load delay of 1 second\n }, []);\n if (!loaded) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"loading-spinner flex items-center justify-center h-screen\",\n style: {\n background: \"#F9FAFB\"\n }\n }, /*#__PURE__*/React.createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Loader, {\n icon: null,\n size: \"lg\",\n variant: \"primary\"\n }));\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"app-container font-figtree\"\n }, /*#__PURE__*/React.createElement(_router_customRouter__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (App);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQXBwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQTRDO0FBQ2YsQ0FBQztBQUNPLENBQUM7QUFDTSxDQUFDO0FBQzFCO0FBQ29CO0FBRXZDLElBQU1JLEdBQUcsR0FBRyxTQUFOQSxHQUFHQSxDQUFBLEVBQVM7RUFDakIsSUFBQUMsU0FBQSxHQUE0QkwsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQU0sVUFBQSxHQUFBQyxnRkFBQSxDQUFBRixTQUFBO0lBQXBDRyxNQUFNLEdBQUFGLFVBQUE7SUFBRUcsU0FBUyxHQUFBSCxVQUFBOztFQUV4QjtFQUNBSSxNQUFNLENBQUNDLFlBQVksR0FBRyxZQUFNO0lBQzNCRCxNQUFNLENBQUNFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0VBQ3RCLENBQUM7O0VBRUQ7RUFDQVgsZ0RBQVMsQ0FBQyxZQUFNO0lBQ2ZZLFVBQVUsQ0FBQyxZQUFNO01BQ2hCSixTQUFTLENBQUMsSUFBSSxDQUFDO0lBQ2hCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ1gsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLElBQUksQ0FBQ0QsTUFBTSxFQUFFO0lBQ1osb0JBQ0NNLEtBQUEsQ0FBQUMsYUFBQTtNQUNDQyxTQUFTLEVBQUMsMkRBQTJEO01BQ3JFQyxLQUFLLEVBQUU7UUFBRUMsVUFBVSxFQUFFO01BQVU7SUFBRSxnQkFFakNKLEtBQUEsQ0FBQUMsYUFBQSxDQUFDWixpREFBTTtNQUFDZ0IsSUFBSSxFQUFFLElBQUs7TUFBQ0MsSUFBSSxFQUFDLElBQUk7TUFBQ0MsT0FBTyxFQUFDO0lBQVMsQ0FBRSxDQUM3QyxDQUFDO0VBRVI7RUFFQSxvQkFDQ1AsS0FBQSxDQUFBQyxhQUFBO0lBQUtDLFNBQVMsRUFBQztFQUE0QixnQkFDMUNGLEtBQUEsQ0FBQUMsYUFBQSxDQUFDYiw0REFBWSxNQUFFLENBQ1gsQ0FBQztBQUVSLENBQUM7QUFFRCwrREFBZUUsR0FBRyIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9zcmMvQXBwLmpzP2JlOTQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFwiQGZvbnRzb3VyY2UvZmlndHJlZVwiOyAvLyBEZWZhdWx0cyB0byB3ZWlnaHQgNDAwXG5pbXBvcnQgXCJAZm9udHNvdXJjZS9maWd0cmVlLzQwMC5jc3NcIjsgLy8gU3BlY2lmeSB3ZWlnaHRcbmltcG9ydCBcIkBmb250c291cmNlL2ZpZ3RyZWUvNDAwLWl0YWxpYy5jc3NcIjsgLy8gU3BlY2lmeSB3ZWlnaHQgYW5kIHN0eWxlXG5pbXBvcnQgQ3VzdG9tUm91dGVyIGZyb20gXCJyb3V0ZXIvY3VzdG9tUm91dGVyXCI7XG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tIFwiQGJzZi9mb3JjZS11aVwiO1xuXG5jb25zdCBBcHAgPSAoKSA9PiB7XG5cdGNvbnN0IFtsb2FkZWQsIHNldExvYWRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cblx0Ly8gc2Nyb2xsIHRvcCBvbiByb3V0ZSBjaGFuZ2Vcblx0d2luZG93Lm9uaGFzaGNoYW5nZSA9ICgpID0+IHtcblx0XHR3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG5cdH07XG5cblx0Ly8gU2ltdWxhdGUgbG9hZGluZyAocmVwbGFjZSB3aXRoIGFjdHVhbCBsb2FkaW5nIGxvZ2ljIGlmIG5lZWRlZClcblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHNldExvYWRlZCh0cnVlKTtcblx0XHR9LCAxMDAwKTsgLy8gU2ltdWxhdGluZyBhIGxvYWQgZGVsYXkgb2YgMSBzZWNvbmRcblx0fSwgW10pO1xuXG5cdGlmICghbG9hZGVkKSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxkaXZcblx0XHRcdFx0Y2xhc3NOYW1lPVwibG9hZGluZy1zcGlubmVyIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGgtc2NyZWVuXCJcblx0XHRcdFx0c3R5bGU9e3sgYmFja2dyb3VuZDogXCIjRjlGQUZCXCIgfX1cblx0XHRcdD5cblx0XHRcdFx0PExvYWRlciBpY29uPXtudWxsfSBzaXplPVwibGdcIiB2YXJpYW50PVwicHJpbWFyeVwiIC8+XG5cdFx0XHQ8L2Rpdj5cblx0XHQpO1xuXHR9XG5cblx0cmV0dXJuIChcblx0XHQ8ZGl2IGNsYXNzTmFtZT1cImFwcC1jb250YWluZXIgZm9udC1maWd0cmVlXCI+XG5cdFx0XHQ8Q3VzdG9tUm91dGVyIC8+XG5cdFx0PC9kaXY+XG5cdCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBcHA7XG4iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJDdXN0b21Sb3V0ZXIiLCJMb2FkZXIiLCJBcHAiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJsb2FkZWQiLCJzZXRMb2FkZWQiLCJ3aW5kb3ciLCJvbmhhc2hjaGFuZ2UiLCJzY3JvbGxUbyIsInNldFRpbWVvdXQiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJzdHlsZSIsImJhY2tncm91bmQiLCJpY29uIiwic2l6ZSIsInZhcmlhbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/App.js\n");
/***/ }),
/***/ "./src/Components/Dashboard/Dashboard.jsx":
/*!************************************************!*\
!*** ./src/Components/Dashboard/Dashboard.jsx ***!
\************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _HeaderLine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../HeaderLine */ \"./src/Components/HeaderLine.js\");\n/* harmony import */ var _NavMenu__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../NavMenu */ \"./src/Components/NavMenu.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _Widgets__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Widgets */ \"./src/Components/Dashboard/Widgets.jsx\");\n/* harmony import */ var _TemplateSection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TemplateSection */ \"./src/Components/Dashboard/TemplateSection.js\");\n/* harmony import */ var _QuickAccess__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./QuickAccess */ \"./src/Components/Dashboard/QuickAccess.js\");\n/* harmony import */ var _WelcomeContainer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./WelcomeContainer */ \"./src/Components/Dashboard/WelcomeContainer.js\");\n/* harmony import */ var _ExtendWebsite__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ExtendWebsite */ \"./src/Components/Dashboard/ExtendWebsite.jsx\");\n/* harmony import */ var _VideoTutorials__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./VideoTutorials */ \"./src/Components/Dashboard/VideoTutorials.jsx\");\n\n\n\n\n\n\n\n\n\n\nvar Dashboard = function Dashboard() {\n var width_class = !uaelSettingsData.hide_settings ? 'uael-65-width' : 'w-full';\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_NavMenu__WEBPACK_IMPORTED_MODULE_2__[\"default\"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_HeaderLine__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_0__.Container, {\n align: \"stretch\",\n className: \"p-6 flex flex-col lg:flex-row box-border\",\n containerType: \"flex\",\n direction: \"row\",\n gap: \"sm\",\n justify: \"start\",\n style: {\n width: \"100%\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_0__.Container.Item, {\n className: \"p-2 \".concat(width_class),\n alignSelf: \"auto\",\n order: \"none\",\n shrink: 0\n }, !uaelSettingsData.hide_settings && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_WelcomeContainer__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_Widgets__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null), !uaelSettingsData.hide_settings && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_VideoTutorials__WEBPACK_IMPORTED_MODULE_9__[\"default\"], null)), !uaelSettingsData.hide_settings && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_0__.Container.Item, {\n className: \"p-2 w-full uael-35-width\",\n shrink: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_QuickAccess__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"pt-5\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_TemplateSection__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_ExtendWebsite__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null)))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Dashboard);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9EYXNoYm9hcmQvRGFzaGJvYXJkLmpzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQTBDO0FBQ3pCO0FBQ0g7QUFDVztBQUNYO0FBQ1E7QUFDSjtBQUNLO0FBQ0g7QUFDMEI7QUFFOUMsSUFBTVUsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQUEsRUFBUztFQUNwQixJQUFNQyxXQUFXLEdBQUcsQ0FBQ0MsZ0JBQWdCLENBQUNDLGFBQWEsR0FBRyxlQUFlLEdBQUcsUUFBUTtFQUVoRixvQkFDSVYsMERBQUEsQ0FBQUEsdURBQUEscUJBQ0lBLDBEQUFBLENBQUNELGdEQUFPLE1BQUUsQ0FBQyxlQUNYQywwREFBQTtJQUFLYSxTQUFTLEVBQUM7RUFBRSxnQkFDYmIsMERBQUEsQ0FBQ0YsbURBQVUsTUFBRSxDQUFDLGVBQ2RFLDBEQUFBLENBQUNILG9EQUFTO0lBQ05pQixLQUFLLEVBQUMsU0FBUztJQUNmRCxTQUFTLEVBQUMsMENBQTBDO0lBQ3BERSxhQUFhLEVBQUMsTUFBTTtJQUNwQkMsU0FBUyxFQUFDLEtBQUs7SUFDZkMsR0FBRyxFQUFDLElBQUk7SUFDUkMsT0FBTyxFQUFDLE9BQU87SUFDZkMsS0FBSyxFQUFFO01BQ0hDLEtBQUssRUFBRTtJQUNYO0VBQUUsZ0JBRUZwQiwwREFBQSxDQUFDSCxvREFBUyxDQUFDd0IsSUFBSTtJQUNYUixTQUFTLFNBQUFTLE1BQUEsQ0FBU2QsV0FBVyxDQUFHO0lBQ2hDZSxTQUFTLEVBQUMsTUFBTTtJQUNoQkMsS0FBSyxFQUFDLE1BQU07SUFDWkMsTUFBTSxFQUFFO0VBQUUsR0FFVCxDQUFDaEIsZ0JBQWdCLENBQUNDLGFBQWEsaUJBQzVCViwwREFBQSxDQUFDSSx5REFBZ0IsTUFBRSxDQUN0QixlQUNESiwwREFBQSxDQUFDQyxnREFBTyxNQUFFLENBQUMsRUFDVixDQUFDUSxnQkFBZ0IsQ0FBQ0MsYUFBYSxpQkFDNUJWLDBEQUFBLENBQUNNLHVEQUFjLE1BQUUsQ0FFVCxDQUFDLEVBQ2hCLENBQUNHLGdCQUFnQixDQUFDQyxhQUFhLGlCQUM1QlYsMERBQUEsQ0FBQ0gsb0RBQVMsQ0FBQ3dCLElBQUk7SUFDWFIsU0FBUyxFQUFDLDBCQUEwQjtJQUNwQ1ksTUFBTSxFQUFFO0VBQUUsZ0JBRVZ6QiwwREFBQSxDQUFDRyxvREFBVyxNQUFFLENBQUMsZUFDZkgsMERBQUE7SUFBS2EsU0FBUyxFQUFDO0VBQU0sZ0JBQ3JCYiwwREFBQSxDQUFDRSx3REFBZSxNQUFFLENBQ2IsQ0FBQyxlQUVORiwwREFBQSxDQUFDSyxzREFBYSxNQUFFLENBQ0osQ0FHYixDQUNWLENBQ1AsQ0FBQztBQUVYLENBQUM7QUFFRCwrREFBZUUsU0FBUyIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9zcmMvQ29tcG9uZW50cy9EYXNoYm9hcmQvRGFzaGJvYXJkLmpzeD9lOTcwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCJAYnNmL2ZvcmNlLXVpXCI7XG5pbXBvcnQgSGVhZGVyTGluZSBmcm9tICdAY29tcG9uZW50cy9IZWFkZXJMaW5lJ1xuaW1wb3J0IE5hdk1lbnUgZnJvbSAnQGNvbXBvbmVudHMvTmF2TWVudSdcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCBXaWRnZXRzIGZyb20gJy4vV2lkZ2V0cydcbmltcG9ydCBUZW1wbGF0ZVNlY3Rpb24gZnJvbSAnLi9UZW1wbGF0ZVNlY3Rpb24nXG5pbXBvcnQgUXVpY2tBY2Nlc3MgZnJvbSAnLi9RdWlja0FjY2VzcydcbmltcG9ydCBXZWxjb21lQ29udGFpbmVyIGZyb20gJy4vV2VsY29tZUNvbnRhaW5lcidcbmltcG9ydCBFeHRlbmRXZWJzaXRlIGZyb20gJy4vRXh0ZW5kV2Vic2l0ZSdcbmltcG9ydCBWaWRlb1R1dG9yaWFscyBmcm9tIFwiLi9WaWRlb1R1dG9yaWFsc1wiO1xuXG5jb25zdCBEYXNoYm9hcmQgPSAoKSA9PiB7XG4gICAgY29uc3Qgd2lkdGhfY2xhc3MgPSAhdWFlbFNldHRpbmdzRGF0YS5oaWRlX3NldHRpbmdzID8gJ3VhZWwtNjUtd2lkdGgnIDogJ3ctZnVsbCc7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgICAgPE5hdk1lbnUgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiXCI+XG4gICAgICAgICAgICAgICAgPEhlYWRlckxpbmUgLz5cbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIGFsaWduPVwic3RyZXRjaFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInAtNiBmbGV4IGZsZXgtY29sIGxnOmZsZXgtcm93IGJveC1ib3JkZXJcIlxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXJUeXBlPVwiZmxleFwiXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGdhcD1cInNtXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeT1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcC0yICR7d2lkdGhfY2xhc3N9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduU2VsZj1cImF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNocmluaz17MH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgeyF1YWVsU2V0dGluZ3NEYXRhLmhpZGVfc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxXZWxjb21lQ29udGFpbmVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgPFdpZGdldHMgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHshdWFlbFNldHRpbmdzRGF0YS5oaWRlX3NldHRpbmdzICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VmlkZW9UdXRvcmlhbHMgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIHshdWFlbFNldHRpbmdzRGF0YS5oaWRlX3NldHRpbmdzICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInAtMiB3LWZ1bGwgdWFlbC0zNS13aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hyaW5rPXsxfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxRdWlja0FjY2VzcyAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHQtNVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZW1wbGF0ZVNlY3Rpb24gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxFeHRlbmRXZWJzaXRlIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuICAgICAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC8+XG4gICAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBEYXNoYm9hcmRcbiJdLCJuYW1lcyI6WyJDb250YWluZXIiLCJIZWFkZXJMaW5lIiwiTmF2TWVudSIsIlJlYWN0IiwiV2lkZ2V0cyIsIlRlbXBsYXRlU2VjdGlvbiIsIlF1aWNrQWNjZXNzIiwiV2VsY29tZUNvbnRhaW5lciIsIkV4dGVuZFdlYnNpdGUiLCJWaWRlb1R1dG9yaWFscyIsIkRhc2hib2FyZCIsIndpZHRoX2NsYXNzIiwidWFlbFNldHRpbmdzRGF0YSIsImhpZGVfc2V0dGluZ3MiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJjbGFzc05hbWUiLCJhbGlnbiIsImNvbnRhaW5lclR5cGUiLCJkaXJlY3Rpb24iLCJnYXAiLCJqdXN0aWZ5Iiwic3R5bGUiLCJ3aWR0aCIsIkl0ZW0iLCJjb25jYXQiLCJhbGlnblNlbGYiLCJvcmRlciIsInNocmluayJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/Components/Dashboard/Dashboard.jsx\n");
/***/ }),
/***/ "./src/Components/Dashboard/ExtendWebsite.jsx":
/*!****************************************************!*\
!*** ./src/Components/Dashboard/ExtendWebsite.jsx ***!
\****************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"@babel/runtime/regenerator\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _ExtendWebsiteWidget__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ExtendWebsiteWidget */ \"./src/Components/Dashboard/ExtendWebsiteWidget.jsx\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/api-fetch */ \"@wordpress/api-fetch\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__);\n\n\n\n\nfunction 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; }\nfunction _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) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(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\n\n\n\n\n\nvar ExtendWebsite = function ExtendWebsite() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)([]),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState, 2),\n plugins = _useState2[0],\n setPlugins = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(true),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState3, 2),\n loading = _useState4[0],\n setLoading = _useState4[1];\n var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(0),\n _useState6 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState5, 2),\n updateCounter = _useState6[0],\n setUpdateCounter = _useState6[1];\n var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(false),\n _useState8 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState7, 2),\n allInstalled = _useState8[0],\n setAllInstalled = _useState8[1];\n (0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () {\n var fetchSettings = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee() {\n var data, pluginsData, areAllInstalled;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n setLoading(true);\n _context.prev = 1;\n _context.next = 4;\n return _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_8___default()({\n path: '/uael/v1/plugins',\n headers: {\n 'Content-Type': 'application/json',\n 'X-WP-Nonce': uaelSettingsData.uael_nonce_action\n }\n });\n case 4:\n data = _context.sent;\n pluginsData = convertToPluginsArray(data);\n setPlugins(pluginsData);\n\n // Check if all plugins are installed\n areAllInstalled = pluginsData.every(function (plugin) {\n return plugin.is_installed;\n });\n setAllInstalled(areAllInstalled);\n _context.next = 14;\n break;\n case 11:\n _context.prev = 11;\n _context.t0 = _context[\"catch\"](1);\n console.error(\"Error fetching plugins:\", _context.t0);\n case 14:\n _context.prev = 14;\n setLoading(false);\n return _context.finish(14);\n case 17:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[1, 11, 14, 17]]);\n }));\n return function fetchSettings() {\n return _ref.apply(this, arguments);\n };\n }();\n fetchSettings();\n }, [updateCounter]);\n function convertToPluginsArray(data) {\n return Object.keys(data).map(function (key) {\n return _objectSpread({\n path: key\n }, data[key]);\n });\n }\n\n // If all plugins are installed, don't render the component\n if (allInstalled) {\n return null;\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"rounded-lg bg-white w-full mb-6\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex items-center justify-between p-4\",\n style: {\n paddingBottom: '0'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"p\", {\n className: \"m-0 text-sm font-semibold text-text-primary\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)(\"Extend Your Website\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex items-center gap-x-2 mr-7\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex flex-col rounded-lg p-4\",\n style: {\n backgroundColor: \"white\"\n }\n }, loading ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_7__.Container, {\n align: \"stretch\",\n className: \"gap-1 p-1 grid grid-cols-1 md:grid-cols-2\",\n containerType: \"grid\",\n justify: \"start\"\n }, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Array(2)).map(function (_, index) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_7__.Container.Item, {\n key: index,\n alignSelf: \"auto\",\n style: {\n height: '150px'\n },\n className: \"text-wrap rounded-md shadow-container-item bg-[#F9FAFB] p-4\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex flex-col gap-6\",\n style: {\n marginTop: '40px'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_7__.Skeleton, {\n className: \"w-12 h-2 rounded-md\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_7__.Skeleton, {\n className: \"w-16 h-2 rounded-md\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_7__.Skeleton, {\n className: \"w-12 h-2 rounded-md\"\n })));\n })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_7__.Container, {\n align: \"stretch\",\n className: \"gap-1 p-1 grid grid-cols-1 md:grid-cols-2\",\n containerType: \"grid\",\n justify: \"start\",\n style: {\n backgroundColor: \"#F9FAFB\"\n }\n }, plugins.slice(0, 4).map(function (plugin) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_7__.Container.Item, {\n key: plugin.slug,\n alignSelf: \"auto\",\n className: \"text-wrap rounded-md shadow-container-item bg-background-primary p-4\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_ExtendWebsiteWidget__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n plugin: plugin,\n setUpdateCounter: setUpdateCounter\n }));\n }))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (ExtendWebsite);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9EYXNoYm9hcmQvRXh0ZW5kV2Vic2l0ZS5qc3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBbUQ7QUFDekI7QUFDMEI7QUFDUjtBQUNQO0FBRXJDLElBQU1RLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBQSxFQUFTO0VBQ3hCLElBQUFDLFNBQUEsR0FBOEJSLCtDQUFRLENBQUMsRUFBRSxDQUFDO0lBQUFTLFVBQUEsR0FBQUMsZ0ZBQUEsQ0FBQUYsU0FBQTtJQUFuQ0csT0FBTyxHQUFBRixVQUFBO0lBQUVHLFVBQVUsR0FBQUgsVUFBQTtFQUMxQixJQUFBSSxVQUFBLEdBQThCYiwrQ0FBUSxDQUFDLElBQUksQ0FBQztJQUFBYyxVQUFBLEdBQUFKLGdGQUFBLENBQUFHLFVBQUE7SUFBckNFLE9BQU8sR0FBQUQsVUFBQTtJQUFFRSxVQUFVLEdBQUFGLFVBQUE7RUFDMUIsSUFBQUcsVUFBQSxHQUEwQ2pCLCtDQUFRLENBQUMsQ0FBQyxDQUFDO0lBQUFrQixVQUFBLEdBQUFSLGdGQUFBLENBQUFPLFVBQUE7SUFBOUNFLGFBQWEsR0FBQUQsVUFBQTtJQUFFRSxnQkFBZ0IsR0FBQUYsVUFBQTtFQUN0QyxJQUFBRyxVQUFBLEdBQXdDckIsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXNCLFVBQUEsR0FBQVosZ0ZBQUEsQ0FBQVcsVUFBQTtJQUFoREUsWUFBWSxHQUFBRCxVQUFBO0lBQUVFLGVBQWUsR0FBQUYsVUFBQTtFQUVwQ3JCLGdEQUFTLENBQUMsWUFBTTtJQUNaLElBQU13QixhQUFhO01BQUEsSUFBQUMsSUFBQSxHQUFBQyxtRkFBQSxjQUFBQyxzRUFBQSxDQUFHLFNBQUFFLFFBQUE7UUFBQSxJQUFBQyxJQUFBLEVBQUFDLFdBQUEsRUFBQUMsZUFBQTtRQUFBLE9BQUFMLHNFQUFBLFVBQUFPLFNBQUFDLFFBQUE7VUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtZQUFB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dGUuanN4PzVkMWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgRXh0ZW5kV2Vic2l0ZVdpZGdldCBmcm9tICcuL0V4dGVuZFdlYnNpdGVXaWRnZXQnO1xuaW1wb3J0IHsgQ29udGFpbmVyLCBTa2VsZXRvbiB9IGZyb20gXCJAYnNmL2ZvcmNlLXVpXCI7XG5pbXBvcnQgYXBpRmV0Y2ggZnJvbSAnQHdvcmRwcmVzcy9hcGktZmV0Y2gnO1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5jb25zdCBFeHRlbmRXZWJzaXRlID0gKCkgPT4ge1xuICAgIGNvbnN0IFtwbHVnaW5zLCBzZXRQbHVnaW5zXSA9IHVzZVN0YXRlKFtdKTtcbiAgICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBbdXBkYXRlQ291bnRlciwgc2V0VXBkYXRlQ291bnRlcl0gPSB1c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbYWxsSW5zdGFsbGVkLCBzZXRBbGxJbnN0YWxsZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgZmV0Y2hTZXR0aW5ncyA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlGZXRjaCh7XG4gICAgICAgICAgICAgICAgICAgIHBhdGg6ICcvdWFlbC92MS9wbHVnaW5zJyxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdYLVdQLU5vbmNlJzogdWFlbFNldHRpbmdzRGF0YS51YWVsX25vbmNlX2FjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwbHVnaW5zRGF0YSA9IGNvbnZlcnRUb1BsdWdpbnNBcnJheShkYXRhKTtcbiAgICAgICAgICAgICAgICBzZXRQbHVnaW5zKHBsdWdpbnNEYXRhKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiBhbGwgcGx1Z2lucyBhcmUgaW5zdGFsbGVkXG4gICAgICAgICAgICAgICAgY29uc3QgYXJlQWxsSW5zdGFsbGVkID0gcGx1Z2luc0RhdGEuZXZlcnkocGx1Z2luID0+IHBsdWdpbi5pc19pbnN0YWxsZWQpO1xuICAgICAgICAgICAgICAgIHNldEFsbEluc3RhbGxlZChhcmVBbGxJbnN0YWxsZWQpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yIGZldGNoaW5nIHBsdWdpbnM6XCIsIGVycik7XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGZldGNoU2V0dGluZ3MoKTtcbiAgICB9LCBbdXBkYXRlQ291bnRlcl0pO1xuXG4gICAgZnVuY3Rpb24gY29udmVydFRvUGx1Z2luc0FycmF5KGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGRhdGEpLm1hcCgoa2V5KSA9PiAoe1xuICAgICAgICAgICAgcGF0aDoga2V5LFxuICAgICAgICAgICAgLi4uZGF0YVtrZXldLFxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgLy8gSWYgYWxsIHBsdWdpbnMgYXJlIGluc3RhbGxlZCwgZG9uJ3QgcmVuZGVyIHRoZSBjb21wb25lbnRcbiAgICBpZiAoYWxsSW5zdGFsbGVkKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1sZyBiZy13aGl0ZSB3LWZ1bGwgbWItNlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcC00XCIgc3R5bGU9e3sgcGFkZGluZ0JvdHRvbTogJzAnIH19PlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIm0tMCB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC10ZXh0LXByaW1hcnlcIj5cbiAgICAgICAgICAgICAgICAgICAge19fKFwiRXh0ZW5kIFlvdXIgV2Vic2l0ZVwiLCBcInVhZWxcIil9XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtMiBtci03XCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCByb3VuZGVkLWxnIHAtNFwiIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogXCJ3aGl0ZVwiIH19PlxuICAgICAgICAgICAgICAgIHtsb2FkaW5nID8gKFxuICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbj1cInN0cmV0Y2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZ2FwLTEgcC0xIGdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyVHlwZT1cImdyaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeT1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge1suLi5BcnJheSgyKV0ubWFwKChfLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnblNlbGY9XCJhdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgaGVpZ2h0OiAnMTUwcHgnIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtd3JhcCByb3VuZGVkLW1kIHNoYWRvdy1jb250YWluZXItaXRlbSBiZy1bI0Y5RkFGQl0gcC00XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBnYXAtNlwiIHN0eWxlPXt7IG1hcmdpblRvcDogJzQwcHgnIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNrZWxldG9uIGNsYXNzTmFtZT1cInctMTIgaC0yIHJvdW5kZWQtbWRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNrZWxldG9uIGNsYXNzTmFtZT1cInctMTYgaC0yIHJvdW5kZWQtbWRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNrZWxldG9uIGNsYXNzTmFtZT1cInctMTIgaC0yIHJvdW5kZWQtbWRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICkgOiAoIFxuICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbj1cInN0cmV0Y2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZ2FwLTEgcC0xIGdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyVHlwZT1cImdyaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeT1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogXCIjRjlGQUZCXCIgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3BsdWdpbnMuc2xpY2UoMCwgNCkubWFwKChwbHVnaW4pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyLkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtwbHVnaW4uc2x1Z31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25TZWxmPVwiYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtd3JhcCByb3VuZGVkLW1kIHNoYWRvdy1jb250YWluZXItaXRlbSBiZy1iYWNrZ3JvdW5kLXByaW1hcnkgcC00XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxFeHRlbmRXZWJzaXRlV2lkZ2V0IHBsdWdpbj17cGx1Z2lufSBzZXRVcGRhdGVDb3VudGVyPXtzZXRVcGRhdGVDb3VudGVyfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRXh0ZW5kV2Vic2l0ZTtcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiRXh0ZW5kV2Vic2l0ZVdpZGdldCIsIkNvbnRhaW5lciIsIlNrZWxldG9uIiwiYXBpRmV0Y2giLCJfXyIsIkV4dGVuZFdlYnNpdGUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJwbHVnaW5zIiwic2V0UGx1Z2lucyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInVwZGF0ZUNvdW50ZXIiLCJzZXRVcGRhdGVDb3VudGVyIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJhbGxJbnN0YWxsZWQiLCJzZXRBbGxJbnN0YWxsZWQiLCJmZXRjaFNldHRpbmdzIiwiX3JlZiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiZGF0YSIsInBsdWdpbnNEYXRhIiwiYXJlQWxsSW5zdGFsbGVkIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInBhdGgiLCJoZWFkZXJzIiwidWFlbFNldHRpbmdzRGF0YSIsInVhZWxfbm9uY2VfYWN0aW9uIiwic2VudCIsImNvbnZlcnRUb1BsdWdpbnNBcnJheSIsImV2ZXJ5IiwicGx1Z2luIiwiaXNfaW5zdGFsbGVkIiwidDAiLCJjb25zb2xlIiwiZXJyb3IiLCJmaW5pc2giLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJPYmplY3QiLCJrZXlzIiwibWFwIiwia2V5IiwiX29iamVjdFNwcmVhZCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJzdHlsZSIsInBhZGRpbmdCb3R0b20iLCJiYWNrZ3JvdW5kQ29sb3IiLCJhbGlnbiIsImNvbnRhaW5lclR5cGUiLCJqdXN0aWZ5IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiQXJyYXkiLCJfIiwiaW5kZXgiLCJJdGVtIiwiYWxpZ25TZWxmIiwiaGVpZ2h0IiwibWFyZ2luVG9wIiwic2xpY2UiLCJzbHVnIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/Components/Dashboard/ExtendWebsite.jsx\n");
/***/ }),
/***/ "./src/Components/Dashboard/ExtendWebsiteWidget.jsx":
/*!**********************************************************!*\
!*** ./src/Components/Dashboard/ExtendWebsiteWidget.jsx ***!
\**********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/api-fetch */ \"@wordpress/api-fetch\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\nvar ExtendWebsiteWidget = function ExtendWebsiteWidget(_ref) {\n var plugin = _ref.plugin,\n setUpdateCounter = _ref.setUpdateCounter;\n var path = plugin.path,\n slug = plugin.slug,\n siteUrl = plugin.siteUrl,\n icon = plugin.icon,\n type = plugin.type,\n name = plugin.name,\n zipUrl = plugin.zipUrl,\n desc = plugin.desc,\n wporg = plugin.wporg,\n isFree = plugin.isFree,\n action = plugin.action,\n status = plugin.status,\n settings_url = plugin.settings_url;\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n isDialogOpen = _useState2[0],\n setIsDialogOpen = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState3, 2),\n pluginData = _useState4[0],\n setPluginData = _useState4[1];\n var getAction = function getAction(status) {\n if (status === 'Activated') {\n return 'site_redirect';\n } else if (status === 'Installed') {\n return 'uael_recommended_plugin_activate';\n }\n return 'uael_recommended_plugin_install';\n };\n var handlePluginAction = function handlePluginAction(e) {\n var action = e.currentTarget.dataset.action;\n var formData = new window.FormData();\n var currentPluginData = {\n init: e.currentTarget.dataset.init,\n type: e.currentTarget.dataset.type,\n slug: e.currentTarget.dataset.slug,\n name: e.currentTarget.dataset.pluginname\n };\n switch (action) {\n case 'uael_recommended_plugin_activate':\n // Confirmation only for theme activation\n if (currentPluginData.type === 'theme') {\n // Show dialog for confirmation\n setPluginData(currentPluginData);\n setIsDialogOpen(true);\n } else {\n // Directly activate for non-theme plugins\n activatePlugin(currentPluginData);\n }\n break;\n case 'uael_recommended_plugin_install':\n // Installation process without any confirmation\n formData.append('action', currentPluginData.type === 'theme' ? 'uael_recommended_theme_install' : 'uael_recommended_plugin_install');\n formData.append('_ajax_nonce', uaelSettingsData.installer_nonce);\n formData.append('slug', currentPluginData.slug);\n e.target.innerText = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Installing..', 'uael');\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3___default()({\n url: uaelSettingsData.ajax_url,\n method: 'POST',\n body: formData\n }).then(function (data) {\n if (data.success || data.errorCode === 'folder_exists') {\n e.target.innerText = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Installed', 'uael');\n callAnalyticsWebhook(currentPluginData);\n if (currentPluginData.type === 'theme') {\n // Change button state to \"Activate\" after successful installation\n var buttonElement = document.querySelector(\"[data-slug=\\\"\".concat(currentPluginData.slug, \"\\\"]\"));\n buttonElement.dataset.action = 'uael_recommended_plugin_activate';\n e.target.innerText = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Activate', 'uael');\n } else {\n activatePlugin(currentPluginData);\n }\n } else {\n e.target.innerText = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Install', 'uael');\n alert(currentPluginData.type === 'theme' ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Theme Installation failed, Please try again later.', 'uael') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Plugin Installation failed, Please try again later.', 'uael'));\n }\n });\n break;\n case 'site_redirect':\n window.open(siteUrl, '_blank'); // Open siteUrl in a new tab\n break;\n default:\n // Do nothing.\n break;\n }\n };\n var callAnalyticsWebhook = function callAnalyticsWebhook(pluginData) {\n var webhookUrl = 'https://webhook.suretriggers.com/suretriggers/a7ac4b20-18f9-4ec6-9813-dfac83328d00';\n var today = new Date().toISOString().split('T')[0];\n var params = new URLSearchParams({\n source: 'UAE Pro',\n target_plugin: pluginData.name,\n date: today // Add today's date\n });\n fetch(\"\".concat(webhookUrl, \"?\").concat(params.toString()), {\n method: 'GET'\n }).then(function (response) {\n return response.json();\n }).then(function (data) {\n // console.log('Webhook call successful:', data);\n })[\"catch\"](function (error) {\n // console.error('Error calling webhook:', error);\n });\n };\n var activatePlugin = function activatePlugin(pluginData) {\n setIsDialogOpen(false);\n var formData = new window.FormData();\n formData.append('action', 'uael_recommended_plugin_activate');\n formData.append('nonce', uaelSettingsData.ajax_nonce);\n formData.append('plugin', pluginData.init);\n formData.append('type', pluginData.type);\n formData.append('slug', pluginData.slug);\n var buttonElement = document.querySelector(\"[data-slug=\\\"\".concat(pluginData.slug, \"\\\"]\"));\n var spanElement = buttonElement.querySelector('span');\n spanElement.innerText = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Activating..', 'uael');\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3___default()({\n url: uaelSettingsData.ajax_url,\n method: 'POST',\n body: formData\n }).then(function (data) {\n if (data.success) {\n if (spanElement) {\n // Check if spanElement is not null\n buttonElement.style.color = '#16A34A';\n buttonElement.dataset.action = 'site_redirect';\n buttonElement.classList.add('uae-plugin-activated');\n spanElement.innerText = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Activated', 'uael');\n window.open(settings_url, '_blank');\n setTimeout(function () {\n // Reload the section or recall the REST API\n setUpdateCounter(function (prev) {\n return prev + 1;\n });\n }, 5000);\n }\n } else {\n if ('theme' == pluginData.type) {\n // console.log(__(`Theme Activation failed, Please try again later.`, 'uael'));\n } else {\n // console.log(__(`Plugin Activation failed, Please try again later.`, 'uael'));\n }\n var _buttonElement = document.querySelector(\"[data-slug=\\\"\".concat(pluginData.slug, \"\\\"]\"));\n if (_buttonElement) {\n // Check if buttonElement is not null\n var _spanElement = _buttonElement.querySelector('span');\n if (_spanElement) {\n // Check if spanElement is not null\n _spanElement.innerText = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Activate', 'uael');\n }\n }\n }\n });\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container, {\n align: \"center\",\n containerType: \"flex\",\n direction: \"column\",\n justify: \"between\",\n gap: \"lg\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex items-center justify-between w-full\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"h-5 w-5\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: icon,\n alt: \"Recommended Plugins/Themes\",\n className: \"w-full h-auto rounded\",\n style: {\n width: \"24px\",\n height: \"24px\"\n }\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex items-center gap-x-2\"\n }, isFree && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Badge, {\n label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)(\"Free\", \"uael\"),\n size: \"xs\",\n type: \"pill\",\n variant: \"green\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Button, {\n size: \"xs\",\n variant: \"link\",\n className: \"cursor-pointer uael-remove-ring\",\n onClick: handlePluginAction // Trigger action on click\n ,\n \"data-plugin\": zipUrl,\n \"data-type\": type,\n \"data-pluginname\": name,\n \"data-slug\": slug,\n \"data-site\": siteUrl,\n \"data-init\": path,\n \"data-action\": getAction(status),\n style: {\n color: status === 'Activated' ? '#16A34A' : '#6005FF'\n }\n }, status === 'Activated' ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Visit Site', 'uael') : 'Installed' === status ? 'Activate' : status), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog, {\n design: \"simple\",\n open: isDialogOpen,\n setOpen: setIsDialogOpen\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Backdrop, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Panel, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Header, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex items-center justify-between\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Title, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Activate Theme', 'uael'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Description, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Are you sure you want to switch your current theme to Astra?', 'uael'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Footer, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: function onClick() {\n return activatePlugin(pluginData);\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Yes', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"outline\",\n onClick: function onClick() {\n return setIsDialogOpen(false);\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Close', 'uael'))))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex flex-col w-full pb-4\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"p\", {\n className: \"text-sm font-medium text-text-primary pb-1 m-0 cursor-pointer\",\n onClick: function onClick() {\n return window.open(plugin.siteurl, '_blank');\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)(name, 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"p\", {\n className: \"text-sm font-medium text-text-tertiary m-0\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)(desc, 'uael'))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (ExtendWebsiteWidget);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9EYXNoYm9hcmQvRXh0ZW5kV2Vic2l0ZVdpZGdldC5qc3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBd0M7QUFDeUI7QUFDckI7QUFDUDtBQUVyQyxJQUFNUSxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFBQyxJQUFBLEVBR25CO0VBQUEsSUFGRkMsTUFBTSxHQUFBRCxJQUFBLENBQU5DLE1BQU07SUFDTkMsZ0JBQWdCLEdBQUFGLElBQUEsQ0FBaEJFLGdCQUFnQjtFQUVoQixJQUNJQyxJQUFJLEdBYUpGLE1BQU0sQ0FiTkUsSUFBSTtJQUNKQyxJQUFJLEdBWUpILE1BQU0sQ0FaTkcsSUFBSTtJQUNKQyxPQUFPLEdBV1BKLE1BQU0sQ0FYTkksT0FBTztJQUNQQyxJQUFJLEdBVUpMLE1BQU0sQ0FWTkssSUFBSTtJQUNKQyxJQUFJLEdBU0pOLE1BQU0sQ0FUTk0sSUFBSTtJQUNKQyxJQUFJLEdBUUpQLE1BQU0sQ0FSTk8sSUFBSTtJQUNKQyxNQUFNLEdBT05SLE1BQU0sQ0FQTlEsTUFBTTtJQUNOQyxJQUFJLEdBTUpULE1BQU0sQ0FOTlMsSUFBSTtJQUNKQyxLQUFLLEdBS0xWLE1BQU0sQ0FMTlUsS0FBSztJQUNMQyxNQUFNLEdBSU5YLE1BQU0sQ0FKTlcsTUFBTTtJQUNOQyxNQUFNLEdBR05aLE1BQU0sQ0FITlksTUFBTTtJQUNOQyxNQUFNLEdBRU5iLE1BQU0sQ0FGTmEsTUFBTTtJQUNOQyxZQUFZLEdBQ1pkLE1BQU0sQ0FETmMsWUFBWTtFQUVoQixJQUFBQyxTQUFBLEdBQXdDeEIsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXlCLFVBQUEsR0FBQUMsZ0ZBQUEsQ0FBQUYsU0FBQTtJQUFoREcsWUFBWSxHQUFBRixVQUFBO0lBQUVHLGVBQWUsR0FBQUgsVUFBQTtFQUNwQyxJQUFBSSxVQUFBLEdBQW9DN0IsK0NBQVEsQ0FBQyxJQUFJLENBQUM7SUFBQThCLFVBQUEsR0FBQUosZ0ZBQUEsQ0FBQUcsVUFBQTtJQUEzQ0Us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L0YsMERBQUE7SUFDSStGLFNBQVMsRUFBQywrREFBK0Q7SUFDekVRLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUS9ELE1BQU0sQ0FBQ3lCLElBQUksQ0FBQ3ZELE1BQU0sQ0FBQ3NHLE9BQU8sRUFBRSxRQUFRLENBQUM7SUFBQTtFQUFDLEdBQ3ZEekcsbURBQUUsQ0FBQ1UsSUFBSSxFQUFFLE1BQU0sQ0FBSyxDQUFDLGVBQ3ZCakIsMERBQUE7SUFBRytGLFNBQVMsRUFBQztFQUE0QyxHQUFFeEYsbURBQUUsQ0FBQ1ksSUFBSSxFQUFFLE1BQU0sQ0FBSyxDQUM5RSxDQUNFLENBQUM7QUFFcEIsQ0FBQztBQUVELCtEQUFlWCxtQkFBbUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vc3JjL0NvbXBvbmVudHMvRGFzaGJvYXJkL0V4dGVuZFdlYnNpdGVXaWRnZXQuanN4PzkwNjAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ29udGFpbmVyLCBCdXR0b24sIEJhZGdlLCBEaWFsb2cgfSBmcm9tIFwiQGJzZi9mb3JjZS11aVwiO1xuaW1wb3J0IGFwaUZldGNoIGZyb20gJ0B3b3JkcHJlc3MvYXBpLWZldGNoJztcbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuY29uc3QgRXh0ZW5kV2Vic2l0ZVdpZGdldCA9ICh7XG4gICAgcGx1Z2luLFxuICAgIHNldFVwZGF0ZUNvdW50ZXIgLy8gUmVjZWl2ZSBzZXRVcGRhdGVDb3VudGVyIGFzIGEgcHJvcFxufSkgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgc2x1ZyxcbiAgICAgICAgc2l0ZVVybCxcbiAgICAgICAgaWNvbixcbiAgICAgICAgdHlwZSxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgemlwVXJsLFxuICAgICAgICBkZXNjLFxuICAgICAgICB3cG9yZyxcbiAgICAgICAgaXNGcmVlLFxuICAgICAgICBhY3Rpb24sXG4gICAgICAgIHN0YXR1cyxcbiAgICAgICAgc2V0dGluZ3NfdXJsXG4gICAgfSA9IHBsdWdpblxuICAgIGNvbnN0IFtpc0RpYWxvZ09wZW4sIHNldElzRGlhbG9nT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3BsdWdpbkRhdGEsIHNldFBsdWdpbkRhdGFdID0gdXNlU3RhdGUobnVsbCk7XG5cbiAgICBjb25zdCBnZXRBY3Rpb24gPSAoc3RhdHVzKSA9PiB7XG4gICAgICAgIGlmIChzdGF0dXMgPT09ICdBY3RpdmF0ZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3NpdGVfcmVkaXJlY3QnO1xuICAgICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PT0gJ0luc3RhbGxlZCcpIHtcbiAgICAgICAgICAgIHJldHVybiAndWFlbF9yZWNvbW1lbmRlZF9wbHVnaW5fYWN0aXZhdGUnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAndWFlbF9yZWNvbW1lbmRlZF9wbHVnaW5faW5zdGFsbCc7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVBsdWdpbkFjdGlvbiA9IChlKSA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IGUuY3VycmVudFRhcmdldC5kYXRhc2V0LmFjdGlvbjtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgd2luZG93LkZvcm1EYXRhKCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQbHVnaW5EYXRhID0ge1xuICAgICAgICAgICAgaW5pdDogZS5jdXJyZW50VGFyZ2V0LmRhdGFzZXQuaW5pdCxcbiAgICAgICAgICAgIHR5cGU6IGUuY3VycmVudFRhcmdldC5kYXRhc2V0LnR5cGUsXG4gICAgICAgICAgICBzbHVnOiBlLmN1cnJlbnRUYXJnZXQuZGF0YXNldC5zbHVnLFxuICAgICAgICAgICAgbmFtZTogZS5jdXJyZW50VGFyZ2V0LmRhdGFzZXQucGx1Z2lubmFtZSxcbiAgICAgICAgfTtcblxuICAgICAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgICAgICAgY2FzZSAndWFlbF9yZWNvbW1lbmRlZF9wbHVnaW5fYWN0aXZhdGUnOlxuICAgICAgICAgICAgICAgIC8vIENvbmZpcm1hdGlvbiBvbmx5IGZvciB0aGVtZSBhY3RpdmF0aW9uXG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRQbHVnaW5EYXRhLnR5cGUgPT09ICd0aGVtZScpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2hvdyBkaWFsb2cgZm9yIGNvbmZpcm1hdGlvblxuICAgICAgICAgICAgICAgICAgICBzZXRQbHVnaW5EYXRhKGN1cnJlbnRQbHVnaW5EYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNEaWFsb2dPcGVuKHRydWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIERpcmVjdGx5IGFjdGl2YXRlIGZvciBub24tdGhlbWUgcGx1Z2luc1xuICAgICAgICAgICAgICAgICAgICBhY3RpdmF0ZVBsdWdpbihjdXJyZW50UGx1Z2luRGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICd1YWVsX3JlY29tbWVuZGVkX3BsdWdpbl9pbnN0YWxsJzpcblxuICAgICAgICAgICAgICAgIC8vIEluc3RhbGxhdGlvbiBwcm9jZXNzIHdpdGhvdXQgYW55IGNvbmZpcm1hdGlvblxuICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQbHVnaW5EYXRhLnR5cGUgPT09ICd0aGVtZSdcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3VhZWxfcmVjb21tZW5kZWRfdGhlbWVfaW5zdGFsbCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3VhZWxfcmVjb21tZW5kZWRfcGx1Z2luX2luc3RhbGwnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ19hamF4X25vbmNlJywgdWFlbFNldHRpbmdzRGF0YS5pbnN0YWxsZXJfbm9uY2UpO1xuICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnc2x1ZycsIGN1cnJlbnRQbHVnaW5EYXRhLnNsdWcpO1xuXG4gICAgICAgICAgICAgICAgZS50YXJnZXQuaW5uZXJUZXh0ID0gX18oJ0luc3RhbGxpbmcuLicsICd1YWVsJyk7XG5cbiAgICAgICAgICAgICAgICBhcGlGZXRjaCh7XG4gICAgICAgICAgICAgICAgICAgIHVybDogdWFlbFNldHRpbmdzRGF0YS5hamF4X3VybCxcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IGZvcm1EYXRhLFxuICAgICAgICAgICAgICAgIH0pLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuc3VjY2VzcyB8fCBkYXRhLmVycm9yQ29kZSA9PT0gJ2ZvbGRlcl9leGlzdHMnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnRhcmdldC5pbm5lclRleHQgPSBfXygnSW5zdGFsbGVkJywgJ3VhZWwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxBbmFseXRpY3NXZWJob29rKGN1cnJlbnRQbHVnaW5EYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBjdXJyZW50UGx1Z2luRGF0YS50eXBlID09PSAndGhlbWUnICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoYW5nZSBidXR0b24gc3RhdGUgdG8gXCJBY3RpdmF0ZVwiIGFmdGVyIHN1Y2Nlc3NmdWwgaW5zdGFsbGF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYnV0dG9uRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLXNsdWc9XCIke2N1cnJlbnRQbHVnaW5EYXRhLnNsdWd9XCJdYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uRWxlbWVudC5kYXRhc2V0LmFjdGlvbiA9ICd1YWVsX3JlY29tbWVuZGVkX3BsdWdpbl9hY3RpdmF0ZSc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZS50YXJnZXQuaW5uZXJUZXh0ID0gX18oJ0FjdGl2YXRlJywgJ3VhZWwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGVQbHVnaW4oY3VycmVudFBsdWdpbkRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZS50YXJnZXQuaW5uZXJUZXh0ID0gX18oJ0luc3RhbGwnLCAndWFlbCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBsdWdpbkRhdGEudHlwZSA9PT0gJ3RoZW1lJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IF9fKCdUaGVtZSBJbnN0YWxsYXRpb24gZmFpbGVkLCBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicsICd1YWVsJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBfXygnUGx1Z2luIEluc3RhbGxhdGlvbiBmYWlsZWQsIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJywgJ3VhZWwnKVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdzaXRlX3JlZGlyZWN0JzpcbiAgICAgICAgICAgICAgICB3aW5kb3cub3BlbihzaXRlVXJsLCAnX2JsYW5rJyk7IC8vIE9wZW4gc2l0ZVVybCBpbiBhIG5ldyB0YWJcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAvLyBEbyBub3RoaW5nLlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGNhbGxBbmFseXRpY3NXZWJob29rID0gKHBsdWdpbkRhdGEpID0+IHtcbiAgICAgICAgY29uc3Qgd2ViaG9va1VybCA9ICdodHRwczovL3dlYmhvb2suc3VyZXRyaWdnZXJzLmNvbS9zdXJldHJpZ2dlcnMvYTdhYzRiMjAtMThmOS00ZWM2LTk4MTMtZGZhYzgzMzI4ZDAwJztcbiAgICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgICAgICBzb3VyY2U6ICdVQUUgUHJvJyxcbiAgICAgICAgICAgIHRhcmdldF9wbHVnaW46IHBsdWdpbkRhdGEubmFtZSxcbiAgICAgICAgICAgIGRhdGU6IHRvZGF5LCAvLyBBZGQgdG9kYXkncyBkYXRlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZldGNoKGAke3dlYmhvb2tVcmx9PyR7cGFyYW1zLnRvU3RyaW5nKCl9YCwge1xuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuanNvbigpKVxuICAgICAgICAudGhlbihkYXRhID0+IHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdXZWJob29rIGNhbGwgc3VjY2Vzc2Z1bDonLCBkYXRhKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNhbGxpbmcgd2ViaG9vazonLCBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGFjdGl2YXRlUGx1Z2luID0gKHBsdWdpbkRhdGEpID0+IHtcbiAgICAgICAgc2V0SXNEaWFsb2dPcGVuKGZhbHNlKTtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgd2luZG93LkZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnYWN0aW9uJywgJ3VhZWxfcmVjb21tZW5kZWRfcGx1Z2luX2FjdGl2YXRlJyk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnbm9uY2UnLCB1YWVsU2V0dGluZ3NEYXRhLmFqYXhfbm9uY2UpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ3BsdWdpbicsIHBsdWdpbkRhdGEuaW5pdCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgndHlwZScsIHBsdWdpbkRhdGEudHlwZSk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnc2x1ZycsIHBsdWdpbkRhdGEuc2x1Zyk7XG5cbiAgICAgICAgY29uc3QgYnV0dG9uRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLXNsdWc9XCIke3BsdWdpbkRhdGEuc2x1Z31cIl1gKTtcbiAgICAgICAgY29uc3Qgc3BhbkVsZW1lbnQgPSBidXR0b25FbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NwYW4nKTtcblxuICAgICAgICBzcGFuRWxlbWVudC5pbm5lclRleHQgPSBfXygnQWN0aXZhdGluZy4uJywgJ3VhZWwnKTtcblxuICAgICAgICBhcGlGZXRjaCh7XG4gICAgICAgICAgICB1cmw6IHVhZWxTZXR0aW5nc0RhdGEuYWpheF91cmwsXG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIGJvZHk6IGZvcm1EYXRhLFxuICAgICAgICB9KS50aGVuKChkYXRhKSA9PiB7ICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAoZGF0YS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNwYW5FbGVtZW50KSB7IC8vIENoZWNrIGlmIHNwYW5FbGVtZW50IGlzIG5vdCBudWxsXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbkVsZW1lbnQuc3R5bGUuY29sb3IgPSAnIzE2QTM0QSc7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbkVsZW1lbnQuZGF0YXNldC5hY3Rpb24gPSAnc2l0ZV9yZWRpcmVjdCc7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbkVsZW1lbnQuY2xhc3NMaXN0LmFkZCgndWFlLXBsdWdpbi1hY3RpdmF0ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgc3BhbkVsZW1lbnQuaW5uZXJUZXh0ID0gX18oJ0FjdGl2YXRlZCcsICd1YWVsJyk7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKHNldHRpbmdzX3VybCwgJ19ibGFuaycpO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbG9hZCB0aGUgc2VjdGlvbiBvciByZWNhbGwgdGhlIFJFU1QgQVBJXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRVcGRhdGVDb3VudGVyKHByZXYgPT4gcHJldiArIDEpO1xuICAgICAgICAgICAgICAgICAgICB9LCA1MDAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICgndGhlbWUnID09IHBsdWdpbkRhdGEudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhfXyhgVGhlbWUgQWN0aXZhdGlvbiBmYWlsZWQsIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuYCwgJ3VhZWwnKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coX18oYFBsdWdpbiBBY3RpdmF0aW9uIGZhaWxlZCwgUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci5gLCAndWFlbCcpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgYnV0dG9uRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLXNsdWc9XCIke3BsdWdpbkRhdGEuc2x1Z31cIl1gKTtcbiAgICAgICAgICAgICAgICBpZiAoYnV0dG9uRWxlbWVudCkgeyAvLyBDaGVjayBpZiBidXR0b25FbGVtZW50IGlzIG5vdCBudWxsXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwYW5FbGVtZW50ID0gYnV0dG9uRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdzcGFuJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGFuRWxlbWVudCkgeyAvLyBDaGVjayBpZiBzcGFuRWxlbWVudCBpcyBub3QgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgc3BhbkVsZW1lbnQuaW5uZXJUZXh0ID0gX18oJ0FjdGl2YXRlJywgJ3VhZWwnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxDb250YWluZXIgYWxpZ249XCJjZW50ZXJcIlxuICAgICAgICAgICAgY29udGFpbmVyVHlwZT1cImZsZXhcIlxuICAgICAgICAgICAgZGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgIGp1c3RpZnk9XCJiZXR3ZWVuXCJcbiAgICAgICAgICAgIGdhcD1cImxnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiB3LWZ1bGwnPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdoLTUgdy01Jz5cbiAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXtpY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUmVjb21tZW5kZWQgUGx1Z2lucy9UaGVtZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGgtYXV0byByb3VuZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBcIjI0cHhcIiwgaGVpZ2h0OiBcIjI0cHhcIiB9fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ZsZXggaXRlbXMtY2VudGVyIGdhcC14LTInPlxuICAgICAgICAgICAgICAgICAgICB7aXNGcmVlICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtfXyhcIkZyZWVcIiwgXCJ1YWVsXCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInBpbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJncmVlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiY3Vyc29yLXBvaW50ZXIgdWFlbC1yZW1vdmUtcmluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVQbHVnaW5BY3Rpb259IC8vIFRyaWdnZXIgYWN0aW9uIG9uIGNsaWNrXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXBsdWdpbj17emlwVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10eXBlPXt0eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wbHVnaW5uYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zbHVnPXtzbHVnfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zaXRlPXtzaXRlVXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1pbml0PXtwYXRofVxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1hY3Rpb249e2dldEFjdGlvbihzdGF0dXMpfVxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogc3RhdHVzID09PSAnQWN0aXZhdGVkJyA/ICcjMTZBMzRBJyA6ICcjNjAwNUZGJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtzdGF0dXMgPT09ICdBY3RpdmF0ZWQnID8gX18oJ1Zpc2l0IFNpdGUnLCAndWFlbCcpIDogKCdJbnN0YWxsZWQnID09PSBzdGF0dXMgPyAnQWN0aXZhdGUnIDogc3RhdHVzKX1cbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RGlhbG9nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduPVwic2ltcGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuPXtpc0RpYWxvZ09wZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0T3Blbj17c2V0SXNEaWFsb2dPcGVufVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEaWFsb2cuQmFja2Ryb3AgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGlhbG9nLlBhbmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGlhbG9nLkhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERpYWxvZy5UaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ0FjdGl2YXRlIFRoZW1lJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0RpYWxvZy5UaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERpYWxvZy5EZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBzd2l0Y2ggeW91ciBjdXJyZW50IHRoZW1lIHRvIEFzdHJhPycsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0RpYWxvZy5EZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EaWFsb2cuSGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGlhbG9nLkZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gb25DbGljaz17KCkgPT4gYWN0aXZhdGVQbHVnaW4ocGx1Z2luRGF0YSl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfXygnWWVzJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiB2YXJpYW50PSdvdXRsaW5lJyBvbkNsaWNrPXsoKSA9PiBzZXRJc0RpYWxvZ09wZW4oZmFsc2UpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ0Nsb3NlJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0RpYWxvZy5Gb290ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EaWFsb2cuUGFuZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0RpYWxvZz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nZmxleCBmbGV4LWNvbCB3LWZ1bGwgcGItNCc+XG4gICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSd0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtdGV4dC1wcmltYXJ5IHBiLTEgbS0wIGN1cnNvci1wb2ludGVyJ1xuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB3aW5kb3cub3BlbihwbHVnaW4uc2l0ZXVybCwgJ19ibGFuaycpfVxuICAgICAgICAgICAgICAgID57X18obmFtZSwgJ3VhZWwnKX08L3A+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPSd0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtdGV4dC10ZXJ0aWFyeSBtLTAnPntfXyhkZXNjLCAndWFlbCcpfTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IEV4dGVuZFdlYnNpdGVXaWRnZXRcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwiQ29udGFpbmVyIiwiQnV0dG9uIiwiQmFkZ2UiLCJEaWFsb2ciLCJhcGlGZXRjaCIsIl9fIiwiRXh0ZW5kV2Vic2l0ZVdpZGdldCIsIl9yZWYiLCJwbHVnaW4iLCJzZXRVcGRhdGVDb3VudGVyIiwicGF0aCIsInNsdWciLCJzaXRlVXJsIiwiaWNvbiIsInR5cGUiLCJuYW1lIiwiemlwVXJsIiwiZGVzYyIsIndwb3JnIiwiaXNGcmVlIiwiYWN0aW9uIiwic3RhdHVzIiwic2V0dGluZ3NfdXJsIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaXNEaWFsb2dPcGVuIiwic2V0SXNEaWFsb2dPcGVuIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJwbHVnaW5EYXRhIiwic2V0UGx1Z2luRGF0YSIsImdldEFjdGlvbiIsImhhbmRsZVBsdWdpbkFjdGlvbiIsImUiLCJjdXJyZW50VGFyZ2V0IiwiZGF0YXNldCIsImZvcm1EYXRhIiwid2luZG93IiwiRm9ybURhdGEiLCJjdXJyZW50UGx1Z2luRGF0YSIsImluaXQiLCJwbHVnaW5uYW1lIiwiYWN0aXZhdGVQbHVnaW4iLCJhcHBlbmQiLCJ1YWVsU2V0dGluZ3NEYXRhIiwiaW5zdGFsbGVyX25vbmNlIiwidGFyZ2V0IiwiaW5uZXJUZXh0IiwidXJsIiwiYWpheF91cmwiLCJtZXRob2QiLCJib2R5IiwidGhlbiIsImRhdGEiLCJzdWNjZXNzIiwiZXJyb3JDb2RlIiwiY2FsbEFuYWx5dGljc1dlYmhvb2siLCJidXR0b25FbGVtZW50IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiY29uY2F0IiwiYWxlcnQiLCJvcGVuIiwid2ViaG9va1VybCIsInRvZGF5IiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwic3BsaXQiLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJzb3VyY2UiLCJ0YXJnZXRfcGx1Z2luIiwiZGF0ZSIsImZldGNoIiwidG9TdHJpbmciLCJyZXNwb25zZSIsImpzb24iLCJlcnJvciIsImFqYXhfbm9uY2UiLCJzcGFuRWxlbWVudCIsInN0eWxlIiwiY29sb3IiLCJjbGFzc0xpc3QiLCJhZGQiLCJzZXRUaW1lb3V0IiwicHJldiIsImNyZWF0ZUVsZW1lbnQiLCJhbGlnbiIsImNvbnRhaW5lclR5cGUiLCJkaXJlY3Rpb24iLCJqdXN0aWZ5IiwiZ2FwIiwiY2xhc3NOYW1lIiwic3JjIiwiYWx0Iiwid2lkdGgiLCJoZWlnaHQiLCJsYWJlbCIsInNpemUiLCJ2YXJpYW50Iiwib25DbGljayIsImRlc2lnbiIsInNldE9wZW4iLCJCYWNrZHJvcCIsIlBhbmVsIiwiSGVhZGVyIiwiVGl0bGUiLCJEZXNjcmlwdGlvbiIsIkZvb3RlciIsInNpdGV1cmwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/Components/Dashboard/ExtendWebsiteWidget.jsx\n");
/***/ }),
/***/ "./src/Components/Dashboard/OnboardingWidgets.jsx":
/*!********************************************************!*\
!*** ./src/Components/Dashboard/OnboardingWidgets.jsx ***!
\********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"@babel/runtime/regenerator\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/loader-circle.js\");\n/* harmony import */ var _WidgetItem__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./WidgetItem */ \"./src/Components/Dashboard/WidgetItem.jsx\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/api-fetch */ \"@wordpress/api-fetch\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__);\n\n\n\n\n\nfunction 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; }\nfunction _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) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(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\n\n\n\n\n\nvar OnboardingWidgets = function OnboardingWidgets() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(null),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState, 2),\n allWidgetsData = _useState2[0],\n setAllWidgetsData = _useState2[1]; // Initialize state.\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(''),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState3, 2),\n searchTerm = _useState4[0],\n setSearchTerm = _useState4[1];\n var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(false),\n _useState6 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState5, 2),\n loadingActivate = _useState6[0],\n setLoadingActivate = _useState6[1]; // Loading state for activate button\n var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(false),\n _useState8 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState7, 2),\n loadingDeactivate = _useState8[0],\n setLoadingDeactivate = _useState8[1];\n var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(true),\n _useState10 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState9, 2),\n loading = _useState10[0],\n setLoading = _useState10[1];\n var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(0),\n _useState12 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState11, 2),\n updateCounter = _useState12[0],\n setUpdateCounter = _useState12[1];\n (0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () {\n var fetchSettings = function fetchSettings() {\n setLoading(true);\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_8___default()({\n path: '/uael/v1/widgets',\n headers: {\n 'Content-Type': 'application/json',\n 'X-WP-Nonce': uaelSettingsData.uael_nonce_action // Use the correct nonce\n }\n }).then(function (data) {\n var widgetsData = convertToWidgetsArray(data);\n setAllWidgetsData(widgetsData);\n setLoading(false); // Stop loading\n })[\"catch\"](function (err) {\n setLoading(false); // Stop loading\n });\n };\n fetchSettings();\n }, []);\n\n // New function to handle search input change\n var handleSearchChange = function handleSearchChange(event) {\n setSearchTerm(event.target.value.toLowerCase());\n };\n\n // Filter widgets based on search term\n var filteredWidgets = allWidgetsData === null || allWidgetsData === void 0 ? void 0 : allWidgetsData.filter(function (widget) {\n var _widget$keywords;\n return widget.title.toLowerCase().includes(searchTerm) || ((_widget$keywords = widget.keywords) === null || _widget$keywords === void 0 ? void 0 : _widget$keywords.some(function (keyword) {\n return keyword.toLowerCase().includes(searchTerm);\n }));\n });\n var handleActivateAll = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee() {\n var formData;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n setLoadingActivate(true);\n formData = new window.FormData();\n formData.append('action', 'uael_bulk_activate_widgets');\n formData.append('nonce', uaelSettingsData.ajax_nonce);\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_8___default()({\n url: uaelSettingsData.ajax_url,\n method: 'POST',\n body: formData\n }).then(function (data) {\n setLoadingActivate(false);\n if (data.success) {\n setAllWidgetsData(function (prevWidgets) {\n return prevWidgets.map(function (widget) {\n return _objectSpread(_objectSpread({}, widget), {}, {\n is_active: true\n });\n });\n });\n setUpdateCounter(function (prev) {\n return prev + 1;\n });\n } else if (data.error) {\n setLoadingActivate(false);\n console.error('Error during AJAX request:', error);\n }\n })[\"catch\"](function (error) {\n setLoadingActivate(false);\n console.error('Error during AJAX request:', error);\n });\n case 5:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function handleActivateAll() {\n return _ref.apply(this, arguments);\n };\n }();\n var handleDeactivateAll = /*#__PURE__*/function () {\n var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee2() {\n var formData;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n setLoadingDeactivate(true);\n formData = new window.FormData();\n formData.append('action', 'uael_bulk_deactivate_widgets');\n formData.append('nonce', uaelSettingsData.ajax_nonce);\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_8___default()({\n url: uaelSettingsData.ajax_url,\n method: 'POST',\n body: formData\n }).then(function (data) {\n setLoadingDeactivate(false);\n if (data.success) {\n setAllWidgetsData(function (prevWidgets) {\n return prevWidgets.map(function (widget) {\n return _objectSpread(_objectSpread({}, widget), {}, {\n is_active: false\n });\n });\n });\n setUpdateCounter(function (prev) {\n return prev + 1;\n });\n } else if (data.error) {\n console.error('AJAX request failed:', data.error);\n }\n })[\"catch\"](function (error) {\n setLoadingDeactivate(false);\n console.error('Error during AJAX request:', error);\n });\n case 5:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function handleDeactivateAll() {\n return _ref2.apply(this, arguments);\n };\n }();\n function convertToWidgetsArray(data) {\n var widgets = [];\n for (var key in data) {\n if (data.hasOwnProperty(key)) {\n var widget = data[key];\n widgets.push({\n id: key,\n // Using the key as 'widgetTitle'\n slug: widget.slug,\n title: widget.title,\n keywords: widget.keywords,\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"i\", {\n className: widget.icon\n }),\n title_url: widget.title_url,\n \"default\": widget[\"default\"],\n doc_url: widget.doc_url,\n is_pro: widget.is_pro,\n description: widget.description,\n is_active: widget.is_activate !== undefined ? widget.is_activate : true,\n // Check if is_activate is set\n demo_url: widget.demo_url !== undefined ? widget.demo_url : widget.doc_url\n });\n }\n }\n return widgets;\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"rounded-lg w-full mb-4\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex flex-col md:flex-row md:items-center md:justify-between p-4\",\n style: {\n paddingTop: '1.5rem'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"h4\", {\n className: \"m-0 font-semibold text-text-primary mb-2 md:mb-0\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)(\"WIDGETS\", \"header-footer-elementor\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex flex-col md:flex-row items-center gap-y-2 md:gap-x-2 md:mr-7 relative\",\n style: {\n paddingRight: '0.75rem'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex flex-row w-full md:w-auto\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Button, {\n icon: loadingActivate ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"animate-spin\"\n }) : null,\n iconPosition: \"left\",\n variant: \"outline\",\n className: \"uael-bulk-action-button uael-remove-ring\",\n onClick: handleActivateAll // Attach the onClick event.\n ,\n disabled: !!searchTerm,\n style: {\n borderTopRightRadius: '0px',\n borderBottomRightRadius: '0px',\n borderRight: '0px',\n fontSize: '0.9em'\n }\n }, loadingActivate ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)('Activating...', 'header-footer-elementor') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)('Activate All', 'header-footer-elementor')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Button, {\n icon: loadingDeactivate ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"animate-spin\"\n }) : null // Loader for deactivate button.\n ,\n iconPosition: \"left\",\n variant: \"outline\",\n onClick: handleDeactivateAll,\n className: \"uael-bulk-action-button uael-remove-ring\",\n disabled: !!searchTerm,\n style: {\n borderTopLeftRadius: '0px',\n borderBottomLeftRadius: '0px',\n fontSize: '0.9em'\n }\n }, loadingDeactivate ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)('Deactivating...', 'header-footer-elementor') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)('Deactivate All', 'header-footer-elementor'))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"uael-custom-scrollbar bg-background-secondary p-1 rounded-lg max-h-80\",\n style: {\n overflow: 'auto',\n maxHeight: '20rem',\n paddingTop: '0'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex bg-black flex-col p-3\",\n style: {\n minHeight: \"800px\",\n paddingTop: '0'\n }\n }, loading ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Container, {\n align: \"stretch\",\n className: \"p-2 gap-1.5 grid grid-cols-2 md:grid-cols-4\",\n style: {\n backgroundColor: \"#F9FAFB\"\n },\n containerType: \"grid\",\n gap: \"\",\n justify: \"start\"\n }, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Array(30)).map(function (_, index) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Container.Item, {\n key: index,\n alignSelf: \"auto\",\n className: \"text-wrap rounded-md shadow-container-item bg-background-primary p-8 space-y-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Skeleton, {\n className: \"w-12 h-2 rounded-md\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Skeleton, {\n className: \"w-16 h-2 rounded-md\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Skeleton, {\n className: \"w-12 h-2 rounded-md\"\n }));\n })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Container, {\n align: \"stretch\",\n className: \"p-1 gap-1.5 grid-cols-2 md:grid-cols-4\",\n containerType: \"grid\",\n gap: \"\",\n justify: \"start\",\n style: {\n paddingTop: '0'\n }\n }, filteredWidgets === null || filteredWidgets === void 0 ? void 0 : filteredWidgets.map(function (widget) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Container.Item, {\n key: widget.id,\n alignSelf: \"auto\",\n className: \"text-wrap rounded-md shadow-container-item bg-background-primary p-4\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_WidgetItem__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n widget: _objectSpread(_objectSpread({}, widget), {}, {\n updateCounter: updateCounter\n }),\n key: widget.id,\n updateCounter: updateCounter\n }));\n })))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (OnboardingWidgets);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9EYXNoYm9hcmQvT25ib2FyZGluZ1dpZGdldHMuanN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFtRDtBQUNTO0FBQ0o7QUFDdkM7QUFDMkI7QUFDUDtBQUVyQyxJQUFNVyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFBLEVBQVM7RUFFNUIsSUFBQUMsU0FBQSxHQUE0Q1gsK0NBQVEsQ0FBQyxJQUFJLENBQUM7SUFBQVksVUFBQSxHQUFBQyxnRkFBQSxDQUFBRixTQUFBO0lBQW5ERyxjQUFjLEdBQUFGLFVBQUE7SUFBRUcsaUJBQWlCLEdBQUFILFVBQUEsSUFBbUIsQ0FBQztFQUM1RCxJQUFBSSxVQUFBLEdBQW9DaEIsK0NBQVEsQ0FBQyxFQUFFLENBQUM7SUFBQWlCLFVBQUEsR0FBQUosZ0ZBQUEsQ0FBQUcsVUFBQTtJQUF6Q0UsVUFBVSxHQUFBRCxVQUFBO0lBQUVFLGFBQWEsR0FBQUYsVUFBQTtFQUNoQyxJQUFBRyxVQUFBLEdBQThDcEIsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXFCLFVBQUEsR0FBQVIsZ0ZBQUEsQ0FBQU8sVUFBQTtJQUF0REUsZUFBZSxHQUFBRCxVQUFBO0lBQUVFLGtCQUFrQixHQUFBRixVQUFBLElBQW9CLENBQUM7RUFDL0QsSUFBQUcsVUFBQSxHQUFrRHhCLCtDQUFRLENBQUMsS0FBSyxDQUFDO0lBQUF5QixVQUFBLEdBQUFaLGdGQUFBLENBQUFXLFVBQUE7SUFBMURFLGlCQUFpQixHQUFBRCxVQUFBO0lBQUVFLG9CQUFvQixHQUFBRixVQUFBO0VBQzlDLElBQUFHLFVBQUEsR0FBOEI1QiwrQ0FBUSxDQUFDLElBQUksQ0FBQztJQUFBNkIsV0FBQSxHQUFBaEIsZ0ZBQUEsQ0FBQWUsVUFBQTtJQUFyQ0UsT0FBTyxHQUFBRCxXQUFBO0lBQUVFLFVBQVUsR0FBQUYsV0FBQTtFQUMxQixJQUFBRyxXQUFBLEdBQTBDaEMsK0NBQVEsQ0FBQyxDQUFDLENBQUM7SUFBQWlD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eEcsMERBQUEsQ0FBQ0ssbURBQVE7TUFBQ21HLFNBQVMsRUFBQztJQUFxQixDQUFFLENBQUMsZUFDNUN4RywwREFBQSxDQUFDSyxtREFBUTtNQUFDbUcsU0FBUyxFQUFDO0lBQXFCLENBQUUsQ0FBQyxlQUM1Q3hHLDBEQUFBLENBQUNLLG1EQUFRO01BQUNtRyxTQUFTLEVBQUM7SUFBcUIsQ0FBRSxDQUMvQixDQUFDO0VBQUEsQ0FDcEIsQ0FDTSxDQUFDLGdCQUVaeEcsMERBQUEsQ0FBQ0csb0RBQVM7SUFDTjZILEtBQUssRUFBQyxTQUFTO0lBQ2Z4QixTQUFTLEVBQUMsd0NBQXdDO0lBQ2xEMEIsYUFBYSxFQUFDLE1BQU07SUFDcEJDLEdBQUcsRUFBQyxFQUFFO0lBQ05DLE9BQU8sRUFBQyxPQUFPO0lBQ2ZwQixLQUFLLEVBQUU7TUFDSEMsVUFBVSxFQUFFO0lBQ2hCO0VBQUUsR0FFRDdELGVBQWUsYUFBZkEsZUFBZSx1QkFBZkEsZUFBZSxDQUFFK0IsR0FBRyxDQUFDLFVBQUM3QixNQUFNO0lBQUEsb0JBQ3pCdEQsMERBQUEsQ0FBQ0csb0RBQVMsQ0FBQ3NJLElBQUk7TUFDWHhDLEdBQUcsRUFBRTNDLE1BQU0sQ0FBQzhDLEVBQUc7TUFDZnNDLFNBQVMsRUFBQyxNQUFNO01BQ2hCbEMsU0FBUyxFQUFDO0lBQXNFLGdCQUVoRnhHLDBEQUFBLENBQUNRLG1EQUFVO01BQUM4QyxNQUFNLEVBQUE4QixhQUFBLENBQUFBLGFBQUEsS0FBTzlCLE1BQU07UUFBRW5CLGFBQWEsRUFBYkE7TUFBYSxFQUFHO01BQUM4RCxHQUFHLEVBQUUzQyxNQUFNLENBQUM4QyxFQUFHO01BQUNqRSxhQUFhLEVBQUVBO0lBQWMsQ0FBRSxDQUNyRixDQUFDO0VBQUEsQ0FDcEIsQ0FDTSxDQUVkLENBQ0osQ0FDSixDQUFDO0FBRWQsQ0FBQztBQUVELCtEQUFleEIsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL3NyYy9Db21wb25lbnRzL0Rhc2hib2FyZC9PbmJvYXJkaW5nV2lkZ2V0cy5qc3g/M2NhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENvbnRhaW5lciwgQnV0dG9uLCBTa2VsZXRvbiB9IGZyb20gXCJAYnNmL2ZvcmNlLXVpXCI7XG5pbXBvcnQgeyBMb2FkZXJDaXJjbGUsIFNlYXJjaEljb24gfSBmcm9tIFwibHVjaWRlLXJlYWN0XCI7XG5pbXBvcnQgV2lkZ2V0SXRlbSBmcm9tICdAY29tcG9uZW50cy9EYXNoYm9hcmQvV2lkZ2V0SXRlbSc7XG5pbXBvcnQgYXBpRmV0Y2ggZnJvbSAnQHdvcmRwcmVzcy9hcGktZmV0Y2gnO1xuaW1wb3J0IHsgX18gfSBmcm9tIFwiQHdvcmRwcmVzcy9pMThuXCI7XG5cbmNvbnN0IE9uYm9hcmRpbmdXaWRnZXRzID0gKCkgPT4ge1xuXG4gICAgY29uc3QgW2FsbFdpZGdldHNEYXRhLCBzZXRBbGxXaWRnZXRzRGF0YV0gPSB1c2VTdGF0ZShudWxsKTsgLy8gSW5pdGlhbGl6ZSBzdGF0ZS5cbiAgICBjb25zdCBbc2VhcmNoVGVybSwgc2V0U2VhcmNoVGVybV0gPSB1c2VTdGF0ZSgnJyk7XG4gICAgY29uc3QgW2xvYWRpbmdBY3RpdmF0ZSwgc2V0TG9hZGluZ0FjdGl2YXRlXSA9IHVzZVN0YXRlKGZhbHNlKTsgLy8gTG9hZGluZyBzdGF0ZSBmb3IgYWN0aXZhdGUgYnV0dG9uXG4gICAgY29uc3QgW2xvYWRpbmdEZWFjdGl2YXRlLCBzZXRMb2FkaW5nRGVhY3RpdmF0ZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW3VwZGF0ZUNvdW50ZXIsIHNldFVwZGF0ZUNvdW50ZXJdID0gdXNlU3RhdGUoMCk7XG5cblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZldGNoU2V0dGluZ3MgPSAoKSA9PiB7XG4gICAgICAgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgYXBpRmV0Y2goe1xuICAgICAgICAgICAgICAgIHBhdGg6ICcvdWFlbC92MS93aWRnZXRzJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgICAgICdYLVdQLU5vbmNlJzogdWFlbFNldHRpbmdzRGF0YS51YWVsX25vbmNlX2FjdGlvbiwgLy8gVXNlIHRoZSBjb3JyZWN0IG5vbmNlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2lkZ2V0c0RhdGEgPSBjb252ZXJ0VG9XaWRnZXRzQXJyYXkoZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgc2V0QWxsV2lkZ2V0c0RhdGEod2lkZ2V0c0RhdGEpO1xuICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTsgLy8gU3RvcCBsb2FkaW5nXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTsgLy8gU3RvcCBsb2FkaW5nXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgZmV0Y2hTZXR0aW5ncygpO1xuICAgIH0sIFtdKTtcblxuICAgIC8vIE5ldyBmdW5jdGlvbiB0byBoYW5kbGUgc2VhcmNoIGlucHV0IGNoYW5nZVxuICAgIGNvbnN0IGhhbmRsZVNlYXJjaENoYW5nZSA9IChldmVudCkgPT4ge1xuICAgICAgICBzZXRTZWFyY2hUZXJtKGV2ZW50LnRhcmdldC52YWx1ZS50b0xvd2VyQ2FzZSgpKTtcbiAgICB9O1xuXG4gICAgLy8gRmlsdGVyIHdpZGdldHMgYmFzZWQgb24gc2VhcmNoIHRlcm1cbiAgICBjb25zdCBmaWx0ZXJlZFdpZGdldHMgPSBhbGxXaWRnZXRzRGF0YT8uZmlsdGVyKHdpZGdldCA9PlxuICAgICAgICB3aWRnZXQudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKSB8fFxuICAgICAgICB3aWRnZXQua2V5d29yZHM/LnNvbWUoa2V5d29yZCA9PiBrZXl3b3JkLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybSkpXG4gICAgKTtcblxuICAgIGNvbnN0IGhhbmRsZUFjdGl2YXRlQWxsID0gYXN5bmMgKCkgPT4ge1xuXG4gICAgICAgIHNldExvYWRpbmdBY3RpdmF0ZSh0cnVlKTtcblxuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyB3aW5kb3cuRm9ybURhdGEoKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdhY3Rpb24nLCAndWFlbF9idWxrX2FjdGl2YXRlX3dpZGdldHMnKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdub25jZScsIHVhZWxTZXR0aW5nc0RhdGEuYWpheF9ub25jZSk7XG5cbiAgICAgICAgYXBpRmV0Y2goe1xuICAgICAgICAgICAgdXJsOiB1YWVsU2V0dGluZ3NEYXRhLmFqYXhfdXJsLFxuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBib2R5OiBmb3JtRGF0YSxcbiAgICAgICAgfSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgc2V0TG9hZGluZ0FjdGl2YXRlKGZhbHNlKTtcbiAgICAgICAgICAgIGlmIChkYXRhLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICBzZXRBbGxXaWRnZXRzRGF0YShwcmV2V2lkZ2V0cyA9PlxuICAgICAgICAgICAgICAgICAgICBwcmV2V2lkZ2V0cy5tYXAod2lkZ2V0ID0+ICh7IC4uLndpZGdldCwgaXNfYWN0aXZlOiB0cnVlIH0pKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgc2V0VXBkYXRlQ291bnRlcihwcmV2ID0+IHByZXYgKyAxKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5lcnJvcikge1xuICAgICAgICAgICAgICAgIHNldExvYWRpbmdBY3RpdmF0ZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZHVyaW5nIEFKQVggcmVxdWVzdDonLCBlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgc2V0TG9hZGluZ0FjdGl2YXRlKGZhbHNlKTtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGR1cmluZyBBSkFYIHJlcXVlc3Q6JywgZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRGVhY3RpdmF0ZUFsbCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgc2V0TG9hZGluZ0RlYWN0aXZhdGUodHJ1ZSk7XG5cbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgd2luZG93LkZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnYWN0aW9uJywgJ3VhZWxfYnVsa19kZWFjdGl2YXRlX3dpZGdldHMnKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdub25jZScsIHVhZWxTZXR0aW5nc0RhdGEuYWpheF9ub25jZSk7XG5cbiAgICAgICAgYXBpRmV0Y2goe1xuICAgICAgICAgICAgdXJsOiB1YWVsU2V0dGluZ3NEYXRhLmFqYXhfdXJsLFxuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBib2R5OiBmb3JtRGF0YSxcbiAgICAgICAgfSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgc2V0TG9hZGluZ0RlYWN0aXZhdGUoZmFsc2UpO1xuICAgICAgICAgICAgaWYgKGRhdGEuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgIHNldEFsbFdpZGdldHNEYXRhKHByZXZXaWRnZXRzID0+XG4gICAgICAgICAgICAgICAgICAgIHByZXZXaWRnZXRzLm1hcCh3aWRnZXQgPT4gKHsgLi4ud2lkZ2V0LCBpc19hY3RpdmU6IGZhbHNlIH0pKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgc2V0VXBkYXRlQ291bnRlcihwcmV2ID0+IHByZXYgKyAxKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5lcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0FKQVggcmVxdWVzdCBmYWlsZWQ6JywgZGF0YS5lcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgc2V0TG9hZGluZ0RlYWN0aXZhdGUoZmFsc2UpO1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZHVyaW5nIEFKQVggcmVxdWVzdDonLCBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBjb252ZXJ0VG9XaWRnZXRzQXJyYXkoZGF0YSkge1xuICAgICAgICBjb25zdCB3aWRnZXRzID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YSkge1xuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdpZGdldCA9IGRhdGFba2V5XTtcbiAgICAgICAgICAgICAgICB3aWRnZXRzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBpZDoga2V5LCAvLyBVc2luZyB0aGUga2V5IGFzICd3aWRnZXRUaXRsZSdcbiAgICAgICAgICAgICAgICAgICAgc2x1Zzogd2lkZ2V0LnNsdWcsXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB3aWRnZXQudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIGtleXdvcmRzOiB3aWRnZXQua2V5d29yZHMsXG4gICAgICAgICAgICAgICAgICAgIGljb246IDxpIGNsYXNzTmFtZT17d2lkZ2V0Lmljb259PjwvaT4sXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlX3VybDogd2lkZ2V0LnRpdGxlX3VybCxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogd2lkZ2V0LmRlZmF1bHQsXG4gICAgICAgICAgICAgICAgICAgIGRvY191cmw6IHdpZGdldC5kb2NfdXJsLFxuICAgICAgICAgICAgICAgICAgICBpc19wcm86IHdpZGdldC5pc19wcm8sXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB3aWRnZXQuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIGlzX2FjdGl2ZTogd2lkZ2V0LmlzX2FjdGl2YXRlICE9PSB1bmRlZmluZWQgPyB3aWRnZXQuaXNfYWN0aXZhdGUgOiB0cnVlLCAvLyBDaGVjayBpZiBpc19hY3RpdmF0ZSBpcyBzZXRcbiAgICAgICAgICAgICAgICAgICAgZGVtb191cmw6IHdpZGdldC5kZW1vX3VybCAhPT0gdW5kZWZpbmVkID8gd2lkZ2V0LmRlbW9fdXJsIDogd2lkZ2V0LmRvY191cmxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB3aWRnZXRzO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPSdyb3VuZGVkLWxnIHctZnVsbCBtYi00JyA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBtZDppdGVtcy1jZW50ZXIgbWQ6anVzdGlmeS1iZXR3ZWVuIHAtNCcgc3R5bGU9e3sgcGFkZGluZ1RvcDogJzEuNXJlbScgfX0+XG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT0nbS0wIGZvbnQtc2VtaWJvbGQgdGV4dC10ZXh0LXByaW1hcnkgbWItMiBtZDptYi0wJz57X18oXCJXSURHRVRTXCIsIFwiaGVhZGVyLWZvb3Rlci1lbGVtZW50b3JcIil9PC9oND5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLXktMiBtZDpnYXAteC0yIG1kOm1yLTcgcmVsYXRpdmUnIHN0eWxlPXt7IHBhZGRpbmdSaWdodDogJzAuNzVyZW0nIH19PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1yb3cgdy1mdWxsIG1kOnctYXV0b1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e2xvYWRpbmdBY3RpdmF0ZSA/IDxMb2FkZXJDaXJjbGUgY2xhc3NOYW1lPVwiYW5pbWF0ZS1zcGluXCIgLz4gOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cImxlZnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1YWVsLWJ1bGstYWN0aW9uLWJ1dHRvbiB1YWVsLXJlbW92ZS1yaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVBY3RpdmF0ZUFsbH0gLy8gQXR0YWNoIHRoZSBvbkNsaWNrIGV2ZW50LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXshIXNlYXJjaFRlcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgYm9yZGVyVG9wUmlnaHRSYWRpdXM6ICcwcHgnLCBib3JkZXJCb3R0b21SaWdodFJhZGl1czogJzBweCcsIGJvcmRlclJpZ2h0OiAnMHB4JywgZm9udFNpemU6ICcwLjllbScgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bG9hZGluZ0FjdGl2YXRlID8gX18oJ0FjdGl2YXRpbmcuLi4nLCAnaGVhZGVyLWZvb3Rlci1lbGVtZW50b3InKSA6IF9fKCdBY3RpdmF0ZSBBbGwnLCAnaGVhZGVyLWZvb3Rlci1lbGVtZW50b3InKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17bG9hZGluZ0RlYWN0aXZhdGUgPyA8TG9hZGVyQ2lyY2xlIGNsYXNzTmFtZT1cImFuaW1hdGUtc3BpblwiIC8+IDogbnVsbH0gLy8gTG9hZGVyIGZvciBkZWFjdGl2YXRlIGJ1dHRvbi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJsZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRGVhY3RpdmF0ZUFsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1YWVsLWJ1bGstYWN0aW9uLWJ1dHRvbiB1YWVsLXJlbW92ZS1yaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ISFzZWFyY2hUZXJtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJvcmRlclRvcExlZnRSYWRpdXM6ICcwcHgnLCBib3JkZXJCb3R0b21MZWZ0UmFkaXVzOiAnMHB4JywgZm9udFNpemU6ICcwLjllbScgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bG9hZGluZ0RlYWN0aXZhdGUgPyBfXygnRGVhY3RpdmF0aW5nLi4uJywgJ2hlYWRlci1mb290ZXItZWxlbWVudG9yJykgOiBfXygnRGVhY3RpdmF0ZSBBbGwnLCAnaGVhZGVyLWZvb3Rlci1lbGVtZW50b3InKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVhZWwtY3VzdG9tLXNjcm9sbGJhciBiZy1iYWNrZ3JvdW5kLXNlY29uZGFyeSBwLTEgcm91bmRlZC1sZyBtYXgtaC04MFwiIHN0eWxlPXt7IG92ZXJmbG93OiAnYXV0bycsIG1heEhlaWdodDogJzIwcmVtJywgcGFkZGluZ1RvcDogJzAnIH19PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdmbGV4IGJnLWJsYWNrIGZsZXgtY29sIHAtMycgc3R5bGU9e3sgbWluSGVpZ2h0OiBcIjgwMHB4XCIsIHBhZGRpbmdUb3A6ICcwJyB9fT5cbiAgICAgICAgICAgICAgICAgICAge2xvYWRpbmcgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ249XCJzdHJldGNoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwLTIgZ2FwLTEuNSBncmlkIGdyaWQtY29scy0yIG1kOmdyaWQtY29scy00XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiI0Y5RkFGQlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJUeXBlPVwiZ3JpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FwPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5PVwic3RhcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtbLi4uQXJyYXkoMzApXS5tYXAoKF8sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduU2VsZj1cImF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC13cmFwIHJvdW5kZWQtbWQgc2hhZG93LWNvbnRhaW5lci1pdGVtIGJnLWJhY2tncm91bmQtcHJpbWFyeSBwLTggc3BhY2UteS0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNrZWxldG9uIGNsYXNzTmFtZT0ndy0xMiBoLTIgcm91bmRlZC1tZCcgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTa2VsZXRvbiBjbGFzc05hbWU9J3ctMTYgaC0yIHJvdW5kZWQtbWQnIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2tlbGV0b24gY2xhc3NOYW1lPSd3LTEyIGgtMiByb3VuZGVkLW1kJyAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ249XCJzdHJldGNoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwLTEgZ2FwLTEuNSBncmlkLWNvbHMtMiBtZDpncmlkLWNvbHMtNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyVHlwZT1cImdyaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhcD1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeT1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nVG9wOiAnMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWx0ZXJlZFdpZGdldHM/Lm1hcCgod2lkZ2V0KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt3aWRnZXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnblNlbGY9XCJhdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtd3JhcCByb3VuZGVkLW1kIHNoYWRvdy1jb250YWluZXItaXRlbSBiZy1iYWNrZ3JvdW5kLXByaW1hcnkgcC00XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFdpZGdldEl0ZW0gd2lkZ2V0PXt7IC4uLndpZGdldCwgdXBkYXRlQ291bnRlciB9fSBrZXk9e3dpZGdldC5pZH0gdXBkYXRlQ291bnRlcj17dXBkYXRlQ291bnRlcn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXIuSXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgT25ib2FyZGluZ1dpZGdldHNcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiQ29udGFpbmVyIiwiQnV0dG9uIiwiU2tlbGV0b24iLCJMb2FkZXJDaXJjbGUiLCJTZWFyY2hJY29uIiwiV2lkZ2V0SXRlbSIsImFwaUZldGNoIiwiX18iLCJPbmJvYXJkaW5nV2lkZ2V0cyIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFsbFdpZGdldHNEYXRhIiwic2V0QWxsV2lkZ2V0c0RhdGEiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNlYXJjaFRlcm0iLCJzZXRTZWFyY2hUZXJtIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJsb2FkaW5nQWN0aXZhdGUiLCJzZXRMb2FkaW5nQWN0aXZhdGUiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImxvYWRpbmdEZWFjdGl2YXRlIiwic2V0TG9hZGluZ0RlYWN0aXZhdGUiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJ1cGRhdGVDb3VudGVyIiwic2V0VXBkYXRlQ291bnRlciIsImZldGNoU2V0dGluZ3MiLCJwYXRoIiwiaGVhZGVycyIsInVhZWxTZXR0aW5nc0RhdGEiLCJ1YWVsX25vbmNlX2FjdGlvbiIsInRoZW4iLCJkYXRhIiwid2lkZ2V0c0RhdGEiLCJjb252ZXJ0VG9XaWRnZXRzQXJyYXkiLCJlcnIiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJldmVudCIsInRhcmdldCIsInZhbHVlIiwidG9Mb3dlckNhc2UiLCJmaWx0ZXJlZFdpZGdldHMiLCJmaWx0ZXIiLCJ3aWRnZXQiLCJfd2lkZ2V0JGtleXdvcmRzIiwidGl0bGUiLCJpbmNsdWRlcyIsImtleXdvcmRzIiwic29tZSIsImtleXdvcmQiLCJoYW5kbGVBY3RpdmF0ZUFsbCIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImZvcm1EYXRhIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsIndpbmRvdyIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiYWpheF9ub25jZSIsInVybCIsImFqYXhfdXJsIiwibWV0aG9kIiwiYm9keSIsInN1Y2Nlc3MiLCJwcmV2V2lkZ2V0cyIsIm1hcCIsIl9vYmplY3RTcHJlYWQiLCJpc19hY3RpdmUiLCJlcnJvciIsImNvbnNvbGUiLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVEZWFjdGl2YXRlQWxsIiwiX3JlZjIiLCJfY2FsbGVlMiIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsIndpZGdldHMiLCJrZXkiLCJoYXNPd25Qcm9wZXJ0eSIsInB1c2giLCJpZCIsInNsdWciLCJpY29uIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInRpdGxlX3VybCIsImRvY191cmwiLCJpc19wcm8iLCJkZXNjcmlwdGlvbiIsImlzX2FjdGl2YXRlIiwidW5kZWZpbmVkIiwiZGVtb191cmwiLCJzdHlsZSIsInBhZGRpbmdUb3AiLCJwYWRkaW5nUmlnaHQiLCJpY29uUG9zaXRpb24iLCJ2YXJpYW50Iiwib25DbGljayIsImRpc2FibGVkIiwiYm9yZGVyVG9wUmlnaHRSYWRpdXMiLCJib3JkZXJCb3R0b21SaWdodFJhZGl1cyIsImJvcmRlclJpZ2h0IiwiZm9udFNpemUiLCJib3JkZXJUb3BMZWZ0UmFkaXVzIiwiYm9yZGVyQm90dG9tTGVmdFJhZGl1cyIsIm92ZXJmbG93IiwibWF4SGVpZ2h0IiwibWluSGVpZ2h0IiwiYWxpZ24iLCJiYWNrZ3JvdW5kQ29sb3IiLCJjb250YWluZXJUeXBlIiwiZ2FwIiwianVzdGlmeSIsIl90b0NvbnN1bWFibGVBcnJheSIsIkFycmF5IiwiXyIsImluZGV4IiwiSXRlbSIsImFsaWduU2VsZiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/Components/Dashboard/OnboardingWidgets.jsx\n");
/***/ }),
/***/ "./src/Components/Dashboard/PostWidgetItem.jsx":
/*!*****************************************************!*\
!*** ./src/Components/Dashboard/PostWidgetItem.jsx ***!
\*****************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/api-fetch */ \"@wordpress/api-fetch\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\n\n// Create a queue to manage AJAX requests\nvar requestQueue = [];\nvar processQueue = function processQueue() {\n if (requestQueue.length === 0) return;\n\n // Take the first item from the queue and run it\n var currentRequest = requestQueue.shift();\n currentRequest();\n};\nvar PostWidgetItem = function PostWidgetItem(_ref) {\n var widget = _ref.widget,\n updateCounter = _ref.updateCounter;\n var id = widget.id,\n image = widget.image,\n title = widget.title;\n\n // Track the active state of the widget using React state\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(widget.is_active),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n isActive = _useState2[0],\n setIsActive = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState3, 2),\n isLoading = _useState4[0],\n setIsLoading = _useState4[1];\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n setIsActive(widget.is_active);\n }, [widget.is_active, updateCounter]);\n var apiCall = function apiCall(activateWidget) {\n var action = activateWidget ? 'uael_deactivate_widget' : 'uael_activate_widget';\n var formData = new window.FormData();\n formData.append('action', action);\n formData.append('nonce', uaelSettingsData.ajax_nonce);\n formData.append('module_id', id);\n try {\n var data = _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3___default()({\n url: uaelSettingsData.ajax_url,\n method: 'POST',\n body: formData\n });\n if (data.success) {\n setIsActive(isActive); // Update the active state after the request\n } else if (data.error) {\n // console.log('AJAX request failed');\n }\n } catch (err) {\n // console.log(\"Error during AJAX request\");\n } finally {\n setIsLoading(false); // Always stop the loading spinner\n processQueue();\n }\n };\n var handleSwitchChange = function handleSwitchChange() {\n if (isLoading) return;\n setIsLoading(true);\n if (isActive) {\n // Add the request to the queue\n setIsActive(false);\n requestQueue.push(function () {\n return apiCall(isActive);\n });\n } else {\n // Add the request to the queue\n setIsActive(true);\n requestQueue.push(function () {\n return apiCall(isActive);\n });\n }\n\n // Update the active state immediately\n if (requestQueue.length === 1) {\n // Start processing the queue if no other request is being processed\n processQueue();\n }\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container, {\n align: \"center\",\n containerType: \"flex\",\n direction: \"row\",\n justify: \"between\",\n gap: \"\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex flex-col w-full\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex items-center justify-between w-full\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"p\", {\n className: \"text-sm font-medium text-text-primary pt-3 m-0 pb-1\"\n }, title), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex items-center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Switch, {\n onChange: handleSwitchChange,\n size: \"sm\",\n value: isActive\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: image,\n alt: \"Custom SVG\",\n className: \"mt-2\"\n })));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (PostWidgetItem);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9EYXNoYm9hcmQvUG9zdFdpZGdldEl0ZW0uanN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQWtEO0FBQ0E7QUFDTjtBQUNQOztBQUVyQztBQUNBLElBQU1PLFlBQVksR0FBRyxFQUFFO0FBRXZCLElBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBLEVBQVM7RUFDdkIsSUFBSUQsWUFBWSxDQUFDRSxNQUFNLEtBQUssQ0FBQyxFQUFFOztFQUUvQjtFQUNBLElBQU1DLGNBQWMsR0FBR0gsWUFBWSxDQUFDSSxLQUFLLENBQUMsQ0FBQztFQUMzQ0QsY0FBYyxDQUFDLENBQUM7QUFDcEIsQ0FBQztBQUVELElBQU1FLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBQUMsSUFBQSxFQUdkO0VBQUEsSUFGRkMsTUFBTSxHQUFBRCxJQUFBLENBQU5DLE1BQU07SUFDTkMsYUFBYSxHQUFBRixJQUFBLENBQWJFLGFBQWE7RUFFYixJQUNJQyxFQUFFLEdBR0ZGLE1BQU0sQ0FITkUsRUFBRTtJQUNGQyxLQUFLLEdBRUxILE1BQU0sQ0FGTkcsS0FBSztJQUNMQyxLQUFLLEdBQ0xKLE1BQU0sQ0FETkksS0FBSzs7RUFHVDtFQUNBLElBQUFDLFNBQUEsR0FBZ0NqQiwrQ0FBUSxDQUFDWSxNQUFNLENBQUNNLFNBQVMsQ0FBQztJQUFBQyxVQUFBLEdBQUFDLGdGQUFBLENBQUFILFNBQUE7SUFBbkRJLFFBQVEsR0FBQUYsVUFBQTtJQUFFRyxXQUFXLEdBQUFILFVBQUE7RUFDNUIsSUFBQUksVUFBQSxHQUFrQ3ZCLCtDQUFRLENBQUMsS0FBSyxDQUFDO0lBQUF3QixVQUFBLEdBQUFKLGdGQUFBLENBQUFHLFVBQUE7SUFBMUNFLFNBQVMsR0FBQUQsVUFBQTtJQUFFRSxZQUFZLEdBQUFGLFVBQUE7RUFFOUJ6QixnREFBUyxDQUFDLFlBQU07SUFDWnVCLFdBQVcsQ0FBQ1YsTUFBTSxDQUFDTSxTQUFTLENBQUM7RUFDakMsQ0FBQyxFQUFFLENBQUNOLE1BQU0sQ0FBQ00sU0FBUyxFQUFFTCxhQUFhLENBQUMsQ0FBQztFQUVyQyxJQUFNYyxPQUFPLEdBQUcsU0FBVkEsT0FBT0EsQ0FBSUMsY0FBYyxFQUFLO0lBQ2hDLElBQU1DLE1BQU0sR0FBR0QsY0FBYyxHQUFHLHdCQUF3QixHQUFHLHNCQUFzQjtJQUVqRixJQUFNRSxRQUFRLEdBQUcsSUFBSUMsTUFBTSxDQUFDQyxRQUFRLENBQUMsQ0FBQztJQUN0Q0YsUUFBUSxDQUFDRyxNQUFNLENBQUMsUUFBUSxFQUFFSixNQUFNLENBQUM7SUFDakNDLFFBQVEsQ0FBQ0csTUFBTSxDQUFDLE9BQU8sRUFBRUMsZ0JBQWdCLENBQUNDLFVBQVUsQ0FBQztJQUNyREwsUUFBUSxDQUFDRyxNQUFNLENBQUMsV0FBVyxFQUFFbkIsRUFBRSxDQUFDO0lBRWhDLElBQUk7TUFDQSxJQUFNc0IsSUFBSSxHQUFHakMsMkRBQVEsQ0FBQztRQUNsQmtDLEdBQUcsRUFBRUgsZ0JBQWdCLENBQUNJLFFBQVE7UUFDOUJDLE1BQU0sRUFBRSxNQUFNO1FBQ2RDLElBQUksRUFBRVY7TUFDVixDQUFDLENBQUM7TUFFRixJQUFJTSxJQUFJLENBQUNLLE9BQU8sRUFBRTtRQUNkbkIsV0FBVyxDQUFDRCxRQUFRLENBQUMsQ0FBQyxDQUFFO01BQzVCLENBQUMsTUFBTSxJQUFJZSxJQUFJLENBQUNNLEtBQUssRUFBRTtRQUNuQjtNQUFBO0lBRVIsQ0FBQyxDQUFDLE9BQU9DLEdBQUcsRUFBRTtNQUNWO0lBQUEsQ0FDSCxTQUFTO01BQ05qQixZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBRTtNQUN0QnBCLFlBQVksQ0FBQyxDQUFDO0lBQ2xCO0VBQ0osQ0FBQztFQUVELElBQU1zQyxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBLEVBQVM7SUFDN0IsSUFBSW5CLFNBQVMsRUFBRTtJQUVmQyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBRWxCLElBQUlMLFFBQVEsRUFBRTtNQUNWO01BQ0FDLFdBQVcsQ0FBQyxLQUFLLENBQUM7TUFDbEJqQixZQUFZLENBQUN3QyxJQUFJLENBQUM7UUFBQSxPQUFNbEIsT0FBTyxDQUFDTixRQUFRLENBQUM7TUFBQSxFQUFDO0lBQzlDLENBQUMsTUFBTTtNQUNIO01BQ0FDLFdBQVcsQ0FBQyxJQUFJLENBQUM7TUFDakJqQixZQUFZLENBQUN3QyxJQUFJLENBQUM7UUFBQSxPQUFNbEIsT0FBTyxDQUFDTixRQUFRLENBQUM7TUFBQSxFQUFDO0lBQzlDOztJQUVBO0lBQ0EsSUFBSWhCLFlBQVksQ0FBQ0UsTUFBTSxLQUFLLENBQUMsRUFBRTtNQUMzQjtNQUNBRCxZQUFZLENBQUMsQ0FBQztJQUNsQjtFQUNKLENBQUM7RUFFRCxvQkFDSVIsMERBQUEsQ0FBQ0csb0RBQVM7SUFBQzhDLEtBQUssRUFBQyxRQUFRO0lBQ3JCQyxhQUFhLEVBQUMsTUFBTTtJQUNwQkMsU0FBUyxFQUFDLEtBQUs7SUFDZkMsT0FBTyxFQUFDLFNBQVM7SUFDakJDLEdBQUcsRUFBQztFQUFFLGdCQUVOckQsMERBQUE7SUFBS3NELFNBQVMsRUFBQztFQUFzQixnQkFDakN0RCwwREFBQTtJQUFLc0QsU0FBUyxFQUFDO0VBQTBDLGdCQUNyRHRELDBEQUFBO0lBQUdzRCxTQUFTLEVBQUM7RUFBcUQsR0FBRXBDLEtBQVMsQ0FBQyxlQUM5RWxCLDBEQUFBO0lBQUtzRCxTQUFTLEVBQUM7RUFBbUIsZ0JBQzlCdEQsMERBQUEsQ0FBQ0ksaURBQU07SUFDSG1ELFFBQVEsRUFBRVQsa0JBQW1CO0lBQzdCVSxJQUFJLEVBQUMsSUFBSTtJQUNUQyxLQUFLLEVBQUVsQztFQUFTLENBQ25CLENBQ0EsQ0FDSixDQUFDLGVBQ052QiwwREFBQTtJQUNJMEQsR0FBRyxFQUFFekMsS0FBTTtJQUNYMEMsR0FBRyxFQUFDLFlBQVk7SUFDaEJMLFNBQVMsRUFBQztFQUFNLENBQ25CLENBQ0EsQ0FDRSxDQUFDO0FBRXBCLENBQUM7QUFFRCwrREFBZTFDLGNBQWMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vc3JjL0NvbXBvbmVudHMvRGFzaGJvYXJkL1Bvc3RXaWRnZXRJdGVtLmpzeD8wZWUxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDb250YWluZXIsIFN3aXRjaCB9IGZyb20gXCJAYnNmL2ZvcmNlLXVpXCI7XG5pbXBvcnQgYXBpRmV0Y2ggZnJvbSAnQHdvcmRwcmVzcy9hcGktZmV0Y2gnO1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG4vLyBDcmVhdGUgYSBxdWV1ZSB0byBtYW5hZ2UgQUpBWCByZXF1ZXN0c1xuY29uc3QgcmVxdWVzdFF1ZXVlID0gW107XG5cbmNvbnN0IHByb2Nlc3NRdWV1ZSA9ICgpID0+IHtcbiAgICBpZiAocmVxdWVzdFF1ZXVlLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgLy8gVGFrZSB0aGUgZmlyc3QgaXRlbSBmcm9tIHRoZSBxdWV1ZSBhbmQgcnVuIGl0XG4gICAgY29uc3QgY3VycmVudFJlcXVlc3QgPSByZXF1ZXN0UXVldWUuc2hpZnQoKTtcbiAgICBjdXJyZW50UmVxdWVzdCgpO1xufTtcblxuY29uc3QgUG9zdFdpZGdldEl0ZW0gPSAoe1xuICAgIHdpZGdldCxcbiAgICB1cGRhdGVDb3VudGVyXG59KSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgICBpZCxcbiAgICAgICAgaW1hZ2UsXG4gICAgICAgIHRpdGxlLFxuICAgIH0gPSB3aWRnZXRcblxuICAgIC8vIFRyYWNrIHRoZSBhY3RpdmUgc3RhdGUgb2YgdGhlIHdpZGdldCB1c2luZyBSZWFjdCBzdGF0ZVxuICAgIGNvbnN0IFtpc0FjdGl2ZSwgc2V0SXNBY3RpdmVdID0gdXNlU3RhdGUod2lkZ2V0LmlzX2FjdGl2ZSk7XG4gICAgY29uc3QgW2lzTG9hZGluZywgc2V0SXNMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNldElzQWN0aXZlKHdpZGdldC5pc19hY3RpdmUpO1xuICAgIH0sIFt3aWRnZXQuaXNfYWN0aXZlLCB1cGRhdGVDb3VudGVyXSk7XG5cbiAgICBjb25zdCBhcGlDYWxsID0gKGFjdGl2YXRlV2lkZ2V0KSA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IGFjdGl2YXRlV2lkZ2V0ID8gJ3VhZWxfZGVhY3RpdmF0ZV93aWRnZXQnIDogJ3VhZWxfYWN0aXZhdGVfd2lkZ2V0JztcblxuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyB3aW5kb3cuRm9ybURhdGEoKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdhY3Rpb24nLCBhY3Rpb24pO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ25vbmNlJywgdWFlbFNldHRpbmdzRGF0YS5hamF4X25vbmNlKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdtb2R1bGVfaWQnLCBpZCk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhcGlGZXRjaCh7XG4gICAgICAgICAgICAgICAgdXJsOiB1YWVsU2V0dGluZ3NEYXRhLmFqYXhfdXJsLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgIGJvZHk6IGZvcm1EYXRhLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICBzZXRJc0FjdGl2ZShpc0FjdGl2ZSk7ICAvLyBVcGRhdGUgdGhlIGFjdGl2ZSBzdGF0ZSBhZnRlciB0aGUgcmVxdWVzdFxuICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ0FKQVggcmVxdWVzdCBmYWlsZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIkVycm9yIGR1cmluZyBBSkFYIHJlcXVlc3RcIik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpOyAgLy8gQWx3YXlzIHN0b3AgdGhlIGxvYWRpbmcgc3Bpbm5lclxuICAgICAgICAgICAgcHJvY2Vzc1F1ZXVlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVTd2l0Y2hDaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgIGlmIChpc0xvYWRpbmcpIHJldHVybjtcblxuICAgICAgICBzZXRJc0xvYWRpbmcodHJ1ZSk7XG5cbiAgICAgICAgaWYgKGlzQWN0aXZlKSB7XG4gICAgICAgICAgICAvLyBBZGQgdGhlIHJlcXVlc3QgdG8gdGhlIHF1ZXVlXG4gICAgICAgICAgICBzZXRJc0FjdGl2ZShmYWxzZSk7XG4gICAgICAgICAgICByZXF1ZXN0UXVldWUucHVzaCgoKSA9PiBhcGlDYWxsKGlzQWN0aXZlKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBBZGQgdGhlIHJlcXVlc3QgdG8gdGhlIHF1ZXVlXG4gICAgICAgICAgICBzZXRJc0FjdGl2ZSh0cnVlKTtcbiAgICAgICAgICAgIHJlcXVlc3RRdWV1ZS5wdXNoKCgpID0+IGFwaUNhbGwoaXNBY3RpdmUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgYWN0aXZlIHN0YXRlIGltbWVkaWF0ZWx5XG4gICAgICAgIGlmIChyZXF1ZXN0UXVldWUubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAvLyBTdGFydCBwcm9jZXNzaW5nIHRoZSBxdWV1ZSBpZiBubyBvdGhlciByZXF1ZXN0IGlzIGJlaW5nIHByb2Nlc3NlZFxuICAgICAgICAgICAgcHJvY2Vzc1F1ZXVlKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPENvbnRhaW5lciBhbGlnbj1cImNlbnRlclwiXG4gICAgICAgICAgICBjb250YWluZXJUeXBlPVwiZmxleFwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgICAganVzdGlmeT1cImJldHdlZW5cIlxuICAgICAgICAgICAgZ2FwPVwiXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ZsZXggZmxleC1jb2wgdy1mdWxsJz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHctZnVsbCc+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0ndGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXRleHQtcHJpbWFyeSBwdC0zIG0tMCBwYi0xJz57dGl0bGV9PC9wPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nZmxleCBpdGVtcy1jZW50ZXInPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN3aXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVTd2l0Y2hDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nc20nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2lzQWN0aXZlfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBzcmM9e2ltYWdlfVxuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJDdXN0b20gU1ZHXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXQtMlwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IFBvc3RXaWRnZXRJdGVtIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJDb250YWluZXIiLCJTd2l0Y2giLCJhcGlGZXRjaCIsIl9fIiwicmVxdWVzdFF1ZXVlIiwicHJvY2Vzc1F1ZXVlIiwibGVuZ3RoIiwiY3VycmVudFJlcXVlc3QiLCJzaGlmdCIsIlBvc3RXaWRnZXRJdGVtIiwiX3JlZiIsIndpZGdldCIsInVwZGF0ZUNvdW50ZXIiLCJpZCIsImltYWdlIiwidGl0bGUiLCJfdXNlU3RhdGUiLCJpc19hY3RpdmUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpc0FjdGl2ZSIsInNldElzQWN0aXZlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJpc0xvYWRpbmciLCJzZXRJc0xvYWRpbmciLCJhcGlDYWxsIiwiYWN0aXZhdGVXaWRnZXQiLCJhY3Rpb24iLCJmb3JtRGF0YSIsIndpbmRvdyIsIkZvcm1EYXRhIiwiYXBwZW5kIiwidWFlbFNldHRpbmdzRGF0YSIsImFqYXhfbm9uY2UiLCJkYXRhIiwidXJsIiwiYWpheF91cmwiLCJtZXRob2QiLCJib2R5Iiwic3VjY2VzcyIsImVycm9yIiwiZXJyIiwiaGFuZGxlU3dpdGNoQ2hhbmdlIiwicHVzaCIsImNyZWF0ZUVsZW1lbnQiLCJhbGlnbiIsImNvbnRhaW5lclR5cGUiLCJkaXJlY3Rpb24iLCJqdXN0aWZ5IiwiZ2FwIiwiY2xhc3NOYW1lIiwib25DaGFuZ2UiLCJzaXplIiwidmFsdWUiLCJzcmMiLCJhbHQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/Components/Dashboard/PostWidgetItem.jsx\n");
/***/ }),
/***/ "./src/Components/Dashboard/QuickAccess.js":
/*!*************************************************!*\
!*** ./src/Components/Dashboard/QuickAccess.js ***!
\*************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/headphones.js\");\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/circle-help.js\");\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/notepad-text.js\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\n\nvar QuickAccess = function QuickAccess() {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"box-border hfe-dashboard-quick-access p-4 bg-white rounded-lg shadow-md\",\n style: {\n width: \"-webkit-fill-available\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Title, {\n className: \"mb-2\",\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h3\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)(\"Quick Access\", \"uael\")\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Container, {\n align: \"stretch\",\n className: \"p-1 rounded-lg bg-[#F9FAFB] gap-1\",\n containerType: \"flex\",\n direction: \"column\",\n gap: \"\",\n justify: \"start\",\n style: {\n width: \"100%\",\n backgroundColor: \"#F9FAFB\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Container.Item, {\n alignSelf: \"auto\",\n className: \"p-4 bg-white rounded-lg shadow-container-item\",\n order: \"none\",\n shrink: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Button, {\n className: \"text-black uael-remove-ring\",\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_3__[\"default\"], null),\n iconPosition: \"left\",\n variant: \"link\",\n onClick: function onClick() {\n window.open(\"https://store.brainstormforce.com/support/\", \"_blank\");\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)(\"VIP Priority Support\", \"uael\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Container.Item, {\n alignSelf: \"auto\",\n className: \"p-4 bg-white rounded-lg shadow-container-item\",\n order: \"none\",\n shrink: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Button, {\n className: \"text-black uael-remove-ring\",\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_3__[\"default\"], null),\n iconPosition: \"left\",\n variant: \"link\",\n onClick: function onClick() {\n window.open(\"https://ultimateelementor.com/docs/getting-started-uael/\", \"_blank\");\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)(\"Knowledge Base\", \"uael\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Container.Item, {\n className: \"p-4 bg-white rounded-lg shadow-container-item\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Button, {\n className: \"text-black uael-remove-ring\",\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null),\n iconPosition: \"left\",\n variant: \"link\",\n onClick: function onClick() {\n window.open(\"https://ultimateelementor.com/docs/\", \"_blank\");\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)(\"Help Centre\", \"uael\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Container.Item, {\n className: \"p-4 bg-white rounded-lg shadow-container-item\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Button, {\n className: \"text-black uael-remove-ring\",\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null),\n iconPosition: \"left\",\n variant: \"link\",\n onClick: function onClick() {\n window.open(\"https://ideas.ultimateelementor.com/boards/feature-requests\", \"_blank\");\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)(\"Request a Feature\", \"uael\")))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (QuickAccess);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUUsTUFBTSxDQUNsQixDQUNPLENBQUMsZUFpQmpCUiwwREFBQSxDQUFDRSxvREFBUyxDQUFDdUIsSUFBSTtJQUFDZCxTQUFTLEVBQUM7RUFBK0MsZ0JBQ3hFWCwwREFBQSxDQUFDRyxpREFBTTtJQUNOUSxTQUFTLEVBQUMsNkJBQTZCO0lBQ3ZDRyxJQUFJLGVBQUVkLDBEQUFBLENBQUNLLG9EQUFXLE1BQUUsQ0FBRTtJQUN0QlUsWUFBWSxFQUFDLE1BQU07SUFDbkJjLE9BQU8sRUFBQyxNQUFNO0lBQ2RDLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQVE7TUFDZEMsTUFBTSxDQUFDQyxJQUFJLENBQ1YsNkRBQTZELEVBQzdELFFBQ0QsQ0FBQztJQUNGO0VBQUUsR0FFRHhCLG1EQUFFLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxDQUN4QixDQUNPLENBQ04sQ0FDUCxDQUFDO0FBRVIsQ0FBQztBQUVELCtEQUFlQyxXQUFXIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL3NyYy9Db21wb25lbnRzL0Rhc2hib2FyZC9RdWlja0FjY2Vzcy5qcz84MDIyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFRpdGxlLCBDb250YWluZXIsIEJ1dHRvbiB9IGZyb20gXCJAYnNmL2ZvcmNlLXVpXCI7XG5pbXBvcnQgeyBIZWFkcGhvbmVzLCBOb3RlcGFkVGV4dCwgSGVscENpcmNsZSwgU3Rhckljb24gfSBmcm9tIFwibHVjaWRlLXJlYWN0XCI7XG5pbXBvcnQgeyBfXyB9IGZyb20gXCJAd29yZHByZXNzL2kxOG5cIjtcblxuY29uc3QgUXVpY2tBY2Nlc3MgPSAoKSA9PiB7XG5cdHJldHVybiAoXG5cdFx0PGRpdlxuXHRcdFx0Y2xhc3NOYW1lPVwiYm94LWJvcmRlciBoZmUtZGFzaGJvYXJkLXF1aWNrLWFjY2VzcyBwLTQgYmctd2hpdGUgcm91bmRlZC1sZyBzaGFkb3ctbWRcIlxuXHRcdFx0c3R5bGU9e3tcblx0XHRcdFx0d2lkdGg6IFwiLXdlYmtpdC1maWxsLWF2YWlsYWJsZVwiLFxuXHRcdFx0fX1cblx0XHQ+XG5cdFx0XHQ8VGl0bGVcblx0XHRcdFx0Y2xhc3NOYW1lPVwibWItMlwiXG5cdFx0XHRcdGljb249e251bGx9XG5cdFx0XHRcdGljb25Qb3NpdGlvbj1cInJpZ2h0XCJcblx0XHRcdFx0c2l6ZT1cInhzXCJcblx0XHRcdFx0dGFnPVwiaDNcIlxuXHRcdFx0XHR0aXRsZT17X18oXCJRdWljayBBY2Nlc3NcIiwgXCJ1YWVsXCIpfVxuXHRcdFx0Lz5cblxuXHRcdFx0PENvbnRhaW5lclxuXHRcdFx0XHRhbGlnbj1cInN0cmV0Y2hcIlxuXHRcdFx0XHRjbGFzc05hbWU9XCJwLTEgcm91bmRlZC1sZyBiZy1bI0Y5RkFGQl0gZ2FwLTFcIlxuXHRcdFx0XHRjb250YWluZXJUeXBlPVwiZmxleFwiXG5cdFx0XHRcdGRpcmVjdGlvbj1cImNvbHVtblwiXG5cdFx0XHRcdGdhcD1cIlwiXG5cdFx0XHRcdGp1c3RpZnk9XCJzdGFydFwiXG5cdFx0XHRcdHN0eWxlPXt7XG5cdFx0XHRcdFx0d2lkdGg6IFwiMTAwJVwiLFxuXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvcjogXCIjRjlGQUZCXCIsXG5cdFx0XHRcdH19XG5cdFx0XHQ+XG5cdFx0XHRcdDxDb250YWluZXIuSXRlbVxuXHRcdFx0XHRcdGFsaWduU2VsZj1cImF1dG9cIlxuXHRcdFx0XHRcdGNsYXNzTmFtZT1cInAtNCBiZy13aGl0ZSByb3VuZGVkLWxnIHNoYWRvdy1jb250YWluZXItaXRlbVwiXG5cdFx0XHRcdFx0b3JkZXI9XCJub25lXCJcblx0XHRcdFx0XHRzaHJpbms9ezF9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJ0ZXh0LWJsYWNrIHVhZWwtcmVtb3ZlLXJpbmdcIlxuXHRcdFx0XHRcdFx0aWNvbj17PEhlYWRwaG9uZXMgLz59XG5cdFx0XHRcdFx0XHRpY29uUG9zaXRpb249XCJsZWZ0XCJcblx0XHRcdFx0XHRcdHZhcmlhbnQ9XCJsaW5rXCJcblx0XHRcdFx0XHRcdG9uQ2xpY2s9eygpID0+IHtcblx0XHRcdFx0XHRcdFx0d2luZG93Lm9wZW4oXG5cdFx0XHRcdFx0XHRcdFx0XCJodHRwczovL3N0b3JlLmJyYWluc3Rvcm1mb3JjZS5jb20vc3VwcG9ydC9cIixcblx0XHRcdFx0XHRcdFx0XHRcIl9ibGFua1wiXG5cdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdHtfXyhcIlZJUCBQcmlvcml0eSBTdXBwb3J0XCIsIFwidWFlbFwiKX1cblx0XHRcdFx0XHQ8L0J1dHRvbj5cblx0XHRcdFx0PC9Db250YWluZXIuSXRlbT5cblx0XHRcdFx0PENvbnRhaW5lci5JdGVtXG5cdFx0XHRcdFx0YWxpZ25TZWxmPVwiYXV0b1wiXG5cdFx0XHRcdFx0Y2xhc3NOYW1lPVwicC00IGJnLXdoaXRlIHJvdW5kZWQtbGcgc2hhZG93LWNvbnRhaW5lci1pdGVtXCJcblx0XHRcdFx0XHRvcmRlcj1cIm5vbmVcIlxuXHRcdFx0XHRcdHNocmluaz17MX1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cInRleHQtYmxhY2sgdWFlbC1yZW1vdmUtcmluZ1wiXG5cdFx0XHRcdFx0XHRpY29uPXs8SGVhZHBob25lcyAvPn1cblx0XHRcdFx0XHRcdGljb25Qb3NpdGlvbj1cImxlZnRcIlxuXHRcdFx0XHRcdFx0dmFyaWFudD1cImxpbmtcIlxuXHRcdFx0XHRcdFx0b25DbGljaz17KCkgPT4ge1xuXHRcdFx0XHRcdFx0XHR3aW5kb3cub3Blbihcblx0XHRcdFx0XHRcdFx0XHRcImh0dHBzOi8vdWx0aW1hdGVlbGVtZW50b3IuY29tL2RvY3MvZ2V0dGluZy1zdGFydGVkLXVhZWwvXCIsXG5cdFx0XHRcdFx0XHRcdFx0XCJfYmxhbmtcIlxuXHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHR7X18oXCJLbm93bGVkZ2UgQmFzZVwiLCBcInVhZWxcIil9XG5cdFx0XHRcdFx0PC9CdXR0b24+XG5cdFx0XHRcdDwvQ29udGFpbmVyLkl0ZW0+XG5cdFx0XHRcdDxDb250YWluZXIuSXRlbSBjbGFzc05hbWU9XCJwLTQgYmctd2hpdGUgcm91bmRlZC1sZyBzaGFkb3ctY29udGFpbmVyLWl0ZW1cIj5cblx0XHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJ0ZXh0LWJsYWNrIHVhZWwtcmVtb3ZlLXJpbmdcIlxuXHRcdFx0XHRcdFx0aWNvbj17PEhlbHBDaXJjbGUgLz59XG5cdFx0XHRcdFx0XHRpY29uUG9zaXRpb249XCJsZWZ0XCJcblx0XHRcdFx0XHRcdHZhcmlhbnQ9XCJsaW5rXCJcblx0XHRcdFx0XHRcdG9uQ2xpY2s9eygpID0+IHtcblx0XHRcdFx0XHRcdFx0d2luZG93Lm9wZW4oXG5cdFx0XHRcdFx0XHRcdFx0XCJodHRwczovL3VsdGltYXRlZWxlbWVudG9yLmNvbS9kb2NzL1wiLFxuXHRcdFx0XHRcdFx0XHRcdFwiX2JsYW5rXCJcblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0e19fKFwiSGVscCBDZW50cmVcIiwgXCJ1YWVsXCIpfVxuXHRcdFx0XHRcdDwvQnV0dG9uPlxuXHRcdFx0XHQ8L0NvbnRhaW5lci5JdGVtPlxuXHRcdFx0XHR7LyogPENvbnRhaW5lci5JdGVtIGNsYXNzTmFtZT1cInAtNCBiZy13aGl0ZSByb3VuZGVkLWxnIHNoYWRvdy1jb250YWluZXItaXRlbVwiPlxuXHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cInRleHQtYmxhY2sgdWFlbC1yZW1vdmUtcmluZ1wiXG5cdFx0XHRcdFx0XHRpY29uPXs8U3Rhckljb24gLz59XG5cdFx0XHRcdFx0XHRpY29uUG9zaXRpb249XCJsZWZ0XCJcblx0XHRcdFx0XHRcdHZhcmlhbnQ9XCJsaW5rXCJcblx0XHRcdFx0XHRcdG9uQ2xpY2s9eygpID0+IHtcblx0XHRcdFx0XHRcdFx0d2luZG93Lm9wZW4oXG5cdFx0XHRcdFx0XHRcdFx0XCJodHRwczovL3dvcmRwcmVzcy5vcmcvc3VwcG9ydC9wbHVnaW4vaGVhZGVyLWZvb3Rlci1lbGVtZW50b3IvcmV2aWV3cy8jbmV3LXBvc3RcIixcblx0XHRcdFx0XHRcdFx0XHRcIl9ibGFua1wiXG5cdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdHtfXyhcIlJhdGUgVXNcIiwgXCJ1YWVsXCIpfVxuXHRcdFx0XHRcdDwvQnV0dG9uPlxuXHRcdFx0XHQ8L0NvbnRhaW5lci5JdGVtPiAqL31cblx0XHRcdFx0PENvbnRhaW5lci5JdGVtIGNsYXNzTmFtZT1cInAtNCBiZy13aGl0ZSByb3VuZGVkLWxnIHNoYWRvdy1jb250YWluZXItaXRlbVwiPlxuXHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cInRleHQtYmxhY2sgdWFlbC1yZW1vdmUtcmluZ1wiXG5cdFx0XHRcdFx0XHRpY29uPXs8Tm90ZXBhZFRleHQgLz59XG5cdFx0XHRcdFx0XHRpY29uUG9zaXRpb249XCJsZWZ0XCJcblx0XHRcdFx0XHRcdHZhcmlhbnQ9XCJsaW5rXCJcblx0XHRcdFx0XHRcdG9uQ2xpY2s9eygpID0+IHtcblx0XHRcdFx0XHRcdFx0d2luZG93Lm9wZW4oXG5cdFx0XHRcdFx0XHRcdFx0XCJodHRwczovL2lkZWFzLnVsdGltYXRlZWxlbWVudG9yLmNvbS9ib2FyZHMvZmVhdHVyZS1yZXF1ZXN0c1wiLFxuXHRcdFx0XHRcdFx0XHRcdFwiX2JsYW5rXCJcblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0e19fKFwiUmVxdWVzdCBhIEZlYXR1cmVcIiwgXCJ1YWVsXCIpfVxuXHRcdFx0XHRcdDwvQnV0dG9uPlxuXHRcdFx0XHQ8L0NvbnRhaW5lci5JdGVtPlxuXHRcdFx0PC9Db250YWluZXI+XG5cdFx0PC9kaXY+XG5cdCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBRdWlja0FjY2VzcztcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlRpdGxlIiwiQ29udGFpbmVyIiwiQnV0dG9uIiwiSGVhZHBob25lcyIsIk5vdGVwYWRUZXh0IiwiSGVscENpcmNsZSIsIlN0YXJJY29uIiwiX18iLCJRdWlja0FjY2VzcyIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJzdHlsZSIsIndpZHRoIiwiaWNvbiIsImljb25Qb3NpdGlvbiIsInNpemUiLCJ0YWciLCJ0aXRsZSIsImFsaWduIiwiY29udGFpbmVyVHlwZSIsImRpcmVjdGlvbiIsImdhcCIsImp1c3RpZnkiLCJiYWNrZ3JvdW5kQ29sb3IiLCJJdGVtIiwiYWxpZ25TZWxmIiwib3JkZXIiLCJzaHJpbmsiLCJ2YXJpYW50Iiwib25DbGljayIsIndpbmRvdyIsIm9wZW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/Components/Dashboard/QuickAccess.js\n");
/***/ }),
/***/ "./src/Components/Dashboard/TemplateSection.js":
/*!*****************************************************!*\
!*** ./src/Components/Dashboard/TemplateSection.js ***!
\*****************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/api-fetch */ \"@wordpress/api-fetch\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\nvar TemplateSection = function TemplateSection() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n loading = _useState2[0],\n setLoading = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState3, 2),\n templatesStatus = _useState4[0],\n setTemplatesStatus = _useState4[1];\n var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null),\n _useState6 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState5, 2),\n redirectUrl = _useState6[0],\n setRedirectUrl = _useState6[1];\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n var fetchSettings = function fetchSettings() {\n setLoading(true);\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_4___default()({\n path: '/uael/v1/templates',\n headers: {\n 'Content-Type': 'application/json',\n 'X-WP-Nonce': uaelSettingsData.uael_nonce_action // Use the correct nonce\n }\n }).then(function (data) {\n setTemplatesStatus(data.templates_status);\n if (data.redirect_url) {\n setRedirectUrl(data.redirect_url); // Save URL in state variable\n }\n setLoading(false); // Stop loading\n })[\"catch\"](function (err) {\n setLoading(false); // Stop loading\n });\n };\n fetchSettings();\n }, []);\n var handleButtonClick = function handleButtonClick(e) {\n if ('Activated' === templatesStatus && redirectUrl) {\n window.open(redirectUrl, '_blank');\n }\n };\n if (loading) {\n return;\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"box-border hfe-dashboard-templates p-4 bg-white rounded-lg shadow-md mb-6 uae-subheading\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"mb-4\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.templates_url),\n alt: \"Template Showcase\",\n className: \"w-full h-auto rounded\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Title, {\n className: \"mt-2\",\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Build Websites 10x Faster with Templates', 'uael')\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"p\", {\n className: \"text-text-secondary mt-2 mb-2 text-sm\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Choose from our professionally designed websites to build your site faster, with easy customization options.', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Button, {\n className: \"w-full mt-4\",\n icon: null,\n iconPosition: \"left\",\n size: \"md\",\n variant: \"secondary\"\n // onClick={handleButtonClick}\n ,\n onClick: function onClick() {\n window.open(\"https://startertemplates.com/\", \"_blank\");\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Explore Templates', 'uael')));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (TemplateSection);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9EYXNoYm9hcmQvVGVtcGxhdGVTZWN0aW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQW1EO0FBSTVCO0FBQ2M7QUFDTztBQUU1QyxJQUFNTyxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUEsRUFBUztFQUU3QixJQUFBQyxTQUFBLEdBQThCUCwrQ0FBUSxDQUFDLElBQUksQ0FBQztJQUFBUSxVQUFBLEdBQUFDLGdGQUFBLENBQUFGLFNBQUE7SUFBckNHLE9BQU8sR0FBQUYsVUFBQTtJQUFFRyxVQUFVLEdBQUFILFVBQUE7RUFDMUIsSUFBQUksVUFBQSxHQUE4Q1osK0NBQVEsQ0FBQyxJQUFJLENBQUM7SUFBQWEsVUFBQSxHQUFBSixnRkFBQSxDQUFBRyxVQUFBO0lBQXJERSxlQUFlLEdBQUFELFVBQUE7SUFBRUUsa0JBQWtCLEdBQUFGLFVBQUE7RUFDdkMsSUFBQUcsVUFBQSxHQUFzQ2hCLCtDQUFRLENBQUMsSUFBSSxDQUFDO0lBQUFpQixVQUFBLEdBQUFSLGdGQUFBLENBQUFPLFVBQUE7SUFBN0NFLFdBQVcsR0FBQUQsVUFBQTtJQUFFRSxjQUFjLEdBQUFGLFVBQUE7RUFFbENoQixnREFBUyxDQUFDLFlBQU07SUFDWixJQUFNbUIsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFBLEVBQVM7TUFDeEJULFVBQVUsQ0FBQyxJQUFJLENBQUM7TUFDaEJOLDJEQUFRLENBQUM7UUFDTGdCLElBQUksRUFBRSxvQkFBb0I7UUFDMUJDLE9BQU8sRUFBRTtVQUNMLGNBQWMsRUFBRSxrQkFBa0I7VUFDbEMsWUFBWSxFQUFFQyxnQkFBZ0IsQ0FBQ0MsaUJBQWlCLENBQUU7UUFDdEQ7TUFDSixDQUFDLENBQUMsQ0FDR0MsSUFBSSxDQUFDLFVBQUNDLElBQUksRUFBSztRQUNaWCxrQkFBa0IsQ0FBQ1csSUFBSSxDQUFDQyxnQkFBZ0IsQ0FBQztRQUN6QyxJQUFJRCxJQUFJLENBQUNFLFlBQVksRUFBRTtVQUNuQlQsY0FBYyxDQUFDTyxJQUFJLENBQUNFLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDdkM7UUFDQWpCLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO01BQ3ZCLENBQUMsQ0FBQyxTQUNJLENBQUMsVUFBQ2tCLEdBQUcsRUFBSztRQUNabEIsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7TUFDdkIsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVEUyxhQUFhLENBQUMsQ0FBQztFQUNuQixDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4sSUFBTVUsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBSUMsQ0FBQyxFQUFLO0lBQzdCLElBQUksV0FBVyxLQUFLakIsZUFBZSxJQUFJSSxXQUFXLEVBQUc7TUFDakRjLE1BQU0sQ0FBQ0MsSUFBSSxDQUFFZixXQUFXLEVBQUUsUUFBUyxDQUFDO0lBQ3hDO0VBQ0osQ0FBQztFQUVKLElBQUlSLE9BQU8sRUFBRztJQUNiO0VBQ0Q7RUFFRyxvQkFDSVgsMERBQUE7SUFBS29DLFNBQVMsRUFBQztFQUEwRixnQkFDckdwQywwREFBQTtJQUFLb0MsU0FBUyxFQUFDO0VBQU0sZ0JBQ2pCcEMsMERBQUE7SUFDSXFDLEdBQUcsS0FBQUMsTUFBQSxDQUFLZCxnQkFBZ0IsQ0FBQ2UsYUFBYSxDQUFHO0lBQ3pDQyxHQUFHLEVBQUMsbUJBQW1CO0lBQ3ZCSixTQUFTLEVBQUM7RUFBdUIsQ0FDcEMsQ0FDQSxDQUFDLGVBQ05wQywwREFBQSxDQUFDRyxnREFBSztJQUNGaUMsU0FBUyxFQUFDLE1BQU07SUFDaEJLLElBQUksRUFBRSxJQUFLO0lBQ1hDLFlBQVksRUFBQyxPQUFPO0lBQ3BCQyxJQUFJLEVBQUMsSUFBSTtJQUNUQyxHQUFHLEVBQUMsSUFBSTtJQUNSQyxLQUFLLEVBQUV4QyxtREFBRSxDQUFDLDBDQUEwQyxFQUFFLE1BQU07RUFBRSxDQUNqRSxDQUFDLGVBQ0ZMLDBEQUFBO0lBQUdvQyxTQUFTLEVBQUM7RUFBdUMsR0FBRS9CLG1EQUFFLENBQUMsOEdBQThHLEVBQUUsTUFBTSxDQUFLLENBQUMsZUFDN0tMLDBEQUFBLENBQUNJLGlEQUFNO0lBQ0hnQyxTQUFTLEVBQUMsYUFBYTtJQUN2QkssSUFBSSxFQUFFLElBQUs7SUFDWEMsWUFBWSxFQUFDLE1BQU07SUFDbkJDLElBQUksRUFBQyxJQUFJO0lBQ1RHLE9BQU8sRUFBQztJQUNSO0lBQUE7SUFDQUMsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUEsRUFBUTtNQUNoQ2QsTUFBTSxDQUFDQyxJQUFJLENBQ1YsK0JBQStCLEVBQy9CLFFBQ0QsQ0FBQztJQUNGO0VBQUUsR0FFaUI3QixtREFBRSxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FDM0IsQ0FDZixDQUFDO0FBRWQsQ0FBQztBQUVELCtEQUFlRSxlQUFlIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL3NyYy9Db21wb25lbnRzL0Rhc2hib2FyZC9UZW1wbGF0ZVNlY3Rpb24uanM/YzBmZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gICAgVGl0bGUsXG4gICAgQnV0dG9uXG59IGZyb20gJ0Bic2YvZm9yY2UtdWknO1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuaW1wb3J0IGFwaUZldGNoIGZyb20gJ0B3b3JkcHJlc3MvYXBpLWZldGNoJztcblxuY29uc3QgVGVtcGxhdGVTZWN0aW9uID0gKCkgPT4ge1xuICAgIFxuXHRjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKTtcblx0Y29uc3QgW3RlbXBsYXRlc1N0YXR1cywgc2V0VGVtcGxhdGVzU3RhdHVzXSA9IHVzZVN0YXRlKG51bGwpOyBcbiAgICBjb25zdCBbcmVkaXJlY3RVcmwsIHNldFJlZGlyZWN0VXJsXSA9IHVzZVN0YXRlKG51bGwpOyBcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZldGNoU2V0dGluZ3MgPSAoKSA9PiB7XG4gICAgICAgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgYXBpRmV0Y2goe1xuICAgICAgICAgICAgICAgIHBhdGg6ICcvdWFlbC92MS90ZW1wbGF0ZXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAgICAgJ1gtV1AtTm9uY2UnOiB1YWVsU2V0dGluZ3NEYXRhLnVhZWxfbm9uY2VfYWN0aW9uLCAvLyBVc2UgdGhlIGNvcnJlY3Qgbm9uY2VcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRUZW1wbGF0ZXNTdGF0dXMoZGF0YS50ZW1wbGF0ZXNfc3RhdHVzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEucmVkaXJlY3RfdXJsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRSZWRpcmVjdFVybChkYXRhLnJlZGlyZWN0X3VybCk7IC8vIFNhdmUgVVJMIGluIHN0YXRlIHZhcmlhYmxlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7IC8vIFN0b3AgbG9hZGluZ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7IC8vIFN0b3AgbG9hZGluZ1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGZldGNoU2V0dGluZ3MoKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBoYW5kbGVCdXR0b25DbGljayA9IChlKSA9PiB7XG4gICAgICAgIGlmKCAnQWN0aXZhdGVkJyA9PT0gdGVtcGxhdGVzU3RhdHVzICYmIHJlZGlyZWN0VXJsICkge1xuICAgICAgICAgICAgd2luZG93Lm9wZW4oIHJlZGlyZWN0VXJsLCAnX2JsYW5rJyApO1xuICAgICAgICB9XG4gICAgfTtcblxuXHRpZiggbG9hZGluZyApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm94LWJvcmRlciBoZmUtZGFzaGJvYXJkLXRlbXBsYXRlcyBwLTQgYmctd2hpdGUgcm91bmRlZC1sZyBzaGFkb3ctbWQgbWItNiB1YWUtc3ViaGVhZGluZ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00XCI+XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBzcmM9e2Ake3VhZWxTZXR0aW5nc0RhdGEudGVtcGxhdGVzX3VybH1gfVxuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJUZW1wbGF0ZSBTaG93Y2FzZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBoLWF1dG8gcm91bmRlZFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPFRpdGxlXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXQtMlwiXG4gICAgICAgICAgICAgICAgaWNvbj17bnVsbH1cbiAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInhzXCJcbiAgICAgICAgICAgICAgICB0YWc9XCJoMlwiXG4gICAgICAgICAgICAgICAgdGl0bGU9e19fKCdCdWlsZCBXZWJzaXRlcyAxMHggRmFzdGVyIHdpdGggVGVtcGxhdGVzJywgJ3VhZWwnKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9J3RleHQtdGV4dC1zZWNvbmRhcnkgbXQtMiBtYi0yIHRleHQtc20nPntfXygnQ2hvb3NlIGZyb20gb3VyIHByb2Zlc3Npb25hbGx5IGRlc2lnbmVkIHdlYnNpdGVzIHRvIGJ1aWxkIHlvdXIgc2l0ZSBmYXN0ZXIsIHdpdGggZWFzeSBjdXN0b21pemF0aW9uIG9wdGlvbnMuJywgJ3VhZWwnKX08L3A+XG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBtdC00XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249e251bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJsZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9uQ2xpY2s9e2hhbmRsZUJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuXHRcdFx0XHRcdFx0XHR3aW5kb3cub3Blbihcblx0XHRcdFx0XHRcdFx0XHRcImh0dHBzOi8vc3RhcnRlcnRlbXBsYXRlcy5jb20vXCIsXG5cdFx0XHRcdFx0XHRcdFx0XCJfYmxhbmtcIlxuXHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0fX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge19fKCdFeHBsb3JlIFRlbXBsYXRlcycsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVGVtcGxhdGVTZWN0aW9uOyJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiVGl0bGUiLCJCdXR0b24iLCJfXyIsImFwaUZldGNoIiwiVGVtcGxhdGVTZWN0aW9uIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInRlbXBsYXRlc1N0YXR1cyIsInNldFRlbXBsYXRlc1N0YXR1cyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwicmVkaXJlY3RVcmwiLCJzZXRSZWRpcmVjdFVybCIsImZldGNoU2V0dGluZ3MiLCJwYXRoIiwiaGVhZGVycyIsInVhZWxTZXR0aW5nc0RhdGEiLCJ1YWVsX25vbmNlX2FjdGlvbiIsInRoZW4iLCJkYXRhIiwidGVtcGxhdGVzX3N0YXR1cyIsInJlZGlyZWN0X3VybCIsImVyciIsImhhbmRsZUJ1dHRvbkNsaWNrIiwiZSIsIndpbmRvdyIsIm9wZW4iLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwic3JjIiwiY29uY2F0IiwidGVtcGxhdGVzX3VybCIsImFsdCIsImljb24iLCJpY29uUG9zaXRpb24iLCJzaXplIiwidGFnIiwidGl0bGUiLCJ2YXJpYW50Iiwib25DbGljayJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/Components/Dashboard/TemplateSection.js\n");
/***/ }),
/***/ "./src/Components/Dashboard/VideoTutorials.jsx":
/*!*****************************************************!*\
!*** ./src/Components/Dashboard/VideoTutorials.jsx ***!
\*****************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ VideoTutorials; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/chevron-left.js\");\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/chevron-right.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\n\nvar videoData = [{\n id: 1,\n videoId: \"kXuXfaetch4\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 1\", 'uael')\n}, {\n id: 2,\n videoId: \"8fu8W4quFg0\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 2\", 'uael')\n}, {\n id: 3,\n videoId: \"wwu4ZzXrhGc\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 3\", 'uael')\n}, {\n id: 4,\n videoId: \"88kTeBv4mWY\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 4\", 'uael')\n}, {\n id: 5,\n videoId: \"NovIe5b2EkQ\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 5\", 'uael')\n}, {\n id: 6,\n videoId: \"kaGfSpGFcnw\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 6\", 'uael')\n}, {\n id: 7,\n videoId: \"7Q-3fAKKhbg\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 7\", 'uael')\n}, {\n id: 8,\n videoId: \"qhFfKf2R-SM\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 8\", 'uael')\n}, {\n id: 9,\n videoId: \"jWzW_oT1iSQ\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 9\", 'uael')\n}, {\n id: 10,\n videoId: \"-FErpbu2F58\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 10\", 'uael')\n}, {\n id: 11,\n videoId: \"hrDAFmPTDgg\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 11\", 'uael')\n}, {\n id: 12,\n videoId: \"2RlvBU_EFV4\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 12\", 'uael')\n}, {\n id: 13,\n videoId: \"7m6FD8Yk3N0\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 13\", 'uael')\n}, {\n id: 14,\n videoId: \"OCD3oZas60w\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 14\", 'uael')\n}, {\n id: 15,\n videoId: \"K4gCczaX-Sg\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 15\", 'uael')\n}, {\n id: 16,\n videoId: \"Izbr-oO0VkU\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 16\", 'uael')\n}, {\n id: 17,\n videoId: \"ruGOgho6RQM\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 17\", 'uael')\n}, {\n id: 18,\n videoId: \"8N_CW1rgvp0\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 18\", 'uael')\n}, {\n id: 19,\n videoId: \"WmrSMl5g3ac\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 19\", 'uael')\n}, {\n id: 20,\n videoId: \"BqXOvmpulQQ\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 20\", 'uael')\n}, {\n id: 21,\n videoId: \"bVfJNMZOsv0\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 21\", 'uael')\n}, {\n id: 22,\n videoId: \"IigQsUdvcRo\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 22\", 'uael')\n}, {\n id: 23,\n videoId: \"tZRjCiUFa-o\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 23\", 'uael')\n}, {\n id: 24,\n videoId: \"TJmcPWToHU0\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 24\", 'uael')\n}, {\n id: 25,\n videoId: \"XuQZzQJbNas\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 25\", 'uael')\n}, {\n id: 26,\n videoId: \"Eh8a3skmVDM\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 26\", 'uael')\n}, {\n id: 27,\n videoId: \"zGvbznihzH8\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 27\", 'uael')\n}, {\n id: 28,\n videoId: \"lgCG5--xyR4\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 28\", 'uael')\n}, {\n id: 29,\n videoId: \"p3zlIYoaaG0\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorial 29\", 'uael')\n}];\n\n// New component to handle lazy-loading of YouTube thumbnails\nvar VideoThumbnail = function VideoThumbnail(_ref) {\n var videoId = _ref.videoId,\n title = _ref.title,\n playingVideoId = _ref.playingVideoId,\n setPlayingVideoId = _ref.setPlayingVideoId;\n var isPlaying = playingVideoId === videoId;\n var handlePlayVideo = function handlePlayVideo() {\n setPlayingVideoId(videoId);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"video-thumbnail-container\",\n onClick: handlePlayVideo,\n style: {\n cursor: 'pointer'\n }\n }, isPlaying ? /*#__PURE__*/React.createElement(\"iframe\", {\n width: \"250\",\n height: \"145\",\n src: \"https://www.youtube.com/embed/\".concat(videoId, \"?autoplay=1\"),\n frameBorder: \"0\",\n style: {\n borderRadius: \"8px\"\n },\n allow: \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\",\n allowFullScreen: true,\n title: title\n }) : /*#__PURE__*/React.createElement(\"div\", {\n style: {\n position: 'relative'\n }\n }, /*#__PURE__*/React.createElement(\"img\", {\n src: \"https://img.youtube.com/vi/\".concat(videoId, \"/maxresdefault.jpg\"),\n alt: title,\n width: \"250\",\n height: \"145\",\n style: {\n borderRadius: \"8px\"\n }\n }), /*#__PURE__*/React.createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.video_control),\n alt: \"Play\",\n style: {\n left: \"43%\",\n top: \"50%\",\n transform: \"translate(-50%, -50%)\"\n },\n className: \"absolute inset-0 w-11 h-11\"\n })));\n};\n\n// VideoTutorials Component\nfunction VideoTutorials() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(0),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n currentIndex = _useState2[0],\n setCurrentIndex = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(null),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState3, 2),\n playingVideoId = _useState4[0],\n setPlayingVideoId = _useState4[1]; // Track the currently playing video\n\n var nextSlide = function nextSlide() {\n if (currentIndex < videoData.length - 3) {\n setCurrentIndex(function (prev) {\n return prev + 1;\n });\n }\n };\n var prevSlide = function prevSlide() {\n if (currentIndex > 0) {\n setCurrentIndex(function (prev) {\n return prev - 1;\n });\n }\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"rounded-lg bg-white w-full mb-4\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"flex items-center justify-between p-4\",\n style: {\n paddingBottom: \"0\"\n }\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: \"m-0 text-sm pt-4 pl-3 font-semibold text-text-primary\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Video Tutorials\", \"uael\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"flex items-center cursor-pointer gap-x-2 mr-7\"\n }, /*#__PURE__*/React.createElement(lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: currentIndex === 0 ? \"text-gray-300 cursor-not-allowed\" : \"cursor-pointer\",\n onClick: prevSlide\n }), /*#__PURE__*/React.createElement(lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: currentIndex >= videoData.length - 3 ? \"text-gray-300 cursor-not-allowed\" : \"cursor-pointer\",\n onClick: nextSlide\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"overflow-hidden bg-black flex-col rounded-lg px-4 py-2 relative\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"flex transition-transform duration-300 ease-in-out\",\n style: {\n transform: \"translateX(-\".concat(currentIndex * (100 / videoData.length), \"%)\"),\n width: \"\".concat(videoData.length / 2.95 * 100, \"%\")\n }\n }, videoData.map(function (video) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: video.id,\n className: \"w-1/3 py-2 px-1\"\n }, /*#__PURE__*/React.createElement(VideoThumbnail, {\n videoId: video.videoId,\n title: video.title,\n playingVideoId: playingVideoId,\n setPlayingVideoId: setPlayingVideoId\n }));\n }))));\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9EYXNoYm9hcmQvVmlkZW9UdXRvcmlhbHMuanN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQXlDO0FBQ2dCO0FBQ3hCO0FBQ0k7QUFFckMsSUFBTUssU0FBUyxHQUFHLENBQ2hCO0VBQ0VDLEVBQUUsRUFBRSxDQUFDO0VBQ0xDLE9BQU8sRUFBRSxhQUFhO0VBQ3RCQyxLQUFLLEVBQUVKLG1EQUFFLENBQUMsa0JBQWtCLEVBQUUsTUFBTTtBQUN0QyxDQUFDLEVBQ0Q7RUFDRUUsRUFBRSxFQUFFLENBQUM7RUFDTEMsT0FBTyxFQUFFLGFBQWE7RUFDdEJDLEtBQUssRUFBRUosbURBQUUsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNO0FBQ3RDLENBQUMsRUFDRDtFQUNFRSxFQUFFLEVBQUUsQ0FBQztFQUNMQyxPQUFPLEVBQUUsYUFBYTtFQUN0QkMsS0FBSyxFQUFFSixtREFBRSxDQUFDLGtCQUFrQixFQUFFLE1BQU07QUFDdEMsQ0FBQyxFQUNEO0VBQ0VFLEVBQUUsRUFBRSxDQUFDO0VBQ0xDLE9BQU8sRUFBRSxhQUFhO0VBQ3RCQyxLQUFLLEVBQUVKLG1EQUFFLENBQUMsa0JBQWtCLEVBQUUsTUFBTTtBQUN0QyxDQUFDLEVBQ0Q7RUFDRUUsRUFBRSxFQUFFLENBQUM7RUFDTEMsT0FBTyxFQUFFLGFBQWE7RUFDdEJDLEtBQUssRUFBRUosbURBQUUsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNO0FBQ3RDLENBQUMsRUFDRDtFQUNFRSxFQUFFLEVBQUUsQ0FBQztFQUNMQyxPQUFPLEVBQUUsYUFBYTtFQUN0QkMsS0FBSyxFQUFFSixtREFBRSxDQUFDLGtCQUFrQixFQUFFLE1BQU07QUFDdEMsQ0FBQyxFQUNEO0VBQ0VFLEVBQUUsRUFBRSxDQUFDO0VBQ0xDLE9BQU8sRUFBRSxhQUFhO0VBQ3RCQyxLQUFLLEVBQUVKLG1EQUFFLENBQUMsa0JBQWtCLEVBQUUsTUFBTTtBQUN0QyxDQUFDLEVBQ0Q7RUFDRUUsRUFBRSxFQUFFLENBQUM7RUFDTEMs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Q0FBQUMsYUFBQSxDQUFDZixvREFBWTtJQUNYZ0IsU0FBUyxFQUNQdUIsWUFBWSxJQUFJbkMsU0FBUyxDQUFDd0MsTUFBTSxHQUFHLENBQUMsR0FDaEMsa0NBQWtDLEdBQ2xDLGdCQUNMO0lBQ0QzQixPQUFPLEVBQUUwQjtFQUFVLENBQ3BCLENBQ0UsQ0FDRixDQUFDLGVBQ043QixLQUFBLENBQUFDLGFBQUE7SUFBS0MsU0FBUyxFQUFDO0VBQWlFLGdCQUM5RUYsS0FBQSxDQUFBQyxhQUFBO0lBQ0VDLFNBQVMsRUFBQyxvREFBb0Q7SUFDOURFLEtBQUssRUFBRTtNQUNMZ0IsU0FBUyxpQkFBQVgsTUFBQSxDQUFpQmdCLFlBQVksSUFBSSxHQUFHLEdBQUduQyxTQUFTLENBQUN3QyxNQUFNLENBQUMsT0FBSTtNQUNyRXhCLEtBQUssS0FBQUcsTUFBQSxDQUFNbkIsU0FBUyxDQUFDd0MsTUFBTSxHQUFHLElBQUksR0FBSSxHQUFHO0lBQzNDO0VBQUUsR0FFRHhDLFNBQVMsQ0FBQzRDLEdBQUcsQ0FBQyxVQUFDQyxLQUFLO0lBQUEsb0JBQ25CbkMsS0FBQSxDQUFBQyxhQUFBO01BQUttQyxHQUFHLEVBQUVELEtBQUssQ0FBQzVDLEVBQUc7TUFBQ1csU0FBUyxFQUFDO0lBQWlCLGdCQUM3Q0YsS0FBQSxDQUFBQyxhQUFBLENBQUNQLGNBQWM7TUFDYkYsT0FBTyxFQUFFMkMsS0FBSyxDQUFDM0MsT0FBUTtNQUN2QkMsS0FBSyxFQUFFMEMsS0FBSyxDQUFDMUMsS0FBTTtNQUNuQkcsY0FBYyxFQUFFQSxjQUFlO01BQy9CQyxpQkFBaUIsRUFBRUE7SUFBa0IsQ0FDdEMsQ0FDRSxDQUFDO0VBQUEsQ0FDUCxDQUNFLENBQ0YsQ0FDRixDQUFDO0FBRVYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vc3JjL0NvbXBvbmVudHMvRGFzaGJvYXJkL1ZpZGVvVHV0b3JpYWxzLmpzeD80ZmNkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNrZWxldG9uIH0gZnJvbSBcIkBic2YvZm9yY2UtdWlcIjtcbmltcG9ydCB7IENoZXZyb25SaWdodCwgQ2hldnJvbkxlZnQgfSBmcm9tIFwibHVjaWRlLXJlYWN0XCI7XG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuXG5jb25zdCB2aWRlb0RhdGEgPSBbXG4gIHtcbiAgICBpZDogMSxcbiAgICB2aWRlb0lkOiBcImtYdVhmYWV0Y2g0XCIsXG4gICAgdGl0bGU6IF9fKFwiVmlkZW8gVHV0b3JpYWwgMVwiLCAndWFlbCcpXG4gIH0sXG4gIHtcbiAgICBpZDogMixcbiAgICB2aWRlb0lkOiBcIjhmdThXNHF1RmcwXCIsXG4gICAgdGl0bGU6IF9fKFwiVmlkZW8gVHV0b3JpYWwgMlwiLCAndWFlbCcpXG4gIH0sXG4gIHtcbiAgICBpZDogMyxcbiAgICB2aWRlb0lkOiBcInd3dTRaelhyaEdjXCIsXG4gICAgdGl0bGU6IF9fKFwiVmlkZW8gVHV0b3JpYWwgM1wiLCAndWFlbCcpXG4gIH0sXG4gIHtcbiAgICBpZDogNCxcbiAgICB2aWRlb0lkOiBcIjg4a1RlQnY0bVdZXCIsXG4gICAgdGl0bGU6IF9fKFwiVmlkZW8gVHV0b3JpYWwgNFwiLCAndWFlbCcpXG4gIH0sXG4gIHtcbiAgICBpZDogNSxcbiAgICB2aWRlb0lkOiBcIk5vdkllNWIyRWtRXCIsXG4gICAgdGl0bGU6IF9fKFwiVmlkZW8gVHV0b3JpYWwgNVwiLCAndWFlbCcpXG4gIH0sXG4gIHtcbiAgICBpZDogNixcbiAgICB2aWRlb0lkOiBcImthR2ZTcEdGY253XCIsXG4gICAgdGl0bGU6IF9fKFwiVmlkZW8gVHV0b3JpYWwgNlwiLCAndWFlbCcpXG4gIH0sXG4gIHtcbiAgICBpZDogNyxcbiAgICB2aWRlb0lkOiBcIjdRLTNmQUtLaGJnXCIsXG4gICAgdGl0bGU6IF9fKFwiVmlkZW8gVHV0b3JpYWwgN1wiLCAndWFlbCcpXG4gIH0sXG4gIHtcbiAgICBpZDogOCxcbiAgICB2aWRlb0lkOiBcInFoRmZLZjJSLVNNXCIsXG4gICAgdGl0bGU6IF9fKFwiVmlkZW8gVHV0b3JpYWwgOFwiLCAndWFlbCcpXG4gIH0sXG4gIHtcbiAgICBpZDogOSxcbiAgICB2aWRlb0lkOiBcImpXeldfb1QxaVNRXCIsXG4gICAgdGl0bGU6IF9fKFwiVmlkZW8gVHV0b3JpYWwgOVwiLCAndWFlbCcpXG4gIH0sXG4gIHtcbiAgICBpZDogMTAsXG4gICAgdmlkZW9JZDogXCItRkVycGJ1MkY1OFwiLFxuICAgIHRpdGxlOiBfXyhcIlZpZGVvIFR1dG9yaWFsIDEwXCIsICd1YWVsJylcbiAgfSxcbiAge1xuICAgIGlkOiAxMSxcbiAgICB2aWRlb0lkOiBcImhyREFGbVBURGdnXCIsXG4gICAgdGl0bGU6IF9fKFwiVmlkZW8gVHV0b3JpYWwgMTFcIiwgJ3VhZWwnKVxuICB9LFxuICB7XG4gICAgaWQ6IDEyLFxuICAgIHZpZGVvSWQ6IFwiMlJsdkJVX0VGVjRcIixcbiAgICB0aXRsZTogX18oXCJWaWRlbyBUdXRvcmlhbCAxMlwiLCAndWFlbCcpXG4gIH0sXG4gIHtcbiAgICBpZDogMTMsXG4gICAgdmlkZW9JZDogXCI3bTZGRDhZazNOMFwiLFxuICAgIHRpdGxlOiBfXyhcIlZpZGVvIFR1dG9yaWFsIDEzXCIsICd1YWVsJylcbiAgfSxcbiAge1xuICAgIGlkOiAxNCxcbiAgICB2aWRlb0lkOiBcIk9DRDNvWmFzNjB3XCIsXG4gICAgdGl0bGU6IF9fKFwiVmlkZW8gVHV0b3JpYWwgMTRcIiwgJ3VhZWwnKVxuICB9LFxuICB7XG4gICAgaWQ6IDE1LFxuICAgIHZpZGVvSWQ6IFwiSzRnQ2N6YVgtU2dcIixcbiAgICB0aXRsZTogX18oXCJWaWRlbyBUdXRvcmlhbCAxNVwiLCAndWFlbCcpXG4gIH0sXG4gIHtcbiAgICBpZDogMTYsXG4gICAgdmlkZW9JZDogXCJJemJyLW9PMFZrVVwiLFxuICAgIHRpdGxlOiBfXyhcIlZpZGVvIFR1dG9yaWFsIDE2XCIsICd1YWVsJylcbiAgfSxcbiAge1xuICAgIGlkOiAxNyxcbiAgICB2aWRlb0lkOiBcInJ1R09naG82UlFNXCIsXG4gICAgdGl0bGU6IF9fKFwiVmlkZW8gVHV0b3JpYWwgMTdcIiwgJ3VhZWwnKVxuICB9LFxuICB7XG4gICAgaWQ6IDE4LFxuICAgIHZpZGVvSWQ6IFwiOE5fQ1cxcmd2cDBcIixcbiAgICB0aXRsZTogX18oXCJWaWRlbyBUdXRvcmlhbCAxOFwiLCAndWFlbCcpXG4gIH0sXG4gIHtcbiAgICBpZDogMTksXG4gICAgdmlkZW9JZDogXCJXbXJTTWw1ZzNhY1wiLFxuICAgIHRpdGxlOiBfXyhcIlZpZGVvIFR1dG9yaWFsIDE5XCIsICd1YWVsJylcbiAgfSxcbiAge1xuICAgIGlkOiAyMCxcbiAgICB2aWRlb0lkOiBcIkJxWE92bXB1bFFRXCIsXG4gICAgdGl0bGU6IF9fKFwiVmlkZW8gVHV0b3JpYWwgMjBcIiwgJ3VhZWwnKVxuICB9LFxuICB7XG4gICAgaWQ6IDIxLFxuICAgIHZpZGVvSWQ6IFwiYlZmSk5NWk9zdjBcIixcbiAgICB0aXRsZTogX18oXCJWaWRlbyBUdXRvcmlhbCAyMVwiLCAndWFlbCcpXG4gIH0sXG4gIHtcbiAgICBpZDogMjIsXG4gICAgdmlkZW9JZDogXCJJaWdRc1VkdmNSb1wiLFxuICAgIHRpdGxlOiBfXyhcIlZpZGVvIFR1dG9yaWFsIDIyXCIsICd1YWVsJylcbiAgfSxcbiAge1xuICAgIGlkOiAyMyxcbiAgICB2aWRlb0lkOiBcInRaUmpDaVVGYS1vXCIsXG4gICAgdGl0bGU6IF9fKFwiVmlkZW8gVHV0b3JpYWwgMjNcIiwgJ3VhZWwnKVxuICB9LFxuICB7XG4gICAgaWQ6IDI0LFxuICAgIHZpZGVvSWQ6IFwiVEptY1BXVG9IVTBcIixcbiAgICB0aXRsZTogX18oXCJWaWRlbyBUdXRvcmlhbCAyNFwiLCAndWFlbCcpXG4gIH0sXG4gIHtcbiAgICBpZDogMjUsXG4gICAgdmlkZW9JZDogXCJYdVFaelFKYk5hc1wiLFxuICAgIHRpdGxlOiBfXyhcIlZpZGVvIFR1dG9yaWFsIDI1XCIsICd1YWVsJylcbiAgfSxcbiAge1xuICAgIGlkOiAyNixcbiAgICB2aWRlb0lkOiBcIkVoOGEzc2ttVkRNXCIsXG4gICAgdGl0bGU6IF9fKFwiVmlkZW8gVHV0b3JpYWwgMjZcIiwgJ3VhZWwnKVxuICB9LFxuICB7XG4gICAgaWQ6IDI3LFxuICAgIHZpZGVvSWQ6IFwiekd2YnpuaWh6SDhcIixcbiAgICB0aXRsZTogX18oXCJWaWRlbyBUdXRvcmlhbCAyN1wiLCAndWFlbCcpXG4gIH0sXG4gIHtcbiAgICBpZDogMjgsXG4gICAgdmlkZW9JZDogXCJsZ0NHNS0teHlSNFwiLFxuICAgIHRpdGxlOiBfXyhcIlZpZGVvIFR1dG9yaWFsIDI4XCIsICd1YWVsJylcbiAgfSxcbiAge1xuICAgIGlkOiAyOSxcbiAgICB2aWRlb0lkOiBcInAzemxJWW9hYUcwXCIsXG4gICAgdGl0bGU6IF9fKFwiVmlkZW8gVHV0b3JpYWwgMjlcIiwgJ3VhZWwnKVxuICB9LFxuXTtcblxuLy8gTmV3IGNvbXBvbmVudCB0byBoYW5kbGUgbGF6eS1sb2FkaW5nIG9mIFlvdVR1YmUgdGh1bWJuYWlsc1xuY29uc3QgVmlkZW9UaHVtYm5haWwgPSAoeyB2aWRlb0lkLCB0aXRsZSwgcGxheWluZ1ZpZGVvSWQsIHNldFBsYXlpbmdWaWRlb0lkIH0pID0+IHtcbiAgY29uc3QgaXNQbGF5aW5nID0gcGxheWluZ1ZpZGVvSWQgPT09IHZpZGVvSWQ7XG5cbiAgY29uc3QgaGFuZGxlUGxheVZpZGVvID0gKCkgPT4ge1xuICAgIHNldFBsYXlpbmdWaWRlb0lkKHZpZGVvSWQpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJ2aWRlby10aHVtYm5haWwtY29udGFpbmVyXCIgb25DbGljaz17aGFuZGxlUGxheVZpZGVvfSBzdHlsZT17eyBjdXJzb3I6ICdwb2ludGVyJyB9fT5cbiAgICAgIHtpc1BsYXlpbmcgPyAoXG4gICAgICAgIDxpZnJhbWVcbiAgICAgICAgICB3aWR0aD1cIjI1MFwiXG4gICAgICAgICAgaGVpZ2h0PVwiMTQ1XCJcbiAgICAgICAgICBzcmM9e2BodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8ke3ZpZGVvSWR9P2F1dG9wbGF5PTFgfVxuICAgICAgICAgIGZyYW1lQm9yZGVyPVwiMFwiXG4gICAgICAgICAgc3R5bGU9e3sgYm9yZGVyUmFkaXVzOiBcIjhweFwiIH19XG4gICAgICAgICAgYWxsb3c9XCJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlXCJcbiAgICAgICAgICBhbGxvd0Z1bGxTY3JlZW5cbiAgICAgICAgICB0aXRsZT17dGl0bGV9XG4gICAgICAgIC8+XG4gICAgICApIDogKFxuICAgICAgICA8ZGl2IHN0eWxlPXt7IHBvc2l0aW9uOiAncmVsYXRpdmUnIH19PlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIHNyYz17YGh0dHBzOi8vaW1nLnlvdXR1YmUuY29tL3ZpLyR7dmlkZW9JZH0vbWF4cmVzZGVmYXVsdC5qcGdgfVxuICAgICAgICAgICAgYWx0PXt0aXRsZX1cbiAgICAgICAgICAgIHdpZHRoPVwiMjUwXCJcbiAgICAgICAgICAgIGhlaWdodD1cIjE0NVwiXG4gICAgICAgICAgICBzdHlsZT17eyBib3JkZXJSYWRpdXM6IFwiOHB4XCIgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIHNyYz17YCR7dWFlbFNldHRpbmdzRGF0YS52aWRlb19jb250cm9sfWB9XG4gICAgICAgICAgICBhbHQ9XCJQbGF5XCJcbiAgICAgICAgICAgIHN0eWxlPXt7IGxlZnQ6IFwiNDMlXCIsIHRvcDogXCI1MCVcIiwgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlLCAtNTAlKVwiIH19XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIHctMTEgaC0xMVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuLy8gVmlkZW9UdXRvcmlhbHMgQ29tcG9uZW50XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBWaWRlb1R1dG9yaWFscygpIHtcbiAgY29uc3QgW2N1cnJlbnRJbmRleCwgc2V0Q3VycmVudEluZGV4XSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCBbcGxheWluZ1ZpZGVvSWQsIHNldFBsYXlpbmdWaWRlb0lkXSA9IHVzZVN0YXRlKG51bGwpOyAvLyBUcmFjayB0aGUgY3VycmVudGx5IHBsYXlpbmcgdmlkZW9cblxuICBjb25zdCBuZXh0U2xpZGUgPSAoKSA9PiB7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA8IHZpZGVvRGF0YS5sZW5ndGggLSAzKSB7XG4gICAgICBzZXRDdXJyZW50SW5kZXgoKHByZXYpID0+IHByZXYgKyAxKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcHJldlNsaWRlID0gKCkgPT4ge1xuICAgIGlmIChjdXJyZW50SW5kZXggPiAwKSB7XG4gICAgICBzZXRDdXJyZW50SW5kZXgoKHByZXYpID0+IHByZXYgLSAxKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtbGcgYmctd2hpdGUgdy1mdWxsIG1iLTRcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtNFwiXG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgcGFkZGluZ0JvdHRvbTogXCIwXCIsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxwIGNsYXNzTmFtZT1cIm0tMCB0ZXh0LXNtIHB0LTQgcGwtMyBmb250LXNlbWlib2xkIHRleHQtdGV4dC1wcmltYXJ5XCI+XG4gICAgICAgICAge19fKFwiVmlkZW8gVHV0b3JpYWxzXCIsIFwidWFlbFwiKX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGN1cnNvci1wb2ludGVyIGdhcC14LTIgbXItN1wiPlxuICAgICAgICAgIDxDaGV2cm9uTGVmdFxuICAgICAgICAgICAgY2xhc3NOYW1lPXtcbiAgICAgICAgICAgICAgY3VycmVudEluZGV4ID09PSAwID8gXCJ0ZXh0LWdyYXktMzAwIGN1cnNvci1ub3QtYWxsb3dlZFwiIDogXCJjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkNsaWNrPXtwcmV2U2xpZGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8Q2hldnJvblJpZ2h0XG4gICAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgICBjdXJyZW50SW5kZXggPj0gdmlkZW9EYXRhLmxlbmd0aCAtIDNcbiAgICAgICAgICAgICAgICA/IFwidGV4dC1ncmF5LTMwMCBjdXJzb3Itbm90LWFsbG93ZWRcIlxuICAgICAgICAgICAgICAgIDogXCJjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkNsaWNrPXtuZXh0U2xpZGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3ZlcmZsb3ctaGlkZGVuIGJnLWJsYWNrIGZsZXgtY29sIHJvdW5kZWQtbGcgcHgtNCBweS0yIHJlbGF0aXZlXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4IHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBlYXNlLWluLW91dFwiXG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVgoLSR7Y3VycmVudEluZGV4ICogKDEwMCAvIHZpZGVvRGF0YS5sZW5ndGgpfSUpYCxcbiAgICAgICAgICAgIHdpZHRoOiBgJHsodmlkZW9EYXRhLmxlbmd0aCAvIDIuOTUpICogMTAwfSVgLFxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICB7dmlkZW9EYXRhLm1hcCgodmlkZW8pID0+IChcbiAgICAgICAgICAgIDxkaXYga2V5PXt2aWRlby5pZH0gY2xhc3NOYW1lPVwidy0xLzMgcHktMiBweC0xXCI+XG4gICAgICAgICAgICAgIDxWaWRlb1RodW1ibmFpbFxuICAgICAgICAgICAgICAgIHZpZGVvSWQ9e3ZpZGVvLnZpZGVvSWR9XG4gICAgICAgICAgICAgICAgdGl0bGU9e3ZpZGVvLnRpdGxlfVxuICAgICAgICAgICAgICAgIHBsYXlpbmdWaWRlb0lkPXtwbGF5aW5nVmlkZW9JZH1cbiAgICAgICAgICAgICAgICBzZXRQbGF5aW5nVmlkZW9JZD17c2V0UGxheWluZ1ZpZGVvSWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJTa2VsZXRvbiIsIkNoZXZyb25SaWdodCIsIkNoZXZyb25MZWZ0IiwidXNlU3RhdGUiLCJfXyIsInZpZGVvRGF0YSIsImlkIiwidmlkZW9JZCIsInRpdGxlIiwiVmlkZW9UaHVtYm5haWwiLCJfcmVmIiwicGxheWluZ1ZpZGVvSWQiLCJzZXRQbGF5aW5nVmlkZW9JZCIsImlzUGxheWluZyIsImhhbmRsZVBsYXlWaWRlbyIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJzdHlsZSIsImN1cnNvciIsIndpZHRoIiwiaGVpZ2h0Iiwic3JjIiwiY29uY2F0IiwiZnJhbWVCb3JkZXIiLCJib3JkZXJSYWRpdXMiLCJhbGxvdyIsImFsbG93RnVsbFNjcmVlbiIsInBvc2l0aW9uIiwiYWx0IiwidWFlbFNldHRpbmdzRGF0YSIsInZpZGVvX2NvbnRyb2wiLCJsZWZ0IiwidG9wIiwidHJhbnNmb3JtIiwiVmlkZW9UdXRvcmlhbHMiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJjdXJyZW50SW5kZXgiLCJzZXRDdXJyZW50SW5kZXgiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIm5leHRTbGlkZSIsImxlbmd0aCIsInByZXYiLCJwcmV2U2xpZGUiLCJwYWRkaW5nQm90dG9tIiwibWFwIiwidmlkZW8iLCJrZXkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/Components/Dashboard/VideoTutorials.jsx\n");
/***/ }),
/***/ "./src/Components/Dashboard/WelcomeContainer.js":
/*!******************************************************!*\
!*** ./src/Components/Dashboard/WelcomeContainer.js ***!
\******************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/plus.js\");\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/external-link.js\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\n\nvar WelcomeContainer = function WelcomeContainer() {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Container, {\n align: \"center\",\n className: \"bg-background-primary border-[0.5px] border-subtle rounded-xl shadow-sm mb-6 p-8 flex flex-col lg:flex-row\",\n containerType: \"flex\",\n direction: \"row\",\n gap: \"sm\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Container.Item, {\n shrink: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Title, {\n description: \"\",\n icon: null,\n iconPosition: \"right\",\n className: \"max-w-lg\",\n size: \"lg\",\n tag: \"h3\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)(\"Hello,\", \"uael\")\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", {\n className: \"text-sm font-medium text-text-tertiary m-0 mt-2\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)(\"Thanks for choosing \" + uaelSettingsData.plugin_short_name + \" Pro! You're now part of an exclusive community of website builders. Explore the features and enjoy creating something amazing. Let's take your site to the next level together.\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"flex items-center pt-6 gap-2\"\n }, uaelSettingsData.is_lite_active ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Button, {\n iconPosition: \"right\",\n variant: \"primary\",\n className: \"bg-[#6005FF] uael-remove-ring\",\n style: {\n backgroundColor: \"#6005FF\",\n transition: \"background-color 0.3s ease\"\n },\n onMouseEnter: function onMouseEnter(e) {\n return e.currentTarget.style.backgroundColor = \"#4B00CC\";\n },\n onMouseLeave: function onMouseLeave(e) {\n return e.currentTarget.style.backgroundColor = \"#6005FF\";\n },\n onClick: function onClick() {\n window.open(uaelSettingsData.uael_hfe_post_url, \"_blank\");\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)(\"Create Header/Footer\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Button, {\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_3__[\"default\"], null),\n iconPosition: \"right\",\n variant: \"outline\",\n className: \"uael-remove-ring\",\n style: {\n color: \"#6005FF\",\n borderColor: \"#6005FF\"\n },\n onMouseEnter: function onMouseEnter(e) {\n return (e.currentTarget.style.color = \"#000000\") && (e.currentTarget.style.borderColor = \"#000000\");\n },\n onMouseLeave: function onMouseLeave(e) {\n return (e.currentTarget.style.color = \"#6005FF\") && (e.currentTarget.style.borderColor = \"#6005FF\");\n },\n onClick: function onClick() {\n window.open(uaelSettingsData.elementor_page_url, \"_blank\");\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)(\"Create New Page\", \"uael\"))) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Button, {\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_3__[\"default\"], null),\n iconPosition: \"right\",\n variant: \"primary\",\n className: \"bg-[#6005FF]\",\n style: {\n backgroundColor: \"#6005FF\",\n transition: \"background-color 0.3s ease\"\n },\n onMouseEnter: function onMouseEnter(e) {\n return e.currentTarget.style.backgroundColor = \"#4B00CC\";\n },\n onMouseLeave: function onMouseLeave(e) {\n return e.currentTarget.style.backgroundColor = \"#6005FF\";\n },\n onClick: function onClick() {\n window.open(uaelSettingsData.elementor_page_url, \"_blank\");\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)(\"Create New Page\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: {\n color: \"black\",\n background: \"none\",\n border: \"none\",\n padding: 0,\n cursor: \"pointer\"\n },\n onMouseEnter: function onMouseEnter(e) {\n return e.currentTarget.style.color = \"#6005ff\";\n },\n onMouseLeave: function onMouseLeave(e) {\n return e.currentTarget.style.color = \"black\";\n },\n onClick: function onClick() {\n window.open(\"https://ultimateelementor.com/docs/getting-started-uael/\", \"_blank\");\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Button, {\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null),\n iconPosition: \"right\",\n variant: \"link\",\n className: \"uael-remove-ring text-black\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)(\"Read full guide\", \"uael\")))))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (WelcomeContainer);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9EYXNoYm9hcmQvV2VsY29tZUNvbnRhaW5lci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBMEI7QUFDK0I7QUFDUDtBQUNIO0FBRS9DLElBQU1RLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUEsRUFBUztFQUM5QixvQkFDQ1IsMERBQUEsMkJBQ0NBLDBEQUFBLENBQUNDLG9EQUFTO0lBQ1RTLEtBQUssRUFBQyxRQUFRO0lBQ2RDLFNBQVMsRUFBQyw0R0FBNEc7SUFDdEhDLGFBQWEsRUFBQyxNQUFNO0lBQ3BCQyxTQUFTLEVBQUMsS0FBSztJQUNmQyxHQUFHLEVBQUM7RUFBSSxnQkFFUmQsMERBQUEsQ0FBQ0Msb0RBQVMsQ0FBQ2MsSUFBSTtJQUFDQyxNQUFNLEVBQUU7RUFBRSxnQkFDekJoQiwwREFBQSxDQUFDRSxnREFBSztJQUNMZSxXQUFXLEVBQUMsRUFBRTtJQUNkQyxJQUFJLEVBQUUsSUFBSztJQUNYQyxZQUFZLEVBQUMsT0FBTztJQUNwQlIsU0FBUyxFQUFDLFVBQVU7SUFDcEJTLElBQUksRUFBQyxJQUFJO0lBQ1RDLEdBQUcsRUFBQyxJQUFJO0lBQ1JDLEtBQUssRUFBRWhCLG1EQUFFLENBQUMsUUFBUSxFQUFFLE1BQU07RUFBRSxDQUM1QixDQUFDLGVBQ0ZOLDBEQUFBO0lBQUdXLFNBQVMsRUFBQztFQUFpRCxHQUM1REwsbURBQUUsQ0FDRixzQkFBc0IsR0FDckJpQixnQkFBZ0IsQ0FBQ0MsaUJBQWlCLEdBQ2xDLGtMQUFrTCxFQUNuTCxNQUNELENBQ0UsQ0FBQyxlQUNKeEIsMERBQUE7SUFBS1csU0FBUyxFQUFDO0VBQThCLEdBRTNDWSxnQkFBZ0IsQ0FBQ0UsY0FBYyxnQkFDOUJ6QiwwREFBQSxDQUFBQSx1REFBQSxxQkFDQ0EsMERBQUEsQ0FBQ0csaURBQU07SUFDTmdCLFlBQVksRUFBQyxPQUFPO0lBQ3BCUSxPQUFPLEVBQUMsU0FBUztJQUNqQmhCLFNBQVMsRUFBQywrQkFBK0I7SUFDekNpQixLQUFL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bEJDLE1BQU0sRUFBRSxNQUFNO01BQ2RDLE9BQU8sRUFBRSxDQUFDO01BQ1ZDLE1BQU0sRUFBRTtJQUNULENBQUU7SUFDRmQsWUFBWSxFQUFFLFNBQWRBLFlBQVlBLENBQUdDLENBQUM7TUFBQSxPQUNkQSxDQUFDLENBQUNDLGFBQWEsQ0FBQ0wsS0FBSyxDQUFDVyxLQUFLLEdBQUcsU0FBUztJQUFBLENBQ3hDO0lBQ0RMLFlBQVksRUFBRSxTQUFkQSxZQUFZQSxDQUFHRixDQUFDO01BQUEsT0FDZEEsQ0FBQyxDQUFDQyxhQUFhLENBQUNMLEtBQUssQ0FBQ1csS0FBSyxHQUFHLE9BQU87SUFBQSxDQUN0QztJQUNESixPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFRO01BQ2RDLE1BQU0sQ0FBQ0MsSUFBSSxDQUNWLDBEQUEwRCxFQUMxRCxRQUNELENBQUM7SUFDRjtFQUFFLGdCQUVGckMsMERBQUEsQ0FBQ0csaURBQU07SUFDTmUsSUFBSSxlQUFFbEIsMERBQUEsQ0FBQ0ksb0RBQVksTUFBRSxDQUFFO0lBQ3ZCZSxZQUFZLEVBQUMsT0FBTztJQUNwQlEsT0FBTyxFQUFDLE1BQU07SUFDZGhCLFNBQVMsRUFBQztFQUE2QixHQUV0Q0wsbURBQUUsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQ3RCLENBQ0osQ0FDRCxDQUNVLENBWU4sQ0FDUCxDQUFDO0FBRVIsQ0FBQztBQUNELCtEQUFlRSxnQkFBZ0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vc3JjL0NvbXBvbmVudHMvRGFzaGJvYXJkL1dlbGNvbWVDb250YWluZXIuanM/MDBiNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBDb250YWluZXIsIFRpdGxlLCBCdXR0b24gfSBmcm9tIFwiQGJzZi9mb3JjZS11aVwiO1xuaW1wb3J0IHsgRXh0ZXJuYWxMaW5rLCBQbHVzIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuaW1wb3J0IHsgX18gLCBzcHJpbnRmIH0gZnJvbSBcIkB3b3JkcHJlc3MvaTE4blwiO1xuXG5jb25zdCBXZWxjb21lQ29udGFpbmVyID0gKCkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdDxkaXY+XG5cdFx0XHQ8Q29udGFpbmVyXG5cdFx0XHRcdGFsaWduPVwiY2VudGVyXCJcblx0XHRcdFx0Y2xhc3NOYW1lPVwiYmctYmFja2dyb3VuZC1wcmltYXJ5IGJvcmRlci1bMC41cHhdIGJvcmRlci1zdWJ0bGUgcm91bmRlZC14bCBzaGFkb3ctc20gbWItNiBwLTggZmxleCBmbGV4LWNvbCBsZzpmbGV4LXJvd1wiXG5cdFx0XHRcdGNvbnRhaW5lclR5cGU9XCJmbGV4XCJcblx0XHRcdFx0ZGlyZWN0aW9uPVwicm93XCJcblx0XHRcdFx0Z2FwPVwic21cIlxuXHRcdFx0PlxuXHRcdFx0XHQ8Q29udGFpbmVyLkl0ZW0gc2hyaW5rPXsxfT5cblx0XHRcdFx0XHQ8VGl0bGVcblx0XHRcdFx0XHRcdGRlc2NyaXB0aW9uPVwiXCJcblx0XHRcdFx0XHRcdGljb249e251bGx9XG5cdFx0XHRcdFx0XHRpY29uUG9zaXRpb249XCJyaWdodFwiXG5cdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJtYXgtdy1sZ1wiXG5cdFx0XHRcdFx0XHRzaXplPVwibGdcIlxuXHRcdFx0XHRcdFx0dGFnPVwiaDNcIlxuXHRcdFx0XHRcdFx0dGl0bGU9e19fKFwiSGVsbG8sXCIsIFwidWFlbFwiKX1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdDxwIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC10ZXh0LXRlcnRpYXJ5IG0tMCBtdC0yXCI+XG5cdFx0XHRcdFx0XHR7X18oXG5cdFx0XHRcdFx0XHRcdFwiVGhhbmtzIGZvciBjaG9vc2luZyBcIiArXG5cdFx0XHRcdFx0XHRcdFx0dWFlbFNldHRpbmdzRGF0YS5wbHVnaW5fc2hvcnRfbmFtZSArXG5cdFx0XHRcdFx0XHRcdFx0XCIgUHJvISBZb3UncmUgbm93IHBhcnQgb2YgYW4gZXhjbHVzaXZlIGNvbW11bml0eSBvZiB3ZWJzaXRlIGJ1aWxkZXJzLiBFeHBsb3JlIHRoZSBmZWF0dXJlcyBhbmQgZW5qb3kgY3JlYXRpbmcgc29tZXRoaW5nIGFtYXppbmcuIExldCdzIHRha2UgeW91ciBzaXRlIHRvIHRoZSBuZXh0IGxldmVsIHRvZ2V0aGVyLlwiLFxuXHRcdFx0XHRcdFx0XHRcInVhZWxcIlxuXHRcdFx0XHRcdFx0KX1cblx0XHRcdFx0XHQ8L3A+XG5cdFx0XHRcdFx0PGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBwdC02IGdhcC0yXCI+XG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdHVhZWxTZXR0aW5nc0RhdGEuaXNfbGl0ZV9hY3RpdmUgPyAoXG5cdFx0XHRcdFx0XHRcdFx0PD5cblx0XHRcdFx0XHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdFx0XHRcdFx0aWNvblBvc2l0aW9uPVwicmlnaHRcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR2YXJpYW50PVwicHJpbWFyeVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cImJnLVsjNjAwNUZGXSB1YWVsLXJlbW92ZS1yaW5nXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9e3tcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IFwiIzYwMDVGRlwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRyYW5zaXRpb246IFwiYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2VcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0b25Nb3VzZUVudGVyPXsoZSkgPT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQoZS5jdXJyZW50VGFyZ2V0LnN0eWxlLmJhY2tncm91bmRDb2xvciA9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcIiM0QjAwQ0NcIilcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRvbk1vdXNlTGVhdmU9eyhlKSA9PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdChlLmN1cnJlbnRUYXJnZXQuc3R5bGUuYmFja2dyb3VuZENvbG9yID1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiIzYwMDVGRlwiKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG9uQ2xpY2s9eygpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR3aW5kb3cub3Blbihcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHVhZWxTZXR0aW5nc0RhdGEudWFlbF9oZmVfcG9zdF91cmwsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcIl9ibGFua1wiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0e19fKFwiQ3JlYXRlIEhlYWRlci9Gb290ZXJcIiwgXCJ1YWVsXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0PC9CdXR0b24+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGljb249ezxQbHVzIC8+fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpY29uUG9zaXRpb249XCJyaWdodFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHZhcmlhbnQ9XCJvdXRsaW5lXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lPVwidWFlbC1yZW1vdmUtcmluZ1wiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPXt7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29sb3I6IFwiIzYwMDVGRlwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGJvcmRlckNvbG9yOiBcIiM2MDA1RkZcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0b25Nb3VzZUVudGVyPXsoZSkgPT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQoZS5jdXJyZW50VGFyZ2V0LnN0eWxlLmNvbG9yID1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiIzAwMDAwMFwiKSAmJlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdChlLmN1cnJlbnRUYXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XCIjMDAwMDAwXCIpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0b25Nb3VzZUxlYXZlPXsoZSkgPT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQoZS5jdXJyZW50VGFyZ2V0LnN0eWxlLmNvbG9yID1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiIzYwMDVGRlwiKSAmJlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdChlLmN1cnJlbnRUYXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XCIjNjAwNUZGXCIpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0b25DbGljaz17KCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHdpbmRvdy5vcGVuKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dWFlbFNldHRpbmdzRGF0YS5lbGVtZW50b3JfcGFnZV91cmwsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcIl9ibGFua1wiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0e19fKFwiQ3JlYXRlIE5ldyBQYWdlXCIsIFwidWFlbFwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvQnV0dG9uPlxuXHRcdFx0XHRcdFx0XHRcdDwvPlxuXHRcdFx0XHRcdFx0XHQpIDogXG5cdFx0XHRcdFx0XHRcdChcblx0XHRcdFx0XHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0XHRcdFx0XHRpY29uPXs8UGx1cyAvPn1cblx0XHRcdFx0XHRcdFx0XHRcdGljb25Qb3NpdGlvbj1cInJpZ2h0XCJcblx0XHRcdFx0XHRcdFx0XHRcdHZhcmlhbnQ9XCJwcmltYXJ5XCJcblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cImJnLVsjNjAwNUZGXVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT17e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6IFwiIzYwMDVGRlwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0cmFuc2l0aW9uOiBcImJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdFx0XHRcdFx0b25Nb3VzZUVudGVyPXsoZSkgPT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0KGUuY3VycmVudFRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiIzRCMDBDQ1wiKVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0b25Nb3VzZUxlYXZlPXsoZSkgPT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0KGUuY3VycmVudFRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiIzYwMDVGRlwiKVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0b25DbGljaz17KCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR3aW5kb3cub3Blbihcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR1YWVsU2V0dGluZ3NEYXRhLmVsZW1lbnRvcl9wYWdlX3VybCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcIl9ibGFua1wiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHRcdHtfXyhcIkNyZWF0ZSBOZXcgUGFnZVwiLCBcInVhZWxcIil9XG5cdFx0XHRcdFx0XHRcdFx0PC9CdXR0b24+XG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRcdFx0c3R5bGU9e3tcblx0XHRcdFx0XHRcdFx0XHRjb2xvcjogXCJibGFja1wiLFxuXHRcdFx0XHRcdFx0XHRcdGJhY2tncm91bmQ6IFwibm9uZVwiLFxuXHRcdFx0XHRcdFx0XHRcdGJvcmRlcjogXCJub25lXCIsXG5cdFx0XHRcdFx0XHRcdFx0cGFkZGluZzogMCxcblx0XHRcdFx0XHRcdFx0XHRjdXJzb3I6IFwicG9pbnRlclwiLFxuXHRcdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdFx0XHRvbk1vdXNlRW50ZXI9eyhlKSA9PlxuXHRcdFx0XHRcdFx0XHRcdChlLmN1cnJlbnRUYXJnZXQuc3R5bGUuY29sb3IgPSBcIiM2MDA1ZmZcIilcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRvbk1vdXNlTGVhdmU9eyhlKSA9PlxuXHRcdFx0XHRcdFx0XHRcdChlLmN1cnJlbnRUYXJnZXQuc3R5bGUuY29sb3IgPSBcImJsYWNrXCIpXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0b25DbGljaz17KCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdHdpbmRvdy5vcGVuKFxuXHRcdFx0XHRcdFx0XHRcdFx0XCJodHRwczovL3VsdGltYXRlZWxlbWVudG9yLmNvbS9kb2NzL2dldHRpbmctc3RhcnRlZC11YWVsL1wiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XCJfYmxhbmtcIlxuXHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdFx0XHRpY29uPXs8RXh0ZXJuYWxMaW5rIC8+fVxuXHRcdFx0XHRcdFx0XHRcdGljb25Qb3NpdGlvbj1cInJpZ2h0XCJcblx0XHRcdFx0XHRcdFx0XHR2YXJpYW50PVwibGlua1wiXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lPVwidWFlbC1yZW1vdmUtcmluZyB0ZXh0LWJsYWNrXCJcblx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdHtfXyhcIlJlYWQgZnVsbCBndWlkZVwiLCBcInVhZWxcIil9XG5cdFx0XHRcdFx0XHRcdDwvQnV0dG9uPlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvQ29udGFpbmVyLkl0ZW0+XG5cdFx0XHRcdHsvKiA8Q29udGFpbmVyLkl0ZW0gY2xhc3NOYW1lPVwibWQ6bXQtMCBtdC00XCI+XG5cdFx0XHRcdFx0PGlmcmFtZVxuXHRcdFx0XHRcdFx0d2lkdGg9XCIyODBcIlxuXHRcdFx0XHRcdFx0aGVpZ2h0PVwiMTYwXCJcblx0XHRcdFx0XHRcdHNyYz1cImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL1plb2dPeHFkS0pJXCJcblx0XHRcdFx0XHRcdGZyYW1lQm9yZGVyPVwiMFwiXG5cdFx0XHRcdFx0XHRzdHlsZT17eyBib3JkZXJSYWRpdXM6IFwiOHB4XCIgfX1cblx0XHRcdFx0XHRcdGFsbG93PVwiYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZVwiXG5cdFx0XHRcdFx0XHRhbGxvd0Z1bGxTY3JlZW5cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHQ8L0NvbnRhaW5lci5JdGVtPiAqL31cblx0XHRcdDwvQ29udGFpbmVyPlxuXHRcdDwvZGl2PlxuXHQpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFdlbGNvbWVDb250YWluZXI7XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJDb250YWluZXIiLCJUaXRsZSIsIkJ1dHRvbiIsIkV4dGVybmFsTGluayIsIlBsdXMiLCJfXyIsInNwcmludGYiLCJXZWxjb21lQ29udGFpbmVyIiwiY3JlYXRlRWxlbWVudCIsImFsaWduIiwiY2xhc3NOYW1lIiwiY29udGFpbmVyVHlwZSIsImRpcmVjdGlvbiIsImdhcCIsIkl0ZW0iLCJzaHJpbmsiLCJkZXNjcmlwdGlvbiIsImljb24iLCJpY29uUG9zaXRpb24iLCJzaXplIiwidGFnIiwidGl0bGUiLCJ1YWVsU2V0dGluZ3NEYXRhIiwicGx1Z2luX3Nob3J0X25hbWUiLCJpc19saXRlX2FjdGl2ZSIsIkZyYWdtZW50IiwidmFyaWFudCIsInN0eWxlIiwiYmFja2dyb3VuZENvbG9yIiwidHJhbnNpdGlvbiIsIm9uTW91c2VFbnRlciIsImUiLCJjdXJyZW50VGFyZ2V0Iiwib25Nb3VzZUxlYXZlIiwib25DbGljayIsIndpbmRvdyIsIm9wZW4iLCJ1YWVsX2hmZV9wb3N0X3VybCIsImNvbG9yIiwiYm9yZGVyQ29sb3IiLCJlbGVtZW50b3JfcGFnZV91cmwiLCJiYWNrZ3JvdW5kIiwiYm9yZGVyIiwicGFkZGluZyIsImN1cnNvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/Components/Dashboard/WelcomeContainer.js\n");
/***/ }),
/***/ "./src/Components/Dashboard/WidgetItem.jsx":
/*!*************************************************!*\
!*** ./src/Components/Dashboard/WidgetItem.jsx ***!
\*************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/file-text.js\");\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/info.js\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/api-fetch */ \"@wordpress/api-fetch\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\n\n\n// Create a queue to manage AJAX requests\nvar requestQueue = [];\nvar processQueue = function processQueue() {\n if (requestQueue.length === 0) return;\n\n // Take the first item from the queue and run it\n var currentRequest = requestQueue.shift();\n currentRequest();\n};\nvar WidgetItem = function WidgetItem(_ref) {\n var widget = _ref.widget,\n updateCounter = _ref.updateCounter,\n showTooltip = _ref.showTooltip;\n var id = widget.id,\n icon = widget.icon,\n title = widget.title,\n infoText = widget.infoText,\n is_pro = widget.is_pro,\n is_active = widget.is_active,\n slug = widget.slug,\n demo_url = widget.demo_url,\n doc_url = widget.doc_url,\n description = widget.description;\n\n // Track the active state of the widget using React state\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(widget.is_active),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n isActive = _useState2[0],\n setIsActive = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState3, 2),\n isLoading = _useState4[0],\n setIsLoading = _useState4[1];\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n // Update local state when the widget prop changes\n setIsActive(widget.is_active);\n }, [widget.is_active, updateCounter]);\n var apiCall = function apiCall(activateWidget) {\n var action = activateWidget ? 'uael_deactivate_widget' : 'uael_activate_widget';\n var formData = new window.FormData();\n formData.append('action', action);\n formData.append('nonce', uaelSettingsData.ajax_nonce);\n formData.append('module_id', id);\n formData.append('is_pro', is_pro);\n try {\n var data = _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3___default()({\n url: uaelSettingsData.ajax_url,\n method: 'POST',\n body: formData\n });\n if (data.success) {\n setIsActive(isActive); // Update the active state after the request\n } else if (data.error) {\n // console.log('AJAX request failed');\n }\n } catch (err) {\n // console.log(\"Error during AJAX request\");\n } finally {\n setIsLoading(false); // Always stop the loading spinner\n processQueue();\n }\n };\n var handleSwitchChange = function handleSwitchChange() {\n if (isLoading) return;\n setIsLoading(true);\n if (isActive) {\n // Add the request to the queue\n setIsActive(false);\n requestQueue.push(function () {\n return apiCall(isActive);\n });\n } else {\n // Add the request to the queue\n setIsActive(true);\n requestQueue.push(function () {\n return apiCall(isActive);\n });\n }\n if (requestQueue.length === 1) {\n // Start processing the queue if no other request is being processed\n processQueue();\n }\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container, {\n align: \"center\",\n containerType: \"flex\",\n direction: \"column\",\n justify: \"between\",\n gap: \"\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex items-center justify-between w-full\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"h-10 w-10 mb-5 \".concat(icon === null || icon === void 0 ? void 0 : icon.props),\n style: {\n fontSize: '22px'\n }\n }, icon), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex items-center gap-x-2\",\n style: {\n marginBottom: '15px'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Switch, {\n onChange: handleSwitchChange // Updated to use the new function\n ,\n size: \"sm\",\n value: isActive,\n className: \"uael-remove-ring\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex flex-col w-full\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"p\", {\n className: \"text-sm font-medium text-text-primary pt-3 m-0 pb-1\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)(title, 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex items-center justify-between w-full\"\n }, !uaelSettingsData.hide_settings && demo_url && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"a\", {\n href: demo_url,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"text-sm text-text-tertiary m-0 mb-1 uael-remove-ring\",\n style: {\n textDecoration: 'none',\n lineHeight: '1.5rem'\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('View Demo', 'uael')), showTooltip && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"\".concat(!demo_url ? 'uae-tooltip-wrap' : '')\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Tooltip, {\n arrow: true,\n content: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"span\", {\n className: \"font-semibold block mb-2\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)(title, 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"span\", {\n className: \"block mb-2\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)(description, 'uael')), !uaelSettingsData.hide_settings && doc_url && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"a\", {\n href: doc_url,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"cursor-pointer\",\n style: {\n color: '#C8AEFF',\n textDecoration: 'none'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n style: {\n color: '#C8AEFF',\n width: '11px',\n height: '11px',\n marginRight: '3px'\n }\n }), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Read Documentation', 'uael'))),\n placement: \"bottom\",\n title: \"\",\n triggers: ['click'],\n variant: \"dark\",\n size: \"xs\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-5 w-5\",\n size: 18,\n color: \"#A0A5B2\"\n }))))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (WidgetItem);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9EYXNoYm9hcmQvV2lkZ2V0SXRlbS5qc3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFrRDtBQUNtQjtBQUNuQjtBQUNOO0FBQ1A7O0FBRXJDO0FBQ0EsSUFBTVcsWUFBWSxHQUFHLEVBQUU7QUFFdkIsSUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztFQUN2QixJQUFJRCxZQUFZLENBQUNFLE1BQU0sS0FBSyxDQUFDLEVBQUU7O0VBRS9CO0VBQ0EsSUFBTUMsY0FBYyxHQUFHSCxZQUFZLENBQUNJLEtBQUssQ0FBQyxDQUFDO0VBQzNDRCxjQUFjLENBQUMsQ0FBQztBQUNwQixDQUFDO0FBRUQsSUFBTUUsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUFDLElBQUEsRUFJVjtFQUFBLElBSEZDLE1BQU0sR0FBQUQsSUFBQSxDQUFOQyxNQUFNO0lBQ05DLGFBQWEsR0FBQUYsSUFBQSxDQUFiRSxhQUFhO0lBQ2JDLFdBQVcsR0FBQUgsSUFBQSxDQUFYRyxXQUFXO0VBRVgsSUFDSUMsRUFBRSxHQVVGSCxNQUFNLENBVk5HLEVBQUU7SUFDRkMsSUFBSSxHQVNKSixNQUFNLENBVE5JLElBQUk7SUFDSkMsS0FBSyxHQVFMTCxNQUFNLENBUk5LLEtBQUs7SUFDTEMsUUFBUSxHQU9STixNQUFNLENBUE5NLFFBQVE7SUFDUkMsTUFBTSxHQU1OUCxNQUFNLENBTk5PLE1BQU07SUFDTkMsU0FBUyxHQUtUUixNQUFNLENBTE5RLFNBQVM7SUFDVEMsSUFBSSxHQUlKVCxNQUFNLENBSk5TLElBQUk7SUFDSkMsUUFBUSxHQUdSVixNQUFNLENBSE5VLFFBQVE7SUFDUkMsT0FBTyxHQUVQWCxNQUFNLENBRk5XLE9BQU87SUFDUEMsV0FBVyxHQUNYWixNQUFNLENBRE5ZLFdBQVc7O0VBR2Y7RUFDQSxJQUFBQyxTQUFBLEdBQWdDN0IsK0NBQVEsQ0FBQ2dCLE1BQU0sQ0FBQ1EsU0FBUyxDQUFDO0lBQUFNLFVBQUEsR0FBQUMsZ0ZBQUEs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TSxDQUFRLENBQUMsZUFDckV2QiwwREFBQTtNQUFNaUUsU0FBUyxFQUFDO0lBQVksR0FBRXZELG1EQUFFLENBQUNvQixXQUFXLEVBQUUsTUFBTSxDQUFRLENBQUMsRUFDNUQsQ0FBQ2lCLGdCQUFnQixDQUFDMkIsYUFBYSxJQUFJN0MsT0FBTyxpQkFDdkM3QiwwREFBQTtNQUFHMkUsSUFBSSxFQUFFOUMsT0FBUTtNQUFDK0MsTUFBTSxFQUFDLFFBQVE7TUFBQ0MsR0FBRyxFQUFDLHFCQUFxQjtNQUFDWixTQUFTLEVBQUMsZ0JBQWdCO01BQUNHLEtBQUssRUFBRTtRQUFFYyxLQUFLLEVBQUUsU0FBUztRQUFFSixjQUFjLEVBQUU7TUFBTztJQUFFLGdCQUN2STlFLDBEQUFBLENBQUNRLG9EQUFRO01BQUM0RCxLQUFLLEVBQUU7UUFBRWMsS0FBSyxFQUFFLFNBQVM7UUFBRUMsS0FBSyxFQUFFLE1BQU07UUFBRUMsTUFBTSxFQUFFLE1BQU07UUFBRUMsV0FBVyxFQUFFO01BQU07SUFBRSxDQUFFLENBQUMsRUFDM0YzRSxtREFBRSxDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FDakMsQ0FFTixDQUNSO0lBQ0Q0RSxTQUFTLEVBQUMsUUFBUTtJQUNsQi9ELEtBQUssRUFBQyxFQUFFO0lBQ1JnRSxRQUFRLEVBQUUsQ0FDTixPQUFPLENBQ1Q7SUFDRkMsT0FBTyxFQUFDLE1BQU07SUFDZGhCLElBQUksRUFBQztFQUFJLGdCQUVUeEUsMERBQUEsQ0FBQ08sb0RBQVE7SUFBQzBELFNBQVMsRUFBQyxTQUFTO0lBQUNPLElBQUksRUFBRSxFQUFHO0lBQUNVLEtBQUssRUFBQztFQUFTLENBQUUsQ0FDcEQsQ0FDUixDQUVSLENBQ0osQ0FDRSxDQUFDO0FBRXBCLENBQUM7QUFFRCwrREFBZWxFLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vc3JjL0NvbXBvbmVudHMvRGFzaGJvYXJkL1dpZGdldEl0ZW0uanN4PzkxMDMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENvbnRhaW5lciwgU3dpdGNoLCBUb29sdGlwLCBTa2VsZXRvbiB9IGZyb20gXCJAYnNmL2ZvcmNlLXVpXCI7XG5pbXBvcnQgeyBJbmZvSWNvbiwgRmlsZVRleHQgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuaW1wb3J0IGFwaUZldGNoIGZyb20gJ0B3b3JkcHJlc3MvYXBpLWZldGNoJztcbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuLy8gQ3JlYXRlIGEgcXVldWUgdG8gbWFuYWdlIEFKQVggcmVxdWVzdHNcbmNvbnN0IHJlcXVlc3RRdWV1ZSA9IFtdO1xuXG5jb25zdCBwcm9jZXNzUXVldWUgPSAoKSA9PiB7XG4gICAgaWYgKHJlcXVlc3RRdWV1ZS5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgIC8vIFRha2UgdGhlIGZpcnN0IGl0ZW0gZnJvbSB0aGUgcXVldWUgYW5kIHJ1biBpdFxuICAgIGNvbnN0IGN1cnJlbnRSZXF1ZXN0ID0gcmVxdWVzdFF1ZXVlLnNoaWZ0KCk7XG4gICAgY3VycmVudFJlcXVlc3QoKTtcbn07XG5cbmNvbnN0IFdpZGdldEl0ZW0gPSAoe1xuICAgIHdpZGdldCxcbiAgICB1cGRhdGVDb3VudGVyLFxuICAgIHNob3dUb29sdGlwXG59KSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgICBpZCxcbiAgICAgICAgaWNvbixcbiAgICAgICAgdGl0bGUsXG4gICAgICAgIGluZm9UZXh0LFxuICAgICAgICBpc19wcm8sXG4gICAgICAgIGlzX2FjdGl2ZSxcbiAgICAgICAgc2x1ZyxcbiAgICAgICAgZGVtb191cmwsXG4gICAgICAgIGRvY191cmwsXG4gICAgICAgIGRlc2NyaXB0aW9uXG4gICAgfSA9IHdpZGdldDtcblxuICAgIC8vIFRyYWNrIHRoZSBhY3RpdmUgc3RhdGUgb2YgdGhlIHdpZGdldCB1c2luZyBSZWFjdCBzdGF0ZVxuICAgIGNvbnN0IFtpc0FjdGl2ZSwgc2V0SXNBY3RpdmVdID0gdXNlU3RhdGUod2lkZ2V0LmlzX2FjdGl2ZSk7XG4gICAgY29uc3QgW2lzTG9hZGluZywgc2V0SXNMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIFVwZGF0ZSBsb2NhbCBzdGF0ZSB3aGVuIHRoZSB3aWRnZXQgcHJvcCBjaGFuZ2VzXG4gICAgICAgIHNldElzQWN0aXZlKHdpZGdldC5pc19hY3RpdmUpO1xuICAgIH0sIFt3aWRnZXQuaXNfYWN0aXZlLCB1cGRhdGVDb3VudGVyXSk7XG5cbiAgICBjb25zdCBhcGlDYWxsID0gKGFjdGl2YXRlV2lkZ2V0KSA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IGFjdGl2YXRlV2lkZ2V0ID8gJ3VhZWxfZGVhY3RpdmF0ZV93aWRnZXQnIDogJ3VhZWxfYWN0aXZhdGVfd2lkZ2V0JztcblxuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyB3aW5kb3cuRm9ybURhdGEoKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdhY3Rpb24nLCBhY3Rpb24pO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ25vbmNlJywgdWFlbFNldHRpbmdzRGF0YS5hamF4X25vbmNlKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdtb2R1bGVfaWQnLCBpZCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnaXNfcHJvJywgaXNfcHJvKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IGFwaUZldGNoKHtcbiAgICAgICAgICAgICAgICB1cmw6IHVhZWxTZXR0aW5nc0RhdGEuYWpheF91cmwsXG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgIHNldElzQWN0aXZlKGlzQWN0aXZlKTsgIC8vIFVwZGF0ZSB0aGUgYWN0aXZlIHN0YXRlIGFmdGVyIHRoZSByZXF1ZXN0XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnQUpBWCByZXF1ZXN0IGZhaWxlZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiRXJyb3IgZHVyaW5nIEFKQVggcmVxdWVzdFwiKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7ICAvLyBBbHdheXMgc3RvcCB0aGUgbG9hZGluZyBzcGlubmVyXG4gICAgICAgICAgICBwcm9jZXNzUXVldWUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZVN3aXRjaENoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgaWYgKGlzTG9hZGluZykgcmV0dXJuO1xuXG4gICAgICAgIHNldElzTG9hZGluZyh0cnVlKTtcblxuICAgICAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgICAgICAgIC8vIEFkZCB0aGUgcmVxdWVzdCB0byB0aGUgcXVldWVcbiAgICAgICAgICAgIHNldElzQWN0aXZlKGZhbHNlKTtcbiAgICAgICAgICAgIHJlcXVlc3RRdWV1ZS5wdXNoKCgpID0+IGFwaUNhbGwoaXNBY3RpdmUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEFkZCB0aGUgcmVxdWVzdCB0byB0aGUgcXVldWVcbiAgICAgICAgICAgIHNldElzQWN0aXZlKHRydWUpO1xuICAgICAgICAgICAgcmVxdWVzdFF1ZXVlLnB1c2goKCkgPT4gYXBpQ2FsbChpc0FjdGl2ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXF1ZXN0UXVldWUubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAvLyBTdGFydCBwcm9jZXNzaW5nIHRoZSBxdWV1ZSBpZiBubyBvdGhlciByZXF1ZXN0IGlzIGJlaW5nIHByb2Nlc3NlZFxuICAgICAgICAgICAgcHJvY2Vzc1F1ZXVlKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPENvbnRhaW5lciBhbGlnbj1cImNlbnRlclwiXG4gICAgICAgICAgICBjb250YWluZXJUeXBlPVwiZmxleFwiXG4gICAgICAgICAgICBkaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAganVzdGlmeT1cImJldHdlZW5cIlxuICAgICAgICAgICAgZ2FwPVwiXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiB3LWZ1bGwnPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgaC0xMCB3LTEwIG1iLTUgJHtpY29uPy5wcm9wc31gfSBzdHlsZT17eyBmb250U2l6ZTogJzIycHgnIH19PlxuICAgICAgICAgICAgICAgICAgICB7aWNvbn1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC0yJyBzdHlsZT17eyBtYXJnaW5Cb3R0b206ICcxNXB4JyB9fT5cbiAgICAgICAgICAgICAgICAgICAgPFN3aXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVN3aXRjaENoYW5nZX0gLy8gVXBkYXRlZCB0byB1c2UgdGhlIG5ldyBmdW5jdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nc20nXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17aXNBY3RpdmV9XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1YWVsLXJlbW92ZS1yaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nZmxleCBmbGV4LWNvbCB3LWZ1bGwnPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0ndGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXRleHQtcHJpbWFyeSBwdC0zIG0tMCBwYi0xJz57X18odGl0bGUsICd1YWVsJyl9PC9wPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsJz5cbiAgICAgICAgICAgICAgICAgICAgeyF1YWVsU2V0dGluZ3NEYXRhLmhpZGVfc2V0dGluZ3MgJiYgZGVtb191cmwgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj17ZGVtb191cmx9IHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiBjbGFzc05hbWU9J3RleHQtc20gdGV4dC10ZXh0LXRlcnRpYXJ5IG0tMCBtYi0xIHVhZWwtcmVtb3ZlLXJpbmcnIHN0eWxlPXt7IHRleHREZWNvcmF0aW9uOiAnbm9uZScsIGxpbmVIZWlnaHQ6ICcxLjVyZW0nIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfXygnVmlldyBEZW1vJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAge3Nob3dUb29sdGlwICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHshZGVtb191cmwgPyAndWFlLXRvb2x0aXAtd3JhcCcgOiAnJ31gfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJvd1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdmb250LXNlbWlib2xkIGJsb2NrIG1iLTInPntfXyh0aXRsZSwgJ3VhZWwnKX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdibG9jayBtYi0yJz57X18oZGVzY3JpcHRpb24sICd1YWVsJyl9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHshdWFlbFNldHRpbmdzRGF0YS5oaWRlX3NldHRpbmdzICYmIGRvY191cmwgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPXtkb2NfdXJsfSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgY2xhc3NOYW1lPSdjdXJzb3ItcG9pbnRlcicgc3R5bGU9e3sgY29sb3I6ICcjQzhBRUZGJywgdGV4dERlY29yYXRpb246ICdub25lJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlVGV4dCBzdHlsZT17eyBjb2xvcjogJyNDOEFFRkYnLCB3aWR0aDogJzExcHgnLCBoZWlnaHQ6ICcxMXB4JywgbWFyZ2luUmlnaHQ6ICczcHgnIH19IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ1JlYWQgRG9jdW1lbnRhdGlvbicsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2Vycz17W1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsaWNrJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZGFya1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5mb0ljb24gY2xhc3NOYW1lPSdoLTUgdy01JyBzaXplPXsxOH0gY29sb3I9XCIjQTBBNUIyXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IFdpZGdldEl0ZW1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiQ29udGFpbmVyIiwiU3dpdGNoIiwiVG9vbHRpcCIsIlNrZWxldG9uIiwiSW5mb0ljb24iLCJGaWxlVGV4dCIsImFwaUZldGNoIiwiX18iLCJyZXF1ZXN0UXVldWUiLCJwcm9jZXNzUXVldWUiLCJsZW5ndGgiLCJjdXJyZW50UmVxdWVzdCIsInNoaWZ0IiwiV2lkZ2V0SXRlbSIsIl9yZWYiLCJ3aWRnZXQiLCJ1cGRhdGVDb3VudGVyIiwic2hvd1Rvb2x0aXAiLCJpZCIsImljb24iLCJ0aXRsZSIsImluZm9UZXh0IiwiaXNfcHJvIiwiaXNfYWN0aXZlIiwic2x1ZyIsImRlbW9fdXJsIiwiZG9jX3VybCIsImRlc2NyaXB0aW9uIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaXNBY3RpdmUiLCJzZXRJc0FjdGl2ZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaXNMb2FkaW5nIiwic2V0SXNMb2FkaW5nIiwiYXBpQ2FsbCIsImFjdGl2YXRlV2lkZ2V0IiwiYWN0aW9uIiwiZm9ybURhdGEiLCJ3aW5kb3ciLCJGb3JtRGF0YSIsImFwcGVuZCIsInVhZWxTZXR0aW5nc0RhdGEiLCJhamF4X25vbmNlIiwiZGF0YSIsInVybCIsImFqYXhfdXJsIiwibWV0aG9kIiwiYm9keSIsInN1Y2Nlc3MiLCJlcnJvciIsImVyciIsImhhbmRsZVN3aXRjaENoYW5nZSIsInB1c2giLCJjcmVhdGVFbGVtZW50IiwiYWxpZ24iLCJjb250YWluZXJUeXBlIiwiZGlyZWN0aW9uIiwianVzdGlmeSIsImdhcCIsImNsYXNzTmFtZSIsImNvbmNhdCIsInByb3BzIiwic3R5bGUiLCJmb250U2l6ZSIsIm1hcmdpbkJvdHRvbSIsIm9uQ2hhbmdlIiwic2l6ZSIsInZhbHVlIiwiaGlkZV9zZXR0aW5ncyIsImhyZWYiLCJ0YXJnZXQiLCJyZWwiLCJ0ZXh0RGVjb3JhdGlvbiIsImxpbmVIZWlnaHQiLCJhcnJvdyIsImNvbnRlbnQiLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0IiwibWFyZ2luUmlnaHQiLCJwbGFjZW1lbnQiLCJ0cmlnZ2VycyIsInZhcmlhbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/Components/Dashboard/WidgetItem.jsx\n");
/***/ }),
/***/ "./src/Components/Dashboard/Widgets.jsx":
/*!**********************************************!*\
!*** ./src/Components/Dashboard/Widgets.jsx ***!
\**********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _WidgetItem__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./WidgetItem */ \"./src/Components/Dashboard/WidgetItem.jsx\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/arrow-up-right.js\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/api-fetch */ \"@wordpress/api-fetch\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _admin_settings_routes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../admin/settings/routes */ \"./src/admin/settings/routes.js\");\n/* harmony import */ var _router_index__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../router/index */ \"./src/router/index.js\");\n\n\n\n\n\n\n\n\n\n\nvar Widgets = function Widgets() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(null),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useState, 2),\n allWidgetsData = _useState2[0],\n setAllWidgetsData = _useState2[1]; // Initialize state.\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(true),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useState3, 2),\n loading = _useState4[0],\n setLoading = _useState4[1];\n var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(true),\n _useState6 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useState5, 2),\n showTooltip = _useState6[0],\n setShowTooltip = _useState6[1]; // Add state for showTooltip\n\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(function () {\n var fetchSettings = function fetchSettings() {\n setLoading(true);\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_5___default()({\n path: '/uael/v1/widgets',\n headers: {\n 'Content-Type': 'application/json',\n 'X-WP-Nonce': uaelSettingsData.uael_nonce_action // Use the correct nonce\n }\n }).then(function (data) {\n var widgetsData = convertToWidgetsArray(data);\n setAllWidgetsData(widgetsData);\n setLoading(false); // Stop loading\n })[\"catch\"](function (err) {\n setLoading(false); // Stop loading\n });\n };\n fetchSettings();\n }, []);\n function convertToWidgetsArray(data) {\n var widgets = [];\n for (var key in data) {\n if (data !== null && data !== void 0 && data.hasOwnProperty(key)) {\n var widget = data[key];\n widgets.push({\n id: key,\n // Using the key as 'widgetTitle'\n slug: widget.slug,\n title: widget.title,\n keywords: widget.keywords,\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"i\", {\n className: widget.icon\n }),\n title_url: widget.title_url,\n \"default\": widget[\"default\"],\n doc_url: widget.doc_url,\n is_pro: widget.is_pro,\n description: widget.description,\n is_active: widget.is_activate !== undefined ? widget.is_activate : true,\n // Check if is_activate is set\n demo_url: widget.demo_url !== undefined ? widget.demo_url : widget.doc_url\n });\n }\n }\n return widgets;\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"rounded-lg bg-white w-full mb-6\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"flex items-center justify-between p-4\",\n style: {\n paddingBottom: '0'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"p\", {\n className: \"m-0 text-sm font-semibold text-text-primary\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Popular Widgets & Features', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"flex items-center gap-x-2 mr-7\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_router_index__WEBPACK_IMPORTED_MODULE_8__.Link, {\n to: _admin_settings_routes__WEBPACK_IMPORTED_MODULE_7__.routes.widgets.path,\n className: \"text-sm text-text-primary cursor-pointer\",\n style: {\n lineHeight: '1rem'\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('View All', 'uael'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"ml-1\",\n size: 13\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"flex bg-black flex-col rounded-lg p-4\"\n }, loading ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container, {\n align: \"stretch\",\n className: \"p-2 gap-1.5 grid grid-cols-2 md:grid-cols-4\",\n style: {\n backgroundColor: \"#F9FAFB\"\n },\n containerType: \"grid\",\n gap: \"\",\n justify: \"start\"\n }, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Array(20)).map(function (_, index) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n key: index,\n alignSelf: \"auto\",\n className: \"text-wrap rounded-md shadow-container-item bg-background-primary p-6 space-y-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Skeleton, {\n className: \"w-12 h-2 rounded-md\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Skeleton, {\n className: \"w-16 h-2 rounded-md\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Skeleton, {\n className: \"w-12 h-2 rounded-md\"\n }));\n })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container, {\n align: \"stretch\",\n className: \"p-2 gap-1.5 grid grid-cols-2 md:grid-cols-4\",\n style: {\n backgroundColor: \"#F9FAFB\"\n },\n containerType: \"grid\",\n gap: \"\",\n justify: \"start\"\n }, allWidgetsData === null || allWidgetsData === void 0 ? void 0 : allWidgetsData.slice(0, 16).map(function (widget) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n key: widget.id,\n alignSelf: \"auto\",\n className: \"text-wrap rounded-md shadow-container-item bg-background-primary p-4\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_WidgetItem__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n widget: widget,\n showTooltip: showTooltip,\n key: widget.id,\n updateCounter: 0\n }));\n }))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Widgets);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9EYXNoYm9hcmQvV2lkZ2V0cy5qc3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBbUQ7QUFDbEM7QUFDbUM7QUFDUjtBQUNBO0FBQ1A7QUFDdEI7QUFDMkI7QUFFMUMsSUFBTVcsT0FBTyxHQUFHLFNBQVZBLE9BQU9BLENBQUEsRUFBUztFQUVsQixJQUFBQyxTQUFBLEdBQTRDWCwrQ0FBUSxDQUFDLElBQUksQ0FBQztJQUFBWSxVQUFBLEdBQUFDLGdGQUFBLENBQUFGLFNBQUE7SUFBbkRHLGNBQWMsR0FBQUYsVUFBQTtJQUFFRyxpQkFBaUIsR0FBQUgsVUFBQSxJQUFtQixDQUFDO0VBQzVELElBQUFJLFVBQUEsR0FBOEJoQiwrQ0FBUSxDQUFDLElBQUksQ0FBQztJQUFBaUIsVUFBQSxHQUFBSixnRkFBQSxDQUFBRyxVQUFBO0lBQXJDRSxPQUFPLEdBQUFELFVBQUE7SUFBRUUsVUFBVSxHQUFBRixVQUFBO0VBQzFCLElBQUFHLFVBQUEsR0FBc0NwQiwrQ0FBUSxDQUFDLElBQUksQ0FBQztJQUFBcUIsVUFBQSxHQUFBUixnRkFBQSxDQUFBTyxVQUFBO0lBQTdDRSxXQUFXLEdBQUFELFVBQUE7SUFBRUUsY0FBYyxHQUFBRixVQUFBLElBQW1CLENBQUM7O0VBRXREcEIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ1osSUFBTXVCLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBQSxFQUFTO01BQ3hCTCxVQUFVLENBQUMsSUFBSSxDQUFDO01BQ2hCYiwyREFBUSxDQUFDO1FBQ0xtQixJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCQyxPQUFPLEVBQUU7VUFDTCxjQUFjLEVBQUUsa0JBQWtCO1VBQ2xDLFlBQVksRUFBRUMsZ0JBQWdCLENBQUNDLGlCQUFpQixDQUFFO1FBQ3REO01BQ0osQ0FBQyxDQUFDLENBQ0dDLElBQUksQ0FBQyxVQUFDQyxJQUFJLEVBQUs7UUFDWixJQUFNQyxXQUFXLEdBQUdDLHFCQUFxQixDQUFDRixJQUFJLENBQUM7UUFD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LENBQUUsQ0FDN0UsQ0FBQztFQUFBLENBQ3BCLENBQ00sQ0FFZCxDQUNKLENBQUM7QUFFZCxDQUFDO0FBRUQsK0RBQWU5RCxPQUFPIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL3NyYy9Db21wb25lbnRzL0Rhc2hib2FyZC9XaWRnZXRzLmpzeD83NjAxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFdpZGdldEl0ZW0gZnJvbSAnLi9XaWRnZXRJdGVtJ1xuaW1wb3J0IHsgQ29udGFpbmVyLCBTa2VsZXRvbiB9IGZyb20gXCJAYnNmL2ZvcmNlLXVpXCI7XG5pbXBvcnQgeyBBcnJvd1VwUmlnaHQgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuaW1wb3J0IGFwaUZldGNoIGZyb20gJ0B3b3JkcHJlc3MvYXBpLWZldGNoJztcbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcbmltcG9ydCB7IHJvdXRlcyB9IGZyb20gJy4uLy4uL2FkbWluL3NldHRpbmdzL3JvdXRlcyc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcIi4uLy4uL3JvdXRlci9pbmRleFwiO1xuXG5jb25zdCBXaWRnZXRzID0gKCkgPT4ge1xuXG4gICAgY29uc3QgW2FsbFdpZGdldHNEYXRhLCBzZXRBbGxXaWRnZXRzRGF0YV0gPSB1c2VTdGF0ZShudWxsKTsgLy8gSW5pdGlhbGl6ZSBzdGF0ZS5cbiAgICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBbc2hvd1Rvb2x0aXAsIHNldFNob3dUb29sdGlwXSA9IHVzZVN0YXRlKHRydWUpOyAvLyBBZGQgc3RhdGUgZm9yIHNob3dUb29sdGlwXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBmZXRjaFNldHRpbmdzID0gKCkgPT4ge1xuICAgICAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIGFwaUZldGNoKHtcbiAgICAgICAgICAgICAgICBwYXRoOiAnL3VhZWwvdjEvd2lkZ2V0cycsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAnWC1XUC1Ob25jZSc6IHVhZWxTZXR0aW5nc0RhdGEudWFlbF9ub25jZV9hY3Rpb24sIC8vIFVzZSB0aGUgY29ycmVjdCBub25jZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdpZGdldHNEYXRhID0gY29udmVydFRvV2lkZ2V0c0FycmF5KGRhdGEpXG4gICAgICAgICAgICAgICAgICAgIHNldEFsbFdpZGdldHNEYXRhKHdpZGdldHNEYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7IC8vIFN0b3AgbG9hZGluZ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7IC8vIFN0b3AgbG9hZGluZ1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGZldGNoU2V0dGluZ3MoKTtcbiAgICB9LCBbXSk7XG5cbiAgICBmdW5jdGlvbiBjb252ZXJ0VG9XaWRnZXRzQXJyYXkoZGF0YSkge1xuICAgICAgICBjb25zdCB3aWRnZXRzID0gW107XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcbiAgICAgICAgICAgIGlmIChkYXRhPy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2lkZ2V0ID0gZGF0YVtrZXldO1xuICAgICAgICAgICAgICAgIHdpZGdldHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBrZXksIC8vIFVzaW5nIHRoZSBrZXkgYXMgJ3dpZGdldFRpdGxlJ1xuICAgICAgICAgICAgICAgICAgICBzbHVnOiB3aWRnZXQuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHdpZGdldC50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAga2V5d29yZHM6IHdpZGdldC5rZXl3b3JkcyxcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogPGkgY2xhc3NOYW1lPXt3aWRnZXQuaWNvbn0+PC9pPixcbiAgICAgICAgICAgICAgICAgICAgdGl0bGVfdXJsOiB3aWRnZXQudGl0bGVfdXJsLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB3aWRnZXQuZGVmYXVsdCxcbiAgICAgICAgICAgICAgICAgICAgZG9jX3VybDogd2lkZ2V0LmRvY191cmwsXG4gICAgICAgICAgICAgICAgICAgIGlzX3Bybzogd2lkZ2V0LmlzX3BybyxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHdpZGdldC5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgaXNfYWN0aXZlOiB3aWRnZXQuaXNfYWN0aXZhdGUgIT09IHVuZGVmaW5lZCA/IHdpZGdldC5pc19hY3RpdmF0ZSA6IHRydWUsIC8vIENoZWNrIGlmIGlzX2FjdGl2YXRlIGlzIHNldFxuICAgICAgICAgICAgICAgICAgICBkZW1vX3VybDogd2lkZ2V0LmRlbW9fdXJsICE9PSB1bmRlZmluZWQgPyB3aWRnZXQuZGVtb191cmwgOiB3aWRnZXQuZG9jX3VybFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHdpZGdldHM7XG5cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncm91bmRlZC1sZyBiZy13aGl0ZSB3LWZ1bGwgbWItNic+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtNCcgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tOiAnMCdcbiAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0nbS0wIHRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXRleHQtcHJpbWFyeSc+e19fKCdQb3B1bGFyIFdpZGdldHMgJiBGZWF0dXJlcycsICd1YWVsJyl9PC9wPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC0yIG1yLTcnPlxuICAgICAgICAgICAgICAgICAgICA8TGluayB0bz17cm91dGVzLndpZGdldHMucGF0aH0gY2xhc3NOYW1lPSd0ZXh0LXNtIHRleHQtdGV4dC1wcmltYXJ5IGN1cnNvci1wb2ludGVyJyBzdHlsZT17eyBsaW5lSGVpZ2h0OiAnMXJlbScgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7X18oJ1ZpZXcgQWxsJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJvd1VwUmlnaHQgY2xhc3NOYW1lPSdtbC0xJyBzaXplPXsxM30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nZmxleCBiZy1ibGFjayBmbGV4LWNvbCByb3VuZGVkLWxnIHAtNCc+XG4gICAgICAgICAgICAgICAge2xvYWRpbmcgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduPVwic3RyZXRjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwLTIgZ2FwLTEuNSBncmlkIGdyaWQtY29scy0yIG1kOmdyaWQtY29scy00XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcIiNGOUZBRkJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclR5cGU9XCJncmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdhcD1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5PVwic3RhcnRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Wy4uLkFycmF5KDIwKV0ubWFwKChfLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnblNlbGY9XCJhdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC13cmFwIHJvdW5kZWQtbWQgc2hhZG93LWNvbnRhaW5lci1pdGVtIGJnLWJhY2tncm91bmQtcHJpbWFyeSBwLTYgc3BhY2UteS0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTa2VsZXRvbiBjbGFzc05hbWU9J3ctMTIgaC0yIHJvdW5kZWQtbWQnIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTa2VsZXRvbiBjbGFzc05hbWU9J3ctMTYgaC0yIHJvdW5kZWQtbWQnIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTa2VsZXRvbiBjbGFzc05hbWU9J3ctMTIgaC0yIHJvdW5kZWQtbWQnIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXIuSXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbj1cInN0cmV0Y2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicC0yIGdhcC0xLjUgZ3JpZCBncmlkLWNvbHMtMiBtZDpncmlkLWNvbHMtNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjRjlGQUZCXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJUeXBlPVwiZ3JpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBnYXA9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeT1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge2FsbFdpZGdldHNEYXRhPy5zbGljZSgwLCAxNikubWFwKCh3aWRnZXQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyLkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt3aWRnZXQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduU2VsZj1cImF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXdyYXAgcm91bmRlZC1tZCBzaGFkb3ctY29udGFpbmVyLWl0ZW0gYmctYmFja2dyb3VuZC1wcmltYXJ5IHAtNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8V2lkZ2V0SXRlbSB3aWRnZXQ9e3dpZGdldH0gc2hvd1Rvb2x0aXA9e3Nob3dUb29sdGlwfSBrZXk9e3dpZGdldC5pZH0gdXBkYXRlQ291bnRlcj17MH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBXaWRnZXRzXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIldpZGdldEl0ZW0iLCJDb250YWluZXIiLCJTa2VsZXRvbiIsIkFycm93VXBSaWdodCIsImFwaUZldGNoIiwiX18iLCJyb3V0ZXMiLCJMaW5rIiwiV2lkZ2V0cyIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFsbFdpZGdldHNEYXRhIiwic2V0QWxsV2lkZ2V0c0RhdGEiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzaG93VG9vbHRpcCIsInNldFNob3dUb29sdGlwIiwiZmV0Y2hTZXR0aW5ncyIsInBhdGgiLCJoZWFkZXJzIiwidWFlbFNldHRpbmdzRGF0YSIsInVhZWxfbm9uY2VfYWN0aW9uIiwidGhlbiIsImRhdGEiLCJ3aWRnZXRzRGF0YSIsImNvbnZlcnRUb1dpZGdldHNBcnJheSIsImVyciIsIndpZGdldHMiLCJrZXkiLCJoYXNPd25Qcm9wZXJ0eSIsIndpZGdldCIsInB1c2giLCJpZCIsInNsdWciLCJ0aXRsZSIsImtleXdvcmRzIiwiaWNvbiIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ0aXRsZV91cmwiLCJkb2NfdXJsIiwiaXNfcHJvIiwiZGVzY3JpcHRpb24iLCJpc19hY3RpdmUiLCJpc19hY3RpdmF0ZSIsInVuZGVmaW5lZCIsImRlbW9fdXJsIiwic3R5bGUiLCJwYWRkaW5nQm90dG9tIiwidG8iLCJsaW5lSGVpZ2h0Iiwic2l6ZSIsImFsaWduIiwiYmFja2dyb3VuZENvbG9yIiwiY29udGFpbmVyVHlwZSIsImdhcCIsImp1c3RpZnkiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJBcnJheSIsIm1hcCIsIl8iLCJpbmRleCIsIkl0ZW0iLCJhbGlnblNlbGYiLCJzbGljZSIsInVwZGF0ZUNvdW50ZXIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/Components/Dashboard/Widgets.jsx\n");
/***/ }),
/***/ "./src/Components/Dashboard/WidgetsOnboarding.jsx":
/*!********************************************************!*\
!*** ./src/Components/Dashboard/WidgetsOnboarding.jsx ***!
\********************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"@babel/runtime/regenerator\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/api-fetch */ \"@wordpress/api-fetch\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/chevron-left.js\");\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/arrow-right.js\");\n/* harmony import */ var _router_index__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../router/index */ \"./src/router/index.js\");\n/* harmony import */ var _admin_settings_routes__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../admin/settings/routes */ \"./src/admin/settings/routes.js\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _OnboardingWidgets__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./OnboardingWidgets */ \"./src/Components/Dashboard/OnboardingWidgets.jsx\");\n\n\n\n\nfunction 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; }\nfunction _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) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(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\n\n\n\n\n\n\n\n\nvar WidgetsOnboarding = function WidgetsOnboarding(_ref) {\n var widgets = _ref.widgets,\n updateCounter = _ref.updateCounter,\n setCurrentStep = _ref.setCurrentStep;\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)([]),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState, 2),\n allWidgetsData = _useState2[0],\n setAllWidgetsData = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(false),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState3, 2),\n isLoading = _useState4[0],\n setIsLoading = _useState4[1];\n\n // Queue for managing requests\n var requestQueue = [];\n var processQueue = /*#__PURE__*/function () {\n var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee() {\n var currentRequest;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!(requestQueue.length > 0)) {\n _context.next = 6;\n break;\n }\n currentRequest = requestQueue.shift();\n _context.next = 4;\n return currentRequest();\n case 4:\n _context.next = 0;\n break;\n case 6:\n setIsLoading(false);\n case 7:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function processQueue() {\n return _ref2.apply(this, arguments);\n };\n }();\n (0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () {\n var fetchSettings = /*#__PURE__*/function () {\n var _ref3 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee2() {\n var data;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n setIsLoading(true);\n _context2.next = 4;\n return _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_7___default()({\n path: '/uael/v1/widgets',\n headers: {\n 'Content-Type': 'application/json',\n 'X-WP-Nonce': uaelSettingsData.uael_nonce_action\n }\n });\n case 4:\n data = _context2.sent;\n setAllWidgetsData(convertToWidgetsArray(data));\n _context2.next = 11;\n break;\n case 8:\n _context2.prev = 8;\n _context2.t0 = _context2[\"catch\"](0);\n console.error('Failed to fetch widgets:', _context2.t0);\n case 11:\n _context2.prev = 11;\n setIsLoading(false);\n return _context2.finish(11);\n case 14:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 8, 11, 14]]);\n }));\n return function fetchSettings() {\n return _ref3.apply(this, arguments);\n };\n }();\n fetchSettings();\n }, [updateCounter]);\n var apiCall = /*#__PURE__*/function () {\n var _ref4 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee3(widget, activateWidget) {\n var formData, response;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n formData = new window.FormData();\n formData.append('action', activateWidget ? 'uael_activate_widget' : 'uael_deactivate_widget');\n formData.append('nonce', uael_admin_data.nonce);\n formData.append('module_id', widget.id);\n formData.append('is_pro', widget.is_pro);\n _context3.next = 8;\n return _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_7___default()({\n url: uael_admin_data.ajax_url,\n method: 'POST',\n body: formData\n });\n case 8:\n response = _context3.sent;\n if (response.success) {\n widget.is_active = activateWidget;\n setAllWidgetsData((0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(allWidgetsData));\n }\n _context3.next = 15;\n break;\n case 12:\n _context3.prev = 12;\n _context3.t0 = _context3[\"catch\"](0);\n console.error('API request failed:', _context3.t0);\n case 15:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[0, 12]]);\n }));\n return function apiCall(_x, _x2) {\n return _ref4.apply(this, arguments);\n };\n }();\n var handleSwitchChange = function handleSwitchChange(widget) {\n if (isLoading) return;\n\n // Optimistically update the state\n var updatedWidgets = allWidgetsData.map(function (w) {\n return w.id === widget.id ? _objectSpread(_objectSpread({}, w), {}, {\n is_active: !w.is_active\n }) : w;\n });\n setAllWidgetsData(updatedWidgets);\n\n // Add the API call to the request queue\n requestQueue.push(function () {\n return apiCall(widget, !widget.is_active);\n });\n if (requestQueue.length === 1) {\n processQueue();\n }\n };\n var convertToWidgetsArray = function convertToWidgetsArray(data) {\n return Object.entries(data).map(function (_ref5) {\n var _ref6 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_ref5, 2),\n key = _ref6[0],\n widget = _ref6[1];\n return _objectSpread(_objectSpread({\n id: key\n }, widget), {}, {\n is_active: widget.is_activate !== undefined ? widget.is_activate : true\n });\n });\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex flex-col gap-4\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"bg-background-secondary uael-min-700\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"form\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"md:w-[47rem] box-border mx-auto space-y-4\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_OnboardingWidgets__WEBPACK_IMPORTED_MODULE_11__[\"default\"], null)))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex justify-between items-center pt-1 px-4 gap-4 uael-onboarding-bottom\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Button, {\n className: \"flex items-center gap-1 uael-remove-ring\",\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null),\n variant: \"outline\",\n onClick: function onClick() {\n return setCurrentStep(1);\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_10__.__)(\"Back\", \"header-footer-elementor\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex justify-end items-center gap-3\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Button, {\n className: \"uael-remove-ring\",\n variant: \"ghost\",\n onClick: function onClick() {\n return setCurrentStep(3);\n }\n }, ' ', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_10__.__)(\"Skip\", \"header-footer-elementor\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Button, {\n className: \"flex items-center gap-1 uael-remove-ring\",\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_13__[\"default\"], null),\n iconPosition: \"right\",\n style: {\n backgroundColor: \"#6005FF\",\n transition: \"background-color 0.3s ease\",\n padding: \"12px\"\n },\n onClick: function onClick() {\n return setCurrentStep(3);\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_10__.__)(\" Continue Setup\", \"header-footer-elementor\")))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (WidgetsOnboarding);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9EYXNoYm9hcmQvV2lkZ2V0c09uYm9hcmRpbmcuanN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFtRDtBQUNaO0FBQ0s7QUFDeUI7QUFDM0I7QUFDVztBQUNoQjtBQUNiO0FBRXhCLElBQU1ZLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUFDLElBQUEsRUFBbUQ7RUFBQSxJQUE3Q0MsT0FBTyxHQUFBRCxJQUFBLENBQVBDLE9BQU87SUFBRUMsYUFBYSxHQUFBRixJQUFBLENBQWJFLGFBQWE7SUFBRUMsY0FBYyxHQUFBSCxJQUFBLENBQWRHLGNBQWM7RUFDL0QsSUFBQUMsU0FBQSxHQUE0Q2hCLCtDQUFRLENBQUMsRUFBRSxDQUFDO0lBQUFpQixVQUFBLEdBQUFDLGdGQUFBLENBQUFGLFNBQUE7SUFBakRHLGNBQWMsR0FBQUYsVUFBQTtJQUFFRyxpQkFBaUIsR0FBQUgsVUFBQTtFQUN4QyxJQUFBSSxVQUFBLEdBQWtDckIsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXNCLFVBQUEsR0FBQUosZ0ZBQUEsQ0FBQUcsVUFBQTtJQUExQ0UsU0FBUyxHQUFBRCxVQUFBO0lBQUVFLFlBQVksR0FBQUYsVUFBQTs7RUFFOUI7RUFDQSxJQUFNRyxZQUFZLEdBQUcsRUFBRTtFQUV2QixJQUFNQyxZQUFZO0lBQUEsSUFBQUMsS0FBQSxHQUFBQyxtRkFBQSxjQUFBQyxzRUFBQSxDQUFHLFNBQUFFLFFBQUE7TUFBQSxJQUFBQyxjQUFBO01BQUEsT0FBQUgsc0VBQUEsVUFBQUssU0FBQUMsUUFBQTtRQUFBLGtCQUFBQSxRQUFBLENBQUFDLElBQUEsR0FBQUQsUUFBQSxDQUFBRSxJQUFBO1VBQUE7WUFBQSxNQUNWWixZQUFZLENBQUNhLE1BQU0sR0FBRyxDQUFDO2NBQUFILFFBQUEsQ0FBQUUsSUFBQTtjQUFBO1lBQUE7WUFDcEJMLGNBQWMsR0FBR1AsWUFBWSxDQUFDYyxLQUFLLENBQUMsQ0FBQztZQUFBSixR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QyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVF0RixjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQUE7RUFBQyxHQUVoQ04sb0RBQUUsQ0FBQyxNQUFNLEVBQUUseUJBQXlCLENBQ2pDLENBQUMsZUFDVFYsMERBQUE7SUFBS21HLFNBQVMsRUFBQztFQUFxQyxnQkFFaERuRywwREFBQSxDQUFDRyxpREFBTTtJQUNIZ0csU0FBUyxFQUFDLGtCQUFrQjtJQUM1QkUsT0FBTyxFQUFDLE9BQU87SUFDZkMsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRdEYsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUFBO0VBQUMsR0FFaEMsR0FBRyxFQUNITixvREFBRSxDQUFDLE1BQU0sRUFBRSx5QkFBeUIsQ0FDakMsQ0FBQyxlQUNUViwwREFBQSxDQUFDRyxpREFBTTtJQUNIZ0csU0FBUyxFQUFDLDBDQUEwQztJQUNwREMsSUFBSSxlQUFFcEcsMERBQUEsQ0FBQ08scURBQVUsTUFBRSxDQUFFO0lBQ3JCZ0csWUFBWSxFQUFDLE9BQU87SUFDcEJDLEtBQUssRUFBRTtNQUNIQyxlQUFlLEVBQUUsU0FBUztNQUMxQkMsVUFBVSxFQUFFLDRCQUE0QjtNQUN4Q0MsT0FBTyxFQUFFO0lBQ2IsQ0FBRTtJQUNGTCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtNQUFBLE9BQVF0RixjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQUE7RUFBQyxHQUVoQ04sb0RBQUUsQ0FBQyxpQkFBaUIsRUFBRSx5QkFBeUIsQ0FDNUMsQ0FDUCxDQUNKLENBQ0osQ0FBQztBQUVkLENBQUM7QUFFRCwrREFBZUUsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL3NyYy9Db21wb25lbnRzL0Rhc2hib2FyZC9XaWRnZXRzT25ib2FyZGluZy5qc3g/ZmJmMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gXCJAYnNmL2ZvcmNlLXVpXCI7XG5pbXBvcnQgYXBpRmV0Y2ggZnJvbSAnQHdvcmRwcmVzcy9hcGktZmV0Y2gnO1xuaW1wb3J0IHsgQ2hldnJvbkxlZnQsIENoZXZyb25SaWdodCwgQXJyb3dSaWdodCB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIjtcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwiLi4vLi4vcm91dGVyL2luZGV4XCI7XG5pbXBvcnQgeyByb3V0ZXMgfSBmcm9tIFwiLi4vLi4vYWRtaW4vc2V0dGluZ3Mvcm91dGVzXCI7XG5pbXBvcnQgeyBfXyB9IGZyb20gXCJAd29yZHByZXNzL2kxOG5cIjtcbmltcG9ydCBPbmJvYXJkaW5nV2lkZ2V0cyBmcm9tICcuL09uYm9hcmRpbmdXaWRnZXRzJztcblxuY29uc3QgV2lkZ2V0c09uYm9hcmRpbmcgPSAoeyB3aWRnZXRzLCB1cGRhdGVDb3VudGVyLCBzZXRDdXJyZW50U3RlcCB9KSA9PiB7XG4gICAgY29uc3QgW2FsbFdpZGdldHNEYXRhLCBzZXRBbGxXaWRnZXRzRGF0YV0gPSB1c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2lzTG9hZGluZywgc2V0SXNMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgIC8vIFF1ZXVlIGZvciBtYW5hZ2luZyByZXF1ZXN0c1xuICAgIGNvbnN0IHJlcXVlc3RRdWV1ZSA9IFtdO1xuXG4gICAgY29uc3QgcHJvY2Vzc1F1ZXVlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICB3aGlsZSAocmVxdWVzdFF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSZXF1ZXN0ID0gcmVxdWVzdFF1ZXVlLnNoaWZ0KCk7XG4gICAgICAgICAgICBhd2FpdCBjdXJyZW50UmVxdWVzdCgpO1xuICAgICAgICB9XG4gICAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZldGNoU2V0dGluZ3MgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHNldElzTG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgYXBpRmV0Y2goe1xuICAgICAgICAgICAgICAgICAgICBwYXRoOiAnL3VhZWwvdjEvd2lkZ2V0cycsXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAnWC1XUC1Ob25jZSc6IHVhZWxTZXR0aW5nc0RhdGEudWFlbF9ub25jZV9hY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgc2V0QWxsV2lkZ2V0c0RhdGEoY29udmVydFRvV2lkZ2V0c0FycmF5KGRhdGEpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGZldGNoIHdpZGdldHM6JywgZXJyb3IpO1xuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBmZXRjaFNldHRpbmdzKCk7XG4gICAgfSwgW3VwZGF0ZUNvdW50ZXJdKTtcblxuICAgIGNvbnN0IGFwaUNhbGwgPSBhc3luYyAod2lkZ2V0LCBhY3RpdmF0ZVdpZGdldCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgd2luZG93LkZvcm1EYXRhKCk7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2FjdGlvbicsIGFjdGl2YXRlV2lkZ2V0ID8gJ3VhZWxfYWN0aXZhdGVfd2lkZ2V0JyA6ICd1YWVsX2RlYWN0aXZhdGVfd2lkZ2V0Jyk7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ25vbmNlJywgdWFlbF9hZG1pbl9kYXRhLm5vbmNlKTtcbiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnbW9kdWxlX2lkJywgd2lkZ2V0LmlkKTtcbiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnaXNfcHJvJywgd2lkZ2V0LmlzX3Bybyk7XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpRmV0Y2goe1xuICAgICAgICAgICAgICAgIHVybDogdWFlbF9hZG1pbl9kYXRhLmFqYXhfdXJsLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgIGJvZHk6IGZvcm1EYXRhLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgd2lkZ2V0LmlzX2FjdGl2ZSA9IGFjdGl2YXRlV2lkZ2V0O1xuICAgICAgICAgICAgICAgIHNldEFsbFdpZGdldHNEYXRhKFsuLi5hbGxXaWRnZXRzRGF0YV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignQVBJIHJlcXVlc3QgZmFpbGVkOicsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTd2l0Y2hDaGFuZ2UgPSAod2lkZ2V0KSA9PiB7XG4gICAgICAgIGlmIChpc0xvYWRpbmcpIHJldHVybjtcblxuICAgICAgICAvLyBPcHRpbWlzdGljYWxseSB1cGRhdGUgdGhlIHN0YXRlXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRXaWRnZXRzID0gYWxsV2lkZ2V0c0RhdGEubWFwKHcgPT5cbiAgICAgICAgICAgIHcuaWQgPT09IHdpZGdldC5pZCA/IHsgLi4udywgaXNfYWN0aXZlOiAhdy5pc19hY3RpdmUgfSA6IHdcbiAgICAgICAgKTtcbiAgICAgICAgc2V0QWxsV2lkZ2V0c0RhdGEodXBkYXRlZFdpZGdldHMpO1xuXG4gICAgICAgIC8vIEFkZCB0aGUgQVBJIGNhbGwgdG8gdGhlIHJlcXVlc3QgcXVldWVcbiAgICAgICAgcmVxdWVzdFF1ZXVlLnB1c2goKCkgPT4gYXBpQ2FsbCh3aWRnZXQsICF3aWRnZXQuaXNfYWN0aXZlKSk7XG4gICAgICAgIGlmIChyZXF1ZXN0UXVldWUubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBwcm9jZXNzUXVldWUoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBjb252ZXJ0VG9XaWRnZXRzQXJyYXkgPSAoZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoZGF0YSkubWFwKChba2V5LCB3aWRnZXRdKSA9PiAoe1xuICAgICAgICAgICAgaWQ6IGtleSxcbiAgICAgICAgICAgIC4uLndpZGdldCxcbiAgICAgICAgICAgIGlzX2FjdGl2ZTogd2lkZ2V0LmlzX2FjdGl2YXRlICE9PSB1bmRlZmluZWQgPyB3aWRnZXQuaXNfYWN0aXZhdGUgOiB0cnVlLFxuICAgICAgICB9KSk7XG4gICAgfTtcbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgZ2FwLTRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctYmFja2dyb3VuZC1zZWNvbmRhcnkgdWFlbC1taW4tNzAwXCIgPlxuICAgICAgICAgICAgICAgIDxmb3JtPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1kOnctWzQ3cmVtXSBib3gtYm9yZGVyIG14LWF1dG8gc3BhY2UteS00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8T25ib2FyZGluZ1dpZGdldHMvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIHB0LTEgcHgtNCBnYXAtNCB1YWVsLW9uYm9hcmRpbmctYm90dG9tXCI+XG4gICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSB1YWVsLXJlbW92ZS1yaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj17PENoZXZyb25MZWZ0IC8+fVxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEN1cnJlbnRTdGVwKDEpfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge19fKFwiQmFja1wiLCBcImhlYWRlci1mb290ZXItZWxlbWVudG9yXCIpfVxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWVuZCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVhZWwtcmVtb3ZlLXJpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEN1cnJlbnRTdGVwKDMpfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICAgICAgICAgICAge19fKFwiU2tpcFwiLCBcImhlYWRlci1mb290ZXItZWxlbWVudG9yXCIpfVxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEgdWFlbC1yZW1vdmUtcmluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8QXJyb3dSaWdodCAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcIiM2MDA1RkZcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBcImJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogXCIxMnB4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRDdXJyZW50U3RlcCgzKX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge19fKFwiIENvbnRpbnVlIFNldHVwXCIsIFwiaGVhZGVyLWZvb3Rlci1lbGVtZW50b3JcIil9XG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBXaWRnZXRzT25ib2FyZGluZzsiXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIkJ1dHRvbiIsImFwaUZldGNoIiwiQ2hldnJvbkxlZnQiLCJDaGV2cm9uUmlnaHQiLCJBcnJvd1JpZ2h0IiwiTGluayIsInJvdXRlcyIsIl9fIiwiT25ib2FyZGluZ1dpZGdldHMiLCJXaWRnZXRzT25ib2FyZGluZyIsIl9yZWYiLCJ3aWRnZXRzIiwidXBkYXRlQ291bnRlciIsInNldEN1cnJlbnRTdGVwIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYWxsV2lkZ2V0c0RhdGEiLCJzZXRBbGxXaWRnZXRzRGF0YSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaXNMb2FkaW5nIiwic2V0SXNMb2FkaW5nIiwicmVxdWVzdFF1ZXVlIiwicHJvY2Vzc1F1ZXVlIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImN1cnJlbnRSZXF1ZXN0Iiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImxlbmd0aCIsInNoaWZ0Iiwic3RvcCIsImFwcGx5IiwiYXJndW1lbnRzIiwiZmV0Y2hTZXR0aW5ncyIsIl9yZWYzIiwiX2NhbGxlZTIiLCJkYXRhIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwicGF0aCIsImhlYWRlcnMiLCJ1YWVsU2V0dGluZ3NEYXRhIiwidWFlbF9ub25jZV9hY3Rpb24iLCJzZW50IiwiY29udmVydFRvV2lkZ2V0c0FycmF5IiwidDAiLCJjb25zb2xlIiwiZXJyb3IiLCJmaW5pc2giLCJhcGlDYWxsIiwiX3JlZjQiLCJfY2FsbGVlMyIsIndpZGdldCIsImFjdGl2YXRlV2lkZ2V0IiwiZm9ybURhdGEiLCJyZXNwb25zZSIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsIndpbmRvdyIsIkZvcm1EYXRhIiwiYXBwZW5kIiwidWFlbF9hZG1pbl9kYXRhIiwibm9uY2UiLCJpZCIsImlzX3BybyIsInVybCIsImFqYXhfdXJsIiwibWV0aG9kIiwiYm9keSIsInN1Y2Nlc3MiLCJpc19hY3RpdmUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJfeCIsIl94MiIsImhhbmRsZVN3aXRjaENoYW5nZSIsInVwZGF0ZWRXaWRnZXRzIiwibWFwIiwidyIsIl9vYmplY3RTcHJlYWQiLCJwdXNoIiwiT2JqZWN0IiwiZW50cmllcyIsIl9yZWY1IiwiX3JlZjYiLCJrZXkiLCJpc19hY3RpdmF0ZSIsInVuZGVmaW5lZCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJpY29uIiwidmFyaWFudCIsIm9uQ2xpY2siLCJpY29uUG9zaXRpb24iLCJzdHlsZSIsImJhY2tncm91bmRDb2xvciIsInRyYW5zaXRpb24iLCJwYWRkaW5nIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/Components/Dashboard/WidgetsOnboarding.jsx\n");
/***/ }),
/***/ "./src/Components/HeaderLine.js":
/*!**************************************!*\
!*** ./src/Components/HeaderLine.js ***!
\**************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nvar HeaderLine = function HeaderLine() {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Title, {\n className: \"hfe-header-title m-4\",\n description: \"\",\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h6\"\n // title={__('Formerly Elementor Header & Footer Builder', 'uael')}\n });\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (HeaderLine);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9IZWFkZXJMaW5lLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBMEI7QUFHSDtBQUNjO0FBRXJDLElBQU1HLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFBLEVBQVM7RUFDeEIsb0JBQ09ILDBEQUFBLENBQUNDLGdEQUFLO0lBQ0ZJLFNBQVMsRUFBQyxzQkFBc0I7SUFDaENDLFdBQVcsRUFBQyxFQUFFO0lBQ2RDLElBQUksRUFBRSxJQUFLO0lBQ1hDLFlBQVksRUFBQyxPQUFPO0lBQ3BCQyxJQUFJLEVBQUMsSUFBSTtJQUNUQyxHQUFHLEVBQUM7SUFDSjtFQUFBLENBQ0gsQ0FBQztBQUVWLENBQUM7QUFFRCwrREFBZVAsVUFBVSIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9zcmMvQ29tcG9uZW50cy9IZWFkZXJMaW5lLmpzPzZlMWYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gICAgVGl0bGVcbn0gZnJvbSAnQGJzZi9mb3JjZS11aSc7XG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7IFxuXG5jb25zdCBIZWFkZXJMaW5lID0gKCkgPT4ge1xuXHRyZXR1cm4gKFxuICAgICAgICA8VGl0bGVcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImhmZS1oZWFkZXItdGl0bGUgbS00XCJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiXCJcbiAgICAgICAgICAgIGljb249e251bGx9XG4gICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgdGFnPVwiaDZcIlxuICAgICAgICAgICAgLy8gdGl0bGU9e19fKCdGb3JtZXJseSBFbGVtZW50b3IgSGVhZGVyICYgRm9vdGVyIEJ1aWxkZXInLCAndWFlbCcpfVxuICAgICAgICAvPlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgSGVhZGVyTGluZTtcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlRpdGxlIiwiX18iLCJIZWFkZXJMaW5lIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImRlc2NyaXB0aW9uIiwiaWNvbiIsImljb25Qb3NpdGlvbiIsInNpemUiLCJ0YWciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/Components/HeaderLine.js\n");
/***/ }),
/***/ "./src/Components/NavMenu.js":
/*!***********************************!*\
!*** ./src/Components/NavMenu.js ***!
\***********************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ NavMenu; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/circle-help.js\");\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/file-text.js\");\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/headset.js\");\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/user.js\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _admin_settings_routes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../admin/settings/routes */ \"./src/admin/settings/routes.js\");\n/* harmony import */ var _router_index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../router/index */ \"./src/router/index.js\");\n/* harmony import */ var whats_new_rss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! whats-new-rss */ \"./node_modules/whats-new-rss/dist/react/useWhatsNewRSS.js\");\n\n\n\n\n\n\n\n\nfunction updateNavMenuActiveState() {\n var currentPath = window.location.hash;\n var menuItems = document.querySelectorAll(\"#adminmenu #toplevel_page_uaepro a\");\n menuItems.forEach(function (item) {\n var href = item.getAttribute(\"href\");\n var parentLi = item.closest(\"li\");\n var itemText = item.textContent.trim();\n if (href && (currentPath.includes(href.split(\"#\")[1]) || \"#dashboard\" === currentPath && itemText === \"Dashboard\")) {\n parentLi.classList.add(\"current\");\n } else {\n parentLi.classList.remove(\"current\");\n }\n });\n}\nfunction NavMenu() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n isDropdownOpen = _useState2[0],\n setIsDropdownOpen = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState3, 2),\n isHelpOpen = _useState4[0],\n setIsHelpOpen = _useState4[1];\n var toggleHelpDropdown = function toggleHelpDropdown() {\n return setIsHelpOpen(function (prev) {\n return !prev;\n });\n };\n var closeHelpDropdown = function closeHelpDropdown() {\n return setIsHelpOpen(false);\n };\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n updateNavMenuActiveState();\n window.addEventListener(\"hashchange\", updateNavMenuActiveState);\n return function () {\n window.removeEventListener(\"hashchange\", updateNavMenuActiveState);\n };\n }, []);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n var handleClickOutside = function handleClickOutside(event) {\n if (!event.target.closest(\".uae-help-dropdown\")) {\n setIsHelpOpen(false);\n }\n };\n document.addEventListener(\"click\", handleClickOutside);\n return function () {\n return document.removeEventListener(\"click\", handleClickOutside);\n };\n }, []);\n var currentPath = window.location.hash;\n var isActive = function isActive(path) {\n return currentPath.includes(path);\n };\n var linkStyle = function linkStyle(path) {\n return {\n color: isActive(path) ? \"#111827\" : \"#4B5563\",\n borderBottom: isActive(path) ? \"2px solid #6005FF\" : \"none\",\n paddingBottom: \"22px\",\n marginBottom: \"-16px\"\n };\n };\n var handleRedirect = function handleRedirect(url) {\n window.open(url, \"_blank\");\n setIsHelpOpen(false);\n setIsDropdownOpen(false);\n };\n (0,whats_new_rss__WEBPACK_IMPORTED_MODULE_6__[\"default\"])({\n rssFeedURL: \"https://ultimateelementor.com/whats-new/feed/\",\n selector: \"#uae-whats-new\",\n triggerButton: {\n beforeBtn: '<div class=\"w-4 sm:w-8 h-8 sm:h-10 flex items-center whitespace-nowrap justify-center cursor-pointer rounded-full border border-slate-200\">',\n icon: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#434141\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-megaphone\"><path d=\"m3 11 18-5v12L3 14v-3z\"></path><path d=\"M11.6 16.8a3 3 0 1 1-5.8-1.6\"></path></svg>',\n afterBtn: \"</div>\"\n },\n flyout: {\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"What's New?\", \"uael\"),\n formatDate: function formatDate(date) {\n var dayOfWeek = date.toLocaleDateString(\"en-US\", {\n weekday: \"long\"\n });\n var month = date.toLocaleDateString(\"en-US\", {\n month: \"long\"\n });\n var day = date.getDate();\n var year = date.getFullYear();\n return \"\".concat(dayOfWeek, \" \").concat(month, \" \").concat(day, \", \").concat(year);\n }\n }\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Topbar, {\n className: \"uae-nav-menu relative\",\n style: {\n width: \"unset\",\n padding: \"0.5rem\",\n zIndex: \"9\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex flex-col lg:flex-row items-start md:items-center w-full\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex flex-row md:items-center md:gap-8 w-full\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Topbar.Left, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Topbar.Item, null, uaelSettingsData.icon_url && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_router_index__WEBPACK_IMPORTED_MODULE_5__.Link, {\n to: _admin_settings_routes__WEBPACK_IMPORTED_MODULE_4__.routes.dashboard.path\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.icon_url),\n alt: \"Logo\",\n className: \"ml-4 cursor-pointer\",\n style: {\n height: \"35px\",\n width: \"35px\"\n }\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Topbar.Middle, {\n className: \"flex-grow\",\n align: \"left\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"nav\", {\n className: \"flex flex-wrap gap-6 mt-2 md:mt-0 cursor-pointer\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_router_index__WEBPACK_IMPORTED_MODULE_5__.Link, {\n to: _admin_settings_routes__WEBPACK_IMPORTED_MODULE_4__.routes.dashboard.path,\n className: \"\".concat(isActive(\"dashboard\") ? \"active-link\" : \"\"),\n style: linkStyle(\"dashboard\")\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Dashboard\", \"uael\")), uaelSettingsData.is_lite_active && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_router_index__WEBPACK_IMPORTED_MODULE_5__.Link, {\n to: _admin_settings_routes__WEBPACK_IMPORTED_MODULE_4__.routes.headerFooterBuilder.path // Add this Link component.\n ,\n className: \"\".concat(isActive(\"edit.php?post_type=elementor-hf\") ? \"active-link\" : \"\"),\n style: linkStyle(\"edit.php?post_type=elementor-hf\")\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Header & Footer\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_router_index__WEBPACK_IMPORTED_MODULE_5__.Link, {\n to: _admin_settings_routes__WEBPACK_IMPORTED_MODULE_4__.routes.widgets.path,\n className: \"\".concat(isActive(\"widgets\") ? \"active-link\" : \"\"),\n style: linkStyle(\"widgets\")\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Widgets\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_router_index__WEBPACK_IMPORTED_MODULE_5__.Link, {\n to: _admin_settings_routes__WEBPACK_IMPORTED_MODULE_4__.routes.settings.path,\n className: \"\".concat(isActive(\"settings\") ? \"active-link\" : \"\"),\n style: linkStyle(\"settings\")\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Settings\", \"uael\")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Topbar.Right, {\n className: \"flex flex-col lg:flex-row gap-4 mt-4 md:mt-0\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Topbar.Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.DropdownMenu, {\n placement: \"bottom-start\",\n isOpen: isDropdownOpen,\n onOpenChange: setIsDropdownOpen\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.DropdownMenu.Trigger, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Badge, {\n label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"PRO\", \"uael\"),\n size: \"md\",\n variant: \"neutral\",\n className: \"bg-gradient-to-r from-[#A78BFA] to-[#6005FF] text-white hidden md:flex\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.DropdownMenu.ContentWrapper, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.DropdownMenu.Content, {\n className: \"w-52\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.DropdownMenu.List, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.DropdownMenu.Item, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Version\", \"uael\")), uaelSettingsData.is_lite_active && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.DropdownMenu.Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex justify-between w-full\"\n }, \"\".concat(uaelSettingsData.uaelite_current_version), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.core_badge),\n alt: \"CORE\",\n style: {\n height: \"30px\",\n width: \"38px\"\n }\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.DropdownMenu.Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex justify-between w-full\"\n }, \"\".concat(uaelSettingsData.uael_current_version), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.pro_badge),\n alt: \"PRO\",\n style: {\n height: \"30px\",\n width: \"38px\"\n }\n })))))))), !uaelSettingsData.hide_settings && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Topbar.Item, {\n className: \"gap-4 flex items-center uae-help-dropdown relative\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n onClick: toggleHelpDropdown,\n className: \"cursor-pointer\",\n title: \"Help\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null)), isHelpOpen && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"absolute right-0 top-8 w-64 bg-white border border-gray-200 rounded shadow-md z-50\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"ul\", {\n className: \"text-sm text-gray-700\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"li\", {\n className: \"px-4 py-2 border-b font-semibold\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Useful Resources\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"li\", {\n className: \"px-4 py-2 hover:bg-gray-100 cursor-pointer flex gap-2 items-center\",\n onClick: function onClick() {\n return handleRedirect(\"https://ultimateelementor.com/docs/getting-started-uael/\");\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Getting Started\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"li\", {\n className: \"px-4 py-2 hover:bg-gray-100 cursor-pointer flex gap-2 items-center\",\n onClick: function onClick() {\n return handleRedirect(\"https://ultimateelementor.com/docs-category/widgets/\");\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"How to use widgets\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"li\", {\n className: \"px-4 py-2 hover:bg-gray-100 cursor-pointer flex gap-2 items-center\",\n onClick: function onClick() {\n return handleRedirect(\"https://ultimateelementor.com/docs-category/features/\");\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"How to use features\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"li\", {\n className: \"px-4 py-2 hover:bg-gray-100 cursor-pointer flex gap-2 items-center\",\n onClick: function onClick() {\n return handleRedirect(\"https://ultimateelementor.com/docs-category/templates/\");\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"How to use templates\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"li\", {\n className: \"px-4 py-2 hover:bg-gray-100 cursor-pointer flex gap-2 items-center\",\n onClick: function onClick() {\n return handleRedirect(\"https://ultimateelementor.com/contact/\");\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], null), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)(\"Contact us\", \"uael\")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"pb-1\",\n id: \"uae-whats-new\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_router_index__WEBPACK_IMPORTED_MODULE_5__.Link, {\n to: _admin_settings_routes__WEBPACK_IMPORTED_MODULE_4__.routes.settings.path\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"cursor-pointer uae-user-icon\",\n style: {\n color: \"black\"\n }\n })))))));\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QWMsQ0FDYix3Q0FDRCxDQUFDO0lBQUE7RUFDRCxnQkFFRDdELDBEQUFBLENBQUNRLG9EQUFPLE1BQUUsQ0FBQyxFQUNWRSxtREFBRSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQ3JCLENBQ0QsQ0FDQSxDQUNMLGVBQ0RWLDBEQUFBO0lBQUtvRixTQUFTLEVBQUMsTUFBTTtJQUFDcUMsRUFBRSxFQUFDO0VBQWUsQ0FBTSxDQUFDLGVBQy9DekgsMERBQUEsQ0FBQ1ksK0NBQUk7SUFBQ2lGLEVBQUUsRUFBRWxGLDBEQUFNLENBQUM0RixRQUFRLENBQUNoRDtFQUFLLGdCQUM5QnZELDBEQUFBLENBQUNTLHFEQUFJO0lBQ0oyRSxTQUFTLEVBQUMsOEJBQThCO0lBQ3hDQyxLQUFLLEVBQUU7TUFBRTVCLEtBQUssRUFBRTtJQUFRO0VBQUUsQ0FDMUIsQ0FDSSxDQUNNLENBRUQsQ0FDVixDQUNELENBQ0UsQ0FBQztBQUVYIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL3NyYy9Db21wb25lbnRzL05hdk1lbnUuanM/ZWMyMyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgVG9wYmFyLCBCYWRnZSwgRHJvcGRvd25NZW51IH0gZnJvbSBcIkBic2YvZm9yY2UtdWlcIjtcbmltcG9ydCB7IENpcmNsZUhlbHAsIEZpbGVUZXh0LCBIZWFkc2V0LCBVc2VyIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuaW1wb3J0IHsgX18gfSBmcm9tIFwiQHdvcmRwcmVzcy9pMThuXCI7XG5pbXBvcnQgeyByb3V0ZXMgfSBmcm9tIFwiLi4vYWRtaW4vc2V0dGluZ3Mvcm91dGVzXCI7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcIi4uL3JvdXRlci9pbmRleFwiO1xuaW1wb3J0IHVzZVdoYXRzTmV3UlNTIGZyb20gXCJ3aGF0cy1uZXctcnNzXCI7XG5mdW5jdGlvbiB1cGRhdGVOYXZNZW51QWN0aXZlU3RhdGUoKSB7XG5cdGNvbnN0IGN1cnJlbnRQYXRoID0gd2luZG93LmxvY2F0aW9uLmhhc2g7XG5cdGNvbnN0IG1lbnVJdGVtcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG5cdFx0XCIjYWRtaW5tZW51ICN0b3BsZXZlbF9wYWdlX3VhZXBybyBhXCJcblx0KTtcblx0bWVudUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcblx0XHRjb25zdCBocmVmID0gaXRlbS5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpO1xuXHRcdGNvbnN0IHBhcmVudExpID0gaXRlbS5jbG9zZXN0KFwibGlcIik7XG5cdFx0Y29uc3QgaXRlbVRleHQgPSBpdGVtLnRleHRDb250ZW50LnRyaW0oKTtcblx0XHRpZiAoXG5cdFx0XHRocmVmICYmXG5cdFx0XHQoY3VycmVudFBhdGguaW5jbHVkZXMoaHJlZi5zcGxpdChcIiNcIilbMV0pIHx8XG5cdFx0XHRcdChcIiNkYXNoYm9hcmRcIiA9PT0gY3VycmVudFBhdGggJiYgaXRlbVRleHQgPT09IFwiRGFzaGJvYXJkXCIpKVxuXHRcdCkge1xuXHRcdFx0cGFyZW50TGkuY2xhc3NMaXN0LmFkZChcImN1cnJlbnRcIik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHBhcmVudExpLmNsYXNzTGlzdC5yZW1vdmUoXCJjdXJyZW50XCIpO1xuXHRcdH1cblx0fSk7XG59XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBOYXZNZW51KCkge1xuXHRjb25zdCBbaXNEcm9wZG93bk9wZW4sIHNldElzRHJvcGRvd25PcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcblx0Y29uc3QgW2lzSGVscE9wZW4sIHNldElzSGVscE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuXHRjb25zdCB0b2dnbGVIZWxwRHJvcGRvd24gPSAoKSA9PiBzZXRJc0hlbHBPcGVuKChwcmV2KSA9PiAhcHJldik7XG5cdGNvbnN0IGNsb3NlSGVscERyb3Bkb3duID0gKCkgPT4gc2V0SXNIZWxwT3BlbihmYWxzZSk7XG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0dXBkYXRlTmF2TWVudUFjdGl2ZVN0YXRlKCk7XG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJoYXNoY2hhbmdlXCIsIHVwZGF0ZU5hdk1lbnVBY3RpdmVTdGF0ZSk7XG5cdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiaGFzaGNoYW5nZVwiLCB1cGRhdGVOYXZNZW51QWN0aXZlU3RhdGUpO1xuXHRcdH07XG5cdH0sIFtdKTtcblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZXZlbnQpID0+IHtcblx0XHRcdGlmICghZXZlbnQudGFyZ2V0LmNsb3Nlc3QoXCIudWFlLWhlbHAtZHJvcGRvd25cIikpIHtcblx0XHRcdFx0c2V0SXNIZWxwT3BlbihmYWxzZSk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgaGFuZGxlQ2xpY2tPdXRzaWRlKTtcblx0XHRyZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGhhbmRsZUNsaWNrT3V0c2lkZSk7XG5cdH0sIFtdKTtcblx0Y29uc3QgY3VycmVudFBhdGggPSB3aW5kb3cubG9jYXRpb24uaGFzaDtcblx0Y29uc3QgaXNBY3RpdmUgPSAocGF0aCkgPT4gY3VycmVudFBhdGguaW5jbHVkZXMocGF0aCk7XG5cdGNvbnN0IGxpbmtTdHlsZSA9IChwYXRoKSA9PiAoe1xuXHRcdGNvbG9yOiBpc0FjdGl2ZShwYXRoKSA/IFwiIzExMTgyN1wiIDogXCIjNEI1NTYzXCIsXG5cdFx0Ym9yZGVyQm90dG9tOiBpc0FjdGl2ZShwYXRoKSA/IFwiMnB4IHNvbGlkICM2MDA1RkZcIiA6IFwibm9uZVwiLFxuXHRcdHBhZGRpbmdCb3R0b206IFwiMjJweFwiLFxuXHRcdG1hcmdpbkJvdHRvbTogXCItMTZweFwiLFxuXHR9KTtcblx0Y29uc3QgaGFuZGxlUmVkaXJlY3QgPSAodXJsKSA9PiB7XG5cdFx0d2luZG93Lm9wZW4odXJsLCBcIl9ibGFua1wiKTtcblx0XHRzZXRJc0hlbHBPcGVuKGZhbHNlKTtcblx0XHRzZXRJc0Ryb3Bkb3duT3BlbihmYWxzZSk7XG5cdH07XG5cdHVzZVdoYXRzTmV3UlNTKHtcblx0XHRyc3NGZWVkVVJMOiBcImh0dHBzOi8vdWx0aW1hdGVlbGVtZW50b3IuY29tL3doYXRzLW5ldy9mZWVkL1wiLFxuXHRcdHNlbGVjdG9yOiBcIiN1YWUtd2hhdHMtbmV3XCIsXG5cdFx0dHJpZ2dlckJ1dHRvbjoge1xuXHRcdFx0YmVmb3JlQnRuOlxuXHRcdFx0XHQnPGRpdiBjbGFzcz1cInctNCBzbTp3LTggaC04IHNtOmgtMTAgZmxleCBpdGVtcy1jZW50ZXIgd2hpdGVzcGFjZS1ub3dyYXAganVzdGlmeS1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgcm91bmRlZC1mdWxsIGJvcmRlciBib3JkZXItc2xhdGUtMjAwXCI+Jyxcblx0XHRcdGljb246ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCIjNDM0MTQxXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIGNsYXNzPVwibHVjaWRlIGx1Y2lkZS1tZWdhcGhvbmVcIj48cGF0aCBkPVwibTMgMTEgMTgtNXYxMkwzIDE0di0zelwiPjwvcGF0aD48cGF0aCBkPVwiTTExLjYgMTYuOGEzIDMgMCAxIDEtNS44LTEuNlwiPjwvcGF0aD48L3N2Zz4nLFxuXHRcdFx0YWZ0ZXJCdG46IFwiPC9kaXY+XCIsXG5cdFx0fSxcblx0XHRmbHlvdXQ6IHtcblx0XHRcdHRpdGxlOiBfXyhcIldoYXQncyBOZXc/XCIsIFwidWFlbFwiKSxcblx0XHRcdGZvcm1hdERhdGU6IChkYXRlKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGRheU9mV2VlayA9IGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKFwiZW4tVVNcIiwge1xuXHRcdFx0XHRcdHdlZWtkYXk6IFwibG9uZ1wiLFxuXHRcdFx0XHR9KTtcblx0XHRcdFx0Y29uc3QgbW9udGggPSBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhcImVuLVVTXCIsIHtcblx0XHRcdFx0XHRtb250aDogXCJsb25nXCIsXG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRjb25zdCBkYXkgPSBkYXRlLmdldERhdGUoKTtcblx0XHRcdFx0Y29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcblx0XHRcdFx0cmV0dXJuIGAke2RheU9mV2Vla30gJHttb250aH0gJHtkYXl9LCAke3llYXJ9YDtcblx0XHRcdH0sXG5cdFx0fSxcblx0fSk7XG5cdHJldHVybiAoXG5cdFx0PFRvcGJhclxuXHRcdFx0Y2xhc3NOYW1lPVwidWFlLW5hdi1tZW51IHJlbGF0aXZlXCJcblx0XHRcdHN0eWxlPXt7IHdpZHRoOiBcInVuc2V0XCIsIHBhZGRpbmc6IFwiMC41cmVtXCIsIHpJbmRleDogXCI5XCIgfX1cblx0XHQ+XG5cdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgbGc6ZmxleC1yb3cgaXRlbXMtc3RhcnQgbWQ6aXRlbXMtY2VudGVyIHctZnVsbFwiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1yb3cgbWQ6aXRlbXMtY2VudGVyIG1kOmdhcC04IHctZnVsbFwiPlxuXHRcdFx0XHRcdDxUb3BiYXIuTGVmdD5cblx0XHRcdFx0XHRcdDxUb3BiYXIuSXRlbT5cblx0XHRcdFx0XHRcdFx0e3VhZWxTZXR0aW5nc0RhdGEuaWNvbl91cmwgJiYgKFxuXHRcdFx0XHRcdFx0XHRcdDxMaW5rIHRvPXtyb3V0ZXMuZGFzaGJvYXJkLnBhdGh9PlxuXHRcdFx0XHRcdFx0XHRcdFx0PGltZ1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRzcmM9e2Ake3VhZWxTZXR0aW5nc0RhdGEuaWNvbl91cmx9YH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0YWx0PVwiTG9nb1wiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cIm1sLTQgY3Vyc29yLXBvaW50ZXJcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT17e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGhlaWdodDogXCIzNXB4XCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0d2lkdGg6IFwiMzVweFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0XHQ8L0xpbms+XG5cdFx0XHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0XHQ8L1RvcGJhci5JdGVtPlxuXHRcdFx0XHRcdDwvVG9wYmFyLkxlZnQ+XG5cdFx0XHRcdFx0PFRvcGJhci5NaWRkbGUgY2xhc3NOYW1lPVwiZmxleC1ncm93XCIgYWxpZ249XCJsZWZ0XCI+XG5cdFx0XHRcdFx0XHQ8bmF2IGNsYXNzTmFtZT1cImZsZXggZmxleC13cmFwIGdhcC02IG10LTIgbWQ6bXQtMCBjdXJzb3ItcG9pbnRlclwiPlxuXHRcdFx0XHRcdFx0XHQ8TGlua1xuXHRcdFx0XHRcdFx0XHRcdHRvPXtyb3V0ZXMuZGFzaGJvYXJkLnBhdGh9XG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lPXtgJHtcblx0XHRcdFx0XHRcdFx0XHRcdGlzQWN0aXZlKFwiZGFzaGJvYXJkXCIpID8gXCJhY3RpdmUtbGlua1wiIDogXCJcIlxuXHRcdFx0XHRcdFx0XHRcdH1gfVxuXHRcdFx0XHRcdFx0XHRcdHN0eWxlPXtsaW5rU3R5bGUoXCJkYXNoYm9hcmRcIil9XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHR7X18oXCJEYXNoYm9hcmRcIiwgXCJ1YWVsXCIpfVxuXHRcdFx0XHRcdFx0XHQ8L0xpbms+XG5cdFx0XHRcdFx0XHRcdHt1YWVsU2V0dGluZ3NEYXRhLmlzX2xpdGVfYWN0aXZlICYmIChcblx0XHRcdFx0XHRcdFx0XHQ8TGlua1xuXHRcdFx0XHRcdFx0XHRcdFx0dG89e3JvdXRlcy5oZWFkZXJGb290ZXJCdWlsZGVyLnBhdGh9IC8vIEFkZCB0aGlzIExpbmsgY29tcG9uZW50LlxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lPXtgJHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0aXNBY3RpdmUoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XCJlZGl0LnBocD9wb3N0X3R5cGU9ZWxlbWVudG9yLWhmXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdD8gXCJhY3RpdmUtbGlua1wiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0OiBcIlwiXG5cdFx0XHRcdFx0XHRcdFx0XHR9YH1cblx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPXtsaW5rU3R5bGUoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiZWRpdC5waHA/cG9zdF90eXBlPWVsZW1lbnRvci1oZlwiXG5cdFx0XHRcdFx0XHRcdFx0XHQpfVxuXHRcdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHRcdHtfXyhcIkhlYWRlciAmIEZvb3RlclwiLCBcInVhZWxcIil9XG5cdFx0XHRcdFx0XHRcdFx0PC9MaW5rPlxuXHRcdFx0XHRcdFx0XHQpfVxuXHRcdFx0XHRcdFx0XHQ8TGlua1xuXHRcdFx0XHRcdFx0XHRcdHRvPXtyb3V0ZXMud2lkZ2V0cy5wYXRofVxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT17YCR7XG5cdFx0XHRcdFx0XHRcdFx0XHRpc0FjdGl2ZShcIndpZGdldHNcIikgPyBcImFjdGl2ZS1saW5rXCIgOiBcIlwiXG5cdFx0XHRcdFx0XHRcdFx0fWB9XG5cdFx0XHRcdFx0XHRcdFx0c3R5bGU9e2xpbmtTdHlsZShcIndpZGdldHNcIil9XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHR7X18oXCJXaWRnZXRzXCIsIFwidWFlbFwiKX1cblx0XHRcdFx0XHRcdFx0PC9MaW5rPlxuXHRcdFx0XHRcdFx0XHQ8TGlua1xuXHRcdFx0XHRcdFx0XHRcdHRvPXtyb3V0ZXMuc2V0dGluZ3MucGF0aH1cblx0XHRcdFx0XHRcdFx0XHRjbGFzc05hbWU9e2Ake1xuXHRcdFx0XHRcdFx0XHRcdFx0aXNBY3RpdmUoXCJzZXR0aW5nc1wiKSA/IFwiYWN0aXZlLWxpbmtcIiA6IFwiXCJcblx0XHRcdFx0XHRcdFx0XHR9YH1cblx0XHRcdFx0XHRcdFx0XHRzdHlsZT17bGlua1N0eWxlKFwic2V0dGluZ3NcIil9XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHR7X18oXCJTZXR0aW5nc1wiLCBcInVhZWxcIil9XG5cdFx0XHRcdFx0XHRcdDwvTGluaz5cblx0XHRcdFx0XHRcdDwvbmF2PlxuXHRcdFx0XHRcdDwvVG9wYmFyLk1pZGRsZT5cblx0XHRcdFx0XHQ8VG9wYmFyLlJpZ2h0IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgbGc6ZmxleC1yb3cgZ2FwLTQgbXQtNCBtZDptdC0wXCI+XG5cdFx0XHRcdFx0XHQ8VG9wYmFyLkl0ZW0+XG5cdFx0XHRcdFx0XHRcdDxEcm9wZG93bk1lbnVcblx0XHRcdFx0XHRcdFx0XHRwbGFjZW1lbnQ9XCJib3R0b20tc3RhcnRcIlxuXHRcdFx0XHRcdFx0XHRcdGlzT3Blbj17aXNEcm9wZG93bk9wZW59XG5cdFx0XHRcdFx0XHRcdFx0b25PcGVuQ2hhbmdlPXtzZXRJc0Ryb3Bkb3duT3Blbn1cblx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdDxEcm9wZG93bk1lbnUuVHJpZ2dlcj5cblx0XHRcdFx0XHRcdFx0XHRcdDxCYWRnZVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRsYWJlbD17X18oXCJQUk9cIiwgXCJ1YWVsXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRzaXplPVwibWRcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR2YXJpYW50PVwibmV1dHJhbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cImJnLWdyYWRpZW50LXRvLXIgZnJvbS1bI0E3OEJGQV0gdG8tWyM2MDA1RkZdIHRleHQtd2hpdGUgaGlkZGVuIG1kOmZsZXhcIlxuXHRcdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0XHQ8L0Ryb3Bkb3duTWVudS5UcmlnZ2VyPlxuXHRcdFx0XHRcdFx0XHRcdDxEcm9wZG93bk1lbnUuQ29udGVudFdyYXBwZXI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8RHJvcGRvd25NZW51LkNvbnRlbnQgY2xhc3NOYW1lPVwidy01MlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8RHJvcGRvd25NZW51Lkxpc3Q+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PERyb3Bkb3duTWVudS5JdGVtPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0e19fKFwiVmVyc2lvblwiLCBcInVhZWxcIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9Ecm9wZG93bk1lbnUuSXRlbT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7dWFlbFNldHRpbmdzRGF0YS5pc19saXRlX2FjdGl2ZSAmJiAoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8RHJvcGRvd25NZW51Lkl0ZW0+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0e2Ake3VhZWxTZXR0aW5nc0RhdGEudWFlbGl0ZV9jdXJyZW50X3ZlcnNpb259YH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1nXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzcmM9e2Ake3VhZWxTZXR0aW5nc0RhdGEuY29yZV9iYWRnZX1gfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YWx0PVwiQ09SRVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT17e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRoZWlnaHQ6IFwiMzBweFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR3aWR0aDogXCIzOHB4XCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9Ecm9wZG93bk1lbnUuSXRlbT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxEcm9wZG93bk1lbnUuSXRlbT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHtgJHt1YWVsU2V0dGluZ3NEYXRhLnVhZWxfY3VycmVudF92ZXJzaW9ufWB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWdcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzcmM9e2Ake3VhZWxTZXR0aW5nc0RhdGEucHJvX2JhZGdlfWB9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YWx0PVwiUFJPXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT17e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aGVpZ2h0OiBcIjMwcHhcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHdpZHRoOiBcIjM4cHhcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9Ecm9wZG93bk1lbnUuSXRlbT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9Ecm9wZG93bk1lbnUuTGlzdD5cblx0XHRcdFx0XHRcdFx0XHRcdDwvRHJvcGRvd25NZW51LkNvbnRlbnQ+XG5cdFx0XHRcdFx0XHRcdFx0PC9Ecm9wZG93bk1lbnUuQ29udGVudFdyYXBwZXI+XG5cdFx0XHRcdFx0XHRcdDwvRHJvcGRvd25NZW51PlxuXHRcdFx0XHRcdFx0PC9Ub3BiYXIuSXRlbT5cblx0XHRcdFx0XHRcdHshdWFlbFNldHRpbmdzRGF0YS5oaWRlX3NldHRpbmdzICYmIChcblx0XHRcdFx0XHRcdFx0PFRvcGJhci5JdGVtIGNsYXNzTmFtZT1cImdhcC00IGZsZXggaXRlbXMtY2VudGVyIHVhZS1oZWxwLWRyb3Bkb3duIHJlbGF0aXZlXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdFx0XHRcdFx0b25DbGljaz17dG9nZ2xlSGVscERyb3Bkb3dufVxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lPVwiY3Vyc29yLXBvaW50ZXJcIlxuXHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU9XCJIZWxwXCJcblx0XHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8Q2lyY2xlSGVscCAvPlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdHtpc0hlbHBPcGVuICYmIChcblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgcmlnaHQtMCB0b3AtOCB3LTY0IGJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0yMDAgcm91bmRlZCBzaGFkb3ctbWQgei01MFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dWwgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNzAwXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGxpIGNsYXNzTmFtZT1cInB4LTQgcHktMiBib3JkZXItYiBmb250LXNlbWlib2xkXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7X18oXCJVc2VmdWwgUmVzb3VyY2VzXCIsIFwidWFlbFwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2xpPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxsaVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lPVwicHgtNCBweS0yIGhvdmVyOmJnLWdyYXktMTAwIGN1cnNvci1wb2ludGVyIGZsZXggZ2FwLTIgaXRlbXMtY2VudGVyXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9uQ2xpY2s9eygpID0+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGhhbmRsZVJlZGlyZWN0KFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiaHR0cHM6Ly91bHRpbWF0ZWVsZW1lbnRvci5jb20vZG9jcy9nZXR0aW5nLXN0YXJ0ZWQtdWFlbC9cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PEZpbGVUZXh0IC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7X18oXCJHZXR0aW5nIFN0YXJ0ZWRcIiwgXCJ1YWVsXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvbGk+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGxpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJweC00IHB5LTIgaG92ZXI6YmctZ3JheS0xMDAgY3Vyc29yLXBvaW50ZXIgZmxleCBnYXAtMiBpdGVtcy1jZW50ZXJcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0b25DbGljaz17KCkgPT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aGFuZGxlUmVkaXJlY3QoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XCJodHRwczovL3VsdGltYXRlZWxlbWVudG9yLmNvbS9kb2NzLWNhdGVnb3J5L3dpZGdldHMvXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxGaWxlVGV4dCAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0e19fKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcIkhvdyB0byB1c2Ugd2lkZ2V0c1wiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcInVhZWxcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2xpPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxsaVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lPVwicHgtNCBweS0yIGhvdmVyOmJnLWdyYXktMTAwIGN1cnNvci1wb2ludGVyIGZsZXggZ2FwLTIgaXRlbXMtY2VudGVyXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9uQ2xpY2s9eygpID0+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGhhbmRsZVJlZGlyZWN0KFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiaHR0cHM6Ly91bHRpbWF0ZWVsZW1lbnRvci5jb20vZG9jcy1jYXRlZ29yeS9mZWF0dXJlcy9cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PEZpbGVUZXh0IC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7X18oXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiSG93IHRvIHVzZSBmZWF0dXJlc1wiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcInVhZWxcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2xpPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxsaVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3NOYW1lPVwicHgtNCBweS0yIGhvdmVyOmJnLWdyYXktMTAwIGN1cnNvci1wb2ludGVyIGZsZXggZ2FwLTIgaXRlbXMtY2VudGVyXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9uQ2xpY2s9eygpID0+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGhhbmRsZVJlZGlyZWN0KFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiaHR0cHM6Ly91bHRpbWF0ZWVsZW1lbnRvci5jb20vZG9jcy1jYXRlZ29yeS90ZW1wbGF0ZXMvXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxGaWxlVGV4dCAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0e19fKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcIkhvdyB0byB1c2UgdGVtcGxhdGVzXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwidWFlbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvbGk+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGxpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJweC00IHB5LTIgaG92ZXI6YmctZ3JheS0xMDAgY3Vyc29yLXBvaW50ZXIgZmxleCBnYXAtMiBpdGVtcy1jZW50ZXJcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0b25DbGljaz17KCkgPT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aGFuZGxlUmVkaXJlY3QoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XCJodHRwczovL3VsdGltYXRlZWxlbWVudG9yLmNvbS9jb250YWN0L1wiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8SGVhZHNldCAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0e19fKFwiQ29udGFjdCB1c1wiLCBcInVhZWxcIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9saT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC91bD5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzc05hbWU9XCJwYi0xXCIgaWQ9XCJ1YWUtd2hhdHMtbmV3XCI+PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PExpbmsgdG89e3JvdXRlcy5zZXR0aW5ncy5wYXRofT5cblx0XHRcdFx0XHRcdFx0XHRcdDxVc2VyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cImN1cnNvci1wb2ludGVyIHVhZS11c2VyLWljb25cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT17eyBjb2xvcjogXCJibGFja1wiIH19XG5cdFx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHRcdDwvTGluaz5cblx0XHRcdFx0XHRcdFx0PC9Ub3BiYXIuSXRlbT5cblx0XHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0PC9Ub3BiYXIuUmlnaHQ+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9Ub3BiYXI+XG5cdCk7XG59XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsIlRvcGJhciIsIkJhZGdlIiwiRHJvcGRvd25NZW51IiwiQ2lyY2xlSGVscCIsIkZpbGVUZXh0IiwiSGVhZHNldCIsIlVzZXIiLCJfXyIsInJvdXRlcyIsIkxpbmsiLCJ1c2VXaGF0c05ld1JTUyIsInVwZGF0ZU5hdk1lbnVBY3RpdmVTdGF0ZSIsImN1cnJlbnRQYXRoIiwid2luZG93IiwibG9jYXRpb24iLCJoYXNoIiwibWVudUl0ZW1zIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsIml0ZW0iLCJocmVmIiwiZ2V0QXR0cmlidXRlIiwicGFyZW50TGkiLCJjbG9zZXN0IiwiaXRlbVRleHQiLCJ0ZXh0Q29udGVudCIsInRyaW0iLCJpbmNsdWRlcyIsInNwbGl0IiwiY2xhc3NMaXN0IiwiYWRkIiwicmVtb3ZlIiwiTmF2TWVudSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlzRHJvcGRvd25PcGVuIiwic2V0SXNEcm9wZG93bk9wZW4iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzSGVscE9wZW4iLCJzZXRJc0hlbHBPcGVuIiwidG9nZ2xlSGVscERyb3Bkb3duIiwicHJldiIsImNsb3NlSGVscERyb3Bkb3duIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVDbGlja091dHNpZGUiLCJldmVudCIsInRhcmdldCIsImlzQWN0aXZlIiwicGF0aCIsImxpbmtTdHlsZSIsImNvbG9yIiwiYm9yZGVyQm90dG9tIiwicGFkZGluZ0JvdHRvbSIsIm1hcmdpbkJvdHRvbSIsImhhbmRsZVJlZGlyZWN0IiwidXJsIiwib3BlbiIsInJzc0ZlZWRVUkwiLCJzZWxlY3RvciIsInRyaWdnZXJCdXR0b24iLCJiZWZvcmVCdG4iLCJpY29uIiwiYWZ0ZXJCdG4iLCJmbHlvdXQiLCJ0aXRsZSIsImZvcm1hdERhdGUiLCJkYXRlIiwiZGF5T2ZXZWVrIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwid2Vla2RheSIsIm1vbnRoIiwiZGF5IiwiZ2V0RGF0ZSIsInllYXIiLCJnZXRGdWxsWWVhciIsImNvbmNhdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJzdHlsZSIsIndpZHRoIiwicGFkZGluZyIsInpJbmRleCIsIkxlZnQiLCJJdGVtIiwidWFlbFNldHRpbmdzRGF0YSIsImljb25fdXJsIiwidG8iLCJkYXNoYm9hcmQiLCJzcmMiLCJhbHQiLCJoZWlnaHQiLCJNaWRkbGUiLCJhbGlnbiIsImlzX2xpdGVfYWN0aXZlIiwiaGVhZGVyRm9vdGVyQnVpbGRlciIsIndpZGdldHMiLCJzZXR0aW5ncyIsIlJpZ2h0IiwicGxhY2VtZW50IiwiaXNPcGVuIiwib25PcGVuQ2hhbmdlIiwiVHJpZ2dlciIsImxhYmVsIiwic2l6ZSIsInZhcmlhbnQiLCJDb250ZW50V3JhcHBlciIsIkNvbnRlbnQiLCJMaXN0IiwidWFlbGl0ZV9jdXJyZW50X3ZlcnNpb24iLCJjb3JlX2JhZGdlIiwidWFlbF9jdXJyZW50X3ZlcnNpb24iLCJwcm9fYmFkZ2UiLCJoaWRlX3NldHRpbmdzIiwib25DbGljayIsImlkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/Components/NavMenu.js\n");
/***/ }),
/***/ "./src/Components/Onboarding/Build.jsx":
/*!*********************************************!*\
!*** ./src/Components/Onboarding/Build.jsx ***!
\*********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/arrow-right.js\");\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/plus.js\");\n/* harmony import */ var react_hot_toast__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-hot-toast */ \"./node_modules/react-hot-toast/dist/index.mjs\");\n/* harmony import */ var _router_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../router/index */ \"./src/router/index.js\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _admin_settings_routes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../admin/settings/routes */ \"./src/admin/settings/routes.js\");\n\n\n\n\n\n\n\n\nvar OnboardingBuild = function OnboardingBuild(_ref) {\n var setCurrentStep = _ref.setCurrentStep;\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n isDialogOpen = _useState2[0],\n setIsDialogOpen = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState3, 2),\n email = _useState4[0],\n setEmail = _useState4[1];\n var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),\n _useState6 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState5, 2),\n isSubmitted = _useState6[0],\n setIsSubmitted = _useState6[1];\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n setEmail(uaelSettingsData.user_email);\n history.pushState(null, \"\", window.location.href);\n var handleBackButton = function handleBackButton(event) {\n event.preventDefault();\n localStorage.setItem('currentStep', '2');\n window.location.reload();\n };\n window.addEventListener('popstate', handleBackButton);\n return function () {\n window.removeEventListener('popstate', handleBackButton);\n };\n }, [uaelSettingsData.user_email]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"bg-background-primary border-[0.5px] border-subtle rounded-xl shadow-sm mb-6 p-8\",\n style: {\n maxWidth: '55%'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex items-start uael-display-flex\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex flex-col items-start\",\n style: {\n paddingRight: '35px'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"h1\", {\n className: \"text-text-primary m-0 mb-2\",\n style: {\n fontSize: '1.6rem',\n lineHeight: '1.3em'\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)(\"You're all set!🚀\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"span\", {\n className: \"text-md font-medium text-text-tertiary m-0 mb-4 uael-88-width\",\n style: {\n lineHeight: '1.6em'\n }\n }, uaelSettingsData.is_lite_active ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement((react__WEBPACK_IMPORTED_MODULE_1___default().Fragment), null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)(\"Start creating headers, footers, or pages with UAE and take your website to the next level\", \"uael\")) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement((react__WEBPACK_IMPORTED_MODULE_1___default().Fragment), null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)(\"Start creating amazing designs with UAE and take your website to the next level\", \"uael\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"span\", {\n className: \"font-bold m-0 pt-2\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)(\"Here’s how to get started:\", \"uael\")), uaelSettingsData.is_lite_active ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"ol\", {\n className: \"list-decimal text-text-tertiary text-sm\",\n style: {\n marginLeft: '1.4em',\n lineHeight: '1.6em',\n paddingBottom: '0.5rem'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"li\", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Click on “Create” button', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"li\", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Use the Elementor editor to customize your header, footer, page or post according to your preferences', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"li\", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Use UAE widgets for your designs', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"li\", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Click “Publish” to make it live', 'uael'))) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"ol\", {\n className: \"list-decimal text-text-tertiary text-sm\",\n style: {\n marginLeft: '1.4em',\n lineHeight: '1.6em',\n paddingBottom: '0.5rem'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"li\", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Click on “Create New Page” button', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"li\", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Use the Elementor editor to customize your page/post according to your preferences', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"li\", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Use UAE widgets to design your pages.', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"li\", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Click “Publish” to make it live', 'uael')))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"w-1/2\",\n style: {\n textAlign: 'end'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n alt: \"Build\",\n className: \"w-full object-contain\",\n style: {\n height: '210px',\n width: 'auto'\n },\n src: \"\".concat(uaelSettingsData.build_banner),\n loading: \"lazy\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex flex-row gap-1 pb-4 uael-display-flex\"\n }, uaelSettingsData.is_lite_active ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement((react__WEBPACK_IMPORTED_MODULE_1___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Button, {\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null),\n iconPosition: \"right\",\n variant: \"primary\",\n className: \"bg-[#6005FF] uael-remove-ring mr-2\",\n style: {\n backgroundColor: \"#6005FF\",\n transition: \"background-color 0.3s ease\"\n },\n onMouseEnter: function onMouseEnter(e) {\n return e.currentTarget.style.backgroundColor = \"#4B00CC\";\n },\n onMouseLeave: function onMouseLeave(e) {\n return e.currentTarget.style.backgroundColor = \"#6005FF\";\n },\n onClick: function onClick() {\n window.open(uaelSettingsData.uael_hfe_post_url, \"_blank\");\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)(\"Create Header/Footer\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Button, {\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null),\n iconPosition: \"right\",\n variant: \"outline\",\n className: \"uael-remove-ring\",\n style: {\n color: \"#6005FF\",\n borderColor: \"#6005FF\"\n },\n onMouseEnter: function onMouseEnter(e) {\n return (e.currentTarget.style.color = \"#000000\") && (e.currentTarget.style.borderColor = \"#000000\");\n },\n onMouseLeave: function onMouseLeave(e) {\n return (e.currentTarget.style.color = \"#6005FF\") && (e.currentTarget.style.borderColor = \"#6005FF\");\n },\n onClick: function onClick() {\n window.open(uaelSettingsData.elementor_page_url, \"_blank\");\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)(\"Create New Page\", \"uael\"))) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Button, {\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null),\n iconPosition: \"right\",\n variant: \"primary\",\n className: \"bg-[#6005FF] uael-remove-ring\",\n style: {\n backgroundColor: \"#6005FF\",\n transition: \"background-color 0.3s ease\"\n },\n onMouseEnter: function onMouseEnter(e) {\n return e.currentTarget.style.backgroundColor = \"#4B00CC\";\n },\n onMouseLeave: function onMouseLeave(e) {\n return e.currentTarget.style.backgroundColor = \"#6005FF\";\n },\n onClick: function onClick() {\n window.open(uaelSettingsData.elementor_page_url, \"_blank\");\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)(\"Create New Page\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_router_index__WEBPACK_IMPORTED_MODULE_4__.Link, {\n to: _admin_settings_routes__WEBPACK_IMPORTED_MODULE_6__.routes.dashboard.path\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Button, {\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null),\n iconPosition: \"right\",\n variant: \"ghost\",\n className: \"uael-remove-ring\",\n onMouseLeave: function onMouseLeave(e) {\n return (e.currentTarget.style.color = \"#000000\") && (e.currentTarget.style.borderColor = \"#000000\");\n },\n onMouseEnter: function onMouseEnter(e) {\n return (e.currentTarget.style.color = \"#6005FF\") && (e.currentTarget.style.borderColor = \"#6005FF\");\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)(\"Go To Dashboard\", \"uael\")))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (OnboardingBuild);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFhLENBQUN4QixLQUFLLENBQUM4QixXQUFXLEdBQzlCLFNBQVMsQ0FBQztJQUFBO0VBQ2pCLEdBRUFqRSxtREFBRSxDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FDekIsQ0FDTixDQUVMLENBQ0osQ0FBQztBQUVkLENBQUM7QUFFRCwrREFBZUUsZUFBZSIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9zcmMvQ29tcG9uZW50cy9PbmJvYXJkaW5nL0J1aWxkLmpzeD80NGRmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ29udGFpbmVyLCBCdXR0b24sIFN3aXRjaCwgVGl0bGUsIERpYWxvZywgSW5wdXQgfSBmcm9tICdAYnNmL2ZvcmNlLXVpJztcbmltcG9ydCB7IFgsIENoZWNrLCBQbHVzLCBBcnJvd1JpZ2h0LCBQYWNrYWdlIH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcbmltcG9ydCB0b2FzdCwgeyBUb2FzdGVyIH0gZnJvbSAncmVhY3QtaG90LXRvYXN0JztcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwiLi4vLi4vcm91dGVyL2luZGV4XCJcbmltcG9ydCB7IF9fIH0gZnJvbSBcIkB3b3JkcHJlc3MvaTE4blwiO1xuaW1wb3J0IHsgcm91dGVzIH0gZnJvbSBcIi4uLy4uL2FkbWluL3NldHRpbmdzL3JvdXRlc1wiO1xuXG5jb25zdCBPbmJvYXJkaW5nQnVpbGQgPSAoeyBzZXRDdXJyZW50U3RlcCB9KSA9PiB7XG4gICAgY29uc3QgW2lzRGlhbG9nT3Blbiwgc2V0SXNEaWFsb2dPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbZW1haWwsIHNldEVtYWlsXSA9IHVzZVN0YXRlKCcnKTtcbiAgICBjb25zdCBbaXNTdWJtaXR0ZWQsIHNldElzU3VibWl0dGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNldEVtYWlsKHVhZWxTZXR0aW5nc0RhdGEudXNlcl9lbWFpbCk7XG5cbiAgICAgICAgaGlzdG9yeS5wdXNoU3RhdGUobnVsbCwgXCJcIiwgd2luZG93LmxvY2F0aW9uLmhyZWYpO1xuXG4gICAgICAgIGNvbnN0IGhhbmRsZUJhY2tCdXR0b24gPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY3VycmVudFN0ZXAnLCAnMicpO1xuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICB9O1xuICAgIFxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCBoYW5kbGVCYWNrQnV0dG9uKTtcbiAgICBcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIGhhbmRsZUJhY2tCdXR0b24pO1xuICAgICAgICB9O1xuXG4gICAgfSwgW3VhZWxTZXR0aW5nc0RhdGEudXNlcl9lbWFpbF0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy1iYWNrZ3JvdW5kLXByaW1hcnkgYm9yZGVyLVswLjVweF0gYm9yZGVyLXN1YnRsZSByb3VuZGVkLXhsIHNoYWRvdy1zbSBtYi02IHAtOFwiIHN0eWxlPXt7IG1heFdpZHRoOiAnNTUlJyB9fT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1zdGFydCB1YWVsLWRpc3BsYXktZmxleFwiPlxuICAgICAgICAgICAgICAgIHsvKiBMZWZ0IENvbnRlbnQgKi99XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLXN0YXJ0XCIgc3R5bGU9e3sgcGFkZGluZ1JpZ2h0OiAnMzVweCcgfX0+XG4gICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LXRleHQtcHJpbWFyeSBtLTAgbWItMlwiIHN0eWxlPXt7IGZvbnRTaXplOiAnMS42cmVtJywgbGluZUhlaWdodDogJzEuM2VtJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtfXyhcIllvdSdyZSBhbGwgc2V0IfCfmoBcIiwgXCJ1YWVsXCIpfVxuICAgICAgICAgICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LW1kIGZvbnQtbWVkaXVtIHRleHQtdGV4dC10ZXJ0aWFyeSBtLTAgbWItNCB1YWVsLTg4LXdpZHRoXCIgc3R5bGU9e3sgbGluZUhlaWdodDogJzEuNmVtJyB9fT5cblxuICAgICAgICAgICAgICAgICAgICB7IHVhZWxTZXR0aW5nc0RhdGEuaXNfbGl0ZV9hY3RpdmUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfXyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTdGFydCBjcmVhdGluZyBoZWFkZXJzLCBmb290ZXJzLCBvciBwYWdlcyB3aXRoIFVBRSBhbmQgdGFrZSB5b3VyIHdlYnNpdGUgdG8gdGhlIG5leHQgbGV2ZWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ1YWVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfXyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTdGFydCBjcmVhdGluZyBhbWF6aW5nIGRlc2lnbnMgd2l0aCBVQUUgYW5kIHRha2UgeW91ciB3ZWJzaXRlIHRvIHRoZSBuZXh0IGxldmVsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidWFlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtYm9sZCBtLTAgcHQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge19fKFwiSGVyZeKAmXMgaG93IHRvIGdldCBzdGFydGVkOlwiLCBcInVhZWxcIil9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICB7IHVhZWxTZXR0aW5nc0RhdGEuaXNfbGl0ZV9hY3RpdmUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3NOYW1lPVwibGlzdC1kZWNpbWFsIHRleHQtdGV4dC10ZXJ0aWFyeSB0ZXh0LXNtXCIgc3R5bGU9e3sgbWFyZ2luTGVmdDogJzEuNGVtJywgbGluZUhlaWdodDogJzEuNmVtJywgcGFkZGluZ0JvdHRvbTogJzAuNXJlbScgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPntfXygnQ2xpY2sgb24g4oCcQ3JlYXRl4oCdIGJ1dHRvbicsICd1YWVsJyl9PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+e19fKCdVc2UgdGhlIEVsZW1lbnRvciBlZGl0b3IgdG8gY3VzdG9taXplIHlvdXIgaGVhZGVyLCBmb290ZXIsIHBhZ2Ugb3IgcG9zdCBhY2NvcmRpbmcgdG8geW91ciBwcmVmZXJlbmNlcycsICd1YWVsJyl9PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+e19fKCdVc2UgVUFFIHdpZGdldHMgZm9yIHlvdXIgZGVzaWducycsICd1YWVsJyl9PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+e19fKCdDbGljayDigJxQdWJsaXNo4oCdIHRvIG1ha2UgaXQgbGl2ZScsICd1YWVsJyl9PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvb2w+XG4gICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3NOYW1lPVwibGlzdC1kZWNpbWFsIHRleHQtdGV4dC10ZXJ0aWFyeSB0ZXh0LXNtXCIgc3R5bGU9e3sgbWFyZ2luTGVmdDogJzEuNGVtJywgbGluZUhlaWdodDogJzEuNmVtJywgcGFkZGluZ0JvdHRvbTogJzAuNXJlbScgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPntfXygnQ2xpY2sgb24g4oCcQ3JlYXRlIE5ldyBQYWdl4oCdIGJ1dHRvbicsICd1YWVsJyl9PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+e19fKCdVc2UgdGhlIEVsZW1lbnRvciBlZGl0b3IgdG8gY3VzdG9taXplIHlvdXIgcGFnZS9wb3N0IGFjY29yZGluZyB0byB5b3VyIHByZWZlcmVuY2VzJywgJ3VhZWwnKX08L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT57X18oJ1VzZSBVQUUgd2lkZ2V0cyB0byBkZXNpZ24geW91ciBwYWdlcy4nLCAndWFlbCcpfTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPntfXygnQ2xpY2sg4oCcUHVibGlzaOKAnSB0byBtYWtlIGl0IGxpdmUnLCAndWFlbCcpfTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L29sPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgey8qIFJpZ2h0IENvbnRlbnQgLSBJbWFnZSAqL31cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctMS8yXCIgc3R5bGU9e3sgdGV4dEFsaWduOiAnZW5kJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiQnVpbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIG9iamVjdC1jb250YWluXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGhlaWdodDogJzIxMHB4Jywgd2lkdGg6ICdhdXRvJyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXtgJHt1YWVsU2V0dGluZ3NEYXRhLmJ1aWxkX2Jhbm5lcn1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nZmxleCBmbGV4LXJvdyBnYXAtMSBwYi00IHVhZWwtZGlzcGxheS1mbGV4Jz5cbiAgICAgICAgICAgICAgICB7IHVhZWxTZXR0aW5nc0RhdGEuaXNfbGl0ZV9hY3RpdmUgPyAoXG4gICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PEFycm93UmlnaHQgLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1bIzYwMDVGRl0gdWFlbC1yZW1vdmUtcmluZyBtci0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiIzYwMDVGRlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBcImJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9eyhlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZS5jdXJyZW50VGFyZ2V0LnN0eWxlLmJhY2tncm91bmRDb2xvciA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiM0QjAwQ0NcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlPXsoZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGUuY3VycmVudFRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIjNjAwNUZGXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1YWVsU2V0dGluZ3NEYXRhLnVhZWxfaGZlX3Bvc3RfdXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge19fKFwiQ3JlYXRlIEhlYWRlci9Gb290ZXJcIiwgXCJ1YWVsXCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PFBsdXMgLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1YWVsLXJlbW92ZS1yaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogXCIjNjAwNUZGXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiBcIiM2MDA1RkZcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcj17KGUpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlLmN1cnJlbnRUYXJnZXQuc3R5bGUuY29sb3IgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIjMDAwMDAwXCIpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlLmN1cnJlbnRUYXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIjMDAwMDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZT17KGUpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlLmN1cnJlbnRUYXJnZXQuc3R5bGUuY29sb3IgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIjNjAwNUZGXCIpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlLmN1cnJlbnRUYXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIjNjAwNUZGXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1YWVsU2V0dGluZ3NEYXRhLmVsZW1lbnRvcl9wYWdlX3VybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfXyhcIkNyZWF0ZSBOZXcgUGFnZVwiLCBcInVhZWxcIil9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PFBsdXMgLz59XG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1bIzYwMDVGRl0gdWFlbC1yZW1vdmUtcmluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjNjAwNUZGXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogXCJiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcj17KGUpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoZS5jdXJyZW50VGFyZ2V0LnN0eWxlLmJhY2tncm91bmRDb2xvciA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIjNEIwMENDXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlTGVhdmU9eyhlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgKGUuY3VycmVudFRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiIzYwMDVGRlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1YWVsU2V0dGluZ3NEYXRhLmVsZW1lbnRvcl9wYWdlX3VybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7X18oXCJDcmVhdGUgTmV3IFBhZ2VcIiwgXCJ1YWVsXCIpfVxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICAgICAgdG89e3JvdXRlcy5kYXNoYm9hcmQucGF0aH1cblxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PEFycm93UmlnaHQgLz59XG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidWFlbC1yZW1vdmUtcmluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlTGVhdmU9eyhlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlLmN1cnJlbnRUYXJnZXQuc3R5bGUuY29sb3IgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiMwMDAwMDBcIikgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZS5jdXJyZW50VGFyZ2V0LnN0eWxlLmJvcmRlckNvbG9yID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIjMDAwMDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9eyhlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlLmN1cnJlbnRUYXJnZXQuc3R5bGUuY29sb3IgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiM2MDA1RkZcIikgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZS5jdXJyZW50VGFyZ2V0LnN0eWxlLmJvcmRlckNvbG9yID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIjNjAwNUZGXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtfXyhcIkdvIFRvIERhc2hib2FyZFwiLCBcInVhZWxcIil9XG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvTGluaz5cblxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgT25ib2FyZGluZ0J1aWxkOyJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiQ29udGFpbmVyIiwiQnV0dG9uIiwiU3dpdGNoIiwiVGl0bGUiLCJEaWFsb2ciLCJJbnB1dCIsIlgiLCJDaGVjayIsIlBsdXMiLCJBcnJvd1JpZ2h0IiwiUGFja2FnZSIsInRvYXN0IiwiVG9hc3RlciIsIkxpbmsiLCJfXyIsInJvdXRlcyIsIk9uYm9hcmRpbmdCdWlsZCIsIl9yZWYiLCJzZXRDdXJyZW50U3RlcCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlzRGlhbG9nT3BlbiIsInNldElzRGlhbG9nT3BlbiIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZW1haWwiLCJzZXRFbWFpbCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNTdWJtaXR0ZWQiLCJzZXRJc1N1Ym1pdHRlZCIsInVhZWxTZXR0aW5nc0RhdGEiLCJ1c2VyX2VtYWlsIiwiaGlzdG9yeSIsInB1c2hTdGF0ZSIsIndpbmRvdyIsImxvY2F0aW9uIiwiaHJlZiIsImhhbmRsZUJhY2tCdXR0b24iLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwibG9jYWxTdG9yYWdlIiwic2V0SXRlbSIsInJlbG9hZCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInN0eWxlIiwibWF4V2lkdGgiLCJwYWRkaW5nUmlnaHQiLCJmb250U2l6ZSIsImxpbmVIZWlnaHQiLCJpc19saXRlX2FjdGl2ZSIsIkZyYWdtZW50IiwibWFyZ2luTGVmdCIsInBhZGRpbmdCb3R0b20iLCJ0ZXh0QWxpZ24iLCJhbHQiLCJoZWlnaHQiLCJ3aWR0aCIsInNyYyIsImNvbmNhdCIsImJ1aWxkX2Jhbm5lciIsImxvYWRpbmciLCJpY29uIiwiaWNvblBvc2l0aW9uIiwidmFyaWFudCIsImJhY2tncm91bmRDb2xvciIsInRyYW5zaXRpb24iLCJvbk1vdXNlRW50ZXIiLCJlIiwiY3VycmVudFRhcmdldCIsIm9uTW91c2VMZWF2ZSIsIm9uQ2xpY2siLCJvcGVuIiwidWFlbF9oZmVfcG9zdF91cmwiLCJjb2xvciIsImJvcmRlckNvbG9yIiwiZWxlbWVudG9yX3BhZ2VfdXJsIiwidG8iLCJkYXNoYm9hcmQiLCJwYXRoIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/Components/Onboarding/Build.jsx\n");
/***/ }),
/***/ "./src/Components/Onboarding/Configure.jsx":
/*!*************************************************!*\
!*** ./src/Components/Onboarding/Configure.jsx ***!
\*************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _Widgets_Features_FeatureWidgetsOnboarding__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Widgets/Features/FeatureWidgetsOnboarding */ \"./src/Components/Widgets/Features/FeatureWidgetsOnboarding.jsx\");\n\n\n\nvar Configure = function Configure(_ref) {\n var setCurrentStep = _ref.setCurrentStep;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Widgets_Features_FeatureWidgetsOnboarding__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n setCurrentStep: setCurrentStep\n });\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Configure);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9PbmJvYXJkaW5nL0NvbmZpZ3VyZS5qc3giLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXlCO0FBQ1k7QUFDTjtBQUUvQixJQUFNRyxTQUFTLEdBQUcsU0FBWkEsU0FBU0EsQ0FBQUMsSUFBQSxFQUEyQjtFQUFBLElBQXJCQyxjQUFjLEdBQUFELElBQUEsQ0FBZEMsY0FBYztFQUMvQixvQkFDSUwsMERBQUEsQ0FBQ0Usa0ZBQXdCO0lBQUNHLGNBQWMsRUFBRUE7RUFBZSxDQUFFLENBQUM7QUFFcEUsQ0FBQztBQUVELCtEQUFlRixTQUFTIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL3NyYy9Db21wb25lbnRzL09uYm9hcmRpbmcvQ29uZmlndXJlLmpzeD9hZTI5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IF9fIH0gZnJvbSBcIkB3b3JkcHJlc3MvaTE4blwiO1xuaW1wb3J0IEZlYXR1cmVXaWRnZXRzT25ib2FyZGluZyBmcm9tICdAY29tcG9uZW50cy9XaWRnZXRzL0ZlYXR1cmVzL0ZlYXR1cmVXaWRnZXRzT25ib2FyZGluZyc7XG5cbmNvbnN0IENvbmZpZ3VyZSA9ICh7IHNldEN1cnJlbnRTdGVwIH0pID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8RmVhdHVyZVdpZGdldHNPbmJvYXJkaW5nIHNldEN1cnJlbnRTdGVwPXtzZXRDdXJyZW50U3RlcH0gLz5cbiAgICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbmZpZ3VyZVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiX18iLCJGZWF0dXJlV2lkZ2V0c09uYm9hcmRpbmciLCJDb25maWd1cmUiLCJfcmVmIiwic2V0Q3VycmVudFN0ZXAiLCJjcmVhdGVFbGVtZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/Components/Onboarding/Configure.jsx\n");
/***/ }),
/***/ "./src/Components/Onboarding/Onboarding.jsx":
/*!**************************************************!*\
!*** ./src/Components/Onboarding/Onboarding.jsx ***!
\**************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _router_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../router/link */ \"./src/router/link.js\");\n/* harmony import */ var _admin_settings_routes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../admin/settings/routes */ \"./src/admin/settings/routes.js\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _Welcome__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Welcome */ \"./src/Components/Onboarding/Welcome.jsx\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./index */ \"./src/Components/Onboarding/index.js\");\n\n\n\n\n\n\n\n\nvar Onboarding = function Onboarding() {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_index__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Onboarding);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9PbmJvYXJkaW5nL09uYm9hcmRpbmcuanN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQXlCO0FBQzZEO0FBQzdDO0FBQ1k7QUFDYjtBQUNIO0FBQ3ZCO0FBQ0w7QUFFVCxJQUFNYyxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBQSxFQUFTO0VBRXJCLG9CQUNJZCwwREFBQSxDQUFBQSx1REFBQSxxQkFDQUEsMERBQUEsQ0FBQ2EsOENBQUUsTUFBRSxDQUNILENBQUM7QUFFWCxDQUFDO0FBRUQsK0RBQWVDLFVBQVUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vc3JjL0NvbXBvbmVudHMvT25ib2FyZGluZy9PbmJvYXJkaW5nLmpzeD8wODhmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENvbnRhaW5lciwgVG9wYmFyLCBCdXR0b24sIFByb2dyZXNzU3RlcHMsIExhYmVsLCBUaXRsZSB9IGZyb20gJ0Bic2YvZm9yY2UtdWknXG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcIi4uLy4uL3JvdXRlci9saW5rXCI7XG5pbXBvcnQgeyByb3V0ZXMgfSBmcm9tIFwiLi4vLi4vYWRtaW4vc2V0dGluZ3Mvcm91dGVzXCI7XG5pbXBvcnQgeyBYLCBDaGVjayB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgeyBfXyB9IGZyb20gXCJAd29yZHByZXNzL2kxOG5cIjtcbmltcG9ydCBXZWxjb21lIGZyb20gJy4vV2VsY29tZSc7XG5pbXBvcnQgT0IgZnJvbSAnLi9pbmRleCdcblxuY29uc3QgT25ib2FyZGluZyA9ICgpID0+IHtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgIDxPQiAvPlxuICAgICAgICA8Lz5cbiAgICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IE9uYm9hcmRpbmdcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkNvbnRhaW5lciIsIlRvcGJhciIsIkJ1dHRvbiIsIlByb2dyZXNzU3RlcHMiLCJMYWJlbCIsIlRpdGxlIiwiTGluayIsInJvdXRlcyIsIlgiLCJDaGVjayIsIl9fIiwiV2VsY29tZSIsIk9CIiwiT25ib2FyZGluZyIsImNyZWF0ZUVsZW1lbnQiLCJGcmFnbWVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/Components/Onboarding/Onboarding.jsx\n");
/***/ }),
/***/ "./src/Components/Onboarding/Welcome.jsx":
/*!***********************************************!*\
!*** ./src/Components/Onboarding/Welcome.jsx ***!
\***********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nvar Welcome = function Welcome(_ref) {\n var setCurrentStep = _ref.setCurrentStep;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"bg-background-primary border-[0.5px] items-start justify-center border-subtle rounded-xl shadow-sm mb-6 p-8 flex flex-col\",\n style: {\n maxWidth: '55%'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"px-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"flex flex-col\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"h1\", {\n className: \"text-text-primary m-0 mb-2 uael-65-width\",\n style: {\n fontSize: '1.6rem',\n lineHeight: '1.3em'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"block\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)(\"Thank You For Choosing\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"block\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)(\"Ultimate Addons for Elementor\", \"uael\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"text-md font-medium text-text-tertiary m-0 mb-6 uael-88-width\",\n style: {\n lineHeight: '1.5em'\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)(\"We're excited to have you onboard. Get ready to create stunning headers, footers, and custom blocks with ease while keeping your website lightweight and fast.\", \"uael\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"img\", {\n alt: \"Welcome\",\n className: \"w-full h-auto mb-6 mt-2\",\n src: \"\".concat(uaelSettingsData.welcome_banner),\n loading: \"lazy\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_1__.Button, {\n iconPosition: \"right\",\n variant: \"primary\",\n className: \"bg-[#6005FF] uael-remove-ring p-3 px-5 font-bold mt-2\",\n style: {\n backgroundColor: \"#6005FF\",\n transition: \"background-color 0.3s ease\"\n },\n onMouseEnter: function onMouseEnter(e) {\n return e.currentTarget.style.backgroundColor = \"#4B00CC\";\n },\n onMouseLeave: function onMouseLeave(e) {\n return e.currentTarget.style.backgroundColor = \"#6005FF\";\n },\n onClick: function onClick() {\n return setCurrentStep(2);\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)(\"Let's Get Started\", \"uael\"))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Welcome);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9PbmJvYXJkaW5nL1dlbGNvbWUuanN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBMEI7QUFDYTtBQUNGO0FBRXJDLElBQU1HLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFBQyxJQUFBLEVBQTJCO0VBQUEsSUFBckJDLGNBQWMsR0FBQUQsSUFBQSxDQUFkQyxjQUFjO0VBQzdCLG9CQUNJTCwwREFBQTtJQUFLTyxTQUFTLEVBQUMsMkhBQTJIO0lBQUNDLEtBQUssRUFBRTtNQUFFQyxRQUFRLEVBQUU7SUFBTTtFQUFFLGdCQUNsS1QsMERBQUE7SUFBS08sU0FBUyxFQUFDO0VBQU0sZ0JBQ2pCUCwwREFBQTtJQUFLTyxTQUFTLEVBQUM7RUFBZSxnQkFDMUJQLDBEQUFBO0lBQUlPLFNBQVMsRUFBQywwQ0FBMEM7SUFBQ0MsS0FBSyxFQUFFO01BQUVFLFFBQVEsRUFBRSxRQUFRO01BQUVDLFVBQVUsRUFBRTtJQUFRO0VBQUUsZ0JBQ3hHWCwwREFBQTtJQUFNTyxTQUFTLEVBQUM7RUFBTyxHQUFFTCxtREFBRSxDQUN2Qix3QkFBd0IsRUFDeEIsTUFDSixDQUNNLENBQUMsZUFDUEYsMERBQUE7SUFBTU8sU0FBUyxFQUFDO0VBQU8sR0FBRUwsbURBQUUsQ0FDdkIsK0JBQStCLEVBQy9CLE1BQ0osQ0FDRSxDQUNGLENBQUMsZUFDTEYsMERBQUE7SUFBTU8sU0FBUyxFQUFDLCtEQUErRDtJQUFDQyxLQUFLLEVBQUU7TUFBRUcsVUFBVSxFQUFFO0lBQVE7RUFBRSxHQUMxR1QsbURBQUUsQ0FDQyxnS0FBZ0ssRUFDaEssTUFDSixDQUNFLENBQ0wsQ0FBQyxlQUNORiwwREFBQTtJQUNJWSxHQUFHLEVBQUMsU0FBUztJQUNiTCxTQUFTLEVBQUMseUJBQXlCO0lBQ25DTSxHQUFHLEtBQUFDLE1BQUEsQ0FBS0MsZ0JBQWdCLENBQUNDLGNBQWMsQ0FBRztJQUMxQ0MsT0FBTyxFQUFDO0VBQU0sQ0FDakIsQ0FBQyxlQUNGakIsMERBQUEsQ0FBQ0MsaURBQU07SUFDSGlCLFlBQVksRUFBQyxPQUFPO0lBQ3BCQyxPQUFPLEVBQUMsU0FBUztJQUNqQlosU0FBUyxFQUFDLHVEQUF1RDtJQUNqRUMsS0FBSyxFQUFFO01BQ0hZLGVBQWUsRUFBRSxTQUFTO01BQzFCQyxVQUFVLEVBQUU7SUFDaEIsQ0FBRTtJQUNGQyxZQUFZLEVBQUUsU0FBZEEsWUFBWUEsQ0FBR0MsQ0FBQztNQUFBLE9BQ2ZBLENBQUMsQ0FBQ0MsYUFBYSxDQUFDaEIsS0FBSyxDQUFDWSxlQUFlLEdBQ2xDLFNBQVM7SUFBQSxDQUNaO0lBQ0RLLFlBQVksRUFBRSxTQUFkQSxZQUFZQSxDQUFHRixDQUFDO01BQUEsT0FDZkEsQ0FBQyxDQUFDQyxhQUFhLENBQUNoQixLQUFLLENBQUNZLGVBQWUsR0FDbEMsU0FBUztJQUFBLENBQ1o7SUFDRE0sT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7TUFBQSxPQUFRckIsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUFBO0VBQUMsR0FFaENILG1EQUFFLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxDQUMzQixDQUNQLENBQ0osQ0FBQztBQUVkLENBQUM7QUFFRCwrREFBZUMsT0FBTyIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9zcmMvQ29tcG9uZW50cy9PbmJvYXJkaW5nL1dlbGNvbWUuanN4PzU1YzAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJ0Bic2YvZm9yY2UtdWknO1xuaW1wb3J0IHsgX18gfSBmcm9tIFwiQHdvcmRwcmVzcy9pMThuXCI7XG5cbmNvbnN0IFdlbGNvbWUgPSAoeyBzZXRDdXJyZW50U3RlcCB9KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZy1iYWNrZ3JvdW5kLXByaW1hcnkgYm9yZGVyLVswLjVweF0gaXRlbXMtc3RhcnQganVzdGlmeS1jZW50ZXIgYm9yZGVyLXN1YnRsZSByb3VuZGVkLXhsIHNoYWRvdy1zbSBtYi02IHAtOCBmbGV4IGZsZXgtY29sXCIgc3R5bGU9e3sgbWF4V2lkdGg6ICc1NSUnIH19PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJweC0xXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LXRleHQtcHJpbWFyeSBtLTAgbWItMiB1YWVsLTY1LXdpZHRoXCIgc3R5bGU9e3sgZm9udFNpemU6ICcxLjZyZW0nLCBsaW5lSGVpZ2h0OiAnMS4zZW0nIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYmxvY2tcIj57X18oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGFuayBZb3UgRm9yIENob29zaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ1YWVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJibG9ja1wiPntfXyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlVsdGltYXRlIEFkZG9ucyBmb3IgRWxlbWVudG9yXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ1YWVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1tZCBmb250LW1lZGl1bSB0ZXh0LXRleHQtdGVydGlhcnkgbS0wIG1iLTYgdWFlbC04OC13aWR0aFwiIHN0eWxlPXt7IGxpbmVIZWlnaHQ6ICcxLjVlbScgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7X18oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJXZSdyZSBleGNpdGVkIHRvIGhhdmUgeW91IG9uYm9hcmQuIEdldCByZWFkeSB0byBjcmVhdGUgc3R1bm5pbmcgaGVhZGVycywgZm9vdGVycywgYW5kIGN1c3RvbSBibG9ja3Mgd2l0aCBlYXNlIHdoaWxlIGtlZXBpbmcgeW91ciB3ZWJzaXRlIGxpZ2h0d2VpZ2h0IGFuZCBmYXN0LlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidWFlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJXZWxjb21lXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGgtYXV0byBtYi02IG10LTJcIlxuICAgICAgICAgICAgICAgICAgICBzcmM9e2Ake3VhZWxTZXR0aW5nc0RhdGEud2VsY29tZV9iYW5uZXJ9YH1cbiAgICAgICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctWyM2MDA1RkZdIHVhZWwtcmVtb3ZlLXJpbmcgcC0zIHB4LTUgZm9udC1ib2xkIG10LTJcIlxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcIiM2MDA1RkZcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IFwiYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2VcIixcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgKGUuY3VycmVudFRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPVxuICAgICAgICAgICAgICAgICAgICAgICAgXCIjNEIwMENDXCIpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlPXsoZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgKGUuY3VycmVudFRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPVxuICAgICAgICAgICAgICAgICAgICAgICAgXCIjNjAwNUZGXCIpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0Q3VycmVudFN0ZXAoMil9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7X18oXCJMZXQncyBHZXQgU3RhcnRlZFwiLCBcInVhZWxcIil9XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFdlbGNvbWU7Il0sIm5hbWVzIjpbIlJlYWN0IiwiQnV0dG9uIiwiX18iLCJXZWxjb21lIiwiX3JlZiIsInNldEN1cnJlbnRTdGVwIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInN0eWxlIiwibWF4V2lkdGgiLCJmb250U2l6ZSIsImxpbmVIZWlnaHQiLCJhbHQiLCJzcmMiLCJjb25jYXQiLCJ1YWVsU2V0dGluZ3NEYXRhIiwid2VsY29tZV9iYW5uZXIiLCJsb2FkaW5nIiwiaWNvblBvc2l0aW9uIiwidmFyaWFudCIsImJhY2tncm91bmRDb2xvciIsInRyYW5zaXRpb24iLCJvbk1vdXNlRW50ZXIiLCJlIiwiY3VycmVudFRhcmdldCIsIm9uTW91c2VMZWF2ZSIsIm9uQ2xpY2siXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/Components/Onboarding/Welcome.jsx\n");
/***/ }),
/***/ "./src/Components/Onboarding/index.js":
/*!********************************************!*\
!*** ./src/Components/Onboarding/index.js ***!
\********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _router_link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../router/link */ \"./src/router/link.js\");\n/* harmony import */ var _admin_settings_routes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../admin/settings/routes */ \"./src/admin/settings/routes.js\");\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/x.js\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _Welcome__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Welcome */ \"./src/Components/Onboarding/Welcome.jsx\");\n/* harmony import */ var _Build__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Build */ \"./src/Components/Onboarding/Build.jsx\");\n/* harmony import */ var _Configure__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Configure */ \"./src/Components/Onboarding/Configure.jsx\");\n\n\n\n\n\n\n\n\n\n\n// import Success from \"./Success\";\n\nvar steps = [{\n label: \"Welcome\",\n component: _Welcome__WEBPACK_IMPORTED_MODULE_6__[\"default\"]\n}, {\n label: \"Configure\",\n component: _Configure__WEBPACK_IMPORTED_MODULE_8__[\"default\"]\n}, {\n label: \"Create\",\n component: _Build__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n}];\nvar Onboarding = function Onboarding() {\n var _steps;\n var _React$useState = react__WEBPACK_IMPORTED_MODULE_1___default().useState(function () {\n var savedStep = localStorage.getItem(\"currentStep\");\n return savedStep ? parseInt(savedStep, 10) : 1;\n }),\n _React$useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_React$useState, 2),\n currentStep = _React$useState2[0],\n setCurrentStep = _React$useState2[1];\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n localStorage.setItem(\"currentStep\", currentStep);\n }, [currentStep]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n var timer = setTimeout(function () {\n localStorage.removeItem(\"currentStep\");\n }, 180000); // 3 minutes in milliseconds.\n\n return function () {\n return clearTimeout(timer);\n }; // Clear the timeout if the component unmounts.\n }, []);\n var StepComponent = (_steps = steps[currentStep - 1]) === null || _steps === void 0 ? void 0 : _steps.component;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"w-full pb-10\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex flex-col items-center justify-center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Topbar, {\n className: \"bg-none\",\n style: {\n background: \"none\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Topbar.Left, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Topbar.Item, null, uaelSettingsData.uae_logo && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_router_link__WEBPACK_IMPORTED_MODULE_3__.Link, {\n to: _admin_settings_routes__WEBPACK_IMPORTED_MODULE_4__.routes.dashboard.path\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.uae_logo),\n alt: \"Logo\",\n className: \"cursor-pointer\",\n style: {\n height: \"35px\"\n }\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Topbar.Middle, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Topbar.Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.ProgressSteps, {\n currentStep: currentStep,\n className: \"uae-steps\",\n variant: \"number\"\n }, steps.map(function (step, index) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.ProgressSteps.Step, {\n key: index,\n className: \"font-bold\",\n labelText: step.label,\n size: \"md\"\n });\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Topbar.Right, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Topbar.Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_router_link__WEBPACK_IMPORTED_MODULE_3__.Link, {\n className: \"uael-remove-ring\",\n to: _admin_settings_routes__WEBPACK_IMPORTED_MODULE_4__.routes.dashboard.path,\n style: {\n marginLeft: '125px'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Button, {\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"size-4\"\n }),\n iconPosition: \"right\",\n size: \"xs\",\n variant: \"ghost\",\n className: \"uael-remove-ring\"\n }))))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex items-center justify-center\"\n }, StepComponent && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(StepComponent, {\n currentStep: currentStep,\n setCurrentStep: setCurrentStep\n })));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Onboarding);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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YXJkaW5nL2luZGV4LmpzPzIxMWEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQ29udGFpbmVyLCBUb3BiYXIsIEJ1dHRvbiwgUHJvZ3Jlc3NTdGVwcyB9IGZyb20gXCJAYnNmL2ZvcmNlLXVpXCI7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSBcIi4uLy4uL3JvdXRlci9saW5rXCI7XG5pbXBvcnQgeyByb3V0ZXMgfSBmcm9tIFwiLi4vLi4vYWRtaW4vc2V0dGluZ3Mvcm91dGVzXCI7XG5pbXBvcnQgeyBYIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuaW1wb3J0IHsgX18gfSBmcm9tIFwiQHdvcmRwcmVzcy9pMThuXCI7XG5pbXBvcnQgV2VsY29tZSBmcm9tIFwiLi9XZWxjb21lXCI7XG5pbXBvcnQgQnVpbGQgZnJvbSBcIi4vQnVpbGRcIjtcbmltcG9ydCBDb25maWd1cmUgZnJvbSBcIi4vQ29uZmlndXJlXCI7XG4vLyBpbXBvcnQgU3VjY2VzcyBmcm9tIFwiLi9TdWNjZXNzXCI7XG5cbmNvbnN0IHN0ZXBzID0gW1xuICAgIHsgbGFiZWw6IFwiV2VsY29tZVwiLCBjb21wb25lbnQ6IFdlbGNvbWUgfSxcbiAgICB7IGxhYmVsOiBcIkNvbmZpZ3VyZVwiLCBjb21wb25lbnQ6IENvbmZpZ3VyZSB9LFxuICAgIHsgbGFiZWw6IFwiQ3JlYXRlXCIsIGNvbXBvbmVudDogQnVpbGQgfSxcbl07XG5cbmNvbnN0IE9uYm9hcmRpbmcgPSAoKSA9PiB7XG4gICAgY29uc3QgW2N1cnJlbnRTdGVwLCBzZXRDdXJyZW50U3RlcF0gPSBSZWFjdC51c2VTdGF0ZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNhdmVkU3RlcCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY3VycmVudFN0ZXBcIik7XG4gICAgICAgIHJldHVybiBzYXZlZFN0ZXAgPyBwYXJzZUludChzYXZlZFN0ZXAsIDEwKSA6IDE7XG4gICAgfSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImN1cnJlbnRTdGVwXCIsIGN1cnJlbnRTdGVwKTtcbiAgICB9LCBbY3VycmVudFN0ZXBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcImN1cnJlbnRTdGVwXCIpO1xuICAgICAgICB9LCAxODAwMDApOyAvLyAzIG1pbnV0ZXMgaW4gbWlsbGlzZWNvbmRzLlxuXG4gICAgICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZXIpOyAvLyBDbGVhciB0aGUgdGltZW91dCBpZiB0aGUgY29tcG9uZW50IHVubW91bnRzLlxuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IFN0ZXBDb21wb25lbnQgPSBzdGVwc1tjdXJyZW50U3RlcCAtIDFdPy5jb21wb25lbnQ7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGwgcGItMTBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxUb3BiYXIgY2xhc3NOYW1lPVwiYmctbm9uZVwiIHN0eWxlPXt7IGJhY2tncm91bmQ6IFwibm9uZVwiIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFRvcGJhci5MZWZ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUb3BiYXIuSXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3VhZWxTZXR0aW5nc0RhdGEudWFlX2xvZ28gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpbmsgdG89e3JvdXRlcy5kYXNoYm9hcmQucGF0aH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9e2Ake3VhZWxTZXR0aW5nc0RhdGEudWFlX2xvZ299YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiTG9nb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgaGVpZ2h0OiBcIjM1cHhcIiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Ub3BiYXIuSXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9wYmFyLkxlZnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8VG9wYmFyLk1pZGRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9wYmFyLkl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQcm9ncmVzc1N0ZXBzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RlcD17Y3VycmVudFN0ZXB9XG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJ1YWUtc3RlcHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdGVwcy5tYXAoKHN0ZXAsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFByb2dyZXNzU3RlcHMuU3RlcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb250LWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbFRleHQ9e3N0ZXAubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Byb2dyZXNzU3RlcHM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Ub3BiYXIuSXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9wYmFyLk1pZGRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxUb3BiYXIuUmlnaHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvcGJhci5JdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGluayBjbGFzc05hbWU9XCJ1YWVsLXJlbW92ZS1yaW5nXCIgdG89e3JvdXRlcy5kYXNoYm9hcmQucGF0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogJzEyNXB4J319PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249ezxYIGNsYXNzTmFtZT1cInNpemUtNFwiIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidWFlbC1yZW1vdmUtcmluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RvcGJhci5JdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Ub3BiYXIuUmlnaHQ+XG4gICAgICAgICAgICAgICAgICAgIDwvVG9wYmFyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICB7U3RlcENvbXBvbmVudCAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdGVwQ29tcG9uZW50IGN1cnJlbnRTdGVwPXtjdXJyZW50U3RlcH0gc2V0Q3VycmVudFN0ZXA9e3NldEN1cnJlbnRTdGVwfSAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9uYm9hcmRpbmc7XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VFZmZlY3QiLCJDb250YWluZXIiLCJUb3BiYXIiLCJCdXR0b24iLCJQcm9ncmVzc1N0ZXBzIiwiTGluayIsInJvdXRlcyIsIlgiLCJfXyIsIldlbGNvbWUiLCJCdWlsZCIsIkNvbmZpZ3VyZSIsInN0ZXBzIiwibGFiZWwiLCJjb21wb25lbnQiLCJPbmJvYXJkaW5nIiwiX3N0ZXBzIiwiX1JlYWN0JHVzZVN0YXRlIiwidXNlU3RhdGUiLCJzYXZlZFN0ZXAiLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwicGFyc2VJbnQiLCJfUmVhY3QkdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJjdXJyZW50U3RlcCIsInNldEN1cnJlbnRTdGVwIiwic2V0SXRlbSIsInRpbWVyIiwic2V0VGltZW91dCIsInJlbW92ZUl0ZW0iLCJjbGVhclRpbWVvdXQiLCJTdGVwQ29tcG9uZW50IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInN0eWxlIiwiYmFja2dyb3VuZCIsIkxlZnQiLCJJdGVtIiwidWFlbFNldHRpbmdzRGF0YSIsInVhZV9sb2dvIiwidG8iLCJkYXNoYm9hcmQiLCJwYXRoIiwic3JjIiwiY29uY2F0IiwiYWx0IiwiaGVpZ2h0IiwiTWlkZGxlIiwidmFyaWFudCIsIm1hcCIsInN0ZXAiLCJpbmRleCIsIlN0ZXAiLCJrZXkiLCJsYWJlbFRleHQiLCJzaXplIiwiUmlnaHQiLCJtYXJnaW5MZWZ0IiwiaWNvbiIsImljb25Qb3NpdGlvbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/Components/Onboarding/index.js\n");
/***/ }),
/***/ "./src/Components/Settings/Branding.jsx":
/*!**********************************************!*\
!*** ./src/Components/Settings/Branding.jsx ***!
\**********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/file-text.js\");\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/loader-circle.js\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/api-fetch */ \"@wordpress/api-fetch\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react_hot_toast__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-hot-toast */ \"./node_modules/react-hot-toast/dist/index.mjs\");\n\n\nfunction 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; }\nfunction _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) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(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\n\n\n\n\n\nvar Branding = function Branding(args) {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)({\n author: '',\n author_url: '',\n plugin_name: '',\n short_name: '',\n description: '',\n hide_branding: false,\n logo_url: '',\n internal_help_links: false,\n replace_logo: false\n }),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useState, 2),\n settings = _useState2[0],\n setSettings = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(true),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useState3, 2),\n loading = _useState4[0],\n setLoading = _useState4[1];\n var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false),\n _useState6 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useState5, 2),\n isSaving = _useState6[0],\n setIsSaving = _useState6[1];\n\n // Fetch branding settings on component mount\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(function () {\n var fetchBrandingSettings = function fetchBrandingSettings() {\n setLoading(true);\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_4___default()({\n path: '/uael/v1/branding',\n headers: {\n 'Content-Type': 'application/json',\n 'X-WP-Nonce': uaelSettingsData.uael_nonce_action\n }\n }).then(function (data) {\n setSettings({\n author: data.agency.author || '',\n author_url: data.agency.author_url || '',\n plugin_name: data.plugin.name || '',\n short_name: data.plugin.short_name || '',\n description: data.plugin.description || '',\n hide_branding: '1' === data.agency.hide_branding || 'enable' === data.agency.hide_branding ? true : false,\n replace_logo: 'enable' === data.replace_logo ? true : false,\n logo_url: data.logo_url || '',\n internal_help_links: 'enable' === data.internal_help_links ? true : false\n });\n setLoading(false);\n })[\"catch\"](function (error) {\n console.error('Error fetching branding settings:', error);\n react_hot_toast__WEBPACK_IMPORTED_MODULE_6__[\"default\"].error((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Error fetching settings. Please try again.', 'uael'));\n setLoading(false);\n });\n };\n fetchBrandingSettings();\n }, []);\n if (loading) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"h-screen w-screen flex items-center justify-center\",\n style: {\n position: 'relative'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Loader, {\n icon: null,\n size: \"lg\",\n className: \"bg-transparent relative uae-loader-icon\"\n }));\n }\n var handleChange = function handleChange(name, value) {\n setSettings(function (prev) {\n return _objectSpread(_objectSpread({}, prev), {}, (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, name, value));\n });\n };\n var handleSubmit = function handleSubmit(e) {\n e.preventDefault();\n setIsSaving(true);\n var dataToSend = {\n agency: {\n author: settings.author,\n author_url: settings.author_url,\n hide_branding: settings.hide_branding ? 'enable' : 'disable'\n },\n plugin: {\n name: settings.plugin_name,\n short_name: settings.short_name,\n description: settings.description\n },\n logo_url: settings.logo_url,\n internal_help_links: settings.internal_help_links ? 'enable' : 'disable',\n replace_logo: settings.replace_logo ? 'enable' : 'disable'\n };\n fetch('/wp-json/uael/v1/branding', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-WP-Nonce': uaelSettingsData.uael_nonce_action\n },\n body: JSON.stringify(dataToSend)\n }).then(function (response) {\n if (!response.ok) {\n throw new Error('Network response was not ok');\n }\n return response.json();\n }).then(function () {\n react_hot_toast__WEBPACK_IMPORTED_MODULE_6__[\"default\"].success((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Settings saved successfully!', 'uael'));\n location.reload();\n })[\"catch\"](function (error) {\n console.error('Error saving settings:', error);\n react_hot_toast__WEBPACK_IMPORTED_MODULE_6__[\"default\"].error((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Error saving settings. Please try again.', 'uael'));\n })[\"finally\"](function () {\n setIsSaving(false);\n });\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"form\", {\n onSubmit: handleSubmit\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"rounded-lg\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"flex flex-row items-center justify-between\",\n style: {\n paddingBottom: '24px'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Title, {\n description: \"\",\n icon: null,\n iconPosition: \"right\",\n size: \"sm\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('White Label', 'uael')\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"flex items-center justify-between [&_h2]:text-[#6005ff]\",\n style: {\n gap: '22px'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"flex items-center gap-1 cursor-pointer\",\n style: {\n position: 'relative'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n style: {\n color: '#6005ff',\n size: '20px'\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"a\", {\n href: \"https://ultimateelementor.com/docs/how-to-white-label-uael/\",\n target: \"_blank\",\n className: \"text-[#6005ff] text-sm font-medium no-underline\",\n style: {\n color: '#6005ff',\n boxShadow: 'none'\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Read Documentation', 'uael'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Button, {\n type: \"submit\",\n style: {\n backgroundColor: '#6005ff',\n position: 'relative'\n },\n className: \"flex items-center justify-center\",\n icon: isSaving ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"animate-spin\"\n }) : null,\n iconPosition: \"left\",\n disabled: isSaving\n }, isSaving ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Saving...', 'uael') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Save', 'uael')))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Container, {\n align: \"stretch\",\n className: \"flex flex-row\",\n containerType: \"flex\",\n direction: \"column\",\n gap: \"sm\",\n justify: \"start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Container, {\n align: \"stretch\",\n className: \"flex flex-column bg-background-primary\",\n containerType: \"flex\",\n direction: \"column\",\n style: {\n padding: \"24px\",\n borderRadius: \"8px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Title, {\n size: \"sm\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Plugins Details', 'uael'),\n description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('You can change the author name and plugin details that are displayed in the WordPress backend.', 'uael')\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"flex flex-row items-center mt-1 w-full gap-3\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Container.Item, {\n className: \"flex flex-col space-y-1 basis-1/2 flex-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"text-base text-field-label font-semibold m-0 mb-2\"\n }, \"Author\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"input\", {\n label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Author:', 'uael'),\n name: \"author\",\n type: \"text\",\n value: settings.author,\n className: \"w-full border border-subtle px-2\",\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Brainstorm Force', 'uael'),\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none' // Removes the default box shadow\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Container.Item, {\n className: \"flex flex-col space-y-1 basis-1/2 flex-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"text-base text-field-label font-semibold m-0 mb-2\"\n }, \"Author URL\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"input\", {\n label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Author URL:', 'uael'),\n name: \"author_url\",\n className: \"w-full border border-subtle px-2\",\n type: \"url\",\n value: settings.author_url,\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('https://www.brainstormforce.com', 'uael'),\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none' // Removes the default box shadow\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"flex flex-row items-center mt-1 w-full gap-3\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Container.Item, {\n className: \"flex flex-col space-y-1 basis-1/2 flex-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"text-base text-field-label font-semibold m-0 mb-2\"\n }, \"Plugin Name\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"input\", {\n label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Plugin Name:', 'uael'),\n name: \"plugin_name\",\n type: \"text\",\n className: \"w-full border border-subtle px-2\",\n value: settings.plugin_name,\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Ultimate Addons', 'uael'),\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none' // Removes the default box shadow\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Container.Item, {\n className: \"flex flex-col space-y-1 basis-1/2 flex-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"text-base text-field-label font-semibold m-0 mb-2\"\n }, \"Plugin Short Name\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"input\", {\n label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Plugin Short Name:', 'uael'),\n name: \"short_name\",\n type: \"text\",\n className: \"w-full border border-subtle px-2\",\n value: settings.short_name,\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('UAE', 'uael'),\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none' // Removes the default box shadow\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Container.Item, {\n className: \"flex flex-col w-full space-y-1 space-x-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"text-base text-field-label font-semibold m-0\"\n }, \"Plugin Description\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"input\", {\n label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Plugin Description:', 'uael'),\n name: \"description\",\n type: \"text\",\n className: \"w-full border border-subtle\",\n value: settings.description,\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Ultimate Addons is a premium extension for Elementor...', 'uael'),\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none',\n marginTop: '16px' // Removes the default box shadow\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"border border-subtle\",\n style: {\n height: '2px',\n backgroundColor: '#E5E7EB',\n marginTop: '6px'\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Container.Item, {\n className: \"flex flex-col w-full space-y-1 space-x-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"flex flex-row items-center justify-between px-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Title, {\n size: \"xs\",\n tag: \"h3\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Replace or Hide Logo', 'uael'),\n className: \"mt-4\",\n description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Enable this option to hide the default logo or replace it with your own logo. (Note: To hide the logo, leave the logo URL field empty.)', 'uael')\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Switch, {\n onChange: function onChange(e) {\n return handleChange('replace_logo', e);\n },\n size: \"md\",\n value: settings.replace_logo,\n className: \"uael-remove-ring\"\n }))), settings.replace_logo && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Container.Item, {\n className: \"flex flex-col w-full space-y-1 space-x-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"text-base text-field-label font-semibold m-0\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Enter logo URL to replace', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"input\", {\n label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Replace Plugin Logo URL:', 'uael'),\n name: \"logo_url\",\n type: \"url\",\n className: \"w-full border border-subtle\",\n value: settings.logo_url,\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('https://www.example.com/logo.svg', 'uael'),\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none',\n marginTop: '16px' // Removes the default box shadow\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Container.Item, {\n className: \"flex flex-col w-full space-y-1 space-x-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"flex flex-row items-center justify-between px-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Title, {\n size: \"xs\",\n tag: \"h3\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Hide White Label Settings', 'uael'),\n className: \"mt-4\",\n description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Enabling this option will hide the White Label settings. To access it again, re-activate the plugin.', 'uael')\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Switch, {\n onChange: function onChange(e) {\n return handleChange('hide_branding', e);\n },\n size: \"md\",\n value: settings.hide_branding\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"border border-subtle\",\n style: {\n height: '2px',\n backgroundColor: '#E5E7EB',\n marginTop: '6px'\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Container.Item, {\n className: \"flex flex-col w-full space-y-1 space-x-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Title, {\n size: \"sm\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Elementor Editor Area', 'uael'),\n className: \"mt-1\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(\"div\", {\n className: \"flex flex-row items-center justify-between px-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Title, {\n size: \"xs\",\n tag: \"h3\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Show Help Links', 'uael'),\n className: \"mt-4\",\n description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Display internal help links in widget editor area.', 'uael')\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_3__.Switch, {\n onChange: function onChange(e) {\n return handleChange('internal_help_links', e);\n },\n size: \"md\",\n value: settings.internal_help_links\n }))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(react_hot_toast__WEBPACK_IMPORTED_MODULE_6__.Toaster, {\n position: \"top-right\",\n reverseOrder: false,\n gutter: 8,\n containerStyle: {\n top: 20,\n right: 20,\n marginTop: '80px'\n },\n toastOptions: {\n duration: 5000,\n style: {\n background: 'white'\n },\n success: {\n duration: 3000,\n style: {\n color: ''\n },\n iconTheme: {\n primary: '#6005ff',\n secondary: '#fff'\n }\n }\n }\n }))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Branding);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFFLFNBQVZBLFFBQVFBLENBQUdwQyxDQUFDO01BQUEsT0FBS04sWUFBWSxDQUFDLHFCQUFxQixFQUFFTSxDQUFDLENBQUM7SUFBQSxDQUFDO0lBQ3hEUCxJQUFJLEVBQUMsSUFBSTtJQUNURSxLQUFLLEVBQUU3QixRQUFRLENBQUNKO0VBQW9CLENBQ3ZDLENBQ0EsQ0FDTyxDQUVULENBQ1YsQ0FBQyxlQUNOeEIsMERBQUEsQ0FBQ2Esb0RBQU87SUFDSndDLFFBQVEsRUFBQyxXQUFXO0lBQ3BCcUQsWUFBWSxFQUFFLEtBQU07SUFDcEJDLE1BQU0sRUFBRSxDQUFFO0lBQ1ZDLGNBQWMsRUFBRTtNQUNaQyxHQUFHLEVBQUUsRUFBRTtNQUNQQyxLQUFLLEVBQUUsRUFBRTtNQUNUTCxTQUFTLEVBQUU7SUFDZixDQUFFO0lBQ0ZNLFlBQVksRUFBRTtNQUNWQyxRQUFRLEVBQUUsSUFBSTtNQUNkNUQsS0FBSyxFQUFFO1FBQ0g2RCxVQUFVLEVBQUU7TUFDaEIsQ0FBQztNQUNEdkMsT0FBTyxFQUFFO1FBQ0xzQyxRQUFRLEVBQUUsSUFBSTtRQUNkNUQsS0FBSyxFQUFFO1VBQ0grQixLQUFLLEVBQUU7UUFDWCxDQUFDO1FBQ0QrQixTQUFTLEVBQUU7VUFDUEMsT0FBTyxFQUFFLFNBQVM7VUFDbEJDLFNBQVMsRUFBRTtRQUNmO01BQ0o7SUFDSjtFQUFFLENBQ0wsQ0FDTSxDQUNWLENBQ0gsQ0FBQztBQUVmLENBQUM7QUFFRCwrREFBZXRHLFFBQVEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vc3JjL0NvbXBvbmVudHMvU2V0dGluZ3MvQnJhbmRpbmcuanN4P2IyM2MiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENvbnRhaW5lciwgVGl0bGUsIEJ1dHRvbiwgU3dpdGNoLCBMb2FkZXIgfSBmcm9tIFwiQGJzZi9mb3JjZS11aVwiO1xuaW1wb3J0IHsgTG9hZGVyQ2lyY2xlLCBGaWxlVGV4dCB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgYXBpRmV0Y2ggZnJvbSAnQHdvcmRwcmVzcy9hcGktZmV0Y2gnO1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuaW1wb3J0IHRvYXN0LCB7IFRvYXN0ZXIgfSBmcm9tICdyZWFjdC1ob3QtdG9hc3QnO1xuXG5jb25zdCBCcmFuZGluZyA9IChhcmdzKSA9PiB7XG4gICAgY29uc3QgW3NldHRpbmdzLCBzZXRTZXR0aW5nc10gPSB1c2VTdGF0ZSh7XG4gICAgICAgIGF1dGhvcjogJycsXG4gICAgICAgIGF1dGhvcl91cmw6ICcnLFxuICAgICAgICBwbHVnaW5fbmFtZTogJycsXG4gICAgICAgIHNob3J0X25hbWU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICAgIGhpZGVfYnJhbmRpbmc6IGZhbHNlLFxuICAgICAgICBsb2dvX3VybDogJycsXG4gICAgICAgIGludGVybmFsX2hlbHBfbGlua3M6IGZhbHNlLFxuICAgICAgICByZXBsYWNlX2xvZ286IGZhbHNlXG4gICAgfSk7XG5cbiAgICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBbaXNTYXZpbmcsIHNldElzU2F2aW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAgIC8vIEZldGNoIGJyYW5kaW5nIHNldHRpbmdzIG9uIGNvbXBvbmVudCBtb3VudFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZldGNoQnJhbmRpbmdTZXR0aW5ncyA9ICgpID0+IHtcbiAgICAgICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG5cbiAgICAgICAgICAgIGFwaUZldGNoKHtcbiAgICAgICAgICAgICAgICBwYXRoOiAnL3VhZWwvdjEvYnJhbmRpbmcnLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAgICAgJ1gtV1AtTm9uY2UnOiB1YWVsU2V0dGluZ3NEYXRhLnVhZWxfbm9uY2VfYWN0aW9uLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNldFNldHRpbmdzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcjogZGF0YS5hZ2VuY3kuYXV0aG9yIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yX3VybDogZGF0YS5hZ2VuY3kuYXV0aG9yX3VybCB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbl9uYW1lOiBkYXRhLnBsdWdpbi5uYW1lIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnRfbmFtZTogZGF0YS5wbHVnaW4uc2hvcnRfbmFtZSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBkYXRhLnBsdWdpbi5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVfYnJhbmRpbmc6ICgnMScgPT09IGRhdGEuYWdlbmN5LmhpZGVfYnJhbmRpbmcgfHwgJ2VuYWJsZScgPT09IGRhdGEuYWdlbmN5LmhpZGVfYnJhbmRpbmcpID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZV9sb2dvOiAnZW5hYmxlJyA9PT0gZGF0YS5yZXBsYWNlX2xvZ28gPyB0cnVlIDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dvX3VybDogZGF0YS5sb2dvX3VybCB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX2hlbHBfbGlua3M6ICdlbmFibGUnID09PSBkYXRhLmludGVybmFsX2hlbHBfbGlua3MgPyB0cnVlIDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgYnJhbmRpbmcgc2V0dGluZ3M6JywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB0b2FzdC5lcnJvcihfXygnRXJyb3IgZmV0Y2hpbmcgc2V0dGluZ3MuIFBsZWFzZSB0cnkgYWdhaW4uJywgJ3VhZWwnKSk7XG4gICAgICAgICAgICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGZldGNoQnJhbmRpbmdTZXR0aW5ncygpO1xuICAgIH0sIFtdKTtcblxuICAgIGlmIChsb2FkaW5nKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naC1zY3JlZW4gdy1zY3JlZW4gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXInIHN0eWxlPXt7IHBvc2l0aW9uOiAncmVsYXRpdmUnIH19PlxuICAgICAgICAgICAgICAgIDxMb2FkZXIgaWNvbj17bnVsbH0gc2l6ZT1cImxnXCIgY2xhc3NOYW1lPVwiYmctdHJhbnNwYXJlbnQgcmVsYXRpdmUgdWFlLWxvYWRlci1pY29uXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IChuYW1lLCB2YWx1ZSkgPT4ge1xuICAgICAgICBzZXRTZXR0aW5ncyhwcmV2ID0+ICh7IC4uLnByZXYsIFtuYW1lXTogdmFsdWUgfSkpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTdWJtaXQgPSAoZSkgPT4ge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHNldElzU2F2aW5nKHRydWUpO1xuXG4gICAgICAgIGNvbnN0IGRhdGFUb1NlbmQgPSB7XG4gICAgICAgICAgICBhZ2VuY3k6IHtcbiAgICAgICAgICAgICAgICBhdXRob3I6IHNldHRpbmdzLmF1dGhvcixcbiAgICAgICAgICAgICAgICBhdXRob3JfdXJsOiBzZXR0aW5ncy5hdXRob3JfdXJsLFxuICAgICAgICAgICAgICAgIGhpZGVfYnJhbmRpbmc6IHNldHRpbmdzLmhpZGVfYnJhbmRpbmcgPyAnZW5hYmxlJyA6ICdkaXNhYmxlJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwbHVnaW46IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBzZXR0aW5ncy5wbHVnaW5fbmFtZSxcbiAgICAgICAgICAgICAgICBzaG9ydF9uYW1lOiBzZXR0aW5ncy5zaG9ydF9uYW1lLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzZXR0aW5ncy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsb2dvX3VybDogc2V0dGluZ3MubG9nb191cmwsXG4gICAgICAgICAgICBpbnRlcm5hbF9oZWxwX2xpbmtzOiBzZXR0aW5ncy5pbnRlcm5hbF9oZWxwX2xpbmtzID8gJ2VuYWJsZScgOiAnZGlzYWJsZScsXG4gICAgICAgICAgICByZXBsYWNlX2xvZ286IHNldHRpbmdzLnJlcGxhY2VfbG9nbyA/ICdlbmFibGUnIDogJ2Rpc2FibGUnLFxuICAgICAgICB9O1xuXG4gICAgICAgIGZldGNoKCcvd3AtanNvbi91YWVsL3YxL2JyYW5kaW5nJywge1xuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnWC1XUC1Ob25jZSc6IHVhZWxTZXR0aW5nc0RhdGEudWFlbF9ub25jZV9hY3Rpb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZGF0YVRvU2VuZCksXG4gICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTmV0d29yayByZXNwb25zZSB3YXMgbm90IG9rJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRvYXN0LnN1Y2Nlc3MoX18oJ1NldHRpbmdzIHNhdmVkIHN1Y2Nlc3NmdWxseSEnLCAndWFlbCcpKTtcbiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2F2aW5nIHNldHRpbmdzOicsIGVycm9yKTtcbiAgICAgICAgICAgICAgICB0b2FzdC5lcnJvcihfXygnRXJyb3Igc2F2aW5nIHNldHRpbmdzLiBQbGVhc2UgdHJ5IGFnYWluLicsICd1YWVsJykpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRJc1NhdmluZyhmYWxzZSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGZvcm0gb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH0+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPSdyb3VuZGVkLWxnJ1xuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4nIHN0eWxlPXt7IHBhZGRpbmdCb3R0b206ICcyNHB4JyB9fSA+XG4gICAgICAgICAgICAgICAgICAgIDxUaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17bnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWc9XCJoMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17X18oJ1doaXRlIExhYmVsJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIFsmX2gyXTp0ZXh0LVsjNjAwNWZmXScgc3R5bGU9e3sgZ2FwOiAnMjJweCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEgY3Vyc29yLXBvaW50ZXInIHN0eWxlPXt7IHBvc2l0aW9uOiAncmVsYXRpdmUnIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlVGV4dCBzdHlsZT17eyBjb2xvcjogJyM2MDA1ZmYnLCBzaXplOiAnMjBweCcgfX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly91bHRpbWF0ZWVsZW1lbnRvci5jb20vZG9jcy9ob3ctdG8td2hpdGUtbGFiZWwtdWFlbC9cIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzc05hbWU9J3RleHQtWyM2MDA1ZmZdIHRleHQtc20gZm9udC1tZWRpdW0gbm8tdW5kZXJsaW5lJyBzdHlsZT17eyBjb2xvcjogJyM2MDA1ZmYnLCBib3hTaGFkb3c6ICdub25lJyB9fT57X18oJ1JlYWQgRG9jdW1lbnRhdGlvbicsICd1YWVsJyl9PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiAnIzYwMDVmZicsIHBvc2l0aW9uOiAncmVsYXRpdmUnIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e2lzU2F2aW5nID8gPExvYWRlckNpcmNsZSBjbGFzc05hbWU9XCJhbmltYXRlLXNwaW5cIiAvPiA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzU2F2aW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc1NhdmluZyA/IF9fKCdTYXZpbmcuLi4nLCAndWFlbCcpIDogX18oJ1NhdmUnLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgYWxpZ249XCJzdHJldGNoXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclR5cGU9XCJmbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPVwic21cIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5PVwic3RhcnRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbj1cInN0cmV0Y2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2x1bW4gYmctYmFja2dyb3VuZC1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJUeXBlPVwiZmxleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBcIjI0cHhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjhweFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19ID5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaXRsZSBzaXplPVwic21cIiB0YWc9XCJoMlwiIHRpdGxlPXtfXygnUGx1Z2lucyBEZXRhaWxzJywgJ3VhZWwnKX0gZGVzY3JpcHRpb249e19fKCdZb3UgY2FuIGNoYW5nZSB0aGUgYXV0aG9yIG5hbWUgYW5kIHBsdWdpbiBkZXRhaWxzIHRoYXQgYXJlIGRpc3BsYXllZCBpbiB0aGUgV29yZFByZXNzIGJhY2tlbmQuJywgJ3VhZWwnKX0gLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgbXQtMSB3LWZ1bGwgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgc3BhY2UteS0xIGJhc2lzLTEvMiBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSd0ZXh0LWJhc2UgdGV4dC1maWVsZC1sYWJlbCBmb250LXNlbWlib2xkIG0tMCBtYi0yJz5BdXRob3I8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtfXygnQXV0aG9yOicsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImF1dGhvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtzZXR0aW5ncy5hdXRob3J9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSd3LWZ1bGwgYm9yZGVyIGJvcmRlci1zdWJ0bGUgcHgtMidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUNoYW5nZShlLnRhcmdldC5uYW1lLCBlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e19fKCdCcmFpbnN0b3JtIEZvcmNlJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICc0OHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZTBlMGUwJywgLy8gRGVmYXVsdCBib3JkZXIgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogJ25vbmUnLCAgICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IG91dGxpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnbm9uZScsICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IGJveCBzaGFkb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjNjAwNUZGJ30gLy8gQXBwbHkgZm9jdXMgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjZTBlMGUwJ30gIC8vIFJldmVydCB0byBkZWZhdWx0IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgc3BhY2UteS0xIGJhc2lzLTEvMiBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSd0ZXh0LWJhc2UgdGV4dC1maWVsZC1sYWJlbCBmb250LXNlbWlib2xkIG0tMCBtYi0yJz5BdXRob3IgVVJMPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17X18oJ0F1dGhvciBVUkw6JywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYXV0aG9yX3VybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSd3LWZ1bGwgYm9yZGVyIGJvcmRlci1zdWJ0bGUgcHgtMidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2V0dGluZ3MuYXV0aG9yX3VybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUNoYW5nZShlLnRhcmdldC5uYW1lLCBlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e19fKCdodHRwczovL3d3dy5icmFpbnN0b3JtZm9yY2UuY29tJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICc0OHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZTBlMGUwJywgLy8gRGVmYXVsdCBib3JkZXIgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogJ25vbmUnLCAgICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IG91dGxpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnbm9uZScsICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IGJveCBzaGFkb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjNjAwNUZGJ30gLy8gQXBwbHkgZm9jdXMgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjZTBlMGUwJ30gIC8vIFJldmVydCB0byBkZWZhdWx0IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBtdC0xIHctZnVsbCBnYXAtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyLkl0ZW0gY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBzcGFjZS15LTEgYmFzaXMtMS8yIGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3RleHQtYmFzZSB0ZXh0LWZpZWxkLWxhYmVsIGZvbnQtc2VtaWJvbGQgbS0wIG1iLTInPlBsdWdpbiBOYW1lPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17X18oJ1BsdWdpbiBOYW1lOicsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInBsdWdpbl9uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSd3LWZ1bGwgYm9yZGVyIGJvcmRlci1zdWJ0bGUgcHgtMidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2V0dGluZ3MucGx1Z2luX25hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVDaGFuZ2UoZS50YXJnZXQubmFtZSwgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtfXygnVWx0aW1hdGUgQWRkb25zJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICc0OHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZTBlMGUwJywgLy8gRGVmYXVsdCBib3JkZXIgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogJ25vbmUnLCAgICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IG91dGxpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnbm9uZScsICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IGJveCBzaGFkb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjNjAwNUZGJ30gLy8gQXBwbHkgZm9jdXMgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjZTBlMGUwJ30gIC8vIFJldmVydCB0byBkZWZhdWx0IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbSBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIHNwYWNlLXktMSBiYXNpcy0xLzIgZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ndGV4dC1iYXNlIHRleHQtZmllbGQtbGFiZWwgZm9udC1zZW1pYm9sZCBtLTAgbWItMic+UGx1Z2luIFNob3J0IE5hbWU8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtfXygnUGx1Z2luIFNob3J0IE5hbWU6JywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic2hvcnRfbmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0ndy1mdWxsIGJvcmRlciBib3JkZXItc3VidGxlIHB4LTInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3NldHRpbmdzLnNob3J0X25hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVDaGFuZ2UoZS50YXJnZXQubmFtZSwgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtfXygnVUFFJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICc0OHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZTBlMGUwJywgLy8gRGVmYXVsdCBib3JkZXIgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogJ25vbmUnLCAgICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IG91dGxpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnbm9uZScsICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IGJveCBzaGFkb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjNjAwNUZGJ30gLy8gQXBwbHkgZm9jdXMgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjZTBlMGUwJ30gIC8vIFJldmVydCB0byBkZWZhdWx0IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgdy1mdWxsIHNwYWNlLXktMSBzcGFjZS14LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3RleHQtYmFzZSB0ZXh0LWZpZWxkLWxhYmVsIGZvbnQtc2VtaWJvbGQgbS0wJz5QbHVnaW4gRGVzY3JpcHRpb248L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17X18oJ1BsdWdpbiBEZXNjcmlwdGlvbjonLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0ndy1mdWxsIGJvcmRlciBib3JkZXItc3VidGxlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3NldHRpbmdzLmRlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVDaGFuZ2UoZS50YXJnZXQubmFtZSwgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e19fKCdVbHRpbWF0ZSBBZGRvbnMgaXMgYSBwcmVtaXVtIGV4dGVuc2lvbiBmb3IgRWxlbWVudG9yLi4uJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZTBlMGUwJywgLy8gRGVmYXVsdCBib3JkZXIgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiAnbm9uZScsICAgICAgIC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgb3V0bGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJzE2cHgnICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IGJveCBzaGFkb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXsoZSkgPT4gZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnIzYwMDVGRid9IC8vIEFwcGx5IGZvY3VzIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjZTBlMGUwJ30gIC8vIFJldmVydCB0byBkZWZhdWx0IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXIuSXRlbT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdib3JkZXIgYm9yZGVyLXN1YnRsZScgc3R5bGU9e3sgaGVpZ2h0OiAnMnB4JywgYmFja2dyb3VuZENvbG9yOiAnI0U1RTdFQicsIG1hcmdpblRvcDogJzZweCcgfX0gLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbSBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIHctZnVsbCBzcGFjZS15LTEgc3BhY2UteC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcHgtMSc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaXRsZSBzaXplPVwieHNcIiB0YWc9XCJoM1wiIHRpdGxlPXtfXygnUmVwbGFjZSBvciBIaWRlIExvZ28nLCAndWFlbCcpfSBjbGFzc05hbWU9XCJtdC00XCIgZGVzY3JpcHRpb249e19fKCdFbmFibGUgdGhpcyBvcHRpb24gdG8gaGlkZSB0aGUgZGVmYXVsdCBsb2dvIG9yIHJlcGxhY2UgaXQgd2l0aCB5b3VyIG93biBsb2dvLiAoTm90ZTogVG8gaGlkZSB0aGUgbG9nbywgbGVhdmUgdGhlIGxvZ28gVVJMIGZpZWxkIGVtcHR5LiknLCAndWFlbCcpfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3dpdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVDaGFuZ2UoJ3JlcGxhY2VfbG9nbycsIGUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9J21kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtzZXR0aW5ncy5yZXBsYWNlX2xvZ299XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidWFlbC1yZW1vdmUtcmluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzZXR0aW5ncy5yZXBsYWNlX2xvZ28gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyLkl0ZW0gY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGwgc3BhY2UteS0xIHNwYWNlLXgtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3RleHQtYmFzZSB0ZXh0LWZpZWxkLWxhYmVsIGZvbnQtc2VtaWJvbGQgbS0wJz57X18oJ0VudGVyIGxvZ28gVVJMIHRvIHJlcGxhY2UnLCAndWFlbCcpfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e19fKCdSZXBsYWNlIFBsdWdpbiBMb2dvIFVSTDonLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJsb2dvX3VybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSd3LWZ1bGwgYm9yZGVyIGJvcmRlci1zdWJ0bGUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3NldHRpbmdzLmxvZ29fdXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlQ2hhbmdlKGUudGFyZ2V0Lm5hbWUsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17X18oJ2h0dHBzOi8vd3d3LmV4YW1wbGUuY29tL2xvZ28uc3ZnJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICc0OHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZTBlMGUwJywgLy8gRGVmYXVsdCBib3JkZXIgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogJ25vbmUnLCAgICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IG91dGxpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJzE2cHgnICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IGJveCBzaGFkb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjNjAwNUZGJ30gLy8gQXBwbHkgZm9jdXMgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjZTBlMGUwJ30gIC8vIFJldmVydCB0byBkZWZhdWx0IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyLkl0ZW0gY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGwgc3BhY2UteS0xIHNwYWNlLXgtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB4LTEnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGl0bGUgc2l6ZT1cInhzXCIgdGFnPVwiaDNcIiB0aXRsZT17X18oJ0hpZGUgV2hpdGUgTGFiZWwgU2V0dGluZ3MnLCAndWFlbCcpfSBjbGFzc05hbWU9XCJtdC00XCIgZGVzY3JpcHRpb249e19fKCdFbmFibGluZyB0aGlzIG9wdGlvbiB3aWxsIGhpZGUgdGhlIFdoaXRlIExhYmVsIHNldHRpbmdzLiBUbyBhY2Nlc3MgaXQgYWdhaW4sIHJlLWFjdGl2YXRlIHRoZSBwbHVnaW4uJywgJ3VhZWwnKX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN3aXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlQ2hhbmdlKCdoaWRlX2JyYW5kaW5nJywgZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT0nbWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3NldHRpbmdzLmhpZGVfYnJhbmRpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2JvcmRlciBib3JkZXItc3VidGxlJyBzdHlsZT17eyBoZWlnaHQ6ICcycHgnLCBiYWNrZ3JvdW5kQ29sb3I6ICcjRTVFN0VCJywgbWFyZ2luVG9wOiAnNnB4JyB9fSAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgdy1mdWxsIHNwYWNlLXktMSBzcGFjZS14LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRpdGxlIHNpemU9XCJzbVwiIHRhZz1cImgyXCIgdGl0bGU9e19fKCdFbGVtZW50b3IgRWRpdG9yIEFyZWEnLCAndWFlbCcpfSBjbGFzc05hbWU9XCJtdC0xXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBweC0xJz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaXRsZSBzaXplPVwieHNcIiB0YWc9XCJoM1wiIHRpdGxlPXtfXygnU2hvdyBIZWxwIExpbmtzJywgJ3VhZWwnKX0gY2xhc3NOYW1lPVwibXQtNFwiIGRlc2NyaXB0aW9uPXtfXygnRGlzcGxheSBpbnRlcm5hbCBoZWxwIGxpbmtzIGluIHdpZGdldCBlZGl0b3IgYXJlYS4nLCAndWFlbCcpfSAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3dpdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVDaGFuZ2UoJ2ludGVybmFsX2hlbHBfbGlua3MnLCBlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPSdtZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2V0dGluZ3MuaW50ZXJuYWxfaGVscF9saW5rc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPFRvYXN0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPVwidG9wLXJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmVyc2VPcmRlcj17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICBndXR0ZXI9ezh9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJTdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMjAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDIwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJzgwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRvYXN0T3B0aW9ucz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiA1MDAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd3aGl0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uVGhlbWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnk6ICcjNjAwNWZmJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeTogJyNmZmYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBCcmFuZGluZ1xuIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJDb250YWluZXIiLCJUaXRsZSIsIkJ1dHRvbiIsIlN3aXRjaCIsIkxvYWRlciIsIkxvYWRlckNpcmNsZSIsIkZpbGVUZXh0IiwiYXBpRmV0Y2giLCJfXyIsInRvYXN0IiwiVG9hc3RlciIsIkJyYW5kaW5nIiwiYXJncyIsIl91c2VTdGF0ZSIsImF1dGhvciIsImF1dGhvcl91cmwiLCJwbHVnaW5fbmFtZSIsInNob3J0X25hbWUiLCJkZXNjcmlwdGlvbiIsImhpZGVfYnJhbmRpbmciLCJsb2dvX3VybCIsImludGVybmFsX2hlbHBfbGlua3MiLCJyZXBsYWNlX2xvZ28iLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXR0aW5ncyIsInNldFNldHRpbmdzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNTYXZpbmciLCJzZXRJc1NhdmluZyIsImZldGNoQnJhbmRpbmdTZXR0aW5ncyIsInBhdGgiLCJoZWFkZXJzIiwidWFlbFNldHRpbmdzRGF0YSIsInVhZWxfbm9uY2VfYWN0aW9uIiwidGhlbiIsImRhdGEiLCJhZ2VuY3kiLCJwbHVnaW4iLCJuYW1lIiwiZXJyb3IiLCJjb25zb2xlIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInN0eWxlIiwicG9zaXRpb24iLCJpY29uIiwic2l6ZSIsImhhbmRsZUNoYW5nZSIsInZhbHVlIiwicHJldiIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJoYW5kbGVTdWJtaXQiLCJlIiwicHJldmVudERlZmF1bHQiLCJkYXRhVG9TZW5kIiwiZmV0Y2giLCJtZXRob2QiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsInJlc3BvbnNlIiwib2siLCJFcnJvciIsImpzb24iLCJzdWNjZXNzIiwibG9jYXRpb24iLCJyZWxvYWQiLCJvblN1Ym1pdCIsInBhZGRpbmdCb3R0b20iLCJpY29uUG9zaXRpb24iLCJ0YWciLCJ0aXRsZSIsImdhcCIsImNvbG9yIiwiaHJlZiIsInRhcmdldCIsImJveFNoYWRvdyIsInR5cGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJkaXNhYmxlZCIsImFsaWduIiwiY29udGFpbmVyVHlwZSIsImRpcmVjdGlvbiIsImp1c3RpZnkiLCJwYWRkaW5nIiwiYm9yZGVyUmFkaXVzIiwiSXRlbSIsImxhYmVsIiwib25DaGFuZ2UiLCJwbGFjZWhvbGRlciIsImhlaWdodCIsImJvcmRlckNvbG9yIiwib3V0bGluZSIsIm9uRm9jdXMiLCJvbkJsdXIiLCJtYXJnaW5Ub3AiLCJyZXZlcnNlT3JkZXIiLCJndXR0ZXIiLCJjb250YWluZXJTdHlsZSIsInRvcCIsInJpZ2h0IiwidG9hc3RPcHRpb25zIiwiZHVyYXRpb24iLCJiYWNrZ3JvdW5kIiwiaWNvblRoZW1lIiwicHJpbWFyeSIsInNlY29uZGFyeSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/Components/Settings/Branding.jsx\n");
/***/ }),
/***/ "./src/Components/Settings/Content.jsx":
/*!*********************************************!*\
!*** ./src/Components/Settings/Content.jsx ***!
\*********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nvar Content = function Content(_ref) {\n var selectedItem = _ref.selectedItem;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"p-6\",\n style: {\n marginLeft: '4px'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.content));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Content);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9TZXR0aW5ncy9Db250ZW50LmpzeCIsIm1hcHBpbmdzIjoiOzs7QUFBeUI7QUFFekIsSUFBTUMsT0FBTyxHQUFHLFNBQVZBLE9BQU9BLENBQUFDLElBQUEsRUFBeUI7RUFBQSxJQUFuQkMsWUFBWSxHQUFBRCxJQUFBLENBQVpDLFlBQVk7RUFDN0Isb0JBQ0VILDBEQUFBO0lBQUtLLFNBQVMsRUFBQyxLQUFLO0lBQUNDLEtBQUssRUFBRTtNQUFFQyxVQUFVLEVBQUU7SUFBTTtFQUFFLGdCQUNoRFAsMERBQUEsY0FBTUcsWUFBWSxhQUFaQSxZQUFZLHVCQUFaQSxZQUFZLENBQUVLLE9BQWEsQ0FDOUIsQ0FBQztBQUVWLENBQUM7QUFFRCwrREFBZVAsT0FBTyIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9zcmMvQ29tcG9uZW50cy9TZXR0aW5ncy9Db250ZW50LmpzeD85NzBlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuY29uc3QgQ29udGVudCA9ICh7IHNlbGVjdGVkSXRlbSB9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJwLTZcIiBzdHlsZT17eyBtYXJnaW5MZWZ0OiAnNHB4JyB9fT5cbiAgICAgIDxkaXY+e3NlbGVjdGVkSXRlbT8uY29udGVudH08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBDb250ZW50XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJDb250ZW50IiwiX3JlZiIsInNlbGVjdGVkSXRlbSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJzdHlsZSIsIm1hcmdpbkxlZnQiLCJjb250ZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/Components/Settings/Content.jsx\n");
/***/ }),
/***/ "./src/Components/Settings/Integrations.jsx":
/*!**************************************************!*\
!*** ./src/Components/Settings/Integrations.jsx ***!
\**************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/api-fetch */ \"@wordpress/api-fetch\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var react_hot_toast__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-hot-toast */ \"./node_modules/react-hot-toast/dist/index.mjs\");\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/loader-circle.js\");\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/refresh-ccw.js\");\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash.debounce */ \"./node_modules/lodash.debounce/index.js\");\n/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_8__);\n\n\n\nfunction 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; }\nfunction _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) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(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\n\n\n\n\n\n\nvar Integrations = function Integrations() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)({\n google_api: '',\n // Match the key with the backend\n developer_mode: false,\n language: '',\n google_places_api: '',\n yelp_api: '',\n recaptcha_v3_key: '',\n recaptcha_v3_secretkey: '',\n recaptcha_v3_score: '0.5',\n google_client_id: '',\n facebook_app_id: '',\n facebook_app_secret: '',\n uael_share_button: '',\n uael_maxmind_geolocation_license_key: '',\n uael_maxmind_geolocation_db_path: '',\n uael_twitter_feed_consumer_key: '',\n uael_twitter_feed_consumer_secret: '',\n instagram_app_id: '',\n instagram_app_secret: '',\n instagram_app_token: ''\n }),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState, 2),\n settings = _useState2[0],\n setSettings = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(true),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState3, 2),\n loading = _useState4[0],\n setLoading = _useState4[1];\n var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(null),\n _useState6 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState5, 2),\n error = _useState6[0],\n setError = _useState6[1];\n var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(''),\n _useState8 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState7, 2),\n successMessage = _useState8[0],\n setSuccessMessage = _useState8[1];\n var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(false),\n _useState10 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState9, 2),\n isSaving = _useState10[0],\n setIsSaving = _useState10[1];\n var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(false),\n _useState12 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState11, 2),\n tokenRefresh = _useState12[0],\n setTokenRefresh = _useState12[1];\n var _useState13 = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)('success'),\n _useState14 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState13, 2),\n maxmindStatus = _useState14[0],\n setMaxmindStatus = _useState14[1];\n var languagesData = (0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(window.uaeLanguagesData) === 'object' && window.uaeLanguagesData !== null ? Object.entries(window.uaeLanguagesData) : []; // Convert object to array of [key, value] pairs\n\n (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(function () {\n var fetchSettings = function fetchSettings() {\n setLoading(true);\n setError(null);\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_5___default()({\n path: '/uael/v1/settings',\n headers: {\n 'Content-Type': 'application/json',\n 'X-WP-Nonce': uaelSettingsData.uael_nonce_action // Use the correct nonce\n }\n }).then(function (data) {\n setSettings(data); // Set the fetched settings\n setLoading(false); // Stop loading\n })[\"catch\"](function (err) {\n setError(err.message); // Set error message\n setLoading(false); // Stop loading\n });\n };\n fetchSettings();\n }, []);\n var validateApi = function validateApi(apiKey, source) {\n if ('' === apiKey || '' === source) {\n return;\n }\n var api_type = 'google' === source ? 'Google Places API Key' : 'facebook' === source ? 'Facebook Access Token' : 'Yelp API Key';\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_5___default()({\n path: '/uael/v1/validateApiKey',\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-WP-Nonce': uaelSettingsData.uael_nonce_action // Use the correct nonce\n },\n body: JSON.stringify({\n apiKey: apiKey,\n source: source\n })\n }).then(function (data) {\n if (data.success) {\n react_hot_toast__WEBPACK_IMPORTED_MODULE_7__[\"default\"].success(\"\".concat(api_type, \" authenticated successfully!\"));\n } else {\n react_hot_toast__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error(\"Entered \".concat(api_type, \" is invalid\"));\n }\n })[\"catch\"](function (error) {\n react_hot_toast__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error(error.message);\n });\n };\n var debouncedValidateApi = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(lodash_debounce__WEBPACK_IMPORTED_MODULE_8___default()(validateApi, 500), []);\n var handleChange = function handleChange(name, value) {\n setSettings(function (prevSettings) {\n return _objectSpread(_objectSpread({}, prevSettings), {}, (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, name, value));\n });\n if ('google_places_api' === name) {\n debouncedValidateApi(value, 'google');\n }\n if ('yelp_api' === name) {\n debouncedValidateApi(value, 'yelp');\n }\n if ('uael_share_button' === name) {\n debouncedValidateApi(value, 'facebook');\n }\n };\n var generateInstagramAccessToken = function generateInstagramAccessToken() {\n var refreshTokenURL = 'https://graph.instagram.com/refresh_access_token';\n if (settings.instagram_app_token) {\n setTokenRefresh(true);\n fetch(refreshTokenURL + \"?grant_type=ig_refresh_token&access_token=\".concat(settings.instagram_app_token), {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n }\n }).then(function (response) {\n return response.json();\n }).then(function (data) {\n setTokenRefresh(false);\n if (data.access_token) {\n setSettings(function (prevSettings) {\n return _objectSpread(_objectSpread({}, prevSettings), {}, {\n instagram_app_token: data.access_token // Update with the new token\n });\n });\n react_hot_toast__WEBPACK_IMPORTED_MODULE_7__[\"default\"].success(\"Access token refreshed successfully\");\n } else if (data.error) {\n react_hot_toast__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error(data.error.message || \"An error occurred while refreshing the token.\");\n }\n })[\"catch\"](function (error) {\n setTokenRefresh(false);\n react_hot_toast__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error(\"Failed to refresh the access token. Please try again.\");\n });\n }\n };\n var handleSubmit = function handleSubmit(e) {\n e.preventDefault();\n setError(null);\n setIsSaving(true);\n fetch('/wp-json/uael/v1/settings', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-WP-Nonce': uaelSettingsData.uael_nonce_action // Include the nonce here\n },\n body: JSON.stringify(settings)\n }).then(function (response) {\n return response.json();\n }).then(function (data) {\n if (data.maxmind_status === 'error') {\n setMaxmindStatus('error');\n } else {\n setMaxmindStatus('success');\n }\n setSuccessMessage('Settings saved successfully!'); // Set success message\n react_hot_toast__WEBPACK_IMPORTED_MODULE_7__[\"default\"].success('Settings saved successfully!'); // Show toast notification\n })[\"catch\"](function (err) {\n react_hot_toast__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error('Settings cannot be saved!'); // Show toast notification\n })[\"finally\"](function () {\n setIsSaving(false);\n });\n };\n if (loading) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"h-screen w-screen flex items-center justify-center\",\n style: {\n position: 'relative'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Loader, {\n icon: null,\n size: \"lg\",\n className: \"bg-transparent relative uae-loader-icon\"\n }));\n }\n if (error) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", null, \"Error: \", error);\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"form\", {\n onSubmit: handleSubmit\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"rounded-lg uael-settings-page\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"flex flex-row items-center justify-between\",\n style: {\n paddingBottom: '24px'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n description: \"\",\n icon: null,\n iconPosition: \"right\",\n size: \"sm\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Integrations', 'uael')\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"flex items-center justify-between [&_h2]:text-[#6005ff]\",\n style: {\n gap: '22px'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Button, {\n type: \"submit\",\n style: {\n backgroundColor: '#6005ff',\n position: 'relative'\n },\n className: \"flex items-center justify-center\",\n icon: isSaving ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"animate-spin\"\n }) : null,\n iconPosition: \"left\",\n disabled: isSaving\n }, isSaving ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Saving...', 'uael') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Save', 'uael')))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container, {\n align: \"stretch\",\n className: \"flex flex-row\",\n containerType: \"flex\",\n direction: \"column\",\n gap: \"sm\",\n justify: \"start\",\n style: {\n marginTop: \"24px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"w-full\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container, {\n align: \"stretch\",\n className: \"flex flex-column bg-background-primary\",\n containerType: \"flex\",\n direction: \"column\",\n style: {\n padding: \"24px\",\n borderRadius: \"8px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"sm\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Google Map', 'uael'),\n description: \"\",\n className: \"\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col w-full space-y-1 space-x-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('API Key', 'uael'),\n description: !uaelSettingsData.hide_settings ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Note: This setting is required if you wish to use Google Map in your website. ', 'uael'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"a\", {\n href: \"\".concat(uaelSettingsData.uael_domain, \"docs/create-google-map-api-key/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin\"),\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"uael-link-color no-underline\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Need Help?', 'uael')), \".\") : '',\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n type: \"text\",\n name: \"google_api\" // Match the key with the backend\n ,\n value: settings.google_api,\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Paste your API Key here', 'uael'),\n className: \"w-full border border-subtle\",\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none',\n // Removes the default box shadow\n marginTop: '16px'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"border border-subtle\",\n style: {\n height: '2px',\n backgroundColor: '#E5E7EB',\n marginTop: '16px'\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col w-full space-y-1 space-x-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Localization Language', 'uael'),\n description: !uaelSettingsData.hide_settings ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Note: This setting sets localization language to google map. The language affects the names of controls, copyright notices, driving directions, and control labels. ', 'uael'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"a\", {\n href: \"\".concat(uaelSettingsData.uael_domain, \"docs/how-to-display-uaels-google-maps-widget-in-your-local-language/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin\"),\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"uael-link-color no-underline\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Need Help?', 'uael')), \".\") : '',\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"select\", {\n name: \"language\",\n value: settings.language,\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n className: \"border border-subtle rounded p-2 w-full\",\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none',\n // Removes the default box shadow\n marginTop: '16px'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"option\", {\n value: \"\"\n }, \"Default\"), languagesData.map(function (_ref) {\n var _ref2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_ref, 2),\n code = _ref2[0],\n name = _ref2[1];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"option\", {\n key: code,\n value: code\n }, name);\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container, {\n align: \"stretch\",\n className: \"flex flex-column bg-background-primary\",\n containerType: \"flex\",\n direction: \"column\",\n style: {\n padding: \"24px\",\n borderRadius: \"8px\",\n marginTop: \"32px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"sm\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Business Reviews', 'uael'),\n description: \"\",\n className: \"\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col w-full space-y-1 space-x-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Google Places API Key', 'uael'),\n description: !uaelSettingsData.hide_settings ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Note: This setting is required if you wish to use Google Places Reviews in your website. ', 'uael'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"a\", {\n href: \"\".concat(uaelSettingsData.uael_domain, \"docs/get-google-places-api-key/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin\"),\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"uael-link-color no-underline\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Need Help?', 'uael'))) : '',\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n type: \"text\",\n name: \"google_places_api\" // Match the key with the backend\n ,\n value: settings.google_places_api,\n className: \"w-full border border-subtle\",\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Enter Google Places API Key', 'uael'),\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none',\n // Removes the default box shadow\n marginTop: '16px'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"p\", {\n className: \"text-sm font-medium mt-2\"\n }, !uaelSettingsData.hide_settings && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Google now requires an active billing account associated with your API Key. To enable billing click ', 'uael'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"a\", {\n href: 'https://console.cloud.google.com/projectselector2/billing/enable',\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"uael-link-color no-underline\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('here!', 'uael'))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"border border-subtle\",\n style: {\n height: '2px',\n backgroundColor: '#E5E7EB',\n marginTop: '16px'\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col w-full space-y-1 space-x-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Yelp API Key', 'uael'),\n description: !uaelSettingsData.hide_settings ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Note: This setting is required if you wish to use Yelp Reviews in your website. ', 'uael'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"a\", {\n href: \"\".concat(uaelSettingsData.uael_domain, \"docs/get-yelp-api-key/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin\"),\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"uael-link-color no-underline\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Need Help?', 'uael'))) : '',\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n type: \"text\",\n name: \"yelp_api\" // Match the key with the backend\n ,\n value: settings.yelp_api,\n className: \"w-full border border-subtle px-2\",\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Enter Yelp API Key', 'uael'),\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none',\n // Removes the default box shadow\n marginTop: '16px'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container, {\n align: \"stretch\",\n className: \"flex flex-column bg-background-primary\",\n containerType: \"flex\",\n direction: \"column\",\n style: {\n padding: \"24px\",\n borderRadius: \"8px\",\n marginTop: \"32px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"sm\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Setup reCAPTCHA v3', 'uael'),\n description: !uaelSettingsData.hide_settings ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Note: ', 'uael'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"a\", {\n href: 'https://www.google.com/recaptcha/about/',\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"uael-link-color no-underline\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('reCAPTCHA v3', 'uael')), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)(' is a free service by Google that protects your website from spam and abuse. It does this while letting your valid users pass through with ease. ', 'uael'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"a\", {\n href: 'https://ultimateelementor.com/docs/user-registration-form-with-recaptcha/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin',\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"uael-link-color no-underline\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Need Help?', 'uael'))) : ''\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col space-y-1 space-x-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Site key', 'uael'),\n description: \"\",\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n type: \"text\",\n name: \"recaptcha_v3_key\" // Match the key with the backend\n ,\n value: settings.recaptcha_v3_key,\n className: \"w-full border border-subtle px-2\",\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Enter reCAPTCHA v3 Key', 'uael'),\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none' // Removes the default box shadow\n // marginTop: '16px'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"flex flex-row items-center mt-1 w-full gap-3\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col space-y-1 basis-1/2 flex-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Secret key', 'uael'),\n description: \"\",\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n type: \"text\",\n name: \"recaptcha_v3_secretkey\" // Match the key with the backend\n ,\n value: settings.recaptcha_v3_secretkey,\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n className: \"w-full border border-subtle px-2\",\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Enter reCAPTCHA v3 Secret Key', 'uael'),\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none' // Removes the default box shadow\n // marginTop: '16px'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col space-y-1 basis-1/2 flex-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Score Threshold', 'uael'),\n description: \"\",\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n type: \"text\",\n name: \"recaptcha_v3_score\" // Match the key with the backend\n ,\n value: settings.recaptcha_v3_score,\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n className: \"w-full border border-subtle px-2\",\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Enter reCAPTCHA v3 Score', 'uael'),\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none' // Removes the default box shadow\n // marginTop: '16px'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container, {\n align: \"stretch\",\n className: \"flex flex-column bg-background-primary\",\n containerType: \"flex\",\n direction: \"column\",\n style: {\n padding: \"24px\",\n borderRadius: \"8px\",\n marginTop: \"32px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"sm\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Login Form', 'uael'),\n description: \"\",\n className: \"\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col w-full space-y-1 space-x-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Google Client ID', 'uael'),\n description: !uaelSettingsData.hide_settings ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Note: This setting is required if you wish to use Login with Google in your website. ', 'uael'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"a\", {\n href: \"\".concat(uaelSettingsData.uael_domain, \"docs/create-google-client-id-for-login-form-widget/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin\"),\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"uael-link-color no-underline\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Need Help?', 'uael'))) : '',\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n type: \"text\",\n name: \"google_client_id\",\n value: settings.google_client_id,\n className: \"w-full border border-subtle rounded p-2\",\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Enter Google Client ID', 'uael'),\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none',\n // Removes the default box shadow\n marginTop: '16px'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"border border-subtle\",\n style: {\n height: '2px',\n backgroundColor: '#E5E7EB',\n marginTop: '16px'\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Facebook App Details', 'uael'),\n description: !uaelSettingsData.hide_settings ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Note: This setting is required if you wish to use Login with Google in your website. ', 'uael'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"a\", {\n href: \"\".concat(uaelSettingsData.uael_domain, \"docs/create-facebook-app-id-for-login-form-widget/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin\"),\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"uael-link-color no-underline\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Need Help?', 'uael'))) : '',\n className: \"\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"flex flex-row items-center mt-1 w-full gap-3\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col space-y-1 basis-1/2 flex-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('App ID', 'uael'),\n description: \"\",\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n type: \"text\",\n name: \"facebook_app_id\" // Match the key with the backend\n ,\n value: settings.facebook_app_id,\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Enter Facebook App ID', 'uael'),\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none' // Removes the default box shadow\n // marginTop: '16px'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n ,\n className: \"w-full border border-subtle px-2\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col space-y-1 basis-1/2 flex-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('App Secret', 'uael'),\n description: \"\",\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n type: \"text\",\n name: \"facebook_app_secret\" // Match the key with the backend\n ,\n value: settings.facebook_app_secret,\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Enter Facebook App Secret', 'uael'),\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none' // Removes the default box shadow\n // marginTop: '16px'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n ,\n className: \"w-full border border-subtle px-2\"\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container, {\n align: \"stretch\",\n className: \"flex flex-column bg-background-primary\",\n containerType: \"flex\",\n direction: \"column\",\n style: {\n padding: \"24px\",\n borderRadius: \"8px\",\n marginTop: \"32px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"sm\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Social Share', 'uael'),\n description: \"\",\n className: \"\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col w-full space-y-1 space-x-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Facebook Access Token', 'uael'),\n description: !uaelSettingsData.hide_settings ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Note: This setting is required if you wish to fetch share count of your post/page from Facebook. ', 'uael'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"a\", {\n href: \"\".concat(uaelSettingsData.uael_domain, \"docs/display-share-count-for-facebook/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin\"),\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"uael-link-color no-underline\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Need Help?', 'uael'))) : '',\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n type: \"text\",\n name: \"uael_share_button\" // Match the key with the backend\n ,\n value: settings.uael_share_button,\n className: \"w-full border border-subtle rounded p-2\",\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: \"\",\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none',\n // Removes the default box shadow\n marginTop: '16px'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container, {\n align: \"stretch\",\n className: \"flex flex-column bg-background-primary\",\n containerType: \"flex\",\n direction: \"column\",\n style: {\n padding: \"24px\",\n borderRadius: \"8px\",\n marginTop: \"32px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"sm\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('MaxMind Geolocation', 'uael'),\n description: !uaelSettingsData.hide_settings ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Note: An integration for utilizing MaxMind to do Geolocation lookups. Please note that this integration will only do Country lookups. ', 'uael'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"a\", {\n href: \"\".concat(uaelSettingsData.uael_domain, \"docs/display-conditions-geolocation/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin\"),\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"uael-link-color no-underline\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Need Help?', 'uael'))) : '',\n className: \"\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"flex flex-row items-center mt-1 w-full gap-3\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col space-y-1 basis-1/2 flex-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('License Key', 'uael'),\n description: \"\",\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n type: \"text\",\n name: \"uael_maxmind_geolocation_license_key\" // Match the key with the backend\n ,\n value: settings.uael_maxmind_geolocation_license_key,\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Enter MaxMind License Key', 'uael'),\n className: \"w-full border border-subtle px-2\",\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none' // Removes the default box shadow\n // marginTop: '16px'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col space-y-1 basis-1/2 flex-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Database File Path', 'uael'),\n description: \"\",\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n type: \"text\",\n disabled: true,\n name: \"uael_maxmind_geolocation_db_path\" // Match the key with the backend\n ,\n placeholder: uaelSettingsData.maxmind_db_path,\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none' // Removes the default box shadow\n // marginTop: '16px'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n ,\n className: \"w-full border border-subtle px-2\"\n }))), maxmindStatus === 'error' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"error-message font-normal my-0 text-sm\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('The MaxMind license key is invalid. If you have recently created this key, you may need to wait for it to become active.', 'uael'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container, {\n align: \"stretch\",\n className: \"flex flex-column bg-background-primary\",\n containerType: \"flex\",\n direction: \"column\",\n style: {\n padding: \"24px\",\n borderRadius: \"8px\",\n marginTop: \"32px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"sm\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Twitter Feed', 'uael'),\n description: !uaelSettingsData.hide_settings ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Note: To display your Twitter Feed on your website, you\\'ll need to acquire Twitter\\'s basic plan and obtain your Twitter Consumer Key and Consumer Secret Key. For guidance on obtaining these keys, ', 'uael'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"a\", {\n href: \"\".concat(uaelSettingsData.uael_domain, \"docs/twitter-feed-widget/?utm_source=uael-pro-dashboard&utm_medium=uael-editor-screen&utm_campaign=uael-pro-plugin\"),\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"uael-link-color no-underline\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Need Help?', 'uael'))) : '',\n className: \"\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"flex flex-row items-center mt-1 w-full gap-3\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col space-y-1 basis-1/2 flex-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Consumer Key', 'uael'),\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n type: \"text\",\n name: \"uael_twitter_feed_consumer_key\" // Match the key with the backend\n ,\n value: settings.uael_twitter_feed_consumer_key,\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Enter Twitter Consumer Key', 'uael'),\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none' // Removes the default box shadow\n // marginTop: '16px'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n ,\n className: \"w-full border border-subtle px-2\"\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col space-y-1 basis-1/2 flex-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Consumer Secret', 'uael'),\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n type: \"text\",\n name: \"uael_twitter_feed_consumer_secret\" // Match the key with the backend\n ,\n value: settings.uael_twitter_feed_consumer_secret,\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Enter Twitter Consumer Secret', 'uael'),\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none' // Removes the default box shadow\n // marginTop: '16px'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n ,\n className: \"w-full border border-subtle px-2\"\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container, {\n align: \"stretch\",\n className: \"flex flex-column bg-background-primary\",\n containerType: \"flex\",\n direction: \"column\",\n style: {\n padding: \"24px\",\n borderRadius: \"8px\",\n marginTop: \"32px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"sm\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Instagram Feed - Instagram Product API Details', 'uael'),\n description: !uaelSettingsData.hide_settings ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Note: This setting is required if you wish to use Instagram Feed in your website. ', 'uael'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"a\", {\n href: \"\".concat(uaelSettingsData.uael_domain, \"docs/instagram-feed-widget/?utm_source=uael-pro-dashboard&utm_medium=uael-editor-screen&utm_campaign=uael-pro-plugin\"),\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"uael-link-color no-underline\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Need Help?', 'uael'))) : '',\n className: \"\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"flex flex-row items-center mt-1 w-full gap-3\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col space-y-1 basis-1/2 flex-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('App ID', 'uael'),\n description: \"\",\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n type: \"text\",\n name: \"instagram_app_id\" // Match the key with the backend\n ,\n value: settings.instagram_app_id,\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Enter Instagram App ID', 'uael'),\n className: \"w-full border border-subtle px-2\",\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none' // Removes the default box shadow\n // marginTop: '16px'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col space-y-1 basis-1/2 flex-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('App Secret', 'uael'),\n description: \"\",\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n type: \"text\",\n name: \"instagram_app_secret\" // Match the key with the backend\n ,\n value: settings.instagram_app_secret,\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Enter Instagram App Secret', 'uael'),\n className: \"w-full border border-subtle px-2\",\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none' // Removes the default box shadow\n // marginTop: '16px'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col w-full space-y-1 space-x-2 mt-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"flex flex-row items-center justify-between pb-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n icon: null,\n iconPosition: \"right\",\n size: \"xs\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Access Token', 'uael'),\n description: \"\",\n className: \"uae-subtitle\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Button, {\n icon: tokenRefresh ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"animate-spin\"\n }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n style: {\n color: \"#6005FF\"\n }\n }),\n className: \"uael-remove-ring\",\n variant: \"link\",\n iconPosition: \"left\",\n onClick: generateInstagramAccessToken,\n style: {\n width: 'fit-content',\n outline: 'none',\n textDecoration: 'none',\n color: '#6005FF'\n }\n }, tokenRefresh ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Refreshing token...', 'uael') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Refresh Access Token', 'uael'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n type: \"text\",\n name: \"instagram_app_token\" // Match the key with the backend\n ,\n value: settings.instagram_app_token,\n onChange: function onChange(e) {\n return handleChange(e.target.name, e.target.value);\n },\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Enter Instagram Access Token', 'uael'),\n className: \"w-full border border-subtle\",\n style: {\n height: '48px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none' // Removes the default box shadow\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Button, {\n type: \"submit\",\n style: {\n backgroundColor: '#6005ff'\n },\n icon: isSaving ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"animate-spin\"\n }) : null,\n iconPosition: \"left\",\n disabled: isSaving,\n className: \"w-full mt-4 sticky\"\n }, isSaving ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Saving...', 'uael') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_6__.__)('Save', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(react_hot_toast__WEBPACK_IMPORTED_MODULE_7__.Toaster, {\n position: \"top-right\",\n reverseOrder: false,\n gutter: 8,\n containerStyle: {\n top: 20,\n right: 20,\n marginTop: '80px'\n },\n toastOptions: {\n duration: 5000,\n style: {\n background: 'white'\n },\n success: {\n duration: 3000,\n style: {\n color: ''\n },\n iconTheme: {\n primary: '#6005ff',\n secondary: '#fff'\n }\n }\n }\n })))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Integrations);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9TZXR0aW5ncy9JbnRlZ3JhdGlvbnMuanN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBK0Q7QUFDRTtBQUNyQjtBQUNQO0FBQ1k7QUFDaUI7QUFDM0I7QUFFdkMsSUFBTWdCLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFBLEVBQVM7RUFFdkIsSUFBQUMsU0FBQSxHQUFnQ2hCLCtDQUFRLENBQUM7TUFDckNpQixVQUFVLEVBQUUsRUFBRTtNQUFFO01BQ2hCQyxjQUFjLEVBQUUsS0FBSztNQUNyQkMsUUFBUSxFQUFFLEVBQUU7TUFDWkMsaUJBQWlCLEVBQUUsRUFBRTtNQUNyQkMsUUFBUSxFQUFFLEVBQUU7TUFDWkMsZ0JBQWdCLEVBQUUsRUFBRTtNQUNwQkMsc0JBQXNCLEVBQUUsRUFBRTtNQUMxQkMsa0JBQWtCLEVBQUUsS0FBSztNQUN6QkMsZ0JBQWdCLEVBQUUsRUFBRTtNQUNwQkMsZUFBZSxFQUFFLEVBQUU7TUFDbkJDLG1CQUFtQixFQUFFLEVBQUU7TUFDdkJDLGlCQUFpQixFQUFFLEVBQUU7TUFDckJDLG9DQUFvQyxFQUFFLEVBQUU7TUFDeENDLGdDQUFnQyxFQUFFLEVBQUU7TUFDcENDLDhCQUE4QixFQUFFLEVBQUU7TUFDbENDLGlDQUFpQyxFQUFFLEVBQUU7TUFDckNDLGdCQUFnQixFQUFFLEVBQUU7TUFDcEJDLG9CQUFvQixFQUFFLEVBQUU7TUFDeEJDLG1CQUFtQixFQUFFO0lBQ3pCLENBQUMsQ0FBQztJQUFBQyxVQUFBLEdBQUFDLGdGQUFBLENBQUFyQixTQUFBO0lBcEJLc0IsUUFBUSxHQUFBRixVQUFBO0lBQUVHLFdBQVcsR0FBQUgsVUFBQTtFQXNCNUIsSUFBQUksVUFBQSxHQUE4QnhDLCtDQUFRLENBQUMsSUFBSSxDQUFDO0lBQUF5QyxVQUFBLEdBQUFKLGdGQUFBLENBQUFHLFVBQUE7SUFBckNFLE9BQU8sR0FBQUQsVUFBQTtJQUFFRSxVQUFVLEdBQUFGLFVBQUE7RUFDMUIsSUFBQUcs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QUFZLEVBQUMsTUFBTTtJQUNuQk0sUUFBUSxFQUFFbkUsUUFBUztJQUNuQnFELFNBQVMsRUFBQztFQUFvQixHQUU3QnJELFFBQVEsR0FBRzlDLG1EQUFFLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxHQUFHQSxtREFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQ25ELENBQUMsZUFFVFQsMERBQUEsQ0FBQ1csb0RBQU87SUFDSm1HLFFBQVEsRUFBQyxXQUFXO0lBQ3BCOEMsWUFBWSxFQUFFLEtBQU07SUFDcEJDLE1BQU0sRUFBRSxDQUFFO0lBQ1ZDLGNBQWMsRUFBRTtNQUNaQyxHQUFHLEVBQUUsRUFBRTtNQUNQQyxLQUFLLEVBQUUsRUFBRTtNQUNUakMsU0FBUyxFQUFFO0lBQ2YsQ0FBRTtJQUNGa0MsWUFBWSxFQUFFO01BQ1ZDLFFBQVEsRUFBRSxJQUFJO01BQ2RyRCxLQUFLLEVBQUU7UUFDSHNELFVBQVUsRUFBRTtNQUNoQixDQUFDO01BQ0QzRSxPQUFPLEVBQUU7UUFDTDBFLFFBQVEsRUFBRSxJQUFJO1FBQ2RyRCxLQUFLLEVBQUU7VUFDSDBDLEtBQUssRUFBRTtRQUNYLENBQUM7UUFDRGEsU0FBUyxFQUFFO1VBQ1BDLE9BQU8sRUFBRSxTQUFTO1VBQ2xCQyxTQUFTLEVBQUU7UUFDZjtNQUNKO0lBQ0o7RUFBRSxDQUNMLENBQ0EsQ0FDRSxDQUNWLENBQ0gsQ0FBQztBQUVmLENBQUM7QUFFRCwrREFBZXRKLFlBQVkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vc3JjL0NvbXBvbmVudHMvU2V0dGluZ3MvSW50ZWdyYXRpb25zLmpzeD9hNGFiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ29udGFpbmVyLCBUaXRsZSwgQnV0dG9uLCBMb2FkZXIgfSBmcm9tIFwiQGJzZi9mb3JjZS11aVwiO1xuaW1wb3J0IGFwaUZldGNoIGZyb20gJ0B3b3JkcHJlc3MvYXBpLWZldGNoJztcbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcbmltcG9ydCB0b2FzdCwgeyBUb2FzdGVyIH0gZnJvbSAncmVhY3QtaG90LXRvYXN0JztcbmltcG9ydCB7IEZpbGVUZXh0LCBMb2FkZXJDaXJjbGUsIFJlZnJlc2hDY3cgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuaW1wb3J0IGRlYm91bmNlIGZyb20gJ2xvZGFzaC5kZWJvdW5jZSc7XG5cbmNvbnN0IEludGVncmF0aW9ucyA9ICgpID0+IHtcblxuICAgIGNvbnN0IFtzZXR0aW5ncywgc2V0U2V0dGluZ3NdID0gdXNlU3RhdGUoe1xuICAgICAgICBnb29nbGVfYXBpOiAnJywgLy8gTWF0Y2ggdGhlIGtleSB3aXRoIHRoZSBiYWNrZW5kXG4gICAgICAgIGRldmVsb3Blcl9tb2RlOiBmYWxzZSxcbiAgICAgICAgbGFuZ3VhZ2U6ICcnLFxuICAgICAgICBnb29nbGVfcGxhY2VzX2FwaTogJycsXG4gICAgICAgIHllbHBfYXBpOiAnJyxcbiAgICAgICAgcmVjYXB0Y2hhX3YzX2tleTogJycsXG4gICAgICAgIHJlY2FwdGNoYV92M19zZWNyZXRrZXk6ICcnLFxuICAgICAgICByZWNhcHRjaGFfdjNfc2NvcmU6ICcwLjUnLFxuICAgICAgICBnb29nbGVfY2xpZW50X2lkOiAnJyxcbiAgICAgICAgZmFjZWJvb2tfYXBwX2lkOiAnJyxcbiAgICAgICAgZmFjZWJvb2tfYXBwX3NlY3JldDogJycsXG4gICAgICAgIHVhZWxfc2hhcmVfYnV0dG9uOiAnJyxcbiAgICAgICAgdWFlbF9tYXhtaW5kX2dlb2xvY2F0aW9uX2xpY2Vuc2Vfa2V5OiAnJyxcbiAgICAgICAgdWFlbF9tYXhtaW5kX2dlb2xvY2F0aW9uX2RiX3BhdGg6ICcnLFxuICAgICAgICB1YWVsX3R3aXR0ZXJfZmVlZF9jb25zdW1lcl9rZXk6ICcnLFxuICAgICAgICB1YWVsX3R3aXR0ZXJfZmVlZF9jb25zdW1lcl9zZWNyZXQ6ICcnLFxuICAgICAgICBpbnN0YWdyYW1fYXBwX2lkOiAnJyxcbiAgICAgICAgaW5zdGFncmFtX2FwcF9zZWNyZXQ6ICcnLFxuICAgICAgICBpbnN0YWdyYW1fYXBwX3Rva2VuOiAnJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW3N1Y2Nlc3NNZXNzYWdlLCBzZXRTdWNjZXNzTWVzc2FnZV0gPSB1c2VTdGF0ZSgnJyk7XG4gICAgY29uc3QgW2lzU2F2aW5nLCBzZXRJc1NhdmluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3Rva2VuUmVmcmVzaCwgc2V0VG9rZW5SZWZyZXNoXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbbWF4bWluZFN0YXR1cywgc2V0TWF4bWluZFN0YXR1c10gPSB1c2VTdGF0ZSgnc3VjY2VzcycpO1xuXG4gICAgY29uc3QgbGFuZ3VhZ2VzRGF0YSA9IHR5cGVvZiB3aW5kb3cudWFlTGFuZ3VhZ2VzRGF0YSA9PT0gJ29iamVjdCcgJiYgd2luZG93LnVhZUxhbmd1YWdlc0RhdGEgIT09IG51bGxcbiAgICAgICAgPyBPYmplY3QuZW50cmllcyh3aW5kb3cudWFlTGFuZ3VhZ2VzRGF0YSlcbiAgICAgICAgOiBbXTsgLy8gQ29udmVydCBvYmplY3QgdG8gYXJyYXkgb2YgW2tleSwgdmFsdWVdIHBhaXJzXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBmZXRjaFNldHRpbmdzID0gKCkgPT4ge1xuICAgICAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIHNldEVycm9yKG51bGwpO1xuICAgICAgICAgICAgYXBpRmV0Y2goe1xuICAgICAgICAgICAgICAgIHBhdGg6ICcvdWFlbC92MS9zZXR0aW5ncycsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAnWC1XUC1Ob25jZSc6IHVhZWxTZXR0aW5nc0RhdGEudWFlbF9ub25jZV9hY3Rpb24sIC8vIFVzZSB0aGUgY29ycmVjdCBub25jZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNldFNldHRpbmdzKGRhdGEpOyAvLyBTZXQgdGhlIGZldGNoZWQgc2V0dGluZ3NcbiAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7IC8vIFN0b3AgbG9hZGluZ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc2V0RXJyb3IoZXJyLm1lc3NhZ2UpOyAvLyBTZXQgZXJyb3IgbWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTsgLy8gU3RvcCBsb2FkaW5nXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfTtcblxuICAgICAgICBmZXRjaFNldHRpbmdzKCk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgdmFsaWRhdGVBcGkgPSAoYXBpS2V5LCBzb3VyY2UpID0+IHtcblxuICAgICAgICBpZiAoJycgPT09IGFwaUtleSB8fCAnJyA9PT0gc291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXBpX3R5cGUgPSAnZ29vZ2xlJyA9PT0gc291cmNlID8gJ0dvb2dsZSBQbGFjZXMgQVBJIEtleScgOiAoJ2ZhY2Vib29rJyA9PT0gc291cmNlID8gJ0ZhY2Vib29rIEFjY2VzcyBUb2tlbicgOiAnWWVscCBBUEkgS2V5Jyk7XG5cbiAgICAgICAgYXBpRmV0Y2goe1xuICAgICAgICAgICAgcGF0aDogJy91YWVsL3YxL3ZhbGlkYXRlQXBpS2V5JyxcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgJ1gtV1AtTm9uY2UnOiB1YWVsU2V0dGluZ3NEYXRhLnVhZWxfbm9uY2VfYWN0aW9uLCAvLyBVc2UgdGhlIGNvcnJlY3Qgbm9uY2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGFwaUtleSwgc291cmNlIH0pLFxuICAgICAgICB9KS50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICBpZiAoZGF0YS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgdG9hc3Quc3VjY2VzcyhgJHthcGlfdHlwZX0gYXV0aGVudGljYXRlZCBzdWNjZXNzZnVsbHkhYCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRvYXN0LmVycm9yKGBFbnRlcmVkICR7YXBpX3R5cGV9IGlzIGludmFsaWRgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICB0b2FzdC5lcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGRlYm91bmNlZFZhbGlkYXRlQXBpID0gdXNlQ2FsbGJhY2soZGVib3VuY2UodmFsaWRhdGVBcGksIDUwMCksIFtdKTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IChuYW1lLCB2YWx1ZSkgPT4ge1xuXG4gICAgICAgIHNldFNldHRpbmdzKHByZXZTZXR0aW5ncyA9PiAoe1xuICAgICAgICAgICAgLi4ucHJldlNldHRpbmdzLFxuICAgICAgICAgICAgW25hbWVdOiB2YWx1ZVxuICAgICAgICB9KSk7XG5cbiAgICAgICAgaWYgKCdnb29nbGVfcGxhY2VzX2FwaScgPT09IG5hbWUpIHtcbiAgICAgICAgICAgIGRlYm91bmNlZFZhbGlkYXRlQXBpKHZhbHVlLCAnZ29vZ2xlJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCd5ZWxwX2FwaScgPT09IG5hbWUpIHtcbiAgICAgICAgICAgIGRlYm91bmNlZFZhbGlkYXRlQXBpKHZhbHVlLCAneWVscCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCd1YWVsX3NoYXJlX2J1dHRvbicgPT09IG5hbWUpIHtcbiAgICAgICAgICAgIGRlYm91bmNlZFZhbGlkYXRlQXBpKHZhbHVlLCAnZmFjZWJvb2snKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBnZW5lcmF0ZUluc3RhZ3JhbUFjY2Vzc1Rva2VuID0gKCkgPT4ge1xuICAgICAgICBjb25zdCByZWZyZXNoVG9rZW5VUkwgPSAnaHR0cHM6Ly9ncmFwaC5pbnN0YWdyYW0uY29tL3JlZnJlc2hfYWNjZXNzX3Rva2VuJztcblxuICAgICAgICBpZiAoc2V0dGluZ3MuaW5zdGFncmFtX2FwcF90b2tlbikge1xuICAgICAgICAgICAgc2V0VG9rZW5SZWZyZXNoKHRydWUpO1xuXG4gICAgICAgICAgICBmZXRjaChyZWZyZXNoVG9rZW5VUkwgKyBgP2dyYW50X3R5cGU9aWdfcmVmcmVzaF90b2tlbiZhY2Nlc3NfdG9rZW49JHtzZXR0aW5ncy5pbnN0YWdyYW1fYXBwX3Rva2VufWAsIHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLmpzb24oKSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRUb2tlblJlZnJlc2goZmFsc2UpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmFjY2Vzc190b2tlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2V0dGluZ3MoKHByZXZTZXR0aW5ncykgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcmV2U2V0dGluZ3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFncmFtX2FwcF90b2tlbjogZGF0YS5hY2Nlc3NfdG9rZW4sIC8vIFVwZGF0ZSB3aXRoIHRoZSBuZXcgdG9rZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvYXN0LnN1Y2Nlc3MoXCJBY2Nlc3MgdG9rZW4gcmVmcmVzaGVkIHN1Y2Nlc3NmdWxseVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2FzdC5lcnJvcihkYXRhLmVycm9yLm1lc3NhZ2UgfHwgXCJBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSByZWZyZXNoaW5nIHRoZSB0b2tlbi5cIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VG9rZW5SZWZyZXNoKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgdG9hc3QuZXJyb3IoXCJGYWlsZWQgdG8gcmVmcmVzaCB0aGUgYWNjZXNzIHRva2VuLiBQbGVhc2UgdHJ5IGFnYWluLlwiKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTdWJtaXQgPSAoZSkgPT4ge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHNldEVycm9yKG51bGwpO1xuICAgICAgICBzZXRJc1NhdmluZyh0cnVlKTtcblxuICAgICAgICBmZXRjaCgnL3dwLWpzb24vdWFlbC92MS9zZXR0aW5ncycsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgJ1gtV1AtTm9uY2UnOiB1YWVsU2V0dGluZ3NEYXRhLnVhZWxfbm9uY2VfYWN0aW9uLCAvLyBJbmNsdWRlIHRoZSBub25jZSBoZXJlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoc2V0dGluZ3MpLFxuICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZS5qc29uKCkpXG4gICAgICAgICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkYXRhLm1heG1pbmRfc3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldE1heG1pbmRTdGF0dXMoJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0TWF4bWluZFN0YXR1cygnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRTdWNjZXNzTWVzc2FnZSgnU2V0dGluZ3Mgc2F2ZWQgc3VjY2Vzc2Z1bGx5IScpOyAvLyBTZXQgc3VjY2VzcyBtZXNzYWdlXG4gICAgICAgICAgICAgICAgdG9hc3Quc3VjY2VzcygnU2V0dGluZ3Mgc2F2ZWQgc3VjY2Vzc2Z1bGx5IScpOyAvLyBTaG93IHRvYXN0IG5vdGlmaWNhdGlvblxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgdG9hc3QuZXJyb3IoJ1NldHRpbmdzIGNhbm5vdCBiZSBzYXZlZCEnKTsgLy8gU2hvdyB0b2FzdCBub3RpZmljYXRpb25cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SXNTYXZpbmcoZmFsc2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGlmIChsb2FkaW5nKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0naC1zY3JlZW4gdy1zY3JlZW4gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXInIHN0eWxlPXt7IHBvc2l0aW9uOiAncmVsYXRpdmUnIH19PlxuICAgICAgICAgICAgICAgIDxMb2FkZXIgaWNvbj17bnVsbH0gc2l6ZT1cImxnXCIgY2xhc3NOYW1lPVwiYmctdHJhbnNwYXJlbnQgcmVsYXRpdmUgdWFlLWxvYWRlci1pY29uXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChlcnJvcikge1xuICAgICAgICByZXR1cm4gPGRpdj5FcnJvcjoge2Vycm9yfTwvZGl2PjtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0ncm91bmRlZC1sZyB1YWVsLXNldHRpbmdzLXBhZ2UnXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2Vlbicgc3R5bGU9e3sgcGFkZGluZ0JvdHRvbTogJzI0cHgnIH19ID5cbiAgICAgICAgICAgICAgICAgICAgPFRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPXtudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhZz1cImgyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtfXygnSW50ZWdyYXRpb25zJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIFsmX2gyXTp0ZXh0LVsjNjAwNWZmXScgc3R5bGU9e3sgZ2FwOiAnMjJweCcgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9J2ZsZXggaXRlbXMtY2VudGVyIGdhcC0xIGN1cnNvci1wb2ludGVyJyBzdHlsZT17eyBwb3NpdGlvbjogJ3JlbGF0aXZlJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmlsZVRleHQgc3R5bGU9e3sgY29sb3I6ICcjNjAwNWZmJywgc2l6ZTogJzIwcHgnIH19IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vdWx0aW1hdGVlbGVtZW50b3IuY29tL2RvY3MvaG93LXRvLXdoaXRlLWxhYmVsLXVhZWwvXCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3NOYW1lPSd0ZXh0LVsjNjAwNWZmXSB0ZXh0LXNtIGZvbnQtbWVkaXVtIG5vLXVuZGVybGluZScgc3R5bGU9e3sgY29sb3I6ICcjNjAwNWZmJywgYm94U2hhZG93OiAnbm9uZScgfX0+e19fKCdSZWFkIERvY3VtZW50YXRpb24nLCAndWFlbCcpfTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6ICcjNjAwNWZmJywgcG9zaXRpb246ICdyZWxhdGl2ZScgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17aXNTYXZpbmcgPyA8TG9hZGVyQ2lyY2xlIGNsYXNzTmFtZT1cImFuaW1hdGUtc3BpblwiIC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJsZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNTYXZpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzU2F2aW5nID8gX18oJ1NhdmluZy4uLicsICd1YWVsJykgOiBfXygnU2F2ZScsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIGFsaWduPVwic3RyZXRjaFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggZmxleC1yb3dcIlxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXJUeXBlPVwiZmxleFwiXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgIGdhcD1cInNtXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeT1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogXCIyNHB4XCIsXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduPVwic3RyZXRjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbHVtbiBiZy1iYWNrZ3JvdW5kLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclR5cGU9XCJmbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IFwiMjRweFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IFwiOHB4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e251bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnPVwiaDJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17X18oJ0dvb2dsZSBNYXAnLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyLkl0ZW0gY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGwgc3BhY2UteS0xIHNwYWNlLXgtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e251bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnPVwiaDJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e19fKCdBUEkgS2V5JywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhdWFlbFNldHRpbmdzRGF0YS5oaWRlX3NldHRpbmdzID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge19fKCdOb3RlOiBUaGlzIHNldHRpbmcgaXMgcmVxdWlyZWQgaWYgeW91IHdpc2ggdG8gdXNlIEdvb2dsZSBNYXAgaW4geW91ciB3ZWJzaXRlLiAnLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtgJHt1YWVsU2V0dGluZ3NEYXRhLnVhZWxfZG9tYWlufWRvY3MvY3JlYXRlLWdvb2dsZS1tYXAtYXBpLWtleS8/dXRtX3NvdXJjZT11YWVsLXByby1kYXNoYm9hcmQmdXRtX21lZGl1bT11YWVsLW1lbnUtcGFnZSZ1dG1fY2FtcGFpZ249dWFlbC1wcm8tcGx1Z2luYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVhZWwtbGluay1jb2xvciBuby11bmRlcmxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfXygnTmVlZCBIZWxwPycsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVhZS1zdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImdvb2dsZV9hcGlcIiAvLyBNYXRjaCB0aGUga2V5IHdpdGggdGhlIGJhY2tlbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtzZXR0aW5ncy5nb29nbGVfYXBpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVDaGFuZ2UoZS50YXJnZXQubmFtZSwgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e19fKCdQYXN0ZSB5b3VyIEFQSSBLZXkgaGVyZScsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9J3ctZnVsbCBib3JkZXIgYm9yZGVyLXN1YnRsZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZTBlMGUwJywgLy8gRGVmYXVsdCBib3JkZXIgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiAnbm9uZScsICAgICAgIC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgb3V0bGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJ25vbmUnLCAgICAgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBib3ggc2hhZG93XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAnMTZweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXsoZSkgPT4gZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnIzYwMDVGRid9IC8vIEFwcGx5IGZvY3VzIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjZTBlMGUwJ30gIC8vIFJldmVydCB0byBkZWZhdWx0IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXIuSXRlbT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdib3JkZXIgYm9yZGVyLXN1YnRsZScgc3R5bGU9e3sgaGVpZ2h0OiAnMnB4JywgYmFja2dyb3VuZENvbG9yOiAnI0U1RTdFQicsIG1hcmdpblRvcDogJzE2cHgnIH19IC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyLkl0ZW0gY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGwgc3BhY2UteS0xIHNwYWNlLXgtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e251bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnPVwiaDJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e19fKCdMb2NhbGl6YXRpb24gTGFuZ3VhZ2UnLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICF1YWVsU2V0dGluZ3NEYXRhLmhpZGVfc2V0dGluZ3MgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ05vdGU6IFRoaXMgc2V0dGluZyBzZXRzIGxvY2FsaXphdGlvbiBsYW5ndWFnZSB0byBnb29nbGUgbWFwLiBUaGUgbGFuZ3VhZ2UgYWZmZWN0cyB0aGUgbmFtZXMgb2YgY29udHJvbHMsIGNvcHlyaWdodCBub3RpY2VzLCBkcml2aW5nIGRpcmVjdGlvbnMsIGFuZCBjb250cm9sIGxhYmVscy4gJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YCR7dWFlbFNldHRpbmdzRGF0YS51YWVsX2RvbWFpbn1kb2NzL2hvdy10by1kaXNwbGF5LXVhZWxzLWdvb2dsZS1tYXBzLXdpZGdldC1pbi15b3VyLWxvY2FsLWxhbmd1YWdlLz91dG1fc291cmNlPXVhZWwtcHJvLWRhc2hib2FyZCZ1dG1fbWVkaXVtPXVhZWwtbWVudS1wYWdlJnV0bV9jYW1wYWlnbj11YWVsLXByby1wbHVnaW5gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidWFlbC1saW5rLWNvbG9yIG5vLXVuZGVybGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge19fKCdOZWVkIEhlbHA/JywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidWFlLXN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImxhbmd1YWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtzZXR0aW5ncy5sYW5ndWFnZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlQ2hhbmdlKGUudGFyZ2V0Lm5hbWUsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJvcmRlciBib3JkZXItc3VidGxlIHJvdW5kZWQgcC0yIHctZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzQ4cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2UwZTBlMCcsIC8vIERlZmF1bHQgYm9yZGVyIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogJ25vbmUnLCAgICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IG91dGxpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdub25lJywgICAgIC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgYm94IHNoYWRvd1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJzE2cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17KGUpID0+IGUudGFyZ2V0LnN0eWxlLmJvcmRlckNvbG9yID0gJyM2MDA1RkYnfSAvLyBBcHBseSBmb2N1cyBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXsoZSkgPT4gZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnI2UwZTBlMCd9ICAvLyBSZXZlcnQgdG8gZGVmYXVsdCBjb2xvclxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIj5EZWZhdWx0PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bGFuZ3VhZ2VzRGF0YS5tYXAoKFtjb2RlLCBuYW1lXSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24ga2V5PXtjb2RlfSB2YWx1ZT17Y29kZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtuYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduPVwic3RyZXRjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbHVtbiBiZy1iYWNrZ3JvdW5kLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclR5cGU9XCJmbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IFwiMjRweFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IFwiOHB4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogXCIzMnB4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0gPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXtudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZz1cImgyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e19fKCdCdXNpbmVzcyBSZXZpZXdzJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyLkl0ZW0gY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGwgc3BhY2UteS0xIHNwYWNlLXgtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e251bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnPVwiaDJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e19fKCdHb29nbGUgUGxhY2VzIEFQSSBLZXknLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICF1YWVsU2V0dGluZ3NEYXRhLmhpZGVfc2V0dGluZ3MgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ05vdGU6IFRoaXMgc2V0dGluZyBpcyByZXF1aXJlZCBpZiB5b3Ugd2lzaCB0byB1c2UgR29vZ2xlIFBsYWNlcyBSZXZpZXdzIGluIHlvdXIgd2Vic2l0ZS4gJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YCR7dWFlbFNldHRpbmdzRGF0YS51YWVsX2RvbWFpbn1kb2NzL2dldC1nb29nbGUtcGxhY2VzLWFwaS1rZXkvP3V0bV9zb3VyY2U9dWFlbC1wcm8tZGFzaGJvYXJkJnV0bV9tZWRpdW09dWFlbC1tZW51LXBhZ2UmdXRtX2NhbXBhaWduPXVhZWwtcHJvLXBsdWdpbmB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1YWVsLWxpbmstY29sb3Igbm8tdW5kZXJsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ05lZWQgSGVscD8nLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVhZS1zdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImdvb2dsZV9wbGFjZXNfYXBpXCIgLy8gTWF0Y2ggdGhlIGtleSB3aXRoIHRoZSBiYWNrZW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2V0dGluZ3MuZ29vZ2xlX3BsYWNlc19hcGl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9J3ctZnVsbCBib3JkZXIgYm9yZGVyLXN1YnRsZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlQ2hhbmdlKGUudGFyZ2V0Lm5hbWUsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtfXygnRW50ZXIgR29vZ2xlIFBsYWNlcyBBUEkgS2V5JywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZTBlMGUwJywgLy8gRGVmYXVsdCBib3JkZXIgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiAnbm9uZScsICAgICAgIC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgb3V0bGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJ25vbmUnLCAgICAgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBib3ggc2hhZG93XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAnMTZweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXsoZSkgPT4gZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnIzYwMDVGRid9IC8vIEFwcGx5IGZvY3VzIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjZTBlMGUwJ30gIC8vIFJldmVydCB0byBkZWZhdWx0IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0ndGV4dC1zbSBmb250LW1lZGl1bSBtdC0yJz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHshdWFlbFNldHRpbmdzRGF0YS5oaWRlX3NldHRpbmdzICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ0dvb2dsZSBub3cgcmVxdWlyZXMgYW4gYWN0aXZlIGJpbGxpbmcgYWNjb3VudCBhc3NvY2lhdGVkIHdpdGggeW91ciBBUEkgS2V5LiBUbyBlbmFibGUgYmlsbGluZyBjbGljayAnLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17J2h0dHBzOi8vY29uc29sZS5jbG91ZC5nb29nbGUuY29tL3Byb2plY3RzZWxlY3RvcjIvYmlsbGluZy9lbmFibGUnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidWFlbC1saW5rLWNvbG9yIG5vLXVuZGVybGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfXygnaGVyZSEnLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXIuSXRlbT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdib3JkZXIgYm9yZGVyLXN1YnRsZScgc3R5bGU9e3sgaGVpZ2h0OiAnMnB4JywgYmFja2dyb3VuZENvbG9yOiAnI0U1RTdFQicsIG1hcmdpblRvcDogJzE2cHgnIH19IC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyLkl0ZW0gY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGwgc3BhY2UteS0xIHNwYWNlLXgtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e251bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnPVwiaDJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e19fKCdZZWxwIEFQSSBLZXknLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICF1YWVsU2V0dGluZ3NEYXRhLmhpZGVfc2V0dGluZ3MgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ05vdGU6IFRoaXMgc2V0dGluZyBpcyByZXF1aXJlZCBpZiB5b3Ugd2lzaCB0byB1c2UgWWVscCBSZXZpZXdzIGluIHlvdXIgd2Vic2l0ZS4gJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YCR7dWFlbFNldHRpbmdzRGF0YS51YWVsX2RvbWFpbn1kb2NzL2dldC15ZWxwLWFwaS1rZXkvP3V0bV9zb3VyY2U9dWFlbC1wcm8tZGFzaGJvYXJkJnV0bV9tZWRpdW09dWFlbC1tZW51LXBhZ2UmdXRtX2NhbXBhaWduPXVhZWwtcHJvLXBsdWdpbmB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1YWVsLWxpbmstY29sb3Igbm8tdW5kZXJsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ05lZWQgSGVscD8nLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVhZS1zdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInllbHBfYXBpXCIgLy8gTWF0Y2ggdGhlIGtleSB3aXRoIHRoZSBiYWNrZW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2V0dGluZ3MueWVscF9hcGl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9J3ctZnVsbCBib3JkZXIgYm9yZGVyLXN1YnRsZSBweC0yJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVDaGFuZ2UoZS50YXJnZXQubmFtZSwgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e19fKCdFbnRlciBZZWxwIEFQSSBLZXknLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICc0OHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjogJyNlMGUwZTAnLCAvLyBEZWZhdWx0IGJvcmRlciBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICdub25lJywgICAgICAgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBvdXRsaW5lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnbm9uZScsICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IGJveCBzaGFkb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6ICcxNnB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjNjAwNUZGJ30gLy8gQXBwbHkgZm9jdXMgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cj17KGUpID0+IGUudGFyZ2V0LnN0eWxlLmJvcmRlckNvbG9yID0gJyNlMGUwZTAnfSAgLy8gUmV2ZXJ0IHRvIGRlZmF1bHQgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbj1cInN0cmV0Y2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2x1bW4gYmctYmFja2dyb3VuZC1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJUeXBlPVwiZmxleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBcIjI0cHhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjhweFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6IFwiMzJweFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19ID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17bnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWc9XCJoMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtfXygnU2V0dXAgcmVDQVBUQ0hBIHYzJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXVhZWxTZXR0aW5nc0RhdGEuaGlkZV9zZXR0aW5ncyA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ05vdGU6ICcsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXsnaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvYWJvdXQvJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVhZWwtbGluay1jb2xvciBuby11bmRlcmxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ3JlQ0FQVENIQSB2MycsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge19fKCcgaXMgYSBmcmVlIHNlcnZpY2UgYnkgR29vZ2xlIHRoYXQgcHJvdGVjdHMgeW91ciB3ZWJzaXRlIGZyb20gc3BhbSBhbmQgYWJ1c2UuIEl0IGRvZXMgdGhpcyB3aGlsZSBsZXR0aW5nIHlvdXIgdmFsaWQgdXNlcnMgcGFzcyB0aHJvdWdoIHdpdGggZWFzZS4gJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9eydodHRwczovL3VsdGltYXRlZWxlbWVudG9yLmNvbS9kb2NzL3VzZXItcmVnaXN0cmF0aW9uLWZvcm0td2l0aC1yZWNhcHRjaGEvP3V0bV9zb3VyY2U9dWFlbC1wcm8tZGFzaGJvYXJkJnV0bV9tZWRpdW09dWFlbC1tZW51LXBhZ2UmdXRtX2NhbXBhaWduPXVhZWwtcHJvLXBsdWdpbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1YWVsLWxpbmstY29sb3Igbm8tdW5kZXJsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge19fKCdOZWVkIEhlbHA/JywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgc3BhY2UteS0xIHNwYWNlLXgtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e251bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnPVwiaDJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e19fKCdTaXRlIGtleScsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1YWUtc3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogPHAgY2xhc3NOYW1lPSdmb250LW5vcm1hbCB0ZXh0LWZpZWxkLWxhYmVsIHRleHQtYmFzZSc+e19fKCdTaXRlIGtleScsICd1YWVsJyl9PC9wPiAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicmVjYXB0Y2hhX3YzX2tleVwiIC8vIE1hdGNoIHRoZSBrZXkgd2l0aCB0aGUgYmFja2VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3NldHRpbmdzLnJlY2FwdGNoYV92M19rZXl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9J3ctZnVsbCBib3JkZXIgYm9yZGVyLXN1YnRsZSBweC0yJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVDaGFuZ2UoZS50YXJnZXQubmFtZSwgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e19fKCdFbnRlciByZUNBUFRDSEEgdjMgS2V5JywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZTBlMGUwJywgLy8gRGVmYXVsdCBib3JkZXIgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiAnbm9uZScsICAgICAgIC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgb3V0bGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJ25vbmUnLCAgICAgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBib3ggc2hhZG93XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFyZ2luVG9wOiAnMTZweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXsoZSkgPT4gZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnIzYwMDVGRid9IC8vIEFwcGx5IGZvY3VzIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjZTBlMGUwJ30gIC8vIFJldmVydCB0byBkZWZhdWx0IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXIuSXRlbT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgbXQtMSB3LWZ1bGwgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgc3BhY2UteS0xIGJhc2lzLTEvMiBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e251bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnPVwiaDJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtfXygnU2VjcmV0IGtleScsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVhZS1zdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIDxwIGNsYXNzTmFtZT0nZm9udC1ub3JtYWwgdGV4dC1maWVsZC1sYWJlbCB0ZXh0LWJhc2UnPntfXygnU2VjcmV0IGtleScsICd1YWVsJyl9PC9wPiAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicmVjYXB0Y2hhX3YzX3NlY3JldGtleVwiIC8vIE1hdGNoIHRoZSBrZXkgd2l0aCB0aGUgYmFja2VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtzZXR0aW5ncy5yZWNhcHRjaGFfdjNfc2VjcmV0a2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlQ2hhbmdlKGUudGFyZ2V0Lm5hbWUsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9J3ctZnVsbCBib3JkZXIgYm9yZGVyLXN1YnRsZSBweC0yJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtfXygnRW50ZXIgcmVDQVBUQ0hBIHYzIFNlY3JldCBLZXknLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzQ4cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjogJyNlMGUwZTAnLCAvLyBEZWZhdWx0IGJvcmRlciBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiAnbm9uZScsICAgICAgIC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgb3V0bGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdub25lJywgICAgIC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgYm94IHNoYWRvd1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJnaW5Ub3A6ICcxNnB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17KGUpID0+IGUudGFyZ2V0LnN0eWxlLmJvcmRlckNvbG9yID0gJyM2MDA1RkYnfSAvLyBBcHBseSBmb2N1cyBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cj17KGUpID0+IGUudGFyZ2V0LnN0eWxlLmJvcmRlckNvbG9yID0gJyNlMGUwZTAnfSAgLy8gUmV2ZXJ0IHRvIGRlZmF1bHQgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgc3BhY2UteS0xIGJhc2lzLTEvMiBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e251bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnPVwiaDJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtfXygnU2NvcmUgVGhyZXNob2xkJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidWFlLXN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogPHAgY2xhc3NOYW1lPSdmb250LW5vcm1hbCB0ZXh0LWZpZWxkLWxhYmVsIHRleHQtYmFzZSc+e19fKCdTY29yZSBUaHJlc2hvbGQnLCAndWFlbCcpfTwvcD4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInJlY2FwdGNoYV92M19zY29yZVwiIC8vIE1hdGNoIHRoZSBrZXkgd2l0aCB0aGUgYmFja2VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtzZXR0aW5ncy5yZWNhcHRjaGFfdjNfc2NvcmV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVDaGFuZ2UoZS50YXJnZXQubmFtZSwgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0ndy1mdWxsIGJvcmRlciBib3JkZXItc3VidGxlIHB4LTInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e19fKCdFbnRlciByZUNBUFRDSEEgdjMgU2NvcmUnLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzQ4cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjogJyNlMGUwZTAnLCAvLyBEZWZhdWx0IGJvcmRlciBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiAnbm9uZScsICAgICAgIC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgb3V0bGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdub25lJywgICAgIC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgYm94IHNoYWRvd1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJnaW5Ub3A6ICcxNnB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17KGUpID0+IGUudGFyZ2V0LnN0eWxlLmJvcmRlckNvbG9yID0gJyM2MDA1RkYnfSAvLyBBcHBseSBmb2N1cyBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cj17KGUpID0+IGUudGFyZ2V0LnN0eWxlLmJvcmRlckNvbG9yID0gJyNlMGUwZTAnfSAgLy8gUmV2ZXJ0IHRvIGRlZmF1bHQgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduPVwic3RyZXRjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbHVtbiBiZy1iYWNrZ3JvdW5kLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclR5cGU9XCJmbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IFwiMjRweFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IFwiOHB4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogXCIzMnB4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0gPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXtudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZz1cImgyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e19fKCdMb2dpbiBGb3JtJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyLkl0ZW0gY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGwgc3BhY2UteS0xIHNwYWNlLXgtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e251bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnPVwiaDJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e19fKCdHb29nbGUgQ2xpZW50IElEJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhdWFlbFNldHRpbmdzRGF0YS5oaWRlX3NldHRpbmdzID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge19fKCdOb3RlOiBUaGlzIHNldHRpbmcgaXMgcmVxdWlyZWQgaWYgeW91IHdpc2ggdG8gdXNlIExvZ2luIHdpdGggR29vZ2xlIGluIHlvdXIgd2Vic2l0ZS4gJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YCR7dWFlbFNldHRpbmdzRGF0YS51YWVsX2RvbWFpbn1kb2NzL2NyZWF0ZS1nb29nbGUtY2xpZW50LWlkLWZvci1sb2dpbi1mb3JtLXdpZGdldC8/dXRtX3NvdXJjZT11YWVsLXByby1kYXNoYm9hcmQmdXRtX21lZGl1bT11YWVsLW1lbnUtcGFnZSZ1dG1fY2FtcGFpZ249dWFlbC1wcm8tcGx1Z2luYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVhZWwtbGluay1jb2xvciBuby11bmRlcmxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfXygnTmVlZCBIZWxwPycsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidWFlLXN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZ29vZ2xlX2NsaWVudF9pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2V0dGluZ3MuZ29vZ2xlX2NsaWVudF9pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBib3JkZXIgYm9yZGVyLXN1YnRsZSByb3VuZGVkIHAtMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUNoYW5nZShlLnRhcmdldC5uYW1lLCBlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17X18oJ0VudGVyIEdvb2dsZSBDbGllbnQgSUQnLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICc0OHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjogJyNlMGUwZTAnLCAvLyBEZWZhdWx0IGJvcmRlciBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICdub25lJywgICAgICAgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBvdXRsaW5lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnbm9uZScsICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IGJveCBzaGFkb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6ICcxNnB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjNjAwNUZGJ30gLy8gQXBwbHkgZm9jdXMgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cj17KGUpID0+IGUudGFyZ2V0LnN0eWxlLmJvcmRlckNvbG9yID0gJyNlMGUwZTAnfSAgLy8gUmV2ZXJ0IHRvIGRlZmF1bHQgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2JvcmRlciBib3JkZXItc3VidGxlJyBzdHlsZT17eyBoZWlnaHQ6ICcycHgnLCBiYWNrZ3JvdW5kQ29sb3I6ICcjRTVFN0VCJywgbWFyZ2luVG9wOiAnMTZweCcgfX0gLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXtudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZz1cImgyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e19fKCdGYWNlYm9vayBBcHAgRGV0YWlscycsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICF1YWVsU2V0dGluZ3NEYXRhLmhpZGVfc2V0dGluZ3MgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge19fKCdOb3RlOiBUaGlzIHNldHRpbmcgaXMgcmVxdWlyZWQgaWYgeW91IHdpc2ggdG8gdXNlIExvZ2luIHdpdGggR29vZ2xlIGluIHlvdXIgd2Vic2l0ZS4gJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2Ake3VhZWxTZXR0aW5nc0RhdGEudWFlbF9kb21haW59ZG9jcy9jcmVhdGUtZmFjZWJvb2stYXBwLWlkLWZvci1sb2dpbi1mb3JtLXdpZGdldC8/dXRtX3NvdXJjZT11YWVsLXByby1kYXNoYm9hcmQmdXRtX21lZGl1bT11YWVsLW1lbnUtcGFnZSZ1dG1fY2FtcGFpZ249dWFlbC1wcm8tcGx1Z2luYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVhZWwtbGluay1jb2xvciBuby11bmRlcmxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ05lZWQgSGVscD8nLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIG10LTEgdy1mdWxsIGdhcC0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbSBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIHNwYWNlLXktMSBiYXNpcy0xLzIgZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXtudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZz1cImgyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17X18oJ0FwcCBJRCcsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVhZS1zdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIDxwIGNsYXNzTmFtZT0nZm9udC1ub3JtYWwgdGV4dC1maWVsZC1sYWJlbCB0ZXh0LWJhc2UnPntfXygnQXBwIElEJywgJ3VhZWwnKX08L3A+ICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmYWNlYm9va19hcHBfaWRcIiAvLyBNYXRjaCB0aGUga2V5IHdpdGggdGhlIGJhY2tlbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2V0dGluZ3MuZmFjZWJvb2tfYXBwX2lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlQ2hhbmdlKGUudGFyZ2V0Lm5hbWUsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17X18oJ0VudGVyIEZhY2Vib29rIEFwcCBJRCcsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2UwZTBlMCcsIC8vIERlZmF1bHQgYm9yZGVyIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICdub25lJywgICAgICAgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBvdXRsaW5lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJ25vbmUnLCAgICAgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBib3ggc2hhZG93XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcmdpblRvcDogJzE2cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXsoZSkgPT4gZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnIzYwMDVGRid9IC8vIEFwcGx5IGZvY3VzIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXsoZSkgPT4gZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnI2UwZTBlMCd9ICAvLyBSZXZlcnQgdG8gZGVmYXVsdCBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0ndy1mdWxsIGJvcmRlciBib3JkZXItc3VidGxlIHB4LTInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbSBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIHNwYWNlLXktMSBiYXNpcy0xLzIgZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXtudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZz1cImgyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17X18oJ0FwcCBTZWNyZXQnLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1YWUtc3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8cCBjbGFzc05hbWU9J2ZvbnQtbm9ybWFsIHRleHQtZmllbGQtbGFiZWwgdGV4dC1iYXNlJz57X18oJ0FwcCBTZWNyZXQnLCAndWFlbCcpfTwvcD4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZhY2Vib29rX2FwcF9zZWNyZXRcIiAvLyBNYXRjaCB0aGUga2V5IHdpdGggdGhlIGJhY2tlbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2V0dGluZ3MuZmFjZWJvb2tfYXBwX3NlY3JldH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUNoYW5nZShlLnRhcmdldC5uYW1lLCBlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e19fKCdFbnRlciBGYWNlYm9vayBBcHAgU2VjcmV0JywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICc0OHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZTBlMGUwJywgLy8gRGVmYXVsdCBib3JkZXIgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogJ25vbmUnLCAgICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IG91dGxpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnbm9uZScsICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IGJveCBzaGFkb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFyZ2luVG9wOiAnMTZweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjNjAwNUZGJ30gLy8gQXBwbHkgZm9jdXMgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjZTBlMGUwJ30gIC8vIFJldmVydCB0byBkZWZhdWx0IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSd3LWZ1bGwgYm9yZGVyIGJvcmRlci1zdWJ0bGUgcHgtMidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduPVwic3RyZXRjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbHVtbiBiZy1iYWNrZ3JvdW5kLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclR5cGU9XCJmbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IFwiMjRweFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IFwiOHB4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogXCIzMnB4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0gPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXtudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZz1cImgyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e19fKCdTb2NpYWwgU2hhcmUnLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbSBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIHctZnVsbCBzcGFjZS15LTEgc3BhY2UteC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17bnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWc9XCJoMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17X18oJ0ZhY2Vib29rIEFjY2VzcyBUb2tlbicsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXVhZWxTZXR0aW5nc0RhdGEuaGlkZV9zZXR0aW5ncyA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfXygnTm90ZTogVGhpcyBzZXR0aW5nIGlzIHJlcXVpcmVkIGlmIHlvdSB3aXNoIHRvIGZldGNoIHNoYXJlIGNvdW50IG9mIHlvdXIgcG9zdC9wYWdlIGZyb20gRmFjZWJvb2suICcsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2Ake3VhZWxTZXR0aW5nc0RhdGEudWFlbF9kb21haW59ZG9jcy9kaXNwbGF5LXNoYXJlLWNvdW50LWZvci1mYWNlYm9vay8/dXRtX3NvdXJjZT11YWVsLXByby1kYXNoYm9hcmQmdXRtX21lZGl1bT11YWVsLW1lbnUtcGFnZSZ1dG1fY2FtcGFpZ249dWFlbC1wcm8tcGx1Z2luYH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVhZWwtbGluay1jb2xvciBuby11bmRlcmxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfXygnTmVlZCBIZWxwPycsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidWFlLXN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidWFlbF9zaGFyZV9idXR0b25cIiAvLyBNYXRjaCB0aGUga2V5IHdpdGggdGhlIGJhY2tlbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtzZXR0aW5ncy51YWVsX3NoYXJlX2J1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBib3JkZXIgYm9yZGVyLXN1YnRsZSByb3VuZGVkIHAtMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUNoYW5nZShlLnRhcmdldC5uYW1lLCBlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzQ4cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2UwZTBlMCcsIC8vIERlZmF1bHQgYm9yZGVyIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogJ25vbmUnLCAgICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IG91dGxpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdub25lJywgICAgIC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgYm94IHNoYWRvd1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJzE2cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17KGUpID0+IGUudGFyZ2V0LnN0eWxlLmJvcmRlckNvbG9yID0gJyM2MDA1RkYnfSAvLyBBcHBseSBmb2N1cyBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXsoZSkgPT4gZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnI2UwZTBlMCd9ICAvLyBSZXZlcnQgdG8gZGVmYXVsdCBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduPVwic3RyZXRjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbHVtbiBiZy1iYWNrZ3JvdW5kLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclR5cGU9XCJmbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IFwiMjRweFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IFwiOHB4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogXCIzMnB4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0gPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXtudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZz1cImgyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e19fKCdNYXhNaW5kIEdlb2xvY2F0aW9uJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXVhZWxTZXR0aW5nc0RhdGEuaGlkZV9zZXR0aW5ncyA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ05vdGU6IEFuIGludGVncmF0aW9uIGZvciB1dGlsaXppbmcgTWF4TWluZCB0byBkbyBHZW9sb2NhdGlvbiBsb29rdXBzLiBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgaW50ZWdyYXRpb24gd2lsbCBvbmx5IGRvIENvdW50cnkgbG9va3Vwcy4gJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2Ake3VhZWxTZXR0aW5nc0RhdGEudWFlbF9kb21haW59ZG9jcy9kaXNwbGF5LWNvbmRpdGlvbnMtZ2VvbG9jYXRpb24vP3V0bV9zb3VyY2U9dWFlbC1wcm8tZGFzaGJvYXJkJnV0bV9tZWRpdW09dWFlbC1tZW51LXBhZ2UmdXRtX2NhbXBhaWduPXVhZWwtcHJvLXBsdWdpbmB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1YWVsLWxpbmstY29sb3Igbm8tdW5kZXJsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge19fKCdOZWVkIEhlbHA/JywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgbXQtMSB3LWZ1bGwgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgc3BhY2UteS0xIGJhc2lzLTEvMiBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e251bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnPVwiaDJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtfXygnTGljZW5zZSBLZXknLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1YWUtc3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8cCBjbGFzc05hbWU9J2ZvbnQtbm9ybWFsIHRleHQtZmllbGQtbGFiZWwgdGV4dC1iYXNlJz57X18oJ0xpY2Vuc2UgS2V5JywgJ3VhZWwnKX08L3A+ICovfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ1YWVsX21heG1pbmRfZ2VvbG9jYXRpb25fbGljZW5zZV9rZXlcIiAvLyBNYXRjaCB0aGUga2V5IHdpdGggdGhlIGJhY2tlbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2V0dGluZ3MudWFlbF9tYXhtaW5kX2dlb2xvY2F0aW9uX2xpY2Vuc2Vfa2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlQ2hhbmdlKGUudGFyZ2V0Lm5hbWUsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17X18oJ0VudGVyIE1heE1pbmQgTGljZW5zZSBLZXknLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0ndy1mdWxsIGJvcmRlciBib3JkZXItc3VidGxlIHB4LTInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2UwZTBlMCcsIC8vIERlZmF1bHQgYm9yZGVyIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICdub25lJywgICAgICAgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBvdXRsaW5lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJ25vbmUnLCAgICAgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBib3ggc2hhZG93XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcmdpblRvcDogJzE2cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXsoZSkgPT4gZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnIzYwMDVGRid9IC8vIEFwcGx5IGZvY3VzIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXsoZSkgPT4gZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnI2UwZTBlMCd9ICAvLyBSZXZlcnQgdG8gZGVmYXVsdCBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXIuSXRlbT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyLkl0ZW0gY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBzcGFjZS15LTEgYmFzaXMtMS8yIGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17bnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInhzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWc9XCJoMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e19fKCdEYXRhYmFzZSBGaWxlIFBhdGgnLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1YWUtc3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8cCBjbGFzc05hbWU9J2ZvbnQtbm9ybWFsIHRleHQtZmllbGQtbGFiZWwgdGV4dC1iYXNlJz57X18oJ0RhdGFiYXNlIEZpbGUgUGF0aCcsICd1YWVsJyl9PC9wPiAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ1YWVsX21heG1pbmRfZ2VvbG9jYXRpb25fZGJfcGF0aFwiIC8vIE1hdGNoIHRoZSBrZXkgd2l0aCB0aGUgYmFja2VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt1YWVsU2V0dGluZ3NEYXRhLm1heG1pbmRfZGJfcGF0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICc0OHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjZTBlMGUwJywgLy8gRGVmYXVsdCBib3JkZXIgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogJ25vbmUnLCAgICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IG91dGxpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnbm9uZScsICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IGJveCBzaGFkb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFyZ2luVG9wOiAnMTZweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjNjAwNUZGJ30gLy8gQXBwbHkgZm9jdXMgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjZTBlMGUwJ30gIC8vIFJldmVydCB0byBkZWZhdWx0IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSd3LWZ1bGwgYm9yZGVyIGJvcmRlci1zdWJ0bGUgcHgtMidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21heG1pbmRTdGF0dXMgPT09ICdlcnJvcicgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImVycm9yLW1lc3NhZ2UgZm9udC1ub3JtYWwgbXktMCB0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ1RoZSBNYXhNaW5kIGxpY2Vuc2Uga2V5IGlzIGludmFsaWQuIElmIHlvdSBoYXZlIHJlY2VudGx5IGNyZWF0ZWQgdGhpcyBrZXksIHlvdSBtYXkgbmVlZCB0byB3YWl0IGZvciBpdCB0byBiZWNvbWUgYWN0aXZlLicsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduPVwic3RyZXRjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbHVtbiBiZy1iYWNrZ3JvdW5kLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclR5cGU9XCJmbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IFwiMjRweFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IFwiOHB4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogXCIzMnB4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0gPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXtudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZz1cImgyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e19fKCdUd2l0dGVyIEZlZWQnLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhdWFlbFNldHRpbmdzRGF0YS5oaWRlX3NldHRpbmdzID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfXygnTm90ZTogVG8gZGlzcGxheSB5b3VyIFR3aXR0ZXIgRmVlZCBvbiB5b3VyIHdlYnNpdGUsIHlvdVxcJ2xsIG5lZWQgdG8gYWNxdWlyZSBUd2l0dGVyXFwncyBiYXNpYyBwbGFuIGFuZCBvYnRhaW4geW91ciBUd2l0dGVyIENvbnN1bWVyIEtleSBhbmQgQ29uc3VtZXIgU2VjcmV0IEtleS4gRm9yIGd1aWRhbmNlIG9uIG9idGFpbmluZyB0aGVzZSBrZXlzLCAnLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YCR7dWFlbFNldHRpbmdzRGF0YS51YWVsX2RvbWFpbn1kb2NzL3R3aXR0ZXItZmVlZC13aWRnZXQvP3V0bV9zb3VyY2U9dWFlbC1wcm8tZGFzaGJvYXJkJnV0bV9tZWRpdW09dWFlbC1lZGl0b3Itc2NyZWVuJnV0bV9jYW1wYWlnbj11YWVsLXByby1wbHVnaW5gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidWFlbC1saW5rLWNvbG9yIG5vLXVuZGVybGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfXygnTmVlZCBIZWxwPycsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgbXQtMSB3LWZ1bGwgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgc3BhY2UteS0xIGJhc2lzLTEvMiBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e251bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnPVwiaDJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtfXygnQ29uc3VtZXIgS2V5JywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1YWUtc3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiA8cCBjbGFzc05hbWU9J2ZvbnQtbm9ybWFsIHRleHQtZmllbGQtbGFiZWwgdGV4dC1iYXNlJz57X18oJ0NvbnN1bWVyIEtleScsICd1YWVsJyl9PC9wPiAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidWFlbF90d2l0dGVyX2ZlZWRfY29uc3VtZXJfa2V5XCIgLy8gTWF0Y2ggdGhlIGtleSB3aXRoIHRoZSBiYWNrZW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3NldHRpbmdzLnVhZWxfdHdpdHRlcl9mZWVkX2NvbnN1bWVyX2tleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUNoYW5nZShlLnRhcmdldC5uYW1lLCBlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e19fKCdFbnRlciBUd2l0dGVyIENvbnN1bWVyIEtleScsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2UwZTBlMCcsIC8vIERlZmF1bHQgYm9yZGVyIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICdub25lJywgICAgICAgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBvdXRsaW5lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJ25vbmUnLCAgICAgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBib3ggc2hhZG93XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcmdpblRvcDogJzE2cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXsoZSkgPT4gZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnIzYwMDVGRid9IC8vIEFwcGx5IGZvY3VzIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXsoZSkgPT4gZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnI2UwZTBlMCd9ICAvLyBSZXZlcnQgdG8gZGVmYXVsdCBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0ndy1mdWxsIGJvcmRlciBib3JkZXItc3VidGxlIHB4LTInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbSBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIHNwYWNlLXktMSBiYXNpcy0xLzIgZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXtudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZz1cImgyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17X18oJ0NvbnN1bWVyIFNlY3JldCcsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidWFlLXN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogPHAgY2xhc3NOYW1lPSdmb250LW5vcm1hbCB0ZXh0LWZpZWxkLWxhYmVsIHRleHQtYmFzZSc+e19fKCdDb25zdW1lciBTZWNyZXQnLCAndWFlbCcpfTwvcD4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInVhZWxfdHdpdHRlcl9mZWVkX2NvbnN1bWVyX3NlY3JldFwiIC8vIE1hdGNoIHRoZSBrZXkgd2l0aCB0aGUgYmFja2VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtzZXR0aW5ncy51YWVsX3R3aXR0ZXJfZmVlZF9jb25zdW1lcl9zZWNyZXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVDaGFuZ2UoZS50YXJnZXQubmFtZSwgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtfXygnRW50ZXIgVHdpdHRlciBDb25zdW1lciBTZWNyZXQnLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzQ4cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjogJyNlMGUwZTAnLCAvLyBEZWZhdWx0IGJvcmRlciBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiAnbm9uZScsICAgICAgIC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgb3V0bGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdub25lJywgICAgIC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgYm94IHNoYWRvd1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJnaW5Ub3A6ICcxNnB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17KGUpID0+IGUudGFyZ2V0LnN0eWxlLmJvcmRlckNvbG9yID0gJyM2MDA1RkYnfSAvLyBBcHBseSBmb2N1cyBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cj17KGUpID0+IGUudGFyZ2V0LnN0eWxlLmJvcmRlckNvbG9yID0gJyNlMGUwZTAnfSAgLy8gUmV2ZXJ0IHRvIGRlZmF1bHQgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9J3ctZnVsbCBib3JkZXIgYm9yZGVyLXN1YnRsZSBweC0yJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXIuSXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbj1cInN0cmV0Y2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2x1bW4gYmctYmFja2dyb3VuZC1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJUeXBlPVwiZmxleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBcIjI0cHhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjhweFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6IFwiMzJweFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19ID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17bnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWc9XCJoMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtfXygnSW5zdGFncmFtIEZlZWQgLSBJbnN0YWdyYW0gUHJvZHVjdCBBUEkgRGV0YWlscycsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICF1YWVsU2V0dGluZ3NEYXRhLmhpZGVfc2V0dGluZ3MgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge19fKCdOb3RlOiBUaGlzIHNldHRpbmcgaXMgcmVxdWlyZWQgaWYgeW91IHdpc2ggdG8gdXNlIEluc3RhZ3JhbSBGZWVkIGluIHlvdXIgd2Vic2l0ZS4gJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2Ake3VhZWxTZXR0aW5nc0RhdGEudWFlbF9kb21haW59ZG9jcy9pbnN0YWdyYW0tZmVlZC13aWRnZXQvP3V0bV9zb3VyY2U9dWFlbC1wcm8tZGFzaGJvYXJkJnV0bV9tZWRpdW09dWFlbC1lZGl0b3Itc2NyZWVuJnV0bV9jYW1wYWlnbj11YWVsLXByby1wbHVnaW5gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidWFlbC1saW5rLWNvbG9yIG5vLXVuZGVybGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfXygnTmVlZCBIZWxwPycsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgbXQtMSB3LWZ1bGwgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgc3BhY2UteS0xIGJhc2lzLTEvMiBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e251bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnPVwiaDJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtfXygnQXBwIElEJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidWFlLXN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogPHAgY2xhc3NOYW1lPSdmb250LW5vcm1hbCB0ZXh0LWZpZWxkLWxhYmVsIHRleHQtYmFzZSc+e19fKCdBcHAgSUQnLCAndWFlbCcpfTwvcD4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImluc3RhZ3JhbV9hcHBfaWRcIiAvLyBNYXRjaCB0aGUga2V5IHdpdGggdGhlIGJhY2tlbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2V0dGluZ3MuaW5zdGFncmFtX2FwcF9pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUNoYW5nZShlLnRhcmdldC5uYW1lLCBlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e19fKCdFbnRlciBJbnN0YWdyYW0gQXBwIElEJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9J3ctZnVsbCBib3JkZXIgYm9yZGVyLXN1YnRsZSBweC0yJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzQ4cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjogJyNlMGUwZTAnLCAvLyBEZWZhdWx0IGJvcmRlciBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiAnbm9uZScsICAgICAgIC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgb3V0bGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdub25lJywgICAgIC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgYm94IHNoYWRvd1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJnaW5Ub3A6ICcxNnB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17KGUpID0+IGUudGFyZ2V0LnN0eWxlLmJvcmRlckNvbG9yID0gJyM2MDA1RkYnfSAvLyBBcHBseSBmb2N1cyBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cj17KGUpID0+IGUudGFyZ2V0LnN0eWxlLmJvcmRlckNvbG9yID0gJyNlMGUwZTAnfSAgLy8gUmV2ZXJ0IHRvIGRlZmF1bHQgY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgc3BhY2UteS0xIGJhc2lzLTEvMiBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e251bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnPVwiaDJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtfXygnQXBwIFNlY3JldCcsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVhZS1zdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qIDxwIGNsYXNzTmFtZT0nZm9udC1ub3JtYWwgdGV4dC1maWVsZC1sYWJlbCB0ZXh0LWJhc2UnPntfXygnQXBwIFNlY3JldCcsICd1YWVsJyl9PC9wPiAqL31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiaW5zdGFncmFtX2FwcF9zZWNyZXRcIiAvLyBNYXRjaCB0aGUga2V5IHdpdGggdGhlIGJhY2tlbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2V0dGluZ3MuaW5zdGFncmFtX2FwcF9zZWNyZXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVDaGFuZ2UoZS50YXJnZXQubmFtZSwgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtfXygnRW50ZXIgSW5zdGFncmFtIEFwcCBTZWNyZXQnLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0ndy1mdWxsIGJvcmRlciBib3JkZXItc3VidGxlIHB4LTInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNDhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2UwZTBlMCcsIC8vIERlZmF1bHQgYm9yZGVyIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICdub25lJywgICAgICAgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBvdXRsaW5lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJ25vbmUnLCAgICAgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBib3ggc2hhZG93XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcmdpblRvcDogJzE2cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXsoZSkgPT4gZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnIzYwMDVGRid9IC8vIEFwcGx5IGZvY3VzIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXsoZSkgPT4gZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnI2UwZTBlMCd9ICAvLyBSZXZlcnQgdG8gZGVmYXVsdCBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXIuSXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbSBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIHctZnVsbCBzcGFjZS15LTEgc3BhY2UteC0yIG10LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBwYi0xJz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e251bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnPVwiaDJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtfXygnQWNjZXNzIFRva2VuJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidWFlLXN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogPHAgY2xhc3NOYW1lPSdmb250LW5vcm1hbCB0ZXh0LWZpZWxkLWxhYmVsIHRleHQtYmFzZSc+e19fKCdBY2Nlc3MgVG9rZW4nLCAndWFlbCcpfTwvcD4gKi99XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17dG9rZW5SZWZyZXNoID8gPExvYWRlckNpcmNsZSBjbGFzc05hbWU9XCJhbmltYXRlLXNwaW5cIiAvPiA6IDxSZWZyZXNoQ2N3IHN0eWxlPXt7IGNvbG9yOiBcIiM2MDA1RkZcIiB9fSAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1YWVsLXJlbW92ZS1yaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17Z2VuZXJhdGVJbnN0YWdyYW1BY2Nlc3NUb2tlbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogJ2ZpdC1jb250ZW50Jywgb3V0bGluZTogJ25vbmUnLCB0ZXh0RGVjb3JhdGlvbjogJ25vbmUnLCBjb2xvcjogJyM2MDA1RkYnIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Rva2VuUmVmcmVzaCA/IF9fKCdSZWZyZXNoaW5nIHRva2VuLi4uJywgJ3VhZWwnKSA6IF9fKCdSZWZyZXNoIEFjY2VzcyBUb2tlbicsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImluc3RhZ3JhbV9hcHBfdG9rZW5cIiAvLyBNYXRjaCB0aGUga2V5IHdpdGggdGhlIGJhY2tlbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtzZXR0aW5ncy5pbnN0YWdyYW1fYXBwX3Rva2VufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVDaGFuZ2UoZS50YXJnZXQubmFtZSwgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e19fKCdFbnRlciBJbnN0YWdyYW0gQWNjZXNzIFRva2VuJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0ndy1mdWxsIGJvcmRlciBib3JkZXItc3VidGxlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICc0OHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjogJyNlMGUwZTAnLCAvLyBEZWZhdWx0IGJvcmRlciBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICdub25lJywgICAgICAgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBvdXRsaW5lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnbm9uZScsICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IGJveCBzaGFkb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXsoZSkgPT4gZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnIzYwMDVGRid9IC8vIEFwcGx5IGZvY3VzIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjZTBlMGUwJ30gIC8vIFJldmVydCB0byBkZWZhdWx0IGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXIuSXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogJyM2MDA1ZmYnIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17aXNTYXZpbmcgPyA8TG9hZGVyQ2lyY2xlIGNsYXNzTmFtZT1cImFuaW1hdGUtc3BpblwiIC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJsZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17aXNTYXZpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIG10LTQgc3RpY2t5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNTYXZpbmcgPyBfXygnU2F2aW5nLi4uJywgJ3VhZWwnKSA6IF9fKCdTYXZlJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8VG9hc3RlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPVwidG9wLXJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZlcnNlT3JkZXI9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1dHRlcj17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJTdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDIwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMjAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJzgwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9hc3RPcHRpb25zPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiA1MDAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3doaXRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uVGhlbWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5OiAnIzYwMDVmZicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5OiAnI2ZmZicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgSW50ZWdyYXRpb25zXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZUNhbGxiYWNrIiwiQ29udGFpbmVyIiwiVGl0bGUiLCJCdXR0b24iLCJMb2FkZXIiLCJhcGlGZXRjaCIsIl9fIiwidG9hc3QiLCJUb2FzdGVyIiwiRmlsZVRleHQiLCJMb2FkZXJDaXJjbGUiLCJSZWZyZXNoQ2N3IiwiZGVib3VuY2UiLCJJbnRlZ3JhdGlvbnMiLCJfdXNlU3RhdGUiLCJnb29nbGVfYXBpIiwiZGV2ZWxvcGVyX21vZGUiLCJsYW5ndWFnZSIsImdvb2dsZV9wbGFjZXNfYXBpIiwieWVscF9hcGkiLCJyZWNhcHRjaGFfdjNfa2V5IiwicmVjYXB0Y2hhX3YzX3NlY3JldGtleSIsInJlY2FwdGNoYV92M19zY29yZSIsImdvb2dsZV9jbGllbnRfaWQiLCJmYWNlYm9va19hcHBfaWQiLCJmYWNlYm9va19hcHBfc2VjcmV0IiwidWFlbF9zaGFyZV9idXR0b24iLCJ1YWVsX21heG1pbmRfZ2VvbG9jYXRpb25fbGljZW5zZV9rZXkiLCJ1YWVsX21heG1pbmRfZ2VvbG9jYXRpb25fZGJfcGF0aCIsInVhZWxfdHdpdHRlcl9mZWVkX2NvbnN1bWVyX2tleSIsInVhZWxfdHdpdHRlcl9mZWVkX2NvbnN1bWVyX3NlY3JldCIsImluc3RhZ3JhbV9hcHBfaWQiLCJpbnN0YWdyYW1fYXBwX3NlY3JldCIsImluc3RhZ3JhbV9hcHBfdG9rZW4iLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXR0aW5ncyIsInNldFNldHRpbmdzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiZXJyb3IiLCJzZXRFcnJvciIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwic3VjY2Vzc01lc3NhZ2UiLCJzZXRTdWNjZXNzTWVzc2FnZSIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUxMCIsImlzU2F2aW5nIiwic2V0SXNTYXZpbmciLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwidG9rZW5SZWZyZXNoIiwic2V0VG9rZW5SZWZyZXNoIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsIm1heG1pbmRTdGF0dXMiLCJzZXRNYXhtaW5kU3RhdHVzIiwibGFuZ3VhZ2VzRGF0YSIsIl90eXBlb2YiLCJ3aW5kb3ciLCJ1YWVMYW5ndWFnZXNEYXRhIiwiT2JqZWN0IiwiZW50cmllcyIsImZldGNoU2V0dGluZ3MiLCJwYXRoIiwiaGVhZGVycyIsInVhZWxTZXR0aW5nc0RhdGEiLCJ1YWVsX25vbmNlX2FjdGlvbiIsInRoZW4iLCJkYXRhIiwiZXJyIiwibWVzc2FnZSIsInZhbGlkYXRlQXBpIiwiYXBpS2V5Iiwic291cmNlIiwiYXBpX3R5cGUiLCJtZXRob2QiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsInN1Y2Nlc3MiLCJjb25jYXQiLCJkZWJvdW5jZWRWYWxpZGF0ZUFwaSIsImhhbmRsZUNoYW5nZSIsIm5hbWUiLCJ2YWx1ZSIsInByZXZTZXR0aW5ncyIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZW5lcmF0ZUluc3RhZ3JhbUFjY2Vzc1Rva2VuIiwicmVmcmVzaFRva2VuVVJMIiwiZmV0Y2giLCJyZXNwb25zZSIsImpzb24iLCJhY2Nlc3NfdG9rZW4iLCJoYW5kbGVTdWJtaXQiLCJlIiwicHJldmVudERlZmF1bHQiLCJtYXhtaW5kX3N0YXR1cyIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJzdHlsZSIsInBvc2l0aW9uIiwiaWNvbiIsInNpemUiLCJvblN1Ym1pdCIsInBhZGRpbmdCb3R0b20iLCJkZXNjcmlwdGlvbiIsImljb25Qb3NpdGlvbiIsInRhZyIsInRpdGxlIiwiZ2FwIiwidHlwZSIsImJhY2tncm91bmRDb2xvciIsImRpc2FibGVkIiwiYWxpZ24iLCJjb250YWluZXJUeXBlIiwiZGlyZWN0aW9uIiwianVzdGlmeSIsIm1hcmdpblRvcCIsInBhZGRpbmciLCJib3JkZXJSYWRpdXMiLCJJdGVtIiwiaGlkZV9zZXR0aW5ncyIsIkZyYWdtZW50IiwiaHJlZiIsInVhZWxfZG9tYWluIiwidGFyZ2V0IiwicmVsIiwib25DaGFuZ2UiLCJwbGFjZWhvbGRlciIsImhlaWdodCIsImJvcmRlckNvbG9yIiwib3V0bGluZSIsImJveFNoYWRvdyIsIm9uRm9jdXMiLCJvbkJsdXIiLCJtYXAiLCJfcmVmIiwiX3JlZjIiLCJjb2RlIiwia2V5IiwibWF4bWluZF9kYl9wYXRoIiwiY29sb3IiLCJ2YXJpYW50Iiwib25DbGljayIsIndpZHRoIiwidGV4dERlY29yYXRpb24iLCJyZXZlcnNlT3JkZXIiLCJndXR0ZXIiLCJjb250YWluZXJTdHlsZSIsInRvcCIsInJpZ2h0IiwidG9hc3RPcHRpb25zIiwiZHVyYXRpb24iLCJiYWNrZ3JvdW5kIiwiaWNvblRoZW1lIiwicHJpbWFyeSIsInNlY29uZGFyeSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/Components/Settings/Integrations.jsx\n");
/***/ }),
/***/ "./src/Components/Settings/MyAccount.jsx":
/*!***********************************************!*\
!*** ./src/Components/Settings/MyAccount.jsx ***!
\***********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/api-fetch */ \"@wordpress/api-fetch\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/loader-circle.js\");\n/* harmony import */ var react_hot_toast__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-hot-toast */ \"./node_modules/react-hot-toast/dist/index.mjs\");\n\n\n\n\n\n\n\nvar MyAccount = function MyAccount() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n licenseKey = _useState2[0],\n setlicenseKey = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState3, 2),\n loading = _useState4[0],\n setLoading = _useState4[1];\n var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''),\n _useState6 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState5, 2),\n errorMessage = _useState6[0],\n setErrorMessage = _useState6[1];\n var licenseStatus = uaelSettingsData.license_status;\n var licensePlaceholder = licenseStatus ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Your license is active.', 'uael') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Paste your license key here', 'uael');\n var activateHandler = function activateHandler() {\n if (!licenseKey) {\n react_hot_toast__WEBPACK_IMPORTED_MODULE_5__.toast.error((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Please enter a valid license key!', 'uael'));\n setErrorMessage((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Enter a valid license key!', 'uael'));\n return;\n }\n setLoading(true);\n setErrorMessage('');\n var formData = new window.FormData();\n formData.append('key', licenseKey);\n formData.append('action', 'uael_license_activation');\n formData.append('security', uaelSettingsData.license_activation_nonce);\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3___default()({\n url: uaelSettingsData.ajax_url,\n method: 'POST',\n body: formData\n }).then(function (data) {\n setLoading(false);\n if (data.success) {\n react_hot_toast__WEBPACK_IMPORTED_MODULE_5__.toast.success((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('License successfully validated!', 'uael'));\n location.reload();\n } else {\n react_hot_toast__WEBPACK_IMPORTED_MODULE_5__.toast.error(data.message || (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Please enter a valid license key!', 'uael'));\n setErrorMessage(data.message || (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Enter a valid license key!', 'uael')); // Set error message.\n }\n });\n };\n var deactivateHandler = function deactivateHandler() {\n setLoading(true);\n setErrorMessage('');\n var formData = new window.FormData();\n formData.append('action', 'uael_license_deactivation');\n formData.append('security', uaelSettingsData.license_deactivation_nonce);\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3___default()({\n url: uaelSettingsData.ajax_url,\n method: 'POST',\n body: formData\n }).then(function (data) {\n setLoading(false);\n if (data.success) {\n react_hot_toast__WEBPACK_IMPORTED_MODULE_5__.toast.success((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('License successfully deactivated!', 'uael')); // Show toast notification on success\n location.reload();\n } else {\n react_hot_toast__WEBPACK_IMPORTED_MODULE_5__.toast.error(data.message || (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('An error occurred while deactivating license.', 'uael'));\n setErrorMessage(data.message || (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('An error occurred while deactivating license.', 'uael'));\n }\n });\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement((react__WEBPACK_IMPORTED_MODULE_1___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(react_hot_toast__WEBPACK_IMPORTED_MODULE_5__.Toaster, {\n position: \"top-right\",\n reverseOrder: false,\n gutter: 8,\n containerStyle: {\n top: 20,\n right: 20,\n marginTop: '40px'\n },\n toastOptions: {\n duration: 5000,\n style: {\n background: 'white'\n },\n success: {\n duration: 3000,\n iconTheme: {\n primary: '#6005ff',\n secondary: '#fff'\n }\n }\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n description: \"\",\n icon: null,\n iconPosition: \"right\",\n size: \"sm\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('My Account', 'uael')\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container, {\n align: \"stretch\",\n className: \"bg-background-primary p-6 rounded-lg uael-78-width\",\n containerType: \"flex\",\n direction: \"column\",\n gap: \"sm\",\n justify: \"start\",\n style: {\n marginTop: \"24px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col space-y-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"p\", {\n className: \"text-base font-semibold m-0\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('License Key', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"p\", {\n className: \"text-sm font-normal m-0\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Please enter your valid license key below to activate ' + uaelSettingsData.plugin_name + '!', 'uael'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col lg:flex-row gap-2 items-center space-y-2\",\n alignSelf: \"auto\",\n order: \"none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"input\", {\n value: licenseKey,\n onChange: function onChange(e) {\n return setlicenseKey(e.target.value);\n },\n placeholder: licensePlaceholder,\n readOnly: licenseStatus,\n size: \"md\",\n type: \"text\",\n className: \"w-full shrink \".concat(licenseStatus ? 'uael-green-placeholder' : ''),\n style: {\n height: '48px',\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none',\n // Removes the default box shadow\n borderColor: errorMessage ? 'red' : 'inherit'\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"cursor-pointer mb-2 shrink\",\n style: {\n minWidth: \"fit-content\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Button, {\n icon: loading ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"animate-spin\"\n }) : null,\n iconPosition: \"left\",\n style: {\n paddingTop: '14px',\n paddingBottom: '14px'\n },\n className: \"bg-[#6005FF] mb-2\",\n variant: \"primary\",\n onClick: licenseStatus ? deactivateHandler : activateHandler,\n disabled: loading // Disable button during loading to prevent multiple clicks.\n }, loading ? licenseStatus ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Deactivating...', 'uael') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Activating...', 'uael') : licenseStatus ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Deactivate License', 'uael') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Activate License', 'uael')))), errorMessage && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"p\", {\n className: \"text-red-500 text-xs\",\n style: {\n color: 'red',\n marginTop: \"-10px\"\n }\n }, errorMessage) // Show error message below the input field\n ));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (MyAccount);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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TjBELElBQUksRUFBRTlDLE9BQU8sZ0JBQUdsQiwwREFBQSxDQUFDTyxvREFBWTtNQUFDK0QsU0FBUyxFQUFDO0lBQWMsQ0FBRSxDQUFDLEdBQUcsSUFBSztJQUNqRUwsWUFBWSxFQUFDLE1BQU07SUFDbkJQLEtBQUssRUFBSTtNQUFFb0MsVUFBVSxFQUFFLE1BQU07TUFBRUMsYUFBYSxFQUFFO0lBQU8sQ0FBRTtJQUN2RHpCLFNBQVMsRUFBQyxtQkFBbUI7SUFDN0IwQixPQUFPLEVBQUMsU0FBUztJQUNqQkMsT0FBTyxFQUFFekUsYUFBYSxHQUFHcUIsaUJBQWlCLEdBQUdqQixlQUFnQjtJQUM3RHNFLFFBQVEsRUFBRWhGLE9BQVEsQ0FBQztFQUFBLEdBRWxCQSxPQUFPLEdBQ0pNLGFBQWEsR0FBR3RCLG1EQUFFLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLEdBQUdBLG1EQUFFLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxHQUMzRXNCLGFBQWEsR0FBR3RCLG1EQUFFLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLEdBQUdBLG1EQUFFLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUM3RSxDQUNKLENBQ1UsQ0FBQyxFQUNoQm9CLFlBQVksaUJBQ1p0QiwwREFBQTtJQUFHc0UsU0FBUyxFQUFDLHNCQUFzQjtJQUFDWixLQUFLLEVBQUU7TUFBRXlDLEtBQUssRUFBRSxLQUFLO01BQUU1QyxTQUFTLEVBQUU7SUFBUTtFQUFFLEdBQUVqQyxZQUFnQixDQUFDLENBQUM7RUFFM0YsQ0FDVixDQUFDO0FBRUwsQ0FBQztBQUVELCtEQUFlWixTQUFTIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL3NyYy9Db21wb25lbnRzL1NldHRpbmdzL015QWNjb3VudC5qc3g/ZmZmNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5pbXBvcnQgYXBpRmV0Y2ggZnJvbSAnQHdvcmRwcmVzcy9hcGktZmV0Y2gnO1xuaW1wb3J0IHsgQ29udGFpbmVyLCBUaXRsZSwgQnV0dG9uIH0gZnJvbSBcIkBic2YvZm9yY2UtdWlcIjtcbmltcG9ydCB7IExvYWRlckNpcmNsZSB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIjtcbmltcG9ydCB7IFRvYXN0ZXIsIHRvYXN0IH0gZnJvbSAncmVhY3QtaG90LXRvYXN0JztcblxuY29uc3QgTXlBY2NvdW50ID0gKCkgPT4ge1xuXHRjb25zdCBbbGljZW5zZUtleSwgc2V0bGljZW5zZUtleV0gPSB1c2VTdGF0ZSgnJyk7XG5cdGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcblx0Y29uc3QgW2Vycm9yTWVzc2FnZSwgc2V0RXJyb3JNZXNzYWdlXSA9IHVzZVN0YXRlKCcnKTtcblxuXHRjb25zdCBsaWNlbnNlU3RhdHVzID0gdWFlbFNldHRpbmdzRGF0YS5saWNlbnNlX3N0YXR1cztcblx0Y29uc3QgbGljZW5zZVBsYWNlaG9sZGVyID0gbGljZW5zZVN0YXR1cyA/IF9fKCdZb3VyIGxpY2Vuc2UgaXMgYWN0aXZlLicsICd1YWVsJykgOiBfXygnUGFzdGUgeW91ciBsaWNlbnNlIGtleSBoZXJlJywgJ3VhZWwnKTtcblxuXHRjb25zdCBhY3RpdmF0ZUhhbmRsZXIgPSAoKSA9PiB7XG5cdFx0aWYgKCFsaWNlbnNlS2V5KSB7XG5cdFx0XHR0b2FzdC5lcnJvcihfXygnUGxlYXNlIGVudGVyIGEgdmFsaWQgbGljZW5zZSBrZXkhJywgJ3VhZWwnKSk7XG5cdFx0XHRzZXRFcnJvck1lc3NhZ2UoX18oJ0VudGVyIGEgdmFsaWQgbGljZW5zZSBrZXkhJywgJ3VhZWwnKSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0c2V0TG9hZGluZyh0cnVlKTtcblx0XHRzZXRFcnJvck1lc3NhZ2UoJycpO1xuXG5cdFx0Y29uc3QgZm9ybURhdGEgPSBuZXcgd2luZG93LkZvcm1EYXRhKCk7XG5cdFx0Zm9ybURhdGEuYXBwZW5kKCdrZXknLCBsaWNlbnNlS2V5KTtcblx0XHRmb3JtRGF0YS5hcHBlbmQoJ2FjdGlvbicsICd1YWVsX2xpY2Vuc2VfYWN0aXZhdGlvbicpO1xuXHRcdGZvcm1EYXRhLmFwcGVuZCgnc2VjdXJpdHknLCB1YWVsU2V0dGluZ3NEYXRhLmxpY2Vuc2VfYWN0aXZhdGlvbl9ub25jZSk7XG5cblx0XHRhcGlGZXRjaCh7XG5cdFx0XHR1cmw6IHVhZWxTZXR0aW5nc0RhdGEuYWpheF91cmwsXG5cdFx0XHRtZXRob2Q6ICdQT1NUJyxcblx0XHRcdGJvZHk6IGZvcm1EYXRhLFxuXHRcdH0pLnRoZW4oKGRhdGEpID0+IHtcblx0XHRcdHNldExvYWRpbmcoZmFsc2UpO1xuXHRcdFx0aWYgKGRhdGEuc3VjY2Vzcykge1xuXHRcdFx0XHR0b2FzdC5zdWNjZXNzKF9fKCdMaWNlbnNlIHN1Y2Nlc3NmdWxseSB2YWxpZGF0ZWQhJywgJ3VhZWwnKSk7XG5cdFx0XHRcdGxvY2F0aW9uLnJlbG9hZCgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dG9hc3QuZXJyb3IoZGF0YS5tZXNzYWdlIHx8IF9fKCdQbGVhc2UgZW50ZXIgYSB2YWxpZCBsaWNlbnNlIGtleSEnLCAndWFlbCcpKTtcblx0XHRcdFx0c2V0RXJyb3JNZXNzYWdlKGRhdGEubWVzc2FnZSB8fCBfXygnRW50ZXIgYSB2YWxpZCBsaWNlbnNlIGtleSEnLCAndWFlbCcpKTsgLy8gU2V0IGVycm9yIG1lc3NhZ2UuXG5cdFx0XHR9XG5cdFx0fSk7XG5cdH07XG5cblx0Y29uc3QgZGVhY3RpdmF0ZUhhbmRsZXIgPSAoKSA9PiB7XG5cdFx0c2V0TG9hZGluZyh0cnVlKTtcblx0XHRzZXRFcnJvck1lc3NhZ2UoJycpO1xuXG5cdFx0Y29uc3QgZm9ybURhdGEgPSBuZXcgd2luZG93LkZvcm1EYXRhKCk7XG5cdFx0Zm9ybURhdGEuYXBwZW5kKCdhY3Rpb24nLCAndWFlbF9saWNlbnNlX2RlYWN0aXZhdGlvbicpO1xuXHRcdGZvcm1EYXRhLmFwcGVuZCgnc2VjdXJpdHknLCB1YWVsU2V0dGluZ3NEYXRhLmxpY2Vuc2VfZGVhY3RpdmF0aW9uX25vbmNlKTtcblxuXHRcdGFwaUZldGNoKHtcblx0XHRcdHVybDogdWFlbFNldHRpbmdzRGF0YS5hamF4X3VybCxcblx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0Ym9keTogZm9ybURhdGEsXG5cdFx0fSkudGhlbigoZGF0YSkgPT4ge1xuXHRcdFx0c2V0TG9hZGluZyhmYWxzZSk7XG5cdFx0XHRpZiAoZGF0YS5zdWNjZXNzKSB7XG5cdFx0XHRcdHRvYXN0LnN1Y2Nlc3MoX18oJ0xpY2Vuc2Ugc3VjY2Vzc2Z1bGx5IGRlYWN0aXZhdGVkIScsICd1YWVsJykpOyAvLyBTaG93IHRvYXN0IG5vdGlmaWNhdGlvbiBvbiBzdWNjZXNzXG5cdFx0XHRcdGxvY2F0aW9uLnJlbG9hZCgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dG9hc3QuZXJyb3IoZGF0YS5tZXNzYWdlIHx8IF9fKCdBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBkZWFjdGl2YXRpbmcgbGljZW5zZS4nLCAndWFlbCcpKTtcblx0XHRcdFx0c2V0RXJyb3JNZXNzYWdlKGRhdGEubWVzc2FnZSB8fCBfXygnQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZGVhY3RpdmF0aW5nIGxpY2Vuc2UuJywgJ3VhZWwnKSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH07XG5cblx0cmV0dXJuIChcblx0XHQ8PlxuXHRcdFx0PFRvYXN0ZXJcblx0XHRcdFx0cG9zaXRpb249XCJ0b3AtcmlnaHRcIlxuXHRcdFx0XHRyZXZlcnNlT3JkZXI9e2ZhbHNlfVxuXHRcdFx0XHRndXR0ZXI9ezh9XG5cdFx0XHRcdGNvbnRhaW5lclN0eWxlPXt7XG5cdFx0XHRcdFx0dG9wOiAyMCxcblx0XHRcdFx0XHRyaWdodDogMjAsXG5cdFx0XHRcdFx0bWFyZ2luVG9wOiAnNDBweCcsXG5cdFx0XHRcdH19XG5cdFx0XHRcdHRvYXN0T3B0aW9ucz17e1xuXHRcdFx0XHRcdGR1cmF0aW9uOiA1MDAwLFxuXHRcdFx0XHRcdHN0eWxlOiB7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAnd2hpdGUnLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0c3VjY2Vzczoge1xuXHRcdFx0XHRcdFx0ZHVyYXRpb246IDMwMDAsXG5cdFx0XHRcdFx0XHRpY29uVGhlbWU6IHtcblx0XHRcdFx0XHRcdFx0cHJpbWFyeTogJyM2MDA1ZmYnLFxuXHRcdFx0XHRcdFx0XHRzZWNvbmRhcnk6ICcjZmZmJyxcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0fX1cblx0XHRcdC8+XG5cdFx0XHQ8VGl0bGVcblx0XHRcdFx0ZGVzY3JpcHRpb249XCJcIlxuXHRcdFx0XHRpY29uPXtudWxsfVxuXHRcdFx0XHRpY29uUG9zaXRpb249XCJyaWdodFwiXG5cdFx0XHRcdHNpemU9XCJzbVwiXG5cdFx0XHRcdHRhZz1cImgyXCJcblx0XHRcdFx0dGl0bGU9e19fKCdNeSBBY2NvdW50JywgJ3VhZWwnKX1cblx0XHRcdC8+XG5cdFx0XHQ8Q29udGFpbmVyXG5cdFx0XHRcdGFsaWduPVwic3RyZXRjaFwiXG5cdFx0XHRcdGNsYXNzTmFtZT1cImJnLWJhY2tncm91bmQtcHJpbWFyeSBwLTYgcm91bmRlZC1sZyB1YWVsLTc4LXdpZHRoXCJcblx0XHRcdFx0Y29udGFpbmVyVHlwZT1cImZsZXhcIlxuXHRcdFx0XHRkaXJlY3Rpb249XCJjb2x1bW5cIlxuXHRcdFx0XHRnYXA9XCJzbVwiXG5cdFx0XHRcdGp1c3RpZnk9XCJzdGFydFwiXG5cdFx0XHRcdHN0eWxlPXt7XG5cdFx0XHRcdFx0bWFyZ2luVG9wOiBcIjI0cHhcIixcblx0XHRcdFx0fX1cblx0XHRcdD5cblx0XHRcdFx0PENvbnRhaW5lci5JdGVtIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgc3BhY2UteS0yXCI+XG5cdFx0XHRcdFx0PHAgY2xhc3NOYW1lPSd0ZXh0LWJhc2UgZm9udC1zZW1pYm9sZCBtLTAnPntfXygnTGljZW5zZSBLZXknLCAndWFlbCcpfTwvcD5cblx0XHRcdFx0XHQ8cCBjbGFzc05hbWU9J3RleHQtc20gZm9udC1ub3JtYWwgbS0wJz57X18oJ1BsZWFzZSBlbnRlciB5b3VyIHZhbGlkIGxpY2Vuc2Uga2V5IGJlbG93IHRvIGFjdGl2YXRlICcgKyB1YWVsU2V0dGluZ3NEYXRhLnBsdWdpbl9uYW1lICsgJyEnLCAndWFlbCcpfTwvcD5cblx0XHRcdFx0PC9Db250YWluZXIuSXRlbT5cblx0XHRcdFx0PENvbnRhaW5lci5JdGVtXG5cdFx0XHRcdFx0Y2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBsZzpmbGV4LXJvdyBnYXAtMiBpdGVtcy1jZW50ZXIgc3BhY2UteS0yXCJcblx0XHRcdFx0XHRhbGlnblNlbGY9XCJhdXRvXCJcblx0XHRcdFx0XHRvcmRlcj1cIm5vbmVcIlxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0PGlucHV0XG5cdFx0XHRcdFx0XHR2YWx1ZT17bGljZW5zZUtleX1cblx0XHRcdFx0XHRcdG9uQ2hhbmdlPXsoZSkgPT4gc2V0bGljZW5zZUtleShlLnRhcmdldC52YWx1ZSl9XG5cdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj17bGljZW5zZVBsYWNlaG9sZGVyfVxuXHRcdFx0XHRcdFx0cmVhZE9ubHk9e2xpY2Vuc2VTdGF0dXN9XG5cdFx0XHRcdFx0XHRzaXplPVwibWRcIlxuXHRcdFx0XHRcdFx0dHlwZT1cInRleHRcIlxuXHRcdFx0XHRcdFx0Y2xhc3NOYW1lPXtgdy1mdWxsIHNocmluayAke2xpY2Vuc2VTdGF0dXMgPyAndWFlbC1ncmVlbi1wbGFjZWhvbGRlcicgOiAnJ31gfVxuXHRcdFx0XHRcdFx0c3R5bGU9e3tcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OiAnNDhweCcsXG5cdFx0XHRcdFx0XHRcdG91dGxpbmU6ICdub25lJywgICAgICAgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBvdXRsaW5lXG5cdFx0XHRcdFx0XHRcdGJveFNoYWRvdzogJ25vbmUnLCAgICAgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBib3ggc2hhZG93XG5cdFx0XHRcdFx0XHRcdGJvcmRlckNvbG9yOiBlcnJvck1lc3NhZ2UgPyAncmVkJyA6ICdpbmhlcml0Jyxcblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRvbkZvY3VzPXsoZSkgPT4gZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnIzYwMDVGRid9IC8vIEFwcGx5IGZvY3VzIGNvbG9yXG5cdFx0XHRcdFx0XHRvbkJsdXI9eyhlKSA9PiBlLnRhcmdldC5zdHlsZS5ib3JkZXJDb2xvciA9ICcjZTBlMGUwJ30gIC8vIFJldmVydCB0byBkZWZhdWx0IGNvbG9yXG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT0nY3Vyc29yLXBvaW50ZXIgbWItMiBzaHJpbmsnXG5cdFx0XHRcdFx0XHRzdHlsZT17eyBtaW5XaWR0aDogXCJmaXQtY29udGVudFwiIH19PlxuXHRcdFx0XHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRcdFx0XHRpY29uPXtsb2FkaW5nID8gPExvYWRlckNpcmNsZSBjbGFzc05hbWU9XCJhbmltYXRlLXNwaW5cIiAvPiA6IG51bGx9XG5cdFx0XHRcdFx0XHRcdGljb25Qb3NpdGlvbj1cImxlZnRcIlxuXHRcdFx0XHRcdFx0XHRzdHlsZSA9IHt7IHBhZGRpbmdUb3A6ICcxNHB4JywgcGFkZGluZ0JvdHRvbTogJzE0cHgnIH19XG5cdFx0XHRcdFx0XHRcdGNsYXNzTmFtZT1cImJnLVsjNjAwNUZGXSBtYi0yXCJcblx0XHRcdFx0XHRcdFx0dmFyaWFudD1cInByaW1hcnlcIlxuXHRcdFx0XHRcdFx0XHRvbkNsaWNrPXtsaWNlbnNlU3RhdHVzID8gZGVhY3RpdmF0ZUhhbmRsZXIgOiBhY3RpdmF0ZUhhbmRsZXJ9XG5cdFx0XHRcdFx0XHRcdGRpc2FibGVkPXtsb2FkaW5nfSAvLyBEaXNhYmxlIGJ1dHRvbiBkdXJpbmcgbG9hZGluZyB0byBwcmV2ZW50IG11bHRpcGxlIGNsaWNrcy5cblx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0e2xvYWRpbmdcblx0XHRcdFx0XHRcdFx0XHQ/IChsaWNlbnNlU3RhdHVzID8gX18oJ0RlYWN0aXZhdGluZy4uLicsICd1YWVsJykgOiBfXygnQWN0aXZhdGluZy4uLicsICd1YWVsJykpXG5cdFx0XHRcdFx0XHRcdFx0OiAobGljZW5zZVN0YXR1cyA/IF9fKCdEZWFjdGl2YXRlIExpY2Vuc2UnLCAndWFlbCcpIDogX18oJ0FjdGl2YXRlIExpY2Vuc2UnLCAndWFlbCcpKX1cblx0XHRcdFx0XHRcdDwvQnV0dG9uPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L0NvbnRhaW5lci5JdGVtPlxuXHRcdFx0XHR7ZXJyb3JNZXNzYWdlICYmIChcblx0XHRcdFx0XHQ8cCBjbGFzc05hbWU9XCJ0ZXh0LXJlZC01MDAgdGV4dC14c1wiIHN0eWxlPXt7IGNvbG9yOiAncmVkJywgbWFyZ2luVG9wOiBcIi0xMHB4XCIgfX0+e2Vycm9yTWVzc2FnZX08L3A+IC8vIFNob3cgZXJyb3IgbWVzc2FnZSBiZWxvdyB0aGUgaW5wdXQgZmllbGRcblx0XHRcdFx0KX1cblx0XHRcdDwvQ29udGFpbmVyPlxuXHRcdDwvPlxuXHQpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTXlBY2NvdW50O1xuIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlU3RhdGUiLCJfXyIsImFwaUZldGNoIiwiQ29udGFpbmVyIiwiVGl0bGUiLCJCdXR0b24iLCJMb2FkZXJDaXJjbGUiLCJUb2FzdGVyIiwidG9hc3QiLCJNeUFjY291bnQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJsaWNlbnNlS2V5Iiwic2V0bGljZW5zZUtleSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImVycm9yTWVzc2FnZSIsInNldEVycm9yTWVzc2FnZSIsImxpY2Vuc2VTdGF0dXMiLCJ1YWVsU2V0dGluZ3NEYXRhIiwibGljZW5zZV9zdGF0dXMiLCJsaWNlbnNlUGxhY2Vob2xkZXIiLCJhY3RpdmF0ZUhhbmRsZXIiLCJlcnJvciIsImZvcm1EYXRhIiwid2luZG93IiwiRm9ybURhdGEiLCJhcHBlbmQiLCJsaWNlbnNlX2FjdGl2YXRpb25fbm9uY2UiLCJ1cmwiLCJhamF4X3VybCIsIm1ldGhvZCIsImJvZHkiLCJ0aGVuIiwiZGF0YSIsInN1Y2Nlc3MiLCJsb2NhdGlvbiIsInJlbG9hZCIsIm1lc3NhZ2UiLCJkZWFjdGl2YXRlSGFuZGxlciIsImxpY2Vuc2VfZGVhY3RpdmF0aW9uX25vbmNlIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwicG9zaXRpb24iLCJyZXZlcnNlT3JkZXIiLCJndXR0ZXIiLCJjb250YWluZXJTdHlsZSIsInRvcCIsInJpZ2h0IiwibWFyZ2luVG9wIiwidG9hc3RPcHRpb25zIiwiZHVyYXRpb24iLCJzdHlsZSIsImJhY2tncm91bmQiLCJpY29uVGhlbWUiLCJwcmltYXJ5Iiwic2Vjb25kYXJ5IiwiZGVzY3JpcHRpb24iLCJpY29uIiwiaWNvblBvc2l0aW9uIiwic2l6ZSIsInRhZyIsInRpdGxlIiwiYWxpZ24iLCJjbGFzc05hbWUiLCJjb250YWluZXJUeXBlIiwiZGlyZWN0aW9uIiwiZ2FwIiwianVzdGlmeSIsIkl0ZW0iLCJwbHVnaW5fbmFtZSIsImFsaWduU2VsZiIsIm9yZGVyIiwidmFsdWUiLCJvbkNoYW5nZSIsImUiLCJ0YXJnZXQiLCJwbGFjZWhvbGRlciIsInJlYWRPbmx5IiwidHlwZSIsImNvbmNhdCIsImhlaWdodCIsIm91dGxpbmUiLCJib3hTaGFkb3ciLCJib3JkZXJDb2xvciIsIm9uRm9jdXMiLCJvbkJsdXIiLCJtaW5XaWR0aCIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwidmFyaWFudCIsIm9uQ2xpY2siLCJkaXNhYmxlZCIsImNvbG9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/Components/Settings/MyAccount.jsx\n");
/***/ }),
/***/ "./src/Components/Settings/PostSkins.jsx":
/*!***********************************************!*\
!*** ./src/Components/Settings/PostSkins.jsx ***!
\***********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"@babel/runtime/regenerator\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/loader-circle.js\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/api-fetch */ \"@wordpress/api-fetch\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _Dashboard_PostWidgetItem__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Dashboard/PostWidgetItem */ \"./src/Components/Dashboard/PostWidgetItem.jsx\");\n/* harmony import */ var react_hot_toast__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react-hot-toast */ \"./node_modules/react-hot-toast/dist/index.mjs\");\n\n\n\n\n\nfunction 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; }\nfunction _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) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(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\n\n\n\n\n\n\nvar PostSkins = function PostSkins() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(null),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState, 2),\n allWidgetsData = _useState2[0],\n setAllWidgetsData = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(false),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState3, 2),\n loadingActivate = _useState4[0],\n setLoadingActivate = _useState4[1];\n var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(false),\n _useState6 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState5, 2),\n loadingDeactivate = _useState6[0],\n setLoadingDeactivate = _useState6[1];\n var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(0),\n _useState8 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState7, 2),\n updateCounter = _useState8[0],\n setUpdateCounter = _useState8[1];\n var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(true),\n _useState10 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState9, 2),\n loading = _useState10[0],\n setLoading = _useState10[1];\n (0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () {\n var fetchSettings = function fetchSettings() {\n setLoading(true);\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_7___default()({\n path: '/uael/v1/postskins',\n headers: {\n 'Content-Type': 'application/json',\n 'X-WP-Nonce': uaelSettingsData.uael_nonce_action // Use the correct nonce\n }\n }).then(function (data) {\n var widgetsData = convertToWidgetsArray(data);\n setAllWidgetsData(widgetsData);\n setLoading(false); // Stop loading\n })[\"catch\"](function (err) {\n setLoading(false); // Stop loading\n });\n };\n fetchSettings();\n }, []);\n var handleActivateAll = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee() {\n var formData;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n setLoadingActivate(true);\n formData = new window.FormData();\n formData.append('action', 'uael_bulk_activate_skins');\n formData.append('nonce', uaelSettingsData.ajax_nonce);\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_7___default()({\n url: uaelSettingsData.ajax_url,\n method: 'POST',\n body: formData\n }).then(function (data) {\n setLoadingActivate(false);\n if (data.success) {\n setAllWidgetsData(function (prevWidgets) {\n return prevWidgets.map(function (widget) {\n return _objectSpread(_objectSpread({}, widget), {}, {\n is_active: true\n });\n });\n });\n setUpdateCounter(function (prev) {\n return prev + 1;\n });\n react_hot_toast__WEBPACK_IMPORTED_MODULE_10__[\"default\"].success((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)('All skins activated successfully!.', 'uael'));\n } else if (data.error) {\n console.error('AJAX request failed:', data.error);\n react_hot_toast__WEBPACK_IMPORTED_MODULE_10__[\"default\"].error((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)('Failed to activate all skins.', 'uael'));\n }\n })[\"catch\"](function (error) {\n setLoadingActivate(false);\n console.error('Error during AJAX request:', error);\n react_hot_toast__WEBPACK_IMPORTED_MODULE_10__[\"default\"].error((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)('An error occurred while activating all skins.', 'uael'));\n });\n case 5:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function handleActivateAll() {\n return _ref.apply(this, arguments);\n };\n }();\n var handleDeactivateAll = /*#__PURE__*/function () {\n var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee2() {\n var formData;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n setLoadingDeactivate(true);\n formData = new window.FormData();\n formData.append('action', 'uael_bulk_deactivate_skins');\n formData.append('nonce', uaelSettingsData.ajax_nonce);\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_7___default()({\n url: uaelSettingsData.ajax_url,\n method: 'POST',\n body: formData\n }).then(function (data) {\n setLoadingDeactivate(false);\n if (data.success) {\n setAllWidgetsData(function (prevWidgets) {\n return prevWidgets.map(function (widget) {\n return _objectSpread(_objectSpread({}, widget), {}, {\n is_active: false\n });\n });\n });\n setUpdateCounter(function (prev) {\n return prev + 1;\n });\n react_hot_toast__WEBPACK_IMPORTED_MODULE_10__[\"default\"].success((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)('All skins deactivated successfully!.', 'uael'));\n } else if (data.error) {\n console.error('AJAX request failed:', data.error);\n react_hot_toast__WEBPACK_IMPORTED_MODULE_10__[\"default\"].error((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)('Failed to deactivate all skins.', 'uael'));\n }\n })[\"catch\"](function (error) {\n setLoadingDeactivate(false);\n console.error('Error during AJAX request:', error);\n react_hot_toast__WEBPACK_IMPORTED_MODULE_10__[\"default\"].error((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)('An error occurred while deactivating all skins.', 'uael'));\n });\n case 5:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function handleDeactivateAll() {\n return _ref2.apply(this, arguments);\n };\n }();\n function convertToWidgetsArray(data) {\n var widgets = [];\n for (var key in data) {\n if (data.hasOwnProperty(key)) {\n var widget = data[key];\n widgets.push({\n id: key,\n slug: widget.slug,\n title: widget.title,\n image: widget.image,\n \"default\": widget[\"default\"],\n is_active: widget.is_activate !== undefined ? widget.is_activate : true\n });\n }\n }\n return widgets;\n }\n if (loading) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"h-screen w-screen flex items-center justify-center\",\n style: {\n position: 'relative'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Loader, {\n icon: null,\n size: \"lg\",\n className: \"bg-transparent relative uae-loader-icon\"\n }));\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement((react__WEBPACK_IMPORTED_MODULE_5___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(react_hot_toast__WEBPACK_IMPORTED_MODULE_10__.Toaster, {\n position: \"top-right\",\n reverseOrder: false,\n gutter: 8,\n containerStyle: {\n top: 20,\n right: 20,\n marginTop: '40px'\n },\n toastOptions: {\n duration: 5000,\n style: {\n background: 'white'\n },\n success: {\n duration: 3000,\n iconTheme: {\n primary: '#6005ff',\n secondary: '#fff'\n }\n }\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Title, {\n description: \"\",\n icon: null,\n iconPosition: \"right\",\n size: \"sm\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)(\"Post Widget Skins\", \"uael\")\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"rounded-lg bg-white mb-4\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex flex-col md:flex-row items-center justify-between p-4\",\n style: {\n paddingBottom: '0',\n marginTop: '16px'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"p\", {\n className: \"m-0 text-sm font-semibold text-text-primary\"\n }, \"Skins\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex items-center gap-x-2 mr-7\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Button, {\n icon: loadingActivate ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"animate-spin\"\n }) : null,\n iconPosition: \"left\",\n variant: \"outline\",\n className: \"uae-bulk-action-button\",\n onClick: handleActivateAll\n }, loadingActivate ? 'Activating...' : 'Activate All'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Button, {\n icon: loadingDeactivate ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"animate-spin\"\n }) : null,\n iconPosition: \"left\",\n variant: \"outline\",\n onClick: handleDeactivateAll,\n className: \"uae-bulk-action-button\"\n }, loadingDeactivate ? 'Deactivating...' : 'Deactivate All'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex bg-black flex-col rounded-lg p-4\"\n }, loading ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Container, {\n align: \"stretch\",\n className: \"p-2 gap-1.5\",\n cols: 1,\n style: {\n backgroundColor: \"#F9FAFB\",\n height: '380px'\n },\n containerType: \"grid\",\n gap: \"\",\n justify: \"start\"\n }, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Array(4)).map(function (_, index) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Container.Item, {\n key: index,\n alignSelf: \"auto\",\n className: \"text-wrap rounded-md bg-background-primary p-6 space-y-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Skeleton, {\n className: \"w-12 h-2 rounded-md\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Skeleton, {\n className: \"w-16 h-2 rounded-md\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Skeleton, {\n className: \"w-12 h-2 rounded-md\"\n }));\n })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Container, {\n align: \"stretch\",\n className: \"p-2 gap-1.5 grid grid-cols-1 md:grid-cols-2\",\n containerType: \"grid\",\n gap: \"\",\n justify: \"start\",\n style: {\n backgroundColor: '#F9FAFB'\n }\n }, allWidgetsData === null || allWidgetsData === void 0 ? void 0 : allWidgetsData.slice(0, 4).map(function (widget) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Container.Item, {\n key: widget.id,\n alignSelf: \"auto\",\n className: \"text-wrap rounded-md shadow-container-item bg-background-primary p-4\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_Dashboard_PostWidgetItem__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n widget: _objectSpread(_objectSpread({}, widget), {}, {\n updateCounter: updateCounter\n }),\n key: widget.id,\n updateCounter: updateCounter\n }));\n })))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (PostSkins);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9TZXR0aW5ncy9Qb3N0U2tpbnMuanN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBbUQ7QUFDd0I7QUFDL0I7QUFDQTtBQUNQO0FBQ2hCO0FBQzRCO0FBRWpELElBQU1jLFNBQVMsR0FBRyxTQUFaQSxTQUFTQSxDQUFBLEVBQVM7RUFDcEIsSUFBQUMsU0FBQSxHQUE0Q2QsK0NBQVEsQ0FBQyxJQUFJLENBQUM7SUFBQWUsVUFBQSxHQUFBQyxnRkFBQSxDQUFBRixTQUFBO0lBQW5ERyxjQUFjLEdBQUFGLFVBQUE7SUFBRUcsaUJBQWlCLEdBQUFILFVBQUE7RUFDeEMsSUFBQUksVUFBQSxHQUE4Q25CLCtDQUFRLENBQUMsS0FBSyxDQUFDO0lBQUFvQixVQUFBLEdBQUFKLGdGQUFBLENBQUFHLFVBQUE7SUFBdERFLGVBQWUsR0FBQUQsVUFBQTtJQUFFRSxrQkFBa0IsR0FBQUYsVUFBQTtFQUMxQyxJQUFBRyxVQUFBLEdBQWtEdkIsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXdCLFVBQUEsR0FBQVIsZ0ZBQUEsQ0FBQU8sVUFBQTtJQUExREUsaUJBQWlCLEdBQUFELFVBQUE7SUFBRUUsb0JBQW9CLEdBQUFGLFVBQUE7RUFDOUMsSUFBQUcsVUFBQSxHQUEwQzNCLCtDQUFRLENBQUMsQ0FBQyxDQUFDO0lBQUE0QixVQUFBLEdBQUFaLGdGQUFBLENBQUFXLFVBQUE7SUFBOUNFLGFBQWEsR0FBQUQsVUFBQTtJQUFFRSxnQkFBZ0IsR0FBQUYsVUFBQTtFQUN0QyxJQUFBRyxVQUFBLEdBQThCL0IsK0NBQVEsQ0FBQyxJQUFJLENBQUM7SUFBQWdDLFdBQUEsR0FBQWhCLGdGQUFBLENBQUFlLFVBQUE7SUFBckNFLE9BQU8sR0FBQUQsV0FBQTtJQUFFRSxVQUFVLEdBQUFGLFdBQUE7RUFFMUIvQixnREFBUyxDQUFDLFlBQU07SUFDWixJQUFNa0MsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFBLEVBQVM7TUFDeEJELFVB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QSxjQUFjLHVCQUFkQSxjQUFjLENBQUVnSCxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDOUQsR0FBRyxDQUFDLFVBQUNDLE1BQU07SUFBQSxvQkFDcENyRSwwREFBQSxDQUFDRyxvREFBUyxDQUFDNkgsSUFBSTtNQUNYN0MsR0FBRyxFQUFFZCxNQUFNLENBQUNpQixFQUFHO01BQ2YyQyxTQUFTLEVBQUMsTUFBTTtNQUNoQnBDLFNBQVMsRUFBQztJQUFzRSxnQkFFaEY3RiwwREFBQSxDQUFDVyxpRUFBYztNQUFDMEQsTUFBTSxFQUFBQyxhQUFBLENBQUFBLGFBQUEsS0FBT0QsTUFBTTtRQUFFdkMsYUFBYSxFQUFiQTtNQUFhLEVBQUc7TUFBQ3FELEdBQUcsRUFBRWQsTUFBTSxDQUFDaUIsRUFBRztNQUFDeEQsYUFBYSxFQUFFQTtJQUFjLENBQUUsQ0FDekYsQ0FBQztFQUFBLENBQ3BCLENBQ00sQ0FFZCxDQUNKLENBQ1AsQ0FBQztBQUVYLENBQUM7QUFFRCwrREFBZWhCLFNBQVMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vc3JjL0NvbXBvbmVudHMvU2V0dGluZ3MvUG9zdFNraW5zLmpzeD9jNjBkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ29udGFpbmVyLCBUaXRsZSwgQnV0dG9uLCBTa2VsZXRvbiwgTG9hZGVyIH0gZnJvbSBcIkBic2YvZm9yY2UtdWlcIjtcbmltcG9ydCB7IExvYWRlckNpcmNsZSB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgYXBpRmV0Y2ggZnJvbSAnQHdvcmRwcmVzcy9hcGktZmV0Y2gnO1xuaW1wb3J0IHsgX18gfSBmcm9tICdAd29yZHByZXNzL2kxOG4nO1xuaW1wb3J0IFBvc3RXaWRnZXRJdGVtIGZyb20gJ0Bjb21wb25lbnRzL0Rhc2hib2FyZC9Qb3N0V2lkZ2V0SXRlbSc7XG5pbXBvcnQgdG9hc3QsIHsgVG9hc3RlciB9IGZyb20gJ3JlYWN0LWhvdC10b2FzdCc7XG5cbmNvbnN0IFBvc3RTa2lucyA9ICgpID0+IHtcbiAgICBjb25zdCBbYWxsV2lkZ2V0c0RhdGEsIHNldEFsbFdpZGdldHNEYXRhXSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtsb2FkaW5nQWN0aXZhdGUsIHNldExvYWRpbmdBY3RpdmF0ZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2xvYWRpbmdEZWFjdGl2YXRlLCBzZXRMb2FkaW5nRGVhY3RpdmF0ZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3VwZGF0ZUNvdW50ZXIsIHNldFVwZGF0ZUNvdW50ZXJdID0gdXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBmZXRjaFNldHRpbmdzID0gKCkgPT4ge1xuICAgICAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIGFwaUZldGNoKHtcbiAgICAgICAgICAgICAgICBwYXRoOiAnL3VhZWwvdjEvcG9zdHNraW5zJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgICAgICdYLVdQLU5vbmNlJzogdWFlbFNldHRpbmdzRGF0YS51YWVsX25vbmNlX2FjdGlvbiwgLy8gVXNlIHRoZSBjb3JyZWN0IG5vbmNlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2lkZ2V0c0RhdGEgPSBjb252ZXJ0VG9XaWRnZXRzQXJyYXkoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIHNldEFsbFdpZGdldHNEYXRhKHdpZGdldHNEYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7IC8vIFN0b3AgbG9hZGluZ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7IC8vIFN0b3AgbG9hZGluZ1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGZldGNoU2V0dGluZ3MoKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBoYW5kbGVBY3RpdmF0ZUFsbCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgc2V0TG9hZGluZ0FjdGl2YXRlKHRydWUpO1xuXG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IHdpbmRvdy5Gb3JtRGF0YSgpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2FjdGlvbicsICd1YWVsX2J1bGtfYWN0aXZhdGVfc2tpbnMnKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdub25jZScsIHVhZWxTZXR0aW5nc0RhdGEuYWpheF9ub25jZSk7XG5cbiAgICAgICAgYXBpRmV0Y2goe1xuICAgICAgICAgICAgdXJsOiB1YWVsU2V0dGluZ3NEYXRhLmFqYXhfdXJsLFxuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBib2R5OiBmb3JtRGF0YSxcbiAgICAgICAgfSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgc2V0TG9hZGluZ0FjdGl2YXRlKGZhbHNlKTtcbiAgICAgICAgICAgIGlmIChkYXRhLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICBzZXRBbGxXaWRnZXRzRGF0YShwcmV2V2lkZ2V0cyA9PlxuICAgICAgICAgICAgICAgICAgICBwcmV2V2lkZ2V0cy5tYXAod2lkZ2V0ID0+ICh7IC4uLndpZGdldCwgaXNfYWN0aXZlOiB0cnVlIH0pKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgc2V0VXBkYXRlQ291bnRlcihwcmV2ID0+IHByZXYgKyAxKVxuICAgICAgICAgICAgICAgIHRvYXN0LnN1Y2Nlc3MoX18oJ0FsbCBza2lucyBhY3RpdmF0ZWQgc3VjY2Vzc2Z1bGx5IS4nLCAndWFlbCcpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5lcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0FKQVggcmVxdWVzdCBmYWlsZWQ6JywgZGF0YS5lcnJvcik7XG4gICAgICAgICAgICAgICAgdG9hc3QuZXJyb3IoX18oJ0ZhaWxlZCB0byBhY3RpdmF0ZSBhbGwgc2tpbnMuJywgJ3VhZWwnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgc2V0TG9hZGluZ0FjdGl2YXRlKGZhbHNlKTtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGR1cmluZyBBSkFYIHJlcXVlc3Q6JywgZXJyb3IpO1xuICAgICAgICAgICAgdG9hc3QuZXJyb3IoX18oJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGFjdGl2YXRpbmcgYWxsIHNraW5zLicsICd1YWVsJykpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRGVhY3RpdmF0ZUFsbCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgc2V0TG9hZGluZ0RlYWN0aXZhdGUodHJ1ZSk7XG5cbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgd2luZG93LkZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnYWN0aW9uJywgJ3VhZWxfYnVsa19kZWFjdGl2YXRlX3NraW5zJyk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnbm9uY2UnLCB1YWVsU2V0dGluZ3NEYXRhLmFqYXhfbm9uY2UpO1xuXG4gICAgICAgIGFwaUZldGNoKHtcbiAgICAgICAgICAgIHVybDogdWFlbFNldHRpbmdzRGF0YS5hamF4X3VybCxcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgICAgIH0pLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHNldExvYWRpbmdEZWFjdGl2YXRlKGZhbHNlKTtcbiAgICAgICAgICAgIGlmIChkYXRhLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICBzZXRBbGxXaWRnZXRzRGF0YShwcmV2V2lkZ2V0cyA9PlxuICAgICAgICAgICAgICAgICAgICBwcmV2V2lkZ2V0cy5tYXAod2lkZ2V0ID0+ICh7IC4uLndpZGdldCwgaXNfYWN0aXZlOiBmYWxzZSB9KSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHNldFVwZGF0ZUNvdW50ZXIocHJldiA9PiBwcmV2ICsgMSk7XG4gICAgICAgICAgICAgICAgdG9hc3Quc3VjY2VzcyhfXygnQWxsIHNraW5zIGRlYWN0aXZhdGVkIHN1Y2Nlc3NmdWxseSEuJywgJ3VhZWwnKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdBSkFYIHJlcXVlc3QgZmFpbGVkOicsIGRhdGEuZXJyb3IpO1xuICAgICAgICAgICAgICAgIHRvYXN0LmVycm9yKF9fKCdGYWlsZWQgdG8gZGVhY3RpdmF0ZSBhbGwgc2tpbnMuJywgJ3VhZWwnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgc2V0TG9hZGluZ0RlYWN0aXZhdGUoZmFsc2UpO1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZHVyaW5nIEFKQVggcmVxdWVzdDonLCBlcnJvcik7XG4gICAgICAgICAgICB0b2FzdC5lcnJvcihfXygnQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZGVhY3RpdmF0aW5nIGFsbCBza2lucy4nLCAndWFlbCcpKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGNvbnZlcnRUb1dpZGdldHNBcnJheShkYXRhKSB7XG4gICAgICAgIGNvbnN0IHdpZGdldHMgPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBkYXRhKSB7XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2lkZ2V0ID0gZGF0YVtrZXldO1xuICAgICAgICAgICAgICAgIHdpZGdldHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBrZXksXG4gICAgICAgICAgICAgICAgICAgIHNsdWc6IHdpZGdldC5zbHVnLFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogd2lkZ2V0LnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICBpbWFnZTogd2lkZ2V0LmltYWdlLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB3aWRnZXQuZGVmYXVsdCxcbiAgICAgICAgICAgICAgICAgICAgaXNfYWN0aXZlOiB3aWRnZXQuaXNfYWN0aXZhdGUgIT09IHVuZGVmaW5lZCA/IHdpZGdldC5pc19hY3RpdmF0ZSA6IHRydWUsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gd2lkZ2V0cztcbiAgICB9XG5cbiAgICBpZiAobG9hZGluZykge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2gtc2NyZWVuIHctc2NyZWVuIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyJyBzdHlsZT17eyBwb3NpdGlvbjogJ3JlbGF0aXZlJyB9fT5cbiAgICAgICAgICAgICAgICA8TG9hZGVyIGljb249e251bGx9IHNpemU9XCJsZ1wiIGNsYXNzTmFtZT1cImJnLXRyYW5zcGFyZW50IHJlbGF0aXZlIHVhZS1sb2FkZXItaWNvblwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgICAgPFRvYXN0ZXJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbj1cInRvcC1yaWdodFwiXG4gICAgICAgICAgICAgICAgcmV2ZXJzZU9yZGVyPXtmYWxzZX1cbiAgICAgICAgICAgICAgICBndXR0ZXI9ezh9XG4gICAgICAgICAgICAgICAgY29udGFpbmVyU3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAyMCxcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDIwLFxuICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6ICc0MHB4JyxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIHRvYXN0T3B0aW9ucz17e1xuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogNTAwMCxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd3aGl0ZScsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvblRoZW1lOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeTogJyM2MDA1ZmYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeTogJyNmZmYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxUaXRsZVxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiXCJcbiAgICAgICAgICAgICAgICBpY29uPXtudWxsfVxuICAgICAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgIHRhZz1cImgyXCJcbiAgICAgICAgICAgICAgICB0aXRsZT17X18oXCJQb3N0IFdpZGdldCBTa2luc1wiLCBcInVhZWxcIil9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JvdW5kZWQtbGcgYmctd2hpdGUgbWItNCc+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBwLTQnIFxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmdCb3R0b206ICcwJyxcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAnMTZweCcsXG4gICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0nbS0wIHRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXRleHQtcHJpbWFyeSc+U2tpbnM8L3A+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC0yIG1yLTcnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249e2xvYWRpbmdBY3RpdmF0ZSA/IDxMb2FkZXJDaXJjbGUgY2xhc3NOYW1lPVwiYW5pbWF0ZS1zcGluXCIgLz4gOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cImxlZnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1YWUtYnVsay1hY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVBY3RpdmF0ZUFsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bG9hZGluZ0FjdGl2YXRlID8gJ0FjdGl2YXRpbmcuLi4nIDogJ0FjdGl2YXRlIEFsbCd9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXtsb2FkaW5nRGVhY3RpdmF0ZSA/IDxMb2FkZXJDaXJjbGUgY2xhc3NOYW1lPVwiYW5pbWF0ZS1zcGluXCIgLz4gOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cImxlZnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVEZWFjdGl2YXRlQWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVhZS1idWxrLWFjdGlvbi1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtsb2FkaW5nRGVhY3RpdmF0ZSA/ICdEZWFjdGl2YXRpbmcuLi4nIDogJ0RlYWN0aXZhdGUgQWxsJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nZmxleCBiZy1ibGFjayBmbGV4LWNvbCByb3VuZGVkLWxnIHAtNCc+XG4gICAgICAgICAgICAgICAgICAgIHtsb2FkaW5nID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduPVwic3RyZXRjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicC0yIGdhcC0xLjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHM9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcIiNGOUZBRkJcIiwgaGVpZ2h0OiAnMzgwcHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJUeXBlPVwiZ3JpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FwPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5PVwic3RhcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtbLi4uQXJyYXkoNCldLm1hcCgoXywgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25TZWxmPVwiYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXdyYXAgcm91bmRlZC1tZCBiZy1iYWNrZ3JvdW5kLXByaW1hcnkgcC02IHNwYWNlLXktMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTa2VsZXRvbiBjbGFzc05hbWU9J3ctMTIgaC0yIHJvdW5kZWQtbWQnIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2tlbGV0b24gY2xhc3NOYW1lPSd3LTE2IGgtMiByb3VuZGVkLW1kJyAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNrZWxldG9uIGNsYXNzTmFtZT0ndy0xMiBoLTIgcm91bmRlZC1tZCcgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXIuSXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduPVwic3RyZXRjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicC0yIGdhcC0xLjUgZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyVHlwZT1cImdyaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhcD1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeT1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6ICcjRjlGQUZCJyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthbGxXaWRnZXRzRGF0YT8uc2xpY2UoMCwgNCkubWFwKCh3aWRnZXQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dpZGdldC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduU2VsZj1cImF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC13cmFwIHJvdW5kZWQtbWQgc2hhZG93LWNvbnRhaW5lci1pdGVtIGJnLWJhY2tncm91bmQtcHJpbWFyeSBwLTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UG9zdFdpZGdldEl0ZW0gd2lkZ2V0PXt7IC4uLndpZGdldCwgdXBkYXRlQ291bnRlciB9fSBrZXk9e3dpZGdldC5pZH0gdXBkYXRlQ291bnRlcj17dXBkYXRlQ291bnRlcn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXIuSXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvPlxuICAgICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBvc3RTa2lucztcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiQ29udGFpbmVyIiwiVGl0bGUiLCJCdXR0b24iLCJTa2VsZXRvbiIsIkxvYWRlciIsIkxvYWRlckNpcmNsZSIsImFwaUZldGNoIiwiX18iLCJQb3N0V2lkZ2V0SXRlbSIsInRvYXN0IiwiVG9hc3RlciIsIlBvc3RTa2lucyIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFsbFdpZGdldHNEYXRhIiwic2V0QWxsV2lkZ2V0c0RhdGEiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmdBY3RpdmF0ZSIsInNldExvYWRpbmdBY3RpdmF0ZSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwibG9hZGluZ0RlYWN0aXZhdGUiLCJzZXRMb2FkaW5nRGVhY3RpdmF0ZSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwidXBkYXRlQ291bnRlciIsInNldFVwZGF0ZUNvdW50ZXIiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsImZldGNoU2V0dGluZ3MiLCJwYXRoIiwiaGVhZGVycyIsInVhZWxTZXR0aW5nc0RhdGEiLCJ1YWVsX25vbmNlX2FjdGlvbiIsInRoZW4iLCJkYXRhIiwid2lkZ2V0c0RhdGEiLCJjb252ZXJ0VG9XaWRnZXRzQXJyYXkiLCJlcnIiLCJoYW5kbGVBY3RpdmF0ZUFsbCIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImZvcm1EYXRhIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsIndpbmRvdyIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiYWpheF9ub25jZSIsInVybCIsImFqYXhfdXJsIiwibWV0aG9kIiwiYm9keSIsInN1Y2Nlc3MiLCJwcmV2V2lkZ2V0cyIsIm1hcCIsIndpZGdldCIsIl9vYmplY3RTcHJlYWQiLCJpc19hY3RpdmUiLCJlcnJvciIsImNvbnNvbGUiLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVEZWFjdGl2YXRlQWxsIiwiX3JlZjIiLCJfY2FsbGVlMiIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsIndpZGdldHMiLCJrZXkiLCJoYXNPd25Qcm9wZXJ0eSIsInB1c2giLCJpZCIsInNsdWciLCJ0aXRsZSIsImltYWdlIiwiaXNfYWN0aXZhdGUiLCJ1bmRlZmluZWQiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJwb3NpdGlvbiIsImljb24iLCJzaXplIiwiRnJhZ21lbnQiLCJyZXZlcnNlT3JkZXIiLCJndXR0ZXIiLCJjb250YWluZXJTdHlsZSIsInRvcCIsInJpZ2h0IiwibWFyZ2luVG9wIiwidG9hc3RPcHRpb25zIiwiZHVyYXRpb24iLCJiYWNrZ3JvdW5kIiwiaWNvblRoZW1lIiwicHJpbWFyeSIsInNlY29uZGFyeSIsImRlc2NyaXB0aW9uIiwiaWNvblBvc2l0aW9uIiwidGFnIiwicGFkZGluZ0JvdHRvbSIsInZhcmlhbnQiLCJvbkNsaWNrIiwiYWxpZ24iLCJjb2xzIiwiYmFja2dyb3VuZENvbG9yIiwiaGVpZ2h0IiwiY29udGFpbmVyVHlwZSIsImdhcCIsImp1c3RpZnkiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJBcnJheSIsIl8iLCJpbmRleCIsIkl0ZW0iLCJhbGlnblNlbGYiLCJzbGljZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/Components/Settings/PostSkins.jsx\n");
/***/ }),
/***/ "./src/Components/Settings/Settings.jsx":
/*!**********************************************!*\
!*** ./src/Components/Settings/Settings.jsx ***!
\**********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _Sidebar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Sidebar */ \"./src/Components/Settings/Sidebar.jsx\");\n/* harmony import */ var _Content__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Content */ \"./src/Components/Settings/Content.jsx\");\n/* harmony import */ var _NavMenu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../NavMenu */ \"./src/Components/NavMenu.js\");\n/* harmony import */ var _HeaderLine__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../HeaderLine */ \"./src/Components/HeaderLine.js\");\n/* harmony import */ var _ThemeSupport__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ThemeSupport */ \"./src/Components/Settings/ThemeSupport.jsx\");\n/* harmony import */ var _VersionControl__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./VersionControl */ \"./src/Components/Settings/VersionControl.jsx\");\n/* harmony import */ var _MyAccount__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./MyAccount */ \"./src/Components/Settings/MyAccount.jsx\");\n/* harmony import */ var _Integrations__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Integrations */ \"./src/Components/Settings/Integrations.jsx\");\n/* harmony import */ var _Branding__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Branding */ \"./src/Components/Settings/Branding.jsx\");\n/* harmony import */ var _PostSkins__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./PostSkins */ \"./src/Components/Settings/PostSkins.jsx\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_13__);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar Settings = function Settings() {\n var items = [{\n id: 1,\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.user_url),\n alt: \"Custom SVG\",\n className: \"object-contain\"\n }),\n selected: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.user__selected_url),\n alt: \"Custom SVG\",\n className: \"object-contain\"\n }),\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_13__.__)('My Account', 'uael'),\n content: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_MyAccount__WEBPACK_IMPORTED_MODULE_9__[\"default\"], null)\n }, {\n id: 2,\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.theme_url),\n alt: \"Custom SVG\",\n className: \"object-contain\"\n }),\n selected: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.theme__selected_url),\n alt: \"Custom SVG\",\n className: \"object-contain\"\n }),\n main: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_13__.__)('Editor', 'uael'),\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_13__.__)('Theme Support', 'uael'),\n content: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_ThemeSupport__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null)\n }, {\n id: 3,\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.version_url),\n alt: \"Custom SVG\",\n className: \"object-contain\"\n }),\n selected: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.version__selected_url),\n alt: \"Custom SVG\",\n className: \"object-contain\"\n }),\n main: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_13__.__)('Utilities', 'uael'),\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_13__.__)('Version Control', 'uael'),\n content: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_VersionControl__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null)\n }, {\n id: 4,\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.branding_url),\n alt: \"Custom SVG\",\n className: \"object-contain\"\n }),\n selected: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.branding__selected_url),\n alt: \"Custom SVG\",\n className: \"object-contain\"\n }),\n main: '',\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_13__.__)('Branding', 'uael'),\n content: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_Branding__WEBPACK_IMPORTED_MODULE_11__[\"default\"], null)\n }, {\n id: 5,\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.integrations_url),\n alt: \"Custom SVG\",\n className: \"object-contain\"\n }),\n selected: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.integrations__selected_url),\n alt: \"Custom SVG\",\n className: \"object-contain\"\n }),\n main: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_13__.__)('Preferences', 'uael'),\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_13__.__)('Integrations', 'uael'),\n content: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_Integrations__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null)\n }, {\n id: 6,\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.postskins_url),\n alt: \"Custom SVG\",\n className: \"object-contain\"\n }),\n selected: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"img\", {\n src: \"\".concat(uaelSettingsData.postskins_selected_url),\n alt: \"Custom SVG\",\n className: \"object-contain\"\n }),\n main: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_13__.__)('Skins', 'uael'),\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_13__.__)('Post Widget Skins', 'uael'),\n content: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_PostSkins__WEBPACK_IMPORTED_MODULE_12__[\"default\"], null)\n }].filter(function (item) {\n if ('no' === uaelSettingsData.show_theme_support && item.id === 2) {\n return false;\n }\n if (uaelSettingsData.hide_settings) {\n return item.id !== 3 && item.id !== 4;\n }\n return true;\n });\n\n // Default state: Set 'My Account' (first item) as the default when the settings tab is clicked\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(function () {\n var savedItemId = localStorage.getItem('selectedItemId');\n var savedItem = items.find(function (item) {\n return item.id === Number(savedItemId);\n });\n return savedItem || items[0]; // Default to the first item if no saved item is found\n }),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n selectedItem = _useState2[0],\n setSelectedItem = _useState2[1];\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n // Store selectedItemId in localStorage (or other persistent storage) to retain selection\n localStorage.setItem('selectedItemId', selectedItem.id.toString());\n }, [selectedItem]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n var params = new URLSearchParams(window.location.search);\n var tab = params.get('tab');\n if (tab) {\n var itemId = Number(tab);\n var item = items.find(function (item) {\n return item.id === itemId;\n });\n if (item) {\n setSelectedItem(item);\n }\n }\n }, []);\n var handleSelectItem = function handleSelectItem(item) {\n setSelectedItem(item);\n };\n var handleSettingsTabClick = function handleSettingsTabClick() {\n setSelectedItem(items[0]); // Set \"My Account\" as the default item when settings tab is clicked\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement((react__WEBPACK_IMPORTED_MODULE_1___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_NavMenu__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n onSettingsTabClick: handleSettingsTabClick\n }), \" \", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_HeaderLine__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container, {\n align: \"stretch\",\n className: \"p-1 flex-col lg:flex-row uae-settings-page\",\n containerType: \"flex\",\n direction: \"row\",\n gap: \"sm\",\n justify: \"start\",\n style: {\n height: \"100%\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container.Item, {\n className: \"p-2 uae-sticky-outer-wrapper\",\n alignSelf: \"auto\",\n order: \"none\",\n shrink: 1,\n style: {\n backgroundColor: \"#ffffff\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"uae-sticky-sidebar\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_Sidebar__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n items: items,\n onSelectItem: handleSelectItem,\n selectedItemId: selectedItem.id\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container.Item, {\n className: \"p-2 flex w-full justify-center items-start uae-hide-scrollbar\",\n alignSelf: \"auto\",\n order: \"none\",\n shrink: 1,\n style: {\n height: \"calc(100vh - 1px)\",\n overflowY: \"auto\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"uael-78-width\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_Content__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n selectedItem: selectedItem\n }))))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Settings);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUs7SUFBQ0MsR0FBRyxFQUFDLElBQUk7SUFBQ0MsT0FBTyxFQUFDLE9BQU87SUFBQ0MsS0FBSyxFQUFFO01BQUVDLE1BQU0sRUFBRTtJQUFPO0VBQUUsZ0JBQ3RLNUUsMERBQUEsQ0FBQ0csb0RBQVMsQ0FBQzBFLElBQUk7SUFBQ3BELFNBQVMsRUFBQyw4QkFBOEI7SUFBQ3FELFNBQVMsRUFBQyxNQUFNO0lBQUNDLEtBQUssRUFBQyxNQUFNO0lBQUNDLE1BQU0sRUFBRSxDQUFFO0lBQUNMLEtBQUssRUFBRTtNQUFFTSxlQUFlLEVBQUU7SUFBVTtFQUFFLGdCQUNwSWpGLDBEQUFBO0lBQUt5QixTQUFTLEVBQUM7RUFBb0IsZ0JBQy9CekIsMERBQUEsQ0FBQ0ksZ0RBQU87SUFBQ1ksS0FBSyxFQUFFQSxLQUFNO0lBQUNrRSxZQUFZLEVBQUVoQixnQkFBaUI7SUFBQ2lCLGNBQWMsRUFBRTdCLFlBQVksQ0FBQ3JDO0VBQUcsQ0FBRSxDQUN4RixDQUNPLENBQUMsZUFDakJqQiwwREFBQSxDQUFDRyxvREFBUyxDQUFDMEUsSUFBSTtJQUFDcEQsU0FBUyxFQUFDLCtEQUErRDtJQUFDcUQsU0FBUyxFQUFDLE1BQU07SUFBQ0MsS0FBSyxFQUFDLE1BQU07SUFBQ0MsTUFBTSxFQUFFLENBQUU7SUFBQ0wsS0FBSyxFQUFFO01BQUVDLE1BQU0sRUFBRSxtQkFBbUI7TUFBRVEsU0FBUyxFQUFFO0lBQU87RUFBRSxnQkFDekxwRiwwREFBQTtJQUFLeUIsU0FBUyxFQUFDO0VBQWUsZ0JBQzFCekIsMERBQUEsQ0FBQ0ssZ0RBQU87SUFBQ2lELFlBQVksRUFBRUE7RUFBYSxDQUFFLENBQ3JDLENBQ08sQ0FDVCxDQUNWLENBQ1AsQ0FBQztBQUVYLENBQUM7QUFFRCwrREFBZXZDLFFBQVEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vc3JjL0NvbXBvbmVudHMvU2V0dGluZ3MvU2V0dGluZ3MuanN4P2Y4NmUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCJAYnNmL2ZvcmNlLXVpXCI7XG5pbXBvcnQgU2lkZWJhciBmcm9tICcuL1NpZGViYXInO1xuaW1wb3J0IENvbnRlbnQgZnJvbSAnLi9Db250ZW50JztcbmltcG9ydCBOYXZNZW51IGZyb20gJ0Bjb21wb25lbnRzL05hdk1lbnUnO1xuaW1wb3J0IEhlYWRlckxpbmUgZnJvbSAnQGNvbXBvbmVudHMvSGVhZGVyTGluZSc7XG5pbXBvcnQgVGhlbWVTdXBwb3J0IGZyb20gJy4vVGhlbWVTdXBwb3J0JztcbmltcG9ydCBWZXJzaW9uQ29udHJvbCBmcm9tICcuL1ZlcnNpb25Db250cm9sJztcbmltcG9ydCBNeUFjY291bnQgZnJvbSAnLi9NeUFjY291bnQnO1xuaW1wb3J0IEludGVncmF0aW9ucyBmcm9tICcuL0ludGVncmF0aW9ucyc7XG5pbXBvcnQgQnJhbmRpbmcgZnJvbSAnLi9CcmFuZGluZyc7XG5pbXBvcnQgUG9zdFNraW5zIGZyb20gJy4vUG9zdFNraW5zJztcbmltcG9ydCB7IF9fIH0gZnJvbSAnQHdvcmRwcmVzcy9pMThuJztcblxuY29uc3QgU2V0dGluZ3MgPSAoKSA9PiB7XG4gICAgY29uc3QgaXRlbXMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAxLFxuICAgICAgICAgICAgaWNvbjogKFxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgc3JjPXtgJHt1YWVsU2V0dGluZ3NEYXRhLnVzZXJfdXJsfWB9XG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIkN1c3RvbSBTVkdcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJvYmplY3QtY29udGFpblwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzZWxlY3RlZDogKFxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgc3JjPXtgJHt1YWVsU2V0dGluZ3NEYXRhLnVzZXJfX3NlbGVjdGVkX3VybH1gfVxuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJDdXN0b20gU1ZHXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwib2JqZWN0LWNvbnRhaW5cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdGl0bGU6IF9fKCdNeSBBY2NvdW50JywgJ3VhZWwnKSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IDxNeUFjY291bnQgLz5cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgaWQ6IDIsXG4gICAgICAgICAgICBpY29uOiAoXG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBzcmM9e2Ake3VhZWxTZXR0aW5nc0RhdGEudGhlbWVfdXJsfWB9XG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIkN1c3RvbSBTVkdcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJvYmplY3QtY29udGFpblwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzZWxlY3RlZDogKFxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgc3JjPXtgJHt1YWVsU2V0dGluZ3NEYXRhLnRoZW1lX19zZWxlY3RlZF91cmx9YH1cbiAgICAgICAgICAgICAgICAgICAgYWx0PVwiQ3VzdG9tIFNWR1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm9iamVjdC1jb250YWluXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1haW46IF9fKCdFZGl0b3InLCAndWFlbCcpLFxuICAgICAgICAgICAgdGl0bGU6IF9fKCdUaGVtZSBTdXBwb3J0JywgJ3VhZWwnKSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IDxUaGVtZVN1cHBvcnQgLz5cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgaWQ6IDMsXG4gICAgICAgICAgICBpY29uOiAoXG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBzcmM9e2Ake3VhZWxTZXR0aW5nc0RhdGEudmVyc2lvbl91cmx9YH1cbiAgICAgICAgICAgICAgICAgICAgYWx0PVwiQ3VzdG9tIFNWR1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm9iamVjdC1jb250YWluXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHNlbGVjdGVkOiAoXG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBzcmM9e2Ake3VhZWxTZXR0aW5nc0RhdGEudmVyc2lvbl9fc2VsZWN0ZWRfdXJsfWB9XG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIkN1c3RvbSBTVkdcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJvYmplY3QtY29udGFpblwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBtYWluOiBfXygnVXRpbGl0aWVzJywgJ3VhZWwnKSxcbiAgICAgICAgICAgIHRpdGxlOiAgX18oJ1ZlcnNpb24gQ29udHJvbCcsICd1YWVsJyksXG4gICAgICAgICAgICBjb250ZW50OiA8VmVyc2lvbkNvbnRyb2wgLz5cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgaWQ6IDQsXG4gICAgICAgICAgICBpY29uOiAoXG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBzcmM9e2Ake3VhZWxTZXR0aW5nc0RhdGEuYnJhbmRpbmdfdXJsfWB9XG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIkN1c3RvbSBTVkdcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJvYmplY3QtY29udGFpblwiXG5cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHNlbGVjdGVkOiAoXG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBzcmM9e2Ake3VhZWxTZXR0aW5nc0RhdGEuYnJhbmRpbmdfX3NlbGVjdGVkX3VybH1gfVxuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJDdXN0b20gU1ZHXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwib2JqZWN0LWNvbnRhaW5cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbWFpbjogJycsXG4gICAgICAgICAgICB0aXRsZTogX18oJ0JyYW5kaW5nJywgJ3VhZWwnKSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IDxCcmFuZGluZyAvPlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBpZDogNSxcbiAgICAgICAgICAgIGljb246IChcbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIHNyYz17YCR7dWFlbFNldHRpbmdzRGF0YS5pbnRlZ3JhdGlvbnNfdXJsfWB9XG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIkN1c3RvbSBTVkdcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJvYmplY3QtY29udGFpblwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzZWxlY3RlZDogKFxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgc3JjPXtgJHt1YWVsU2V0dGluZ3NEYXRhLmludGVncmF0aW9uc19fc2VsZWN0ZWRfdXJsfWB9XG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIkN1c3RvbSBTVkdcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJvYmplY3QtY29udGFpblwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBtYWluOiBfXygnUHJlZmVyZW5jZXMnLCAndWFlbCcpLFxuICAgICAgICAgICAgdGl0bGU6IF9fKCdJbnRlZ3JhdGlvbnMnLCAndWFlbCcpLFxuICAgICAgICAgICAgY29udGVudDogPEludGVncmF0aW9ucyAvPlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBpZDogNixcbiAgICAgICAgICAgIGljb246IChcbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIHNyYz17YCR7dWFlbFNldHRpbmdzRGF0YS5wb3N0c2tpbnNfdXJsfWB9XG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIkN1c3RvbSBTVkdcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJvYmplY3QtY29udGFpblwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzZWxlY3RlZDogKFxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgc3JjPXtgJHt1YWVsU2V0dGluZ3NEYXRhLnBvc3Rza2luc19zZWxlY3RlZF91cmx9YH1cbiAgICAgICAgICAgICAgICAgICAgYWx0PVwiQ3VzdG9tIFNWR1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm9iamVjdC1jb250YWluXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1haW46IF9fKCdTa2lucycsICd1YWVsJyksXG4gICAgICAgICAgICB0aXRsZTogX18oJ1Bvc3QgV2lkZ2V0IFNraW5zJywgJ3VhZWwnKSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IDxQb3N0U2tpbnMgLz5cbiAgICAgICAgfVxuICAgIF0uZmlsdGVyKGl0ZW0gPT4ge1xuICAgICAgICBpZiAoICggJ25vJyA9PT0gdWFlbFNldHRpbmdzRGF0YS5zaG93X3RoZW1lX3N1cHBvcnQgKSAmJiBpdGVtLmlkID09PSAyICkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHVhZWxTZXR0aW5nc0RhdGEuaGlkZV9zZXR0aW5ncykge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uaWQgIT09IDMgJiYgaXRlbS5pZCAhPT0gNDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuXG4gICAgLy8gRGVmYXVsdCBzdGF0ZTogU2V0ICdNeSBBY2NvdW50JyAoZmlyc3QgaXRlbSkgYXMgdGhlIGRlZmF1bHQgd2hlbiB0aGUgc2V0dGluZ3MgdGFiIGlzIGNsaWNrZWRcbiAgICBjb25zdCBbc2VsZWN0ZWRJdGVtLCBzZXRTZWxlY3RlZEl0ZW1dID0gdXNlU3RhdGUoKCkgPT4ge1xuICAgICAgICBjb25zdCBzYXZlZEl0ZW1JZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzZWxlY3RlZEl0ZW1JZCcpO1xuICAgICAgICBjb25zdCBzYXZlZEl0ZW0gPSBpdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gTnVtYmVyKHNhdmVkSXRlbUlkKSk7XG4gICAgICAgIHJldHVybiBzYXZlZEl0ZW0gfHwgaXRlbXNbMF07IC8vIERlZmF1bHQgdG8gdGhlIGZpcnN0IGl0ZW0gaWYgbm8gc2F2ZWQgaXRlbSBpcyBmb3VuZFxuICAgIH0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gU3RvcmUgc2VsZWN0ZWRJdGVtSWQgaW4gbG9jYWxTdG9yYWdlIChvciBvdGhlciBwZXJzaXN0ZW50IHN0b3JhZ2UpIHRvIHJldGFpbiBzZWxlY3Rpb25cbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3NlbGVjdGVkSXRlbUlkJywgc2VsZWN0ZWRJdGVtLmlkLnRvU3RyaW5nKCkpO1xuICAgIH0sIFtzZWxlY3RlZEl0ZW1dKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgICAgIGNvbnN0IHRhYiA9IHBhcmFtcy5nZXQoJ3RhYicpO1xuICAgICAgICBpZiAodGFiKSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtSWQgPSBOdW1iZXIodGFiKTtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gaXRlbUlkKTtcbiAgICAgICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRJdGVtKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0SXRlbSA9IChpdGVtKSA9PiB7XG4gICAgICAgIHNldFNlbGVjdGVkSXRlbShpdGVtKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlU2V0dGluZ3NUYWJDbGljayA9ICgpID0+IHtcbiAgICAgICAgc2V0U2VsZWN0ZWRJdGVtKGl0ZW1zWzBdKTsgLy8gU2V0IFwiTXkgQWNjb3VudFwiIGFzIHRoZSBkZWZhdWx0IGl0ZW0gd2hlbiBzZXR0aW5ncyB0YWIgaXMgY2xpY2tlZFxuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgICAgPE5hdk1lbnUgb25TZXR0aW5nc1RhYkNsaWNrPXtoYW5kbGVTZXR0aW5nc1RhYkNsaWNrfSAvPiB7LyogRW5zdXJlIFNldHRpbmdzIHRhYiB0cmlnZ2VycyB0aGlzICovfVxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8SGVhZGVyTGluZSAvPlxuICAgICAgICAgICAgICAgIDxDb250YWluZXIgYWxpZ249XCJzdHJldGNoXCIgY2xhc3NOYW1lPVwicC0xIGZsZXgtY29sIGxnOmZsZXgtcm93IHVhZS1zZXR0aW5ncy1wYWdlXCIgY29udGFpbmVyVHlwZT1cImZsZXhcIiBkaXJlY3Rpb249XCJyb3dcIiBnYXA9XCJzbVwiIGp1c3RpZnk9XCJzdGFydFwiIHN0eWxlPXt7IGhlaWdodDogXCIxMDAlXCIgfX0+XG4gICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbSBjbGFzc05hbWU9XCJwLTIgdWFlLXN0aWNreS1vdXRlci13cmFwcGVyXCIgYWxpZ25TZWxmPVwiYXV0b1wiIG9yZGVyPVwibm9uZVwiIHNocmluaz17MX0gc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBcIiNmZmZmZmZcIiB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSd1YWUtc3RpY2t5LXNpZGViYXInPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTaWRlYmFyIGl0ZW1zPXtpdGVtc30gb25TZWxlY3RJdGVtPXtoYW5kbGVTZWxlY3RJdGVtfSBzZWxlY3RlZEl0ZW1JZD17c2VsZWN0ZWRJdGVtLmlkfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbSBjbGFzc05hbWU9XCJwLTIgZmxleCB3LWZ1bGwganVzdGlmeS1jZW50ZXIgaXRlbXMtc3RhcnQgdWFlLWhpZGUtc2Nyb2xsYmFyXCIgYWxpZ25TZWxmPVwiYXV0b1wiIG9yZGVyPVwibm9uZVwiIHNocmluaz17MX0gc3R5bGU9e3sgaGVpZ2h0OiBcImNhbGMoMTAwdmggLSAxcHgpXCIsIG92ZXJmbG93WTogXCJhdXRvXCIgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInVhZWwtNzgtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29udGVudCBzZWxlY3RlZEl0ZW09e3NlbGVjdGVkSXRlbX0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvPlxuICAgICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTZXR0aW5nczsiXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIkNvbnRhaW5lciIsIlNpZGViYXIiLCJDb250ZW50IiwiTmF2TWVudSIsIkhlYWRlckxpbmUiLCJUaGVtZVN1cHBvcnQiLCJWZXJzaW9uQ29udHJvbCIsIk15QWNjb3VudCIsIkludGVncmF0aW9ucyIsIkJyYW5kaW5nIiwiUG9zdFNraW5zIiwiX18iLCJTZXR0aW5ncyIsIml0ZW1zIiwiaWQiLCJpY29uIiwiY3JlYXRlRWxlbWVudCIsInNyYyIsImNvbmNhdCIsInVhZWxTZXR0aW5nc0RhdGEiLCJ1c2VyX3VybCIsImFsdCIsImNsYXNzTmFtZSIsInNlbGVjdGVkIiwidXNlcl9fc2VsZWN0ZWRfdXJsIiwidGl0bGUiLCJjb250ZW50IiwidGhlbWVfdXJsIiwidGhlbWVfX3NlbGVjdGVkX3VybCIsIm1haW4iLCJ2ZXJzaW9uX3VybCIsInZlcnNpb25fX3NlbGVjdGVkX3VybCIsImJyYW5kaW5nX3VybCIsImJyYW5kaW5nX19zZWxlY3RlZF91cmwiLCJpbnRlZ3JhdGlvbnNfdXJsIiwiaW50ZWdyYXRpb25zX19zZWxlY3RlZF91cmwiLCJwb3N0c2tpbnNfdXJsIiwicG9zdHNraW5zX3NlbGVjdGVkX3VybCIsImZpbHRlciIsIml0ZW0iLCJzaG93X3RoZW1lX3N1cHBvcnQiLCJoaWRlX3NldHRpbmdzIiwiX3VzZVN0YXRlIiwic2F2ZWRJdGVtSWQiLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwic2F2ZWRJdGVtIiwiZmluZCIsIk51bWJlciIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNlbGVjdGVkSXRlbSIsInNldFNlbGVjdGVkSXRlbSIsInNldEl0ZW0iLCJ0b1N0cmluZyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsIndpbmRvdyIsImxvY2F0aW9uIiwic2VhcmNoIiwidGFiIiwiZ2V0IiwiaXRlbUlkIiwiaGFuZGxlU2VsZWN0SXRlbSIsImhhbmRsZVNldHRpbmdzVGFiQ2xpY2siLCJGcmFnbWVudCIsIm9uU2V0dGluZ3NUYWJDbGljayIsImFsaWduIiwiY29udGFpbmVyVHlwZSIsImRpcmVjdGlvbiIsImdhcCIsImp1c3RpZnkiLCJzdHlsZSIsImhlaWdodCIsIkl0ZW0iLCJhbGlnblNlbGYiLCJvcmRlciIsInNocmluayIsImJhY2tncm91bmRDb2xvciIsIm9uU2VsZWN0SXRlbSIsInNlbGVjdGVkSXRlbUlkIiwib3ZlcmZsb3dZIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/Components/Settings/Settings.jsx\n");
/***/ }),
/***/ "./src/Components/Settings/Sidebar.jsx":
/*!*********************************************!*\
!*** ./src/Components/Settings/Sidebar.jsx ***!
\*********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar Sidebar = function Sidebar(_ref) {\n var items = _ref.items,\n onSelectItem = _ref.onSelectItem,\n selectedItemId = _ref.selectedItemId;\n var handleSelectItem = function handleSelectItem(item) {\n onSelectItem(item); // Trigger onSelectItem callback passed from parent\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n style: {\n padding: \"1rem\",\n width: \"100%\"\n }\n }, items.map(function (item) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n key: item.id,\n className: \"mb-2\"\n }, item.main && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", {\n className: \"text-sm text-text-tertiary font-normal mb-2\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)(item.main, 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"h-10 flex items-center justify-start gap-2 px-2 rounded-md cursor-pointer \".concat(selectedItemId === item.id ? 'bg-gray-100' : 'bg-background-primary'),\n style: {\n backgroundColor: selectedItemId === item.id ? '#F9FAFB' : '' // Apply background color when selected\n },\n onClick: function onClick() {\n return handleSelectItem(item);\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", null, selectedItemId === item.id ? item.selected : item.icon), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"p\", {\n className: \"m-0 text-base font-normal\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)(item.title, 'uael'))));\n }));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Sidebar);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9TZXR0aW5ncy9TaWRlYmFyLmpzeCIsIm1hcHBpbmdzIjoiOzs7OztBQUEwQjtBQUNXO0FBRXJDLElBQU1FLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFBQyxJQUFBLEVBQWdEO0VBQUEsSUFBMUNDLEtBQUssR0FBQUQsSUFBQSxDQUFMQyxLQUFLO0lBQUVDLFlBQVksR0FBQUYsSUFBQSxDQUFaRSxZQUFZO0lBQUVDLGNBQWMsR0FBQUgsSUFBQSxDQUFkRyxjQUFjO0VBQ3BELElBQU1DLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUlDLElBQUksRUFBSztJQUNqQ0gsWUFBWSxDQUFDRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ3RCLENBQUM7RUFFRCxvQkFDRVIsMERBQUE7SUFBS1UsS0FBSyxFQUFFO01BQUVDLE9BQU8sRUFBRSxNQUFNO01BQUVDLEtBQUssRUFBRTtJQUFPO0VBQUUsR0FFNUNSLEtBQUssQ0FBQ1MsR0FBRyxDQUFDLFVBQUNMLElBQUk7SUFBQSxvQkFDZFIsMERBQUE7TUFBS2MsR0FBRyxFQUFFTixJQUFJLENBQUNPLEVBQUc7TUFBQ0MsU0FBUyxFQUFDO0lBQU0sR0FDaENSLElBQUksQ0FBQ1MsSUFBSSxpQkFDUmpCLDBEQUFBO01BQUdnQixTQUFTLEVBQUM7SUFBNkMsR0FDdkRmLG1EQUFFLENBQUNPLElBQUksQ0FBQ1MsSUFBSSxFQUFFLE1BQU0sQ0FDcEIsQ0FDSixlQUdEakIsMERBQUE7TUFDRWdCLFNBQVMsK0VBQUFFLE1BQUEsQ0FBK0VaLGNBQWMsS0FBS0UsSUFBSSxDQUFDTyxFQUFFLEdBQUcsYUFBYSxHQUFHLHVCQUF1QixDQUFHO01BQy9KTCxLQUFLLEVBQUU7UUFDTFMsZUFBZSxFQUFFYixjQUFjLEtBQUtFLElBQUksQ0FBQ08sRUFBRSxHQUFHLFNBQVMsR0FBRyxFQUFFLENBQUU7TUFDaEUsQ0FBRTtNQUNGSyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtRQUFBLE9BQVFiLGdCQUFnQixDQUFDQyxJQUFJLENBQUM7TUFBQTtJQUFDLGdCQUV0Q1IsMERBQUEsZUFDR00sY0FBYyxLQUFLRSxJQUFJLENBQUNPLEVBQUUsR0FBR1AsSUFBSSxDQUFDYSxRQUFRLEdBQUdiLElBQUksQ0FBQ2MsSUFDL0MsQ0FBQyxlQUNQdEIsMERBQUE7TUFBR2dCLFNBQVMsRUFBQztJQUEyQixHQUFFZixtREFBRSxDQUFDTyxJQUFJLENBQUNlLEtBQUssRUFBRSxNQUFNLENBQUssQ0FDakUsQ0FDRixDQUFDO0VBQUEsQ0FDUCxDQUNFLENBQUM7QUFFVixDQUFDO0FBRUQsK0RBQWVyQixPQUFPIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL3NyYy9Db21wb25lbnRzL1NldHRpbmdzL1NpZGViYXIuanN4P2ZjZTEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IF9fIH0gZnJvbSBcIkB3b3JkcHJlc3MvaTE4blwiO1xuXG5jb25zdCBTaWRlYmFyID0gKHsgaXRlbXMsIG9uU2VsZWN0SXRlbSwgc2VsZWN0ZWRJdGVtSWQgfSkgPT4ge1xuICBjb25zdCBoYW5kbGVTZWxlY3RJdGVtID0gKGl0ZW0pID0+IHtcbiAgICBvblNlbGVjdEl0ZW0oaXRlbSk7IC8vIFRyaWdnZXIgb25TZWxlY3RJdGVtIGNhbGxiYWNrIHBhc3NlZCBmcm9tIHBhcmVudFxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBwYWRkaW5nOiBcIjFyZW1cIiwgd2lkdGg6IFwiMTAwJVwiIH19PlxuICAgICAgey8qIExvb3AgdGhyb3VnaCBpdGVtcyB0byByZW5kZXIgbWFpbiB0aXRsZSwgaWNvbiwgYW5kIHRpdGxlICovfVxuICAgICAge2l0ZW1zLm1hcCgoaXRlbSkgPT4gKFxuICAgICAgICA8ZGl2IGtleT17aXRlbS5pZH0gY2xhc3NOYW1lPVwibWItMlwiPlxuICAgICAgICAgIHtpdGVtLm1haW4gJiYgKFxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXRleHQtdGVydGlhcnkgZm9udC1ub3JtYWwgbWItMlwiPlxuICAgICAgICAgICAgICB7X18oaXRlbS5tYWluLCAndWFlbCcpfVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7LyogRWFjaCBpdGVtIHdpdGggaWNvbiBhbmQgdGl0bGUgKi99XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgaC0xMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0IGdhcC0yIHB4LTIgcm91bmRlZC1tZCBjdXJzb3ItcG9pbnRlciAke3NlbGVjdGVkSXRlbUlkID09PSBpdGVtLmlkID8gJ2JnLWdyYXktMTAwJyA6ICdiZy1iYWNrZ3JvdW5kLXByaW1hcnknfWB9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHNlbGVjdGVkSXRlbUlkID09PSBpdGVtLmlkID8gJyNGOUZBRkInIDogJycsIC8vIEFwcGx5IGJhY2tncm91bmQgY29sb3Igd2hlbiBzZWxlY3RlZFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVNlbGVjdEl0ZW0oaXRlbSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIHtzZWxlY3RlZEl0ZW1JZCA9PT0gaXRlbS5pZCA/IGl0ZW0uc2VsZWN0ZWQgOiBpdGVtLmljb259XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtLTAgdGV4dC1iYXNlIGZvbnQtbm9ybWFsXCI+e19fKGl0ZW0udGl0bGUsICd1YWVsJyl9PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkpfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2lkZWJhcjtcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIl9fIiwiU2lkZWJhciIsIl9yZWYiLCJpdGVtcyIsIm9uU2VsZWN0SXRlbSIsInNlbGVjdGVkSXRlbUlkIiwiaGFuZGxlU2VsZWN0SXRlbSIsIml0ZW0iLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJwYWRkaW5nIiwid2lkdGgiLCJtYXAiLCJrZXkiLCJpZCIsImNsYXNzTmFtZSIsIm1haW4iLCJjb25jYXQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJvbkNsaWNrIiwic2VsZWN0ZWQiLCJpY29uIiwidGl0bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/Components/Settings/Sidebar.jsx\n");
/***/ }),
/***/ "./src/Components/Settings/ThemeSupport.jsx":
/*!**************************************************!*\
!*** ./src/Components/Settings/ThemeSupport.jsx ***!
\**************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"@babel/runtime/regenerator\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react_hot_toast__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-hot-toast */ \"./node_modules/react-hot-toast/dist/index.mjs\");\n\n\n\n\n\n\n\nvar radioData = [{\n id: \"1\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Option 1 (Recommended)', 'uael'),\n description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)(\"This option will automatically replace your theme's header and footer files with custom templates from the plugin. It works with most themes and is selected by default.\", \"uael\"),\n value: \"1\"\n}, {\n id: \"2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Option 2', 'uael'),\n description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)(\"This option will automatically replace your theme's header and footer files with custom templates from the plugin. It works with most themes and is selected by default.\", \"uael\"),\n value: \"2\"\n}];\nvar ThemeSupport = function ThemeSupport() {\n // State to store the selected radio option\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(uaelSettingsData.theme_option),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useState, 2),\n selectedOption = _useState2[0],\n setSelectedOption = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(true),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useState3, 2),\n isInitialLoad = _useState4[0],\n setIsInitialLoad = _useState4[1];\n (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(function () {\n setIsInitialLoad(false);\n }, []);\n var handleRadioChange = function handleRadioChange(event) {\n var newValue = event.target.value;\n setSelectedOption(newValue); // Update the selected option in state\n\n // Only send the AJAX call if this is not the initial load\n if (!isInitialLoad) {\n saveOption(newValue);\n }\n };\n\n // Function to save the selected option.\n var saveOption = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark(function _callee(option) {\n var response, result;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n _context.next = 3;\n return fetch(uaelSettingsData.ajax_url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n },\n body: new URLSearchParams({\n action: 'save_hfe_compatibility_option',\n // WordPress action for your AJAX handler\n hfe_compatibility_option: option,\n nonce: uaelSettingsData.ajax_nonce // Nonce for security\n })\n });\n case 3:\n response = _context.sent;\n _context.next = 6;\n return response.json();\n case 6:\n result = _context.sent;\n if (result.success) {\n react_hot_toast__WEBPACK_IMPORTED_MODULE_6__[\"default\"].success(\"Settings saved successfully!\");\n } else {\n react_hot_toast__WEBPACK_IMPORTED_MODULE_6__[\"default\"].error(\"Failed to save settings\");\n }\n _context.next = 13;\n break;\n case 10:\n _context.prev = 10;\n _context.t0 = _context[\"catch\"](0);\n react_hot_toast__WEBPACK_IMPORTED_MODULE_6__[\"default\"].error(\"Error saving settings\");\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 10]]);\n }));\n return function saveOption(_x) {\n return _ref.apply(this, arguments);\n };\n }();\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Title, {\n description: \"\",\n icon: null,\n iconPosition: \"right\",\n size: \"sm\",\n tag: \"h2\",\n title: \"Theme Support\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container, {\n align: \"stretch\",\n className: \"bg-background-primary p-6 rounded-lg\",\n containerType: \"flex\",\n direction: \"column\",\n gap: \"sm\",\n justify: \"start\",\n style: {\n marginTop: \"24px\",\n maxWidth: \"696px\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"flex flex-col space-y-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"p\", {\n className: \"text-base font-semibold m-0\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Select Option to Add Theme Support', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"p\", {\n className: \"text-sm font-normal m-0\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)(\"To ensure compatibility between the \".concat(uaelSettingsData.plugin_short_name, \"'s header/footer and your theme, please choose one of the following options to enable theme support:\"), 'uael'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Container.Item, {\n className: \"p-2 space-y-4\",\n alignSelf: \"auto\",\n order: \"none\"\n }, radioData.map(function (item) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n key: item.id,\n className: \"flex items-start gap-1 justify-center cursor-pointer\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"input\", {\n id: item.id,\n value: item.value,\n type: \"radio\",\n className: \"mt-1 cursor-pointer uae-radio-field\",\n name: \"hfe_compatibility_option\" // Group radio buttons\n ,\n onChange: handleRadioChange // Track the change\n ,\n checked: selectedOption === item.value // Controlled input.\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"flex flex-col cursor-pointer\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_4__.Label, {\n size: \"sm\",\n variant: \"neutral\",\n className: \"text-sm font-semibold text-text-secondary cursor-pointer flex flex-col items-start justify-start\",\n htmlFor: item.id\n }, item.title, \":\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"p\", {\n className: \"m-0 text-sm font-normal text-text-secondary cursor-pointer\"\n }, item.description))));\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"flex items-center p-4 border rounded-md text-start\",\n style: {\n paddingTop: '16px',\n paddingBottom: '16px',\n backgroundColor: \"#F3F0FF\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"p\", {\n className: \"m-0\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"strong\", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('Note:', 'uael')), \" \", (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)('If neither option works, please contact your theme author to add support for this plugin.', 'uael')))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(react_hot_toast__WEBPACK_IMPORTED_MODULE_6__.Toaster, {\n position: \"top-right\",\n reverseOrder: false,\n gutter: 8,\n containerStyle: {\n top: 20,\n right: 20,\n marginTop: '80px'\n },\n toastOptions: {\n duration: 5000,\n style: {\n background: 'white'\n },\n success: {\n duration: 3000,\n style: {\n color: ''\n },\n iconTheme: {\n primary: '#6005ff',\n secondary: '#fff'\n }\n }\n }\n }));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (ThemeSupport);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9TZXR0aW5ncy9UaGVtZVN1cHBvcnQuanN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFtRDtBQUNLO0FBQ25CO0FBQ1k7QUFFakQsSUFBTVMsU0FBUyxHQUFHLENBQ2Q7RUFDSUMsRUFBRSxFQUFFLEdBQUc7RUFDUEMsS0FBSyxFQUFFTCxtREFBRSxDQUFDLHdCQUF3QixFQUFFLE1BQU0sQ0FBQztFQUMzQ00sV0FBVyxFQUFFTixtREFBRSxDQUFDLDBLQUEwSyxFQUFFLE1BQU0sQ0FBQztFQUNuTU8sS0FBSyxFQUFFO0FBQ1gsQ0FBQyxFQUNEO0VBQ0lILEVBQUUsRUFBRSxHQUFHO0VBQ1BDLEtBQUssRUFBRUwsbURBQUUsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDO0VBQzdCTSxXQUFXLEVBQUVOLG1EQUFFLENBQUMsMEtBQTBLLEVBQUUsTUFBTSxDQUFDO0VBQ25NTyxLQUFLLEVBQUU7QUFDWCxDQUFDLENBQ0o7QUFFRCxJQUFNQyxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQSxFQUFTO0VBQ3ZCO0VBQ0EsSUFBQUMsU0FBQSxHQUE0Q2QsK0NBQVEsQ0FBQ2UsZ0JBQWdCLENBQUNDLFlBQVksQ0FBQztJQUFBQyxVQUFBLEdBQUFDLGdGQUFBLENBQUFKLFNBQUE7SUFBNUVLLGNBQWMsR0FBQUYsVUFBQTtJQUFFRyxpQkFBaUIsR0FBQUgsVUFBQTtFQUV4QyxJQUFBSSxVQUFBLEdBQTBDckIsK0NBQVEsQ0FBQyxJQUFJLENBQUM7SUFBQXNCLFVBQUEsR0FBQUosZ0ZBQUEsQ0FBQUcsVUFBQTtJQUFqREUsYUFBYSxHQUFBRCxVQUFBO0lBQUVFLGdCQUFnQixHQUFBRixVQUFBO0VBRXRDckIsZ0RBQVMsQ0FBQyxZQUFNO0lBQ1p1QixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7RUFDM0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUlDLEtBQUssRUFBSztJQUNq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QUFDO0VBQUEsQ0FDVCxDQUNXLENBQUMsZUFFakJaLDBEQUFBO0lBQUtzRSxTQUFTLEVBQUMsb0RBQW9EO0lBQUNLLEtBQUssRUFBRTtNQUN2RWlCLFVBQVUsRUFBRSxNQUFNO01BQ2xCQyxhQUFhLEVBQUUsTUFBTTtNQUNyQkMsZUFBZSxFQUFFO0lBQ3JCO0VBQUUsZ0JBQ0U5RiwwREFBQTtJQUFHc0UsU0FBUyxFQUFDO0VBQUssZ0JBQ2R0RSwwREFBQSxpQkFBU00sbURBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFVLENBQUMsS0FBQyxFQUFDQSxtREFBRSxDQUFDLDJGQUEyRixFQUFFLE1BQU0sQ0FDL0ksQ0FDRixDQUNFLENBQUMsZUFFWk4sMERBQUEsQ0FBQ1Esb0RBQU87SUFDSnVGLFFBQVEsRUFBQyxXQUFXO0lBQ3BCQyxZQUFZLEVBQUUsS0FBTTtJQUNwQkMsTUFBTSxFQUFFLENBQUU7SUFDVkMsY0FBYyxFQUFFO01BQ1pDLEdBQUcsRUFBRSxFQUFFO01BQ1BDLEtBQUssRUFBRSxFQUFFO01BQ1R4QixTQUFTLEVBQUU7SUFDZixDQUFFO0lBQ0Z5QixZQUFZLEVBQUU7TUFDVkMsUUFBUSxFQUFFLElBQUk7TUFDZDNCLEtBQUssRUFBRTtRQUNINEIsVUFBVSxFQUFFO01BQ2hCLENBQUM7TUFDRC9DLE9BQU8sRUFBRTtRQUNMOEMsUUFBUSxFQUFFLElBQUk7UUFDZDNCLEtBQUssRUFBRTtVQUNINkIsS0FBSyxFQUFFO1FBQ1gsQ0FBQztRQUNEQyxTQUFTLEVBQUU7VUFDUEMsT0FBTyxFQUFFLFNBQVM7VUFDbEJDLFNBQVMsRUFBRTtRQUNmO01BQ0o7SUFDSjtFQUFFLENBQ0wsQ0FDSCxDQUFDO0FBRVgsQ0FBQztBQUVELCtEQUFlN0YsWUFBWSIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9zcmMvQ29tcG9uZW50cy9TZXR0aW5ncy9UaGVtZVN1cHBvcnQuanN4P2ExOWMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb250YWluZXIsIFRpdGxlLCBMYWJlbCB9IGZyb20gXCJAYnNmL2ZvcmNlLXVpXCI7XG5pbXBvcnQgeyBfXyB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5pbXBvcnQgdG9hc3QsIHsgVG9hc3RlciB9IGZyb20gJ3JlYWN0LWhvdC10b2FzdCc7XG5cbmNvbnN0IHJhZGlvRGF0YSA9IFtcbiAgICB7XG4gICAgICAgIGlkOiBcIjFcIixcbiAgICAgICAgdGl0bGU6IF9fKCdPcHRpb24gMSAoUmVjb21tZW5kZWQpJywgJ3VhZWwnKSxcbiAgICAgICAgZGVzY3JpcHRpb246IF9fKFwiVGhpcyBvcHRpb24gd2lsbCBhdXRvbWF0aWNhbGx5IHJlcGxhY2UgeW91ciB0aGVtZSdzIGhlYWRlciBhbmQgZm9vdGVyIGZpbGVzIHdpdGggY3VzdG9tIHRlbXBsYXRlcyBmcm9tIHRoZSBwbHVnaW4uIEl0IHdvcmtzIHdpdGggbW9zdCB0aGVtZXMgYW5kIGlzIHNlbGVjdGVkIGJ5IGRlZmF1bHQuXCIsIFwidWFlbFwiKSxcbiAgICAgICAgdmFsdWU6IFwiMVwiXG4gICAgfSxcbiAgICB7XG4gICAgICAgIGlkOiBcIjJcIixcbiAgICAgICAgdGl0bGU6IF9fKCdPcHRpb24gMicsICd1YWVsJyksXG4gICAgICAgIGRlc2NyaXB0aW9uOiBfXyhcIlRoaXMgb3B0aW9uIHdpbGwgYXV0b21hdGljYWxseSByZXBsYWNlIHlvdXIgdGhlbWUncyBoZWFkZXIgYW5kIGZvb3RlciBmaWxlcyB3aXRoIGN1c3RvbSB0ZW1wbGF0ZXMgZnJvbSB0aGUgcGx1Z2luLiBJdCB3b3JrcyB3aXRoIG1vc3QgdGhlbWVzIGFuZCBpcyBzZWxlY3RlZCBieSBkZWZhdWx0LlwiLCBcInVhZWxcIiksXG4gICAgICAgIHZhbHVlOiBcIjJcIlxuICAgIH1cbl07XG5cbmNvbnN0IFRoZW1lU3VwcG9ydCA9ICgpID0+IHtcbiAgICAvLyBTdGF0ZSB0byBzdG9yZSB0aGUgc2VsZWN0ZWQgcmFkaW8gb3B0aW9uXG4gICAgY29uc3QgW3NlbGVjdGVkT3B0aW9uLCBzZXRTZWxlY3RlZE9wdGlvbl0gPSB1c2VTdGF0ZSh1YWVsU2V0dGluZ3NEYXRhLnRoZW1lX29wdGlvbik7XG5cbiAgICBjb25zdCBbaXNJbml0aWFsTG9hZCwgc2V0SXNJbml0aWFsTG9hZF0gPSB1c2VTdGF0ZSh0cnVlKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNldElzSW5pdGlhbExvYWQoZmFsc2UpO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IGhhbmRsZVJhZGlvQ2hhbmdlID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgICBzZXRTZWxlY3RlZE9wdGlvbihuZXdWYWx1ZSk7IC8vIFVwZGF0ZSB0aGUgc2VsZWN0ZWQgb3B0aW9uIGluIHN0YXRlXG5cbiAgICAgICAgLy8gT25seSBzZW5kIHRoZSBBSkFYIGNhbGwgaWYgdGhpcyBpcyBub3QgdGhlIGluaXRpYWwgbG9hZFxuICAgICAgICBpZiAoIWlzSW5pdGlhbExvYWQpIHtcbiAgICAgICAgICAgIHNhdmVPcHRpb24obmV3VmFsdWUpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8vIEZ1bmN0aW9uIHRvIHNhdmUgdGhlIHNlbGVjdGVkIG9wdGlvbi5cbiAgICBjb25zdCBzYXZlT3B0aW9uID0gYXN5bmMgKG9wdGlvbikgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1YWVsU2V0dGluZ3NEYXRhLmFqYXhfdXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBib2R5OiBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnc2F2ZV9oZmVfY29tcGF0aWJpbGl0eV9vcHRpb24nLCAvLyBXb3JkUHJlc3MgYWN0aW9uIGZvciB5b3VyIEFKQVggaGFuZGxlclxuICAgICAgICAgICAgICAgICAgICBoZmVfY29tcGF0aWJpbGl0eV9vcHRpb246IG9wdGlvbixcbiAgICAgICAgICAgICAgICAgICAgbm9uY2U6IHVhZWxTZXR0aW5nc0RhdGEuYWpheF9ub25jZSAvLyBOb25jZSBmb3Igc2VjdXJpdHlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcblxuICAgICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgdG9hc3Quc3VjY2VzcyhcIlNldHRpbmdzIHNhdmVkIHN1Y2Nlc3NmdWxseSFcIik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRvYXN0LmVycm9yKFwiRmFpbGVkIHRvIHNhdmUgc2V0dGluZ3NcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0b2FzdC5lcnJvcihcIkVycm9yIHNhdmluZyBzZXR0aW5nc1wiKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgICAgPFRpdGxlXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb249XCJcIlxuICAgICAgICAgICAgICAgIGljb249e251bGx9XG4gICAgICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgdGFnPVwiaDJcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiVGhlbWUgU3VwcG9ydFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICAgIGFsaWduPVwic3RyZXRjaFwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctYmFja2dyb3VuZC1wcmltYXJ5IHAtNiByb3VuZGVkLWxnXCJcbiAgICAgICAgICAgICAgICBjb250YWluZXJUeXBlPVwiZmxleFwiXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICBnYXA9XCJzbVwiXG4gICAgICAgICAgICAgICAganVzdGlmeT1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6IFwiMjRweFwiLFxuICAgICAgICAgICAgICAgICAgICBtYXhXaWR0aDogXCI2OTZweFwiLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgc3BhY2UteS0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0ndGV4dC1iYXNlIGZvbnQtc2VtaWJvbGQgbS0wJz57X18oJ1NlbGVjdCBPcHRpb24gdG8gQWRkIFRoZW1lIFN1cHBvcnQnLCAndWFlbCcpfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPSd0ZXh0LXNtIGZvbnQtbm9ybWFsIG0tMCc+XG4gICAgICAgICAgICAgICAgICAgICAgICB7X18oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYFRvIGVuc3VyZSBjb21wYXRpYmlsaXR5IGJldHdlZW4gdGhlICR7dWFlbFNldHRpbmdzRGF0YS5wbHVnaW5fc2hvcnRfbmFtZX0ncyBoZWFkZXIvZm9vdGVyIGFuZCB5b3VyIHRoZW1lLCBwbGVhc2UgY2hvb3NlIG9uZSBvZiB0aGUgZm9sbG93aW5nIG9wdGlvbnMgdG8gZW5hYmxlIHRoZW1lIHN1cHBvcnQ6YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndWFlbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwLTIgc3BhY2UteS00XCJcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25TZWxmPVwiYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7cmFkaW9EYXRhLm1hcCgoaXRlbSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2l0ZW0uaWR9IGNsYXNzTmFtZT0nZmxleCBpdGVtcy1zdGFydCBnYXAtMSBqdXN0aWZ5LWNlbnRlciBjdXJzb3ItcG9pbnRlcic+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPXtpdGVtLmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17aXRlbS52YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ncmFkaW8nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0nbXQtMSBjdXJzb3ItcG9pbnRlciB1YWUtcmFkaW8tZmllbGQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJoZmVfY29tcGF0aWJpbGl0eV9vcHRpb25cIiAvLyBHcm91cCByYWRpbyBidXR0b25zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVSYWRpb0NoYW5nZX0gLy8gVHJhY2sgdGhlIGNoYW5nZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtzZWxlY3RlZE9wdGlvbiA9PT0gaXRlbS52YWx1ZX0gLy8gQ29udHJvbGxlZCBpbnB1dC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdmbGV4IGZsZXgtY29sIGN1cnNvci1wb2ludGVyJz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSd0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC10ZXh0LXNlY29uZGFyeSBjdXJzb3ItcG9pbnRlciBmbGV4IGZsZXgtY29sIGl0ZW1zLXN0YXJ0IGp1c3RpZnktc3RhcnQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sRm9yPXtpdGVtLmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlbS50aXRsZX06XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9J20tMCB0ZXh0LXNtIGZvbnQtbm9ybWFsIHRleHQtdGV4dC1zZWNvbmRhcnkgY3Vyc29yLXBvaW50ZXInPntpdGVtLmRlc2NyaXB0aW9ufTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ZsZXggaXRlbXMtY2VudGVyIHAtNCBib3JkZXIgcm91bmRlZC1tZCB0ZXh0LXN0YXJ0JyBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nVG9wOiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmdCb3R0b206ICcxNnB4JyxcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcIiNGM0YwRkZcIixcbiAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPSdtLTAnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57X18oJ05vdGU6JywgJ3VhZWwnKX08L3N0cm9uZz4ge19fKCdJZiBuZWl0aGVyIG9wdGlvbiB3b3JrcywgcGxlYXNlIGNvbnRhY3QgeW91ciB0aGVtZSBhdXRob3IgdG8gYWRkIHN1cHBvcnQgZm9yIHRoaXMgcGx1Z2luLicsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuXG4gICAgICAgICAgICA8VG9hc3RlclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uPVwidG9wLXJpZ2h0XCJcbiAgICAgICAgICAgICAgICByZXZlcnNlT3JkZXI9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIGd1dHRlcj17OH1cbiAgICAgICAgICAgICAgICBjb250YWluZXJTdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDIwLFxuICAgICAgICAgICAgICAgICAgICByaWdodDogMjAsXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJzgwcHgnLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgdG9hc3RPcHRpb25zPXt7XG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiA1MDAwLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3doaXRlJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uVGhlbWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5OiAnIzYwMDVmZicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5OiAnI2ZmZicsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICA8Lz5cbiAgICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVGhlbWVTdXBwb3J0O1xuIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJDb250YWluZXIiLCJUaXRsZSIsIkxhYmVsIiwiX18iLCJ0b2FzdCIsIlRvYXN0ZXIiLCJyYWRpb0RhdGEiLCJpZCIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJ2YWx1ZSIsIlRoZW1lU3VwcG9ydCIsIl91c2VTdGF0ZSIsInVhZWxTZXR0aW5nc0RhdGEiLCJ0aGVtZV9vcHRpb24iLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZWxlY3RlZE9wdGlvbiIsInNldFNlbGVjdGVkT3B0aW9uIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJpc0luaXRpYWxMb2FkIiwic2V0SXNJbml0aWFsTG9hZCIsImhhbmRsZVJhZGlvQ2hhbmdlIiwiZXZlbnQiLCJuZXdWYWx1ZSIsInRhcmdldCIsInNhdmVPcHRpb24iLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJvcHRpb24iLCJyZXNwb25zZSIsInJlc3VsdCIsIndyYXAiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJmZXRjaCIsImFqYXhfdXJsIiwibWV0aG9kIiwiaGVhZGVycyIsImJvZHkiLCJVUkxTZWFyY2hQYXJhbXMiLCJhY3Rpb24iLCJoZmVfY29tcGF0aWJpbGl0eV9vcHRpb24iLCJub25jZSIsImFqYXhfbm9uY2UiLCJzZW50IiwianNvbiIsInN1Y2Nlc3MiLCJlcnJvciIsInQwIiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJpY29uIiwiaWNvblBvc2l0aW9uIiwic2l6ZSIsInRhZyIsImFsaWduIiwiY2xhc3NOYW1lIiwiY29udGFpbmVyVHlwZSIsImRpcmVjdGlvbiIsImdhcCIsImp1c3RpZnkiLCJzdHlsZSIsIm1hcmdpblRvcCIsIm1heFdpZHRoIiwiSXRlbSIsImNvbmNhdCIsInBsdWdpbl9zaG9ydF9uYW1lIiwiYWxpZ25TZWxmIiwib3JkZXIiLCJtYXAiLCJpdGVtIiwia2V5IiwidHlwZSIsIm5hbWUiLCJvbkNoYW5nZSIsImNoZWNrZWQiLCJ2YXJpYW50IiwiaHRtbEZvciIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwiYmFja2dyb3VuZENvbG9yIiwicG9zaXRpb24iLCJyZXZlcnNlT3JkZXIiLCJndXR0ZXIiLCJjb250YWluZXJTdHlsZSIsInRvcCIsInJpZ2h0IiwidG9hc3RPcHRpb25zIiwiZHVyYXRpb24iLCJiYWNrZ3JvdW5kIiwiY29sb3IiLCJpY29uVGhlbWUiLCJwcmltYXJ5Iiwic2Vjb25kYXJ5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/Components/Settings/ThemeSupport.jsx\n");
/***/ }),
/***/ "./src/Components/Settings/VersionControl.jsx":
/*!****************************************************!*\
!*** ./src/Components/Settings/VersionControl.jsx ***!
\****************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/api-fetch */ \"@wordpress/api-fetch\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\nvar VersionControl = function VersionControl() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n betaEnabled = _useState2[0],\n setBetaEnabled = _useState2[1];\n var licenseStatus = uaelSettingsData.license_status;\n var previousAddonVersions = uaelSettingsData.uael_versions;\n var previousLiteVersions = uaelSettingsData.uaelite_versions;\n var proVersionRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(previousAddonVersions[0].value);\n var liteVersionRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(previousLiteVersions ? previousLiteVersions[0].value : '');\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(previousAddonVersions[0].value),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState3, 2),\n previousVersionSelect = _useState4[0],\n setPreviousVersion = _useState4[1];\n var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(previousLiteVersions ? previousLiteVersions[0].value : ''),\n _useState6 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState5, 2),\n liteVersionSelect = _useState6[0],\n setLiteVersionSelect = _useState6[1];\n var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('uael'),\n _useState8 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState7, 2),\n productSelect = _useState8[0],\n setProductSelect = _useState8[1];\n var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('elementor-header-footer'),\n _useState10 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState9, 2),\n freeproductSelect = _useState10[0],\n setFreeproductSelect = _useState10[1];\n var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),\n _useState12 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState11, 2),\n openPopup = _useState12[0],\n setOpenPopup = _useState12[1];\n var _useState13 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),\n _useState14 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState13, 2),\n openLitePopup = _useState14[0],\n setOpenLitePopup = _useState14[1];\n\n // Set default value when the component mounts.\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n setBetaEnabled('enable' === uaelSettingsData.beta_enabled);\n }, [openPopup, openLitePopup]);\n var rollbackClickHandler = function rollbackClickHandler() {\n setPreviousVersion(proVersionRef.current.value);\n setProductSelect('uael');\n setOpenPopup(true);\n };\n var handleBetaSwitch = function handleBetaSwitch(event) {\n var allow_beta = event ? 'enable' : 'disable';\n\n // Update the state of the Switch\n setBetaEnabled(event);\n\n // AJAX call to save the new value\n var formData = new window.FormData();\n formData.append('allow_beta', allow_beta); // Append allow_beta\n formData.append('action', 'uael_allow_beta_updates'); // Append action\n formData.append('nonce', uaelSettingsData.ajax_nonce); // Append nonce\n\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_3___default()({\n url: uaelSettingsData.ajax_url,\n method: 'POST',\n body: formData\n }).then(function (data) {\n if (data.success) {\n // console.log(\"Beta status updated\");\n } else {\n setBetaEnabled(!event); // Revert to previous state\n }\n })[\"catch\"](function (error) {\n setBetaEnabled(!event); // Revert to previous state\n });\n };\n var onCancelClick = function onCancelClick() {\n setOpenPopup(false);\n };\n var onContinueClick = function onContinueClick() {\n var rollbackUrl = uaelSettingsData.uael_rollback_url.replace('VERSION', previousVersionSelect);\n setOpenPopup(false);\n window.location.href = rollbackUrl;\n };\n var onLiteCancelClick = function onLiteCancelClick() {\n setOpenLitePopup(false);\n };\n var onLiteContinueClick = function onLiteContinueClick() {\n var rollbackUrl = uaelSettingsData.uaelite_rollback_url.replace('VERSION', liteVersionSelect);\n setOpenLitePopup(false);\n window.location.href = rollbackUrl;\n };\n var handleVersionChange = function handleVersionChange(event) {\n setPreviousVersion(event.target.value);\n };\n var handleLiteVersionChange = function handleLiteVersionChange(event) {\n setLiteVersionSelect(event.target.value);\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement((react__WEBPACK_IMPORTED_MODULE_1___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Title, {\n description: \"\",\n icon: null,\n iconPosition: \"right\",\n size: \"sm\",\n tag: \"h2\",\n title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Version Control', 'uael')\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"box-border bg-background-primary p-6 rounded-lg\",\n style: {\n marginTop: \"24px\"\n }\n }, uaelSettingsData.is_lite_active && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement((react__WEBPACK_IMPORTED_MODULE_1___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container, {\n align: \"stretch\",\n className: \"flex flex-col lg:flex-row\",\n containerType: \"flex\",\n direction: \"column\",\n gap: \"sm\",\n justify: \"start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container.Item, {\n className: \"shrink flex flex-col space-y-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"p\", {\n className: \"text-base font-semibold m-0\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.sprintf)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Rollback %s Lite to Previous Version', 'uael'), uaelSettingsData.plugin_short_name)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"p\", {\n className: \"text-sm font-normal m-0\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Experiencing an issue with current version? Roll back to a previous version to help troubleshoot the issue.', 'uael'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container.Item, {\n className: \"p-2 flex space-y-4\",\n alignSelf: \"auto\",\n order: \"none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"bsf-rollback-version\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"input\", {\n type: \"hidden\",\n name: \"product-name\",\n id: \"bsf-product-name\",\n value: 'uael'\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"select\", {\n id: \"uaeliteVersionRollback\",\n ref: liteVersionRef,\n onBlur: function onBlur() {\n setFreeproductSelect('elementor-header-footer');\n },\n onChange: handleLiteVersionChange,\n style: {\n padding: '8px',\n marginRight: '10px',\n marginTop: '16px',\n cursor: 'pointer',\n borderRadius: '4px',\n height: '44px',\n width: '100px'\n }\n }, previousLiteVersions.map(function (version) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"option\", {\n key: version.value,\n value: version.value\n }, version.label);\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex flex-col cursor-pointer\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog, {\n design: \"simple\",\n exitOnEsc: true,\n scrollLock: true,\n open: openLitePopup // Ensure Dialog is controlled by state\n ,\n setOpen: setOpenLitePopup // Synchronize state\n ,\n trigger: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Button, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Rollback', 'uael'))\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Backdrop, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Panel, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Header, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex items-center justify-between\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Title, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Rollback to Previous Version', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.CloseButton, null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Body, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.sprintf)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Are you sure you want to rollback to %s Lite v%s?', 'uael'), uaelSettingsData.plugin_short_name, liteVersionSelect)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Footer, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: onLiteContinueClick\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Rollback', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: onLiteCancelClick\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Cancel', 'uael')))))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"border border-subtle\",\n style: {\n height: '2px',\n backgroundColor: '#E5E7EB',\n marginTop: '16px',\n marginBottom: '16px'\n }\n })), licenseStatus && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement((react__WEBPACK_IMPORTED_MODULE_1___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container, {\n align: \"stretch\",\n className: \"flex flex-col lg:flex-row\",\n containerType: \"flex\",\n direction: \"column\",\n gap: \"sm\",\n justify: \"start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container.Item, {\n className: \"shrink flex flex-col space-y-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"p\", {\n className: \"text-base font-semibold m-0\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.sprintf)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Rollback %s Pro to Previous Version', 'uael'), uaelSettingsData.plugin_short_name)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"p\", {\n className: \"text-sm font-normal m-0\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Experiencing an issue with current version? Roll back to a previous version to help troubleshoot the issue.', 'uael'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container.Item, {\n className: \"p-2 flex space-y-4\",\n alignSelf: \"auto\",\n order: \"none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"bsf-rollback-version\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"input\", {\n type: \"hidden\",\n name: \"product-name\",\n id: \"bsf-product-name\",\n value: 'uael'\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"select\", {\n id: \"uaelVersionRollback\",\n ref: proVersionRef,\n onBlur: function onBlur(e) {\n setProductSelect('uael');\n e.target.style.borderColor = '#e0e0e0';\n },\n onChange: handleVersionChange,\n style: {\n padding: '8px',\n marginRight: '10px',\n marginTop: '16px',\n cursor: 'pointer',\n borderRadius: '4px',\n height: '40px',\n width: '100px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none'\n // marginTop: '16px' // Removes the default box shadow\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n }, previousAddonVersions.map(function (version) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"option\", {\n key: version.value,\n value: version.value\n }, version.label);\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex flex-col cursor-pointer\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog, {\n design: \"simple\",\n exitOnEsc: true,\n scrollLock: true,\n open: openPopup // Ensure Dialog is controlled by state\n ,\n setOpen: setOpenPopup // Synchronize state\n ,\n trigger: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Button, {\n style: {\n backgroundColor: '#6005ff'\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Rollback', 'uael'))\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Backdrop, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Panel, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Header, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"flex items-center justify-between\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Title, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Rollback to Previous Version', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.CloseButton, null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Body, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)(\"Are you sure you want to rollback to \".concat(uaelSettingsData.plugin_name, \" v\").concat(previousVersionSelect, \"?\"), 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Dialog.Footer, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: onContinueClick,\n style: {\n backgroundColor: '#6005ff'\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Rollback', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Button, {\n onClick: onCancelClick\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Cancel', 'uael')))))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"border border-subtle\",\n style: {\n height: '2px',\n backgroundColor: '#E5E7EB',\n marginTop: '16px',\n marginBottom: '16px'\n }\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container, {\n align: \"stretch\",\n className: \"flex flex-col lg:flex-row\",\n containerType: \"flex\",\n direction: \"column\",\n gap: \"sm\",\n justify: \"start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container.Item, {\n className: \"shrink flex flex-col space-y-1\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"text-base font-semibold m-0 mb-2\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Enable Beta Version', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"text-sm font-normal m-0\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.sprintf)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Turn this on to get notified when a new beta version of %s is available. The beta version will not install automatically. You will need to install it manually. We recommend using it only in a test environment.', 'uael'), uaelSettingsData.plugin_name)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", {\n className: \"text-sm font-normal mt-2 pt-2\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('Please read ', 'uael'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"a\", {\n href: \"https://ultimateelementor.com/docs/enabling-automatic-beta-updates-for-uael/?utm_source=uael-pro-dashboard&utm_medium=uael-menu-page&utm_campaign=uael-pro-plugin\",\n className: \"uael-link-color no-underline uael-remove-ring\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)('this article', 'uael')), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__.__)(' to know more.', 'uael'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container.Item, {\n className: \"shrink-0 p-2 flex space-y-6\",\n alignSelf: \"auto\",\n order: \"none\",\n style: {\n marginTop: '40px'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Switch, {\n size: \"lg\",\n value: betaEnabled // Set switch state\n ,\n onChange: handleBetaSwitch // Handle switch change\n })))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (VersionControl);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9TZXR0aW5ncy9WZXJzaW9uQ29udHJvbC5qc3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBMkQ7QUFDYztBQUM3QjtBQUNHO0FBRS9DLElBQU1ZLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBQSxFQUFTO0VBQ3pCLElBQUFDLFNBQUEsR0FBc0NaLCtDQUFRLENBQUMsS0FBSyxDQUFDO0lBQUFhLFVBQUEsR0FBQUMsZ0ZBQUEsQ0FBQUYsU0FBQTtJQUE5Q0csV0FBVyxHQUFBRixVQUFBO0lBQUVHLGNBQWMsR0FBQUgsVUFBQTtFQUNsQyxJQUFNSSxhQUFhLEdBQUdDLGdCQUFnQixDQUFDQyxjQUFjO0VBQ3JELElBQU1DLHFCQUFxQixHQUFHRixnQkFBZ0IsQ0FBQ0csYUFBYTtFQUM1RCxJQUFNQyxvQkFBb0IsR0FBR0osZ0JBQWdCLENBQUNLLGdCQUFnQjtFQUU5RCxJQUFNQyxhQUFhLEdBQUd0Qiw2Q0FBTSxDQUFDa0IscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUNLLEtBQUssQ0FBQztFQUM1RCxJQUFNQyxjQUFjLEdBQUd4Qiw2Q0FBTSxDQUFDb0Isb0JBQW9CLEdBQUdBLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDRyxLQUFLLEdBQUcsRUFBRSxDQUFDO0VBRXhGLElBQUFFLFVBQUEsR0FBb0QzQiwrQ0FBUSxDQUFDb0IscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUNLLEtBQUssQ0FBQztJQUFBRyxVQUFBLEdBQUFkLGdGQUFBLENBQUFhLFVBQUE7SUFBckZFLHFCQUFxQixHQUFBRCxVQUFBO0lBQUVFLGtCQUFrQixHQUFBRixVQUFBO0VBQ2hELElBQUFHLFVBQUEsR0FBa0QvQiwrQ0FBUSxDQUFDc0Isb0JBQW9CLEdBQUdBLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDRyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQUFPLFVBQUEsR0FBQWxCLGdGQUFBLENBQUFpQixVQUFBO0lBQTlHRSxpQkFBaUIsR0FBQUQsVUFBQTtJQUFFRSxvQkFBb0IsR0FBQUYsVUFBQTtFQUM5QyxJQUFBRyxVQUFBLEdBQTBDbkMsK0NBQVEsQ0FBQyxNQUFNLENBQUM7SUFBQW9DLFVBQUEsR0FBQXRCLGdGQUFBLENBQUFxQixVQUFBO0lBQW5ERSxhQUFhLEdBQUFELFVBQUE7SUFBRUUsZ0JBQWdCLEdBQUFGLFVBQUE7RUFDdEMsSUFBQUcsVUFBQSxHQUFrRHZDLCtDQUFRLENBQUMseUJBQXlCLENBQUM7SUFBQXdDLFdBQUEsR0FBQTFCLGdGQUFBLENBQUF5QixVQUFBO0lBQTlFRSxpQkFBaUIsR0FBQUQsV0FBQTtJQUFFRSxvQkFBb0IsR0FBQUYsV0FBQTtFQUU5QyxJQUFBRyxXQUFBLEdBQWtDM0MsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQTRDLFdBQUEsR0FBQTlCLGdGQUFBLENBQUE2QixXQUFBO0lBQTFDRSxTQUFTLEdBQUFELFdBQUE7SUFBRUUsWUFBWSxHQUFBRixXQUFBO0VBQzlCLElBQUFHLFdBQUEsR0FBMEMvQywrQ0FBUSxDQUFDLEtBQUssQ0FBQztJQUFBZ0QsV0FBQSxHQUFBbEMsZ0ZBQUEsQ0FBQWlDLFdBQUE7SUFBbERFLGFBQWEsR0FBQUQsV0FBQTtJQUFFRSxnQkFBZ0IsR0FBQUYsV0FBQTs7RUFFdEM7RUFDQS9DLGdEQUFTLENBQUMsWUFBTTtJQUNaZSxjQUFjLENBQUMsUUFBUSxLQUFLRSxnQkFBZ0IsQ0FBQ2lDLFlBQVksQ0FBQztFQUM5RCxDQUFDLEVBQUUsQ0FBQ04sU0FBUyxFQUFFSSxhQUFhLENBQUMsQ0FBQztFQUU5QixJQUFNRyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFBLEVBQVM7SUFDL0J0QixrQkFBa0IsQ0FBQ04sYUFBYSxDQUFDNkIsT0FBTyxDQUFDNUIsS0FBSyxDQUFDO0lBQy9DYSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDeEJRLFlBQVksQ0FBQyxJQUFJLENBQUM7RUFDdEIsQ0FBQztFQUVELElBQU1RLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUlDLEtBQUssRUFBSztJQUNoQyxJQUFNQyxVQUFVLEdBQUdELEtBQUssR0FBRyxRQUFRLEdBQUcsU0FBUzs7SUFFL0M7SUFDQXZDLGNBQWMsQ0FBQ3VDLEtBQUssQ0FBQzs7SUFFckI7SUFDQSxJQUFNRSxRQUFRLEdBQUcsSUFBSUMsTUFBTSxDQUFDQyxRQUFRLENBQUMsQ0FBQztJQUN0Q0YsUUFBUSxDQUFDRyxNQUFNLENBQUMsWUFBWSxFQUFFSixVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzNDQyxRQUFRLENBQUNHLE1BQU0sQ0FBQyxRQUFRLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxDQUFDO0lBQ3RESCxRQUFRLENBQUNHLE1BQU0sQ0FBQyxPQUFPLEVBQUUxQyxnQkFBZ0IsQ0FBQzJDLFVBQVUsQ0FBQyxDQUFDLENBQUM7O0lBRXZEckQsMkRBQVEsQ0FBQztNQUNMc0QsR0FBRyxFQUFFNUMsZ0JBQWdCLENBQUM2QyxRQUFRO01BQzlCQyxNQUFNLEVBQUUsTUFBTTtNQUNkQyxJQUFJLEVBQUVSO0lBQ1YsQ0FBQyxDQUFDLENBQUNTLElBQUksQ0FBQyxVQUFDQyxJQUFJLEVBQUs7TUFDZCxJQUFJQSxJQUFJLENBQUNDLE9BQU8sRUFBRTtRQUNkO01BQUEsQ0FDSCxNQUFNO1FBQ0hwRCxjQUFjLENBQUMsQ0FBQ3VDLEtBQUssQ0FBQyxDQUFDLENBQUM7TUFDNUI7SUFDSixDQUFDLENBQUMsU0FBTSxDQUFDLFVBQUNjLEtBQUssRUFBSztNQUNoQnJELGNBQWMsQ0FBQyxDQUFDdUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUM7RUFDTixDQUFDO0VBRUQsSUFBTWUsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFBLEVBQVM7SUFDeEJ4QixZQUFZLENBQUMsS0FBSyxDQUFDO0VBQ3ZCLENBQUM7RUFFRCxJQUFNeUIsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFBLEVBQVM7SUFDMUIsSUFBTUMsV0FBVyxHQUFHdEQsZ0JBQWdCLENBQUN1RCxpQkFBaUIsQ0FBQ0MsT0FBTyxDQUMxRCxTQUFTLEVBQ1Q3QyxxQkFDSixDQUFDO0lBQ0RpQixZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ25CWSxNQUFNLENBQUNpQixRQUFRLENBQUNDLElBQUksR0FBR0osV0FBVztFQUN0QyxDQUFDO0VBRUQsSUFBTUssaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBQSxFQUFTO0lBQzVCM0IsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0VBQzNCLENBQUM7RUFFRCxJQUFNNEIsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBQSxFQUFTO0lBQzlCLElBQU1OLFdBQVcsR0FBR3RELGdCQUFnQixDQUFDNkQsb0JBQW9CLENBQUNMLE9BQU8sQ0FDN0QsU0FBUyxFQUNUekMsaUJBQ0osQ0FBQztJQUNEaUIsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0lBQ3ZCUSxNQUFNLENBQUNpQixRQUFRLENBQUNDLElBQUksR0FBR0osV0FBVztFQUN0QyxDQUFDO0VBRUQsSUFBTVEsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSXpCLEtBQUssRUFBSztJQUNuQ3pCLGtCQUFrQixDQUFDeUIsS0FBSyxDQUFDMEIsTUFBTSxDQUFDeEQsS0FBSyxDQUFDO0VBQzFDLENBQUM7RUFFRCxJQUFNeUQsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUF1QkEsQ0FBSTNCLEtBQUssRUFBSztJQUN2Q3JCLG9CQUFvQixDQUFDcUIsS0FBSyxDQUFDMEIsTUFBTSxDQUFDeEQsS0FBSyxDQUFDO0VBQzVDLENBQUM7RUFFRCxvQkFDSTFCLDBEQUFBLENBQUFBLHVEQUFBLHFCQUNJQSwwREFBQSxDQUFDSyxnREFBSztJQUNGaUYsV0FBVyxFQUFDLEVBQUU7SUFDZEMsSUFBSSxFQUFFLElBQUs7SUFDWEMsWUFBWSxFQUFDLE9BQU87SUFDcEJDLElBQUksRUFBQyxJQUFJO0lBQ1RDLEdBQUcsRUFBQyxJQUFJO0lBQ1JDLEtBQUssRUFBRWpGLG1EQUFFLENBQUMsaUJBQWlCLEVBQUUsTUFBTTtFQUFFLENBQ3hDLENBQUMsZUFDRlYsMERBQUE7SUFDSTRGLFNBQVMsRUFBQyxpREFBaUQ7SUFDM0RDLEtBQUssRUFBRTtNQUNIQyxTQUFTLEVBQUU7SUFDZjtFQUFFLEdBRUQzRSxnQkFBZ0IsQ0FBQzRFLGNBQWMsaUJBQzVCL0YsMERBQUEsQ0FBQUEsdURBQUEscUJBQ0lBLDBEQUFBLENBQUNJLG9EQUFTO0lBQ040RixLQUFLLEVBQUMsU0FBUztJQUNmSixTQUFTLEVBQUMsMkJBQTJCO0lBQ3JDSyxhQUFhLEVBQUMsTUFBTTtJQUNwQkMsU0FBUyxFQUFDLFFBQVE7SUFDbEJDLEdBQUcsRUFBQyxJQUFJO0lBQ1JDLE9BQU8sRUFBQztFQUFPLGdCQUVmcEcsMERBQUEsQ0FBQ0ksb0RBQVMsQ0FBQ2lHLElBQUk7SUFBQ1QsU0FBUyxFQUFDO0VBQWdDLGdCQUN0RDVGLDBEQUFBO0lBQUc0RixTQUFTLEVBQUM7RUFBNkIsR0FDckNqRix3REFBTyxDQUNKRCxtREFBRSxDQUFDLHNDQUFzQyxFQUFFLE1BQU0sQ0FBQyxFQUNsRFMsZ0JBQWdCLENBQUNtRixpQkFDckIsQ0FDRCxDQUFDLGVBQ0p0RywwREFBQTtJQUFHNEYsU0FBUyxFQUFDO0VBQXlCLEdBQ2pDbEYsbURBQUUsQ0FBQyw2R0FBNkcsRUFBRSxNQUFNLENBQzFILENBQ1MsQ0FBQyxlQUNqQlYsMERBQUEsQ0FBQ0ksb0RBQVMsQ0FBQ2lHLElBQUk7SUFDWFQsU0FBUyxFQUFDLG9CQUFvQjtJQUM5QlcsU0FBUyxFQUFDLE1BQU07SUFDaEJDLEtBQUssRUFBQztFQUFNLGdCQUVaeEcsMERBQUE7SUFBSzRGLFNBQVMsRUFBQztFQUFzQixnQkFDakM1RiwwREFBQTtJQUFPeUcsSUFBSSxFQUFDLFFBQVE7SUFBQ0MsSUFBSSxFQUFDLGNBQWM7SUFBQ0MsRUFBRSxFQUFDLGtCQUFrQjtJQUFDakYsS0FBSyxFQUFFO0VBQU8sQ0FBRSxDQUFDLGVBQ2hGMUIsMERBQUE7SUFDSTJHLEVBQUUsRUFBQyx3QkFBd0I7SUFDM0JDLEdBQUcsRUFBRWpGLGNBQWU7SUFDcEJrRixNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBQSxFQUFRO01BQ1ZsRSxvQkFBb0IsQ0FBQyx5QkFBeUIsQ0FBQztJQUNuRCxDQUFFO0lBQ0ZtRSxRQUFRLEVBQUUzQix1QkFBd0I7SUFDbENVLEtBQUssRUFBRTtNQUNIa0IsT0FBTyxFQUFFLEtBQUs7TUFDZEMsV0FBVyxFQUFFLE1BQU07TUFDbkJsQixTQUFTLEVBQUUsTUFBTTtNQUNqQm1CLE1BQU0sRUFBRSxTQUFTO01BQ2pCQyxZQUFZLEVBQUUsS0FBSztNQUNuQkMsTUFBTSxFQUFFLE1BQU07TUFDZEMsS0FBSyxFQUFFO0lBQ1g7RUFBRSxHQUVEN0Ysb0JBQW9CLENBQUM4RixHQUFHLENBQUMsVUFBQ0MsT0FBTztJQUFBLG9CQUM5QnRILDBEQUFBO01BQVF1SCxHQUFHLEVBQUVELE9BQU8sQ0FBQzVGLEtBQU07TUFBQ0EsS0FBSyxFQUFFNEYsT0FBTyxDQUFDNUY7SUFBTSxHQUM1QzRGLE9BQU8sQ0FBQ0UsS0FDTCxDQUFDO0VBQUEsQ0FDWixDQUNHLENBQ1AsQ0FBQyxlQUVOeEgsMERBQUE7SUFBSzRGLFNBQVMsRUFBQztFQUE4QixnQkFDekM1RiwwREFBQSxDQUFDUSxpREFBTTtJQUNIaUgsTUFBTSxFQUFDLFFBQVE7SUFDZkMsU0FBUztJQUNUQyxVQUFVO0lBQ1ZDLElBQUksRUFBRTFFLGFBQWMsQ0FBQztJQUFBO0lBQ3JCMkUsT0FBTyxFQUFFMUUsZ0JBQWlCLENBQUM7SUFBQTtJQUMzQjJFLE9BQU8sZUFBRTlILDBEQUFBLENBQUNPLGlEQUFNLFFBQUVHLG1EQUFFLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBVTtFQUFFLGdCQUVuRFYsMERBQUEsQ0FBQ1EsaURBQU0sQ0FBQ3VILFFBQVEsTUFBRSxDQUFDLGVBQ25CL0gsMERBQUEsQ0FBQ1EsaURBQU0sQ0FBQ3dILEtBQUsscUJBQ1RoSSwwREFBQSxDQUFDUSxpREFBTSxDQUFDeUgsTUFBTSxxQkFDVmpJLDBEQUFBO0lBQUs0RixTQUFTLEVBQUM7RUFBbUMsZ0JBQzlDNUYsMERBQUEsQ0FBQ1EsaURBQU0sQ0FBQ0gsS0FBSyxRQUNSSyxtREFBRSxDQUFDLDhCQUE4QixFQUFFLE1BQU0sQ0FDaEMsQ0FBQyxlQUNmViwwREFBQSxDQUFDUSxpREFBTSxDQUFDMEgsV0FBVyxNQUFFLENBQ3BCLENBQ00sQ0FBQyxlQUNoQmxJLDBEQUFBLENBQUNRLGlEQUFNLENBQUMySCxJQUFJLFFBQ1B4SCx3REFBTyxDQUNKRCxtREFBRSxDQUFDLG1EQUFtRCxFQUFFLE1BQU0sQ0FBQyxFQUMvRFMsZ0JBQWdCLENBQUNtRixpQkFBaUIsRUFDbENwRSxpQkFDSixDQUNTLENBQUMsZUFDZGxDLDBEQUFBLENBQUNRLGlEQUFNLENBQUM0SCxNQUFNLHFCQUNWcEksMERBQUEsQ0FBQ08saURBQU07SUFBQzhILE9BQU8sRUFBRXREO0VBQW9CLEdBQ2hDckUsbURBQUUsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUNsQixDQUFDLGVBQ1RWLDBEQUFBLENBQUNPLGlEQUFNO0lBQUM4SCxPQUFPLEVBQUV2RDtFQUFrQixHQUM5QnBFLG1EQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FDaEIsQ0FDRyxDQUNMLENBQ1YsQ0FDUCxDQUNPLENBQ1QsQ0FBQyxlQUNaViwwREFBQTtJQUNJNEYsU0FBUyxFQUFDLHNCQUFzQjtJQUNoQ0MsS0FBSyxFQUFFO01BQ0hzQixNQUFNLEVBQUUsS0FBSztNQUNibUIsZUFBZSxFQUFFLFNBQVM7TUFDMUJ4QyxTQUFTLEVBQUUsTUFBTTtNQUNqQnlDLFlBQVksRUFBRTtJQUNsQjtFQUFFLENBQ0wsQ0FDSCxDQUNMLEVBQ0FySCxhQUFhLGlCQUNWbEIsMERBQUEsQ0FBQUEsdURBQUEscUJBQ0lBLDBEQUFBLENBQUNJLG9EQUFTO0lBQ040RixLQUFLLEVBQUMsU0FBUztJQUNmSixTQUFTLEVBQUMsMkJBQTJCO0lBQ3JDSyxhQUFhLEVBQUMsTUFBTTtJQUNwQkMsU0FBUyxFQUFDLFFBQVE7SUFDbEJDLEdBQUcsRUFBQyxJQUFJO0lBQ1JDLE9BQU8sRUFBQztFQUFPLGdCQUVmcEcsMERBQUEsQ0FBQ0ksb0RBQVMsQ0FBQ2lHLElBQUk7SUFBQ1QsU0FBUyxFQUFDO0VBQWdDLGdCQUN0RDVGLDBEQUFBO0lBQUc0RixTQUFTLEVBQUM7RUFBNkIsR0FDckNqRix3REFBTyxDQUNKRCxtREFBRSxDQUFDLHFDQUFxQyxFQUFFLE1BQU0sQ0FBQyxFQUNqRFMsZ0JBQWdCLENBQUNtRixpQkFDckIsQ0FDRCxDQUFDLGVBQ0p0RywwREFBQTtJQUFHNEYsU0FBUyxFQUFDO0VBQXlCLEdBQ2pDbEYsbURBQUUsQ0FBQyw2R0FBNkcsRUFBRSxNQUFNLENBQzFILENBQ1MsQ0FBQyxlQUNqQlYsMERBQUEsQ0FBQ0ksb0RBQVMsQ0FBQ2lHLElBQUk7SUFDWFQsU0FBUyxFQUFDLG9CQUFvQjtJQUM5QlcsU0FBUyxFQUFDLE1BQU07SUFDaEJDLEtBQUssRUFBQztFQUFNLGdCQUVaeEcsMERBQUE7SUFBSzRGLFNBQVMsRUFBQztFQUFzQixnQkFDakM1RiwwREFBQTtJQUFPeUcsSUFBSSxFQUFDLFFBQVE7SUFBQ0MsSUFBSSxFQUFDLGNBQWM7SUFBQ0MsRUFBRSxFQUFDLGtCQUFrQjtJQUFDakYsS0FBSyxFQUFFO0VBQU8sQ0FBRSxDQUFDLGVBQ2hGMUIsMERBQUE7SUFDSTJHLEVBQUUsRUFBQyxxQkFBcUI7SUFDeEJDLEdBQUcsRUFBRW5GLGFBQWM7SUFDbkJvRixNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBRzJCLENBQUMsRUFBSztNQUNYakcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO01BQ3hCaUcsQ0FBQyxDQUFDdEQsTUFBTSxDQUFDVyxLQUFLLENBQUM0QyxXQUFXLEdBQUcsU0FBUztJQUMxQyxDQUFFO0lBQ0YzQixRQUFRLEVBQUU3QixtQkFBb0I7SUFDOUJZLEtBQUssRUFBRTtNQUNIa0IsT0FBTyxFQUFFLEtBQUs7TUFDZEMsV0FBVyxFQUFFLE1BQU07TUFDbkJsQixTQUFTLEVBQUUsTUFBTTtNQUNqQm1CLE1BQU0sRUFBRSxTQUFTO01BQ2pCQyxZQUFZLEVBQUUsS0FBSztNQUNuQkMsTUFBTSxFQUFFLE1BQU07TUFDZEMsS0FBSyxFQUFFLE9BQU87TUFDZHFCLFdBQVcsRUFBRSxTQUFTO01BQUU7TUFDeEJDLE9BQU8sRUFBRSxNQUFNO01BQVE7TUFDdkJDLFNBQVMsRUFBRTtNQUNYO0lBQ0osQ0FBRTtJQUNGQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBR0osQ0FBQztNQUFBLE9BQUtBLENBQUMsQ0FBQ3RELE1BQU0sQ0FBQ1csS0FBSyxDQUFDNEMsV0FBVyxHQUFHLFNBQVM7SUFBQSxDQUFDLENBQUM7RUFBQSxHQUV2RHBILHFCQUFxQixDQUFDZ0csR0FBRyxDQUFDLFVBQUNDLE9BQU87SUFBQSxvQkFDL0J0SCwwREFBQTtNQUFRdUgsR0FBRyxFQUFFRCxPQUFPLENBQUM1RixLQUFNO01BQUNBLEtBQUssRUFBRTRGLE9BQU8sQ0FBQzVGO0lBQU0sR0FDNUM0RixPQUFPLENBQUNFLEtBQ0wsQ0FBQztFQUFBLENBQ1osQ0FDRyxDQUNQLENBQUMsZUFFTnhILDBEQUFBO0lBQUs0RixTQUFTLEVBQUM7RUFBOEIsZ0JBQ3pDNUYsMERBQUEsQ0FBQ1EsaURBQU07SUFDSGlILE1BQU0sRUFBQyxRQUFRO0lBQ2ZDLFNBQVM7SUFDVEMsVUFBVTtJQUNWQyxJQUFJLEVBQUU5RSxTQUFVLENBQUM7SUFBQTtJQUNqQitFLE9BQU8sRUFBRTlFLFlBQWEsQ0FBQztJQUFBO0lBQ3ZCK0UsT0FBTyxlQUFFOUgsMERBQUEsQ0FBQ08saURBQU07TUFBQ3NGLEtBQUssRUFBRTtRQUFFeUMsZUFBZSxFQUFFO01BQVU7SUFBRSxHQUFFNUgsbURBQUUsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFVO0VBQUUsZ0JBRTFGViwwREFBQSxDQUFDUSxpREFBTSxDQUFDdUgsUUFBUSxNQUFFLENBQUMsZUFDbkIvSCwwREFBQSxDQUFDUSxpREFBTSxDQUFDd0gsS0FBSyxxQkFDVGhJLDBEQUFBLENBQUNRLGlEQUFNLENBQUN5SCxNQUFNLHFCQUNWakksMERBQUE7SUFBSzRGLFNBQVMsRUFBQztFQUFtQyxnQkFDOUM1RiwwREFBQSxDQUFDUSxpREFBTSxDQUFDSCxLQUFLLFFBQ1JLLG1EQUFFLENBQUMsOEJBQThCLEVBQUUsTUFBTSxDQUNoQyxDQUFDLGVBQ2ZWLDBEQUFBLENBQUNRLGlEQUFNLENBQUMwSCxXQUFXLE1BQUUsQ0FDcEIsQ0FDTSxDQUFDLGVBQ2hCbEksMERBQUEsQ0FBQ1EsaURBQU0sQ0FBQzJILElBQUksUUFDUHpILG1EQUFFLHlDQUFBbUksTUFBQSxDQUF5QzFILGdCQUFnQixDQUFDMkgsV0FBVyxRQUFBRCxNQUFBLENBQUsvRyxxQkFBcUIsUUFBSyxNQUFNLENBQ3BHLENBQUMsZUFDZDlCLDBEQUFBLENBQUNRLGlEQUFNLENBQUM0SCxNQUFNLHFCQUNWcEksMERBQUEsQ0FBQ08saURBQU07SUFBQzhILE9BQU8sRUFBRTdELGVBQWdCO0lBQUNxQixLQUFLLEVBQUU7TUFBRXlDLGVBQWUsRUFBRTtJQUFVO0VBQUUsR0FDbkU1SCxtREFBRSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQ2xCLENBQUMsZUFDVFYsMERBQUEsQ0FBQ08saURBQU07SUFBQzhILE9BQU8sRUFBRTlEO0VBQWMsR0FDMUI3RCxtREFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQ2hCLENBQ0csQ0FDTCxDQUNWLENBQ1AsQ0FDTyxDQUNULENBQUMsZUFDWlYsMERBQUE7SUFDSTRGLFNBQVMsRUFBQyxzQkFBc0I7SUFDaENDLEtBQUssRUFBRTtNQUNIc0IsTUFBTSxFQUFFLEtBQUs7TUFDYm1CLGVBQWUsRUFBRSxTQUFTO01BQzFCeEMsU0FBUyxFQUFFLE1BQU07TUFDakJ5QyxZQUFZLEVBQUU7SUFDbEI7RUFBRSxDQUNMLENBQ0gsQ0FDTCxlQUNEdkksMERBQUEsQ0FBQ0ksb0RBQVM7SUFDTjRGLEtBQUssRUFBQyxTQUFTO0lBQ2ZKLFNBQVMsRUFBQywyQkFBMkI7SUFDckNLLGFBQWEsRUFBQyxNQUFNO0lBQ3BCQyxTQUFTLEVBQUMsUUFBUTtJQUNsQkMsR0FBRyxFQUFDLElBQUk7SUFDUkMsT0FBTyxFQUFDO0VBQU8sZ0JBRWZwRywwREFBQSxDQUFDSSxvREFBUyxDQUFDaUcsSUFBSTtJQUFDVCxTQUFTLEVBQUM7RUFBZ0MsZ0JBQ3RENUYsMERBQUE7SUFBSzRGLFNBQVMsRUFBQztFQUFrQyxHQUM1Q2xGLG1EQUFFLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUNoQyxDQUFDLGVBQ05WLDBEQUFBO0lBQUs0RixTQUFTLEVBQUM7RUFBeUIsR0FDbkNqRix3REFBTyxDQUNKRCxtREFBRSxDQUNFLG1OQUFtTixFQUNuTixNQUNKLENBQUMsRUFDRFMsZ0JBQWdCLENBQUMySCxXQUNyQixDQUNDLENBQUMsZUFDTjlJLDBEQUFBO0lBQUs0RixTQUFTLEVBQUM7RUFBK0IsR0FDekNsRixtREFBRSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsZUFDM0JWLDBEQUFBO0lBQ0k2RSxJQUFJLEVBQUMsbUtBQW1LO0lBQ3hLZSxTQUFTLEVBQUMsK0NBQStDO0lBQ3pEVixNQUFNLEVBQUMsUUFBUTtJQUNmNkQsR0FBRyxFQUFDO0VBQXFCLEdBRXhCckksbURBQUUsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUMzQixDQUFDLEVBQ0hBLG1EQUFFLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUMzQixDQUNPLENBQUMsZUFDakJWLDBEQUFBLENBQUNJLG9EQUFTLENBQUNpRyxJQUFJO0lBQ1hULFNBQVMsRUFBQyw2QkFBNkI7SUFDdkNXLFNBQVMsRUFBQyxNQUFNO0lBQ2hCQyxLQUFLLEVBQUMsTUFBTTtJQUNaWCxLQUFLLEVBQUU7TUFBRUMsU0FBUyxFQUFFO0lBQU87RUFBRSxnQkFFN0I5RiwwREFBQSxDQUFDTSxpREFBTTtJQUNIbUYsSUFBSSxFQUFDLElBQUk7SUFDVC9ELEtBQUssRUFBRVYsV0FBWSxDQUFDO0lBQUE7SUFDcEI4RixRQUFRLEVBQUV2RCxnQkFBaUIsQ0FBQztFQUFBLENBQy9CLENBQ1csQ0FDVCxDQUNWLENBQ1AsQ0FBQztBQUVYLENBQUM7QUFFRCwrREFBZTNDLGNBQWMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vc3JjL0NvbXBvbmVudHMvU2V0dGluZ3MvVmVyc2lvbkNvbnRyb2wuanN4PzljNzgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENvbnRhaW5lciwgVGl0bGUsIFN3aXRjaCwgQnV0dG9uLCBEaWFsb2cgfSBmcm9tIFwiQGJzZi9mb3JjZS11aVwiO1xuaW1wb3J0IGFwaUZldGNoIGZyb20gJ0B3b3JkcHJlc3MvYXBpLWZldGNoJztcbmltcG9ydCB7IF9fICwgc3ByaW50ZiB9IGZyb20gJ0B3b3JkcHJlc3MvaTE4bic7XG5cbmNvbnN0IFZlcnNpb25Db250cm9sID0gKCkgPT4ge1xuICAgIGNvbnN0IFtiZXRhRW5hYmxlZCwgc2V0QmV0YUVuYWJsZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGxpY2Vuc2VTdGF0dXMgPSB1YWVsU2V0dGluZ3NEYXRhLmxpY2Vuc2Vfc3RhdHVzO1xuICAgIGNvbnN0IHByZXZpb3VzQWRkb25WZXJzaW9ucyA9IHVhZWxTZXR0aW5nc0RhdGEudWFlbF92ZXJzaW9ucztcbiAgICBjb25zdCBwcmV2aW91c0xpdGVWZXJzaW9ucyA9IHVhZWxTZXR0aW5nc0RhdGEudWFlbGl0ZV92ZXJzaW9ucztcblxuICAgIGNvbnN0IHByb1ZlcnNpb25SZWYgPSB1c2VSZWYocHJldmlvdXNBZGRvblZlcnNpb25zWzBdLnZhbHVlKTtcbiAgICBjb25zdCBsaXRlVmVyc2lvblJlZiA9IHVzZVJlZihwcmV2aW91c0xpdGVWZXJzaW9ucyA/IHByZXZpb3VzTGl0ZVZlcnNpb25zWzBdLnZhbHVlIDogJycpO1xuXG4gICAgY29uc3QgW3ByZXZpb3VzVmVyc2lvblNlbGVjdCwgc2V0UHJldmlvdXNWZXJzaW9uXSA9IHVzZVN0YXRlKHByZXZpb3VzQWRkb25WZXJzaW9uc1swXS52YWx1ZSk7XG4gICAgY29uc3QgW2xpdGVWZXJzaW9uU2VsZWN0LCBzZXRMaXRlVmVyc2lvblNlbGVjdF0gPSB1c2VTdGF0ZShwcmV2aW91c0xpdGVWZXJzaW9ucyA/IHByZXZpb3VzTGl0ZVZlcnNpb25zWzBdLnZhbHVlIDogJycpO1xuICAgIGNvbnN0IFtwcm9kdWN0U2VsZWN0LCBzZXRQcm9kdWN0U2VsZWN0XSA9IHVzZVN0YXRlKCd1YWVsJyk7XG4gICAgY29uc3QgW2ZyZWVwcm9kdWN0U2VsZWN0LCBzZXRGcmVlcHJvZHVjdFNlbGVjdF0gPSB1c2VTdGF0ZSgnZWxlbWVudG9yLWhlYWRlci1mb290ZXInKTtcblxuICAgIGNvbnN0IFtvcGVuUG9wdXAsIHNldE9wZW5Qb3B1cF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW29wZW5MaXRlUG9wdXAsIHNldE9wZW5MaXRlUG9wdXBdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgLy8gU2V0IGRlZmF1bHQgdmFsdWUgd2hlbiB0aGUgY29tcG9uZW50IG1vdW50cy5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBzZXRCZXRhRW5hYmxlZCgnZW5hYmxlJyA9PT0gdWFlbFNldHRpbmdzRGF0YS5iZXRhX2VuYWJsZWQpO1xuICAgIH0sIFtvcGVuUG9wdXAsIG9wZW5MaXRlUG9wdXBdKTtcblxuICAgIGNvbnN0IHJvbGxiYWNrQ2xpY2tIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICBzZXRQcmV2aW91c1ZlcnNpb24ocHJvVmVyc2lvblJlZi5jdXJyZW50LnZhbHVlKTtcbiAgICAgICAgc2V0UHJvZHVjdFNlbGVjdCgndWFlbCcpO1xuICAgICAgICBzZXRPcGVuUG9wdXAodHJ1ZSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJldGFTd2l0Y2ggPSAoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgYWxsb3dfYmV0YSA9IGV2ZW50ID8gJ2VuYWJsZScgOiAnZGlzYWJsZSc7XG5cbiAgICAgICAgLy8gVXBkYXRlIHRoZSBzdGF0ZSBvZiB0aGUgU3dpdGNoXG4gICAgICAgIHNldEJldGFFbmFibGVkKGV2ZW50KTtcblxuICAgICAgICAvLyBBSkFYIGNhbGwgdG8gc2F2ZSB0aGUgbmV3IHZhbHVlXG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IHdpbmRvdy5Gb3JtRGF0YSgpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2FsbG93X2JldGEnLCBhbGxvd19iZXRhKTsgLy8gQXBwZW5kIGFsbG93X2JldGFcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdhY3Rpb24nLCAndWFlbF9hbGxvd19iZXRhX3VwZGF0ZXMnKTsgLy8gQXBwZW5kIGFjdGlvblxuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ25vbmNlJywgdWFlbFNldHRpbmdzRGF0YS5hamF4X25vbmNlKTsgLy8gQXBwZW5kIG5vbmNlXG5cbiAgICAgICAgYXBpRmV0Y2goe1xuICAgICAgICAgICAgdXJsOiB1YWVsU2V0dGluZ3NEYXRhLmFqYXhfdXJsLFxuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBib2R5OiBmb3JtRGF0YSxcbiAgICAgICAgfSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgaWYgKGRhdGEuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiQmV0YSBzdGF0dXMgdXBkYXRlZFwiKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0QmV0YUVuYWJsZWQoIWV2ZW50KTsgLy8gUmV2ZXJ0IHRvIHByZXZpb3VzIHN0YXRlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgc2V0QmV0YUVuYWJsZWQoIWV2ZW50KTsgLy8gUmV2ZXJ0IHRvIHByZXZpb3VzIHN0YXRlXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBvbkNhbmNlbENsaWNrID0gKCkgPT4ge1xuICAgICAgICBzZXRPcGVuUG9wdXAoZmFsc2UpO1xuICAgIH07XG5cbiAgICBjb25zdCBvbkNvbnRpbnVlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJvbGxiYWNrVXJsID0gdWFlbFNldHRpbmdzRGF0YS51YWVsX3JvbGxiYWNrX3VybC5yZXBsYWNlKFxuICAgICAgICAgICAgJ1ZFUlNJT04nLFxuICAgICAgICAgICAgcHJldmlvdXNWZXJzaW9uU2VsZWN0XG4gICAgICAgICk7XG4gICAgICAgIHNldE9wZW5Qb3B1cChmYWxzZSk7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcm9sbGJhY2tVcmw7XG4gICAgfTtcblxuICAgIGNvbnN0IG9uTGl0ZUNhbmNlbENsaWNrID0gKCkgPT4ge1xuICAgICAgICBzZXRPcGVuTGl0ZVBvcHVwKGZhbHNlKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgb25MaXRlQ29udGludWVDbGljayA9ICgpID0+IHtcbiAgICAgICAgY29uc3Qgcm9sbGJhY2tVcmwgPSB1YWVsU2V0dGluZ3NEYXRhLnVhZWxpdGVfcm9sbGJhY2tfdXJsLnJlcGxhY2UoXG4gICAgICAgICAgICAnVkVSU0lPTicsXG4gICAgICAgICAgICBsaXRlVmVyc2lvblNlbGVjdFxuICAgICAgICApO1xuICAgICAgICBzZXRPcGVuTGl0ZVBvcHVwKGZhbHNlKTtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSByb2xsYmFja1VybDtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlVmVyc2lvbkNoYW5nZSA9IChldmVudCkgPT4ge1xuICAgICAgICBzZXRQcmV2aW91c1ZlcnNpb24oZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVMaXRlVmVyc2lvbkNoYW5nZSA9IChldmVudCkgPT4ge1xuICAgICAgICBzZXRMaXRlVmVyc2lvblNlbGVjdChldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8VGl0bGVcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj1cIlwiXG4gICAgICAgICAgICAgICAgaWNvbj17bnVsbH1cbiAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICB0YWc9XCJoMlwiXG4gICAgICAgICAgICAgICAgdGl0bGU9e19fKCdWZXJzaW9uIENvbnRyb2wnLCAndWFlbCcpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJib3gtYm9yZGVyIGJnLWJhY2tncm91bmQtcHJpbWFyeSBwLTYgcm91bmRlZC1sZ1wiXG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiBcIjI0cHhcIixcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt1YWVsU2V0dGluZ3NEYXRhLmlzX2xpdGVfYWN0aXZlICYmIChcbiAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbj1cInN0cmV0Y2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgbGc6ZmxleC1yb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclR5cGU9XCJmbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhcD1cInNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5PVwic3RhcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbSBjbGFzc05hbWU9XCJzaHJpbmsgZmxleCBmbGV4LWNvbCBzcGFjZS15LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1iYXNlIGZvbnQtc2VtaWJvbGQgbS0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3ByaW50ZihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfXygnUm9sbGJhY2sgJXMgTGl0ZSB0byBQcmV2aW91cyBWZXJzaW9uJywgJ3VhZWwnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1YWVsU2V0dGluZ3NEYXRhLnBsdWdpbl9zaG9ydF9uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1ub3JtYWwgbS0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ0V4cGVyaWVuY2luZyBhbiBpc3N1ZSB3aXRoIGN1cnJlbnQgdmVyc2lvbj8gUm9sbCBiYWNrIHRvIGEgcHJldmlvdXMgdmVyc2lvbiB0byBoZWxwIHRyb3VibGVzaG9vdCB0aGUgaXNzdWUuJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInAtMiBmbGV4IHNwYWNlLXktNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduU2VsZj1cImF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJic2Ytcm9sbGJhY2stdmVyc2lvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwicHJvZHVjdC1uYW1lXCIgaWQ9XCJic2YtcHJvZHVjdC1uYW1lXCIgdmFsdWU9eyd1YWVsJ30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInVhZWxpdGVWZXJzaW9uUm9sbGJhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17bGl0ZVZlcnNpb25SZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEZyZWVwcm9kdWN0U2VsZWN0KCdlbGVtZW50b3ItaGVhZGVyLWZvb3RlcicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUxpdGVWZXJzaW9uQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICc4cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzEwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6ICcxNnB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzQ0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcmV2aW91c0xpdGVWZXJzaW9ucy5tYXAoKHZlcnNpb24pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBrZXk9e3ZlcnNpb24udmFsdWV9IHZhbHVlPXt2ZXJzaW9uLnZhbHVlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt2ZXJzaW9uLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEaWFsb2dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNpZ249XCJzaW1wbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXRPbkVzY1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbExvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuPXtvcGVuTGl0ZVBvcHVwfSAvLyBFbnN1cmUgRGlhbG9nIGlzIGNvbnRyb2xsZWQgYnkgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRPcGVuPXtzZXRPcGVuTGl0ZVBvcHVwfSAvLyBTeW5jaHJvbml6ZSBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXI9ezxCdXR0b24+e19fKCdSb2xsYmFjaycsICd1YWVsJyl9PC9CdXR0b24+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEaWFsb2cuQmFja2Ryb3AgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGlhbG9nLlBhbmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGlhbG9nLkhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERpYWxvZy5UaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge19fKCdSb2xsYmFjayB0byBQcmV2aW91cyBWZXJzaW9uJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0RpYWxvZy5UaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGlhbG9nLkNsb3NlQnV0dG9uIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EaWFsb2cuSGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGlhbG9nLkJvZHk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3ByaW50ZihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfXygnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJvbGxiYWNrIHRvICVzIExpdGUgdiVzPycsICd1YWVsJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWFlbFNldHRpbmdzRGF0YS5wbHVnaW5fc2hvcnRfbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXRlVmVyc2lvblNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EaWFsb2cuQm9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERpYWxvZy5Gb290ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e29uTGl0ZUNvbnRpbnVlQ2xpY2t9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfXygnUm9sbGJhY2snLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e29uTGl0ZUNhbmNlbENsaWNrfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ0NhbmNlbCcsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EaWFsb2cuRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRGlhbG9nLlBhbmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EaWFsb2c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJib3JkZXIgYm9yZGVyLXN1YnRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMnB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0U1RTdFQicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJzE2cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5Cb3R0b206ICcxNnB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7bGljZW5zZVN0YXR1cyAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ249XCJzdHJldGNoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGxnOmZsZXgtcm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJUeXBlPVwiZmxleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYXA9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeT1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyLkl0ZW0gY2xhc3NOYW1lPVwic2hyaW5rIGZsZXggZmxleC1jb2wgc3BhY2UteS0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtYmFzZSBmb250LXNlbWlib2xkIG0tMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3NwcmludGYoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX18oJ1JvbGxiYWNrICVzIFBybyB0byBQcmV2aW91cyBWZXJzaW9uJywgJ3VhZWwnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1YWVsU2V0dGluZ3NEYXRhLnBsdWdpbl9zaG9ydF9uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1ub3JtYWwgbS0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ0V4cGVyaWVuY2luZyBhbiBpc3N1ZSB3aXRoIGN1cnJlbnQgdmVyc2lvbj8gUm9sbCBiYWNrIHRvIGEgcHJldmlvdXMgdmVyc2lvbiB0byBoZWxwIHRyb3VibGVzaG9vdCB0aGUgaXNzdWUuJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInAtMiBmbGV4IHNwYWNlLXktNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduU2VsZj1cImF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJic2Ytcm9sbGJhY2stdmVyc2lvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwicHJvZHVjdC1uYW1lXCIgaWQ9XCJic2YtcHJvZHVjdC1uYW1lXCIgdmFsdWU9eyd1YWVsJ30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInVhZWxWZXJzaW9uUm9sbGJhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17cHJvVmVyc2lvblJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFByb2R1Y3RTZWxlY3QoJ3VhZWwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnI2UwZTBlMCc7IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVZlcnNpb25DaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJzhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiAnMTBweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJzE2cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnNDBweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcjogJyNlMGUwZTAnLCAvLyBEZWZhdWx0IGJvcmRlciBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiAnbm9uZScsICAgICAgIC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgb3V0bGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFyZ2luVG9wOiAnMTZweCcgICAgIC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgYm94IHNoYWRvd1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17KGUpID0+IGUudGFyZ2V0LnN0eWxlLmJvcmRlckNvbG9yID0gJyM2MDA1RkYnfSAvLyBBcHBseSBmb2N1cyBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcmV2aW91c0FkZG9uVmVyc2lvbnMubWFwKCh2ZXJzaW9uKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24ga2V5PXt2ZXJzaW9uLnZhbHVlfSB2YWx1ZT17dmVyc2lvbi52YWx1ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmVyc2lvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGN1cnNvci1wb2ludGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGlhbG9nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduPVwic2ltcGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGl0T25Fc2NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxMb2NrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Blbj17b3BlblBvcHVwfSAvLyBFbnN1cmUgRGlhbG9nIGlzIGNvbnRyb2xsZWQgYnkgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRPcGVuPXtzZXRPcGVuUG9wdXB9IC8vIFN5bmNocm9uaXplIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcj17PEJ1dHRvbiBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6ICcjNjAwNWZmJyB9fT57X18oJ1JvbGxiYWNrJywgJ3VhZWwnKX08L0J1dHRvbj59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERpYWxvZy5CYWNrZHJvcCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEaWFsb2cuUGFuZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEaWFsb2cuSGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGlhbG9nLlRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ1JvbGxiYWNrIHRvIFByZXZpb3VzIFZlcnNpb24nLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRGlhbG9nLlRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEaWFsb2cuQ2xvc2VCdXR0b24gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0RpYWxvZy5IZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEaWFsb2cuQm9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfXyhgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJvbGxiYWNrIHRvICR7dWFlbFNldHRpbmdzRGF0YS5wbHVnaW5fbmFtZX0gdiR7cHJldmlvdXNWZXJzaW9uU2VsZWN0fT9gLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0RpYWxvZy5Cb2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGlhbG9nLkZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gb25DbGljaz17b25Db250aW51ZUNsaWNrfSBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6ICcjNjAwNWZmJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ1JvbGxiYWNrJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtvbkNhbmNlbENsaWNrfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ0NhbmNlbCcsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EaWFsb2cuRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRGlhbG9nLlBhbmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EaWFsb2c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJib3JkZXIgYm9yZGVyLXN1YnRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMnB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0U1RTdFQicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJzE2cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5Cb3R0b206ICcxNnB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIGFsaWduPVwic3RyZXRjaFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgbGc6ZmxleC1yb3dcIlxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXJUeXBlPVwiZmxleFwiXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgIGdhcD1cInNtXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeT1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxDb250YWluZXIuSXRlbSBjbGFzc05hbWU9XCJzaHJpbmsgZmxleCBmbGV4LWNvbCBzcGFjZS15LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1iYXNlIGZvbnQtc2VtaWJvbGQgbS0wIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X18oJ0VuYWJsZSBCZXRhIFZlcnNpb24nLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1ub3JtYWwgbS0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3NwcmludGYoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1R1cm4gdGhpcyBvbiB0byBnZXQgbm90aWZpZWQgd2hlbiBhIG5ldyBiZXRhIHZlcnNpb24gb2YgJXMgaXMgYXZhaWxhYmxlLiBUaGUgYmV0YSB2ZXJzaW9uIHdpbGwgbm90IGluc3RhbGwgYXV0b21hdGljYWxseS4gWW91IHdpbGwgbmVlZCB0byBpbnN0YWxsIGl0IG1hbnVhbGx5LiBXZSByZWNvbW1lbmQgdXNpbmcgaXQgb25seSBpbiBhIHRlc3QgZW52aXJvbm1lbnQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1YWVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1YWVsU2V0dGluZ3NEYXRhLnBsdWdpbl9uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbm9ybWFsIG10LTIgcHQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfXygnUGxlYXNlIHJlYWQgJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly91bHRpbWF0ZWVsZW1lbnRvci5jb20vZG9jcy9lbmFibGluZy1hdXRvbWF0aWMtYmV0YS11cGRhdGVzLWZvci11YWVsLz91dG1fc291cmNlPXVhZWwtcHJvLWRhc2hib2FyZCZ1dG1fbWVkaXVtPXVhZWwtbWVudS1wYWdlJnV0bV9jYW1wYWlnbj11YWVsLXByby1wbHVnaW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1YWVsLWxpbmstY29sb3Igbm8tdW5kZXJsaW5lIHVhZWwtcmVtb3ZlLXJpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfXygndGhpcyBhcnRpY2xlJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge19fKCcgdG8ga25vdyBtb3JlLicsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXIuSXRlbT5cbiAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzaHJpbmstMCBwLTIgZmxleCBzcGFjZS15LTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25TZWxmPVwiYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luVG9wOiAnNDBweCcgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN3aXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2JldGFFbmFibGVkfSAvLyBTZXQgc3dpdGNoIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUJldGFTd2l0Y2h9IC8vIEhhbmRsZSBzd2l0Y2ggY2hhbmdlXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvPlxuICAgICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBWZXJzaW9uQ29udHJvbDtcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwidXNlUmVmIiwiQ29udGFpbmVyIiwiVGl0bGUiLCJTd2l0Y2giLCJCdXR0b24iLCJEaWFsb2ciLCJhcGlGZXRjaCIsIl9fIiwic3ByaW50ZiIsIlZlcnNpb25Db250cm9sIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYmV0YUVuYWJsZWQiLCJzZXRCZXRhRW5hYmxlZCIsImxpY2Vuc2VTdGF0dXMiLCJ1YWVsU2V0dGluZ3NEYXRhIiwibGljZW5zZV9zdGF0dXMiLCJwcmV2aW91c0FkZG9uVmVyc2lvbnMiLCJ1YWVsX3ZlcnNpb25zIiwicHJldmlvdXNMaXRlVmVyc2lvbnMiLCJ1YWVsaXRlX3ZlcnNpb25zIiwicHJvVmVyc2lvblJlZiIsInZhbHVlIiwibGl0ZVZlcnNpb25SZWYiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInByZXZpb3VzVmVyc2lvblNlbGVjdCIsInNldFByZXZpb3VzVmVyc2lvbiIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwibGl0ZVZlcnNpb25TZWxlY3QiLCJzZXRMaXRlVmVyc2lvblNlbGVjdCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwicHJvZHVjdFNlbGVjdCIsInNldFByb2R1Y3RTZWxlY3QiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJmcmVlcHJvZHVjdFNlbGVjdCIsInNldEZyZWVwcm9kdWN0U2VsZWN0IiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsIm9wZW5Qb3B1cCIsInNldE9wZW5Qb3B1cCIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJvcGVuTGl0ZVBvcHVwIiwic2V0T3BlbkxpdGVQb3B1cCIsImJldGFfZW5hYmxlZCIsInJvbGxiYWNrQ2xpY2tIYW5kbGVyIiwiY3VycmVudCIsImhhbmRsZUJldGFTd2l0Y2giLCJldmVudCIsImFsbG93X2JldGEiLCJmb3JtRGF0YSIsIndpbmRvdyIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiYWpheF9ub25jZSIsInVybCIsImFqYXhfdXJsIiwibWV0aG9kIiwiYm9keSIsInRoZW4iLCJkYXRhIiwic3VjY2VzcyIsImVycm9yIiwib25DYW5jZWxDbGljayIsIm9uQ29udGludWVDbGljayIsInJvbGxiYWNrVXJsIiwidWFlbF9yb2xsYmFja191cmwiLCJyZXBsYWNlIiwibG9jYXRpb24iLCJocmVmIiwib25MaXRlQ2FuY2VsQ2xpY2siLCJvbkxpdGVDb250aW51ZUNsaWNrIiwidWFlbGl0ZV9yb2xsYmFja191cmwiLCJoYW5kbGVWZXJzaW9uQ2hhbmdlIiwidGFyZ2V0IiwiaGFuZGxlTGl0ZVZlcnNpb25DaGFuZ2UiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJkZXNjcmlwdGlvbiIsImljb24iLCJpY29uUG9zaXRpb24iLCJzaXplIiwidGFnIiwidGl0bGUiLCJjbGFzc05hbWUiLCJzdHlsZSIsIm1hcmdpblRvcCIsImlzX2xpdGVfYWN0aXZlIiwiYWxpZ24iLCJjb250YWluZXJUeXBlIiwiZGlyZWN0aW9uIiwiZ2FwIiwianVzdGlmeSIsIkl0ZW0iLCJwbHVnaW5fc2hvcnRfbmFtZSIsImFsaWduU2VsZiIsIm9yZGVyIiwidHlwZSIsIm5hbWUiLCJpZCIsInJlZiIsIm9uQmx1ciIsIm9uQ2hhbmdlIiwicGFkZGluZyIsIm1hcmdpblJpZ2h0IiwiY3Vyc29yIiwiYm9yZGVyUmFkaXVzIiwiaGVpZ2h0Iiwid2lkdGgiLCJtYXAiLCJ2ZXJzaW9uIiwia2V5IiwibGFiZWwiLCJkZXNpZ24iLCJleGl0T25Fc2MiLCJzY3JvbGxMb2NrIiwib3BlbiIsInNldE9wZW4iLCJ0cmlnZ2VyIiwiQmFja2Ryb3AiLCJQYW5lbCIsIkhlYWRlciIsIkNsb3NlQnV0dG9uIiwiQm9keSIsIkZvb3RlciIsIm9uQ2xpY2siLCJiYWNrZ3JvdW5kQ29sb3IiLCJtYXJnaW5Cb3R0b20iLCJlIiwiYm9yZGVyQ29sb3IiLCJvdXRsaW5lIiwiYm94U2hhZG93Iiwib25Gb2N1cyIsImNvbmNhdCIsInBsdWdpbl9uYW1lIiwicmVsIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/Components/Settings/VersionControl.jsx\n");
/***/ }),
/***/ "./src/Components/Widgets/Features.jsx":
/*!*********************************************!*\
!*** ./src/Components/Widgets/Features.jsx ***!
\*********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HeaderLine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../HeaderLine */ \"./src/Components/HeaderLine.js\");\n/* harmony import */ var _NavMenu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../NavMenu */ \"./src/Components/NavMenu.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _Dashboard_ExtendWebsite__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Dashboard/ExtendWebsite */ \"./src/Components/Dashboard/ExtendWebsite.jsx\");\n/* harmony import */ var _Dashboard_QuickAccess__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Dashboard/QuickAccess */ \"./src/Components/Dashboard/QuickAccess.js\");\n/* harmony import */ var _Features_FeatureWidgets__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Features/FeatureWidgets */ \"./src/Components/Widgets/Features/FeatureWidgets.jsx\");\n\n\n\n\n\n\n\nvar Features = function Features() {\n var width_class = !uaelSettingsData.hide_settings ? 'uael-65-width' : 'w-full';\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement((react__WEBPACK_IMPORTED_MODULE_3___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_NavMenu__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_HeaderLine__WEBPACK_IMPORTED_MODULE_0__[\"default\"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container, {\n align: \"stretch\",\n className: \"p-6 flex flex-col lg:flex-row box-border\",\n containerType: \"flex\",\n direction: \"row\",\n gap: \"sm\",\n justify: \"start\",\n style: {\n width: \"100%\"\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container.Item, {\n className: \"p-2 \".concat(width_class),\n alignSelf: \"auto\",\n order: \"none\",\n shrink: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_Features_FeatureWidgets__WEBPACK_IMPORTED_MODULE_6__[\"default\"], null)), !uaelSettingsData.hide_settings && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_2__.Container.Item, {\n className: \"p-2 uael-35-width\",\n shrink: 1\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_Dashboard_QuickAccess__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(\"div\", {\n className: \"pt-5\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_Dashboard_ExtendWebsite__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null))))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Features);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9XaWRnZXRzL0ZlYXR1cmVzLmpzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQWlCO0FBQ0g7QUFDNEI7QUFDakI7QUFDTDtBQUNGO0FBQ0c7QUFFckIsSUFBTU8sUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUEsRUFBUztFQUNuQixJQUFNQyxXQUFXLEdBQUcsQ0FBQ0MsZ0JBQWdCLENBQUNDLGFBQWEsR0FBRyxlQUFlLEdBQUcsUUFBUTtFQUNoRixvQkFDSVAsMERBQUEsQ0FBQUEsdURBQUEscUJBQ0lBLDBEQUFBLENBQUNGLGdEQUFPLE1BQUUsQ0FBQyxlQUNYRSwwREFBQTtJQUFLVSxTQUFTLEVBQUM7RUFBRSxnQkFDYlYsMERBQUEsQ0FBQ0gsbURBQVUsTUFBRSxDQUFDLGVBQ2RHLDBEQUFBLENBQUNELG9EQUFTO0lBQ05ZLEtBQUssRUFBQyxTQUFTO0lBQ2ZELFNBQVMsRUFBQywwQ0FBMEM7SUFDcERFLGFBQWEsRUFBQyxNQUFNO0lBQ3BCQyxTQUFTLEVBQUMsS0FBSztJQUNmQyxHQUFHLEVBQUMsSUFBSTtJQUNSQyxPQUFPLEVBQUMsT0FBTztJQUNmQyxLQUFLLEVBQUU7TUFDSEMsS0FBSyxFQUFFO0lBQ1g7RUFBRSxnQkFFRmpCLDBEQUFBLENBQUNELG9EQUFTLENBQUNtQixJQUFJO0lBQ1hSLFNBQVMsU0FBQVMsTUFBQSxDQUFTZCxXQUFXLENBQUc7SUFDaENlLFNBQVMsRUFBQyxNQUFNO0lBQ2hCQyxLQUFLLEVBQUMsTUFBTTtJQUNaQyxNQUFNLEVBQUU7RUFBRSxnQkFFVnRCLDBEQUFBLENBQUNHLGdFQUFjLE1BQUUsQ0FDTCxDQUFDLEVBQ2hCLENBQUNHLGdCQUFnQixDQUFDQyxhQUFhLGlCQUM1QlAsMERBQUEsQ0FBQ0Qsb0RBQVMsQ0FBQ21CLElBQUk7SUFDWFIsU0FBUyxFQUFDLG1CQUFtQjtJQUM3QlksTUFBTSxFQUFFO0VBQUUsZ0JBRVZ0QiwwREFBQSxDQUFDRSw4REFBVyxNQUFFLENBQUMsZUFDaEJGLDBEQUFBO0lBQUtVLFNBQVMsRUFBQztFQUFNLGdCQUNyQlYsMERBQUEsQ0FBQ0MsZ0VBQWEsTUFBRSxDQUNYLENBQ1EsQ0FFYixDQUNWLENBQ1AsQ0FBQztBQUVYLENBQUM7QUFFRCwrREFBZUcsUUFBUSIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9zcmMvQ29tcG9uZW50cy9XaWRnZXRzL0ZlYXR1cmVzLmpzeD85MDg2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBIZWFkZXJMaW5lIGZyb20gJ0Bjb21wb25lbnRzL0hlYWRlckxpbmUnXG5pbXBvcnQgTmF2TWVudSBmcm9tICdAY29tcG9uZW50cy9OYXZNZW51J1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIkBic2YvZm9yY2UtdWlcIjtcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCBFeHRlbmRXZWJzaXRlIGZyb20gJ0Bjb21wb25lbnRzL0Rhc2hib2FyZC9FeHRlbmRXZWJzaXRlJztcbmltcG9ydCBRdWlja0FjY2VzcyBmcm9tICdAY29tcG9uZW50cy9EYXNoYm9hcmQvUXVpY2tBY2Nlc3MnO1xuaW1wb3J0IEZlYXR1cmVXaWRnZXRzIGZyb20gJy4vRmVhdHVyZXMvRmVhdHVyZVdpZGdldHMnXG5cbmNvbnN0IEZlYXR1cmVzID0gKCkgPT4ge1xuICAgIGNvbnN0IHdpZHRoX2NsYXNzID0gIXVhZWxTZXR0aW5nc0RhdGEuaGlkZV9zZXR0aW5ncyA/ICd1YWVsLTY1LXdpZHRoJyA6ICd3LWZ1bGwnO1xuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8TmF2TWVudSAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJcIj5cbiAgICAgICAgICAgICAgICA8SGVhZGVyTGluZSAvPlxuICAgICAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgYWxpZ249XCJzdHJldGNoXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicC02IGZsZXggZmxleC1jb2wgbGc6ZmxleC1yb3cgYm94LWJvcmRlclwiXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclR5cGU9XCJmbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPVwic21cIlxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5PVwic3RhcnRcIlxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BwLTIgJHt3aWR0aF9jbGFzc31gfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25TZWxmPVwiYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2hyaW5rPXsxfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RmVhdHVyZVdpZGdldHMgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXIuSXRlbT5cbiAgICAgICAgICAgICAgICAgICAgeyF1YWVsU2V0dGluZ3NEYXRhLmhpZGVfc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicC0yIHVhZWwtMzUtd2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNocmluaz17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UXVpY2tBY2Nlc3MgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdwdC01Jz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxFeHRlbmRXZWJzaXRlIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC8+XG4gICAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBGZWF0dXJlcyJdLCJuYW1lcyI6WyJIZWFkZXJMaW5lIiwiTmF2TWVudSIsIkNvbnRhaW5lciIsIlJlYWN0IiwiRXh0ZW5kV2Vic2l0ZSIsIlF1aWNrQWNjZXNzIiwiRmVhdHVyZVdpZGdldHMiLCJGZWF0dXJlcyIsIndpZHRoX2NsYXNzIiwidWFlbFNldHRpbmdzRGF0YSIsImhpZGVfc2V0dGluZ3MiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJjbGFzc05hbWUiLCJhbGlnbiIsImNvbnRhaW5lclR5cGUiLCJkaXJlY3Rpb24iLCJnYXAiLCJqdXN0aWZ5Iiwic3R5bGUiLCJ3aWR0aCIsIkl0ZW0iLCJjb25jYXQiLCJhbGlnblNlbGYiLCJvcmRlciIsInNocmluayJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/Components/Widgets/Features.jsx\n");
/***/ }),
/***/ "./src/Components/Widgets/Features/FeatureWidgets.jsx":
/*!************************************************************!*\
!*** ./src/Components/Widgets/Features/FeatureWidgets.jsx ***!
\************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"@babel/runtime/regenerator\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/search.js\");\n/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! lucide-react */ \"./node_modules/lucide-react/dist/esm/icons/loader-circle.js\");\n/* harmony import */ var _Dashboard_WidgetItem__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../Dashboard/WidgetItem */ \"./src/Components/Dashboard/WidgetItem.jsx\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/api-fetch */ \"@wordpress/api-fetch\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__);\n\n\n\n\n\nfunction 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; }\nfunction _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) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(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\n\n\n\n\n\nvar FeatureWidgets = function FeatureWidgets() {\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(null),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState, 2),\n allWidgetsData = _useState2[0],\n setAllWidgetsData = _useState2[1];\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(''),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState3, 2),\n searchTerm = _useState4[0],\n setSearchTerm = _useState4[1];\n var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(false),\n _useState6 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState5, 2),\n loadingActivate = _useState6[0],\n setLoadingActivate = _useState6[1];\n var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(false),\n _useState8 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState7, 2),\n loadingDeactivate = _useState8[0],\n setLoadingDeactivate = _useState8[1];\n var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(true),\n _useState10 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState9, 2),\n loading = _useState10[0],\n setLoading = _useState10[1];\n var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(0),\n _useState12 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState11, 2),\n updateCounter = _useState12[0],\n setUpdateCounter = _useState12[1];\n var _useState13 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(true),\n _useState14 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState13, 2),\n showTooltip = _useState14[0],\n setShowTooltip = _useState14[1]; // Add state for showTooltip\n\n (0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () {\n var fetchSettings = function fetchSettings() {\n setLoading(true);\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_8___default()({\n path: '/uael/v1/widgets',\n headers: {\n 'Content-Type': 'application/json',\n 'X-WP-Nonce': uaelSettingsData.uael_nonce_action\n }\n }).then(function (data) {\n var widgetsData = convertToWidgetsArray(data);\n setAllWidgetsData(widgetsData);\n setLoading(false);\n })[\"catch\"](function (err) {\n setLoading(false);\n });\n };\n fetchSettings();\n }, []);\n var handleSearchChange = function handleSearchChange(event) {\n setSearchTerm(event.target.value.toLowerCase());\n };\n var filteredWidgets = allWidgetsData === null || allWidgetsData === void 0 ? void 0 : allWidgetsData.filter(function (widget) {\n var _widget$keywords;\n return widget.title.toLowerCase().includes(searchTerm) || ((_widget$keywords = widget.keywords) === null || _widget$keywords === void 0 ? void 0 : _widget$keywords.some(function (keyword) {\n return keyword.toLowerCase().includes(searchTerm);\n }));\n });\n var handleActivateAll = /*#__PURE__*/function () {\n var _ref = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee() {\n var formData;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n setLoadingActivate(true);\n formData = new window.FormData();\n formData.append('action', 'uael_bulk_activate_widgets');\n formData.append('nonce', uaelSettingsData.ajax_nonce);\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_8___default()({\n url: uaelSettingsData.ajax_url,\n method: 'POST',\n body: formData\n }).then(function (data) {\n setLoadingActivate(false);\n if (data.success) {\n setAllWidgetsData(function (prevWidgets) {\n return prevWidgets.map(function (widget) {\n return _objectSpread(_objectSpread({}, widget), {}, {\n is_active: true\n });\n });\n });\n setUpdateCounter(function (prev) {\n return prev + 1;\n });\n } else if (data.error) {\n console.error('AJAX request failed:', data.error);\n }\n })[\"catch\"](function (error) {\n setLoadingActivate(false);\n console.error('Error during AJAX request:', error);\n });\n case 5:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function handleActivateAll() {\n return _ref.apply(this, arguments);\n };\n }();\n var handleDeactivateAll = /*#__PURE__*/function () {\n var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee2() {\n var formData;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n setLoadingDeactivate(true);\n formData = new window.FormData();\n formData.append('action', 'uael_bulk_deactivate_widgets');\n formData.append('nonce', uaelSettingsData.ajax_nonce);\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_8___default()({\n url: uaelSettingsData.ajax_url,\n method: 'POST',\n body: formData\n }).then(function (data) {\n setLoadingDeactivate(false);\n if (data.success) {\n setAllWidgetsData(function (prevWidgets) {\n return prevWidgets.map(function (widget) {\n return _objectSpread(_objectSpread({}, widget), {}, {\n is_active: false\n });\n });\n });\n setUpdateCounter(function (prev) {\n return prev + 1;\n });\n } else if (data.error) {\n console.error('AJAX request failed:', data.error);\n }\n })[\"catch\"](function (error) {\n setLoadingDeactivate(false);\n console.error('Error during AJAX request:', error);\n });\n case 5:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function handleDeactivateAll() {\n return _ref2.apply(this, arguments);\n };\n }();\n function convertToWidgetsArray(data) {\n var widgets = [];\n for (var key in data) {\n if (data.hasOwnProperty(key)) {\n var widget = data[key];\n widgets.push({\n id: key,\n slug: widget.slug,\n title: widget.title,\n keywords: widget.keywords,\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"i\", {\n className: widget.icon\n }),\n title_url: widget.title_url,\n \"default\": widget[\"default\"],\n doc_url: widget.doc_url,\n is_pro: widget.is_pro,\n description: widget.description,\n is_active: widget.is_activate !== undefined ? widget.is_activate : true,\n demo_url: widget.demo_url !== undefined ? widget.demo_url : widget.doc_url\n });\n }\n }\n return widgets;\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"rounded-lg bg-white w-full mb-4\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex flex-col md:flex-row md:items-center md:justify-between p-4\",\n style: {\n paddingBottom: '0'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"p\", {\n className: \"m-0 text-sm font-semibold text-text-primary mb-2 md:mb-0\"\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)(\"Widgets / Features\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex flex-col md:flex-row items-center gap-y-2 md:gap-x-2 md:mr-7 relative\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"absolute top-1/2 transform -translate-y-1/2 text-gray-400\",\n style: {\n backgroundColor: '#F9FAFB',\n left: '2%',\n width: '18px',\n height: '18px'\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"input\", {\n type: \"search\",\n placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)('Search...', 'uael'),\n className: \"mr-2 pl-10 w-full md:w-auto\",\n style: {\n height: '40px',\n borderColor: '#e0e0e0',\n // Default border color\n outline: 'none',\n // Removes the default outline\n boxShadow: 'none',\n backgroundColor: '#F9FAFB' // Removes the default box shadow\n },\n onFocus: function onFocus(e) {\n return e.target.style.borderColor = '#6005FF';\n } // Apply focus color\n ,\n onBlur: function onBlur(e) {\n return e.target.style.borderColor = '#e0e0e0';\n } // Revert to default color\n ,\n onChange: handleSearchChange\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex flex-row gap-2 w-full md:w-auto\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Button, {\n icon: loadingActivate ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"animate-spin\"\n }) : null,\n iconPosition: \"left\",\n variant: \"outline\",\n className: \"uae-bulk-action-button\",\n onClick: handleActivateAll,\n disabled: !!searchTerm\n }, loadingActivate ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)('Activating...', 'uael') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)('Activate All', 'uael')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Button, {\n icon: loadingDeactivate ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"animate-spin\"\n }) : null,\n iconPosition: \"left\",\n variant: \"outline\",\n onClick: handleDeactivateAll,\n className: \"uae-bulk-action-button\",\n disabled: !!searchTerm\n }, loadingDeactivate ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)('Deactivating...', 'uael') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_9__.__)('Deactivate All', 'uael'))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex bg-black flex-col rounded-lg p-4\",\n style: {\n minHeight: \"800px\"\n }\n }, loading ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Container, {\n align: \"stretch\",\n className: \"p-1 gap-1.5 grid-cols-2 md:grid-cols-4\",\n containerType: \"grid\",\n gap: \"\",\n justify: \"start\",\n style: {\n backgroundColor: '#F9FAFB'\n }\n }, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Array(50)).map(function (_, index) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Container.Item, {\n key: index,\n alignSelf: \"auto\",\n className: \"text-wrap rounded-md shadow-container-item bg-background-primary p-6 space-y-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Skeleton, {\n className: \"w-12 h-2 rounded-md\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Skeleton, {\n className: \"w-16 h-2 rounded-md\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Skeleton, {\n className: \"w-12 h-2 rounded-md\"\n }));\n })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Container, {\n align: \"stretch\",\n className: \"p-1 gap-1.5 grid-cols-2 md:grid-cols-4\",\n containerType: \"grid\",\n gap: \"\",\n justify: \"start\",\n style: {\n backgroundColor: '#F9FAFB'\n }\n }, filteredWidgets === null || filteredWidgets === void 0 ? void 0 : filteredWidgets.map(function (widget) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Container.Item, {\n key: widget.id,\n alignSelf: \"auto\",\n className: \"text-wrap rounded-md shadow-container-item bg-background-primary p-4\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_Dashboard_WidgetItem__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n widget: _objectSpread(_objectSpread({}, widget), {}, {\n updateCounter: updateCounter\n }),\n showTooltip: showTooltip,\n key: widget.id,\n updateCounter: updateCounter\n }));\n }))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (FeatureWidgets);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9XaWRnZXRzL0ZlYXR1cmVzL0ZlYXR1cmVXaWRnZXRzLmpzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQW1EO0FBQ1M7QUFDSjtBQUN2QztBQUMyQjtBQUNQO0FBRXJDLElBQU1XLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBQSxFQUFTO0VBQ3pCLElBQUFDLFNBQUEsR0FBNENYLCtDQUFRLENBQUMsSUFBSSxDQUFDO0lBQUFZLFVBQUEsR0FBQUMsZ0ZBQUEsQ0FBQUYsU0FBQTtJQUFuREcsY0FBYyxHQUFBRixVQUFBO0lBQUVHLGlCQUFpQixHQUFBSCxVQUFBO0VBQ3hDLElBQUFJLFVBQUEsR0FBb0NoQiwrQ0FBUSxDQUFDLEVBQUUsQ0FBQztJQUFBaUIsVUFBQSxHQUFBSixnRkFBQSxDQUFBRyxVQUFBO0lBQXpDRSxVQUFVLEdBQUFELFVBQUE7SUFBRUUsYUFBYSxHQUFBRixVQUFBO0VBQ2hDLElBQUFHLFVBQUEsR0FBOENwQiwrQ0FBUSxDQUFDLEtBQUssQ0FBQztJQUFBcUIsVUFBQSxHQUFBUixnRkFBQSxDQUFBTyxVQUFBO0lBQXRERSxlQUFlLEdBQUFELFVBQUE7SUFBRUUsa0JBQWtCLEdBQUFGLFVBQUE7RUFDMUMsSUFBQUcsVUFBQSxHQUFrRHhCLCtDQUFRLENBQUMsS0FBSyxDQUFDO0lBQUF5QixVQUFBLEdBQUFaLGdGQUFBLENBQUFXLFVBQUE7SUFBMURFLGlCQUFpQixHQUFBRCxVQUFBO0lBQUVFLG9CQUFvQixHQUFBRixVQUFBO0VBQzlDLElBQUFHLFVBQUEsR0FBOEI1QiwrQ0FBUSxDQUFDLElBQUksQ0FBQztJQUFBNkIsV0FBQSxHQUFBaEIsZ0ZBQUEsQ0FBQWUsVUFBQTtJQUFyQ0UsT0FBTyxHQUFBRCxXQUFBO0lBQUVFLFVBQVUsR0FBQUYsV0FBQTtFQUMxQixJQUFBRyxXQUFBLEdBQTBDaEMsK0NBQVEsQ0FBQyxDQUFDLENBQUM7SUFBQWlDLFdBQUEsR0FBQXBCLGdGQUFBLENB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U0FBUyxFQUFDO0lBQXNFLGdCQUVoRjVHLDBEQUFBLENBQUNRLDZEQUFVO01BQUNrRCxNQUFNLEVBQUE4QixhQUFBLENBQUFBLGFBQUEsS0FBTzlCLE1BQU07UUFBRXZCLGFBQWEsRUFBYkE7TUFBYSxFQUFHO01BQUNJLFdBQVcsRUFBRUEsV0FBWTtNQUFDOEQsR0FBRyxFQUFFM0MsTUFBTSxDQUFDOEMsRUFBRztNQUFDckUsYUFBYSxFQUFFQTtJQUFjLENBQUUsQ0FDL0csQ0FBQztFQUFBLENBQ3BCLENBQ00sQ0FFZCxDQUNKLENBQUM7QUFFZCxDQUFDO0FBRUQsK0RBQWV4QixjQUFjIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL3NyYy9Db21wb25lbnRzL1dpZGdldHMvRmVhdHVyZXMvRmVhdHVyZVdpZGdldHMuanN4PzBhMjciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb250YWluZXIsIEJ1dHRvbiwgU2tlbGV0b24gfSBmcm9tIFwiQGJzZi9mb3JjZS11aVwiO1xuaW1wb3J0IHsgTG9hZGVyQ2lyY2xlLCBTZWFyY2hJY29uIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuaW1wb3J0IFdpZGdldEl0ZW0gZnJvbSAnQGNvbXBvbmVudHMvRGFzaGJvYXJkL1dpZGdldEl0ZW0nO1xuaW1wb3J0IGFwaUZldGNoIGZyb20gJ0B3b3JkcHJlc3MvYXBpLWZldGNoJztcbmltcG9ydCB7IF9fIH0gZnJvbSBcIkB3b3JkcHJlc3MvaTE4blwiO1xuXG5jb25zdCBGZWF0dXJlV2lkZ2V0cyA9ICgpID0+IHtcbiAgICBjb25zdCBbYWxsV2lkZ2V0c0RhdGEsIHNldEFsbFdpZGdldHNEYXRhXSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtzZWFyY2hUZXJtLCBzZXRTZWFyY2hUZXJtXSA9IHVzZVN0YXRlKCcnKTtcbiAgICBjb25zdCBbbG9hZGluZ0FjdGl2YXRlLCBzZXRMb2FkaW5nQWN0aXZhdGVdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtsb2FkaW5nRGVhY3RpdmF0ZSwgc2V0TG9hZGluZ0RlYWN0aXZhdGVdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFt1cGRhdGVDb3VudGVyLCBzZXRVcGRhdGVDb3VudGVyXSA9IHVzZVN0YXRlKDApO1xuICAgIGNvbnN0IFtzaG93VG9vbHRpcCwgc2V0U2hvd1Rvb2x0aXBdID0gdXNlU3RhdGUodHJ1ZSk7IC8vIEFkZCBzdGF0ZSBmb3Igc2hvd1Rvb2x0aXBcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZldGNoU2V0dGluZ3MgPSAoKSA9PiB7XG4gICAgICAgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgYXBpRmV0Y2goe1xuICAgICAgICAgICAgICAgIHBhdGg6ICcvdWFlbC92MS93aWRnZXRzJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgICAgICdYLVdQLU5vbmNlJzogdWFlbFNldHRpbmdzRGF0YS51YWVsX25vbmNlX2FjdGlvbixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3aWRnZXRzRGF0YSA9IGNvbnZlcnRUb1dpZGdldHNBcnJheShkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0QWxsV2lkZ2V0c0RhdGEod2lkZ2V0c0RhdGEpO1xuICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGZldGNoU2V0dGluZ3MoKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBoYW5kbGVTZWFyY2hDaGFuZ2UgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgc2V0U2VhcmNoVGVybShldmVudC50YXJnZXQudmFsdWUudG9Mb3dlckNhc2UoKSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGZpbHRlcmVkV2lkZ2V0cyA9IGFsbFdpZGdldHNEYXRhPy5maWx0ZXIod2lkZ2V0ID0+XG4gICAgICAgIHdpZGdldC50aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pIHx8XG4gICAgICAgIHdpZGdldC5rZXl3b3Jkcz8uc29tZShrZXl3b3JkID0+IGtleXdvcmQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKSlcbiAgICApO1xuXG4gICAgY29uc3QgaGFuZGxlQWN0aXZhdGVBbGwgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIHNldExvYWRpbmdBY3RpdmF0ZSh0cnVlKTtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgd2luZG93LkZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnYWN0aW9uJywgJ3VhZWxfYnVsa19hY3RpdmF0ZV93aWRnZXRzJyk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnbm9uY2UnLCB1YWVsU2V0dGluZ3NEYXRhLmFqYXhfbm9uY2UpO1xuXG4gICAgICAgIGFwaUZldGNoKHtcbiAgICAgICAgICAgIHVybDogdWFlbFNldHRpbmdzRGF0YS5hamF4X3VybCxcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgICAgIH0pLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHNldExvYWRpbmdBY3RpdmF0ZShmYWxzZSk7XG4gICAgICAgICAgICBpZiAoZGF0YS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgc2V0QWxsV2lkZ2V0c0RhdGEocHJldldpZGdldHMgPT5cbiAgICAgICAgICAgICAgICAgICAgcHJldldpZGdldHMubWFwKHdpZGdldCA9PiAoeyAuLi53aWRnZXQsIGlzX2FjdGl2ZTogdHJ1ZSB9KSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHNldFVwZGF0ZUNvdW50ZXIocHJldiA9PiBwcmV2ICsgMSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdBSkFYIHJlcXVlc3QgZmFpbGVkOicsIGRhdGEuZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHNldExvYWRpbmdBY3RpdmF0ZShmYWxzZSk7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBkdXJpbmcgQUpBWCByZXF1ZXN0OicsIGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZURlYWN0aXZhdGVBbGwgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIHNldExvYWRpbmdEZWFjdGl2YXRlKHRydWUpO1xuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyB3aW5kb3cuRm9ybURhdGEoKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdhY3Rpb24nLCAndWFlbF9idWxrX2RlYWN0aXZhdGVfd2lkZ2V0cycpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ25vbmNlJywgdWFlbFNldHRpbmdzRGF0YS5hamF4X25vbmNlKTtcblxuICAgICAgICBhcGlGZXRjaCh7XG4gICAgICAgICAgICB1cmw6IHVhZWxTZXR0aW5nc0RhdGEuYWpheF91cmwsXG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIGJvZHk6IGZvcm1EYXRhLFxuICAgICAgICB9KS50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICBzZXRMb2FkaW5nRGVhY3RpdmF0ZShmYWxzZSk7XG4gICAgICAgICAgICBpZiAoZGF0YS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgc2V0QWxsV2lkZ2V0c0RhdGEocHJldldpZGdldHMgPT5cbiAgICAgICAgICAgICAgICAgICAgcHJldldpZGdldHMubWFwKHdpZGdldCA9PiAoeyAuLi53aWRnZXQsIGlzX2FjdGl2ZTogZmFsc2UgfSkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBzZXRVcGRhdGVDb3VudGVyKHByZXYgPT4gcHJldiArIDEpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignQUpBWCByZXF1ZXN0IGZhaWxlZDonLCBkYXRhLmVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBzZXRMb2FkaW5nRGVhY3RpdmF0ZShmYWxzZSk7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBkdXJpbmcgQUpBWCByZXF1ZXN0OicsIGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGNvbnZlcnRUb1dpZGdldHNBcnJheShkYXRhKSB7XG4gICAgICAgIGNvbnN0IHdpZGdldHMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZGF0YSkge1xuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdpZGdldCA9IGRhdGFba2V5XTtcbiAgICAgICAgICAgICAgICB3aWRnZXRzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBpZDoga2V5LFxuICAgICAgICAgICAgICAgICAgICBzbHVnOiB3aWRnZXQuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHdpZGdldC50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAga2V5d29yZHM6IHdpZGdldC5rZXl3b3JkcyxcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogPGkgY2xhc3NOYW1lPXt3aWRnZXQuaWNvbn0+PC9pPixcbiAgICAgICAgICAgICAgICAgICAgdGl0bGVfdXJsOiB3aWRnZXQudGl0bGVfdXJsLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB3aWRnZXQuZGVmYXVsdCxcbiAgICAgICAgICAgICAgICAgICAgZG9jX3VybDogd2lkZ2V0LmRvY191cmwsXG4gICAgICAgICAgICAgICAgICAgIGlzX3Bybzogd2lkZ2V0LmlzX3BybyxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHdpZGdldC5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgaXNfYWN0aXZlOiB3aWRnZXQuaXNfYWN0aXZhdGUgIT09IHVuZGVmaW5lZCA/IHdpZGdldC5pc19hY3RpdmF0ZSA6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGRlbW9fdXJsOiB3aWRnZXQuZGVtb191cmwgIT09IHVuZGVmaW5lZCA/IHdpZGdldC5kZW1vX3VybCA6IHdpZGdldC5kb2NfdXJsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHdpZGdldHM7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9J3JvdW5kZWQtbGcgYmctd2hpdGUgdy1mdWxsIG1iLTQnPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgbWQ6aXRlbXMtY2VudGVyIG1kOmp1c3RpZnktYmV0d2VlbiBwLTQnXG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZ0JvdHRvbTogJzAnXG4gICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPSdtLTAgdGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtdGV4dC1wcmltYXJ5IG1iLTIgbWQ6bWItMCc+e19fKFwiV2lkZ2V0cyAvIEZlYXR1cmVzXCIsIFwidWFlbFwiKX08L3A+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC15LTIgbWQ6Z2FwLXgtMiBtZDptci03IHJlbGF0aXZlJz5cbiAgICAgICAgICAgICAgICAgICAgPFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHRvcC0xLzIgdHJhbnNmb3JtIC10cmFuc2xhdGUteS0xLzIgdGV4dC1ncmF5LTQwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNGOUZBRkInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6ICcyJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxOHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxOHB4J1xuICAgICAgICAgICAgICAgICAgICAgICAgfX0gLz5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtfXygnU2VhcmNoLi4uJywgJ3VhZWwnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm1yLTIgcGwtMTAgdy1mdWxsIG1kOnctYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzQwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnI2UwZTBlMCcsIC8vIERlZmF1bHQgYm9yZGVyIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogJ25vbmUnLCAgICAgICAvLyBSZW1vdmVzIHRoZSBkZWZhdWx0IG91dGxpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRjlGQUZCJywgICAgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBib3ggc2hhZG93XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17KGUpID0+IGUudGFyZ2V0LnN0eWxlLmJvcmRlckNvbG9yID0gJyM2MDA1RkYnfSAvLyBBcHBseSBmb2N1cyBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXsoZSkgPT4gZS50YXJnZXQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnI2UwZTBlMCd9ICAvLyBSZXZlcnQgdG8gZGVmYXVsdCBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVNlYXJjaENoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtcm93IGdhcC0yIHctZnVsbCBtZDp3LWF1dG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXtsb2FkaW5nQWN0aXZhdGUgPyA8TG9hZGVyQ2lyY2xlIGNsYXNzTmFtZT1cImFuaW1hdGUtc3BpblwiIC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uUG9zaXRpb249XCJsZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidWFlLWJ1bGstYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlQWN0aXZhdGVBbGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyEhc2VhcmNoVGVybX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bG9hZGluZ0FjdGl2YXRlID8gX18oJ0FjdGl2YXRpbmcuLi4nLCAndWFlbCcpIDogX18oJ0FjdGl2YXRlIEFsbCcsICd1YWVsJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXtsb2FkaW5nRGVhY3RpdmF0ZSA/IDxMb2FkZXJDaXJjbGUgY2xhc3NOYW1lPVwiYW5pbWF0ZS1zcGluXCIgLz4gOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cImxlZnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVEZWFjdGl2YXRlQWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVhZS1idWxrLWFjdGlvbi1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXshIXNlYXJjaFRlcm19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2xvYWRpbmdEZWFjdGl2YXRlID8gX18oJ0RlYWN0aXZhdGluZy4uLicsICd1YWVsJykgOiBfXygnRGVhY3RpdmF0ZSBBbGwnLCAndWFlbCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nZmxleCBiZy1ibGFjayBmbGV4LWNvbCByb3VuZGVkLWxnIHAtNCcgc3R5bGU9e3sgbWluSGVpZ2h0OiBcIjgwMHB4XCIgfX0+XG4gICAgICAgICAgICAgICAge2xvYWRpbmcgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduPVwic3RyZXRjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwLTEgZ2FwLTEuNSBncmlkLWNvbHMtMiBtZDpncmlkLWNvbHMtNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJUeXBlPVwiZ3JpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBnYXA9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeT1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0Y5RkFGQidcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtbLi4uQXJyYXkoNTApXS5tYXAoKF8sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduU2VsZj1cImF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXdyYXAgcm91bmRlZC1tZCBzaGFkb3ctY29udGFpbmVyLWl0ZW0gYmctYmFja2dyb3VuZC1wcmltYXJ5IHAtNiBzcGFjZS15LTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNrZWxldG9uIGNsYXNzTmFtZT0ndy0xMiBoLTIgcm91bmRlZC1tZCcgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNrZWxldG9uIGNsYXNzTmFtZT0ndy0xNiBoLTIgcm91bmRlZC1tZCcgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNrZWxldG9uIGNsYXNzTmFtZT0ndy0xMiBoLTIgcm91bmRlZC1tZCcgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lci5JdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduPVwic3RyZXRjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwLTEgZ2FwLTEuNSBncmlkLWNvbHMtMiBtZDpncmlkLWNvbHMtNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJUeXBlPVwiZ3JpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBnYXA9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeT1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0Y5RkFGQidcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtmaWx0ZXJlZFdpZGdldHM/Lm1hcCgod2lkZ2V0KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lci5JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17d2lkZ2V0LmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnblNlbGY9XCJhdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC13cmFwIHJvdW5kZWQtbWQgc2hhZG93LWNvbnRhaW5lci1pdGVtIGJnLWJhY2tncm91bmQtcHJpbWFyeSBwLTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFdpZGdldEl0ZW0gd2lkZ2V0PXt7IC4uLndpZGdldCwgdXBkYXRlQ291bnRlciB9fSBzaG93VG9vbHRpcD17c2hvd1Rvb2x0aXB9IGtleT17d2lkZ2V0LmlkfSB1cGRhdGVDb3VudGVyPXt1cGRhdGVDb3VudGVyfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyLkl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBGZWF0dXJlV2lkZ2V0czsiXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIkNvbnRhaW5lciIsIkJ1dHRvbiIsIlNrZWxldG9uIiwiTG9hZGVyQ2lyY2xlIiwiU2VhcmNoSWNvbiIsIldpZGdldEl0ZW0iLCJhcGlGZXRjaCIsIl9fIiwiRmVhdHVyZVdpZGdldHMiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJhbGxXaWRnZXRzRGF0YSIsInNldEFsbFdpZGdldHNEYXRhIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZWFyY2hUZXJtIiwic2V0U2VhcmNoVGVybSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwibG9hZGluZ0FjdGl2YXRlIiwic2V0TG9hZGluZ0FjdGl2YXRlIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJsb2FkaW5nRGVhY3RpdmF0ZSIsInNldExvYWRpbmdEZWFjdGl2YXRlIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwidXBkYXRlQ291bnRlciIsInNldFVwZGF0ZUNvdW50ZXIiLCJfdXNlU3RhdGUxMyIsIl91c2VTdGF0ZTE0Iiwic2hvd1Rvb2x0aXAiLCJzZXRTaG93VG9vbHRpcCIsImZldGNoU2V0dGluZ3MiLCJwYXRoIiwiaGVhZGVycyIsInVhZWxTZXR0aW5nc0RhdGEiLCJ1YWVsX25vbmNlX2FjdGlvbiIsInRoZW4iLCJkYXRhIiwid2lkZ2V0c0RhdGEiLCJjb252ZXJ0VG9XaWRnZXRzQXJyYXkiLCJlcnIiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJldmVudCIsInRhcmdldCIsInZhbHVlIiwidG9Mb3dlckNhc2UiLCJmaWx0ZXJlZFdpZGdldHMiLCJmaWx0ZXIiLCJ3aWRnZXQiLCJfd2lkZ2V0JGtleXdvcmRzIiwidGl0bGUiLCJpbmNsdWRlcyIsImtleXdvcmRzIiwic29tZSIsImtleXdvcmQiLCJoYW5kbGVBY3RpdmF0ZUFsbCIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImZvcm1EYXRhIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsIndpbmRvdyIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiYWpheF9ub25jZSIsInVybCIsImFqYXhfdXJsIiwibWV0aG9kIiwiYm9keSIsInN1Y2Nlc3MiLCJwcmV2V2lkZ2V0cyIsIm1hcCIsIl9vYmplY3RTcHJlYWQiLCJpc19hY3RpdmUiLCJlcnJvciIsImNvbnNvbGUiLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJoYW5kbGVEZWFjdGl2YXRlQWxsIiwiX3JlZjIiLCJfY2FsbGVlMiIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsIndpZGdldHMiLCJrZXkiLCJoYXNPd25Qcm9wZXJ0eSIsInB1c2giLCJpZCIsInNsdWciLCJpY29uIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInRpdGxlX3VybCIsImRvY191cmwiLCJpc19wcm8iLCJkZXNjcmlwdGlvbiIsImlzX2FjdGl2YXRlIiwidW5kZWZpbmVkIiwiZGVtb191cmwiLCJzdHlsZSIsInBhZGRpbmdCb3R0b20iLCJiYWNrZ3JvdW5kQ29sb3IiLCJsZWZ0Iiwid2lkdGgiLCJoZWlnaHQiLCJ0eXBlIiwicGxhY2Vob2xkZXIiLCJib3JkZXJDb2xvciIsIm91dGxpbmUiLCJib3hTaGFkb3ciLCJvbkZvY3VzIiwiZSIsIm9uQmx1ciIsIm9uQ2hhbmdlIiwiaWNvblBvc2l0aW9uIiwidmFyaWFudCIsIm9uQ2xpY2siLCJkaXNhYmxlZCIsIm1pbkhlaWdodCIsImFsaWduIiwiY29udGFpbmVyVHlwZSIsImdhcCIsImp1c3RpZnkiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJBcnJheSIsIl8iLCJpbmRleCIsIkl0ZW0iLCJhbGlnblNlbGYiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/Components/Widgets/Features/FeatureWidgets.jsx\n");
/***/ }),
/***/ "./src/Components/Widgets/Features/FeatureWidgetsOnboarding.jsx":
/*!**********************************************************************!*\
!*** ./src/Components/Widgets/Features/FeatureWidgetsOnboarding.jsx ***!
\**********************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"@babel/runtime/regenerator\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/api-fetch */ \"@wordpress/api-fetch\");\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/i18n */ \"@wordpress/i18n\");\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _Dashboard_WidgetsOnboarding__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../Dashboard/WidgetsOnboarding */ \"./src/Components/Dashboard/WidgetsOnboarding.jsx\");\n\n\n\n\n\nfunction 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; }\nfunction _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) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(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\n\n\n\n\nvar FeatureWidgetsOnboarding = function FeatureWidgetsOnboarding(_ref) {\n var setCurrentStep = _ref.setCurrentStep;\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(null),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState, 2),\n allWidgetsData = _useState2[0],\n setAllWidgetsData = _useState2[1]; // Initialize state.\n var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(''),\n _useState4 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState3, 2),\n searchTerm = _useState4[0],\n setSearchTerm = _useState4[1];\n var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(false),\n _useState6 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState5, 2),\n loadingActivate = _useState6[0],\n setLoadingActivate = _useState6[1]; // Loading state for activate button\n var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(false),\n _useState8 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState7, 2),\n loadingDeactivate = _useState8[0],\n setLoadingDeactivate = _useState8[1];\n var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(true),\n _useState10 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState9, 2),\n loading = _useState10[0],\n setLoading = _useState10[1];\n var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_5__.useState)(0),\n _useState12 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState11, 2),\n updateCounter = _useState12[0],\n setUpdateCounter = _useState12[1];\n (0,react__WEBPACK_IMPORTED_MODULE_5__.useEffect)(function () {\n var fetchSettings = function fetchSettings() {\n setLoading(true);\n _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_7___default()({\n path: '/uael/v1/widgets',\n headers: {\n 'Content-Type': 'application/json',\n 'X-WP-Nonce': uaelSettingsData.uael_nonce_action // Use the correct nonce\n }\n }).then(function (data) {\n var widgetsData = convertToWidgetsArray(data);\n setAllWidgetsData(widgetsData);\n setLoading(false); // Stop loading\n })[\"catch\"](function (err) {\n setLoading(false); // Stop loading\n });\n };\n fetchSettings();\n history.pushState(null, \"\", window.location.href);\n var handleBackButton = function handleBackButton(event) {\n event.preventDefault();\n localStorage.setItem('currentStep', '1');\n window.location.reload();\n };\n window.addEventListener('popstate', handleBackButton);\n return function () {\n window.removeEventListener('popstate', handleBackButton);\n };\n }, []);\n\n // New function to handle search input change\n var handleSearchChange = function handleSearchChange(event) {\n setSearchTerm(event.target.value.toLowerCase());\n };\n\n // Filter widgets based on search term\n var filteredWidgets = allWidgetsData === null || allWidgetsData === void 0 ? void 0 : allWidgetsData.filter(function (widget) {\n var _widget$keywords;\n return widget.title.toLowerCase().includes(searchTerm) || ((_widget$keywords = widget.keywords) === null || _widget$keywords === void 0 ? void 0 : _widget$keywords.some(function (keyword) {\n return keyword.toLowerCase().includes(searchTerm);\n }));\n });\n var handleActivateAll = /*#__PURE__*/function () {\n var _ref2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee() {\n var formData, data;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n setLoadingActivate(true);\n formData = new window.FormData();\n formData.append('action', 'uael_bulk_activate_widgets');\n formData.append('nonce', uaelSettingsData.ajax_nonce);\n _context.prev = 4;\n _context.next = 7;\n return _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_7___default()({\n url: uaelSettingsData.ajax_url,\n method: 'POST',\n body: formData\n });\n case 7:\n data = _context.sent;\n setLoadingActivate(false);\n if (data.success) {\n setAllWidgetsData(function (prevWidgets) {\n return prevWidgets.map(function (widget) {\n return _objectSpread(_objectSpread({}, widget), {}, {\n is_active: true\n });\n });\n });\n setUpdateCounter(function (prev) {\n return prev + 1;\n });\n } else {\n console.error('Error during AJAX request:', data.error);\n }\n _context.next = 16;\n break;\n case 12:\n _context.prev = 12;\n _context.t0 = _context[\"catch\"](4);\n setLoadingActivate(false);\n console.error('Error during AJAX request:', _context.t0);\n case 16:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[4, 12]]);\n }));\n return function handleActivateAll() {\n return _ref2.apply(this, arguments);\n };\n }();\n var handleDeactivateAll = /*#__PURE__*/function () {\n var _ref3 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(/*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee2() {\n var formData, data;\n return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n setLoadingDeactivate(true);\n formData = new window.FormData();\n formData.append('action', 'uael_bulk_deactivate_widgets');\n formData.append('nonce', uaelSettingsData.ajax_nonce);\n _context2.prev = 4;\n _context2.next = 7;\n return _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_7___default()({\n url: uaelSettingsData.ajax_url,\n method: 'POST',\n body: formData\n });\n case 7:\n data = _context2.sent;\n setLoadingDeactivate(false);\n if (data.success) {\n setAllWidgetsData(function (prevWidgets) {\n return prevWidgets.map(function (widget) {\n return _objectSpread(_objectSpread({}, widget), {}, {\n is_active: false\n });\n });\n });\n setUpdateCounter(function (prev) {\n return prev + 1;\n });\n } else {\n console.error('Error during AJAX request:', data.error);\n }\n _context2.next = 16;\n break;\n case 12:\n _context2.prev = 12;\n _context2.t0 = _context2[\"catch\"](4);\n setLoadingDeactivate(false);\n console.error('Error during AJAX request:', _context2.t0);\n case 16:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[4, 12]]);\n }));\n return function handleDeactivateAll() {\n return _ref3.apply(this, arguments);\n };\n }();\n function convertToWidgetsArray(data) {\n var widgets = [];\n for (var key in data) {\n if (data.hasOwnProperty(key)) {\n var widget = data[key];\n widgets.push({\n id: key,\n // Using the key as 'widgetTitle'\n slug: widget.slug,\n title: widget.title,\n keywords: widget.keywords,\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"i\", {\n className: widget.icon\n }),\n title_url: widget.title_url,\n \"default\": widget[\"default\"],\n doc_url: widget.doc_url,\n is_pro: widget.is_pro,\n description: widget.description,\n is_active: widget.is_activate !== undefined ? widget.is_activate : true,\n // Check if is_activate is set\n demo_url: widget.demo_url !== undefined ? widget.demo_url : widget.doc_url\n });\n }\n }\n return widgets;\n }\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"rounded-lg bg-white p-6 uae-onboarding-customize\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"h1\", {\n className: \"text-text-primary m-0 mb-2\",\n style: {\n fontSize: '1.4rem',\n lineHeight: '1.3em'\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)(\"Customize Your UAE Setup\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"span\", {\n className: \"text-md font-medium text-text-tertiary m-0\",\n style: {\n lineHeight: '1.6em'\n }\n }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_8__.__)(\"Activate only what you need to keep your website fast and optimized.\", \"uael\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(\"div\", {\n className: \"flex bg-black flex-col rounded-lg\",\n style: {\n marginTop: '2rem'\n }\n }, loading ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Container, {\n align: \"stretch\",\n className: \"p-2 gap-1.5 grid grid-cols-2 md:grid-cols-4\",\n style: {\n backgroundColor: \"#F9FAFB\"\n },\n containerType: \"grid\",\n gap: \"\",\n justify: \"start\"\n }, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Array(30)).map(function (_, index) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Container.Item, {\n key: index,\n alignSelf: \"auto\",\n style: {\n padding: '3.5rem'\n },\n className: \"text-wrap rounded-md shadow-container-item bg-background-primary space-y-2\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Skeleton, {\n className: \"w-12 h-2 rounded-md\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Skeleton, {\n className: \"w-16 h-2 rounded-md\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Skeleton, {\n className: \"w-12 h-2 rounded-md\"\n }));\n })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_6__.Container, {\n align: \"stretch\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default().createElement(_Dashboard_WidgetsOnboarding__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n setCurrentStep: setCurrentStep,\n widgets: filteredWidgets,\n updateCounter: updateCounter\n }))));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (FeatureWidgetsOnboarding);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvQ29tcG9uZW50cy9XaWRnZXRzL0ZlYXR1cmVzL0ZlYXR1cmVXaWRnZXRzT25ib2FyZGluZy5qc3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBbUQ7QUFDZTtBQUN0QjtBQUNQO0FBQ2I7QUFFeEIsSUFBTVUsd0JBQXdCLEdBQUcsU0FBM0JBLHdCQUF3QkEsQ0FBQUMsSUFBQSxFQUEyQjtFQUFBLElBQXJCQyxjQUFjLEdBQUFELElBQUEsQ0FBZEMsY0FBYztFQUU5QyxJQUFBQyxTQUFBLEdBQTRDWiwrQ0FBUSxDQUFDLElBQUksQ0FBQztJQUFBYSxVQUFBLEdBQUFDLGdGQUFBLENBQUFGLFNBQUE7SUFBbkRHLGNBQWMsR0FBQUYsVUFBQTtJQUFFRyxpQkFBaUIsR0FBQUgsVUFBQSxJQUFtQixDQUFDO0VBQzVELElBQUFJLFVBQUEsR0FBb0NqQiwrQ0FBUSxDQUFDLEVBQUUsQ0FBQztJQUFBa0IsVUFBQSxHQUFBSixnRkFBQSxDQUFBRyxVQUFBO0lBQXpDRSxVQUFVLEdBQUFELFVBQUE7SUFBRUUsYUFBYSxHQUFBRixVQUFBO0VBQ2hDLElBQUFHLFVBQUEsR0FBOENyQiwrQ0FBUSxDQUFDLEtBQUssQ0FBQztJQUFBc0IsVUFBQSxHQUFBUixnRkFBQSxDQUFBTyxVQUFBO0lBQXRERSxlQUFlLEdBQUFELFVBQUE7SUFBRUUsa0JBQWtCLEdBQUFGLFVBQUEsSUFBb0IsQ0FBQztFQUMvRCxJQUFBRyxVQUFBLEdBQWtEekIsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQTBCLFVBQUEsR0FBQVosZ0ZBQUEsQ0FBQVcsVUFBQTtJQUExREUsaUJBQWlCLEdBQUFELFVBQUE7SUFBRUUsb0JBQW9CLEdBQUFGLFVBQUE7RUFDOUMsSUFBQUcsVUFBQSxHQUE4QjdCLCtDQUFRLENBQUMsSUFBSSxDQUFDO0lBQUE4QixXQUFBLEdBQUFoQixnRkFBQSxDQUFBZSxVQUFBO0lBQXJDRSxPQUFPLEdBQUFELFdBQUE7SUFBRUUsVUFBVSxHQUFBRixXQUFB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Q29tcG9uZW50cy9XaWRnZXRzL0ZlYXR1cmVzL0ZlYXR1cmVXaWRnZXRzT25ib2FyZGluZy5qc3g/NGNmYSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENvbnRhaW5lciwgU2tlbGV0b24sIFRpdGxlLCBMYWJlbCB9IGZyb20gXCJAYnNmL2ZvcmNlLXVpXCI7XG5pbXBvcnQgYXBpRmV0Y2ggZnJvbSAnQHdvcmRwcmVzcy9hcGktZmV0Y2gnO1xuaW1wb3J0IHsgX18gfSBmcm9tIFwiQHdvcmRwcmVzcy9pMThuXCI7XG5pbXBvcnQgV2lkZ2V0c09uYm9hcmRpbmcgZnJvbSAnQGNvbXBvbmVudHMvRGFzaGJvYXJkL1dpZGdldHNPbmJvYXJkaW5nJztcblxuY29uc3QgRmVhdHVyZVdpZGdldHNPbmJvYXJkaW5nID0gKHsgc2V0Q3VycmVudFN0ZXAgfSkgPT4ge1xuXG4gICAgY29uc3QgW2FsbFdpZGdldHNEYXRhLCBzZXRBbGxXaWRnZXRzRGF0YV0gPSB1c2VTdGF0ZShudWxsKTsgLy8gSW5pdGlhbGl6ZSBzdGF0ZS5cbiAgICBjb25zdCBbc2VhcmNoVGVybSwgc2V0U2VhcmNoVGVybV0gPSB1c2VTdGF0ZSgnJyk7XG4gICAgY29uc3QgW2xvYWRpbmdBY3RpdmF0ZSwgc2V0TG9hZGluZ0FjdGl2YXRlXSA9IHVzZVN0YXRlKGZhbHNlKTsgLy8gTG9hZGluZyBzdGF0ZSBmb3IgYWN0aXZhdGUgYnV0dG9uXG4gICAgY29uc3QgW2xvYWRpbmdEZWFjdGl2YXRlLCBzZXRMb2FkaW5nRGVhY3RpdmF0ZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW3VwZGF0ZUNvdW50ZXIsIHNldFVwZGF0ZUNvdW50ZXJdID0gdXNlU3RhdGUoMCk7XG5cblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZldGNoU2V0dGluZ3MgPSAoKSA9PiB7XG4gICAgICAgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgYXBpRmV0Y2goe1xuICAgICAgICAgICAgICAgIHBhdGg6ICcvdWFlbC92MS93aWRnZXRzJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgICAgICdYLVdQLU5vbmNlJzogdWFlbFNldHRpbmdzRGF0YS51YWVsX25vbmNlX2FjdGlvbiwgLy8gVXNlIHRoZSBjb3JyZWN0IG5vbmNlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2lkZ2V0c0RhdGEgPSBjb252ZXJ0VG9XaWRnZXRzQXJyYXkoZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgc2V0QWxsV2lkZ2V0c0RhdGEod2lkZ2V0c0RhdGEpO1xuICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTsgLy8gU3RvcCBsb2FkaW5nXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTsgLy8gU3RvcCBsb2FkaW5nXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgZmV0Y2hTZXR0aW5ncygpO1xuXG4gICAgICAgIGhpc3RvcnkucHVzaFN0YXRlKG51bGwsIFwiXCIsIHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcblxuICAgICAgICBjb25zdCBoYW5kbGVCYWNrQnV0dG9uID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2N1cnJlbnRTdGVwJywgJzEnKTtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgfTtcbiAgICBcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgaGFuZGxlQmFja0J1dHRvbik7XG4gICAgXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCBoYW5kbGVCYWNrQnV0dG9uKTtcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgfSwgW10pO1xuXG4gICAgLy8gTmV3IGZ1bmN0aW9uIHRvIGhhbmRsZSBzZWFyY2ggaW5wdXQgY2hhbmdlXG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQ2hhbmdlID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIHNldFNlYXJjaFRlcm0oZXZlbnQudGFyZ2V0LnZhbHVlLnRvTG93ZXJDYXNlKCkpO1xuICAgIH07XG5cbiAgICAvLyBGaWx0ZXIgd2lkZ2V0cyBiYXNlZCBvbiBzZWFyY2ggdGVybVxuICAgIGNvbnN0IGZpbHRlcmVkV2lkZ2V0cyA9IGFsbFdpZGdldHNEYXRhPy5maWx0ZXIod2lkZ2V0ID0+XG4gICAgICAgIHdpZGdldC50aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pIHx8XG4gICAgICAgIHdpZGdldC5rZXl3b3Jkcz8uc29tZShrZXl3b3JkID0+IGtleXdvcmQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKSlcbiAgICApO1xuXG4gICAgY29uc3QgaGFuZGxlQWN0aXZhdGVBbGwgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIHNldExvYWRpbmdBY3RpdmF0ZSh0cnVlKTtcblxuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyB3aW5kb3cuRm9ybURhdGEoKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdhY3Rpb24nLCAndWFlbF9idWxrX2FjdGl2YXRlX3dpZGdldHMnKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdub25jZScsIHVhZWxTZXR0aW5nc0RhdGEuYWpheF9ub25jZSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlGZXRjaCh7XG4gICAgICAgICAgICAgICAgdXJsOiB1YWVsU2V0dGluZ3NEYXRhLmFqYXhfdXJsLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgIGJvZHk6IGZvcm1EYXRhLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHNldExvYWRpbmdBY3RpdmF0ZShmYWxzZSk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICBzZXRBbGxXaWRnZXRzRGF0YShwcmV2V2lkZ2V0cyA9PlxuICAgICAgICAgICAgICAgICAgICBwcmV2V2lkZ2V0cy5tYXAod2lkZ2V0ID0+ICh7IC4uLndpZGdldCwgaXNfYWN0aXZlOiB0cnVlIH0pKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgc2V0VXBkYXRlQ291bnRlcihwcmV2ID0+IHByZXYgKyAxKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZHVyaW5nIEFKQVggcmVxdWVzdDonLCBkYXRhLmVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHNldExvYWRpbmdBY3RpdmF0ZShmYWxzZSk7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBkdXJpbmcgQUpBWCByZXF1ZXN0OicsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVEZWFjdGl2YXRlQWxsID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBzZXRMb2FkaW5nRGVhY3RpdmF0ZSh0cnVlKTtcblxuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyB3aW5kb3cuRm9ybURhdGEoKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdhY3Rpb24nLCAndWFlbF9idWxrX2RlYWN0aXZhdGVfd2lkZ2V0cycpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ25vbmNlJywgdWFlbFNldHRpbmdzRGF0YS5hamF4X25vbmNlKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUZldGNoKHtcbiAgICAgICAgICAgICAgICB1cmw6IHVhZWxTZXR0aW5nc0RhdGEuYWpheF91cmwsXG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgc2V0TG9hZGluZ0RlYWN0aXZhdGUoZmFsc2UpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgc2V0QWxsV2lkZ2V0c0RhdGEocHJldldpZGdldHMgPT5cbiAgICAgICAgICAgICAgICAgICAgcHJldldpZGdldHMubWFwKHdpZGdldCA9PiAoeyAuLi53aWRnZXQsIGlzX2FjdGl2ZTogZmFsc2UgfSkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBzZXRVcGRhdGVDb3VudGVyKHByZXYgPT4gcHJldiArIDEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBkdXJpbmcgQUpBWCByZXF1ZXN0OicsIGRhdGEuZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgc2V0TG9hZGluZ0RlYWN0aXZhdGUoZmFsc2UpO1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZHVyaW5nIEFKQVggcmVxdWVzdDonLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gY29udmVydFRvV2lkZ2V0c0FycmF5KGRhdGEpIHtcbiAgICAgICAgY29uc3Qgd2lkZ2V0cyA9IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB3aWRnZXQgPSBkYXRhW2tleV07XG4gICAgICAgICAgICAgICAgd2lkZ2V0cy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGtleSwgLy8gVXNpbmcgdGhlIGtleSBhcyAnd2lkZ2V0VGl0bGUnXG4gICAgICAgICAgICAgICAgICAgIHNsdWc6IHdpZGdldC5zbHVnLFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogd2lkZ2V0LnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICBrZXl3b3Jkczogd2lkZ2V0LmtleXdvcmRzLFxuICAgICAgICAgICAgICAgICAgICBpY29uOiA8aSBjbGFzc05hbWU9e3dpZGdldC5pY29ufT48L2k+LFxuICAgICAgICAgICAgICAgICAgICB0aXRsZV91cmw6IHdpZGdldC50aXRsZV91cmwsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHdpZGdldC5kZWZhdWx0LFxuICAgICAgICAgICAgICAgICAgICBkb2NfdXJsOiB3aWRnZXQuZG9jX3VybCxcbiAgICAgICAgICAgICAgICAgICAgaXNfcHJvOiB3aWRnZXQuaXNfcHJvLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogd2lkZ2V0LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICBpc19hY3RpdmU6IHdpZGdldC5pc19hY3RpdmF0ZSAhPT0gdW5kZWZpbmVkID8gd2lkZ2V0LmlzX2FjdGl2YXRlIDogdHJ1ZSwgLy8gQ2hlY2sgaWYgaXNfYWN0aXZhdGUgaXMgc2V0XG4gICAgICAgICAgICAgICAgICAgIGRlbW9fdXJsOiB3aWRnZXQuZGVtb191cmwgIT09IHVuZGVmaW5lZCA/IHdpZGdldC5kZW1vX3VybCA6IHdpZGdldC5kb2NfdXJsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gd2lkZ2V0cztcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ncm91bmRlZC1sZyBiZy13aGl0ZSBwLTYgdWFlLW9uYm9hcmRpbmctY3VzdG9taXplJz5cbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LXRleHQtcHJpbWFyeSBtLTAgbWItMlwiIHN0eWxlPXt7IGZvbnRTaXplOiAnMS40cmVtJywgbGluZUhlaWdodDogJzEuM2VtJyB9fT5cbiAgICAgICAgICAgICAgICB7X18oXCJDdXN0b21pemUgWW91ciBVQUUgU2V0dXBcIiwgXCJ1YWVsXCIpfVxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtbWQgZm9udC1tZWRpdW0gdGV4dC10ZXh0LXRlcnRpYXJ5IG0tMFwiIHN0eWxlPXt7IGxpbmVIZWlnaHQ6ICcxLjZlbSd9fT5cbiAgICAgICAgICAgICAgICB7X18oXG4gICAgICAgICAgICAgICAgICAgIFwiQWN0aXZhdGUgb25seSB3aGF0IHlvdSBuZWVkIHRvIGtlZXAgeW91ciB3ZWJzaXRlIGZhc3QgYW5kIG9wdGltaXplZC5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ1YWVsXCJcbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9J2ZsZXggYmctYmxhY2sgZmxleC1jb2wgcm91bmRlZC1sZycgc3R5bGU9e3sgbWFyZ2luVG9wOiAnMnJlbScgfX0+XG4gICAgICAgICAgICAgICAge2xvYWRpbmcgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgYWxpZ249XCJzdHJldGNoXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicC0yIGdhcC0xLjUgZ3JpZCBncmlkLWNvbHMtMiBtZDpncmlkLWNvbHMtNFwiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiI0Y5RkFGQlwiXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclR5cGU9XCJncmlkXCJcbiAgICAgICAgICAgICAgICAgICAgZ2FwPVwiXCJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeT1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtbLi4uQXJyYXkoMzApXS5tYXAoKF8sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Q29udGFpbmVyLkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduU2VsZj1cImF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHBhZGRpbmc6ICczLjVyZW0nIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC13cmFwIHJvdW5kZWQtbWQgc2hhZG93LWNvbnRhaW5lci1pdGVtIGJnLWJhY2tncm91bmQtcHJpbWFyeSBzcGFjZS15LTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTa2VsZXRvbiBjbGFzc05hbWU9J3ctMTIgaC0yIHJvdW5kZWQtbWQnIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNrZWxldG9uIGNsYXNzTmFtZT0ndy0xNiBoLTIgcm91bmRlZC1tZCcgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2tlbGV0b24gY2xhc3NOYW1lPSd3LTEyIGgtMiByb3VuZGVkLW1kJyAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Db250YWluZXIuSXRlbT5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9Db250YWluZXI+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ249XCJzdHJldGNoXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFdpZGdldHNPbmJvYXJkaW5nIHNldEN1cnJlbnRTdGVwPXtzZXRDdXJyZW50U3RlcH0gd2lkZ2V0cz17ZmlsdGVyZWRXaWRnZXRzfSB1cGRhdGVDb3VudGVyPXt1cGRhdGVDb3VudGVyfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgRmVhdHVyZVdpZGdldHNPbmJvYXJkaW5nXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIkNvbnRhaW5lciIsIlNrZWxldG9uIiwiVGl0bGUiLCJMYWJlbCIsImFwaUZldGNoIiwiX18iLCJXaWRnZXRzT25ib2FyZGluZyIsIkZlYXR1cmVXaWRnZXRzT25ib2FyZGluZyIsIl9yZWYiLCJzZXRDdXJyZW50U3RlcCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFsbFdpZGdldHNEYXRhIiwic2V0QWxsV2lkZ2V0c0RhdGEiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNlYXJjaFRlcm0iLCJzZXRTZWFyY2hUZXJtIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJsb2FkaW5nQWN0aXZhdGUiLCJzZXRMb2FkaW5nQWN0aXZhdGUiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImxvYWRpbmdEZWFjdGl2YXRlIiwic2V0TG9hZGluZ0RlYWN0aXZhdGUiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJ1cGRhdGVDb3VudGVyIiwic2V0VXBkYXRlQ291bnRlciIsImZldGNoU2V0dGluZ3MiLCJwYXRoIiwiaGVhZGVycyIsInVhZWxTZXR0aW5nc0RhdGEiLCJ1YWVsX25vbmNlX2FjdGlvbiIsInRoZW4iLCJkYXRhIiwid2lkZ2V0c0RhdGEiLCJjb252ZXJ0VG9XaWRnZXRzQXJyYXkiLCJlcnIiLCJoaXN0b3J5IiwicHVzaFN0YXRlIiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwiaGFuZGxlQmFja0J1dHRvbiIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJsb2NhbFN0b3JhZ2UiLCJzZXRJdGVtIiwicmVsb2FkIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJ0YXJnZXQiLCJ2YWx1ZSIsInRvTG93ZXJDYXNlIiwiZmlsdGVyZWRXaWRnZXRzIiwiZmlsdGVyIiwid2lkZ2V0IiwiX3dpZGdldCRrZXl3b3JkcyIsInRpdGxlIiwiaW5jbHVkZXMiLCJrZXl3b3JkcyIsInNvbWUiLCJrZXl3b3JkIiwiaGFuZGxlQWN0aXZhdGVBbGwiLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiZm9ybURhdGEiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiRm9ybURhdGEiLCJhcHBlbmQiLCJhamF4X25vbmNlIiwidXJsIiwiYWpheF91cmwiLCJtZXRob2QiLCJib2R5Iiwic2VudCIsInN1Y2Nlc3MiLCJwcmV2V2lkZ2V0cyIsIm1hcCIsIl9vYmplY3RTcHJlYWQiLCJpc19hY3RpdmUiLCJjb25zb2xlIiwiZXJyb3IiLCJ0MCIsInN0b3AiLCJhcHBseSIsImFyZ3VtZW50cyIsImhhbmRsZURlYWN0aXZhdGVBbGwiLCJfcmVmMyIsIl9jYWxsZWUyIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwid2lkZ2V0cyIsImtleSIsImhhc093blByb3BlcnR5IiwicHVzaCIsImlkIiwic2x1ZyIsImljb24iLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwidGl0bGVfdXJsIiwiZG9jX3VybCIsImlzX3BybyIsImRlc2NyaXB0aW9uIiwiaXNfYWN0aXZhdGUiLCJ1bmRlZmluZWQiLCJkZW1vX3VybCIsInN0eWxlIiwiZm9udFNpemUiLCJsaW5lSGVpZ2h0IiwibWFyZ2luVG9wIiwiYWxpZ24iLCJiYWNrZ3JvdW5kQ29sb3IiLCJjb250YWluZXJUeXBlIiwiZ2FwIiwianVzdGlmeSIsIl90b0NvbnN1bWFibGVBcnJheSIsIkFycmF5IiwiXyIsImluZGV4IiwiSXRlbSIsImFsaWduU2VsZiIsInBhZGRpbmciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/Components/Widgets/Features/FeatureWidgetsOnboarding.jsx\n");
/***/ }),
/***/ "./src/admin/settings/routes.js":
/*!**************************************!*\
!*** ./src/admin/settings/routes.js ***!
\**************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ routes: function() { return /* binding */ routes; }\n/* harmony export */ });\nvar routes = {\n dashboard: {\n path: \"dashboard\"\n },\n widgets: {\n path: \"widgets\"\n },\n settings: {\n path: \"settings\"\n },\n headerFooterBuilder: {\n path: \"elementor-hf\"\n },\n onboarding: {\n path: \"onboarding\"\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvYWRtaW4vc2V0dGluZ3Mvcm91dGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxJQUFNQSxNQUFNLEdBQUc7RUFDbEJDLFNBQVMsRUFBRTtJQUNQQyxJQUFJLEVBQUU7RUFDVixDQUFDO0VBQ0RDLE9BQU8sRUFBRTtJQUNMRCxJQUFJLEVBQUU7RUFDVixDQUFDO0VBQ0RFLFFBQVEsRUFBRTtJQUNORixJQUFJLEVBQUU7RUFDVixDQUFDO0VBQ0RHLG1CQUFtQixFQUFFO0lBQ2pCSCxJQUFJLEVBQUU7RUFDVixDQUFDO0VBQ0RJLFVBQVUsRUFBRTtJQUNSSixJQUFJLEVBQUU7RUFDVjtBQUNKLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vc3JjL2FkbWluL3NldHRpbmdzL3JvdXRlcy5qcz9lZjM0Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCByb3V0ZXMgPSB7XG4gICAgZGFzaGJvYXJkOiB7XG4gICAgICAgIHBhdGg6IFwiZGFzaGJvYXJkXCIsXG4gICAgfSxcbiAgICB3aWRnZXRzOiB7XG4gICAgICAgIHBhdGg6IFwid2lkZ2V0c1wiLFxuICAgIH0sXG4gICAgc2V0dGluZ3M6IHtcbiAgICAgICAgcGF0aDogXCJzZXR0aW5nc1wiLFxuICAgIH0sXG4gICAgaGVhZGVyRm9vdGVyQnVpbGRlcjogeyBcbiAgICAgICAgcGF0aDogXCJlbGVtZW50b3ItaGZcIiBcbiAgICB9LFxuICAgIG9uYm9hcmRpbmc6IHsgXG4gICAgICAgIHBhdGg6IFwib25ib2FyZGluZ1wiIFxuICAgIH1cbn0iXSwibmFtZXMiOlsicm91dGVzIiwiZGFzaGJvYXJkIiwicGF0aCIsIndpZGdldHMiLCJzZXR0aW5ncyIsImhlYWRlckZvb3RlckJ1aWxkZXIiLCJvbmJvYXJkaW5nIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/admin/settings/routes.js\n");
/***/ }),
/***/ "./src/index.js":
/*!**********************!*\
!*** ./src/index.js ***!
\**********************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-dom/client */ \"./node_modules/react-dom/client.js\");\n/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/dom-ready */ \"@wordpress/dom-ready\");\n/* harmony import */ var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _Components_NavMenu__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Components/NavMenu */ \"./src/Components/NavMenu.js\");\n/* harmony import */ var _App__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./App */ \"./src/App.js\");\n/* harmony import */ var _styles_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./styles.css */ \"./src/styles.css\");\n // Import from react-dom/client for React 18\n\n\n\n\n_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_1___default()(function () {\n var rootElement = document.getElementById(\"uae-settings-app\");\n if (rootElement) {\n var root = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_0__.createRoot)(rootElement); // Use createRoot() for React 18\n root.render(/*#__PURE__*/React.createElement(_App__WEBPACK_IMPORTED_MODULE_3__[\"default\"], null));\n }\n if (uaelSettingsData.is_lite_active) {\n if (window.location.href === uaelSettingsData.header_footer_builder || \"yes\" === uaelSettingsData.is_hfe_post) {\n var navMenuElement = document.getElementById(\"hfe-admin-top-bar-root\");\n if (navMenuElement) {\n var newDiv = document.createElement(\"div\");\n newDiv.id = \"uae-settings-app\";\n navMenuElement.appendChild(newDiv);\n var navMenuRoot = (0,react_dom_client__WEBPACK_IMPORTED_MODULE_0__.createRoot)(newDiv);\n navMenuRoot.render(/*#__PURE__*/React.createElement(_Components_NavMenu__WEBPACK_IMPORTED_MODULE_2__[\"default\"], null));\n }\n }\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE4QyxDQUFDO0FBQ0g7QUFDOUI7QUFDVTtBQUNGO0FBRXRCQywyREFBUSxDQUFDLFlBQU07RUFDZCxJQUFNRyxXQUFXLEdBQUdDLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDLGtCQUFrQixDQUFDO0VBQy9ELElBQUlGLFdBQVcsRUFBRTtJQUNoQixJQUFNRyxJQUFJLEdBQUdQLDREQUFVLENBQUNJLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDdENHLElBQUksQ0FBQ0MsTUFBTSxjQUFDQyxLQUFBLENBQUFDLGFBQUEsQ0FBQ1AsNENBQUcsTUFBRSxDQUFDLENBQUM7RUFDckI7RUFFQSxJQUFJUSxnQkFBZ0IsQ0FBQ0MsY0FBYyxFQUFHO0lBQ3JDLElBQUtDLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLEtBQUtKLGdCQUFnQixDQUFDSyxxQkFBcUIsSUFBSSxLQUFLLEtBQUtMLGdCQUFnQixDQUFDTSxXQUFXLEVBQUc7TUFDaEgsSUFBTUMsY0FBYyxHQUFHYixRQUFRLENBQUNDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQztNQUN4RSxJQUFJWSxjQUFjLEVBQUU7UUFDbkIsSUFBTUMsTUFBTSxHQUFHZCxRQUFRLENBQUNLLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDNUNTLE1BQU0sQ0FBQ0MsRUFBRSxHQUFHLGtCQUFrQjtRQUM5QkYsY0FBYyxDQUFDRyxXQUFXLENBQUNGLE1BQU0sQ0FBQztRQUVsQyxJQUFNRyxXQUFXLEdBQUd0Qiw0REFBVSxDQUFDbUIsTUFBTSxDQUFDO1FBQ3RDRyxXQUFXLENBQUNkLE1BQU0sY0FBQ0MsS0FBQSxDQUFBQyxhQUFBLENBQUNSLDJEQUFPLE1BQUUsQ0FBQyxDQUFDO01BQ2hDO0lBQ0Q7RUFDRDtBQUNELENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9zcmMvaW5kZXguanM/YjYzNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSb290IH0gZnJvbSBcInJlYWN0LWRvbS9jbGllbnRcIjsgLy8gSW1wb3J0IGZyb20gcmVhY3QtZG9tL2NsaWVudCBmb3IgUmVhY3QgMThcbmltcG9ydCBkb21SZWFkeSBmcm9tIFwiQHdvcmRwcmVzcy9kb20tcmVhZHlcIjtcbmltcG9ydCBOYXZNZW51IGZyb20gJ0Bjb21wb25lbnRzL05hdk1lbnUnXG5pbXBvcnQgQXBwIGZyb20gXCIuL0FwcFwiO1xuaW1wb3J0IFwiLi9zdHlsZXMuY3NzXCI7XG5cbmRvbVJlYWR5KCgpID0+IHtcblx0Y29uc3Qgcm9vdEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInVhZS1zZXR0aW5ncy1hcHBcIik7XG5cdGlmIChyb290RWxlbWVudCkge1xuXHRcdGNvbnN0IHJvb3QgPSBjcmVhdGVSb290KHJvb3RFbGVtZW50KTsgLy8gVXNlIGNyZWF0ZVJvb3QoKSBmb3IgUmVhY3QgMThcblx0XHRyb290LnJlbmRlcig8QXBwIC8+KTtcblx0fVxuXHRcblx0aWYoIHVhZWxTZXR0aW5nc0RhdGEuaXNfbGl0ZV9hY3RpdmUgKSB7XG5cdFx0aWYgKCB3aW5kb3cubG9jYXRpb24uaHJlZiA9PT0gdWFlbFNldHRpbmdzRGF0YS5oZWFkZXJfZm9vdGVyX2J1aWxkZXIgfHwgXCJ5ZXNcIiA9PT0gdWFlbFNldHRpbmdzRGF0YS5pc19oZmVfcG9zdCApIHtcblx0XHRcdGNvbnN0IG5hdk1lbnVFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJoZmUtYWRtaW4tdG9wLWJhci1yb290XCIpO1xuXHRcdFx0aWYgKG5hdk1lbnVFbGVtZW50KSB7XG5cdFx0XHRcdGNvbnN0IG5ld0RpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG5cdFx0XHRcdG5ld0Rpdi5pZCA9IFwidWFlLXNldHRpbmdzLWFwcFwiO1xuXHRcdFx0XHRuYXZNZW51RWxlbWVudC5hcHBlbmRDaGlsZChuZXdEaXYpO1xuXHRcdFxuXHRcdFx0XHRjb25zdCBuYXZNZW51Um9vdCA9IGNyZWF0ZVJvb3QobmV3RGl2KTtcblx0XHRcdFx0bmF2TWVudVJvb3QucmVuZGVyKDxOYXZNZW51IC8+KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn0pO1xuIl0sIm5hbWVzIjpbImNyZWF0ZVJvb3QiLCJkb21SZWFkeSIsIk5hdk1lbnUiLCJBcHAiLCJyb290RWxlbWVudCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJyb290IiwicmVuZGVyIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwidWFlbFNldHRpbmdzRGF0YSIsImlzX2xpdGVfYWN0aXZlIiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwiaGVhZGVyX2Zvb3Rlcl9idWlsZGVyIiwiaXNfaGZlX3Bvc3QiLCJuYXZNZW51RWxlbWVudCIsIm5ld0RpdiIsImlkIiwiYXBwZW5kQ2hpbGQiLCJuYXZNZW51Um9vdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/index.js\n");
/***/ }),
/***/ "./src/router/context.js":
/*!*******************************!*\
!*** ./src/router/context.js ***!
\*******************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RouterContext: function() { return /* binding */ RouterContext; },\n/* harmony export */ history: function() { return /* binding */ history; }\n/* harmony export */ });\n/* harmony import */ var history__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! history */ \"./node_modules/history/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"./src/router/utils.js\");\n\n\nvar history = (0,history__WEBPACK_IMPORTED_MODULE_1__.createBrowserHistory)();\nvar RouterContext = wp.element.createContext({\n route: (0,_utils__WEBPACK_IMPORTED_MODULE_0__.locationToRoute)(history.location)\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcm91dGVyL2NvbnRleHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUErQztBQUNMO0FBRW5DLElBQU1FLE9BQU8sR0FBR0YsNkRBQW9CLENBQUMsQ0FBQztBQUN0QyxJQUFNRyxhQUFhLEdBQUdDLEVBQUUsQ0FBQ0MsT0FBTyxDQUFDQyxhQUFhLENBQUM7RUFDcERDLEtBQUssRUFBRU4sdURBQWUsQ0FBQ0MsT0FBTyxDQUFDTSxRQUFRO0FBQ3pDLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL3VhZWwvLi9zcmMvcm91dGVyL2NvbnRleHQuanM/MDMwNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVCcm93c2VySGlzdG9yeSB9IGZyb20gXCJoaXN0b3J5XCI7XG5pbXBvcnQgeyBsb2NhdGlvblRvUm91dGUgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgY29uc3QgaGlzdG9yeSA9IGNyZWF0ZUJyb3dzZXJIaXN0b3J5KCk7XG5leHBvcnQgY29uc3QgUm91dGVyQ29udGV4dCA9IHdwLmVsZW1lbnQuY3JlYXRlQ29udGV4dCh7XG4gIHJvdXRlOiBsb2NhdGlvblRvUm91dGUoaGlzdG9yeS5sb2NhdGlvbiksXG59KTtcbiJdLCJuYW1lcyI6WyJjcmVhdGVCcm93c2VySGlzdG9yeSIsImxvY2F0aW9uVG9Sb3V0ZSIsImhpc3RvcnkiLCJSb3V0ZXJDb250ZXh0Iiwid3AiLCJlbGVtZW50IiwiY3JlYXRlQ29udGV4dCIsInJvdXRlIiwibG9jYXRpb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/router/context.js\n");
/***/ }),
/***/ "./src/router/customRouter.js":
/*!************************************!*\
!*** ./src/router/customRouter.js ***!
\************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ \"./src/router/index.js\");\n/* harmony import */ var _Components_Dashboard_Dashboard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Components/Dashboard/Dashboard */ \"./src/Components/Dashboard/Dashboard.jsx\");\n/* harmony import */ var _Components_Widgets_Features__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Components/Widgets/Features */ \"./src/Components/Widgets/Features.jsx\");\n/* harmony import */ var _Components_Settings_Settings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Components/Settings/Settings */ \"./src/Components/Settings/Settings.jsx\");\n/* harmony import */ var _admin_settings_routes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../admin/settings/routes */ \"./src/admin/settings/routes.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @bsf/force-ui */ \"./node_modules/@bsf/force-ui/dist/force-ui.js\");\n/* harmony import */ var _bsf_force_ui__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _Components_Onboarding_Onboarding_jsx__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Components/Onboarding/Onboarding.jsx */ \"./src/Components/Onboarding/Onboarding.jsx\");\n\n\n\n\n\n\n\n\n\nvar CustomRouter = function CustomRouter() {\n var _routes$dashboard;\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false),\n _useState2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_useState, 2),\n loaded = _useState2[0],\n setLoaded = _useState2[1];\n var firstTimeUser = false;\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n setTimeout(function () {\n setLoaded(true);\n }, 1000); // Simulating a load delay of 1 second\n }, []);\n if (!loaded) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"loading-spinner flex items-center justify-center h-screen\",\n style: {\n background: \"#F9FAFB\"\n }\n }, /*#__PURE__*/React.createElement(_bsf_force_ui__WEBPACK_IMPORTED_MODULE_7__.Loader, {\n icon: null,\n size: \"lg\",\n variant: \"primary\"\n }));\n }\n return /*#__PURE__*/React.createElement(_index__WEBPACK_IMPORTED_MODULE_2__.Router, {\n routes: _admin_settings_routes__WEBPACK_IMPORTED_MODULE_6__.routes,\n defaultRoute: _admin_settings_routes__WEBPACK_IMPORTED_MODULE_6__.routes === null || _admin_settings_routes__WEBPACK_IMPORTED_MODULE_6__.routes === void 0 || (_routes$dashboard = _admin_settings_routes__WEBPACK_IMPORTED_MODULE_6__.routes.dashboard) === null || _routes$dashboard === void 0 ? void 0 : _routes$dashboard.path\n }, /*#__PURE__*/React.createElement(_index__WEBPACK_IMPORTED_MODULE_2__.Route, {\n path: _admin_settings_routes__WEBPACK_IMPORTED_MODULE_6__.routes.dashboard.path\n }, /*#__PURE__*/React.createElement(_Components_Dashboard_Dashboard__WEBPACK_IMPORTED_MODULE_3__[\"default\"], null)), /*#__PURE__*/React.createElement(_index__WEBPACK_IMPORTED_MODULE_2__.Route, {\n path: _admin_settings_routes__WEBPACK_IMPORTED_MODULE_6__.routes.onboarding.path\n }, /*#__PURE__*/React.createElement(_Components_Onboarding_Onboarding_jsx__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null)), /*#__PURE__*/React.createElement(_index__WEBPACK_IMPORTED_MODULE_2__.Route, {\n path: _admin_settings_routes__WEBPACK_IMPORTED_MODULE_6__.routes.widgets.path\n }, /*#__PURE__*/React.createElement(_Components_Widgets_Features__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null)), /*#__PURE__*/React.createElement(_index__WEBPACK_IMPORTED_MODULE_2__.Route, {\n path: _admin_settings_routes__WEBPACK_IMPORTED_MODULE_6__.routes.settings.path\n }, /*#__PURE__*/React.createElement(_Components_Settings_Settings__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null)));\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (CustomRouter);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcm91dGVyL2N1c3RvbVJvdXRlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQTRDO0FBQ2hCO0FBQ1o7QUFDRDtBQUNBO0FBQ0E7QUFDd0I7QUFDdEI7QUFHakIsSUFBTVcsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztFQUFBLElBQUFDLGlCQUFBO0VBQ3pCLElBQUFDLFNBQUEsR0FBNEJiLCtDQUFRLENBQUMsS0FBSyxDQUFDO0lBQUFjLFVBQUEsR0FBQUMsZ0ZBQUEsQ0FBQUYsU0FBQTtJQUFwQ0csTUFBTSxHQUFBRixVQUFBO0lBQUVHLFNBQVMsR0FBQUgsVUFBQTtFQUN2QixJQUFNSSxhQUFhLEdBQUcsS0FBSztFQUU1QmpCLGdEQUFTLENBQUMsWUFBTTtJQUNka0IsVUFBVSxDQUFDLFlBQU07TUFDZkYsU0FBUyxDQUFDLElBQUksQ0FBQztJQUNqQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztFQUNaLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixJQUFJLENBQUNELE1BQU0sRUFBRTtJQUNYLG9CQUNFSSxLQUFBLENBQUFDLGFBQUE7TUFDRUMsU0FBUyxFQUFDLDJEQUEyRDtNQUNyRUMsS0FBSyxFQUFFO1FBQUVDLFVBQVUsRUFBRTtNQUFVO0lBQUUsZ0JBRWpDSixLQUFBLENBQUFDLGFBQUEsQ0FBQ1osaURBQU07TUFBQ2dCLElBQUksRUFBRSxJQUFLO01BQUNDLElBQUksRUFBQyxJQUFJO01BQUNDLE9BQU8sRUFBQztJQUFTLENBQUUsQ0FDOUMsQ0FBQztFQUVWO0VBRUEsb0JBQ0VQLEtBQUEsQ0FBQUMsYUFBQSxDQUFDbkIsMENBQU07SUFBQ00sTUFBTSxFQUFFQSwwREFBTztJQUFDb0IsWUFBWSxFQUFFcEIsMERBQU0sYUFBTkEsMERBQU0sZ0JBQUFJLGlCQUFBLEdBQU5KLDBEQUFNLENBQUVxQixTQUFTLGNBQUFqQixpQkFBQSx1QkFBakJBLGlCQUFBLENBQW1Ca0I7RUFBSyxnQkFDOURWLEtBQUEsQ0FBQUMsYUFBQSxDQUFDbEIseUNBQUs7SUFBQzJCLElBQUksRUFBRXRCLDBEQUFNLENBQUNxQixTQUFTLENBQUNDO0VBQUssZ0JBQUNWLEtBQUEsQ0FBQUMsYUFBQSxDQUFDaEIsdUVBQVMsTUFBRSxDQUFRLENBQUMsZUFDekRlLEtBQUEsQ0FBQUMsYUFBQSxDQUFDbEIseUNBQUs7SUFBQzJCLElBQUksRUFBRXRCLDBEQUFNLENBQUN1QixVQUFVLENBQUNEO0VBQUssZ0JBQUNWLEtBQUEsQ0FBQUMsYUFBQSxDQUFDWCw2RUFBVSxNQUFFLENBQVEsQ0FBQyxlQUMzRFUsS0FBQSxDQUFBQyxhQUFBLENBQUNsQix5Q0FBSztJQUFDMkIsSUFBSSxFQUFFdEIsMERBQU0sQ0FBQ3dCLE9BQU8sQ0FBQ0Y7RUFBSyxnQkFBQ1YsS0FBQSxDQUFBQyxhQUFBLENBQUNmLG9FQUFRLE1BQUUsQ0FBUSxDQUFDLGVBQ3REYyxLQUFBLENBQUFDLGFBQUEsQ0FBQ2xCLHlDQUFLO0lBQUMyQixJQUFJLEVBQUV0QiwwREFBTSxDQUFDeUIsUUFBUSxDQUFDSDtFQUFLLGdCQUFDVixLQUFBLENBQUFDLGFBQUEsQ0FBQ2QscUVBQVEsTUFBRSxDQUFRLENBQ2hELENBQUM7QUFFWCxDQUFDO0FBRUQsK0RBQWVJLFlBQVkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vc3JjL3JvdXRlci9jdXN0b21Sb3V0ZXIuanM/ZDY3YiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUm91dGVyLCBSb3V0ZSwgTGluayB9IGZyb20gJy4vaW5kZXgnO1xuaW1wb3J0IERhc2hib2FyZCBmcm9tICdAY29tcG9uZW50cy9EYXNoYm9hcmQvRGFzaGJvYXJkJztcbmltcG9ydCBGZWF0dXJlcyBmcm9tICdAY29tcG9uZW50cy9XaWRnZXRzL0ZlYXR1cmVzJztcbmltcG9ydCBTZXR0aW5ncyBmcm9tICdAY29tcG9uZW50cy9TZXR0aW5ncy9TZXR0aW5ncyc7XG5pbXBvcnQgeyByb3V0ZXMgfSBmcm9tICdhZG1pbi9zZXR0aW5ncy9yb3V0ZXMnO1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnQGJzZi9mb3JjZS11aSc7XG5pbXBvcnQgT25ib2FyZGluZyBmcm9tICdAY29tcG9uZW50cy9PbmJvYXJkaW5nL09uYm9hcmRpbmcuanN4JztcblxuXG5jb25zdCBDdXN0b21Sb3V0ZXIgPSAoKSA9PiB7XG4gIGNvbnN0IFtsb2FkZWQsIHNldExvYWRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICBjb25zdCBmaXJzdFRpbWVVc2VyID0gZmFsc2VcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0TG9hZGVkKHRydWUpO1xuICAgIH0sIDEwMDApOyAvLyBTaW11bGF0aW5nIGEgbG9hZCBkZWxheSBvZiAxIHNlY29uZFxuICB9LCBbXSk7XG5cbiAgaWYgKCFsb2FkZWQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9XCJsb2FkaW5nLXNwaW5uZXIgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgaC1zY3JlZW5cIlxuICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kOiBcIiNGOUZBRkJcIiB9fVxuICAgICAgPlxuICAgICAgICA8TG9hZGVyIGljb249e251bGx9IHNpemU9XCJsZ1wiIHZhcmlhbnQ9XCJwcmltYXJ5XCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxSb3V0ZXIgcm91dGVzPXtyb3V0ZXN9IGRlZmF1bHRSb3V0ZT17cm91dGVzPy5kYXNoYm9hcmQ/LnBhdGh9PlxuICAgIDxSb3V0ZSBwYXRoPXtyb3V0ZXMuZGFzaGJvYXJkLnBhdGh9PjxEYXNoYm9hcmQgLz48L1JvdXRlPlxuICAgIDxSb3V0ZSBwYXRoPXtyb3V0ZXMub25ib2FyZGluZy5wYXRofT48T25ib2FyZGluZyAvPjwvUm91dGU+XG4gICAgPFJvdXRlIHBhdGg9e3JvdXRlcy53aWRnZXRzLnBhdGh9PjxGZWF0dXJlcyAvPjwvUm91dGU+XG4gICAgPFJvdXRlIHBhdGg9e3JvdXRlcy5zZXR0aW5ncy5wYXRofT48U2V0dGluZ3MgLz48L1JvdXRlPlxuICA8L1JvdXRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEN1c3RvbVJvdXRlcjsiXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJSb3V0ZXIiLCJSb3V0ZSIsIkxpbmsiLCJEYXNoYm9hcmQiLCJGZWF0dXJlcyIsIlNldHRpbmdzIiwicm91dGVzIiwiTG9hZGVyIiwiT25ib2FyZGluZyIsIkN1c3RvbVJvdXRlciIsIl9yb3V0ZXMkZGFzaGJvYXJkIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9hZGVkIiwic2V0TG9hZGVkIiwiZmlyc3RUaW1lVXNlciIsInNldFRpbWVvdXQiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJzdHlsZSIsImJhY2tncm91bmQiLCJpY29uIiwic2l6ZSIsInZhcmlhbnQiLCJkZWZhdWx0Um91dGUiLCJkYXNoYm9hcmQiLCJwYXRoIiwib25ib2FyZGluZyIsIndpZGdldHMiLCJzZXR0aW5ncyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/router/customRouter.js\n");
/***/ }),
/***/ "./src/router/index.js":
/*!*****************************!*\
!*** ./src/router/index.js ***!
\*****************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Link: function() { return /* reexport safe */ _link__WEBPACK_IMPORTED_MODULE_10__.Link; },\n/* harmony export */ Route: function() { return /* reexport safe */ _route__WEBPACK_IMPORTED_MODULE_9__.Route; },\n/* harmony export */ Router: function() { return /* binding */ Router; },\n/* harmony export */ RouterContext: function() { return /* reexport safe */ _context__WEBPACK_IMPORTED_MODULE_8__.RouterContext; },\n/* harmony export */ history: function() { return /* reexport safe */ _context__WEBPACK_IMPORTED_MODULE_8__.history; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\");\n/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\");\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/element */ \"@wordpress/element\");\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils */ \"./src/router/utils.js\");\n/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./context */ \"./src/router/context.js\");\n/* harmony import */ var _route__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./route */ \"./src/router/route.js\");\n/* harmony import */ var _link__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./link */ \"./src/router/link.js\");\n/* harmony import */ var path_to_regexp__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! path-to-regexp */ \"./node_modules/path-to-regexp/dist/index.js\");\n\n\n\n\n\n\nfunction _callSuper(t, o, e) { return o = (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(o), (0,_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(t).constructor) : o.apply(t, e)); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\n\n\n\n\n\n\nvar Router = /*#__PURE__*/function (_Component) {\n function Router(props) {\n var _this;\n (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, Router);\n _this = _callSuper(this, Router, [props]);\n\n // Convert our routes into an array for easy 404 checking\n (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_this, \"handleRouteChange\", function (location) {\n localStorage.setItem('selectedItemId', '1');\n var route = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.locationToRoute)(location === null || location === void 0 ? void 0 : location.location);\n _this.setState({\n route: route\n });\n });\n _this.routes = Object.keys(props.routes).map(function (key) {\n return props.routes[key].path;\n });\n\n // Listen for path changes from the history API\n _this.unlisten = _context__WEBPACK_IMPORTED_MODULE_8__.history.listen(_this.handleRouteChange);\n var _route = (0,_utils__WEBPACK_IMPORTED_MODULE_7__.locationToRoute)(_context__WEBPACK_IMPORTED_MODULE_8__.history.location);\n var search = _context__WEBPACK_IMPORTED_MODULE_8__.history.location.search;\n\n // Define the initial RouterContext value\n _this.state = {\n route: _route,\n defaultRoute: props !== null && props !== void 0 && props.defaultRoute ? \"\".concat(search, \"#\").concat(props === null || props === void 0 ? void 0 : props.defaultRoute) : \"\".concat(search, \"#/\")\n };\n return _this;\n }\n (0,_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(Router, _Component);\n return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Router, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n // Stop listening for changes if the Router component unmounts\n this.unlisten();\n }\n }, {\n key: \"render\",\n value: function render() {\n // Define our variables\n var _this$props = this.props,\n children = _this$props.children,\n NotFound = _this$props.NotFound;\n var _this$state = this.state,\n route = _this$state.route,\n defaultRoute = _this$state.defaultRoute;\n if (!route.hash) {\n _context__WEBPACK_IMPORTED_MODULE_8__.history.push(defaultRoute);\n return /*#__PURE__*/React.createElement(\"div\", null);\n }\n var matched = false;\n // match route\n (this.routes || []).forEach(function (name) {\n var checkMatch = (0,path_to_regexp__WEBPACK_IMPORTED_MODULE_11__.match)(route.hash.substr(1));\n var isMatched = checkMatch(\"\".concat(route.hash.substr(1)));\n if (!isMatched) {\n return;\n }\n matched = {\n name: name,\n data: isMatched\n };\n });\n var routerContextValue = {\n route: route,\n matched: matched\n };\n\n // Check if 404 if no route matched\n var is404 = !matched;\n return /*#__PURE__*/React.createElement(_context__WEBPACK_IMPORTED_MODULE_8__.RouterContext.Provider, {\n value: routerContextValue\n }, is404 ? /*#__PURE__*/React.createElement(\"div\", null, \"Not found\") : children);\n }\n }]);\n}(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__.Component);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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VUFBVSxHQUFHMUMsc0RBQUssQ0FBQ1csS0FBSyxDQUFDd0IsSUFBSSxDQUFDUSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUMsSUFBTUMsU0FBUyxHQUFHRixVQUFVLElBQUFqQixNQUFBLENBQUlkLEtBQUssQ0FBQ3dCLElBQUksQ0FBQ1EsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDQyxTQUFTLEVBQUU7VUFDZDtRQUNGO1FBQ0FMLE9BQU8sR0FBRztVQUNSRSxJQUFJLEVBQUpBLElBQUk7VUFDSkksSUFBSSxFQUFFRDtRQUNSLENBQUM7TUFDSCxDQUFDLENBQUM7TUFFRixJQUFNRSxrQkFBa0IsR0FBRztRQUFFbkMsS0FBSyxFQUFMQSxLQUFLO1FBQUU0QixPQUFPLEVBQVBBO01BQVEsQ0FBQzs7TUFFN0M7TUFDQSxJQUFNUSxLQUFLLEdBQUcsQ0FBQ1IsT0FBTztNQUV0QixvQkFDRUYsS0FBQSxDQUFBQyxhQUFBLENBQUN6QyxtREFBYSxDQUFDbUQsUUFBUTtRQUFDcEIsS0FBSyxFQUFFa0I7TUFBbUIsR0FDL0NDLEtBQUssZ0JBQUdWLEtBQUEsQ0FBQUMsYUFBQSxjQUFLLFdBQWMsQ0FBQyxHQUFHTixRQUNWLENBQUM7SUFFN0I7RUFBQztBQUFBLEVBckVrQnRDLHlEQUFTIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL3NyYy9yb3V0ZXIvaW5kZXguanM/YTE4YyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQHdvcmRwcmVzcy9lbGVtZW50XCI7XG5pbXBvcnQgeyBsb2NhdGlvblRvUm91dGUgfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgaGlzdG9yeSwgUm91dGVyQ29udGV4dCB9IGZyb20gXCIuL2NvbnRleHRcIjtcbmltcG9ydCB7IFJvdXRlIH0gZnJvbSBcIi4vcm91dGVcIjtcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwiLi9saW5rXCI7XG5pbXBvcnQgeyBtYXRjaCB9IGZyb20gXCJwYXRoLXRvLXJlZ2V4cFwiO1xuXG5jbGFzcyBSb3V0ZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIC8vIENvbnZlcnQgb3VyIHJvdXRlcyBpbnRvIGFuIGFycmF5IGZvciBlYXN5IDQwNCBjaGVja2luZ1xuICAgIHRoaXMucm91dGVzID0gT2JqZWN0LmtleXMocHJvcHMucm91dGVzKS5tYXAoXG4gICAgICAoa2V5KSA9PiBwcm9wcy5yb3V0ZXNba2V5XS5wYXRoXG4gICAgKTtcblxuICAgIC8vIExpc3RlbiBmb3IgcGF0aCBjaGFuZ2VzIGZyb20gdGhlIGhpc3RvcnkgQVBJXG4gICAgdGhpcy51bmxpc3RlbiA9IGhpc3RvcnkubGlzdGVuKHRoaXMuaGFuZGxlUm91dGVDaGFuZ2UpO1xuXG4gICAgY29uc3Qgcm91dGUgPSBsb2NhdGlvblRvUm91dGUoaGlzdG9yeS5sb2NhdGlvbik7XG4gICAgY29uc3QgeyBzZWFyY2ggfSA9IGhpc3RvcnkubG9jYXRpb247XG5cbiAgICAvLyBEZWZpbmUgdGhlIGluaXRpYWwgUm91dGVyQ29udGV4dCB2YWx1ZVxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICByb3V0ZSxcbiAgICAgIGRlZmF1bHRSb3V0ZTogcHJvcHM/LmRlZmF1bHRSb3V0ZVxuICAgICAgICA/IGAke3NlYXJjaH0jJHtwcm9wcz8uZGVmYXVsdFJvdXRlfWBcbiAgICAgICAgOiBgJHtzZWFyY2h9Iy9gLFxuICAgIH07XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAvLyBTdG9wIGxpc3RlbmluZyBmb3IgY2hhbmdlcyBpZiB0aGUgUm91dGVyIGNvbXBvbmVudCB1bm1vdW50c1xuICAgIHRoaXMudW5saXN0ZW4oKTtcbiAgfVxuXG4gIGhhbmRsZVJvdXRlQ2hhbmdlID0gKGxvY2F0aW9uKSA9PiB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3NlbGVjdGVkSXRlbUlkJywgJzEnKTtcbiAgICBjb25zdCByb3V0ZSA9IGxvY2F0aW9uVG9Sb3V0ZShsb2NhdGlvbj8ubG9jYXRpb24pO1xuICAgIHRoaXMuc2V0U3RhdGUoeyByb3V0ZTogcm91dGUgfSk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIC8vIERlZmluZSBvdXIgdmFyaWFibGVzXG4gICAgY29uc3QgeyBjaGlsZHJlbiwgTm90Rm91bmQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyByb3V0ZSwgZGVmYXVsdFJvdXRlIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgaWYgKCFyb3V0ZS5oYXNoKSB7XG4gICAgICBoaXN0b3J5LnB1c2goZGVmYXVsdFJvdXRlKTtcbiAgICAgIHJldHVybiA8ZGl2PjwvZGl2PjtcbiAgICB9XG5cbiAgICBsZXQgbWF0Y2hlZCA9IGZhbHNlO1xuICAgIC8vIG1hdGNoIHJvdXRlXG4gICAgKHRoaXMucm91dGVzIHx8IFtdKS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICBjb25zdCBjaGVja01hdGNoID0gbWF0Y2gocm91dGUuaGFzaC5zdWJzdHIoMSkpO1xuICAgICAgY29uc3QgaXNNYXRjaGVkID0gY2hlY2tNYXRjaChgJHtyb3V0ZS5oYXNoLnN1YnN0cigxKX1gKTtcbiAgICAgIGlmICghaXNNYXRjaGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIG1hdGNoZWQgPSB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGRhdGE6IGlzTWF0Y2hlZCxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCByb3V0ZXJDb250ZXh0VmFsdWUgPSB7IHJvdXRlLCBtYXRjaGVkIH07XG5cbiAgICAvLyBDaGVjayBpZiA0MDQgaWYgbm8gcm91dGUgbWF0Y2hlZFxuICAgIGNvbnN0IGlzNDA0ID0gIW1hdGNoZWQ7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFJvdXRlckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3JvdXRlckNvbnRleHRWYWx1ZX0+XG4gICAgICAgIHtpczQwNCA/IDxkaXY+Tm90IGZvdW5kPC9kaXY+IDogY2hpbGRyZW59XG4gICAgICA8L1JvdXRlckNvbnRleHQuUHJvdmlkZXI+XG4gICAgKTtcbiAgfVxufVxuZXhwb3J0IHsgaGlzdG9yeSwgUm91dGVyQ29udGV4dCwgUm91dGVyLCBSb3V0ZSwgTGluayB9O1xuIl0sIm5hbWVzIjpbIkNvbXBvbmVudCIsImxvY2F0aW9uVG9Sb3V0ZSIsImhpc3RvcnkiLCJSb3V0ZXJDb250ZXh0IiwiUm91dGUiLCJMaW5rIiwibWF0Y2giLCJSb3V0ZXIiLCJfQ29tcG9uZW50IiwicHJvcHMiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjayIsIl9jYWxsU3VwZXIiLCJfZGVmaW5lUHJvcGVydHkiLCJsb2NhdGlvbiIsImxvY2FsU3RvcmFnZSIsInNldEl0ZW0iLCJyb3V0ZSIsInNldFN0YXRlIiwicm91dGVzIiwiT2JqZWN0Iiwia2V5cyIsIm1hcCIsImtleSIsInBhdGgiLCJ1bmxpc3RlbiIsImxpc3RlbiIsImhhbmRsZVJvdXRlQ2hhbmdlIiwic2VhcmNoIiwic3RhdGUiLCJkZWZhdWx0Um91dGUiLCJjb25jYXQiLCJfaW5oZXJpdHMiLCJfY3JlYXRlQ2xhc3MiLCJ2YWx1ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJjaGlsZHJlbiIsIk5vdEZvdW5kIiwiX3RoaXMkc3RhdGUiLCJoYXNoIiwicHVzaCIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIm1hdGNoZWQiLCJmb3JFYWNoIiwibmFtZSIsImNoZWNrTWF0Y2giLCJzdWJzdHIiLCJpc01hdGNoZWQiLCJkYXRhIiwicm91dGVyQ29udGV4dFZhbHVlIiwiaXM0MDQiLCJQcm92aWRlciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/router/index.js\n");
/***/ }),
/***/ "./src/router/link.js":
/*!****************************!*\
!*** ./src/router/link.js ***!
\****************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Link: function() { return /* binding */ Link; }\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./context */ \"./src/router/context.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var path_to_regexp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! path-to-regexp */ \"./node_modules/path-to-regexp/dist/index.js\");\n\n\nfunction 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; }\nfunction _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) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(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; }\nvar useContext = wp.element.useContext;\n\n\n\nfunction Link(props) {\n var to = props.to,\n onClick = props.onClick,\n children = props.children,\n activeClassName = props.activeClassName;\n var _useContext = useContext(_context__WEBPACK_IMPORTED_MODULE_2__.RouterContext),\n route = _useContext.route;\n var state = _objectSpread({}, props);\n delete state.activeClassName;\n var isActive = function isActive() {\n var checkMatch = (0,path_to_regexp__WEBPACK_IMPORTED_MODULE_4__.match)(\"\".concat(to));\n return checkMatch(\"\".concat(route.hash.substr(1)));\n };\n var handleClick = function handleClick(e) {\n e.preventDefault();\n // Dont' navigate if current path.\n if (route.path === to && !e.target.classList.contains('uae-user-icon')) {\n return;\n }\n // Trigger onClick prop manually.\n if (onClick) {\n onClick(e);\n }\n if (to === \"elementor-hf\" && uaelSettingsData.header_footer_builder) {\n window.location.href = uaelSettingsData.header_footer_builder;\n return;\n }\n var search = _context__WEBPACK_IMPORTED_MODULE_2__.history.location.search;\n var expectedPage = \"admin.php?page=uaepro\";\n var currentHash = window.location.hash;\n\n // Verify if the current URL is as expected\n if (!search.includes(expectedPage) || !currentHash.includes(to)) {\n // Redirect to the expected URL\n window.location.href = \"\".concat(uaelSettingsData.uaepro_settings_url, \"#\").concat(to);\n return;\n }\n if (!to.includes('settings')) {\n // Remove &tab from the URL.\n var newSearch = search.replace(/&tab=[^&]*/, '');\n // Use history API to navigate page.\n _context__WEBPACK_IMPORTED_MODULE_2__.history.push(\"\".concat(newSearch, \"#\").concat(to));\n } else {\n var changeSearch = search + '&tab=1';\n if (e.target.classList.contains('uae-user-icon') && window.location.hash.includes('settings')) {\n window.location.href = \"\".concat(changeSearch, \"#\").concat(to);\n } else {\n // Use history API to navigate page.\n _context__WEBPACK_IMPORTED_MODULE_2__.history.push(\"\".concat(search, \"#\").concat(to));\n }\n }\n };\n return /*#__PURE__*/React.createElement(\"a\", (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, state, {\n className: classnames__WEBPACK_IMPORTED_MODULE_3___default()((0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, activeClassName, isActive()), props.className),\n onClick: handleClick\n }), children);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcm91dGVyL2xpbmsuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFRQSxVQUFVLEdBQUtDLEVBQUUsQ0FBQ0MsT0FBTyxDQUF6QkYsVUFBVTtBQUNpQztBQUNmO0FBQ0c7QUFFaEMsU0FBU08sSUFBSUEsQ0FBQ0MsS0FBSyxFQUFFO0VBQzFCLElBQVFDLEVBQUUsR0FBeUNELEtBQUssQ0FBaERDLEVBQUU7SUFBRUMsT0FBTyxHQUFnQ0YsS0FBSyxDQUE1Q0UsT0FBTztJQUFFQyxRQUFRLEdBQXNCSCxLQUFLLENBQW5DRyxRQUFRO0lBQUVDLGVBQWUsR0FBS0osS0FBSyxDQUF6QkksZUFBZTtFQUM5QyxJQUFBQyxXQUFBLEdBQWtCYixVQUFVLENBQUNHLG1EQUFhLENBQUM7SUFBbkNXLEtBQUssR0FBQUQsV0FBQSxDQUFMQyxLQUFLO0VBRWIsSUFBSUMsS0FBSyxHQUFBQyxhQUFBLEtBQVFSLEtBQUssQ0FBRTtFQUN4QixPQUFPTyxLQUFLLENBQUNILGVBQWU7RUFFNUIsSUFBTUssUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUEsRUFBUztJQUNyQixJQUFNQyxVQUFVLEdBQUdaLHFEQUFLLElBQUFhLE1BQUEsQ0FBSVYsRUFBRSxDQUFFLENBQUM7SUFDakMsT0FBT1MsVUFBVSxJQUFBQyxNQUFBLENBQUlMLEtBQUssQ0FBQ00sSUFBSSxDQUFDQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQztFQUM5QyxDQUFDO0VBRUQsSUFBTUMsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUlDLENBQUMsRUFBSztJQUN6QkEsQ0FBQyxDQUFDQyxjQUFjLENBQUMsQ0FBQztJQUNsQjtJQUNBLElBQUlWLEtBQUssQ0FBQ1csSUFBSSxLQUFLaEIsRUFBRSxJQUFJLENBQUVjLENBQUMsQ0FBQ0csTUFBTSxDQUFDQyxTQUFTLENBQUNDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRTtNQUN2RTtJQUNGO0lBQ0E7SUFDQSxJQUFJbEIsT0FBTyxFQUFFO01BQ1hBLE9BQU8sQ0FBQ2EsQ0FBQyxDQUFDO0lBQ1o7SUFFQSxJQUFJZCxFQUFFLEtBQUssY0FBYyxJQUFJb0IsZ0JBQWdCLENBQUNDLHFCQUFxQixFQUFHO01BQ3BFQyxNQUFNLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSSxHQUFHSixnQkFBZ0IsQ0FBQ0MscUJBQXFCO01BQzdEO0lBQ0Y7SUFFQSxJQUFRSSxNQUFNLEdBQUs5Qiw2Q0FBTyxDQUFDNEIsUUFBUSxDQUEzQkUsTUFBTTtJQUNkLElBQU1DLFlBQVksR0FBRyx1QkFBdUI7SUFDNUMsSUFBTUMsV0FBVyxHQUFHTCxNQUFNLENBQUNDLFFBQVEsQ0FBQ1osSUFBSTs7SUFFeEM7SUFDQSxJQUFJLENBQUNjLE1BQU0sQ0FBQ0csUUFBUSxDQUFDRixZQUFZLENBQUMsSUFBSSxDQUFDQyxXQUFXLENBQUNDLFFBQVEsQ0FBQzVCLEVBQUUsQ0FBQyxFQUFFO01BQzdEO01BQ0FzQixNQUFNLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSSxNQUFBZCxNQUFBLENBQU1VLGdCQUFnQixDQUFDUyxtQkFBbUIsT0FBQW5CLE1BQUEsQ0FBSVYsRUFBRSxDQUFFO01BQ3RFO0lBQ0o7SUFFQSxJQUFJLENBQUNBLEVBQUUsQ0FBQzRCLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtNQUM1QjtNQUNBLElBQU1FLFNBQVMsR0FBR0wsTUFBTSxDQUFDTSxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztNQUNsRDtNQUNBcEMsNkNBQU8sQ0FBQ3FDLElBQUksSUFBQXRCLE1BQUEsQ0FBSW9CLFNBQVMsT0FBQXBCLE1BQUEsQ0FBSVYsRUFBRSxDQUFFLENBQUM7SUFDcEMsQ0FBQyxNQUFNO01BQ0wsSUFBTWlDLFlBQVksR0FBR1IsTUFBTSxHQUFHLFFBQVE7TUFFdEMsSUFBSVgsQ0FBQyxDQUFDRyxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJRyxNQUFNLENBQUNDLFFBQVEsQ0FBQ1osSUFBSSxDQUFDaUIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQzdGTixNQUFNLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSSxNQUFBZCxNQUFBLENBQU11QixZQUFZLE9BQUF2QixNQUFBLENBQUlWLEVBQUUsQ0FBRTtNQUNoRCxDQUFDLE1BQU07UUFDTDtRQUNBTCw2Q0FBTyxDQUFDcUMsSUFBSSxJQUFBdEIsTUFBQSxDQUFJZSxNQUFNLE9BQUFmLE1BQUEsQ0FBSVYsRUFBRSxDQUFFLENBQUM7TUFDakM7SUFDRjtFQUVGLENBQUM7RUFFRCxvQkFDRWtDLEtBQUEsQ0FBQUMsYUFBQSxNQUFBQywwRUFBQSxLQUNNOUIsS0FBSztJQUNUK0IsU0FBUyxFQUFFekMsaURBQVUsQ0FBQTBDLGlGQUFBLEtBQUluQyxlQUFlLEVBQUdLLFFBQVEsQ0FBQyxDQUFDLEdBQUlULEtBQUssQ0FBQ3NDLFNBQVMsQ0FBRTtJQUMxRXBDLE9BQU8sRUFBRVk7RUFBWSxJQUVwQlgsUUFDQSxDQUFDO0FBRVIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vc3JjL3JvdXRlci9saW5rLmpzPzZmMGUiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyB1c2VDb250ZXh0IH0gPSB3cC5lbGVtZW50O1xuaW1wb3J0IHsgUm91dGVyQ29udGV4dCwgaGlzdG9yeSB9IGZyb20gXCIuL2NvbnRleHRcIjtcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCI7XG5pbXBvcnQgeyBtYXRjaCB9IGZyb20gXCJwYXRoLXRvLXJlZ2V4cFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gTGluayhwcm9wcykge1xuICBjb25zdCB7IHRvLCBvbkNsaWNrLCBjaGlsZHJlbiwgYWN0aXZlQ2xhc3NOYW1lIH0gPSBwcm9wcztcbiAgY29uc3QgeyByb3V0ZSB9ID0gdXNlQ29udGV4dChSb3V0ZXJDb250ZXh0KTtcblxuICBsZXQgc3RhdGUgPSB7IC4uLnByb3BzIH07XG4gIGRlbGV0ZSBzdGF0ZS5hY3RpdmVDbGFzc05hbWU7XG5cbiAgY29uc3QgaXNBY3RpdmUgPSAoKSA9PiB7XG4gICAgY29uc3QgY2hlY2tNYXRjaCA9IG1hdGNoKGAke3RvfWApO1xuICAgIHJldHVybiBjaGVja01hdGNoKGAke3JvdXRlLmhhc2guc3Vic3RyKDEpfWApO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgLy8gRG9udCcgbmF2aWdhdGUgaWYgY3VycmVudCBwYXRoLlxuICAgIGlmIChyb3V0ZS5wYXRoID09PSB0byAmJiAhIGUudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygndWFlLXVzZXItaWNvbicpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIFRyaWdnZXIgb25DbGljayBwcm9wIG1hbnVhbGx5LlxuICAgIGlmIChvbkNsaWNrKSB7XG4gICAgICBvbkNsaWNrKGUpO1xuICAgIH1cblxuICAgIGlmICh0byA9PT0gXCJlbGVtZW50b3ItaGZcIiAmJiB1YWVsU2V0dGluZ3NEYXRhLmhlYWRlcl9mb290ZXJfYnVpbGRlciApIHtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdWFlbFNldHRpbmdzRGF0YS5oZWFkZXJfZm9vdGVyX2J1aWxkZXI7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBzZWFyY2ggfSA9IGhpc3RvcnkubG9jYXRpb247XG4gICAgY29uc3QgZXhwZWN0ZWRQYWdlID0gXCJhZG1pbi5waHA/cGFnZT11YWVwcm9cIjtcbiAgICBjb25zdCBjdXJyZW50SGFzaCA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoO1xuXG4gICAgLy8gVmVyaWZ5IGlmIHRoZSBjdXJyZW50IFVSTCBpcyBhcyBleHBlY3RlZFxuICAgIGlmICghc2VhcmNoLmluY2x1ZGVzKGV4cGVjdGVkUGFnZSkgfHwgIWN1cnJlbnRIYXNoLmluY2x1ZGVzKHRvKSkge1xuICAgICAgICAvLyBSZWRpcmVjdCB0byB0aGUgZXhwZWN0ZWQgVVJMXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7dWFlbFNldHRpbmdzRGF0YS51YWVwcm9fc2V0dGluZ3NfdXJsfSMke3RvfWA7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRvLmluY2x1ZGVzKCdzZXR0aW5ncycpKSB7XG4gICAgICAvLyBSZW1vdmUgJnRhYiBmcm9tIHRoZSBVUkwuXG4gICAgICBjb25zdCBuZXdTZWFyY2ggPSBzZWFyY2gucmVwbGFjZSgvJnRhYj1bXiZdKi8sICcnKTtcbiAgICAgIC8vIFVzZSBoaXN0b3J5IEFQSSB0byBuYXZpZ2F0ZSBwYWdlLlxuICAgICAgaGlzdG9yeS5wdXNoKGAke25ld1NlYXJjaH0jJHt0b31gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY2hhbmdlU2VhcmNoID0gc2VhcmNoICsgJyZ0YWI9MSc7XG5cbiAgICAgIGlmIChlLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ3VhZS11c2VyLWljb24nKSAmJiB3aW5kb3cubG9jYXRpb24uaGFzaC5pbmNsdWRlcygnc2V0dGluZ3MnKSkge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke2NoYW5nZVNlYXJjaH0jJHt0b31gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVXNlIGhpc3RvcnkgQVBJIHRvIG5hdmlnYXRlIHBhZ2UuXG4gICAgICAgIGhpc3RvcnkucHVzaChgJHtzZWFyY2h9IyR7dG99YCk7XG4gICAgICB9XG4gICAgfVxuXG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8YVxuICAgICAgey4uLnN0YXRlfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKHsgW2FjdGl2ZUNsYXNzTmFtZV06IGlzQWN0aXZlKCkgfSwgcHJvcHMuY2xhc3NOYW1lKX1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2E+XG4gICk7XG59XG4iXSwibmFtZXMiOlsidXNlQ29udGV4dCIsIndwIiwiZWxlbWVudCIsIlJvdXRlckNvbnRleHQiLCJoaXN0b3J5IiwiY2xhc3NOYW1lcyIsIm1hdGNoIiwiTGluayIsInByb3BzIiwidG8iLCJvbkNsaWNrIiwiY2hpbGRyZW4iLCJhY3RpdmVDbGFzc05hbWUiLCJfdXNlQ29udGV4dCIsInJvdXRlIiwic3RhdGUiLCJfb2JqZWN0U3ByZWFkIiwiaXNBY3RpdmUiLCJjaGVja01hdGNoIiwiY29uY2F0IiwiaGFzaCIsInN1YnN0ciIsImhhbmRsZUNsaWNrIiwiZSIsInByZXZlbnREZWZhdWx0IiwicGF0aCIsInRhcmdldCIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwidWFlbFNldHRpbmdzRGF0YSIsImhlYWRlcl9mb290ZXJfYnVpbGRlciIsIndpbmRvdyIsImxvY2F0aW9uIiwiaHJlZiIsInNlYXJjaCIsImV4cGVjdGVkUGFnZSIsImN1cnJlbnRIYXNoIiwiaW5jbHVkZXMiLCJ1YWVwcm9fc2V0dGluZ3NfdXJsIiwibmV3U2VhcmNoIiwicmVwbGFjZSIsInB1c2giLCJjaGFuZ2VTZWFyY2giLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kcyIsImNsYXNzTmFtZSIsIl9kZWZpbmVQcm9wZXJ0eSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/router/link.js\n");
/***/ }),
/***/ "./src/router/route.js":
/*!*****************************!*\
!*** ./src/router/route.js ***!
\*****************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Route: function() { return /* binding */ Route; }\n/* harmony export */ });\n/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./context */ \"./src/router/context.js\");\n/* harmony import */ var path_to_regexp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path-to-regexp */ \"./node_modules/path-to-regexp/dist/index.js\");\n\nvar useContext = wp.element.useContext;\n\nvar prev = \"\";\nfunction Route(_ref) {\n var path = _ref.path,\n onRoute = _ref.onRoute,\n children = _ref.children;\n // Extract route from RouterContext\n var _useContext = useContext(_context__WEBPACK_IMPORTED_MODULE_0__.RouterContext),\n route = _useContext.route;\n var checkMatch = (0,path_to_regexp__WEBPACK_IMPORTED_MODULE_1__.match)(\"\".concat(path));\n var matched = checkMatch(\"\".concat(route.hash.substr(1)));\n if (!matched) {\n return null;\n }\n if (onRoute) {\n if (prev !== matched.path) {\n onRoute();\n }\n prev = matched.path;\n }\n return /*#__PURE__*/React.createElement(\"div\", null, wp.element.cloneElement(children, {\n route: matched\n }));\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcm91dGVyL3JvdXRlLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUEwQztBQUMxQyxJQUFRQyxVQUFVLEdBQUtDLEVBQUUsQ0FBQ0MsT0FBTyxDQUF6QkYsVUFBVTtBQUNxQjtBQUN2QyxJQUFJSSxJQUFJLEdBQUcsRUFBRTtBQUVOLFNBQVNDLEtBQUtBLENBQUFDLElBQUEsRUFBOEI7RUFBQSxJQUEzQkMsSUFBSSxHQUFBRCxJQUFBLENBQUpDLElBQUk7SUFBRUMsT0FBTyxHQUFBRixJQUFBLENBQVBFLE9BQU87SUFBRUMsUUFBUSxHQUFBSCxJQUFBLENBQVJHLFFBQVE7RUFDN0M7RUFDQSxJQUFBQyxXQUFBLEdBQWtCVixVQUFVLENBQUNELG1EQUFhLENBQUM7SUFBbkNZLEtBQUssR0FBQUQsV0FBQSxDQUFMQyxLQUFLO0VBRWIsSUFBTUMsVUFBVSxHQUFHVCxxREFBSyxJQUFBVSxNQUFBLENBQUlOLElBQUksQ0FBRSxDQUFDO0VBQ25DLElBQU1PLE9BQU8sR0FBR0YsVUFBVSxJQUFBQyxNQUFBLENBQUlGLEtBQUssQ0FBQ0ksSUFBSSxDQUFDQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQztFQUVyRCxJQUFJLENBQUNGLE9BQU8sRUFBRTtJQUNaLE9BQU8sSUFBSTtFQUNiO0VBRUEsSUFBSU4sT0FBTyxFQUFFO0lBQ1gsSUFBSUosSUFBSSxLQUFLVSxPQUFPLENBQUNQLElBQUksRUFBRTtNQUN6QkMsT0FBTyxDQUFDLENBQUM7SUFDWDtJQUNBSixJQUFJLEdBQUdVLE9BQU8sQ0FBQ1AsSUFBSTtFQUNyQjtFQUVBLG9CQUFPVSxLQUFBLENBQUFDLGFBQUEsY0FBTWpCLEVBQUUsQ0FBQ0MsT0FBTyxDQUFDaUIsWUFBWSxDQUFDVixRQUFRLEVBQUU7SUFBRUUsS0FBSyxFQUFFRztFQUFRLENBQUMsQ0FBTyxDQUFDO0FBQzNFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdWFlbC8uL3NyYy9yb3V0ZXIvcm91dGUuanM/YmI0NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXJDb250ZXh0IH0gZnJvbSBcIi4vY29udGV4dFwiO1xuY29uc3QgeyB1c2VDb250ZXh0IH0gPSB3cC5lbGVtZW50O1xuaW1wb3J0IHsgbWF0Y2ggfSBmcm9tIFwicGF0aC10by1yZWdleHBcIjtcbmxldCBwcmV2ID0gXCJcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIFJvdXRlKHsgcGF0aCwgb25Sb3V0ZSwgY2hpbGRyZW4gfSkge1xuICAvLyBFeHRyYWN0IHJvdXRlIGZyb20gUm91dGVyQ29udGV4dFxuICBjb25zdCB7IHJvdXRlIH0gPSB1c2VDb250ZXh0KFJvdXRlckNvbnRleHQpO1xuXG4gIGNvbnN0IGNoZWNrTWF0Y2ggPSBtYXRjaChgJHtwYXRofWApO1xuICBjb25zdCBtYXRjaGVkID0gY2hlY2tNYXRjaChgJHtyb3V0ZS5oYXNoLnN1YnN0cigxKX1gKTtcblxuICBpZiAoIW1hdGNoZWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChvblJvdXRlKSB7XG4gICAgaWYgKHByZXYgIT09IG1hdGNoZWQucGF0aCkge1xuICAgICAgb25Sb3V0ZSgpO1xuICAgIH1cbiAgICBwcmV2ID0gbWF0Y2hlZC5wYXRoO1xuICB9XG5cbiAgcmV0dXJuIDxkaXY+e3dwLmVsZW1lbnQuY2xvbmVFbGVtZW50KGNoaWxkcmVuLCB7IHJvdXRlOiBtYXRjaGVkIH0pfTwvZGl2Pjtcbn1cbiJdLCJuYW1lcyI6WyJSb3V0ZXJDb250ZXh0IiwidXNlQ29udGV4dCIsIndwIiwiZWxlbWVudCIsIm1hdGNoIiwicHJldiIsIlJvdXRlIiwiX3JlZiIsInBhdGgiLCJvblJvdXRlIiwiY2hpbGRyZW4iLCJfdXNlQ29udGV4dCIsInJvdXRlIiwiY2hlY2tNYXRjaCIsImNvbmNhdCIsIm1hdGNoZWQiLCJoYXNoIiwic3Vic3RyIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiY2xvbmVFbGVtZW50Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/router/route.js\n");
/***/ }),
/***/ "./src/router/utils.js":
/*!*****************************!*\
!*** ./src/router/utils.js ***!
\*****************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ locationToRoute: function() { return /* binding */ locationToRoute; }\n/* harmony export */ });\n/* harmony import */ var querystringify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! querystringify */ \"./node_modules/querystringify/index.js\");\n\nfunction locationToRoute(location) {\n // location comes from the history package\n return {\n path: location.pathname,\n hash: location.hash,\n query: querystringify__WEBPACK_IMPORTED_MODULE_0__.parse(location.search)\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvcm91dGVyL3V0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWdDO0FBQ3pCLFNBQVNDLGVBQWVBLENBQUNDLFFBQVEsRUFBRTtFQUN4QztFQUNBLE9BQU87SUFDTEMsSUFBSSxFQUFFRCxRQUFRLENBQUNFLFFBQVE7SUFDdkJDLElBQUksRUFBRUgsUUFBUSxDQUFDRyxJQUFJO0lBQ25CQyxLQUFLLEVBQUVOLGlEQUFRLENBQUNFLFFBQVEsQ0FBQ00sTUFBTTtFQUNqQyxDQUFDO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vc3JjL3JvdXRlci91dGlscy5qcz9jYWU4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBxcyBmcm9tIFwicXVlcnlzdHJpbmdpZnlcIjtcbmV4cG9ydCBmdW5jdGlvbiBsb2NhdGlvblRvUm91dGUobG9jYXRpb24pIHtcbiAgLy8gbG9jYXRpb24gY29tZXMgZnJvbSB0aGUgaGlzdG9yeSBwYWNrYWdlXG4gIHJldHVybiB7XG4gICAgcGF0aDogbG9jYXRpb24ucGF0aG5hbWUsXG4gICAgaGFzaDogbG9jYXRpb24uaGFzaCxcbiAgICBxdWVyeTogcXMucGFyc2UobG9jYXRpb24uc2VhcmNoKSxcbiAgfTtcbn1cbiJdLCJuYW1lcyI6WyJxcyIsImxvY2F0aW9uVG9Sb3V0ZSIsImxvY2F0aW9uIiwicGF0aCIsInBhdGhuYW1lIiwiaGFzaCIsInF1ZXJ5IiwicGFyc2UiLCJzZWFyY2giXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/router/utils.js\n");
/***/ }),
/***/ "./src/styles.css":
/*!************************!*\
!*** ./src/styles.css ***!
\************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvc3R5bGVzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91YWVsLy4vc3JjL3N0eWxlcy5jc3M/NTIzMSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCB7fTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/styles.css\n");
/***/ }),
/***/ "@babel/runtime/regenerator":
/*!*************************************!*\
!*** external "regeneratorRuntime" ***!
\*************************************/
/***/ (function(module) {
"use strict";
module.exports = window["regeneratorRuntime"];
/***/ }),
/***/ "@wordpress/api-fetch":
/*!**********************************!*\
!*** external ["wp","apiFetch"] ***!
\**********************************/
/***/ (function(module) {
"use strict";
module.exports = window["wp"]["apiFetch"];
/***/ }),
/***/ "@wordpress/dom-ready":
/*!**********************************!*\
!*** external ["wp","domReady"] ***!
\**********************************/
/***/ (function(module) {
"use strict";
module.exports = window["wp"]["domReady"];
/***/ }),
/***/ "@wordpress/element":
/*!*********************************!*\
!*** external ["wp","element"] ***!
\*********************************/
/***/ (function(module) {
"use strict";
module.exports = window["wp"]["element"];
/***/ }),
/***/ "@wordpress/i18n":
/*!******************************!*\
!*** external ["wp","i18n"] ***!
\******************************/
/***/ (function(module) {
"use strict";
module.exports = window["wp"]["i18n"];
/***/ }),
/***/ "react":
/*!************************!*\
!*** external "React" ***!
\************************/
/***/ (function(module) {
"use strict";
module.exports = window["React"];
/***/ }),
/***/ "react-dom":
/*!***************************!*\
!*** external "ReactDOM" ***!
\***************************/
/***/ (function(module) {
"use strict";
module.exports = window["ReactDOM"];
/***/ })
/******/ });
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/************************************************************************/
/******/ /* webpack/runtime/compat get default export */
/******/ !function() {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function() { return module['default']; } :
/******/ function() { return module; };
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ !function() {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = function(exports, definition) {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ }();
/******/
/******/ /* webpack/runtime/global */
/******/ !function() {
/******/ __webpack_require__.g = (function() {
/******/ if (typeof globalThis === 'object') return globalThis;
/******/ try {
/******/ return this || new Function('return this')();
/******/ } catch (e) {
/******/ if (typeof window === 'object') return window;
/******/ }
/******/ })();
/******/ }();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ !function() {
/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
/******/ }();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ !function() {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ }();
/******/
/************************************************************************/
/******/
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module can't be inlined because the eval-source-map devtool is used.
/******/ var __webpack_exports__ = __webpack_require__("./src/index.js");
/******/
/******/ })()
;