40 lines
247 KiB
JavaScript
40 lines
247 KiB
JavaScript
/*
|
||
* 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/).
|
||
*/
|
||
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["polyfills"],{
|
||
|
||
/***/ "./node_modules/next/dist/client/polyfills.js":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/next/dist/client/polyfills.js ***!
|
||
\****************************************************/
|
||
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
eval("/* module decorator */ module = __webpack_require__.nmd(module);\n\n\n__webpack_require__(/*! next/dist/build/polyfills/polyfill-nomodule */ \"./node_modules/next/dist/build/polyfills/polyfill-nomodule.js\");\n\n;\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n var currentExports = module.__proto__.exports;\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcG9seWZpbGxzLmpzPzVjYjEiXSwibmFtZXMiOlsicmVxdWlyZSJdLCJtYXBwaW5ncyI6IjtBQUFhOztBQUFBQSxtQkFBTyxDQUFDLGtIQUFELENBQVAiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wb2x5ZmlsbHMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtyZXF1aXJlKFwibmV4dC9kaXN0L2J1aWxkL3BvbHlmaWxscy9wb2x5ZmlsbC1ub21vZHVsZVwiKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBvbHlmaWxscy5qcy5tYXAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/polyfills.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/next/dist/build/polyfills/polyfill-nomodule.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/build/polyfills/polyfill-nomodule.js ***!
|
||
\*********************************************************************/
|
||
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
eval("!function(){var t=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof __webpack_require__.g?__webpack_require__.g:\"undefined\"!=typeof self?self:{};function e(t){var e={exports:{}};return t(e,e.exports),e.exports}var r=function(t){return t&&t.Math==Math&&t},n=r(\"object\"==typeof globalThis&&globalThis)||r(\"object\"==typeof window&&window)||r(\"object\"==typeof self&&self)||r(\"object\"==typeof t&&t)||Function(\"return this\")(),o=function(t){try{return!!t()}catch(t){return!0}},i=!o(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}),a={}.propertyIsEnumerable,u=Object.getOwnPropertyDescriptor,s={f:u&&!a.call({1:2},1)?function(t){var e=u(this,t);return!!e&&e.enumerable}:a},c=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},f={}.toString,l=function(t){return f.call(t).slice(8,-1)},h=\"\".split,p=o(function(){return!Object(\"z\").propertyIsEnumerable(0)})?function(t){return\"String\"==l(t)?h.call(t,\"\"):Object(t)}:Object,d=function(t){if(null==t)throw TypeError(\"Can't call method on \"+t);return t},v=function(t){return p(d(t))},g=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t},y=function(t,e){if(!g(t))return t;var r,n;if(e&&\"function\"==typeof(r=t.toString)&&!g(n=r.call(t)))return n;if(\"function\"==typeof(r=t.valueOf)&&!g(n=r.call(t)))return n;if(!e&&\"function\"==typeof(r=t.toString)&&!g(n=r.call(t)))return n;throw TypeError(\"Can't convert object to primitive value\")},m={}.hasOwnProperty,b=function(t,e){return m.call(t,e)},w=n.document,S=g(w)&&g(w.createElement),E=function(t){return S?w.createElement(t):{}},x=!i&&!o(function(){return 7!=Object.defineProperty(E(\"div\"),\"a\",{get:function(){return 7}}).a}),A=Object.getOwnPropertyDescriptor,O={f:i?A:function(t,e){if(t=v(t),e=y(e,!0),x)try{return A(t,e)}catch(t){}if(b(t,e))return c(!s.f.call(t,e),t[e])}},R=function(t){if(!g(t))throw TypeError(String(t)+\" is not an object\");return t},j=Object.defineProperty,P={f:i?j:function(t,e,r){if(R(t),e=y(e,!0),R(r),x)try{return j(t,e,r)}catch(t){}if(\"get\"in r||\"set\"in r)throw TypeError(\"Accessors not supported\");return\"value\"in r&&(t[e]=r.value),t}},I=i?function(t,e,r){return P.f(t,e,c(1,r))}:function(t,e,r){return t[e]=r,t},T=function(t,e){try{I(n,t,e)}catch(r){n[t]=e}return e},k=\"__core-js_shared__\",L=n[k]||T(k,{}),U=Function.toString;\"function\"!=typeof L.inspectSource&&(L.inspectSource=function(t){return U.call(t)});var M,_,N,C=L.inspectSource,F=n.WeakMap,B=\"function\"==typeof F&&/native code/.test(C(F)),D=!1,q=e(function(t){(t.exports=function(t,e){return L[t]||(L[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.5\",mode:\"global\",copyright:\"© 2020 Denis Pushkarev (zloirock.ru)\"})}),z=0,W=Math.random(),K=function(t){return\"Symbol(\"+String(void 0===t?\"\":t)+\")_\"+(++z+W).toString(36)},G=q(\"keys\"),$=function(t){return G[t]||(G[t]=K(t))},V={};if(B){var H=new(0,n.WeakMap),X=H.get,Y=H.has,J=H.set;M=function(t,e){return J.call(H,t,e),e},_=function(t){return X.call(H,t)||{}},N=function(t){return Y.call(H,t)}}else{var Q=$(\"state\");V[Q]=!0,M=function(t,e){return I(t,Q,e),e},_=function(t){return b(t,Q)?t[Q]:{}},N=function(t){return b(t,Q)}}var Z,tt={set:M,get:_,has:N,enforce:function(t){return N(t)?_(t):M(t,{})},getterFor:function(t){return function(e){var r;if(!g(e)||(r=_(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return r}}},et=e(function(t){var e=tt.get,r=tt.enforce,o=String(String).split(\"String\");(t.exports=function(t,e,i,a){var u=!!a&&!!a.unsafe,s=!!a&&!!a.enumerable,c=!!a&&!!a.noTargetGet;\"function\"==typeof i&&(\"string\"!=typeof e||b(i,\"name\")||I(i,\"name\",e),r(i).source=o.join(\"string\"==typeof e?e:\"\")),t!==n?(u?!c&&t[e]&&(s=!0):delete t[e],s?t[e]=i:I(t,e,i)):s?t[e]=i:T(e,i)})(Function.prototype,\"toString\",function(){return\"function\"==typeof this&&e(this).source||C(this)})}),rt=n,nt=function(t){return\"function\"==typeof t?t:void 0},ot=function(t,e){return arguments.length<2?nt(rt[t])||nt(n[t]):rt[t]&&rt[t][e]||n[t]&&n[t][e]},it=Math.ceil,at=Math.floor,ut=function(t){return isNaN(t=+t)?0:(t>0?at:it)(t)},st=Math.min,ct=function(t){return t>0?st(ut(t),9007199254740991):0},ft=Math.max,lt=Math.min,ht=function(t,e){var r=ut(t);return r<0?ft(r+e,0):lt(r,e)},pt=function(t){return function(e,r,n){var o,i=v(e),a=ct(i.length),u=ht(n,a);if(t&&r!=r){for(;a>u;)if((o=i[u++])!=o)return!0}else for(;a>u;u++)if((t||u in i)&&i[u]===r)return t||u||0;return!t&&-1}},dt={includes:pt(!0),indexOf:pt(!1)},vt=dt.indexOf,gt=function(t,e){var r,n=v(t),o=0,i=[];for(r in n)!b(V,r)&&b(n,r)&&i.push(r);for(;e.length>o;)b(n,r=e[o++])&&(~vt(i,r)||i.push(r));return i},yt=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"],mt=yt.concat(\"length\",\"prototype\"),bt={f:Object.getOwnPropertyNames||function(t){return gt(t,mt)}},wt={f:Object.getOwnPropertySymbols},St=ot(\"Reflect\",\"ownKeys\")||function(t){var e=bt.f(R(t)),r=wt.f;return r?e.concat(r(t)):e},Et=function(t,e){for(var r=St(e),n=P.f,o=O.f,i=0;i<r.length;i++){var a=r[i];b(t,a)||n(t,a,o(e,a))}},xt=/#|\\.prototype\\./,At=function(t,e){var r=Rt[Ot(t)];return r==Pt||r!=jt&&(\"function\"==typeof e?o(e):!!e)},Ot=At.normalize=function(t){return String(t).replace(xt,\".\").toLowerCase()},Rt=At.data={},jt=At.NATIVE=\"N\",Pt=At.POLYFILL=\"P\",It=At,Tt=O.f,kt=function(t,e){var r,o,i,a,u,s=t.target,c=t.global,f=t.stat;if(r=c?n:f?n[s]||T(s,{}):(n[s]||{}).prototype)for(o in e){if(a=e[o],i=t.noTargetGet?(u=Tt(r,o))&&u.value:r[o],!It(c?o:s+(f?\".\":\"#\")+o,t.forced)&&void 0!==i){if(typeof a==typeof i)continue;Et(a,i)}(t.sham||i&&i.sham)&&I(a,\"sham\",!0),et(r,o,a,t)}},Lt=function(t){return Object(d(t))},Ut=Math.min,Mt=[].copyWithin||function(t,e){var r=Lt(this),n=ct(r.length),o=ht(t,n),i=ht(e,n),a=arguments.length>2?arguments[2]:void 0,u=Ut((void 0===a?n:ht(a,n))-i,n-o),s=1;for(i<o&&o<i+u&&(s=-1,i+=u-1,o+=u-1);u-- >0;)i in r?r[o]=r[i]:delete r[o],o+=s,i+=s;return r},_t=!!Object.getOwnPropertySymbols&&!o(function(){return!String(Symbol())}),Nt=_t&&!Symbol.sham&&\"symbol\"==typeof Symbol.iterator,Ct=q(\"wks\"),Ft=n.Symbol,Bt=Nt?Ft:Ft&&Ft.withoutSetter||K,Dt=function(t){return b(Ct,t)||(Ct[t]=_t&&b(Ft,t)?Ft[t]:Bt(\"Symbol.\"+t)),Ct[t]},qt=Object.keys||function(t){return gt(t,yt)},zt=i?Object.defineProperties:function(t,e){R(t);for(var r,n=qt(e),o=n.length,i=0;o>i;)P.f(t,r=n[i++],e[r]);return t},Wt=ot(\"document\",\"documentElement\"),Kt=$(\"IE_PROTO\"),Gt=function(){},$t=function(t){return\"<script>\"+t+\"<\\/script>\"},Vt=function(){try{Z=document.domain&&new ActiveXObject(\"htmlfile\")}catch(t){}var t,e;Vt=Z?function(t){t.write($t(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e}(Z):((e=E(\"iframe\")).style.display=\"none\",Wt.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write($t(\"document.F=Object\")),t.close(),t.F);for(var r=yt.length;r--;)delete Vt.prototype[yt[r]];return Vt()};V[Kt]=!0;var Ht=Object.create||function(t,e){var r;return null!==t?(Gt.prototype=R(t),r=new Gt,Gt.prototype=null,r[Kt]=t):r=Vt(),void 0===e?r:zt(r,e)},Xt=Dt(\"unscopables\"),Yt=Array.prototype;null==Yt[Xt]&&P.f(Yt,Xt,{configurable:!0,value:Ht(null)});var Jt=function(t){Yt[Xt][t]=!0};kt({target:\"Array\",proto:!0},{copyWithin:Mt}),Jt(\"copyWithin\");var Qt=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t},Zt=function(t,e,r){if(Qt(t),void 0===e)return t;switch(r){case 0:return function(){return t.call(e)};case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,o){return t.call(e,r,n,o)}}return function(){return t.apply(e,arguments)}},te=Function.call,ee=function(t,e,r){return Zt(te,n[t].prototype[e],r)};ee(\"Array\",\"copyWithin\"),kt({target:\"Array\",proto:!0},{fill:function(t){for(var e=Lt(this),r=ct(e.length),n=arguments.length,o=ht(n>1?arguments[1]:void 0,r),i=n>2?arguments[2]:void 0,a=void 0===i?r:ht(i,r);a>o;)e[o++]=t;return e}}),Jt(\"fill\"),ee(\"Array\",\"fill\");var re=Array.isArray||function(t){return\"Array\"==l(t)},ne=Dt(\"species\"),oe=function(t,e){var r;return re(t)&&(\"function\"!=typeof(r=t.constructor)||r!==Array&&!re(r.prototype)?g(r)&&null===(r=r[ne])&&(r=void 0):r=void 0),new(void 0===r?Array:r)(0===e?0:e)},ie=[].push,ae=function(t){var e=1==t,r=2==t,n=3==t,o=4==t,i=6==t,a=5==t||i;return function(u,s,c,f){for(var l,h,d=Lt(u),v=p(d),g=Zt(s,c,3),y=ct(v.length),m=0,b=f||oe,w=e?b(u,y):r?b(u,0):void 0;y>m;m++)if((a||m in v)&&(h=g(l=v[m],m,d),t))if(e)w[m]=h;else if(h)switch(t){case 3:return!0;case 5:return l;case 6:return m;case 2:ie.call(w,l)}else if(o)return!1;return i?-1:n||o?o:w}},ue={forEach:ae(0),map:ae(1),filter:ae(2),some:ae(3),every:ae(4),find:ae(5),findIndex:ae(6)},se=Object.defineProperty,ce={},fe=function(t){throw t},le=function(t,e){if(b(ce,t))return ce[t];e||(e={});var r=[][t],n=!!b(e,\"ACCESSORS\")&&e.ACCESSORS,a=b(e,0)?e[0]:fe,u=b(e,1)?e[1]:void 0;return ce[t]=!!r&&!o(function(){if(n&&!i)return!0;var t={length:-1};n?se(t,1,{enumerable:!0,get:fe}):t[1]=1,r.call(t,a,u)})},he=ue.find,pe=\"find\",de=!0,ve=le(pe);pe in[]&&Array(1).find(function(){de=!1}),kt({target:\"Array\",proto:!0,forced:de||!ve},{find:function(t){return he(this,t,arguments.length>1?arguments[1]:void 0)}}),Jt(pe),ee(\"Array\",\"find\");var ge=ue.findIndex,ye=\"findIndex\",me=!0,be=le(ye);ye in[]&&Array(1).findIndex(function(){me=!1}),kt({target:\"Array\",proto:!0,forced:me||!be},{findIndex:function(t){return ge(this,t,arguments.length>1?arguments[1]:void 0)}}),Jt(ye),ee(\"Array\",\"findIndex\");var we=function t(e,r,n,o,i,a,u,s){for(var c,f=i,l=0,h=!!u&&Zt(u,s,3);l<o;){if(l in n){if(c=h?h(n[l],l,r):n[l],a>0&&re(c))f=t(e,r,c,ct(c.length),f,a-1)-1;else{if(f>=9007199254740991)throw TypeError(\"Exceed the acceptable array length\");e[f]=c}f++}l++}return f};kt({target:\"Array\",proto:!0},{flatMap:function(t){var e,r=Lt(this),n=ct(r.length);return Qt(t),(e=oe(r,0)).length=we(e,r,r,n,0,1,t,arguments.length>1?arguments[1]:void 0),e}}),Jt(\"flatMap\"),ee(\"Array\",\"flatMap\"),kt({target:\"Array\",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=Lt(this),r=ct(e.length),n=oe(e,0);return n.length=we(n,e,e,r,0,void 0===t?1:ut(t)),n}}),Jt(\"flat\"),ee(\"Array\",\"flat\");var Se,Ee,xe,Ae=function(t){return function(e,r){var n,o,i=String(d(e)),a=ut(r),u=i.length;return a<0||a>=u?t?\"\":void 0:(n=i.charCodeAt(a))<55296||n>56319||a+1===u||(o=i.charCodeAt(a+1))<56320||o>57343?t?i.charAt(a):n:t?i.slice(a,a+2):o-56320+(n-55296<<10)+65536}},Oe={codeAt:Ae(!1),charAt:Ae(!0)},Re=!o(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}),je=$(\"IE_PROTO\"),Pe=Object.prototype,Ie=Re?Object.getPrototypeOf:function(t){return t=Lt(t),b(t,je)?t[je]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?Pe:null},Te=Dt(\"iterator\"),ke=!1;[].keys&&(\"next\"in(xe=[].keys())?(Ee=Ie(Ie(xe)))!==Object.prototype&&(Se=Ee):ke=!0),null==Se&&(Se={}),b(Se,Te)||I(Se,Te,function(){return this});var Le={IteratorPrototype:Se,BUGGY_SAFARI_ITERATORS:ke},Ue=P.f,Me=Dt(\"toStringTag\"),_e=function(t,e,r){t&&!b(t=r?t:t.prototype,Me)&&Ue(t,Me,{configurable:!0,value:e})},Ne={},Ce=Le.IteratorPrototype,Fe=function(){return this},Be=function(t,e,r){var n=e+\" Iterator\";return t.prototype=Ht(Ce,{next:c(1,r)}),_e(t,n,!1),Ne[n]=Fe,t},De=function(t){if(!g(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t},qe=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,r={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(r,[]),e=r instanceof Array}catch(t){}return function(r,n){return R(r),De(n),e?t.call(r,n):r.__proto__=n,r}}():void 0),ze=Le.IteratorPrototype,We=Le.BUGGY_SAFARI_ITERATORS,Ke=Dt(\"iterator\"),Ge=\"keys\",$e=\"values\",Ve=\"entries\",He=function(){return this},Xe=function(t,e,r,n,o,i,a){Be(r,e,n);var u,s,c,f=function(t){if(t===o&&v)return v;if(!We&&t in p)return p[t];switch(t){case Ge:case $e:case Ve:return function(){return new r(this,t)}}return function(){return new r(this)}},l=e+\" Iterator\",h=!1,p=t.prototype,d=p[Ke]||p[\"@@iterator\"]||o&&p[o],v=!We&&d||f(o),g=\"Array\"==e&&p.entries||d;if(g&&(u=Ie(g.call(new t)),ze!==Object.prototype&&u.next&&(Ie(u)!==ze&&(qe?qe(u,ze):\"function\"!=typeof u[Ke]&&I(u,Ke,He)),_e(u,l,!0))),o==$e&&d&&d.name!==$e&&(h=!0,v=function(){return d.call(this)}),p[Ke]!==v&&I(p,Ke,v),Ne[e]=v,o)if(s={values:f($e),keys:i?v:f(Ge),entries:f(Ve)},a)for(c in s)(We||h||!(c in p))&&et(p,c,s[c]);else kt({target:e,proto:!0,forced:We||h},s);return s},Ye=Oe.charAt,Je=\"String Iterator\",Qe=tt.set,Ze=tt.getterFor(Je);Xe(String,\"String\",function(t){Qe(this,{type:Je,string:String(t),index:0})},function(){var t,e=Ze(this),r=e.string,n=e.index;return n>=r.length?{value:void 0,done:!0}:(t=Ye(r,n),e.index+=t.length,{value:t,done:!1})});var tr=function(t,e,r,n){try{return n?e(R(r)[0],r[1]):e(r)}catch(e){var o=t.return;throw void 0!==o&&R(o.call(t)),e}},er=Dt(\"iterator\"),rr=Array.prototype,nr=function(t){return void 0!==t&&(Ne.Array===t||rr[er]===t)},or=function(t,e,r){var n=y(e);n in t?P.f(t,n,c(0,r)):t[n]=r},ir={};ir[Dt(\"toStringTag\")]=\"z\";var ar=\"[object z]\"===String(ir),ur=Dt(\"toStringTag\"),sr=\"Arguments\"==l(function(){return arguments}()),cr=ar?l:function(t){var e,r,n;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),ur))?r:sr?l(e):\"Object\"==(n=l(e))&&\"function\"==typeof e.callee?\"Arguments\":n},fr=Dt(\"iterator\"),lr=function(t){if(null!=t)return t[fr]||t[\"@@iterator\"]||Ne[cr(t)]},hr=function(t){var e,r,n,o,i,a,u=Lt(t),s=\"function\"==typeof this?this:Array,c=arguments.length,f=c>1?arguments[1]:void 0,l=void 0!==f,h=lr(u),p=0;if(l&&(f=Zt(f,c>2?arguments[2]:void 0,2)),null==h||s==Array&&nr(h))for(r=new s(e=ct(u.length));e>p;p++)a=l?f(u[p],p):u[p],or(r,p,a);else for(i=(o=h.call(u)).next,r=new s;!(n=i.call(o)).done;p++)a=l?tr(o,f,[n.value,p],!0):n.value,or(r,p,a);return r.length=p,r},pr=Dt(\"iterator\"),dr=!1;try{var vr=0,gr={next:function(){return{done:!!vr++}},return:function(){dr=!0}};gr[pr]=function(){return this},Array.from(gr,function(){throw 2})}catch(t){}var yr=function(t,e){if(!e&&!dr)return!1;var r=!1;try{var n={};n[pr]=function(){return{next:function(){return{done:r=!0}}}},t(n)}catch(t){}return r},mr=!yr(function(t){Array.from(t)});kt({target:\"Array\",stat:!0,forced:mr},{from:hr});var br=dt.includes,wr=le(\"indexOf\",{ACCESSORS:!0,1:0});kt({target:\"Array\",proto:!0,forced:!wr},{includes:function(t){return br(this,t,arguments.length>1?arguments[1]:void 0)}}),Jt(\"includes\"),ee(\"Array\",\"includes\");var Sr=\"Array Iterator\",Er=tt.set,xr=tt.getterFor(Sr),Ar=Xe(Array,\"Array\",function(t,e){Er(this,{type:Sr,target:v(t),index:0,kind:e})},function(){var t=xr(this),e=t.target,r=t.kind,n=t.index++;return!e||n>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==r?{value:n,done:!1}:\"values\"==r?{value:e[n],done:!1}:{value:[n,e[n]],done:!1}},\"values\");Ne.Arguments=Ne.Array,Jt(\"keys\"),Jt(\"values\"),Jt(\"entries\"),ee(\"Array\",\"values\");var Or=o(function(){function t(){}return!(Array.of.call(t)instanceof t)});kt({target:\"Array\",stat:!0,forced:Or},{of:function(){for(var t=0,e=arguments.length,r=new(\"function\"==typeof this?this:Array)(e);e>t;)or(r,t,arguments[t++]);return r.length=e,r}});var Rr=Dt(\"hasInstance\"),jr=Function.prototype;Rr in jr||P.f(jr,Rr,{value:function(t){if(\"function\"!=typeof this||!g(t))return!1;if(!g(this.prototype))return t instanceof this;for(;t=Ie(t);)if(this.prototype===t)return!0;return!1}}),Dt(\"hasInstance\");var Pr=Function.prototype,Ir=Pr.toString,Tr=/^\\s*function ([^ (]*)/,kr=\"name\";i&&!(kr in Pr)&&(0,P.f)(Pr,kr,{configurable:!0,get:function(){try{return Ir.call(this).match(Tr)[1]}catch(t){return\"\"}}});var Lr=!o(function(){return Object.isExtensible(Object.preventExtensions({}))}),Ur=e(function(t){var e=P.f,r=K(\"meta\"),n=0,o=Object.isExtensible||function(){return!0},i=function(t){e(t,r,{value:{objectID:\"O\"+ ++n,weakData:{}}})},a=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!g(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!b(t,r)){if(!o(t))return\"F\";if(!e)return\"E\";i(t)}return t[r].objectID},getWeakData:function(t,e){if(!b(t,r)){if(!o(t))return!0;if(!e)return!1;i(t)}return t[r].weakData},onFreeze:function(t){return Lr&&a.REQUIRED&&o(t)&&!b(t,r)&&i(t),t}};V[r]=!0}),Mr=e(function(t){var e=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,r,n,o,i){var a,u,s,c,f,l,h,p=Zt(r,n,o?2:1);if(i)a=t;else{if(\"function\"!=typeof(u=lr(t)))throw TypeError(\"Target is not iterable\");if(nr(u)){for(s=0,c=ct(t.length);c>s;s++)if((f=o?p(R(h=t[s])[0],h[1]):p(t[s]))&&f instanceof e)return f;return new e(!1)}a=u.call(t)}for(l=a.next;!(h=l.call(a)).done;)if(\"object\"==typeof(f=tr(a,p,h.value,o))&&f&&f instanceof e)return f;return new e(!1)}).stop=function(t){return new e(!0,t)}}),_r=function(t,e,r){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(r?r+\" \":\"\")+\"invocation\");return t},Nr=function(t,e,r){var n,o;return qe&&\"function\"==typeof(n=e.constructor)&&n!==r&&g(o=n.prototype)&&o!==r.prototype&&qe(t,o),t},Cr=function(t,e,r){var i=-1!==t.indexOf(\"Map\"),a=-1!==t.indexOf(\"Weak\"),u=i?\"set\":\"add\",s=n[t],c=s&&s.prototype,f=s,l={},h=function(t){var e=c[t];et(c,t,\"add\"==t?function(t){return e.call(this,0===t?0:t),this}:\"delete\"==t?function(t){return!(a&&!g(t))&&e.call(this,0===t?0:t)}:\"get\"==t?function(t){return a&&!g(t)?void 0:e.call(this,0===t?0:t)}:\"has\"==t?function(t){return!(a&&!g(t))&&e.call(this,0===t?0:t)}:function(t,r){return e.call(this,0===t?0:t,r),this})};if(It(t,\"function\"!=typeof s||!(a||c.forEach&&!o(function(){(new s).entries().next()}))))f=r.getConstructor(e,t,i,u),Ur.REQUIRED=!0;else if(It(t,!0)){var p=new f,d=p[u](a?{}:-0,1)!=p,v=o(function(){p.has(1)}),y=yr(function(t){new s(t)}),m=!a&&o(function(){for(var t=new s,e=5;e--;)t[u](e,e);return!t.has(-0)});y||((f=e(function(e,r){_r(e,f,t);var n=Nr(new s,e,f);return null!=r&&Mr(r,n[u],n,i),n})).prototype=c,c.constructor=f),(v||m)&&(h(\"delete\"),h(\"has\"),i&&h(\"get\")),(m||d)&&h(u),a&&c.clear&&delete c.clear}return l[t]=f,kt({global:!0,forced:f!=s},l),_e(f,t),a||r.setStrong(f,t,i),f},Fr=function(t,e,r){for(var n in e)et(t,n,e[n],r);return t},Br=Dt(\"species\"),Dr=function(t){var e=ot(t);i&&e&&!e[Br]&&(0,P.f)(e,Br,{configurable:!0,get:function(){return this}})},qr=P.f,zr=Ur.fastKey,Wr=tt.set,Kr=tt.getterFor,Gr={getConstructor:function(t,e,r,n){var o=t(function(t,a){_r(t,o,e),Wr(t,{type:e,index:Ht(null),first:void 0,last:void 0,size:0}),i||(t.size=0),null!=a&&Mr(a,t[n],t,r)}),a=Kr(e),u=function(t,e,r){var n,o,u=a(t),c=s(t,e);return c?c.value=r:(u.last=c={index:o=zr(e,!0),key:e,value:r,previous:n=u.last,next:void 0,removed:!1},u.first||(u.first=c),n&&(n.next=c),i?u.size++:t.size++,\"F\"!==o&&(u.index[o]=c)),t},s=function(t,e){var r,n=a(t),o=zr(e);if(\"F\"!==o)return n.index[o];for(r=n.first;r;r=r.next)if(r.key==e)return r};return Fr(o.prototype,{clear:function(){for(var t=a(this),e=t.index,r=t.first;r;)r.removed=!0,r.previous&&(r.previous=r.previous.next=void 0),delete e[r.index],r=r.next;t.first=t.last=void 0,i?t.size=0:this.size=0},delete:function(t){var e=this,r=a(e),n=s(e,t);if(n){var o=n.next,u=n.previous;delete r.index[n.index],n.removed=!0,u&&(u.next=o),o&&(o.previous=u),r.first==n&&(r.first=o),r.last==n&&(r.last=u),i?r.size--:e.size--}return!!n},forEach:function(t){for(var e,r=a(this),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:r.first;)for(n(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!s(this,t)}}),Fr(o.prototype,r?{get:function(t){var e=s(this,t);return e&&e.value},set:function(t,e){return u(this,0===t?0:t,e)}}:{add:function(t){return u(this,t=0===t?0:t,t)}}),i&&qr(o.prototype,\"size\",{get:function(){return a(this).size}}),o},setStrong:function(t,e,r){var n=e+\" Iterator\",o=Kr(e),i=Kr(n);Xe(t,e,function(t,e){Wr(this,{type:n,target:t,state:o(t),kind:e,last:void 0})},function(){for(var t=i(this),e=t.kind,r=t.last;r&&r.removed;)r=r.previous;return t.target&&(t.last=r=r?r.next:t.state.first)?\"keys\"==e?{value:r.key,done:!1}:\"values\"==e?{value:r.value,done:!1}:{value:[r.key,r.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})},r?\"entries\":\"values\",!r,!0),Dr(e)}},$r=Cr(\"Map\",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Gr);ar||et(Object.prototype,\"toString\",ar?{}.toString:function(){return\"[object \"+cr(this)+\"]\"},{unsafe:!0});var Vr={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Hr=Dt(\"iterator\"),Xr=Dt(\"toStringTag\"),Yr=Ar.values;for(var Jr in Vr){var Qr=n[Jr],Zr=Qr&&Qr.prototype;if(Zr){if(Zr[Hr]!==Yr)try{I(Zr,Hr,Yr)}catch(t){Zr[Hr]=Yr}if(Zr[Xr]||I(Zr,Xr,Jr),Vr[Jr])for(var tn in Ar)if(Zr[tn]!==Ar[tn])try{I(Zr,tn,Ar[tn])}catch(t){Zr[tn]=Ar[tn]}}}var en=function(t){var e,r,n,o,i=arguments.length,a=i>1?arguments[1]:void 0;return Qt(this),(e=void 0!==a)&&Qt(a),null==t?new this:(r=[],e?(n=0,o=Zt(a,i>2?arguments[2]:void 0,2),Mr(t,function(t){r.push(o(t,n++))})):Mr(t,r.push,r),new this(r))};kt({target:\"Map\",stat:!0},{from:en});var rn=function(){for(var t=arguments.length,e=new Array(t);t--;)e[t]=arguments[t];return new this(e)};kt({target:\"Map\",stat:!0},{of:rn});var nn=function(){for(var t,e=R(this),r=Qt(e.delete),n=!0,o=0,i=arguments.length;o<i;o++)t=r.call(e,arguments[o]),n=n&&t;return!!n};kt({target:\"Map\",proto:!0,real:!0,forced:D},{deleteAll:function(){return nn.apply(this,arguments)}});var on=function(t){var e=lr(t);if(\"function\"!=typeof e)throw TypeError(String(t)+\" is not iterable\");return R(e.call(t))},an=function(t){return Map.prototype.entries.call(t)};kt({target:\"Map\",proto:!0,real:!0,forced:D},{every:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return!Mr(r,function(t,r){if(!n(r,t,e))return Mr.stop()},void 0,!0,!0).stopped}});var un=Dt(\"species\"),sn=function(t,e){var r,n=R(t).constructor;return void 0===n||null==(r=R(n)[un])?e:Qt(r)};kt({target:\"Map\",proto:!0,real:!0,forced:D},{filter:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(sn(e,ot(\"Map\"))),i=Qt(o.set);return Mr(r,function(t,r){n(r,t,e)&&i.call(o,t,r)},void 0,!0,!0),o}}),kt({target:\"Map\",proto:!0,real:!0,forced:D},{find:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,function(t,r){if(n(r,t,e))return Mr.stop(r)},void 0,!0,!0).result}}),kt({target:\"Map\",proto:!0,real:!0,forced:D},{findKey:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,function(t,r){if(n(r,t,e))return Mr.stop(t)},void 0,!0,!0).result}}),kt({target:\"Map\",stat:!0},{groupBy:function(t,e){var r=new this;Qt(e);var n=Qt(r.has),o=Qt(r.get),i=Qt(r.set);return Mr(t,function(t){var a=e(t);n.call(r,a)?o.call(r,a).push(t):i.call(r,a,[t])}),r}}),kt({target:\"Map\",proto:!0,real:!0,forced:D},{includes:function(t){return Mr(an(R(this)),function(e,r){if((n=r)===(o=t)||n!=n&&o!=o)return Mr.stop();var n,o},void 0,!0,!0).stopped}}),kt({target:\"Map\",stat:!0},{keyBy:function(t,e){var r=new this;Qt(e);var n=Qt(r.set);return Mr(t,function(t){n.call(r,e(t),t)}),r}}),kt({target:\"Map\",proto:!0,real:!0,forced:D},{keyOf:function(t){return Mr(an(R(this)),function(e,r){if(r===t)return Mr.stop(e)},void 0,!0,!0).result}}),kt({target:\"Map\",proto:!0,real:!0,forced:D},{mapKeys:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(sn(e,ot(\"Map\"))),i=Qt(o.set);return Mr(r,function(t,r){i.call(o,n(r,t,e),r)},void 0,!0,!0),o}}),kt({target:\"Map\",proto:!0,real:!0,forced:D},{mapValues:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(sn(e,ot(\"Map\"))),i=Qt(o.set);return Mr(r,function(t,r){i.call(o,t,n(r,t,e))},void 0,!0,!0),o}}),kt({target:\"Map\",proto:!0,real:!0,forced:D},{merge:function(t){for(var e=R(this),r=Qt(e.set),n=0;n<arguments.length;)Mr(arguments[n++],r,e,!0);return e}}),kt({target:\"Map\",proto:!0,real:!0,forced:D},{reduce:function(t){var e=R(this),r=an(e),n=arguments.length<2,o=n?void 0:arguments[1];if(Qt(t),Mr(r,function(r,i){n?(n=!1,o=i):o=t(o,i,r,e)},void 0,!0,!0),n)throw TypeError(\"Reduce of empty map with no initial value\");return o}}),kt({target:\"Map\",proto:!0,real:!0,forced:D},{some:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,function(t,r){if(n(r,t,e))return Mr.stop()},void 0,!0,!0).stopped}}),kt({target:\"Map\",proto:!0,real:!0,forced:D},{update:function(t,e){var r=R(this),n=arguments.length;Qt(e);var o=r.has(t);if(!o&&n<3)throw TypeError(\"Updating absent value\");var i=o?r.get(t):Qt(n>2?arguments[2]:void 0)(t,r);return r.set(t,e(i,t,r)),r}});var cn=function(t,e){var r,n=R(this),o=arguments.length>2?arguments[2]:void 0;if(\"function\"!=typeof e&&\"function\"!=typeof o)throw TypeError(\"At least one callback required\");return n.has(t)?(r=n.get(t),\"function\"==typeof e&&(r=e(r),n.set(t,r))):\"function\"==typeof o&&(r=o(),n.set(t,r)),r};kt({target:\"Map\",proto:!0,real:!0,forced:D},{upsert:cn}),kt({target:\"Map\",proto:!0,real:!0,forced:D},{updateOrInsert:cn});var fn=\"\\t\\n\\v\\f\\r \\u2028\\u2029\\ufeff\",ln=\"[\"+fn+\"]\",hn=RegExp(\"^\"+ln+ln+\"*\"),pn=RegExp(ln+ln+\"*$\"),dn=function(t){return function(e){var r=String(d(e));return 1&t&&(r=r.replace(hn,\"\")),2&t&&(r=r.replace(pn,\"\")),r}},vn={start:dn(1),end:dn(2),trim:dn(3)},gn=bt.f,yn=O.f,mn=P.f,bn=vn.trim,wn=\"Number\",Sn=n.Number,En=Sn.prototype,xn=l(Ht(En))==wn,An=function(t){var e,r,n,o,i,a,u,s,c=y(t,!1);if(\"string\"==typeof c&&c.length>2)if(43===(e=(c=bn(c)).charCodeAt(0))||45===e){if(88===(r=c.charCodeAt(2))||120===r)return NaN}else if(48===e){switch(c.charCodeAt(1)){case 66:case 98:n=2,o=49;break;case 79:case 111:n=8,o=55;break;default:return+c}for(a=(i=c.slice(2)).length,u=0;u<a;u++)if((s=i.charCodeAt(u))<48||s>o)return NaN;return parseInt(i,n)}return+c};if(It(wn,!Sn(\" 0o1\")||!Sn(\"0b1\")||Sn(\"+0x1\"))){for(var On,Rn=function(t){var e=arguments.length<1?0:t,r=this;return r instanceof Rn&&(xn?o(function(){En.valueOf.call(r)}):l(r)!=wn)?Nr(new Sn(An(e)),r,Rn):An(e)},jn=i?gn(Sn):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),Pn=0;jn.length>Pn;Pn++)b(Sn,On=jn[Pn])&&!b(Rn,On)&&mn(Rn,On,yn(Sn,On));Rn.prototype=En,En.constructor=Rn,et(n,wn,Rn)}kt({target:\"Number\",stat:!0},{EPSILON:Math.pow(2,-52)});var In=n.isFinite;kt({target:\"Number\",stat:!0},{isFinite:Number.isFinite||function(t){return\"number\"==typeof t&&In(t)}});var Tn=Math.floor,kn=function(t){return!g(t)&&isFinite(t)&&Tn(t)===t};kt({target:\"Number\",stat:!0},{isInteger:kn}),kt({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}});var Ln=Math.abs;kt({target:\"Number\",stat:!0},{isSafeInteger:function(t){return kn(t)&&Ln(t)<=9007199254740991}}),kt({target:\"Number\",stat:!0},{MAX_SAFE_INTEGER:9007199254740991}),kt({target:\"Number\",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991});var Un=vn.trim,Mn=n.parseFloat,_n=1/Mn(fn+\"-0\")!=-Infinity?function(t){var e=Un(String(t)),r=Mn(e);return 0===r&&\"-\"==e.charAt(0)?-0:r}:Mn;kt({target:\"Number\",stat:!0,forced:Number.parseFloat!=_n},{parseFloat:_n});var Nn=vn.trim,Cn=n.parseInt,Fn=/^[+-]?0[Xx]/,Bn=8!==Cn(fn+\"08\")||22!==Cn(fn+\"0x16\")?function(t,e){var r=Nn(String(t));return Cn(r,e>>>0||(Fn.test(r)?16:10))}:Cn;kt({target:\"Number\",stat:!0,forced:Number.parseInt!=Bn},{parseInt:Bn});var Dn=s.f,qn=function(t){return function(e){for(var r,n=v(e),o=qt(n),a=o.length,u=0,s=[];a>u;)r=o[u++],i&&!Dn.call(n,r)||s.push(t?[r,n[r]]:n[r]);return s}},zn={entries:qn(!0),values:qn(!1)},Wn=zn.entries;kt({target:\"Object\",stat:!0},{entries:function(t){return Wn(t)}}),kt({target:\"Object\",stat:!0,sham:!i},{getOwnPropertyDescriptors:function(t){for(var e,r,n=v(t),o=O.f,i=St(n),a={},u=0;i.length>u;)void 0!==(r=o(n,e=i[u++]))&&or(a,e,r);return a}});var Kn=o(function(){qt(1)});kt({target:\"Object\",stat:!0,forced:Kn},{keys:function(t){return qt(Lt(t))}});var Gn=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e};kt({target:\"Object\",stat:!0},{is:Gn});var $n=zn.values;kt({target:\"Object\",stat:!0},{values:function(t){return $n(t)}});var Vn=ot(\"Reflect\",\"apply\"),Hn=Function.apply,Xn=!o(function(){Vn(function(){})});kt({target:\"Reflect\",stat:!0,forced:Xn},{apply:function(t,e,r){return Qt(t),R(r),Vn?Vn(t,e,r):Hn.call(t,e,r)}});var Yn=[].slice,Jn={},Qn=function(t,e,r){if(!(e in Jn)){for(var n=[],o=0;o<e;o++)n[o]=\"a[\"+o+\"]\";Jn[e]=Function(\"C,a\",\"return new C(\"+n.join(\",\")+\")\")}return Jn[e](t,r)},Zn=Function.bind||function(t){var e=Qt(this),r=Yn.call(arguments,1),n=function(){var o=r.concat(Yn.call(arguments));return this instanceof n?Qn(e,o.length,o):e.apply(t,o)};return g(e.prototype)&&(n.prototype=e.prototype),n},to=ot(\"Reflect\",\"construct\"),eo=o(function(){function t(){}return!(to(function(){},[],t)instanceof t)}),ro=!o(function(){to(function(){})}),no=eo||ro;kt({target:\"Reflect\",stat:!0,forced:no,sham:no},{construct:function(t,e){Qt(t),R(e);var r=arguments.length<3?t:Qt(arguments[2]);if(ro&&!eo)return to(t,e,r);if(t==r){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var n=[null];return n.push.apply(n,e),new(Zn.apply(t,n))}var o=r.prototype,i=Ht(g(o)?o:Object.prototype),a=Function.apply.call(t,i,e);return g(a)?a:i}});var oo=o(function(){Reflect.defineProperty(P.f({},1,{value:1}),1,{value:2})});kt({target:\"Reflect\",stat:!0,forced:oo,sham:!i},{defineProperty:function(t,e,r){R(t);var n=y(e,!0);R(r);try{return P.f(t,n,r),!0}catch(t){return!1}}});var io=O.f;kt({target:\"Reflect\",stat:!0},{deleteProperty:function(t,e){var r=io(R(t),e);return!(r&&!r.configurable)&&delete t[e]}}),kt({target:\"Reflect\",stat:!0},{get:function t(e,r){var n,o,i=arguments.length<3?e:arguments[2];return R(e)===i?e[r]:(n=O.f(e,r))?b(n,\"value\")?n.value:void 0===n.get?void 0:n.get.call(i):g(o=Ie(e))?t(o,r,i):void 0}}),kt({target:\"Reflect\",stat:!0,sham:!i},{getOwnPropertyDescriptor:function(t,e){return O.f(R(t),e)}}),kt({target:\"Reflect\",stat:!0,sham:!Re},{getPrototypeOf:function(t){return Ie(R(t))}}),kt({target:\"Reflect\",stat:!0},{has:function(t,e){return e in t}});var ao=Object.isExtensible;kt({target:\"Reflect\",stat:!0},{isExtensible:function(t){return R(t),!ao||ao(t)}}),kt({target:\"Reflect\",stat:!0},{ownKeys:St}),kt({target:\"Reflect\",stat:!0,sham:!Lr},{preventExtensions:function(t){R(t);try{var e=ot(\"Object\",\"preventExtensions\");return e&&e(t),!0}catch(t){return!1}}});var uo=o(function(){var t=P.f({},\"a\",{configurable:!0});return!1!==Reflect.set(Ie(t),\"a\",1,t)});kt({target:\"Reflect\",stat:!0,forced:uo},{set:function t(e,r,n){var o,i,a=arguments.length<4?e:arguments[3],u=O.f(R(e),r);if(!u){if(g(i=Ie(e)))return t(i,r,n,a);u=c(0)}if(b(u,\"value\")){if(!1===u.writable||!g(a))return!1;if(o=O.f(a,r)){if(o.get||o.set||!1===o.writable)return!1;o.value=n,P.f(a,r,o)}else P.f(a,r,c(0,n));return!0}return void 0!==u.set&&(u.set.call(a,n),!0)}}),qe&&kt({target:\"Reflect\",stat:!0},{setPrototypeOf:function(t,e){R(t),De(e);try{return qe(t,e),!0}catch(t){return!1}}});var so=Ur.getWeakData,co=tt.set,fo=tt.getterFor,lo=ue.find,ho=ue.findIndex,po=0,vo=function(t){return t.frozen||(t.frozen=new go)},go=function(){this.entries=[]},yo=function(t,e){return lo(t.entries,function(t){return t[0]===e})};go.prototype={get:function(t){var e=yo(this,t);if(e)return e[1]},has:function(t){return!!yo(this,t)},set:function(t,e){var r=yo(this,t);r?r[1]=e:this.entries.push([t,e])},delete:function(t){var e=ho(this.entries,function(e){return e[0]===t});return~e&&this.entries.splice(e,1),!!~e}};var mo={getConstructor:function(t,e,r,n){var o=t(function(t,i){_r(t,o,e),co(t,{type:e,id:po++,frozen:void 0}),null!=i&&Mr(i,t[n],t,r)}),i=fo(e),a=function(t,e,r){var n=i(t),o=so(R(e),!0);return!0===o?vo(n).set(e,r):o[n.id]=r,t};return Fr(o.prototype,{delete:function(t){var e=i(this);if(!g(t))return!1;var r=so(t);return!0===r?vo(e).delete(t):r&&b(r,e.id)&&delete r[e.id]},has:function(t){var e=i(this);if(!g(t))return!1;var r=so(t);return!0===r?vo(e).has(t):r&&b(r,e.id)}}),Fr(o.prototype,r?{get:function(t){var e=i(this);if(g(t)){var r=so(t);return!0===r?vo(e).get(t):r?r[e.id]:void 0}},set:function(t,e){return a(this,t,e)}}:{add:function(t){return a(this,t,!0)}}),o}},bo=e(function(t){var e,r=tt.enforce,o=!n.ActiveXObject&&\"ActiveXObject\"in n,i=Object.isExtensible,a=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},u=t.exports=Cr(\"WeakMap\",a,mo);if(B&&o){e=mo.getConstructor(a,\"WeakMap\",!0),Ur.REQUIRED=!0;var s=u.prototype,c=s.delete,f=s.has,l=s.get,h=s.set;Fr(s,{delete:function(t){if(g(t)&&!i(t)){var n=r(this);return n.frozen||(n.frozen=new e),c.call(this,t)||n.frozen.delete(t)}return c.call(this,t)},has:function(t){if(g(t)&&!i(t)){var n=r(this);return n.frozen||(n.frozen=new e),f.call(this,t)||n.frozen.has(t)}return f.call(this,t)},get:function(t){if(g(t)&&!i(t)){var n=r(this);return n.frozen||(n.frozen=new e),f.call(this,t)?l.call(this,t):n.frozen.get(t)}return l.call(this,t)},set:function(t,n){if(g(t)&&!i(t)){var o=r(this);o.frozen||(o.frozen=new e),f.call(this,t)?h.call(this,t,n):o.frozen.set(t,n)}else h.call(this,t,n);return this}})}}),wo=q(\"metadata\"),So=wo.store||(wo.store=new bo),Eo=function(t,e,r){var n=So.get(t);if(!n){if(!r)return;So.set(t,n=new $r)}var o=n.get(e);if(!o){if(!r)return;n.set(e,o=new $r)}return o},xo={store:So,getMap:Eo,has:function(t,e,r){var n=Eo(e,r,!1);return void 0!==n&&n.has(t)},get:function(t,e,r){var n=Eo(e,r,!1);return void 0===n?void 0:n.get(t)},set:function(t,e,r,n){Eo(r,n,!0).set(t,e)},keys:function(t,e){var r=Eo(t,e,!1),n=[];return r&&r.forEach(function(t,e){n.push(e)}),n},toKey:function(t){return void 0===t||\"symbol\"==typeof t?t:String(t)}},Ao=xo.toKey,Oo=xo.set;kt({target:\"Reflect\",stat:!0},{defineMetadata:function(t,e,r){var n=arguments.length<4?void 0:Ao(arguments[3]);Oo(t,e,R(r),n)}});var Ro=xo.toKey,jo=xo.getMap,Po=xo.store;kt({target:\"Reflect\",stat:!0},{deleteMetadata:function(t,e){var r=arguments.length<3?void 0:Ro(arguments[2]),n=jo(R(e),r,!1);if(void 0===n||!n.delete(t))return!1;if(n.size)return!0;var o=Po.get(e);return o.delete(r),!!o.size||Po.delete(e)}});var Io=xo.has,To=xo.get,ko=xo.toKey,Lo=function t(e,r,n){if(Io(e,r,n))return To(e,r,n);var o=Ie(r);return null!==o?t(e,o,n):void 0};kt({target:\"Reflect\",stat:!0},{getMetadata:function(t,e){var r=arguments.length<3?void 0:ko(arguments[2]);return Lo(t,R(e),r)}});var Uo=Cr(\"Set\",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Gr),Mo=xo.keys,_o=xo.toKey,No=function t(e,r){var n=Mo(e,r),o=Ie(e);if(null===o)return n;var i,a,u=t(o,r);return u.length?n.length?(i=new Uo(n.concat(u)),Mr(i,(a=[]).push,a),a):u:n};kt({target:\"Reflect\",stat:!0},{getMetadataKeys:function(t){var e=arguments.length<2?void 0:_o(arguments[1]);return No(R(t),e)}});var Co=xo.get,Fo=xo.toKey;kt({target:\"Reflect\",stat:!0},{getOwnMetadata:function(t,e){var r=arguments.length<3?void 0:Fo(arguments[2]);return Co(t,R(e),r)}});var Bo=xo.keys,Do=xo.toKey;kt({target:\"Reflect\",stat:!0},{getOwnMetadataKeys:function(t){var e=arguments.length<2?void 0:Do(arguments[1]);return Bo(R(t),e)}});var qo=xo.has,zo=xo.toKey,Wo=function t(e,r,n){if(qo(e,r,n))return!0;var o=Ie(r);return null!==o&&t(e,o,n)};kt({target:\"Reflect\",stat:!0},{hasMetadata:function(t,e){var r=arguments.length<3?void 0:zo(arguments[2]);return Wo(t,R(e),r)}});var Ko=xo.has,Go=xo.toKey;kt({target:\"Reflect\",stat:!0},{hasOwnMetadata:function(t,e){var r=arguments.length<3?void 0:Go(arguments[2]);return Ko(t,R(e),r)}});var $o=xo.toKey,Vo=xo.set;kt({target:\"Reflect\",stat:!0},{metadata:function(t,e){return function(r,n){Vo(t,e,R(r),$o(n))}}});var Ho=Dt(\"match\"),Xo=function(t){var e;return g(t)&&(void 0!==(e=t[Ho])?!!e:\"RegExp\"==l(t))},Yo=function(){var t=R(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e};function Jo(t,e){return RegExp(t,e)}var Qo={UNSUPPORTED_Y:o(function(){var t=Jo(\"a\",\"y\");return t.lastIndex=2,null!=t.exec(\"abcd\")}),BROKEN_CARET:o(function(){var t=Jo(\"^r\",\"gy\");return t.lastIndex=2,null!=t.exec(\"str\")})},Zo=P.f,ti=bt.f,ei=tt.set,ri=Dt(\"match\"),ni=n.RegExp,oi=ni.prototype,ii=/a/g,ai=/a/g,ui=new ni(ii)!==ii,si=Qo.UNSUPPORTED_Y;if(i&&It(\"RegExp\",!ui||si||o(function(){return ai[ri]=!1,ni(ii)!=ii||ni(ai)==ai||\"/a/i\"!=ni(ii,\"i\")}))){for(var ci=function(t,e){var r,n=this instanceof ci,o=Xo(t),i=void 0===e;if(!n&&o&&t.constructor===ci&&i)return t;ui?o&&!i&&(t=t.source):t instanceof ci&&(i&&(e=Yo.call(t)),t=t.source),si&&(r=!!e&&e.indexOf(\"y\")>-1)&&(e=e.replace(/y/g,\"\"));var a=Nr(ui?new ni(t,e):ni(t,e),n?this:oi,ci);return si&&r&&ei(a,{sticky:r}),a},fi=function(t){t in ci||Zo(ci,t,{configurable:!0,get:function(){return ni[t]},set:function(e){ni[t]=e}})},li=ti(ni),hi=0;li.length>hi;)fi(li[hi++]);oi.constructor=ci,ci.prototype=oi,et(n,\"RegExp\",ci)}Dr(\"RegExp\");var pi=\"toString\",di=RegExp.prototype,vi=di.toString;(o(function(){return\"/a/b\"!=vi.call({source:\"a\",flags:\"b\"})})||vi.name!=pi)&&et(RegExp.prototype,pi,function(){var t=R(this),e=String(t.source),r=t.flags;return\"/\"+e+\"/\"+String(void 0===r&&t instanceof RegExp&&!(\"flags\"in di)?Yo.call(t):r)},{unsafe:!0});var gi=RegExp.prototype.exec,yi=String.prototype.replace,mi=gi,bi=function(){var t=/a/,e=/b*/g;return gi.call(t,\"a\"),gi.call(e,\"a\"),0!==t.lastIndex||0!==e.lastIndex}(),wi=Qo.UNSUPPORTED_Y||Qo.BROKEN_CARET,Si=void 0!==/()??/.exec(\"\")[1];(bi||Si||wi)&&(mi=function(t){var e,r,n,o,i=this,a=wi&&i.sticky,u=Yo.call(i),s=i.source,c=0,f=t;return a&&(-1===(u=u.replace(\"y\",\"\")).indexOf(\"g\")&&(u+=\"g\"),f=String(t).slice(i.lastIndex),i.lastIndex>0&&(!i.multiline||i.multiline&&\"\\n\"!==t[i.lastIndex-1])&&(s=\"(?: \"+s+\")\",f=\" \"+f,c++),r=new RegExp(\"^(?:\"+s+\")\",u)),Si&&(r=new RegExp(\"^\"+s+\"$(?!\\\\s)\",u)),bi&&(e=i.lastIndex),n=gi.call(a?r:i,f),a?n?(n.input=n.input.slice(c),n[0]=n[0].slice(c),n.index=i.lastIndex,i.lastIndex+=n[0].length):i.lastIndex=0:bi&&n&&(i.lastIndex=i.global?n.index+n[0].length:e),Si&&n&&n.length>1&&yi.call(n[0],r,function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(n[o]=void 0)}),n});var Ei=mi;kt({target:\"RegExp\",proto:!0,forced:/./.exec!==Ei},{exec:Ei}),i&&(\"g\"!=/./g.flags||Qo.UNSUPPORTED_Y)&&P.f(RegExp.prototype,\"flags\",{configurable:!0,get:Yo});var xi=tt.get,Ai=RegExp.prototype;i&&Qo.UNSUPPORTED_Y&&(0,P.f)(RegExp.prototype,\"sticky\",{configurable:!0,get:function(){if(this!==Ai){if(this instanceof RegExp)return!!xi(this).sticky;throw TypeError(\"Incompatible receiver, RegExp required\")}}});var Oi,Ri,ji=(Oi=!1,(Ri=/[ac]/).exec=function(){return Oi=!0,/./.exec.apply(this,arguments)},!0===Ri.test(\"abc\")&&Oi),Pi=/./.test;kt({target:\"RegExp\",proto:!0,forced:!ji},{test:function(t){if(\"function\"!=typeof this.exec)return Pi.call(this,t);var e=this.exec(t);if(null!==e&&!g(e))throw new Error(\"RegExp exec method returned something other than an Object or null\");return!!e}});var Ii=Dt(\"species\"),Ti=!o(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:\"7\"},t},\"7\"!==\"\".replace(t,\"$<a>\")}),ki=\"$0\"===\"a\".replace(/./,\"$0\"),Li=Dt(\"replace\"),Ui=!!/./[Li]&&\"\"===/./[Li](\"a\",\"$0\"),Mi=!o(function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r=\"ab\".split(t);return 2!==r.length||\"a\"!==r[0]||\"b\"!==r[1]}),_i=function(t,e,r,n){var i=Dt(t),a=!o(function(){var e={};return e[i]=function(){return 7},7!=\"\"[t](e)}),u=a&&!o(function(){var e=!1,r=/a/;return\"split\"===t&&((r={}).constructor={},r.constructor[Ii]=function(){return r},r.flags=\"\",r[i]=/./[i]),r.exec=function(){return e=!0,null},r[i](\"\"),!e});if(!a||!u||\"replace\"===t&&(!Ti||!ki||Ui)||\"split\"===t&&!Mi){var s=/./[i],c=r(i,\"\"[t],function(t,e,r,n,o){return e.exec===Ei?a&&!o?{done:!0,value:s.call(e,r,n)}:{done:!0,value:t.call(r,e,n)}:{done:!1}},{REPLACE_KEEPS_$0:ki,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:Ui}),f=c[1];et(String.prototype,t,c[0]),et(RegExp.prototype,i,2==e?function(t,e){return f.call(t,this,e)}:function(t){return f.call(t,this)})}n&&I(RegExp.prototype[i],\"sham\",!0)},Ni=Oe.charAt,Ci=function(t,e,r){return e+(r?Ni(t,e).length:1)},Fi=function(t,e){var r=t.exec;if(\"function\"==typeof r){var n=r.call(t,e);if(\"object\"!=typeof n)throw TypeError(\"RegExp exec method returned something other than an Object or null\");return n}if(\"RegExp\"!==l(t))throw TypeError(\"RegExp#exec called on incompatible receiver\");return Ei.call(t,e)};_i(\"match\",1,function(t,e,r){return[function(e){var r=d(this),n=null==e?void 0:e[t];return void 0!==n?n.call(e,r):new RegExp(e)[t](String(r))},function(t){var n=r(e,t,this);if(n.done)return n.value;var o=R(t),i=String(this);if(!o.global)return Fi(o,i);var a=o.unicode;o.lastIndex=0;for(var u,s=[],c=0;null!==(u=Fi(o,i));){var f=String(u[0]);s[c]=f,\"\"===f&&(o.lastIndex=Ci(i,ct(o.lastIndex),a)),c++}return 0===c?null:s}]});var Bi=Math.max,Di=Math.min,qi=Math.floor,zi=/\\$([$&'`]|\\d\\d?|<[^>]*>)/g,Wi=/\\$([$&'`]|\\d\\d?)/g;_i(\"replace\",2,function(t,e,r,n){var o=n.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,i=n.REPLACE_KEEPS_$0,a=o?\"$\":\"$0\";return[function(r,n){var o=d(this),i=null==r?void 0:r[t];return void 0!==i?i.call(r,o,n):e.call(String(o),r,n)},function(t,n){if(!o&&i||\"string\"==typeof n&&-1===n.indexOf(a)){var s=r(e,t,this,n);if(s.done)return s.value}var c=R(t),f=String(this),l=\"function\"==typeof n;l||(n=String(n));var h=c.global;if(h){var p=c.unicode;c.lastIndex=0}for(var d=[];;){var v=Fi(c,f);if(null===v)break;if(d.push(v),!h)break;\"\"===String(v[0])&&(c.lastIndex=Ci(f,ct(c.lastIndex),p))}for(var g,y=\"\",m=0,b=0;b<d.length;b++){v=d[b];for(var w=String(v[0]),S=Bi(Di(ut(v.index),f.length),0),E=[],x=1;x<v.length;x++)E.push(void 0===(g=v[x])?g:String(g));var A=v.groups;if(l){var O=[w].concat(E,S,f);void 0!==A&&O.push(A);var j=String(n.apply(void 0,O))}else j=u(w,f,S,E,A,n);S>=m&&(y+=f.slice(m,S)+j,m=S+w.length)}return y+f.slice(m)}];function u(t,r,n,o,i,a){var u=n+t.length,s=o.length,c=Wi;return void 0!==i&&(i=Lt(i),c=zi),e.call(a,c,function(e,a){var c;switch(a.charAt(0)){case\"$\":return\"$\";case\"&\":return t;case\"`\":return r.slice(0,n);case\"'\":return r.slice(u);case\"<\":c=i[a.slice(1,-1)];break;default:var f=+a;if(0===f)return e;if(f>s){var l=qi(f/10);return 0===l?e:l<=s?void 0===o[l-1]?a.charAt(1):o[l-1]+a.charAt(1):e}c=o[f-1]}return void 0===c?\"\":c})}}),_i(\"search\",1,function(t,e,r){return[function(e){var r=d(this),n=null==e?void 0:e[t];return void 0!==n?n.call(e,r):new RegExp(e)[t](String(r))},function(t){var n=r(e,t,this);if(n.done)return n.value;var o=R(t),i=String(this),a=o.lastIndex;Gn(a,0)||(o.lastIndex=0);var u=Fi(o,i);return Gn(o.lastIndex,a)||(o.lastIndex=a),null===u?-1:u.index}]});var Ki=[].push,Gi=Math.min,$i=4294967295,Vi=!o(function(){return!RegExp($i,\"y\")});_i(\"split\",2,function(t,e,r){var n;return n=\"c\"==\"abbc\".split(/(b)*/)[1]||4!=\"test\".split(/(?:)/,-1).length||2!=\"ab\".split(/(?:ab)*/).length||4!=\".\".split(/(.?)(.?)/).length||\".\".split(/()()/).length>1||\"\".split(/.?/).length?function(t,r){var n=String(d(this)),o=void 0===r?$i:r>>>0;if(0===o)return[];if(void 0===t)return[n];if(!Xo(t))return e.call(n,t,o);for(var i,a,u,s=[],c=0,f=new RegExp(t.source,(t.ignoreCase?\"i\":\"\")+(t.multiline?\"m\":\"\")+(t.unicode?\"u\":\"\")+(t.sticky?\"y\":\"\")+\"g\");(i=Ei.call(f,n))&&!((a=f.lastIndex)>c&&(s.push(n.slice(c,i.index)),i.length>1&&i.index<n.length&&Ki.apply(s,i.slice(1)),u=i[0].length,c=a,s.length>=o));)f.lastIndex===i.index&&f.lastIndex++;return c===n.length?!u&&f.test(\"\")||s.push(\"\"):s.push(n.slice(c)),s.length>o?s.slice(0,o):s}:\"0\".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:e.call(this,t,r)}:e,[function(e,r){var o=d(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,r):n.call(String(o),e,r)},function(t,o){var i=r(n,t,this,o,n!==e);if(i.done)return i.value;var a=R(t),u=String(this),s=sn(a,RegExp),c=a.unicode,f=new s(Vi?a:\"^(?:\"+a.source+\")\",(a.ignoreCase?\"i\":\"\")+(a.multiline?\"m\":\"\")+(a.unicode?\"u\":\"\")+(Vi?\"y\":\"g\")),l=void 0===o?$i:o>>>0;if(0===l)return[];if(0===u.length)return null===Fi(f,u)?[u]:[];for(var h=0,p=0,d=[];p<u.length;){f.lastIndex=Vi?p:0;var v,g=Fi(f,Vi?u:u.slice(p));if(null===g||(v=Gi(ct(f.lastIndex+(Vi?0:p)),u.length))===h)p=Ci(u,p,c);else{if(d.push(u.slice(h,p)),d.length===l)return d;for(var y=1;y<=g.length-1;y++)if(d.push(g[y]),d.length===l)return d;p=h=v}}return d.push(u.slice(h)),d}]},!Vi),kt({target:\"Set\",stat:!0},{from:en}),kt({target:\"Set\",stat:!0},{of:rn});var Hi=function(){for(var t=R(this),e=Qt(t.add),r=0,n=arguments.length;r<n;r++)e.call(t,arguments[r]);return t};kt({target:\"Set\",proto:!0,real:!0,forced:D},{addAll:function(){return Hi.apply(this,arguments)}}),kt({target:\"Set\",proto:!0,real:!0,forced:D},{deleteAll:function(){return nn.apply(this,arguments)}});var Xi=function(t){return Set.prototype.values.call(t)};kt({target:\"Set\",proto:!0,real:!0,forced:D},{every:function(t){var e=R(this),r=Xi(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return!Mr(r,function(t){if(!n(t,t,e))return Mr.stop()},void 0,!1,!0).stopped}}),kt({target:\"Set\",proto:!0,real:!0,forced:D},{difference:function(t){var e=R(this),r=new(sn(e,ot(\"Set\")))(e),n=Qt(r.delete);return Mr(t,function(t){n.call(r,t)}),r}}),kt({target:\"Set\",proto:!0,real:!0,forced:D},{filter:function(t){var e=R(this),r=Xi(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(sn(e,ot(\"Set\"))),i=Qt(o.add);return Mr(r,function(t){n(t,t,e)&&i.call(o,t)},void 0,!1,!0),o}}),kt({target:\"Set\",proto:!0,real:!0,forced:D},{find:function(t){var e=R(this),r=Xi(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,function(t){if(n(t,t,e))return Mr.stop(t)},void 0,!1,!0).result}}),kt({target:\"Set\",proto:!0,real:!0,forced:D},{intersection:function(t){var e=R(this),r=new(sn(e,ot(\"Set\"))),n=Qt(e.has),o=Qt(r.add);return Mr(t,function(t){n.call(e,t)&&o.call(r,t)}),r}}),kt({target:\"Set\",proto:!0,real:!0,forced:D},{isDisjointFrom:function(t){var e=R(this),r=Qt(e.has);return!Mr(t,function(t){if(!0===r.call(e,t))return Mr.stop()}).stopped}}),kt({target:\"Set\",proto:!0,real:!0,forced:D},{isSubsetOf:function(t){var e=on(this),r=R(t),n=r.has;return\"function\"!=typeof n&&(r=new(ot(\"Set\"))(t),n=Qt(r.has)),!Mr(e,function(t){if(!1===n.call(r,t))return Mr.stop()},void 0,!1,!0).stopped}}),kt({target:\"Set\",proto:!0,real:!0,forced:D},{isSupersetOf:function(t){var e=R(this),r=Qt(e.has);return!Mr(t,function(t){if(!1===r.call(e,t))return Mr.stop()}).stopped}}),kt({target:\"Set\",proto:!0,real:!0,forced:D},{join:function(t){var e=R(this),r=Xi(e),n=void 0===t?\",\":String(t),o=[];return Mr(r,o.push,o,!1,!0),o.join(n)}}),kt({target:\"Set\",proto:!0,real:!0,forced:D},{map:function(t){var e=R(this),r=Xi(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(sn(e,ot(\"Set\"))),i=Qt(o.add);return Mr(r,function(t){i.call(o,n(t,t,e))},void 0,!1,!0),o}}),kt({target:\"Set\",proto:!0,real:!0,forced:D},{reduce:function(t){var e=R(this),r=Xi(e),n=arguments.length<2,o=n?void 0:arguments[1];if(Qt(t),Mr(r,function(r){n?(n=!1,o=r):o=t(o,r,r,e)},void 0,!1,!0),n)throw TypeError(\"Reduce of empty set with no initial value\");return o}}),kt({target:\"Set\",proto:!0,real:!0,forced:D},{some:function(t){var e=R(this),r=Xi(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,function(t){if(n(t,t,e))return Mr.stop()},void 0,!1,!0).stopped}}),kt({target:\"Set\",proto:!0,real:!0,forced:D},{symmetricDifference:function(t){var e=R(this),r=new(sn(e,ot(\"Set\")))(e),n=Qt(r.delete),o=Qt(r.add);return Mr(t,function(t){n.call(r,t)||o.call(r,t)}),r}}),kt({target:\"Set\",proto:!0,real:!0,forced:D},{union:function(t){var e=R(this),r=new(sn(e,ot(\"Set\")))(e);return Mr(t,Qt(r.add),r),r}});var Yi,Ji,Qi=ot(\"navigator\",\"userAgent\")||\"\",Zi=n.process,ta=Zi&&Zi.versions,ea=ta&&ta.v8;ea?Ji=(Yi=ea.split(\".\"))[0]+Yi[1]:Qi&&(!(Yi=Qi.match(/Edge\\/(\\d+)/))||Yi[1]>=74)&&(Yi=Qi.match(/Chrome\\/(\\d+)/))&&(Ji=Yi[1]);var ra=Ji&&+Ji,na=Dt(\"species\"),oa=Dt(\"isConcatSpreadable\"),ia=9007199254740991,aa=\"Maximum allowed index exceeded\",ua=ra>=51||!o(function(){var t=[];return t[oa]=!1,t.concat()[0]!==t}),sa=ra>=51||!o(function(){var t=[];return(t.constructor={})[na]=function(){return{foo:1}},1!==t.concat(Boolean).foo}),ca=function(t){if(!g(t))return!1;var e=t[oa];return void 0!==e?!!e:re(t)};kt({target:\"Array\",proto:!0,forced:!ua||!sa},{concat:function(t){var e,r,n,o,i,a=Lt(this),u=oe(a,0),s=0;for(e=-1,n=arguments.length;e<n;e++)if(ca(i=-1===e?a:arguments[e])){if(s+(o=ct(i.length))>ia)throw TypeError(aa);for(r=0;r<o;r++,s++)r in i&&or(u,s,i[r])}else{if(s>=ia)throw TypeError(aa);or(u,s++,i)}return u.length=s,u}});var fa=bt.f,la={}.toString,ha=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],pa={f:function(t){return ha&&\"[object Window]\"==la.call(t)?function(t){try{return fa(t)}catch(t){return ha.slice()}}(t):fa(v(t))}},da={f:Dt},va=P.f,ga=function(t){var e=rt.Symbol||(rt.Symbol={});b(e,t)||va(e,t,{value:da.f(t)})},ya=ue.forEach,ma=$(\"hidden\"),ba=\"Symbol\",wa=Dt(\"toPrimitive\"),Sa=tt.set,Ea=tt.getterFor(ba),xa=Object.prototype,Aa=n.Symbol,Oa=ot(\"JSON\",\"stringify\"),Ra=O.f,ja=P.f,Pa=pa.f,Ia=s.f,Ta=q(\"symbols\"),ka=q(\"op-symbols\"),La=q(\"string-to-symbol-registry\"),Ua=q(\"symbol-to-string-registry\"),Ma=q(\"wks\"),_a=n.QObject,Na=!_a||!_a.prototype||!_a.prototype.findChild,Ca=i&&o(function(){return 7!=Ht(ja({},\"a\",{get:function(){return ja(this,\"a\",{value:7}).a}})).a})?function(t,e,r){var n=Ra(xa,e);n&&delete xa[e],ja(t,e,r),n&&t!==xa&&ja(xa,e,n)}:ja,Fa=function(t,e){var r=Ta[t]=Ht(Aa.prototype);return Sa(r,{type:ba,tag:t,description:e}),i||(r.description=e),r},Ba=Nt?function(t){return\"symbol\"==typeof t}:function(t){return Object(t)instanceof Aa},Da=function(t,e,r){t===xa&&Da(ka,e,r),R(t);var n=y(e,!0);return R(r),b(Ta,n)?(r.enumerable?(b(t,ma)&&t[ma][n]&&(t[ma][n]=!1),r=Ht(r,{enumerable:c(0,!1)})):(b(t,ma)||ja(t,ma,c(1,{})),t[ma][n]=!0),Ca(t,n,r)):ja(t,n,r)},qa=function(t,e){R(t);var r=v(e),n=qt(r).concat(Ga(r));return ya(n,function(e){i&&!za.call(r,e)||Da(t,e,r[e])}),t},za=function(t){var e=y(t,!0),r=Ia.call(this,e);return!(this===xa&&b(Ta,e)&&!b(ka,e))&&(!(r||!b(this,e)||!b(Ta,e)||b(this,ma)&&this[ma][e])||r)},Wa=function(t,e){var r=v(t),n=y(e,!0);if(r!==xa||!b(Ta,n)||b(ka,n)){var o=Ra(r,n);return!o||!b(Ta,n)||b(r,ma)&&r[ma][n]||(o.enumerable=!0),o}},Ka=function(t){var e=Pa(v(t)),r=[];return ya(e,function(t){b(Ta,t)||b(V,t)||r.push(t)}),r},Ga=function(t){var e=t===xa,r=Pa(e?ka:v(t)),n=[];return ya(r,function(t){!b(Ta,t)||e&&!b(xa,t)||n.push(Ta[t])}),n};if(_t||(et((Aa=function(){if(this instanceof Aa)throw TypeError(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=K(t),r=function t(r){this===xa&&t.call(ka,r),b(this,ma)&&b(this[ma],e)&&(this[ma][e]=!1),Ca(this,e,c(1,r))};return i&&Na&&Ca(xa,e,{configurable:!0,set:r}),Fa(e,t)}).prototype,\"toString\",function(){return Ea(this).tag}),et(Aa,\"withoutSetter\",function(t){return Fa(K(t),t)}),s.f=za,P.f=Da,O.f=Wa,bt.f=pa.f=Ka,wt.f=Ga,da.f=function(t){return Fa(Dt(t),t)},i&&(ja(Aa.prototype,\"description\",{configurable:!0,get:function(){return Ea(this).description}}),et(xa,\"propertyIsEnumerable\",za,{unsafe:!0}))),kt({global:!0,wrap:!0,forced:!_t,sham:!_t},{Symbol:Aa}),ya(qt(Ma),function(t){ga(t)}),kt({target:ba,stat:!0,forced:!_t},{for:function(t){var e=String(t);if(b(La,e))return La[e];var r=Aa(e);return La[e]=r,Ua[r]=e,r},keyFor:function(t){if(!Ba(t))throw TypeError(t+\" is not a symbol\");if(b(Ua,t))return Ua[t]},useSetter:function(){Na=!0},useSimple:function(){Na=!1}}),kt({target:\"Object\",stat:!0,forced:!_t,sham:!i},{create:function(t,e){return void 0===e?Ht(t):qa(Ht(t),e)},defineProperty:Da,defineProperties:qa,getOwnPropertyDescriptor:Wa}),kt({target:\"Object\",stat:!0,forced:!_t},{getOwnPropertyNames:Ka,getOwnPropertySymbols:Ga}),kt({target:\"Object\",stat:!0,forced:o(function(){wt.f(1)})},{getOwnPropertySymbols:function(t){return wt.f(Lt(t))}}),Oa){var $a=!_t||o(function(){var t=Aa();return\"[null]\"!=Oa([t])||\"{}\"!=Oa({a:t})||\"{}\"!=Oa(Object(t))});kt({target:\"JSON\",stat:!0,forced:$a},{stringify:function(t,e,r){for(var n,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(n=e,(g(e)||void 0!==t)&&!Ba(t))return re(e)||(e=function(t,e){if(\"function\"==typeof n&&(e=n.call(this,t,e)),!Ba(e))return e}),o[1]=e,Oa.apply(null,o)}})}Aa.prototype[wa]||I(Aa.prototype,wa,Aa.prototype.valueOf),_e(Aa,ba),V[ma]=!0,ga(\"asyncIterator\");var Va=P.f,Ha=n.Symbol;if(i&&\"function\"==typeof Ha&&(!(\"description\"in Ha.prototype)||void 0!==Ha().description)){var Xa={},Ya=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof Ya?new Ha(t):void 0===t?Ha():Ha(t);return\"\"===t&&(Xa[e]=!0),e};Et(Ya,Ha);var Ja=Ya.prototype=Ha.prototype;Ja.constructor=Ya;var Qa=Ja.toString,Za=\"Symbol(test)\"==String(Ha(\"test\")),tu=/^Symbol\\((.*)\\)[^)]+$/;Va(Ja,\"description\",{configurable:!0,get:function(){var t=g(this)?this.valueOf():this,e=Qa.call(t);if(b(Xa,t))return\"\";var r=Za?e.slice(7,-1):e.replace(tu,\"$1\");return\"\"===r?void 0:r}}),kt({global:!0,forced:!0},{Symbol:Ya})}ga(\"hasInstance\"),ga(\"isConcatSpreadable\"),ga(\"iterator\"),ga(\"match\"),ga(\"matchAll\"),ga(\"replace\"),ga(\"search\"),ga(\"species\"),ga(\"split\"),ga(\"toPrimitive\"),ga(\"toStringTag\"),ga(\"unscopables\"),_e(Math,\"Math\",!0),_e(n.JSON,\"JSON\",!0),ga(\"asyncDispose\"),ga(\"dispose\"),ga(\"observable\"),ga(\"patternMatch\"),ga(\"replaceAll\"),da.f(\"asyncIterator\");var eu=Oe.codeAt;kt({target:\"String\",proto:!0},{codePointAt:function(t){return eu(this,t)}}),ee(\"String\",\"codePointAt\");var ru,nu=function(t){if(Xo(t))throw TypeError(\"The method doesn't accept regular expressions\");return t},ou=Dt(\"match\"),iu=function(t){var e=/./;try{\"/./\"[t](e)}catch(r){try{return e[ou]=!1,\"/./\"[t](e)}catch(t){}}return!1},au=O.f,uu=\"\".endsWith,su=Math.min,cu=iu(\"endsWith\"),fu=!(cu||(ru=au(String.prototype,\"endsWith\"),!ru||ru.writable));kt({target:\"String\",proto:!0,forced:!fu&&!cu},{endsWith:function(t){var e=String(d(this));nu(t);var r=arguments.length>1?arguments[1]:void 0,n=ct(e.length),o=void 0===r?n:su(ct(r),n),i=String(t);return uu?uu.call(e,i,o):e.slice(o-i.length,o)===i}}),ee(\"String\",\"endsWith\");var lu=String.fromCharCode,hu=String.fromCodePoint;kt({target:\"String\",stat:!0,forced:!!hu&&1!=hu.length},{fromCodePoint:function(t){for(var e,r=[],n=arguments.length,o=0;n>o;){if(e=+arguments[o++],ht(e,1114111)!==e)throw RangeError(e+\" is not a valid code point\");r.push(e<65536?lu(e):lu(55296+((e-=65536)>>10),e%1024+56320))}return r.join(\"\")}}),kt({target:\"String\",proto:!0,forced:!iu(\"includes\")},{includes:function(t){return!!~String(d(this)).indexOf(nu(t),arguments.length>1?arguments[1]:void 0)}}),ee(\"String\",\"includes\");var pu=\"\".repeat||function(t){var e=String(d(this)),r=\"\",n=ut(t);if(n<0||Infinity==n)throw RangeError(\"Wrong number of repetitions\");for(;n>0;(n>>>=1)&&(e+=e))1&n&&(r+=e);return r},du=Math.ceil,vu=function(t){return function(e,r,n){var o,i,a=String(d(e)),u=a.length,s=void 0===n?\" \":String(n),c=ct(r);return c<=u||\"\"==s?a:((i=pu.call(s,du((o=c-u)/s.length))).length>o&&(i=i.slice(0,o)),t?a+i:i+a)}},gu={start:vu(!1),end:vu(!0)},yu=/Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(Qi),mu=gu.start;kt({target:\"String\",proto:!0,forced:yu},{padStart:function(t){return mu(this,t,arguments.length>1?arguments[1]:void 0)}}),ee(\"String\",\"padStart\");var bu=gu.end;kt({target:\"String\",proto:!0,forced:yu},{padEnd:function(t){return bu(this,t,arguments.length>1?arguments[1]:void 0)}}),ee(\"String\",\"padEnd\"),kt({target:\"String\",stat:!0},{raw:function(t){for(var e=v(t.raw),r=ct(e.length),n=arguments.length,o=[],i=0;r>i;)o.push(String(e[i++])),i<n&&o.push(String(arguments[i]));return o.join(\"\")}}),kt({target:\"String\",proto:!0},{repeat:pu}),ee(\"String\",\"repeat\");var wu=O.f,Su=\"\".startsWith,Eu=Math.min,xu=iu(\"startsWith\"),Au=!xu&&!!function(){var t=wu(String.prototype,\"startsWith\");return t&&!t.writable}();kt({target:\"String\",proto:!0,forced:!Au&&!xu},{startsWith:function(t){var e=String(d(this));nu(t);var r=ct(Eu(arguments.length>1?arguments[1]:void 0,e.length)),n=String(t);return Su?Su.call(e,n,r):e.slice(r,r+n.length)===n}}),ee(\"String\",\"startsWith\");var Ou=function(t){return o(function(){return!!fn[t]()||\"
\"!=\"
\"[t]()||fn[t].name!==t})},Ru=vn.start,ju=Ou(\"trimStart\"),Pu=ju?function(){return Ru(this)}:\"\".trimStart;kt({target:\"String\",proto:!0,forced:ju},{trimStart:Pu,trimLeft:Pu}),ee(\"String\",\"trimLeft\");var Iu=vn.end,Tu=Ou(\"trimEnd\"),ku=Tu?function(){return Iu(this)}:\"\".trimEnd;kt({target:\"String\",proto:!0,forced:Tu},{trimEnd:ku,trimRight:ku}),ee(\"String\",\"trimRight\");var Lu=Dt(\"iterator\"),Uu=!o(function(){var t=new URL(\"b?a=1&b=2&c=3\",\"http://a\"),e=t.searchParams,r=\"\";return t.pathname=\"c%20d\",e.forEach(function(t,n){e.delete(\"b\"),r+=n+t}),!e.sort||\"http://a/c%20d?a=1&c=3\"!==t.href||\"3\"!==e.get(\"c\")||\"a=1\"!==String(new URLSearchParams(\"?a=1\"))||!e[Lu]||\"a\"!==new URL(\"https://a@b\").username||\"b\"!==new URLSearchParams(new URLSearchParams(\"a=b\")).get(\"a\")||\"xn--e1aybc\"!==new URL(\"http://тест\").host||\"#%D0%B1\"!==new URL(\"http://a#б\").hash||\"a1c3\"!==r||\"x\"!==new URL(\"http://x\",void 0).host}),Mu=Object.assign,_u=Object.defineProperty,Nu=!Mu||o(function(){if(i&&1!==Mu({b:1},Mu(_u({},\"a\",{enumerable:!0,get:function(){_u(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},r=Symbol(),n=\"abcdefghijklmnopqrst\";return t[r]=7,n.split(\"\").forEach(function(t){e[t]=t}),7!=Mu({},t)[r]||qt(Mu({},e)).join(\"\")!=n})?function(t,e){for(var r=Lt(t),n=arguments.length,o=1,a=wt.f,u=s.f;n>o;)for(var c,f=p(arguments[o++]),l=a?qt(f).concat(a(f)):qt(f),h=l.length,d=0;h>d;)c=l[d++],i&&!u.call(f,c)||(r[c]=f[c]);return r}:Mu,Cu=2147483647,Fu=/[^\\0-\\u007E]/,Bu=/[.\\u3002\\uFF0E\\uFF61]/g,Du=\"Overflow: input needs wider integers to process\",qu=Math.floor,zu=String.fromCharCode,Wu=function(t){return t+22+75*(t<26)},Ku=function(t,e,r){var n=0;for(t=r?qu(t/700):t>>1,t+=qu(t/e);t>455;n+=36)t=qu(t/35);return qu(n+36*t/(t+38))},Gu=function(t){var e,r,n=[],o=(t=function(t){for(var e=[],r=0,n=t.length;r<n;){var o=t.charCodeAt(r++);if(o>=55296&&o<=56319&&r<n){var i=t.charCodeAt(r++);56320==(64512&i)?e.push(((1023&o)<<10)+(1023&i)+65536):(e.push(o),r--)}else e.push(o)}return e}(t)).length,i=128,a=0,u=72;for(e=0;e<t.length;e++)(r=t[e])<128&&n.push(zu(r));var s=n.length,c=s;for(s&&n.push(\"-\");c<o;){var f=Cu;for(e=0;e<t.length;e++)(r=t[e])>=i&&r<f&&(f=r);var l=c+1;if(f-i>qu((Cu-a)/l))throw RangeError(Du);for(a+=(f-i)*l,i=f,e=0;e<t.length;e++){if((r=t[e])<i&&++a>Cu)throw RangeError(Du);if(r==i){for(var h=a,p=36;;p+=36){var d=p<=u?1:p>=u+26?26:p-u;if(h<d)break;var v=h-d,g=36-d;n.push(zu(Wu(d+v%g))),h=qu(v/g)}n.push(zu(Wu(h))),u=Ku(a,l,c==s),a=0,++c}}++a,++i}return n.join(\"\")},$u=ot(\"fetch\"),Vu=ot(\"Headers\"),Hu=Dt(\"iterator\"),Xu=\"URLSearchParams\",Yu=\"URLSearchParamsIterator\",Ju=tt.set,Qu=tt.getterFor(Xu),Zu=tt.getterFor(Yu),ts=/\\+/g,es=Array(4),rs=function(t){return es[t-1]||(es[t-1]=RegExp(\"((?:%[\\\\da-f]{2}){\"+t+\"})\",\"gi\"))},ns=function(t){try{return decodeURIComponent(t)}catch(e){return t}},os=function(t){var e=t.replace(ts,\" \"),r=4;try{return decodeURIComponent(e)}catch(t){for(;r;)e=e.replace(rs(r--),ns);return e}},is=/[!'()~]|%20/g,as={\"!\":\"%21\",\"'\":\"%27\",\"(\":\"%28\",\")\":\"%29\",\"~\":\"%7E\",\"%20\":\"+\"},us=function(t){return as[t]},ss=function(t){return encodeURIComponent(t).replace(is,us)},cs=function(t,e){if(e)for(var r,n,o=e.split(\"&\"),i=0;i<o.length;)(r=o[i++]).length&&(n=r.split(\"=\"),t.push({key:os(n.shift()),value:os(n.join(\"=\"))}))},fs=function(t){this.entries.length=0,cs(this.entries,t)},ls=function(t,e){if(t<e)throw TypeError(\"Not enough arguments\")},hs=Be(function(t,e){Ju(this,{type:Yu,iterator:on(Qu(t).entries),kind:e})},\"Iterator\",function(){var t=Zu(this),e=t.kind,r=t.iterator.next(),n=r.value;return r.done||(r.value=\"keys\"===e?n.key:\"values\"===e?n.value:[n.key,n.value]),r}),ps=function(){_r(this,ps,Xu);var t,e,r,n,o,i,a,u,s,c=arguments.length>0?arguments[0]:void 0,f=this,l=[];if(Ju(f,{type:Xu,entries:l,updateURL:function(){},updateSearchParams:fs}),void 0!==c)if(g(c))if(\"function\"==typeof(t=lr(c)))for(r=(e=t.call(c)).next;!(n=r.call(e)).done;){if((a=(i=(o=on(R(n.value))).next).call(o)).done||(u=i.call(o)).done||!i.call(o).done)throw TypeError(\"Expected sequence with length 2\");l.push({key:a.value+\"\",value:u.value+\"\"})}else for(s in c)b(c,s)&&l.push({key:s,value:c[s]+\"\"});else cs(l,\"string\"==typeof c?\"?\"===c.charAt(0)?c.slice(1):c:c+\"\")},ds=ps.prototype;Fr(ds,{append:function(t,e){ls(arguments.length,2);var r=Qu(this);r.entries.push({key:t+\"\",value:e+\"\"}),r.updateURL()},delete:function(t){ls(arguments.length,1);for(var e=Qu(this),r=e.entries,n=t+\"\",o=0;o<r.length;)r[o].key===n?r.splice(o,1):o++;e.updateURL()},get:function(t){ls(arguments.length,1);for(var e=Qu(this).entries,r=t+\"\",n=0;n<e.length;n++)if(e[n].key===r)return e[n].value;return null},getAll:function(t){ls(arguments.length,1);for(var e=Qu(this).entries,r=t+\"\",n=[],o=0;o<e.length;o++)e[o].key===r&&n.push(e[o].value);return n},has:function(t){ls(arguments.length,1);for(var e=Qu(this).entries,r=t+\"\",n=0;n<e.length;)if(e[n++].key===r)return!0;return!1},set:function(t,e){ls(arguments.length,1);for(var r,n=Qu(this),o=n.entries,i=!1,a=t+\"\",u=e+\"\",s=0;s<o.length;s++)(r=o[s]).key===a&&(i?o.splice(s--,1):(i=!0,r.value=u));i||o.push({key:a,value:u}),n.updateURL()},sort:function(){var t,e,r,n=Qu(this),o=n.entries,i=o.slice();for(o.length=0,r=0;r<i.length;r++){for(t=i[r],e=0;e<r;e++)if(o[e].key>t.key){o.splice(e,0,t);break}e===r&&o.push(t)}n.updateURL()},forEach:function(t){for(var e,r=Qu(this).entries,n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=0;o<r.length;)n((e=r[o++]).value,e.key,this)},keys:function(){return new hs(this,\"keys\")},values:function(){return new hs(this,\"values\")},entries:function(){return new hs(this,\"entries\")}},{enumerable:!0}),et(ds,Hu,ds.entries),et(ds,\"toString\",function(){for(var t,e=Qu(this).entries,r=[],n=0;n<e.length;)t=e[n++],r.push(ss(t.key)+\"=\"+ss(t.value));return r.join(\"&\")},{enumerable:!0}),_e(ps,Xu),kt({global:!0,forced:!Uu},{URLSearchParams:ps}),Uu||\"function\"!=typeof $u||\"function\"!=typeof Vu||kt({global:!0,enumerable:!0,forced:!0},{fetch:function(t){var e,r,n,o=[t];return arguments.length>1&&(g(e=arguments[1])&&cr(r=e.body)===Xu&&((n=e.headers?new Vu(e.headers):new Vu).has(\"content-type\")||n.set(\"content-type\",\"application/x-www-form-urlencoded;charset=UTF-8\"),e=Ht(e,{body:c(0,String(r)),headers:c(0,n)})),o.push(e)),$u.apply(this,o)}});var vs,gs={URLSearchParams:ps,getState:Qu},ys=Oe.codeAt,ms=n.URL,bs=gs.URLSearchParams,ws=gs.getState,Ss=tt.set,Es=tt.getterFor(\"URL\"),xs=Math.floor,As=Math.pow,Os=\"Invalid scheme\",Rs=\"Invalid host\",js=\"Invalid port\",Ps=/[A-Za-z]/,Is=/[\\d+-.A-Za-z]/,Ts=/\\d/,ks=/^(0x|0X)/,Ls=/^[0-7]+$/,Us=/^\\d+$/,Ms=/^[\\dA-Fa-f]+$/,_s=/[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/,Ns=/[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/,Cs=/^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g,Fs=/[\\u0009\\u000A\\u000D]/g,Bs=function(t,e){var r,n,o;if(\"[\"==e.charAt(0)){if(\"]\"!=e.charAt(e.length-1))return Rs;if(!(r=qs(e.slice(1,-1))))return Rs;t.host=r}else if(Xs(t)){if(e=function(t){var e,r,n=[],o=t.toLowerCase().replace(Bu,\".\").split(\".\");for(e=0;e<o.length;e++)n.push(Fu.test(r=o[e])?\"xn--\"+Gu(r):r);return n.join(\".\")}(e),_s.test(e))return Rs;if(null===(r=Ds(e)))return Rs;t.host=r}else{if(Ns.test(e))return Rs;for(r=\"\",n=hr(e),o=0;o<n.length;o++)r+=Vs(n[o],Ws);t.host=r}},Ds=function(t){var e,r,n,o,i,a,u,s=t.split(\".\");if(s.length&&\"\"==s[s.length-1]&&s.pop(),(e=s.length)>4)return t;for(r=[],n=0;n<e;n++){if(\"\"==(o=s[n]))return t;if(i=10,o.length>1&&\"0\"==o.charAt(0)&&(i=ks.test(o)?16:8,o=o.slice(8==i?1:2)),\"\"===o)a=0;else{if(!(10==i?Us:8==i?Ls:Ms).test(o))return t;a=parseInt(o,i)}r.push(a)}for(n=0;n<e;n++)if(a=r[n],n==e-1){if(a>=As(256,5-e))return null}else if(a>255)return null;for(u=r.pop(),n=0;n<r.length;n++)u+=r[n]*As(256,3-n);return u},qs=function(t){var e,r,n,o,i,a,u,s=[0,0,0,0,0,0,0,0],c=0,f=null,l=0,h=function(){return t.charAt(l)};if(\":\"==h()){if(\":\"!=t.charAt(1))return;l+=2,f=++c}for(;h();){if(8==c)return;if(\":\"!=h()){for(e=r=0;r<4&&Ms.test(h());)e=16*e+parseInt(h(),16),l++,r++;if(\".\"==h()){if(0==r)return;if(l-=r,c>6)return;for(n=0;h();){if(o=null,n>0){if(!(\".\"==h()&&n<4))return;l++}if(!Ts.test(h()))return;for(;Ts.test(h());){if(i=parseInt(h(),10),null===o)o=i;else{if(0==o)return;o=10*o+i}if(o>255)return;l++}s[c]=256*s[c]+o,2!=++n&&4!=n||c++}if(4!=n)return;break}if(\":\"==h()){if(l++,!h())return}else if(h())return;s[c++]=e}else{if(null!==f)return;l++,f=++c}}if(null!==f)for(a=c-f,c=7;0!=c&&a>0;)u=s[c],s[c--]=s[f+a-1],s[f+--a]=u;else if(8!=c)return;return s},zs=function(t){var e,r,n,o;if(\"number\"==typeof t){for(e=[],r=0;r<4;r++)e.unshift(t%256),t=xs(t/256);return e.join(\".\")}if(\"object\"==typeof t){for(e=\"\",n=function(t){for(var e=null,r=1,n=null,o=0,i=0;i<8;i++)0!==t[i]?(o>r&&(e=n,r=o),n=null,o=0):(null===n&&(n=i),++o);return o>r&&(e=n,r=o),e}(t),r=0;r<8;r++)o&&0===t[r]||(o&&(o=!1),n===r?(e+=r?\":\":\"::\",o=!0):(e+=t[r].toString(16),r<7&&(e+=\":\")));return\"[\"+e+\"]\"}return t},Ws={},Ks=Nu({},Ws,{\" \":1,'\"':1,\"<\":1,\">\":1,\"`\":1}),Gs=Nu({},Ks,{\"#\":1,\"?\":1,\"{\":1,\"}\":1}),$s=Nu({},Gs,{\"/\":1,\":\":1,\";\":1,\"=\":1,\"@\":1,\"[\":1,\"\\\\\":1,\"]\":1,\"^\":1,\"|\":1}),Vs=function(t,e){var r=ys(t,0);return r>32&&r<127&&!b(e,t)?t:encodeURIComponent(t)},Hs={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Xs=function(t){return b(Hs,t.scheme)},Ys=function(t){return\"\"!=t.username||\"\"!=t.password},Js=function(t){return!t.host||t.cannotBeABaseURL||\"file\"==t.scheme},Qs=function(t,e){var r;return 2==t.length&&Ps.test(t.charAt(0))&&(\":\"==(r=t.charAt(1))||!e&&\"|\"==r)},Zs=function(t){var e;return t.length>1&&Qs(t.slice(0,2))&&(2==t.length||\"/\"===(e=t.charAt(2))||\"\\\\\"===e||\"?\"===e||\"#\"===e)},tc=function(t){var e=t.path,r=e.length;!r||\"file\"==t.scheme&&1==r&&Qs(e[0],!0)||e.pop()},ec=function(t){return\".\"===t||\"%2e\"===t.toLowerCase()},rc={},nc={},oc={},ic={},ac={},uc={},sc={},cc={},fc={},lc={},hc={},pc={},dc={},vc={},gc={},yc={},mc={},bc={},wc={},Sc={},Ec={},xc=function(t,e,r,n){var o,i,a,u,s,c=r||rc,f=0,l=\"\",h=!1,p=!1,d=!1;for(r||(t.scheme=\"\",t.username=\"\",t.password=\"\",t.host=null,t.port=null,t.path=[],t.query=null,t.fragment=null,t.cannotBeABaseURL=!1,e=e.replace(Cs,\"\")),e=e.replace(Fs,\"\"),o=hr(e);f<=o.length;){switch(i=o[f],c){case rc:if(!i||!Ps.test(i)){if(r)return Os;c=oc;continue}l+=i.toLowerCase(),c=nc;break;case nc:if(i&&(Is.test(i)||\"+\"==i||\"-\"==i||\".\"==i))l+=i.toLowerCase();else{if(\":\"!=i){if(r)return Os;l=\"\",c=oc,f=0;continue}if(r&&(Xs(t)!=b(Hs,l)||\"file\"==l&&(Ys(t)||null!==t.port)||\"file\"==t.scheme&&!t.host))return;if(t.scheme=l,r)return void(Xs(t)&&Hs[t.scheme]==t.port&&(t.port=null));l=\"\",\"file\"==t.scheme?c=vc:Xs(t)&&n&&n.scheme==t.scheme?c=ic:Xs(t)?c=cc:\"/\"==o[f+1]?(c=ac,f++):(t.cannotBeABaseURL=!0,t.path.push(\"\"),c=wc)}break;case oc:if(!n||n.cannotBeABaseURL&&\"#\"!=i)return Os;if(n.cannotBeABaseURL&&\"#\"==i){t.scheme=n.scheme,t.path=n.path.slice(),t.query=n.query,t.fragment=\"\",t.cannotBeABaseURL=!0,c=Ec;break}c=\"file\"==n.scheme?vc:uc;continue;case ic:if(\"/\"!=i||\"/\"!=o[f+1]){c=uc;continue}c=fc,f++;break;case ac:if(\"/\"==i){c=lc;break}c=bc;continue;case uc:if(t.scheme=n.scheme,i==vs)t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query=n.query;else if(\"/\"==i||\"\\\\\"==i&&Xs(t))c=sc;else if(\"?\"==i)t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query=\"\",c=Sc;else{if(\"#\"!=i){t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.path.pop(),c=bc;continue}t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query=n.query,t.fragment=\"\",c=Ec}break;case sc:if(!Xs(t)||\"/\"!=i&&\"\\\\\"!=i){if(\"/\"!=i){t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,c=bc;continue}c=lc}else c=fc;break;case cc:if(c=fc,\"/\"!=i||\"/\"!=l.charAt(f+1))continue;f++;break;case fc:if(\"/\"!=i&&\"\\\\\"!=i){c=lc;continue}break;case lc:if(\"@\"==i){h&&(l=\"%40\"+l),h=!0,a=hr(l);for(var v=0;v<a.length;v++){var g=a[v];if(\":\"!=g||d){var y=Vs(g,$s);d?t.password+=y:t.username+=y}else d=!0}l=\"\"}else if(i==vs||\"/\"==i||\"?\"==i||\"#\"==i||\"\\\\\"==i&&Xs(t)){if(h&&\"\"==l)return\"Invalid authority\";f-=hr(l).length+1,l=\"\",c=hc}else l+=i;break;case hc:case pc:if(r&&\"file\"==t.scheme){c=yc;continue}if(\":\"!=i||p){if(i==vs||\"/\"==i||\"?\"==i||\"#\"==i||\"\\\\\"==i&&Xs(t)){if(Xs(t)&&\"\"==l)return Rs;if(r&&\"\"==l&&(Ys(t)||null!==t.port))return;if(u=Bs(t,l))return u;if(l=\"\",c=mc,r)return;continue}\"[\"==i?p=!0:\"]\"==i&&(p=!1),l+=i}else{if(\"\"==l)return Rs;if(u=Bs(t,l))return u;if(l=\"\",c=dc,r==pc)return}break;case dc:if(!Ts.test(i)){if(i==vs||\"/\"==i||\"?\"==i||\"#\"==i||\"\\\\\"==i&&Xs(t)||r){if(\"\"!=l){var m=parseInt(l,10);if(m>65535)return js;t.port=Xs(t)&&m===Hs[t.scheme]?null:m,l=\"\"}if(r)return;c=mc;continue}return js}l+=i;break;case vc:if(t.scheme=\"file\",\"/\"==i||\"\\\\\"==i)c=gc;else{if(!n||\"file\"!=n.scheme){c=bc;continue}if(i==vs)t.host=n.host,t.path=n.path.slice(),t.query=n.query;else if(\"?\"==i)t.host=n.host,t.path=n.path.slice(),t.query=\"\",c=Sc;else{if(\"#\"!=i){Zs(o.slice(f).join(\"\"))||(t.host=n.host,t.path=n.path.slice(),tc(t)),c=bc;continue}t.host=n.host,t.path=n.path.slice(),t.query=n.query,t.fragment=\"\",c=Ec}}break;case gc:if(\"/\"==i||\"\\\\\"==i){c=yc;break}n&&\"file\"==n.scheme&&!Zs(o.slice(f).join(\"\"))&&(Qs(n.path[0],!0)?t.path.push(n.path[0]):t.host=n.host),c=bc;continue;case yc:if(i==vs||\"/\"==i||\"\\\\\"==i||\"?\"==i||\"#\"==i){if(!r&&Qs(l))c=bc;else if(\"\"==l){if(t.host=\"\",r)return;c=mc}else{if(u=Bs(t,l))return u;if(\"localhost\"==t.host&&(t.host=\"\"),r)return;l=\"\",c=mc}continue}l+=i;break;case mc:if(Xs(t)){if(c=bc,\"/\"!=i&&\"\\\\\"!=i)continue}else if(r||\"?\"!=i)if(r||\"#\"!=i){if(i!=vs&&(c=bc,\"/\"!=i))continue}else t.fragment=\"\",c=Ec;else t.query=\"\",c=Sc;break;case bc:if(i==vs||\"/\"==i||\"\\\\\"==i&&Xs(t)||!r&&(\"?\"==i||\"#\"==i)){if(\"..\"===(s=(s=l).toLowerCase())||\"%2e.\"===s||\".%2e\"===s||\"%2e%2e\"===s?(tc(t),\"/\"==i||\"\\\\\"==i&&Xs(t)||t.path.push(\"\")):ec(l)?\"/\"==i||\"\\\\\"==i&&Xs(t)||t.path.push(\"\"):(\"file\"==t.scheme&&!t.path.length&&Qs(l)&&(t.host&&(t.host=\"\"),l=l.charAt(0)+\":\"),t.path.push(l)),l=\"\",\"file\"==t.scheme&&(i==vs||\"?\"==i||\"#\"==i))for(;t.path.length>1&&\"\"===t.path[0];)t.path.shift();\"?\"==i?(t.query=\"\",c=Sc):\"#\"==i&&(t.fragment=\"\",c=Ec)}else l+=Vs(i,Gs);break;case wc:\"?\"==i?(t.query=\"\",c=Sc):\"#\"==i?(t.fragment=\"\",c=Ec):i!=vs&&(t.path[0]+=Vs(i,Ws));break;case Sc:r||\"#\"!=i?i!=vs&&(\"'\"==i&&Xs(t)?t.query+=\"%27\":t.query+=\"#\"==i?\"%23\":Vs(i,Ws)):(t.fragment=\"\",c=Ec);break;case Ec:i!=vs&&(t.fragment+=Vs(i,Ks))}f++}},Ac=function(t){var e,r,n=_r(this,Ac,\"URL\"),o=arguments.length>1?arguments[1]:void 0,a=String(t),u=Ss(n,{type:\"URL\"});if(void 0!==o)if(o instanceof Ac)e=Es(o);else if(r=xc(e={},String(o)))throw TypeError(r);if(r=xc(u,a,null,e))throw TypeError(r);var s=u.searchParams=new bs,c=ws(s);c.updateSearchParams(u.query),c.updateURL=function(){u.query=String(s)||null},i||(n.href=Rc.call(n),n.origin=jc.call(n),n.protocol=Pc.call(n),n.username=Ic.call(n),n.password=Tc.call(n),n.host=kc.call(n),n.hostname=Lc.call(n),n.port=Uc.call(n),n.pathname=Mc.call(n),n.search=_c.call(n),n.searchParams=Nc.call(n),n.hash=Cc.call(n))},Oc=Ac.prototype,Rc=function(){var t=Es(this),e=t.scheme,r=t.username,n=t.password,o=t.host,i=t.port,a=t.path,u=t.query,s=t.fragment,c=e+\":\";return null!==o?(c+=\"//\",Ys(t)&&(c+=r+(n?\":\"+n:\"\")+\"@\"),c+=zs(o),null!==i&&(c+=\":\"+i)):\"file\"==e&&(c+=\"//\"),c+=t.cannotBeABaseURL?a[0]:a.length?\"/\"+a.join(\"/\"):\"\",null!==u&&(c+=\"?\"+u),null!==s&&(c+=\"#\"+s),c},jc=function(){var t=Es(this),e=t.scheme,r=t.port;if(\"blob\"==e)try{return new URL(e.path[0]).origin}catch(t){return\"null\"}return\"file\"!=e&&Xs(t)?e+\"://\"+zs(t.host)+(null!==r?\":\"+r:\"\"):\"null\"},Pc=function(){return Es(this).scheme+\":\"},Ic=function(){return Es(this).username},Tc=function(){return Es(this).password},kc=function(){var t=Es(this),e=t.host,r=t.port;return null===e?\"\":null===r?zs(e):zs(e)+\":\"+r},Lc=function(){var t=Es(this).host;return null===t?\"\":zs(t)},Uc=function(){var t=Es(this).port;return null===t?\"\":String(t)},Mc=function(){var t=Es(this),e=t.path;return t.cannotBeABaseURL?e[0]:e.length?\"/\"+e.join(\"/\"):\"\"},_c=function(){var t=Es(this).query;return t?\"?\"+t:\"\"},Nc=function(){return Es(this).searchParams},Cc=function(){var t=Es(this).fragment;return t?\"#\"+t:\"\"},Fc=function(t,e){return{get:t,set:e,configurable:!0,enumerable:!0}};if(i&&zt(Oc,{href:Fc(Rc,function(t){var e=Es(this),r=String(t),n=xc(e,r);if(n)throw TypeError(n);ws(e.searchParams).updateSearchParams(e.query)}),origin:Fc(jc),protocol:Fc(Pc,function(t){var e=Es(this);xc(e,String(t)+\":\",rc)}),username:Fc(Ic,function(t){var e=Es(this),r=hr(String(t));if(!Js(e)){e.username=\"\";for(var n=0;n<r.length;n++)e.username+=Vs(r[n],$s)}}),password:Fc(Tc,function(t){var e=Es(this),r=hr(String(t));if(!Js(e)){e.password=\"\";for(var n=0;n<r.length;n++)e.password+=Vs(r[n],$s)}}),host:Fc(kc,function(t){var e=Es(this);e.cannotBeABaseURL||xc(e,String(t),hc)}),hostname:Fc(Lc,function(t){var e=Es(this);e.cannotBeABaseURL||xc(e,String(t),pc)}),port:Fc(Uc,function(t){var e=Es(this);Js(e)||(\"\"==(t=String(t))?e.port=null:xc(e,t,dc))}),pathname:Fc(Mc,function(t){var e=Es(this);e.cannotBeABaseURL||(e.path=[],xc(e,t+\"\",mc))}),search:Fc(_c,function(t){var e=Es(this);\"\"==(t=String(t))?e.query=null:(\"?\"==t.charAt(0)&&(t=t.slice(1)),e.query=\"\",xc(e,t,Sc)),ws(e.searchParams).updateSearchParams(e.query)}),searchParams:Fc(Nc),hash:Fc(Cc,function(t){var e=Es(this);\"\"!=(t=String(t))?(\"#\"==t.charAt(0)&&(t=t.slice(1)),e.fragment=\"\",xc(e,t,Ec)):e.fragment=null})}),et(Oc,\"toJSON\",function(){return Rc.call(this)},{enumerable:!0}),et(Oc,\"toString\",function(){return Rc.call(this)},{enumerable:!0}),ms){var Bc=ms.createObjectURL,Dc=ms.revokeObjectURL;Bc&&et(Ac,\"createObjectURL\",function(t){return Bc.apply(ms,arguments)}),Dc&&et(Ac,\"revokeObjectURL\",function(t){return Dc.apply(ms,arguments)})}_e(Ac,\"URL\"),kt({global:!0,forced:!Uu,sham:!i},{URL:Ac}),kt({target:\"URL\",proto:!0,enumerable:!0},{toJSON:function(){return URL.prototype.toString.call(this)}}),kt({target:\"WeakMap\",stat:!0},{from:en}),kt({target:\"WeakMap\",stat:!0},{of:rn}),kt({target:\"WeakMap\",proto:!0,real:!0,forced:D},{deleteAll:function(){return nn.apply(this,arguments)}}),kt({target:\"WeakMap\",proto:!0,real:!0,forced:D},{upsert:cn}),Cr(\"WeakSet\",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},mo),kt({target:\"WeakSet\",proto:!0,real:!0,forced:D},{addAll:function(){return Hi.apply(this,arguments)}}),kt({target:\"WeakSet\",proto:!0,real:!0,forced:D},{deleteAll:function(){return nn.apply(this,arguments)}}),kt({target:\"WeakSet\",stat:!0},{from:en}),kt({target:\"WeakSet\",stat:!0},{of:rn});var qc,zc,Wc,Kc=n.Promise,Gc=/(iphone|ipod|ipad).*applewebkit/i.test(Qi),$c=n.location,Vc=n.setImmediate,Hc=n.clearImmediate,Xc=n.process,Yc=n.MessageChannel,Jc=n.Dispatch,Qc=0,Zc={},tf=function(t){if(Zc.hasOwnProperty(t)){var e=Zc[t];delete Zc[t],e()}},ef=function(t){return function(){tf(t)}},rf=function(t){tf(t.data)},nf=function(t){n.postMessage(t+\"\",$c.protocol+\"//\"+$c.host)};Vc&&Hc||(Vc=function(t){for(var e=[],r=1;arguments.length>r;)e.push(arguments[r++]);return Zc[++Qc]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},qc(Qc),Qc},Hc=function(t){delete Zc[t]},\"process\"==l(Xc)?qc=function(t){Xc.nextTick(ef(t))}:Jc&&Jc.now?qc=function(t){Jc.now(ef(t))}:Yc&&!Gc?(Wc=(zc=new Yc).port2,zc.port1.onmessage=rf,qc=Zt(Wc.postMessage,Wc,1)):!n.addEventListener||\"function\"!=typeof postMessage||n.importScripts||o(nf)||\"file:\"===$c.protocol?qc=\"onreadystatechange\"in E(\"script\")?function(t){Wt.appendChild(E(\"script\")).onreadystatechange=function(){Wt.removeChild(this),tf(t)}}:function(t){setTimeout(ef(t),0)}:(qc=nf,n.addEventListener(\"message\",rf,!1)));var of,af,uf,sf,cf,ff,lf,hf,pf={set:Vc,clear:Hc},df=O.f,vf=pf.set,gf=n.MutationObserver||n.WebKitMutationObserver,yf=n.process,mf=n.Promise,bf=\"process\"==l(yf),wf=df(n,\"queueMicrotask\"),Sf=wf&&wf.value;Sf||(of=function(){var t,e;for(bf&&(t=yf.domain)&&t.exit();af;){e=af.fn,af=af.next;try{e()}catch(t){throw af?sf():uf=void 0,t}}uf=void 0,t&&t.enter()},bf?sf=function(){yf.nextTick(of)}:gf&&!Gc?(cf=!0,ff=document.createTextNode(\"\"),new gf(of).observe(ff,{characterData:!0}),sf=function(){ff.data=cf=!cf}):mf&&mf.resolve?(lf=mf.resolve(void 0),hf=lf.then,sf=function(){hf.call(lf,of)}):sf=function(){vf.call(n,of)});var Ef,xf,Af,Of,Rf=Sf||function(t){var e={fn:t,next:void 0};uf&&(uf.next=e),af||(af=e,sf()),uf=e},jf=function(t){var e,r;this.promise=new t(function(t,n){if(void 0!==e||void 0!==r)throw TypeError(\"Bad Promise constructor\");e=t,r=n}),this.resolve=Qt(e),this.reject=Qt(r)},Pf={f:function(t){return new jf(t)}},If=function(t,e){if(R(t),g(e)&&e.constructor===t)return e;var r=Pf.f(t);return(0,r.resolve)(e),r.promise},Tf=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},kf=pf.set,Lf=Dt(\"species\"),Uf=\"Promise\",Mf=tt.get,_f=tt.set,Nf=tt.getterFor(Uf),Cf=Kc,Ff=n.TypeError,Bf=n.document,Df=n.process,qf=ot(\"fetch\"),zf=Pf.f,Wf=zf,Kf=\"process\"==l(Df),Gf=!!(Bf&&Bf.createEvent&&n.dispatchEvent),$f=\"unhandledrejection\",Vf=It(Uf,function(){if(C(Cf)===String(Cf)){if(66===ra)return!0;if(!Kf&&\"function\"!=typeof PromiseRejectionEvent)return!0}if(ra>=51&&/native code/.test(Cf))return!1;var t=Cf.resolve(1),e=function(t){t(function(){},function(){})};return(t.constructor={})[Lf]=e,!(t.then(function(){})instanceof e)}),Hf=Vf||!yr(function(t){Cf.all(t).catch(function(){})}),Xf=function(t){var e;return!(!g(t)||\"function\"!=typeof(e=t.then))&&e},Yf=function(t,e,r){if(!e.notified){e.notified=!0;var n=e.reactions;Rf(function(){for(var o=e.value,i=1==e.state,a=0;n.length>a;){var u,s,c,f=n[a++],l=i?f.ok:f.fail,h=f.resolve,p=f.reject,d=f.domain;try{l?(i||(2===e.rejection&&tl(t,e),e.rejection=1),!0===l?u=o:(d&&d.enter(),u=l(o),d&&(d.exit(),c=!0)),u===f.promise?p(Ff(\"Promise-chain cycle\")):(s=Xf(u))?s.call(u,h,p):h(u)):p(o)}catch(t){d&&!c&&d.exit(),p(t)}}e.reactions=[],e.notified=!1,r&&!e.rejection&&Qf(t,e)})}},Jf=function(t,e,r){var o,i;Gf?((o=Bf.createEvent(\"Event\")).promise=e,o.reason=r,o.initEvent(t,!1,!0),n.dispatchEvent(o)):o={promise:e,reason:r},(i=n[\"on\"+t])?i(o):t===$f&&function(t,e){var r=n.console;r&&r.error&&(1===arguments.length?r.error(t):r.error(t,e))}(\"Unhandled promise rejection\",r)},Qf=function(t,e){kf.call(n,function(){var r,n=e.value;if(Zf(e)&&(r=Tf(function(){Kf?Df.emit(\"unhandledRejection\",n,t):Jf($f,t,n)}),e.rejection=Kf||Zf(e)?2:1,r.error))throw r.value})},Zf=function(t){return 1!==t.rejection&&!t.parent},tl=function(t,e){kf.call(n,function(){Kf?Df.emit(\"rejectionHandled\",t):Jf(\"rejectionhandled\",t,e.value)})},el=function(t,e,r,n){return function(o){t(e,r,o,n)}},rl=function(t,e,r,n){e.done||(e.done=!0,n&&(e=n),e.value=r,e.state=2,Yf(t,e,!0))},nl=function t(e,r,n,o){if(!r.done){r.done=!0,o&&(r=o);try{if(e===n)throw Ff(\"Promise can't be resolved itself\");var i=Xf(n);i?Rf(function(){var o={done:!1};try{i.call(n,el(t,e,o,r),el(rl,e,o,r))}catch(t){rl(e,o,t,r)}}):(r.value=n,r.state=1,Yf(e,r,!1))}catch(t){rl(e,{done:!1},t,r)}}};Vf&&(Cf=function(t){_r(this,Cf,Uf),Qt(t),Ef.call(this);var e=Mf(this);try{t(el(nl,this,e),el(rl,this,e))}catch(t){rl(this,e,t)}},(Ef=function(t){_f(this,{type:Uf,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=Fr(Cf.prototype,{then:function(t,e){var r=Nf(this),n=zf(sn(this,Cf));return n.ok=\"function\"!=typeof t||t,n.fail=\"function\"==typeof e&&e,n.domain=Kf?Df.domain:void 0,r.parent=!0,r.reactions.push(n),0!=r.state&&Yf(this,r,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),xf=function(){var t=new Ef,e=Mf(t);this.promise=t,this.resolve=el(nl,t,e),this.reject=el(rl,t,e)},Pf.f=zf=function(t){return t===Cf||t===Af?new xf(t):Wf(t)},\"function\"==typeof Kc&&(Of=Kc.prototype.then,et(Kc.prototype,\"then\",function(t,e){var r=this;return new Cf(function(t,e){Of.call(r,t,e)}).then(t,e)},{unsafe:!0}),\"function\"==typeof qf&&kt({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return If(Cf,qf.apply(n,arguments))}}))),kt({global:!0,wrap:!0,forced:Vf},{Promise:Cf}),_e(Cf,Uf,!1),Dr(Uf),Af=ot(Uf),kt({target:Uf,stat:!0,forced:Vf},{reject:function(t){var e=zf(this);return e.reject.call(void 0,t),e.promise}}),kt({target:Uf,stat:!0,forced:Vf},{resolve:function(t){return If(this,t)}}),kt({target:Uf,stat:!0,forced:Hf},{all:function(t){var e=this,r=zf(e),n=r.resolve,o=r.reject,i=Tf(function(){var r=Qt(e.resolve),i=[],a=0,u=1;Mr(t,function(t){var s=a++,c=!1;i.push(void 0),u++,r.call(e,t).then(function(t){c||(c=!0,i[s]=t,--u||n(i))},o)}),--u||n(i)});return i.error&&o(i.value),r.promise},race:function(t){var e=this,r=zf(e),n=r.reject,o=Tf(function(){var o=Qt(e.resolve);Mr(t,function(t){o.call(e,t).then(r.resolve,n)})});return o.error&&n(o.value),r.promise}}),kt({target:\"Promise\",stat:!0},{allSettled:function(t){var e=this,r=Pf.f(e),n=r.resolve,o=r.reject,i=Tf(function(){var r=Qt(e.resolve),o=[],i=0,a=1;Mr(t,function(t){var u=i++,s=!1;o.push(void 0),a++,r.call(e,t).then(function(t){s||(s=!0,o[u]={status:\"fulfilled\",value:t},--a||n(o))},function(t){s||(s=!0,o[u]={status:\"rejected\",reason:t},--a||n(o))})}),--a||n(o)});return i.error&&o(i.value),r.promise}});var ol=!!Kc&&o(function(){Kc.prototype.finally.call({then:function(){}},function(){})});kt({target:\"Promise\",proto:!0,real:!0,forced:ol},{finally:function(t){var e=sn(this,ot(\"Promise\")),r=\"function\"==typeof t;return this.then(r?function(r){return If(e,t()).then(function(){return r})}:t,r?function(r){return If(e,t()).then(function(){throw r})}:t)}}),\"function\"!=typeof Kc||Kc.prototype.finally||et(Kc.prototype,\"finally\",ot(\"Promise\").prototype.finally);var il=tt.set,al=tt.getterFor(\"AggregateError\"),ul=function(t,e){var r=this;if(!(r instanceof ul))return new ul(t,e);qe&&(r=qe(new Error(e),Ie(r)));var n=[];return Mr(t,n.push,n),i?il(r,{errors:n,type:\"AggregateError\"}):r.errors=n,void 0!==e&&I(r,\"message\",String(e)),r};ul.prototype=Ht(Error.prototype,{constructor:c(5,ul),message:c(5,\"\"),name:c(5,\"AggregateError\")}),i&&P.f(ul.prototype,\"errors\",{get:function(){return al(this).errors},configurable:!0}),kt({global:!0},{AggregateError:ul}),kt({target:\"Promise\",stat:!0},{try:function(t){var e=Pf.f(this),r=Tf(t);return(r.error?e.reject:e.resolve)(r.value),e.promise}});var sl=\"No one promise resolved\";kt({target:\"Promise\",stat:!0},{any:function(t){var e=this,r=Pf.f(e),n=r.resolve,o=r.reject,i=Tf(function(){var r=Qt(e.resolve),i=[],a=0,u=1,s=!1;Mr(t,function(t){var c=a++,f=!1;i.push(void 0),u++,r.call(e,t).then(function(t){f||s||(s=!0,n(t))},function(t){f||s||(f=!0,i[c]=t,--u||o(new(ot(\"AggregateError\"))(i,sl)))})}),--u||o(new(ot(\"AggregateError\"))(i,sl))});return i.error&&o(i.value),r.promise}}),ee(\"Promise\",\"finally\");var cl=\"URLSearchParams\"in self,fl=\"Symbol\"in self&&\"iterator\"in Symbol,ll=\"FileReader\"in self&&\"Blob\"in self&&function(){try{return new Blob,!0}catch(t){return!1}}(),hl=\"FormData\"in self,pl=\"ArrayBuffer\"in self;if(pl)var dl=[\"[object Int8Array]\",\"[object Uint8Array]\",\"[object Uint8ClampedArray]\",\"[object Int16Array]\",\"[object Uint16Array]\",\"[object Int32Array]\",\"[object Uint32Array]\",\"[object Float32Array]\",\"[object Float64Array]\"],vl=ArrayBuffer.isView||function(t){return t&&dl.indexOf(Object.prototype.toString.call(t))>-1};function gl(t){if(\"string\"!=typeof t&&(t=String(t)),/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError(\"Invalid character in header field name\");return t.toLowerCase()}function yl(t){return\"string\"!=typeof t&&(t=String(t)),t}function ml(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return fl&&(e[Symbol.iterator]=function(){return e}),e}function bl(t){this.map={},t instanceof bl?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function wl(t){if(t.bodyUsed)return Promise.reject(new TypeError(\"Already read\"));t.bodyUsed=!0}function Sl(t){return new Promise(function(e,r){t.onload=function(){e(t.result)},t.onerror=function(){r(t.error)}})}function El(t){var e=new FileReader,r=Sl(e);return e.readAsArrayBuffer(t),r}function xl(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function Al(){return this.bodyUsed=!1,this._initBody=function(t){var e;this._bodyInit=t,t?\"string\"==typeof t?this._bodyText=t:ll&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:hl&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:cl&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():pl&&ll&&(e=t)&&DataView.prototype.isPrototypeOf(e)?(this._bodyArrayBuffer=xl(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):pl&&(ArrayBuffer.prototype.isPrototypeOf(t)||vl(t))?this._bodyArrayBuffer=xl(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText=\"\",this.headers.get(\"content-type\")||(\"string\"==typeof t?this.headers.set(\"content-type\",\"text/plain;charset=UTF-8\"):this._bodyBlob&&this._bodyBlob.type?this.headers.set(\"content-type\",this._bodyBlob.type):cl&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set(\"content-type\",\"application/x-www-form-urlencoded;charset=UTF-8\"))},ll&&(this.blob=function(){var t=wl(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error(\"could not read FormData body as blob\");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?wl(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(El)}),this.text=function(){var t=wl(this);if(t)return t;if(this._bodyBlob)return function(t){var e=new FileReader,r=Sl(e);return e.readAsText(t),r}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),r=new Array(e.length),n=0;n<e.length;n++)r[n]=String.fromCharCode(e[n]);return r.join(\"\")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error(\"could not read FormData body as text\");return Promise.resolve(this._bodyText)},hl&&(this.formData=function(){return this.text().then(jl)}),this.json=function(){return this.text().then(JSON.parse)},this}bl.prototype.append=function(t,e){t=gl(t),e=yl(e);var r=this.map[t];this.map[t]=r?r+\", \"+e:e},bl.prototype.delete=function(t){delete this.map[gl(t)]},bl.prototype.get=function(t){return t=gl(t),this.has(t)?this.map[t]:null},bl.prototype.has=function(t){return this.map.hasOwnProperty(gl(t))},bl.prototype.set=function(t,e){this.map[gl(t)]=yl(e)},bl.prototype.forEach=function(t,e){for(var r in this.map)this.map.hasOwnProperty(r)&&t.call(e,this.map[r],r,this)},bl.prototype.keys=function(){var t=[];return this.forEach(function(e,r){t.push(r)}),ml(t)},bl.prototype.values=function(){var t=[];return this.forEach(function(e){t.push(e)}),ml(t)},bl.prototype.entries=function(){var t=[];return this.forEach(function(e,r){t.push([r,e])}),ml(t)},fl&&(bl.prototype[Symbol.iterator]=bl.prototype.entries);var Ol=[\"DELETE\",\"GET\",\"HEAD\",\"OPTIONS\",\"POST\",\"PUT\"];function Rl(t,e){var r,n,o=(e=e||{}).body;if(t instanceof Rl){if(t.bodyUsed)throw new TypeError(\"Already read\");this.url=t.url,this.credentials=t.credentials,e.headers||(this.headers=new bl(t.headers)),this.method=t.method,this.mode=t.mode,this.signal=t.signal,o||null==t._bodyInit||(o=t._bodyInit,t.bodyUsed=!0)}else this.url=String(t);if(this.credentials=e.credentials||this.credentials||\"same-origin\",!e.headers&&this.headers||(this.headers=new bl(e.headers)),this.method=(n=(r=e.method||this.method||\"GET\").toUpperCase(),Ol.indexOf(n)>-1?n:r),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,(\"GET\"===this.method||\"HEAD\"===this.method)&&o)throw new TypeError(\"Body not allowed for GET or HEAD requests\");this._initBody(o)}function jl(t){var e=new FormData;return t.trim().split(\"&\").forEach(function(t){if(t){var r=t.split(\"=\"),n=r.shift().replace(/\\+/g,\" \"),o=r.join(\"=\").replace(/\\+/g,\" \");e.append(decodeURIComponent(n),decodeURIComponent(o))}}),e}function Pl(t,e){e||(e={}),this.type=\"default\",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText=\"statusText\"in e?e.statusText:\"OK\",this.headers=new bl(e.headers),this.url=e.url||\"\",this._initBody(t)}Rl.prototype.clone=function(){return new Rl(this,{body:this._bodyInit})},Al.call(Rl.prototype),Al.call(Pl.prototype),Pl.prototype.clone=function(){return new Pl(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new bl(this.headers),url:this.url})},Pl.error=function(){var t=new Pl(null,{status:0,statusText:\"\"});return t.type=\"error\",t};var Il=[301,302,303,307,308];Pl.redirect=function(t,e){if(-1===Il.indexOf(e))throw new RangeError(\"Invalid status code\");return new Pl(null,{status:e,headers:{location:t}})};var Tl=self.DOMException;try{new Tl}catch(t){(Tl=function(t,e){this.message=t,this.name=e;var r=Error(t);this.stack=r.stack}).prototype=Object.create(Error.prototype),Tl.prototype.constructor=Tl}function kl(t,e){return new Promise(function(r,n){var o=new Rl(t,e);if(o.signal&&o.signal.aborted)return n(new Tl(\"Aborted\",\"AbortError\"));var i=new XMLHttpRequest;function a(){i.abort()}i.onload=function(){var t,e,n={status:i.status,statusText:i.statusText,headers:(t=i.getAllResponseHeaders()||\"\",e=new bl,t.replace(/\\r?\\n[\\t ]+/g,\" \").split(/\\r?\\n/).forEach(function(t){var r=t.split(\":\"),n=r.shift().trim();if(n){var o=r.join(\":\").trim();e.append(n,o)}}),e)};n.url=\"responseURL\"in i?i.responseURL:n.headers.get(\"X-Request-URL\"),r(new Pl(\"response\"in i?i.response:i.responseText,n))},i.onerror=function(){n(new TypeError(\"Network request failed\"))},i.ontimeout=function(){n(new TypeError(\"Network request failed\"))},i.onabort=function(){n(new Tl(\"Aborted\",\"AbortError\"))},i.open(o.method,o.url,!0),\"include\"===o.credentials?i.withCredentials=!0:\"omit\"===o.credentials&&(i.withCredentials=!1),\"responseType\"in i&&ll&&(i.responseType=\"blob\"),o.headers.forEach(function(t,e){i.setRequestHeader(e,t)}),o.signal&&(o.signal.addEventListener(\"abort\",a),i.onreadystatechange=function(){4===i.readyState&&o.signal.removeEventListener(\"abort\",a)}),i.send(void 0===o._bodyInit?null:o._bodyInit)})}kl.polyfill=!0,self.fetch||(self.fetch=kl,self.Headers=bl,self.Request=Rl,self.Response=Pl);var Ll=Object.getOwnPropertySymbols,Ul=Object.prototype.hasOwnProperty,Ml=Object.prototype.propertyIsEnumerable;function _l(t){if(null==t)throw new TypeError(\"Object.assign cannot be called with null or undefined\");return Object(t)}var Nl=function(){try{if(!Object.assign)return!1;var t=new String(\"abc\");if(t[5]=\"de\",\"5\"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e[\"_\"+String.fromCharCode(r)]=r;if(\"0123456789\"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(\"\"))return!1;var n={};return\"abcdefghijklmnopqrst\".split(\"\").forEach(function(t){n[t]=t}),\"abcdefghijklmnopqrst\"===Object.keys(Object.assign({},n)).join(\"\")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,n,o=_l(t),i=1;i<arguments.length;i++){for(var a in r=Object(arguments[i]))Ul.call(r,a)&&(o[a]=r[a]);if(Ll){n=Ll(r);for(var u=0;u<n.length;u++)Ml.call(r,n[u])&&(o[n[u]]=r[n[u]])}}return o};Object.assign=Nl}();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC9wb2x5ZmlsbHMvcG9seWZpbGwtbm9tb2R1bGUuanM/ZDBjNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLHNHQUFzRyxxQkFBTSxDQUFDLHFCQUFNLGtDQUFrQyxjQUFjLE9BQU8sWUFBWSxnQ0FBZ0Msa0JBQWtCLDBCQUEwQixxTEFBcUwsSUFBSSxZQUFZLFNBQVMsVUFBVSxpQkFBaUIsa0NBQWtDLElBQUksZUFBZSxVQUFVLEtBQUssTUFBTSwyREFBMkQsY0FBYyxJQUFJLGdCQUFnQixnQkFBZ0Isd0JBQXdCLEdBQUcsaUJBQWlCLE9BQU8sK0RBQStELEtBQUssd0JBQXdCLDZCQUE2QiwyQkFBMkIsMkNBQTJDLGNBQWMsNENBQTRDLHNCQUFzQixzREFBc0QsU0FBUyxlQUFlLGVBQWUsZUFBZSx1REFBdUQsaUJBQWlCLGtCQUFrQixRQUFRLGlFQUFpRSw2REFBNkQsa0VBQWtFLDJEQUEyRCxLQUFLLGdDQUFnQyxtQkFBbUIsdURBQXVELCtCQUErQixxQkFBcUIsOENBQThDLGVBQWUsVUFBVSxJQUFJLHVDQUF1QyxvQkFBb0IsMEJBQTBCLGNBQWMsVUFBVSx5Q0FBeUMsZUFBZSx3REFBd0QsU0FBUyw0QkFBNEIsc0JBQXNCLDZCQUE2QixnQkFBZ0IsVUFBVSxtRUFBbUUscUNBQXFDLHFCQUFxQix1QkFBdUIsaUJBQWlCLGdCQUFnQixpQkFBaUIsSUFBSSxTQUFTLFNBQVMsT0FBTyxTQUFTLHNDQUFzQyxzQkFBc0IsaUVBQWlFLGlCQUFpQixFQUFFLDhHQUE4Ryx5QkFBeUIsa0NBQWtDLEVBQUUsdUJBQXVCLCtFQUErRSxFQUFFLG9DQUFvQyxrRUFBa0UsMkJBQTJCLHlCQUF5QixNQUFNLE1BQU0sK0NBQStDLGdCQUFnQix1QkFBdUIsZUFBZSx1QkFBdUIsZUFBZSxvQkFBb0IsS0FBSyxpQkFBaUIsd0JBQXdCLGtCQUFrQixlQUFlLHNCQUFzQixlQUFlLGVB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QkFBbUIsdUJBQXVCLEVBQUUseUJBQXlCLDZCQUE2QiwwQkFBMEIsa0VBQWtFLG9CQUFvQixrQkFBa0IsWUFBWSxHQUFHLHlCQUF5QixJQUFJLE9BQU8sU0FBUyxrQkFBa0IsMkJBQTJCLGVBQWUsbUJBQW1CLHVFQUF1RSxpQkFBaUIsaUNBQWlDLGtCQUFrQix1RUFBdUUseUJBQXlCLGFBQWEsVUFBVSxvQkFBb0IsV0FBVywySkFBMkosc0NBQXNDLE1BQU0seUJBQXlCLGVBQWUsTUFBTSwySEFBMkgsc0JBQXNCLDJDQUEyQyx3QkFBd0IsMkNBQTJDLHNCQUFzQixrQ0FBa0MseU1BQXlNLHdCQUF3QixrRkFBa0YsMERBQTBELGdEQUFnRCxFQUFFLDRGQUE0RixnSEFBZ0gsZUFBZSx3RkFBd0YsaUJBQWlCLGtCQUFrQixJQUFJLDJCQUEyQix3QkFBd0IsNkRBQTZELFlBQVksS0FBSyxLQUFLLG9DQUFvQyxnRUFBZ0UsWUFBWSxvQkFBb0IsU0FBUywyREFBMkQsT0FBTyx1REFBdUQsY0FBYyxTQUFTLFVBQVUsK0JBQStCLHdCQUF3QixtQkFBbUIsS0FBSyw4REFBOEQsT0FBTyxRQUFRLFlBQVksV0FBVyx3Q0FBd0MsVUFBVSxpQkFBaUIiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3BvbHlmaWxscy9wb2x5ZmlsbC1ub21vZHVsZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIiFmdW5jdGlvbigpe3ZhciB0PVwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNlbGY/c2VsZjp7fTtmdW5jdGlvbiBlKHQpe3ZhciBlPXtleHBvcnRzOnt9fTtyZXR1cm4gdChlLGUuZXhwb3J0cyksZS5leHBvcnRzfXZhciByPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Lk1hdGg9PU1hdGgmJnR9LG49cihcIm9iamVjdFwiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyl8fHIoXCJvYmplY3RcIj09dHlwZW9mIHdpbmRvdyYmd2luZG93KXx8cihcIm9iamVjdFwiPT10eXBlb2Ygc2VsZiYmc2VsZil8fHIoXCJvYmplY3RcIj09dHlwZW9mIHQmJnQpfHxGdW5jdGlvbihcInJldHVybiB0aGlzXCIpKCksbz1mdW5jdGlvbih0KXt0cnl7cmV0dXJuISF0KCl9Y2F0Y2godCl7cmV0dXJuITB9fSxpPSFvKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwxLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KVsxXX0pLGE9e30ucHJvcGVydHlJc0VudW1lcmFibGUsdT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHM9e2Y6dSYmIWEuY2FsbCh7MToyfSwxKT9mdW5jdGlvbih0KXt2YXIgZT11KHRoaXMsdCk7cmV0dXJuISFlJiZlLmVudW1lcmFibGV9OmF9LGM9ZnVuY3Rpb24odCxlKXtyZXR1cm57ZW51bWVyYWJsZTohKDEmdCksY29uZmlndXJhYmxlOiEoMiZ0KSx3cml0YWJsZTohKDQmdCksdmFsdWU6ZX19LGY9e30udG9TdHJpbmcsbD1mdW5jdGlvbih0KXtyZXR1cm4gZi5jYWxsKHQpLnNsaWNlKDgsLTEpfSxoPVwiXCIuc3BsaXQscD1vKGZ1bmN0aW9uKCl7cmV0dXJuIU9iamVjdChcInpcIikucHJvcGVydHlJc0VudW1lcmFibGUoMCl9KT9mdW5jdGlvbih0KXtyZXR1cm5cIlN0cmluZ1wiPT1sKHQpP2guY2FsbCh0LFwiXCIpOk9iamVjdCh0KX06T2JqZWN0LGQ9ZnVuY3Rpb24odCl7aWYobnVsbD09dCl0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjYWxsIG1ldGhvZCBvbiBcIit0KTtyZXR1cm4gdH0sdj1mdW5jdGlvbih0KXtyZXR1cm4gcChkKHQpKX0sZz1mdW5jdGlvbih0KXtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2YgdD9udWxsIT09dDpcImZ1bmN0aW9uXCI9PXR5cGVvZiB0fSx5PWZ1bmN0aW9uKHQsZSl7aWYoIWcodCkpcmV0dXJuIHQ7dmFyIHIsbjtpZihlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZihyPXQudG9TdHJpbmcpJiYhZyhuPXIuY2FsbCh0KSkpcmV0dXJuIG47aWYoXCJmdW5jdGlvblwiPT10eXBlb2Yocj10LnZhbHVlT2YpJiYhZyhuPXIuY2FsbCh0KSkpcmV0dXJuIG47aWYoIWUmJlwiZnVuY3Rpb25cIj09dHlwZW9mKHI9dC50b1N0cmluZykmJiFnKG49ci5jYWxsKHQpKSlyZXR1cm4gbjt0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIil9LG09e30uaGFzT3duUHJvcGVydHksYj1mdW5jdGlvbih0LGUpe3JldHVybiBtLmNhbGwodCxlKX0sdz1uLmRvY3VtZW50LFM9Zyh3KSYmZyh3LmNyZWF0ZUVsZW1lbnQpLEU9ZnVuY3Rpb24odCl7cmV0dXJuIFM/dy5jcmVhdGVFbGVtZW50KHQpOnt9fSx4PSFpJiYhbyhmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoRShcImRpdlwiKSxcImFcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pLEE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixPPXtmOmk/QTpmdW5jdGlvbih0LGUpe2lmKHQ9dih0KSxlPXkoZSwhMCkseCl0cnl7cmV0dXJuIEEodCxlKX1jYXRjaCh0KXt9aWYoYih0LGUpKXJldHVybiBjKCFzLmYuY2FsbCh0LGUpLHRbZV0pfX0sUj1mdW5jdGlvbih0KXtpZighZyh0KSl0aHJvdyBUeXBlRXJyb3IoU3RyaW5nKHQpK1wiIGlzIG5vdCBhbiBvYmplY3RcIik7cmV0dXJuIHR9LGo9T2JqZWN0LmRlZmluZVByb3BlcnR5LFA9e2Y6aT9qOmZ1bmN0aW9uKHQsZSxyKXtpZihSKHQpLGU9eShlLCEwKSxSKHIpLHgpdHJ5e3JldHVybiBqKHQsZSxyKX1jYXRjaCh0KXt9aWYoXCJnZXRcImluIHJ8fFwic2V0XCJpbiByKXRocm93IFR5cGVFcnJvcihcIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkXCIpO3JldHVyblwidmFsdWVcImluIHImJih0W2VdPXIudmFsdWUpLHR9fSxJPWk/ZnVuY3Rpb24odCxlLHIpe3JldHVybiBQLmYodCxlLGMoMSxyKSl9OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFtlXT1yLHR9LFQ9ZnVuY3Rpb24odCxlKXt0cnl7SShuLHQsZSl9Y2F0Y2gocil7blt0XT1lfXJldHVybiBlfSxrPVwiX19jb3JlLWpzX3NoYXJlZF9fXCIsTD1uW2tdfHxUKGsse30pLFU9RnVuY3Rpb24udG9TdHJpbmc7XCJmdW5jdGlvblwiIT10eXBlb2YgTC5pbnNwZWN0U291cmNlJiYoTC5pbnNwZWN0U291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiBVLmNhbGwodCl9KTt2YXIgTSxfLE4sQz1MLmluc3BlY3RTb3VyY2UsRj1uLldlYWtNYXAsQj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBGJiYvbmF0aXZlIGNvZGUvLnRlc3QoQyhGKSksRD0hMSxxPWUoZnVuY3Rpb24odCl7KHQuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBMW3RdfHwoTFt0XT12b2lkIDAhPT1lP2U6e30pfSkoXCJ2ZXJzaW9uc1wiLFtdKS5wdXNoKHt2ZXJzaW9uOlwiMy42LjVcIixtb2RlOlwiZ2xvYmFsXCIsY29weXJpZ2h0OlwiwqkgMjAyMCBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KVwifSl9KSx6PTAsVz1NYXRoLnJhbmRvbSgpLEs9ZnVuY3Rpb24odCl7cmV0dXJuXCJTeW1ib2woXCIrU3RyaW5nKHZvaWQgMD09PXQ/XCJcIjp0KStcIilfXCIrKCsreitXKS50b1N0cmluZygzNil9LEc9cShcImtleXNcIiksJD1mdW5jdGlvbih0KXtyZXR1cm4gR1t0XXx8KEdbdF09Syh0KSl9LFY9e307aWYoQil7dmFyIEg9bmV3KDAsbi5XZWFrTWFwKSxYPUguZ2V0LFk9SC5oYXMsSj1ILnNldDtNPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEouY2FsbChILHQsZSksZX0sXz1mdW5jdGlvbih0KXtyZXR1cm4gWC5jYWxsKEgsdCl8fHt9fSxOPWZ1bmN0aW9uKHQpe3JldHVybiBZLmNhbGwoSCx0KX19ZWxzZXt2YXIgUT0kKFwic3RhdGVcIik7VltRXT0hMCxNPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEkodCxRLGUpLGV9LF89ZnVuY3Rpb24odCl7cmV0dXJuIGIodCxRKT90W1FdOnt9fSxOPWZ1bmN0aW9uKHQpe3JldHVybiBiKHQsUSl9fXZhciBaLHR0PXtzZXQ6TSxnZXQ6XyxoYXM6TixlbmZvcmNlOmZ1bmN0aW9uKHQpe3JldHVybiBOKHQpP18odCk6TSh0LHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgcjtpZighZyhlKXx8KHI9XyhlKSkudHlwZSE9PXQpdGhyb3cgVHlwZUVycm9yKFwiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCBcIit0K1wiIHJlcXVpcmVkXCIpO3JldHVybiByfX19LGV0PWUoZnVuY3Rpb24odCl7dmFyIGU9dHQuZ2V0LHI9dHQuZW5mb3JjZSxvPVN0cmluZyhTdHJpbmcpLnNwbGl0KFwiU3RyaW5nXCIpOyh0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLGksYSl7dmFyIHU9ISFhJiYhIWEudW5zYWZlLHM9ISFhJiYhIWEuZW51bWVyYWJsZSxjPSEhYSYmISFhLm5vVGFyZ2V0R2V0O1wiZnVuY3Rpb25cIj09dHlwZW9mIGkmJihcInN0cmluZ1wiIT10eXBlb2YgZXx8YihpLFwibmFtZVwiKXx8SShpLFwibmFtZVwiLGUpLHIoaSkuc291cmNlPW8uam9pbihcInN0cmluZ1wiPT10eXBlb2YgZT9lOlwiXCIpKSx0IT09bj8odT8hYyYmdFtlXSYmKHM9ITApOmRlbGV0ZSB0W2VdLHM/dFtlXT1pOkkodCxlLGkpKTpzP3RbZV09aTpUKGUsaSl9KShGdW5jdGlvbi5wcm90b3R5cGUsXCJ0b1N0cmluZ1wiLGZ1bmN0aW9uKCl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcyYmZSh0aGlzKS5zb3VyY2V8fEModGhpcyl9KX0pLHJ0PW4sbnQ9ZnVuY3Rpb24odCl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgdD90OnZvaWQgMH0sb3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP250KHJ0W3RdKXx8bnQoblt0XSk6cnRbdF0mJnJ0W3RdW2VdfHxuW3RdJiZuW3RdW2VdfSxpdD1NYXRoLmNlaWwsYXQ9TWF0aC5mbG9vcix1dD1mdW5jdGlvbih0KXtyZXR1cm4gaXNOYU4odD0rdCk/MDoodD4wP2F0Oml0KSh0KX0sc3Q9TWF0aC5taW4sY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHQ+MD9zdCh1dCh0KSw5MDA3MTk5MjU0NzQwOTkxKTowfSxmdD1NYXRoLm1heCxsdD1NYXRoLm1pbixodD1mdW5jdGlvbih0LGUpe3ZhciByPXV0KHQpO3JldHVybiByPDA/ZnQocitlLDApOmx0KHIsZSl9LHB0PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLHIsbil7dmFyIG8saT12KGUpLGE9Y3QoaS5sZW5ndGgpLHU9aHQobixhKTtpZih0JiZyIT1yKXtmb3IoO2E+dTspaWYoKG89aVt1KytdKSE9bylyZXR1cm4hMH1lbHNlIGZvcig7YT51O3UrKylpZigodHx8dSBpbiBpKSYmaVt1XT09PXIpcmV0dXJuIHR8fHV8fDA7cmV0dXJuIXQmJi0xfX0sZHQ9e2luY2x1ZGVzOnB0KCEwKSxpbmRleE9mOnB0KCExKX0sdnQ9ZHQuaW5kZXhPZixndD1mdW5jdGlvbih0LGUpe3ZhciByLG49dih0KSxvPTAsaT1bXTtmb3IociBpbiBuKSFiKFYscikmJmIobixyKSYmaS5wdXNoKHIpO2Zvcig7ZS5sZW5ndGg+bzspYihuLHI9ZVtvKytdKSYmKH52dChpLHIpfHxpLnB1c2gocikpO3JldHVybiBpfSx5dD1bXCJjb25zdHJ1Y3RvclwiLFwiaGFzT3duUHJvcGVydHlcIixcImlzUHJvdG90eXBlT2ZcIixcInByb3BlcnR5SXNFbnVtZXJhYmxlXCIsXCJ0b0xvY2FsZVN0cmluZ1wiLFwidG9TdHJpbmdcIixcInZhbHVlT2ZcIl0sbXQ9eXQuY29uY2F0KFwibGVuZ3RoXCIsXCJwcm90b3R5cGVcIiksYnQ9e2Y6T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKHQpe3JldHVybiBndCh0LG10KX19LHd0PXtmOk9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9LFN0PW90KFwiUmVmbGVjdFwiLFwib3duS2V5c1wiKXx8ZnVuY3Rpb24odCl7dmFyIGU9YnQuZihSKHQpKSxyPXd0LmY7cmV0dXJuIHI/ZS5jb25jYXQocih0KSk6ZX0sRXQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9U3QoZSksbj1QLmYsbz1PLmYsaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgYT1yW2ldO2IodCxhKXx8bih0LGEsbyhlLGEpKX19LHh0PS8jfFxcLnByb3RvdHlwZVxcLi8sQXQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1SdFtPdCh0KV07cmV0dXJuIHI9PVB0fHxyIT1qdCYmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGU/byhlKTohIWUpfSxPdD1BdC5ub3JtYWxpemU9ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0KS5yZXBsYWNlKHh0LFwiLlwiKS50b0xvd2VyQ2FzZSgpfSxSdD1BdC5kYXRhPXt9LGp0PUF0Lk5BVElWRT1cIk5cIixQdD1BdC5QT0xZRklMTD1cIlBcIixJdD1BdCxUdD1PLmYsa3Q9ZnVuY3Rpb24odCxlKXt2YXIgcixvLGksYSx1LHM9dC50YXJnZXQsYz10Lmdsb2JhbCxmPXQuc3RhdDtpZihyPWM/bjpmP25bc118fFQocyx7fSk6KG5bc118fHt9KS5wcm90b3R5cGUpZm9yKG8gaW4gZSl7aWYoYT1lW29dLGk9dC5ub1RhcmdldEdldD8odT1UdChyLG8pKSYmdS52YWx1ZTpyW29dLCFJdChjP286cysoZj9cIi5cIjpcIiNcIikrbyx0LmZvcmNlZCkmJnZvaWQgMCE9PWkpe2lmKHR5cGVvZiBhPT10eXBlb2YgaSljb250aW51ZTtFdChhLGkpfSh0LnNoYW18fGkmJmkuc2hhbSkmJkkoYSxcInNoYW1cIiwhMCksZXQocixvLGEsdCl9fSxMdD1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0KGQodCkpfSxVdD1NYXRoLm1pbixNdD1bXS5jb3B5V2l0aGlufHxmdW5jdGlvbih0LGUpe3ZhciByPUx0KHRoaXMpLG49Y3Qoci5sZW5ndGgpLG89aHQodCxuKSxpPWh0KGUsbiksYT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCx1PVV0KCh2b2lkIDA9PT1hP246aHQoYSxuKSktaSxuLW8pLHM9MTtmb3IoaTxvJiZvPGkrdSYmKHM9LTEsaSs9dS0xLG8rPXUtMSk7dS0tID4wOylpIGluIHI/cltvXT1yW2ldOmRlbGV0ZSByW29dLG8rPXMsaSs9cztyZXR1cm4gcn0sX3Q9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhbyhmdW5jdGlvbigpe3JldHVybiFTdHJpbmcoU3ltYm9sKCkpfSksTnQ9X3QmJiFTeW1ib2wuc2hhbSYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcixDdD1xKFwid2tzXCIpLEZ0PW4uU3ltYm9sLEJ0PU50P0Z0OkZ0JiZGdC53aXRob3V0U2V0dGVyfHxLLER0PWZ1bmN0aW9uKHQpe3JldHVybiBiKEN0LHQpfHwoQ3RbdF09X3QmJmIoRnQsdCk/RnRbdF06QnQoXCJTeW1ib2wuXCIrdCkpLEN0W3RdfSxxdD1PYmplY3Qua2V5c3x8ZnVuY3Rpb24odCl7cmV0dXJuIGd0KHQseXQpfSx6dD1pP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKHQsZSl7Uih0KTtmb3IodmFyIHIsbj1xdChlKSxvPW4ubGVuZ3RoLGk9MDtvPmk7KVAuZih0LHI9bltpKytdLGVbcl0pO3JldHVybiB0fSxXdD1vdChcImRvY3VtZW50XCIsXCJkb2N1bWVudEVsZW1lbnRcIiksS3Q9JChcIklFX1BST1RPXCIpLEd0PWZ1bmN0aW9uKCl7fSwkdD1mdW5jdGlvbih0KXtyZXR1cm5cIjxzY3JpcHQ+XCIrdCtcIjxcXC9zY3JpcHQ+XCJ9LFZ0PWZ1bmN0aW9uKCl7dHJ5e1o9ZG9jdW1lbnQuZG9tYWluJiZuZXcgQWN0aXZlWE9iamVjdChcImh0bWxmaWxlXCIpfWNhdGNoKHQpe312YXIgdCxlO1Z0PVo/ZnVuY3Rpb24odCl7dC53cml0ZSgkdChcIlwiKSksdC5jbG9zZSgpO3ZhciBlPXQucGFyZW50V2luZG93Lk9iamVjdDtyZXR1cm4gdD1udWxsLGV9KFopOigoZT1FKFwiaWZyYW1lXCIpKS5zdHlsZS5kaXNwbGF5PVwibm9uZVwiLFd0LmFwcGVuZENoaWxkKGUpLGUuc3JjPVN0cmluZyhcImphdmFzY3JpcHQ6XCIpLCh0PWUuY29udGVudFdpbmRvdy5kb2N1bWVudCkub3BlbigpLHQud3JpdGUoJHQoXCJkb2N1bWVudC5GPU9iamVjdFwiKSksdC5jbG9zZSgpLHQuRik7Zm9yKHZhciByPXl0Lmxlbmd0aDtyLS07KWRlbGV0ZSBWdC5wcm90b3R5cGVbeXRbcl1dO3JldHVybiBWdCgpfTtWW0t0XT0hMDt2YXIgSHQ9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24odCxlKXt2YXIgcjtyZXR1cm4gbnVsbCE9PXQ/KEd0LnByb3RvdHlwZT1SKHQpLHI9bmV3IEd0LEd0LnByb3RvdHlwZT1udWxsLHJbS3RdPXQpOnI9VnQoKSx2b2lkIDA9PT1lP3I6enQocixlKX0sWHQ9RHQoXCJ1bnNjb3BhYmxlc1wiKSxZdD1BcnJheS5wcm90b3R5cGU7bnVsbD09WXRbWHRdJiZQLmYoWXQsWHQse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTpIdChudWxsKX0pO3ZhciBKdD1mdW5jdGlvbih0KXtZdFtYdF1bdF09ITB9O2t0KHt0YXJnZXQ6XCJBcnJheVwiLHByb3RvOiEwfSx7Y29weVdpdGhpbjpNdH0pLEp0KFwiY29weVdpdGhpblwiKTt2YXIgUXQ9ZnVuY3Rpb24odCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdCl0aHJvdyBUeXBlRXJyb3IoU3RyaW5nKHQpK1wiIGlzIG5vdCBhIGZ1bmN0aW9uXCIpO3JldHVybiB0fSxadD1mdW5jdGlvbih0LGUscil7aWYoUXQodCksdm9pZCAwPT09ZSlyZXR1cm4gdDtzd2l0Y2gocil7Y2FzZSAwOnJldHVybiBmdW5jdGlvbigpe3JldHVybiB0LmNhbGwoZSl9O2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHQuY2FsbChlLHIpfTtjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKHIsbil7cmV0dXJuIHQuY2FsbChlLHIsbil9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24ocixuLG8pe3JldHVybiB0LmNhbGwoZSxyLG4sbyl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KGUsYXJndW1lbnRzKX19LHRlPUZ1bmN0aW9uLmNhbGwsZWU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBadCh0ZSxuW3RdLnByb3RvdHlwZVtlXSxyKX07ZWUoXCJBcnJheVwiLFwiY29weVdpdGhpblwiKSxrdCh7dGFyZ2V0OlwiQXJyYXlcIixwcm90bzohMH0se2ZpbGw6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPUx0KHRoaXMpLHI9Y3QoZS5sZW5ndGgpLG49YXJndW1lbnRzLmxlbmd0aCxvPWh0KG4+MT9hcmd1bWVudHNbMV06dm9pZCAwLHIpLGk9bj4yP2FyZ3VtZW50c1syXTp2b2lkIDAsYT12b2lkIDA9PT1pP3I6aHQoaSxyKTthPm87KWVbbysrXT10O3JldHVybiBlfX0pLEp0KFwiZmlsbFwiKSxlZShcIkFycmF5XCIsXCJmaWxsXCIpO3ZhciByZT1BcnJheS5pc0FycmF5fHxmdW5jdGlvbih0KXtyZXR1cm5cIkFycmF5XCI9PWwodCl9LG5lPUR0KFwic3BlY2llc1wiKSxvZT1mdW5jdGlvbih0LGUpe3ZhciByO3JldHVybiByZSh0KSYmKFwiZnVuY3Rpb25cIiE9dHlwZW9mKHI9dC5jb25zdHJ1Y3Rvcil8fHIhPT1BcnJheSYmIXJlKHIucHJvdG90eXBlKT9nKHIpJiZudWxsPT09KHI9cltuZV0pJiYocj12b2lkIDApOnI9dm9pZCAwKSxuZXcodm9pZCAwPT09cj9BcnJheTpyKSgwPT09ZT8wOmUpfSxpZT1bXS5wdXNoLGFlPWZ1bmN0aW9uKHQpe3ZhciBlPTE9PXQscj0yPT10LG49Mz09dCxvPTQ9PXQsaT02PT10LGE9NT09dHx8aTtyZXR1cm4gZnVuY3Rpb24odSxzLGMsZil7Zm9yKHZhciBsLGgsZD1MdCh1KSx2PXAoZCksZz1adChzLGMsMykseT1jdCh2Lmxlbmd0aCksbT0wLGI9Znx8b2Usdz1lP2IodSx5KTpyP2IodSwwKTp2b2lkIDA7eT5tO20rKylpZigoYXx8bSBpbiB2KSYmKGg9ZyhsPXZbbV0sbSxkKSx0KSlpZihlKXdbbV09aDtlbHNlIGlmKGgpc3dpdGNoKHQpe2Nhc2UgMzpyZXR1cm4hMDtjYXNlIDU6cmV0dXJuIGw7Y2FzZSA2OnJldHVybiBtO2Nhc2UgMjppZS5jYWxsKHcsbCl9ZWxzZSBpZihvKXJldHVybiExO3JldHVybiBpPy0xOm58fG8/bzp3fX0sdWU9e2ZvckVhY2g6YWUoMCksbWFwOmFlKDEpLGZpbHRlcjphZSgyKSxzb21lOmFlKDMpLGV2ZXJ5OmFlKDQpLGZpbmQ6YWUoNSksZmluZEluZGV4OmFlKDYpfSxzZT1PYmplY3QuZGVmaW5lUHJvcGVydHksY2U9e30sZmU9ZnVuY3Rpb24odCl7dGhyb3cgdH0sbGU9ZnVuY3Rpb24odCxlKXtpZihiKGNlLHQpKXJldHVybiBjZVt0XTtlfHwoZT17fSk7dmFyIHI9W11bdF0sbj0hIWIoZSxcIkFDQ0VTU09SU1wiKSYmZS5BQ0NFU1NPUlMsYT1iKGUsMCk/ZVswXTpmZSx1PWIoZSwxKT9lWzFdOnZvaWQgMDtyZXR1cm4gY2VbdF09ISFyJiYhbyhmdW5jdGlvbigpe2lmKG4mJiFpKXJldHVybiEwO3ZhciB0PXtsZW5ndGg6LTF9O24/c2UodCwxLHtlbnVtZXJhYmxlOiEwLGdldDpmZX0pOnRbMV09MSxyLmNhbGwodCxhLHUpfSl9LGhlPXVlLmZpbmQscGU9XCJmaW5kXCIsZGU9ITAsdmU9bGUocGUpO3BlIGluW10mJkFycmF5KDEpLmZpbmQoZnVuY3Rpb24oKXtkZT0hMX0pLGt0KHt0YXJnZXQ6XCJBcnJheVwiLHByb3RvOiEwLGZvcmNlZDpkZXx8IXZlfSx7ZmluZDpmdW5jdGlvbih0KXtyZXR1cm4gaGUodGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxKdChwZSksZWUoXCJBcnJheVwiLFwiZmluZFwiKTt2YXIgZ2U9dWUuZmluZEluZGV4LHllPVwiZmluZEluZGV4XCIsbWU9ITAsYmU9bGUoeWUpO3llIGluW10mJkFycmF5KDEpLmZpbmRJbmRleChmdW5jdGlvbigpe21lPSExfSksa3Qoe3RhcmdldDpcIkFycmF5XCIscHJvdG86ITAsZm9yY2VkOm1lfHwhYmV9LHtmaW5kSW5kZXg6ZnVuY3Rpb24odCl7cmV0dXJuIGdlKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksSnQoeWUpLGVlKFwiQXJyYXlcIixcImZpbmRJbmRleFwiKTt2YXIgd2U9ZnVuY3Rpb24gdChlLHIsbixvLGksYSx1LHMpe2Zvcih2YXIgYyxmPWksbD0wLGg9ISF1JiZadCh1LHMsMyk7bDxvOyl7aWYobCBpbiBuKXtpZihjPWg/aChuW2xdLGwscik6bltsXSxhPjAmJnJlKGMpKWY9dChlLHIsYyxjdChjLmxlbmd0aCksZixhLTEpLTE7ZWxzZXtpZihmPj05MDA3MTk5MjU0NzQwOTkxKXRocm93IFR5cGVFcnJvcihcIkV4Y2VlZCB0aGUgYWNjZXB0YWJsZSBhcnJheSBsZW5ndGhcIik7ZVtmXT1jfWYrK31sKyt9cmV0dXJuIGZ9O2t0KHt0YXJnZXQ6XCJBcnJheVwiLHByb3RvOiEwfSx7ZmxhdE1hcDpmdW5jdGlvbih0KXt2YXIgZSxyPUx0KHRoaXMpLG49Y3Qoci5sZW5ndGgpO3JldHVybiBRdCh0KSwoZT1vZShyLDApKS5sZW5ndGg9d2UoZSxyLHIsbiwwLDEsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksZX19KSxKdChcImZsYXRNYXBcIiksZWUoXCJBcnJheVwiLFwiZmxhdE1hcFwiKSxrdCh7dGFyZ2V0OlwiQXJyYXlcIixwcm90bzohMH0se2ZsYXQ6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDAsZT1MdCh0aGlzKSxyPWN0KGUubGVuZ3RoKSxuPW9lKGUsMCk7cmV0dXJuIG4ubGVuZ3RoPXdlKG4sZSxlLHIsMCx2b2lkIDA9PT10PzE6dXQodCkpLG59fSksSnQoXCJmbGF0XCIpLGVlKFwiQXJyYXlcIixcImZsYXRcIik7dmFyIFNlLEVlLHhlLEFlPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3ZhciBuLG8saT1TdHJpbmcoZChlKSksYT11dChyKSx1PWkubGVuZ3RoO3JldHVybiBhPDB8fGE+PXU/dD9cIlwiOnZvaWQgMDoobj1pLmNoYXJDb2RlQXQoYSkpPDU1Mjk2fHxuPjU2MzE5fHxhKzE9PT11fHwobz1pLmNoYXJDb2RlQXQoYSsxKSk8NTYzMjB8fG8+NTczNDM/dD9pLmNoYXJBdChhKTpuOnQ/aS5zbGljZShhLGErMik6by01NjMyMCsobi01NTI5Njw8MTApKzY1NTM2fX0sT2U9e2NvZGVBdDpBZSghMSksY2hhckF0OkFlKCEwKX0sUmU9IW8oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1udWxsLE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXcgdCkhPT10LnByb3RvdHlwZX0pLGplPSQoXCJJRV9QUk9UT1wiKSxQZT1PYmplY3QucHJvdG90eXBlLEllPVJlP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbih0KXtyZXR1cm4gdD1MdCh0KSxiKHQsamUpP3RbamVdOlwiZnVuY3Rpb25cIj09dHlwZW9mIHQuY29uc3RydWN0b3ImJnQgaW5zdGFuY2VvZiB0LmNvbnN0cnVjdG9yP3QuY29uc3RydWN0b3IucHJvdG90eXBlOnQgaW5zdGFuY2VvZiBPYmplY3Q/UGU6bnVsbH0sVGU9RHQoXCJpdGVyYXRvclwiKSxrZT0hMTtbXS5rZXlzJiYoXCJuZXh0XCJpbih4ZT1bXS5rZXlzKCkpPyhFZT1JZShJZSh4ZSkpKSE9PU9iamVjdC5wcm90b3R5cGUmJihTZT1FZSk6a2U9ITApLG51bGw9PVNlJiYoU2U9e30pLGIoU2UsVGUpfHxJKFNlLFRlLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KTt2YXIgTGU9e0l0ZXJhdG9yUHJvdG90eXBlOlNlLEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6a2V9LFVlPVAuZixNZT1EdChcInRvU3RyaW5nVGFnXCIpLF9lPWZ1bmN0aW9uKHQsZSxyKXt0JiYhYih0PXI/dDp0LnByb3RvdHlwZSxNZSkmJlVlKHQsTWUse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTplfSl9LE5lPXt9LENlPUxlLkl0ZXJhdG9yUHJvdG90eXBlLEZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LEJlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lK1wiIEl0ZXJhdG9yXCI7cmV0dXJuIHQucHJvdG90eXBlPUh0KENlLHtuZXh0OmMoMSxyKX0pLF9lKHQsbiwhMSksTmVbbl09RmUsdH0sRGU9ZnVuY3Rpb24odCl7aWYoIWcodCkmJm51bGwhPT10KXRocm93IFR5cGVFcnJvcihcIkNhbid0IHNldCBcIitTdHJpbmcodCkrXCIgYXMgYSBwcm90b3R5cGVcIik7cmV0dXJuIHR9LHFlPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8KFwiX19wcm90b19fXCJpbnt9P2Z1bmN0aW9uKCl7dmFyIHQsZT0hMSxyPXt9O3RyeXsodD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdC5wcm90b3R5cGUsXCJfX3Byb3RvX19cIikuc2V0KS5jYWxsKHIsW10pLGU9ciBpbnN0YW5jZW9mIEFycmF5fWNhdGNoKHQpe31yZXR1cm4gZnVuY3Rpb24ocixuKXtyZXR1cm4gUihyKSxEZShuKSxlP3QuY2FsbChyLG4pOnIuX19wcm90b19fPW4scn19KCk6dm9pZCAwKSx6ZT1MZS5JdGVyYXRvclByb3RvdHlwZSxXZT1MZS5CVUdHWV9TQUZBUklfSVRFUkFUT1JTLEtlPUR0KFwiaXRlcmF0b3JcIiksR2U9XCJrZXlzXCIsJGU9XCJ2YWx1ZXNcIixWZT1cImVudHJpZXNcIixIZT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxYZT1mdW5jdGlvbih0LGUscixuLG8saSxhKXtCZShyLGUsbik7dmFyIHUscyxjLGY9ZnVuY3Rpb24odCl7aWYodD09PW8mJnYpcmV0dXJuIHY7aWYoIVdlJiZ0IGluIHApcmV0dXJuIHBbdF07c3dpdGNoKHQpe2Nhc2UgR2U6Y2FzZSAkZTpjYXNlIFZlOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgcih0aGlzLHQpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHIodGhpcyl9fSxsPWUrXCIgSXRlcmF0b3JcIixoPSExLHA9dC5wcm90b3R5cGUsZD1wW0tlXXx8cFtcIkBAaXRlcmF0b3JcIl18fG8mJnBbb10sdj0hV2UmJmR8fGYobyksZz1cIkFycmF5XCI9PWUmJnAuZW50cmllc3x8ZDtpZihnJiYodT1JZShnLmNhbGwobmV3IHQpKSx6ZSE9PU9iamVjdC5wcm90b3R5cGUmJnUubmV4dCYmKEllKHUpIT09emUmJihxZT9xZSh1LHplKTpcImZ1bmN0aW9uXCIhPXR5cGVvZiB1W0tlXSYmSSh1LEtlLEhlKSksX2UodSxsLCEwKSkpLG89PSRlJiZkJiZkLm5hbWUhPT0kZSYmKGg9ITAsdj1mdW5jdGlvbigpe3JldHVybiBkLmNhbGwodGhpcyl9KSxwW0tlXSE9PXYmJkkocCxLZSx2KSxOZVtlXT12LG8paWYocz17dmFsdWVzOmYoJGUpLGtleXM6aT92OmYoR2UpLGVudHJpZXM6ZihWZSl9LGEpZm9yKGMgaW4gcykoV2V8fGh8fCEoYyBpbiBwKSkmJmV0KHAsYyxzW2NdKTtlbHNlIGt0KHt0YXJnZXQ6ZSxwcm90bzohMCxmb3JjZWQ6V2V8fGh9LHMpO3JldHVybiBzfSxZZT1PZS5jaGFyQXQsSmU9XCJTdHJpbmcgSXRlcmF0b3JcIixRZT10dC5zZXQsWmU9dHQuZ2V0dGVyRm9yKEplKTtYZShTdHJpbmcsXCJTdHJpbmdcIixmdW5jdGlvbih0KXtRZSh0aGlzLHt0eXBlOkplLHN0cmluZzpTdHJpbmcodCksaW5kZXg6MH0pfSxmdW5jdGlvbigpe3ZhciB0LGU9WmUodGhpcykscj1lLnN0cmluZyxuPWUuaW5kZXg7cmV0dXJuIG4+PXIubGVuZ3RoP3t2YWx1ZTp2b2lkIDAsZG9uZTohMH06KHQ9WWUocixuKSxlLmluZGV4Kz10Lmxlbmd0aCx7dmFsdWU6dCxkb25lOiExfSl9KTt2YXIgdHI9ZnVuY3Rpb24odCxlLHIsbil7dHJ5e3JldHVybiBuP2UoUihyKVswXSxyWzFdKTplKHIpfWNhdGNoKGUpe3ZhciBvPXQucmV0dXJuO3Rocm93IHZvaWQgMCE9PW8mJlIoby5jYWxsKHQpKSxlfX0sZXI9RHQoXCJpdGVyYXRvclwiKSxycj1BcnJheS5wcm90b3R5cGUsbnI9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMCE9PXQmJihOZS5BcnJheT09PXR8fHJyW2VyXT09PXQpfSxvcj1mdW5jdGlvbih0LGUscil7dmFyIG49eShlKTtuIGluIHQ/UC5mKHQsbixjKDAscikpOnRbbl09cn0saXI9e307aXJbRHQoXCJ0b1N0cmluZ1RhZ1wiKV09XCJ6XCI7dmFyIGFyPVwiW29iamVjdCB6XVwiPT09U3RyaW5nKGlyKSx1cj1EdChcInRvU3RyaW5nVGFnXCIpLHNyPVwiQXJndW1lbnRzXCI9PWwoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKSxjcj1hcj9sOmZ1bmN0aW9uKHQpe3ZhciBlLHIsbjtyZXR1cm4gdm9pZCAwPT09dD9cIlVuZGVmaW5lZFwiOm51bGw9PT10P1wiTnVsbFwiOlwic3RyaW5nXCI9PXR5cGVvZihyPWZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiB0W2VdfWNhdGNoKHQpe319KGU9T2JqZWN0KHQpLHVyKSk/cjpzcj9sKGUpOlwiT2JqZWN0XCI9PShuPWwoZSkpJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLmNhbGxlZT9cIkFyZ3VtZW50c1wiOm59LGZyPUR0KFwiaXRlcmF0b3JcIiksbHI9ZnVuY3Rpb24odCl7aWYobnVsbCE9dClyZXR1cm4gdFtmcl18fHRbXCJAQGl0ZXJhdG9yXCJdfHxOZVtjcih0KV19LGhyPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvLGksYSx1PUx0KHQpLHM9XCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcz90aGlzOkFycmF5LGM9YXJndW1lbnRzLmxlbmd0aCxmPWM+MT9hcmd1bWVudHNbMV06dm9pZCAwLGw9dm9pZCAwIT09ZixoPWxyKHUpLHA9MDtpZihsJiYoZj1adChmLGM+Mj9hcmd1bWVudHNbMl06dm9pZCAwLDIpKSxudWxsPT1ofHxzPT1BcnJheSYmbnIoaCkpZm9yKHI9bmV3IHMoZT1jdCh1Lmxlbmd0aCkpO2U+cDtwKyspYT1sP2YodVtwXSxwKTp1W3BdLG9yKHIscCxhKTtlbHNlIGZvcihpPShvPWguY2FsbCh1KSkubmV4dCxyPW5ldyBzOyEobj1pLmNhbGwobykpLmRvbmU7cCsrKWE9bD90cihvLGYsW24udmFsdWUscF0sITApOm4udmFsdWUsb3IocixwLGEpO3JldHVybiByLmxlbmd0aD1wLHJ9LHByPUR0KFwiaXRlcmF0b3JcIiksZHI9ITE7dHJ5e3ZhciB2cj0wLGdyPXtuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ISF2cisrfX0scmV0dXJuOmZ1bmN0aW9uKCl7ZHI9ITB9fTtncltwcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sQXJyYXkuZnJvbShncixmdW5jdGlvbigpe3Rocm93IDJ9KX1jYXRjaCh0KXt9dmFyIHlyPWZ1bmN0aW9uKHQsZSl7aWYoIWUmJiFkcilyZXR1cm4hMTt2YXIgcj0hMTt0cnl7dmFyIG49e307bltwcl09ZnVuY3Rpb24oKXtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOnI9ITB9fX19LHQobil9Y2F0Y2godCl7fXJldHVybiByfSxtcj0heXIoZnVuY3Rpb24odCl7QXJyYXkuZnJvbSh0KX0pO2t0KHt0YXJnZXQ6XCJBcnJheVwiLHN0YXQ6ITAsZm9yY2VkOm1yfSx7ZnJvbTpocn0pO3ZhciBicj1kdC5pbmNsdWRlcyx3cj1sZShcImluZGV4T2ZcIix7QUNDRVNTT1JTOiEwLDE6MH0pO2t0KHt0YXJnZXQ6XCJBcnJheVwiLHByb3RvOiEwLGZvcmNlZDohd3J9LHtpbmNsdWRlczpmdW5jdGlvbih0KXtyZXR1cm4gYnIodGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxKdChcImluY2x1ZGVzXCIpLGVlKFwiQXJyYXlcIixcImluY2x1ZGVzXCIpO3ZhciBTcj1cIkFycmF5IEl0ZXJhdG9yXCIsRXI9dHQuc2V0LHhyPXR0LmdldHRlckZvcihTciksQXI9WGUoQXJyYXksXCJBcnJheVwiLGZ1bmN0aW9uKHQsZSl7RXIodGhpcyx7dHlwZTpTcix0YXJnZXQ6dih0KSxpbmRleDowLGtpbmQ6ZX0pfSxmdW5jdGlvbigpe3ZhciB0PXhyKHRoaXMpLGU9dC50YXJnZXQscj10LmtpbmQsbj10LmluZGV4Kys7cmV0dXJuIWV8fG4+PWUubGVuZ3RoPyh0LnRhcmdldD12b2lkIDAse3ZhbHVlOnZvaWQgMCxkb25lOiEwfSk6XCJrZXlzXCI9PXI/e3ZhbHVlOm4sZG9uZTohMX06XCJ2YWx1ZXNcIj09cj97dmFsdWU6ZVtuXSxkb25lOiExfTp7dmFsdWU6W24sZVtuXV0sZG9uZTohMX19LFwidmFsdWVzXCIpO05lLkFyZ3VtZW50cz1OZS5BcnJheSxKdChcImtleXNcIiksSnQoXCJ2YWx1ZXNcIiksSnQoXCJlbnRyaWVzXCIpLGVlKFwiQXJyYXlcIixcInZhbHVlc1wiKTt2YXIgT3I9byhmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIShBcnJheS5vZi5jYWxsKHQpaW5zdGFuY2VvZiB0KX0pO2t0KHt0YXJnZXQ6XCJBcnJheVwiLHN0YXQ6ITAsZm9yY2VkOk9yfSx7b2Y6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MCxlPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcoXCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcz90aGlzOkFycmF5KShlKTtlPnQ7KW9yKHIsdCxhcmd1bWVudHNbdCsrXSk7cmV0dXJuIHIubGVuZ3RoPWUscn19KTt2YXIgUnI9RHQoXCJoYXNJbnN0YW5jZVwiKSxqcj1GdW5jdGlvbi5wcm90b3R5cGU7UnIgaW4ganJ8fFAuZihqcixScix7dmFsdWU6ZnVuY3Rpb24odCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdGhpc3x8IWcodCkpcmV0dXJuITE7aWYoIWcodGhpcy5wcm90b3R5cGUpKXJldHVybiB0IGluc3RhbmNlb2YgdGhpcztmb3IoO3Q9SWUodCk7KWlmKHRoaXMucHJvdG90eXBlPT09dClyZXR1cm4hMDtyZXR1cm4hMX19KSxEdChcImhhc0luc3RhbmNlXCIpO3ZhciBQcj1GdW5jdGlvbi5wcm90b3R5cGUsSXI9UHIudG9TdHJpbmcsVHI9L15cXHMqZnVuY3Rpb24gKFteIChdKikvLGtyPVwibmFtZVwiO2kmJiEoa3IgaW4gUHIpJiYoMCxQLmYpKFByLGtyLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dHJ5e3JldHVybiBJci5jYWxsKHRoaXMpLm1hdGNoKFRyKVsxXX1jYXRjaCh0KXtyZXR1cm5cIlwifX19KTt2YXIgTHI9IW8oZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmlzRXh0ZW5zaWJsZShPYmplY3QucHJldmVudEV4dGVuc2lvbnMoe30pKX0pLFVyPWUoZnVuY3Rpb24odCl7dmFyIGU9UC5mLHI9SyhcIm1ldGFcIiksbj0wLG89T2JqZWN0LmlzRXh0ZW5zaWJsZXx8ZnVuY3Rpb24oKXtyZXR1cm4hMH0saT1mdW5jdGlvbih0KXtlKHQscix7dmFsdWU6e29iamVjdElEOlwiT1wiKyArK24sd2Vha0RhdGE6e319fSl9LGE9dC5leHBvcnRzPXtSRVFVSVJFRDohMSxmYXN0S2V5OmZ1bmN0aW9uKHQsZSl7aWYoIWcodCkpcmV0dXJuXCJzeW1ib2xcIj09dHlwZW9mIHQ/dDooXCJzdHJpbmdcIj09dHlwZW9mIHQ/XCJTXCI6XCJQXCIpK3Q7aWYoIWIodCxyKSl7aWYoIW8odCkpcmV0dXJuXCJGXCI7aWYoIWUpcmV0dXJuXCJFXCI7aSh0KX1yZXR1cm4gdFtyXS5vYmplY3RJRH0sZ2V0V2Vha0RhdGE6ZnVuY3Rpb24odCxlKXtpZighYih0LHIpKXtpZighbyh0KSlyZXR1cm4hMDtpZighZSlyZXR1cm4hMTtpKHQpfXJldHVybiB0W3JdLndlYWtEYXRhfSxvbkZyZWV6ZTpmdW5jdGlvbih0KXtyZXR1cm4gTHImJmEuUkVRVUlSRUQmJm8odCkmJiFiKHQscikmJmkodCksdH19O1Zbcl09ITB9KSxNcj1lKGZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQsZSl7dGhpcy5zdG9wcGVkPXQsdGhpcy5yZXN1bHQ9ZX07KHQuZXhwb3J0cz1mdW5jdGlvbih0LHIsbixvLGkpe3ZhciBhLHUscyxjLGYsbCxoLHA9WnQocixuLG8/MjoxKTtpZihpKWE9dDtlbHNle2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mKHU9bHIodCkpKXRocm93IFR5cGVFcnJvcihcIlRhcmdldCBpcyBub3QgaXRlcmFibGVcIik7aWYobnIodSkpe2ZvcihzPTAsYz1jdCh0Lmxlbmd0aCk7Yz5zO3MrKylpZigoZj1vP3AoUihoPXRbc10pWzBdLGhbMV0pOnAodFtzXSkpJiZmIGluc3RhbmNlb2YgZSlyZXR1cm4gZjtyZXR1cm4gbmV3IGUoITEpfWE9dS5jYWxsKHQpfWZvcihsPWEubmV4dDshKGg9bC5jYWxsKGEpKS5kb25lOylpZihcIm9iamVjdFwiPT10eXBlb2YoZj10cihhLHAsaC52YWx1ZSxvKSkmJmYmJmYgaW5zdGFuY2VvZiBlKXJldHVybiBmO3JldHVybiBuZXcgZSghMSl9KS5zdG9wPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZSghMCx0KX19KSxfcj1mdW5jdGlvbih0LGUscil7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgVHlwZUVycm9yKFwiSW5jb3JyZWN0IFwiKyhyP3IrXCIgXCI6XCJcIikrXCJpbnZvY2F0aW9uXCIpO3JldHVybiB0fSxOcj1mdW5jdGlvbih0LGUscil7dmFyIG4sbztyZXR1cm4gcWUmJlwiZnVuY3Rpb25cIj09dHlwZW9mKG49ZS5jb25zdHJ1Y3RvcikmJm4hPT1yJiZnKG89bi5wcm90b3R5cGUpJiZvIT09ci5wcm90b3R5cGUmJnFlKHQsbyksdH0sQ3I9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPS0xIT09dC5pbmRleE9mKFwiTWFwXCIpLGE9LTEhPT10LmluZGV4T2YoXCJXZWFrXCIpLHU9aT9cInNldFwiOlwiYWRkXCIscz1uW3RdLGM9cyYmcy5wcm90b3R5cGUsZj1zLGw9e30saD1mdW5jdGlvbih0KXt2YXIgZT1jW3RdO2V0KGMsdCxcImFkZFwiPT10P2Z1bmN0aW9uKHQpe3JldHVybiBlLmNhbGwodGhpcywwPT09dD8wOnQpLHRoaXN9OlwiZGVsZXRlXCI9PXQ/ZnVuY3Rpb24odCl7cmV0dXJuIShhJiYhZyh0KSkmJmUuY2FsbCh0aGlzLDA9PT10PzA6dCl9OlwiZ2V0XCI9PXQ/ZnVuY3Rpb24odCl7cmV0dXJuIGEmJiFnKHQpP3ZvaWQgMDplLmNhbGwodGhpcywwPT09dD8wOnQpfTpcImhhc1wiPT10P2Z1bmN0aW9uKHQpe3JldHVybiEoYSYmIWcodCkpJiZlLmNhbGwodGhpcywwPT09dD8wOnQpfTpmdW5jdGlvbih0LHIpe3JldHVybiBlLmNhbGwodGhpcywwPT09dD8wOnQsciksdGhpc30pfTtpZihJdCh0LFwiZnVuY3Rpb25cIiE9dHlwZW9mIHN8fCEoYXx8Yy5mb3JFYWNoJiYhbyhmdW5jdGlvbigpeyhuZXcgcykuZW50cmllcygpLm5leHQoKX0pKSkpZj1yLmdldENvbnN0cnVjdG9yKGUsdCxpLHUpLFVyLlJFUVVJUkVEPSEwO2Vsc2UgaWYoSXQodCwhMCkpe3ZhciBwPW5ldyBmLGQ9cFt1XShhP3t9Oi0wLDEpIT1wLHY9byhmdW5jdGlvbigpe3AuaGFzKDEpfSkseT15cihmdW5jdGlvbih0KXtuZXcgcyh0KX0pLG09IWEmJm8oZnVuY3Rpb24oKXtmb3IodmFyIHQ9bmV3IHMsZT01O2UtLTspdFt1XShlLGUpO3JldHVybiF0LmhhcygtMCl9KTt5fHwoKGY9ZShmdW5jdGlvbihlLHIpe19yKGUsZix0KTt2YXIgbj1OcihuZXcgcyxlLGYpO3JldHVybiBudWxsIT1yJiZNcihyLG5bdV0sbixpKSxufSkpLnByb3RvdHlwZT1jLGMuY29uc3RydWN0b3I9ZiksKHZ8fG0pJiYoaChcImRlbGV0ZVwiKSxoKFwiaGFzXCIpLGkmJmgoXCJnZXRcIikpLChtfHxkKSYmaCh1KSxhJiZjLmNsZWFyJiZkZWxldGUgYy5jbGVhcn1yZXR1cm4gbFt0XT1mLGt0KHtnbG9iYWw6ITAsZm9yY2VkOmYhPXN9LGwpLF9lKGYsdCksYXx8ci5zZXRTdHJvbmcoZix0LGkpLGZ9LEZyPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG4gaW4gZSlldCh0LG4sZVtuXSxyKTtyZXR1cm4gdH0sQnI9RHQoXCJzcGVjaWVzXCIpLERyPWZ1bmN0aW9uKHQpe3ZhciBlPW90KHQpO2kmJmUmJiFlW0JyXSYmKDAsUC5mKShlLEJyLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSl9LHFyPVAuZix6cj1Vci5mYXN0S2V5LFdyPXR0LnNldCxLcj10dC5nZXR0ZXJGb3IsR3I9e2dldENvbnN0cnVjdG9yOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBvPXQoZnVuY3Rpb24odCxhKXtfcih0LG8sZSksV3IodCx7dHlwZTplLGluZGV4Okh0KG51bGwpLGZpcnN0OnZvaWQgMCxsYXN0OnZvaWQgMCxzaXplOjB9KSxpfHwodC5zaXplPTApLG51bGwhPWEmJk1yKGEsdFtuXSx0LHIpfSksYT1LcihlKSx1PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixvLHU9YSh0KSxjPXModCxlKTtyZXR1cm4gYz9jLnZhbHVlPXI6KHUubGFzdD1jPXtpbmRleDpvPXpyKGUsITApLGtleTplLHZhbHVlOnIscHJldmlvdXM6bj11Lmxhc3QsbmV4dDp2b2lkIDAscmVtb3ZlZDohMX0sdS5maXJzdHx8KHUuZmlyc3Q9YyksbiYmKG4ubmV4dD1jKSxpP3Uuc2l6ZSsrOnQuc2l6ZSsrLFwiRlwiIT09byYmKHUuaW5kZXhbb109YykpLHR9LHM9ZnVuY3Rpb24odCxlKXt2YXIgcixuPWEodCksbz16cihlKTtpZihcIkZcIiE9PW8pcmV0dXJuIG4uaW5kZXhbb107Zm9yKHI9bi5maXJzdDtyO3I9ci5uZXh0KWlmKHIua2V5PT1lKXJldHVybiByfTtyZXR1cm4gRnIoby5wcm90b3R5cGUse2NsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PWEodGhpcyksZT10LmluZGV4LHI9dC5maXJzdDtyOylyLnJlbW92ZWQ9ITAsci5wcmV2aW91cyYmKHIucHJldmlvdXM9ci5wcmV2aW91cy5uZXh0PXZvaWQgMCksZGVsZXRlIGVbci5pbmRleF0scj1yLm5leHQ7dC5maXJzdD10Lmxhc3Q9dm9pZCAwLGk/dC5zaXplPTA6dGhpcy5zaXplPTB9LGRlbGV0ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLHI9YShlKSxuPXMoZSx0KTtpZihuKXt2YXIgbz1uLm5leHQsdT1uLnByZXZpb3VzO2RlbGV0ZSByLmluZGV4W24uaW5kZXhdLG4ucmVtb3ZlZD0hMCx1JiYodS5uZXh0PW8pLG8mJihvLnByZXZpb3VzPXUpLHIuZmlyc3Q9PW4mJihyLmZpcnN0PW8pLHIubGFzdD09biYmKHIubGFzdD11KSxpP3Iuc2l6ZS0tOmUuc2l6ZS0tfXJldHVybiEhbn0sZm9yRWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIGUscj1hKHRoaXMpLG49WnQodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKTtlPWU/ZS5uZXh0OnIuZmlyc3Q7KWZvcihuKGUudmFsdWUsZS5rZXksdGhpcyk7ZSYmZS5yZW1vdmVkOyllPWUucHJldmlvdXN9LGhhczpmdW5jdGlvbih0KXtyZXR1cm4hIXModGhpcyx0KX19KSxGcihvLnByb3RvdHlwZSxyP3tnZXQ6ZnVuY3Rpb24odCl7dmFyIGU9cyh0aGlzLHQpO3JldHVybiBlJiZlLnZhbHVlfSxzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdSh0aGlzLDA9PT10PzA6dCxlKX19OnthZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHUodGhpcyx0PTA9PT10PzA6dCx0KX19KSxpJiZxcihvLnByb3RvdHlwZSxcInNpemVcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEodGhpcykuc2l6ZX19KSxvfSxzZXRTdHJvbmc6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWUrXCIgSXRlcmF0b3JcIixvPUtyKGUpLGk9S3Iobik7WGUodCxlLGZ1bmN0aW9uKHQsZSl7V3IodGhpcyx7dHlwZTpuLHRhcmdldDp0LHN0YXRlOm8odCksa2luZDplLGxhc3Q6dm9pZCAwfSl9LGZ1bmN0aW9uKCl7Zm9yKHZhciB0PWkodGhpcyksZT10LmtpbmQscj10Lmxhc3Q7ciYmci5yZW1vdmVkOylyPXIucHJldmlvdXM7cmV0dXJuIHQudGFyZ2V0JiYodC5sYXN0PXI9cj9yLm5leHQ6dC5zdGF0ZS5maXJzdCk/XCJrZXlzXCI9PWU/e3ZhbHVlOnIua2V5LGRvbmU6ITF9OlwidmFsdWVzXCI9PWU/e3ZhbHVlOnIudmFsdWUsZG9uZTohMX06e3ZhbHVlOltyLmtleSxyLnZhbHVlXSxkb25lOiExfToodC50YXJnZXQ9dm9pZCAwLHt2YWx1ZTp2b2lkIDAsZG9uZTohMH0pfSxyP1wiZW50cmllc1wiOlwidmFsdWVzXCIsIXIsITApLERyKGUpfX0sJHI9Q3IoXCJNYXBcIixmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdCh0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSxHcik7YXJ8fGV0KE9iamVjdC5wcm90b3R5cGUsXCJ0b1N0cmluZ1wiLGFyP3t9LnRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuXCJbb2JqZWN0IFwiK2NyKHRoaXMpK1wiXVwifSx7dW5zYWZlOiEwfSk7dmFyIFZyPXtDU1NSdWxlTGlzdDowLENTU1N0eWxlRGVjbGFyYXRpb246MCxDU1NWYWx1ZUxpc3Q6MCxDbGllbnRSZWN0TGlzdDowLERPTVJlY3RMaXN0OjAsRE9NU3RyaW5nTGlzdDowLERPTVRva2VuTGlzdDoxLERhdGFUcmFuc2Zlckl0ZW1MaXN0OjAsRmlsZUxpc3Q6MCxIVE1MQWxsQ29sbGVjdGlvbjowLEhUTUxDb2xsZWN0aW9uOjAsSFRNTEZvcm1FbGVtZW50OjAsSFRNTFNlbGVjdEVsZW1lbnQ6MCxNZWRpYUxpc3Q6MCxNaW1lVHlwZUFycmF5OjAsTmFtZWROb2RlTWFwOjAsTm9kZUxpc3Q6MSxQYWludFJlcXVlc3RMaXN0OjAsUGx1Z2luOjAsUGx1Z2luQXJyYXk6MCxTVkdMZW5ndGhMaXN0OjAsU1ZHTnVtYmVyTGlzdDowLFNWR1BhdGhTZWdMaXN0OjAsU1ZHUG9pbnRMaXN0OjAsU1ZHU3RyaW5nTGlzdDowLFNWR1RyYW5zZm9ybUxpc3Q6MCxTb3VyY2VCdWZmZXJMaXN0OjAsU3R5bGVTaGVldExpc3Q6MCxUZXh0VHJhY2tDdWVMaXN0OjAsVGV4dFRyYWNrTGlzdDowLFRvdWNoTGlzdDowfSxIcj1EdChcIml0ZXJhdG9yXCIpLFhyPUR0KFwidG9TdHJpbmdUYWdcIiksWXI9QXIudmFsdWVzO2Zvcih2YXIgSnIgaW4gVnIpe3ZhciBRcj1uW0pyXSxacj1RciYmUXIucHJvdG90eXBlO2lmKFpyKXtpZihacltIcl0hPT1Zcil0cnl7SShacixIcixZcil9Y2F0Y2godCl7WnJbSHJdPVlyfWlmKFpyW1hyXXx8SShacixYcixKciksVnJbSnJdKWZvcih2YXIgdG4gaW4gQXIpaWYoWnJbdG5dIT09QXJbdG5dKXRyeXtJKFpyLHRuLEFyW3RuXSl9Y2F0Y2godCl7WnJbdG5dPUFyW3RuXX19fXZhciBlbj1mdW5jdGlvbih0KXt2YXIgZSxyLG4sbyxpPWFyZ3VtZW50cy5sZW5ndGgsYT1pPjE/YXJndW1lbnRzWzFdOnZvaWQgMDtyZXR1cm4gUXQodGhpcyksKGU9dm9pZCAwIT09YSkmJlF0KGEpLG51bGw9PXQ/bmV3IHRoaXM6KHI9W10sZT8obj0wLG89WnQoYSxpPjI/YXJndW1lbnRzWzJdOnZvaWQgMCwyKSxNcih0LGZ1bmN0aW9uKHQpe3IucHVzaChvKHQsbisrKSl9KSk6TXIodCxyLnB1c2gsciksbmV3IHRoaXMocikpfTtrdCh7dGFyZ2V0OlwiTWFwXCIsc3RhdDohMH0se2Zyb206ZW59KTt2YXIgcm49ZnVuY3Rpb24oKXtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxlPW5ldyBBcnJheSh0KTt0LS07KWVbdF09YXJndW1lbnRzW3RdO3JldHVybiBuZXcgdGhpcyhlKX07a3Qoe3RhcmdldDpcIk1hcFwiLHN0YXQ6ITB9LHtvZjpybn0pO3ZhciBubj1mdW5jdGlvbigpe2Zvcih2YXIgdCxlPVIodGhpcykscj1RdChlLmRlbGV0ZSksbj0hMCxvPTAsaT1hcmd1bWVudHMubGVuZ3RoO288aTtvKyspdD1yLmNhbGwoZSxhcmd1bWVudHNbb10pLG49biYmdDtyZXR1cm4hIW59O2t0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7ZGVsZXRlQWxsOmZ1bmN0aW9uKCl7cmV0dXJuIG5uLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KTt2YXIgb249ZnVuY3Rpb24odCl7dmFyIGU9bHIodCk7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSl0aHJvdyBUeXBlRXJyb3IoU3RyaW5nKHQpK1wiIGlzIG5vdCBpdGVyYWJsZVwiKTtyZXR1cm4gUihlLmNhbGwodCkpfSxhbj1mdW5jdGlvbih0KXtyZXR1cm4gTWFwLnByb3RvdHlwZS5lbnRyaWVzLmNhbGwodCl9O2t0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7ZXZlcnk6ZnVuY3Rpb24odCl7dmFyIGU9Uih0aGlzKSxyPWFuKGUpLG49WnQodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKTtyZXR1cm4hTXIocixmdW5jdGlvbih0LHIpe2lmKCFuKHIsdCxlKSlyZXR1cm4gTXIuc3RvcCgpfSx2b2lkIDAsITAsITApLnN0b3BwZWR9fSk7dmFyIHVuPUR0KFwic3BlY2llc1wiKSxzbj1mdW5jdGlvbih0LGUpe3ZhciByLG49Uih0KS5jb25zdHJ1Y3RvcjtyZXR1cm4gdm9pZCAwPT09bnx8bnVsbD09KHI9UihuKVt1bl0pP2U6UXQocil9O2t0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7ZmlsdGVyOmZ1bmN0aW9uKHQpe3ZhciBlPVIodGhpcykscj1hbihlKSxuPVp0KHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyksbz1uZXcoc24oZSxvdChcIk1hcFwiKSkpLGk9UXQoby5zZXQpO3JldHVybiBNcihyLGZ1bmN0aW9uKHQscil7bihyLHQsZSkmJmkuY2FsbChvLHQscil9LHZvaWQgMCwhMCwhMCksb319KSxrdCh7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se2ZpbmQ6ZnVuY3Rpb24odCl7dmFyIGU9Uih0aGlzKSxyPWFuKGUpLG49WnQodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKTtyZXR1cm4gTXIocixmdW5jdGlvbih0LHIpe2lmKG4ocix0LGUpKXJldHVybiBNci5zdG9wKHIpfSx2b2lkIDAsITAsITApLnJlc3VsdH19KSxrdCh7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se2ZpbmRLZXk6ZnVuY3Rpb24odCl7dmFyIGU9Uih0aGlzKSxyPWFuKGUpLG49WnQodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKTtyZXR1cm4gTXIocixmdW5jdGlvbih0LHIpe2lmKG4ocix0LGUpKXJldHVybiBNci5zdG9wKHQpfSx2b2lkIDAsITAsITApLnJlc3VsdH19KSxrdCh7dGFyZ2V0OlwiTWFwXCIsc3RhdDohMH0se2dyb3VwQnk6ZnVuY3Rpb24odCxlKXt2YXIgcj1uZXcgdGhpcztRdChlKTt2YXIgbj1RdChyLmhhcyksbz1RdChyLmdldCksaT1RdChyLnNldCk7cmV0dXJuIE1yKHQsZnVuY3Rpb24odCl7dmFyIGE9ZSh0KTtuLmNhbGwocixhKT9vLmNhbGwocixhKS5wdXNoKHQpOmkuY2FsbChyLGEsW3RdKX0pLHJ9fSksa3Qoe3RhcmdldDpcIk1hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHtpbmNsdWRlczpmdW5jdGlvbih0KXtyZXR1cm4gTXIoYW4oUih0aGlzKSksZnVuY3Rpb24oZSxyKXtpZigobj1yKT09PShvPXQpfHxuIT1uJiZvIT1vKXJldHVybiBNci5zdG9wKCk7dmFyIG4sb30sdm9pZCAwLCEwLCEwKS5zdG9wcGVkfX0pLGt0KHt0YXJnZXQ6XCJNYXBcIixzdGF0OiEwfSx7a2V5Qnk6ZnVuY3Rpb24odCxlKXt2YXIgcj1uZXcgdGhpcztRdChlKTt2YXIgbj1RdChyLnNldCk7cmV0dXJuIE1yKHQsZnVuY3Rpb24odCl7bi5jYWxsKHIsZSh0KSx0KX0pLHJ9fSksa3Qoe3RhcmdldDpcIk1hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHtrZXlPZjpmdW5jdGlvbih0KXtyZXR1cm4gTXIoYW4oUih0aGlzKSksZnVuY3Rpb24oZSxyKXtpZihyPT09dClyZXR1cm4gTXIuc3RvcChlKX0sdm9pZCAwLCEwLCEwKS5yZXN1bHR9fSksa3Qoe3RhcmdldDpcIk1hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHttYXBLZXlzOmZ1bmN0aW9uKHQpe3ZhciBlPVIodGhpcykscj1hbihlKSxuPVp0KHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyksbz1uZXcoc24oZSxvdChcIk1hcFwiKSkpLGk9UXQoby5zZXQpO3JldHVybiBNcihyLGZ1bmN0aW9uKHQscil7aS5jYWxsKG8sbihyLHQsZSkscil9LHZvaWQgMCwhMCwhMCksb319KSxrdCh7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se21hcFZhbHVlczpmdW5jdGlvbih0KXt2YXIgZT1SKHRoaXMpLHI9YW4oZSksbj1adCh0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDMpLG89bmV3KHNuKGUsb3QoXCJNYXBcIikpKSxpPVF0KG8uc2V0KTtyZXR1cm4gTXIocixmdW5jdGlvbih0LHIpe2kuY2FsbChvLHQsbihyLHQsZSkpfSx2b2lkIDAsITAsITApLG99fSksa3Qoe3RhcmdldDpcIk1hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHttZXJnZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9Uih0aGlzKSxyPVF0KGUuc2V0KSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoOylNcihhcmd1bWVudHNbbisrXSxyLGUsITApO3JldHVybiBlfX0pLGt0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7cmVkdWNlOmZ1bmN0aW9uKHQpe3ZhciBlPVIodGhpcykscj1hbihlKSxuPWFyZ3VtZW50cy5sZW5ndGg8MixvPW4/dm9pZCAwOmFyZ3VtZW50c1sxXTtpZihRdCh0KSxNcihyLGZ1bmN0aW9uKHIsaSl7bj8obj0hMSxvPWkpOm89dChvLGkscixlKX0sdm9pZCAwLCEwLCEwKSxuKXRocm93IFR5cGVFcnJvcihcIlJlZHVjZSBvZiBlbXB0eSBtYXAgd2l0aCBubyBpbml0aWFsIHZhbHVlXCIpO3JldHVybiBvfX0pLGt0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7c29tZTpmdW5jdGlvbih0KXt2YXIgZT1SKHRoaXMpLHI9YW4oZSksbj1adCh0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDMpO3JldHVybiBNcihyLGZ1bmN0aW9uKHQscil7aWYobihyLHQsZSkpcmV0dXJuIE1yLnN0b3AoKX0sdm9pZCAwLCEwLCEwKS5zdG9wcGVkfX0pLGt0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7dXBkYXRlOmZ1bmN0aW9uKHQsZSl7dmFyIHI9Uih0aGlzKSxuPWFyZ3VtZW50cy5sZW5ndGg7UXQoZSk7dmFyIG89ci5oYXModCk7aWYoIW8mJm48Myl0aHJvdyBUeXBlRXJyb3IoXCJVcGRhdGluZyBhYnNlbnQgdmFsdWVcIik7dmFyIGk9bz9yLmdldCh0KTpRdChuPjI/YXJndW1lbnRzWzJdOnZvaWQgMCkodCxyKTtyZXR1cm4gci5zZXQodCxlKGksdCxyKSkscn19KTt2YXIgY249ZnVuY3Rpb24odCxlKXt2YXIgcixuPVIodGhpcyksbz1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMDtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBvKXRocm93IFR5cGVFcnJvcihcIkF0IGxlYXN0IG9uZSBjYWxsYmFjayByZXF1aXJlZFwiKTtyZXR1cm4gbi5oYXModCk/KHI9bi5nZXQodCksXCJmdW5jdGlvblwiPT10eXBlb2YgZSYmKHI9ZShyKSxuLnNldCh0LHIpKSk6XCJmdW5jdGlvblwiPT10eXBlb2YgbyYmKHI9bygpLG4uc2V0KHQscikpLHJ9O2t0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7dXBzZXJ0OmNufSksa3Qoe3RhcmdldDpcIk1hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHt1cGRhdGVPckluc2VydDpjbn0pO3ZhciBmbj1cIlxcdFxcblxcdlxcZlxcciDCoOGagOKAgOKAgeKAguKAg+KAhOKAheKAhuKAh+KAiOKAieKAiuKAr+KBn+OAgFxcdTIwMjhcXHUyMDI5XFx1ZmVmZlwiLGxuPVwiW1wiK2ZuK1wiXVwiLGhuPVJlZ0V4cChcIl5cIitsbitsbitcIipcIikscG49UmVnRXhwKGxuK2xuK1wiKiRcIiksZG49ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciByPVN0cmluZyhkKGUpKTtyZXR1cm4gMSZ0JiYocj1yLnJlcGxhY2UoaG4sXCJcIikpLDImdCYmKHI9ci5yZXBsYWNlKHBuLFwiXCIpKSxyfX0sdm49e3N0YXJ0OmRuKDEpLGVuZDpkbigyKSx0cmltOmRuKDMpfSxnbj1idC5mLHluPU8uZixtbj1QLmYsYm49dm4udHJpbSx3bj1cIk51bWJlclwiLFNuPW4uTnVtYmVyLEVuPVNuLnByb3RvdHlwZSx4bj1sKEh0KEVuKSk9PXduLEFuPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvLGksYSx1LHMsYz15KHQsITEpO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBjJiZjLmxlbmd0aD4yKWlmKDQzPT09KGU9KGM9Ym4oYykpLmNoYXJDb2RlQXQoMCkpfHw0NT09PWUpe2lmKDg4PT09KHI9Yy5jaGFyQ29kZUF0KDIpKXx8MTIwPT09cilyZXR1cm4gTmFOfWVsc2UgaWYoNDg9PT1lKXtzd2l0Y2goYy5jaGFyQ29kZUF0KDEpKXtjYXNlIDY2OmNhc2UgOTg6bj0yLG89NDk7YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTpuPTgsbz01NTticmVhaztkZWZhdWx0OnJldHVybitjfWZvcihhPShpPWMuc2xpY2UoMikpLmxlbmd0aCx1PTA7dTxhO3UrKylpZigocz1pLmNoYXJDb2RlQXQodSkpPDQ4fHxzPm8pcmV0dXJuIE5hTjtyZXR1cm4gcGFyc2VJbnQoaSxuKX1yZXR1cm4rY307aWYoSXQod24sIVNuKFwiIDBvMVwiKXx8IVNuKFwiMGIxXCIpfHxTbihcIisweDFcIikpKXtmb3IodmFyIE9uLFJuPWZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg8MT8wOnQscj10aGlzO3JldHVybiByIGluc3RhbmNlb2YgUm4mJih4bj9vKGZ1bmN0aW9uKCl7RW4udmFsdWVPZi5jYWxsKHIpfSk6bChyKSE9d24pP05yKG5ldyBTbihBbihlKSkscixSbik6QW4oZSl9LGpuPWk/Z24oU24pOlwiTUFYX1ZBTFVFLE1JTl9WQUxVRSxOYU4sTkVHQVRJVkVfSU5GSU5JVFksUE9TSVRJVkVfSU5GSU5JVFksRVBTSUxPTixpc0Zpbml0ZSxpc0ludGVnZXIsaXNOYU4saXNTYWZlSW50ZWdlcixNQVhfU0FGRV9JTlRFR0VSLE1JTl9TQUZFX0lOVEVHRVIscGFyc2VGbG9hdCxwYXJzZUludCxpc0ludGVnZXJcIi5zcGxpdChcIixcIiksUG49MDtqbi5sZW5ndGg+UG47UG4rKyliKFNuLE9uPWpuW1BuXSkmJiFiKFJuLE9uKSYmbW4oUm4sT24seW4oU24sT24pKTtSbi5wcm90b3R5cGU9RW4sRW4uY29uc3RydWN0b3I9Um4sZXQobix3bixSbil9a3Qoe3RhcmdldDpcIk51bWJlclwiLHN0YXQ6ITB9LHtFUFNJTE9OOk1hdGgucG93KDIsLTUyKX0pO3ZhciBJbj1uLmlzRmluaXRlO2t0KHt0YXJnZXQ6XCJOdW1iZXJcIixzdGF0OiEwfSx7aXNGaW5pdGU6TnVtYmVyLmlzRmluaXRlfHxmdW5jdGlvbih0KXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YgdCYmSW4odCl9fSk7dmFyIFRuPU1hdGguZmxvb3Isa249ZnVuY3Rpb24odCl7cmV0dXJuIWcodCkmJmlzRmluaXRlKHQpJiZUbih0KT09PXR9O2t0KHt0YXJnZXQ6XCJOdW1iZXJcIixzdGF0OiEwfSx7aXNJbnRlZ2VyOmtufSksa3Qoe3RhcmdldDpcIk51bWJlclwiLHN0YXQ6ITB9LHtpc05hTjpmdW5jdGlvbih0KXtyZXR1cm4gdCE9dH19KTt2YXIgTG49TWF0aC5hYnM7a3Qoe3RhcmdldDpcIk51bWJlclwiLHN0YXQ6ITB9LHtpc1NhZmVJbnRlZ2VyOmZ1bmN0aW9uKHQpe3JldHVybiBrbih0KSYmTG4odCk8PTkwMDcxOTkyNTQ3NDA5OTF9fSksa3Qoe3RhcmdldDpcIk51bWJlclwiLHN0YXQ6ITB9LHtNQVhfU0FGRV9JTlRFR0VSOjkwMDcxOTkyNTQ3NDA5OTF9KSxrdCh7dGFyZ2V0OlwiTnVtYmVyXCIsc3RhdDohMH0se01JTl9TQUZFX0lOVEVHRVI6LTkwMDcxOTkyNTQ3NDA5OTF9KTt2YXIgVW49dm4udHJpbSxNbj1uLnBhcnNlRmxvYXQsX249MS9NbihmbitcIi0wXCIpIT0tSW5maW5pdHk/ZnVuY3Rpb24odCl7dmFyIGU9VW4oU3RyaW5nKHQpKSxyPU1uKGUpO3JldHVybiAwPT09ciYmXCItXCI9PWUuY2hhckF0KDApPy0wOnJ9Ok1uO2t0KHt0YXJnZXQ6XCJOdW1iZXJcIixzdGF0OiEwLGZvcmNlZDpOdW1iZXIucGFyc2VGbG9hdCE9X259LHtwYXJzZUZsb2F0Ol9ufSk7dmFyIE5uPXZuLnRyaW0sQ249bi5wYXJzZUludCxGbj0vXlsrLV0/MFtYeF0vLEJuPTghPT1DbihmbitcIjA4XCIpfHwyMiE9PUNuKGZuK1wiMHgxNlwiKT9mdW5jdGlvbih0LGUpe3ZhciByPU5uKFN0cmluZyh0KSk7cmV0dXJuIENuKHIsZT4+PjB8fChGbi50ZXN0KHIpPzE2OjEwKSl9OkNuO2t0KHt0YXJnZXQ6XCJOdW1iZXJcIixzdGF0OiEwLGZvcmNlZDpOdW1iZXIucGFyc2VJbnQhPUJufSx7cGFyc2VJbnQ6Qm59KTt2YXIgRG49cy5mLHFuPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIHIsbj12KGUpLG89cXQobiksYT1vLmxlbmd0aCx1PTAscz1bXTthPnU7KXI9b1t1KytdLGkmJiFEbi5jYWxsKG4scil8fHMucHVzaCh0P1tyLG5bcl1dOm5bcl0pO3JldHVybiBzfX0sem49e2VudHJpZXM6cW4oITApLHZhbHVlczpxbighMSl9LFduPXpuLmVudHJpZXM7a3Qoe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITB9LHtlbnRyaWVzOmZ1bmN0aW9uKHQpe3JldHVybiBXbih0KX19KSxrdCh7dGFyZ2V0OlwiT2JqZWN0XCIsc3RhdDohMCxzaGFtOiFpfSx7Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yczpmdW5jdGlvbih0KXtmb3IodmFyIGUscixuPXYodCksbz1PLmYsaT1TdChuKSxhPXt9LHU9MDtpLmxlbmd0aD51Oyl2b2lkIDAhPT0ocj1vKG4sZT1pW3UrK10pKSYmb3IoYSxlLHIpO3JldHVybiBhfX0pO3ZhciBLbj1vKGZ1bmN0aW9uKCl7cXQoMSl9KTtrdCh7dGFyZ2V0OlwiT2JqZWN0XCIsc3RhdDohMCxmb3JjZWQ6S259LHtrZXlzOmZ1bmN0aW9uKHQpe3JldHVybiBxdChMdCh0KSl9fSk7dmFyIEduPU9iamVjdC5pc3x8ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWU/MCE9PXR8fDEvdD09MS9lOnQhPXQmJmUhPWV9O2t0KHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwfSx7aXM6R259KTt2YXIgJG49em4udmFsdWVzO2t0KHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwfSx7dmFsdWVzOmZ1bmN0aW9uKHQpe3JldHVybiAkbih0KX19KTt2YXIgVm49b3QoXCJSZWZsZWN0XCIsXCJhcHBseVwiKSxIbj1GdW5jdGlvbi5hcHBseSxYbj0hbyhmdW5jdGlvbigpe1ZuKGZ1bmN0aW9uKCl7fSl9KTtrdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITAsZm9yY2VkOlhufSx7YXBwbHk6ZnVuY3Rpb24odCxlLHIpe3JldHVybiBRdCh0KSxSKHIpLFZuP1ZuKHQsZSxyKTpIbi5jYWxsKHQsZSxyKX19KTt2YXIgWW49W10uc2xpY2UsSm49e30sUW49ZnVuY3Rpb24odCxlLHIpe2lmKCEoZSBpbiBKbikpe2Zvcih2YXIgbj1bXSxvPTA7bzxlO28rKyluW29dPVwiYVtcIitvK1wiXVwiO0puW2VdPUZ1bmN0aW9uKFwiQyxhXCIsXCJyZXR1cm4gbmV3IEMoXCIrbi5qb2luKFwiLFwiKStcIilcIil9cmV0dXJuIEpuW2VdKHQscil9LFpuPUZ1bmN0aW9uLmJpbmR8fGZ1bmN0aW9uKHQpe3ZhciBlPVF0KHRoaXMpLHI9WW4uY2FsbChhcmd1bWVudHMsMSksbj1mdW5jdGlvbigpe3ZhciBvPXIuY29uY2F0KFluLmNhbGwoYXJndW1lbnRzKSk7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBuP1FuKGUsby5sZW5ndGgsbyk6ZS5hcHBseSh0LG8pfTtyZXR1cm4gZyhlLnByb3RvdHlwZSkmJihuLnByb3RvdHlwZT1lLnByb3RvdHlwZSksbn0sdG89b3QoXCJSZWZsZWN0XCIsXCJjb25zdHJ1Y3RcIiksZW89byhmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuISh0byhmdW5jdGlvbigpe30sW10sdClpbnN0YW5jZW9mIHQpfSkscm89IW8oZnVuY3Rpb24oKXt0byhmdW5jdGlvbigpe30pfSksbm89ZW98fHJvO2t0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMCxmb3JjZWQ6bm8sc2hhbTpub30se2NvbnN0cnVjdDpmdW5jdGlvbih0LGUpe1F0KHQpLFIoZSk7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDwzP3Q6UXQoYXJndW1lbnRzWzJdKTtpZihybyYmIWVvKXJldHVybiB0byh0LGUscik7aWYodD09cil7c3dpdGNoKGUubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG5ldyB0O2Nhc2UgMTpyZXR1cm4gbmV3IHQoZVswXSk7Y2FzZSAyOnJldHVybiBuZXcgdChlWzBdLGVbMV0pO2Nhc2UgMzpyZXR1cm4gbmV3IHQoZVswXSxlWzFdLGVbMl0pO2Nhc2UgNDpyZXR1cm4gbmV3IHQoZVswXSxlWzFdLGVbMl0sZVszXSl9dmFyIG49W251bGxdO3JldHVybiBuLnB1c2guYXBwbHkobixlKSxuZXcoWm4uYXBwbHkodCxuKSl9dmFyIG89ci5wcm90b3R5cGUsaT1IdChnKG8pP286T2JqZWN0LnByb3RvdHlwZSksYT1GdW5jdGlvbi5hcHBseS5jYWxsKHQsaSxlKTtyZXR1cm4gZyhhKT9hOml9fSk7dmFyIG9vPW8oZnVuY3Rpb24oKXtSZWZsZWN0LmRlZmluZVByb3BlcnR5KFAuZih7fSwxLHt2YWx1ZToxfSksMSx7dmFsdWU6Mn0pfSk7a3Qoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwLGZvcmNlZDpvbyxzaGFtOiFpfSx7ZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24odCxlLHIpe1IodCk7dmFyIG49eShlLCEwKTtSKHIpO3RyeXtyZXR1cm4gUC5mKHQsbixyKSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19fSk7dmFyIGlvPU8uZjtrdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITB9LHtkZWxldGVQcm9wZXJ0eTpmdW5jdGlvbih0LGUpe3ZhciByPWlvKFIodCksZSk7cmV0dXJuIShyJiYhci5jb25maWd1cmFibGUpJiZkZWxldGUgdFtlXX19KSxrdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITB9LHtnZXQ6ZnVuY3Rpb24gdChlLHIpe3ZhciBuLG8saT1hcmd1bWVudHMubGVuZ3RoPDM/ZTphcmd1bWVudHNbMl07cmV0dXJuIFIoZSk9PT1pP2Vbcl06KG49Ty5mKGUscikpP2IobixcInZhbHVlXCIpP24udmFsdWU6dm9pZCAwPT09bi5nZXQ/dm9pZCAwOm4uZ2V0LmNhbGwoaSk6ZyhvPUllKGUpKT90KG8scixpKTp2b2lkIDB9fSksa3Qoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwLHNoYW06IWl9LHtnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gTy5mKFIodCksZSl9fSksa3Qoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwLHNoYW06IVJlfSx7Z2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24odCl7cmV0dXJuIEllKFIodCkpfX0pLGt0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se2hhczpmdW5jdGlvbih0LGUpe3JldHVybiBlIGluIHR9fSk7dmFyIGFvPU9iamVjdC5pc0V4dGVuc2libGU7a3Qoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7aXNFeHRlbnNpYmxlOmZ1bmN0aW9uKHQpe3JldHVybiBSKHQpLCFhb3x8YW8odCl9fSksa3Qoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7b3duS2V5czpTdH0pLGt0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMCxzaGFtOiFMcn0se3ByZXZlbnRFeHRlbnNpb25zOmZ1bmN0aW9uKHQpe1IodCk7dHJ5e3ZhciBlPW90KFwiT2JqZWN0XCIsXCJwcmV2ZW50RXh0ZW5zaW9uc1wiKTtyZXR1cm4gZSYmZSh0KSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19fSk7dmFyIHVvPW8oZnVuY3Rpb24oKXt2YXIgdD1QLmYoe30sXCJhXCIse2NvbmZpZ3VyYWJsZTohMH0pO3JldHVybiExIT09UmVmbGVjdC5zZXQoSWUodCksXCJhXCIsMSx0KX0pO2t0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMCxmb3JjZWQ6dW99LHtzZXQ6ZnVuY3Rpb24gdChlLHIsbil7dmFyIG8saSxhPWFyZ3VtZW50cy5sZW5ndGg8ND9lOmFyZ3VtZW50c1szXSx1PU8uZihSKGUpLHIpO2lmKCF1KXtpZihnKGk9SWUoZSkpKXJldHVybiB0KGkscixuLGEpO3U9YygwKX1pZihiKHUsXCJ2YWx1ZVwiKSl7aWYoITE9PT11LndyaXRhYmxlfHwhZyhhKSlyZXR1cm4hMTtpZihvPU8uZihhLHIpKXtpZihvLmdldHx8by5zZXR8fCExPT09by53cml0YWJsZSlyZXR1cm4hMTtvLnZhbHVlPW4sUC5mKGEscixvKX1lbHNlIFAuZihhLHIsYygwLG4pKTtyZXR1cm4hMH1yZXR1cm4gdm9pZCAwIT09dS5zZXQmJih1LnNldC5jYWxsKGEsbiksITApfX0pLHFlJiZrdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITB9LHtzZXRQcm90b3R5cGVPZjpmdW5jdGlvbih0LGUpe1IodCksRGUoZSk7dHJ5e3JldHVybiBxZSh0LGUpLCEwfWNhdGNoKHQpe3JldHVybiExfX19KTt2YXIgc289VXIuZ2V0V2Vha0RhdGEsY289dHQuc2V0LGZvPXR0LmdldHRlckZvcixsbz11ZS5maW5kLGhvPXVlLmZpbmRJbmRleCxwbz0wLHZvPWZ1bmN0aW9uKHQpe3JldHVybiB0LmZyb3plbnx8KHQuZnJvemVuPW5ldyBnbyl9LGdvPWZ1bmN0aW9uKCl7dGhpcy5lbnRyaWVzPVtdfSx5bz1mdW5jdGlvbih0LGUpe3JldHVybiBsbyh0LmVudHJpZXMsZnVuY3Rpb24odCl7cmV0dXJuIHRbMF09PT1lfSl9O2dvLnByb3RvdHlwZT17Z2V0OmZ1bmN0aW9uKHQpe3ZhciBlPXlvKHRoaXMsdCk7aWYoZSlyZXR1cm4gZVsxXX0saGFzOmZ1bmN0aW9uKHQpe3JldHVybiEheW8odGhpcyx0KX0sc2V0OmZ1bmN0aW9uKHQsZSl7dmFyIHI9eW8odGhpcyx0KTtyP3JbMV09ZTp0aGlzLmVudHJpZXMucHVzaChbdCxlXSl9LGRlbGV0ZTpmdW5jdGlvbih0KXt2YXIgZT1obyh0aGlzLmVudHJpZXMsZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF09PT10fSk7cmV0dXJufmUmJnRoaXMuZW50cmllcy5zcGxpY2UoZSwxKSwhIX5lfX07dmFyIG1vPXtnZXRDb25zdHJ1Y3RvcjpmdW5jdGlvbih0LGUscixuKXt2YXIgbz10KGZ1bmN0aW9uKHQsaSl7X3IodCxvLGUpLGNvKHQse3R5cGU6ZSxpZDpwbysrLGZyb3plbjp2b2lkIDB9KSxudWxsIT1pJiZNcihpLHRbbl0sdCxyKX0pLGk9Zm8oZSksYT1mdW5jdGlvbih0LGUscil7dmFyIG49aSh0KSxvPXNvKFIoZSksITApO3JldHVybiEwPT09bz92byhuKS5zZXQoZSxyKTpvW24uaWRdPXIsdH07cmV0dXJuIEZyKG8ucHJvdG90eXBlLHtkZWxldGU6ZnVuY3Rpb24odCl7dmFyIGU9aSh0aGlzKTtpZighZyh0KSlyZXR1cm4hMTt2YXIgcj1zbyh0KTtyZXR1cm4hMD09PXI/dm8oZSkuZGVsZXRlKHQpOnImJmIocixlLmlkKSYmZGVsZXRlIHJbZS5pZF19LGhhczpmdW5jdGlvbih0KXt2YXIgZT1pKHRoaXMpO2lmKCFnKHQpKXJldHVybiExO3ZhciByPXNvKHQpO3JldHVybiEwPT09cj92byhlKS5oYXModCk6ciYmYihyLGUuaWQpfX0pLEZyKG8ucHJvdG90eXBlLHI/e2dldDpmdW5jdGlvbih0KXt2YXIgZT1pKHRoaXMpO2lmKGcodCkpe3ZhciByPXNvKHQpO3JldHVybiEwPT09cj92byhlKS5nZXQodCk6cj9yW2UuaWRdOnZvaWQgMH19LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiBhKHRoaXMsdCxlKX19OnthZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIGEodGhpcyx0LCEwKX19KSxvfX0sYm89ZShmdW5jdGlvbih0KXt2YXIgZSxyPXR0LmVuZm9yY2Usbz0hbi5BY3RpdmVYT2JqZWN0JiZcIkFjdGl2ZVhPYmplY3RcImluIG4saT1PYmplY3QuaXNFeHRlbnNpYmxlLGE9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDApfX0sdT10LmV4cG9ydHM9Q3IoXCJXZWFrTWFwXCIsYSxtbyk7aWYoQiYmbyl7ZT1tby5nZXRDb25zdHJ1Y3RvcihhLFwiV2Vha01hcFwiLCEwKSxVci5SRVFVSVJFRD0hMDt2YXIgcz11LnByb3RvdHlwZSxjPXMuZGVsZXRlLGY9cy5oYXMsbD1zLmdldCxoPXMuc2V0O0ZyKHMse2RlbGV0ZTpmdW5jdGlvbih0KXtpZihnKHQpJiYhaSh0KSl7dmFyIG49cih0aGlzKTtyZXR1cm4gbi5mcm96ZW58fChuLmZyb3plbj1uZXcgZSksYy5jYWxsKHRoaXMsdCl8fG4uZnJvemVuLmRlbGV0ZSh0KX1yZXR1cm4gYy5jYWxsKHRoaXMsdCl9LGhhczpmdW5jdGlvbih0KXtpZihnKHQpJiYhaSh0KSl7dmFyIG49cih0aGlzKTtyZXR1cm4gbi5mcm96ZW58fChuLmZyb3plbj1uZXcgZSksZi5jYWxsKHRoaXMsdCl8fG4uZnJvemVuLmhhcyh0KX1yZXR1cm4gZi5jYWxsKHRoaXMsdCl9LGdldDpmdW5jdGlvbih0KXtpZihnKHQpJiYhaSh0KSl7dmFyIG49cih0aGlzKTtyZXR1cm4gbi5mcm96ZW58fChuLmZyb3plbj1uZXcgZSksZi5jYWxsKHRoaXMsdCk/bC5jYWxsKHRoaXMsdCk6bi5mcm96ZW4uZ2V0KHQpfXJldHVybiBsLmNhbGwodGhpcyx0KX0sc2V0OmZ1bmN0aW9uKHQsbil7aWYoZyh0KSYmIWkodCkpe3ZhciBvPXIodGhpcyk7by5mcm96ZW58fChvLmZyb3plbj1uZXcgZSksZi5jYWxsKHRoaXMsdCk/aC5jYWxsKHRoaXMsdCxuKTpvLmZyb3plbi5zZXQodCxuKX1lbHNlIGguY2FsbCh0aGlzLHQsbik7cmV0dXJuIHRoaXN9fSl9fSksd289cShcIm1ldGFkYXRhXCIpLFNvPXdvLnN0b3JlfHwod28uc3RvcmU9bmV3IGJvKSxFbz1mdW5jdGlvbih0LGUscil7dmFyIG49U28uZ2V0KHQpO2lmKCFuKXtpZighcilyZXR1cm47U28uc2V0KHQsbj1uZXcgJHIpfXZhciBvPW4uZ2V0KGUpO2lmKCFvKXtpZighcilyZXR1cm47bi5zZXQoZSxvPW5ldyAkcil9cmV0dXJuIG99LHhvPXtzdG9yZTpTbyxnZXRNYXA6RW8saGFzOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1FbyhlLHIsITEpO3JldHVybiB2b2lkIDAhPT1uJiZuLmhhcyh0KX0sZ2V0OmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1FbyhlLHIsITEpO3JldHVybiB2b2lkIDA9PT1uP3ZvaWQgMDpuLmdldCh0KX0sc2V0OmZ1bmN0aW9uKHQsZSxyLG4pe0VvKHIsbiwhMCkuc2V0KHQsZSl9LGtleXM6ZnVuY3Rpb24odCxlKXt2YXIgcj1Fbyh0LGUsITEpLG49W107cmV0dXJuIHImJnIuZm9yRWFjaChmdW5jdGlvbih0LGUpe24ucHVzaChlKX0pLG59LHRvS2V5OmZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10fHxcInN5bWJvbFwiPT10eXBlb2YgdD90OlN0cmluZyh0KX19LEFvPXhvLnRvS2V5LE9vPXhvLnNldDtrdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITB9LHtkZWZpbmVNZXRhZGF0YTpmdW5jdGlvbih0LGUscil7dmFyIG49YXJndW1lbnRzLmxlbmd0aDw0P3ZvaWQgMDpBbyhhcmd1bWVudHNbM10pO09vKHQsZSxSKHIpLG4pfX0pO3ZhciBSbz14by50b0tleSxqbz14by5nZXRNYXAsUG89eG8uc3RvcmU7a3Qoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7ZGVsZXRlTWV0YWRhdGE6ZnVuY3Rpb24odCxlKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPDM/dm9pZCAwOlJvKGFyZ3VtZW50c1syXSksbj1qbyhSKGUpLHIsITEpO2lmKHZvaWQgMD09PW58fCFuLmRlbGV0ZSh0KSlyZXR1cm4hMTtpZihuLnNpemUpcmV0dXJuITA7dmFyIG89UG8uZ2V0KGUpO3JldHVybiBvLmRlbGV0ZShyKSwhIW8uc2l6ZXx8UG8uZGVsZXRlKGUpfX0pO3ZhciBJbz14by5oYXMsVG89eG8uZ2V0LGtvPXhvLnRvS2V5LExvPWZ1bmN0aW9uIHQoZSxyLG4pe2lmKElvKGUscixuKSlyZXR1cm4gVG8oZSxyLG4pO3ZhciBvPUllKHIpO3JldHVybiBudWxsIT09bz90KGUsbyxuKTp2b2lkIDB9O2t0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se2dldE1ldGFkYXRhOmZ1bmN0aW9uKHQsZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDprbyhhcmd1bWVudHNbMl0pO3JldHVybiBMbyh0LFIoZSkscil9fSk7dmFyIFVvPUNyKFwiU2V0XCIsZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDApfX0sR3IpLE1vPXhvLmtleXMsX289eG8udG9LZXksTm89ZnVuY3Rpb24gdChlLHIpe3ZhciBuPU1vKGUsciksbz1JZShlKTtpZihudWxsPT09bylyZXR1cm4gbjt2YXIgaSxhLHU9dChvLHIpO3JldHVybiB1Lmxlbmd0aD9uLmxlbmd0aD8oaT1uZXcgVW8obi5jb25jYXQodSkpLE1yKGksKGE9W10pLnB1c2gsYSksYSk6dTpufTtrdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITB9LHtnZXRNZXRhZGF0YUtleXM6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aDwyP3ZvaWQgMDpfbyhhcmd1bWVudHNbMV0pO3JldHVybiBObyhSKHQpLGUpfX0pO3ZhciBDbz14by5nZXQsRm89eG8udG9LZXk7a3Qoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7Z2V0T3duTWV0YWRhdGE6ZnVuY3Rpb24odCxlKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPDM/dm9pZCAwOkZvKGFyZ3VtZW50c1syXSk7cmV0dXJuIENvKHQsUihlKSxyKX19KTt2YXIgQm89eG8ua2V5cyxEbz14by50b0tleTtrdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITB9LHtnZXRPd25NZXRhZGF0YUtleXM6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aDwyP3ZvaWQgMDpEbyhhcmd1bWVudHNbMV0pO3JldHVybiBCbyhSKHQpLGUpfX0pO3ZhciBxbz14by5oYXMsem89eG8udG9LZXksV289ZnVuY3Rpb24gdChlLHIsbil7aWYocW8oZSxyLG4pKXJldHVybiEwO3ZhciBvPUllKHIpO3JldHVybiBudWxsIT09byYmdChlLG8sbil9O2t0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se2hhc01ldGFkYXRhOmZ1bmN0aW9uKHQsZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDp6byhhcmd1bWVudHNbMl0pO3JldHVybiBXbyh0LFIoZSkscil9fSk7dmFyIEtvPXhvLmhhcyxHbz14by50b0tleTtrdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITB9LHtoYXNPd25NZXRhZGF0YTpmdW5jdGlvbih0LGUpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg8Mz92b2lkIDA6R28oYXJndW1lbnRzWzJdKTtyZXR1cm4gS28odCxSKGUpLHIpfX0pO3ZhciAkbz14by50b0tleSxWbz14by5zZXQ7a3Qoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7bWV0YWRhdGE6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24ocixuKXtWbyh0LGUsUihyKSwkbyhuKSl9fX0pO3ZhciBIbz1EdChcIm1hdGNoXCIpLFhvPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBnKHQpJiYodm9pZCAwIT09KGU9dFtIb10pPyEhZTpcIlJlZ0V4cFwiPT1sKHQpKX0sWW89ZnVuY3Rpb24oKXt2YXIgdD1SKHRoaXMpLGU9XCJcIjtyZXR1cm4gdC5nbG9iYWwmJihlKz1cImdcIiksdC5pZ25vcmVDYXNlJiYoZSs9XCJpXCIpLHQubXVsdGlsaW5lJiYoZSs9XCJtXCIpLHQuZG90QWxsJiYoZSs9XCJzXCIpLHQudW5pY29kZSYmKGUrPVwidVwiKSx0LnN0aWNreSYmKGUrPVwieVwiKSxlfTtmdW5jdGlvbiBKbyh0LGUpe3JldHVybiBSZWdFeHAodCxlKX12YXIgUW89e1VOU1VQUE9SVEVEX1k6byhmdW5jdGlvbigpe3ZhciB0PUpvKFwiYVwiLFwieVwiKTtyZXR1cm4gdC5sYXN0SW5kZXg9MixudWxsIT10LmV4ZWMoXCJhYmNkXCIpfSksQlJPS0VOX0NBUkVUOm8oZnVuY3Rpb24oKXt2YXIgdD1KbyhcIl5yXCIsXCJneVwiKTtyZXR1cm4gdC5sYXN0SW5kZXg9MixudWxsIT10LmV4ZWMoXCJzdHJcIil9KX0sWm89UC5mLHRpPWJ0LmYsZWk9dHQuc2V0LHJpPUR0KFwibWF0Y2hcIiksbmk9bi5SZWdFeHAsb2k9bmkucHJvdG90eXBlLGlpPS9hL2csYWk9L2EvZyx1aT1uZXcgbmkoaWkpIT09aWksc2k9UW8uVU5TVVBQT1JURURfWTtpZihpJiZJdChcIlJlZ0V4cFwiLCF1aXx8c2l8fG8oZnVuY3Rpb24oKXtyZXR1cm4gYWlbcmldPSExLG5pKGlpKSE9aWl8fG5pKGFpKT09YWl8fFwiL2EvaVwiIT1uaShpaSxcImlcIil9KSkpe2Zvcih2YXIgY2k9ZnVuY3Rpb24odCxlKXt2YXIgcixuPXRoaXMgaW5zdGFuY2VvZiBjaSxvPVhvKHQpLGk9dm9pZCAwPT09ZTtpZighbiYmbyYmdC5jb25zdHJ1Y3Rvcj09PWNpJiZpKXJldHVybiB0O3VpP28mJiFpJiYodD10LnNvdXJjZSk6dCBpbnN0YW5jZW9mIGNpJiYoaSYmKGU9WW8uY2FsbCh0KSksdD10LnNvdXJjZSksc2kmJihyPSEhZSYmZS5pbmRleE9mKFwieVwiKT4tMSkmJihlPWUucmVwbGFjZSgveS9nLFwiXCIpKTt2YXIgYT1Ocih1aT9uZXcgbmkodCxlKTpuaSh0LGUpLG4/dGhpczpvaSxjaSk7cmV0dXJuIHNpJiZyJiZlaShhLHtzdGlja3k6cn0pLGF9LGZpPWZ1bmN0aW9uKHQpe3QgaW4gY2l8fFpvKGNpLHQse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbmlbdF19LHNldDpmdW5jdGlvbihlKXtuaVt0XT1lfX0pfSxsaT10aShuaSksaGk9MDtsaS5sZW5ndGg+aGk7KWZpKGxpW2hpKytdKTtvaS5jb25zdHJ1Y3Rvcj1jaSxjaS5wcm90b3R5cGU9b2ksZXQobixcIlJlZ0V4cFwiLGNpKX1EcihcIlJlZ0V4cFwiKTt2YXIgcGk9XCJ0b1N0cmluZ1wiLGRpPVJlZ0V4cC5wcm90b3R5cGUsdmk9ZGkudG9TdHJpbmc7KG8oZnVuY3Rpb24oKXtyZXR1cm5cIi9hL2JcIiE9dmkuY2FsbCh7c291cmNlOlwiYVwiLGZsYWdzOlwiYlwifSl9KXx8dmkubmFtZSE9cGkpJiZldChSZWdFeHAucHJvdG90eXBlLHBpLGZ1bmN0aW9uKCl7dmFyIHQ9Uih0aGlzKSxlPVN0cmluZyh0LnNvdXJjZSkscj10LmZsYWdzO3JldHVyblwiL1wiK2UrXCIvXCIrU3RyaW5nKHZvaWQgMD09PXImJnQgaW5zdGFuY2VvZiBSZWdFeHAmJiEoXCJmbGFnc1wiaW4gZGkpP1lvLmNhbGwodCk6cil9LHt1bnNhZmU6ITB9KTt2YXIgZ2k9UmVnRXhwLnByb3RvdHlwZS5leGVjLHlpPVN0cmluZy5wcm90b3R5cGUucmVwbGFjZSxtaT1naSxiaT1mdW5jdGlvbigpe3ZhciB0PS9hLyxlPS9iKi9nO3JldHVybiBnaS5jYWxsKHQsXCJhXCIpLGdpLmNhbGwoZSxcImFcIiksMCE9PXQubGFzdEluZGV4fHwwIT09ZS5sYXN0SW5kZXh9KCksd2k9UW8uVU5TVVBQT1JURURfWXx8UW8uQlJPS0VOX0NBUkVULFNpPXZvaWQgMCE9PS8oKT8/Ly5leGVjKFwiXCIpWzFdOyhiaXx8U2l8fHdpKSYmKG1pPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvLGk9dGhpcyxhPXdpJiZpLnN0aWNreSx1PVlvLmNhbGwoaSkscz1pLnNvdXJjZSxjPTAsZj10O3JldHVybiBhJiYoLTE9PT0odT11LnJlcGxhY2UoXCJ5XCIsXCJcIikpLmluZGV4T2YoXCJnXCIpJiYodSs9XCJnXCIpLGY9U3RyaW5nKHQpLnNsaWNlKGkubGFzdEluZGV4KSxpLmxhc3RJbmRleD4wJiYoIWkubXVsdGlsaW5lfHxpLm11bHRpbGluZSYmXCJcXG5cIiE9PXRbaS5sYXN0SW5kZXgtMV0pJiYocz1cIig/OiBcIitzK1wiKVwiLGY9XCIgXCIrZixjKyspLHI9bmV3IFJlZ0V4cChcIl4oPzpcIitzK1wiKVwiLHUpKSxTaSYmKHI9bmV3IFJlZ0V4cChcIl5cIitzK1wiJCg/IVxcXFxzKVwiLHUpKSxiaSYmKGU9aS5sYXN0SW5kZXgpLG49Z2kuY2FsbChhP3I6aSxmKSxhP24/KG4uaW5wdXQ9bi5pbnB1dC5zbGljZShjKSxuWzBdPW5bMF0uc2xpY2UoYyksbi5pbmRleD1pLmxhc3RJbmRleCxpLmxhc3RJbmRleCs9blswXS5sZW5ndGgpOmkubGFzdEluZGV4PTA6YmkmJm4mJihpLmxhc3RJbmRleD1pLmdsb2JhbD9uLmluZGV4K25bMF0ubGVuZ3RoOmUpLFNpJiZuJiZuLmxlbmd0aD4xJiZ5aS5jYWxsKG5bMF0scixmdW5jdGlvbigpe2ZvcihvPTE7bzxhcmd1bWVudHMubGVuZ3RoLTI7bysrKXZvaWQgMD09PWFyZ3VtZW50c1tvXSYmKG5bb109dm9pZCAwKX0pLG59KTt2YXIgRWk9bWk7a3Qoe3RhcmdldDpcIlJlZ0V4cFwiLHByb3RvOiEwLGZvcmNlZDovLi8uZXhlYyE9PUVpfSx7ZXhlYzpFaX0pLGkmJihcImdcIiE9Ly4vZy5mbGFnc3x8UW8uVU5TVVBQT1JURURfWSkmJlAuZihSZWdFeHAucHJvdG90eXBlLFwiZmxhZ3NcIix7Y29uZmlndXJhYmxlOiEwLGdldDpZb30pO3ZhciB4aT10dC5nZXQsQWk9UmVnRXhwLnByb3RvdHlwZTtpJiZRby5VTlNVUFBPUlRFRF9ZJiYoMCxQLmYpKFJlZ0V4cC5wcm90b3R5cGUsXCJzdGlja3lcIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKHRoaXMhPT1BaSl7aWYodGhpcyBpbnN0YW5jZW9mIFJlZ0V4cClyZXR1cm4hIXhpKHRoaXMpLnN0aWNreTt0aHJvdyBUeXBlRXJyb3IoXCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsIFJlZ0V4cCByZXF1aXJlZFwiKX19fSk7dmFyIE9pLFJpLGppPShPaT0hMSwoUmk9L1thY10vKS5leGVjPWZ1bmN0aW9uKCl7cmV0dXJuIE9pPSEwLC8uLy5leGVjLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sITA9PT1SaS50ZXN0KFwiYWJjXCIpJiZPaSksUGk9Ly4vLnRlc3Q7a3Qoe3RhcmdldDpcIlJlZ0V4cFwiLHByb3RvOiEwLGZvcmNlZDohaml9LHt0ZXN0OmZ1bmN0aW9uKHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHRoaXMuZXhlYylyZXR1cm4gUGkuY2FsbCh0aGlzLHQpO3ZhciBlPXRoaXMuZXhlYyh0KTtpZihudWxsIT09ZSYmIWcoZSkpdGhyb3cgbmV3IEVycm9yKFwiUmVnRXhwIGV4ZWMgbWV0aG9kIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIE9iamVjdCBvciBudWxsXCIpO3JldHVybiEhZX19KTt2YXIgSWk9RHQoXCJzcGVjaWVzXCIpLFRpPSFvKGZ1bmN0aW9uKCl7dmFyIHQ9Ly4vO3JldHVybiB0LmV4ZWM9ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdC5ncm91cHM9e2E6XCI3XCJ9LHR9LFwiN1wiIT09XCJcIi5yZXBsYWNlKHQsXCIkPGE+XCIpfSksa2k9XCIkMFwiPT09XCJhXCIucmVwbGFjZSgvLi8sXCIkMFwiKSxMaT1EdChcInJlcGxhY2VcIiksVWk9ISEvLi9bTGldJiZcIlwiPT09Ly4vW0xpXShcImFcIixcIiQwXCIpLE1pPSFvKGZ1bmN0aW9uKCl7dmFyIHQ9Lyg/OikvLGU9dC5leGVjO3QuZXhlYz1mdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07dmFyIHI9XCJhYlwiLnNwbGl0KHQpO3JldHVybiAyIT09ci5sZW5ndGh8fFwiYVwiIT09clswXXx8XCJiXCIhPT1yWzFdfSksX2k9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9RHQodCksYT0hbyhmdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiBlW2ldPWZ1bmN0aW9uKCl7cmV0dXJuIDd9LDchPVwiXCJbdF0oZSl9KSx1PWEmJiFvKGZ1bmN0aW9uKCl7dmFyIGU9ITEscj0vYS87cmV0dXJuXCJzcGxpdFwiPT09dCYmKChyPXt9KS5jb25zdHJ1Y3Rvcj17fSxyLmNvbnN0cnVjdG9yW0lpXT1mdW5jdGlvbigpe3JldHVybiByfSxyLmZsYWdzPVwiXCIscltpXT0vLi9baV0pLHIuZXhlYz1mdW5jdGlvbigpe3JldHVybiBlPSEwLG51bGx9LHJbaV0oXCJcIiksIWV9KTtpZighYXx8IXV8fFwicmVwbGFjZVwiPT09dCYmKCFUaXx8IWtpfHxVaSl8fFwic3BsaXRcIj09PXQmJiFNaSl7dmFyIHM9Ly4vW2ldLGM9cihpLFwiXCJbdF0sZnVuY3Rpb24odCxlLHIsbixvKXtyZXR1cm4gZS5leGVjPT09RWk/YSYmIW8/e2RvbmU6ITAsdmFsdWU6cy5jYWxsKGUscixuKX06e2RvbmU6ITAsdmFsdWU6dC5jYWxsKHIsZSxuKX06e2RvbmU6ITF9fSx7UkVQTEFDRV9LRUVQU18kMDpraSxSRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRTpVaX0pLGY9Y1sxXTtldChTdHJpbmcucHJvdG90eXBlLHQsY1swXSksZXQoUmVnRXhwLnByb3RvdHlwZSxpLDI9PWU/ZnVuY3Rpb24odCxlKXtyZXR1cm4gZi5jYWxsKHQsdGhpcyxlKX06ZnVuY3Rpb24odCl7cmV0dXJuIGYuY2FsbCh0LHRoaXMpfSl9biYmSShSZWdFeHAucHJvdG90eXBlW2ldLFwic2hhbVwiLCEwKX0sTmk9T2UuY2hhckF0LENpPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZSsocj9OaSh0LGUpLmxlbmd0aDoxKX0sRmk9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmV4ZWM7aWYoXCJmdW5jdGlvblwiPT10eXBlb2Ygcil7dmFyIG49ci5jYWxsKHQsZSk7aWYoXCJvYmplY3RcIiE9dHlwZW9mIG4pdGhyb3cgVHlwZUVycm9yKFwiUmVnRXhwIGV4ZWMgbWV0aG9kIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIE9iamVjdCBvciBudWxsXCIpO3JldHVybiBufWlmKFwiUmVnRXhwXCIhPT1sKHQpKXRocm93IFR5cGVFcnJvcihcIlJlZ0V4cCNleGVjIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgcmVjZWl2ZXJcIik7cmV0dXJuIEVpLmNhbGwodCxlKX07X2koXCJtYXRjaFwiLDEsZnVuY3Rpb24odCxlLHIpe3JldHVybltmdW5jdGlvbihlKXt2YXIgcj1kKHRoaXMpLG49bnVsbD09ZT92b2lkIDA6ZVt0XTtyZXR1cm4gdm9pZCAwIT09bj9uLmNhbGwoZSxyKTpuZXcgUmVnRXhwKGUpW3RdKFN0cmluZyhyKSl9LGZ1bmN0aW9uKHQpe3ZhciBuPXIoZSx0LHRoaXMpO2lmKG4uZG9uZSlyZXR1cm4gbi52YWx1ZTt2YXIgbz1SKHQpLGk9U3RyaW5nKHRoaXMpO2lmKCFvLmdsb2JhbClyZXR1cm4gRmkobyxpKTt2YXIgYT1vLnVuaWNvZGU7by5sYXN0SW5kZXg9MDtmb3IodmFyIHUscz1bXSxjPTA7bnVsbCE9PSh1PUZpKG8saSkpOyl7dmFyIGY9U3RyaW5nKHVbMF0pO3NbY109ZixcIlwiPT09ZiYmKG8ubGFzdEluZGV4PUNpKGksY3Qoby5sYXN0SW5kZXgpLGEpKSxjKyt9cmV0dXJuIDA9PT1jP251bGw6c31dfSk7dmFyIEJpPU1hdGgubWF4LERpPU1hdGgubWluLHFpPU1hdGguZmxvb3Isemk9L1xcJChbJCYnYF18XFxkXFxkP3w8W14+XSo+KS9nLFdpPS9cXCQoWyQmJ2BdfFxcZFxcZD8pL2c7X2koXCJyZXBsYWNlXCIsMixmdW5jdGlvbih0LGUscixuKXt2YXIgbz1uLlJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFLGk9bi5SRVBMQUNFX0tFRVBTXyQwLGE9bz9cIiRcIjpcIiQwXCI7cmV0dXJuW2Z1bmN0aW9uKHIsbil7dmFyIG89ZCh0aGlzKSxpPW51bGw9PXI/dm9pZCAwOnJbdF07cmV0dXJuIHZvaWQgMCE9PWk/aS5jYWxsKHIsbyxuKTplLmNhbGwoU3RyaW5nKG8pLHIsbil9LGZ1bmN0aW9uKHQsbil7aWYoIW8mJml8fFwic3RyaW5nXCI9PXR5cGVvZiBuJiYtMT09PW4uaW5kZXhPZihhKSl7dmFyIHM9cihlLHQsdGhpcyxuKTtpZihzLmRvbmUpcmV0dXJuIHMudmFsdWV9dmFyIGM9Uih0KSxmPVN0cmluZyh0aGlzKSxsPVwiZnVuY3Rpb25cIj09dHlwZW9mIG47bHx8KG49U3RyaW5nKG4pKTt2YXIgaD1jLmdsb2JhbDtpZihoKXt2YXIgcD1jLnVuaWNvZGU7Yy5sYXN0SW5kZXg9MH1mb3IodmFyIGQ9W107Oyl7dmFyIHY9RmkoYyxmKTtpZihudWxsPT09dilicmVhaztpZihkLnB1c2godiksIWgpYnJlYWs7XCJcIj09PVN0cmluZyh2WzBdKSYmKGMubGFzdEluZGV4PUNpKGYsY3QoYy5sYXN0SW5kZXgpLHApKX1mb3IodmFyIGcseT1cIlwiLG09MCxiPTA7YjxkLmxlbmd0aDtiKyspe3Y9ZFtiXTtmb3IodmFyIHc9U3RyaW5nKHZbMF0pLFM9QmkoRGkodXQodi5pbmRleCksZi5sZW5ndGgpLDApLEU9W10seD0xO3g8di5sZW5ndGg7eCsrKUUucHVzaCh2b2lkIDA9PT0oZz12W3hdKT9nOlN0cmluZyhnKSk7dmFyIEE9di5ncm91cHM7aWYobCl7dmFyIE89W3ddLmNvbmNhdChFLFMsZik7dm9pZCAwIT09QSYmTy5wdXNoKEEpO3ZhciBqPVN0cmluZyhuLmFwcGx5KHZvaWQgMCxPKSl9ZWxzZSBqPXUodyxmLFMsRSxBLG4pO1M+PW0mJih5Kz1mLnNsaWNlKG0sUykraixtPVMrdy5sZW5ndGgpfXJldHVybiB5K2Yuc2xpY2UobSl9XTtmdW5jdGlvbiB1KHQscixuLG8saSxhKXt2YXIgdT1uK3QubGVuZ3RoLHM9by5sZW5ndGgsYz1XaTtyZXR1cm4gdm9pZCAwIT09aSYmKGk9THQoaSksYz16aSksZS5jYWxsKGEsYyxmdW5jdGlvbihlLGEpe3ZhciBjO3N3aXRjaChhLmNoYXJBdCgwKSl7Y2FzZVwiJFwiOnJldHVyblwiJFwiO2Nhc2VcIiZcIjpyZXR1cm4gdDtjYXNlXCJgXCI6cmV0dXJuIHIuc2xpY2UoMCxuKTtjYXNlXCInXCI6cmV0dXJuIHIuc2xpY2UodSk7Y2FzZVwiPFwiOmM9aVthLnNsaWNlKDEsLTEpXTticmVhaztkZWZhdWx0OnZhciBmPSthO2lmKDA9PT1mKXJldHVybiBlO2lmKGY+cyl7dmFyIGw9cWkoZi8xMCk7cmV0dXJuIDA9PT1sP2U6bDw9cz92b2lkIDA9PT1vW2wtMV0/YS5jaGFyQXQoMSk6b1tsLTFdK2EuY2hhckF0KDEpOmV9Yz1vW2YtMV19cmV0dXJuIHZvaWQgMD09PWM/XCJcIjpjfSl9fSksX2koXCJzZWFyY2hcIiwxLGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bZnVuY3Rpb24oZSl7dmFyIHI9ZCh0aGlzKSxuPW51bGw9PWU/dm9pZCAwOmVbdF07cmV0dXJuIHZvaWQgMCE9PW4/bi5jYWxsKGUscik6bmV3IFJlZ0V4cChlKVt0XShTdHJpbmcocikpfSxmdW5jdGlvbih0KXt2YXIgbj1yKGUsdCx0aGlzKTtpZihuLmRvbmUpcmV0dXJuIG4udmFsdWU7dmFyIG89Uih0KSxpPVN0cmluZyh0aGlzKSxhPW8ubGFzdEluZGV4O0duKGEsMCl8fChvLmxhc3RJbmRleD0wKTt2YXIgdT1GaShvLGkpO3JldHVybiBHbihvLmxhc3RJbmRleCxhKXx8KG8ubGFzdEluZGV4PWEpLG51bGw9PT11Py0xOnUuaW5kZXh9XX0pO3ZhciBLaT1bXS5wdXNoLEdpPU1hdGgubWluLCRpPTQyOTQ5NjcyOTUsVmk9IW8oZnVuY3Rpb24oKXtyZXR1cm4hUmVnRXhwKCRpLFwieVwiKX0pO19pKFwic3BsaXRcIiwyLGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjtyZXR1cm4gbj1cImNcIj09XCJhYmJjXCIuc3BsaXQoLyhiKSovKVsxXXx8NCE9XCJ0ZXN0XCIuc3BsaXQoLyg/OikvLC0xKS5sZW5ndGh8fDIhPVwiYWJcIi5zcGxpdCgvKD86YWIpKi8pLmxlbmd0aHx8NCE9XCIuXCIuc3BsaXQoLyguPykoLj8pLykubGVuZ3RofHxcIi5cIi5zcGxpdCgvKCkoKS8pLmxlbmd0aD4xfHxcIlwiLnNwbGl0KC8uPy8pLmxlbmd0aD9mdW5jdGlvbih0LHIpe3ZhciBuPVN0cmluZyhkKHRoaXMpKSxvPXZvaWQgMD09PXI/JGk6cj4+PjA7aWYoMD09PW8pcmV0dXJuW107aWYodm9pZCAwPT09dClyZXR1cm5bbl07aWYoIVhvKHQpKXJldHVybiBlLmNhbGwobix0LG8pO2Zvcih2YXIgaSxhLHUscz1bXSxjPTAsZj1uZXcgUmVnRXhwKHQuc291cmNlLCh0Lmlnbm9yZUNhc2U/XCJpXCI6XCJcIikrKHQubXVsdGlsaW5lP1wibVwiOlwiXCIpKyh0LnVuaWNvZGU/XCJ1XCI6XCJcIikrKHQuc3RpY2t5P1wieVwiOlwiXCIpK1wiZ1wiKTsoaT1FaS5jYWxsKGYsbikpJiYhKChhPWYubGFzdEluZGV4KT5jJiYocy5wdXNoKG4uc2xpY2UoYyxpLmluZGV4KSksaS5sZW5ndGg+MSYmaS5pbmRleDxuLmxlbmd0aCYmS2kuYXBwbHkocyxpLnNsaWNlKDEpKSx1PWlbMF0ubGVuZ3RoLGM9YSxzLmxlbmd0aD49bykpOylmLmxhc3RJbmRleD09PWkuaW5kZXgmJmYubGFzdEluZGV4Kys7cmV0dXJuIGM9PT1uLmxlbmd0aD8hdSYmZi50ZXN0KFwiXCIpfHxzLnB1c2goXCJcIik6cy5wdXNoKG4uc2xpY2UoYykpLHMubGVuZ3RoPm8/cy5zbGljZSgwLG8pOnN9OlwiMFwiLnNwbGl0KHZvaWQgMCwwKS5sZW5ndGg/ZnVuY3Rpb24odCxyKXtyZXR1cm4gdm9pZCAwPT09dCYmMD09PXI/W106ZS5jYWxsKHRoaXMsdCxyKX06ZSxbZnVuY3Rpb24oZSxyKXt2YXIgbz1kKHRoaXMpLGk9bnVsbD09ZT92b2lkIDA6ZVt0XTtyZXR1cm4gdm9pZCAwIT09aT9pLmNhbGwoZSxvLHIpOm4uY2FsbChTdHJpbmcobyksZSxyKX0sZnVuY3Rpb24odCxvKXt2YXIgaT1yKG4sdCx0aGlzLG8sbiE9PWUpO2lmKGkuZG9uZSlyZXR1cm4gaS52YWx1ZTt2YXIgYT1SKHQpLHU9U3RyaW5nKHRoaXMpLHM9c24oYSxSZWdFeHApLGM9YS51bmljb2RlLGY9bmV3IHMoVmk/YTpcIl4oPzpcIithLnNvdXJjZStcIilcIiwoYS5pZ25vcmVDYXNlP1wiaVwiOlwiXCIpKyhhLm11bHRpbGluZT9cIm1cIjpcIlwiKSsoYS51bmljb2RlP1widVwiOlwiXCIpKyhWaT9cInlcIjpcImdcIikpLGw9dm9pZCAwPT09bz8kaTpvPj4+MDtpZigwPT09bClyZXR1cm5bXTtpZigwPT09dS5sZW5ndGgpcmV0dXJuIG51bGw9PT1GaShmLHUpP1t1XTpbXTtmb3IodmFyIGg9MCxwPTAsZD1bXTtwPHUubGVuZ3RoOyl7Zi5sYXN0SW5kZXg9Vmk/cDowO3ZhciB2LGc9RmkoZixWaT91OnUuc2xpY2UocCkpO2lmKG51bGw9PT1nfHwodj1HaShjdChmLmxhc3RJbmRleCsoVmk/MDpwKSksdS5sZW5ndGgpKT09PWgpcD1DaSh1LHAsYyk7ZWxzZXtpZihkLnB1c2godS5zbGljZShoLHApKSxkLmxlbmd0aD09PWwpcmV0dXJuIGQ7Zm9yKHZhciB5PTE7eTw9Zy5sZW5ndGgtMTt5KyspaWYoZC5wdXNoKGdbeV0pLGQubGVuZ3RoPT09bClyZXR1cm4gZDtwPWg9dn19cmV0dXJuIGQucHVzaCh1LnNsaWNlKGgpKSxkfV19LCFWaSksa3Qoe3RhcmdldDpcIlNldFwiLHN0YXQ6ITB9LHtmcm9tOmVufSksa3Qoe3RhcmdldDpcIlNldFwiLHN0YXQ6ITB9LHtvZjpybn0pO3ZhciBIaT1mdW5jdGlvbigpe2Zvcih2YXIgdD1SKHRoaXMpLGU9UXQodC5hZGQpLHI9MCxuPWFyZ3VtZW50cy5sZW5ndGg7cjxuO3IrKyllLmNhbGwodCxhcmd1bWVudHNbcl0pO3JldHVybiB0fTtrdCh7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se2FkZEFsbDpmdW5jdGlvbigpe3JldHVybiBIaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSksa3Qoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHtkZWxldGVBbGw6ZnVuY3Rpb24oKXtyZXR1cm4gbm4uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pO3ZhciBYaT1mdW5jdGlvbih0KXtyZXR1cm4gU2V0LnByb3RvdHlwZS52YWx1ZXMuY2FsbCh0KX07a3Qoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHtldmVyeTpmdW5jdGlvbih0KXt2YXIgZT1SKHRoaXMpLHI9WGkoZSksbj1adCh0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDMpO3JldHVybiFNcihyLGZ1bmN0aW9uKHQpe2lmKCFuKHQsdCxlKSlyZXR1cm4gTXIuc3RvcCgpfSx2b2lkIDAsITEsITApLnN0b3BwZWR9fSksa3Qoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHtkaWZmZXJlbmNlOmZ1bmN0aW9uKHQpe3ZhciBlPVIodGhpcykscj1uZXcoc24oZSxvdChcIlNldFwiKSkpKGUpLG49UXQoci5kZWxldGUpO3JldHVybiBNcih0LGZ1bmN0aW9uKHQpe24uY2FsbChyLHQpfSkscn19KSxrdCh7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se2ZpbHRlcjpmdW5jdGlvbih0KXt2YXIgZT1SKHRoaXMpLHI9WGkoZSksbj1adCh0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDMpLG89bmV3KHNuKGUsb3QoXCJTZXRcIikpKSxpPVF0KG8uYWRkKTtyZXR1cm4gTXIocixmdW5jdGlvbih0KXtuKHQsdCxlKSYmaS5jYWxsKG8sdCl9LHZvaWQgMCwhMSwhMCksb319KSxrdCh7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se2ZpbmQ6ZnVuY3Rpb24odCl7dmFyIGU9Uih0aGlzKSxyPVhpKGUpLG49WnQodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKTtyZXR1cm4gTXIocixmdW5jdGlvbih0KXtpZihuKHQsdCxlKSlyZXR1cm4gTXIuc3RvcCh0KX0sdm9pZCAwLCExLCEwKS5yZXN1bHR9fSksa3Qoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHtpbnRlcnNlY3Rpb246ZnVuY3Rpb24odCl7dmFyIGU9Uih0aGlzKSxyPW5ldyhzbihlLG90KFwiU2V0XCIpKSksbj1RdChlLmhhcyksbz1RdChyLmFkZCk7cmV0dXJuIE1yKHQsZnVuY3Rpb24odCl7bi5jYWxsKGUsdCkmJm8uY2FsbChyLHQpfSkscn19KSxrdCh7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se2lzRGlzam9pbnRGcm9tOmZ1bmN0aW9uKHQpe3ZhciBlPVIodGhpcykscj1RdChlLmhhcyk7cmV0dXJuIU1yKHQsZnVuY3Rpb24odCl7aWYoITA9PT1yLmNhbGwoZSx0KSlyZXR1cm4gTXIuc3RvcCgpfSkuc3RvcHBlZH19KSxrdCh7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se2lzU3Vic2V0T2Y6ZnVuY3Rpb24odCl7dmFyIGU9b24odGhpcykscj1SKHQpLG49ci5oYXM7cmV0dXJuXCJmdW5jdGlvblwiIT10eXBlb2YgbiYmKHI9bmV3KG90KFwiU2V0XCIpKSh0KSxuPVF0KHIuaGFzKSksIU1yKGUsZnVuY3Rpb24odCl7aWYoITE9PT1uLmNhbGwocix0KSlyZXR1cm4gTXIuc3RvcCgpfSx2b2lkIDAsITEsITApLnN0b3BwZWR9fSksa3Qoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHtpc1N1cGVyc2V0T2Y6ZnVuY3Rpb24odCl7dmFyIGU9Uih0aGlzKSxyPVF0KGUuaGFzKTtyZXR1cm4hTXIodCxmdW5jdGlvbih0KXtpZighMT09PXIuY2FsbChlLHQpKXJldHVybiBNci5zdG9wKCl9KS5zdG9wcGVkfX0pLGt0KHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7am9pbjpmdW5jdGlvbih0KXt2YXIgZT1SKHRoaXMpLHI9WGkoZSksbj12b2lkIDA9PT10P1wiLFwiOlN0cmluZyh0KSxvPVtdO3JldHVybiBNcihyLG8ucHVzaCxvLCExLCEwKSxvLmpvaW4obil9fSksa3Qoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHttYXA6ZnVuY3Rpb24odCl7dmFyIGU9Uih0aGlzKSxyPVhpKGUpLG49WnQodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKSxvPW5ldyhzbihlLG90KFwiU2V0XCIpKSksaT1RdChvLmFkZCk7cmV0dXJuIE1yKHIsZnVuY3Rpb24odCl7aS5jYWxsKG8sbih0LHQsZSkpfSx2b2lkIDAsITEsITApLG99fSksa3Qoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHtyZWR1Y2U6ZnVuY3Rpb24odCl7dmFyIGU9Uih0aGlzKSxyPVhpKGUpLG49YXJndW1lbnRzLmxlbmd0aDwyLG89bj92b2lkIDA6YXJndW1lbnRzWzFdO2lmKFF0KHQpLE1yKHIsZnVuY3Rpb24ocil7bj8obj0hMSxvPXIpOm89dChvLHIscixlKX0sdm9pZCAwLCExLCEwKSxuKXRocm93IFR5cGVFcnJvcihcIlJlZHVjZSBvZiBlbXB0eSBzZXQgd2l0aCBubyBpbml0aWFsIHZhbHVlXCIpO3JldHVybiBvfX0pLGt0KHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7c29tZTpmdW5jdGlvbih0KXt2YXIgZT1SKHRoaXMpLHI9WGkoZSksbj1adCh0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDMpO3JldHVybiBNcihyLGZ1bmN0aW9uKHQpe2lmKG4odCx0LGUpKXJldHVybiBNci5zdG9wKCl9LHZvaWQgMCwhMSwhMCkuc3RvcHBlZH19KSxrdCh7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se3N5bW1ldHJpY0RpZmZlcmVuY2U6ZnVuY3Rpb24odCl7dmFyIGU9Uih0aGlzKSxyPW5ldyhzbihlLG90KFwiU2V0XCIpKSkoZSksbj1RdChyLmRlbGV0ZSksbz1RdChyLmFkZCk7cmV0dXJuIE1yKHQsZnVuY3Rpb24odCl7bi5jYWxsKHIsdCl8fG8uY2FsbChyLHQpfSkscn19KSxrdCh7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se3VuaW9uOmZ1bmN0aW9uKHQpe3ZhciBlPVIodGhpcykscj1uZXcoc24oZSxvdChcIlNldFwiKSkpKGUpO3JldHVybiBNcih0LFF0KHIuYWRkKSxyKSxyfX0pO3ZhciBZaSxKaSxRaT1vdChcIm5hdmlnYXRvclwiLFwidXNlckFnZW50XCIpfHxcIlwiLFppPW4ucHJvY2Vzcyx0YT1aaSYmWmkudmVyc2lvbnMsZWE9dGEmJnRhLnY4O2VhP0ppPShZaT1lYS5zcGxpdChcIi5cIikpWzBdK1lpWzFdOlFpJiYoIShZaT1RaS5tYXRjaCgvRWRnZVxcLyhcXGQrKS8pKXx8WWlbMV0+PTc0KSYmKFlpPVFpLm1hdGNoKC9DaHJvbWVcXC8oXFxkKykvKSkmJihKaT1ZaVsxXSk7dmFyIHJhPUppJiYrSmksbmE9RHQoXCJzcGVjaWVzXCIpLG9hPUR0KFwiaXNDb25jYXRTcHJlYWRhYmxlXCIpLGlhPTkwMDcxOTkyNTQ3NDA5OTEsYWE9XCJNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWRcIix1YT1yYT49NTF8fCFvKGZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRbb2FdPSExLHQuY29uY2F0KClbMF0hPT10fSksc2E9cmE+PTUxfHwhbyhmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybih0LmNvbnN0cnVjdG9yPXt9KVtuYV09ZnVuY3Rpb24oKXtyZXR1cm57Zm9vOjF9fSwxIT09dC5jb25jYXQoQm9vbGVhbikuZm9vfSksY2E9ZnVuY3Rpb24odCl7aWYoIWcodCkpcmV0dXJuITE7dmFyIGU9dFtvYV07cmV0dXJuIHZvaWQgMCE9PWU/ISFlOnJlKHQpfTtrdCh7dGFyZ2V0OlwiQXJyYXlcIixwcm90bzohMCxmb3JjZWQ6IXVhfHwhc2F9LHtjb25jYXQ6ZnVuY3Rpb24odCl7dmFyIGUscixuLG8saSxhPUx0KHRoaXMpLHU9b2UoYSwwKSxzPTA7Zm9yKGU9LTEsbj1hcmd1bWVudHMubGVuZ3RoO2U8bjtlKyspaWYoY2EoaT0tMT09PWU/YTphcmd1bWVudHNbZV0pKXtpZihzKyhvPWN0KGkubGVuZ3RoKSk+aWEpdGhyb3cgVHlwZUVycm9yKGFhKTtmb3Iocj0wO3I8bztyKysscysrKXIgaW4gaSYmb3IodSxzLGlbcl0pfWVsc2V7aWYocz49aWEpdGhyb3cgVHlwZUVycm9yKGFhKTtvcih1LHMrKyxpKX1yZXR1cm4gdS5sZW5ndGg9cyx1fX0pO3ZhciBmYT1idC5mLGxhPXt9LnRvU3RyaW5nLGhhPVwib2JqZWN0XCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMod2luZG93KTpbXSxwYT17ZjpmdW5jdGlvbih0KXtyZXR1cm4gaGEmJlwiW29iamVjdCBXaW5kb3ddXCI9PWxhLmNhbGwodCk/ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBmYSh0KX1jYXRjaCh0KXtyZXR1cm4gaGEuc2xpY2UoKX19KHQpOmZhKHYodCkpfX0sZGE9e2Y6RHR9LHZhPVAuZixnYT1mdW5jdGlvbih0KXt2YXIgZT1ydC5TeW1ib2x8fChydC5TeW1ib2w9e30pO2IoZSx0KXx8dmEoZSx0LHt2YWx1ZTpkYS5mKHQpfSl9LHlhPXVlLmZvckVhY2gsbWE9JChcImhpZGRlblwiKSxiYT1cIlN5bWJvbFwiLHdhPUR0KFwidG9QcmltaXRpdmVcIiksU2E9dHQuc2V0LEVhPXR0LmdldHRlckZvcihiYSkseGE9T2JqZWN0LnByb3RvdHlwZSxBYT1uLlN5bWJvbCxPYT1vdChcIkpTT05cIixcInN0cmluZ2lmeVwiKSxSYT1PLmYsamE9UC5mLFBhPXBhLmYsSWE9cy5mLFRhPXEoXCJzeW1ib2xzXCIpLGthPXEoXCJvcC1zeW1ib2xzXCIpLExhPXEoXCJzdHJpbmctdG8tc3ltYm9sLXJlZ2lzdHJ5XCIpLFVhPXEoXCJzeW1ib2wtdG8tc3RyaW5nLXJlZ2lzdHJ5XCIpLE1hPXEoXCJ3a3NcIiksX2E9bi5RT2JqZWN0LE5hPSFfYXx8IV9hLnByb3RvdHlwZXx8IV9hLnByb3RvdHlwZS5maW5kQ2hpbGQsQ2E9aSYmbyhmdW5jdGlvbigpe3JldHVybiA3IT1IdChqYSh7fSxcImFcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGphKHRoaXMsXCJhXCIse3ZhbHVlOjd9KS5hfX0pKS5hfSk/ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVJhKHhhLGUpO24mJmRlbGV0ZSB4YVtlXSxqYSh0LGUsciksbiYmdCE9PXhhJiZqYSh4YSxlLG4pfTpqYSxGYT1mdW5jdGlvbih0LGUpe3ZhciByPVRhW3RdPUh0KEFhLnByb3RvdHlwZSk7cmV0dXJuIFNhKHIse3R5cGU6YmEsdGFnOnQsZGVzY3JpcHRpb246ZX0pLGl8fChyLmRlc2NyaXB0aW9uPWUpLHJ9LEJhPU50P2Z1bmN0aW9uKHQpe3JldHVyblwic3ltYm9sXCI9PXR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0KHQpaW5zdGFuY2VvZiBBYX0sRGE9ZnVuY3Rpb24odCxlLHIpe3Q9PT14YSYmRGEoa2EsZSxyKSxSKHQpO3ZhciBuPXkoZSwhMCk7cmV0dXJuIFIociksYihUYSxuKT8oci5lbnVtZXJhYmxlPyhiKHQsbWEpJiZ0W21hXVtuXSYmKHRbbWFdW25dPSExKSxyPUh0KHIse2VudW1lcmFibGU6YygwLCExKX0pKTooYih0LG1hKXx8amEodCxtYSxjKDEse30pKSx0W21hXVtuXT0hMCksQ2EodCxuLHIpKTpqYSh0LG4scil9LHFhPWZ1bmN0aW9uKHQsZSl7Uih0KTt2YXIgcj12KGUpLG49cXQocikuY29uY2F0KEdhKHIpKTtyZXR1cm4geWEobixmdW5jdGlvbihlKXtpJiYhemEuY2FsbChyLGUpfHxEYSh0LGUscltlXSl9KSx0fSx6YT1mdW5jdGlvbih0KXt2YXIgZT15KHQsITApLHI9SWEuY2FsbCh0aGlzLGUpO3JldHVybiEodGhpcz09PXhhJiZiKFRhLGUpJiYhYihrYSxlKSkmJighKHJ8fCFiKHRoaXMsZSl8fCFiKFRhLGUpfHxiKHRoaXMsbWEpJiZ0aGlzW21hXVtlXSl8fHIpfSxXYT1mdW5jdGlvbih0LGUpe3ZhciByPXYodCksbj15KGUsITApO2lmKHIhPT14YXx8IWIoVGEsbil8fGIoa2Esbikpe3ZhciBvPVJhKHIsbik7cmV0dXJuIW98fCFiKFRhLG4pfHxiKHIsbWEpJiZyW21hXVtuXXx8KG8uZW51bWVyYWJsZT0hMCksb319LEthPWZ1bmN0aW9uKHQpe3ZhciBlPVBhKHYodCkpLHI9W107cmV0dXJuIHlhKGUsZnVuY3Rpb24odCl7YihUYSx0KXx8YihWLHQpfHxyLnB1c2godCl9KSxyfSxHYT1mdW5jdGlvbih0KXt2YXIgZT10PT09eGEscj1QYShlP2thOnYodCkpLG49W107cmV0dXJuIHlhKHIsZnVuY3Rpb24odCl7IWIoVGEsdCl8fGUmJiFiKHhhLHQpfHxuLnB1c2goVGFbdF0pfSksbn07aWYoX3R8fChldCgoQWE9ZnVuY3Rpb24oKXtpZih0aGlzIGluc3RhbmNlb2YgQWEpdGhyb3cgVHlwZUVycm9yKFwiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yXCIpO3ZhciB0PWFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9TdHJpbmcoYXJndW1lbnRzWzBdKTp2b2lkIDAsZT1LKHQpLHI9ZnVuY3Rpb24gdChyKXt0aGlzPT09eGEmJnQuY2FsbChrYSxyKSxiKHRoaXMsbWEpJiZiKHRoaXNbbWFdLGUpJiYodGhpc1ttYV1bZV09ITEpLENhKHRoaXMsZSxjKDEscikpfTtyZXR1cm4gaSYmTmEmJkNhKHhhLGUse2NvbmZpZ3VyYWJsZTohMCxzZXQ6cn0pLEZhKGUsdCl9KS5wcm90b3R5cGUsXCJ0b1N0cmluZ1wiLGZ1bmN0aW9uKCl7cmV0dXJuIEVhKHRoaXMpLnRhZ30pLGV0KEFhLFwid2l0aG91dFNldHRlclwiLGZ1bmN0aW9uKHQpe3JldHVybiBGYShLKHQpLHQpfSkscy5mPXphLFAuZj1EYSxPLmY9V2EsYnQuZj1wYS5mPUthLHd0LmY9R2EsZGEuZj1mdW5jdGlvbih0KXtyZXR1cm4gRmEoRHQodCksdCl9LGkmJihqYShBYS5wcm90b3R5cGUsXCJkZXNjcmlwdGlvblwiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEVhKHRoaXMpLmRlc2NyaXB0aW9ufX0pLGV0KHhhLFwicHJvcGVydHlJc0VudW1lcmFibGVcIix6YSx7dW5zYWZlOiEwfSkpKSxrdCh7Z2xvYmFsOiEwLHdyYXA6ITAsZm9yY2VkOiFfdCxzaGFtOiFfdH0se1N5bWJvbDpBYX0pLHlhKHF0KE1hKSxmdW5jdGlvbih0KXtnYSh0KX0pLGt0KHt0YXJnZXQ6YmEsc3RhdDohMCxmb3JjZWQ6IV90fSx7Zm9yOmZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyh0KTtpZihiKExhLGUpKXJldHVybiBMYVtlXTt2YXIgcj1BYShlKTtyZXR1cm4gTGFbZV09cixVYVtyXT1lLHJ9LGtleUZvcjpmdW5jdGlvbih0KXtpZighQmEodCkpdGhyb3cgVHlwZUVycm9yKHQrXCIgaXMgbm90IGEgc3ltYm9sXCIpO2lmKGIoVWEsdCkpcmV0dXJuIFVhW3RdfSx1c2VTZXR0ZXI6ZnVuY3Rpb24oKXtOYT0hMH0sdXNlU2ltcGxlOmZ1bmN0aW9uKCl7TmE9ITF9fSksa3Qoe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITAsZm9yY2VkOiFfdCxzaGFtOiFpfSx7Y3JlYXRlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWU/SHQodCk6cWEoSHQodCksZSl9LGRlZmluZVByb3BlcnR5OkRhLGRlZmluZVByb3BlcnRpZXM6cWEsZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOldhfSksa3Qoe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITAsZm9yY2VkOiFfdH0se2dldE93blByb3BlcnR5TmFtZXM6S2EsZ2V0T3duUHJvcGVydHlTeW1ib2xzOkdhfSksa3Qoe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITAsZm9yY2VkOm8oZnVuY3Rpb24oKXt3dC5mKDEpfSl9LHtnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6ZnVuY3Rpb24odCl7cmV0dXJuIHd0LmYoTHQodCkpfX0pLE9hKXt2YXIgJGE9IV90fHxvKGZ1bmN0aW9uKCl7dmFyIHQ9QWEoKTtyZXR1cm5cIltudWxsXVwiIT1PYShbdF0pfHxcInt9XCIhPU9hKHthOnR9KXx8XCJ7fVwiIT1PYShPYmplY3QodCkpfSk7a3Qoe3RhcmdldDpcIkpTT05cIixzdGF0OiEwLGZvcmNlZDokYX0se3N0cmluZ2lmeTpmdW5jdGlvbih0LGUscil7Zm9yKHZhciBuLG89W3RdLGk9MTthcmd1bWVudHMubGVuZ3RoPmk7KW8ucHVzaChhcmd1bWVudHNbaSsrXSk7aWYobj1lLChnKGUpfHx2b2lkIDAhPT10KSYmIUJhKHQpKXJldHVybiByZShlKXx8KGU9ZnVuY3Rpb24odCxlKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBuJiYoZT1uLmNhbGwodGhpcyx0LGUpKSwhQmEoZSkpcmV0dXJuIGV9KSxvWzFdPWUsT2EuYXBwbHkobnVsbCxvKX19KX1BYS5wcm90b3R5cGVbd2FdfHxJKEFhLnByb3RvdHlwZSx3YSxBYS5wcm90b3R5cGUudmFsdWVPZiksX2UoQWEsYmEpLFZbbWFdPSEwLGdhKFwiYXN5bmNJdGVyYXRvclwiKTt2YXIgVmE9UC5mLEhhPW4uU3ltYm9sO2lmKGkmJlwiZnVuY3Rpb25cIj09dHlwZW9mIEhhJiYoIShcImRlc2NyaXB0aW9uXCJpbiBIYS5wcm90b3R5cGUpfHx2b2lkIDAhPT1IYSgpLmRlc2NyaXB0aW9uKSl7dmFyIFhhPXt9LFlhPWZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aDwxfHx2b2lkIDA9PT1hcmd1bWVudHNbMF0/dm9pZCAwOlN0cmluZyhhcmd1bWVudHNbMF0pLGU9dGhpcyBpbnN0YW5jZW9mIFlhP25ldyBIYSh0KTp2b2lkIDA9PT10P0hhKCk6SGEodCk7cmV0dXJuXCJcIj09PXQmJihYYVtlXT0hMCksZX07RXQoWWEsSGEpO3ZhciBKYT1ZYS5wcm90b3R5cGU9SGEucHJvdG90eXBlO0phLmNvbnN0cnVjdG9yPVlhO3ZhciBRYT1KYS50b1N0cmluZyxaYT1cIlN5bWJvbCh0ZXN0KVwiPT1TdHJpbmcoSGEoXCJ0ZXN0XCIpKSx0dT0vXlN5bWJvbFxcKCguKilcXClbXildKyQvO1ZhKEphLFwiZGVzY3JpcHRpb25cIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciB0PWcodGhpcyk/dGhpcy52YWx1ZU9mKCk6dGhpcyxlPVFhLmNhbGwodCk7aWYoYihYYSx0KSlyZXR1cm5cIlwiO3ZhciByPVphP2Uuc2xpY2UoNywtMSk6ZS5yZXBsYWNlKHR1LFwiJDFcIik7cmV0dXJuXCJcIj09PXI/dm9pZCAwOnJ9fSksa3Qoe2dsb2JhbDohMCxmb3JjZWQ6ITB9LHtTeW1ib2w6WWF9KX1nYShcImhhc0luc3RhbmNlXCIpLGdhKFwiaXNDb25jYXRTcHJlYWRhYmxlXCIpLGdhKFwiaXRlcmF0b3JcIiksZ2EoXCJtYXRjaFwiKSxnYShcIm1hdGNoQWxsXCIpLGdhKFwicmVwbGFjZVwiKSxnYShcInNlYXJjaFwiKSxnYShcInNwZWNpZXNcIiksZ2EoXCJzcGxpdFwiKSxnYShcInRvUHJpbWl0aXZlXCIpLGdhKFwidG9TdHJpbmdUYWdcIiksZ2EoXCJ1bnNjb3BhYmxlc1wiKSxfZShNYXRoLFwiTWF0aFwiLCEwKSxfZShuLkpTT04sXCJKU09OXCIsITApLGdhKFwiYXN5bmNEaXNwb3NlXCIpLGdhKFwiZGlzcG9zZVwiKSxnYShcIm9ic2VydmFibGVcIiksZ2EoXCJwYXR0ZXJuTWF0Y2hcIiksZ2EoXCJyZXBsYWNlQWxsXCIpLGRhLmYoXCJhc3luY0l0ZXJhdG9yXCIpO3ZhciBldT1PZS5jb2RlQXQ7a3Qoe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwfSx7Y29kZVBvaW50QXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGV1KHRoaXMsdCl9fSksZWUoXCJTdHJpbmdcIixcImNvZGVQb2ludEF0XCIpO3ZhciBydSxudT1mdW5jdGlvbih0KXtpZihYbyh0KSl0aHJvdyBUeXBlRXJyb3IoXCJUaGUgbWV0aG9kIGRvZXNuJ3QgYWNjZXB0IHJlZ3VsYXIgZXhwcmVzc2lvbnNcIik7cmV0dXJuIHR9LG91PUR0KFwibWF0Y2hcIiksaXU9ZnVuY3Rpb24odCl7dmFyIGU9Ly4vO3RyeXtcIi8uL1wiW3RdKGUpfWNhdGNoKHIpe3RyeXtyZXR1cm4gZVtvdV09ITEsXCIvLi9cIlt0XShlKX1jYXRjaCh0KXt9fXJldHVybiExfSxhdT1PLmYsdXU9XCJcIi5lbmRzV2l0aCxzdT1NYXRoLm1pbixjdT1pdShcImVuZHNXaXRoXCIpLGZ1PSEoY3V8fChydT1hdShTdHJpbmcucHJvdG90eXBlLFwiZW5kc1dpdGhcIiksIXJ1fHxydS53cml0YWJsZSkpO2t0KHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6IWZ1JiYhY3V9LHtlbmRzV2l0aDpmdW5jdGlvbih0KXt2YXIgZT1TdHJpbmcoZCh0aGlzKSk7bnUodCk7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsbj1jdChlLmxlbmd0aCksbz12b2lkIDA9PT1yP246c3UoY3QociksbiksaT1TdHJpbmcodCk7cmV0dXJuIHV1P3V1LmNhbGwoZSxpLG8pOmUuc2xpY2Uoby1pLmxlbmd0aCxvKT09PWl9fSksZWUoXCJTdHJpbmdcIixcImVuZHNXaXRoXCIpO3ZhciBsdT1TdHJpbmcuZnJvbUNoYXJDb2RlLGh1PVN0cmluZy5mcm9tQ29kZVBvaW50O2t0KHt0YXJnZXQ6XCJTdHJpbmdcIixzdGF0OiEwLGZvcmNlZDohIWh1JiYxIT1odS5sZW5ndGh9LHtmcm9tQ29kZVBvaW50OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPVtdLG49YXJndW1lbnRzLmxlbmd0aCxvPTA7bj5vOyl7aWYoZT0rYXJndW1lbnRzW28rK10saHQoZSwxMTE0MTExKSE9PWUpdGhyb3cgUmFuZ2VFcnJvcihlK1wiIGlzIG5vdCBhIHZhbGlkIGNvZGUgcG9pbnRcIik7ci5wdXNoKGU8NjU1MzY/bHUoZSk6bHUoNTUyOTYrKChlLT02NTUzNik+PjEwKSxlJTEwMjQrNTYzMjApKX1yZXR1cm4gci5qb2luKFwiXCIpfX0pLGt0KHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6IWl1KFwiaW5jbHVkZXNcIil9LHtpbmNsdWRlczpmdW5jdGlvbih0KXtyZXR1cm4hIX5TdHJpbmcoZCh0aGlzKSkuaW5kZXhPZihudSh0KSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksZWUoXCJTdHJpbmdcIixcImluY2x1ZGVzXCIpO3ZhciBwdT1cIlwiLnJlcGVhdHx8ZnVuY3Rpb24odCl7dmFyIGU9U3RyaW5nKGQodGhpcykpLHI9XCJcIixuPXV0KHQpO2lmKG48MHx8SW5maW5pdHk9PW4pdGhyb3cgUmFuZ2VFcnJvcihcIldyb25nIG51bWJlciBvZiByZXBldGl0aW9uc1wiKTtmb3IoO24+MDsobj4+Pj0xKSYmKGUrPWUpKTEmbiYmKHIrPWUpO3JldHVybiByfSxkdT1NYXRoLmNlaWwsdnU9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscixuKXt2YXIgbyxpLGE9U3RyaW5nKGQoZSkpLHU9YS5sZW5ndGgscz12b2lkIDA9PT1uP1wiIFwiOlN0cmluZyhuKSxjPWN0KHIpO3JldHVybiBjPD11fHxcIlwiPT1zP2E6KChpPXB1LmNhbGwocyxkdSgobz1jLXUpL3MubGVuZ3RoKSkpLmxlbmd0aD5vJiYoaT1pLnNsaWNlKDAsbykpLHQ/YStpOmkrYSl9fSxndT17c3RhcnQ6dnUoITEpLGVuZDp2dSghMCl9LHl1PS9WZXJzaW9uXFwvMTBcXC5cXGQrKFxcLlxcZCspPyggTW9iaWxlXFwvXFx3Kyk/IFNhZmFyaVxcLy8udGVzdChRaSksbXU9Z3Uuc3RhcnQ7a3Qoe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwLGZvcmNlZDp5dX0se3BhZFN0YXJ0OmZ1bmN0aW9uKHQpe3JldHVybiBtdSh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLGVlKFwiU3RyaW5nXCIsXCJwYWRTdGFydFwiKTt2YXIgYnU9Z3UuZW5kO2t0KHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6eXV9LHtwYWRFbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIGJ1KHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksZWUoXCJTdHJpbmdcIixcInBhZEVuZFwiKSxrdCh7dGFyZ2V0OlwiU3RyaW5nXCIsc3RhdDohMH0se3JhdzpmdW5jdGlvbih0KXtmb3IodmFyIGU9dih0LnJhdykscj1jdChlLmxlbmd0aCksbj1hcmd1bWVudHMubGVuZ3RoLG89W10saT0wO3I+aTspby5wdXNoKFN0cmluZyhlW2krK10pKSxpPG4mJm8ucHVzaChTdHJpbmcoYXJndW1lbnRzW2ldKSk7cmV0dXJuIG8uam9pbihcIlwiKX19KSxrdCh7dGFyZ2V0OlwiU3RyaW5nXCIscHJvdG86ITB9LHtyZXBlYXQ6cHV9KSxlZShcIlN0cmluZ1wiLFwicmVwZWF0XCIpO3ZhciB3dT1PLmYsU3U9XCJcIi5zdGFydHNXaXRoLEV1PU1hdGgubWluLHh1PWl1KFwic3RhcnRzV2l0aFwiKSxBdT0heHUmJiEhZnVuY3Rpb24oKXt2YXIgdD13dShTdHJpbmcucHJvdG90eXBlLFwic3RhcnRzV2l0aFwiKTtyZXR1cm4gdCYmIXQud3JpdGFibGV9KCk7a3Qoe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwLGZvcmNlZDohQXUmJiF4dX0se3N0YXJ0c1dpdGg6ZnVuY3Rpb24odCl7dmFyIGU9U3RyaW5nKGQodGhpcykpO251KHQpO3ZhciByPWN0KEV1KGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGUubGVuZ3RoKSksbj1TdHJpbmcodCk7cmV0dXJuIFN1P1N1LmNhbGwoZSxuLHIpOmUuc2xpY2UocixyK24ubGVuZ3RoKT09PW59fSksZWUoXCJTdHJpbmdcIixcInN0YXJ0c1dpdGhcIik7dmFyIE91PWZ1bmN0aW9uKHQpe3JldHVybiBvKGZ1bmN0aW9uKCl7cmV0dXJuISFmblt0XSgpfHxcIuKAi8KF4aCOXCIhPVwi4oCLwoXhoI5cIlt0XSgpfHxmblt0XS5uYW1lIT09dH0pfSxSdT12bi5zdGFydCxqdT1PdShcInRyaW1TdGFydFwiKSxQdT1qdT9mdW5jdGlvbigpe3JldHVybiBSdSh0aGlzKX06XCJcIi50cmltU3RhcnQ7a3Qoe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwLGZvcmNlZDpqdX0se3RyaW1TdGFydDpQdSx0cmltTGVmdDpQdX0pLGVlKFwiU3RyaW5nXCIsXCJ0cmltTGVmdFwiKTt2YXIgSXU9dm4uZW5kLFR1PU91KFwidHJpbUVuZFwiKSxrdT1UdT9mdW5jdGlvbigpe3JldHVybiBJdSh0aGlzKX06XCJcIi50cmltRW5kO2t0KHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6VHV9LHt0cmltRW5kOmt1LHRyaW1SaWdodDprdX0pLGVlKFwiU3RyaW5nXCIsXCJ0cmltUmlnaHRcIik7dmFyIEx1PUR0KFwiaXRlcmF0b3JcIiksVXU9IW8oZnVuY3Rpb24oKXt2YXIgdD1uZXcgVVJMKFwiYj9hPTEmYj0yJmM9M1wiLFwiaHR0cDovL2FcIiksZT10LnNlYXJjaFBhcmFtcyxyPVwiXCI7cmV0dXJuIHQucGF0aG5hbWU9XCJjJTIwZFwiLGUuZm9yRWFjaChmdW5jdGlvbih0LG4pe2UuZGVsZXRlKFwiYlwiKSxyKz1uK3R9KSwhZS5zb3J0fHxcImh0dHA6Ly9hL2MlMjBkP2E9MSZjPTNcIiE9PXQuaHJlZnx8XCIzXCIhPT1lLmdldChcImNcIil8fFwiYT0xXCIhPT1TdHJpbmcobmV3IFVSTFNlYXJjaFBhcmFtcyhcIj9hPTFcIikpfHwhZVtMdV18fFwiYVwiIT09bmV3IFVSTChcImh0dHBzOi8vYUBiXCIpLnVzZXJuYW1lfHxcImJcIiE9PW5ldyBVUkxTZWFyY2hQYXJhbXMobmV3IFVSTFNlYXJjaFBhcmFtcyhcImE9YlwiKSkuZ2V0KFwiYVwiKXx8XCJ4bi0tZTFheWJjXCIhPT1uZXcgVVJMKFwiaHR0cDovL9GC0LXRgdGCXCIpLmhvc3R8fFwiIyVEMCVCMVwiIT09bmV3IFVSTChcImh0dHA6Ly9hI9CxXCIpLmhhc2h8fFwiYTFjM1wiIT09cnx8XCJ4XCIhPT1uZXcgVVJMKFwiaHR0cDovL3hcIix2b2lkIDApLmhvc3R9KSxNdT1PYmplY3QuYXNzaWduLF91PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxOdT0hTXV8fG8oZnVuY3Rpb24oKXtpZihpJiYxIT09TXUoe2I6MX0sTXUoX3Uoe30sXCJhXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7X3UodGhpcyxcImJcIix7dmFsdWU6MyxlbnVtZXJhYmxlOiExfSl9fSkse2I6Mn0pKS5iKXJldHVybiEwO3ZhciB0PXt9LGU9e30scj1TeW1ib2woKSxuPVwiYWJjZGVmZ2hpamtsbW5vcHFyc3RcIjtyZXR1cm4gdFtyXT03LG4uc3BsaXQoXCJcIikuZm9yRWFjaChmdW5jdGlvbih0KXtlW3RdPXR9KSw3IT1NdSh7fSx0KVtyXXx8cXQoTXUoe30sZSkpLmpvaW4oXCJcIikhPW59KT9mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1MdCh0KSxuPWFyZ3VtZW50cy5sZW5ndGgsbz0xLGE9d3QuZix1PXMuZjtuPm87KWZvcih2YXIgYyxmPXAoYXJndW1lbnRzW28rK10pLGw9YT9xdChmKS5jb25jYXQoYShmKSk6cXQoZiksaD1sLmxlbmd0aCxkPTA7aD5kOyljPWxbZCsrXSxpJiYhdS5jYWxsKGYsYyl8fChyW2NdPWZbY10pO3JldHVybiByfTpNdSxDdT0yMTQ3NDgzNjQ3LEZ1PS9bXlxcMC1cXHUwMDdFXS8sQnU9L1suXFx1MzAwMlxcdUZGMEVcXHVGRjYxXS9nLER1PVwiT3ZlcmZsb3c6IGlucHV0IG5lZWRzIHdpZGVyIGludGVnZXJzIHRvIHByb2Nlc3NcIixxdT1NYXRoLmZsb29yLHp1PVN0cmluZy5mcm9tQ2hhckNvZGUsV3U9ZnVuY3Rpb24odCl7cmV0dXJuIHQrMjIrNzUqKHQ8MjYpfSxLdT1mdW5jdGlvbih0LGUscil7dmFyIG49MDtmb3IodD1yP3F1KHQvNzAwKTp0Pj4xLHQrPXF1KHQvZSk7dD40NTU7bis9MzYpdD1xdSh0LzM1KTtyZXR1cm4gcXUobiszNip0Lyh0KzM4KSl9LEd1PWZ1bmN0aW9uKHQpe3ZhciBlLHIsbj1bXSxvPSh0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxyPTAsbj10Lmxlbmd0aDtyPG47KXt2YXIgbz10LmNoYXJDb2RlQXQocisrKTtpZihvPj01NTI5NiYmbzw9NTYzMTkmJnI8bil7dmFyIGk9dC5jaGFyQ29kZUF0KHIrKyk7NTYzMjA9PSg2NDUxMiZpKT9lLnB1c2goKCgxMDIzJm8pPDwxMCkrKDEwMjMmaSkrNjU1MzYpOihlLnB1c2gobyksci0tKX1lbHNlIGUucHVzaChvKX1yZXR1cm4gZX0odCkpLmxlbmd0aCxpPTEyOCxhPTAsdT03Mjtmb3IoZT0wO2U8dC5sZW5ndGg7ZSsrKShyPXRbZV0pPDEyOCYmbi5wdXNoKHp1KHIpKTt2YXIgcz1uLmxlbmd0aCxjPXM7Zm9yKHMmJm4ucHVzaChcIi1cIik7YzxvOyl7dmFyIGY9Q3U7Zm9yKGU9MDtlPHQubGVuZ3RoO2UrKykocj10W2VdKT49aSYmcjxmJiYoZj1yKTt2YXIgbD1jKzE7aWYoZi1pPnF1KChDdS1hKS9sKSl0aHJvdyBSYW5nZUVycm9yKER1KTtmb3IoYSs9KGYtaSkqbCxpPWYsZT0wO2U8dC5sZW5ndGg7ZSsrKXtpZigocj10W2VdKTxpJiYrK2E+Q3UpdGhyb3cgUmFuZ2VFcnJvcihEdSk7aWYocj09aSl7Zm9yKHZhciBoPWEscD0zNjs7cCs9MzYpe3ZhciBkPXA8PXU/MTpwPj11KzI2PzI2OnAtdTtpZihoPGQpYnJlYWs7dmFyIHY9aC1kLGc9MzYtZDtuLnB1c2goenUoV3UoZCt2JWcpKSksaD1xdSh2L2cpfW4ucHVzaCh6dShXdShoKSkpLHU9S3UoYSxsLGM9PXMpLGE9MCwrK2N9fSsrYSwrK2l9cmV0dXJuIG4uam9pbihcIlwiKX0sJHU9b3QoXCJmZXRjaFwiKSxWdT1vdChcIkhlYWRlcnNcIiksSHU9RHQoXCJpdGVyYXRvclwiKSxYdT1cIlVSTFNlYXJjaFBhcmFtc1wiLFl1PVwiVVJMU2VhcmNoUGFyYW1zSXRlcmF0b3JcIixKdT10dC5zZXQsUXU9dHQuZ2V0dGVyRm9yKFh1KSxadT10dC5nZXR0ZXJGb3IoWXUpLHRzPS9cXCsvZyxlcz1BcnJheSg0KSxycz1mdW5jdGlvbih0KXtyZXR1cm4gZXNbdC0xXXx8KGVzW3QtMV09UmVnRXhwKFwiKCg/OiVbXFxcXGRhLWZdezJ9KXtcIit0K1wifSlcIixcImdpXCIpKX0sbnM9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQodCl9Y2F0Y2goZSl7cmV0dXJuIHR9fSxvcz1mdW5jdGlvbih0KXt2YXIgZT10LnJlcGxhY2UodHMsXCIgXCIpLHI9NDt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlKX1jYXRjaCh0KXtmb3IoO3I7KWU9ZS5yZXBsYWNlKHJzKHItLSksbnMpO3JldHVybiBlfX0saXM9L1shJygpfl18JTIwL2csYXM9e1wiIVwiOlwiJTIxXCIsXCInXCI6XCIlMjdcIixcIihcIjpcIiUyOFwiLFwiKVwiOlwiJTI5XCIsXCJ+XCI6XCIlN0VcIixcIiUyMFwiOlwiK1wifSx1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXNbdF19LHNzPWZ1bmN0aW9uKHQpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQodCkucmVwbGFjZShpcyx1cyl9LGNzPWZ1bmN0aW9uKHQsZSl7aWYoZSlmb3IodmFyIHIsbixvPWUuc3BsaXQoXCImXCIpLGk9MDtpPG8ubGVuZ3RoOykocj1vW2krK10pLmxlbmd0aCYmKG49ci5zcGxpdChcIj1cIiksdC5wdXNoKHtrZXk6b3Mobi5zaGlmdCgpKSx2YWx1ZTpvcyhuLmpvaW4oXCI9XCIpKX0pKX0sZnM9ZnVuY3Rpb24odCl7dGhpcy5lbnRyaWVzLmxlbmd0aD0wLGNzKHRoaXMuZW50cmllcyx0KX0sbHM9ZnVuY3Rpb24odCxlKXtpZih0PGUpdGhyb3cgVHlwZUVycm9yKFwiTm90IGVub3VnaCBhcmd1bWVudHNcIil9LGhzPUJlKGZ1bmN0aW9uKHQsZSl7SnUodGhpcyx7dHlwZTpZdSxpdGVyYXRvcjpvbihRdSh0KS5lbnRyaWVzKSxraW5kOmV9KX0sXCJJdGVyYXRvclwiLGZ1bmN0aW9uKCl7dmFyIHQ9WnUodGhpcyksZT10LmtpbmQscj10Lml0ZXJhdG9yLm5leHQoKSxuPXIudmFsdWU7cmV0dXJuIHIuZG9uZXx8KHIudmFsdWU9XCJrZXlzXCI9PT1lP24ua2V5OlwidmFsdWVzXCI9PT1lP24udmFsdWU6W24ua2V5LG4udmFsdWVdKSxyfSkscHM9ZnVuY3Rpb24oKXtfcih0aGlzLHBzLFh1KTt2YXIgdCxlLHIsbixvLGksYSx1LHMsYz1hcmd1bWVudHMubGVuZ3RoPjA/YXJndW1lbnRzWzBdOnZvaWQgMCxmPXRoaXMsbD1bXTtpZihKdShmLHt0eXBlOlh1LGVudHJpZXM6bCx1cGRhdGVVUkw6ZnVuY3Rpb24oKXt9LHVwZGF0ZVNlYXJjaFBhcmFtczpmc30pLHZvaWQgMCE9PWMpaWYoZyhjKSlpZihcImZ1bmN0aW9uXCI9PXR5cGVvZih0PWxyKGMpKSlmb3Iocj0oZT10LmNhbGwoYykpLm5leHQ7IShuPXIuY2FsbChlKSkuZG9uZTspe2lmKChhPShpPShvPW9uKFIobi52YWx1ZSkpKS5uZXh0KS5jYWxsKG8pKS5kb25lfHwodT1pLmNhbGwobykpLmRvbmV8fCFpLmNhbGwobykuZG9uZSl0aHJvdyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBzZXF1ZW5jZSB3aXRoIGxlbmd0aCAyXCIpO2wucHVzaCh7a2V5OmEudmFsdWUrXCJcIix2YWx1ZTp1LnZhbHVlK1wiXCJ9KX1lbHNlIGZvcihzIGluIGMpYihjLHMpJiZsLnB1c2goe2tleTpzLHZhbHVlOmNbc10rXCJcIn0pO2Vsc2UgY3MobCxcInN0cmluZ1wiPT10eXBlb2YgYz9cIj9cIj09PWMuY2hhckF0KDApP2Muc2xpY2UoMSk6YzpjK1wiXCIpfSxkcz1wcy5wcm90b3R5cGU7RnIoZHMse2FwcGVuZDpmdW5jdGlvbih0LGUpe2xzKGFyZ3VtZW50cy5sZW5ndGgsMik7dmFyIHI9UXUodGhpcyk7ci5lbnRyaWVzLnB1c2goe2tleTp0K1wiXCIsdmFsdWU6ZStcIlwifSksci51cGRhdGVVUkwoKX0sZGVsZXRlOmZ1bmN0aW9uKHQpe2xzKGFyZ3VtZW50cy5sZW5ndGgsMSk7Zm9yKHZhciBlPVF1KHRoaXMpLHI9ZS5lbnRyaWVzLG49dCtcIlwiLG89MDtvPHIubGVuZ3RoOylyW29dLmtleT09PW4/ci5zcGxpY2UobywxKTpvKys7ZS51cGRhdGVVUkwoKX0sZ2V0OmZ1bmN0aW9uKHQpe2xzKGFyZ3VtZW50cy5sZW5ndGgsMSk7Zm9yKHZhciBlPVF1KHRoaXMpLmVudHJpZXMscj10K1wiXCIsbj0wO248ZS5sZW5ndGg7bisrKWlmKGVbbl0ua2V5PT09cilyZXR1cm4gZVtuXS52YWx1ZTtyZXR1cm4gbnVsbH0sZ2V0QWxsOmZ1bmN0aW9uKHQpe2xzKGFyZ3VtZW50cy5sZW5ndGgsMSk7Zm9yKHZhciBlPVF1KHRoaXMpLmVudHJpZXMscj10K1wiXCIsbj1bXSxvPTA7bzxlLmxlbmd0aDtvKyspZVtvXS5rZXk9PT1yJiZuLnB1c2goZVtvXS52YWx1ZSk7cmV0dXJuIG59LGhhczpmdW5jdGlvbih0KXtscyhhcmd1bWVudHMubGVuZ3RoLDEpO2Zvcih2YXIgZT1RdSh0aGlzKS5lbnRyaWVzLHI9dCtcIlwiLG49MDtuPGUubGVuZ3RoOylpZihlW24rK10ua2V5PT09cilyZXR1cm4hMDtyZXR1cm4hMX0sc2V0OmZ1bmN0aW9uKHQsZSl7bHMoYXJndW1lbnRzLmxlbmd0aCwxKTtmb3IodmFyIHIsbj1RdSh0aGlzKSxvPW4uZW50cmllcyxpPSExLGE9dCtcIlwiLHU9ZStcIlwiLHM9MDtzPG8ubGVuZ3RoO3MrKykocj1vW3NdKS5rZXk9PT1hJiYoaT9vLnNwbGljZShzLS0sMSk6KGk9ITAsci52YWx1ZT11KSk7aXx8by5wdXNoKHtrZXk6YSx2YWx1ZTp1fSksbi51cGRhdGVVUkwoKX0sc29ydDpmdW5jdGlvbigpe3ZhciB0LGUscixuPVF1KHRoaXMpLG89bi5lbnRyaWVzLGk9by5zbGljZSgpO2ZvcihvLmxlbmd0aD0wLHI9MDtyPGkubGVuZ3RoO3IrKyl7Zm9yKHQ9aVtyXSxlPTA7ZTxyO2UrKylpZihvW2VdLmtleT50LmtleSl7by5zcGxpY2UoZSwwLHQpO2JyZWFrfWU9PT1yJiZvLnB1c2godCl9bi51cGRhdGVVUkwoKX0sZm9yRWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIGUscj1RdSh0aGlzKS5lbnRyaWVzLG49WnQodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKSxvPTA7bzxyLmxlbmd0aDspbigoZT1yW28rK10pLnZhbHVlLGUua2V5LHRoaXMpfSxrZXlzOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBocyh0aGlzLFwia2V5c1wiKX0sdmFsdWVzOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBocyh0aGlzLFwidmFsdWVzXCIpfSxlbnRyaWVzOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBocyh0aGlzLFwiZW50cmllc1wiKX19LHtlbnVtZXJhYmxlOiEwfSksZXQoZHMsSHUsZHMuZW50cmllcyksZXQoZHMsXCJ0b1N0cmluZ1wiLGZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9UXUodGhpcykuZW50cmllcyxyPVtdLG49MDtuPGUubGVuZ3RoOyl0PWVbbisrXSxyLnB1c2goc3ModC5rZXkpK1wiPVwiK3NzKHQudmFsdWUpKTtyZXR1cm4gci5qb2luKFwiJlwiKX0se2VudW1lcmFibGU6ITB9KSxfZShwcyxYdSksa3Qoe2dsb2JhbDohMCxmb3JjZWQ6IVV1fSx7VVJMU2VhcmNoUGFyYW1zOnBzfSksVXV8fFwiZnVuY3Rpb25cIiE9dHlwZW9mICR1fHxcImZ1bmN0aW9uXCIhPXR5cGVvZiBWdXx8a3Qoe2dsb2JhbDohMCxlbnVtZXJhYmxlOiEwLGZvcmNlZDohMH0se2ZldGNoOmZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvPVt0XTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xJiYoZyhlPWFyZ3VtZW50c1sxXSkmJmNyKHI9ZS5ib2R5KT09PVh1JiYoKG49ZS5oZWFkZXJzP25ldyBWdShlLmhlYWRlcnMpOm5ldyBWdSkuaGFzKFwiY29udGVudC10eXBlXCIpfHxuLnNldChcImNvbnRlbnQtdHlwZVwiLFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLThcIiksZT1IdChlLHtib2R5OmMoMCxTdHJpbmcocikpLGhlYWRlcnM6YygwLG4pfSkpLG8ucHVzaChlKSksJHUuYXBwbHkodGhpcyxvKX19KTt2YXIgdnMsZ3M9e1VSTFNlYXJjaFBhcmFtczpwcyxnZXRTdGF0ZTpRdX0seXM9T2UuY29kZUF0LG1zPW4uVVJMLGJzPWdzLlVSTFNlYXJjaFBhcmFtcyx3cz1ncy5nZXRTdGF0ZSxTcz10dC5zZXQsRXM9dHQuZ2V0dGVyRm9yKFwiVVJMXCIpLHhzPU1hdGguZmxvb3IsQXM9TWF0aC5wb3csT3M9XCJJbnZhbGlkIHNjaGVtZVwiLFJzPVwiSW52YWxpZCBob3N0XCIsanM9XCJJbnZhbGlkIHBvcnRcIixQcz0vW0EtWmEtel0vLElzPS9bXFxkKy0uQS1aYS16XS8sVHM9L1xcZC8sa3M9L14oMHh8MFgpLyxMcz0vXlswLTddKyQvLFVzPS9eXFxkKyQvLE1zPS9eW1xcZEEtRmEtZl0rJC8sX3M9L1tcXHUwMDAwXFx1MDAwOVxcdTAwMEFcXHUwMDBEICMlLzo/QFtcXFxcXV0vLE5zPS9bXFx1MDAwMFxcdTAwMDlcXHUwMDBBXFx1MDAwRCAjLzo/QFtcXFxcXV0vLENzPS9eW1xcdTAwMDAtXFx1MDAxRiBdK3xbXFx1MDAwMC1cXHUwMDFGIF0rJC9nLEZzPS9bXFx1MDAwOVxcdTAwMEFcXHUwMDBEXS9nLEJzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixvO2lmKFwiW1wiPT1lLmNoYXJBdCgwKSl7aWYoXCJdXCIhPWUuY2hhckF0KGUubGVuZ3RoLTEpKXJldHVybiBScztpZighKHI9cXMoZS5zbGljZSgxLC0xKSkpKXJldHVybiBSczt0Lmhvc3Q9cn1lbHNlIGlmKFhzKHQpKXtpZihlPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbj1bXSxvPXQudG9Mb3dlckNhc2UoKS5yZXBsYWNlKEJ1LFwiLlwiKS5zcGxpdChcIi5cIik7Zm9yKGU9MDtlPG8ubGVuZ3RoO2UrKyluLnB1c2goRnUudGVzdChyPW9bZV0pP1wieG4tLVwiK0d1KHIpOnIpO3JldHVybiBuLmpvaW4oXCIuXCIpfShlKSxfcy50ZXN0KGUpKXJldHVybiBScztpZihudWxsPT09KHI9RHMoZSkpKXJldHVybiBSczt0Lmhvc3Q9cn1lbHNle2lmKE5zLnRlc3QoZSkpcmV0dXJuIFJzO2ZvcihyPVwiXCIsbj1ocihlKSxvPTA7bzxuLmxlbmd0aDtvKyspcis9VnMobltvXSxXcyk7dC5ob3N0PXJ9fSxEcz1mdW5jdGlvbih0KXt2YXIgZSxyLG4sbyxpLGEsdSxzPXQuc3BsaXQoXCIuXCIpO2lmKHMubGVuZ3RoJiZcIlwiPT1zW3MubGVuZ3RoLTFdJiZzLnBvcCgpLChlPXMubGVuZ3RoKT40KXJldHVybiB0O2ZvcihyPVtdLG49MDtuPGU7bisrKXtpZihcIlwiPT0obz1zW25dKSlyZXR1cm4gdDtpZihpPTEwLG8ubGVuZ3RoPjEmJlwiMFwiPT1vLmNoYXJBdCgwKSYmKGk9a3MudGVzdChvKT8xNjo4LG89by5zbGljZSg4PT1pPzE6MikpLFwiXCI9PT1vKWE9MDtlbHNle2lmKCEoMTA9PWk/VXM6OD09aT9MczpNcykudGVzdChvKSlyZXR1cm4gdDthPXBhcnNlSW50KG8saSl9ci5wdXNoKGEpfWZvcihuPTA7bjxlO24rKylpZihhPXJbbl0sbj09ZS0xKXtpZihhPj1BcygyNTYsNS1lKSlyZXR1cm4gbnVsbH1lbHNlIGlmKGE+MjU1KXJldHVybiBudWxsO2Zvcih1PXIucG9wKCksbj0wO248ci5sZW5ndGg7bisrKXUrPXJbbl0qQXMoMjU2LDMtbik7cmV0dXJuIHV9LHFzPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvLGksYSx1LHM9WzAsMCwwLDAsMCwwLDAsMF0sYz0wLGY9bnVsbCxsPTAsaD1mdW5jdGlvbigpe3JldHVybiB0LmNoYXJBdChsKX07aWYoXCI6XCI9PWgoKSl7aWYoXCI6XCIhPXQuY2hhckF0KDEpKXJldHVybjtsKz0yLGY9KytjfWZvcig7aCgpOyl7aWYoOD09YylyZXR1cm47aWYoXCI6XCIhPWgoKSl7Zm9yKGU9cj0wO3I8NCYmTXMudGVzdChoKCkpOyllPTE2KmUrcGFyc2VJbnQoaCgpLDE2KSxsKysscisrO2lmKFwiLlwiPT1oKCkpe2lmKDA9PXIpcmV0dXJuO2lmKGwtPXIsYz42KXJldHVybjtmb3Iobj0wO2goKTspe2lmKG89bnVsbCxuPjApe2lmKCEoXCIuXCI9PWgoKSYmbjw0KSlyZXR1cm47bCsrfWlmKCFUcy50ZXN0KGgoKSkpcmV0dXJuO2Zvcig7VHMudGVzdChoKCkpOyl7aWYoaT1wYXJzZUludChoKCksMTApLG51bGw9PT1vKW89aTtlbHNle2lmKDA9PW8pcmV0dXJuO289MTAqbytpfWlmKG8+MjU1KXJldHVybjtsKyt9c1tjXT0yNTYqc1tjXStvLDIhPSsrbiYmNCE9bnx8YysrfWlmKDQhPW4pcmV0dXJuO2JyZWFrfWlmKFwiOlwiPT1oKCkpe2lmKGwrKywhaCgpKXJldHVybn1lbHNlIGlmKGgoKSlyZXR1cm47c1tjKytdPWV9ZWxzZXtpZihudWxsIT09ZilyZXR1cm47bCsrLGY9KytjfX1pZihudWxsIT09Zilmb3IoYT1jLWYsYz03OzAhPWMmJmE+MDspdT1zW2NdLHNbYy0tXT1zW2YrYS0xXSxzW2YrLS1hXT11O2Vsc2UgaWYoOCE9YylyZXR1cm47cmV0dXJuIHN9LHpzPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvO2lmKFwibnVtYmVyXCI9PXR5cGVvZiB0KXtmb3IoZT1bXSxyPTA7cjw0O3IrKyllLnVuc2hpZnQodCUyNTYpLHQ9eHModC8yNTYpO3JldHVybiBlLmpvaW4oXCIuXCIpfWlmKFwib2JqZWN0XCI9PXR5cGVvZiB0KXtmb3IoZT1cIlwiLG49ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW51bGwscj0xLG49bnVsbCxvPTAsaT0wO2k8ODtpKyspMCE9PXRbaV0/KG8+ciYmKGU9bixyPW8pLG49bnVsbCxvPTApOihudWxsPT09biYmKG49aSksKytvKTtyZXR1cm4gbz5yJiYoZT1uLHI9byksZX0odCkscj0wO3I8ODtyKyspbyYmMD09PXRbcl18fChvJiYobz0hMSksbj09PXI/KGUrPXI/XCI6XCI6XCI6OlwiLG89ITApOihlKz10W3JdLnRvU3RyaW5nKDE2KSxyPDcmJihlKz1cIjpcIikpKTtyZXR1cm5cIltcIitlK1wiXVwifXJldHVybiB0fSxXcz17fSxLcz1OdSh7fSxXcyx7XCIgXCI6MSwnXCInOjEsXCI8XCI6MSxcIj5cIjoxLFwiYFwiOjF9KSxHcz1OdSh7fSxLcyx7XCIjXCI6MSxcIj9cIjoxLFwie1wiOjEsXCJ9XCI6MX0pLCRzPU51KHt9LEdzLHtcIi9cIjoxLFwiOlwiOjEsXCI7XCI6MSxcIj1cIjoxLFwiQFwiOjEsXCJbXCI6MSxcIlxcXFxcIjoxLFwiXVwiOjEsXCJeXCI6MSxcInxcIjoxfSksVnM9ZnVuY3Rpb24odCxlKXt2YXIgcj15cyh0LDApO3JldHVybiByPjMyJiZyPDEyNyYmIWIoZSx0KT90OmVuY29kZVVSSUNvbXBvbmVudCh0KX0sSHM9e2Z0cDoyMSxmaWxlOm51bGwsaHR0cDo4MCxodHRwczo0NDMsd3M6ODAsd3NzOjQ0M30sWHM9ZnVuY3Rpb24odCl7cmV0dXJuIGIoSHMsdC5zY2hlbWUpfSxZcz1mdW5jdGlvbih0KXtyZXR1cm5cIlwiIT10LnVzZXJuYW1lfHxcIlwiIT10LnBhc3N3b3JkfSxKcz1mdW5jdGlvbih0KXtyZXR1cm4hdC5ob3N0fHx0LmNhbm5vdEJlQUJhc2VVUkx8fFwiZmlsZVwiPT10LnNjaGVtZX0sUXM9ZnVuY3Rpb24odCxlKXt2YXIgcjtyZXR1cm4gMj09dC5sZW5ndGgmJlBzLnRlc3QodC5jaGFyQXQoMCkpJiYoXCI6XCI9PShyPXQuY2hhckF0KDEpKXx8IWUmJlwifFwiPT1yKX0sWnM9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIHQubGVuZ3RoPjEmJlFzKHQuc2xpY2UoMCwyKSkmJigyPT10Lmxlbmd0aHx8XCIvXCI9PT0oZT10LmNoYXJBdCgyKSl8fFwiXFxcXFwiPT09ZXx8XCI/XCI9PT1lfHxcIiNcIj09PWUpfSx0Yz1mdW5jdGlvbih0KXt2YXIgZT10LnBhdGgscj1lLmxlbmd0aDshcnx8XCJmaWxlXCI9PXQuc2NoZW1lJiYxPT1yJiZRcyhlWzBdLCEwKXx8ZS5wb3AoKX0sZWM9ZnVuY3Rpb24odCl7cmV0dXJuXCIuXCI9PT10fHxcIiUyZVwiPT09dC50b0xvd2VyQ2FzZSgpfSxyYz17fSxuYz17fSxvYz17fSxpYz17fSxhYz17fSx1Yz17fSxzYz17fSxjYz17fSxmYz17fSxsYz17fSxoYz17fSxwYz17fSxkYz17fSx2Yz17fSxnYz17fSx5Yz17fSxtYz17fSxiYz17fSx3Yz17fSxTYz17fSxFYz17fSx4Yz1mdW5jdGlvbih0LGUscixuKXt2YXIgbyxpLGEsdSxzLGM9cnx8cmMsZj0wLGw9XCJcIixoPSExLHA9ITEsZD0hMTtmb3Iocnx8KHQuc2NoZW1lPVwiXCIsdC51c2VybmFtZT1cIlwiLHQucGFzc3dvcmQ9XCJcIix0Lmhvc3Q9bnVsbCx0LnBvcnQ9bnVsbCx0LnBhdGg9W10sdC5xdWVyeT1udWxsLHQuZnJhZ21lbnQ9bnVsbCx0LmNhbm5vdEJlQUJhc2VVUkw9ITEsZT1lLnJlcGxhY2UoQ3MsXCJcIikpLGU9ZS5yZXBsYWNlKEZzLFwiXCIpLG89aHIoZSk7Zjw9by5sZW5ndGg7KXtzd2l0Y2goaT1vW2ZdLGMpe2Nhc2UgcmM6aWYoIWl8fCFQcy50ZXN0KGkpKXtpZihyKXJldHVybiBPcztjPW9jO2NvbnRpbnVlfWwrPWkudG9Mb3dlckNhc2UoKSxjPW5jO2JyZWFrO2Nhc2UgbmM6aWYoaSYmKElzLnRlc3QoaSl8fFwiK1wiPT1pfHxcIi1cIj09aXx8XCIuXCI9PWkpKWwrPWkudG9Mb3dlckNhc2UoKTtlbHNle2lmKFwiOlwiIT1pKXtpZihyKXJldHVybiBPcztsPVwiXCIsYz1vYyxmPTA7Y29udGludWV9aWYociYmKFhzKHQpIT1iKEhzLGwpfHxcImZpbGVcIj09bCYmKFlzKHQpfHxudWxsIT09dC5wb3J0KXx8XCJmaWxlXCI9PXQuc2NoZW1lJiYhdC5ob3N0KSlyZXR1cm47aWYodC5zY2hlbWU9bCxyKXJldHVybiB2b2lkKFhzKHQpJiZIc1t0LnNjaGVtZV09PXQucG9ydCYmKHQucG9ydD1udWxsKSk7bD1cIlwiLFwiZmlsZVwiPT10LnNjaGVtZT9jPXZjOlhzKHQpJiZuJiZuLnNjaGVtZT09dC5zY2hlbWU/Yz1pYzpYcyh0KT9jPWNjOlwiL1wiPT1vW2YrMV0/KGM9YWMsZisrKToodC5jYW5ub3RCZUFCYXNlVVJMPSEwLHQucGF0aC5wdXNoKFwiXCIpLGM9d2MpfWJyZWFrO2Nhc2Ugb2M6aWYoIW58fG4uY2Fubm90QmVBQmFzZVVSTCYmXCIjXCIhPWkpcmV0dXJuIE9zO2lmKG4uY2Fubm90QmVBQmFzZVVSTCYmXCIjXCI9PWkpe3Quc2NoZW1lPW4uc2NoZW1lLHQucGF0aD1uLnBhdGguc2xpY2UoKSx0LnF1ZXJ5PW4ucXVlcnksdC5mcmFnbWVudD1cIlwiLHQuY2Fubm90QmVBQmFzZVVSTD0hMCxjPUVjO2JyZWFrfWM9XCJmaWxlXCI9PW4uc2NoZW1lP3ZjOnVjO2NvbnRpbnVlO2Nhc2UgaWM6aWYoXCIvXCIhPWl8fFwiL1wiIT1vW2YrMV0pe2M9dWM7Y29udGludWV9Yz1mYyxmKys7YnJlYWs7Y2FzZSBhYzppZihcIi9cIj09aSl7Yz1sYzticmVha31jPWJjO2NvbnRpbnVlO2Nhc2UgdWM6aWYodC5zY2hlbWU9bi5zY2hlbWUsaT09dnMpdC51c2VybmFtZT1uLnVzZXJuYW1lLHQucGFzc3dvcmQ9bi5wYXNzd29yZCx0Lmhvc3Q9bi5ob3N0LHQucG9ydD1uLnBvcnQsdC5wYXRoPW4ucGF0aC5zbGljZSgpLHQucXVlcnk9bi5xdWVyeTtlbHNlIGlmKFwiL1wiPT1pfHxcIlxcXFxcIj09aSYmWHModCkpYz1zYztlbHNlIGlmKFwiP1wiPT1pKXQudXNlcm5hbWU9bi51c2VybmFtZSx0LnBhc3N3b3JkPW4ucGFzc3dvcmQsdC5ob3N0PW4uaG9zdCx0LnBvcnQ9bi5wb3J0LHQucGF0aD1uLnBhdGguc2xpY2UoKSx0LnF1ZXJ5PVwiXCIsYz1TYztlbHNle2lmKFwiI1wiIT1pKXt0LnVzZXJuYW1lPW4udXNlcm5hbWUsdC5wYXNzd29yZD1uLnBhc3N3b3JkLHQuaG9zdD1uLmhvc3QsdC5wb3J0PW4ucG9ydCx0LnBhdGg9bi5wYXRoLnNsaWNlKCksdC5wYXRoLnBvcCgpLGM9YmM7Y29udGludWV9dC51c2VybmFtZT1uLnVzZXJuYW1lLHQucGFzc3dvcmQ9bi5wYXNzd29yZCx0Lmhvc3Q9bi5ob3N0LHQucG9ydD1uLnBvcnQsdC5wYXRoPW4ucGF0aC5zbGljZSgpLHQucXVlcnk9bi5xdWVyeSx0LmZyYWdtZW50PVwiXCIsYz1FY31icmVhaztjYXNlIHNjOmlmKCFYcyh0KXx8XCIvXCIhPWkmJlwiXFxcXFwiIT1pKXtpZihcIi9cIiE9aSl7dC51c2VybmFtZT1uLnVzZXJuYW1lLHQucGFzc3dvcmQ9bi5wYXNzd29yZCx0Lmhvc3Q9bi5ob3N0LHQucG9ydD1uLnBvcnQsYz1iYztjb250aW51ZX1jPWxjfWVsc2UgYz1mYzticmVhaztjYXNlIGNjOmlmKGM9ZmMsXCIvXCIhPWl8fFwiL1wiIT1sLmNoYXJBdChmKzEpKWNvbnRpbnVlO2YrKzticmVhaztjYXNlIGZjOmlmKFwiL1wiIT1pJiZcIlxcXFxcIiE9aSl7Yz1sYztjb250aW51ZX1icmVhaztjYXNlIGxjOmlmKFwiQFwiPT1pKXtoJiYobD1cIiU0MFwiK2wpLGg9ITAsYT1ocihsKTtmb3IodmFyIHY9MDt2PGEubGVuZ3RoO3YrKyl7dmFyIGc9YVt2XTtpZihcIjpcIiE9Z3x8ZCl7dmFyIHk9VnMoZywkcyk7ZD90LnBhc3N3b3JkKz15OnQudXNlcm5hbWUrPXl9ZWxzZSBkPSEwfWw9XCJcIn1lbHNlIGlmKGk9PXZzfHxcIi9cIj09aXx8XCI/XCI9PWl8fFwiI1wiPT1pfHxcIlxcXFxcIj09aSYmWHModCkpe2lmKGgmJlwiXCI9PWwpcmV0dXJuXCJJbnZhbGlkIGF1dGhvcml0eVwiO2YtPWhyKGwpLmxlbmd0aCsxLGw9XCJcIixjPWhjfWVsc2UgbCs9aTticmVhaztjYXNlIGhjOmNhc2UgcGM6aWYociYmXCJmaWxlXCI9PXQuc2NoZW1lKXtjPXljO2NvbnRpbnVlfWlmKFwiOlwiIT1pfHxwKXtpZihpPT12c3x8XCIvXCI9PWl8fFwiP1wiPT1pfHxcIiNcIj09aXx8XCJcXFxcXCI9PWkmJlhzKHQpKXtpZihYcyh0KSYmXCJcIj09bClyZXR1cm4gUnM7aWYociYmXCJcIj09bCYmKFlzKHQpfHxudWxsIT09dC5wb3J0KSlyZXR1cm47aWYodT1Ccyh0LGwpKXJldHVybiB1O2lmKGw9XCJcIixjPW1jLHIpcmV0dXJuO2NvbnRpbnVlfVwiW1wiPT1pP3A9ITA6XCJdXCI9PWkmJihwPSExKSxsKz1pfWVsc2V7aWYoXCJcIj09bClyZXR1cm4gUnM7aWYodT1Ccyh0LGwpKXJldHVybiB1O2lmKGw9XCJcIixjPWRjLHI9PXBjKXJldHVybn1icmVhaztjYXNlIGRjOmlmKCFUcy50ZXN0KGkpKXtpZihpPT12c3x8XCIvXCI9PWl8fFwiP1wiPT1pfHxcIiNcIj09aXx8XCJcXFxcXCI9PWkmJlhzKHQpfHxyKXtpZihcIlwiIT1sKXt2YXIgbT1wYXJzZUludChsLDEwKTtpZihtPjY1NTM1KXJldHVybiBqczt0LnBvcnQ9WHModCkmJm09PT1Ic1t0LnNjaGVtZV0/bnVsbDptLGw9XCJcIn1pZihyKXJldHVybjtjPW1jO2NvbnRpbnVlfXJldHVybiBqc31sKz1pO2JyZWFrO2Nhc2UgdmM6aWYodC5zY2hlbWU9XCJmaWxlXCIsXCIvXCI9PWl8fFwiXFxcXFwiPT1pKWM9Z2M7ZWxzZXtpZighbnx8XCJmaWxlXCIhPW4uc2NoZW1lKXtjPWJjO2NvbnRpbnVlfWlmKGk9PXZzKXQuaG9zdD1uLmhvc3QsdC5wYXRoPW4ucGF0aC5zbGljZSgpLHQucXVlcnk9bi5xdWVyeTtlbHNlIGlmKFwiP1wiPT1pKXQuaG9zdD1uLmhvc3QsdC5wYXRoPW4ucGF0aC5zbGljZSgpLHQucXVlcnk9XCJcIixjPVNjO2Vsc2V7aWYoXCIjXCIhPWkpe1pzKG8uc2xpY2UoZikuam9pbihcIlwiKSl8fCh0Lmhvc3Q9bi5ob3N0LHQucGF0aD1uLnBhdGguc2xpY2UoKSx0Yyh0KSksYz1iYztjb250aW51ZX10Lmhvc3Q9bi5ob3N0LHQucGF0aD1uLnBhdGguc2xpY2UoKSx0LnF1ZXJ5PW4ucXVlcnksdC5mcmFnbWVudD1cIlwiLGM9RWN9fWJyZWFrO2Nhc2UgZ2M6aWYoXCIvXCI9PWl8fFwiXFxcXFwiPT1pKXtjPXljO2JyZWFrfW4mJlwiZmlsZVwiPT1uLnNjaGVtZSYmIVpzKG8uc2xpY2UoZikuam9pbihcIlwiKSkmJihRcyhuLnBhdGhbMF0sITApP3QucGF0aC5wdXNoKG4ucGF0aFswXSk6dC5ob3N0PW4uaG9zdCksYz1iYztjb250aW51ZTtjYXNlIHljOmlmKGk9PXZzfHxcIi9cIj09aXx8XCJcXFxcXCI9PWl8fFwiP1wiPT1pfHxcIiNcIj09aSl7aWYoIXImJlFzKGwpKWM9YmM7ZWxzZSBpZihcIlwiPT1sKXtpZih0Lmhvc3Q9XCJcIixyKXJldHVybjtjPW1jfWVsc2V7aWYodT1Ccyh0LGwpKXJldHVybiB1O2lmKFwibG9jYWxob3N0XCI9PXQuaG9zdCYmKHQuaG9zdD1cIlwiKSxyKXJldHVybjtsPVwiXCIsYz1tY31jb250aW51ZX1sKz1pO2JyZWFrO2Nhc2UgbWM6aWYoWHModCkpe2lmKGM9YmMsXCIvXCIhPWkmJlwiXFxcXFwiIT1pKWNvbnRpbnVlfWVsc2UgaWYocnx8XCI/XCIhPWkpaWYocnx8XCIjXCIhPWkpe2lmKGkhPXZzJiYoYz1iYyxcIi9cIiE9aSkpY29udGludWV9ZWxzZSB0LmZyYWdtZW50PVwiXCIsYz1FYztlbHNlIHQucXVlcnk9XCJcIixjPVNjO2JyZWFrO2Nhc2UgYmM6aWYoaT09dnN8fFwiL1wiPT1pfHxcIlxcXFxcIj09aSYmWHModCl8fCFyJiYoXCI/XCI9PWl8fFwiI1wiPT1pKSl7aWYoXCIuLlwiPT09KHM9KHM9bCkudG9Mb3dlckNhc2UoKSl8fFwiJTJlLlwiPT09c3x8XCIuJTJlXCI9PT1zfHxcIiUyZSUyZVwiPT09cz8odGModCksXCIvXCI9PWl8fFwiXFxcXFwiPT1pJiZYcyh0KXx8dC5wYXRoLnB1c2goXCJcIikpOmVjKGwpP1wiL1wiPT1pfHxcIlxcXFxcIj09aSYmWHModCl8fHQucGF0aC5wdXNoKFwiXCIpOihcImZpbGVcIj09dC5zY2hlbWUmJiF0LnBhdGgubGVuZ3RoJiZRcyhsKSYmKHQuaG9zdCYmKHQuaG9zdD1cIlwiKSxsPWwuY2hhckF0KDApK1wiOlwiKSx0LnBhdGgucHVzaChsKSksbD1cIlwiLFwiZmlsZVwiPT10LnNjaGVtZSYmKGk9PXZzfHxcIj9cIj09aXx8XCIjXCI9PWkpKWZvcig7dC5wYXRoLmxlbmd0aD4xJiZcIlwiPT09dC5wYXRoWzBdOyl0LnBhdGguc2hpZnQoKTtcIj9cIj09aT8odC5xdWVyeT1cIlwiLGM9U2MpOlwiI1wiPT1pJiYodC5mcmFnbWVudD1cIlwiLGM9RWMpfWVsc2UgbCs9VnMoaSxHcyk7YnJlYWs7Y2FzZSB3YzpcIj9cIj09aT8odC5xdWVyeT1cIlwiLGM9U2MpOlwiI1wiPT1pPyh0LmZyYWdtZW50PVwiXCIsYz1FYyk6aSE9dnMmJih0LnBhdGhbMF0rPVZzKGksV3MpKTticmVhaztjYXNlIFNjOnJ8fFwiI1wiIT1pP2khPXZzJiYoXCInXCI9PWkmJlhzKHQpP3QucXVlcnkrPVwiJTI3XCI6dC5xdWVyeSs9XCIjXCI9PWk/XCIlMjNcIjpWcyhpLFdzKSk6KHQuZnJhZ21lbnQ9XCJcIixjPUVjKTticmVhaztjYXNlIEVjOmkhPXZzJiYodC5mcmFnbWVudCs9VnMoaSxLcykpfWYrK319LEFjPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbj1fcih0aGlzLEFjLFwiVVJMXCIpLG89YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsYT1TdHJpbmcodCksdT1TcyhuLHt0eXBlOlwiVVJMXCJ9KTtpZih2b2lkIDAhPT1vKWlmKG8gaW5zdGFuY2VvZiBBYyllPUVzKG8pO2Vsc2UgaWYocj14YyhlPXt9LFN0cmluZyhvKSkpdGhyb3cgVHlwZUVycm9yKHIpO2lmKHI9eGModSxhLG51bGwsZSkpdGhyb3cgVHlwZUVycm9yKHIpO3ZhciBzPXUuc2VhcmNoUGFyYW1zPW5ldyBicyxjPXdzKHMpO2MudXBkYXRlU2VhcmNoUGFyYW1zKHUucXVlcnkpLGMudXBkYXRlVVJMPWZ1bmN0aW9uKCl7dS5xdWVyeT1TdHJpbmcocyl8fG51bGx9LGl8fChuLmhyZWY9UmMuY2FsbChuKSxuLm9yaWdpbj1qYy5jYWxsKG4pLG4ucHJvdG9jb2w9UGMuY2FsbChuKSxuLnVzZXJuYW1lPUljLmNhbGwobiksbi5wYXNzd29yZD1UYy5jYWxsKG4pLG4uaG9zdD1rYy5jYWxsKG4pLG4uaG9zdG5hbWU9TGMuY2FsbChuKSxuLnBvcnQ9VWMuY2FsbChuKSxuLnBhdGhuYW1lPU1jLmNhbGwobiksbi5zZWFyY2g9X2MuY2FsbChuKSxuLnNlYXJjaFBhcmFtcz1OYy5jYWxsKG4pLG4uaGFzaD1DYy5jYWxsKG4pKX0sT2M9QWMucHJvdG90eXBlLFJjPWZ1bmN0aW9uKCl7dmFyIHQ9RXModGhpcyksZT10LnNjaGVtZSxyPXQudXNlcm5hbWUsbj10LnBhc3N3b3JkLG89dC5ob3N0LGk9dC5wb3J0LGE9dC5wYXRoLHU9dC5xdWVyeSxzPXQuZnJhZ21lbnQsYz1lK1wiOlwiO3JldHVybiBudWxsIT09bz8oYys9XCIvL1wiLFlzKHQpJiYoYys9cisobj9cIjpcIituOlwiXCIpK1wiQFwiKSxjKz16cyhvKSxudWxsIT09aSYmKGMrPVwiOlwiK2kpKTpcImZpbGVcIj09ZSYmKGMrPVwiLy9cIiksYys9dC5jYW5ub3RCZUFCYXNlVVJMP2FbMF06YS5sZW5ndGg/XCIvXCIrYS5qb2luKFwiL1wiKTpcIlwiLG51bGwhPT11JiYoYys9XCI/XCIrdSksbnVsbCE9PXMmJihjKz1cIiNcIitzKSxjfSxqYz1mdW5jdGlvbigpe3ZhciB0PUVzKHRoaXMpLGU9dC5zY2hlbWUscj10LnBvcnQ7aWYoXCJibG9iXCI9PWUpdHJ5e3JldHVybiBuZXcgVVJMKGUucGF0aFswXSkub3JpZ2lufWNhdGNoKHQpe3JldHVyblwibnVsbFwifXJldHVyblwiZmlsZVwiIT1lJiZYcyh0KT9lK1wiOi8vXCIrenModC5ob3N0KSsobnVsbCE9PXI/XCI6XCIrcjpcIlwiKTpcIm51bGxcIn0sUGM9ZnVuY3Rpb24oKXtyZXR1cm4gRXModGhpcykuc2NoZW1lK1wiOlwifSxJYz1mdW5jdGlvbigpe3JldHVybiBFcyh0aGlzKS51c2VybmFtZX0sVGM9ZnVuY3Rpb24oKXtyZXR1cm4gRXModGhpcykucGFzc3dvcmR9LGtjPWZ1bmN0aW9uKCl7dmFyIHQ9RXModGhpcyksZT10Lmhvc3Qscj10LnBvcnQ7cmV0dXJuIG51bGw9PT1lP1wiXCI6bnVsbD09PXI/enMoZSk6enMoZSkrXCI6XCIrcn0sTGM9ZnVuY3Rpb24oKXt2YXIgdD1Fcyh0aGlzKS5ob3N0O3JldHVybiBudWxsPT09dD9cIlwiOnpzKHQpfSxVYz1mdW5jdGlvbigpe3ZhciB0PUVzKHRoaXMpLnBvcnQ7cmV0dXJuIG51bGw9PT10P1wiXCI6U3RyaW5nKHQpfSxNYz1mdW5jdGlvbigpe3ZhciB0PUVzKHRoaXMpLGU9dC5wYXRoO3JldHVybiB0LmNhbm5vdEJlQUJhc2VVUkw/ZVswXTplLmxlbmd0aD9cIi9cIitlLmpvaW4oXCIvXCIpOlwiXCJ9LF9jPWZ1bmN0aW9uKCl7dmFyIHQ9RXModGhpcykucXVlcnk7cmV0dXJuIHQ/XCI/XCIrdDpcIlwifSxOYz1mdW5jdGlvbigpe3JldHVybiBFcyh0aGlzKS5zZWFyY2hQYXJhbXN9LENjPWZ1bmN0aW9uKCl7dmFyIHQ9RXModGhpcykuZnJhZ21lbnQ7cmV0dXJuIHQ/XCIjXCIrdDpcIlwifSxGYz1mdW5jdGlvbih0LGUpe3JldHVybntnZXQ6dCxzZXQ6ZSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH19O2lmKGkmJnp0KE9jLHtocmVmOkZjKFJjLGZ1bmN0aW9uKHQpe3ZhciBlPUVzKHRoaXMpLHI9U3RyaW5nKHQpLG49eGMoZSxyKTtpZihuKXRocm93IFR5cGVFcnJvcihuKTt3cyhlLnNlYXJjaFBhcmFtcykudXBkYXRlU2VhcmNoUGFyYW1zKGUucXVlcnkpfSksb3JpZ2luOkZjKGpjKSxwcm90b2NvbDpGYyhQYyxmdW5jdGlvbih0KXt2YXIgZT1Fcyh0aGlzKTt4YyhlLFN0cmluZyh0KStcIjpcIixyYyl9KSx1c2VybmFtZTpGYyhJYyxmdW5jdGlvbih0KXt2YXIgZT1Fcyh0aGlzKSxyPWhyKFN0cmluZyh0KSk7aWYoIUpzKGUpKXtlLnVzZXJuYW1lPVwiXCI7Zm9yKHZhciBuPTA7bjxyLmxlbmd0aDtuKyspZS51c2VybmFtZSs9VnMocltuXSwkcyl9fSkscGFzc3dvcmQ6RmMoVGMsZnVuY3Rpb24odCl7dmFyIGU9RXModGhpcykscj1ocihTdHJpbmcodCkpO2lmKCFKcyhlKSl7ZS5wYXNzd29yZD1cIlwiO2Zvcih2YXIgbj0wO248ci5sZW5ndGg7bisrKWUucGFzc3dvcmQrPVZzKHJbbl0sJHMpfX0pLGhvc3Q6RmMoa2MsZnVuY3Rpb24odCl7dmFyIGU9RXModGhpcyk7ZS5jYW5ub3RCZUFCYXNlVVJMfHx4YyhlLFN0cmluZyh0KSxoYyl9KSxob3N0bmFtZTpGYyhMYyxmdW5jdGlvbih0KXt2YXIgZT1Fcyh0aGlzKTtlLmNhbm5vdEJlQUJhc2VVUkx8fHhjKGUsU3RyaW5nKHQpLHBjKX0pLHBvcnQ6RmMoVWMsZnVuY3Rpb24odCl7dmFyIGU9RXModGhpcyk7SnMoZSl8fChcIlwiPT0odD1TdHJpbmcodCkpP2UucG9ydD1udWxsOnhjKGUsdCxkYykpfSkscGF0aG5hbWU6RmMoTWMsZnVuY3Rpb24odCl7dmFyIGU9RXModGhpcyk7ZS5jYW5ub3RCZUFCYXNlVVJMfHwoZS5wYXRoPVtdLHhjKGUsdCtcIlwiLG1jKSl9KSxzZWFyY2g6RmMoX2MsZnVuY3Rpb24odCl7dmFyIGU9RXModGhpcyk7XCJcIj09KHQ9U3RyaW5nKHQpKT9lLnF1ZXJ5PW51bGw6KFwiP1wiPT10LmNoYXJBdCgwKSYmKHQ9dC5zbGljZSgxKSksZS5xdWVyeT1cIlwiLHhjKGUsdCxTYykpLHdzKGUuc2VhcmNoUGFyYW1zKS51cGRhdGVTZWFyY2hQYXJhbXMoZS5xdWVyeSl9KSxzZWFyY2hQYXJhbXM6RmMoTmMpLGhhc2g6RmMoQ2MsZnVuY3Rpb24odCl7dmFyIGU9RXModGhpcyk7XCJcIiE9KHQ9U3RyaW5nKHQpKT8oXCIjXCI9PXQuY2hhckF0KDApJiYodD10LnNsaWNlKDEpKSxlLmZyYWdtZW50PVwiXCIseGMoZSx0LEVjKSk6ZS5mcmFnbWVudD1udWxsfSl9KSxldChPYyxcInRvSlNPTlwiLGZ1bmN0aW9uKCl7cmV0dXJuIFJjLmNhbGwodGhpcyl9LHtlbnVtZXJhYmxlOiEwfSksZXQoT2MsXCJ0b1N0cmluZ1wiLGZ1bmN0aW9uKCl7cmV0dXJuIFJjLmNhbGwodGhpcyl9LHtlbnVtZXJhYmxlOiEwfSksbXMpe3ZhciBCYz1tcy5jcmVhdGVPYmplY3RVUkwsRGM9bXMucmV2b2tlT2JqZWN0VVJMO0JjJiZldChBYyxcImNyZWF0ZU9iamVjdFVSTFwiLGZ1bmN0aW9uKHQpe3JldHVybiBCYy5hcHBseShtcyxhcmd1bWVudHMpfSksRGMmJmV0KEFjLFwicmV2b2tlT2JqZWN0VVJMXCIsZnVuY3Rpb24odCl7cmV0dXJuIERjLmFwcGx5KG1zLGFyZ3VtZW50cyl9KX1fZShBYyxcIlVSTFwiKSxrdCh7Z2xvYmFsOiEwLGZvcmNlZDohVXUsc2hhbTohaX0se1VSTDpBY30pLGt0KHt0YXJnZXQ6XCJVUkxcIixwcm90bzohMCxlbnVtZXJhYmxlOiEwfSx7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJuIFVSTC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0aGlzKX19KSxrdCh7dGFyZ2V0OlwiV2Vha01hcFwiLHN0YXQ6ITB9LHtmcm9tOmVufSksa3Qoe3RhcmdldDpcIldlYWtNYXBcIixzdGF0OiEwfSx7b2Y6cm59KSxrdCh7dGFyZ2V0OlwiV2Vha01hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHtkZWxldGVBbGw6ZnVuY3Rpb24oKXtyZXR1cm4gbm4uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pLGt0KHt0YXJnZXQ6XCJXZWFrTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se3Vwc2VydDpjbn0pLENyKFwiV2Vha1NldFwiLGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0KHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwKX19LG1vKSxrdCh7dGFyZ2V0OlwiV2Vha1NldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHthZGRBbGw6ZnVuY3Rpb24oKXtyZXR1cm4gSGkuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pLGt0KHt0YXJnZXQ6XCJXZWFrU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se2RlbGV0ZUFsbDpmdW5jdGlvbigpe3JldHVybiBubi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSksa3Qoe3RhcmdldDpcIldlYWtTZXRcIixzdGF0OiEwfSx7ZnJvbTplbn0pLGt0KHt0YXJnZXQ6XCJXZWFrU2V0XCIsc3RhdDohMH0se29mOnJufSk7dmFyIHFjLHpjLFdjLEtjPW4uUHJvbWlzZSxHYz0vKGlwaG9uZXxpcG9kfGlwYWQpLiphcHBsZXdlYmtpdC9pLnRlc3QoUWkpLCRjPW4ubG9jYXRpb24sVmM9bi5zZXRJbW1lZGlhdGUsSGM9bi5jbGVhckltbWVkaWF0ZSxYYz1uLnByb2Nlc3MsWWM9bi5NZXNzYWdlQ2hhbm5lbCxKYz1uLkRpc3BhdGNoLFFjPTAsWmM9e30sdGY9ZnVuY3Rpb24odCl7aWYoWmMuaGFzT3duUHJvcGVydHkodCkpe3ZhciBlPVpjW3RdO2RlbGV0ZSBaY1t0XSxlKCl9fSxlZj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0Zih0KX19LHJmPWZ1bmN0aW9uKHQpe3RmKHQuZGF0YSl9LG5mPWZ1bmN0aW9uKHQpe24ucG9zdE1lc3NhZ2UodCtcIlwiLCRjLnByb3RvY29sK1wiLy9cIiskYy5ob3N0KX07VmMmJkhjfHwoVmM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLHI9MTthcmd1bWVudHMubGVuZ3RoPnI7KWUucHVzaChhcmd1bWVudHNbcisrXSk7cmV0dXJuIFpjWysrUWNdPWZ1bmN0aW9uKCl7KFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpGdW5jdGlvbih0KSkuYXBwbHkodm9pZCAwLGUpfSxxYyhRYyksUWN9LEhjPWZ1bmN0aW9uKHQpe2RlbGV0ZSBaY1t0XX0sXCJwcm9jZXNzXCI9PWwoWGMpP3FjPWZ1bmN0aW9uKHQpe1hjLm5leHRUaWNrKGVmKHQpKX06SmMmJkpjLm5vdz9xYz1mdW5jdGlvbih0KXtKYy5ub3coZWYodCkpfTpZYyYmIUdjPyhXYz0oemM9bmV3IFljKS5wb3J0Mix6Yy5wb3J0MS5vbm1lc3NhZ2U9cmYscWM9WnQoV2MucG9zdE1lc3NhZ2UsV2MsMSkpOiFuLmFkZEV2ZW50TGlzdGVuZXJ8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIHBvc3RNZXNzYWdlfHxuLmltcG9ydFNjcmlwdHN8fG8obmYpfHxcImZpbGU6XCI9PT0kYy5wcm90b2NvbD9xYz1cIm9ucmVhZHlzdGF0ZWNoYW5nZVwiaW4gRShcInNjcmlwdFwiKT9mdW5jdGlvbih0KXtXdC5hcHBlbmRDaGlsZChFKFwic2NyaXB0XCIpKS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtXdC5yZW1vdmVDaGlsZCh0aGlzKSx0Zih0KX19OmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQoZWYodCksMCl9OihxYz1uZixuLmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIscmYsITEpKSk7dmFyIG9mLGFmLHVmLHNmLGNmLGZmLGxmLGhmLHBmPXtzZXQ6VmMsY2xlYXI6SGN9LGRmPU8uZix2Zj1wZi5zZXQsZ2Y9bi5NdXRhdGlvbk9ic2VydmVyfHxuLldlYktpdE11dGF0aW9uT2JzZXJ2ZXIseWY9bi5wcm9jZXNzLG1mPW4uUHJvbWlzZSxiZj1cInByb2Nlc3NcIj09bCh5Ziksd2Y9ZGYobixcInF1ZXVlTWljcm90YXNrXCIpLFNmPXdmJiZ3Zi52YWx1ZTtTZnx8KG9mPWZ1bmN0aW9uKCl7dmFyIHQsZTtmb3IoYmYmJih0PXlmLmRvbWFpbikmJnQuZXhpdCgpO2FmOyl7ZT1hZi5mbixhZj1hZi5uZXh0O3RyeXtlKCl9Y2F0Y2godCl7dGhyb3cgYWY/c2YoKTp1Zj12b2lkIDAsdH19dWY9dm9pZCAwLHQmJnQuZW50ZXIoKX0sYmY/c2Y9ZnVuY3Rpb24oKXt5Zi5uZXh0VGljayhvZil9OmdmJiYhR2M/KGNmPSEwLGZmPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFwiXCIpLG5ldyBnZihvZikub2JzZXJ2ZShmZix7Y2hhcmFjdGVyRGF0YTohMH0pLHNmPWZ1bmN0aW9uKCl7ZmYuZGF0YT1jZj0hY2Z9KTptZiYmbWYucmVzb2x2ZT8obGY9bWYucmVzb2x2ZSh2b2lkIDApLGhmPWxmLnRoZW4sc2Y9ZnVuY3Rpb24oKXtoZi5jYWxsKGxmLG9mKX0pOnNmPWZ1bmN0aW9uKCl7dmYuY2FsbChuLG9mKX0pO3ZhciBFZix4ZixBZixPZixSZj1TZnx8ZnVuY3Rpb24odCl7dmFyIGU9e2ZuOnQsbmV4dDp2b2lkIDB9O3VmJiYodWYubmV4dD1lKSxhZnx8KGFmPWUsc2YoKSksdWY9ZX0samY9ZnVuY3Rpb24odCl7dmFyIGUscjt0aGlzLnByb21pc2U9bmV3IHQoZnVuY3Rpb24odCxuKXtpZih2b2lkIDAhPT1lfHx2b2lkIDAhPT1yKXRocm93IFR5cGVFcnJvcihcIkJhZCBQcm9taXNlIGNvbnN0cnVjdG9yXCIpO2U9dCxyPW59KSx0aGlzLnJlc29sdmU9UXQoZSksdGhpcy5yZWplY3Q9UXQocil9LFBmPXtmOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgamYodCl9fSxJZj1mdW5jdGlvbih0LGUpe2lmKFIodCksZyhlKSYmZS5jb25zdHJ1Y3Rvcj09PXQpcmV0dXJuIGU7dmFyIHI9UGYuZih0KTtyZXR1cm4oMCxyLnJlc29sdmUpKGUpLHIucHJvbWlzZX0sVGY9ZnVuY3Rpb24odCl7dHJ5e3JldHVybntlcnJvcjohMSx2YWx1ZTp0KCl9fWNhdGNoKHQpe3JldHVybntlcnJvcjohMCx2YWx1ZTp0fX19LGtmPXBmLnNldCxMZj1EdChcInNwZWNpZXNcIiksVWY9XCJQcm9taXNlXCIsTWY9dHQuZ2V0LF9mPXR0LnNldCxOZj10dC5nZXR0ZXJGb3IoVWYpLENmPUtjLEZmPW4uVHlwZUVycm9yLEJmPW4uZG9jdW1lbnQsRGY9bi5wcm9jZXNzLHFmPW90KFwiZmV0Y2hcIiksemY9UGYuZixXZj16ZixLZj1cInByb2Nlc3NcIj09bChEZiksR2Y9ISEoQmYmJkJmLmNyZWF0ZUV2ZW50JiZuLmRpc3BhdGNoRXZlbnQpLCRmPVwidW5oYW5kbGVkcmVqZWN0aW9uXCIsVmY9SXQoVWYsZnVuY3Rpb24oKXtpZihDKENmKT09PVN0cmluZyhDZikpe2lmKDY2PT09cmEpcmV0dXJuITA7aWYoIUtmJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBQcm9taXNlUmVqZWN0aW9uRXZlbnQpcmV0dXJuITB9aWYocmE+PTUxJiYvbmF0aXZlIGNvZGUvLnRlc3QoQ2YpKXJldHVybiExO3ZhciB0PUNmLnJlc29sdmUoMSksZT1mdW5jdGlvbih0KXt0KGZ1bmN0aW9uKCl7fSxmdW5jdGlvbigpe30pfTtyZXR1cm4odC5jb25zdHJ1Y3Rvcj17fSlbTGZdPWUsISh0LnRoZW4oZnVuY3Rpb24oKXt9KWluc3RhbmNlb2YgZSl9KSxIZj1WZnx8IXlyKGZ1bmN0aW9uKHQpe0NmLmFsbCh0KS5jYXRjaChmdW5jdGlvbigpe30pfSksWGY9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuISghZyh0KXx8XCJmdW5jdGlvblwiIT10eXBlb2YoZT10LnRoZW4pKSYmZX0sWWY9ZnVuY3Rpb24odCxlLHIpe2lmKCFlLm5vdGlmaWVkKXtlLm5vdGlmaWVkPSEwO3ZhciBuPWUucmVhY3Rpb25zO1JmKGZ1bmN0aW9uKCl7Zm9yKHZhciBvPWUudmFsdWUsaT0xPT1lLnN0YXRlLGE9MDtuLmxlbmd0aD5hOyl7dmFyIHUscyxjLGY9blthKytdLGw9aT9mLm9rOmYuZmFpbCxoPWYucmVzb2x2ZSxwPWYucmVqZWN0LGQ9Zi5kb21haW47dHJ5e2w/KGl8fCgyPT09ZS5yZWplY3Rpb24mJnRsKHQsZSksZS5yZWplY3Rpb249MSksITA9PT1sP3U9bzooZCYmZC5lbnRlcigpLHU9bChvKSxkJiYoZC5leGl0KCksYz0hMCkpLHU9PT1mLnByb21pc2U/cChGZihcIlByb21pc2UtY2hhaW4gY3ljbGVcIikpOihzPVhmKHUpKT9zLmNhbGwodSxoLHApOmgodSkpOnAobyl9Y2F0Y2godCl7ZCYmIWMmJmQuZXhpdCgpLHAodCl9fWUucmVhY3Rpb25zPVtdLGUubm90aWZpZWQ9ITEsciYmIWUucmVqZWN0aW9uJiZRZih0LGUpfSl9fSxKZj1mdW5jdGlvbih0LGUscil7dmFyIG8saTtHZj8oKG89QmYuY3JlYXRlRXZlbnQoXCJFdmVudFwiKSkucHJvbWlzZT1lLG8ucmVhc29uPXIsby5pbml0RXZlbnQodCwhMSwhMCksbi5kaXNwYXRjaEV2ZW50KG8pKTpvPXtwcm9taXNlOmUscmVhc29uOnJ9LChpPW5bXCJvblwiK3RdKT9pKG8pOnQ9PT0kZiYmZnVuY3Rpb24odCxlKXt2YXIgcj1uLmNvbnNvbGU7ciYmci5lcnJvciYmKDE9PT1hcmd1bWVudHMubGVuZ3RoP3IuZXJyb3IodCk6ci5lcnJvcih0LGUpKX0oXCJVbmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb25cIixyKX0sUWY9ZnVuY3Rpb24odCxlKXtrZi5jYWxsKG4sZnVuY3Rpb24oKXt2YXIgcixuPWUudmFsdWU7aWYoWmYoZSkmJihyPVRmKGZ1bmN0aW9uKCl7S2Y/RGYuZW1pdChcInVuaGFuZGxlZFJlamVjdGlvblwiLG4sdCk6SmYoJGYsdCxuKX0pLGUucmVqZWN0aW9uPUtmfHxaZihlKT8yOjEsci5lcnJvcikpdGhyb3cgci52YWx1ZX0pfSxaZj1mdW5jdGlvbih0KXtyZXR1cm4gMSE9PXQucmVqZWN0aW9uJiYhdC5wYXJlbnR9LHRsPWZ1bmN0aW9uKHQsZSl7a2YuY2FsbChuLGZ1bmN0aW9uKCl7S2Y/RGYuZW1pdChcInJlamVjdGlvbkhhbmRsZWRcIix0KTpKZihcInJlamVjdGlvbmhhbmRsZWRcIix0LGUudmFsdWUpfSl9LGVsPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiBmdW5jdGlvbihvKXt0KGUscixvLG4pfX0scmw9ZnVuY3Rpb24odCxlLHIsbil7ZS5kb25lfHwoZS5kb25lPSEwLG4mJihlPW4pLGUudmFsdWU9cixlLnN0YXRlPTIsWWYodCxlLCEwKSl9LG5sPWZ1bmN0aW9uIHQoZSxyLG4sbyl7aWYoIXIuZG9uZSl7ci5kb25lPSEwLG8mJihyPW8pO3RyeXtpZihlPT09bil0aHJvdyBGZihcIlByb21pc2UgY2FuJ3QgYmUgcmVzb2x2ZWQgaXRzZWxmXCIpO3ZhciBpPVhmKG4pO2k/UmYoZnVuY3Rpb24oKXt2YXIgbz17ZG9uZTohMX07dHJ5e2kuY2FsbChuLGVsKHQsZSxvLHIpLGVsKHJsLGUsbyxyKSl9Y2F0Y2godCl7cmwoZSxvLHQscil9fSk6KHIudmFsdWU9bixyLnN0YXRlPTEsWWYoZSxyLCExKSl9Y2F0Y2godCl7cmwoZSx7ZG9uZTohMX0sdCxyKX19fTtWZiYmKENmPWZ1bmN0aW9uKHQpe19yKHRoaXMsQ2YsVWYpLFF0KHQpLEVmLmNhbGwodGhpcyk7dmFyIGU9TWYodGhpcyk7dHJ5e3QoZWwobmwsdGhpcyxlKSxlbChybCx0aGlzLGUpKX1jYXRjaCh0KXtybCh0aGlzLGUsdCl9fSwoRWY9ZnVuY3Rpb24odCl7X2YodGhpcyx7dHlwZTpVZixkb25lOiExLG5vdGlmaWVkOiExLHBhcmVudDohMSxyZWFjdGlvbnM6W10scmVqZWN0aW9uOiExLHN0YXRlOjAsdmFsdWU6dm9pZCAwfSl9KS5wcm90b3R5cGU9RnIoQ2YucHJvdG90eXBlLHt0aGVuOmZ1bmN0aW9uKHQsZSl7dmFyIHI9TmYodGhpcyksbj16Zihzbih0aGlzLENmKSk7cmV0dXJuIG4ub2s9XCJmdW5jdGlvblwiIT10eXBlb2YgdHx8dCxuLmZhaWw9XCJmdW5jdGlvblwiPT10eXBlb2YgZSYmZSxuLmRvbWFpbj1LZj9EZi5kb21haW46dm9pZCAwLHIucGFyZW50PSEwLHIucmVhY3Rpb25zLnB1c2gobiksMCE9ci5zdGF0ZSYmWWYodGhpcyxyLCExKSxuLnByb21pc2V9LGNhdGNoOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRoZW4odm9pZCAwLHQpfX0pLHhmPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IEVmLGU9TWYodCk7dGhpcy5wcm9taXNlPXQsdGhpcy5yZXNvbHZlPWVsKG5sLHQsZSksdGhpcy5yZWplY3Q9ZWwocmwsdCxlKX0sUGYuZj16Zj1mdW5jdGlvbih0KXtyZXR1cm4gdD09PUNmfHx0PT09QWY/bmV3IHhmKHQpOldmKHQpfSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBLYyYmKE9mPUtjLnByb3RvdHlwZS50aGVuLGV0KEtjLnByb3RvdHlwZSxcInRoZW5cIixmdW5jdGlvbih0LGUpe3ZhciByPXRoaXM7cmV0dXJuIG5ldyBDZihmdW5jdGlvbih0LGUpe09mLmNhbGwocix0LGUpfSkudGhlbih0LGUpfSx7dW5zYWZlOiEwfSksXCJmdW5jdGlvblwiPT10eXBlb2YgcWYmJmt0KHtnbG9iYWw6ITAsZW51bWVyYWJsZTohMCxmb3JjZWQ6ITB9LHtmZXRjaDpmdW5jdGlvbih0KXtyZXR1cm4gSWYoQ2YscWYuYXBwbHkobixhcmd1bWVudHMpKX19KSkpLGt0KHtnbG9iYWw6ITAsd3JhcDohMCxmb3JjZWQ6VmZ9LHtQcm9taXNlOkNmfSksX2UoQ2YsVWYsITEpLERyKFVmKSxBZj1vdChVZiksa3Qoe3RhcmdldDpVZixzdGF0OiEwLGZvcmNlZDpWZn0se3JlamVjdDpmdW5jdGlvbih0KXt2YXIgZT16Zih0aGlzKTtyZXR1cm4gZS5yZWplY3QuY2FsbCh2b2lkIDAsdCksZS5wcm9taXNlfX0pLGt0KHt0YXJnZXQ6VWYsc3RhdDohMCxmb3JjZWQ6VmZ9LHtyZXNvbHZlOmZ1bmN0aW9uKHQpe3JldHVybiBJZih0aGlzLHQpfX0pLGt0KHt0YXJnZXQ6VWYsc3RhdDohMCxmb3JjZWQ6SGZ9LHthbGw6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPXpmKGUpLG49ci5yZXNvbHZlLG89ci5yZWplY3QsaT1UZihmdW5jdGlvbigpe3ZhciByPVF0KGUucmVzb2x2ZSksaT1bXSxhPTAsdT0xO01yKHQsZnVuY3Rpb24odCl7dmFyIHM9YSsrLGM9ITE7aS5wdXNoKHZvaWQgMCksdSsrLHIuY2FsbChlLHQpLnRoZW4oZnVuY3Rpb24odCl7Y3x8KGM9ITAsaVtzXT10LC0tdXx8bihpKSl9LG8pfSksLS11fHxuKGkpfSk7cmV0dXJuIGkuZXJyb3ImJm8oaS52YWx1ZSksci5wcm9taXNlfSxyYWNlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj16ZihlKSxuPXIucmVqZWN0LG89VGYoZnVuY3Rpb24oKXt2YXIgbz1RdChlLnJlc29sdmUpO01yKHQsZnVuY3Rpb24odCl7by5jYWxsKGUsdCkudGhlbihyLnJlc29sdmUsbil9KX0pO3JldHVybiBvLmVycm9yJiZuKG8udmFsdWUpLHIucHJvbWlzZX19KSxrdCh7dGFyZ2V0OlwiUHJvbWlzZVwiLHN0YXQ6ITB9LHthbGxTZXR0bGVkOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj1QZi5mKGUpLG49ci5yZXNvbHZlLG89ci5yZWplY3QsaT1UZihmdW5jdGlvbigpe3ZhciByPVF0KGUucmVzb2x2ZSksbz1bXSxpPTAsYT0xO01yKHQsZnVuY3Rpb24odCl7dmFyIHU9aSsrLHM9ITE7by5wdXNoKHZvaWQgMCksYSsrLHIuY2FsbChlLHQpLnRoZW4oZnVuY3Rpb24odCl7c3x8KHM9ITAsb1t1XT17c3RhdHVzOlwiZnVsZmlsbGVkXCIsdmFsdWU6dH0sLS1hfHxuKG8pKX0sZnVuY3Rpb24odCl7c3x8KHM9ITAsb1t1XT17c3RhdHVzOlwicmVqZWN0ZWRcIixyZWFzb246dH0sLS1hfHxuKG8pKX0pfSksLS1hfHxuKG8pfSk7cmV0dXJuIGkuZXJyb3ImJm8oaS52YWx1ZSksci5wcm9taXNlfX0pO3ZhciBvbD0hIUtjJiZvKGZ1bmN0aW9uKCl7S2MucHJvdG90eXBlLmZpbmFsbHkuY2FsbCh7dGhlbjpmdW5jdGlvbigpe319LGZ1bmN0aW9uKCl7fSl9KTtrdCh7dGFyZ2V0OlwiUHJvbWlzZVwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOm9sfSx7ZmluYWxseTpmdW5jdGlvbih0KXt2YXIgZT1zbih0aGlzLG90KFwiUHJvbWlzZVwiKSkscj1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0O3JldHVybiB0aGlzLnRoZW4ocj9mdW5jdGlvbihyKXtyZXR1cm4gSWYoZSx0KCkpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcn0pfTp0LHI/ZnVuY3Rpb24ocil7cmV0dXJuIElmKGUsdCgpKS50aGVuKGZ1bmN0aW9uKCl7dGhyb3cgcn0pfTp0KX19KSxcImZ1bmN0aW9uXCIhPXR5cGVvZiBLY3x8S2MucHJvdG90eXBlLmZpbmFsbHl8fGV0KEtjLnByb3RvdHlwZSxcImZpbmFsbHlcIixvdChcIlByb21pc2VcIikucHJvdG90eXBlLmZpbmFsbHkpO3ZhciBpbD10dC5zZXQsYWw9dHQuZ2V0dGVyRm9yKFwiQWdncmVnYXRlRXJyb3JcIiksdWw9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzO2lmKCEociBpbnN0YW5jZW9mIHVsKSlyZXR1cm4gbmV3IHVsKHQsZSk7cWUmJihyPXFlKG5ldyBFcnJvcihlKSxJZShyKSkpO3ZhciBuPVtdO3JldHVybiBNcih0LG4ucHVzaCxuKSxpP2lsKHIse2Vycm9yczpuLHR5cGU6XCJBZ2dyZWdhdGVFcnJvclwifSk6ci5lcnJvcnM9bix2b2lkIDAhPT1lJiZJKHIsXCJtZXNzYWdlXCIsU3RyaW5nKGUpKSxyfTt1bC5wcm90b3R5cGU9SHQoRXJyb3IucHJvdG90eXBlLHtjb25zdHJ1Y3RvcjpjKDUsdWwpLG1lc3NhZ2U6Yyg1LFwiXCIpLG5hbWU6Yyg1LFwiQWdncmVnYXRlRXJyb3JcIil9KSxpJiZQLmYodWwucHJvdG90eXBlLFwiZXJyb3JzXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBhbCh0aGlzKS5lcnJvcnN9LGNvbmZpZ3VyYWJsZTohMH0pLGt0KHtnbG9iYWw6ITB9LHtBZ2dyZWdhdGVFcnJvcjp1bH0pLGt0KHt0YXJnZXQ6XCJQcm9taXNlXCIsc3RhdDohMH0se3RyeTpmdW5jdGlvbih0KXt2YXIgZT1QZi5mKHRoaXMpLHI9VGYodCk7cmV0dXJuKHIuZXJyb3I/ZS5yZWplY3Q6ZS5yZXNvbHZlKShyLnZhbHVlKSxlLnByb21pc2V9fSk7dmFyIHNsPVwiTm8gb25lIHByb21pc2UgcmVzb2x2ZWRcIjtrdCh7dGFyZ2V0OlwiUHJvbWlzZVwiLHN0YXQ6ITB9LHthbnk6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPVBmLmYoZSksbj1yLnJlc29sdmUsbz1yLnJlamVjdCxpPVRmKGZ1bmN0aW9uKCl7dmFyIHI9UXQoZS5yZXNvbHZlKSxpPVtdLGE9MCx1PTEscz0hMTtNcih0LGZ1bmN0aW9uKHQpe3ZhciBjPWErKyxmPSExO2kucHVzaCh2b2lkIDApLHUrKyxyLmNhbGwoZSx0KS50aGVuKGZ1bmN0aW9uKHQpe2Z8fHN8fChzPSEwLG4odCkpfSxmdW5jdGlvbih0KXtmfHxzfHwoZj0hMCxpW2NdPXQsLS11fHxvKG5ldyhvdChcIkFnZ3JlZ2F0ZUVycm9yXCIpKShpLHNsKSkpfSl9KSwtLXV8fG8obmV3KG90KFwiQWdncmVnYXRlRXJyb3JcIikpKGksc2wpKX0pO3JldHVybiBpLmVycm9yJiZvKGkudmFsdWUpLHIucHJvbWlzZX19KSxlZShcIlByb21pc2VcIixcImZpbmFsbHlcIik7dmFyIGNsPVwiVVJMU2VhcmNoUGFyYW1zXCJpbiBzZWxmLGZsPVwiU3ltYm9sXCJpbiBzZWxmJiZcIml0ZXJhdG9yXCJpbiBTeW1ib2wsbGw9XCJGaWxlUmVhZGVyXCJpbiBzZWxmJiZcIkJsb2JcImluIHNlbGYmJmZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgQmxvYiwhMH1jYXRjaCh0KXtyZXR1cm4hMX19KCksaGw9XCJGb3JtRGF0YVwiaW4gc2VsZixwbD1cIkFycmF5QnVmZmVyXCJpbiBzZWxmO2lmKHBsKXZhciBkbD1bXCJbb2JqZWN0IEludDhBcnJheV1cIixcIltvYmplY3QgVWludDhBcnJheV1cIixcIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldXCIsXCJbb2JqZWN0IEludDE2QXJyYXldXCIsXCJbb2JqZWN0IFVpbnQxNkFycmF5XVwiLFwiW29iamVjdCBJbnQzMkFycmF5XVwiLFwiW29iamVjdCBVaW50MzJBcnJheV1cIixcIltvYmplY3QgRmxvYXQzMkFycmF5XVwiLFwiW29iamVjdCBGbG9hdDY0QXJyYXldXCJdLHZsPUFycmF5QnVmZmVyLmlzVmlld3x8ZnVuY3Rpb24odCl7cmV0dXJuIHQmJmRsLmluZGV4T2YoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpKT4tMX07ZnVuY3Rpb24gZ2wodCl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIHQmJih0PVN0cmluZyh0KSksL1teYS16MC05XFwtIyQlJicqKy5eX2B8fl0vaS50ZXN0KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGNoYXJhY3RlciBpbiBoZWFkZXIgZmllbGQgbmFtZVwiKTtyZXR1cm4gdC50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIHlsKHQpe3JldHVyblwic3RyaW5nXCIhPXR5cGVvZiB0JiYodD1TdHJpbmcodCkpLHR9ZnVuY3Rpb24gbWwodCl7dmFyIGU9e25leHQ6ZnVuY3Rpb24oKXt2YXIgZT10LnNoaWZ0KCk7cmV0dXJue2RvbmU6dm9pZCAwPT09ZSx2YWx1ZTplfX19O3JldHVybiBmbCYmKGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiBlfSksZX1mdW5jdGlvbiBibCh0KXt0aGlzLm1hcD17fSx0IGluc3RhbmNlb2YgYmw/dC5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dGhpcy5hcHBlbmQoZSx0KX0sdGhpcyk6QXJyYXkuaXNBcnJheSh0KT90LmZvckVhY2goZnVuY3Rpb24odCl7dGhpcy5hcHBlbmQodFswXSx0WzFdKX0sdGhpcyk6dCYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCkuZm9yRWFjaChmdW5jdGlvbihlKXt0aGlzLmFwcGVuZChlLHRbZV0pfSx0aGlzKX1mdW5jdGlvbiB3bCh0KXtpZih0LmJvZHlVc2VkKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVHlwZUVycm9yKFwiQWxyZWFkeSByZWFkXCIpKTt0LmJvZHlVc2VkPSEwfWZ1bmN0aW9uIFNsKHQpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLHIpe3Qub25sb2FkPWZ1bmN0aW9uKCl7ZSh0LnJlc3VsdCl9LHQub25lcnJvcj1mdW5jdGlvbigpe3IodC5lcnJvcil9fSl9ZnVuY3Rpb24gRWwodCl7dmFyIGU9bmV3IEZpbGVSZWFkZXIscj1TbChlKTtyZXR1cm4gZS5yZWFkQXNBcnJheUJ1ZmZlcih0KSxyfWZ1bmN0aW9uIHhsKHQpe2lmKHQuc2xpY2UpcmV0dXJuIHQuc2xpY2UoMCk7dmFyIGU9bmV3IFVpbnQ4QXJyYXkodC5ieXRlTGVuZ3RoKTtyZXR1cm4gZS5zZXQobmV3IFVpbnQ4QXJyYXkodCkpLGUuYnVmZmVyfWZ1bmN0aW9uIEFsKCl7cmV0dXJuIHRoaXMuYm9keVVzZWQ9ITEsdGhpcy5faW5pdEJvZHk9ZnVuY3Rpb24odCl7dmFyIGU7dGhpcy5fYm9keUluaXQ9dCx0P1wic3RyaW5nXCI9PXR5cGVvZiB0P3RoaXMuX2JvZHlUZXh0PXQ6bGwmJkJsb2IucHJvdG90eXBlLmlzUHJvdG90eXBlT2YodCk/dGhpcy5fYm9keUJsb2I9dDpobCYmRm9ybURhdGEucHJvdG90eXBlLmlzUHJvdG90eXBlT2YodCk/dGhpcy5fYm9keUZvcm1EYXRhPXQ6Y2wmJlVSTFNlYXJjaFBhcmFtcy5wcm90b3R5cGUuaXNQcm90b3R5cGVPZih0KT90aGlzLl9ib2R5VGV4dD10LnRvU3RyaW5nKCk6cGwmJmxsJiYoZT10KSYmRGF0YVZpZXcucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoZSk/KHRoaXMuX2JvZHlBcnJheUJ1ZmZlcj14bCh0LmJ1ZmZlciksdGhpcy5fYm9keUluaXQ9bmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pKTpwbCYmKEFycmF5QnVmZmVyLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKHQpfHx2bCh0KSk/dGhpcy5fYm9keUFycmF5QnVmZmVyPXhsKHQpOnRoaXMuX2JvZHlUZXh0PXQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpOnRoaXMuX2JvZHlUZXh0PVwiXCIsdGhpcy5oZWFkZXJzLmdldChcImNvbnRlbnQtdHlwZVwiKXx8KFwic3RyaW5nXCI9PXR5cGVvZiB0P3RoaXMuaGVhZGVycy5zZXQoXCJjb250ZW50LXR5cGVcIixcInRleHQvcGxhaW47Y2hhcnNldD1VVEYtOFwiKTp0aGlzLl9ib2R5QmxvYiYmdGhpcy5fYm9keUJsb2IudHlwZT90aGlzLmhlYWRlcnMuc2V0KFwiY29udGVudC10eXBlXCIsdGhpcy5fYm9keUJsb2IudHlwZSk6Y2wmJlVSTFNlYXJjaFBhcmFtcy5wcm90b3R5cGUuaXNQcm90b3R5cGVPZih0KSYmdGhpcy5oZWFkZXJzLnNldChcImNvbnRlbnQtdHlwZVwiLFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLThcIikpfSxsbCYmKHRoaXMuYmxvYj1mdW5jdGlvbigpe3ZhciB0PXdsKHRoaXMpO2lmKHQpcmV0dXJuIHQ7aWYodGhpcy5fYm9keUJsb2IpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QmxvYik7aWYodGhpcy5fYm9keUFycmF5QnVmZmVyKXJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pKTtpZih0aGlzLl9ib2R5Rm9ybURhdGEpdGhyb3cgbmV3IEVycm9yKFwiY291bGQgbm90IHJlYWQgRm9ybURhdGEgYm9keSBhcyBibG9iXCIpO3JldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlUZXh0XSkpfSx0aGlzLmFycmF5QnVmZmVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JvZHlBcnJheUJ1ZmZlcj93bCh0aGlzKXx8UHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcik6dGhpcy5ibG9iKCkudGhlbihFbCl9KSx0aGlzLnRleHQ9ZnVuY3Rpb24oKXt2YXIgdD13bCh0aGlzKTtpZih0KXJldHVybiB0O2lmKHRoaXMuX2JvZHlCbG9iKXJldHVybiBmdW5jdGlvbih0KXt2YXIgZT1uZXcgRmlsZVJlYWRlcixyPVNsKGUpO3JldHVybiBlLnJlYWRBc1RleHQodCkscn0odGhpcy5fYm9keUJsb2IpO2lmKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgVWludDhBcnJheSh0KSxyPW5ldyBBcnJheShlLmxlbmd0aCksbj0wO248ZS5sZW5ndGg7bisrKXJbbl09U3RyaW5nLmZyb21DaGFyQ29kZShlW25dKTtyZXR1cm4gci5qb2luKFwiXCIpfSh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpKTtpZih0aGlzLl9ib2R5Rm9ybURhdGEpdGhyb3cgbmV3IEVycm9yKFwiY291bGQgbm90IHJlYWQgRm9ybURhdGEgYm9keSBhcyB0ZXh0XCIpO3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keVRleHQpfSxobCYmKHRoaXMuZm9ybURhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0KCkudGhlbihqbCl9KSx0aGlzLmpzb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0KCkudGhlbihKU09OLnBhcnNlKX0sdGhpc31ibC5wcm90b3R5cGUuYXBwZW5kPWZ1bmN0aW9uKHQsZSl7dD1nbCh0KSxlPXlsKGUpO3ZhciByPXRoaXMubWFwW3RdO3RoaXMubWFwW3RdPXI/citcIiwgXCIrZTplfSxibC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe2RlbGV0ZSB0aGlzLm1hcFtnbCh0KV19LGJsLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9Z2wodCksdGhpcy5oYXModCk/dGhpcy5tYXBbdF06bnVsbH0sYmwucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tYXAuaGFzT3duUHJvcGVydHkoZ2wodCkpfSxibC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dGhpcy5tYXBbZ2wodCldPXlsKGUpfSxibC5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgciBpbiB0aGlzLm1hcCl0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eShyKSYmdC5jYWxsKGUsdGhpcy5tYXBbcl0scix0aGlzKX0sYmwucHJvdG90eXBlLmtleXM9ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKGUscil7dC5wdXNoKHIpfSksbWwodCl9LGJsLnByb3RvdHlwZS52YWx1ZXM9ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QucHVzaChlKX0pLG1sKHQpfSxibC5wcm90b3R5cGUuZW50cmllcz1mdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oZSxyKXt0LnB1c2goW3IsZV0pfSksbWwodCl9LGZsJiYoYmwucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09YmwucHJvdG90eXBlLmVudHJpZXMpO3ZhciBPbD1bXCJERUxFVEVcIixcIkdFVFwiLFwiSEVBRFwiLFwiT1BUSU9OU1wiLFwiUE9TVFwiLFwiUFVUXCJdO2Z1bmN0aW9uIFJsKHQsZSl7dmFyIHIsbixvPShlPWV8fHt9KS5ib2R5O2lmKHQgaW5zdGFuY2VvZiBSbCl7aWYodC5ib2R5VXNlZCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQWxyZWFkeSByZWFkXCIpO3RoaXMudXJsPXQudXJsLHRoaXMuY3JlZGVudGlhbHM9dC5jcmVkZW50aWFscyxlLmhlYWRlcnN8fCh0aGlzLmhlYWRlcnM9bmV3IGJsKHQuaGVhZGVycykpLHRoaXMubWV0aG9kPXQubWV0aG9kLHRoaXMubW9kZT10Lm1vZGUsdGhpcy5zaWduYWw9dC5zaWduYWwsb3x8bnVsbD09dC5fYm9keUluaXR8fChvPXQuX2JvZHlJbml0LHQuYm9keVVzZWQ9ITApfWVsc2UgdGhpcy51cmw9U3RyaW5nKHQpO2lmKHRoaXMuY3JlZGVudGlhbHM9ZS5jcmVkZW50aWFsc3x8dGhpcy5jcmVkZW50aWFsc3x8XCJzYW1lLW9yaWdpblwiLCFlLmhlYWRlcnMmJnRoaXMuaGVhZGVyc3x8KHRoaXMuaGVhZGVycz1uZXcgYmwoZS5oZWFkZXJzKSksdGhpcy5tZXRob2Q9KG49KHI9ZS5tZXRob2R8fHRoaXMubWV0aG9kfHxcIkdFVFwiKS50b1VwcGVyQ2FzZSgpLE9sLmluZGV4T2Yobik+LTE/bjpyKSx0aGlzLm1vZGU9ZS5tb2RlfHx0aGlzLm1vZGV8fG51bGwsdGhpcy5zaWduYWw9ZS5zaWduYWx8fHRoaXMuc2lnbmFsLHRoaXMucmVmZXJyZXI9bnVsbCwoXCJHRVRcIj09PXRoaXMubWV0aG9kfHxcIkhFQURcIj09PXRoaXMubWV0aG9kKSYmbyl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQm9keSBub3QgYWxsb3dlZCBmb3IgR0VUIG9yIEhFQUQgcmVxdWVzdHNcIik7dGhpcy5faW5pdEJvZHkobyl9ZnVuY3Rpb24gamwodCl7dmFyIGU9bmV3IEZvcm1EYXRhO3JldHVybiB0LnRyaW0oKS5zcGxpdChcIiZcIikuZm9yRWFjaChmdW5jdGlvbih0KXtpZih0KXt2YXIgcj10LnNwbGl0KFwiPVwiKSxuPXIuc2hpZnQoKS5yZXBsYWNlKC9cXCsvZyxcIiBcIiksbz1yLmpvaW4oXCI9XCIpLnJlcGxhY2UoL1xcKy9nLFwiIFwiKTtlLmFwcGVuZChkZWNvZGVVUklDb21wb25lbnQobiksZGVjb2RlVVJJQ29tcG9uZW50KG8pKX19KSxlfWZ1bmN0aW9uIFBsKHQsZSl7ZXx8KGU9e30pLHRoaXMudHlwZT1cImRlZmF1bHRcIix0aGlzLnN0YXR1cz12b2lkIDA9PT1lLnN0YXR1cz8yMDA6ZS5zdGF0dXMsdGhpcy5vaz10aGlzLnN0YXR1cz49MjAwJiZ0aGlzLnN0YXR1czwzMDAsdGhpcy5zdGF0dXNUZXh0PVwic3RhdHVzVGV4dFwiaW4gZT9lLnN0YXR1c1RleHQ6XCJPS1wiLHRoaXMuaGVhZGVycz1uZXcgYmwoZS5oZWFkZXJzKSx0aGlzLnVybD1lLnVybHx8XCJcIix0aGlzLl9pbml0Qm9keSh0KX1SbC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFJsKHRoaXMse2JvZHk6dGhpcy5fYm9keUluaXR9KX0sQWwuY2FsbChSbC5wcm90b3R5cGUpLEFsLmNhbGwoUGwucHJvdG90eXBlKSxQbC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFBsKHRoaXMuX2JvZHlJbml0LHtzdGF0dXM6dGhpcy5zdGF0dXMsc3RhdHVzVGV4dDp0aGlzLnN0YXR1c1RleHQsaGVhZGVyczpuZXcgYmwodGhpcy5oZWFkZXJzKSx1cmw6dGhpcy51cmx9KX0sUGwuZXJyb3I9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgUGwobnVsbCx7c3RhdHVzOjAsc3RhdHVzVGV4dDpcIlwifSk7cmV0dXJuIHQudHlwZT1cImVycm9yXCIsdH07dmFyIElsPVszMDEsMzAyLDMwMywzMDcsMzA4XTtQbC5yZWRpcmVjdD1mdW5jdGlvbih0LGUpe2lmKC0xPT09SWwuaW5kZXhPZihlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkludmFsaWQgc3RhdHVzIGNvZGVcIik7cmV0dXJuIG5ldyBQbChudWxsLHtzdGF0dXM6ZSxoZWFkZXJzOntsb2NhdGlvbjp0fX0pfTt2YXIgVGw9c2VsZi5ET01FeGNlcHRpb247dHJ5e25ldyBUbH1jYXRjaCh0KXsoVGw9ZnVuY3Rpb24odCxlKXt0aGlzLm1lc3NhZ2U9dCx0aGlzLm5hbWU9ZTt2YXIgcj1FcnJvcih0KTt0aGlzLnN0YWNrPXIuc3RhY2t9KS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLFRsLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1UbH1mdW5jdGlvbiBrbCh0LGUpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyLG4pe3ZhciBvPW5ldyBSbCh0LGUpO2lmKG8uc2lnbmFsJiZvLnNpZ25hbC5hYm9ydGVkKXJldHVybiBuKG5ldyBUbChcIkFib3J0ZWRcIixcIkFib3J0RXJyb3JcIikpO3ZhciBpPW5ldyBYTUxIdHRwUmVxdWVzdDtmdW5jdGlvbiBhKCl7aS5hYm9ydCgpfWkub25sb2FkPWZ1bmN0aW9uKCl7dmFyIHQsZSxuPXtzdGF0dXM6aS5zdGF0dXMsc3RhdHVzVGV4dDppLnN0YXR1c1RleHQsaGVhZGVyczoodD1pLmdldEFsbFJlc3BvbnNlSGVhZGVycygpfHxcIlwiLGU9bmV3IGJsLHQucmVwbGFjZSgvXFxyP1xcbltcXHQgXSsvZyxcIiBcIikuc3BsaXQoL1xccj9cXG4vKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByPXQuc3BsaXQoXCI6XCIpLG49ci5zaGlmdCgpLnRyaW0oKTtpZihuKXt2YXIgbz1yLmpvaW4oXCI6XCIpLnRyaW0oKTtlLmFwcGVuZChuLG8pfX0pLGUpfTtuLnVybD1cInJlc3BvbnNlVVJMXCJpbiBpP2kucmVzcG9uc2VVUkw6bi5oZWFkZXJzLmdldChcIlgtUmVxdWVzdC1VUkxcIikscihuZXcgUGwoXCJyZXNwb25zZVwiaW4gaT9pLnJlc3BvbnNlOmkucmVzcG9uc2VUZXh0LG4pKX0saS5vbmVycm9yPWZ1bmN0aW9uKCl7bihuZXcgVHlwZUVycm9yKFwiTmV0d29yayByZXF1ZXN0IGZhaWxlZFwiKSl9LGkub250aW1lb3V0PWZ1bmN0aW9uKCl7bihuZXcgVHlwZUVycm9yKFwiTmV0d29yayByZXF1ZXN0IGZhaWxlZFwiKSl9LGkub25hYm9ydD1mdW5jdGlvbigpe24obmV3IFRsKFwiQWJvcnRlZFwiLFwiQWJvcnRFcnJvclwiKSl9LGkub3BlbihvLm1ldGhvZCxvLnVybCwhMCksXCJpbmNsdWRlXCI9PT1vLmNyZWRlbnRpYWxzP2kud2l0aENyZWRlbnRpYWxzPSEwOlwib21pdFwiPT09by5jcmVkZW50aWFscyYmKGkud2l0aENyZWRlbnRpYWxzPSExKSxcInJlc3BvbnNlVHlwZVwiaW4gaSYmbGwmJihpLnJlc3BvbnNlVHlwZT1cImJsb2JcIiksby5oZWFkZXJzLmZvckVhY2goZnVuY3Rpb24odCxlKXtpLnNldFJlcXVlc3RIZWFkZXIoZSx0KX0pLG8uc2lnbmFsJiYoby5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsYSksaS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT09aS5yZWFkeVN0YXRlJiZvLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiYWJvcnRcIixhKX0pLGkuc2VuZCh2b2lkIDA9PT1vLl9ib2R5SW5pdD9udWxsOm8uX2JvZHlJbml0KX0pfWtsLnBvbHlmaWxsPSEwLHNlbGYuZmV0Y2h8fChzZWxmLmZldGNoPWtsLHNlbGYuSGVhZGVycz1ibCxzZWxmLlJlcXVlc3Q9Umwsc2VsZi5SZXNwb25zZT1QbCk7dmFyIExsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsVWw9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxNbD1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO2Z1bmN0aW9uIF9sKHQpe2lmKG51bGw9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIk9iamVjdC5hc3NpZ24gY2Fubm90IGJlIGNhbGxlZCB3aXRoIG51bGwgb3IgdW5kZWZpbmVkXCIpO3JldHVybiBPYmplY3QodCl9dmFyIE5sPWZ1bmN0aW9uKCl7dHJ5e2lmKCFPYmplY3QuYXNzaWduKXJldHVybiExO3ZhciB0PW5ldyBTdHJpbmcoXCJhYmNcIik7aWYodFs1XT1cImRlXCIsXCI1XCI9PT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KVswXSlyZXR1cm4hMTtmb3IodmFyIGU9e30scj0wO3I8MTA7cisrKWVbXCJfXCIrU3RyaW5nLmZyb21DaGFyQ29kZShyKV09cjtpZihcIjAxMjM0NTY3ODlcIiE9PU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pLmpvaW4oXCJcIikpcmV0dXJuITE7dmFyIG49e307cmV0dXJuXCJhYmNkZWZnaGlqa2xtbm9wcXJzdFwiLnNwbGl0KFwiXCIpLmZvckVhY2goZnVuY3Rpb24odCl7blt0XT10fSksXCJhYmNkZWZnaGlqa2xtbm9wcXJzdFwiPT09T2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSxuKSkuam9pbihcIlwiKX1jYXRjaCh0KXtyZXR1cm4hMX19KCk/T2JqZWN0LmFzc2lnbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuLG89X2wodCksaT0xO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspe2Zvcih2YXIgYSBpbiByPU9iamVjdChhcmd1bWVudHNbaV0pKVVsLmNhbGwocixhKSYmKG9bYV09clthXSk7aWYoTGwpe249TGwocik7Zm9yKHZhciB1PTA7dTxuLmxlbmd0aDt1KyspTWwuY2FsbChyLG5bdV0pJiYob1tuW3VdXT1yW25bdV1dKX19cmV0dXJuIG99O09iamVjdC5hc3NpZ249Tmx9KCk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/polyfills/polyfill-nomodule.js\n");
|
||
|
||
/***/ })
|
||
|
||
},
|
||
/******/ function(__webpack_require__) { // webpackRuntimeModules
|
||
/******/ // runtime can't be in strict mode because a global variable is assign and maybe created.
|
||
/******/
|
||
/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
|
||
/******/ var __webpack_exports__ = (__webpack_exec__("./node_modules/next/dist/client/polyfills.js"));
|
||
/******/ _N_E = __webpack_exports__;
|
||
/******/ }
|
||
]); |