((typeof self !== 'undefined' ? self : this)["webpackJsonp"] = (typeof self !== 'undefined' ? self : this)["webpackJsonp"] || []).push([["npm.single-spa"],{ /***/ "./node_modules/single-spa/lib/esm/single-spa.min.js": /*!***********************************************************!*\ !*** ./node_modules/single-spa/lib/esm/single-spa.min.js ***! \***********************************************************/ /*! exports provided: BOOTSTRAPPING, LOADING_SOURCE_CODE, LOAD_ERROR, MOUNTED, MOUNTING, NOT_BOOTSTRAPPED, NOT_LOADED, NOT_MOUNTED, SKIP_BECAUSE_BROKEN, UNMOUNTING, UPDATING, addErrorHandler, checkActivityFunctions, ensureJQuerySupport, getAppNames, getAppStatus, getMountedApps, mountRootParcel, navigateToUrl, pathToActiveWhen, registerApplication, removeErrorHandler, setBootstrapMaxTime, setMountMaxTime, setUnloadMaxTime, setUnmountMaxTime, start, triggerAppChange, unloadApplication, unregisterApplication */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BOOTSTRAPPING\", function() { return m; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOADING_SOURCE_CODE\", function() { return p; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOAD_ERROR\", function() { return y; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MOUNTED\", function() { return w; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MOUNTING\", function() { return v; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NOT_BOOTSTRAPPED\", function() { return h; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NOT_LOADED\", function() { return l; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NOT_MOUNTED\", function() { return d; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SKIP_BECAUSE_BROKEN\", function() { return O; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UNMOUNTING\", function() { return E; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UPDATING\", function() { return g; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addErrorHandler\", function() { return a; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"checkActivityFunctions\", function() { return bt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ensureJQuerySupport\", function() { return ft; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAppNames\", function() { return yt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAppStatus\", function() { return Ot; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMountedApps\", function() { return Et; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mountRootParcel\", function() { return C; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"navigateToUrl\", function() { return nt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pathToActiveWhen\", function() { return _t; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerApplication\", function() { return Pt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeErrorHandler\", function() { return c; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setBootstrapMaxTime\", function() { return F; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setMountMaxTime\", function() { return J; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setUnloadMaxTime\", function() { return Q; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setUnmountMaxTime\", function() { return H; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"start\", function() { return xt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"triggerAppChange\", function() { return Mt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unloadApplication\", function() { return At; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unregisterApplication\", function() { return Tt; });\n/* single-spa@5.8.1 - ESM - prod */\nvar t=Object.freeze({__proto__:null,get start(){return xt},get ensureJQuerySupport(){return ft},get setBootstrapMaxTime(){return F},get setMountMaxTime(){return J},get setUnmountMaxTime(){return H},get setUnloadMaxTime(){return Q},get registerApplication(){return Pt},get unregisterApplication(){return Tt},get getMountedApps(){return Et},get getAppStatus(){return Ot},get unloadApplication(){return At},get checkActivityFunctions(){return bt},get getAppNames(){return yt},get pathToActiveWhen(){return _t},get navigateToUrl(){return nt},get triggerAppChange(){return Mt},get addErrorHandler(){return a},get removeErrorHandler(){return c},get mountRootParcel(){return C},get NOT_LOADED(){return l},get LOADING_SOURCE_CODE(){return p},get NOT_BOOTSTRAPPED(){return h},get BOOTSTRAPPING(){return m},get NOT_MOUNTED(){return d},get MOUNTING(){return v},get UPDATING(){return g},get LOAD_ERROR(){return y},get MOUNTED(){return w},get UNMOUNTING(){return E},get SKIP_BECAUSE_BROKEN(){return O}});function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function e(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}var r=(\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{}).CustomEvent,o=function(){try{var t=new r(\"cat\",{detail:{foo:\"bar\"}});return\"cat\"===t.type&&\"bar\"===t.detail.foo}catch(t){}return!1}()?r:\"undefined\"!=typeof document&&\"function\"==typeof document.createEvent?function(t,n){var e=document.createEvent(\"CustomEvent\");return n?e.initCustomEvent(t,n.bubbles,n.cancelable,n.detail):e.initCustomEvent(t,!1,!1,void 0),e}:function(t,n){var e=document.createEventObject();return e.type=t,n?(e.bubbles=Boolean(n.bubbles),e.cancelable=Boolean(n.cancelable),e.detail=n.detail):(e.bubbles=!1,e.cancelable=!1,e.detail=void 0),e},i=[];function u(t,n,e){var r=f(t,n,e);i.length?i.forEach((function(t){return t(r)})):setTimeout((function(){throw r}))}function a(t){if(\"function\"!=typeof t)throw Error(s(28,!1));i.push(t)}function c(t){if(\"function\"!=typeof t)throw Error(s(29,!1));var n=!1;return i=i.filter((function(e){var r=e===t;return n=n||r,!r})),n}function s(t,n){for(var e=arguments.length,r=new Array(e>2?e-2:0),o=2;o0;t--)for(var n in arguments[t])\"__proto__\"!==n&&(arguments[t-1][n]=arguments[t][n]);return arguments[0]}function _(t,n){for(var e=0;e=0&&Z[e].forEach((function(e){try{e.apply(n,t)}catch(t){setTimeout((function(){throw t}))}}))}}function rt(){Lt([],arguments)}function ot(t,n){return function(){var e=window.location.href,r=t.apply(this,arguments),o=window.location.href;return X&&e===o||window.dispatchEvent(it(window.history.state,n)),r}}function it(t,n){var e;try{e=new PopStateEvent(\"popstate\",{state:t})}catch(n){(e=document.createEvent(\"PopStateEvent\")).initPopStateEvent(\"popstate\",!1,!1,t)}return e.singleSpa=!0,e.singleSpaTrigger=n,e}if(Y){window.addEventListener(\"hashchange\",rt),window.addEventListener(\"popstate\",rt);var ut=window.addEventListener,at=window.removeEventListener;window.addEventListener=function(t,n){if(!(\"function\"==typeof n&&tt.indexOf(t)>=0)||_(Z[t],(function(t){return t===n})))return ut.apply(this,arguments);Z[t].push(n)},window.removeEventListener=function(t,n){if(!(\"function\"==typeof n&&tt.indexOf(t)>=0))return at.apply(this,arguments);Z[t]=Z[t].filter((function(t){return t!==n}))},window.history.pushState=ot(window.history.pushState,\"pushState\"),window.history.replaceState=ot(window.history.replaceState,\"replaceState\"),window.singleSpaNavigate?console.warn(s(41,!1)):window.singleSpaNavigate=nt}function ct(t){var n=document.createElement(\"a\");return n.href=t,n}var st=!1;function ft(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.jQuery;if(t||window.$&&window.$.fn&&window.$.fn.jquery&&(t=window.$),t&&!st){var n=t.fn.on,e=t.fn.off;t.fn.on=function(t,e){return lt.call(this,n,window.addEventListener,t,e,arguments)},t.fn.off=function(t,n){return lt.call(this,e,window.removeEventListener,t,n,arguments)},st=!0}}function lt(t,n,e,r,o){return\"string\"!=typeof e?t.apply(this,o):(e.split(/\\s+/).forEach((function(t){tt.indexOf(t)>=0&&(n(t,r),e=e.replace(t,\"\"))})),\"\"===e.trim()?this:t.apply(this,o))}var pt={};function ht(t){return Promise.resolve().then((function(){var n=pt[T(t)];return n?t.status===l?(mt(t,n),t):\"UNLOADING\"===t.status?n.promise.then((function(){return t})):t.status!==d?t:(t.status=\"UNLOADING\",V(t,\"unload\").then((function(){return mt(t,n),t})).catch((function(e){return function(t,n,e){delete pt[T(t)],delete t.bootstrap,delete t.mount,delete t.unmount,delete t.unload,u(e,t,O),n.reject(e)}(t,n,e),t}))):t}))}function mt(t,n){delete pt[T(t)],delete t.bootstrap,delete t.mount,delete t.unmount,delete t.unload,t.status=l,n.resolve()}function dt(t,n,e,r){pt[T(t)]={app:t,resolve:e,reject:r},Object.defineProperty(pt[T(t)],\"promise\",{get:n})}function vt(t){return pt[t]}var wt=[];function gt(){var t=[],n=[],e=[],r=[],o=(new Date).getTime();return wt.forEach((function(i){var u=i.status!==O&&b(i);switch(i.status){case y:u&&o-i.loadErrorTime>=200&&e.push(i);break;case l:case p:u&&e.push(i);break;case h:case d:!u&&vt(T(i))?t.push(i):u&&r.push(i);break;case w:u||n.push(i)}})),{appsToUnload:t,appsToUnmount:n,appsToLoad:e,appsToMount:r}}function Et(){return wt.filter(P).map(T)}function yt(){return wt.map(T)}function Ot(t){var n=_(wt,(function(n){return T(n)===t}));return n?n.status:null}function Pt(t,e,r,o){var i=function(t,e,r,o){var i,u={name:null,loadApp:null,activeWhen:null,customProps:null};return\"object\"===n(t)?(function(t){if(Array.isArray(t)||null===t)throw Error(s(39,!1));var e=[\"name\",\"app\",\"activeWhen\",\"customProps\"],r=Object.keys(t).reduce((function(t,n){return e.indexOf(n)>=0?t:t.concat(n)}),[]);if(0!==r.length)throw Error(s(38,!1,e.join(\", \"),r.join(\", \")));if(\"string\"!=typeof t.name||0===t.name.length)throw Error(s(20,!1));if(\"object\"!==n(t.app)&&\"function\"!=typeof t.app)throw Error(s(20,!1));var o=function(t){return\"string\"==typeof t||\"function\"==typeof t};if(!(o(t.activeWhen)||Array.isArray(t.activeWhen)&&t.activeWhen.every(o)))throw Error(s(24,!1));if(!St(t.customProps))throw Error(s(22,!1))}(t),u.name=t.name,u.loadApp=t.app,u.activeWhen=t.activeWhen,u.customProps=t.customProps):(function(t,n,e,r){if(\"string\"!=typeof t||0===t.length)throw Error(s(20,!1));if(!n)throw Error(s(23,!1));if(\"function\"!=typeof e)throw Error(s(24,!1));if(!St(r))throw Error(s(22,!1))}(t,e,r,o),u.name=t,u.loadApp=e,u.activeWhen=r,u.customProps=o),u.loadApp=\"function\"!=typeof(i=u.loadApp)?function(){return Promise.resolve(i)}:i,u.customProps=function(t){return t||{}}(u.customProps),u.activeWhen=function(t){var n=Array.isArray(t)?t:[t];return n=n.map((function(t){return\"function\"==typeof t?t:_t(t)})),function(t){return n.some((function(n){return n(t)}))}}(u.activeWhen),u}(t,e,r,o);if(-1!==yt().indexOf(i.name))throw Error(s(21,!1,i.name));wt.push(S({loadErrorTime:null,status:l,parcels:{},devtools:{overlays:{options:{},selectors:[]}}},i)),Y&&(ft(),Lt())}function bt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location;return wt.filter((function(n){return n.activeWhen(t)})).map(T)}function Tt(t){if(0===wt.filter((function(n){return T(n)===t})).length)throw Error(s(25,!1,t));return At(t).then((function(){var n=wt.map(T).indexOf(t);wt.splice(n,1)}))}function At(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{waitForUnmount:!1};if(\"string\"!=typeof t)throw Error(s(26,!1));var e=_(wt,(function(n){return T(n)===t}));if(!e)throw Error(s(27,!1,t));var r,o=vt(T(e));if(n&&n.waitForUnmount){if(o)return o.promise;var i=new Promise((function(t,n){dt(e,(function(){return i}),t,n)}));return i}return o?(r=o.promise,Nt(e,o.resolve,o.reject)):r=new Promise((function(t,n){dt(e,(function(){return r}),t,n),Nt(e,t,n)})),r}function Nt(t,n,e){L(t).then(ht).then((function(){n(),setTimeout((function(){Lt()}))})).catch(e)}function St(t){return!t||\"function\"==typeof t||\"object\"===n(t)&&null!==t&&!Array.isArray(t)}function _t(t){var n=function(t){var n=0,e=!1,r=\"^\";\"/\"!==t[0]&&(t=\"/\"+t);for(var o=0;o0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;if(Dt)return new Promise((function(t,e){Ut.push({resolve:t,reject:e,eventArguments:n})}));var r,i=gt(),u=i.appsToUnload,a=i.appsToUnmount,c=i.appsToLoad,s=i.appsToMount,f=!1,p=jt,h=jt=window.location.href;return Bt()?(Dt=!0,r=u.concat(c,a,s),g()):(r=c,v());function m(){f=!0}function v(){return Promise.resolve().then((function(){var t=c.map(z);return Promise.all(t).then(y).then((function(){return[]})).catch((function(t){throw y(),t}))}))}function g(){return Promise.resolve().then((function(){if(window.dispatchEvent(new o(0===r.length?\"single-spa:before-no-app-change\":\"single-spa:before-app-change\",P(!0))),window.dispatchEvent(new o(\"single-spa:before-routing-event\",P(!0,{cancelNavigation:m}))),f)return window.dispatchEvent(new o(\"single-spa:before-mount-routing-event\",P(!0))),E(),void nt(p);var n=u.map(ht),e=a.map(L).map((function(t){return t.then(ht)})).concat(n),i=Promise.all(e);i.then((function(){window.dispatchEvent(new o(\"single-spa:before-mount-routing-event\",P(!0)))}));var l=c.map((function(t){return z(t).then((function(t){return Rt(t,i)}))})),h=s.filter((function(t){return c.indexOf(t)<0})).map((function(t){return Rt(t,i)}));return i.catch((function(t){throw y(),t})).then((function(){return y(),Promise.all(l.concat(h)).catch((function(n){throw t.forEach((function(t){return t.reject(n)})),n})).then(E)}))}))}function E(){var n=Et();t.forEach((function(t){return t.resolve(n)}));try{var e=0===r.length?\"single-spa:no-app-change\":\"single-spa:app-change\";window.dispatchEvent(new o(e,P())),window.dispatchEvent(new o(\"single-spa:routing-event\",P()))}catch(t){setTimeout((function(){throw t}))}if(Dt=!1,Ut.length>0){var i=Ut;Ut=[],Lt(i)}return n}function y(){t.forEach((function(t){et(t.eventArguments)})),et(n)}function P(){var t,o=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=arguments.length>1?arguments[1]:void 0,m={},v=(e(t={},w,[]),e(t,d,[]),e(t,l,[]),e(t,O,[]),t);o?(c.concat(s).forEach((function(t,n){E(t,w)})),u.forEach((function(t){E(t,l)})),a.forEach((function(t){E(t,d)}))):r.forEach((function(t){E(t)}));var g={detail:{newAppStatuses:m,appsByNewStatus:v,totalAppChanges:r.length,originalEvent:null==n?void 0:n[0],oldUrl:p,newUrl:h,navigationIsCanceled:f}};return i&&S(g.detail,i),g;function E(t,n){var e=T(t);n=n||Ot(e),m[e]=n,(v[n]=v[n]||[]).push(e)}}}function Rt(t,n){return b(t)?M(t).then((function(t){return n.then((function(){return b(t)?x(t):t}))})):n.then((function(){return t}))}var It=!1;function xt(t){var n;It=!0,t&&t.urlRerouteOnly&&(n=t.urlRerouteOnly,X=n),Y&&Lt()}function Bt(){return It}Y&&setTimeout((function(){It||console.warn(s(1,!1))}),5e3);var Gt={getRawAppData:function(){return[].concat(wt)},reroute:Lt,NOT_LOADED:l,toLoadPromise:z,toBootstrapPromise:M,unregisterApplication:Tt};Y&&window.__SINGLE_SPA_DEVTOOLS__&&(window.__SINGLE_SPA_DEVTOOLS__.exposedMethods=Gt);\n//# sourceMappingURL=single-spa.min.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2luZ2xlLXNwYS9saWIvZXNtL3NpbmdsZS1zcGEubWluLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3NpbmdsZS1zcGEvbGliL2VzbS9zaW5nbGUtc3BhLm1pbi5qcz8yNWEyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIHNpbmdsZS1zcGFANS44LjEgLSBFU00gLSBwcm9kICovXG52YXIgdD1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxnZXQgc3RhcnQoKXtyZXR1cm4geHR9LGdldCBlbnN1cmVKUXVlcnlTdXBwb3J0KCl7cmV0dXJuIGZ0fSxnZXQgc2V0Qm9vdHN0cmFwTWF4VGltZSgpe3JldHVybiBGfSxnZXQgc2V0TW91bnRNYXhUaW1lKCl7cmV0dXJuIEp9LGdldCBzZXRVbm1vdW50TWF4VGltZSgpe3JldHVybiBIfSxnZXQgc2V0VW5sb2FkTWF4VGltZSgpe3JldHVybiBRfSxnZXQgcmVnaXN0ZXJBcHBsaWNhdGlvbigpe3JldHVybiBQdH0sZ2V0IHVucmVnaXN0ZXJBcHBsaWNhdGlvbigpe3JldHVybiBUdH0sZ2V0IGdldE1vdW50ZWRBcHBzKCl7cmV0dXJuIEV0fSxnZXQgZ2V0QXBwU3RhdHVzKCl7cmV0dXJuIE90fSxnZXQgdW5sb2FkQXBwbGljYXRpb24oKXtyZXR1cm4gQXR9LGdldCBjaGVja0FjdGl2aXR5RnVuY3Rpb25zKCl7cmV0dXJuIGJ0fSxnZXQgZ2V0QXBwTmFtZXMoKXtyZXR1cm4geXR9LGdldCBwYXRoVG9BY3RpdmVXaGVuKCl7cmV0dXJuIF90fSxnZXQgbmF2aWdhdGVUb1VybCgpe3JldHVybiBudH0sZ2V0IHRyaWdnZXJBcHBDaGFuZ2UoKXtyZXR1cm4gTXR9LGdldCBhZGRFcnJvckhhbmRsZXIoKXtyZXR1cm4gYX0sZ2V0IHJlbW92ZUVycm9ySGFuZGxlcigpe3JldHVybiBjfSxnZXQgbW91bnRSb290UGFyY2VsKCl7cmV0dXJuIEN9LGdldCBOT1RfTE9BREVEKCl7cmV0dXJuIGx9LGdldCBMT0FESU5HX1NPVVJDRV9DT0RFKCl7cmV0dXJuIHB9LGdldCBOT1RfQk9PVFNUUkFQUEVEKCl7cmV0dXJuIGh9LGdldCBCT09UU1RSQVBQSU5HKCl7cmV0dXJuIG19LGdldCBOT1RfTU9VTlRFRCgpe3JldHVybiBkfSxnZXQgTU9VTlRJTkcoKXtyZXR1cm4gdn0sZ2V0IFVQREFUSU5HKCl7cmV0dXJuIGd9LGdldCBMT0FEX0VSUk9SKCl7cmV0dXJuIHl9LGdldCBNT1VOVEVEKCl7cmV0dXJuIHd9LGdldCBVTk1PVU5USU5HKCl7cmV0dXJuIEV9LGdldCBTS0lQX0JFQ0FVU0VfQlJPS0VOKCl7cmV0dXJuIE99fSk7ZnVuY3Rpb24gbih0KXtyZXR1cm4obj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fSkodCl9ZnVuY3Rpb24gZSh0LG4sZSl7cmV0dXJuIG4gaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxuLHt2YWx1ZTplLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtuXT1lLHR9dmFyIHI9KFwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNlbGY/c2VsZjp7fSkuQ3VzdG9tRXZlbnQsbz1mdW5jdGlvbigpe3RyeXt2YXIgdD1uZXcgcihcImNhdFwiLHtkZXRhaWw6e2ZvbzpcImJhclwifX0pO3JldHVyblwiY2F0XCI9PT10LnR5cGUmJlwiYmFyXCI9PT10LmRldGFpbC5mb299Y2F0Y2godCl7fXJldHVybiExfSgpP3I6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGRvY3VtZW50JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBkb2N1bWVudC5jcmVhdGVFdmVudD9mdW5jdGlvbih0LG4pe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUV2ZW50KFwiQ3VzdG9tRXZlbnRcIik7cmV0dXJuIG4/ZS5pbml0Q3VzdG9tRXZlbnQodCxuLmJ1YmJsZXMsbi5jYW5jZWxhYmxlLG4uZGV0YWlsKTplLmluaXRDdXN0b21FdmVudCh0LCExLCExLHZvaWQgMCksZX06ZnVuY3Rpb24odCxuKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFdmVudE9iamVjdCgpO3JldHVybiBlLnR5cGU9dCxuPyhlLmJ1YmJsZXM9Qm9vbGVhbihuLmJ1YmJsZXMpLGUuY2FuY2VsYWJsZT1Cb29sZWFuKG4uY2FuY2VsYWJsZSksZS5kZXRhaWw9bi5kZXRhaWwpOihlLmJ1YmJsZXM9ITEsZS5jYW5jZWxhYmxlPSExLGUuZGV0YWlsPXZvaWQgMCksZX0saT1bXTtmdW5jdGlvbiB1KHQsbixlKXt2YXIgcj1mKHQsbixlKTtpLmxlbmd0aD9pLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0KHIpfSkpOnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dGhyb3cgcn0pKX1mdW5jdGlvbiBhKHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpdGhyb3cgRXJyb3IocygyOCwhMSkpO2kucHVzaCh0KX1mdW5jdGlvbiBjKHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpdGhyb3cgRXJyb3IocygyOSwhMSkpO3ZhciBuPSExO3JldHVybiBpPWkuZmlsdGVyKChmdW5jdGlvbihlKXt2YXIgcj1lPT09dDtyZXR1cm4gbj1ufHxyLCFyfSkpLG59ZnVuY3Rpb24gcyh0LG4pe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGU+Mj9lLTI6MCksbz0yO288ZTtvKyspcltvLTJdPWFyZ3VtZW50c1tvXTtyZXR1cm5cInNpbmdsZS1zcGEgbWluaWZpZWQgbWVzc2FnZSAjXCIuY29uY2F0KHQsXCI6IFwiKS5jb25jYXQobj9uK1wiIFwiOlwiXCIsXCJTZWUgaHR0cHM6Ly9zaW5nbGUtc3BhLmpzLm9yZy9lcnJvci8/Y29kZT1cIikuY29uY2F0KHQpLmNvbmNhdChyLmxlbmd0aD9cIiZhcmc9XCIuY29uY2F0KHIuam9pbihcIiZhcmc9XCIpKTpcIlwiKX1mdW5jdGlvbiBmKHQsbixlKXt2YXIgcixvPVwiXCIuY29uY2F0KE4obiksXCIgJ1wiKS5jb25jYXQoVChuKSxcIicgZGllZCBpbiBzdGF0dXMgXCIpLmNvbmNhdChuLnN0YXR1cyxcIjogXCIpO2lmKHQgaW5zdGFuY2VvZiBFcnJvcil7dHJ5e3QubWVzc2FnZT1vK3QubWVzc2FnZX1jYXRjaCh0KXt9cj10fWVsc2V7Y29uc29sZS53YXJuKHMoMzAsITEsbi5zdGF0dXMsVChuKSkpO3RyeXtyPUVycm9yKG8rSlNPTi5zdHJpbmdpZnkodCkpfWNhdGNoKG4pe3I9dH19cmV0dXJuIHIuYXBwT3JQYXJjZWxOYW1lPVQobiksbi5zdGF0dXM9ZSxyfXZhciBsPVwiTk9UX0xPQURFRFwiLHA9XCJMT0FESU5HX1NPVVJDRV9DT0RFXCIsaD1cIk5PVF9CT09UU1RSQVBQRURcIixtPVwiQk9PVFNUUkFQUElOR1wiLGQ9XCJOT1RfTU9VTlRFRFwiLHY9XCJNT1VOVElOR1wiLHc9XCJNT1VOVEVEXCIsZz1cIlVQREFUSU5HXCIsRT1cIlVOTU9VTlRJTkdcIix5PVwiTE9BRF9FUlJPUlwiLE89XCJTS0lQX0JFQ0FVU0VfQlJPS0VOXCI7ZnVuY3Rpb24gUCh0KXtyZXR1cm4gdC5zdGF0dXM9PT13fWZ1bmN0aW9uIGIodCl7dHJ5e3JldHVybiB0LmFjdGl2ZVdoZW4od2luZG93LmxvY2F0aW9uKX1jYXRjaChuKXtyZXR1cm4gdShuLHQsTyksITF9fWZ1bmN0aW9uIFQodCl7cmV0dXJuIHQubmFtZX1mdW5jdGlvbiBBKHQpe3JldHVybiBCb29sZWFuKHQudW5tb3VudFRoaXNQYXJjZWwpfWZ1bmN0aW9uIE4odCl7cmV0dXJuIEEodCk/XCJwYXJjZWxcIjpcImFwcGxpY2F0aW9uXCJ9ZnVuY3Rpb24gUygpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLTE7dD4wO3QtLSlmb3IodmFyIG4gaW4gYXJndW1lbnRzW3RdKVwiX19wcm90b19fXCIhPT1uJiYoYXJndW1lbnRzW3QtMV1bbl09YXJndW1lbnRzW3RdW25dKTtyZXR1cm4gYXJndW1lbnRzWzBdfWZ1bmN0aW9uIF8odCxuKXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKylpZihuKHRbZV0pKXJldHVybiB0W2VdO3JldHVybiBudWxsfWZ1bmN0aW9uIEQodCl7cmV0dXJuIHQmJihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0fHwobj10LEFycmF5LmlzQXJyYXkobikmJiFfKG4sKGZ1bmN0aW9uKHQpe3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIHR9KSkpKTt2YXIgbn1mdW5jdGlvbiBVKHQsbil7dmFyIGU9dFtuXXx8W107MD09PShlPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV0pLmxlbmd0aCYmKGU9W2Z1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpfV0pO3ZhciByPU4odCksbz1UKHQpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5yZWR1Y2UoKGZ1bmN0aW9uKGUsaSx1KXtyZXR1cm4gZS50aGVuKChmdW5jdGlvbigpe3ZhciBlPWkodCk7cmV0dXJuIGooZSk/ZTpQcm9taXNlLnJlamVjdChzKDE1LCExLHIsbyxuLHUpKX0pKX0pLFByb21pc2UucmVzb2x2ZSgpKX19ZnVuY3Rpb24gaih0KXtyZXR1cm4gdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgdC50aGVuJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmNhdGNofWZ1bmN0aW9uIE0odCxuKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gdC5zdGF0dXMhPT1oP3Q6KHQuc3RhdHVzPW0sdC5ib290c3RyYXA/Vih0LFwiYm9vdHN0cmFwXCIpLnRoZW4oZSkuY2F0Y2goKGZ1bmN0aW9uKGUpe2lmKG4pdGhyb3cgZihlLHQsTyk7cmV0dXJuIHUoZSx0LE8pLHR9KSk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbihlKSl9KSk7ZnVuY3Rpb24gZSgpe3JldHVybiB0LnN0YXR1cz1kLHR9fWZ1bmN0aW9uIEwodCxuKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoZnVuY3Rpb24oKXtpZih0LnN0YXR1cyE9PXcpcmV0dXJuIHQ7dC5zdGF0dXM9RTt2YXIgZT1PYmplY3Qua2V5cyh0LnBhcmNlbHMpLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIHQucGFyY2Vsc1tuXS51bm1vdW50VGhpc1BhcmNlbCgpfSkpO3JldHVybiBQcm9taXNlLmFsbChlKS50aGVuKHIsKGZ1bmN0aW9uKGUpe3JldHVybiByKCkudGhlbigoZnVuY3Rpb24oKXt2YXIgcj1FcnJvcihlLm1lc3NhZ2UpO2lmKG4pdGhyb3cgZihyLHQsTyk7dShyLHQsTyl9KSl9KSkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gdH0pKTtmdW5jdGlvbiByKCl7cmV0dXJuIFYodCxcInVubW91bnRcIikudGhlbigoZnVuY3Rpb24oKXt0LnN0YXR1cz1kfSkpLmNhdGNoKChmdW5jdGlvbihlKXtpZihuKXRocm93IGYoZSx0LE8pO3UoZSx0LE8pfSkpfX0pKX12YXIgUj0hMSxJPSExO2Z1bmN0aW9uIHgodCxuKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gdC5zdGF0dXMhPT1kP3Q6KFJ8fCh3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgbyhcInNpbmdsZS1zcGE6YmVmb3JlLWZpcnN0LW1vdW50XCIpKSxSPSEwKSxWKHQsXCJtb3VudFwiKS50aGVuKChmdW5jdGlvbigpe3JldHVybiB0LnN0YXR1cz13LEl8fCh3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgbyhcInNpbmdsZS1zcGE6Zmlyc3QtbW91bnRcIikpLEk9ITApLHR9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiB0LnN0YXR1cz13LEwodCwhMCkudGhlbihyLHIpO2Z1bmN0aW9uIHIoKXtpZihuKXRocm93IGYoZSx0LE8pO3JldHVybiB1KGUsdCxPKSx0fX0pKSl9KSl9dmFyIEI9MCxHPXtwYXJjZWxzOnt9fTtmdW5jdGlvbiBDKCl7cmV0dXJuIFcuYXBwbHkoRyxhcmd1bWVudHMpfWZ1bmN0aW9uIFcodCxlKXt2YXIgcj10aGlzO2lmKCF0fHxcIm9iamVjdFwiIT09bih0KSYmXCJmdW5jdGlvblwiIT10eXBlb2YgdCl0aHJvdyBFcnJvcihzKDIsITEpKTtpZih0Lm5hbWUmJlwic3RyaW5nXCIhPXR5cGVvZiB0Lm5hbWUpdGhyb3cgRXJyb3IocygzLCExLG4odC5uYW1lKSkpO2lmKFwib2JqZWN0XCIhPT1uKGUpKXRocm93IEVycm9yKHMoNCwhMSxuYW1lLG4oZSkpKTtpZighZS5kb21FbGVtZW50KXRocm93IEVycm9yKHMoNSwhMSxuYW1lKSk7dmFyIG8saT1CKyssdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0LGE9dT90OmZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0KX0sYz17aWQ6aSxwYXJjZWxzOnt9LHN0YXR1czp1P3A6aCxjdXN0b21Qcm9wczplLHBhcmVudE5hbWU6VChyKSx1bm1vdW50VGhpc1BhcmNlbDpmdW5jdGlvbigpe2lmKGMuc3RhdHVzIT09dyl0aHJvdyBFcnJvcihzKDYsITEsbmFtZSxjLnN0YXR1cykpO3JldHVybiBMKGMsITApLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiBjLnBhcmVudE5hbWUmJmRlbGV0ZSByLnBhcmNlbHNbYy5pZF0sdH0pKS50aGVuKChmdW5jdGlvbih0KXtyZXR1cm4gbSh0KSx0fSkpLmNhdGNoKChmdW5jdGlvbih0KXt0aHJvdyBjLnN0YXR1cz1PLHYodCksdH0pKX19O3IucGFyY2Vsc1tpXT1jO3ZhciBsPWEoKTtpZighbHx8XCJmdW5jdGlvblwiIT10eXBlb2YgbC50aGVuKXRocm93IEVycm9yKHMoNywhMSkpO3ZhciBtLHYsRT0obD1sLnRoZW4oKGZ1bmN0aW9uKHQpe2lmKCF0KXRocm93IEVycm9yKHMoOCwhMSkpO3ZhciBuPXQubmFtZXx8XCJwYXJjZWwtXCIuY29uY2F0KGkpO2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LFwiYm9vdHN0cmFwXCIpJiYhRCh0LmJvb3RzdHJhcCkpdGhyb3cgRXJyb3Iocyg5LCExLG4pKTtpZighRCh0Lm1vdW50KSl0aHJvdyBFcnJvcihzKDEwLCExLG4pKTtpZighRCh0LnVubW91bnQpKXRocm93IEVycm9yKHMoMTEsITEsbikpO2lmKHQudXBkYXRlJiYhRCh0LnVwZGF0ZSkpdGhyb3cgRXJyb3IocygxMiwhMSxuKSk7dmFyIGU9VSh0LFwiYm9vdHN0cmFwXCIpLHI9VSh0LFwibW91bnRcIiksdT1VKHQsXCJ1bm1vdW50XCIpO2Muc3RhdHVzPWgsYy5uYW1lPW4sYy5ib290c3RyYXA9ZSxjLm1vdW50PXIsYy51bm1vdW50PXUsYy50aW1lb3V0cz1xKHQudGltZW91dHMpLHQudXBkYXRlJiYoYy51cGRhdGU9VSh0LFwidXBkYXRlXCIpLG8udXBkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBjLmN1c3RvbVByb3BzPXQsJChmdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoZnVuY3Rpb24oKXtpZih0LnN0YXR1cyE9PXcpdGhyb3cgRXJyb3IocygzMiwhMSxUKHQpKSk7cmV0dXJuIHQuc3RhdHVzPWcsVih0LFwidXBkYXRlXCIpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIHQuc3RhdHVzPXcsdH0pKS5jYXRjaCgoZnVuY3Rpb24obil7dGhyb3cgZihuLHQsTyl9KSl9KSl9KGMpKX0pfSkpKS50aGVuKChmdW5jdGlvbigpe3JldHVybiBNKGMsITApfSkpLHk9RS50aGVuKChmdW5jdGlvbigpe3JldHVybiB4KGMsITApfSkpLFA9bmV3IFByb21pc2UoKGZ1bmN0aW9uKHQsbil7bT10LHY9bn0pKTtyZXR1cm4gbz17bW91bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gJChQcm9taXNlLnJlc29sdmUoKS50aGVuKChmdW5jdGlvbigpe2lmKGMuc3RhdHVzIT09ZCl0aHJvdyBFcnJvcihzKDEzLCExLG5hbWUsYy5zdGF0dXMpKTtyZXR1cm4gci5wYXJjZWxzW2ldPWMseChjKX0pKSl9LHVubW91bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gJChjLnVubW91bnRUaGlzUGFyY2VsKCkpfSxnZXRTdGF0dXM6ZnVuY3Rpb24oKXtyZXR1cm4gYy5zdGF0dXN9LGxvYWRQcm9taXNlOiQobCksYm9vdHN0cmFwUHJvbWlzZTokKEUpLG1vdW50UHJvbWlzZTokKHkpLHVubW91bnRQcm9taXNlOiQoUCl9fWZ1bmN0aW9uICQodCl7cmV0dXJuIHQudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0pKX1mdW5jdGlvbiBrKGUpe3ZhciByPVQoZSksbz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlLmN1c3RvbVByb3BzP2UuY3VzdG9tUHJvcHMocix3aW5kb3cubG9jYXRpb24pOmUuY3VzdG9tUHJvcHM7KFwib2JqZWN0XCIhPT1uKG8pfHxudWxsPT09b3x8QXJyYXkuaXNBcnJheShvKSkmJihvPXt9LGNvbnNvbGUud2FybihzKDQwLCExKSxyLG8pKTt2YXIgaT1TKHt9LG8se25hbWU6cixtb3VudFBhcmNlbDpXLmJpbmQoZSksc2luZ2xlU3BhOnR9KTtyZXR1cm4gQShlKSYmKGkudW5tb3VudFNlbGY9ZS51bm1vdW50VGhpc1BhcmNlbCksaX12YXIgSz17Ym9vdHN0cmFwOnttaWxsaXM6NGUzLGRpZU9uVGltZW91dDohMSx3YXJuaW5nTWlsbGlzOjFlM30sbW91bnQ6e21pbGxpczozZTMsZGllT25UaW1lb3V0OiExLHdhcm5pbmdNaWxsaXM6MWUzfSx1bm1vdW50OnttaWxsaXM6M2UzLGRpZU9uVGltZW91dDohMSx3YXJuaW5nTWlsbGlzOjFlM30sdW5sb2FkOnttaWxsaXM6M2UzLGRpZU9uVGltZW91dDohMSx3YXJuaW5nTWlsbGlzOjFlM30sdXBkYXRlOnttaWxsaXM6M2UzLGRpZU9uVGltZW91dDohMSx3YXJuaW5nTWlsbGlzOjFlM319O2Z1bmN0aW9uIEYodCxuLGUpe2lmKFwibnVtYmVyXCIhPXR5cGVvZiB0fHx0PD0wKXRocm93IEVycm9yKHMoMTYsITEpKTtLLmJvb3RzdHJhcD17bWlsbGlzOnQsZGllT25UaW1lb3V0Om4sd2FybmluZ01pbGxpczplfHwxZTN9fWZ1bmN0aW9uIEoodCxuLGUpe2lmKFwibnVtYmVyXCIhPXR5cGVvZiB0fHx0PD0wKXRocm93IEVycm9yKHMoMTcsITEpKTtLLm1vdW50PXttaWxsaXM6dCxkaWVPblRpbWVvdXQ6bix3YXJuaW5nTWlsbGlzOmV8fDFlM319ZnVuY3Rpb24gSCh0LG4sZSl7aWYoXCJudW1iZXJcIiE9dHlwZW9mIHR8fHQ8PTApdGhyb3cgRXJyb3IocygxOCwhMSkpO0sudW5tb3VudD17bWlsbGlzOnQsZGllT25UaW1lb3V0Om4sd2FybmluZ01pbGxpczplfHwxZTN9fWZ1bmN0aW9uIFEodCxuLGUpe2lmKFwibnVtYmVyXCIhPXR5cGVvZiB0fHx0PD0wKXRocm93IEVycm9yKHMoMTksITEpKTtLLnVubG9hZD17bWlsbGlzOnQsZGllT25UaW1lb3V0Om4sd2FybmluZ01pbGxpczplfHwxZTN9fWZ1bmN0aW9uIFYodCxuKXt2YXIgZT10LnRpbWVvdXRzW25dLHI9ZS53YXJuaW5nTWlsbGlzLG89Tih0KTtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGksdSl7dmFyIGE9ITEsYz0hMTt0W25dKGsodCkpLnRoZW4oKGZ1bmN0aW9uKHQpe2E9ITAsaSh0KX0pKS5jYXRjaCgoZnVuY3Rpb24odCl7YT0hMCx1KHQpfSkpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIGwoMSl9KSxyKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBsKCEwKX0pLGUubWlsbGlzKTt2YXIgZj1zKDMxLCExLG4sbyxUKHQpLGUubWlsbGlzKTtmdW5jdGlvbiBsKHQpe2lmKCFhKWlmKCEwPT09dCljPSEwLGUuZGllT25UaW1lb3V0P3UoRXJyb3IoZikpOmNvbnNvbGUuZXJyb3IoZik7ZWxzZSBpZighYyl7dmFyIG49dCxvPW4qcjtjb25zb2xlLndhcm4oZiksbytyPGUubWlsbGlzJiZzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBsKG4rMSl9KSxyKX19fSkpfWZ1bmN0aW9uIHEodCl7dmFyIG49e307Zm9yKHZhciBlIGluIEspbltlXT1TKHt9LEtbZV0sdCYmdFtlXXx8e30pO3JldHVybiBufWZ1bmN0aW9uIHoodCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIHQubG9hZFByb21pc2U/dC5sb2FkUHJvbWlzZTp0LnN0YXR1cyE9PWwmJnQuc3RhdHVzIT09eT90Oih0LnN0YXR1cz1wLHQubG9hZFByb21pc2U9UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoZnVuY3Rpb24oKXt2YXIgbz10LmxvYWRBcHAoayh0KSk7aWYoIWoobykpdGhyb3cgcj0hMCxFcnJvcihzKDMzLCExLFQodCkpKTtyZXR1cm4gby50aGVuKChmdW5jdGlvbihyKXt2YXIgbzt0LmxvYWRFcnJvclRpbWU9bnVsbCxcIm9iamVjdFwiIT09bihlPXIpJiYobz0zNCksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsXCJib290c3RyYXBcIikmJiFEKGUuYm9vdHN0cmFwKSYmKG89MzUpLEQoZS5tb3VudCl8fChvPTM2KSxEKGUudW5tb3VudCl8fChvPTM3KTt2YXIgaT1OKGUpO2lmKG8pe3ZhciBhO3RyeXthPUpTT04uc3RyaW5naWZ5KGUpfWNhdGNoKHQpe31yZXR1cm4gY29uc29sZS5lcnJvcihzKG8sITEsaSxUKHQpLGEpLGUpLHUodm9pZCAwLHQsTyksdH1yZXR1cm4gZS5kZXZ0b29scyYmZS5kZXZ0b29scy5vdmVybGF5cyYmKHQuZGV2dG9vbHMub3ZlcmxheXM9Uyh7fSx0LmRldnRvb2xzLm92ZXJsYXlzLGUuZGV2dG9vbHMub3ZlcmxheXMpKSx0LnN0YXR1cz1oLHQuYm9vdHN0cmFwPVUoZSxcImJvb3RzdHJhcFwiKSx0Lm1vdW50PVUoZSxcIm1vdW50XCIpLHQudW5tb3VudD1VKGUsXCJ1bm1vdW50XCIpLHQudW5sb2FkPVUoZSxcInVubG9hZFwiKSx0LnRpbWVvdXRzPXEoZS50aW1lb3V0cyksZGVsZXRlIHQubG9hZFByb21pc2UsdH0pKX0pKS5jYXRjaCgoZnVuY3Rpb24obil7dmFyIGU7cmV0dXJuIGRlbGV0ZSB0LmxvYWRQcm9taXNlLHI/ZT1POihlPXksdC5sb2FkRXJyb3JUaW1lPShuZXcgRGF0ZSkuZ2V0VGltZSgpKSx1KG4sdCxlKSx0fSkpKTt2YXIgZSxyfSkpfXZhciBYLFk9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdyxaPXtoYXNoY2hhbmdlOltdLHBvcHN0YXRlOltdfSx0dD1bXCJoYXNoY2hhbmdlXCIsXCJwb3BzdGF0ZVwiXTtmdW5jdGlvbiBudCh0KXt2YXIgbjtpZihcInN0cmluZ1wiPT10eXBlb2YgdCluPXQ7ZWxzZSBpZih0aGlzJiZ0aGlzLmhyZWYpbj10aGlzLmhyZWY7ZWxzZXtpZighKHQmJnQuY3VycmVudFRhcmdldCYmdC5jdXJyZW50VGFyZ2V0LmhyZWYmJnQucHJldmVudERlZmF1bHQpKXRocm93IEVycm9yKHMoMTQsITEpKTtuPXQuY3VycmVudFRhcmdldC5ocmVmLHQucHJldmVudERlZmF1bHQoKX12YXIgZT1jdCh3aW5kb3cubG9jYXRpb24uaHJlZikscj1jdChuKTswPT09bi5pbmRleE9mKFwiI1wiKT93aW5kb3cubG9jYXRpb24uaGFzaD1yLmhhc2g6ZS5ob3N0IT09ci5ob3N0JiZyLmhvc3Q/d2luZG93LmxvY2F0aW9uLmhyZWY9bjpyLnBhdGhuYW1lPT09ZS5wYXRobmFtZSYmci5zZWFyY2g9PT1lLnNlYXJjaD93aW5kb3cubG9jYXRpb24uaGFzaD1yLmhhc2g6d2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKG51bGwsbnVsbCxuKX1mdW5jdGlvbiBldCh0KXt2YXIgbj10aGlzO2lmKHQpe3ZhciBlPXRbMF0udHlwZTt0dC5pbmRleE9mKGUpPj0wJiZaW2VdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RyeXtlLmFwcGx5KG4sdCl9Y2F0Y2godCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0aHJvdyB0fSkpfX0pKX19ZnVuY3Rpb24gcnQoKXtMdChbXSxhcmd1bWVudHMpfWZ1bmN0aW9uIG90KHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9d2luZG93LmxvY2F0aW9uLmhyZWYscj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxvPXdpbmRvdy5sb2NhdGlvbi5ocmVmO3JldHVybiBYJiZlPT09b3x8d2luZG93LmRpc3BhdGNoRXZlbnQoaXQod2luZG93Lmhpc3Rvcnkuc3RhdGUsbikpLHJ9fWZ1bmN0aW9uIGl0KHQsbil7dmFyIGU7dHJ5e2U9bmV3IFBvcFN0YXRlRXZlbnQoXCJwb3BzdGF0ZVwiLHtzdGF0ZTp0fSl9Y2F0Y2gobil7KGU9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJQb3BTdGF0ZUV2ZW50XCIpKS5pbml0UG9wU3RhdGVFdmVudChcInBvcHN0YXRlXCIsITEsITEsdCl9cmV0dXJuIGUuc2luZ2xlU3BhPSEwLGUuc2luZ2xlU3BhVHJpZ2dlcj1uLGV9aWYoWSl7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJoYXNoY2hhbmdlXCIscnQpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicG9wc3RhdGVcIixydCk7dmFyIHV0PXdpbmRvdy5hZGRFdmVudExpc3RlbmVyLGF0PXdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQsbil7aWYoIShcImZ1bmN0aW9uXCI9PXR5cGVvZiBuJiZ0dC5pbmRleE9mKHQpPj0wKXx8XyhaW3RdLChmdW5jdGlvbih0KXtyZXR1cm4gdD09PW59KSkpcmV0dXJuIHV0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtaW3RdLnB1c2gobil9LHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQsbil7aWYoIShcImZ1bmN0aW9uXCI9PXR5cGVvZiBuJiZ0dC5pbmRleE9mKHQpPj0wKSlyZXR1cm4gYXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO1pbdF09Wlt0XS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09bn0pKX0sd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlPW90KHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSxcInB1c2hTdGF0ZVwiKSx3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGU9b3Qod2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlLFwicmVwbGFjZVN0YXRlXCIpLHdpbmRvdy5zaW5nbGVTcGFOYXZpZ2F0ZT9jb25zb2xlLndhcm4ocyg0MSwhMSkpOndpbmRvdy5zaW5nbGVTcGFOYXZpZ2F0ZT1udH1mdW5jdGlvbiBjdCh0KXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtyZXR1cm4gbi5ocmVmPXQsbn12YXIgc3Q9ITE7ZnVuY3Rpb24gZnQoKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06d2luZG93LmpRdWVyeTtpZih0fHx3aW5kb3cuJCYmd2luZG93LiQuZm4mJndpbmRvdy4kLmZuLmpxdWVyeSYmKHQ9d2luZG93LiQpLHQmJiFzdCl7dmFyIG49dC5mbi5vbixlPXQuZm4ub2ZmO3QuZm4ub249ZnVuY3Rpb24odCxlKXtyZXR1cm4gbHQuY2FsbCh0aGlzLG4sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIsdCxlLGFyZ3VtZW50cyl9LHQuZm4ub2ZmPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGx0LmNhbGwodGhpcyxlLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyLHQsbixhcmd1bWVudHMpfSxzdD0hMH19ZnVuY3Rpb24gbHQodCxuLGUscixvKXtyZXR1cm5cInN0cmluZ1wiIT10eXBlb2YgZT90LmFwcGx5KHRoaXMsbyk6KGUuc3BsaXQoL1xccysvKS5mb3JFYWNoKChmdW5jdGlvbih0KXt0dC5pbmRleE9mKHQpPj0wJiYobih0LHIpLGU9ZS5yZXBsYWNlKHQsXCJcIikpfSkpLFwiXCI9PT1lLnRyaW0oKT90aGlzOnQuYXBwbHkodGhpcyxvKSl9dmFyIHB0PXt9O2Z1bmN0aW9uIGh0KHQpe3JldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKChmdW5jdGlvbigpe3ZhciBuPXB0W1QodCldO3JldHVybiBuP3Quc3RhdHVzPT09bD8obXQodCxuKSx0KTpcIlVOTE9BRElOR1wiPT09dC5zdGF0dXM/bi5wcm9taXNlLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIHR9KSk6dC5zdGF0dXMhPT1kP3Q6KHQuc3RhdHVzPVwiVU5MT0FESU5HXCIsVih0LFwidW5sb2FkXCIpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIG10KHQsbiksdH0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQsbixlKXtkZWxldGUgcHRbVCh0KV0sZGVsZXRlIHQuYm9vdHN0cmFwLGRlbGV0ZSB0Lm1vdW50LGRlbGV0ZSB0LnVubW91bnQsZGVsZXRlIHQudW5sb2FkLHUoZSx0LE8pLG4ucmVqZWN0KGUpfSh0LG4sZSksdH0pKSk6dH0pKX1mdW5jdGlvbiBtdCh0LG4pe2RlbGV0ZSBwdFtUKHQpXSxkZWxldGUgdC5ib290c3RyYXAsZGVsZXRlIHQubW91bnQsZGVsZXRlIHQudW5tb3VudCxkZWxldGUgdC51bmxvYWQsdC5zdGF0dXM9bCxuLnJlc29sdmUoKX1mdW5jdGlvbiBkdCh0LG4sZSxyKXtwdFtUKHQpXT17YXBwOnQscmVzb2x2ZTplLHJlamVjdDpyfSxPYmplY3QuZGVmaW5lUHJvcGVydHkocHRbVCh0KV0sXCJwcm9taXNlXCIse2dldDpufSl9ZnVuY3Rpb24gdnQodCl7cmV0dXJuIHB0W3RdfXZhciB3dD1bXTtmdW5jdGlvbiBndCgpe3ZhciB0PVtdLG49W10sZT1bXSxyPVtdLG89KG5ldyBEYXRlKS5nZXRUaW1lKCk7cmV0dXJuIHd0LmZvckVhY2goKGZ1bmN0aW9uKGkpe3ZhciB1PWkuc3RhdHVzIT09TyYmYihpKTtzd2l0Y2goaS5zdGF0dXMpe2Nhc2UgeTp1JiZvLWkubG9hZEVycm9yVGltZT49MjAwJiZlLnB1c2goaSk7YnJlYWs7Y2FzZSBsOmNhc2UgcDp1JiZlLnB1c2goaSk7YnJlYWs7Y2FzZSBoOmNhc2UgZDohdSYmdnQoVChpKSk/dC5wdXNoKGkpOnUmJnIucHVzaChpKTticmVhaztjYXNlIHc6dXx8bi5wdXNoKGkpfX0pKSx7YXBwc1RvVW5sb2FkOnQsYXBwc1RvVW5tb3VudDpuLGFwcHNUb0xvYWQ6ZSxhcHBzVG9Nb3VudDpyfX1mdW5jdGlvbiBFdCgpe3JldHVybiB3dC5maWx0ZXIoUCkubWFwKFQpfWZ1bmN0aW9uIHl0KCl7cmV0dXJuIHd0Lm1hcChUKX1mdW5jdGlvbiBPdCh0KXt2YXIgbj1fKHd0LChmdW5jdGlvbihuKXtyZXR1cm4gVChuKT09PXR9KSk7cmV0dXJuIG4/bi5zdGF0dXM6bnVsbH1mdW5jdGlvbiBQdCh0LGUscixvKXt2YXIgaT1mdW5jdGlvbih0LGUscixvKXt2YXIgaSx1PXtuYW1lOm51bGwsbG9hZEFwcDpudWxsLGFjdGl2ZVdoZW46bnVsbCxjdXN0b21Qcm9wczpudWxsfTtyZXR1cm5cIm9iamVjdFwiPT09bih0KT8oZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KXx8bnVsbD09PXQpdGhyb3cgRXJyb3IocygzOSwhMSkpO3ZhciBlPVtcIm5hbWVcIixcImFwcFwiLFwiYWN0aXZlV2hlblwiLFwiY3VzdG9tUHJvcHNcIl0scj1PYmplY3Qua2V5cyh0KS5yZWR1Y2UoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUuaW5kZXhPZihuKT49MD90OnQuY29uY2F0KG4pfSksW10pO2lmKDAhPT1yLmxlbmd0aCl0aHJvdyBFcnJvcihzKDM4LCExLGUuam9pbihcIiwgXCIpLHIuam9pbihcIiwgXCIpKSk7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIHQubmFtZXx8MD09PXQubmFtZS5sZW5ndGgpdGhyb3cgRXJyb3IocygyMCwhMSkpO2lmKFwib2JqZWN0XCIhPT1uKHQuYXBwKSYmXCJmdW5jdGlvblwiIT10eXBlb2YgdC5hcHApdGhyb3cgRXJyb3IocygyMCwhMSkpO3ZhciBvPWZ1bmN0aW9uKHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0fHxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0fTtpZighKG8odC5hY3RpdmVXaGVuKXx8QXJyYXkuaXNBcnJheSh0LmFjdGl2ZVdoZW4pJiZ0LmFjdGl2ZVdoZW4uZXZlcnkobykpKXRocm93IEVycm9yKHMoMjQsITEpKTtpZighU3QodC5jdXN0b21Qcm9wcykpdGhyb3cgRXJyb3IocygyMiwhMSkpfSh0KSx1Lm5hbWU9dC5uYW1lLHUubG9hZEFwcD10LmFwcCx1LmFjdGl2ZVdoZW49dC5hY3RpdmVXaGVuLHUuY3VzdG9tUHJvcHM9dC5jdXN0b21Qcm9wcyk6KGZ1bmN0aW9uKHQsbixlLHIpe2lmKFwic3RyaW5nXCIhPXR5cGVvZiB0fHwwPT09dC5sZW5ndGgpdGhyb3cgRXJyb3IocygyMCwhMSkpO2lmKCFuKXRocm93IEVycm9yKHMoMjMsITEpKTtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXRocm93IEVycm9yKHMoMjQsITEpKTtpZighU3QocikpdGhyb3cgRXJyb3IocygyMiwhMSkpfSh0LGUscixvKSx1Lm5hbWU9dCx1LmxvYWRBcHA9ZSx1LmFjdGl2ZVdoZW49cix1LmN1c3RvbVByb3BzPW8pLHUubG9hZEFwcD1cImZ1bmN0aW9uXCIhPXR5cGVvZihpPXUubG9hZEFwcCk/ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGkpfTppLHUuY3VzdG9tUHJvcHM9ZnVuY3Rpb24odCl7cmV0dXJuIHR8fHt9fSh1LmN1c3RvbVByb3BzKSx1LmFjdGl2ZVdoZW49ZnVuY3Rpb24odCl7dmFyIG49QXJyYXkuaXNBcnJheSh0KT90Olt0XTtyZXR1cm4gbj1uLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgdD90Ol90KHQpfSkpLGZ1bmN0aW9uKHQpe3JldHVybiBuLnNvbWUoKGZ1bmN0aW9uKG4pe3JldHVybiBuKHQpfSkpfX0odS5hY3RpdmVXaGVuKSx1fSh0LGUscixvKTtpZigtMSE9PXl0KCkuaW5kZXhPZihpLm5hbWUpKXRocm93IEVycm9yKHMoMjEsITEsaS5uYW1lKSk7d3QucHVzaChTKHtsb2FkRXJyb3JUaW1lOm51bGwsc3RhdHVzOmwscGFyY2Vsczp7fSxkZXZ0b29sczp7b3ZlcmxheXM6e29wdGlvbnM6e30sc2VsZWN0b3JzOltdfX19LGkpKSxZJiYoZnQoKSxMdCgpKX1mdW5jdGlvbiBidCgpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp3aW5kb3cubG9jYXRpb247cmV0dXJuIHd0LmZpbHRlcigoZnVuY3Rpb24obil7cmV0dXJuIG4uYWN0aXZlV2hlbih0KX0pKS5tYXAoVCl9ZnVuY3Rpb24gVHQodCl7aWYoMD09PXd0LmZpbHRlcigoZnVuY3Rpb24obil7cmV0dXJuIFQobik9PT10fSkpLmxlbmd0aCl0aHJvdyBFcnJvcihzKDI1LCExLHQpKTtyZXR1cm4gQXQodCkudGhlbigoZnVuY3Rpb24oKXt2YXIgbj13dC5tYXAoVCkuaW5kZXhPZih0KTt3dC5zcGxpY2UobiwxKX0pKX1mdW5jdGlvbiBBdCh0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e3dhaXRGb3JVbm1vdW50OiExfTtpZihcInN0cmluZ1wiIT10eXBlb2YgdCl0aHJvdyBFcnJvcihzKDI2LCExKSk7dmFyIGU9Xyh3dCwoZnVuY3Rpb24obil7cmV0dXJuIFQobik9PT10fSkpO2lmKCFlKXRocm93IEVycm9yKHMoMjcsITEsdCkpO3ZhciByLG89dnQoVChlKSk7aWYobiYmbi53YWl0Rm9yVW5tb3VudCl7aWYobylyZXR1cm4gby5wcm9taXNlO3ZhciBpPW5ldyBQcm9taXNlKChmdW5jdGlvbih0LG4pe2R0KGUsKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSx0LG4pfSkpO3JldHVybiBpfXJldHVybiBvPyhyPW8ucHJvbWlzZSxOdChlLG8ucmVzb2x2ZSxvLnJlamVjdCkpOnI9bmV3IFByb21pc2UoKGZ1bmN0aW9uKHQsbil7ZHQoZSwoZnVuY3Rpb24oKXtyZXR1cm4gcn0pLHQsbiksTnQoZSx0LG4pfSkpLHJ9ZnVuY3Rpb24gTnQodCxuLGUpe0wodCkudGhlbihodCkudGhlbigoZnVuY3Rpb24oKXtuKCksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtMdCgpfSkpfSkpLmNhdGNoKGUpfWZ1bmN0aW9uIFN0KHQpe3JldHVybiF0fHxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0fHxcIm9iamVjdFwiPT09bih0KSYmbnVsbCE9PXQmJiFBcnJheS5pc0FycmF5KHQpfWZ1bmN0aW9uIF90KHQpe3ZhciBuPWZ1bmN0aW9uKHQpe3ZhciBuPTAsZT0hMSxyPVwiXlwiO1wiL1wiIT09dFswXSYmKHQ9XCIvXCIrdCk7Zm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciBpPXRbb107KCFlJiZcIjpcIj09PWl8fGUmJlwiL1wiPT09aSkmJnUobyl9cmV0dXJuIHUodC5sZW5ndGgpLG5ldyBSZWdFeHAocixcImlcIik7ZnVuY3Rpb24gdShvKXt2YXIgaT10LnNsaWNlKG4sbykucmVwbGFjZSgvW3xcXFxce30oKVtcXF1eJCsqPy5dL2csXCJcXFxcJCZcIik7cis9ZT9cIlteL10rLz9cIjppLG8hPT10Lmxlbmd0aHx8ZXx8KHI9XCIvXCI9PT1yLmNoYXJBdChyLmxlbmd0aC0xKT9cIlwiLmNvbmNhdChyLFwiLiokXCIpOlwiXCIuY29uY2F0KHIsXCIoWy8jXS4qKT8kXCIpKSxlPSFlLG49b319KHQpO3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT10LmhyZWYucmVwbGFjZSh0Lm9yaWdpbixcIlwiKS5yZXBsYWNlKHQuc2VhcmNoLFwiXCIpLnNwbGl0KFwiP1wiKVswXTtyZXR1cm4gbi50ZXN0KGUpfX12YXIgRHQ9ITEsVXQ9W10sanQ9WSYmd2luZG93LmxvY2F0aW9uLmhyZWY7ZnVuY3Rpb24gTXQoKXtyZXR1cm4gTHQoKX1mdW5jdGlvbiBMdCgpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpbXSxuPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwO2lmKER0KXJldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCxlKXtVdC5wdXNoKHtyZXNvbHZlOnQscmVqZWN0OmUsZXZlbnRBcmd1bWVudHM6bn0pfSkpO3ZhciByLGk9Z3QoKSx1PWkuYXBwc1RvVW5sb2FkLGE9aS5hcHBzVG9Vbm1vdW50LGM9aS5hcHBzVG9Mb2FkLHM9aS5hcHBzVG9Nb3VudCxmPSExLHA9anQsaD1qdD13aW5kb3cubG9jYXRpb24uaHJlZjtyZXR1cm4gQnQoKT8oRHQ9ITAscj11LmNvbmNhdChjLGEscyksZygpKToocj1jLHYoKSk7ZnVuY3Rpb24gbSgpe2Y9ITB9ZnVuY3Rpb24gdigpe3JldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKChmdW5jdGlvbigpe3ZhciB0PWMubWFwKHopO3JldHVybiBQcm9taXNlLmFsbCh0KS50aGVuKHkpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuW119KSkuY2F0Y2goKGZ1bmN0aW9uKHQpe3Rocm93IHkoKSx0fSkpfSkpfWZ1bmN0aW9uIGcoKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoZnVuY3Rpb24oKXtpZih3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgbygwPT09ci5sZW5ndGg/XCJzaW5nbGUtc3BhOmJlZm9yZS1uby1hcHAtY2hhbmdlXCI6XCJzaW5nbGUtc3BhOmJlZm9yZS1hcHAtY2hhbmdlXCIsUCghMCkpKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgbyhcInNpbmdsZS1zcGE6YmVmb3JlLXJvdXRpbmctZXZlbnRcIixQKCEwLHtjYW5jZWxOYXZpZ2F0aW9uOm19KSkpLGYpcmV0dXJuIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBvKFwic2luZ2xlLXNwYTpiZWZvcmUtbW91bnQtcm91dGluZy1ldmVudFwiLFAoITApKSksRSgpLHZvaWQgbnQocCk7dmFyIG49dS5tYXAoaHQpLGU9YS5tYXAoTCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC50aGVuKGh0KX0pKS5jb25jYXQobiksaT1Qcm9taXNlLmFsbChlKTtpLnRoZW4oKGZ1bmN0aW9uKCl7d2luZG93LmRpc3BhdGNoRXZlbnQobmV3IG8oXCJzaW5nbGUtc3BhOmJlZm9yZS1tb3VudC1yb3V0aW5nLWV2ZW50XCIsUCghMCkpKX0pKTt2YXIgbD1jLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHoodCkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIFJ0KHQsaSl9KSl9KSksaD1zLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIGMuaW5kZXhPZih0KTwwfSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFJ0KHQsaSl9KSk7cmV0dXJuIGkuY2F0Y2goKGZ1bmN0aW9uKHQpe3Rocm93IHkoKSx0fSkpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIHkoKSxQcm9taXNlLmFsbChsLmNvbmNhdChoKSkuY2F0Y2goKGZ1bmN0aW9uKG4pe3Rocm93IHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQucmVqZWN0KG4pfSkpLG59KSkudGhlbihFKX0pKX0pKX1mdW5jdGlvbiBFKCl7dmFyIG49RXQoKTt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlc29sdmUobil9KSk7dHJ5e3ZhciBlPTA9PT1yLmxlbmd0aD9cInNpbmdsZS1zcGE6bm8tYXBwLWNoYW5nZVwiOlwic2luZ2xlLXNwYTphcHAtY2hhbmdlXCI7d2luZG93LmRpc3BhdGNoRXZlbnQobmV3IG8oZSxQKCkpKSx3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgbyhcInNpbmdsZS1zcGE6cm91dGluZy1ldmVudFwiLFAoKSkpfWNhdGNoKHQpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dGhyb3cgdH0pKX1pZihEdD0hMSxVdC5sZW5ndGg+MCl7dmFyIGk9VXQ7VXQ9W10sTHQoaSl9cmV0dXJuIG59ZnVuY3Rpb24geSgpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZXQodC5ldmVudEFyZ3VtZW50cyl9KSksZXQobil9ZnVuY3Rpb24gUCgpe3ZhciB0LG89YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSxpPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLG09e30sdj0oZSh0PXt9LHcsW10pLGUodCxkLFtdKSxlKHQsbCxbXSksZSh0LE8sW10pLHQpO28/KGMuY29uY2F0KHMpLmZvckVhY2goKGZ1bmN0aW9uKHQsbil7RSh0LHcpfSkpLHUuZm9yRWFjaCgoZnVuY3Rpb24odCl7RSh0LGwpfSkpLGEuZm9yRWFjaCgoZnVuY3Rpb24odCl7RSh0LGQpfSkpKTpyLmZvckVhY2goKGZ1bmN0aW9uKHQpe0UodCl9KSk7dmFyIGc9e2RldGFpbDp7bmV3QXBwU3RhdHVzZXM6bSxhcHBzQnlOZXdTdGF0dXM6dix0b3RhbEFwcENoYW5nZXM6ci5sZW5ndGgsb3JpZ2luYWxFdmVudDpudWxsPT1uP3ZvaWQgMDpuWzBdLG9sZFVybDpwLG5ld1VybDpoLG5hdmlnYXRpb25Jc0NhbmNlbGVkOmZ9fTtyZXR1cm4gaSYmUyhnLmRldGFpbCxpKSxnO2Z1bmN0aW9uIEUodCxuKXt2YXIgZT1UKHQpO249bnx8T3QoZSksbVtlXT1uLCh2W25dPXZbbl18fFtdKS5wdXNoKGUpfX19ZnVuY3Rpb24gUnQodCxuKXtyZXR1cm4gYih0KT9NKHQpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiBuLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIGIodCk/eCh0KTp0fSkpfSkpOm4udGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gdH0pKX12YXIgSXQ9ITE7ZnVuY3Rpb24geHQodCl7dmFyIG47SXQ9ITAsdCYmdC51cmxSZXJvdXRlT25seSYmKG49dC51cmxSZXJvdXRlT25seSxYPW4pLFkmJkx0KCl9ZnVuY3Rpb24gQnQoKXtyZXR1cm4gSXR9WSYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXtJdHx8Y29uc29sZS53YXJuKHMoMSwhMSkpfSksNWUzKTt2YXIgR3Q9e2dldFJhd0FwcERhdGE6ZnVuY3Rpb24oKXtyZXR1cm5bXS5jb25jYXQod3QpfSxyZXJvdXRlOkx0LE5PVF9MT0FERUQ6bCx0b0xvYWRQcm9taXNlOnosdG9Cb290c3RyYXBQcm9taXNlOk0sdW5yZWdpc3RlckFwcGxpY2F0aW9uOlR0fTtZJiZ3aW5kb3cuX19TSU5HTEVfU1BBX0RFVlRPT0xTX18mJih3aW5kb3cuX19TSU5HTEVfU1BBX0RFVlRPT0xTX18uZXhwb3NlZE1ldGhvZHM9R3QpO2V4cG9ydHttIGFzIEJPT1RTVFJBUFBJTkcscCBhcyBMT0FESU5HX1NPVVJDRV9DT0RFLHkgYXMgTE9BRF9FUlJPUix3IGFzIE1PVU5URUQsdiBhcyBNT1VOVElORyxoIGFzIE5PVF9CT09UU1RSQVBQRUQsbCBhcyBOT1RfTE9BREVELGQgYXMgTk9UX01PVU5URUQsTyBhcyBTS0lQX0JFQ0FVU0VfQlJPS0VOLEUgYXMgVU5NT1VOVElORyxnIGFzIFVQREFUSU5HLGEgYXMgYWRkRXJyb3JIYW5kbGVyLGJ0IGFzIGNoZWNrQWN0aXZpdHlGdW5jdGlvbnMsZnQgYXMgZW5zdXJlSlF1ZXJ5U3VwcG9ydCx5dCBhcyBnZXRBcHBOYW1lcyxPdCBhcyBnZXRBcHBTdGF0dXMsRXQgYXMgZ2V0TW91bnRlZEFwcHMsQyBhcyBtb3VudFJvb3RQYXJjZWwsbnQgYXMgbmF2aWdhdGVUb1VybCxfdCBhcyBwYXRoVG9BY3RpdmVXaGVuLFB0IGFzIHJlZ2lzdGVyQXBwbGljYXRpb24sYyBhcyByZW1vdmVFcnJvckhhbmRsZXIsRiBhcyBzZXRCb290c3RyYXBNYXhUaW1lLEogYXMgc2V0TW91bnRNYXhUaW1lLFEgYXMgc2V0VW5sb2FkTWF4VGltZSxIIGFzIHNldFVubW91bnRNYXhUaW1lLHh0IGFzIHN0YXJ0LE10IGFzIHRyaWdnZXJBcHBDaGFuZ2UsQXQgYXMgdW5sb2FkQXBwbGljYXRpb24sVHQgYXMgdW5yZWdpc3RlckFwcGxpY2F0aW9ufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNpbmdsZS1zcGEubWluLmpzLm1hcFxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTs7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/single-spa/lib/esm/single-spa.min.js\n"); /***/ }) }]);