123 |
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).zip={})}(this,(function(t){"use strict";function e(){
- /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
- e=function(){return t};var t={},i=Object.prototype,n=i.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},d=r.iterator||"@@iterator",c=r.asyncIterator||"@@asyncIterator",a=r.toStringTag||"@@toStringTag";function s(t,e,i){return Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,i){return t[e]=i}}function l(t,e,i,n){var r=e&&e.prototype instanceof m?e:m,d=Object.create(r.prototype),c=new K(n||[]);return d._invoke=function(t,e,i){var n="suspendedStart";return function(r,d){if("executing"===n)throw Error("Generator is already running");if("completed"===n){if("throw"===r)throw d;return{value:void 0,done:!0}}for(i.method=r,i.arg=d;;){var c=i.delegate;if(c){var a=X(c,i);if(a){if(a===u)continue;return a}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if("suspendedStart"===n)throw n="completed",i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);n="executing";var s=o(t,e,i);if("normal"===s.type){if(n=i.done?"completed":"suspendedYield",s.arg===u)continue;return{value:s.arg,done:i.done}}"throw"===s.type&&(n="completed",i.method="throw",i.arg=s.arg)}}}(t,i,c),d}function o(t,e,i){try{return{type:"normal",arg:t.call(e,i)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var u={};function m(){}function p(){}function y(){}var b={};s(b,d,(function(){return this}));var h=Object.getPrototypeOf,Z=h&&h(h(W([])));Z&&Z!==i&&n.call(Z,d)&&(b=Z);var f=y.prototype=m.prototype=Object.create(b);function L(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function x(t,e){function i(r,d,c,a){var s=o(t[r],t,d);if("throw"!==s.type){var l=s.arg,u=l.value;return u&&"object"==typeof u&&n.call(u,"__await")?e.resolve(u.__await).then((function(t){i("next",t,c,a)}),(function(t){i("throw",t,c,a)})):e.resolve(u).then((function(t){l.value=t,c(l)}),(function(t){return i("throw",t,c,a)}))}a(s.arg)}var r;this._invoke=function(t,n){function d(){return new e((function(e,r){i(t,n,e,r)}))}return r=r?r.then(d,d):d()}}function X(t,e){var i=t.iterator[e.method];if(void 0===i){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,X(t,e),"throw"===e.method))return u;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var n=o(i,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,u;var r=n.arg;return r?r.done?(e[t.resultName]=r.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,u):r:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,u)}function I(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function G(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function K(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(I,this),this.reset(!0)}function W(t){if(t){var e=t[d];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,r=function e(){for(;++i<t.length;)if(n.call(t,i))return e.value=t[i],e.done=!1,e;return e.value=void 0,e.done=!0,e};return r.next=r}}return{next:v}}function v(){return{value:void 0,done:!0}}return p.prototype=y,s(f,"constructor",y),s(y,"constructor",p),p.displayName=s(y,a,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===p||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,y):(t.__proto__=y,s(t,a,"GeneratorFunction")),t.prototype=Object.create(f),t},t.awrap=function(t){return{__await:t}},L(x.prototype),s(x.prototype,c,(function(){return this})),t.AsyncIterator=x,t.async=function(e,i,n,r,d){void 0===d&&(d=Promise);var c=new x(l(e,i,n,r),d);return t.isGeneratorFunction(i)?c:c.next().then((function(t){return t.done?t.value:c.next()}))},L(f),s(f,a,"Generator"),s(f,d,(function(){return this})),s(f,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=[];for(var i in t)e.push(i);return e.reverse(),function i(){for(;e.length;){var n=e.pop();if(n in t)return i.value=n,i.done=!1,i}return i.done=!0,i}},t.values=W,K.prototype={constructor:K,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(G),!t)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function i(i,n){return c.type="throw",c.arg=t,e.next=i,n&&(e.method="next",e.arg=void 0),!!n}for(var r=this.tryEntries.length-1;r>=0;--r){var d=this.tryEntries[r],c=d.completion;if("root"===d.tryLoc)return i("end");if(d.tryLoc<=this.prev){var a=n.call(d,"catchLoc"),s=n.call(d,"finallyLoc");if(a&&s){if(this.prev<d.catchLoc)return i(d.catchLoc,!0);if(this.prev<d.finallyLoc)return i(d.finallyLoc)}else if(a){if(this.prev<d.catchLoc)return i(d.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<d.finallyLoc)return i(d.finallyLoc)}}}},abrupt:function(t,e){for(var i=this.tryEntries.length-1;i>=0;--i){var r=this.tryEntries[i];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var d=r;break}}d&&("break"===t||"continue"===t)&&d.tryLoc<=e&&e<=d.finallyLoc&&(d=null);var c=d?d.completion:{};return c.type=t,c.arg=e,d?(this.method="next",this.next=d.finallyLoc,u):this.complete(c)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),u},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var i=this.tryEntries[e];if(i.finallyLoc===t)return this.complete(i.completion,i.afterLoc),G(i),u}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var i=this.tryEntries[e];if(i.tryLoc===t){var n=i.completion;if("throw"===n.type){var r=n.arg;G(i)}return r}}throw Error("illegal catch attempt")},delegateYield:function(t,e,i){return this.delegate={iterator:W(t),resultName:e,nextLoc:i},"next"===this.method&&(this.arg=void 0),u}},t}function i(t){this.wrapped=t}function n(t){var e,n;function r(e,n){try{var c=t[e](n),a=c.value,s=a instanceof i;Promise.resolve(s?a.wrapped:a).then((function(t){s?r("return"===e?"return":"next",t):d(c.done?"return":"normal",t)}),(function(t){r("throw",t)}))}catch(t){d("throw",t)}}function d(t,i){switch(t){case"return":e.resolve({value:i,done:!0});break;case"throw":e.reject(i);break;default:e.resolve({value:i,done:!1})}(e=e.next)?r(e.key,e.arg):n=null}this._invoke=function(t,i){return new Promise((function(d,c){var a={key:t,arg:i,resolve:d,reject:c,next:null};n?n=n.next=a:(e=n=a,r(t,i))}))},"function"!=typeof t.return&&(this.return=void 0)}function r(t){return function(){return new n(t.apply(this,arguments))}}function d(t){return new i(t)}function c(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function s(t,e,i){return e&&a(t.prototype,e),i&&a(t,i),Object.defineProperty(t,"prototype",{writable:!1}),t}function l(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&m(t,e)}function u(t){return u=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},u(t)}function m(t,e){return m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},m(t,e)}function p(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function y(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return p(t)}function b(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=u(t);if(e){var r=u(this).constructor;i=Reflect.construct(n,arguments,r)}else i=n.apply(this,arguments);return y(this,i)}}function h(t,e){for(;!{}.hasOwnProperty.call(t,e)&&null!==(t=u(t)););return t}function Z(){return Z="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,i){var n=h(t,e);if(n){var r=Object.getOwnPropertyDescriptor(n,e);return r.get?r.get.call(3>arguments.length?t:i):r.value}},Z.apply(this,arguments)}function f(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var i=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=i){var n,r,d=[],c=!0,a=!1;try{for(i=i.call(t);!(c=(n=i.next()).done)&&(d.push(n.value),!e||d.length!==e);c=!0);}catch(t){a=!0,r=t}finally{try{c||null==i.return||i.return()}finally{if(a)throw r}}return d}}(t,e)||x(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function L(t){return function(t){if(Array.isArray(t))return X(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||x(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function x(t,e){if(t){if("string"==typeof t)return X(t,e);var i={}.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?X(t,e):void 0}}function X(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=Array(e);e>i;i++)n[i]=t[i];return n}function I(t,e){var i="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!i){if(Array.isArray(t)||(i=x(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var n=0,r=function(){};return{s:r,n:function(){return n<t.length?{done:!1,value:t[n++]}:{done:!0}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var d,c=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return c=t.done,t},e:function(t){a=!0,d=t},f:function(){try{c||null==i.return||i.return()}finally{if(a)throw d}}}}n.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},n.prototype.next=function(t){return this._invoke("next",t)},n.prototype.throw=function(t){return this._invoke("throw",t)},n.prototype.return=function(t){return this._invoke("return",t)};var G="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},K=function(t){return t&&t.Math==Math&&t},W=K("object"==typeof globalThis&&globalThis)||K("object"==typeof window&&window)||K("object"==typeof self&&self)||K("object"==typeof G&&G)||function(){return this}()||Function("return this")(),v={},S=function(t){try{return!!t()}catch(t){return!0}},w=!S((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),g=!S((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),Y=function(){}.call,V=g?Y.bind(Y):function(){return Y.apply(Y,arguments)},T={},H={}.propertyIsEnumerable,k=Object.getOwnPropertyDescriptor,P=k&&!H.call({1:2},1);T.f=P?function(t){var e=k(this,t);return!!e&&e.enumerable}:H;var C,J,M=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},R=g,D=Function.prototype,U=D.bind,N=D.call,j=R&&U.bind(N,N),z=R?function(t){return t&&j(t)}:function(t){return t&&function(){return N.apply(t,arguments)}},F=z,E=F({}.toString),Q=F("".slice),O=function(t){return Q(E(t),8,-1)},B=S,A=O,_=Object,q=z("".split),$=B((function(){return!_("z").propertyIsEnumerable(0)}))?function(t){return"String"==A(t)?q(t,""):_(t)}:_,tt=TypeError,et=function(t){if(null==t)throw tt("Can't call method on "+t);return t},it=$,nt=et,rt=function(t){return it(nt(t))},dt=function(t){return"function"==typeof t},ct=dt,at=function(t){return"object"==typeof t?null!==t:ct(t)},st=W,lt=dt,ot=function(t){return lt(t)?t:void 0},ut=function(t,e){return 2>arguments.length?ot(st[t]):st[t]&&st[t][e]},mt=z({}.isPrototypeOf),pt=ut("navigator","userAgent")||"",yt=W,bt=pt,ht=yt.process,Zt=yt.Deno,ft=ht&&ht.versions||Zt&&Zt.version,Lt=ft&&ft.v8;Lt&&(J=(C=Lt.split("."))[0]>0&&4>C[0]?1:+(C[0]+C[1])),!J&&bt&&((C=bt.match(/Edge\/(\d+)/))&&74>C[1]||(C=bt.match(/Chrome\/(\d+)/))&&(J=+C[1]));var xt=J,Xt=xt,It=!!Object.getOwnPropertySymbols&&!S((function(){var t=Symbol();return!(t+"")||!(Object(t)instanceof Symbol)||!Symbol.sham&&Xt&&41>Xt})),Gt=It&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Kt=ut,Wt=dt,vt=mt,St=Object,wt=Gt?function(t){return"symbol"==typeof t}:function(t){var e=Kt("Symbol");return Wt(e)&&vt(e.prototype,St(t))},gt=String,Yt=function(t){try{return gt(t)}catch(t){return"Object"}},Vt=dt,Tt=Yt,Ht=TypeError,kt=function(t){if(Vt(t))return t;throw Ht(Tt(t)+" is not a function")},Pt=kt,Ct=function(t,e){var i=t[e];return null==i?void 0:Pt(i)},Jt=V,Mt=dt,Rt=at,Dt=TypeError,Ut={exports:{}},Nt=W,jt=Object.defineProperty,zt=function(t,e){try{jt(Nt,t,{value:e,configurable:!0,writable:!0})}catch(i){Nt[t]=e}return e},Ft=zt,Et="__core-js_shared__",Qt=W[Et]||Ft(Et,{}),Ot=Qt;(Ut.exports=function(t,e){return Ot[t]||(Ot[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.23.2",mode:"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.23.2/LICENSE",source:"https://github.com/zloirock/core-js"});var Bt=et,At=Object,_t=function(t){return At(Bt(t))},qt=_t,$t=z({}.hasOwnProperty),te=Object.hasOwn||function(t,e){return $t(qt(t),e)},ee=z,ie=0,ne=Math.random(),re=ee(1..toString),de=function(t){return"Symbol("+(void 0===t?"":t)+")_"+re(++ie+ne,36)},ce=W,ae=Ut.exports,se=te,le=de,oe=It,ue=Gt,me=ae("wks"),pe=ce.Symbol,ye=pe&&pe.for,be=ue?pe:pe&&pe.withoutSetter||le,he=function(t){if(!se(me,t)||!oe&&"string"!=typeof me[t]){var e="Symbol."+t;oe&&se(pe,t)?me[t]=pe[t]:me[t]=ue&&ye?ye(e):be(e)}return me[t]},Ze=V,fe=at,Le=wt,xe=Ct,Xe=TypeError,Ie=he("toPrimitive"),Ge=function(t,e){if(!fe(t)||Le(t))return t;var i,n=xe(t,Ie);if(n){if(void 0===e&&(e="default"),i=Ze(n,t,e),!fe(i)||Le(i))return i;throw Xe("Can't convert object to primitive value")}return void 0===e&&(e="number"),function(t,e){var i,n;if("string"===e&&Mt(i=t.toString)&&!Rt(n=Jt(i,t)))return n;if(Mt(i=t.valueOf)&&!Rt(n=Jt(i,t)))return n;if("string"!==e&&Mt(i=t.toString)&&!Rt(n=Jt(i,t)))return n;throw Dt("Can't convert object to primitive value")}(t,e)},Ke=Ge,We=wt,ve=function(t){var e=Ke(t,"string");return We(e)?e:e+""},Se=at,we=W.document,ge=Se(we)&&Se(we.createElement),Ye=function(t){return ge?we.createElement(t):{}},Ve=Ye,Te=!w&&!S((function(){return 7!=Object.defineProperty(Ve("div"),"a",{get:function(){return 7}}).a})),He=w,ke=V,Pe=T,Ce=M,Je=rt,Me=ve,Re=te,De=Te,Ue=Object.getOwnPropertyDescriptor;v.f=He?Ue:function(t,e){if(t=Je(t),e=Me(e),De)try{return Ue(t,e)}catch(t){}if(Re(t,e))return Ce(!ke(Pe.f,t,e),t[e])};var Ne={},je=w&&S((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),ze=at,Fe=String,Ee=TypeError,Qe=function(t){if(ze(t))return t;throw Ee(Fe(t)+" is not an object")},Oe=w,Be=Te,Ae=je,_e=Qe,qe=ve,$e=TypeError,ti=Object.defineProperty,ei=Object.getOwnPropertyDescriptor;Ne.f=Oe?Ae?function(t,e,i){if(_e(t),e=qe(e),_e(i),"function"==typeof t&&"prototype"===e&&"value"in i&&"writable"in i&&!i.writable){var n=ei(t,e);n&&n.writable&&(t[e]=i.value,i={configurable:"configurable"in i?i.configurable:n.configurable,enumerable:"enumerable"in i?i.enumerable:n.enumerable,writable:!1})}return ti(t,e,i)}:ti:function(t,e,i){if(_e(t),e=qe(e),_e(i),Be)try{return ti(t,e,i)}catch(t){}if("get"in i||"set"in i)throw $e("Accessors not supported");return"value"in i&&(t[e]=i.value),t};var ii=Ne,ni=M,ri=w?function(t,e,i){return ii.f(t,e,ni(1,i))}:function(t,e,i){return t[e]=i,t},di={exports:{}},ci=w,ai=Function.prototype,si=ci&&Object.getOwnPropertyDescriptor,li=te(ai,"name"),oi={EXISTS:li,PROPER:li&&!1,CONFIGURABLE:li&&(!ci||ci&&si(ai,"name").configurable)},ui=dt,mi=Qt,pi=z(Function.toString);ui(mi.inspectSource)||(mi.inspectSource=function(t){return pi(t)});var yi,bi,hi,Zi=mi.inspectSource,fi=dt,Li=Zi,xi=W.WeakMap,Xi=fi(xi)&&/native code/.test(Li(xi)),Ii=Ut.exports,Gi=de,Ki=Ii("keys"),Wi=function(t){return Ki[t]||(Ki[t]=Gi(t))},vi={},Si=Xi,wi=W,gi=z,Yi=at,Vi=ri,Ti=te,Hi=Qt,ki=Wi,Pi=vi,Ci="Object already initialized",Ji=wi.TypeError,Mi=wi.WeakMap;if(Si||Hi.state){var Ri=Hi.state||(Hi.state=new Mi),Di=gi(Ri.get),Ui=gi(Ri.has),Ni=gi(Ri.set);yi=function(t,e){if(Ui(Ri,t))throw new Ji(Ci);return e.facade=t,Ni(Ri,t,e),e},bi=function(t){return Di(Ri,t)||{}},hi=function(t){return Ui(Ri,t)}}else{var ji=ki("state");Pi[ji]=!0,yi=function(t,e){if(Ti(t,ji))throw new Ji(Ci);return e.facade=t,Vi(t,ji,e),e},bi=function(t){return Ti(t,ji)?t[ji]:{}},hi=function(t){return Ti(t,ji)}}var zi={set:yi,get:bi,has:hi,enforce:function(t){return hi(t)?bi(t):yi(t,{})},getterFor:function(t){return function(e){var i;if(!Yi(e)||(i=bi(e)).type!==t)throw Ji("Incompatible receiver, "+t+" required");return i}}},Fi=dt,Ei=te,Qi=w,Oi=oi.CONFIGURABLE,Bi=Zi,Ai=zi.enforce,_i=zi.get,qi=Object.defineProperty,$i=Qi&&!S((function(){return 8!==qi((function(){}),"length",{value:8}).length})),tn=(String+"").split("String"),en=di.exports=function(t,e,i){"Symbol("===(e+"").slice(0,7)&&(e="["+(e+"").replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),i&&i.getter&&(e="get "+e),i&&i.setter&&(e="set "+e),(!Ei(t,"name")||Oi&&t.name!==e)&&qi(t,"name",{value:e,configurable:!0}),$i&&i&&Ei(i,"arity")&&t.length!==i.arity&&qi(t,"length",{value:i.arity});try{i&&Ei(i,"constructor")&&i.constructor?Qi&&qi(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var n=Ai(t);return Ei(n,"source")||(n.source=tn.join("string"==typeof e?e:"")),t};Function.prototype.toString=en((function(){return Fi(this)&&_i(this).source||Bi(this)}),"toString");var nn=dt,rn=Ne,dn=di.exports,cn=zt,an=function(t,e,i,n){n||(n={});var r=n.enumerable,d=void 0!==n.name?n.name:e;return nn(i)&&dn(i,d,n),n.global?r?t[e]=i:cn(e,i):(n.unsafe?t[e]&&(r=!0):delete t[e],r?t[e]=i:rn.f(t,e,{value:i,enumerable:!1,configurable:!n.nonConfigurable,writable:!n.nonWritable})),t},sn={},ln=Math.ceil,on=Math.floor,un=Math.trunc||function(t){var e=+t;return(e>0?on:ln)(e)},mn=function(t){var e=+t;return e!=e||0===e?0:un(e)},pn=mn,yn=Math.max,bn=Math.min,hn=function(t,e){var i=pn(t);return 0>i?yn(i+e,0):bn(i,e)},Zn=mn,fn=Math.min,Ln=function(t){return t>0?fn(Zn(t),9007199254740991):0},xn=Ln,Xn=function(t){return xn(t.length)},In=rt,Gn=hn,Kn=Xn,Wn=function(t){return function(e,i,n){var r,d=In(e),c=Kn(d),a=Gn(n,c);if(t&&i!=i){for(;c>a;)if((r=d[a++])!=r)return!0}else for(;c>a;a++)if((t||a in d)&&d[a]===i)return t||a||0;return!t&&-1}},vn={includes:Wn(!0),indexOf:Wn(!1)},Sn=te,wn=rt,gn=vn.indexOf,Yn=vi,Vn=z([].push),Tn=function(t,e){var i,n=wn(t),r=0,d=[];for(i in n)!Sn(Yn,i)&&Sn(n,i)&&Vn(d,i);for(;e.length>r;)Sn(n,i=e[r++])&&(~gn(d,i)||Vn(d,i));return d},Hn=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],kn=Tn,Pn=Hn.concat("length","prototype");sn.f=Object.getOwnPropertyNames||function(t){return kn(t,Pn)};var Cn={};Cn.f=Object.getOwnPropertySymbols;var Jn=ut,Mn=sn,Rn=Cn,Dn=Qe,Un=z([].concat),Nn=Jn("Reflect","ownKeys")||function(t){var e=Mn.f(Dn(t)),i=Rn.f;return i?Un(e,i(t)):e},jn=te,zn=Nn,Fn=v,En=Ne,Qn=function(t,e,i){for(var n=zn(e),r=En.f,d=Fn.f,c=0;c<n.length;c++){var a=n[c];jn(t,a)||i&&jn(i,a)||r(t,a,d(e,a))}},On=S,Bn=dt,An=/#|\.prototype\./,_n=function(t,e){var i=$n[qn(t)];return i==er||i!=tr&&(Bn(e)?On(e):!!e)},qn=_n.normalize=function(t){return(t+"").replace(An,".").toLowerCase()},$n=_n.data={},tr=_n.NATIVE="N",er=_n.POLYFILL="P",ir=_n,nr=W,rr=v.f,dr=ri,cr=an,ar=zt,sr=Qn,lr=ir,or=function(t,e){var i,n,r,d,c,a=t.target,s=t.global,l=t.stat;if(i=s?nr:l?nr[a]||ar(a,{}):(nr[a]||{}).prototype)for(n in e){if(d=e[n],r=t.dontCallGetSet?(c=rr(i,n))&&c.value:i[n],!lr(s?n:a+(l?".":"#")+n,t.forced)&&void 0!==r){if(typeof d==typeof r)continue;sr(d,r)}(t.sham||r&&r.sham)&&dr(d,"sham",!0),cr(i,n,d,t)}},ur=kt,mr=g,pr=z(z.bind),yr=function(t,e){return ur(t),void 0===e?t:mr?pr(t,e):function(){return t.apply(e,arguments)}},br=O,hr=Array.isArray||function(t){return"Array"==br(t)},Zr={};Zr[he("toStringTag")]="z";var fr=Zr+""=="[object z]",Lr=fr,xr=dt,Xr=O,Ir=he("toStringTag"),Gr=Object,Kr="Arguments"==Xr(function(){return arguments}()),Wr=Lr?Xr:function(t){var e,i,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(i=function(t,e){try{return t[e]}catch(t){}}(e=Gr(t),Ir))?i:Kr?Xr(e):"Object"==(n=Xr(e))&&xr(e.callee)?"Arguments":n},vr=z,Sr=S,wr=dt,gr=Wr,Yr=Zi,Vr=function(){},Tr=[],Hr=ut("Reflect","construct"),kr=/^\s*(?:class|function)\b/,Pr=vr(kr.exec),Cr=!kr.exec(Vr),Jr=function(t){if(!wr(t))return!1;try{return Hr(Vr,Tr,t),!0}catch(t){return!1}},Mr=function(t){if(!wr(t))return!1;switch(gr(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Cr||!!Pr(kr,Yr(t))}catch(t){return!0}};Mr.sham=!0;var Rr=!Hr||Sr((function(){var t;return Jr(Jr.call)||!Jr(Object)||!Jr((function(){t=!0}))||t}))?Mr:Jr,Dr=hr,Ur=Rr,Nr=at,jr=he("species"),zr=Array,Fr=function(t,e){return new(function(t){var e;return Dr(t)&&(e=t.constructor,(Ur(e)&&(e===zr||Dr(e.prototype))||Nr(e)&&null===(e=e[jr]))&&(e=void 0)),void 0===e?zr:e}(t))(0===e?0:e)},Er=yr,Qr=$,Or=_t,Br=Xn,Ar=Fr,_r=z([].push),qr=function(t){var e=1==t,i=2==t,n=3==t,r=4==t,d=6==t,c=7==t,a=5==t||d;return function(s,l,o,u){for(var m,p,y=Or(s),b=Qr(y),h=Er(l,o),Z=Br(b),f=0,L=u||Ar,x=e?L(s,Z):i||c?L(s,0):void 0;Z>f;f++)if((a||f in b)&&(p=h(m=b[f],f,y),t))if(e)x[f]=p;else if(p)switch(t){case 3:return!0;case 5:return m;case 6:return f;case 2:_r(x,m)}else switch(t){case 4:return!1;case 7:_r(x,m)}return d?-1:n||r?r:x}},$r={forEach:qr(0),map:qr(1),filter:qr(2),some:qr(3),every:qr(4),find:qr(5),findIndex:qr(6),filterReject:qr(7)},td=S,ed=xt,id=he("species"),nd=function(t){return ed>=51||!td((function(){var e=[];return(e.constructor={})[id]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},rd=$r.map;or({target:"Array",proto:!0,forced:!nd("map")},{map:function(t){return rd(this,t,arguments.length>1?arguments[1]:void 0)}});var dd=_t,cd=hn,ad=Xn,sd=function(t){for(var e=dd(this),i=ad(e),n=arguments.length,r=cd(n>1?arguments[1]:void 0,i),d=n>2?arguments[2]:void 0,c=void 0===d?i:cd(d,i);c>r;)e[r++]=t;return e},ld={},od=Tn,ud=Hn,md=Object.keys||function(t){return od(t,ud)},pd=w,yd=je,bd=Ne,hd=Qe,Zd=rt,fd=md;ld.f=pd&&!yd?Object.defineProperties:function(t,e){hd(t);for(var i,n=Zd(e),r=fd(e),d=r.length,c=0;d>c;)bd.f(t,i=r[c++],n[i]);return t};var Ld,xd=ut("document","documentElement"),Xd=Qe,Id=ld,Gd=Hn,Kd=vi,Wd=xd,vd=Ye,Sd=Wi("IE_PROTO"),wd=function(){},gd=function(t){return"<script>"+t+"<\/script>"},Yd=function(t){t.write(gd("")),t.close();var e=t.parentWindow.Object;return t=null,e},Vd=function(){try{Ld=new ActiveXObject("htmlfile")}catch(t){}var t,e;Vd="undefined"!=typeof document?document.domain&&Ld?Yd(Ld):((e=vd("iframe")).style.display="none",Wd.appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write(gd("document.F=Object")),t.close(),t.F):Yd(Ld);for(var i=Gd.length;i--;)delete Vd.prototype[Gd[i]];return Vd()};Kd[Sd]=!0;var Td=Object.create||function(t,e){var i;return null!==t?(wd.prototype=Xd(t),i=new wd,wd.prototype=null,i[Sd]=t):i=Vd(),void 0===e?i:Id.f(i,e)},Hd=he,kd=Td,Pd=Ne.f,Cd=Hd("unscopables"),Jd=Array.prototype;null==Jd[Cd]&&Pd(Jd,Cd,{configurable:!0,value:kd(null)});var Md=function(t){Jd[Cd][t]=!0},Rd=Md;or({target:"Array",proto:!0},{fill:sd}),Rd("fill");var Dd=Wr;fr||an(Object.prototype,"toString",fr?{}.toString:function(){return"[object "+Dd(this)+"]"},{unsafe:!0});var Ud=TypeError,Nd=function(t){if(t>9007199254740991)throw Ud("Maximum allowed index exceeded");return t},jd=ve,zd=Ne,Fd=M,Ed=function(t,e,i){var n=jd(e);n in t?zd.f(t,n,Fd(0,i)):t[n]=i},Qd=or,Od=S,Bd=hr,Ad=at,_d=_t,qd=Xn,$d=Nd,tc=Ed,ec=Fr,ic=nd,nc=xt,rc=he("isConcatSpreadable"),dc=nc>=51||!Od((function(){var t=[];return t[rc]=!1,t.concat()[0]!==t})),cc=ic("concat"),ac=function(t){if(!Ad(t))return!1;var e=t[rc];return void 0!==e?!!e:Bd(t)};Qd({target:"Array",proto:!0,arity:1,forced:!dc||!cc},{concat:function(){var t,e,i,n,r,d=_d(this),c=ec(d,0),a=0;for(t=-1,i=arguments.length;i>t;t++)if(ac(r=-1===t?d:arguments[t]))for(n=qd(r),$d(a+n),e=0;n>e;e++,a++)e in r&&tc(c,a,r[e]);else $d(a+1),tc(c,a++,r);return c.length=a,c}});var sc,lc,oc,uc={},mc=!S((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})),pc=te,yc=dt,bc=_t,hc=mc,Zc=Wi("IE_PROTO"),fc=Object,Lc=fc.prototype,xc=hc?fc.getPrototypeOf:function(t){var e=bc(t);if(pc(e,Zc))return e[Zc];var i=e.constructor;return yc(i)&&e instanceof i?i.prototype:e instanceof fc?Lc:null},Xc=S,Ic=dt,Gc=xc,Kc=an,Wc=he("iterator"),vc=!1;[].keys&&("next"in(oc=[].keys())?(lc=Gc(Gc(oc)))!==Object.prototype&&(sc=lc):vc=!0);var Sc=null==sc||Xc((function(){var t={};return sc[Wc].call(t)!==t}));Sc&&(sc={}),Ic(sc[Wc])||Kc(sc,Wc,(function(){return this}));var wc={IteratorPrototype:sc,BUGGY_SAFARI_ITERATORS:vc},gc=Ne.f,Yc=te,Vc=he("toStringTag"),Tc=function(t,e,i){t&&!i&&(t=t.prototype),t&&!Yc(t,Vc)&&gc(t,Vc,{configurable:!0,value:e})},Hc=wc.IteratorPrototype,kc=Td,Pc=M,Cc=Tc,Jc=uc,Mc=function(){return this},Rc=function(t,e,i,n){var r=e+" Iterator";return t.prototype=kc(Hc,{next:Pc(+!n,i)}),Cc(t,r,!1),Jc[r]=Mc,t},Dc=dt,Uc=String,Nc=TypeError,jc=z,zc=Qe,Fc=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,i={};try{(t=jc(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(i,[]),e=i instanceof Array}catch(t){}return function(i,n){return zc(i),function(t){if("object"==typeof t||Dc(t))return t;throw Nc("Can't set "+Uc(t)+" as a prototype")}(n),e?t(i,n):i.__proto__=n,i}}():void 0),Ec=or,Qc=V,Oc=dt,Bc=Rc,Ac=xc,_c=Fc,qc=Tc,$c=ri,ta=an,ea=uc,ia=oi.PROPER,na=oi.CONFIGURABLE,ra=wc.IteratorPrototype,da=wc.BUGGY_SAFARI_ITERATORS,ca=he("iterator"),aa="keys",sa="values",la="entries",oa=function(){return this},ua=function(t,e,i,n,r,d,c){Bc(i,e,n);var a,s,l,o=function(t){if(t===r&&b)return b;if(!da&&t in p)return p[t];switch(t){case aa:case sa:case la:return function(){return new i(this,t)}}return function(){return new i(this)}},u=e+" Iterator",m=!1,p=t.prototype,y=p[ca]||p["@@iterator"]||r&&p[r],b=!da&&y||o(r),h="Array"==e&&p.entries||y;if(h&&(a=Ac(h.call(new t)))!==Object.prototype&&a.next&&(Ac(a)!==ra&&(_c?_c(a,ra):Oc(a[ca])||ta(a,ca,oa)),qc(a,u,!0)),ia&&r==sa&&y&&y.name!==sa&&(na?$c(p,"name",sa):(m=!0,b=function(){return Qc(y,this)})),r)if(s={values:o(sa),keys:d?b:o(aa),entries:o(la)},c)for(l in s)(da||m||!(l in p))&&ta(p,l,s[l]);else Ec({target:e,proto:!0,forced:da||m},s);return p[ca]!==b&&ta(p,ca,b,{name:r}),ea[e]=b,s},ma=rt,pa=Md,ya=uc,ba=zi,ha=Ne.f,Za=ua,fa=w,La="Array Iterator",xa=ba.set,Xa=ba.getterFor(La),Ia=Za(Array,"Array",(function(t,e){xa(this,{type:La,target:ma(t),index:0,kind:e})}),(function(){var t=Xa(this),e=t.target,i=t.kind,n=t.index++;return e&&n<e.length?"keys"==i?{value:n,done:!1}:"values"==i?{value:e[n],done:!1}:{value:[n,e[n]],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),"values"),Ga=ya.Arguments=ya.Array;if(pa("keys"),pa("values"),pa("entries"),fa&&"values"!==Ga.name)try{ha(Ga,"name",{value:"values"})}catch(t){}var Ka="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,Wa=an,va=function(t,e,i){for(var n in e)Wa(t,n,e[n],i);return t},Sa=mt,wa=TypeError,ga=function(t,e){if(Sa(e,t))return t;throw wa("Incorrect invocation")},Ya=mn,Va=Ln,Ta=RangeError,Ha=function(t){if(void 0===t)return 0;var e=Ya(t),i=Va(e);if(e!==i)throw Ta("Wrong length or index");return i},ka=Array,Pa=Math.abs,Ca=Math.pow,Ja=Math.floor,Ma=Math.log,Ra=hn,Da=Xn,Ua=Ed,Na=Array,ja=Math.max,za=function(t,e,i){for(var n=Da(t),r=Ra(e,n),d=Ra(void 0===i?n:i,n),c=Na(ja(d-r,0)),a=0;d>r;r++,a++)Ua(c,a,t[r]);return c.length=a,c},Fa=W,Ea=z,Qa=w,Oa=Ka,Ba=oi,Aa=ri,_a=va,qa=S,$a=ga,ts=mn,es=Ln,is=Ha,ns=xc,rs=Fc,ds=sn.f,cs=Ne.f,as=sd,ss=za,ls=Tc,os=Ba.PROPER,us=Ba.CONFIGURABLE,ms=zi.get,ps=zi.set,ys="ArrayBuffer",bs="Wrong index",hs=Fa.ArrayBuffer,Zs=hs,fs=Zs&&Zs.prototype,Ls=Fa.DataView,xs=Ls&&Ls.prototype,Xs=Object.prototype,Is=Fa.Array,Gs=Fa.RangeError,Ks=Ea(as),Ws=Ea([].reverse),vs=function(t,e,i){var n,r,d,c=ka(i),a=8*i-e-1,s=(1<<a)-1,l=s>>1,o=23===e?Ca(2,-24)-Ca(2,-77):0,u=0>t||0===t&&0>1/t?1:0,m=0;for((t=Pa(t))!=t||t===1/0?(r=t!=t?1:0,n=s):(n=Ja(Ma(t)/.6931471805599453),1>t*(d=Ca(2,-n))&&(n--,d*=2),2>(t+=1>n+l?o*Ca(2,1-l):o/d)*d||(n++,d/=2),s>n+l?1>n+l?(r=t*Ca(2,l-1)*Ca(2,e),n=0):(r=(t*d-1)*Ca(2,e),n+=l):(r=0,n=s));e>=8;)c[m++]=255&r,r/=256,e-=8;for(n=n<<e|r,a+=e;a>0;)c[m++]=255&n,n/=256,a-=8;return c[--m]|=128*u,c},Ss=function(t,e){var i,n=t.length,r=8*n-e-1,d=(1<<r)-1,c=d>>1,a=r-7,s=n-1,l=t[s--],o=127&l;for(l>>=7;a>0;)o=256*o+t[s--],a-=8;for(i=o&(1<<-a)-1,o>>=-a,a+=e;a>0;)i=256*i+t[s--],a-=8;if(0===o)o=1-c;else{if(o===d)return i?NaN:l?-1/0:1/0;i+=Ca(2,e),o-=c}return(l?-1:1)*i*Ca(2,o-e)},ws=function(t){return[255&t]},gs=function(t){return[255&t,t>>8&255]},Ys=function(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]},Vs=function(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]},Ts=function(t){return vs(t,23,4)},Hs=function(t){return vs(t,52,8)},ks=function(t,e){cs(t.prototype,e,{get:function(){return ms(this)[e]}})},Ps=function(t,e,i,n){var r=is(i),d=ms(t);if(r+e>d.byteLength)throw Gs(bs);var c=ms(d.buffer).bytes,a=r+d.byteOffset,s=ss(c,a,a+e);return n?s:Ws(s)},Cs=function(t,e,i,n,r,d){var c=is(i),a=ms(t);if(c+e>a.byteLength)throw Gs(bs);for(var s=ms(a.buffer).bytes,l=c+a.byteOffset,o=n(+r),u=0;e>u;u++)s[l+u]=o[d?u:e-u-1]};if(Oa){var Js=os&&hs.name!==ys;if(qa((function(){hs(1)}))&&qa((function(){new hs(-1)}))&&!qa((function(){return new hs,new hs(1.5),new hs(NaN),Js&&!us})))Js&&us&&Aa(hs,"name",ys);else{(Zs=function(t){return $a(this,fs),new hs(is(t))}).prototype=fs;for(var Ms,Rs=ds(hs),Ds=0;Rs.length>Ds;)(Ms=Rs[Ds++])in Zs||Aa(Zs,Ms,hs[Ms]);fs.constructor=Zs}rs&&ns(xs)!==Xs&&rs(xs,Xs);var Us=new Ls(new Zs(2)),Ns=Ea(xs.setInt8);Us.setInt8(0,2147483648),Us.setInt8(1,2147483649),!Us.getInt8(0)&&Us.getInt8(1)||_a(xs,{setInt8:function(t,e){Ns(this,t,e<<24>>24)},setUint8:function(t,e){Ns(this,t,e<<24>>24)}},{unsafe:!0})}else fs=(Zs=function(t){$a(this,fs);var e=is(t);ps(this,{bytes:Ks(Is(e),0),byteLength:e}),Qa||(this.byteLength=e)}).prototype,xs=(Ls=function(t,e,i){$a(this,xs),$a(t,fs);var n=ms(t).byteLength,r=ts(e);if(0>r||r>n)throw Gs("Wrong offset");if(r+(i=void 0===i?n-r:es(i))>n)throw Gs("Wrong length");ps(this,{buffer:t,byteLength:i,byteOffset:r}),Qa||(this.buffer=t,this.byteLength=i,this.byteOffset=r)}).prototype,Qa&&(ks(Zs,"byteLength"),ks(Ls,"buffer"),ks(Ls,"byteLength"),ks(Ls,"byteOffset")),_a(xs,{getInt8:function(t){return Ps(this,1,t)[0]<<24>>24},getUint8:function(t){return Ps(this,1,t)[0]},getInt16:function(t){var e=Ps(this,2,t,arguments.length>1?arguments[1]:void 0);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=Ps(this,2,t,arguments.length>1?arguments[1]:void 0);return e[1]<<8|e[0]},getInt32:function(t){return Vs(Ps(this,4,t,arguments.length>1?arguments[1]:void 0))},getUint32:function(t){return Vs(Ps(this,4,t,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(t){return Ss(Ps(this,4,t,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(t){return Ss(Ps(this,8,t,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(t,e){Cs(this,1,t,ws,e)},setUint8:function(t,e){Cs(this,1,t,ws,e)},setInt16:function(t,e){Cs(this,2,t,gs,e,arguments.length>2?arguments[2]:void 0)},setUint16:function(t,e){Cs(this,2,t,gs,e,arguments.length>2?arguments[2]:void 0)},setInt32:function(t,e){Cs(this,4,t,Ys,e,arguments.length>2?arguments[2]:void 0)},setUint32:function(t,e){Cs(this,4,t,Ys,e,arguments.length>2?arguments[2]:void 0)},setFloat32:function(t,e){Cs(this,4,t,Ts,e,arguments.length>2?arguments[2]:void 0)},setFloat64:function(t,e){Cs(this,8,t,Hs,e,arguments.length>2?arguments[2]:void 0)}});ls(Zs,ys),ls(Ls,"DataView");var js={ArrayBuffer:Zs,DataView:Ls},zs=Rr,Fs=Yt,Es=TypeError,Qs=function(t){if(zs(t))return t;throw Es(Fs(t)+" is not a constructor")},Os=Qe,Bs=Qs,As=he("species"),_s=function(t,e){var i,n=Os(t).constructor;return void 0===n||null==(i=Os(n)[As])?e:Bs(i)},qs=or,$s=z,tl=S,el=Qe,il=hn,nl=Ln,rl=_s,dl=js.ArrayBuffer,cl=js.DataView,al=cl.prototype,sl=$s(dl.prototype.slice),ll=$s(al.getUint8),ol=$s(al.setUint8);qs({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:tl((function(){return!new dl(2).slice(1,void 0).byteLength}))},{slice:function(t,e){if(sl&&void 0===e)return sl(el(this),t);for(var i=el(this).byteLength,n=il(t,i),r=il(void 0===e?i:e,i),d=new(rl(this,dl))(nl(r-n)),c=new cl(this),a=new cl(d),s=0;r>n;)ol(a,s++,ll(c,n++));return d}});var ul={exports:{}},ml=he("iterator"),pl=!1;try{var yl=0,bl={next:function(){return{done:!!yl++}},return:function(){pl=!0}};bl[ml]=function(){return this},Array.from(bl,(function(){throw 2}))}catch(t){}var hl,Zl,fl,Ll=function(t,e){if(!e&&!pl)return!1;var i=!1;try{var n={};n[ml]=function(){return{next:function(){return{done:i=!0}}}},t(n)}catch(t){}return i},xl=Ka,Xl=w,Il=W,Gl=dt,Kl=at,Wl=te,vl=Wr,Sl=Yt,wl=ri,gl=an,Yl=Ne.f,Vl=mt,Tl=xc,Hl=Fc,kl=he,Pl=de,Cl=zi.enforce,Jl=zi.get,Ml=Il.Int8Array,Rl=Ml&&Ml.prototype,Dl=Il.Uint8ClampedArray,Ul=Dl&&Dl.prototype,Nl=Ml&&Tl(Ml),jl=Rl&&Tl(Rl),zl=Object.prototype,Fl=Il.TypeError,El=kl("toStringTag"),Ql=Pl("TYPED_ARRAY_TAG"),Ol=xl&&!!Hl&&"Opera"!==vl(Il.opera),Bl=!1,Al={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},_l={BigInt64Array:8,BigUint64Array:8},ql=function(t){var e=Tl(t);if(Kl(e)){var i=Jl(e);return i&&Wl(i,"TypedArrayConstructor")?i.TypedArrayConstructor:ql(e)}},$l=function(t){if(!Kl(t))return!1;var e=vl(t);return Wl(Al,e)||Wl(_l,e)};for(hl in Al)(fl=(Zl=Il[hl])&&Zl.prototype)?Cl(fl).TypedArrayConstructor=Zl:Ol=!1;for(hl in _l)(fl=(Zl=Il[hl])&&Zl.prototype)&&(Cl(fl).TypedArrayConstructor=Zl);if((!Ol||!Gl(Nl)||Nl===Function.prototype)&&(Nl=function(){throw Fl("Incorrect invocation")},Ol))for(hl in Al)Il[hl]&&Hl(Il[hl],Nl);if((!Ol||!jl||jl===zl)&&(jl=Nl.prototype,Ol))for(hl in Al)Il[hl]&&Hl(Il[hl].prototype,jl);if(Ol&&Tl(Ul)!==jl&&Hl(Ul,jl),Xl&&!Wl(jl,El))for(hl in Bl=!0,Yl(jl,El,{get:function(){return Kl(this)?this[Ql]:void 0}}),Al)Il[hl]&&wl(Il[hl],Ql,hl);var to={NATIVE_ARRAY_BUFFER_VIEWS:Ol,TYPED_ARRAY_TAG:Bl&&Ql,aTypedArray:function(t){if($l(t))return t;throw Fl("Target is not a typed array")},aTypedArrayConstructor:function(t){if(Gl(t)&&(!Hl||Vl(Nl,t)))return t;throw Fl(Sl(t)+" is not a typed array constructor")},exportTypedArrayMethod:function(t,e,i,n){if(Xl){if(i)for(var r in Al){var d=Il[r];if(d&&Wl(d.prototype,t))try{delete d.prototype[t]}catch(i){try{d.prototype[t]=e}catch(t){}}}jl[t]&&!i||gl(jl,t,i?e:Ol&&Rl[t]||e,n)}},exportTypedArrayStaticMethod:function(t,e,i){var n,r;if(Xl){if(Hl){if(i)for(n in Al)if((r=Il[n])&&Wl(r,t))try{delete r[t]}catch(t){}if(Nl[t]&&!i)return;try{return gl(Nl,t,i?e:Ol&&Nl[t]||e)}catch(t){}}for(n in Al)!(r=Il[n])||r[t]&&!i||gl(r,t,e)}},getTypedArrayConstructor:ql,isView:function(t){if(!Kl(t))return!1;var e=vl(t);return"DataView"===e||Wl(Al,e)||Wl(_l,e)},isTypedArray:$l,TypedArray:Nl,TypedArrayPrototype:jl},eo=W,io=S,no=Ll,ro=to.NATIVE_ARRAY_BUFFER_VIEWS,co=eo.ArrayBuffer,ao=eo.Int8Array,so=!ro||!io((function(){ao(1)}))||!io((function(){new ao(-1)}))||!no((function(t){new ao,new ao(null),new ao(1.5),new ao(t)}),!0)||io((function(){return 1!==new ao(new co(2),1,void 0).length})),lo=at,oo=Math.floor,uo=Number.isInteger||function(t){return!lo(t)&&isFinite(t)&&oo(t)===t},mo=mn,po=RangeError,yo=RangeError,bo=function(t,e){var i=function(t){var e=mo(t);if(0>e)throw po("The argument can't be less than 0");return e}(t);if(i%e)throw yo("Wrong offset");return i},ho=Wr,Zo=Ct,fo=uc,Lo=he("iterator"),xo=function(t){if(null!=t)return Zo(t,Lo)||Zo(t,"@@iterator")||fo[ho(t)]},Xo=V,Io=kt,Go=Qe,Ko=Yt,Wo=xo,vo=TypeError,So=function(t,e){var i=2>arguments.length?Wo(t):e;if(Io(i))return Go(Xo(i,t));throw vo(Ko(t)+" is not iterable")},wo=uc,go=he("iterator"),Yo=Array.prototype,Vo=function(t){return void 0!==t&&(wo.Array===t||Yo[go]===t)},To=yr,Ho=V,ko=Qs,Po=_t,Co=Xn,Jo=So,Mo=xo,Ro=Vo,Do=to.aTypedArrayConstructor,Uo=ut,No=Ne,jo=w,zo=he("species"),Fo=function(t){var e=Uo(t),i=No.f;jo&&e&&!e[zo]&&i(e,zo,{configurable:!0,get:function(){return this}})},Eo=dt,Qo=at,Oo=Fc,Bo=function(t,e,i){var n,r;return Oo&&Eo(n=e.constructor)&&n!==i&&Qo(r=n.prototype)&&r!==i.prototype&&Oo(t,r),t},Ao=or,_o=W,qo=V,$o=w,tu=so,eu=to,iu=js,nu=ga,ru=M,du=ri,cu=uo,au=Ln,su=Ha,lu=bo,ou=ve,uu=te,mu=Wr,pu=at,yu=wt,bu=Td,hu=mt,Zu=Fc,fu=sn.f,Lu=function(t){var e,i,n,r,d,c,a=ko(this),s=Po(t),l=arguments.length,o=l>1?arguments[1]:void 0,u=void 0!==o,m=Mo(s);if(m&&!Ro(m))for(c=(d=Jo(s,m)).next,s=[];!(r=Ho(c,d)).done;)s.push(r.value);for(u&&l>2&&(o=To(o,arguments[2])),i=Co(s),n=new(Do(a))(i),e=0;i>e;e++)n[e]=u?o(s[e],e):s[e];return n},xu=$r.forEach,Xu=Fo,Iu=Ne,Gu=v,Ku=Bo,Wu=zi.get,vu=zi.set,Su=zi.enforce,wu=Iu.f,gu=Gu.f,Yu=Math.round,Vu=_o.RangeError,Tu=iu.ArrayBuffer,Hu=Tu.prototype,ku=iu.DataView,Pu=eu.NATIVE_ARRAY_BUFFER_VIEWS,Cu=eu.TYPED_ARRAY_TAG,Ju=eu.TypedArray,Mu=eu.TypedArrayPrototype,Ru=eu.aTypedArrayConstructor,Du=eu.isTypedArray,Uu="BYTES_PER_ELEMENT",Nu="Wrong length",ju=function(t,e){Ru(t);for(var i=0,n=e.length,r=new t(n);n>i;)r[i]=e[i++];return r},zu=function(t,e){wu(t,e,{get:function(){return Wu(this)[e]}})},Fu=function(t){var e;return hu(Hu,t)||"ArrayBuffer"==(e=mu(t))||"SharedArrayBuffer"==e},Eu=function(t,e){return Du(t)&&!yu(e)&&e in t&&cu(+e)&&e>=0},Qu=function(t,e){return e=ou(e),Eu(t,e)?ru(2,t[e]):gu(t,e)},Ou=function(t,e,i){return e=ou(e),!(Eu(t,e)&&pu(i)&&uu(i,"value"))||uu(i,"get")||uu(i,"set")||i.configurable||uu(i,"writable")&&!i.writable||uu(i,"enumerable")&&!i.enumerable?wu(t,e,i):(t[e]=i.value,t)};$o?(Pu||(Gu.f=Qu,Iu.f=Ou,zu(Mu,"buffer"),zu(Mu,"byteOffset"),zu(Mu,"byteLength"),zu(Mu,"length")),Ao({target:"Object",stat:!0,forced:!Pu},{getOwnPropertyDescriptor:Qu,defineProperty:Ou}),ul.exports=function(t,e,i){var n=t.match(/\d+$/)[0]/8,r=t+(i?"Clamped":"")+"Array",d="get"+t,c="set"+t,a=_o[r],s=a,l=s&&s.prototype,o={},u=function(t,e){wu(t,e,{get:function(){return function(t,e){var i=Wu(t);return i.view[d](e*n+i.byteOffset,!0)}(this,e)},set:function(t){return function(t,e,r){var d=Wu(t);i&&(r=0>(r=Yu(r))?0:r>255?255:255&r),d.view[c](e*n+d.byteOffset,r,!0)}(this,e,t)},enumerable:!0})};Pu?tu&&(s=e((function(t,e,i,r){return nu(t,l),Ku(pu(e)?Fu(e)?void 0!==r?new a(e,lu(i,n),r):void 0!==i?new a(e,lu(i,n)):new a(e):Du(e)?ju(s,e):qo(Lu,s,e):new a(su(e)),t,s)})),Zu&&Zu(s,Ju),xu(fu(a),(function(t){t in s||du(s,t,a[t])})),s.prototype=l):(s=e((function(t,e,i,r){nu(t,l);var d,c,a,o=0,m=0;if(pu(e)){if(!Fu(e))return Du(e)?ju(s,e):qo(Lu,s,e);d=e,m=lu(i,n);var p=e.byteLength;if(void 0===r){if(p%n)throw Vu(Nu);if(0>(c=p-m))throw Vu(Nu)}else if((c=au(r)*n)+m>p)throw Vu(Nu);a=c/n}else a=su(e),d=new Tu(c=a*n);for(vu(t,{buffer:d,byteOffset:m,byteLength:c,length:a,view:new ku(d)});a>o;)u(t,o++)})),Zu&&Zu(s,Ju),l=s.prototype=bu(Mu)),l.constructor!==s&&du(l,"constructor",s),Su(l).TypedArrayConstructor=s,Cu&&du(l,Cu,r);var m=s!=a;o[r]=s,Ao({global:!0,constructor:!0,forced:m,sham:!Pu},o),Uu in s||du(s,Uu,n),Uu in l||du(l,Uu,n),Xu(r)}):ul.exports=function(){},(0,ul.exports)("Uint8",(function(t){return function(e,i,n){return t(this,e,i,n)}}));var Bu=Yt,Au=TypeError,_u=function(t,e){if(!delete t[e])throw Au("Cannot delete property "+Bu(e)+" of "+Bu(t))},qu=_t,$u=hn,tm=Xn,em=_u,im=Math.min,nm=[].copyWithin||function(t,e){var i=qu(this),n=tm(i),r=$u(t,n),d=$u(e,n),c=arguments.length>2?arguments[2]:void 0,a=im((void 0===c?n:$u(c,n))-d,n-r),s=1;for(r>d&&d+a>r&&(s=-1,d+=a-1,r+=a-1);a-- >0;)d in i?i[r]=i[d]:em(i,r),r+=s,d+=s;return i},rm=to,dm=z(nm),cm=rm.aTypedArray;(0,rm.exportTypedArrayMethod)("copyWithin",(function(t,e){return dm(cm(this),t,e,arguments.length>2?arguments[2]:void 0)}));var am=$r.every,sm=to.aTypedArray;(0,to.exportTypedArrayMethod)("every",(function(t){return am(sm(this),t,arguments.length>1?arguments[1]:void 0)}));var lm=Ge,om=TypeError,um=sd,mm=function(t){var e=lm(t,"number");if("number"==typeof e)throw om("Can't convert number to bigint");return BigInt(e)},pm=Wr,ym=V,bm=S,hm=to.aTypedArray,Zm=to.exportTypedArrayMethod,fm=z("".slice);Zm("fill",(function(t){var e=arguments.length;hm(this);var i="Big"===fm(pm(this),0,3)?mm(t):+t;return ym(um,this,i,e>1?arguments[1]:void 0,e>2?arguments[2]:void 0)}),bm((function(){var t=0;return new Int8Array(2).fill({valueOf:function(){return t++}}),1!==t})));var Lm=Xn,xm=_s,Xm=to.aTypedArrayConstructor,Im=to.getTypedArrayConstructor,Gm=function(t){return Xm(xm(t,Im(t)))},Km=Gm,Wm=$r.filter,vm=function(t,e){return function(t,e){for(var i=0,n=Lm(e),r=new t(n);n>i;)r[i]=e[i++];return r}(Km(t),e)},Sm=to.aTypedArray;(0,to.exportTypedArrayMethod)("filter",(function(t){var e=Wm(Sm(this),t,arguments.length>1?arguments[1]:void 0);return vm(this,e)}));var wm=$r.find,gm=to.aTypedArray;(0,to.exportTypedArrayMethod)("find",(function(t){return wm(gm(this),t,arguments.length>1?arguments[1]:void 0)}));var Ym=$r.findIndex,Vm=to.aTypedArray;(0,to.exportTypedArrayMethod)("findIndex",(function(t){return Ym(Vm(this),t,arguments.length>1?arguments[1]:void 0)}));var Tm=$r.forEach,Hm=to.aTypedArray;(0,to.exportTypedArrayMethod)("forEach",(function(t){Tm(Hm(this),t,arguments.length>1?arguments[1]:void 0)}));var km=vn.includes,Pm=to.aTypedArray;(0,to.exportTypedArrayMethod)("includes",(function(t){return km(Pm(this),t,arguments.length>1?arguments[1]:void 0)}));var Cm=vn.indexOf,Jm=to.aTypedArray;(0,to.exportTypedArrayMethod)("indexOf",(function(t){return Cm(Jm(this),t,arguments.length>1?arguments[1]:void 0)}));var Mm=W,Rm=S,Dm=z,Um=to,Nm=Ia,jm=he("iterator"),zm=Mm.Uint8Array,Fm=Dm(Nm.values),Em=Dm(Nm.keys),Qm=Dm(Nm.entries),Om=Um.aTypedArray,Bm=Um.exportTypedArrayMethod,Am=zm&&zm.prototype,_m=!Rm((function(){Am[jm].call([1])})),qm=!!Am&&Am.values&&Am[jm]===Am.values&&"values"===Am.values.name,$m=function(){return Fm(Om(this))};Bm("entries",(function(){return Qm(Om(this))}),_m),Bm("keys",(function(){return Em(Om(this))}),_m),Bm("values",$m,_m||!qm,{name:"values"}),Bm(jm,$m,_m||!qm,{name:"values"});var tp=to.aTypedArray,ep=to.exportTypedArrayMethod,ip=z([].join);ep("join",(function(t){return ip(tp(this),t)}));var np=g,rp=Function.prototype,dp=rp.apply,cp=rp.call,ap="object"==typeof Reflect&&Reflect.apply||(np?cp.bind(dp):function(){return cp.apply(dp,arguments)}),sp=S,lp=function(t,e){var i=[][t];return!!i&&sp((function(){i.call(null,e||function(){return 1},1)}))},op=ap,up=rt,mp=mn,pp=Xn,yp=Math.min,bp=[].lastIndexOf,hp=!!bp&&!1,Zp=lp("lastIndexOf"),fp=hp||!Zp?function(t){if(hp)return op(bp,this,arguments)||0;var e=up(this),i=pp(e),n=i-1;for(arguments.length>1&&(n=yp(n,mp(arguments[1]))),0>n&&(n=i+n);n>=0;n--)if(n in e&&e[n]===t)return n||0;return-1}:bp,Lp=ap,xp=fp,Xp=to.aTypedArray;(0,to.exportTypedArrayMethod)("lastIndexOf",(function(t){var e=arguments.length;return Lp(xp,Xp(this),e>1?[t,arguments[1]]:[t])}));var Ip=$r.map,Gp=Gm,Kp=to.aTypedArray;(0,to.exportTypedArrayMethod)("map",(function(t){return Ip(Kp(this),t,arguments.length>1?arguments[1]:void 0,(function(t,e){return new(Gp(t))(e)}))}));var Wp=kt,vp=_t,Sp=$,wp=Xn,gp=TypeError,Yp=function(t){return function(e,i,n,r){Wp(i);var d=vp(e),c=Sp(d),a=wp(d),s=t?a-1:0,l=t?-1:1;if(2>n)for(;;){if(s in c){r=c[s],s+=l;break}if(s+=l,t?0>s:s>=a)throw gp("Reduce of empty array with no initial value")}for(;t?s>=0:a>s;s+=l)s in c&&(r=i(r,c[s],s,d));return r}},Vp={left:Yp(!1),right:Yp(!0)},Tp=Vp.left,Hp=to.aTypedArray;(0,to.exportTypedArrayMethod)("reduce",(function(t){var e=arguments.length;return Tp(Hp(this),t,e,e>1?arguments[1]:void 0)}));var kp=Vp.right,Pp=to.aTypedArray;(0,to.exportTypedArrayMethod)("reduceRight",(function(t){var e=arguments.length;return kp(Pp(this),t,e,e>1?arguments[1]:void 0)}));var Cp=to.aTypedArray,Jp=Math.floor;(0,to.exportTypedArrayMethod)("reverse",(function(){for(var t,e=this,i=Cp(e).length,n=Jp(i/2),r=0;n>r;)t=e[r],e[r++]=e[--i],e[i]=t;return e}));var Mp=W,Rp=V,Dp=to,Up=Xn,Np=bo,jp=_t,zp=S,Fp=Mp.RangeError,Ep=Mp.Int8Array,Qp=Ep&&Ep.prototype,Op=Qp&&Qp.set,Bp=Dp.aTypedArray,Ap=Dp.exportTypedArrayMethod,_p=!zp((function(){var t=new Uint8ClampedArray(2);return Rp(Op,t,{length:1,0:3},1),3!==t[1]})),qp=_p&&Dp.NATIVE_ARRAY_BUFFER_VIEWS&&zp((function(){var t=new Ep(2);return t.set(1),t.set("2",1),0!==t[0]||2!==t[1]}));Ap("set",(function(t){Bp(this);var e=Np(arguments.length>1?arguments[1]:void 0,1),i=jp(t);if(_p)return Rp(Op,this,i,e);var n=this.length,r=Up(i),d=0;if(r+e>n)throw Fp("Wrong length");for(;r>d;)this[e+d]=i[d++]}),!_p||qp);var $p=z([].slice),ty=Gm,ey=$p,iy=to.aTypedArray;(0,to.exportTypedArrayMethod)("slice",(function(t,e){for(var i=ey(iy(this),t,e),n=ty(this),r=0,d=i.length,c=new n(d);d>r;)c[r]=i[r++];return c}),S((function(){new Int8Array(1).slice()})));var ny=$r.some,ry=to.aTypedArray;(0,to.exportTypedArrayMethod)("some",(function(t){return ny(ry(this),t,arguments.length>1?arguments[1]:void 0)}));var dy=za,cy=Math.floor,ay=function(t,e){var i=t.length,n=cy(i/2);return 8>i?sy(t,e):ly(t,ay(dy(t,0,n),e),ay(dy(t,n),e),e)},sy=function(t,e){for(var i,n,r=t.length,d=1;r>d;){for(n=d,i=t[d];n&&e(t[n-1],i)>0;)t[n]=t[--n];n!==d++&&(t[n]=i)}return t},ly=function(t,e,i,n){for(var r=e.length,d=i.length,c=0,a=0;r>c||d>a;)t[c+a]=r>c&&d>a?n(e[c],i[a])>0?i[a++]:e[c++]:r>c?e[c++]:i[a++];return t},oy=ay,uy=pt.match(/firefox\/(\d+)/i),my=!!uy&&+uy[1],py=/MSIE|Trident/.test(pt),yy=pt.match(/AppleWebKit\/(\d+)\./),by=!!yy&&+yy[1],hy=z,Zy=S,fy=kt,Ly=oy,xy=my,Xy=py,Iy=xt,Gy=by,Ky=to.aTypedArray,Wy=to.exportTypedArrayMethod,vy=W.Uint16Array,Sy=vy&&hy(vy.prototype.sort),wy=!(!Sy||Zy((function(){Sy(new vy(2),null)}))&&Zy((function(){Sy(new vy(2),{})}))),gy=!!Sy&&!Zy((function(){if(Iy)return 74>Iy;if(xy)return 67>xy;if(Xy)return!0;if(Gy)return 602>Gy;var t,e,i=new vy(516),n=Array(516);for(t=0;516>t;t++)e=t%4,i[t]=515-t,n[t]=t-2*e+3;for(Sy(i,(function(t,e){return(t/4|0)-(e/4|0)})),t=0;516>t;t++)if(i[t]!==n[t])return!0}));Wy("sort",(function(t){return void 0!==t&&fy(t),gy?Sy(this,t):Ly(Ky(this),function(t){return function(e,i){return void 0!==t?+t(e,i)||0:i!=i?-1:e!=e?1:0===e&&0===i?1/e>0&&0>1/i?1:-1:e>i}}(t))}),!gy||wy);var Yy=Ln,Vy=hn,Ty=Gm,Hy=to.aTypedArray;(0,to.exportTypedArrayMethod)("subarray",(function(t,e){var i=Hy(this),n=i.length,r=Vy(t,n);return new(Ty(i))(i.buffer,i.byteOffset+r*i.BYTES_PER_ELEMENT,Yy((void 0===e?n:Vy(e,n))-r))}));var ky=ap,Py=to,Cy=S,Jy=$p,My=W.Int8Array,Ry=Py.aTypedArray,Dy=Py.exportTypedArrayMethod,Uy=[].toLocaleString,Ny=!!My&&Cy((function(){Uy.call(new My(1))}));Dy("toLocaleString",(function(){return ky(Uy,Ny?Jy(Ry(this)):Ry(this),Jy(arguments))}),Cy((function(){return[1,2].toLocaleString()!=new My([1,2]).toLocaleString()}))||!Cy((function(){My.prototype.toLocaleString.call([1,2])})));var jy=to.exportTypedArrayMethod,zy=S,Fy=z,Ey=W.Uint8Array,Qy=Ey&&Ey.prototype||{},Oy=[].toString,By=Fy([].join);zy((function(){Oy.call({})}))&&(Oy=function(){return By(this)});var Ay=Qy.toString!=Oy;jy("toString",Oy,Ay),(0,ul.exports)("Uint16",(function(t){return function(e,i,n){return t(this,e,i,n)}}));var _y,qy,$y=or,tb=hr,eb=Rr,ib=at,nb=hn,rb=Xn,db=rt,cb=Ed,ab=he,sb=$p,lb=nd("slice"),ob=ab("species"),ub=Array,mb=Math.max;$y({target:"Array",proto:!0,forced:!lb},{slice:function(t,e){var i,n,r,d=db(this),c=rb(d),a=nb(t,c),s=nb(void 0===e?c:e,c);if(tb(d)&&(i=d.constructor,(eb(i)&&(i===ub||tb(i.prototype))||ib(i)&&null===(i=i[ob]))&&(i=void 0),i===ub||void 0===i))return sb(d,a,s);for(n=new(void 0===i?ub:i)(mb(s-a,0)),r=0;s>a;a++,r++)a in d&&cb(n,r,d[a]);return n.length=r,n}});var pb=-2;function yb(t){return bb(t.map((function(t){var e=f(t,2),i=e[0],n=e[1];return Array(i).fill(n,0,i)})))}function bb(t){return t.reduce((function(t,e){return t.concat(Array.isArray(e)?bb(e):e)}),[])}var hb=(_y=[0,1,2,3]).concat.apply(_y,L(yb([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]])));function Zb(){var t=this;function e(t,e){var i=0;do{i|=1&t,t>>>=1,i<<=1}while(--e>0);return i>>>1}t.build_tree=function(i){var n,r,d,c=t.dyn_tree,a=t.stat_desc.static_tree,s=t.stat_desc.elems,l=-1;for(i.heap_len=0,i.heap_max=573,n=0;s>n;n++)0!==c[2*n]?(i.heap[++i.heap_len]=l=n,i.depth[n]=0):c[2*n+1]=0;for(;2>i.heap_len;)c[2*(d=i.heap[++i.heap_len]=2>l?++l:0)]=1,i.depth[d]=0,i.opt_len--,a&&(i.static_len-=a[2*d+1]);for(t.max_code=l,n=Math.floor(i.heap_len/2);n>=1;n--)i.pqdownheap(c,n);d=s;do{n=i.heap[1],i.heap[1]=i.heap[i.heap_len--],i.pqdownheap(c,1),r=i.heap[1],i.heap[--i.heap_max]=n,i.heap[--i.heap_max]=r,c[2*d]=c[2*n]+c[2*r],i.depth[d]=Math.max(i.depth[n],i.depth[r])+1,c[2*n+1]=c[2*r+1]=d,i.heap[1]=d++,i.pqdownheap(c,1)}while(i.heap_len>=2);i.heap[--i.heap_max]=i.heap[1],function(e){var i,n,r,d,c,a,s=t.dyn_tree,l=t.stat_desc.static_tree,o=t.stat_desc.extra_bits,u=t.stat_desc.extra_base,m=t.stat_desc.max_length,p=0;for(d=0;15>=d;d++)e.bl_count[d]=0;for(s[2*e.heap[e.heap_max]+1]=0,i=e.heap_max+1;573>i;i++)(d=s[2*s[2*(n=e.heap[i])+1]+1]+1)>m&&(d=m,p++),s[2*n+1]=d,n>t.max_code||(e.bl_count[d]++,c=0,u>n||(c=o[n-u]),a=s[2*n],e.opt_len+=a*(d+c),l&&(e.static_len+=a*(l[2*n+1]+c)));if(0!==p){do{for(d=m-1;0===e.bl_count[d];)d--;e.bl_count[d]--,e.bl_count[d+1]+=2,e.bl_count[m]--,p-=2}while(p>0);for(d=m;0!==d;d--)for(n=e.bl_count[d];0!==n;)(r=e.heap[--i])>t.max_code||(s[2*r+1]!=d&&(e.opt_len+=(d-s[2*r+1])*s[2*r],s[2*r+1]=d),n--)}}(i),function(t,i,n){var r,d,c,a=[],s=0;for(r=1;15>=r;r++)a[r]=s=s+n[r-1]<<1;for(d=0;i>=d;d++)0!==(c=t[2*d+1])&&(t[2*d]=e(a[c]++,c))}(c,t.max_code,i.bl_count)}}function fb(t,e,i,n,r){var d=this;d.static_tree=t,d.extra_bits=e,d.extra_base=i,d.elems=n,d.max_length=r}Zb._length_code=(qy=[0,1,2,3,4,5,6,7]).concat.apply(qy,L(yb([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]]))),Zb.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],Zb.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],Zb.d_code=function(t){return 256>t?hb[t]:hb[256+(t>>>7)]},Zb.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Zb.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Zb.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Zb.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];var Lb=yb([[144,8],[112,9],[24,7],[8,8]]);fb.static_ltree=bb([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map((function(t,e){return[t,Lb[e]]})));var xb=yb([[30,5]]);function Xb(t,e,i,n,r){var d=this;d.good_length=t,d.max_lazy=e,d.nice_length=i,d.max_chain=n,d.func=r}fb.static_dtree=bb([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map((function(t,e){return[t,xb[e]]}))),fb.static_l_desc=new fb(fb.static_ltree,Zb.extra_lbits,257,286,15),fb.static_d_desc=new fb(fb.static_dtree,Zb.extra_dbits,0,30,15),fb.static_bl_desc=new fb(null,Zb.extra_blbits,0,19,7);var Ib=[new Xb(0,0,0,0,0),new Xb(4,4,8,4,1),new Xb(4,5,16,8,1),new Xb(4,6,32,32,1),new Xb(4,4,16,16,2),new Xb(8,16,32,32,2),new Xb(8,16,128,128,2),new Xb(8,32,128,256,2),new Xb(32,128,258,1024,2),new Xb(32,258,258,4096,2)],Gb=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Kb=113,Wb=666,vb=262;function Sb(t,e,i,n){var r=t[2*e],d=t[2*i];return d>r||r==d&&n[e]<=n[i]}function wb(){var t,e,i,n,r,d,c,a,s,l,o,u,m,p,y,b,h,Z,f,L,x,X,I,G,K,W,v,S,w,g,Y,V,T,H,k,P,C,J,M,R=this,D=new Zb,U=new Zb,N=new Zb;function j(){var t;for(t=0;286>t;t++)Y[2*t]=0;for(t=0;30>t;t++)V[2*t]=0;for(t=0;19>t;t++)T[2*t]=0;Y[512]=1,R.opt_len=R.static_len=0,k=P=0}function z(t,e){var i,n=-1,r=t[1],d=0,c=7,a=4;0===r&&(c=138,a=3),t[2*(e+1)+1]=65535;for(var s=0;e>=s;s++)i=r,r=t[2*(s+1)+1],++d<c&&i==r||(a>d?T[2*i]+=d:0!==i?(i!=n&&T[2*i]++,T[32]++):d>10?T[36]++:T[34]++,d=0,n=i,0===r?(c=138,a=3):i==r?(c=6,a=3):(c=7,a=4))}function F(t){R.pending_buf[R.pending++]=t}function E(t){F(255&t),F(t>>>8&255)}function Q(t,e){var i,n=e;M>16-n?(E(J|=(i=t)<<M&65535),J=i>>>16-M,M+=n-16):(J|=t<<M&65535,M+=n)}function O(t,e){var i=2*t;Q(65535&e[i],65535&e[i+1])}function B(t,e){var i,n,r=-1,d=t[1],c=0,a=7,s=4;for(0===d&&(a=138,s=3),i=0;e>=i;i++)if(n=d,d=t[2*(i+1)+1],++c>=a||n!=d){if(s>c)do{O(n,T)}while(0!=--c);else 0!==n?(n!=r&&(O(n,T),c--),O(16,T),Q(c-3,2)):c>10?(O(18,T),Q(c-11,7)):(O(17,T),Q(c-3,3));c=0,r=n,0===d?(a=138,s=3):n==d?(a=6,s=3):(a=7,s=4)}}function A(){16==M?(E(J),J=0,M=0):8>M||(F(255&J),J>>>=8,M-=8)}function _(t,e){var i,n,r;if(R.dist_buf[k]=t,R.lc_buf[k]=255&e,k++,0===t?Y[2*e]++:(P++,t--,Y[2*(Zb._length_code[e]+256+1)]++,V[2*Zb.d_code(t)]++),0==(8191&k)&&v>2){for(i=8*k,n=x-h,r=0;30>r;r++)i+=V[2*r]*(5+Zb.extra_dbits[r]);if(i>>>=3,Math.floor(k/2)>P&&Math.floor(n/2)>i)return!0}return k==H-1}function q(t,e){var i,n,r,d,c=0;if(0!==k)do{i=R.dist_buf[c],n=R.lc_buf[c],c++,0===i?O(n,t):(O((r=Zb._length_code[n])+256+1,t),0!==(d=Zb.extra_lbits[r])&&Q(n-=Zb.base_length[r],d),i--,O(r=Zb.d_code(i),e),0!==(d=Zb.extra_dbits[r])&&Q(i-=Zb.base_dist[r],d))}while(k>c);O(256,t),C=t[513]}function $(){M>8?E(J):M>0&&F(255&J),J=0,M=0}function tt(t,e,i){Q(0+(i?1:0),3),function(t,e){$(),C=8,E(e),E(~e),R.pending_buf.set(a.subarray(t,t+e),R.pending),R.pending+=e}(t,e)}function et(e){(function(t,e,i){var n,r,d=0;v>0?(D.build_tree(R),U.build_tree(R),d=function(){var t;for(z(Y,D.max_code),z(V,U.max_code),N.build_tree(R),t=18;t>=3&&0===T[2*Zb.bl_order[t]+1];t--);return R.opt_len+=3*(t+1)+5+5+4,t}(),n=R.opt_len+3+7>>>3,(r=R.static_len+3+7>>>3)>n||(n=r)):n=r=e+5,e+4>n||-1==t?r==n?(Q(2+(i?1:0),3),q(fb.static_ltree,fb.static_dtree)):(Q(4+(i?1:0),3),function(t,e,i){var n;for(Q(t-257,5),Q(e-1,5),Q(i-4,4),n=0;i>n;n++)Q(T[2*Zb.bl_order[n]+1],3);B(Y,t-1),B(V,e-1)}(D.max_code+1,U.max_code+1,d+1),q(Y,V)):tt(t,e,i),j(),i&&$()})(0>h?-1:h,x-h,e),h=x,t.flush_pending()}function it(){var e,i,n,d;do{if(0==(d=s-I-x)&&0===x&&0===I)d=r;else if(-1==d)d--;else if(x>=r+r-vb){a.set(a.subarray(r,r+r),0),X-=r,x-=r,h-=r,n=e=m;do{i=65535&o[--n],o[n]=r>i?0:i-r}while(0!=--e);n=e=r;do{i=65535&l[--n],l[n]=r>i?0:i-r}while(0!=--e);d+=r}if(0===t.avail_in)return;e=t.read_buf(a,x+I,d),3>(I+=e)||(u=((u=255&a[x])<<b^255&a[x+1])&y)}while(vb>I&&0!==t.avail_in)}function nt(t){var e,i,n=K,d=x,s=G,o=x>r-vb?x-(r-vb):0,u=g,m=c,p=x+258,y=a[d+s-1],b=a[d+s];w>G||(n>>=2),u>I&&(u=I);do{if(a[(e=t)+s]==b&&a[e+s-1]==y&&a[e]==a[d]&&a[++e]==a[d+1]){d+=2,e++;do{}while(a[++d]==a[++e]&&a[++d]==a[++e]&&a[++d]==a[++e]&&a[++d]==a[++e]&&a[++d]==a[++e]&&a[++d]==a[++e]&&a[++d]==a[++e]&&a[++d]==a[++e]&&p>d);if(i=258-(p-d),d=p-258,i>s){if(X=t,s=i,i>=u)break;y=a[d+s-1],b=a[d+s]}}}while((t=65535&l[t&m])>o&&0!=--n);return s>I?I:s}R.depth=[],R.bl_count=[],R.heap=[],Y=[],V=[],T=[],R.pqdownheap=function(t,e){for(var i=R.heap,n=i[e],r=e<<1;r<=R.heap_len&&(r<R.heap_len&&Sb(t,i[r+1],i[r],R.depth)&&r++,!Sb(t,n,i[r],R.depth));)i[e]=i[r],e=r,r<<=1;i[e]=n},R.deflateInit=function(t,f,X,k,P,z){return k||(k=8),P||(P=8),z||(z=0),t.msg=null,-1==f&&(f=6),1>P||P>9||8!=k||9>X||X>15||0>f||f>9||0>z||z>2?pb:(t.dstate=R,c=(r=1<<(d=X))-1,y=(m=1<<(p=P+7))-1,b=Math.floor((p+3-1)/3),a=new Uint8Array(2*r),l=[],o=[],H=1<<P+6,R.pending_buf=new Uint8Array(4*H),i=4*H,R.dist_buf=new Uint16Array(H),R.lc_buf=new Uint8Array(H),v=f,S=z,function(t){return t.total_in=t.total_out=0,t.msg=null,R.pending=0,R.pending_out=0,e=Kb,n=0,D.dyn_tree=Y,D.stat_desc=fb.static_l_desc,U.dyn_tree=V,U.stat_desc=fb.static_d_desc,N.dyn_tree=T,N.stat_desc=fb.static_bl_desc,J=0,M=0,C=8,j(),function(){s=2*r,o[m-1]=0;for(var t=0;m-1>t;t++)o[t]=0;W=Ib[v].max_lazy,w=Ib[v].good_length,g=Ib[v].nice_length,K=Ib[v].max_chain,x=0,h=0,I=0,Z=G=2,L=0,u=0}(),0}(t))},R.deflateEnd=function(){return 42!=e&&e!=Kb&&e!=Wb?pb:(R.lc_buf=null,R.dist_buf=null,R.pending_buf=null,o=null,l=null,a=null,R.dstate=null,e==Kb?-3:0)},R.deflateParams=function(t,e,i){var n=0;return-1==e&&(e=6),0>e||e>9||0>i||i>2?pb:(Ib[v].func!=Ib[e].func&&0!==t.total_in&&(n=t.deflate(1)),v!=e&&(W=Ib[v=e].max_lazy,w=Ib[v].good_length,g=Ib[v].nice_length,K=Ib[v].max_chain),S=i,n)},R.deflateSetDictionary=function(t,i,n){var d,s=n,m=0;if(!i||42!=e)return pb;if(3>s)return 0;for(s>r-vb&&(m=n-(s=r-vb)),a.set(i.subarray(m,m+s),0),x=s,h=s,u=((u=255&a[0])<<b^255&a[1])&y,d=0;s-3>=d;d++)u=(u<<b^255&a[d+2])&y,l[d&c]=o[u],o[u]=d;return 0},R.deflate=function(s,p){var K,w,g,Y,V,T;if(p>4||0>p)return pb;if(!s.next_out||!s.next_in&&0!==s.avail_in||e==Wb&&4!=p)return s.msg=Gb[4],pb;if(0===s.avail_out)return s.msg=Gb[7],-5;if(t=s,Y=n,n=p,42==e&&(w=8+(d-8<<4)<<8,(g=(v-1&255)>>1)>3&&(g=3),w|=g<<6,0!==x&&(w|=32),e=Kb,F((T=w+=31-w%31)>>8&255),F(255&T)),0!==R.pending){if(t.flush_pending(),0===t.avail_out)return n=-1,0}else if(0===t.avail_in&&Y>=p&&4!=p)return t.msg=Gb[7],-5;if(e==Wb&&0!==t.avail_in)return s.msg=Gb[7],-5;if(0!==t.avail_in||0!==I||0!=p&&e!=Wb){switch(V=-1,Ib[v].func){case 0:V=function(e){var n,d=65535;for(d>i-5&&(d=i-5);;){if(1>=I){if(it(),0===I&&0==e)return 0;if(0===I)break}if(x+=I,I=0,n=h+d,(0===x||x>=n)&&(I=x-n,x=n,et(!1),0===t.avail_out))return 0;if(x-h>=r-vb&&(et(!1),0===t.avail_out))return 0}return et(4==e),0===t.avail_out?4==e?2:0:4==e?3:1}(p);break;case 1:V=function(e){for(var i,n=0;;){if(vb>I){if(it(),vb>I&&0==e)return 0;if(0===I)break}if(3>I||(u=(u<<b^255&a[x+2])&y,n=65535&o[u],l[x&c]=o[u],o[u]=x),0===n||(x-n&65535)>r-vb||2!=S&&(Z=nt(n)),3>Z)i=_(0,255&a[x]),I--,x++;else if(i=_(x-X,Z-3),I-=Z,Z>W||3>I)x+=Z,Z=0,u=((u=255&a[x])<<b^255&a[x+1])&y;else{Z--;do{x++,u=(u<<b^255&a[x+2])&y,n=65535&o[u],l[x&c]=o[u],o[u]=x}while(0!=--Z);x++}if(i&&(et(!1),0===t.avail_out))return 0}return et(4==e),0===t.avail_out?4==e?2:0:4==e?3:1}(p);break;case 2:V=function(e){for(var i,n,d=0;;){if(vb>I){if(it(),vb>I&&0==e)return 0;if(0===I)break}if(3>I||(u=(u<<b^255&a[x+2])&y,d=65535&o[u],l[x&c]=o[u],o[u]=x),G=Z,f=X,Z=2,0!==d&&W>G&&r-vb>=(x-d&65535)&&(2!=S&&(Z=nt(d)),5>=Z&&(1==S||3==Z&&x-X>4096)&&(Z=2)),3>G||Z>G)if(0!==L){if((i=_(0,255&a[x-1]))&&et(!1),x++,I--,0===t.avail_out)return 0}else L=1,x++,I--;else{n=x+I-3,i=_(x-1-f,G-3),I-=G-1,G-=2;do{++x>n||(u=(u<<b^255&a[x+2])&y,d=65535&o[u],l[x&c]=o[u],o[u]=x)}while(0!=--G);if(L=0,Z=2,x++,i&&(et(!1),0===t.avail_out))return 0}}return 0!==L&&(i=_(0,255&a[x-1]),L=0),et(4==e),0===t.avail_out?4==e?2:0:4==e?3:1}(p)}if(2!=V&&3!=V||(e=Wb),0==V||2==V)return 0===t.avail_out&&(n=-1),0;if(1==V){if(1==p)Q(2,3),O(256,fb.static_ltree),A(),9>1+C+10-M&&(Q(2,3),O(256,fb.static_ltree),A()),C=7;else if(tt(0,0,!1),3==p)for(K=0;m>K;K++)o[K]=0;if(t.flush_pending(),0===t.avail_out)return n=-1,0}}return 4!=p?0:1}}function gb(){var t=this;t.next_in_index=0,t.next_out_index=0,t.avail_in=0,t.total_in=0,t.avail_out=0,t.total_out=0}gb.prototype={deflateInit:function(t,e){var i=this;return i.dstate=new wb,e||(e=15),i.dstate.deflateInit(i,t,e)},deflate:function(t){var e=this;return e.dstate?e.dstate.deflate(e,t):pb},deflateEnd:function(){var t=this;if(!t.dstate)return pb;var e=t.dstate.deflateEnd();return t.dstate=null,e},deflateParams:function(t,e){var i=this;return i.dstate?i.dstate.deflateParams(i,t,e):pb},deflateSetDictionary:function(t,e){var i=this;return i.dstate?i.dstate.deflateSetDictionary(i,t,e):pb},read_buf:function(t,e,i){var n=this,r=n.avail_in;return r>i&&(r=i),0===r?0:(n.avail_in-=r,t.set(n.next_in.subarray(n.next_in_index,n.next_in_index+r),e),n.next_in_index+=r,n.total_in+=r,r)},flush_pending:function(){var t=this,e=t.dstate.pending;e>t.avail_out&&(e=t.avail_out),0!==e&&(t.next_out.set(t.dstate.pending_buf.subarray(t.dstate.pending_out,t.dstate.pending_out+e),t.next_out_index),t.next_out_index+=e,t.dstate.pending_out+=e,t.total_out+=e,t.avail_out-=e,t.dstate.pending-=e,0===t.dstate.pending&&(t.dstate.pending_out=0))}},(0,ul.exports)("Int32",(function(t){return function(e,i,n){return t(this,e,i,n)}}));var Yb=-2,Vb=-3,Tb=-5,Hb=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],kb=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],Pb=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],Cb=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Jb=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],Mb=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],Rb=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];function Db(){var t,e,i,n,r,d;function c(t,e,c,a,s,l,o,u,m,p,y){var b,h,Z,f,L,x,X,I,G,K,W,v,S,w,g;K=0,L=c;do{i[t[e+K]]++,K++,L--}while(0!==L);if(i[0]==c)return o[0]=-1,u[0]=0,0;for(I=u[0],x=1;15>=x&&0===i[x];x++);for(X=x,x>I&&(I=x),L=15;0!==L&&0===i[L];L--);for(Z=L,I>L&&(I=L),u[0]=I,w=1<<x;L>x;x++,w<<=1)if(0>(w-=i[x]))return Vb;if(0>(w-=i[L]))return Vb;for(i[L]+=w,d[1]=x=0,K=1,S=2;0!=--L;)d[S]=x+=i[K],S++,K++;L=0,K=0;do{0!==(x=t[e+K])&&(y[d[x]++]=L),K++}while(++L<c);for(c=d[Z],d[0]=L=0,K=0,f=-1,v=-I,r[0]=0,W=0,g=0;Z>=X;X++)for(b=i[X];0!=b--;){for(;X>v+I;){if(f++,g=(g=Z-(v+=I))>I?I:g,(h=1<<(x=X-v))>b+1&&(h-=b+1,S=X,g>x))for(;++x<g&&(h<<=1)>i[++S];)h-=i[S];if(g=1<<x,p[0]+g>1440)return Vb;r[f]=W=p[0],p[0]+=g,0!==f?(d[f]=L,n[0]=x,n[1]=I,x=L>>>v-I,n[2]=W-r[f-1]-x,m.set(n,3*(r[f-1]+x))):o[0]=W}for(n[1]=X-v,c>K?y[K]<a?(n[0]=256>y[K]?0:96,n[2]=y[K++]):(n[0]=l[y[K]-a]+16+64,n[2]=s[y[K++]-a]):n[0]=192,h=1<<X-v,x=L>>>v;g>x;x+=h)m.set(n,3*(W+x));for(x=1<<X-1;0!=(L&x);x>>>=1)L^=x;for(L^=x,G=(1<<v)-1;(L&G)!=d[f];)f--,G=(1<<(v-=I))-1}return 0!==w&&1!=Z?Tb:0}function a(c){var a;for(t||(t=[],e=[],i=new Int32Array(16),n=[],r=new Int32Array(15),d=new Int32Array(16)),e.length<c&&(e=[]),a=0;c>a;a++)e[a]=0;for(a=0;16>a;a++)i[a]=0;for(a=0;3>a;a++)n[a]=0;r.set(i.subarray(0,15),0),d.set(i.subarray(0,16),0)}this.inflate_trees_bits=function(i,n,r,d,s){var l;return a(19),t[0]=0,(l=c(i,0,19,19,null,null,r,n,d,t,e))==Vb?s.msg="oversubscribed dynamic bit lengths tree":l!=Tb&&0!==n[0]||(s.msg="incomplete dynamic bit lengths tree",l=Vb),l},this.inflate_trees_dynamic=function(i,n,r,d,s,l,o,u,m){var p;return a(288),t[0]=0,0!=(p=c(r,0,i,257,Cb,Jb,l,d,u,t,e))||0===d[0]?(p==Vb?m.msg="oversubscribed literal/length tree":-4!=p&&(m.msg="incomplete literal/length tree",p=Vb),p):(a(288),0!=(p=c(r,i,n,0,Mb,Rb,o,s,u,t,e))||0===s[0]&&i>257?(p==Vb?m.msg="oversubscribed distance tree":p==Tb?(m.msg="incomplete distance tree",p=Vb):-4!=p&&(m.msg="empty distance tree with lengths",p=Vb),p):0)}}function Ub(){var t,e,i,n,r=this,d=0,c=0,a=0,s=0,l=0,o=0,u=0,m=0,p=0,y=0;function b(t,e,i,n,r,d,c,a){var s,l,o,u,m,p,y,b,h,Z,f,L,x,X,I,G;y=a.next_in_index,b=a.avail_in,m=c.bitb,p=c.bitk,Z=(h=c.write)<c.read?c.read-h-1:c.end-h,f=Hb[t],L=Hb[e];do{for(;20>p;)b--,m|=(255&a.read_byte(y++))<<p,p+=8;if(0!==(u=(l=i)[G=3*((o=n)+(s=m&f))]))for(;;){if(m>>=l[G+1],p-=l[G+1],0!=(16&u)){for(u&=15,x=l[G+2]+(m&Hb[u]),m>>=u,p-=u;15>p;)b--,m|=(255&a.read_byte(y++))<<p,p+=8;for(u=(l=r)[G=3*((o=d)+(s=m&L))];;){if(m>>=l[G+1],p-=l[G+1],0!=(16&u)){for(u&=15;u>p;)b--,m|=(255&a.read_byte(y++))<<p,p+=8;if(X=l[G+2]+(m&Hb[u]),m>>=u,p-=u,Z-=x,X>h){I=h-X;do{I+=c.end}while(0>I);if(x>(u=c.end-I)){if(x-=u,h-I>0&&u>h-I)do{c.win[h++]=c.win[I++]}while(0!=--u);else c.win.set(c.win.subarray(I,I+u),h),h+=u,I+=u,u=0;I=0}}else h-(I=h-X)>0&&2>h-I?(c.win[h++]=c.win[I++],c.win[h++]=c.win[I++],x-=2):(c.win.set(c.win.subarray(I,I+2),h),h+=2,I+=2,x-=2);if(h-I>0&&x>h-I)do{c.win[h++]=c.win[I++]}while(0!=--x);else c.win.set(c.win.subarray(I,I+x),h),h+=x,I+=x,x=0;break}if(0!=(64&u))return a.msg="invalid distance code",b+=x=(x=a.avail_in-b)>p>>3?p>>3:x,y-=x,p-=x<<3,c.bitb=m,c.bitk=p,a.avail_in=b,a.total_in+=y-a.next_in_index,a.next_in_index=y,c.write=h,Vb;s+=l[G+2],u=l[G=3*(o+(s+=m&Hb[u]))]}break}if(0!=(64&u))return 0!=(32&u)?(b+=x=(x=a.avail_in-b)>p>>3?p>>3:x,y-=x,p-=x<<3,c.bitb=m,c.bitk=p,a.avail_in=b,a.total_in+=y-a.next_in_index,a.next_in_index=y,c.write=h,1):(a.msg="invalid literal/length code",b+=x=(x=a.avail_in-b)>p>>3?p>>3:x,y-=x,p-=x<<3,c.bitb=m,c.bitk=p,a.avail_in=b,a.total_in+=y-a.next_in_index,a.next_in_index=y,c.write=h,Vb);if(s+=l[G+2],0===(u=l[G=3*(o+(s+=m&Hb[u]))])){m>>=l[G+1],p-=l[G+1],c.win[h++]=l[G+2],Z--;break}}else m>>=l[G+1],p-=l[G+1],c.win[h++]=l[G+2],Z--}while(Z>=258&&b>=10);return b+=x=(x=a.avail_in-b)>p>>3?p>>3:x,y-=x,p-=x<<3,c.bitb=m,c.bitk=p,a.avail_in=b,a.total_in+=y-a.next_in_index,a.next_in_index=y,c.write=h,0}r.init=function(r,d,c,a,s,l){t=0,u=r,m=d,i=c,p=a,n=s,y=l,e=null},r.proc=function(r,h,Z){var f,L,x,X,I,G,K,W=0,v=0,S=0;for(S=h.next_in_index,X=h.avail_in,W=r.bitb,v=r.bitk,G=(I=r.write)<r.read?r.read-I-1:r.end-I;;)switch(t){case 0:if(G>=258&&X>=10&&(r.bitb=W,r.bitk=v,h.avail_in=X,h.total_in+=S-h.next_in_index,h.next_in_index=S,r.write=I,Z=b(u,m,i,p,n,y,r,h),S=h.next_in_index,X=h.avail_in,W=r.bitb,v=r.bitk,G=(I=r.write)<r.read?r.read-I-1:r.end-I,0!=Z)){t=1==Z?7:9;break}a=u,e=i,c=p,t=1;case 1:for(f=a;f>v;){if(0===X)return r.bitb=W,r.bitk=v,h.avail_in=X,h.total_in+=S-h.next_in_index,h.next_in_index=S,r.write=I,r.inflate_flush(h,Z);Z=0,X--,W|=(255&h.read_byte(S++))<<v,v+=8}if(W>>>=e[1+(L=3*(c+(W&Hb[f])))],v-=e[L+1],0===(x=e[L])){s=e[L+2],t=6;break}if(0!=(16&x)){l=15&x,d=e[L+2],t=2;break}if(0==(64&x)){a=x,c=L/3+e[L+2];break}if(0!=(32&x)){t=7;break}return t=9,h.msg="invalid literal/length code",Z=Vb,r.bitb=W,r.bitk=v,h.avail_in=X,h.total_in+=S-h.next_in_index,h.next_in_index=S,r.write=I,r.inflate_flush(h,Z);case 2:for(f=l;f>v;){if(0===X)return r.bitb=W,r.bitk=v,h.avail_in=X,h.total_in+=S-h.next_in_index,h.next_in_index=S,r.write=I,r.inflate_flush(h,Z);Z=0,X--,W|=(255&h.read_byte(S++))<<v,v+=8}d+=W&Hb[f],W>>=f,v-=f,a=m,e=n,c=y,t=3;case 3:for(f=a;f>v;){if(0===X)return r.bitb=W,r.bitk=v,h.avail_in=X,h.total_in+=S-h.next_in_index,h.next_in_index=S,r.write=I,r.inflate_flush(h,Z);Z=0,X--,W|=(255&h.read_byte(S++))<<v,v+=8}if(W>>=e[1+(L=3*(c+(W&Hb[f])))],v-=e[L+1],0!=(16&(x=e[L]))){l=15&x,o=e[L+2],t=4;break}if(0==(64&x)){a=x,c=L/3+e[L+2];break}return t=9,h.msg="invalid distance code",Z=Vb,r.bitb=W,r.bitk=v,h.avail_in=X,h.total_in+=S-h.next_in_index,h.next_in_index=S,r.write=I,r.inflate_flush(h,Z);case 4:for(f=l;f>v;){if(0===X)return r.bitb=W,r.bitk=v,h.avail_in=X,h.total_in+=S-h.next_in_index,h.next_in_index=S,r.write=I,r.inflate_flush(h,Z);Z=0,X--,W|=(255&h.read_byte(S++))<<v,v+=8}o+=W&Hb[f],W>>=f,v-=f,t=5;case 5:for(K=I-o;0>K;)K+=r.end;for(;0!==d;){if(0===G&&(I==r.end&&0!==r.read&&(G=(I=0)<r.read?r.read-I-1:r.end-I),0===G&&(r.write=I,Z=r.inflate_flush(h,Z),G=(I=r.write)<r.read?r.read-I-1:r.end-I,I==r.end&&0!==r.read&&(G=(I=0)<r.read?r.read-I-1:r.end-I),0===G)))return r.bitb=W,r.bitk=v,h.avail_in=X,h.total_in+=S-h.next_in_index,h.next_in_index=S,r.write=I,r.inflate_flush(h,Z);r.win[I++]=r.win[K++],G--,K==r.end&&(K=0),d--}t=0;break;case 6:if(0===G&&(I==r.end&&0!==r.read&&(G=(I=0)<r.read?r.read-I-1:r.end-I),0===G&&(r.write=I,Z=r.inflate_flush(h,Z),G=(I=r.write)<r.read?r.read-I-1:r.end-I,I==r.end&&0!==r.read&&(G=(I=0)<r.read?r.read-I-1:r.end-I),0===G)))return r.bitb=W,r.bitk=v,h.avail_in=X,h.total_in+=S-h.next_in_index,h.next_in_index=S,r.write=I,r.inflate_flush(h,Z);Z=0,r.win[I++]=s,G--,t=0;break;case 7:if(v>7&&(v-=8,X++,S--),r.write=I,Z=r.inflate_flush(h,Z),G=(I=r.write)<r.read?r.read-I-1:r.end-I,r.read!=r.write)return r.bitb=W,r.bitk=v,h.avail_in=X,h.total_in+=S-h.next_in_index,h.next_in_index=S,r.write=I,r.inflate_flush(h,Z);t=8;case 8:return Z=1,r.bitb=W,r.bitk=v,h.avail_in=X,h.total_in+=S-h.next_in_index,h.next_in_index=S,r.write=I,r.inflate_flush(h,Z);case 9:return Z=Vb,r.bitb=W,r.bitk=v,h.avail_in=X,h.total_in+=S-h.next_in_index,h.next_in_index=S,r.write=I,r.inflate_flush(h,Z);default:return Z=Yb,r.bitb=W,r.bitk=v,h.avail_in=X,h.total_in+=S-h.next_in_index,h.next_in_index=S,r.write=I,r.inflate_flush(h,Z)}},r.free=function(){}}Db.inflate_trees_fixed=function(t,e,i,n){return t[0]=9,e[0]=5,i[0]=kb,n[0]=Pb,0};var Nb=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function jb(t,e){var i,n=this,r=0,d=0,c=0,a=0,s=[0],l=[0],o=new Ub,u=0,m=new Int32Array(4320),p=new Db;n.bitk=0,n.bitb=0,n.win=new Uint8Array(e),n.end=e,n.read=0,n.write=0,n.reset=function(t,e){e&&(e[0]=0),6==r&&o.free(t),r=0,n.bitk=0,n.bitb=0,n.read=n.write=0},n.reset(t,null),n.inflate_flush=function(t,e){var i,r,d;return r=t.next_out_index,(i=((d=n.read)>n.write?n.end:n.write)-d)>t.avail_out&&(i=t.avail_out),0!==i&&e==Tb&&(e=0),t.avail_out-=i,t.total_out+=i,t.next_out.set(n.win.subarray(d,d+i),r),r+=i,(d+=i)==n.end&&(d=0,n.write==n.end&&(n.write=0),(i=n.write-d)>t.avail_out&&(i=t.avail_out),0!==i&&e==Tb&&(e=0),t.avail_out-=i,t.total_out+=i,t.next_out.set(n.win.subarray(d,d+i),r),r+=i,d+=i),t.next_out_index=r,n.read=d,e},n.proc=function(t,e){var y,b,h,Z,f,L,x,X;for(Z=t.next_in_index,f=t.avail_in,b=n.bitb,h=n.bitk,x=(L=n.write)<n.read?n.read-L-1:n.end-L;;){var I=void 0,G=void 0,K=void 0,W=void 0,v=void 0,S=void 0,w=void 0,g=void 0;switch(r){case 0:for(;3>h;){if(0===f)return n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e);e=0,f--,b|=(255&t.read_byte(Z++))<<h,h+=8}switch(u=1&(y=7&b),y>>>1){case 0:b>>>=3,b>>>=y=7&(h-=3),h-=y,r=1;break;case 1:I=[],G=[],K=[[]],W=[[]],Db.inflate_trees_fixed(I,G,K,W),o.init(I[0],G[0],K[0],0,W[0],0),b>>>=3,h-=3,r=6;break;case 2:b>>>=3,h-=3,r=3;break;case 3:return b>>>=3,h-=3,r=9,t.msg="invalid block type",e=Vb,n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e)}break;case 1:for(;32>h;){if(0===f)return n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e);e=0,f--,b|=(255&t.read_byte(Z++))<<h,h+=8}if((~b>>>16&65535)!=(65535&b))return r=9,t.msg="invalid stored block lengths",e=Vb,n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e);d=65535&b,b=h=0,r=0!==d?2:0!==u?7:0;break;case 2:if(0===f)return n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e);if(0===x&&(L==n.end&&0!==n.read&&(x=(L=0)<n.read?n.read-L-1:n.end-L),0===x&&(n.write=L,e=n.inflate_flush(t,e),x=(L=n.write)<n.read?n.read-L-1:n.end-L,L==n.end&&0!==n.read&&(x=(L=0)<n.read?n.read-L-1:n.end-L),0===x)))return n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e);if(e=0,(y=d)>f&&(y=f),y>x&&(y=x),n.win.set(t.read_buf(Z,y),L),Z+=y,f-=y,L+=y,x-=y,0!=(d-=y))break;r=0!==u?7:0;break;case 3:for(;14>h;){if(0===f)return n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e);e=0,f--,b|=(255&t.read_byte(Z++))<<h,h+=8}if(c=y=16383&b,(31&y)>29||(y>>5&31)>29)return r=9,t.msg="too many length or distance symbols",e=Vb,n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e);if(y=258+(31&y)+(y>>5&31),!i||i.length<y)i=[];else for(X=0;y>X;X++)i[X]=0;b>>>=14,h-=14,a=0,r=4;case 4:for(;4+(c>>>10)>a;){for(;3>h;){if(0===f)return n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e);e=0,f--,b|=(255&t.read_byte(Z++))<<h,h+=8}i[Nb[a++]]=7&b,b>>>=3,h-=3}for(;19>a;)i[Nb[a++]]=0;if(s[0]=7,0!=(y=p.inflate_trees_bits(i,s,l,m,t)))return(e=y)==Vb&&(i=null,r=9),n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e);a=0,r=5;case 5:for(;a<258+(31&(y=c))+(y>>5&31);){var Y=void 0,V=void 0;for(y=s[0];y>h;){if(0===f)return n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e);e=0,f--,b|=(255&t.read_byte(Z++))<<h,h+=8}if(y=m[3*(l[0]+(b&Hb[y]))+1],16>(V=m[3*(l[0]+(b&Hb[y]))+2]))b>>>=y,h-=y,i[a++]=V;else{for(X=18==V?7:V-14,Y=18==V?11:3;y+X>h;){if(0===f)return n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e);e=0,f--,b|=(255&t.read_byte(Z++))<<h,h+=8}if(h-=y,Y+=(b>>>=y)&Hb[X],b>>>=X,h-=X,(X=a)+Y>258+(31&(y=c))+(y>>5&31)||16==V&&1>X)return i=null,r=9,t.msg="invalid bit length repeat",e=Vb,n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e);V=16==V?i[X-1]:0;do{i[X++]=V}while(0!=--Y);a=X}}if(l[0]=-1,S=[],w=[],g=[],(v=[])[0]=9,S[0]=6,y=c,0!=(y=p.inflate_trees_dynamic(257+(31&y),1+(y>>5&31),i,v,S,w,g,m,t)))return y==Vb&&(i=null,r=9),e=y,n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e);o.init(v[0],S[0],m,w[0],m,g[0]),r=6;case 6:if(n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,1!=(e=o.proc(n,t,e)))return n.inflate_flush(t,e);if(e=0,o.free(t),Z=t.next_in_index,f=t.avail_in,b=n.bitb,h=n.bitk,x=(L=n.write)<n.read?n.read-L-1:n.end-L,0===u){r=0;break}r=7;case 7:if(n.write=L,e=n.inflate_flush(t,e),x=(L=n.write)<n.read?n.read-L-1:n.end-L,n.read!=n.write)return n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e);r=8;case 8:return e=1,n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e);case 9:return e=Vb,n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e);default:return e=Yb,n.bitb=b,n.bitk=h,t.avail_in=f,t.total_in+=Z-t.next_in_index,t.next_in_index=Z,n.write=L,n.inflate_flush(t,e)}}},n.free=function(t){n.reset(t,null),n.win=null,m=null},n.set_dictionary=function(t,e,i){n.win.set(t.subarray(e,e+i),0),n.read=n.write=i},n.sync_point=function(){return 1==r?1:0}}var zb=13,Fb=[0,0,255,255];function Eb(){var t=this;function e(t){return t&&t.istate?(t.total_in=t.total_out=0,t.msg=null,t.istate.mode=7,t.istate.blocks.reset(t,null),0):Yb}t.mode=0,t.method=0,t.was=[0],t.need=0,t.marker=0,t.wbits=0,t.inflateEnd=function(e){return t.blocks&&t.blocks.free(e),t.blocks=null,0},t.inflateInit=function(i,n){return i.msg=null,t.blocks=null,8>n||n>15?(t.inflateEnd(i),Yb):(t.wbits=n,i.istate.blocks=new jb(i,1<<n),e(i),0)},t.inflate=function(t,e){var i,n;if(!t||!t.istate||!t.next_in)return Yb;var r=t.istate;for(e=4==e?Tb:0,i=Tb;;)switch(r.mode){case 0:if(0===t.avail_in)return i;if(i=e,t.avail_in--,t.total_in++,8!=(15&(r.method=t.read_byte(t.next_in_index++)))){r.mode=zb,t.msg="unknown compression method",r.marker=5;break}if(8+(r.method>>4)>r.wbits){r.mode=zb,t.msg="invalid win size",r.marker=5;break}r.mode=1;case 1:if(0===t.avail_in)return i;if(i=e,t.avail_in--,t.total_in++,n=255&t.read_byte(t.next_in_index++),((r.method<<8)+n)%31!=0){r.mode=zb,t.msg="incorrect header check",r.marker=5;break}if(0==(32&n)){r.mode=7;break}r.mode=2;case 2:if(0===t.avail_in)return i;i=e,t.avail_in--,t.total_in++,r.need=(255&t.read_byte(t.next_in_index++))<<24&4278190080,r.mode=3;case 3:if(0===t.avail_in)return i;i=e,t.avail_in--,t.total_in++,r.need+=(255&t.read_byte(t.next_in_index++))<<16&16711680,r.mode=4;case 4:if(0===t.avail_in)return i;i=e,t.avail_in--,t.total_in++,r.need+=(255&t.read_byte(t.next_in_index++))<<8&65280,r.mode=5;case 5:return 0===t.avail_in?i:(i=e,t.avail_in--,t.total_in++,r.need+=255&t.read_byte(t.next_in_index++),r.mode=6,2);case 6:return r.mode=zb,t.msg="need dictionary",r.marker=0,Yb;case 7:if((i=r.blocks.proc(t,i))==Vb){r.mode=zb,r.marker=0;break}if(0==i&&(i=e),1!=i)return i;i=e,r.blocks.reset(t,r.was),r.mode=12;case 12:return t.avail_in=0,1;case zb:return Vb;default:return Yb}},t.inflateSetDictionary=function(t,e,i){var n=0,r=i;if(!t||!t.istate||6!=t.istate.mode)return Yb;var d=t.istate;return r<1<<d.wbits||(n=i-(r=(1<<d.wbits)-1)),d.blocks.set_dictionary(e,n,r),d.mode=7,0},t.inflateSync=function(t){var i,n,r,d,c;if(!t||!t.istate)return Yb;var a=t.istate;if(a.mode!=zb&&(a.mode=zb,a.marker=0),0===(i=t.avail_in))return Tb;for(n=t.next_in_index,r=a.marker;0!==i&&4>r;)t.read_byte(n)==Fb[r]?r++:r=0!==t.read_byte(n)?0:4-r,n++,i--;return t.total_in+=n-t.next_in_index,t.next_in_index=n,t.avail_in=i,a.marker=r,4!=r?Vb:(d=t.total_in,c=t.total_out,e(t),t.total_in=d,t.total_out=c,a.mode=7,0)},t.inflateSyncPoint=function(t){return t&&t.istate&&t.istate.blocks?t.istate.blocks.sync_point():Yb}}function Qb(){}Qb.prototype={inflateInit:function(t){var e=this;return e.istate=new Eb,t||(t=15),e.istate.inflateInit(e,t)},inflate:function(t){var e=this;return e.istate?e.istate.inflate(e,t):Yb},inflateEnd:function(){var t=this;if(!t.istate)return Yb;var e=t.istate.inflateEnd(t);return t.istate=null,e},inflateSync:function(){var t=this;return t.istate?t.istate.inflateSync(t):Yb},inflateSetDictionary:function(t,e){var i=this;return i.istate?i.istate.inflateSetDictionary(i,t,e):Yb},read_byte:function(t){return this.next_in[t]},read_buf:function(t,e){return this.next_in.subarray(t,t+e)}};var Ob=w,Bb=V,Ab=S,_b=md,qb=Cn,$b=T,th=_t,eh=$,ih=Object.assign,nh=Object.defineProperty,rh=z([].concat),dh=!ih||Ab((function(){if(Ob&&1!==ih({b:1},ih(nh({},"a",{enumerable:!0,get:function(){nh(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},i=Symbol(),n="abcdefghijklmnopqrst";return t[i]=7,n.split("").forEach((function(t){e[t]=t})),7!=ih({},t)[i]||_b(ih({},e)).join("")!=n}))?function(t){for(var e=th(t),i=arguments.length,n=1,r=qb.f,d=$b.f;i>n;)for(var c,a=eh(arguments[n++]),s=r?rh(_b(a),r(a)):_b(a),l=s.length,o=0;l>o;)c=s[o++],Ob&&!Bb(d,a,c)||(e[c]=a[c]);return e}:ih;or({target:"Object",stat:!0,arity:2,forced:Object.assign!==dh},{assign:dh});var ch={chunkSize:524288,maxWorkers:"undefined"!=typeof navigator&&navigator.hardwareConcurrency||2,terminateWorkerTimeout:5e3,useWebWorkers:!0,workerScripts:void 0},ah=Object.assign({},ch);function sh(){return ah}function lh(t){if(void 0!==t.baseURL&&(ah.baseURL=t.baseURL),void 0!==t.chunkSize&&(ah.chunkSize=t.chunkSize),void 0!==t.maxWorkers&&(ah.maxWorkers=t.maxWorkers),void 0!==t.terminateWorkerTimeout&&(ah.terminateWorkerTimeout=t.terminateWorkerTimeout),void 0!==t.useWebWorkers&&(ah.useWebWorkers=t.useWebWorkers),void 0!==t.Deflate&&(ah.Deflate=t.Deflate),void 0!==t.Inflate&&(ah.Inflate=t.Inflate),void 0!==t.workerScripts){if(t.workerScripts.deflate){if(!Array.isArray(t.workerScripts.deflate))throw Error("workerScripts.deflate must be an array");ah.workerScripts||(ah.workerScripts={}),ah.workerScripts.deflate=t.workerScripts.deflate}if(t.workerScripts.inflate){if(!Array.isArray(t.workerScripts.inflate))throw Error("workerScripts.inflate must be an array");ah.workerScripts||(ah.workerScripts={}),ah.workerScripts.inflate=t.workerScripts.inflate}}}var oh,uh,mh=Wr,ph=String,yh=function(t){if("Symbol"===mh(t))throw TypeError("Cannot convert a Symbol value to a string");return ph(t)},bh=Qe,hh=S,Zh=W.RegExp,fh=hh((function(){var t=Zh("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),Lh=fh||hh((function(){return!Zh("a","y").sticky})),xh={BROKEN_CARET:fh||hh((function(){var t=Zh("^r","gy");return t.lastIndex=2,null!=t.exec("str")})),MISSED_STICKY:Lh,UNSUPPORTED_Y:fh},Xh=S,Ih=W.RegExp,Gh=Xh((function(){var t=Ih(".","s");return!(t.dotAll&&t.exec("\n")&&"s"===t.flags)})),Kh=S,Wh=W.RegExp,vh=Kh((function(){var t=Wh("(?<a>b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$<a>c")})),Sh=V,wh=z,gh=yh,Yh=function(){var t=bh(this),e="";return t.hasIndices&&(e+="d"),t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.unicodeSets&&(e+="v"),t.sticky&&(e+="y"),e},Vh=xh,Th=Ut.exports,Hh=Td,kh=zi.get,Ph=Gh,Ch=vh,Jh=Th("native-string-replace","".replace),Mh=/t/.exec,Rh=Mh,Dh=wh("".charAt),Uh=wh("".indexOf),Nh=wh("".replace),jh=wh("".slice),zh=(uh=/b*/g,Sh(Mh,oh=/a/,"a"),Sh(Mh,uh,"a"),0!==oh.lastIndex||0!==uh.lastIndex),Fh=Vh.BROKEN_CARET,Eh=void 0!==/()??/.exec("")[1];(zh||Eh||Fh||Ph||Ch)&&(Rh=function(t){var e,i,n,r,d,c,a,s=this,l=kh(s),o=gh(t),u=l.raw;if(u)return u.lastIndex=s.lastIndex,e=Sh(Rh,u,o),s.lastIndex=u.lastIndex,e;var m=l.groups,p=Fh&&s.sticky,y=Sh(Yh,s),b=s.source,h=0,Z=o;if(p&&(y=Nh(y,"y",""),-1===Uh(y,"g")&&(y+="g"),Z=jh(o,s.lastIndex),s.lastIndex>0&&(!s.multiline||s.multiline&&"\n"!==Dh(o,s.lastIndex-1))&&(b="(?: "+b+")",Z=" "+Z,h++),i=RegExp("^(?:"+b+")",y)),Eh&&(i=RegExp("^"+b+"$(?!\\s)",y)),zh&&(n=s.lastIndex),r=Sh(Mh,p?i:s,Z),p?r?(r.input=jh(r.input,h),r[0]=jh(r[0],h),r.index=s.lastIndex,s.lastIndex+=r[0].length):s.lastIndex=0:zh&&r&&(s.lastIndex=s.global?r.index+r[0].length:n),Eh&&r&&r.length>1&&Sh(Jh,r[0],i,(function(){for(d=1;arguments.length-2>d;d++)void 0===arguments[d]&&(r[d]=void 0)})),r&&m)for(r.groups=c=Hh(null),d=0;d<m.length;d++)c[(a=m[d])[0]]=r[a[1]];return r});var Qh=Rh;or({target:"RegExp",proto:!0,forced:/./.exec!==Qh},{exec:Qh});var Oh=z,Bh=an,Ah=Qh,_h=S,qh=he,$h=ri,tZ=qh("species"),eZ=RegExp.prototype,iZ=function(t,e,i,n){var r=qh(t),d=!_h((function(){var e={};return e[r]=function(){return 7},7!=""[t](e)})),c=d&&!_h((function(){var e=!1,i=/a/;return"split"===t&&((i={}).constructor={},i.constructor[tZ]=function(){return i},i.flags="",i[r]=/./[r]),i.exec=function(){return e=!0,null},i[r](""),!e}));if(!d||!c||i){var a=Oh(/./[r]),s=e(r,""[t],(function(t,e,i,n,r){var c=Oh(t),s=e.exec;return s===Ah||s===eZ.exec?d&&!r?{done:!0,value:a(e,i,n)}:{done:!0,value:c(i,e,n)}:{done:!1}}));Bh(String.prototype,t,s[0]),Bh(eZ,r,s[1])}n&&$h(eZ[r],"sham",!0)},nZ=at,rZ=O,dZ=he("match"),cZ=function(t){var e;return nZ(t)&&(void 0!==(e=t[dZ])?!!e:"RegExp"==rZ(t))},aZ=z,sZ=mn,lZ=yh,oZ=et,uZ=aZ("".charAt),mZ=aZ("".charCodeAt),pZ=aZ("".slice),yZ=function(t){return function(e,i){var n,r,d=lZ(oZ(e)),c=sZ(i),a=d.length;return 0>c||c>=a?t?"":void 0:55296>(n=mZ(d,c))||n>56319||c+1===a||56320>(r=mZ(d,c+1))||r>57343?t?uZ(d,c):n:t?pZ(d,c,c+2):r-56320+(n-55296<<10)+65536}},bZ={codeAt:yZ(!1),charAt:yZ(!0)},hZ=bZ.charAt,ZZ=function(t,e,i){return e+(i?hZ(t,e).length:1)},fZ=V,LZ=Qe,xZ=dt,XZ=O,IZ=Qh,GZ=TypeError,KZ=function(t,e){var i=t.exec;if(xZ(i)){var n=fZ(i,t,e);return null!==n&&LZ(n),n}if("RegExp"===XZ(t))return fZ(IZ,t,e);throw GZ("RegExp#exec called on incompatible receiver")},WZ=ap,vZ=V,SZ=z,wZ=iZ,gZ=cZ,YZ=Qe,VZ=et,TZ=_s,HZ=ZZ,kZ=Ln,PZ=yh,CZ=Ct,JZ=za,MZ=KZ,RZ=Qh,DZ=S,UZ=xh.UNSUPPORTED_Y,NZ=4294967295,jZ=Math.min,zZ=[].push,FZ=SZ(/./.exec),EZ=SZ(zZ),QZ=SZ("".slice),OZ=!DZ((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var i="ab".split(t);return 2!==i.length||"a"!==i[0]||"b"!==i[1]}));wZ("split",(function(t,e,i){var n;return n="".split(/.?/).length?function(t,i){var n=PZ(VZ(this)),r=void 0===i?NZ:i>>>0;if(0===r)return[];if(void 0===t)return[n];if(!gZ(t))return vZ(e,n,t,r);for(var d,c,a,s=[],l=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),o=0,u=RegExp(t.source,l+"g");(d=vZ(RZ,u,n))&&((c=u.lastIndex)<=o||(EZ(s,QZ(n,o,d.index)),d.length>1&&d.index<n.length&&WZ(zZ,s,JZ(d,1)),a=d[0].length,o=c,r>s.length));)u.lastIndex===d.index&&u.lastIndex++;return o===n.length?!a&&FZ(u,"")||EZ(s,""):EZ(s,QZ(n,o)),s.length>r?JZ(s,0,r):s}:e,[function(e,i){var r=VZ(this),d=null==e?void 0:CZ(e,t);return d?vZ(d,e,r,i):vZ(n,PZ(r),e,i)},function(t,r){var d=YZ(this),c=PZ(t),a=i(n,d,c,r,n!==e);if(a.done)return a.value;var s=TZ(d,RegExp),l=d.unicode,o=(d.ignoreCase?"i":"")+(d.multiline?"m":"")+(d.unicode?"u":"")+(UZ?"g":"y"),u=new s(UZ?"^(?:"+d.source+")":d,o),m=void 0===r?NZ:r>>>0;if(0===m)return[];if(0===c.length)return null===MZ(u,c)?[c]:[];for(var p=0,y=0,b=[];y<c.length;){u.lastIndex=UZ?0:y;var h,Z=MZ(u,UZ?QZ(c,y):c);if(null===Z||(h=jZ(kZ(u.lastIndex+(UZ?y:0)),c.length))===p)y=HZ(c,y,l);else{if(EZ(b,QZ(c,p,y)),b.length===m)return b;for(var f=1;f<=Z.length-1;f++)if(EZ(b,Z[f]),b.length===m)return b;y=p=h}}return EZ(b,QZ(c,p)),b}]}),!OZ,UZ);var BZ={application:{"andrew-inset":"ez",annodex:"anx","atom+xml":"atom","atomcat+xml":"atomcat","atomserv+xml":"atomsrv",bbolin:"lin",cap:["cap","pcap"],"cu-seeme":"cu","davmount+xml":"davmount",dsptype:"tsp",ecmascript:["es","ecma"],futuresplash:"spl",hta:"hta","java-archive":"jar","java-serialized-object":"ser","java-vm":"class",javascript:"js",m3g:"m3g","mac-binhex40":"hqx",mathematica:["nb","ma","mb"],msaccess:"mdb",msword:["doc","dot"],mxf:"mxf",oda:"oda",ogg:"ogx",pdf:"pdf","pgp-keys":"key","pgp-signature":["asc","sig"],"pics-rules":"prf",postscript:["ps","ai","eps","epsi","epsf","eps2","eps3"],rar:"rar","rdf+xml":"rdf","rss+xml":"rss",rtf:"rtf",smil:["smi","smil"],"xhtml+xml":["xhtml","xht"],xml:["xml","xsl","xsd"],"xspf+xml":"xspf",zip:"zip","vnd.android.package-archive":"apk","vnd.cinderella":"cdy","vnd.google-earth.kml+xml":"kml","vnd.google-earth.kmz":"kmz","vnd.mozilla.xul+xml":"xul","vnd.ms-excel":["xls","xlb","xlt","xlm","xla","xlc","xlw"],"vnd.ms-pki.seccat":"cat","vnd.ms-pki.stl":"stl","vnd.ms-powerpoint":["ppt","pps","pot"],"vnd.oasis.opendocument.chart":"odc","vnd.oasis.opendocument.database":"odb","vnd.oasis.opendocument.formula":"odf","vnd.oasis.opendocument.graphics":"odg","vnd.oasis.opendocument.graphics-template":"otg","vnd.oasis.opendocument.image":"odi","vnd.oasis.opendocument.presentation":"odp","vnd.oasis.opendocument.presentation-template":"otp","vnd.oasis.opendocument.spreadsheet":"ods","vnd.oasis.opendocument.spreadsheet-template":"ots","vnd.oasis.opendocument.text":"odt","vnd.oasis.opendocument.text-master":"odm","vnd.oasis.opendocument.text-template":"ott","vnd.oasis.opendocument.text-web":"oth","vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx","vnd.openxmlformats-officedocument.spreadsheetml.template":"xltx","vnd.openxmlformats-officedocument.presentationml.presentation":"pptx","vnd.openxmlformats-officedocument.presentationml.slideshow":"ppsx","vnd.openxmlformats-officedocument.presentationml.template":"potx","vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","vnd.openxmlformats-officedocument.wordprocessingml.template":"dotx","vnd.smaf":"mmf","vnd.stardivision.calc":"sdc","vnd.stardivision.chart":"sds","vnd.stardivision.draw":"sda","vnd.stardivision.impress":"sdd","vnd.stardivision.math":["sdf","smf"],"vnd.stardivision.writer":["sdw","vor"],"vnd.stardivision.writer-global":"sgl","vnd.sun.xml.calc":"sxc","vnd.sun.xml.calc.template":"stc","vnd.sun.xml.draw":"sxd","vnd.sun.xml.draw.template":"std","vnd.sun.xml.impress":"sxi","vnd.sun.xml.impress.template":"sti","vnd.sun.xml.math":"sxm","vnd.sun.xml.writer":"sxw","vnd.sun.xml.writer.global":"sxg","vnd.sun.xml.writer.template":"stw","vnd.symbian.install":["sis","sisx"],"vnd.visio":["vsd","vst","vss","vsw"],"vnd.wap.wbxml":"wbxml","vnd.wap.wmlc":"wmlc","vnd.wap.wmlscriptc":"wmlsc","vnd.wordperfect":"wpd","vnd.wordperfect5.1":"wp5","x-123":"wk","x-7z-compressed":"7z","x-abiword":"abw","x-apple-diskimage":"dmg","x-bcpio":"bcpio","x-bittorrent":"torrent","x-cbr":["cbr","cba","cbt","cb7"],"x-cbz":"cbz","x-cdf":["cdf","cda"],"x-cdlink":"vcd","x-chess-pgn":"pgn","x-cpio":"cpio","x-csh":"csh","x-debian-package":["deb","udeb"],"x-director":["dcr","dir","dxr","cst","cct","cxt","w3d","fgd","swa"],"x-dms":"dms","x-doom":"wad","x-dvi":"dvi","x-httpd-eruby":"rhtml","x-font":"pcf.Z","x-freemind":"mm","x-gnumeric":"gnumeric","x-go-sgf":"sgf","x-graphing-calculator":"gcf","x-gtar":["gtar","taz"],"x-hdf":"hdf","x-httpd-php":["phtml","pht","php"],"x-httpd-php-source":"phps","x-httpd-php3":"php3","x-httpd-php3-preprocessed":"php3p","x-httpd-php4":"php4","x-httpd-php5":"php5","x-ica":"ica","x-info":"info","x-internet-signup":["ins","isp"],"x-iphone":"iii","x-iso9660-image":"iso","x-java-jnlp-file":"jnlp","x-jmol":"jmz","x-killustrator":"kil","x-koan":["skp","skd","skt","skm"],"x-kpresenter":["kpr","kpt"],"x-kword":["kwd","kwt"],"x-latex":"latex","x-lha":"lha","x-lyx":"lyx","x-lzh":"lzh","x-lzx":"lzx","x-maker":["frm","maker","frame","fm","fb","book","fbdoc"],"x-ms-wmd":"wmd","x-ms-wmz":"wmz","x-msdos-program":["com","exe","bat","dll"],"x-msi":"msi","x-netcdf":["nc","cdf"],"x-ns-proxy-autoconfig":["pac","dat"],"x-nwc":"nwc","x-object":"o","x-oz-application":"oza","x-pkcs7-certreqresp":"p7r","x-python-code":["pyc","pyo"],"x-qgis":["qgs","shp","shx"],"x-quicktimeplayer":"qtl","x-redhat-package-manager":"rpm","x-ruby":"rb","x-sh":"sh","x-shar":"shar","x-shockwave-flash":["swf","swfl"],"x-silverlight":"scr","x-stuffit":"sit","x-sv4cpio":"sv4cpio","x-sv4crc":"sv4crc","x-tar":"tar","x-tcl":"tcl","x-tex-gf":"gf","x-tex-pk":"pk","x-texinfo":["texinfo","texi"],"x-trash":["~","%","bak","old","sik"],"x-troff":["t","tr","roff"],"x-troff-man":"man","x-troff-me":"me","x-troff-ms":"ms","x-ustar":"ustar","x-wais-source":"src","x-wingz":"wz","x-x509-ca-cert":["crt","der","cer"],"x-xcf":"xcf","x-xfig":"fig","x-xpinstall":"xpi",applixware:"aw","atomsvc+xml":"atomsvc","ccxml+xml":"ccxml","cdmi-capability":"cdmia","cdmi-container":"cdmic","cdmi-domain":"cdmid","cdmi-object":"cdmio","cdmi-queue":"cdmiq","docbook+xml":"dbk","dssc+der":"dssc","dssc+xml":"xdssc","emma+xml":"emma","epub+zip":"epub",exi:"exi","font-tdpfr":"pfr","gml+xml":"gml","gpx+xml":"gpx",gxf:"gxf",hyperstudio:"stk","inkml+xml":["ink","inkml"],ipfix:"ipfix",json:"json","jsonml+json":"jsonml","lost+xml":"lostxml","mads+xml":"mads",marc:"mrc","marcxml+xml":"mrcx","mathml+xml":"mathml",mbox:"mbox","mediaservercontrol+xml":"mscml","metalink+xml":"metalink","metalink4+xml":"meta4","mets+xml":"mets","mods+xml":"mods",mp21:["m21","mp21"],mp4:"mp4s","oebps-package+xml":"opf","omdoc+xml":"omdoc",onenote:["onetoc","onetoc2","onetmp","onepkg"],oxps:"oxps","patch-ops-error+xml":"xer","pgp-encrypted":"pgp",pkcs10:"p10","pkcs7-mime":["p7m","p7c"],"pkcs7-signature":"p7s",pkcs8:"p8","pkix-attr-cert":"ac","pkix-crl":"crl","pkix-pkipath":"pkipath",pkixcmp:"pki","pls+xml":"pls","prs.cww":"cww","pskc+xml":"pskcxml","reginfo+xml":"rif","relax-ng-compact-syntax":"rnc","resource-lists+xml":"rl","resource-lists-diff+xml":"rld","rls-services+xml":"rs","rpki-ghostbusters":"gbr","rpki-manifest":"mft","rpki-roa":"roa","rsd+xml":"rsd","sbml+xml":"sbml","scvp-cv-request":"scq","scvp-cv-response":"scs","scvp-vp-request":"spq","scvp-vp-response":"spp",sdp:"sdp","set-payment-initiation":"setpay","set-registration-initiation":"setreg","shf+xml":"shf","sparql-query":"rq","sparql-results+xml":"srx",srgs:"gram","srgs+xml":"grxml","sru+xml":"sru","ssdl+xml":"ssdl","ssml+xml":"ssml","tei+xml":["tei","teicorpus"],"thraud+xml":"tfi","timestamped-data":"tsd","vnd.3gpp.pic-bw-large":"plb","vnd.3gpp.pic-bw-small":"psb","vnd.3gpp.pic-bw-var":"pvb","vnd.3gpp2.tcap":"tcap","vnd.3m.post-it-notes":"pwn","vnd.accpac.simply.aso":"aso","vnd.accpac.simply.imp":"imp","vnd.acucobol":"acu","vnd.acucorp":["atc","acutc"],"vnd.adobe.air-application-installer-package+zip":"air","vnd.adobe.formscentral.fcdt":"fcdt","vnd.adobe.fxp":["fxp","fxpl"],"vnd.adobe.xdp+xml":"xdp","vnd.adobe.xfdf":"xfdf","vnd.ahead.space":"ahead","vnd.airzip.filesecure.azf":"azf","vnd.airzip.filesecure.azs":"azs","vnd.amazon.ebook":"azw","vnd.americandynamics.acc":"acc","vnd.amiga.ami":"ami","vnd.anser-web-certificate-issue-initiation":"cii","vnd.anser-web-funds-transfer-initiation":"fti","vnd.antix.game-component":"atx","vnd.apple.installer+xml":"mpkg","vnd.apple.mpegurl":"m3u8","vnd.aristanetworks.swi":"swi","vnd.astraea-software.iota":"iota","vnd.audiograph":"aep","vnd.blueice.multipass":"mpm","vnd.bmi":"bmi","vnd.businessobjects":"rep","vnd.chemdraw+xml":"cdxml","vnd.chipnuts.karaoke-mmd":"mmd","vnd.claymore":"cla","vnd.cloanto.rp9":"rp9","vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"vnd.cluetrust.cartomobile-config":"c11amc","vnd.cluetrust.cartomobile-config-pkg":"c11amz","vnd.commonspace":"csp","vnd.contact.cmsg":"cdbcmsg","vnd.cosmocaller":"cmc","vnd.crick.clicker":"clkx","vnd.crick.clicker.keyboard":"clkk","vnd.crick.clicker.palette":"clkp","vnd.crick.clicker.template":"clkt","vnd.crick.clicker.wordbank":"clkw","vnd.criticaltools.wbs+xml":"wbs","vnd.ctc-posml":"pml","vnd.cups-ppd":"ppd","vnd.curl.car":"car","vnd.curl.pcurl":"pcurl","vnd.dart":"dart","vnd.data-vision.rdz":"rdz","vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"vnd.dece.ttml+xml":["uvt","uvvt"],"vnd.dece.unspecified":["uvx","uvvx"],"vnd.dece.zip":["uvz","uvvz"],"vnd.denovo.fcselayout-link":"fe_launch","vnd.dna":"dna","vnd.dolby.mlp":"mlp","vnd.dpgraph":"dpg","vnd.dreamfactory":"dfac","vnd.ds-keypoint":"kpxx","vnd.dvb.ait":"ait","vnd.dvb.service":"svc","vnd.dynageo":"geo","vnd.ecowin.chart":"mag","vnd.enliven":"nml","vnd.epson.esf":"esf","vnd.epson.msf":"msf","vnd.epson.quickanime":"qam","vnd.epson.salt":"slt","vnd.epson.ssf":"ssf","vnd.eszigno3+xml":["es3","et3"],"vnd.ezpix-album":"ez2","vnd.ezpix-package":"ez3","vnd.fdf":"fdf","vnd.fdsn.mseed":"mseed","vnd.fdsn.seed":["seed","dataless"],"vnd.flographit":"gph","vnd.fluxtime.clip":"ftc","vnd.framemaker":["fm","frame","maker","book"],"vnd.frogans.fnc":"fnc","vnd.frogans.ltf":"ltf","vnd.fsc.weblaunch":"fsc","vnd.fujitsu.oasys":"oas","vnd.fujitsu.oasys2":"oa2","vnd.fujitsu.oasys3":"oa3","vnd.fujitsu.oasysgp":"fg5","vnd.fujitsu.oasysprs":"bh2","vnd.fujixerox.ddd":"ddd","vnd.fujixerox.docuworks":"xdw","vnd.fujixerox.docuworks.binder":"xbd","vnd.fuzzysheet":"fzs","vnd.genomatix.tuxedo":"txd","vnd.geogebra.file":"ggb","vnd.geogebra.tool":"ggt","vnd.geometry-explorer":["gex","gre"],"vnd.geonext":"gxt","vnd.geoplan":"g2w","vnd.geospace":"g3w","vnd.gmx":"gmx","vnd.grafeq":["gqf","gqs"],"vnd.groove-account":"gac","vnd.groove-help":"ghf","vnd.groove-identity-message":"gim","vnd.groove-injector":"grv","vnd.groove-tool-message":"gtm","vnd.groove-tool-template":"tpl","vnd.groove-vcard":"vcg","vnd.hal+xml":"hal","vnd.handheld-entertainment+xml":"zmm","vnd.hbci":"hbci","vnd.hhe.lesson-player":"les","vnd.hp-hpgl":"hpgl","vnd.hp-hpid":"hpid","vnd.hp-hps":"hps","vnd.hp-jlyt":"jlt","vnd.hp-pcl":"pcl","vnd.hp-pclxl":"pclxl","vnd.hydrostatix.sof-data":"sfd-hdstx","vnd.ibm.minipay":"mpy","vnd.ibm.modcap":["afp","listafp","list3820"],"vnd.ibm.rights-management":"irm","vnd.ibm.secure-container":"sc","vnd.iccprofile":["icc","icm"],"vnd.igloader":"igl","vnd.immervision-ivp":"ivp","vnd.immervision-ivu":"ivu","vnd.insors.igm":"igm","vnd.intercon.formnet":["xpw","xpx"],"vnd.intergeo":"i2g","vnd.intu.qbo":"qbo","vnd.intu.qfx":"qfx","vnd.ipunplugged.rcprofile":"rcprofile","vnd.irepository.package+xml":"irp","vnd.is-xpr":"xpr","vnd.isac.fcs":"fcs","vnd.jam":"jam","vnd.jcp.javame.midlet-rms":"rms","vnd.jisp":"jisp","vnd.joost.joda-archive":"joda","vnd.kahootz":["ktz","ktr"],"vnd.kde.karbon":"karbon","vnd.kde.kchart":"chrt","vnd.kde.kformula":"kfo","vnd.kde.kivio":"flw","vnd.kde.kontour":"kon","vnd.kde.kpresenter":["kpr","kpt"],"vnd.kde.kspread":"ksp","vnd.kde.kword":["kwd","kwt"],"vnd.kenameaapp":"htke","vnd.kidspiration":"kia","vnd.kinar":["kne","knp"],"vnd.koan":["skp","skd","skt","skm"],"vnd.kodak-descriptor":"sse","vnd.las.las+xml":"lasxml","vnd.llamagraphics.life-balance.desktop":"lbd","vnd.llamagraphics.life-balance.exchange+xml":"lbe","vnd.lotus-1-2-3":"123","vnd.lotus-approach":"apr","vnd.lotus-freelance":"pre","vnd.lotus-notes":"nsf","vnd.lotus-organizer":"org","vnd.lotus-screencam":"scm","vnd.lotus-wordpro":"lwp","vnd.macports.portpkg":"portpkg","vnd.mcd":"mcd","vnd.medcalcdata":"mc1","vnd.mediastation.cdkey":"cdkey","vnd.mfer":"mwf","vnd.mfmp":"mfm","vnd.micrografx.flo":"flo","vnd.micrografx.igx":"igx","vnd.mif":"mif","vnd.mobius.daf":"daf","vnd.mobius.dis":"dis","vnd.mobius.mbk":"mbk","vnd.mobius.mqy":"mqy","vnd.mobius.msl":"msl","vnd.mobius.plc":"plc","vnd.mobius.txf":"txf","vnd.mophun.application":"mpn","vnd.mophun.certificate":"mpc","vnd.ms-artgalry":"cil","vnd.ms-cab-compressed":"cab","vnd.ms-excel.addin.macroenabled.12":"xlam","vnd.ms-excel.sheet.binary.macroenabled.12":"xlsb","vnd.ms-excel.sheet.macroenabled.12":"xlsm","vnd.ms-excel.template.macroenabled.12":"xltm","vnd.ms-fontobject":"eot","vnd.ms-htmlhelp":"chm","vnd.ms-ims":"ims","vnd.ms-lrm":"lrm","vnd.ms-officetheme":"thmx","vnd.ms-powerpoint.addin.macroenabled.12":"ppam","vnd.ms-powerpoint.presentation.macroenabled.12":"pptm","vnd.ms-powerpoint.slide.macroenabled.12":"sldm","vnd.ms-powerpoint.slideshow.macroenabled.12":"ppsm","vnd.ms-powerpoint.template.macroenabled.12":"potm","vnd.ms-project":["mpp","mpt"],"vnd.ms-word.document.macroenabled.12":"docm","vnd.ms-word.template.macroenabled.12":"dotm","vnd.ms-works":["wps","wks","wcm","wdb"],"vnd.ms-wpl":"wpl","vnd.ms-xpsdocument":"xps","vnd.mseq":"mseq","vnd.musician":"mus","vnd.muvee.style":"msty","vnd.mynfc":"taglet","vnd.neurolanguage.nlu":"nlu","vnd.nitf":["ntf","nitf"],"vnd.noblenet-directory":"nnd","vnd.noblenet-sealer":"nns","vnd.noblenet-web":"nnw","vnd.nokia.n-gage.data":"ngdat","vnd.nokia.n-gage.symbian.install":"n-gage","vnd.nokia.radio-preset":"rpst","vnd.nokia.radio-presets":"rpss","vnd.novadigm.edm":"edm","vnd.novadigm.edx":"edx","vnd.novadigm.ext":"ext","vnd.oasis.opendocument.chart-template":"otc","vnd.oasis.opendocument.formula-template":"odft","vnd.oasis.opendocument.image-template":"oti","vnd.olpc-sugar":"xo","vnd.oma.dd2+xml":"dd2","vnd.openofficeorg.extension":"oxt","vnd.openxmlformats-officedocument.presentationml.slide":"sldx","vnd.osgeo.mapguide.package":"mgp","vnd.osgi.dp":"dp","vnd.osgi.subsystem":"esa","vnd.palm":["pdb","pqa","oprc"],"vnd.pawaafile":"paw","vnd.pg.format":"str","vnd.pg.osasli":"ei6","vnd.picsel":"efif","vnd.pmi.widget":"wg","vnd.pocketlearn":"plf","vnd.powerbuilder6":"pbd","vnd.previewsystems.box":"box","vnd.proteus.magazine":"mgz","vnd.publishare-delta-tree":"qps","vnd.pvi.ptid1":"ptid","vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"vnd.realvnc.bed":"bed","vnd.recordare.musicxml":"mxl","vnd.recordare.musicxml+xml":"musicxml","vnd.rig.cryptonote":"cryptonote","vnd.rn-realmedia":"rm","vnd.rn-realmedia-vbr":"rmvb","vnd.route66.link66+xml":"link66","vnd.sailingtracker.track":"st","vnd.seemail":"see","vnd.sema":"sema","vnd.semd":"semd","vnd.semf":"semf","vnd.shana.informed.formdata":"ifm","vnd.shana.informed.formtemplate":"itp","vnd.shana.informed.interchange":"iif","vnd.shana.informed.package":"ipk","vnd.simtech-mindmapper":["twd","twds"],"vnd.smart.teacher":"teacher","vnd.solent.sdkm+xml":["sdkm","sdkd"],"vnd.spotfire.dxp":"dxp","vnd.spotfire.sfs":"sfs","vnd.stepmania.package":"smzip","vnd.stepmania.stepchart":"sm","vnd.sus-calendar":["sus","susp"],"vnd.svd":"svd","vnd.syncml+xml":"xsm","vnd.syncml.dm+wbxml":"bdm","vnd.syncml.dm+xml":"xdm","vnd.tao.intent-module-archive":"tao","vnd.tcpdump.pcap":["pcap","cap","dmp"],"vnd.tmobile-livetv":"tmo","vnd.trid.tpt":"tpt","vnd.triscape.mxs":"mxs","vnd.trueapp":"tra","vnd.ufdl":["ufd","ufdl"],"vnd.uiq.theme":"utz","vnd.umajin":"umj","vnd.unity":"unityweb","vnd.uoml+xml":"uoml","vnd.vcx":"vcx","vnd.visionary":"vis","vnd.vsf":"vsf","vnd.webturbo":"wtb","vnd.wolfram.player":"nbp","vnd.wqd":"wqd","vnd.wt.stf":"stf","vnd.xara":"xar","vnd.xfdl":"xfdl","vnd.yamaha.hv-dic":"hvd","vnd.yamaha.hv-script":"hvs","vnd.yamaha.hv-voice":"hvp","vnd.yamaha.openscoreformat":"osf","vnd.yamaha.openscoreformat.osfpvg+xml":"osfpvg","vnd.yamaha.smaf-audio":"saf","vnd.yamaha.smaf-phrase":"spf","vnd.yellowriver-custom-menu":"cmp","vnd.zul":["zir","zirz"],"vnd.zzazz.deck+xml":"zaz","voicexml+xml":"vxml",widget:"wgt",winhlp:"hlp","wsdl+xml":"wsdl","wspolicy+xml":"wspolicy","x-ace-compressed":"ace","x-authorware-bin":["aab","x32","u32","vox"],"x-authorware-map":"aam","x-authorware-seg":"aas","x-blorb":["blb","blorb"],"x-bzip":"bz","x-bzip2":["bz2","boz"],"x-cfs-compressed":"cfs","x-chat":"chat","x-conference":"nsc","x-dgc-compressed":"dgc","x-dtbncx+xml":"ncx","x-dtbook+xml":"dtb","x-dtbresource+xml":"res","x-eva":"eva","x-font-bdf":"bdf","x-font-ghostscript":"gsf","x-font-linux-psf":"psf","x-font-otf":"otf","x-font-pcf":"pcf","x-font-snf":"snf","x-font-ttf":["ttf","ttc"],"x-font-type1":["pfa","pfb","pfm","afm"],"x-font-woff":"woff","x-freearc":"arc","x-gca-compressed":"gca","x-glulx":"ulx","x-gramps-xml":"gramps","x-install-instructions":"install","x-lzh-compressed":["lzh","lha"],"x-mie":"mie","x-mobipocket-ebook":["prc","mobi"],"x-ms-application":"application","x-ms-shortcut":"lnk","x-ms-xbap":"xbap","x-msbinder":"obd","x-mscardfile":"crd","x-msclip":"clp","x-msdownload":["exe","dll","com","bat","msi"],"x-msmediaview":["mvb","m13","m14"],"x-msmetafile":["wmf","wmz","emf","emz"],"x-msmoney":"mny","x-mspublisher":"pub","x-msschedule":"scd","x-msterminal":"trm","x-mswrite":"wri","x-nzb":"nzb","x-pkcs12":["p12","pfx"],"x-pkcs7-certificates":["p7b","spc"],"x-research-info-systems":"ris","x-silverlight-app":"xap","x-sql":"sql","x-stuffitx":"sitx","x-subrip":"srt","x-t3vm-image":"t3","x-tads":"gam","x-tex":"tex","x-tex-tfm":"tfm","x-tgif":"obj","x-xliff+xml":"xlf","x-xz":"xz","x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"xaml+xml":"xaml","xcap-diff+xml":"xdf","xenc+xml":"xenc","xml-dtd":"dtd","xop+xml":"xop","xproc+xml":"xpl","xslt+xml":"xslt","xv+xml":["mxml","xhvml","xvml","xvm"],yang:"yang","yin+xml":"yin",envoy:"evy",fractals:"fif","internet-property-stream":"acx",olescript:"axs","vnd.ms-outlook":"msg","vnd.ms-pkicertstore":"sst","x-compress":"z","x-compressed":"tgz","x-gzip":"gz","x-perfmon":["pma","pmc","pml","pmr","pmw"],"x-pkcs7-mime":["p7c","p7m"],"ynd.ms-pkipko":"pko"},audio:{amr:"amr","amr-wb":"awb",annodex:"axa",basic:["au","snd"],flac:"flac",midi:["mid","midi","kar","rmi"],mpeg:["mpga","mpega","mp2","mp3","m4a","mp2a","m2a","m3a"],mpegurl:"m3u",ogg:["oga","ogg","spx"],"prs.sid":"sid","x-aiff":["aif","aiff","aifc"],"x-gsm":"gsm","x-ms-wma":"wma","x-ms-wax":"wax","x-pn-realaudio":"ram","x-realaudio":"ra","x-sd2":"sd2","x-wav":"wav",adpcm:"adp",mp4:"mp4a",s3m:"s3m",silk:"sil","vnd.dece.audio":["uva","uvva"],"vnd.digital-winds":"eol","vnd.dra":"dra","vnd.dts":"dts","vnd.dts.hd":"dtshd","vnd.lucent.voice":"lvp","vnd.ms-playready.media.pya":"pya","vnd.nuera.ecelp4800":"ecelp4800","vnd.nuera.ecelp7470":"ecelp7470","vnd.nuera.ecelp9600":"ecelp9600","vnd.rip":"rip",webm:"weba","x-aac":"aac","x-caf":"caf","x-matroska":"mka","x-pn-realaudio-plugin":"rmp",xm:"xm",mid:["mid","rmi"]},chemical:{"x-alchemy":"alc","x-cache":["cac","cache"],"x-cache-csf":"csf","x-cactvs-binary":["cbin","cascii","ctab"],"x-cdx":"cdx","x-chem3d":"c3d","x-cif":"cif","x-cmdf":"cmdf","x-cml":"cml","x-compass":"cpa","x-crossfire":"bsd","x-csml":["csml","csm"],"x-ctx":"ctx","x-cxf":["cxf","cef"],"x-embl-dl-nucleotide":["emb","embl"],"x-gamess-input":["inp","gam","gamin"],"x-gaussian-checkpoint":["fch","fchk"],"x-gaussian-cube":"cub","x-gaussian-input":["gau","gjc","gjf"],"x-gaussian-log":"gal","x-gcg8-sequence":"gcg","x-genbank":"gen","x-hin":"hin","x-isostar":["istr","ist"],"x-jcamp-dx":["jdx","dx"],"x-kinemage":"kin","x-macmolecule":"mcm","x-macromodel-input":["mmd","mmod"],"x-mdl-molfile":"mol","x-mdl-rdfile":"rd","x-mdl-rxnfile":"rxn","x-mdl-sdfile":["sd","sdf"],"x-mdl-tgf":"tgf","x-mmcif":"mcif","x-mol2":"mol2","x-molconn-Z":"b","x-mopac-graph":"gpt","x-mopac-input":["mop","mopcrt","mpc","zmt"],"x-mopac-out":"moo","x-ncbi-asn1":"asn","x-ncbi-asn1-ascii":["prt","ent"],"x-ncbi-asn1-binary":["val","aso"],"x-pdb":["pdb","ent"],"x-rosdal":"ros","x-swissprot":"sw","x-vamas-iso14976":"vms","x-vmd":"vmd","x-xtel":"xtel","x-xyz":"xyz"},image:{gif:"gif",ief:"ief",jpeg:["jpeg","jpg","jpe"],pcx:"pcx",png:"png","svg+xml":["svg","svgz"],tiff:["tiff","tif"],"vnd.djvu":["djvu","djv"],"vnd.wap.wbmp":"wbmp","x-canon-cr2":"cr2","x-canon-crw":"crw","x-cmu-raster":"ras","x-coreldraw":"cdr","x-coreldrawpattern":"pat","x-coreldrawtemplate":"cdt","x-corelphotopaint":"cpt","x-epson-erf":"erf","x-icon":"ico","x-jg":"art","x-jng":"jng","x-nikon-nef":"nef","x-olympus-orf":"orf","x-photoshop":"psd","x-portable-anymap":"pnm","x-portable-bitmap":"pbm","x-portable-graymap":"pgm","x-portable-pixmap":"ppm","x-rgb":"rgb","x-xbitmap":"xbm","x-xpixmap":"xpm","x-xwindowdump":"xwd",bmp:"bmp",cgm:"cgm",g3fax:"g3",ktx:"ktx","prs.btif":"btif",sgi:"sgi","vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"vnd.dwg":"dwg","vnd.dxf":"dxf","vnd.fastbidsheet":"fbs","vnd.fpx":"fpx","vnd.fst":"fst","vnd.fujixerox.edmics-mmr":"mmr","vnd.fujixerox.edmics-rlc":"rlc","vnd.ms-modi":"mdi","vnd.ms-photo":"wdp","vnd.net-fpx":"npx","vnd.xiff":"xif",webp:"webp","x-3ds":"3ds","x-cmx":"cmx","x-freehand":["fh","fhc","fh4","fh5","fh7"],"x-pict":["pic","pct"],"x-tga":"tga","cis-cod":"cod",pipeg:"jfif"},message:{rfc822:["eml","mime","mht","mhtml","nws"]},model:{iges:["igs","iges"],mesh:["msh","mesh","silo"],vrml:["wrl","vrml"],"x3d+vrml":["x3dv","x3dvz"],"x3d+xml":["x3d","x3dz"],"x3d+binary":["x3db","x3dbz"],"vnd.collada+xml":"dae","vnd.dwf":"dwf","vnd.gdl":"gdl","vnd.gtw":"gtw","vnd.mts":"mts","vnd.vtu":"vtu"},text:{"cache-manifest":["manifest","appcache"],calendar:["ics","icz","ifb"],css:"css",csv:"csv",h323:"323",html:["html","htm","shtml","stm"],iuls:"uls",mathml:"mml",plain:["txt","text","brf","conf","def","list","log","in","bas"],richtext:"rtx",scriptlet:["sct","wsc"],texmacs:["tm","ts"],"tab-separated-values":"tsv","vnd.sun.j2me.app-descriptor":"jad","vnd.wap.wml":"wml","vnd.wap.wmlscript":"wmls","x-bibtex":"bib","x-boo":"boo","x-c++hdr":["h++","hpp","hxx","hh"],"x-c++src":["c++","cpp","cxx","cc"],"x-component":"htc","x-dsrc":"d","x-diff":["diff","patch"],"x-haskell":"hs","x-java":"java","x-literate-haskell":"lhs","x-moc":"moc","x-pascal":["p","pas"],"x-pcs-gcd":"gcd","x-perl":["pl","pm"],"x-python":"py","x-scala":"scala","x-setext":"etx","x-tcl":["tcl","tk"],"x-tex":["tex","ltx","sty","cls"],"x-vcalendar":"vcs","x-vcard":"vcf",n3:"n3","prs.lines.tag":"dsc",sgml:["sgml","sgm"],troff:["t","tr","roff","man","me","ms"],turtle:"ttl","uri-list":["uri","uris","urls"],vcard:"vcard","vnd.curl":"curl","vnd.curl.dcurl":"dcurl","vnd.curl.scurl":"scurl","vnd.curl.mcurl":"mcurl","vnd.dvb.subtitle":"sub","vnd.fly":"fly","vnd.fmi.flexstor":"flx","vnd.graphviz":"gv","vnd.in3d.3dml":"3dml","vnd.in3d.spot":"spot","x-asm":["s","asm"],"x-c":["c","cc","cxx","cpp","h","hh","dic"],"x-fortran":["f","for","f77","f90"],"x-opml":"opml","x-nfo":"nfo","x-sfv":"sfv","x-uuencode":"uu",webviewhtml:"htt"},video:{avif:".avif","3gpp":"3gp",annodex:"axv",dl:"dl",dv:["dif","dv"],fli:"fli",gl:"gl",mpeg:["mpeg","mpg","mpe","m1v","m2v","mp2","mpa","mpv2"],mp4:["mp4","mp4v","mpg4"],quicktime:["qt","mov"],ogg:"ogv","vnd.mpegurl":["mxu","m4u"],"x-flv":"flv","x-la-asf":["lsf","lsx"],"x-mng":"mng","x-ms-asf":["asf","asx","asr"],"x-ms-wm":"wm","x-ms-wmv":"wmv","x-ms-wmx":"wmx","x-ms-wvx":"wvx","x-msvideo":"avi","x-sgi-movie":"movie","x-matroska":["mpv","mkv","mk3d","mks"],"3gpp2":"3g2",h261:"h261",h263:"h263",h264:"h264",jpeg:"jpgv",jpm:["jpm","jpgm"],mj2:["mj2","mjp2"],"vnd.dece.hd":["uvh","uvvh"],"vnd.dece.mobile":["uvm","uvvm"],"vnd.dece.pd":["uvp","uvvp"],"vnd.dece.sd":["uvs","uvvs"],"vnd.dece.video":["uvv","uvvv"],"vnd.dvb.file":"dvb","vnd.fvt":"fvt","vnd.ms-playready.media.pyv":"pyv","vnd.uvvu.mp4":["uvu","uvvu"],"vnd.vivo":"viv",webm:"webm","x-f4v":"f4v","x-m4v":"m4v","x-ms-vob":"vob","x-smv":"smv"},"x-conference":{"x-cooltalk":"ice"},"x-world":{"x-vrml":["vrm","vrml","wrl","flr","wrz","xaf","xof"]}},AZ=function(){var t={};for(var e in BZ)if(BZ.hasOwnProperty(e))for(var i in BZ[e])if(BZ[e].hasOwnProperty(i)){var n=BZ[e][i];if("string"==typeof n)t[n]=e+"/"+i;else for(var r=0;r<n.length;r++)t[n[r]]=e+"/"+i}return t}(),_Z=or,qZ=$r.find,$Z=Md,tf="find",ef=!0;tf in[]&&[,].find((function(){ef=!1})),_Z({target:"Array",proto:!0,forced:ef},{find:function(t){return qZ(this,t,arguments.length>1?arguments[1]:void 0)}}),$Z(tf);var nf,rf,df,cf,af="process"==O(W.process),sf=TypeError,lf=function(t,e){if(e>t)throw sf("Not enough arguments");return t},of=/(?:ipad|iphone|ipod).*applewebkit/i.test(pt),uf=W,mf=ap,pf=yr,yf=dt,bf=te,hf=S,Zf=xd,ff=$p,Lf=Ye,xf=lf,Xf=of,If=af,Gf=uf.setImmediate,Kf=uf.clearImmediate,Wf=uf.process,vf=uf.Dispatch,Sf=uf.Function,wf=uf.MessageChannel,gf=uf.String,Yf=0,Vf={};try{nf=uf.location}catch(t){}var Tf=function(t){if(bf(Vf,t)){var e=Vf[t];delete Vf[t],e()}},Hf=function(t){return function(){Tf(t)}},kf=function(t){Tf(t.data)},Pf=function(t){uf.postMessage(gf(t),nf.protocol+"//"+nf.host)};Gf&&Kf||(Gf=function(t){xf(arguments.length,1);var e=yf(t)?t:Sf(t),i=ff(arguments,1);return Vf[++Yf]=function(){mf(e,void 0,i)},rf(Yf),Yf},Kf=function(t){delete Vf[t]},If?rf=function(t){Wf.nextTick(Hf(t))}:vf&&vf.now?rf=function(t){vf.now(Hf(t))}:wf&&!Xf?(cf=(df=new wf).port2,df.port1.onmessage=kf,rf=pf(cf.postMessage,cf)):uf.addEventListener&&yf(uf.postMessage)&&!uf.importScripts&&nf&&"file:"!==nf.protocol&&!hf(Pf)?(rf=Pf,uf.addEventListener("message",kf,!1)):rf="onreadystatechange"in Lf("script")?function(t){Zf.appendChild(Lf("script")).onreadystatechange=function(){Zf.removeChild(this),Tf(t)}}:function(t){setTimeout(Hf(t),0)});var Cf,Jf,Mf,Rf,Df,Uf,Nf,jf,zf={set:Gf,clear:Kf},Ff=W,Ef=/ipad|iphone|ipod/i.test(pt)&&void 0!==Ff.Pebble,Qf=/web0s(?!.*chrome)/i.test(pt),Of=W,Bf=yr,Af=v.f,_f=zf.set,qf=of,$f=Ef,tL=Qf,eL=af,iL=Of.MutationObserver||Of.WebKitMutationObserver,nL=Of.document,rL=Of.process,dL=Of.Promise,cL=Af(Of,"queueMicrotask"),aL=cL&&cL.value;aL||(Cf=function(){var t,e;for(eL&&(t=rL.domain)&&t.exit();Jf;){e=Jf.fn,Jf=Jf.next;try{e()}catch(t){throw Jf?Rf():Mf=void 0,t}}Mf=void 0,t&&t.enter()},qf||eL||tL||!iL||!nL?!$f&&dL&&dL.resolve?((Nf=dL.resolve(void 0)).constructor=dL,jf=Bf(Nf.then,Nf),Rf=function(){jf(Cf)}):eL?Rf=function(){rL.nextTick(Cf)}:(_f=Bf(_f,Of),Rf=function(){_f(Cf)}):(Df=!0,Uf=nL.createTextNode(""),new iL(Cf).observe(Uf,{characterData:!0}),Rf=function(){Uf.data=Df=!Df}));var sL=aL||function(t){var e={fn:t,next:void 0};Mf&&(Mf.next=e),Jf||(Jf=e,Rf()),Mf=e},lL=W,oL=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},uL=function(){this.head=null,this.tail=null};uL.prototype={add:function(t){var e={item:t,next:null};this.head?this.tail.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return this.head=t.next,this.tail===t&&(this.tail=null),t.item}};var mL=uL,pL=W.Promise,yL="object"==typeof window&&"object"!=typeof Deno,bL=W,hL=pL,ZL=dt,fL=ir,LL=Zi,xL=he,XL=yL,IL=xt;hL&&hL.prototype;var GL=xL("species"),KL=!1,WL=ZL(bL.PromiseRejectionEvent),vL=fL("Promise",(function(){var t=LL(hL),e=t!==hL+"";if(!e&&66===IL)return!0;if(IL>=51&&/native code/.test(t))return!1;var i=new hL((function(t){t(1)})),n=function(t){t((function(){}),(function(){}))};return(i.constructor={})[GL]=n,!(KL=i.then((function(){}))instanceof n)||!e&&XL&&!WL})),SL={CONSTRUCTOR:vL,REJECTION_EVENT:WL,SUBCLASSING:KL},wL={},gL=kt,YL=function(t){var e,i;this.promise=new t((function(t,n){if(void 0!==e||void 0!==i)throw TypeError("Bad Promise constructor");e=t,i=n})),this.resolve=gL(e),this.reject=gL(i)};wL.f=function(t){return new YL(t)};var VL,TL,HL,kL=or,PL=af,CL=W,JL=V,ML=an,RL=Fc,DL=Tc,UL=Fo,NL=kt,jL=dt,zL=at,FL=ga,EL=_s,QL=zf.set,OL=sL,BL=oL,AL=mL,_L=zi,qL=pL,$L=wL,tx="Promise",ex=SL.CONSTRUCTOR,ix=SL.REJECTION_EVENT,nx=SL.SUBCLASSING,rx=_L.getterFor(tx),dx=_L.set,cx=qL&&qL.prototype,ax=qL,sx=cx,lx=CL.TypeError,ox=CL.document,ux=CL.process,mx=$L.f,px=mx,yx=!!(ox&&ox.createEvent&&CL.dispatchEvent),bx="unhandledrejection",hx=function(t){var e;return!(!zL(t)||!jL(e=t.then))&&e},Zx=function(t,e){var i,n,r,d=e.value,c=1==e.state,a=c?t.ok:t.fail,s=t.resolve,l=t.reject,o=t.domain;try{a?(c||(2===e.rejection&&Ix(e),e.rejection=1),!0===a?i=d:(o&&o.enter(),i=a(d),o&&(o.exit(),r=!0)),i===t.promise?l(lx("Promise-chain cycle")):(n=hx(i))?JL(n,i,s,l):s(i)):l(d)}catch(t){o&&!r&&o.exit(),l(t)}},fx=function(t,e){t.notified||(t.notified=!0,OL((function(){for(var i,n=t.reactions;i=n.get();)Zx(i,t);t.notified=!1,e&&!t.rejection&&xx(t)})))},Lx=function(t,e,i){var n,r;yx?((n=ox.createEvent("Event")).promise=e,n.reason=i,n.initEvent(t,!1,!0),CL.dispatchEvent(n)):n={promise:e,reason:i},!ix&&(r=CL["on"+t])?r(n):t===bx&&function(t,e){var i=lL.console;i&&i.error&&(1==arguments.length?i.error(t):i.error(t,e))}("Unhandled promise rejection",i)},xx=function(t){JL(QL,CL,(function(){var e,i=t.facade,n=t.value;if(Xx(t)&&(e=BL((function(){PL?ux.emit("unhandledRejection",n,i):Lx(bx,i,n)})),t.rejection=PL||Xx(t)?2:1,e.error))throw e.value}))},Xx=function(t){return 1!==t.rejection&&!t.parent},Ix=function(t){JL(QL,CL,(function(){var e=t.facade;PL?ux.emit("rejectionHandled",e):Lx("rejectionhandled",e,t.value)}))},Gx=function(t,e,i){return function(n){t(e,n,i)}},Kx=function(t,e,i){t.done||(t.done=!0,i&&(t=i),t.value=e,t.state=2,fx(t,!0))},Wx=function(t,e,i){if(!t.done){t.done=!0,i&&(t=i);try{if(t.facade===e)throw lx("Promise can't be resolved itself");var n=hx(e);n?OL((function(){var i={done:!1};try{JL(n,e,Gx(Wx,i,t),Gx(Kx,i,t))}catch(e){Kx(i,e,t)}})):(t.value=e,t.state=1,fx(t,!1))}catch(e){Kx({done:!1},e,t)}}};if(ex&&(sx=(ax=function(t){FL(this,sx),NL(t),JL(VL,this);var e=rx(this);try{t(Gx(Wx,e),Gx(Kx,e))}catch(t){Kx(e,t)}}).prototype,(VL=function(){dx(this,{type:tx,done:!1,notified:!1,parent:!1,reactions:new AL,rejection:!1,state:0,value:void 0})}).prototype=ML(sx,"then",(function(t,e){var i=rx(this),n=mx(EL(this,ax));return i.parent=!0,n.ok=!jL(t)||t,n.fail=jL(e)&&e,n.domain=PL?ux.domain:void 0,0==i.state?i.reactions.add(n):OL((function(){Zx(n,i)})),n.promise})),TL=function(){var t=new VL,e=rx(t);this.promise=t,this.resolve=Gx(Wx,e),this.reject=Gx(Kx,e)},$L.f=mx=function(t){return t===ax||void 0===t?new TL(t):px(t)},jL(qL)&&cx!==Object.prototype)){HL=cx.then,nx||ML(cx,"then",(function(t,e){var i=this;return new ax((function(t,e){JL(HL,i,t,e)})).then(t,e)}),{unsafe:!0});try{delete cx.constructor}catch(t){}RL&&RL(cx,sx)}kL({global:!0,constructor:!0,wrap:!0,forced:ex},{Promise:ax}),DL(ax,tx,!1),UL(tx);var vx=V,Sx=Qe,wx=Ct,gx=function(t,e,i){var n,r;Sx(t);try{if(!(n=wx(t,"return"))){if("throw"===e)throw i;return i}n=vx(n,t)}catch(t){r=!0,n=t}if("throw"===e)throw i;if(r)throw n;return Sx(n),i},Yx=yr,Vx=V,Tx=Qe,Hx=Yt,kx=Vo,Px=Xn,Cx=mt,Jx=So,Mx=xo,Rx=gx,Dx=TypeError,Ux=function(t,e){this.stopped=t,this.result=e},Nx=Ux.prototype,jx=function(t,e,i){var n,r,d,c,a,s,l,o=i&&i.that,u=!(!i||!i.AS_ENTRIES),m=!(!i||!i.IS_ITERATOR),p=!(!i||!i.INTERRUPTED),y=Yx(e,o),b=function(t){return n&&Rx(n,"normal",t),new Ux(!0,t)},h=function(t){return u?(Tx(t),p?y(t[0],t[1],b):y(t[0],t[1])):p?y(t,b):y(t)};if(m)n=t;else{if(!(r=Mx(t)))throw Dx(Hx(t)+" is not iterable");if(kx(r)){for(d=0,c=Px(t);c>d;d++)if((a=h(t[d]))&&Cx(Nx,a))return a;return new Ux(!1)}n=Jx(t,r)}for(s=n.next;!(l=Vx(s,n)).done;){try{a=h(l.value)}catch(t){Rx(n,"throw",t)}if("object"==typeof a&&a&&Cx(Nx,a))return a}return new Ux(!1)},zx=pL,Fx=SL.CONSTRUCTOR||!Ll((function(t){zx.all(t).then(void 0,(function(){}))})),Ex=V,Qx=kt,Ox=wL,Bx=oL,Ax=jx;or({target:"Promise",stat:!0,forced:Fx},{all:function(t){var e=this,i=Ox.f(e),n=i.resolve,r=i.reject,d=Bx((function(){var i=Qx(e.resolve),d=[],c=0,a=1;Ax(t,(function(t){var s=c++,l=!1;a++,Ex(i,e,t).then((function(t){l||(l=!0,d[s]=t,--a||n(d))}),r)})),--a||n(d)}));return d.error&&r(d.value),i.promise}});var _x=or,qx=SL.CONSTRUCTOR,$x=pL,tX=ut,eX=dt,iX=an,nX=$x&&$x.prototype;if(_x({target:"Promise",proto:!0,forced:qx,real:!0},{catch:function(t){return this.then(void 0,t)}}),eX($x)){var rX=tX("Promise").prototype.catch;nX.catch!==rX&&iX(nX,"catch",rX,{unsafe:!0})}var dX=V,cX=kt,aX=wL,sX=oL,lX=jx;or({target:"Promise",stat:!0,forced:Fx},{race:function(t){var e=this,i=aX.f(e),n=i.reject,r=sX((function(){var r=cX(e.resolve);lX(t,(function(t){dX(r,e,t).then(i.resolve,n)}))}));return r.error&&n(r.value),i.promise}});var oX=V,uX=wL;or({target:"Promise",stat:!0,forced:SL.CONSTRUCTOR},{reject:function(t){var e=uX.f(this);return oX(e.reject,void 0,t),e.promise}});var mX=Qe,pX=at,yX=wL,bX=or,hX=SL.CONSTRUCTOR;ut("Promise"),bX({target:"Promise",stat:!0,forced:hX},{resolve:function(t){return function(t,e){if(mX(t),pX(e)&&e.constructor===t)return e;var i=yX.f(t);return(0,i.resolve)(e),i.promise}(this,t)}});var ZX=or,fX=_t,LX=hn,xX=mn,XX=Xn,IX=Nd,GX=Fr,KX=Ed,WX=_u,vX=nd("splice"),SX=Math.max,wX=Math.min;ZX({target:"Array",proto:!0,forced:!vX},{splice:function(t,e){var i,n,r,d,c,a,s=fX(this),l=XX(s),o=LX(t,l),u=arguments.length;for(0===u?i=n=0:1===u?(i=0,n=l-o):(i=u-2,n=wX(SX(xX(e),0),l-o)),IX(l+i-n),r=GX(s,n),d=0;n>d;d++)(c=o+d)in s&&KX(r,d,s[c]);if(r.length=n,n>i){for(d=o;l-n>d;d++)a=d+i,(c=d+n)in s?s[a]=s[c]:WX(s,a);for(d=l;d>l-n+i;d--)WX(s,d-1)}else if(i>n)for(d=l-n;d>o;d--)a=d+i-1,(c=d+n-1)in s?s[a]=s[c]:WX(s,a);for(d=0;i>d;d++)s[d+o]=arguments[d+2];return s.length=l-n+i,r}});var gX=W.isFinite;or({target:"Number",stat:!0},{isFinite:Number.isFinite||function(t){return"number"==typeof t&&gX(t)}});var YX=z(1..valueOf),VX=et,TX=yh,HX=z("".replace),kX=/^[ \n\r \u2028\u2029][ \n\r \u2028\u2029]*/,PX=/[ \n\r \u2028\u2029][ \n\r \u2028\u2029]*$/,CX=function(t){return function(e){var i=TX(VX(e));return 1&t&&(i=HX(i,kX,"")),2&t&&(i=HX(i,PX,"")),i}},JX={start:CX(1),end:CX(2),trim:CX(3)},MX=w,RX=W,DX=z,UX=ir,NX=an,jX=te,zX=Bo,FX=mt,EX=wt,QX=Ge,OX=S,BX=sn.f,AX=v.f,_X=Ne.f,qX=YX,$X=JX.trim,tI="Number",eI=RX.Number,iI=eI.prototype,nI=RX.TypeError,rI=DX("".slice),dI=DX("".charCodeAt),cI=function(t){var e=QX(t,"number");return"bigint"==typeof e?e:aI(e)},aI=function(t){var e,i,n,r,d,c,a,s,l=QX(t,"number");if(EX(l))throw nI("Cannot convert a Symbol value to a number");if("string"==typeof l&&l.length>2)if(l=$X(l),43===(e=dI(l,0))||45===e){if(88===(i=dI(l,2))||120===i)return NaN}else if(48===e){switch(dI(l,1)){case 66:case 98:n=2,r=49;break;case 79:case 111:n=8,r=55;break;default:return+l}for(c=(d=rI(l,2)).length,a=0;c>a;a++)if(48>(s=dI(d,a))||s>r)return NaN;return parseInt(d,n)}return+l};if(UX(tI,!eI(" 0o1")||!eI("0b1")||eI("+0x1"))){for(var sI,lI=function(t){var e=1>arguments.length?0:eI(cI(t)),i=this;return FX(iI,i)&&OX((function(){qX(i)}))?zX(Object(e),i,lI):e},oI=MX?BX(eI):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),uI=0;oI.length>uI;uI++)jX(eI,sI=oI[uI])&&!jX(lI,sI)&&_X(lI,sI,AX(eI,sI));lI.prototype=iI,iI.constructor=lI,NX(RX,tI,lI,{constructor:!0})}var mI=$r.filter;or({target:"Array",proto:!0,forced:!nd("filter")},{filter:function(t){return mI(this,t,arguments.length>1?arguments[1]:void 0)}});var pI={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},yI=Ye("span").classList,bI=yI&&yI.constructor&&yI.constructor.prototype,hI=bI===Object.prototype?void 0:bI,ZI=$r.forEach,fI=lp("forEach")?[].forEach:function(t){return ZI(this,t,arguments.length>1?arguments[1]:void 0)},LI=W,xI=pI,XI=hI,II=fI,GI=ri,KI=function(t){if(t&&t.forEach!==II)try{GI(t,"forEach",II)}catch(e){t.forEach=II}};for(var WI in xI)xI[WI]&&KI(LI[WI]&&LI[WI].prototype);KI(XI);const vI=function(){function t(){}return t.prototype.then=function(e,i){const n=new t,r=this.s;if(r){const t=1&r?e:i;if(t){try{SI(n,1,t(this.v))}catch(t){SI(n,2,t)}return n}return this}return this.o=function(t){try{const r=t.v;1&t.s?SI(n,1,e?e(r):r):i?SI(n,1,i(r)):SI(n,2,r)}catch(t){SI(n,2,t)}},n},t}();function SI(t,e,i){if(!t.s){if(i instanceof vI){if(!i.s)return void(i.o=SI.bind(null,t,e));1&e&&(e=i.s),i=i.v}if(i&&i.then)return void i.then(SI.bind(null,t,e),SI.bind(null,t,2));t.s=e,t.v=i;const n=t.o;n&&n(t)}}function wI(t){return t instanceof vI&&1&t.s}function gI(t){return function(){for(var e=[],i=0;arguments.length>i;i++)e[i]=arguments[i];try{return Promise.resolve(t.apply(this,e))}catch(t){return Promise.reject(t)}}}function YI(t,e,i){return i?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}function VI(t,e){if(!e)return t&&t.then?t.then(zI):Promise.resolve()}function TI(t,e){return t&&t.then?t.then(e):e(t)}function HI(t){if(t&&t.then)return t.then(zI)}const kI="undefined"!=typeof Symbol?Symbol.iterator||(Symbol.iterator=Symbol()):"@@iterator";function PI(t,e,i){if("function"==typeof t[kI]){var n,r,d,c=t[kI]();function o(t){try{for(;!((n=c.next()).done||i&&i());)if((t=e(n.value))&&t.then){if(!wI(t))return void t.then(o,d||(d=SI.bind(null,r=new vI,2)));t=t.v}r?SI(r,1,t):r=t}catch(t){SI(r||(r=new vI),2,t)}}if(o(),c.return){var a=function(t){try{n.done||c.return()}catch(t){}return t};if(r&&r.then)return r.then(a,(function(t){throw a(t)}));a()}return r}if(!("length"in t))throw new TypeError("Object is not iterable");for(var s=[],l=0;l<t.length;l++)s.push(t[l]);return function(t,e,i){var n,r,d=-1;return function c(a){try{for(;++d<t.length&&(!i||!i());)if((a=e(d))&&a.then){if(!wI(a))return void a.then(c,r||(r=SI.bind(null,n=new vI,2)));a=a.v}n?SI(n,1,a):n=a}catch(t){SI(n||(n=new vI),2,t)}}(),n}(s,(function(t){return e(s[t])}),i)}function CI(t,e,i){for(var n;;){var r=t();if(wI(r)&&(r=r.v),!r)return d;if(r.then){n=0;break}var d=i();if(d&&d.then){if(!wI(d)){n=1;break}d=d.s}if(e){var c=e();if(c&&c.then&&!wI(c)){n=2;break}}}var a=new vI,s=SI.bind(null,a,2);return(0===n?r.then(o):1===n?d.then(l):c.then(u)).then(void 0,s),a;function l(n){d=n;do{if(e&&(c=e())&&c.then&&!wI(c))return void c.then(u).then(void 0,s);if(!(r=t())||wI(r)&&!r.v)return void SI(a,1,d);if(r.then)return void r.then(o).then(void 0,s);wI(d=i())&&(d=d.v)}while(!d||!d.then);d.then(l).then(void 0,s)}function o(t){t?(d=i())&&d.then?d.then(l).then(void 0,s):l(d):SI(a,1,d)}function u(){(r=t())?r.then?r.then(o).then(void 0,s):o(r):SI(a,1,d)}}function JI(t,e){var i;do{var n=t();if(n&&n.then){if(!wI(n)){i=!0;break}n=n.v}var r=e();if(wI(r)&&(r=r.v),!r)return n}while(!r.then);const d=new vI,c=SI.bind(null,d,2);return(i?n.then(a):r.then(s)).then(void 0,c),d;function a(i){for(n=i;wI(r=e())&&(r=r.v),r;){if(r.then)return void r.then(s).then(void 0,c);if((n=t())&&n.then){if(!wI(n))return void n.then(a).then(void 0,c);n=n.v}}SI(d,1,n)}function s(i){if(i){do{if((n=t())&&n.then){if(!wI(n))return void n.then(a).then(void 0,c);n=n.v}if(wI(i=e())&&(i=i.v),!i)return void SI(d,1,n)}while(!i.then);i.then(s).then(void 0,c)}else SI(d,1,n)}}function MI(t,e){return function(t,e,i){if(i)return e?e(t()):t();try{var n=Promise.resolve(t());return e?n.then(e):n}catch(t){return Promise.reject(t)}}(t,zI,e)}function RI(t,e){var i=t();return i&&i.then?i.then(e):e(i)}function DI(t){var e=t();if(e&&e.then)return e.then(zI)}function UI(t,e){try{var i=t()}catch(t){return e(t)}return i&&i.then?i.then(void 0,e):i}function NI(t,e){try{var i=t()}catch(t){return e(!0,t)}return i&&i.then?i.then(e.bind(null,!1),e.bind(null,!0)):e(!1,i)}function jI(t,e){if(t)throw e;return e}function zI(){}"undefined"==typeof Symbol||Symbol.asyncIterator||(Symbol.asyncIterator=Symbol());var FI,EI=cZ,QI=TypeError,OI=function(t){if(EI(t))throw QI("The method doesn't accept regular expressions");return t},BI=he("match"),AI=function(t){var e=/./;try{"/./"[t](e)}catch(i){try{return e[BI]=!1,"/./"[t](e)}catch(t){}}return!1},_I=or,qI=z,$I=v.f,tG=Ln,eG=yh,iG=OI,nG=et,rG=AI,dG=qI("".startsWith),cG=qI("".slice),aG=Math.min,sG=rG("startsWith");_I({target:"String",proto:!0,forced:!(!sG&&(FI=$I(String.prototype,"startsWith"),FI&&!FI.writable)||sG)},{startsWith:function(t){var e=eG(nG(this));iG(t);var i=tG(aG(arguments.length>1?arguments[1]:void 0,e.length)),n=eG(t);return dG?dG(e,n,i):cG(e,i,i+n.length)===n}});for(var lG=[],oG=0;256>oG;oG++){for(var uG=oG,mG=0;8>mG;mG++)1&uG?uG=uG>>>1^3988292384:uG>>>=1;lG[oG]=uG}var pG=function(){function t(e){c(this,t),this.crc=e||-1}return s(t,[{key:"append",value:function(t){for(var e=0|this.crc,i=0,n=0|t.length;n>i;i++)e=e>>>8^lG[255&(e^t[i])];this.crc=e}},{key:"get",value:function(){return~this.crc}}]),t}(),yG=W,bG=pI,hG=hI,ZG=Ia,fG=ri,LG=he,xG=LG("iterator"),XG=LG("toStringTag"),IG=ZG.values,GG=function(t,e){if(t){if(t[xG]!==IG)try{fG(t,xG,IG)}catch(e){t[xG]=IG}if(t[XG]||fG(t,XG,e),bG[e])for(var i in ZG)if(t[i]!==ZG[i])try{fG(t,i,ZG[i])}catch(e){t[i]=ZG[i]}}};for(var KG in bG)GG(yG[KG]&&yG[KG].prototype,KG);GG(hG,"DOMTokenList");var WG=Qe,vG=gx,SG=yr,wG=V,gG=_t,YG=function(t,e,i,n){try{return n?e(WG(i)[0],i[1]):e(i)}catch(e){vG(t,"throw",e)}},VG=Vo,TG=Rr,HG=Xn,kG=Ed,PG=So,CG=xo,JG=Array,MG=function(t){var e=gG(t),i=TG(this),n=arguments.length,r=n>1?arguments[1]:void 0,d=void 0!==r;d&&(r=SG(r,n>2?arguments[2]:void 0));var c,a,s,l,o,u,m=CG(e),p=0;if(!m||this===JG&&VG(m))for(c=HG(e),a=i?new this(c):JG(c);c>p;p++)u=d?r(e[p],p):e[p],kG(a,p,u);else for(o=(l=PG(e,m)).next,a=i?new this:[];!(s=wG(o,l)).done;p++)u=d?YG(l,r,[s.value,p],!0):s.value,kG(a,p,u);return a.length=p,a},RG=MG;or({target:"Array",stat:!0,forced:!Ll((function(t){Array.from(t)}))},{from:RG});var DG=bZ.charAt,UG=yh,NG=zi,jG=ua,zG="String Iterator",FG=NG.set,EG=NG.getterFor(zG);function QG(t){if("undefined"==typeof TextEncoder){t=unescape(encodeURIComponent(t));for(var e=new Uint8Array(t.length),i=0;i<e.length;i++)e[i]=t.charCodeAt(i);return e}return(new TextEncoder).encode(t)}jG(String,"String",(function(t){FG(this,{type:zG,string:UG(t),index:0})}),(function(){var t,e=EG(this),i=e.string,n=e.index;return n<i.length?(t=DG(i,n),e.index+=t.length,{value:t,done:!1}):{value:void 0,done:!0}})),(0,ul.exports)("Uint32",(function(t){return function(e,i,n){return t(this,e,i,n)}}));var OG=Fo,BG=js.ArrayBuffer;or({global:!0,constructor:!0,forced:W.ArrayBuffer!==BG},{ArrayBuffer:BG}),OG("ArrayBuffer");var AG={concat:function(t,e){if(0===t.length||0===e.length)return t.concat(e);var i=t[t.length-1],n=AG.getPartial(i);return 32===n?t.concat(e):AG._shiftRight(e,n,0|i,t.slice(0,t.length-1))},bitLength:function(t){var e=t.length;if(0===e)return 0;var i=t[e-1];return 32*(e-1)+AG.getPartial(i)},clamp:function(t,e){if(32*t.length<e)return t;var i=(t=t.slice(0,Math.ceil(e/32))).length;return e&=31,i>0&&e&&(t[i-1]=AG.partial(e,t[i-1]&2147483648>>e-1,1)),t},partial:function(t,e,i){return 32===t?e:(i?0|e:e<<32-t)+1099511627776*t},getPartial:function(t){return Math.round(t/1099511627776)||32},_shiftRight:function(t,e,i,n){for(void 0===n&&(n=[]);e>=32;e-=32)n.push(i),i=0;if(0===e)return n.concat(t);for(var r=0;r<t.length;r++)n.push(i|t[r]>>>e),i=t[r]<<32-e;var d=t.length?t[t.length-1]:0,c=AG.getPartial(d);return n.push(AG.partial(e+c&31,e+c>32?i:n.pop(),1)),n}},_G={bytes:{fromBits:function(t){for(var e,i=AG.bitLength(t)/8,n=new Uint8Array(i),r=0;i>r;r++)0==(3&r)&&(e=t[r/4]),n[r]=e>>>24,e<<=8;return n},toBits:function(t){var e,i=[],n=0;for(e=0;e<t.length;e++)n=n<<8|t[e],3==(3&e)&&(i.push(n),n=0);return 3&e&&i.push(AG.partial(8*(3&e),n)),i}}},qG={sha1:function(t){t?(this._h=t._h.slice(0),this._buffer=t._buffer.slice(0),this._length=t._length):this.reset()}};qG.sha1.prototype={blockSize:512,reset:function(){var t=this;return t._h=this._init.slice(0),t._buffer=[],t._length=0,t},update:function(t){var e=this;"string"==typeof t&&(t=_G.utf8String.toBits(t));var i=e._buffer=AG.concat(e._buffer,t),n=e._length,r=e._length=n+AG.bitLength(t);if(r>9007199254740991)throw Error("Cannot hash more than 2^53 - 1 bits");for(var d=new Uint32Array(i),c=0,a=e.blockSize+n-(e.blockSize+n&e.blockSize-1);r>=a;a+=e.blockSize)e._block(d.subarray(16*c,16*(c+1))),c+=1;return i.splice(0,16*c),e},finalize:function(){for(var t=this,e=t._buffer,i=t._h,n=(e=AG.concat(e,[AG.partial(1,1)])).length+2;15&n;n++)e.push(0);for(e.push(Math.floor(t._length/4294967296)),e.push(0|t._length);e.length;)t._block(e.splice(0,16));return t.reset(),i},_init:[1732584193,4023233417,2562383102,271733878,3285377520],_key:[1518500249,1859775393,2400959708,3395469782],_f:function(t,e,i,n){return t>19?t>39?t>59?t>79?void 0:e^i^n:e&i|e&n|i&n:e^i^n:e&i|~e&n},_S:function(t,e){return e<<t|e>>>32-t},_block:function(t){for(var e=this,i=e._h,n=Array(80),r=0;16>r;r++)n[r]=t[r];for(var d=i[0],c=i[1],a=i[2],s=i[3],l=i[4],o=0;79>=o;o++){16>o||(n[o]=e._S(1,n[o-3]^n[o-8]^n[o-14]^n[o-16]));var u=e._S(5,d)+e._f(o,c,a,s)+l+n[o]+e._key[Math.floor(o/20)]|0;l=s,s=a,a=e._S(30,c),c=d,d=u}i[0]=i[0]+d|0,i[1]=i[1]+c|0,i[2]=i[2]+a|0,i[3]=i[3]+s|0,i[4]=i[4]+l|0}};var $G={};$G.aes=function(){function t(e){c(this,t);var i=this;i._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],i._tables[0][0][0]||i._precompute();var n,r,d,a=i._tables[0][4],s=i._tables[1],l=e.length,o=1;if(4!==l&&6!==l&&8!==l)throw Error("invalid aes key size");for(i._key=[r=e.slice(0),d=[]],n=l;4*l+28>n;n++){var u=r[n-1];(n%l==0||8===l&&n%l==4)&&(u=a[u>>>24]<<24^a[u>>16&255]<<16^a[u>>8&255]<<8^a[255&u],n%l==0&&(u=u<<8^u>>>24^o<<24,o=o<<1^283*(o>>7))),r[n]=r[n-l]^u}for(var m=0;n;m++,n--){var p=r[3&m?n:n-4];d[m]=4>=n||4>m?p:s[0][a[p>>>24]]^s[1][a[p>>16&255]]^s[2][a[p>>8&255]]^s[3][a[255&p]]}}return s(t,[{key:"encrypt",value:function(t){return this._crypt(t,0)}},{key:"decrypt",value:function(t){return this._crypt(t,1)}},{key:"_precompute",value:function(){for(var t,e,i,n=this._tables[0],r=this._tables[1],d=n[4],c=r[4],a=[],s=[],l=0;256>l;l++)s[(a[l]=l<<1^283*(l>>7))^l]=l;for(var o=t=0;!d[o];o^=e||1,t=s[t]||1){var u=t^t<<1^t<<2^t<<3^t<<4;u=u>>8^255&u^99,d[o]=u,c[u]=o;for(var m=16843009*a[i=a[e=a[o]]]^65537*i^257*e^16843008*o,p=257*a[u]^16843008*u,y=0;4>y;y++)n[y][o]=p=p<<24^p>>>8,r[y][u]=m=m<<24^m>>>8}for(var b=0;5>b;b++)n[b]=n[b].slice(0),r[b]=r[b].slice(0)}},{key:"_crypt",value:function(t,e){if(4!==t.length)throw Error("invalid aes block size");for(var i,n,r,d=this._key[e],c=d.length/4-2,a=[0,0,0,0],s=this._tables[e],l=s[0],o=s[1],u=s[2],m=s[3],p=s[4],y=t[0]^d[0],b=t[e?3:1]^d[1],h=t[2]^d[2],Z=t[e?1:3]^d[3],f=4,L=0;c>L;L++)i=l[y>>>24]^o[b>>16&255]^u[h>>8&255]^m[255&Z]^d[f],n=l[b>>>24]^o[h>>16&255]^u[Z>>8&255]^m[255&y]^d[f+1],r=l[h>>>24]^o[Z>>16&255]^u[y>>8&255]^m[255&b]^d[f+2],Z=l[Z>>>24]^o[y>>16&255]^u[b>>8&255]^m[255&h]^d[f+3],f+=4,y=i,b=n,h=r;for(var x=0;4>x;x++)a[e?3&-x:x]=p[y>>>24]<<24^p[b>>16&255]<<16^p[h>>8&255]<<8^p[255&Z]^d[f++],i=y,y=b,b=h,h=Z,Z=i;return a}}]),t}();var tK={};tK.ctrGladman=function(){function t(e,i){c(this,t),this._prf=e,this._initIv=i,this._iv=i}return s(t,[{key:"reset",value:function(){this._iv=this._initIv}},{key:"update",value:function(t){return this.calculate(this._prf,t,this._iv)}},{key:"incWord",value:function(t){if(255==(t>>24&255)){var e=t>>16&255,i=t>>8&255,n=255&t;255===e?(e=0,255===i?(i=0,255===n?n=0:++n):++i):++e,t=0,t+=e<<16,t+=i<<8,t+=n}else t+=1<<24;return t}},{key:"incCounter",value:function(t){0===(t[0]=this.incWord(t[0]))&&(t[1]=this.incWord(t[1]))}},{key:"calculate",value:function(t,e,i){var n;if(!(n=e.length))return[];for(var r=AG.bitLength(e),d=0;n>d;d+=4){this.incCounter(i);var c=t.encrypt(i);e[d]^=c[0],e[d+1]^=c[1],e[d+2]^=c[2],e[d+3]^=c[3]}return AG.clamp(e,r)}}]),t}();var eK={importKey:function(t){return new eK.hmacSha1(_G.bytes.toBits(t))},pbkdf2:function(t,e,i,n){if(i=i||1e4,0>n||0>i)throw Error("invalid params to pbkdf2");var r,d,c,a,s,l=1+(n>>5)<<2,o=new ArrayBuffer(l),u=new DataView(o),m=0,p=AG;for(e=_G.bytes.toBits(e),s=1;(l||1)>m;s++){for(r=d=t.encrypt(p.concat(e,[s])),c=1;i>c;c++)for(d=t.encrypt(d),a=0;a<d.length;a++)r[a]^=d[a];for(c=0;(l||1)>m&&c<r.length;c++)u.setInt32(m,r[c]),m+=4}return o.slice(0,n/8)}};eK.hmacSha1=function(){function t(e){c(this,t);var i=this,n=i._hash=qG.sha1,r=[[],[]],d=n.prototype.blockSize/32;i._baseHash=[new n,new n],e.length>d&&(e=n.hash(e));for(var a=0;d>a;a++)r[0][a]=909522486^e[a],r[1][a]=1549556828^e[a];i._baseHash[0].update(r[0]),i._baseHash[1].update(r[1]),i._resultHash=new n(i._baseHash[0])}return s(t,[{key:"reset",value:function(){var t=this;t._resultHash=new t._hash(t._baseHash[0]),t._updated=!1}},{key:"update",value:function(t){this._updated=!0,this._resultHash.update(t)}},{key:"digest",value:function(){var t=this,e=t._resultHash.finalize(),i=new t._hash(t._baseHash[1]).update(e).finalize();return t.reset(),i}},{key:"encrypt",value:function(t){if(this._updated)throw Error("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}]),t}();var iK=gI((function(t,e,i){return ZK&&fK&&"function"==typeof crypto.subtle.deriveBits?crypto.subtle.deriveBits(t,e,i):eK.pbkdf2(e,t.salt,uK.iterations,i)})),nK=gI((function(t,e,i){var n=QG(e);return YI(function(t,e,i,n,r){return ZK&&fK&&"function"==typeof crypto.subtle.importKey?crypto.subtle.importKey(t,e,i,!1,r):eK.importKey(e)}(sK,n,oK,0,mK),(function(e){return YI(iK(Object.assign({salt:i},uK),e,8*(2*yK[t.strength]+2)),(function(e){var i=new Uint8Array(e);t.keys={key:LK.toBits(SK(i,0,yK[t.strength])),authentication:LK.toBits(SK(i,yK[t.strength],2*yK[t.strength])),passwordVerification:SK(i,2*yK[t.strength])}}))}))})),rK=gI((function(t,e){var i,n=(i=new Uint8Array(pK[t.strength]),ZK&&"function"==typeof crypto.getRandomValues?crypto.getRandomValues(i):function(t){for(var e,i=new Uint32Array(t.buffer),n=function(t){var e=987654321,i=4294967295;return function(){return((((e=36969*(65535&e)+(e>>16)&i)<<16)+(t=18e3*(65535&t)+(t>>16)&i)&i)/4294967296+.5)*(Math.random()>.5?1:-1)}},r=0;r<t.length;r+=4){var d=n(4294967296*(e||Math.random()));e=987654071*d(),i[r/4]=4294967296*d()|0}return t}(i));return YI(nK(t,e,n),(function(){return vK(n,t.keys.passwordVerification)}))})),dK=gI((function(t,e,i){return YI(nK(t,i,SK(e,0,pK[t.strength])),(function(){var i=SK(e,pK[t.strength]),n=t.keys.passwordVerification;if(n[0]!=i[0]||n[1]!=i[1])throw Error(cK)}))})),cK="Invalid pasword",aK=16,sK="raw",lK={name:"PBKDF2"},oK=Object.assign({hash:{name:"HMAC"}},lK),uK=Object.assign({iterations:1e3,hash:{name:"SHA-1"}},lK),mK=["deriveBits"],pK=[8,12,16],yK=[16,24,32],bK=10,hK=[0,0,0,0],ZK="undefined"!=typeof crypto,fK=ZK&&void 0!==crypto.subtle,LK=_G.bytes,xK=$G.aes,XK=tK.ctrGladman,IK=eK.hmacSha1,GK=function(){function t(e,i,n){c(this,t),Object.assign(this,{password:e,signed:i,strength:n-1,pendingInput:new Uint8Array(0)})}return s(t,[{key:"append",value:function(t){try{var e=this;return YI(RI((function(){if(e.password){var i=SK(t,0,pK[e.strength]+2);return YI(dK(e,i,e.password),(function(){e.password=null,e.aesCtrGladman=new XK(new xK(e.keys.key),Array.from(hK)),e.hmac=new IK(e.keys.authentication),t=SK(t,pK[e.strength]+2)}))}}),(function(){var i=new Uint8Array(t.length-bK-(t.length-bK)%aK);return WK(e,t,i,0,bK,!0)})))}catch(t){return Promise.reject(t)}}},{key:"flush",value:function(){var t=this,e=t.pendingInput,i=SK(e,0,e.length-bK),n=SK(e,e.length-bK),r=new Uint8Array(0);if(i.length){var d=LK.toBits(i);t.hmac.update(d);var c=t.aesCtrGladman.update(d);r=LK.fromBits(c)}var a=!0;if(t.signed)for(var s=SK(LK.fromBits(t.hmac.digest()),0,bK),l=0;bK>l;l++)s[l]!=n[l]&&(a=!1);return{valid:a,data:r}}}]),t}(),KK=function(){function t(e,i){c(this,t),Object.assign(this,{password:e,strength:i-1,pendingInput:new Uint8Array(0)})}return s(t,[{key:"append",value:function(t){try{var e=this,i=new Uint8Array(0);return YI(RI((function(){if(e.password)return YI(rK(e,e.password),(function(t){i=t,e.password=null,e.aesCtrGladman=new XK(new xK(e.keys.key),Array.from(hK)),e.hmac=new IK(e.keys.authentication)}))}),(function(){var n=new Uint8Array(i.length+t.length-t.length%aK);return n.set(i,0),WK(e,t,n,i.length,0)})))}catch(t){return Promise.reject(t)}}},{key:"flush",value:function(){var t=this,e=new Uint8Array(0);if(t.pendingInput.length){var i=t.aesCtrGladman.update(LK.toBits(t.pendingInput));t.hmac.update(i),e=LK.fromBits(i)}var n=SK(LK.fromBits(t.hmac.digest()),0,bK);return{data:vK(e,n),signature:n}}}]),t}();function WK(t,e,i,n,r,d){var c,a=e.length-r;for(t.pendingInput.length&&(e=vK(t.pendingInput,e),i=function(t,e){if(e&&e>t.length){var i=t;(t=new Uint8Array(e)).set(i,0)}return t}(i,a-a%aK)),c=0;a-aK>=c;c+=aK){var s=LK.toBits(SK(e,c,c+aK));d&&t.hmac.update(s);var l=t.aesCtrGladman.update(s);d||t.hmac.update(l),i.set(LK.fromBits(l),c+n)}return t.pendingInput=SK(e,c),i}function vK(t,e){var i=t;return t.length+e.length&&((i=new Uint8Array(t.length+e.length)).set(t,0),i.set(e,t.length)),i}function SK(t,e,i){return t.subarray(e,i)}var wK=Math.imul;or({target:"Math",stat:!0,forced:S((function(){return-5!=wK(4294967295,5)||2!=wK.length}))},{imul:function(t,e){var i=65535,n=+t,r=+e,d=i&n,c=i&r;return 0|d*c+((i&n>>>16)*c+d*(i&r>>>16)<<16>>>0)}});var gK=function(){function t(e,i){c(this,t),Object.assign(this,{password:e,passwordVerification:i}),HK(this,e)}return s(t,[{key:"append",value:function(t){var e=this;if(e.password){var i=VK(e,t.subarray(0,12));if(e.password=null,i[11]!=e.passwordVerification)throw Error(cK);t=t.subarray(12)}return VK(e,t)}},{key:"flush",value:function(){return{valid:!0,data:new Uint8Array(0)}}}]),t}(),YK=function(){function t(e,i){c(this,t),Object.assign(this,{password:e,passwordVerification:i}),HK(this,e)}return s(t,[{key:"append",value:function(t){var e,i,n=this;if(n.password){n.password=null;var r=crypto.getRandomValues(new Uint8Array(12));r[11]=n.passwordVerification,(e=new Uint8Array(t.length+r.length)).set(TK(n,r),0),i=12}else e=new Uint8Array(t.length),i=0;return e.set(TK(n,t),i),e}},{key:"flush",value:function(){return{data:new Uint8Array(0)}}}]),t}();function VK(t,e){for(var i=new Uint8Array(e.length),n=0;n<e.length;n++)i[n]=PK(t)^e[n],kK(t,i[n]);return i}function TK(t,e){for(var i=new Uint8Array(e.length),n=0;n<e.length;n++)i[n]=PK(t)^e[n],kK(t,e[n]);return i}function HK(t,e){t.keys=[305419896,591751049,878082192],t.crcKey0=new pG(t.keys[0]),t.crcKey2=new pG(t.keys[2]);for(var i=0;i<e.length;i++)kK(t,e.charCodeAt(i))}function kK(t,e){t.crcKey0.append([e]),t.keys[0]=~t.crcKey0.get(),t.keys[1]=JK(t.keys[1]+CK(t.keys[0])),t.keys[1]=JK(Math.imul(t.keys[1],134775813)+1),t.crcKey2.append([t.keys[1]>>>24]),t.keys[2]=~t.crcKey2.get()}function PK(t){var e=2|t.keys[2];return CK(Math.imul(e,1^e)>>>8)}function CK(t){return 255&t}function JK(t){return 4294967295&t}var MK="deflate",RK="inflate",DK="Invalid signature",UK=function(){function t(e,i,n){var r=i.signature,d=i.password,a=i.signed,s=i.compressed,l=i.zipCrypto,o=i.passwordVerification,u=i.encryptionStrength,m=n.chunkSize;c(this,t);var p=!!d;Object.assign(this,{signature:r,encrypted:p,signed:a,compressed:s,inflate:s&&new e({chunkSize:m}),crc32:a&&new pG,zipCrypto:l,decrypt:p&&l?new gK(d,o):new GK(d,a,u)})}return s(t,[{key:"append",value:function(t){try{var e=this;return YI(RI((function(){if(e.encrypted&&t.length)return YI(e.decrypt.append(t),(function(e){t=e}))}),(function(){return RI((function(){if(e.compressed&&t.length)return YI(e.inflate.append(t),(function(e){t=e}))}),(function(){return(!e.encrypted||e.zipCrypto)&&e.signed&&t.length&&e.crc32.append(t),t}))})))}catch(t){return Promise.reject(t)}}},{key:"flush",value:function(){try{var t,e=this,i=new Uint8Array(0);if(e.encrypted){var n=e.decrypt.flush();if(!n.valid)throw Error(DK);i=n.data}if((!e.encrypted||e.zipCrypto)&&e.signed){var r=new DataView(new Uint8Array(4).buffer);if(t=e.crc32.get(),r.setUint32(0,t),e.signature!=r.getUint32(0,!1))throw Error(DK)}return YI(RI((function(){if(e.compressed)return YI(e.inflate.append(i),(function(t){return i=t||new Uint8Array(0),VI(e.inflate.flush())}))}),(function(){return{data:i,signature:t}})))}catch(t){return Promise.reject(t)}}}]),t}(),NK=function(){function t(e,i,n){var r=i.encrypted,d=i.signed,a=i.compressed,s=i.level,l=i.zipCrypto,o=i.password,u=i.passwordVerification,m=i.encryptionStrength,p=n.chunkSize;c(this,t),Object.assign(this,{encrypted:r,signed:d,compressed:a,deflate:a&&new e({level:s||5,chunkSize:p}),crc32:d&&new pG,zipCrypto:l,encrypt:r&&l?new YK(o,u):new KK(o,m)})}return s(t,[{key:"append",value:function(t){try{var e=this,i=t;return YI(RI((function(){if(e.compressed&&t.length)return YI(e.deflate.append(t),(function(t){i=t}))}),(function(){return RI((function(){if(e.encrypted&&i.length)return YI(e.encrypt.append(i),(function(t){i=t}))}),(function(){return(!e.encrypted||e.zipCrypto)&&e.signed&&t.length&&e.crc32.append(t),i}))})))}catch(t){return Promise.reject(t)}}},{key:"flush",value:function(){try{var t,e=this,i=new Uint8Array(0);return YI(RI((function(){if(e.compressed)return YI(e.deflate.flush(),(function(t){i=t||new Uint8Array(0)}))}),(function(){return RI((function(){if(e.encrypted)return YI(e.encrypt.append(i),(function(n){i=n;var r=e.encrypt.flush();t=r.signature;var d=new Uint8Array(i.length+r.data.length);d.set(i,0),d.set(r.data,i.length),i=d}))}),(function(){return e.encrypted&&!e.zipCrypto||!e.signed||(t=e.crc32.get()),{data:i,signature:t}}))})))}catch(t){return Promise.reject(t)}}}]),t}(),jK=S,zK=he("iterator"),FK=!jK((function(){var t=new URL("b?a=1&b=2&c=3","http://a"),e=t.searchParams,i="";return t.pathname="c%20d",e.forEach((function(t,n){e.delete("b"),i+=n+t})),!e.sort||"http://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||new URLSearchParams("?a=1")+""!="a=1"||!e[zK]||"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"!==i||"x"!==new URL("http://x",void 0).host})),EK=di.exports,QK=Ne,OK=z,BK=2147483647,AK=/[^\0-\u007E]/,_K=/[.\u3002\uFF0E\uFF61]/g,qK="Overflow: input needs wider integers to process",$K=RangeError,tW=OK(_K.exec),eW=Math.floor,iW=String.fromCharCode,nW=OK("".charCodeAt),rW=OK([].join),dW=OK([].push),cW=OK("".replace),aW=OK("".split),sW=OK("".toLowerCase),lW=function(t){return t+22+75*(26>t)},oW=function(t,e,i){var n=0;for(t=i?eW(t/700):t>>1,t+=eW(t/e);t>455;)t=eW(t/35),n+=36;return eW(n+36*t/(t+38))},uW=function(t){var e=[];t=function(t){for(var e=[],i=0,n=t.length;n>i;){var r=nW(t,i++);if(55296>r||r>56319||i>=n)dW(e,r);else{var d=nW(t,i++);56320==(64512&d)?dW(e,((1023&r)<<10)+(1023&d)+65536):(dW(e,r),i--)}}return e}(t);var i,n,r=t.length,d=128,c=0,a=72;for(i=0;i<t.length;i++)128>(n=t[i])&&dW(e,iW(n));var s=e.length,l=s;for(s&&dW(e,"-");r>l;){var o=BK;for(i=0;i<t.length;i++)(n=t[i])>=d&&o>n&&(o=n);var u=l+1;if(o-d>eW((BK-c)/u))throw $K(qK);for(c+=(o-d)*u,d=o,i=0;i<t.length;i++){if(d>(n=t[i])&&++c>BK)throw $K(qK);if(n==d){for(var m=c,p=36;;){var y=p>a?a+26>p?p-a:26:1;if(y>m)break;var b=m-y,h=36-y;dW(e,iW(lW(y+b%h))),m=eW(b/h),p+=36}dW(e,iW(lW(m))),a=oW(c,u,l==s),c=0,l++}}c++,d++}return rW(e,"")},mW=or,pW=W,yW=V,bW=z,hW=w,ZW=FK,fW=an,LW=va,xW=Tc,XW=Rc,IW=zi,GW=ga,KW=dt,WW=te,vW=yr,SW=Wr,wW=Qe,gW=at,YW=yh,VW=Td,TW=M,HW=So,kW=xo,PW=lf,CW=oy,JW=he("iterator"),MW="URLSearchParams",RW="URLSearchParamsIterator",DW=IW.set,UW=IW.getterFor(MW),NW=IW.getterFor(RW),jW=Object.getOwnPropertyDescriptor,zW=function(t){if(!hW)return pW[t];var e=jW(pW,t);return e&&e.value},FW=zW("fetch"),EW=zW("Request"),QW=zW("Headers"),OW=EW&&EW.prototype,BW=QW&&QW.prototype,AW=pW.RegExp,_W=pW.TypeError,qW=pW.decodeURIComponent,$W=pW.encodeURIComponent,tv=bW("".charAt),ev=bW([].join),iv=bW([].push),nv=bW("".replace),rv=bW([].shift),dv=bW([].splice),cv=bW("".split),av=bW("".slice),sv=/\+/g,lv=[,,,,],ov=function(t){return lv[t-1]||(lv[t-1]=AW("((?:%[\\da-f]{2}){"+t+"})","gi"))},uv=function(t){try{return qW(t)}catch(e){return t}},mv=function(t){var e=nv(t,sv," "),i=4;try{return qW(e)}catch(t){for(;i;)e=nv(e,ov(i--),uv);return e}},pv=/[!'()~]|%20/g,yv={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},bv=function(t){return yv[t]},hv=function(t){return nv($W(t),pv,bv)},Zv=XW((function(t,e){DW(this,{type:RW,iterator:HW(UW(t).entries),kind:e})}),"Iterator",(function(){var t=NW(this),e=t.kind,i=t.iterator.next(),n=i.value;return i.done||(i.value="keys"===e?n.key:"values"===e?n.value:[n.key,n.value]),i}),!0),fv=function(t){this.entries=[],this.url=null,void 0!==t&&(gW(t)?this.parseObject(t):this.parseQuery("string"==typeof t?"?"===tv(t,0)?av(t,1):t:YW(t)))};fv.prototype={type:MW,bindURL:function(t){this.url=t,this.update()},parseObject:function(t){var e,i,n,r,d,c,a,s=kW(t);if(s)for(i=(e=HW(t,s)).next;!(n=yW(i,e)).done;){if(d=(r=HW(wW(n.value))).next,(c=yW(d,r)).done||(a=yW(d,r)).done||!yW(d,r).done)throw _W("Expected sequence with length 2");iv(this.entries,{key:YW(c.value),value:YW(a.value)})}else for(var l in t)WW(t,l)&&iv(this.entries,{key:l,value:YW(t[l])})},parseQuery:function(t){if(t)for(var e,i,n=cv(t,"&"),r=0;r<n.length;)(e=n[r++]).length&&(i=cv(e,"="),iv(this.entries,{key:mv(rv(i)),value:mv(ev(i,"="))}))},serialize:function(){for(var t,e=this.entries,i=[],n=0;n<e.length;)t=e[n++],iv(i,hv(t.key)+"="+hv(t.value));return ev(i,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var Lv=function(){GW(this,xv);var t=arguments.length>0?arguments[0]:void 0;DW(this,new fv(t))},xv=Lv.prototype;if(LW(xv,{append:function(t,e){PW(arguments.length,2);var i=UW(this);iv(i.entries,{key:YW(t),value:YW(e)}),i.updateURL()},delete:function(t){PW(arguments.length,1);for(var e=UW(this),i=e.entries,n=YW(t),r=0;r<i.length;)i[r].key===n?dv(i,r,1):r++;e.updateURL()},get:function(t){PW(arguments.length,1);for(var e=UW(this).entries,i=YW(t),n=0;n<e.length;n++)if(e[n].key===i)return e[n].value;return null},getAll:function(t){PW(arguments.length,1);for(var e=UW(this).entries,i=YW(t),n=[],r=0;r<e.length;r++)e[r].key===i&&iv(n,e[r].value);return n},has:function(t){PW(arguments.length,1);for(var e=UW(this).entries,i=YW(t),n=0;n<e.length;)if(e[n++].key===i)return!0;return!1},set:function(t,e){PW(arguments.length,1);for(var i,n=UW(this),r=n.entries,d=!1,c=YW(t),a=YW(e),s=0;s<r.length;s++)(i=r[s]).key===c&&(d?dv(r,s--,1):(d=!0,i.value=a));d||iv(r,{key:c,value:a}),n.updateURL()},sort:function(){var t=UW(this);CW(t.entries,(function(t,e){return t.key>e.key?1:-1})),t.updateURL()},forEach:function(t){for(var e,i=UW(this).entries,n=vW(t,arguments.length>1?arguments[1]:void 0),r=0;r<i.length;)n((e=i[r++]).value,e.key,this)},keys:function(){return new Zv(this,"keys")},values:function(){return new Zv(this,"values")},entries:function(){return new Zv(this,"entries")}},{enumerable:!0}),fW(xv,JW,xv.entries,{name:"entries"}),fW(xv,"toString",(function(){return UW(this).serialize()}),{enumerable:!0}),xW(Lv,MW),mW({global:!0,constructor:!0,forced:!ZW},{URLSearchParams:Lv}),!ZW&&KW(QW)){var Xv=bW(BW.has),Iv=bW(BW.set),Gv=function(t){if(gW(t)){var e,i=t.body;if(SW(i)===MW)return e=t.headers?new QW(t.headers):new QW,Xv(e,"content-type")||Iv(e,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),VW(t,{body:TW(0,YW(i)),headers:TW(0,e)})}return t};if(KW(FW)&&mW({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(t){return FW(t,arguments.length>1?Gv(arguments[1]):{})}}),KW(EW)){var Kv=function(t){return GW(this,OW),new EW(t,arguments.length>1?Gv(arguments[1]):{})};OW.constructor=Kv,Kv.prototype=OW,mW({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:Kv})}}var Wv,vv=or,Sv=w,wv=FK,gv=W,Yv=yr,Vv=z,Tv=an,Hv=function(t,e,i){return i.get&&EK(i.get,e,{getter:!0}),i.set&&EK(i.set,e,{setter:!0}),QK.f(t,e,i)},kv=ga,Pv=te,Cv=dh,Jv=MG,Mv=za,Rv=bZ.codeAt,Dv=yh,Uv=Tc,Nv=lf,jv={URLSearchParams:Lv,getState:UW},zv=zi,Fv=zv.set,Ev=zv.getterFor("URL"),Qv=jv.URLSearchParams,Ov=jv.getState,Bv=gv.URL,Av=gv.TypeError,_v=gv.parseInt,qv=Math.floor,$v=Math.pow,tS=Vv("".charAt),eS=Vv(/./.exec),iS=Vv([].join),nS=Vv(1..toString),rS=Vv([].pop),dS=Vv([].push),cS=Vv("".replace),aS=Vv([].shift),sS=Vv("".split),lS=Vv("".slice),oS=Vv("".toLowerCase),uS=Vv([].unshift),mS="Invalid scheme",pS="Invalid host",yS="Invalid port",bS=/[a-z]/i,hS=/[\d+-.a-z]/i,ZS=/\d/,fS=/^0x/i,LS=/^[0-7]+$/,xS=/^\d+$/,XS=/^[\da-f]+$/i,IS=/[\0\t\n\r #%/:<>?@[\\\]^|]/,GS=/[\0\t\n\r #/:<>?@[\\\]^|]/,KS=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,WS=/[\t\n\r]/g,vS=function(t){var e,i,n,r;if("number"==typeof t){for(e=[],i=0;4>i;i++)uS(e,t%256),t=qv(t/256);return iS(e,".")}if("object"==typeof t){for(e="",n=function(t){for(var e=null,i=1,n=null,r=0,d=0;8>d;d++)0!==t[d]?(r>i&&(e=n,i=r),n=null,r=0):(null===n&&(n=d),++r);return r>i&&(e=n,i=r),e}(t),i=0;8>i;i++)r&&0===t[i]||(r&&(r=!1),n===i?(e+=i?":":"::",r=!0):(e+=nS(t[i],16),7>i&&(e+=":")));return"["+e+"]"}return t},SS={},wS=Cv({},SS,{" ":1,'"':1,"<":1,">":1,"`":1}),gS=Cv({},wS,{"#":1,"?":1,"{":1,"}":1}),YS=Cv({},gS,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),VS=function(t,e){var i=Rv(t,0);return i>32&&127>i&&!Pv(e,t)?t:encodeURIComponent(t)},TS={ftp:21,file:null,http:80,https:443,ws:80,wss:443},HS=function(t,e){var i;return 2==t.length&&eS(bS,tS(t,0))&&(":"==(i=tS(t,1))||!e&&"|"==i)},kS=function(t){var e;return t.length>1&&HS(lS(t,0,2))&&(2==t.length||"/"===(e=tS(t,2))||"\\"===e||"?"===e||"#"===e)},PS=function(t){return"."===t||"%2e"===oS(t)},CS={},JS={},MS={},RS={},DS={},US={},NS={},jS={},zS={},FS={},ES={},QS={},OS={},BS={},AS={},_S={},qS={},$S={},tw={},ew={},iw={},nw=function(t,e,i){var n,r,d,c=Dv(t);if(e){if(r=this.parse(c))throw Av(r);this.searchParams=null}else{if(void 0!==i&&(n=new nw(i,!0)),r=this.parse(c,null,n))throw Av(r);(d=Ov(new Qv)).bindURL(this),this.searchParams=d}};nw.prototype={type:"URL",parse:function(t,e,i){var n,r,d,c,a,s=this,l=e||CS,o=0,u="",m=!1,p=!1,y=!1;for(t=Dv(t),e||(s.scheme="",s.username="",s.password="",s.host=null,s.port=null,s.path=[],s.query=null,s.fragment=null,s.cannotBeABaseURL=!1,t=cS(t,KS,"")),t=cS(t,WS,""),n=Jv(t);o<=n.length;){switch(r=n[o],l){case CS:if(!r||!eS(bS,r)){if(e)return mS;l=MS;continue}u+=oS(r),l=JS;break;case JS:if(r&&(eS(hS,r)||"+"==r||"-"==r||"."==r))u+=oS(r);else{if(":"!=r){if(e)return mS;u="",l=MS,o=0;continue}if(e&&(s.isSpecial()!=Pv(TS,u)||"file"==u&&(s.includesCredentials()||null!==s.port)||"file"==s.scheme&&!s.host))return;if(s.scheme=u,e)return void(s.isSpecial()&&TS[s.scheme]==s.port&&(s.port=null));u="","file"==s.scheme?l=BS:s.isSpecial()&&i&&i.scheme==s.scheme?l=RS:s.isSpecial()?l=jS:"/"==n[o+1]?(l=DS,o++):(s.cannotBeABaseURL=!0,dS(s.path,""),l=tw)}break;case MS:if(!i||i.cannotBeABaseURL&&"#"!=r)return mS;if(i.cannotBeABaseURL&&"#"==r){s.scheme=i.scheme,s.path=Mv(i.path),s.query=i.query,s.fragment="",s.cannotBeABaseURL=!0,l=iw;break}l="file"==i.scheme?BS:US;continue;case RS:if("/"!=r||"/"!=n[o+1]){l=US;continue}l=zS,o++;break;case DS:if("/"==r){l=FS;break}l=$S;continue;case US:if(s.scheme=i.scheme,r==Wv)s.username=i.username,s.password=i.password,s.host=i.host,s.port=i.port,s.path=Mv(i.path),s.query=i.query;else if("/"==r||"\\"==r&&s.isSpecial())l=NS;else if("?"==r)s.username=i.username,s.password=i.password,s.host=i.host,s.port=i.port,s.path=Mv(i.path),s.query="",l=ew;else{if("#"!=r){s.username=i.username,s.password=i.password,s.host=i.host,s.port=i.port,s.path=Mv(i.path),s.path.length--,l=$S;continue}s.username=i.username,s.password=i.password,s.host=i.host,s.port=i.port,s.path=Mv(i.path),s.query=i.query,s.fragment="",l=iw}break;case NS:if(!s.isSpecial()||"/"!=r&&"\\"!=r){if("/"!=r){s.username=i.username,s.password=i.password,s.host=i.host,s.port=i.port,l=$S;continue}l=FS}else l=zS;break;case jS:if(l=zS,"/"!=r||"/"!=tS(u,o+1))continue;o++;break;case zS:if("/"!=r&&"\\"!=r){l=FS;continue}break;case FS:if("@"==r){m&&(u="%40"+u),m=!0,d=Jv(u);for(var b=0;b<d.length;b++){var h=d[b];if(":"!=h||y){var Z=VS(h,YS);y?s.password+=Z:s.username+=Z}else y=!0}u=""}else if(r==Wv||"/"==r||"?"==r||"#"==r||"\\"==r&&s.isSpecial()){if(m&&""==u)return"Invalid authority";o-=Jv(u).length+1,u="",l=ES}else u+=r;break;case ES:case QS:if(e&&"file"==s.scheme){l=_S;continue}if(":"!=r||p){if(r==Wv||"/"==r||"?"==r||"#"==r||"\\"==r&&s.isSpecial()){if(s.isSpecial()&&""==u)return pS;if(e&&""==u&&(s.includesCredentials()||null!==s.port))return;if(c=s.parseHost(u))return c;if(u="",l=qS,e)return;continue}"["==r?p=!0:"]"==r&&(p=!1),u+=r}else{if(""==u)return pS;if(c=s.parseHost(u))return c;if(u="",l=OS,e==QS)return}break;case OS:if(!eS(ZS,r)){if(r==Wv||"/"==r||"?"==r||"#"==r||"\\"==r&&s.isSpecial()||e){if(""!=u){var f=_v(u,10);if(f>65535)return yS;s.port=s.isSpecial()&&f===TS[s.scheme]?null:f,u=""}if(e)return;l=qS;continue}return yS}u+=r;break;case BS:if(s.scheme="file","/"==r||"\\"==r)l=AS;else{if(!i||"file"!=i.scheme){l=$S;continue}if(r==Wv)s.host=i.host,s.path=Mv(i.path),s.query=i.query;else if("?"==r)s.host=i.host,s.path=Mv(i.path),s.query="",l=ew;else{if("#"!=r){kS(iS(Mv(n,o),""))||(s.host=i.host,s.path=Mv(i.path),s.shortenPath()),l=$S;continue}s.host=i.host,s.path=Mv(i.path),s.query=i.query,s.fragment="",l=iw}}break;case AS:if("/"==r||"\\"==r){l=_S;break}i&&"file"==i.scheme&&!kS(iS(Mv(n,o),""))&&(HS(i.path[0],!0)?dS(s.path,i.path[0]):s.host=i.host),l=$S;continue;case _S:if(r==Wv||"/"==r||"\\"==r||"?"==r||"#"==r){if(!e&&HS(u))l=$S;else if(""==u){if(s.host="",e)return;l=qS}else{if(c=s.parseHost(u))return c;if("localhost"==s.host&&(s.host=""),e)return;u="",l=qS}continue}u+=r;break;case qS:if(s.isSpecial()){if(l=$S,"/"!=r&&"\\"!=r)continue}else if(e||"?"!=r)if(e||"#"!=r){if(r!=Wv&&(l=$S,"/"!=r))continue}else s.fragment="",l=iw;else s.query="",l=ew;break;case $S:if(r==Wv||"/"==r||"\\"==r&&s.isSpecial()||!e&&("?"==r||"#"==r)){if(".."===(a=oS(a=u))||"%2e."===a||".%2e"===a||"%2e%2e"===a?(s.shortenPath(),"/"==r||"\\"==r&&s.isSpecial()||dS(s.path,"")):PS(u)?"/"==r||"\\"==r&&s.isSpecial()||dS(s.path,""):("file"==s.scheme&&!s.path.length&&HS(u)&&(s.host&&(s.host=""),u=tS(u,0)+":"),dS(s.path,u)),u="","file"==s.scheme&&(r==Wv||"?"==r||"#"==r))for(;s.path.length>1&&""===s.path[0];)aS(s.path);"?"==r?(s.query="",l=ew):"#"==r&&(s.fragment="",l=iw)}else u+=VS(r,gS);break;case tw:"?"==r?(s.query="",l=ew):"#"==r?(s.fragment="",l=iw):r!=Wv&&(s.path[0]+=VS(r,SS));break;case ew:e||"#"!=r?r!=Wv&&("'"==r&&s.isSpecial()?s.query+="%27":s.query+="#"==r?"%23":VS(r,SS)):(s.fragment="",l=iw);break;case iw:r!=Wv&&(s.fragment+=VS(r,wS))}o++}},parseHost:function(t){var e,i,n;if("["==tS(t,0)){if("]"!=tS(t,t.length-1))return pS;if(e=function(t){var e,i,n,r,d,c,a,s=[0,0,0,0,0,0,0,0],l=0,o=null,u=0,m=function(){return tS(t,u)};if(":"==m()){if(":"!=tS(t,1))return;u+=2,o=++l}for(;m();){if(8==l)return;if(":"!=m()){for(e=i=0;4>i&&eS(XS,m());)e=16*e+_v(m(),16),u++,i++;if("."==m()){if(0==i)return;if(u-=i,l>6)return;for(n=0;m();){if(r=null,n>0){if("."!=m()||n>=4)return;u++}if(!eS(ZS,m()))return;for(;eS(ZS,m());){if(d=_v(m(),10),null===r)r=d;else{if(0==r)return;r=10*r+d}if(r>255)return;u++}s[l]=256*s[l]+r,2!=++n&&4!=n||l++}if(4!=n)return;break}if(":"==m()){if(u++,!m())return}else if(m())return;s[l++]=e}else{if(null!==o)return;u++,o=++l}}if(null!==o)for(c=l-o,l=7;0!=l&&c>0;)a=s[l],s[l--]=s[o+c-1],s[o+--c]=a;else if(8!=l)return;return s}(lS(t,1,-1)),!e)return pS;this.host=e}else if(this.isSpecial()){if(t=function(t){var e,i,n=[],r=aW(cW(sW(t),_K,"."),".");for(e=0;e<r.length;e++)i=r[e],dW(n,tW(AK,i)?"xn--"+uW(i):i);return rW(n,".")}(t),eS(IS,t))return pS;if(e=function(t){var e,i,n,r,d,c,a,s=sS(t,".");if(s.length&&""==s[s.length-1]&&s.length--,(e=s.length)>4)return t;for(i=[],n=0;e>n;n++){if(""==(r=s[n]))return t;if(d=10,r.length>1&&"0"==tS(r,0)&&(d=eS(fS,r)?16:8,r=lS(r,8==d?1:2)),""===r)c=0;else{if(!eS(10==d?xS:8==d?LS:XS,r))return t;c=_v(r,d)}dS(i,c)}for(n=0;e>n;n++)if(c=i[n],n==e-1){if(c>=$v(256,5-e))return null}else if(c>255)return null;for(a=rS(i),n=0;i.length>n;n++)a+=i[n]*$v(256,3-n);return a}(t),null===e)return pS;this.host=e}else{if(eS(GS,t))return pS;for(e="",i=Jv(t),n=0;n<i.length;n++)e+=VS(i[n],SS);this.host=e}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||"file"==this.scheme},includesCredentials:function(){return""!=this.username||""!=this.password},isSpecial:function(){return Pv(TS,this.scheme)},shortenPath:function(){var t=this.path,e=t.length;!e||"file"==this.scheme&&1==e&&HS(t[0],!0)||t.length--},serialize:function(){var t=this,e=t.scheme,i=t.username,n=t.password,r=t.host,d=t.port,c=t.path,a=t.query,s=t.fragment,l=e+":";return null!==r?(l+="//",t.includesCredentials()&&(l+=i+(n?":"+n:"")+"@"),l+=vS(r),null!==d&&(l+=":"+d)):"file"==e&&(l+="//"),l+=t.cannotBeABaseURL?c[0]:c.length?"/"+iS(c,"/"):"",null!==a&&(l+="?"+a),null!==s&&(l+="#"+s),l},setHref:function(t){var e=this.parse(t);if(e)throw Av(e);this.searchParams.update()},getOrigin:function(){var t=this.scheme,e=this.port;if("blob"==t)try{return new rw(t.path[0]).origin}catch(t){return"null"}return"file"!=t&&this.isSpecial()?t+"://"+vS(this.host)+(null!==e?":"+e:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(t){this.parse(Dv(t)+":",CS)},getUsername:function(){return this.username},setUsername:function(t){var e=Jv(Dv(t));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var i=0;i<e.length;i++)this.username+=VS(e[i],YS)}},getPassword:function(){return this.password},setPassword:function(t){var e=Jv(Dv(t));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var i=0;i<e.length;i++)this.password+=VS(e[i],YS)}},getHost:function(){var t=this.host,e=this.port;return null===t?"":null===e?vS(t):vS(t)+":"+e},setHost:function(t){this.cannotBeABaseURL||this.parse(t,ES)},getHostname:function(){var t=this.host;return null===t?"":vS(t)},setHostname:function(t){this.cannotBeABaseURL||this.parse(t,QS)},getPort:function(){var t=this.port;return null===t?"":Dv(t)},setPort:function(t){this.cannotHaveUsernamePasswordPort()||(""==(t=Dv(t))?this.port=null:this.parse(t,OS))},getPathname:function(){var t=this.path;return this.cannotBeABaseURL?t[0]:t.length?"/"+iS(t,"/"):""},setPathname:function(t){this.cannotBeABaseURL||(this.path=[],this.parse(t,qS))},getSearch:function(){var t=this.query;return t?"?"+t:""},setSearch:function(t){""==(t=Dv(t))?this.query=null:("?"==tS(t,0)&&(t=lS(t,1)),this.query="",this.parse(t,ew)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var t=this.fragment;return t?"#"+t:""},setHash:function(t){""!=(t=Dv(t))?("#"==tS(t,0)&&(t=lS(t,1)),this.fragment="",this.parse(t,iw)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var rw=function(t){var e=kv(this,dw),i=Nv(arguments.length,1)>1?arguments[1]:void 0,n=Fv(e,new nw(t,!1,i));Sv||(e.href=n.serialize(),e.origin=n.getOrigin(),e.protocol=n.getProtocol(),e.username=n.getUsername(),e.password=n.getPassword(),e.host=n.getHost(),e.hostname=n.getHostname(),e.port=n.getPort(),e.pathname=n.getPathname(),e.search=n.getSearch(),e.searchParams=n.getSearchParams(),e.hash=n.getHash())},dw=rw.prototype,cw=function(t,e){return{get:function(){return Ev(this)[t]()},set:e&&function(t){return Ev(this)[e](t)},configurable:!0,enumerable:!0}};if(Sv&&(Hv(dw,"href",cw("serialize","setHref")),Hv(dw,"origin",cw("getOrigin")),Hv(dw,"protocol",cw("getProtocol","setProtocol")),Hv(dw,"username",cw("getUsername","setUsername")),Hv(dw,"password",cw("getPassword","setPassword")),Hv(dw,"host",cw("getHost","setHost")),Hv(dw,"hostname",cw("getHostname","setHostname")),Hv(dw,"port",cw("getPort","setPort")),Hv(dw,"pathname",cw("getPathname","setPathname")),Hv(dw,"search",cw("getSearch","setSearch")),Hv(dw,"searchParams",cw("getSearchParams")),Hv(dw,"hash",cw("getHash","setHash"))),Tv(dw,"toJSON",(function(){return Ev(this).serialize()}),{enumerable:!0}),Tv(dw,"toString",(function(){return Ev(this).serialize()}),{enumerable:!0}),Bv){var aw=Bv.createObjectURL,sw=Bv.revokeObjectURL;aw&&Tv(rw,"createObjectURL",Yv(aw,Bv)),sw&&Tv(rw,"revokeObjectURL",Yv(sw,Bv))}Uv(rw,"URL"),vv({global:!0,constructor:!0,forced:!wv,sham:!Sv},{URL:rw});var lw="init",ow="append",uw="flush",mw=!0,pw=function(t,e,i,n,r,d,c){return Object.assign(t,{busy:!0,codecConstructor:e,options:Object.assign({},i),scripts:c,terminate:function(){t.worker&&!t.busy&&(t.worker.terminate(),t.interface=null)},onTaskFinished:function(){t.busy=!1,r(t)}}),d?function(t,e){var i,n=gI((function(n){return RI((function(){if(!i){var n=t.options;return VI(c({scripts:t.scripts.slice(1),type:lw,options:n,config:{chunkSize:e.chunkSize}}))}}),(function(){return c(n)}))})),r={type:"module"};if(!t.interface){if(mw)try{t.worker=d({},e.baseURL)}catch(i){mw=!1,t.worker=d(r,e.baseURL)}else t.worker=d(r,e.baseURL);t.worker.addEventListener("message",(function(e){var n=e.data;if(i){var r=n.error,d=n.type;if(r){var c=Error(r.message);c.stack=r.stack,i.reject(c),i=null,t.onTaskFinished()}else if(d==lw||d==uw||d==ow){var a=n.data;d==uw?(i.resolve({data:new Uint8Array(a),signature:n.signature}),i=null,t.onTaskFinished()):i.resolve(a&&new Uint8Array(a))}}}),!1),t.interface={append:function(t){return n({type:ow,data:t})},flush:function(){return n({type:uw})},abort:function(){t.onTaskFinished()}}}return t.interface;function d(e,i){var n,r;"function"==typeof(n=t.scripts[0])&&(n=n());try{r=new URL(n,i)}catch(t){r=n}return new Worker(r,e)}function c(e){var n=t.worker,r=new Promise((function(t,e){return i={resolve:t,reject:e}}));try{if(e.data)try{e.data=e.data.buffer,n.postMessage(e,[e.data])}catch(t){n.postMessage(e)}else n.postMessage(e)}catch(e){i.reject(e),i=null,t.onTaskFinished()}return r}}(t,n):function(t,e){var i=function(t,e,i){return e.codecType.startsWith(MK)?new NK(t,e,i):e.codecType.startsWith(RK)?new UK(t,e,i):void 0}(t.codecConstructor,t.options,e);return{append:function(e){try{return YI(UI((function(){return YI(i.append(e))}),(function(e){throw t.onTaskFinished(),e})))}catch(t){return Promise.reject(t)}},flush:function(){try{return YI(NI((function(){return YI(i.flush())}),(function(e,i){return t.onTaskFinished(),jI(e,i)})))}catch(t){return Promise.reject(t)}},abort:function(){t.onTaskFinished()}}}(t,n)},yw=[],bw=[];function hw(t,e,i){var n=!(!e.compressed&&!e.signed&&!e.encrypted)&&(e.useWebWorkers||void 0===e.useWebWorkers&&i.useWebWorkers),r=n&&i.workerScripts?i.workerScripts[e.codecType]:[];if(yw.length<i.maxWorkers){var d={};return yw.push(d),pw(d,t,e,i,a,n,r)}var c=yw.find((function(t){return!t.busy}));return c?(Zw(c),pw(c,t,e,i,a,n,r)):new Promise((function(i){return bw.push({resolve:i,codecConstructor:t,options:e,webWorker:n,scripts:r})}));function a(t){if(bw.length){var e=f(bw.splice(0,1),1)[0],n=e.resolve,r=e.codecConstructor,d=e.options,c=e.webWorker,s=e.scripts;n(pw(t,r,d,i,a,c,s))}else t.worker?(Zw(t),Number.isFinite(i.terminateWorkerTimeout)&&i.terminateWorkerTimeout>=0&&(t.terminateTimeout=setTimeout((function(){yw=yw.filter((function(e){return e!=t})),t.terminate()}),i.terminateWorkerTimeout))):yw=yw.filter((function(e){return e!=t}))}}function Zw(t){t.terminateTimeout&&(clearTimeout(t.terminateTimeout),t.terminateTimeout=null)}function fw(t,e,i){return function(){function r(n){c(this,r);var d=this;d.codec=new t(Object.assign({},e,n)),i(d.codec,(function(t){if(d.pendingData){var e=d.pendingData;d.pendingData=new Uint8Array(e.length+t.length),d.pendingData.set(e,0),d.pendingData.set(t,e.length)}else d.pendingData=new Uint8Array(t)}))}return s(r,[{key:"append",value:function(t){return this.codec.push(t),n(this)}},{key:"flush",value:function(){return this.codec.push(new Uint8Array(0),!0),n(this)}}]),r}();function n(t){if(t.pendingData){var e=t.pendingData;return t.pendingData=null,e}return new Uint8Array(0)}}var Lw=W,xw={},Xw=he;xw.f=Xw;var Iw=Lw,Gw=te,Kw=xw,Ww=Ne.f,vw=function(t){var e=Iw.Symbol||(Iw.Symbol={});Gw(e,t)||Ww(e,t,{value:Kw.f(t)})};vw("iterator");var Sw={},ww=O,gw=rt,Yw=sn.f,Vw=za,Tw="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];Sw.f=function(t){return Tw&&"Window"==ww(t)?function(t){try{return Yw(t)}catch(t){return Vw(Tw)}}(t):Yw(gw(t))};var Hw=V,kw=ut,Pw=he,Cw=an,Jw=or,Mw=W,Rw=V,Dw=z,Uw=w,Nw=It,jw=S,zw=te,Fw=mt,Ew=Qe,Qw=rt,Ow=ve,Bw=yh,Aw=M,_w=Td,qw=md,$w=sn,tg=Sw,eg=Cn,ig=v,ng=Ne,rg=ld,dg=T,cg=an,ag=Ut.exports,sg=vi,lg=de,og=he,ug=xw,mg=vw,pg=Tc,yg=zi,bg=$r.forEach,hg=Wi("hidden"),Zg="Symbol",fg=yg.set,Lg=yg.getterFor(Zg),xg=Object.prototype,Xg=Mw.Symbol,Ig=Xg&&Xg.prototype,Gg=Mw.TypeError,Kg=Mw.QObject,Wg=ig.f,vg=ng.f,Sg=tg.f,wg=dg.f,gg=Dw([].push),Yg=ag("symbols"),Vg=ag("op-symbols"),Tg=ag("wks"),Hg=!Kg||!Kg.prototype||!Kg.prototype.findChild,kg=Uw&&jw((function(){return 7!=_w(vg({},"a",{get:function(){return vg(this,"a",{value:7}).a}})).a}))?function(t,e,i){var n=Wg(xg,e);n&&delete xg[e],vg(t,e,i),n&&t!==xg&&vg(xg,e,n)}:vg,Pg=function(t,e){var i=Yg[t]=_w(Ig);return fg(i,{type:Zg,tag:t,description:e}),Uw||(i.description=e),i},Cg=function(t,e,i){t===xg&&Cg(Vg,e,i),Ew(t);var n=Ow(e);return Ew(i),zw(Yg,n)?(i.enumerable?(zw(t,hg)&&t[hg][n]&&(t[hg][n]=!1),i=_w(i,{enumerable:Aw(0,!1)})):(zw(t,hg)||vg(t,hg,Aw(1,{})),t[hg][n]=!0),kg(t,n,i)):vg(t,n,i)},Jg=function(t,e){Ew(t);var i=Qw(e),n=qw(i).concat(Ug(i));return bg(n,(function(e){Uw&&!Rw(Mg,i,e)||Cg(t,e,i[e])})),t},Mg=function(t){var e=Ow(t),i=Rw(wg,this,e);return!(this===xg&&zw(Yg,e)&&!zw(Vg,e))&&(!(i||!zw(this,e)||!zw(Yg,e)||zw(this,hg)&&this[hg][e])||i)},Rg=function(t,e){var i=Qw(t),n=Ow(e);if(i!==xg||!zw(Yg,n)||zw(Vg,n)){var r=Wg(i,n);return!r||!zw(Yg,n)||zw(i,hg)&&i[hg][n]||(r.enumerable=!0),r}},Dg=function(t){var e=Sg(Qw(t)),i=[];return bg(e,(function(t){zw(Yg,t)||zw(sg,t)||gg(i,t)})),i},Ug=function(t){var e=t===xg,i=Sg(e?Vg:Qw(t)),n=[];return bg(i,(function(t){!zw(Yg,t)||e&&!zw(xg,t)||gg(n,Yg[t])})),n};Nw||(Xg=function(){if(Fw(Ig,this))throw Gg("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?Bw(arguments[0]):void 0,e=lg(t),i=function(t){this===xg&&Rw(i,Vg,t),zw(this,hg)&&zw(this[hg],e)&&(this[hg][e]=!1),kg(this,e,Aw(1,t))};return Uw&&Hg&&kg(xg,e,{configurable:!0,set:i}),Pg(e,t)},cg(Ig=Xg.prototype,"toString",(function(){return Lg(this).tag})),cg(Xg,"withoutSetter",(function(t){return Pg(lg(t),t)})),dg.f=Mg,ng.f=Cg,rg.f=Jg,ig.f=Rg,$w.f=tg.f=Dg,eg.f=Ug,ug.f=function(t){return Pg(og(t),t)},Uw&&(vg(Ig,"description",{configurable:!0,get:function(){return Lg(this).description}}),cg(xg,"propertyIsEnumerable",Mg,{unsafe:!0}))),Jw({global:!0,constructor:!0,wrap:!0,forced:!Nw,sham:!Nw},{Symbol:Xg}),bg(qw(Tg),(function(t){mg(t)})),Jw({target:Zg,stat:!0,forced:!Nw},{useSetter:function(){Hg=!0},useSimple:function(){Hg=!1}}),Jw({target:"Object",stat:!0,forced:!Nw,sham:!Uw},{create:function(t,e){return void 0===e?_w(t):Jg(_w(t),e)},defineProperty:Cg,defineProperties:Jg,getOwnPropertyDescriptor:Rg}),Jw({target:"Object",stat:!0,forced:!Nw},{getOwnPropertyNames:Dg}),function(){var t=kw("Symbol"),e=t&&t.prototype,i=e&&e.valueOf,n=Pw("toPrimitive");e&&!e[n]&&Cw(e,n,(function(){return Hw(i,this)}),{arity:1})}(),pg(Xg,Zg),sg[hg]=!0;var Ng=It&&!!Symbol.for&&!!Symbol.keyFor,jg=or,zg=ut,Fg=te,Eg=yh,Qg=Ut.exports,Og=Ng,Bg=Qg("string-to-symbol-registry"),Ag=Qg("symbol-to-string-registry");jg({target:"Symbol",stat:!0,forced:!Og},{for:function(t){var e=Eg(t);if(Fg(Bg,e))return Bg[e];var i=zg("Symbol")(e);return Bg[e]=i,Ag[i]=e,i}});var _g=or,qg=te,$g=wt,tY=Yt,eY=Ng,iY=(0,Ut.exports)("symbol-to-string-registry");_g({target:"Symbol",stat:!0,forced:!eY},{keyFor:function(t){if(!$g(t))throw TypeError(tY(t)+" is not a symbol");if(qg(iY,t))return iY[t]}});var nY=or,rY=ut,dY=ap,cY=V,aY=z,sY=S,lY=hr,oY=dt,uY=at,mY=wt,pY=$p,yY=It,bY=rY("JSON","stringify"),hY=aY(/./.exec),ZY=aY("".charAt),fY=aY("".charCodeAt),LY=aY("".replace),xY=aY(1..toString),XY=/[\uD800-\uDFFF]/g,IY=/^[\uD800-\uDBFF]$/,GY=/^[\uDC00-\uDFFF]$/,KY=!yY||sY((function(){var t=rY("Symbol")();return"[null]"!=bY([t])||"{}"!=bY({a:t})||"{}"!=bY(Object(t))})),WY=sY((function(){return'"\\udf06\\ud834"'!==bY("\udf06\ud834")||'"\\udead"'!==bY("\udead")})),vY=function(t,e){var i=pY(arguments),n=e;if((uY(e)||void 0!==t)&&!mY(t))return lY(e)||(e=function(t,e){if(oY(n)&&(e=cY(n,this,t,e)),!mY(e))return e}),i[1]=e,dY(bY,null,i)},SY=function(t,e,i){var n=ZY(i,e-1),r=ZY(i,e+1);return hY(IY,t)&&!hY(GY,r)||hY(GY,t)&&!hY(IY,n)?"\\u"+xY(fY(t,0),16):t};bY&&nY({target:"JSON",stat:!0,arity:3,forced:KY||WY},{stringify:function(){var t=pY(arguments),e=dY(KY?vY:bY,null,t);return WY&&"string"==typeof e?LY(e,XY,SY):e}});var wY=Cn,gY=_t;or({target:"Object",stat:!0,forced:!It||S((function(){wY.f(1)}))},{getOwnPropertySymbols:function(t){var e=wY.f;return e?e(gY(t)):[]}});var YY=or,VY=w,TY=W,HY=z,kY=te,PY=dt,CY=mt,JY=yh,MY=Ne.f,RY=Qn,DY=TY.Symbol,UY=DY&&DY.prototype;if(VY&&PY(DY)&&(!("description"in UY)||void 0!==DY().description)){var NY={},jY=function(){var t=1>arguments.length||void 0===arguments[0]?void 0:JY(arguments[0]),e=CY(UY,this)?new DY(t):void 0===t?DY():DY(t);return""===t&&(NY[e]=!0),e};RY(jY,DY),jY.prototype=UY,UY.constructor=jY;var zY=DY("test")+""=="Symbol(test)",FY=HY(UY.toString),EY=HY(UY.valueOf),QY=/^Symbol\((.*)\)[^)]+$/,OY=HY("".replace),BY=HY("".slice);MY(UY,"description",{configurable:!0,get:function(){var t=EY(this),e=FY(t);if(kY(NY,t))return"";var i=zY?BY(e,7,-1):OY(e,QY,"$1");return""===i?void 0:i}}),YY({global:!0,constructor:!0,forced:!0},{Symbol:jY})}var AY=jx,_Y=Ed;or({target:"Object",stat:!0},{fromEntries:function(t){var e={};return AY(t,(function(t,i){_Y(e,t,i)}),{AS_ENTRIES:!0}),e}});var qY=oi.PROPER,$Y="\t\n\v\f\r \u2028\u2029\ufeff",tV=JX.trim;or({target:"String",proto:!0,forced:("trim",S((function(){return qY&&"trim"!==$Y.trim.name})))},{trim:function(){return tV(this)}});var eV=z,iV=_t,nV=Math.floor,rV=eV("".charAt),dV=eV("".replace),cV=eV("".slice),aV=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,sV=/\$([$&'`]|\d{1,2})/g,lV=ap,oV=V,uV=z,mV=iZ,pV=S,yV=Qe,bV=dt,hV=mn,ZV=Ln,fV=yh,LV=et,xV=ZZ,XV=Ct,IV=function(t,e,i,n,r,d){var c=i+t.length,a=n.length,s=sV;return void 0!==r&&(r=iV(r),s=aV),dV(d,s,(function(d,s){var l;switch(rV(s,0)){case"$":return"$";case"&":return t;case"`":return cV(e,0,i);case"'":return cV(e,c);case"<":l=r[cV(s,1,-1)];break;default:var o=+s;if(0===o)return d;if(o>a){var u=nV(o/10);return 0===u||u>a?d:void 0===n[u-1]?rV(s,1):n[u-1]+rV(s,1)}l=n[o-1]}return void 0===l?"":l}))},GV=KZ,KV=he("replace"),WV=Math.max,vV=Math.min,SV=uV([].concat),wV=uV([].push),gV=uV("".indexOf),YV=uV("".slice),VV=!!/./[KV]&&""===/./[KV]("a","$0");mV("replace",(function(t,e,i){var n=VV?"$":"$0";return[function(t,i){var n=LV(this),r=null==t?void 0:XV(t,KV);return r?oV(r,t,n,i):oV(e,fV(n),t,i)},function(t,r){var d=yV(this),c=fV(t);if("string"==typeof r&&-1===gV(r,n)&&-1===gV(r,"$<")){var a=i(e,d,c,r);if(a.done)return a.value}var s=bV(r);s||(r=fV(r));var l=d.global;if(l){var o=d.unicode;d.lastIndex=0}for(var u=[];;){var m=GV(d,c);if(null===m)break;if(wV(u,m),!l)break;""===fV(m[0])&&(d.lastIndex=xV(c,ZV(d.lastIndex),o))}for(var p,y="",b=0,h=0;u.length>h;h++){for(var Z=fV((m=u[h])[0]),f=WV(vV(hV(m.index),c.length),0),L=[],x=1;x<m.length;x++)wV(L,void 0===(p=m[x])?p:p+"");var X=m.groups;if(s){var I=SV([Z],L,f,c);void 0!==X&&wV(I,X);var G=fV(lV(r,void 0,I))}else G=IV(Z,c,f,L,X,r);b>f||(y+=YV(c,b,f)+G,b=f+Z.length)}return y+YV(c,b)}]}),!!pV((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}))||VV);var TV={exports:{}},HV=S((function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}})),kV=at,PV=O,CV=HV,JV=Object.isExtensible,MV=S((function(){JV(1)}))||CV?function(t){return!!kV(t)&&(!CV||"ArrayBuffer"!=PV(t))&&(!JV||JV(t))}:JV,RV=!S((function(){return Object.isExtensible(Object.preventExtensions({}))})),DV=or,UV=z,NV=vi,jV=at,zV=te,FV=Ne.f,EV=sn,QV=Sw,OV=MV,BV=RV,AV=!1,_V=de("meta"),qV=0,$V=function(t){FV(t,_V,{value:{objectID:"O"+qV++,weakData:{}}})},tT=TV.exports={enable:function(){tT.enable=function(){},AV=!0;var t=EV.f,e=UV([].splice),i={};i[_V]=1,t(i).length&&(EV.f=function(i){for(var n=t(i),r=0,d=n.length;d>r;r++)if(n[r]===_V){e(n,r,1);break}return n},DV({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:QV.f}))},fastKey:function(t,e){if(!jV(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!zV(t,_V)){if(!OV(t))return"F";if(!e)return"E";$V(t)}return t[_V].objectID},getWeakData:function(t,e){if(!zV(t,_V)){if(!OV(t))return!0;if(!e)return!1;$V(t)}return t[_V].weakData},onFreeze:function(t){return BV&&AV&&OV(t)&&!zV(t,_V)&&$V(t),t}};NV[_V]=!0;var eT=or,iT=W,nT=z,rT=ir,dT=an,cT=TV.exports,aT=jx,sT=ga,lT=dt,oT=at,uT=S,mT=Ll,pT=Tc,yT=Bo,bT=function(t,e,i){var n=-1!==t.indexOf("Map"),r=-1!==t.indexOf("Weak"),d=n?"set":"add",c=iT[t],a=c&&c.prototype,s=c,l={},o=function(t){var e=nT(a[t]);dT(a,t,"add"==t?function(t){return e(this,0===t?0:t),this}:"delete"==t?function(t){return!(r&&!oT(t))&&e(this,0===t?0:t)}:"get"==t?function(t){return r&&!oT(t)?void 0:e(this,0===t?0:t)}:"has"==t?function(t){return!(r&&!oT(t))&&e(this,0===t?0:t)}:function(t,i){return e(this,0===t?0:t,i),this})};if(rT(t,!lT(c)||!(r||a.forEach&&!uT((function(){(new c).entries().next()})))))s=i.getConstructor(e,t,n,d),cT.enable();else if(rT(t,!0)){var u=new s,m=u[d](r?{}:-0,1)!=u,p=uT((function(){u.has(1)})),y=mT((function(t){new c(t)})),b=!r&&uT((function(){for(var t=new c,e=5;e--;)t[d](e,e);return!t.has(-0)}));y||((s=e((function(t,e){sT(t,a);var i=yT(new c,t,s);return null!=e&&aT(e,i[d],{that:i,AS_ENTRIES:n}),i}))).prototype=a,a.constructor=s),(p||b)&&(o("delete"),o("has"),n&&o("get")),(b||m)&&o(d),r&&a.clear&&delete a.clear}return l[t]=s,eT({global:!0,constructor:!0,forced:s!=c},l),pT(s,t),r||i.setStrong(s,t,n),s},hT=Ne.f,ZT=Td,fT=va,LT=yr,xT=ga,XT=jx,IT=ua,GT=Fo,KT=w,WT=TV.exports.fastKey,vT=zi.set,ST=zi.getterFor,wT={getConstructor:function(t,e,i,n){var r=t((function(t,r){xT(t,d),vT(t,{type:e,index:ZT(null),first:void 0,last:void 0,size:0}),KT||(t.size=0),null!=r&&XT(r,t[n],{that:t,AS_ENTRIES:i})})),d=r.prototype,c=ST(e),a=function(t,e,i){var n,r,d=c(t),a=s(t,e);return a?a.value=i:(d.last=a={index:r=WT(e,!0),key:e,value:i,previous:n=d.last,next:void 0,removed:!1},d.first||(d.first=a),n&&(n.next=a),KT?d.size++:t.size++,"F"!==r&&(d.index[r]=a)),t},s=function(t,e){var i,n=c(t),r=WT(e);if("F"!==r)return n.index[r];for(i=n.first;i;i=i.next)if(i.key==e)return i};return fT(d,{clear:function(){for(var t=c(this),e=t.index,i=t.first;i;)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete e[i.index],i=i.next;t.first=t.last=void 0,KT?t.size=0:this.size=0},delete:function(t){var e=this,i=c(e),n=s(e,t);if(n){var r=n.next,d=n.previous;delete i.index[n.index],n.removed=!0,d&&(d.next=r),r&&(r.previous=d),i.first==n&&(i.first=r),i.last==n&&(i.last=d),KT?i.size--:e.size--}return!!n},forEach:function(t){for(var e,i=c(this),n=LT(t,arguments.length>1?arguments[1]:void 0);e=e?e.next:i.first;)for(n(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!s(this,t)}}),fT(d,i?{get:function(t){var e=s(this,t);return e&&e.value},set:function(t,e){return a(this,0===t?0:t,e)}}:{add:function(t){return a(this,t=0===t?0:t,t)}}),KT&&hT(d,"size",{get:function(){return c(this).size}}),r},setStrong:function(t,e,i){var n=e+" Iterator",r=ST(e),d=ST(n);IT(t,e,(function(t,e){vT(this,{type:n,target:t,state:r(t),kind:e,last:void 0})}),(function(){for(var t=d(this),e=t.kind,i=t.last;i&&i.removed;)i=i.previous;return t.target&&(t.last=i=i?i.next:t.state.first)?"keys"==e?{value:i.key,done:!1}:"values"==e?{value:i.value,done:!1}:{value:[i.key,i.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),i?"entries":"values",!i,!0),GT(e)}};bT("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),wT);var gT=w,YT=z,VT=md,TT=rt,HT=YT(T.f),kT=YT([].push),PT=function(t){return function(e){for(var i,n=TT(e),r=VT(n),d=r.length,c=0,a=[];d>c;)i=r[c++],gT&&!HT(n,i)||kT(a,t?[i,n[i]]:n[i]);return a}},CT=[PT(!0),PT(!1)][0];or({target:"Object",stat:!0},{entries:function(t){return CT(t)}});var JT=gI((function(t,e,i){var n=e.options,r=e.url;return YI(fetch(r,Object.assign({},n,{method:t,headers:i})),(function(t){if(400>t.status)return t;throw Error(zT+(t.statusText||t.status))}))})),MT=gI((function(t,e,i){return DI((function(){return t.preventHeadRequest?VI(i(t,t.options)):YI(e(qT,t,ZH(t)),(function(e){var n=e.headers.get(OT);return DI((function(){if(!n)return VI(i(t,t.options));t.size=Number(n)}))}))}))})),RT=gI((function(t,e){return YI(e($T,t,ZH(t)),(function(e){return YI(e.arrayBuffer(),(function(e){t.data=new Uint8Array(e),t.size||(t.size=t.data.length)}))}))})),DT=gI((function(t){return VI(RT(t,fH))})),UT=gI((function(t){return VI(RT(t,JT))})),NT=gI((function(t,e,i,n,r){return t.useRangeHeader||t.forceRangeRequests?YI(n($T,t,hH(t,e,i)),(function(t){if(206!=t.status)throw Error(FT);return YI(t.arrayBuffer(),(function(t){return new Uint8Array(t)}))})):RI((function(){if(!t.data)return VI(r(t,t.options))}),(function(){return new Uint8Array(t.data.subarray(e,e+i))}))})),jT=gI((function(t,e,i){return function(t){if("undefined"!=typeof document){var e=document.createElement("a");return e.href=t,"http:"==e.protocol||"https:"==e.protocol}return/^https?:\/\//i.test(t)}(t.url)&&(t.useRangeHeader||t.forceRangeRequests)?YI(e($T,t,hH(t)),(function(n){return function(){if(t.forceRangeRequests||n.headers.get(AT)==tH){var r,d=n.headers.get(BT);if(d){var c=d.trim().split(/\s*\/\s*/);if(c.length){var a=c[1];a&&"*"!=a&&(r=Number(a))}}return DI((function(){if(void 0===r)return VI(MT(t,e,i));t.size=r}))}throw Error(FT)}()})):VI(MT(t,e,i))})),zT="HTTP error ",FT="HTTP Range not supported",ET="Reader is not seekable",QT="text/plain",OT="Content-Length",BT="Content-Range",AT="Accept-Ranges",_T="Range",qT="HEAD",$T="GET",tH="bytes",eH=function(){function t(){c(this,t),this.size=0}return s(t,[{key:"init",value:function(){this.initialized=!0}}]),t}(),iH=function(t){o(i,t);var e=b(i);function i(){return c(this,i),e.apply(this,arguments)}return s(i)}(eH),nH=function(t){o(i,t);var e=b(i);function i(){return c(this,i),e.apply(this,arguments)}return s(i,[{key:"writeUint8Array",value:function(t){this.size+=t.length}}]),i}(eH),rH=function(t){o(i,t);var e=b(i);function i(t){var n;return c(this,i),(n=e.call(this)).blobReader=new sH(new Blob([t],{type:QT})),n}return s(i,[{key:"init",value:function(){Z(u(i.prototype),"init",this).call(this),this.blobReader.init(),this.size=this.blobReader.size}},{key:"readUint8Array",value:function(t,e){return this.blobReader.readUint8Array(t,e)}}]),i}(iH),dH=function(t){o(i,t);var e=b(i);function i(t){var n;return c(this,i),(n=e.call(this)).encoding=t,n.blob=new Blob([],{type:QT}),n}return s(i,[{key:"writeUint8Array",value:function(t){Z(u(i.prototype),"writeUint8Array",this).call(this,t),this.blob=new Blob([this.blob,t.buffer],{type:QT})}},{key:"getData",value:function(){var t=this;if(this.blob.text)return this.blob.text();var e=new FileReader;return new Promise((function(i,n){e.onload=function(t){return i(t.target.result)},e.onerror=function(){return n(e.error)},e.readAsText(t.blob,t.encoding)}))}}]),i}(nH),cH=function(t){o(i,t);var e=b(i);function i(t){var n;c(this,i),(n=e.call(this)).dataURI=t;for(var r=t.length;"="==t.charAt(r-1);)r--;return n.dataStart=t.indexOf(",")+1,n.size=Math.floor(.75*(r-n.dataStart)),n}return s(i,[{key:"readUint8Array",value:function(t,e){for(var i=new Uint8Array(e),n=4*Math.floor(t/3),r=atob(this.dataURI.substring(n+this.dataStart,4*Math.ceil((t+e)/3)+this.dataStart)),d=t-3*Math.floor(n/4),c=d;d+e>c;c++)i[c-d]=r.charCodeAt(c);return i}}]),i}(iH),aH=function(t){o(i,t);var e=b(i);function i(t){var n;return c(this,i),(n=e.call(this)).data="data:"+(t||"")+";base64,",n.pending=[],n}return s(i,[{key:"writeUint8Array",value:function(t){Z(u(i.prototype),"writeUint8Array",this).call(this,t);var e=0,n=this.pending,r=this.pending.length;for(this.pending="",e=0;e<3*Math.floor((r+t.length)/3)-r;e++)n+=String.fromCharCode(t[e]);for(;e<t.length;e++)this.pending+=String.fromCharCode(t[e]);n.length>2?this.data+=btoa(n):this.pending=n}},{key:"getData",value:function(){return this.data+btoa(this.pending)}}]),i}(nH),sH=function(t){o(i,t);var e=b(i);function i(t){var n;return c(this,i),(n=e.call(this)).blob=t,n.size=t.size,n}return s(i,[{key:"readUint8Array",value:function(t,e){try{var i=this;if(i.blob.arrayBuffer)return YI(i.blob.slice(t,t+e).arrayBuffer(),(function(t){return new Uint8Array(t)}));var n=new FileReader;return YI(new Promise((function(r,d){n.onload=function(t){return r(new Uint8Array(t.target.result))},n.onerror=function(){return d(n.error)},n.readAsArrayBuffer(i.blob.slice(t,t+e))})))}catch(t){return Promise.reject(t)}}}]),i}(iH),lH=function(t){o(i,t);var e=b(i);function i(t){var n;return c(this,i),(n=e.call(this)).contentType=t,n.arrayBuffersMaxlength=8,oH(p(n)),n}return s(i,[{key:"writeUint8Array",value:function(t){Z(u(i.prototype),"writeUint8Array",this).call(this,t),this.arrayBuffers.length==this.arrayBuffersMaxlength&&uH(this),this.arrayBuffers.push(t.buffer)}},{key:"getData",value:function(){return this.blob||(this.arrayBuffers.length&&uH(this),this.blob=this.pendingBlob,oH(this)),this.blob}}]),i}(nH);function oH(t){t.pendingBlob=new Blob([],{type:t.contentType}),t.arrayBuffers=[]}function uH(t){t.pendingBlob=new Blob([t.pendingBlob].concat(L(t.arrayBuffers)),{type:t.contentType}),t.arrayBuffers=[]}var mH=function(){function t(e){c(this,t),this.readableStream=e,this.reader=e.getReader(),this.size=1/0,this.index=0,this.currentSize=0,this.pendingValue=new Uint8Array}return s(t,[{key:"init",value:function(){this.initialized=!0}},{key:"readUint8Array",value:function(t,e){try{var i=this;if(i.index!=t)throw Error(ET);var n,r=new Uint8Array(e),d=0;return YI(TI(JI((function(){return YI(i.reader.read(),(function(t){var c=t.value;if(n=t.done,c?i.currentSize+=c.length:(c=i.pendingValue,i.pendingValue=new Uint8Array),i.pendingValue.length){var a=new Uint8Array(i.pendingValue.length+c.length);a.set(i.pendingValue),a.set(c,i.pendingValue.length),i.pendingValue=new Uint8Array,c=a}d+c.length>e?(r.set(c.subarray(0,e),d),i.pendingValue=c.subarray(e),d+=e):(r.set(c,d),d+=c.length)}))}),(function(){return e>d&&!n})),(function(){return n&&i.size==1/0&&(i.size=i.currentSize),i.size<e&&(r=r.slice(0,i.size),e=i.size),i.index+=e,r})))}catch(t){return Promise.reject(t)}}}]),t}(),pH=function(t){o(i,t);var e=b(i);function i(t){var n;return c(this,i),(n=e.call(this)).writableStream=t,n.writer=t.getWriter(),n}return s(i,[{key:"writeUint8Array",value:function(t){try{var e=this;return YI(e.writer.ready,(function(){return e.writer.write(t)}))}catch(t){return Promise.reject(t)}}},{key:"getData",value:function(){try{var t=this;return YI(t.writer.ready,(function(){return YI(t.writer.close(),(function(){return t.writableStream}))}))}catch(t){return Promise.reject(t)}}}]),i}(nH),yH=function(t){o(i,t);var e=b(i);function i(t,n){var r;return c(this,i),(r=e.call(this)).url=t,r.preventHeadRequest=n.preventHeadRequest,r.useRangeHeader=n.useRangeHeader,r.forceRangeRequests=n.forceRangeRequests,r.options=Object.assign({},n),delete r.options.preventHeadRequest,delete r.options.useRangeHeader,delete r.options.forceRangeRequests,delete r.options.useXHR,r}return s(i,[{key:"init",value:function(){try{var t=this;return Z(u(i.prototype),"init",t).call(t),YI(VI(jT(t,JT,UT)))}catch(t){return Promise.reject(t)}}},{key:"readUint8Array",value:function(t,e){return NT(this,t,e,JT,UT)}}]),i}(iH),bH=function(t){o(i,t);var e=b(i);function i(t,n){var r;return c(this,i),(r=e.call(this)).url=t,r.preventHeadRequest=n.preventHeadRequest,r.useRangeHeader=n.useRangeHeader,r.forceRangeRequests=n.forceRangeRequests,r.options=n,r}return s(i,[{key:"init",value:function(){try{var t=this;return Z(u(i.prototype),"init",t).call(t),YI(VI(jT(t,fH,DT)))}catch(t){return Promise.reject(t)}}},{key:"readUint8Array",value:function(t,e){return NT(this,t,e,fH,DT)}}]),i}(iH);function hH(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return Object.assign({},ZH(t),l({},_T,tH+"="+e+"-"+(e+i-1)))}function ZH(t){var e=t.options.headers;if(e)return Symbol.iterator in e?Object.fromEntries(e):e}function fH(t,e,i){var n=e.url;return new Promise((function(e,r){var d=new XMLHttpRequest;if(d.addEventListener("load",(function(){if(400>d.status){var t=[];d.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach((function(e){var i=e.trim().split(/\s*:\s*/);i[0]=i[0].trim().replace(/^[a-z]|-[a-z]/g,(function(t){return t.toUpperCase()})),t.push(i)})),e({status:d.status,arrayBuffer:function(){return d.response},headers:new Map(t)})}else r(Error(zT+(d.statusText||d.status)))}),!1),d.addEventListener("error",(function(t){return r(t.detail.error)}),!1),d.open(t,n),i)for(var c=0,a=Object.entries(i);c<a.length;c++){var s=a[c];d.setRequestHeader(s[0],s[1])}d.responseType="arraybuffer",d.send()}))}var LH=function(t){o(i,t);var e=b(i);function i(t){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return c(this,i),(n=e.call(this)).url=t,r.useXHR?n.reader=new bH(t,r):n.reader=new yH(t,r),n}return s(i,[{key:"size",get:function(){return this.reader.size},set:function(){}},{key:"init",value:function(){try{var t=this;return Z(u(i.prototype),"init",t).call(t),YI(VI(t.reader.init()))}catch(t){return Promise.reject(t)}}},{key:"readUint8Array",value:function(t,e){return this.reader.readUint8Array(t,e)}}]),i}(iH),xH=function(t){o(i,t);var e=b(i);function i(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return c(this,i),n.useRangeHeader=!0,e.call(this,t,n)}return s(i)}(LH),XH=function(t){o(i,t);var e=b(i);function i(t){var n;return c(this,i),(n=e.call(this)).array=t,n.size=t.length,n}return s(i,[{key:"readUint8Array",value:function(t,e){return this.array.slice(t,t+e)}}]),i}(iH),IH=function(t){o(i,t);var e=b(i);function i(){var t;return c(this,i),(t=e.call(this)).array=new Uint8Array(0),t}return s(i,[{key:"writeUint8Array",value:function(t){Z(u(i.prototype),"writeUint8Array",this).call(this,t);var e=this.array;this.array=new Uint8Array(e.length+t.length),this.array.set(e),this.array.set(t,e.length)}},{key:"getData",value:function(){return this.array}}]),i}(nH),GH=or,KH=z,WH=v.f,vH=Ln,SH=yh,wH=OI,gH=et,YH=AI,VH=KH("".endsWith),TH=KH("".slice),HH=Math.min,kH=YH("endsWith"),PH=!kH&&!!function(){var t=WH(String.prototype,"endsWith");return t&&!t.writable}();GH({target:"String",proto:!0,forced:!PH&&!kH},{endsWith:function(t){var e=SH(gH(this));wH(t);var i=arguments.length>1?arguments[1]:void 0,n=e.length,r=void 0===i?n:HH(vH(i),n),d=SH(t);return VH?VH(e,d,r):TH(e,r-d.length,r)===d}});var CH=4294967295,JH=65535,MH=67324752,RH=33639248,DH=101010256,UH=101075792,NH=117853008,jH=20,zH=56,FH=21589,EH=2048,QH="/",OH=new Date(2107,11,31),BH=new Date(1980,0,1),AH="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function _H(t,e){if(e&&"cp437"==e.trim().toLowerCase())return function(t){for(var e="",i=0;i<t.length;i++)e+=AH[t[i]];return e}(t);if("undefined"==typeof TextDecoder){var i=new FileReader;return new Promise((function(e,n){i.onload=function(t){return e(t.target.result)},i.onerror=function(){return n(i.error)},i.readAsText(new Blob([t]))}))}return new TextDecoder(e).decode(t)}var qH=gI((function(t,e){return RI((function(){if(e.length)return VI(t.writeUint8Array(e))}),(function(){return e.length}))})),$H=gI((function(t,e,i,n,r,d,c){var a=gI((function(){var d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=c.signal,u=r();return u>d?(ik(o,t),YI(e.readUint8Array(d+n,Math.min(s,u-d)),(function(e){var n=e.length;return ik(o,t),YI(t.append(e),(function(e){return ik(o,t),YI(qH(i,e),(function(t){if(l+=t,c.onprogress)try{c.onprogress(d+n,u)}catch(t){}return a(d+s,l)}))}))}))):YI(t.flush(),(function(t){return YI(qH(i,t.data),(function(e){return l+=e,{signature:t.signature,length:l}}))}))})),s=Math.max(d.chunkSize,tk);return a()})),tk=64,ek="Abort error";function ik(t,e){if(t&&t.aborted)throw e.abort(),Error(ek)}var nk=["filename","rawFilename","directory","encrypted","compressedSize","uncompressedSize","lastModDate","rawLastModDate","comment","rawComment","signature","extraField","rawExtraField","bitFlag","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","filenameUTF8","commentUTF8","offset","zip64","compressionMethod","extraFieldNTFS","lastAccessDate","creationDate","extraFieldExtendedTimestamp","version","versionMadeBy","msDosCompatible","internalFileAttribute","externalFileAttribute"],rk=s((function t(e){var i=this;c(this,t),nk.forEach((function(t){return i[t]=e[t]}))})),dk=gI((function(t,e,i,n,r){var d,c=gI((function(e){var r=i-e;return YI(Tk(t,r,e),(function(t){for(var e=t.length-n;e>=0;e--)if(t[e]==a[0]&&t[e+1]==a[1]&&t[e+2]==a[2]&&t[e+3]==a[3])return{offset:r+e,buffer:t.slice(e,e+n).buffer}}))})),a=new Uint8Array(4);d=e,Vk(a).setUint32(0,d,!0);var s=n+r;return YI(c(n),(function(t){return YI(t||c(Math.min(s,i)),void 0,t)}))})),ck=gI((function(t,e,i,n,r){var d=Vk(t.data);t.version=Sk(d,0),t.signature=gk(d,1);var c=new pG;c.append(r[i]);var a=Vk(new Uint8Array(4));return a.setUint32(0,c.get(),!0),YI(_H(t.data.subarray(5)),(function(i){t[e]=i,t.valid=!r.bitFlag.languageEncodingFlag&&t.signature==gk(a,0),t.valid&&(n[e]=t[e],n[e+"UTF8"]=!0)}))})),ak=gI((function(t,e,i,n){var r=e.rawExtraField,d=e.extraField=new Map,c=Vk(new Uint8Array(r)),a=0;try{for(;a<r.length;){var s=wk(c,a),l=wk(c,a+2);d.set(s,{type:s,data:r.slice(a+4,a+4+l)}),a+=4+l}}catch(t){}var o=wk(i,n+4);e.signature=gk(i,n+10),e.uncompressedSize=gk(i,n+18),e.compressedSize=gk(i,n+14);var u=d.get(1);u&&(function(t,e){e.zip64=!0;var i=Vk(t.data);t.values=[];for(var n=0;n<Math.floor(t.data.length/8);n++)t.values.push(Yk(i,0+8*n));for(var r=xk.filter((function(t){return e[t]==CH})),d=0;d<r.length;d++)t[r[d]]=t.values[d];xk.forEach((function(i){if(e[i]==CH){if(void 0===t[i])throw Error(yk);e[i]=t[i]}}))}(u,e),e.extraFieldZip64=u);var m=d.get(28789);return RI((function(){if(m)return YI(ck(m,"filename","rawFilename",e,t),(function(){e.extraFieldUnicodePath=m}))}),(function(){var i=d.get(25461);return RI((function(){if(i)return YI(ck(i,"comment","rawComment",e,t),(function(){e.extraFieldUnicodeComment=i}))}),(function(){var t=d.get(39169);t?(function(t,e,i){var n=Vk(t.data);t.vendorVersion=Sk(n,0),t.vendorId=Sk(n,2);var r=Sk(n,4);t.strength=r,t.originalCompressionMethod=i,e.compressionMethod=t.compressionMethod=wk(n,5)}(t,e,o),e.extraFieldAES=t):e.compressionMethod=o;var i=d.get(10);i&&(function(t,e){var i,n=Vk(t.data),r=4;try{for(;r<t.data.length&&!i;){var d=wk(n,r),c=wk(n,r+2);1==d&&(i=t.data.slice(r+4,r+4+c)),r+=4+c}}catch(t){}try{if(i&&24==i.length){var a=Vk(i),s=a.getBigUint64(0,!0),l=a.getBigUint64(8,!0),o=a.getBigUint64(16,!0);Object.assign(t,{rawLastModDate:s,rawLastAccessDate:l,rawCreationDate:o});var u={lastModDate:vk(s),lastAccessDate:vk(l),creationDate:vk(o)};Object.assign(t,u),Object.assign(e,u)}}catch(t){}}(i,e),e.extraFieldNTFS=i);var n=d.get(FH);n&&(function(t,e){var i=Vk(t.data),n=Sk(i,0),r=[],d=[];1==(1&n)&&(r.push("lastModDate"),d.push("rawLastModDate")),2==(2&n)&&(r.push("lastAccessDate"),d.push("rawLastAccessDate")),4==(4&n)&&(r.push("creationDate"),d.push("rawCreationDate"));var c=1;r.forEach((function(n,r){if(t.data.length>=c+4){var a=gk(i,c);e[n]=t[n]=new Date(1e3*a);var s=d[r];t[s]=a}c+=4}))}(n,e),e.extraFieldExtendedTimestamp=n)}))}))})),sk="File format is not recognized",lk="End of central directory not found",ok="End of Zip64 central directory not found",uk="End of Zip64 central directory locator not found",mk="Central directory header not found",pk="Local file header not found",yk="Zip64 extra field not found",bk="File contains encrypted entry",hk="Encryption method not supported",Zk="Compression method not supported",fk="utf-8",Lk="cp437",xk=["uncompressedSize","compressedSize","offset"],Xk=function(){function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};c(this,t),Object.assign(this,{reader:e,options:i,config:sh()})}return s(t,[{key:"getEntriesGenerator",value:function(){var t=this,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return r(e().mark((function n(){var r,c,a,s,l,o,u,m,p,y,b,h,Z,L,x,X,I,G,K,W,v;return e().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if((c=(r=t).reader).initialized){n.next=5;break}return n.next=5,d(c.init());case 5:if(c.size>=22){n.next=7;break}throw Error(sk);case 7:return n.next=9,d(dk(c,DH,c.size,22,1048560));case 9:if(a=n.sent){n.next=12;break}throw Error(lk);case 12:if(s=Vk(a),l=gk(s,12),o=gk(s,16),u=wk(s,8),m=0,o!=CH&&l!=CH&&u!=JH){n.next=43;break}return n.next=20,d(Tk(c,a.offset-jH,jH));case 20:if(p=n.sent,gk(y=Vk(p),0)==NH){n.next=24;break}throw Error(ok);case 24:return o=Yk(y,8),n.next=27,d(Tk(c,o,zH));case 27:if(b=n.sent,h=Vk(b),Z=a.offset-jH-zH,gk(h,0)==UH||o==Z){n.next=38;break}return L=o,m=(o=Z)-L,n.next=36,d(Tk(c,o,zH));case 36:b=n.sent,h=Vk(b);case 38:if(gk(h,0)==UH){n.next=40;break}throw Error(uk);case 40:u=Yk(h,32),l=Yk(h,40),o-=l;case 43:if(o>=0&&o<c.size){n.next=45;break}throw Error(sk);case 45:return x=0,n.next=48,d(Tk(c,o,l));case 48:if(X=n.sent,I=Vk(X),!l){n.next=60;break}if(G=a.offset-l,gk(I,x)==RH||o==G){n.next=60;break}return K=o,m=(o=G)-K,n.next=58,d(Tk(c,o,l));case 58:X=n.sent,I=Vk(X);case 60:if(o>=0&&o<c.size){n.next=62;break}throw Error(sk);case 62:W=e().mark((function t(n){var a,s,l,o,p,y,b,h,Z,L,G,K,W,v,S;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=new Ik(c,r.config,r.options),gk(I,x)==RH){t.next=3;break}throw Error(mk);case 3:return Gk(a,I,x+6),s=!!a.bitFlag.languageEncodingFlag,o=(l=x+46)+a.filenameLength,p=o+a.extraFieldLength,y=wk(I,x+4),Object.assign(a,{versionMadeBy:y,msDosCompatible:b=0==(0&y),compressedSize:0,uncompressedSize:0,commentLength:wk(I,x+32),directory:b&&16==(16&Sk(I,x+38)),offset:gk(I,x+42)+m,internalFileAttribute:gk(I,x+34),externalFileAttribute:gk(I,x+38),rawFilename:X.subarray(l,o),filenameUTF8:s,commentUTF8:s,rawExtraField:X.subarray(o,p)}),h=p+a.commentLength,a.rawComment=X.subarray(p,h),Z=Kk(r,i,"filenameEncoding"),L=Kk(r,i,"commentEncoding"),t.next=17,d(Promise.all([_H(a.rawFilename,a.filenameUTF8?fk:Z||Lk),_H(a.rawComment,a.commentUTF8?fk:L||Lk)]));case 17:return G=t.sent,K=f(G,2),W=K[0],v=K[1],a.filename=W,a.comment=v,!a.directory&&a.filename.endsWith(QH)&&(a.directory=!0),t.next=26,d(ak(a,a,I,x+6));case 26:if((S=new rk(a)).getData=function(t,e){return a.getData(t,S,e)},x=h,i.onprogress)try{i.onprogress(n+1,u,new rk(a))}catch(t){}return t.next=32,S;case 32:case"end":return t.stop()}}),t)})),v=0;case 64:if(v>=u){n.next=69;break}return n.delegateYield(W(v),"t0",66);case 66:v++,n.next=64;break;case 69:return n.abrupt("return",!0);case 70:case"end":return n.stop()}}),n)})))()}},{key:"getEntries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{var e=this,i=[],n=e.getEntriesGenerator(t),r=n.next();return YI(TI(CI((function(){return YI(!!r,(function(t){return!t.done}))}),void 0,(function(){var t=i.push;return YI(r,(function(e){t.call(i,e.value),r=n.next()}))})),(function(){return i})))}catch(t){return Promise.reject(t)}}},{key:"close",value:function(){return YI()}}]),t}(),Ik=function(){function t(e,i,n){c(this,t),Object.assign(this,{reader:e,config:i,options:n})}return s(t,[{key:"getData",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};try{var n=this,r=n,d=r.reader,c=r.offset,a=r.extraFieldAES,s=r.compressionMethod,l=r.config,o=r.bitFlag,u=r.signature,m=r.rawLastModDate,p=r.compressedSize,y=r.localDirectory={};return YI(RI((function(){if(!d.initialized)return VI(d.init())}),(function(){return YI(Tk(d,c,30),(function(n){var b=Vk(n),h=Kk(r,i,"password");if(h=h&&h.length&&h,a&&99!=a.originalCompressionMethod)throw Error(Zk);if(0!=s&&8!=s)throw Error(Zk);if(gk(b,0)!=MH)throw Error(pk);return Gk(y,b,4),YI(Tk(d,c,30+y.filenameLength+y.extraFieldLength),(function(Z){return n=Z,y.rawExtraField=n.subarray(30+y.filenameLength),YI(ak(r,y,b,4),(function(){e.lastAccessDate=y.lastAccessDate,e.creationDate=y.creationDate;var n=r.encrypted&&y.encrypted,b=n&&!a;if(n){if(!b&&void 0===a.strength)throw Error(hk);if(!h)throw Error(bk)}return YI(hw(l.Inflate,{codecType:RK,password:h,zipCrypto:b,encryptionStrength:a&&a.strength,signed:Kk(r,i,"checkSignature"),passwordVerification:b&&(o.dataDescriptor?m>>>8&255:u>>>24&255),signature:u,compressed:0!=s,encrypted:n,useWebWorkers:Kk(r,i,"useWebWorkers")},l),(function(e){return RI((function(){if(!t.initialized)return VI(t.init())}),(function(){var n=Kk(r,i,"signal"),a=c+30+y.filenameLength+y.extraFieldLength;return YI($H(e,d,t,a,(function(){return p}),l,{onprogress:i.onprogress,signal:n}),(function(){return t.getData()}))}))}))}))}))}))})))}catch(t){return Promise.reject(t)}}}]),t}();function Gk(t,e,i){var n=t.rawBitFlag=wk(e,i+2),r=1==(1&n),d=gk(e,i+6);Object.assign(t,{encrypted:r,version:wk(e,i),bitFlag:{level:(6&n)>>1,dataDescriptor:8==(8&n),languageEncodingFlag:(n&EH)==EH},rawLastModDate:d,lastModDate:Wk(d),filenameLength:wk(e,i+22),extraFieldLength:wk(e,i+24)})}function Kk(t,e,i){return void 0===e[i]?t.options[i]:e[i]}function Wk(t){var e=(4294901760&t)>>16,i=65535&t;try{return new Date(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&i)>>11,(2016&i)>>5,2*(31&i),0)}catch(t){}}function vk(t){return new Date(Number(t/BigInt(1e4)-BigInt(116444736e5)))}function Sk(t,e){return t.getUint8(e)}function wk(t,e){return t.getUint16(e,!0)}function gk(t,e){return t.getUint32(e,!0)}function Yk(t,e){return Number(t.getBigUint64(e,!0))}function Vk(t){return new DataView(t.buffer)}function Tk(t,e,i){return t.readUint8Array(e,i)}bT("Set",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),wT);var Hk=w,kk=oi.EXISTS,Pk=z,Ck=Ne.f,Jk=Function.prototype,Mk=Pk(Jk.toString),Rk=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,Dk=Pk(Rk.exec);Hk&&!kk&&Ck(Jk,"name",{configurable:!0,get:function(){try{return Dk(Rk,Mk(this))[1]}catch(t){return""}}});var Uk=gI((function(t,e){var i=gI((function(){return DI((function(){if(n<e.size)return YI(dP(e,n,n+r),(function(e){return YI(t.writeUint8Array(new Uint8Array(e)),(function(){return n+=r,MI(i)}))}))}))})),n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=536870912;return MI(i)})),Nk=gI((function(t,e,i){var n,r=t.writer,d=t.files,c=0,a=0,s=t.offset,l=d.size,o=I(d);try{for(o.s();!(n=o.n()).done;){var u=f(n.value,2)[1];a+=46+u.rawFilename.length+u.rawComment.length+u.rawExtraFieldZip64.length+u.rawExtraFieldAES.length+u.rawExtraFieldExtendedTimestamp.length+u.rawExtraFieldNTFS.length+u.rawExtraField.length}}catch(t){o.e(t)}finally{o.f()}var m=i.zip64||t.options.zip64||!1;if(s>=CH||a>=CH||l>=JH){if(!1===i.zip64||!1===t.options.zip64)throw Error(tP);m=!0}var p=new Uint8Array(a+(m?98:22)),y=pP(p);if(e&&e.length){if(e.length>JH)throw Error(Qk);lP(y,c+20,e.length)}var b,h=I(Array.from(d.values()).entries());try{for(h.s();!(b=h.n()).done;){var Z=f(b.value,2),L=Z[0],x=Z[1],X=x.rawFilename,G=x.rawExtraFieldZip64,K=x.rawExtraFieldAES,W=x.rawExtraField,v=x.rawComment,S=x.versionMadeBy,w=x.headerArray,g=x.directory,Y=x.zip64,V=x.msDosCompatible,T=x.internalFileAttribute,H=x.externalFileAttribute,k=void 0,P=void 0;if(x.extendedTimestamp){P=x.rawExtraFieldNTFS;var C=pP(k=new Uint8Array(9));lP(C,0,FH),lP(C,2,k.length-4),sP(C,4,1),oP(C,5,Math.floor(x.lastModDate.getTime()/1e3))}else P=k=new Uint8Array(0);var J=G.length+K.length+k.length+P.length+W.length;if(oP(y,c,RH),lP(y,c+4,S),mP(p,w,c+6),lP(y,c+30,J),lP(y,c+32,v.length),oP(y,c+34,T),H?oP(y,c+38,H):g&&V&&sP(y,c+38,16),oP(y,c+42,Y?CH:x.offset),mP(p,X,c+46),mP(p,G,c+46+X.length),mP(p,K,c+46+X.length+G.length),mP(p,k,c+46+X.length+G.length+K.length),mP(p,P,c+46+X.length+G.length+K.length+k.length),mP(p,W,c+46+X.length+G.length+K.length+k.length+P.length),mP(p,v,c+46+X.length+J),c+=46+X.length+J+v.length,i.onprogress)try{i.onprogress(L+1,d.size,new rk(x))}catch(t){}}}catch(t){h.e(t)}finally{h.f()}return m&&(oP(y,c,UH),uP(y,c+4,BigInt(44)),lP(y,c+12,45),lP(y,c+14,45),uP(y,c+24,BigInt(l)),uP(y,c+32,BigInt(l)),uP(y,c+40,BigInt(a)),uP(y,c+48,BigInt(s)),oP(y,c+56,NH),uP(y,c+64,BigInt(s)+BigInt(a)),oP(y,c+72,1),l=JH,s=CH,a=CH,c+=76),oP(y,c,DH),lP(y,c+8,l),lP(y,c+10,l),oP(y,c+12,a),oP(y,c+16,s),YI(r.writeUint8Array(p),(function(){return DI((function(){if(e&&e.length)return VI(r.writeUint8Array(e))}))}))})),jk=gI((function(t,e,i,n){var r,d,c,a=n.rawFilename,s=n.lastAccessDate,l=n.creationDate,o=n.password,u=n.level,m=n.zip64,p=n.zipCrypto,y=n.dataDescriptor,b=n.dataDescriptorSignature,h=n.directory,Z=n.version,f=n.versionMadeBy,L=n.rawComment,x=n.rawExtraField,X=n.useWebWorkers,I=n.onprogress,G=n.signal,K=n.encryptionStrength,W=n.extendedTimestamp,v=n.msDosCompatible,S=n.internalFileAttribute,w=n.externalFileAttribute,g=!(!o||!o.length),Y=0!==u&&!h;if(g&&!p){var V=pP(r=new Uint8Array(eP.length+2));lP(V,0,39169),mP(r,eP,2),sP(V,8,K)}else r=new Uint8Array(0);if(W){var T=pP(c=new Uint8Array(9+(s?4:0)+(l?4:0)));lP(T,0,FH),lP(T,2,c.length-4),sP(T,4,1+(s?2:0)+(l?4:0)),oP(T,5,Math.floor(n.lastModDate.getTime()/1e3)),s&&oP(T,9,Math.floor(s.getTime()/1e3)),l&&oP(T,13,Math.floor(l.getTime()/1e3));try{var H=pP(d=new Uint8Array(36)),k=cP(n.lastModDate);lP(H,0,10),lP(H,2,32),lP(H,8,1),lP(H,10,24),uP(H,12,k),uP(H,20,cP(s)||k),uP(H,28,cP(l)||k)}catch(t){d=new Uint8Array(0)}}else d=c=new Uint8Array(0);var P={version:Z||20,versionMadeBy:f,zip64:m,directory:!!h,filenameUTF8:!0,rawFilename:a,commentUTF8:!0,rawComment:L,rawExtraFieldZip64:m?new Uint8Array(iP+4):new Uint8Array(0),rawExtraFieldExtendedTimestamp:c,rawExtraFieldNTFS:d,rawExtraFieldAES:r,rawExtraField:x,extendedTimestamp:W,msDosCompatible:v,internalFileAttribute:S,externalFileAttribute:w},C=P.uncompressedSize=0,J=EH;y&&(J|=8);var M=0;Y&&(M=8),m&&(P.version=P.version>45?P.version:45),g&&(J|=1,p||(P.version=P.version>51?P.version:51,M=99,Y&&(P.rawExtraFieldAES[9]=8))),P.compressionMethod=M;var R=P.headerArray=new Uint8Array(26),D=pP(R);lP(D,0,P.version),lP(D,2,J),lP(D,4,M);var U,N=new Uint32Array(1),j=pP(N);lP(j,0,((U=n.lastModDate<BH?BH:n.lastModDate>OH?OH:n.lastModDate).getHours()<<6|U.getMinutes())<<5|U.getSeconds()/2),lP(j,2,(U.getFullYear()-1980<<4|U.getMonth()+1)<<5|U.getDate());var z=N[0];oP(D,6,z),lP(D,22,a.length);var F=r.length+c.length+d.length+P.rawExtraField.length;lP(D,24,F);var E,Q=new Uint8Array(30+a.length+F);oP(pP(Q),0,MH),mP(Q,R,4),mP(Q,a,30),mP(Q,r,30+a.length),mP(Q,c,30+a.length+r.length),mP(Q,d,30+a.length+r.length+c.length),mP(Q,P.rawExtraField,30+a.length+r.length+c.length+d.length);var O=0;return RI((function(){return t?YI(hw(i.Deflate,{codecType:MK,level:u,password:o,encryptionStrength:K,zipCrypto:g&&p,passwordVerification:g&&p&&z>>8&255,signed:!0,compressed:Y,encrypted:g,useWebWorkers:X},i),(function(n){return YI(e.writeUint8Array(Q),(function(){return P.dataWritten=!0,YI($H(n,t,e,0,(function(){return t.size}),i,{onprogress:I,signal:G}),(function(e){E=e,C=P.uncompressedSize=t.size,O=E.length}))}))})):YI(e.writeUint8Array(Q),(function(){P.dataWritten=!0}))}),(function(){var i,n=new Uint8Array(0),r=0;if(y&&(i=pP(n=new Uint8Array(m?b?24:20:b?16:12)),b&&(r=4,oP(i,0,134695760))),t){var d=E.signature;if(g&&!p||void 0===d||(oP(D,10,d),P.signature=d,y&&oP(i,r,d)),m){var c=pP(P.rawExtraFieldZip64);lP(c,0,1),lP(c,2,iP),oP(D,14,CH),uP(c,12,BigInt(O)),oP(D,18,CH),uP(c,4,BigInt(C)),y&&(uP(i,r+4,BigInt(O)),uP(i,r+12,BigInt(C)))}else oP(D,14,O),oP(D,18,C),y&&(oP(i,r+4,O),oP(i,r+8,C))}return RI((function(){if(y)return VI(e.writeUint8Array(n))}),(function(){var t=Q.length+O+n.length;return Object.assign(P,{compressedSize:O,lastModDate:U,rawLastModDate:z,creationDate:l,lastAccessDate:s,encrypted:g,length:t}),P}))}))})),zk=gI((function(t,e,i,n){var r,d,c,a=t.files,s=t.writer,l=Array.from(a.values()).pop(),o={};return a.set(e,o),NI((function(){return UI((function(){var u,m,p;return n.keepOrder&&(u=l&&l.lock),o.lock=p=new Promise((function(t){return c=t})),RI((function(){if(!n.bufferedWrite&&!t.lockWrite&&n.dataDescriptor)return t.lockWrite=new Promise((function(t){return d=t})),RI((function(){if(!s.initialized)return VI(s.init())}),(function(){m=s}));(m=new lH).init(),r=!0}),(function(){return YI(jk(i,m,t.config,n),(function(i){return(o=i).lock=p,a.set(e,o),o.filename=e,RI((function(){if(r){var e=0,i=m.getData();return YI(Promise.all([t.lockWrite,u]),(function(){var t;return TI(JI((function(){return t=Array.from(a.values()).find((function(t){return t.writingBufferedData})),DI((function(){if(t)return VI(t.lock)}))}),(function(){return!!t&&!!t.lock})),(function(){return o.writingBufferedData=!0,RI((function(){if(!n.dataDescriptor)return YI(dP(i,0,26),(function(t){var i=new DataView(t);return o.encrypted&&!n.zipCrypto||oP(i,14,o.signature),o.zip64?(oP(i,18,CH),oP(i,22,CH)):(oP(i,18,o.compressedSize),oP(i,22,o.uncompressedSize)),YI(s.writeUint8Array(new Uint8Array(t)),(function(){e=26}))}))}),(function(){return YI(Uk(s,i,e),(function(){delete o.writingBufferedData}))}))}))}))}}),(function(){if(o.offset=t.offset,o.zip64)uP(pP(o.rawExtraFieldZip64),20,BigInt(o.offset));else if(o.offset>=CH)throw Error(tP);return t.offset+=o.length,o}))}))}))}),(function(i){throw(r&&o.writingBufferedData||!r&&o.dataWritten)&&(i.corruptedEntry=t.hasCorruptedEntries=!0,o.uncompressedSize&&(t.offset+=o.uncompressedSize)),a.delete(e),i}))}),(function(t,e){return c(),d&&d(),jI(t,e)}))})),Fk=gI((function(t,e,i,n){if(e=e.trim(),n.directory&&!e.endsWith(QH)?e+=QH:n.directory=e.endsWith(QH),t.files.has(e))throw Error(Ek);var r=QG(e);if(r.length>JH)throw Error(Bk);var d=n.comment||"",c=QG(d);if(c.length>JH)throw Error(Ok);var a=t.options.version||n.version||0;if(a>JH)throw Error(Ak);var s=t.options.versionMadeBy||n.versionMadeBy||20;if(s>JH)throw Error(Ak);var l=aP(t,n,"lastModDate")||new Date,o=aP(t,n,"lastAccessDate"),u=aP(t,n,"creationDate"),m=aP(t,n,"password"),p=aP(t,n,"encryptionStrength")||3,y=aP(t,n,"zipCrypto");if(void 0!==m&&void 0!==p&&(1>p||p>3))throw Error(_k);var b=new Uint8Array(0),h=n.extraField;if(h){var Z=0,f=0;h.forEach((function(t){return Z+=4+t.length})),b=new Uint8Array(Z),h.forEach((function(t,e){if(e>JH)throw Error(qk);if(t.length>JH)throw Error($k);mP(b,new Uint16Array([e]),f),mP(b,new Uint16Array([t.length]),f+2),mP(b,t,f+4),f+=4+t.length}))}var L=aP(t,n,"extendedTimestamp");void 0===L&&(L=!0);var x=0,X=aP(t,n,"keepOrder");void 0===X&&(X=!0);var I=0,G=aP(t,n,"msDosCompatible");void 0===G&&(G=!0);var K=aP(t,n,"internalFileAttribute")||0,W=aP(t,n,"externalFileAttribute")||0;return RI((function(){if(i)return RI((function(){if(!i.initialized)return VI(i.init())}),(function(){I=i.size,x=function(t){return t+5*(Math.floor(t/16383)+1)}(I)}))}),(function(){var Z=n.zip64||t.options.zip64||!1;if(t.offset+t.pendingCompressedSize>=CH||I>=CH||x>=CH){if(!1===n.zip64||!1===t.options.zip64||!X)throw Error(tP);Z=!0}return t.pendingCompressedSize+=x,YI(Promise.resolve(),(function(){var f=aP(t,n,"level"),I=aP(t,n,"useWebWorkers"),v=aP(t,n,"bufferedWrite"),S=aP(t,n,"dataDescriptor"),w=aP(t,n,"dataDescriptorSignature"),g=aP(t,n,"signal");return void 0===S&&(S=!0),S&&void 0===w&&(w=!1),YI(zk(t,e,i,Object.assign({},n,{rawFilename:r,rawComment:c,version:a,versionMadeBy:s,lastModDate:l,lastAccessDate:o,creationDate:u,rawExtraField:b,zip64:Z,password:m,level:f,useWebWorkers:I,encryptionStrength:p,extendedTimestamp:L,zipCrypto:y,bufferedWrite:v,keepOrder:X,dataDescriptor:S,dataDescriptorSignature:w,signal:g,msDosCompatible:G,internalFileAttribute:K,externalFileAttribute:W})),(function(i){return x&&(t.pendingCompressedSize-=x),Object.assign(i,{name:e,comment:d,extraField:h}),new rk(i)}))}))}))})),Ek="File already exists",Qk="Zip file comment exceeds 64KB",Ok="File entry comment exceeds 64KB",Bk="File entry name exceeds 64KB",Ak="Version exceeds 65535",_k="The strength must equal 1, 2, or 3",qk="Extra field type exceeds 65535",$k="Extra field data exceeds 64KB",tP="Zip64 is not supported",eP=new Uint8Array([7,0,2,0,65,69,3,0,0]),iP=24,nP=0,rP=function(){function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};c(this,t),Object.assign(this,{writer:e,options:i,config:sh(),files:new Map,offset:e.size,pendingCompressedSize:0,pendingEntries:[],pendingAddFileCalls:new Set})}return s(t,[{key:"add",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",i=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};try{var r=this,d=r;return YI(nP<d.config.maxWorkers?(nP++,NI((function(){return t=Fk(d,e,i,n),r.pendingAddFileCalls.add(t),YI(t)}),(function(e,i){r.pendingAddFileCalls.delete(t),nP--;var n=d.pendingEntries.shift();return n&&d.add(n.name,n.reader,n.options).then(n.resolve).catch(n.reject),jI(e,i)}))):new Promise((function(t,r){return d.pendingEntries.push({name:e,reader:i,options:n,resolve:t,reject:r})})))}catch(t){return Promise.reject(t)}}},{key:"close",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{var i=this;return void 0===t&&(t=new Uint8Array(0)),YI(TI(CI((function(){return!!i.pendingAddFileCalls.size}),void 0,(function(){return VI(Promise.all(Array.from(i.pendingAddFileCalls)))})),(function(){return YI(Nk(i,t,e),(function(){return i.writer.getData()}))})))}catch(t){return Promise.reject(t)}}}]),t}();function dP(t,e,i){if(t.arrayBuffer)return e||i?t.slice(e,i).arrayBuffer():t.arrayBuffer();var n=new FileReader;return new Promise((function(r,d){n.onload=function(t){return r(t.target.result)},n.onerror=function(){return d(n.error)},n.readAsArrayBuffer(e||i?t.slice(e,i):t)}))}function cP(t){if(t)return(BigInt(t.getTime())+BigInt(116444736e5))*BigInt(1e4)}function aP(t,e,i){return void 0===e[i]?t.options[i]:e[i]}function sP(t,e,i){t.setUint8(e,i)}function lP(t,e,i){t.setUint16(e,i,!0)}function oP(t,e,i){t.setUint32(e,i,!0)}function uP(t,e,i){t.setBigUint64(e,i,!0)}function mP(t,e,i){t.set(e,i)}function pP(t){return new DataView(t.buffer)}var yP,bP=gI((function(t,e){var i=gI((function(t,e){return YI(function(t){return new Promise((function(e,i){var n=[];t.isDirectory&&function t(r){r.readEntries((function(i){i.length?(n=n.concat(i),t(r)):e(n)}),i)}(t.createReader()),t.isFile&&e(n)}))}(e),(function(e){return HI(PI(e,(function(e){return DI((function(){return e.isDirectory?VI(i(t.addDirectory(e.name),e)):VI(new Promise((function(i,n){e.file((function(n){var r=t.addBlob(e.name,n);r.uncompressedSize=n.size,i(r)}),n)})))}))})))}))}));if(e.isDirectory){var n=t.addDirectory(e.name);return YI(i(n,e),(function(){return n}))}return new Promise((function(i,n){return e.file((function(n){return i(t.addBlob(e.name,n))}),n)}))})),hP=gI((function(t,e,i,n){var r=gI((function(t,e){var a=gI((function(e){var a=n.relativePath?e.getRelativeName(d):e.getFullname();return YI(t.add(a,e.reader,Object.assign({directory:e.directory},Object.assign({},n,{onprogress:function(t){if(n.onprogress){c.set(a,t);try{n.onprogress(Array.from(c.values()).reduce((function(t,e){return t+e})),i)}catch(t){}}}}))),(function(){return VI(r(t,e))}))}));return MI(gI((function(){return DI((function(){return n.bufferedWrite?VI(Promise.all(e.children.map(a))):HI(PI(e.children,(function(t){return VI(a(t))})))}))})))})),d=e,c=new Map;return VI(r(t,e))})),ZP=gI((function(t){return DI((function(){if(t.children.length)return HI(PI(t.children,(function(t){return DI((function(){return t.directory?VI(ZP(t)):(t.reader=new t.Reader(t.data),YI(t.reader.init(),(function(){t.uncompressedSize=t.reader.size})))}))})))}))})),fP=524288,LP=function(){function t(e,i,n,r){c(this,t);var d=this;if(e.root&&r&&r.getChildByName(i))throw Error("Entry filename already exists");n||(n={}),Object.assign(d,{fs:e,name:i,data:n.data,id:e.entries.length,parent:r,children:[],uncompressedSize:0}),e.entries.push(d),r&&d.parent.children.push(d)}return s(t,[{key:"moveTo",value:function(t){this.fs.move(this,t)}},{key:"getFullname",value:function(){return this.getRelativeName()}},{key:"getRelativeName",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.fs.root,e=this,i=e.name,n=e.parent;n&&n!=t;)i=(n.name?n.name+"/":"")+i,n=n.parent;return i}},{key:"isDescendantOf",value:function(t){for(var e=this.parent;e&&e.id!=t.id;)e=e.parent;return!!e}}]),t}(),xP=function(t){o(i,t);var e=b(i);function i(t,n,r,d){var a;c(this,i);var s=p(a=e.call(this,t,n,r,d));return s.Reader=r.Reader,s.Writer=r.Writer,r.getData&&(s.getData=r.getData),a}return s(i,[{key:"getData",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{var i=this,n=i;return!t||t.constructor==n.Writer&&n.data?YI(n.data):(n.reader=new n.Reader(n.data,e),YI(n.reader.init(),(function(){return RI((function(){if(!t.initialized)return VI(t.init())}),(function(){return n.uncompressedSize=n.reader.size,SP(n.reader,t)}))})))}catch(t){return Promise.reject(t)}}},{key:"getText",value:function(t,e){return this.getData(new dH(t),e)}},{key:"getBlob",value:function(t,e){return this.getData(new lH(t),e)}},{key:"getData64URI",value:function(t,e){return this.getData(new aH(t),e)}},{key:"getUint8Array",value:function(t){return this.getData(new IH,t)}},{key:"replaceBlob",value:function(t){Object.assign(this,{data:t,Reader:sH,Writer:lH,reader:null})}},{key:"replaceText",value:function(t){Object.assign(this,{data:t,Reader:rH,Writer:dH,reader:null})}},{key:"replaceData64URI",value:function(t){Object.assign(this,{data:t,Reader:cH,Writer:aH,reader:null})}},{key:"replaceUint8Array",value:function(t){Object.assign(this,{data:t,Reader:XH,Writer:IH,reader:null})}}]),i}(LP),XP=function(t){o(i,t);var e=b(i);function i(t,n,r,d){var a;return c(this,i),(a=e.call(this,t,n,r,d)).directory=!0,a}return s(i,[{key:"addDirectory",value:function(t){return wP(this,t,null,!0)}},{key:"addText",value:function(t,e){return wP(this,t,{data:e,Reader:rH,Writer:dH})}},{key:"addBlob",value:function(t,e){return wP(this,t,{data:e,Reader:sH,Writer:lH})}},{key:"addData64URI",value:function(t,e){return wP(this,t,{data:e,Reader:cH,Writer:aH})}},{key:"addUint8Array",value:function(t,e){return wP(this,t,{data:e,Reader:XH,Writer:IH})}},{key:"addHttpContent",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return wP(this,t,{data:e,Reader:function(t){o(n,t);var e=b(n);function n(t){return c(this,n),e.call(this,t,i)}return s(n)}(LH)})}},{key:"addFileSystemEntry",value:function(t){return bP(this,t)}},{key:"addData",value:function(t,e){return wP(this,t,e)}},{key:"importBlob",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{var i=this;return YI(VI(i.importZip(new sH(t),e)))}catch(t){return Promise.reject(t)}}},{key:"importData64URI",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{var i=this;return YI(VI(i.importZip(new cH(t),e)))}catch(t){return Promise.reject(t)}}},{key:"importUint8Array",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{var i=this;return YI(VI(i.importZip(new XH(t),e)))}catch(t){return Promise.reject(t)}}},{key:"importHttpContent",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{var i=this;return YI(VI(i.importZip(new LH(t,e),e)))}catch(t){return Promise.reject(t)}}},{key:"exportBlob",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.exportZip(new lH("application/zip"),t)}},{key:"exportData64URI",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.exportZip(new aH("application/zip"),t)}},{key:"exportUint8Array",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.exportZip(new IH,t)}},{key:"importZip",value:function(t,e){try{var n=this;return YI(RI((function(){if(!t.initialized)return VI(t.init())}),(function(){return YI(new Xk(t,e).getEntries(),(function(t){t.forEach((function(t){var r=n,d=t.filename.split("/"),c=d.pop();d.forEach((function(t){return r=r.getChildByName(t)||new i(n.fs,t,null,r)})),t.directory||wP(r,c,{data:t,Reader:KP(Object.assign({},e))})}))}))})))}catch(t){return Promise.reject(t)}}},{key:"exportZip",value:function(t,e){var i=this;return YI(ZP(i),(function(){return YI(t.init(),(function(){var n,r=new rP(t,e);return YI(hP(r,i,(n=0,[i].forEach((function t(e){n+=e.uncompressedSize,e.children&&e.children.forEach(t)})),n),e),(function(){return YI(r.close(),(function(){return t.getData()}))}))}))}))}},{key:"getChildByName",value:function(t){for(var e=this.children,i=0;i<e.length;i++){var n=e[i];if(n.name==t)return n}}}]),i}(LP),IP=function(){function t(){c(this,t),vP(this)}return s(t,[{key:"children",get:function(){return this.root.children}},{key:"remove",value:function(t){WP(t),this.entries[t.id]=null}},{key:"move",value:function(t,e){if(t==this.root)throw Error("Root directory cannot be moved");if(!e.directory)throw Error("Target entry is not a directory");if(e.isDescendantOf(t))throw Error("Entry is a ancestor of target entry");if(t!=e){if(e.getChildByName(t.name))throw Error("Entry filename already exists");WP(t),t.parent=e,e.children.push(t)}}},{key:"find",value:function(t){for(var e=t.split("/"),i=this.root,n=0;i&&n<e.length;n++)i=i.getChildByName(e[n]);return i}},{key:"getById",value:function(t){return this.entries[t]}},{key:"getChildByName",value:function(t){return this.root.getChildByName(t)}},{key:"addDirectory",value:function(t){return this.root.addDirectory(t)}},{key:"addText",value:function(t,e){return this.root.addText(t,e)}},{key:"addBlob",value:function(t,e){return this.root.addBlob(t,e)}},{key:"addData64URI",value:function(t,e){return this.root.addData64URI(t,e)}},{key:"addHttpContent",value:function(t,e,i){return this.root.addHttpContent(t,e,i)}},{key:"addFileSystemEntry",value:function(t){return this.root.addFileSystemEntry(t)}},{key:"addData",value:function(t,e){return this.root.addData(t,e)}},{key:"importBlob",value:function(t,e){try{return vP(this),YI(VI(this.root.importBlob(t,e)))}catch(t){return Promise.reject(t)}}},{key:"importData64URI",value:function(t,e){try{return vP(this),YI(VI(this.root.importData64URI(t,e)))}catch(t){return Promise.reject(t)}}},{key:"importHttpContent",value:function(t,e){try{return vP(this),YI(VI(this.root.importHttpContent(t,e)))}catch(t){return Promise.reject(t)}}},{key:"exportBlob",value:function(t){return this.root.exportBlob(t)}},{key:"exportData64URI",value:function(t){return this.root.exportData64URI(t)}}]),t}(),GP={FS:IP,ZipDirectoryEntry:XP,ZipFileEntry:xP};function KP(t){return function(e){o(n,e);var i=b(n);function n(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return c(this,n),(e=i.call(this)).entry=t,e.options=r,e}return s(n,[{key:"init",value:function(){try{var e=this;return e.size=e.entry.uncompressedSize,YI(e.entry.getData(new lH,Object.assign({},e.options,t)),(function(t){e.data=t,e.blobReader=new sH(t)}))}catch(t){return Promise.reject(t)}}},{key:"readUint8Array",value:function(t,e){return this.blobReader.readUint8Array(t,e)}}]),n}(iH)}function WP(t){var e=t.parent.children;e.forEach((function(i,n){i.id==t.id&&e.splice(n,1)}))}function vP(t){t.entries=[],t.root=new XP(t)}function SP(t,e){var i=gI((function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,r=n*fP;return r<t.size?YI(t.readUint8Array(r,Math.min(fP,t.size-r)),(function(t){return YI(e.writeUint8Array(t),(function(){return i(n+1)}))})):e.getData()}));return i()}function wP(t,e,i,n){if(t.directory)return n?new XP(t.fs,e,i,t):new xP(t.fs,e,i,t);throw Error("Parent entry is not a directory")}try{yP="undefined"==typeof document&&void 0===nf?new(require("url").URL)("file:"+__filename).href:"undefined"==typeof document?nf.href:document.currentScript&&document.currentScript.src||new URL("zip-fs-full-es5.min.js",document.baseURI).href}catch(t){}lh({baseURL:yP}),function(t){if("function"==typeof URL.createObjectURL){var e=function(){return URL.createObjectURL(new Blob([atob("dmFyIHI9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjp7fSx0PWZ1bmN0aW9uKHIpe3JldHVybiByJiZyLk1hdGg9PU1hdGgmJnJ9LG49dCgib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMpfHx0KCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHx0KCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZil8fHQoIm9iamVjdCI9PXR5cGVvZiByJiZyKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxlPXt9LGk9ZnVuY3Rpb24ocil7dHJ5e3JldHVybiEhcigpfWNhdGNoKHIpe3JldHVybiEwfX0sbz0haSgoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSkpLHU9IWkoKGZ1bmN0aW9uKCl7dmFyIHI9ZnVuY3Rpb24oKXt9LmJpbmQoKTtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2Ygcnx8ci5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBlIil9KSksZj1mdW5jdGlvbigpe30uY2FsbCxhPXU/Zi5iaW5kKGYpOmZ1bmN0aW9uKCl7cmV0dXJuIGYuYXBwbHkoZixhcmd1bWVudHMpfSxjPXt9LHM9e30ucHJvcGVydHlJc0VudW1lcmFibGUsdj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGg9diYmIXMuY2FsbCh7MToyfSwxKTtjLmY9aD9mdW5jdGlvbihyKXt2YXIgdD12KHRoaXMscik7cmV0dXJuISF0JiZ0LnR9OnM7dmFyIGwsZCx5PWZ1bmN0aW9uKHIsdCl7cmV0dXJue3Q6ISgxJnIpLGk6ISgyJnIpLHdyaXRhYmxlOiEoNCZyKSx2YWx1ZTp0fX0sdz11LGI9RnVuY3Rpb24ucHJvdG90eXBlLHA9Yi5iaW5kLGc9Yi5jYWxsLG09dyYmcC5iaW5kKGcsZyksUz13P2Z1bmN0aW9uKHIpe3JldHVybiByJiZtKHIpfTpmdW5jdGlvbihyKXtyZXR1cm4gciYmZnVuY3Rpb24oKXtyZXR1cm4gZy5hcHBseShyLGFyZ3VtZW50cyl9fSxBPVMsaj1BKHt9LnRvU3RyaW5nKSxPPUEoIiIuc2xpY2UpLGs9ZnVuY3Rpb24ocil7cmV0dXJuIE8oaihyKSw4LC0xKX0sRT1pLFQ9ayx4PU9iamVjdCxVPVMoIiIuc3BsaXQpLE09RSgoZnVuY3Rpb24oKXtyZXR1cm4heCgieiIpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApfSkpP2Z1bmN0aW9uKHIpe3JldHVybiJTdHJpbmciPT1UKHIpP1UociwiIik6eChyKX06eCxJPVR5cGVFcnJvcixMPWZ1bmN0aW9uKHIpe2lmKG51bGw9PXIpdGhyb3cgSSgiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIityKTtyZXR1cm4gcn0sUD1NLF89TCxSPWZ1bmN0aW9uKHIpe3JldHVybiBQKF8ocikpfSxGPWZ1bmN0aW9uKHIpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiByfSxOPUYsQz1mdW5jdGlvbihyKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHI/bnVsbCE9PXI6TihyKX0sQj1uLEc9RixEPWZ1bmN0aW9uKHIpe3JldHVybiBHKHIpP3I6dm9pZCAwfSxWPWZ1bmN0aW9uKHIsdCl7cmV0dXJuIDI+YXJndW1lbnRzLmxlbmd0aD9EKEJbcl0pOkJbcl0mJkJbcl1bdF19LFk9Uyh7fS5pc1Byb3RvdHlwZU9mKSx6PVYoIm5hdmlnYXRvciIsInVzZXJBZ2VudCIpfHwiIixXPW4sJD16LEg9Vy5wcm9jZXNzLEs9Vy5vLHE9SCYmSC51fHxLJiZLLnZlcnNpb24sSj1xJiZxLnY7SiYmKGQ9KGw9Si5zcGxpdCgiLiIpKVswXT4wJiY0PmxbMF0/MTorKGxbMF0rbFsxXSkpLCFkJiYkJiYoKGw9JC5tYXRjaCgvRWRnZVwvKFxkKykvKSkmJjc0PmxbMV18fChsPSQubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihkPStsWzFdKSk7dmFyIFg9ZCxRPVgsWj0hIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJiFpKChmdW5jdGlvbigpe3ZhciByPVN5bWJvbCgpO3JldHVybiEocisiIil8fCEoT2JqZWN0KHIpaW5zdGFuY2VvZiBTeW1ib2wpfHwhU3ltYm9sLmgmJlEmJjQxPlF9KSkscnI9WiYmIVN5bWJvbC5oJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcix0cj1WLG5yPUYsZXI9WSxpcj1PYmplY3Qsb3I9cnI/ZnVuY3Rpb24ocil7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiByfTpmdW5jdGlvbihyKXt2YXIgdD10cigiU3ltYm9sIik7cmV0dXJuIG5yKHQpJiZlcih0LnByb3RvdHlwZSxpcihyKSl9LHVyPVN0cmluZyxmcj1mdW5jdGlvbihyKXt0cnl7cmV0dXJuIHVyKHIpfWNhdGNoKHIpe3JldHVybiJPYmplY3QifX0sYXI9Rixjcj1mcixzcj1UeXBlRXJyb3IsdnI9ZnVuY3Rpb24ocil7aWYoYXIocikpcmV0dXJuIHI7dGhyb3cgc3IoY3IocikrIiBpcyBub3QgYSBmdW5jdGlvbiIpfSxocj12cixscj1mdW5jdGlvbihyLHQpe3ZhciBuPXJbdF07cmV0dXJuIG51bGw9PW4/dm9pZCAwOmhyKG4pfSxkcj1hLHlyPUYsd3I9Qyxicj1UeXBlRXJyb3IscHI9e2V4cG9ydHM6e319LGdyPW4sbXI9T2JqZWN0LmRlZmluZVByb3BlcnR5LFNyPWZ1bmN0aW9uKHIsdCl7dHJ5e21yKGdyLHIse3ZhbHVlOnQsaTohMCx3cml0YWJsZTohMH0pfWNhdGNoKG4pe2dyW3JdPXR9cmV0dXJuIHR9LEFyPVNyLGpyPW5bImwiXXx8QXIoIl9fY29yZS1qc19zaGFyZWRfXyIse30pLE9yPWpyOyhwci5leHBvcnRzPWZ1bmN0aW9uKHIsdCl7cmV0dXJuIE9yW3JdfHwoT3Jbcl09dm9pZCAwIT09dD90Ont9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246IjMuMjMuMiIsbW9kZToiZ2xvYmFsIixwOiLCqSAyMDE0LTIwMjIgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkiLGc6Imh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2Jsb2IvdjMuMjMuMi9MSUNFTlNFIixzb3VyY2U6Imh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzIn0pO3ZhciBrcj1MLEVyPU9iamVjdCxUcj1mdW5jdGlvbihyKXtyZXR1cm4gRXIoa3IocikpfSx4cj1UcixVcj1TKHt9Lmhhc093blByb3BlcnR5KSxNcj1PYmplY3QuaGFzT3dufHxmdW5jdGlvbihyLHQpe3JldHVybiBVcih4cihyKSx0KX0sSXI9UyxMcj0wLFByPU1hdGgucmFuZG9tKCksX3I9SXIoMS4udG9TdHJpbmcpLFJyPWZ1bmN0aW9uKHIpe3JldHVybiJTeW1ib2woIisodm9pZCAwPT09cj8iIjpyKSsiKV8iK19yKCsrTHIrUHIsMzYpfSxGcj1uLE5yPXByLmV4cG9ydHMsQ3I9TXIsQnI9UnIsR3I9WixEcj1ycixWcj1Ocigid2tzIiksWXI9RnIuU3ltYm9sLHpyPVlyJiZZci5mb3IsV3I9RHI/WXI6WXImJllyLm18fEJyLCRyPWZ1bmN0aW9uKHIpe2lmKCFDcihWcixyKXx8IUdyJiYic3RyaW5nIiE9dHlwZW9mIFZyW3JdKXt2YXIgdD0iU3ltYm9sLiIrcjtHciYmQ3IoWXIscik/VnJbcl09WXJbcl06VnJbcl09RHImJnpyP3pyKHQpOldyKHQpfXJldHVybiBWcltyXX0sSHI9YSxLcj1DLHFyPW9yLEpyPWxyLFhyPVR5cGVFcnJvcixRcj0kcigidG9QcmltaXRpdmUiKSxacj1mdW5jdGlvbihyLHQpe2lmKCFLcihyKXx8cXIocikpcmV0dXJuIHI7dmFyIG4sZT1KcihyLFFyKTtpZihlKXtpZih2b2lkIDA9PT10JiYodD0iZGVmYXVsdCIpLG49SHIoZSxyLHQpLCFLcihuKXx8cXIobikpcmV0dXJuIG47dGhyb3cgWHIoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfXJldHVybiB2b2lkIDA9PT10JiYodD0ibnVtYmVyIiksZnVuY3Rpb24ocix0KXt2YXIgbixlO2lmKCJzdHJpbmciPT09dCYmeXIobj1yLnRvU3RyaW5nKSYmIXdyKGU9ZHIobixyKSkpcmV0dXJuIGU7aWYoeXIobj1yLnZhbHVlT2YpJiYhd3IoZT1kcihuLHIpKSlyZXR1cm4gZTtpZigic3RyaW5nIiE9PXQmJnlyKG49ci50b1N0cmluZykmJiF3cihlPWRyKG4scikpKXJldHVybiBlO3Rocm93IGJyKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX0ocix0KX0scnQ9WnIsdHQ9b3IsbnQ9ZnVuY3Rpb24ocil7dmFyIHQ9cnQociwic3RyaW5nIik7cmV0dXJuIHR0KHQpP3Q6dCsiIn0sZXQ9QyxpdD1uLmRvY3VtZW50LG90PWV0KGl0KSYmZXQoaXQuY3JlYXRlRWxlbWVudCksdXQ9ZnVuY3Rpb24ocil7cmV0dXJuIG90P2l0LmNyZWF0ZUVsZW1lbnQocik6e319LGZ0PXV0LGF0PSFvJiYhaSgoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KGZ0KCJkaXYiKSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KSksY3Q9byxzdD1hLHZ0PWMsaHQ9eSxsdD1SLGR0PW50LHl0PU1yLHd0PWF0LGJ0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7ZS5mPWN0P2J0OmZ1bmN0aW9uKHIsdCl7aWYocj1sdChyKSx0PWR0KHQpLHd0KXRyeXtyZXR1cm4gYnQocix0KX1jYXRjaChyKXt9aWYoeXQocix0KSlyZXR1cm4gaHQoIXN0KHZ0LmYscix0KSxyW3RdKX07dmFyIHB0PXt9LGd0PW8mJmkoKGZ1bmN0aW9uKCl7cmV0dXJuIDQyIT1PYmplY3QuZGVmaW5lUHJvcGVydHkoKGZ1bmN0aW9uKCl7fSksInByb3RvdHlwZSIse3ZhbHVlOjQyLHdyaXRhYmxlOiExfSkucHJvdG90eXBlfSkpLG10PUMsU3Q9U3RyaW5nLEF0PVR5cGVFcnJvcixqdD1mdW5jdGlvbihyKXtpZihtdChyKSlyZXR1cm4gcjt0aHJvdyBBdChTdChyKSsiIGlzIG5vdCBhbiBvYmplY3QiKX0sT3Q9byxrdD1hdCxFdD1ndCxUdD1qdCx4dD1udCxVdD1UeXBlRXJyb3IsTXQ9T2JqZWN0LmRlZmluZVByb3BlcnR5LEl0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7cHQuZj1PdD9FdD9mdW5jdGlvbihyLHQsbil7aWYoVHQociksdD14dCh0KSxUdChuKSwiZnVuY3Rpb24iPT10eXBlb2YgciYmInByb3RvdHlwZSI9PT10JiYidmFsdWUiaW4gbiYmIndyaXRhYmxlImluIG4mJiFuLndyaXRhYmxlKXt2YXIgZT1JdChyLHQpO2UmJmUud3JpdGFibGUmJihyW3RdPW4udmFsdWUsbj17aToiaSJpbiBuP24uaTplLmksdDoidCJpbiBuP24udDplLnQsd3JpdGFibGU6ITF9KX1yZXR1cm4gTXQocix0LG4pfTpNdDpmdW5jdGlvbihyLHQsbil7aWYoVHQociksdD14dCh0KSxUdChuKSxrdCl0cnl7cmV0dXJuIE10KHIsdCxuKX1jYXRjaChyKXt9aWYoImdldCJpbiBufHwic2V0ImluIG4pdGhyb3cgVXQoIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIik7cmV0dXJuInZhbHVlImluIG4mJihyW3RdPW4udmFsdWUpLHJ9O3ZhciBMdD1wdCxQdD15LF90PW8/ZnVuY3Rpb24ocix0LG4pe3JldHVybiBMdC5mKHIsdCxQdCgxLG4pKX06ZnVuY3Rpb24ocix0LG4pe3JldHVybiByW3RdPW4scn0sUnQ9e2V4cG9ydHM6e319LEZ0PW8sTnQ9RnVuY3Rpb24ucHJvdG90eXBlLEN0PUZ0JiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLEJ0PU1yKE50LCJuYW1lIiksR3Q9e1M6QnQsQTpCdCYmITEsajpCdCYmKCFGdHx8RnQmJkN0KE50LCJuYW1lIikuaSl9LER0PUYsVnQ9anIsWXQ9UyhGdW5jdGlvbi50b1N0cmluZyk7RHQoVnQuTyl8fChWdC5PPWZ1bmN0aW9uKHIpe3JldHVybiBZdChyKX0pO3ZhciB6dCxXdCwkdCxIdD1WdC5PLEt0PUYscXQ9SHQsSnQ9bi5XZWFrTWFwLFh0PUt0KEp0KSYmL25hdGl2ZSBjb2RlLy50ZXN0KHF0KEp0KSksUXQ9cHIuZXhwb3J0cyxadD1Scixybj1RdCgia2V5cyIpLHRuPWZ1bmN0aW9uKHIpe3JldHVybiBybltyXXx8KHJuW3JdPVp0KHIpKX0sbm49e30sZW49WHQsb249bix1bj1TLGZuPUMsYW49X3QsY249TXIsc249anIsdm49dG4saG49bm4sbG49b24uVHlwZUVycm9yLGRuPW9uLldlYWtNYXA7aWYoZW58fHNuLnN0YXRlKXt2YXIgeW49c24uc3RhdGV8fChzbi5zdGF0ZT1uZXcgZG4pLHduPXVuKHluLmdldCksYm49dW4oeW4uaGFzKSxwbj11bih5bi5zZXQpO3p0PWZ1bmN0aW9uKHIsdCl7aWYoYm4oeW4scikpdGhyb3cgbmV3IGxuKCJPYmplY3QgYWxyZWFkeSBpbml0aWFsaXplZCIpO3JldHVybiB0Lms9cixwbih5bixyLHQpLHR9LFd0PWZ1bmN0aW9uKHIpe3JldHVybiB3bih5bixyKXx8e319LCR0PWZ1bmN0aW9uKHIpe3JldHVybiBibih5bixyKX19ZWxzZXt2YXIgZ249dm4oInN0YXRlIik7aG5bZ25dPSEwLHp0PWZ1bmN0aW9uKHIsdCl7aWYoY24ocixnbikpdGhyb3cgbmV3IGxuKCJPYmplY3QgYWxyZWFkeSBpbml0aWFsaXplZCIpO3JldHVybiB0Lms9cixhbihyLGduLHQpLHR9LFd0PWZ1bmN0aW9uKHIpe3JldHVybiBjbihyLGduKT9yW2duXTp7fX0sJHQ9ZnVuY3Rpb24ocil7cmV0dXJuIGNuKHIsZ24pfX12YXIgbW49e3NldDp6dCxnZXQ6V3QsaGFzOiR0LFQ6ZnVuY3Rpb24ocil7cmV0dXJuICR0KHIpP1d0KHIpOnp0KHIse30pfSxVOmZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgbjtpZighZm4odCl8fChuPVd0KHQpKS50eXBlIT09cil0aHJvdyBsbigiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK3IrIiByZXF1aXJlZCIpO3JldHVybiBufX19LFNuPUYsQW49TXIsam49byxPbj1HdC5qLGtuPUh0LEVuPW1uLlQsVG49bW4uZ2V0LHhuPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxVbj1qbiYmIWkoKGZ1bmN0aW9uKCl7cmV0dXJuIDghPT14bigoZnVuY3Rpb24oKXt9KSwibGVuZ3RoIix7dmFsdWU6OH0pLmxlbmd0aH0pKSxNbj0oU3RyaW5nKyIiKS5zcGxpdCgiU3RyaW5nIiksSW49UnQuZXhwb3J0cz1mdW5jdGlvbihyLHQsbil7IlN5bWJvbCgiPT09KHQrIiIpLnNsaWNlKDAsNykmJih0PSJbIisodCsiIikucmVwbGFjZSgvXlN5bWJvbFwoKFteKV0qKVwpLywiJDEiKSsiXSIpLG4mJm4uTSYmKHQ9ImdldCAiK3QpLG4mJm4uSSYmKHQ9InNldCAiK3QpLCghQW4ociwibmFtZSIpfHxPbiYmci5uYW1lIT09dCkmJnhuKHIsIm5hbWUiLHt2YWx1ZTp0LGk6ITB9KSxVbiYmbiYmQW4obiwiYXJpdHkiKSYmci5sZW5ndGghPT1uLkwmJnhuKHIsImxlbmd0aCIse3ZhbHVlOm4uTH0pO3RyeXtuJiZBbihuLCJjb25zdHJ1Y3RvciIpJiZuLmNvbnN0cnVjdG9yP2puJiZ4bihyLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pOnIucHJvdG90eXBlJiYoci5wcm90b3R5cGU9dm9pZCAwKX1jYXRjaChyKXt9dmFyIGU9RW4ocik7cmV0dXJuIEFuKGUsInNvdXJjZSIpfHwoZS5zb3VyY2U9TW4uam9pbigic3RyaW5nIj09dHlwZW9mIHQ/dDoiIikpLHJ9O0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZz1JbigoZnVuY3Rpb24oKXtyZXR1cm4gU24odGhpcykmJlRuKHRoaXMpLnNvdXJjZXx8a24odGhpcyl9KSwidG9TdHJpbmciKTt2YXIgTG49RixQbj1wdCxfbj1SdC5leHBvcnRzLFJuPVNyLEZuPWZ1bmN0aW9uKHIsdCxuLGUpe2V8fChlPXt9KTt2YXIgaT1lLnQsbz12b2lkIDAhPT1lLm5hbWU/ZS5uYW1lOnQ7cmV0dXJuIExuKG4pJiZfbihuLG8sZSksZS5nbG9iYWw/aT9yW3RdPW46Um4odCxuKTooZS5QP3JbdF0mJihpPSEwKTpkZWxldGUgclt0XSxpP3JbdF09bjpQbi5mKHIsdCx7dmFsdWU6bix0OiExLGk6IWUuXyx3cml0YWJsZTohZS5SfSkpLHJ9LE5uPXt9LENuPU1hdGguY2VpbCxCbj1NYXRoLmZsb29yLEduPU1hdGgudHJ1bmN8fGZ1bmN0aW9uKHIpe3ZhciB0PStyO3JldHVybih0PjA/Qm46Q24pKHQpfSxEbj1mdW5jdGlvbihyKXt2YXIgdD0rcjtyZXR1cm4gdCE9dHx8MD09PXQ/MDpHbih0KX0sVm49RG4sWW49TWF0aC5tYXgsem49TWF0aC5taW4sV249ZnVuY3Rpb24ocix0KXt2YXIgbj1WbihyKTtyZXR1cm4gMD5uP1luKG4rdCwwKTp6bihuLHQpfSwkbj1EbixIbj1NYXRoLm1pbixLbj1mdW5jdGlvbihyKXtyZXR1cm4gcj4wP0huKCRuKHIpLDkwMDcxOTkyNTQ3NDA5OTEpOjB9LHFuPUtuLEpuPWZ1bmN0aW9uKHIpe3JldHVybiBxbihyLmxlbmd0aCl9LFhuPVIsUW49V24sWm49Sm4scmU9ZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKHQsbixlKXt2YXIgaSxvPVhuKHQpLHU9Wm4obyksZj1RbihlLHUpO2lmKHImJm4hPW4pe2Zvcig7dT5mOylpZigoaT1vW2YrK10pIT1pKXJldHVybiEwfWVsc2UgZm9yKDt1PmY7ZisrKWlmKChyfHxmIGluIG8pJiZvW2ZdPT09bilyZXR1cm4gcnx8Znx8MDtyZXR1cm4hciYmLTF9fSx0ZT17aW5jbHVkZXM6cmUoITApLGluZGV4T2Y6cmUoITEpfSxuZT1NcixlZT1SLGllPXRlLmluZGV4T2Ysb2U9bm4sdWU9UyhbXS5wdXNoKSxmZT1mdW5jdGlvbihyLHQpe3ZhciBuLGU9ZWUociksaT0wLG89W107Zm9yKG4gaW4gZSkhbmUob2UsbikmJm5lKGUsbikmJnVlKG8sbik7Zm9yKDt0Lmxlbmd0aD5pOyluZShlLG49dFtpKytdKSYmKH5pZShvLG4pfHx1ZShvLG4pKTtyZXR1cm4gb30sYWU9WyJjb25zdHJ1Y3RvciIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidG9Mb2NhbGVTdHJpbmciLCJ0b1N0cmluZyIsInZhbHVlT2YiXSxjZT1mZSxzZT1hZS5jb25jYXQoImxlbmd0aCIsInByb3RvdHlwZSIpO05uLmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKHIpe3JldHVybiBjZShyLHNlKX07dmFyIHZlPXt9O3ZlLmY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sczt2YXIgaGU9VixsZT1ObixkZT12ZSx5ZT1qdCx3ZT1TKFtdLmNvbmNhdCksYmU9aGUoIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKHIpe3ZhciB0PWxlLmYoeWUocikpLG49ZGUuZjtyZXR1cm4gbj93ZSh0LG4ocikpOnR9LHBlPU1yLGdlPWJlLG1lPWUsU2U9cHQsQWU9ZnVuY3Rpb24ocix0LG4pe2Zvcih2YXIgZT1nZSh0KSxpPVNlLmYsbz1tZS5mLHU9MDt1PGUubGVuZ3RoO3UrKyl7dmFyIGY9ZVt1XTtwZShyLGYpfHxuJiZwZShuLGYpfHxpKHIsZixvKHQsZikpfX0samU9aSxPZT1GLGtlPS8jfFwucHJvdG90eXBlXC4vLEVlPWZ1bmN0aW9uKHIsdCl7dmFyIG49eGVbVGUocildO3JldHVybiBuPT1NZXx8biE9VWUmJihPZSh0KT9qZSh0KTohIXQpfSxUZT1FZS5ub3JtYWxpemU9ZnVuY3Rpb24ocil7cmV0dXJuKHIrIiIpLnJlcGxhY2Uoa2UsIi4iKS50b0xvd2VyQ2FzZSgpfSx4ZT1FZS5kYXRhPXt9LFVlPUVlLkY9Ik4iLE1lPUVlLk49IlAiLEllPUVlLExlPW4sUGU9ZS5mLF9lPV90LFJlPUZuLEZlPVNyLE5lPUFlLENlPUllLEJlPWZ1bmN0aW9uKHIsdCl7dmFyIG4sZSxpLG8sdSxmPXIudGFyZ2V0LGE9ci5nbG9iYWwsYz1yLkM7aWYobj1hP0xlOmM/TGVbZl18fEZlKGYse30pOihMZVtmXXx8e30pLnByb3RvdHlwZSlmb3IoZSBpbiB0KXtpZihvPXRbZV0saT1yLkI/KHU9UGUobixlKSkmJnUudmFsdWU6bltlXSwhQ2UoYT9lOmYrKGM/Ii4iOiIjIikrZSxyLkcpJiZ2b2lkIDAhPT1pKXtpZih0eXBlb2Ygbz09dHlwZW9mIGkpY29udGludWU7TmUobyxpKX0oci5ofHxpJiZpLmgpJiZfZShvLCJzaGFtIiwhMCksUmUobixlLG8scil9fSxHZT17fTtHZVskcigidG9TdHJpbmdUYWciKV09InoiO3ZhciBEZSxWZT1HZSsiIj09IltvYmplY3Qgel0iLFllPVZlLHplPUYsV2U9aywkZT0kcigidG9TdHJpbmdUYWciKSxIZT1PYmplY3QsS2U9IkFyZ3VtZW50cyI9PVdlKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSkscWU9WWU/V2U6ZnVuY3Rpb24ocil7dmFyIHQsbixlO3JldHVybiB2b2lkIDA9PT1yPyJVbmRlZmluZWQiOm51bGw9PT1yPyJOdWxsIjoic3RyaW5nIj09dHlwZW9mKG49ZnVuY3Rpb24ocix0KXt0cnl7cmV0dXJuIHJbdF19Y2F0Y2gocil7fX0odD1IZShyKSwkZSkpP246S2U/V2UodCk6Ik9iamVjdCI9PShlPVdlKHQpKSYmemUodC5EKT8iQXJndW1lbnRzIjplfSxKZT1xZSxYZT1TdHJpbmcsUWU9ZnVuY3Rpb24ocil7aWYoIlN5bWJvbCI9PT1KZShyKSl0aHJvdyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IGEgU3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIik7cmV0dXJuIFhlKHIpfSxaZT1DLHJpPWssdGk9JHIoIm1hdGNoIiksbmk9VHlwZUVycm9yLGVpPSRyKCJtYXRjaCIpLGlpPUJlLG9pPVMsdWk9ZS5mLGZpPUtuLGFpPVFlLGNpPWZ1bmN0aW9uKHIpe2lmKGZ1bmN0aW9uKHIpe3ZhciB0O3JldHVybiBaZShyKSYmKHZvaWQgMCE9PSh0PXJbdGldKT8hIXQ6IlJlZ0V4cCI9PXJpKHIpKX0ocikpdGhyb3cgbmkoIlRoZSBtZXRob2QgZG9lc24ndCBhY2NlcHQgcmVndWxhciBleHByZXNzaW9ucyIpO3JldHVybiByfSxzaT1MLHZpPW9pKCIiLnN0YXJ0c1dpdGgpLGhpPW9pKCIiLnNsaWNlKSxsaT1NYXRoLm1pbixkaT1mdW5jdGlvbigpe3ZhciByPS8uLzt0cnl7Ii8uLyIuc3RhcnRzV2l0aChyKX1jYXRjaCh0KXt0cnl7cmV0dXJuIHJbZWldPSExLCIvLi8iLnN0YXJ0c1dpdGgocil9Y2F0Y2gocil7fX1yZXR1cm4hMX0oKTtpaSh7dGFyZ2V0OiJTdHJpbmciLFY6ITAsRzohKCFkaSYmKERlPXVpKFN0cmluZy5wcm90b3R5cGUsInN0YXJ0c1dpdGgiKSxEZSYmIURlLndyaXRhYmxlKXx8ZGkpfSx7c3RhcnRzV2l0aDpmdW5jdGlvbihyKXt2YXIgdD1haShzaSh0aGlzKSk7Y2kocik7dmFyIG49ZmkobGkoYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsdC5sZW5ndGgpKSxlPWFpKHIpO3JldHVybiB2aT92aSh0LGUsbik6aGkodCxuLG4rZS5sZW5ndGgpPT09ZX19KTt2YXIgeWk9e30sd2k9ZmUsYmk9YWUscGk9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKHIpe3JldHVybiB3aShyLGJpKX0sZ2k9byxtaT1ndCxTaT1wdCxBaT1qdCxqaT1SLE9pPXBpO3lpLmY9Z2kmJiFtaT9PYmplY3QuZGVmaW5lUHJvcGVydGllczpmdW5jdGlvbihyLHQpe0FpKHIpO2Zvcih2YXIgbixlPWppKHQpLGk9T2kodCksbz1pLmxlbmd0aCx1PTA7bz51OylTaS5mKHIsbj1pW3UrK10sZVtuXSk7cmV0dXJuIHJ9O3ZhciBraSxFaT1WKCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIpLFRpPWp0LHhpPXlpLFVpPWFlLE1pPW5uLElpPUVpLExpPXV0LFBpPXRuKCJJRV9QUk9UTyIpLF9pPWZ1bmN0aW9uKCl7fSxSaT1mdW5jdGlvbihyKXtyZXR1cm4iPHNjcmlwdD4iK3IrIjxcL3NjcmlwdD4ifSxGaT1mdW5jdGlvbihyKXtyLndyaXRlKFJpKCIiKSksci5jbG9zZSgpO3ZhciB0PXIucGFyZW50V2luZG93Lk9iamVjdDtyZXR1cm4gcj1udWxsLHR9LE5pPWZ1bmN0aW9uKCl7dHJ5e2tpPW5ldyBBY3RpdmVYT2JqZWN0KCJodG1sZmlsZSIpfWNhdGNoKHIpe312YXIgcix0O05pPSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQuZG9tYWluJiZraT9GaShraSk6KCh0PUxpKCJpZnJhbWUiKSkuc3R5bGUuZGlzcGxheT0ibm9uZSIsSWkuYXBwZW5kQ2hpbGQodCksdC5zcmM9ImphdmFzY3JpcHQ6Iiwocj10LmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpLm9wZW4oKSxyLndyaXRlKFJpKCJkb2N1bWVudC5GPU9iamVjdCIpKSxyLmNsb3NlKCksci5ZKTpGaShraSk7Zm9yKHZhciBuPVVpLmxlbmd0aDtuLS07KWRlbGV0ZSBOaS5wcm90b3R5cGVbVWlbbl1dO3JldHVybiBOaSgpfTtNaVtQaV09ITA7dmFyIENpPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKHIsdCl7dmFyIG47cmV0dXJuIG51bGwhPT1yPyhfaS5wcm90b3R5cGU9VGkociksbj1uZXcgX2ksX2kucHJvdG90eXBlPW51bGwsbltQaV09cik6bj1OaSgpLHZvaWQgMD09PXQ/bjp4aS5mKG4sdCl9LEJpPSRyLEdpPUNpLERpPXB0LmYsVmk9QmkoInVuc2NvcGFibGVzIiksWWk9QXJyYXkucHJvdG90eXBlO251bGw9PVlpW1ZpXSYmRGkoWWksVmkse2k6ITAsdmFsdWU6R2kobnVsbCl9KTt2YXIgemksV2ksJGksSGk9ZnVuY3Rpb24ocil7WWlbVmldW3JdPSEwfSxLaT17fSxxaT0haSgoZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7fXJldHVybiByLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1udWxsLE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXcgcikhPT1yLnByb3RvdHlwZX0pKSxKaT1NcixYaT1GLFFpPVRyLFppPXFpLHJvPXRuKCJJRV9QUk9UTyIpLHRvPU9iamVjdCxubz10by5wcm90b3R5cGUsZW89Wmk/dG8uZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24ocil7dmFyIHQ9UWkocik7aWYoSmkodCxybykpcmV0dXJuIHRbcm9dO3ZhciBuPXQuY29uc3RydWN0b3I7cmV0dXJuIFhpKG4pJiZ0IGluc3RhbmNlb2Ygbj9uLnByb3RvdHlwZTp0IGluc3RhbmNlb2YgdG8/bm86bnVsbH0saW89aSxvbz1GLHVvPWVvLGZvPUZuLGFvPSRyKCJpdGVyYXRvciIpLGNvPSExO1tdLmtleXMmJigibmV4dCJpbigkaT1bXS5rZXlzKCkpPyhXaT11byh1bygkaSkpKSE9PU9iamVjdC5wcm90b3R5cGUmJih6aT1XaSk6Y289ITApO3ZhciBzbz1udWxsPT16aXx8aW8oKGZ1bmN0aW9uKCl7dmFyIHI9e307cmV0dXJuIHppW2FvXS5jYWxsKHIpIT09cn0pKTtzbyYmKHppPXt9KSxvbyh6aVthb10pfHxmbyh6aSxhbywoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgdm89e1c6emksJDpjb30saG89cHQuZixsbz1Ncix5bz0kcigidG9TdHJpbmdUYWciKSx3bz1mdW5jdGlvbihyLHQsbil7ciYmIW4mJihyPXIucHJvdG90eXBlKSxyJiYhbG8ocix5bykmJmhvKHIseW8se2k6ITAsdmFsdWU6dH0pfSxibz12by5XLHBvPUNpLGdvPXksbW89d28sU289S2ksQW89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sam89RixPbz1TdHJpbmcsa289VHlwZUVycm9yLEVvPVMsVG89anQseG89T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKCl7dmFyIHIsdD0hMSxuPXt9O3RyeXsocj1FbyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIpLnNldCkpKG4sW10pLHQ9biBpbnN0YW5jZW9mIEFycmF5fWNhdGNoKHIpe31yZXR1cm4gZnVuY3Rpb24obixlKXtyZXR1cm4gVG8obiksZnVuY3Rpb24ocil7aWYoIm9iamVjdCI9PXR5cGVvZiByfHxqbyhyKSlyZXR1cm4gcjt0aHJvdyBrbygiQ2FuJ3Qgc2V0ICIrT28ocikrIiBhcyBhIHByb3RvdHlwZSIpfShlKSx0P3IobixlKTpuLl9fcHJvdG9fXz1lLG59fSgpOnZvaWQgMCksVW89QmUsTW89YSxJbz1GLExvPWVvLFBvPXhvLF9vPXdvLFJvPV90LEZvPUZuLE5vPUtpLENvPUd0LkEsQm89R3QuaixHbz12by5XLERvPXZvLiQsVm89JHIoIml0ZXJhdG9yIiksWW89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sem89ZnVuY3Rpb24ocix0LG4sZSxpLG8sdSl7IWZ1bmN0aW9uKHIsdCxuKXt2YXIgZT10KyIgSXRlcmF0b3IiO3IucHJvdG90eXBlPXBvKGJvLHtuZXh0OmdvKDEsbil9KSxtbyhyLGUsITEpLFNvW2VdPUFvfShuLHQsZSk7dmFyIGYsYSxjLHM9ZnVuY3Rpb24ocil7aWYocj09PWkmJnkpcmV0dXJuIHk7aWYoIURvJiZyIGluIGwpcmV0dXJuIGxbcl07c3dpdGNoKHIpe2Nhc2Uia2V5cyI6Y2FzZSJ2YWx1ZXMiOmNhc2UiZW50cmllcyI6cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBuKHRoaXMscil9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgbih0aGlzKX19LHY9dCsiIEl0ZXJhdG9yIixoPSExLGw9ci5wcm90b3R5cGUsZD1sW1ZvXXx8bFsiQEBpdGVyYXRvciJdfHxpJiZsW2ldLHk9IURvJiZkfHxzKGkpLHc9IkFycmF5Ij09dCYmbC5lbnRyaWVzfHxkO2lmKHcmJihmPUxvKHcuY2FsbChuZXcgcikpKSE9PU9iamVjdC5wcm90b3R5cGUmJmYubmV4dCYmKExvKGYpIT09R28mJihQbz9QbyhmLEdvKTpJbyhmW1ZvXSl8fEZvKGYsVm8sWW8pKSxfbyhmLHYsITApKSxDbyYmInZhbHVlcyI9PWkmJmQmJiJ2YWx1ZXMiIT09ZC5uYW1lJiYoQm8/Um8obCwibmFtZSIsInZhbHVlcyIpOihoPSEwLHk9ZnVuY3Rpb24oKXtyZXR1cm4gTW8oZCx0aGlzKX0pKSxpKWlmKGE9e3ZhbHVlczpzKCJ2YWx1ZXMiKSxrZXlzOm8/eTpzKCJrZXlzIiksZW50cmllczpzKCJlbnRyaWVzIil9LHUpZm9yKGMgaW4gYSkoRG98fGh8fCEoYyBpbiBsKSkmJkZvKGwsYyxhW2NdKTtlbHNlIFVvKHt0YXJnZXQ6dCxWOiEwLEc6RG98fGh9LGEpO3JldHVybiBsW1ZvXSE9PXkmJkZvKGwsVm8seSx7bmFtZTppfSksTm9bdF09eSxhfSxXbz1SLCRvPUhpLEhvPUtpLEtvPW1uLHFvPXB0LmYsSm89em8sWG89byxRbz1Lby5zZXQsWm89S28uVSgiQXJyYXkgSXRlcmF0b3IiKSxydT1KbyhBcnJheSwiQXJyYXkiLChmdW5jdGlvbihyLHQpe1FvKHRoaXMse3R5cGU6IkFycmF5IEl0ZXJhdG9yIix0YXJnZXQ6V28ociksaW5kZXg6MCxraW5kOnR9KX0pLChmdW5jdGlvbigpe3ZhciByPVpvKHRoaXMpLHQ9ci50YXJnZXQsbj1yLmtpbmQsZT1yLmluZGV4Kys7cmV0dXJuIHQmJmU8dC5sZW5ndGg/ImtleXMiPT1uP3t2YWx1ZTplLGRvbmU6ITF9OiJ2YWx1ZXMiPT1uP3t2YWx1ZTp0W2VdLGRvbmU6ITF9Ont2YWx1ZTpbZSx0W2VdXSxkb25lOiExfTooci50YXJnZXQ9dm9pZCAwLHt2YWx1ZTp2b2lkIDAsZG9uZTohMH0pfSksInZhbHVlcyIpLHR1PUhvLkg9SG8uQXJyYXk7aWYoJG8oImtleXMiKSwkbygidmFsdWVzIiksJG8oImVudHJpZXMiKSxYbyYmInZhbHVlcyIhPT10dS5uYW1lKXRyeXtxbyh0dSwibmFtZSIse3ZhbHVlOiJ2YWx1ZXMifSl9Y2F0Y2gocil7fXZhciBudT0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYidW5kZWZpbmVkIiE9dHlwZW9mIERhdGFWaWV3LGV1PUZuLGl1PVksb3U9VHlwZUVycm9yLHV1PWZ1bmN0aW9uKHIsdCl7aWYoaXUodCxyKSlyZXR1cm4gcjt0aHJvdyBvdSgiSW5jb3JyZWN0IGludm9jYXRpb24iKX0sZnU9RG4sYXU9S24sY3U9UmFuZ2VFcnJvcixzdT1mdW5jdGlvbihyKXtpZih2b2lkIDA9PT1yKXJldHVybiAwO3ZhciB0PWZ1KHIpLG49YXUodCk7aWYodCE9PW4pdGhyb3cgY3UoIldyb25nIGxlbmd0aCBvciBpbmRleCIpO3JldHVybiBufSx2dT1BcnJheSxodT1NYXRoLmFicyxsdT1NYXRoLnBvdyxkdT1NYXRoLmZsb29yLHl1PU1hdGgubG9nLHd1PVRyLGJ1PVduLHB1PUpuLGd1PWZ1bmN0aW9uKHIpe2Zvcih2YXIgdD13dSh0aGlzKSxuPXB1KHQpLGU9YXJndW1lbnRzLmxlbmd0aCxpPWJ1KGU+MT9hcmd1bWVudHNbMV06dm9pZCAwLG4pLG89ZT4yP2FyZ3VtZW50c1syXTp2b2lkIDAsdT12b2lkIDA9PT1vP246YnUobyxuKTt1Pmk7KXRbaSsrXT1yO3JldHVybiB0fSxtdT1udCxTdT1wdCxBdT15LGp1PWZ1bmN0aW9uKHIsdCxuKXt2YXIgZT1tdSh0KTtlIGluIHI/U3UuZihyLGUsQXUoMCxuKSk6cltlXT1ufSxPdT1XbixrdT1KbixFdT1qdSxUdT1BcnJheSx4dT1NYXRoLm1heCxVdT1mdW5jdGlvbihyLHQsbil7Zm9yKHZhciBlPWt1KHIpLGk9T3UodCxlKSxvPU91KHZvaWQgMD09PW4/ZTpuLGUpLHU9VHUoeHUoby1pLDApKSxmPTA7bz5pO2krKyxmKyspRXUodSxmLHJbaV0pO3JldHVybiB1Lmxlbmd0aD1mLHV9LE11PW4sSXU9UyxMdT1vLFB1PW51LF91PUd0LFJ1PV90LEZ1PWZ1bmN0aW9uKHIsdCxuKXtmb3IodmFyIGUgaW4gdClldShyLGUsdFtlXSxuKTtyZXR1cm4gcn0sTnU9aSxDdT11dSxCdT1EbixHdT1LbixEdT1zdSxWdT1lbyxZdT14byx6dT1Obi5mLFd1PXB0LmYsJHU9Z3UsSHU9VXUsS3U9d28scXU9X3UuQSxKdT1fdS5qLFh1PW1uLmdldCxRdT1tbi5zZXQsWnU9TXUuQXJyYXlCdWZmZXIscmY9WnUsdGY9cmYmJnJmLnByb3RvdHlwZSxuZj1NdS5EYXRhVmlldyxlZj1uZiYmbmYucHJvdG90eXBlLG9mPU9iamVjdC5wcm90b3R5cGUsdWY9TXUuQXJyYXksZmY9TXUuUmFuZ2VFcnJvcixhZj1JdSgkdSksY2Y9SXUoW10ucmV2ZXJzZSksc2Y9ZnVuY3Rpb24ocix0LG4pe3ZhciBlLGksbyx1PXZ1KG4pLGY9OCpuLXQtMSxhPSgxPDxmKS0xLGM9YT4+MSxzPTIzPT09dD9sdSgyLC0yNCktbHUoMiwtNzcpOjAsdj0wPnJ8fDA9PT1yJiYwPjEvcj8xOjAsaD0wO2Zvcigocj1odShyKSkhPXJ8fHI9PT0xLzA/KGk9ciE9cj8xOjAsZT1hKTooZT1kdSh5dShyKS8uNjkzMTQ3MTgwNTU5OTQ1MyksMT5yKihvPWx1KDIsLWUpKSYmKGUtLSxvKj0yKSwyPihyKz0xPmUrYz9zKmx1KDIsMS1jKTpzL28pKm98fChlKyssby89MiksYT5lK2M/MT5lK2M/KGk9cipsdSgyLGMtMSkqbHUoMix0KSxlPTApOihpPShyKm8tMSkqbHUoMix0KSxlKz1jKTooaT0wLGU9YSkpO3Q+PTg7KXVbaCsrXT0yNTUmaSxpLz0yNTYsdC09ODtmb3IoZT1lPDx0fGksZis9dDtmPjA7KXVbaCsrXT0yNTUmZSxlLz0yNTYsZi09ODtyZXR1cm4gdVstLWhdfD0xMjgqdix1fSx2Zj1mdW5jdGlvbihyLHQpe3ZhciBuLGU9ci5sZW5ndGgsaT04KmUtdC0xLG89KDE8PGkpLTEsdT1vPj4xLGY9aS03LGE9ZS0xLGM9clthLS1dLHM9MTI3JmM7Zm9yKGM+Pj03O2Y+MDspcz0yNTYqcytyW2EtLV0sZi09ODtmb3Iobj1zJigxPDwtZiktMSxzPj49LWYsZis9dDtmPjA7KW49MjU2Km4rclthLS1dLGYtPTg7aWYoMD09PXMpcz0xLXU7ZWxzZXtpZihzPT09bylyZXR1cm4gbj9OYU46Yz8tMS8wOjEvMDtuKz1sdSgyLHQpLHMtPXV9cmV0dXJuKGM/LTE6MSkqbipsdSgyLHMtdCl9LGhmPWZ1bmN0aW9uKHIpe3JldHVyblsyNTUmcl19LGxmPWZ1bmN0aW9uKHIpe3JldHVyblsyNTUmcixyPj44JjI1NV19LGRmPWZ1bmN0aW9uKHIpe3JldHVyblsyNTUmcixyPj44JjI1NSxyPj4xNiYyNTUscj4+MjQmMjU1XX0seWY9ZnVuY3Rpb24ocil7cmV0dXJuIHJbM108PDI0fHJbMl08PDE2fHJbMV08PDh8clswXX0sd2Y9ZnVuY3Rpb24ocil7cmV0dXJuIHNmKHIsMjMsNCl9LGJmPWZ1bmN0aW9uKHIpe3JldHVybiBzZihyLDUyLDgpfSxwZj1mdW5jdGlvbihyLHQpe1d1KHIucHJvdG90eXBlLHQse2dldDpmdW5jdGlvbigpe3JldHVybiBYdSh0aGlzKVt0XX19KX0sZ2Y9ZnVuY3Rpb24ocix0LG4sZSl7dmFyIGk9RHUobiksbz1YdShyKTtpZihpK3Q+by5ieXRlTGVuZ3RoKXRocm93IGZmKCJXcm9uZyBpbmRleCIpO3ZhciB1PVh1KG8uYnVmZmVyKS5LLGY9aStvLmJ5dGVPZmZzZXQsYT1IdSh1LGYsZit0KTtyZXR1cm4gZT9hOmNmKGEpfSxtZj1mdW5jdGlvbihyLHQsbixlLGksbyl7dmFyIHU9RHUobiksZj1YdShyKTtpZih1K3Q+Zi5ieXRlTGVuZ3RoKXRocm93IGZmKCJXcm9uZyBpbmRleCIpO2Zvcih2YXIgYT1YdShmLmJ1ZmZlcikuSyxjPXUrZi5ieXRlT2Zmc2V0LHM9ZSgraSksdj0wO3Q+djt2KyspYVtjK3ZdPXNbbz92OnQtdi0xXX07aWYoUHUpe3ZhciBTZj1xdSYmIkFycmF5QnVmZmVyIiE9PVp1Lm5hbWU7aWYoTnUoKGZ1bmN0aW9uKCl7WnUoMSl9KSkmJk51KChmdW5jdGlvbigpe25ldyBadSgtMSl9KSkmJiFOdSgoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFp1LG5ldyBadSgxLjUpLG5ldyBadShOYU4pLFNmJiYhSnV9KSkpU2YmJkp1JiZSdShadSwibmFtZSIsIkFycmF5QnVmZmVyIik7ZWxzZXsocmY9ZnVuY3Rpb24ocil7cmV0dXJuIEN1KHRoaXMsdGYpLG5ldyBadShEdShyKSl9KS5wcm90b3R5cGU9dGY7Zm9yKHZhciBBZixqZj16dShadSksT2Y9MDtqZi5sZW5ndGg+T2Y7KShBZj1qZltPZisrXSlpbiByZnx8UnUocmYsQWYsWnVbQWZdKTt0Zi5jb25zdHJ1Y3Rvcj1yZn1ZdSYmVnUoZWYpIT09b2YmJll1KGVmLG9mKTt2YXIga2Y9bmV3IG5mKG5ldyByZigyKSksRWY9SXUoZWYuc2V0SW50OCk7a2Yuc2V0SW50OCgwLDIxNDc0ODM2NDgpLGtmLnNldEludDgoMSwyMTQ3NDgzNjQ5KSwha2YuZ2V0SW50OCgwKSYma2YuZ2V0SW50OCgxKXx8RnUoZWYse3NldEludDg6ZnVuY3Rpb24ocix0KXtFZih0aGlzLHIsdDw8MjQ+PjI0KX0sc2V0VWludDg6ZnVuY3Rpb24ocix0KXtFZih0aGlzLHIsdDw8MjQ+PjI0KX19LHtQOiEwfSl9ZWxzZSB0Zj0ocmY9ZnVuY3Rpb24ocil7Q3UodGhpcyx0Zik7dmFyIHQ9RHUocik7UXUodGhpcyx7SzphZih1Zih0KSwwKSxieXRlTGVuZ3RoOnR9KSxMdXx8KHRoaXMuYnl0ZUxlbmd0aD10KX0pLnByb3RvdHlwZSxlZj0obmY9ZnVuY3Rpb24ocix0LG4pe0N1KHRoaXMsZWYpLEN1KHIsdGYpO3ZhciBlPVh1KHIpLmJ5dGVMZW5ndGgsaT1CdSh0KTtpZigwPml8fGk+ZSl0aHJvdyBmZigiV3Jvbmcgb2Zmc2V0Iik7aWYoaSsobj12b2lkIDA9PT1uP2UtaTpHdShuKSk+ZSl0aHJvdyBmZigiV3JvbmcgbGVuZ3RoIik7UXUodGhpcyx7YnVmZmVyOnIsYnl0ZUxlbmd0aDpuLGJ5dGVPZmZzZXQ6aX0pLEx1fHwodGhpcy5idWZmZXI9cix0aGlzLmJ5dGVMZW5ndGg9bix0aGlzLmJ5dGVPZmZzZXQ9aSl9KS5wcm90b3R5cGUsTHUmJihwZihyZiwiYnl0ZUxlbmd0aCIpLHBmKG5mLCJidWZmZXIiKSxwZihuZiwiYnl0ZUxlbmd0aCIpLHBmKG5mLCJieXRlT2Zmc2V0IikpLEZ1KGVmLHtnZXRJbnQ4OmZ1bmN0aW9uKHIpe3JldHVybiBnZih0aGlzLDEscilbMF08PDI0Pj4yNH0sZ2V0VWludDg6ZnVuY3Rpb24ocil7cmV0dXJuIGdmKHRoaXMsMSxyKVswXX0sZ2V0SW50MTY6ZnVuY3Rpb24ocil7dmFyIHQ9Z2YodGhpcywyLHIsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApO3JldHVybih0WzFdPDw4fHRbMF0pPDwxNj4+MTZ9LGdldFVpbnQxNjpmdW5jdGlvbihyKXt2YXIgdD1nZih0aGlzLDIscixhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuIHRbMV08PDh8dFswXX0sZ2V0SW50MzI6ZnVuY3Rpb24ocil7cmV0dXJuIHlmKGdmKHRoaXMsNCxyLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKSl9LGdldFVpbnQzMjpmdW5jdGlvbihyKXtyZXR1cm4geWYoZ2YodGhpcyw0LHIsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApKT4+PjB9LGdldEZsb2F0MzI6ZnVuY3Rpb24ocil7cmV0dXJuIHZmKGdmKHRoaXMsNCxyLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKSwyMyl9LGdldEZsb2F0NjQ6ZnVuY3Rpb24ocil7cmV0dXJuIHZmKGdmKHRoaXMsOCxyLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKSw1Mil9LHNldEludDg6ZnVuY3Rpb24ocix0KXttZih0aGlzLDEscixoZix0KX0sc2V0VWludDg6ZnVuY3Rpb24ocix0KXttZih0aGlzLDEscixoZix0KX0sc2V0SW50MTY6ZnVuY3Rpb24ocix0KXttZih0aGlzLDIscixsZix0LGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0VWludDE2OmZ1bmN0aW9uKHIsdCl7bWYodGhpcywyLHIsbGYsdCxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9LHNldEludDMyOmZ1bmN0aW9uKHIsdCl7bWYodGhpcyw0LHIsZGYsdCxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9LHNldFVpbnQzMjpmdW5jdGlvbihyLHQpe21mKHRoaXMsNCxyLGRmLHQsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfSxzZXRGbG9hdDMyOmZ1bmN0aW9uKHIsdCl7bWYodGhpcyw0LHIsd2YsdCxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9LHNldEZsb2F0NjQ6ZnVuY3Rpb24ocix0KXttZih0aGlzLDgscixiZix0LGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX19KTtLdShyZiwiQXJyYXlCdWZmZXIiKSxLdShuZiwiRGF0YVZpZXciKTt2YXIgVGY9e0FycmF5QnVmZmVyOnJmLERhdGFWaWV3Om5mfSx4Zj1TLFVmPWksTWY9RixJZj1xZSxMZj1IdCxQZj1mdW5jdGlvbigpe30sX2Y9W10sUmY9VigiUmVmbGVjdCIsImNvbnN0cnVjdCIpLEZmPS9eXHMqKD86Y2xhc3N8ZnVuY3Rpb24pXGIvLE5mPXhmKEZmLmV4ZWMpLENmPSFGZi5leGVjKFBmKSxCZj1mdW5jdGlvbihyKXtpZighTWYocikpcmV0dXJuITE7dHJ5e3JldHVybiBSZihQZixfZixyKSwhMH1jYXRjaChyKXtyZXR1cm4hMX19LEdmPWZ1bmN0aW9uKHIpe2lmKCFNZihyKSlyZXR1cm4hMTtzd2l0Y2goSWYocikpe2Nhc2UiQXN5bmNGdW5jdGlvbiI6Y2FzZSJHZW5lcmF0b3JGdW5jdGlvbiI6Y2FzZSJBc3luY0dlbmVyYXRvckZ1bmN0aW9uIjpyZXR1cm4hMX10cnl7cmV0dXJuIENmfHwhIU5mKEZmLExmKHIpKX1jYXRjaChyKXtyZXR1cm4hMH19O0dmLmg9ITA7dmFyIERmPSFSZnx8VWYoKGZ1bmN0aW9uKCl7dmFyIHI7cmV0dXJuIEJmKEJmLmNhbGwpfHwhQmYoT2JqZWN0KXx8IUJmKChmdW5jdGlvbigpe3I9ITB9KSl8fHJ9KSk/R2Y6QmYsVmY9RGYsWWY9ZnIsemY9VHlwZUVycm9yLFdmPWZ1bmN0aW9uKHIpe2lmKFZmKHIpKXJldHVybiByO3Rocm93IHpmKFlmKHIpKyIgaXMgbm90IGEgY29uc3RydWN0b3IiKX0sJGY9anQsSGY9V2YsS2Y9JHIoInNwZWNpZXMiKSxxZj1mdW5jdGlvbihyLHQpe3ZhciBuLGU9JGYocikuY29uc3RydWN0b3I7cmV0dXJuIHZvaWQgMD09PWV8fG51bGw9PShuPSRmKGUpW0tmXSk/dDpIZihuKX0sSmY9QmUsWGY9UyxRZj1pLFpmPWp0LHJhPVduLHRhPUtuLG5hPXFmLGVhPVRmLkFycmF5QnVmZmVyLGlhPVRmLkRhdGFWaWV3LG9hPWlhLnByb3RvdHlwZSx1YT1YZihlYS5wcm90b3R5cGUuc2xpY2UpLGZhPVhmKG9hLmdldFVpbnQ4KSxhYT1YZihvYS5zZXRVaW50OCk7SmYoe3RhcmdldDoiQXJyYXlCdWZmZXIiLFY6ITAsUDohMCxHOlFmKChmdW5jdGlvbigpe3JldHVybiFuZXcgZWEoMikuc2xpY2UoMSx2b2lkIDApLmJ5dGVMZW5ndGh9KSl9LHtzbGljZTpmdW5jdGlvbihyLHQpe2lmKHVhJiZ2b2lkIDA9PT10KXJldHVybiB1YShaZih0aGlzKSxyKTtmb3IodmFyIG49WmYodGhpcykuYnl0ZUxlbmd0aCxlPXJhKHIsbiksaT1yYSh2b2lkIDA9PT10P246dCxuKSxvPW5ldyhuYSh0aGlzLGVhKSkodGEoaS1lKSksdT1uZXcgaWEodGhpcyksZj1uZXcgaWEobyksYT0wO2k+ZTspYWEoZixhKyssZmEodSxlKyspKTtyZXR1cm4gb319KTt2YXIgY2E9cWU7VmV8fEZuKE9iamVjdC5wcm90b3R5cGUsInRvU3RyaW5nIixWZT97fS50b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0ICIrY2EodGhpcykrIl0ifSx7UDohMH0pO3ZhciBzYT17ZXhwb3J0czp7fX0sdmE9JHIoIml0ZXJhdG9yIiksaGE9ITE7dHJ5e3ZhciBsYT0wLGRhPXtuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ISFsYSsrfX0scTpmdW5jdGlvbigpe2hhPSEwfX07ZGFbdmFdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LEFycmF5LmZyb20oZGEsKGZ1bmN0aW9uKCl7dGhyb3cgMn0pKX1jYXRjaChyKXt9dmFyIHlhLHdhLGJhLHBhPWZ1bmN0aW9uKHIsdCl7aWYoIXQmJiFoYSlyZXR1cm4hMTt2YXIgbj0hMTt0cnl7dmFyIGU9e307ZVt2YV09ZnVuY3Rpb24oKXtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOm49ITB9fX19LHIoZSl9Y2F0Y2gocil7fXJldHVybiBufSxnYT1udSxtYT1vLFNhPW4sQWE9RixqYT1DLE9hPU1yLGthPXFlLEVhPWZyLFRhPV90LHhhPUZuLFVhPXB0LmYsTWE9WSxJYT1lbyxMYT14byxQYT0kcixfYT1ScixSYT1tbi5ULEZhPW1uLmdldCxOYT1TYS5JbnQ4QXJyYXksQ2E9TmEmJk5hLnByb3RvdHlwZSxCYT1TYS5VaW50OENsYW1wZWRBcnJheSxHYT1CYSYmQmEucHJvdG90eXBlLERhPU5hJiZJYShOYSksVmE9Q2EmJklhKENhKSxZYT1PYmplY3QucHJvdG90eXBlLHphPVNhLlR5cGVFcnJvcixXYT1QYSgidG9TdHJpbmdUYWciKSwkYT1fYSgiVFlQRURfQVJSQVlfVEFHIiksSGE9Z2EmJiEhTGEmJiJPcGVyYSIhPT1rYShTYS5vcGVyYSksS2E9ITEscWE9e0ludDhBcnJheToxLFVpbnQ4QXJyYXk6MSxVaW50OENsYW1wZWRBcnJheToxLEludDE2QXJyYXk6MixVaW50MTZBcnJheToyLEludDMyQXJyYXk6NCxVaW50MzJBcnJheTo0LEZsb2F0MzJBcnJheTo0LEZsb2F0NjRBcnJheTo4fSxKYT17QmlnSW50NjRBcnJheTo4LEJpZ1VpbnQ2NEFycmF5Ojh9LFhhPWZ1bmN0aW9uKHIpe3ZhciB0PUlhKHIpO2lmKGphKHQpKXt2YXIgbj1GYSh0KTtyZXR1cm4gbiYmT2EobiwiVHlwZWRBcnJheUNvbnN0cnVjdG9yIik/bi5KOlhhKHQpfX0sUWE9ZnVuY3Rpb24ocil7aWYoIWphKHIpKXJldHVybiExO3ZhciB0PWthKHIpO3JldHVybiBPYShxYSx0KXx8T2EoSmEsdCl9O2Zvcih5YSBpbiBxYSkoYmE9KHdhPVNhW3lhXSkmJndhLnByb3RvdHlwZSk/UmEoYmEpLko9d2E6SGE9ITE7Zm9yKHlhIGluIEphKShiYT0od2E9U2FbeWFdKSYmd2EucHJvdG90eXBlKSYmKFJhKGJhKS5KPXdhKTtpZigoIUhhfHwhQWEoRGEpfHxEYT09PUZ1bmN0aW9uLnByb3RvdHlwZSkmJihEYT1mdW5jdGlvbigpe3Rocm93IHphKCJJbmNvcnJlY3QgaW52b2NhdGlvbiIpfSxIYSkpZm9yKHlhIGluIHFhKVNhW3lhXSYmTGEoU2FbeWFdLERhKTtpZigoIUhhfHwhVmF8fFZhPT09WWEpJiYoVmE9RGEucHJvdG90eXBlLEhhKSlmb3IoeWEgaW4gcWEpU2FbeWFdJiZMYShTYVt5YV0ucHJvdG90eXBlLFZhKTtpZihIYSYmSWEoR2EpIT09VmEmJkxhKEdhLFZhKSxtYSYmIU9hKFZhLFdhKSlmb3IoeWEgaW4gS2E9ITAsVWEoVmEsV2Ese2dldDpmdW5jdGlvbigpe3JldHVybiBqYSh0aGlzKT90aGlzWyRhXTp2b2lkIDB9fSkscWEpU2FbeWFdJiZUYShTYVt5YV0sJGEseWEpO3ZhciBaYT17WDpIYSxaOkthJiYkYSxycjpmdW5jdGlvbihyKXtpZihRYShyKSlyZXR1cm4gcjt0aHJvdyB6YSgiVGFyZ2V0IGlzIG5vdCBhIHR5cGVkIGFycmF5Iil9LHRyOmZ1bmN0aW9uKHIpe2lmKEFhKHIpJiYoIUxhfHxNYShEYSxyKSkpcmV0dXJuIHI7dGhyb3cgemEoRWEocikrIiBpcyBub3QgYSB0eXBlZCBhcnJheSBjb25zdHJ1Y3RvciIpfSxucjpmdW5jdGlvbihyLHQsbixlKXtpZihtYSl7aWYobilmb3IodmFyIGkgaW4gcWEpe3ZhciBvPVNhW2ldO2lmKG8mJk9hKG8ucHJvdG90eXBlLHIpKXRyeXtkZWxldGUgby5wcm90b3R5cGVbcl19Y2F0Y2gobil7dHJ5e28ucHJvdG90eXBlW3JdPXR9Y2F0Y2gocil7fX19VmFbcl0mJiFufHx4YShWYSxyLG4/dDpIYSYmQ2Fbcl18fHQsZSl9fSxlcjpmdW5jdGlvbihyLHQsbil7dmFyIGUsaTtpZihtYSl7aWYoTGEpe2lmKG4pZm9yKGUgaW4gcWEpaWYoKGk9U2FbZV0pJiZPYShpLHIpKXRyeXtkZWxldGUgaVtyXX1jYXRjaChyKXt9aWYoRGFbcl0mJiFuKXJldHVybjt0cnl7cmV0dXJuIHhhKERhLHIsbj90OkhhJiZEYVtyXXx8dCl9Y2F0Y2gocil7fX1mb3IoZSBpbiBxYSkhKGk9U2FbZV0pfHxpW3JdJiYhbnx8eGEoaSxyLHQpfX0saXI6WGEsaXNWaWV3OmZ1bmN0aW9uKHIpe2lmKCFqYShyKSlyZXR1cm4hMTt2YXIgdD1rYShyKTtyZXR1cm4iRGF0YVZpZXciPT09dHx8T2EocWEsdCl8fE9hKEphLHQpfSx1cjpRYSxhcjpEYSxjcjpWYX0scmM9bix0Yz1pLG5jPXBhLGVjPVphLlgsaWM9cmMuQXJyYXlCdWZmZXIsb2M9cmMuSW50OEFycmF5LHVjPSFlY3x8IXRjKChmdW5jdGlvbigpe29jKDEpfSkpfHwhdGMoKGZ1bmN0aW9uKCl7bmV3IG9jKC0xKX0pKXx8IW5jKChmdW5jdGlvbihyKXtuZXcgb2MsbmV3IG9jKG51bGwpLG5ldyBvYygxLjUpLG5ldyBvYyhyKX0pLCEwKXx8dGMoKGZ1bmN0aW9uKCl7cmV0dXJuIDEhPT1uZXcgb2MobmV3IGljKDIpLDEsdm9pZCAwKS5sZW5ndGh9KSksZmM9QyxhYz1NYXRoLmZsb29yLGNjPU51bWJlci5pc0ludGVnZXJ8fGZ1bmN0aW9uKHIpe3JldHVybiFmYyhyKSYmaXNGaW5pdGUocikmJmFjKHIpPT09cn0sc2M9RG4sdmM9UmFuZ2VFcnJvcixoYz1SYW5nZUVycm9yLGxjPWZ1bmN0aW9uKHIsdCl7dmFyIG49ZnVuY3Rpb24ocil7dmFyIHQ9c2Mocik7aWYoMD50KXRocm93IHZjKCJUaGUgYXJndW1lbnQgY2FuJ3QgYmUgbGVzcyB0aGFuIDAiKTtyZXR1cm4gdH0ocik7aWYobiV0KXRocm93IGhjKCJXcm9uZyBvZmZzZXQiKTtyZXR1cm4gbn0sZGM9dnIseWM9dSx3Yz1TKFMuYmluZCksYmM9ZnVuY3Rpb24ocix0KXtyZXR1cm4gZGMociksdm9pZCAwPT09dD9yOnljP3djKHIsdCk6ZnVuY3Rpb24oKXtyZXR1cm4gci5hcHBseSh0LGFyZ3VtZW50cyl9fSxwYz1xZSxnYz1scixtYz1LaSxTYz0kcigiaXRlcmF0b3IiKSxBYz1mdW5jdGlvbihyKXtpZihudWxsIT1yKXJldHVybiBnYyhyLFNjKXx8Z2MociwiQEBpdGVyYXRvciIpfHxtY1twYyhyKV19LGpjPWEsT2M9dnIsa2M9anQsRWM9ZnIsVGM9QWMseGM9VHlwZUVycm9yLFVjPWZ1bmN0aW9uKHIsdCl7dmFyIG49Mj5hcmd1bWVudHMubGVuZ3RoP1RjKHIpOnQ7aWYoT2MobikpcmV0dXJuIGtjKGpjKG4scikpO3Rocm93IHhjKEVjKHIpKyIgaXMgbm90IGl0ZXJhYmxlIil9LE1jPUtpLEljPSRyKCJpdGVyYXRvciIpLExjPUFycmF5LnByb3RvdHlwZSxQYz1mdW5jdGlvbihyKXtyZXR1cm4gdm9pZCAwIT09ciYmKE1jLkFycmF5PT09cnx8TGNbSWNdPT09cil9LF9jPWJjLFJjPWEsRmM9V2YsTmM9VHIsQ2M9Sm4sQmM9VWMsR2M9QWMsRGM9UGMsVmM9WmEudHIsWWM9ayx6Yz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihyKXtyZXR1cm4iQXJyYXkiPT1ZYyhyKX0sV2M9emMsJGM9RGYsSGM9QyxLYz0kcigic3BlY2llcyIpLHFjPUFycmF5LEpjPWZ1bmN0aW9uKHIsdCl7cmV0dXJuIG5ldyhmdW5jdGlvbihyKXt2YXIgdDtyZXR1cm4gV2MocikmJih0PXIuY29uc3RydWN0b3IsKCRjKHQpJiYodD09PXFjfHxXYyh0LnByb3RvdHlwZSkpfHxIYyh0KSYmbnVsbD09PSh0PXRbS2NdKSkmJih0PXZvaWQgMCkpLHZvaWQgMD09PXQ/cWM6dH0ocikpKDA9PT10PzA6dCl9LFhjPWJjLFFjPU0sWmM9VHIscnM9Sm4sdHM9SmMsbnM9UyhbXS5wdXNoKSxlcz1mdW5jdGlvbihyKXt2YXIgdD0xPT1yLG49Mj09cixlPTM9PXIsaT00PT1yLG89Nj09cix1PTc9PXIsZj01PT1yfHxvO3JldHVybiBmdW5jdGlvbihhLGMscyx2KXtmb3IodmFyIGgsbCxkPVpjKGEpLHk9UWMoZCksdz1YYyhjLHMpLGI9cnMoeSkscD0wLGc9dnx8dHMsbT10P2coYSxiKTpufHx1P2coYSwwKTp2b2lkIDA7Yj5wO3ArKylpZigoZnx8cCBpbiB5KSYmKGw9dyhoPXlbcF0scCxkKSxyKSlpZih0KW1bcF09bDtlbHNlIGlmKGwpc3dpdGNoKHIpe2Nhc2UgMzpyZXR1cm4hMDtjYXNlIDU6cmV0dXJuIGg7Y2FzZSA2OnJldHVybiBwO2Nhc2UgMjpucyhtLGgpfWVsc2Ugc3dpdGNoKHIpe2Nhc2UgNDpyZXR1cm4hMTtjYXNlIDc6bnMobSxoKX1yZXR1cm4gbz8tMTplfHxpP2k6bX19LGlzPXtmb3JFYWNoOmVzKDApLG1hcDplcygxKSxmaWx0ZXI6ZXMoMiksc29tZTplcygzKSxldmVyeTplcyg0KSxmaW5kOmVzKDUpLGZpbmRJbmRleDplcyg2KSxzcjplcyg3KX0sb3M9Vix1cz1wdCxmcz1vLGFzPSRyKCJzcGVjaWVzIiksY3M9ZnVuY3Rpb24ocil7dmFyIHQ9b3Mociksbj11cy5mO2ZzJiZ0JiYhdFthc10mJm4odCxhcyx7aTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319KX0sc3M9Rix2cz1DLGhzPXhvLGxzPUJlLGRzPW4seXM9YSx3cz1vLGJzPXVjLHBzPVphLGdzPVRmLG1zPXV1LFNzPXksQXM9X3QsanM9Y2MsT3M9S24sa3M9c3UsRXM9bGMsVHM9bnQseHM9TXIsVXM9cWUsTXM9QyxJcz1vcixMcz1DaSxQcz1ZLF9zPXhvLFJzPU5uLmYsRnM9ZnVuY3Rpb24ocil7dmFyIHQsbixlLGksbyx1LGY9RmModGhpcyksYT1OYyhyKSxjPWFyZ3VtZW50cy5sZW5ndGgscz1jPjE/YXJndW1lbnRzWzFdOnZvaWQgMCx2PXZvaWQgMCE9PXMsaD1HYyhhKTtpZihoJiYhRGMoaCkpZm9yKHU9KG89QmMoYSxoKSkubmV4dCxhPVtdOyEoaT1SYyh1LG8pKS5kb25lOylhLnB1c2goaS52YWx1ZSk7Zm9yKHYmJmM+MiYmKHM9X2Mocyxhcmd1bWVudHNbMl0pKSxuPUNjKGEpLGU9bmV3KFZjKGYpKShuKSx0PTA7bj50O3QrKyllW3RdPXY/cyhhW3RdLHQpOmFbdF07cmV0dXJuIGV9LE5zPWlzLmZvckVhY2gsQ3M9Y3MsQnM9cHQsR3M9ZSxEcz1tbi5nZXQsVnM9bW4uc2V0LFlzPW1uLlQsenM9QnMuZixXcz1Hcy5mLCRzPU1hdGgucm91bmQsSHM9ZHMuUmFuZ2VFcnJvcixLcz1ncy5BcnJheUJ1ZmZlcixxcz1Lcy5wcm90b3R5cGUsSnM9Z3MuRGF0YVZpZXcsWHM9cHMuWCxRcz1wcy5aLFpzPXBzLmFyLHJ2PXBzLmNyLHR2PXBzLnRyLG52PXBzLnVyLGV2PWZ1bmN0aW9uKHIsdCl7dHYocik7Zm9yKHZhciBuPTAsZT10Lmxlbmd0aCxpPW5ldyByKGUpO2U+bjspaVtuXT10W24rK107cmV0dXJuIGl9LGl2PWZ1bmN0aW9uKHIsdCl7enMocix0LHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRHModGhpcylbdF19fSl9LG92PWZ1bmN0aW9uKHIpe3ZhciB0O3JldHVybiBQcyhxcyxyKXx8IkFycmF5QnVmZmVyIj09KHQ9VXMocikpfHwiU2hhcmVkQXJyYXlCdWZmZXIiPT10fSx1dj1mdW5jdGlvbihyLHQpe3JldHVybiBudihyKSYmIUlzKHQpJiZ0IGluIHImJmpzKCt0KSYmdD49MH0sZnY9ZnVuY3Rpb24ocix0KXtyZXR1cm4gdD1Ucyh0KSx1dihyLHQpP1NzKDIsclt0XSk6V3Mocix0KX0sYXY9ZnVuY3Rpb24ocix0LG4pe3JldHVybiB0PVRzKHQpLCEodXYocix0KSYmTXMobikmJnhzKG4sInZhbHVlIikpfHx4cyhuLCJnZXQiKXx8eHMobiwic2V0Iil8fG4uaXx8eHMobiwid3JpdGFibGUiKSYmIW4ud3JpdGFibGV8fHhzKG4sImVudW1lcmFibGUiKSYmIW4udD96cyhyLHQsbik6KHJbdF09bi52YWx1ZSxyKX07d3M/KFhzfHwoR3MuZj1mdixCcy5mPWF2LGl2KHJ2LCJidWZmZXIiKSxpdihydiwiYnl0ZU9mZnNldCIpLGl2KHJ2LCJieXRlTGVuZ3RoIiksaXYocnYsImxlbmd0aCIpKSxscyh7dGFyZ2V0OiJPYmplY3QiLEM6ITAsRzohWHN9LHtnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ZnYsZGVmaW5lUHJvcGVydHk6YXZ9KSxzYS5leHBvcnRzPWZ1bmN0aW9uKHIsdCxuKXt2YXIgZT1yLm1hdGNoKC9cZCskLylbMF0vOCxpPXIrKG4/IkNsYW1wZWQiOiIiKSsiQXJyYXkiLG89ImdldCIrcix1PSJzZXQiK3IsZj1kc1tpXSxhPWYsYz1hJiZhLnByb3RvdHlwZSxzPXt9LHY9ZnVuY3Rpb24ocix0KXt6cyhyLHQse2dldDpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihyLHQpe3ZhciBuPURzKHIpO3JldHVybiBuLnZpZXdbb10odCplK24uYnl0ZU9mZnNldCwhMCl9KHRoaXMsdCl9LHNldDpmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24ocix0LGkpe3ZhciBvPURzKHIpO24mJihpPTA+KGk9JHMoaSkpPzA6aT4yNTU/MjU1OjI1NSZpKSxvLnZpZXdbdV0odCplK28uYnl0ZU9mZnNldCxpLCEwKX0odGhpcyx0LHIpfSx0OiEwfSl9O1hzP2JzJiYoYT10KChmdW5jdGlvbihyLHQsbixpKXtyZXR1cm4gbXMocixjKSxmdW5jdGlvbihyLHQsbil7dmFyIGUsaTtyZXR1cm4gaHMmJnNzKGU9dC5jb25zdHJ1Y3RvcikmJmUhPT1uJiZ2cyhpPWUucHJvdG90eXBlKSYmaSE9PW4ucHJvdG90eXBlJiZocyhyLGkpLHJ9KE1zKHQpP292KHQpP3ZvaWQgMCE9PWk/bmV3IGYodCxFcyhuLGUpLGkpOnZvaWQgMCE9PW4/bmV3IGYodCxFcyhuLGUpKTpuZXcgZih0KTpudih0KT9ldihhLHQpOnlzKEZzLGEsdCk6bmV3IGYoa3ModCkpLHIsYSl9KSksX3MmJl9zKGEsWnMpLE5zKFJzKGYpLChmdW5jdGlvbihyKXtyIGluIGF8fEFzKGEscixmW3JdKX0pKSxhLnByb3RvdHlwZT1jKTooYT10KChmdW5jdGlvbihyLHQsbixpKXttcyhyLGMpO3ZhciBvLHUsZixzPTAsaD0wO2lmKE1zKHQpKXtpZighb3YodCkpcmV0dXJuIG52KHQpP2V2KGEsdCk6eXMoRnMsYSx0KTtvPXQsaD1FcyhuLGUpO3ZhciBsPXQuYnl0ZUxlbmd0aDtpZih2b2lkIDA9PT1pKXtpZihsJWUpdGhyb3cgSHMoIldyb25nIGxlbmd0aCIpO2lmKDA+KHU9bC1oKSl0aHJvdyBIcygiV3JvbmcgbGVuZ3RoIil9ZWxzZSBpZigodT1PcyhpKSplKStoPmwpdGhyb3cgSHMoIldyb25nIGxlbmd0aCIpO2Y9dS9lfWVsc2UgZj1rcyh0KSxvPW5ldyBLcyh1PWYqZSk7Zm9yKFZzKHIse2J1ZmZlcjpvLGJ5dGVPZmZzZXQ6aCxieXRlTGVuZ3RoOnUsbGVuZ3RoOmYsdmlldzpuZXcgSnMobyl9KTtmPnM7KXYocixzKyspfSkpLF9zJiZfcyhhLFpzKSxjPWEucHJvdG90eXBlPUxzKHJ2KSksYy5jb25zdHJ1Y3RvciE9PWEmJkFzKGMsImNvbnN0cnVjdG9yIixhKSxZcyhjKS5KPWEsUXMmJkFzKGMsUXMsaSk7dmFyIGg9YSE9ZjtzW2ldPWEsbHMoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxHOmgsaDohWHN9LHMpLCJCWVRFU19QRVJfRUxFTUVOVCJpbiBhfHxBcyhhLCJCWVRFU19QRVJfRUxFTUVOVCIsZSksIkJZVEVTX1BFUl9FTEVNRU5UImluIGN8fEFzKGMsIkJZVEVTX1BFUl9FTEVNRU5UIixlKSxDcyhpKX0pOnNhLmV4cG9ydHM9ZnVuY3Rpb24oKXt9LCgwLHNhLmV4cG9ydHMpKCJVaW50OCIsKGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbih0LG4sZSl7cmV0dXJuIHIodGhpcyx0LG4sZSl9fSkpO3ZhciBjdj1mcixzdj1UeXBlRXJyb3IsdnY9ZnVuY3Rpb24ocix0KXtpZighZGVsZXRlIHJbdF0pdGhyb3cgc3YoIkNhbm5vdCBkZWxldGUgcHJvcGVydHkgIitjdih0KSsiIG9mICIrY3YocikpfSxodj1Ucixsdj1Xbixkdj1Kbix5dj12dix3dj1NYXRoLm1pbixidj1aYSxwdj1TKFtdLmNvcHlXaXRoaW58fGZ1bmN0aW9uKHIsdCl7dmFyIG49aHYodGhpcyksZT1kdihuKSxpPWx2KHIsZSksbz1sdih0LGUpLHU9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsZj13digodm9pZCAwPT09dT9lOmx2KHUsZSkpLW8sZS1pKSxhPTE7Zm9yKGk+byYmbytmPmkmJihhPS0xLG8rPWYtMSxpKz1mLTEpO2YtLSA+MDspbyBpbiBuP25baV09bltvXTp5dihuLGkpLGkrPWEsbys9YTtyZXR1cm4gbn0pLGd2PWJ2LnJyOygwLGJ2Lm5yKSgiY29weVdpdGhpbiIsKGZ1bmN0aW9uKHIsdCl7cmV0dXJuIHB2KGd2KHRoaXMpLHIsdCxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9KSk7dmFyIG12PWlzLmV2ZXJ5LFN2PVphLnJyOygwLFphLm5yKSgiZXZlcnkiLChmdW5jdGlvbihyKXtyZXR1cm4gbXYoU3YodGhpcykscixhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIEF2PVpyLGp2PVR5cGVFcnJvcixPdj1ndSxrdj1mdW5jdGlvbihyKXt2YXIgdD1BdihyLCJudW1iZXIiKTtpZigibnVtYmVyIj09dHlwZW9mIHQpdGhyb3cganYoIkNhbid0IGNvbnZlcnQgbnVtYmVyIHRvIGJpZ2ludCIpO3JldHVybiBCaWdJbnQodCl9LEV2PXFlLFR2PWEseHY9aSxVdj1aYS5ycixNdj1aYS5ucixJdj1TKCIiLnNsaWNlKTtNdigiZmlsbCIsKGZ1bmN0aW9uKHIpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg7VXYodGhpcyk7dmFyIG49IkJpZyI9PT1JdihFdih0aGlzKSwwLDMpP2t2KHIpOityO3JldHVybiBUdihPdix0aGlzLG4sdD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsdD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfSkseHYoKGZ1bmN0aW9uKCl7dmFyIHI9MDtyZXR1cm4gbmV3IEludDhBcnJheSgyKS5maWxsKHt2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJuIHIrK319KSwxIT09cn0pKSk7dmFyIEx2PUpuLFB2PXFmLF92PVphLnRyLFJ2PVphLmlyLEZ2PWZ1bmN0aW9uKHIpe3JldHVybiBfdihQdihyLFJ2KHIpKSl9LE52PUZ2LEN2PWlzLmZpbHRlcixCdj1mdW5jdGlvbihyLHQpe3JldHVybiBmdW5jdGlvbihyLHQpe2Zvcih2YXIgbj0wLGU9THYodCksaT1uZXcgcihlKTtlPm47KWlbbl09dFtuKytdO3JldHVybiBpfShOdihyKSx0KX0sR3Y9WmEucnI7KDAsWmEubnIpKCJmaWx0ZXIiLChmdW5jdGlvbihyKXt2YXIgdD1DdihHdih0aGlzKSxyLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtyZXR1cm4gQnYodGhpcyx0KX0pKTt2YXIgRHY9aXMuZmluZCxWdj1aYS5ycjsoMCxaYS5ucikoImZpbmQiLChmdW5jdGlvbihyKXtyZXR1cm4gRHYoVnYodGhpcykscixhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIFl2PWlzLmZpbmRJbmRleCx6dj1aYS5ycjsoMCxaYS5ucikoImZpbmRJbmRleCIsKGZ1bmN0aW9uKHIpe3JldHVybiBZdih6dih0aGlzKSxyLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgV3Y9aXMuZm9yRWFjaCwkdj1aYS5ycjsoMCxaYS5ucikoImZvckVhY2giLChmdW5jdGlvbihyKXtXdigkdih0aGlzKSxyLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgSHY9dGUuaW5jbHVkZXMsS3Y9WmEucnI7KDAsWmEubnIpKCJpbmNsdWRlcyIsKGZ1bmN0aW9uKHIpe3JldHVybiBIdihLdih0aGlzKSxyLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgcXY9dGUuaW5kZXhPZixKdj1aYS5ycjsoMCxaYS5ucikoImluZGV4T2YiLChmdW5jdGlvbihyKXtyZXR1cm4gcXYoSnYodGhpcykscixhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIFh2PW4sUXY9aSxadj1TLHJoPVphLHRoPXJ1LG5oPSRyKCJpdGVyYXRvciIpLGVoPVh2LlVpbnQ4QXJyYXksaWg9WnYodGgudmFsdWVzKSxvaD1adih0aC5rZXlzKSx1aD1adih0aC5lbnRyaWVzKSxmaD1yaC5ycixhaD1yaC5ucixjaD1laCYmZWgucHJvdG90eXBlLHNoPSFRdigoZnVuY3Rpb24oKXtjaFtuaF0uY2FsbChbMV0pfSkpLHZoPSEhY2gmJmNoLnZhbHVlcyYmY2hbbmhdPT09Y2gudmFsdWVzJiYidmFsdWVzIj09PWNoLnZhbHVlcy5uYW1lLGhoPWZ1bmN0aW9uKCl7cmV0dXJuIGloKGZoKHRoaXMpKX07YWgoImVudHJpZXMiLChmdW5jdGlvbigpe3JldHVybiB1aChmaCh0aGlzKSl9KSxzaCksYWgoImtleXMiLChmdW5jdGlvbigpe3JldHVybiBvaChmaCh0aGlzKSl9KSxzaCksYWgoInZhbHVlcyIsaGgsc2h8fCF2aCx7bmFtZToidmFsdWVzIn0pLGFoKG5oLGhoLHNofHwhdmgse25hbWU6InZhbHVlcyJ9KTt2YXIgbGg9WmEucnIsZGg9WmEubnIseWg9UyhbXS5qb2luKTtkaCgiam9pbiIsKGZ1bmN0aW9uKHIpe3JldHVybiB5aChsaCh0aGlzKSxyKX0pKTt2YXIgd2g9dSxiaD1GdW5jdGlvbi5wcm90b3R5cGUscGg9YmguYXBwbHksZ2g9YmguY2FsbCxtaD0ib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuYXBwbHl8fCh3aD9naC5iaW5kKHBoKTpmdW5jdGlvbigpe3JldHVybiBnaC5hcHBseShwaCxhcmd1bWVudHMpfSksU2g9aSxBaD1mdW5jdGlvbihyLHQpe3ZhciBuPVtdW3JdO3JldHVybiEhbiYmU2goKGZ1bmN0aW9uKCl7bi5jYWxsKG51bGwsdHx8ZnVuY3Rpb24oKXtyZXR1cm4gMX0sMSl9KSl9LGpoPW1oLE9oPVIsa2g9RG4sRWg9Sm4sVGg9TWF0aC5taW4seGg9W10ubGFzdEluZGV4T2YsVWg9ISF4aCYmITEsTWg9QWgoImxhc3RJbmRleE9mIiksSWg9bWgsTGg9VWh8fCFNaD9mdW5jdGlvbihyKXtpZihVaClyZXR1cm4gamgoeGgsdGhpcyxhcmd1bWVudHMpfHwwO3ZhciB0PU9oKHRoaXMpLG49RWgodCksZT1uLTE7Zm9yKGFyZ3VtZW50cy5sZW5ndGg+MSYmKGU9VGgoZSxraChhcmd1bWVudHNbMV0pKSksMD5lJiYoZT1uK2UpO2U+PTA7ZS0tKWlmKGUgaW4gdCYmdFtlXT09PXIpcmV0dXJuIGV8fDA7cmV0dXJuLTF9OnhoLFBoPVphLnJyOygwLFphLm5yKSgibGFzdEluZGV4T2YiLChmdW5jdGlvbihyKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoO3JldHVybiBJaChMaCxQaCh0aGlzKSx0PjE/W3IsYXJndW1lbnRzWzFdXTpbcl0pfSkpO3ZhciBfaD1pcy5tYXAsUmg9RnYsRmg9WmEucnI7KDAsWmEubnIpKCJtYXAiLChmdW5jdGlvbihyKXtyZXR1cm4gX2goRmgodGhpcykscixhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwoZnVuY3Rpb24ocix0KXtyZXR1cm4gbmV3KFJoKHIpKSh0KX0pKX0pKTt2YXIgTmg9dnIsQ2g9VHIsQmg9TSxHaD1KbixEaD1UeXBlRXJyb3IsVmg9ZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKHQsbixlLGkpe05oKG4pO3ZhciBvPUNoKHQpLHU9QmgobyksZj1HaChvKSxhPXI/Zi0xOjAsYz1yPy0xOjE7aWYoMj5lKWZvcig7Oyl7aWYoYSBpbiB1KXtpPXVbYV0sYSs9YzticmVha31pZihhKz1jLHI/MD5hOmE+PWYpdGhyb3cgRGgoIlJlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKX1mb3IoO3I/YT49MDpmPmE7YSs9YylhIGluIHUmJihpPW4oaSx1W2FdLGEsbykpO3JldHVybiBpfX0sWWg9e2xlZnQ6VmgoITEpLHJpZ2h0OlZoKCEwKX0semg9WWgubGVmdCxXaD1aYS5ycjsoMCxaYS5ucikoInJlZHVjZSIsKGZ1bmN0aW9uKHIpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg7cmV0dXJuIHpoKFdoKHRoaXMpLHIsdCx0PjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyICRoPVloLnJpZ2h0LEhoPVphLnJyOygwLFphLm5yKSgicmVkdWNlUmlnaHQiLChmdW5jdGlvbihyKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoO3JldHVybiAkaChIaCh0aGlzKSxyLHQsdD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBLaD1aYS5ycixxaD1NYXRoLmZsb29yOygwLFphLm5yKSgicmV2ZXJzZSIsKGZ1bmN0aW9uKCl7Zm9yKHZhciByLHQ9dGhpcyxuPUtoKHQpLmxlbmd0aCxlPXFoKG4vMiksaT0wO2U+aTspcj10W2ldLHRbaSsrXT10Wy0tbl0sdFtuXT1yO3JldHVybiB0fSkpO3ZhciBKaD1uLFhoPWEsUWg9WmEsWmg9Sm4scmw9bGMsdGw9VHIsbmw9aSxlbD1KaC5SYW5nZUVycm9yLGlsPUpoLkludDhBcnJheSxvbD1pbCYmaWwucHJvdG90eXBlLHVsPW9sJiZvbC5zZXQsZmw9UWgucnIsYWw9UWgubnIsY2w9IW5sKChmdW5jdGlvbigpe3ZhciByPW5ldyBVaW50OENsYW1wZWRBcnJheSgyKTtyZXR1cm4gWGgodWwscix7bGVuZ3RoOjEsMDozfSwxKSwzIT09clsxXX0pKSxzbD1jbCYmUWguWCYmbmwoKGZ1bmN0aW9uKCl7dmFyIHI9bmV3IGlsKDIpO3JldHVybiByLnNldCgxKSxyLnNldCgiMiIsMSksMCE9PXJbMF18fDIhPT1yWzFdfSkpO2FsKCJzZXQiLChmdW5jdGlvbihyKXtmbCh0aGlzKTt2YXIgdD1ybChhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwxKSxuPXRsKHIpO2lmKGNsKXJldHVybiBYaCh1bCx0aGlzLG4sdCk7dmFyIGU9dGhpcy5sZW5ndGgsaT1aaChuKSxvPTA7aWYoaSt0PmUpdGhyb3cgZWwoIldyb25nIGxlbmd0aCIpO2Zvcig7aT5vOyl0aGlzW3Qrb109bltvKytdfSksIWNsfHxzbCk7dmFyIHZsPVMoW10uc2xpY2UpLGhsPUZ2LGxsPXZsLGRsPVphLnJyOygwLFphLm5yKSgic2xpY2UiLChmdW5jdGlvbihyLHQpe2Zvcih2YXIgbj1sbChkbCh0aGlzKSxyLHQpLGU9aGwodGhpcyksaT0wLG89bi5sZW5ndGgsdT1uZXcgZShvKTtvPmk7KXVbaV09bltpKytdO3JldHVybiB1fSksaSgoZnVuY3Rpb24oKXtuZXcgSW50OEFycmF5KDEpLnNsaWNlKCl9KSkpO3ZhciB5bD1pcy5zb21lLHdsPVphLnJyOygwLFphLm5yKSgic29tZSIsKGZ1bmN0aW9uKHIpe3JldHVybiB5bCh3bCh0aGlzKSxyLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgYmw9VXUscGw9TWF0aC5mbG9vcixnbD1mdW5jdGlvbihyLHQpe3ZhciBuPXIubGVuZ3RoLGU9cGwobi8yKTtyZXR1cm4gOD5uP21sKHIsdCk6U2wocixnbChibChyLDAsZSksdCksZ2woYmwocixlKSx0KSx0KX0sbWw9ZnVuY3Rpb24ocix0KXtmb3IodmFyIG4sZSxpPXIubGVuZ3RoLG89MTtpPm87KXtmb3IoZT1vLG49cltvXTtlJiZ0KHJbZS0xXSxuKT4wOylyW2VdPXJbLS1lXTtlIT09bysrJiYocltlXT1uKX1yZXR1cm4gcn0sU2w9ZnVuY3Rpb24ocix0LG4sZSl7Zm9yKHZhciBpPXQubGVuZ3RoLG89bi5sZW5ndGgsdT0wLGY9MDtpPnV8fG8+Zjspclt1K2ZdPWk+dSYmbz5mP2UodFt1XSxuW2ZdKT4wP25bZisrXTp0W3UrK106aT51P3RbdSsrXTpuW2YrK107cmV0dXJuIHJ9LEFsPWdsLGpsPXoubWF0Y2goL2ZpcmVmb3hcLyhcZCspL2kpLE9sPSEhamwmJitqbFsxXSxrbD0vTVNJRXxUcmlkZW50Ly50ZXN0KHopLEVsPXoubWF0Y2goL0FwcGxlV2ViS2l0XC8oXGQrKVwuLyksVGw9ISFFbCYmK0VsWzFdLHhsPVMsVWw9aSxNbD12cixJbD1BbCxMbD1PbCxQbD1rbCxfbD1YLFJsPVRsLEZsPVphLnJyLE5sPVphLm5yLENsPW4uVWludDE2QXJyYXksQmw9Q2wmJnhsKENsLnByb3RvdHlwZS5zb3J0KSxHbD0hKCFCbHx8VWwoKGZ1bmN0aW9uKCl7QmwobmV3IENsKDIpLG51bGwpfSkpJiZVbCgoZnVuY3Rpb24oKXtCbChuZXcgQ2woMikse30pfSkpKSxEbD0hIUJsJiYhVWwoKGZ1bmN0aW9uKCl7aWYoX2wpcmV0dXJuIDc0Pl9sO2lmKExsKXJldHVybiA2Nz5MbDtpZihQbClyZXR1cm4hMDtpZihSbClyZXR1cm4gNjAyPlJsO3ZhciByLHQsbj1uZXcgQ2woNTE2KSxlPUFycmF5KDUxNik7Zm9yKHI9MDs1MTY+cjtyKyspdD1yJTQsbltyXT01MTUtcixlW3JdPXItMip0KzM7Zm9yKEJsKG4sKGZ1bmN0aW9uKHIsdCl7cmV0dXJuKHIvNHwwKS0odC80fDApfSkpLHI9MDs1MTY+cjtyKyspaWYobltyXSE9PWVbcl0pcmV0dXJuITB9KSk7TmwoInNvcnQiLChmdW5jdGlvbihyKXtyZXR1cm4gdm9pZCAwIT09ciYmTWwociksRGw/QmwodGhpcyxyKTpJbChGbCh0aGlzKSxmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24odCxuKXtyZXR1cm4gdm9pZCAwIT09cj8rcih0LG4pfHwwOm4hPW4/LTE6dCE9dD8xOjA9PT10JiYwPT09bj8xL3Q+MCYmMD4xL24/MTotMTp0Pm59fShyKSl9KSwhRGx8fEdsKTt2YXIgVmw9S24sWWw9V24semw9RnYsV2w9WmEucnI7KDAsWmEubnIpKCJzdWJhcnJheSIsKGZ1bmN0aW9uKHIsdCl7dmFyIG49V2wodGhpcyksZT1uLmxlbmd0aCxpPVlsKHIsZSk7cmV0dXJuIG5ldyh6bChuKSkobi5idWZmZXIsbi5ieXRlT2Zmc2V0K2kqbi5CWVRFU19QRVJfRUxFTUVOVCxWbCgodm9pZCAwPT09dD9lOllsKHQsZSkpLWkpKX0pKTt2YXIgJGw9bWgsSGw9WmEsS2w9aSxxbD12bCxKbD1uLkludDhBcnJheSxYbD1IbC5ycixRbD1IbC5ucixabD1bXS50b0xvY2FsZVN0cmluZyxyZD0hIUpsJiZLbCgoZnVuY3Rpb24oKXtabC5jYWxsKG5ldyBKbCgxKSl9KSk7UWwoInRvTG9jYWxlU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4gJGwoWmwscmQ/cWwoWGwodGhpcykpOlhsKHRoaXMpLHFsKGFyZ3VtZW50cykpfSksS2woKGZ1bmN0aW9uKCl7cmV0dXJuWzEsMl0udG9Mb2NhbGVTdHJpbmcoKSE9bmV3IEpsKFsxLDJdKS50b0xvY2FsZVN0cmluZygpfSkpfHwhS2woKGZ1bmN0aW9uKCl7SmwucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLmNhbGwoWzEsMl0pfSkpKTt2YXIgdGQ9WmEubnIsbmQ9aSxlZD1TLGlkPW4uVWludDhBcnJheSxvZD1pZCYmaWQucHJvdG90eXBlfHx7fSx1ZD1bXS50b1N0cmluZyxmZD1lZChbXS5qb2luKTtuZCgoZnVuY3Rpb24oKXt1ZC5jYWxsKHt9KX0pKSYmKHVkPWZ1bmN0aW9uKCl7cmV0dXJuIGZkKHRoaXMpfSk7dmFyIGFkPW9kLnRvU3RyaW5nIT11ZDt0ZCgidG9TdHJpbmciLHVkLGFkKTt2YXIgY2Qsc2QsdmQsaGQsbGQ9InByb2Nlc3MiPT1rKG4ucHJvY2VzcyksZGQ9VHlwZUVycm9yLHlkPS8oPzppcGFkfGlwaG9uZXxpcG9kKS4qYXBwbGV3ZWJraXQvaS50ZXN0KHopLHdkPW4sYmQ9bWgscGQ9YmMsZ2Q9RixtZD1NcixTZD1pLEFkPUVpLGpkPXZsLE9kPXV0LGtkPWZ1bmN0aW9uKHIsdCl7aWYodD5yKXRocm93IGRkKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpO3JldHVybiByfSxFZD15ZCxUZD1sZCx4ZD13ZC5zZXRJbW1lZGlhdGUsVWQ9d2QuY2xlYXJJbW1lZGlhdGUsTWQ9d2QucHJvY2VzcyxJZD13ZC52cixMZD13ZC5GdW5jdGlvbixQZD13ZC5NZXNzYWdlQ2hhbm5lbCxfZD13ZC5TdHJpbmcsUmQ9MCxGZD17fTt0cnl7Y2Q9d2QubG9jYXRpb259Y2F0Y2gocil7fXZhciBOZD1mdW5jdGlvbihyKXtpZihtZChGZCxyKSl7dmFyIHQ9RmRbcl07ZGVsZXRlIEZkW3JdLHQoKX19LENkPWZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbigpe05kKHIpfX0sQmQ9ZnVuY3Rpb24ocil7TmQoci5kYXRhKX0sR2Q9ZnVuY3Rpb24ocil7d2QucG9zdE1lc3NhZ2UoX2QociksY2QucHJvdG9jb2wrIi8vIitjZC5ob3N0KX07eGQmJlVkfHwoeGQ9ZnVuY3Rpb24ocil7a2QoYXJndW1lbnRzLmxlbmd0aCwxKTt2YXIgdD1nZChyKT9yOkxkKHIpLG49amQoYXJndW1lbnRzLDEpO3JldHVybiBGZFsrK1JkXT1mdW5jdGlvbigpe2JkKHQsdm9pZCAwLG4pfSxzZChSZCksUmR9LFVkPWZ1bmN0aW9uKHIpe2RlbGV0ZSBGZFtyXX0sVGQ/c2Q9ZnVuY3Rpb24ocil7TWQuaHIoQ2QocikpfTpJZCYmSWQubm93P3NkPWZ1bmN0aW9uKHIpe0lkLm5vdyhDZChyKSl9OlBkJiYhRWQ/KGhkPSh2ZD1uZXcgUGQpLnBvcnQyLHZkLnBvcnQxLm9ubWVzc2FnZT1CZCxzZD1wZChoZC5wb3N0TWVzc2FnZSxoZCkpOndkLmFkZEV2ZW50TGlzdGVuZXImJmdkKHdkLnBvc3RNZXNzYWdlKSYmIXdkLmxyJiZjZCYmImZpbGU6IiE9PWNkLnByb3RvY29sJiYhU2QoR2QpPyhzZD1HZCx3ZC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixCZCwhMSkpOnNkPSJvbnJlYWR5c3RhdGVjaGFuZ2UiaW4gT2QoInNjcmlwdCIpP2Z1bmN0aW9uKHIpe0FkLmFwcGVuZENoaWxkKE9kKCJzY3JpcHQiKSkub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7QWQucmVtb3ZlQ2hpbGQodGhpcyksTmQocil9fTpmdW5jdGlvbihyKXtzZXRUaW1lb3V0KENkKHIpLDApfSk7dmFyIERkLFZkLFlkLHpkLFdkLCRkLEhkLEtkLHFkPXtzZXQ6eGQsY2xlYXI6VWR9LEpkPW4sWGQ9L2lwYWR8aXBob25lfGlwb2QvaS50ZXN0KHopJiZ2b2lkIDAhPT1KZC5kcixRZD0vd2ViMHMoPyEuKmNocm9tZSkvaS50ZXN0KHopLFpkPW4scnk9YmMsdHk9ZS5mLG55PXFkLnNldCxleT15ZCxpeT1YZCxveT1RZCx1eT1sZCxmeT1aZC5NdXRhdGlvbk9ic2VydmVyfHxaZC5XZWJLaXRNdXRhdGlvbk9ic2VydmVyLGF5PVpkLmRvY3VtZW50LGN5PVpkLnByb2Nlc3Msc3k9WmQuUHJvbWlzZSx2eT10eShaZCwicXVldWVNaWNyb3Rhc2siKSxoeT12eSYmdnkudmFsdWU7aHl8fChEZD1mdW5jdGlvbigpe3ZhciByLHQ7Zm9yKHV5JiYocj1jeS5kb21haW4pJiZyLnlyKCk7VmQ7KXt0PVZkLndyLFZkPVZkLm5leHQ7dHJ5e3QoKX1jYXRjaChyKXt0aHJvdyBWZD96ZCgpOllkPXZvaWQgMCxyfX1ZZD12b2lkIDAsciYmci5icigpfSxleXx8dXl8fG95fHwhZnl8fCFheT8haXkmJnN5JiZzeS5yZXNvbHZlPygoSGQ9c3kucmVzb2x2ZSh2b2lkIDApKS5jb25zdHJ1Y3Rvcj1zeSxLZD1yeShIZC50aGVuLEhkKSx6ZD1mdW5jdGlvbigpe0tkKERkKX0pOnV5P3pkPWZ1bmN0aW9uKCl7Y3kuaHIoRGQpfToobnk9cnkobnksWmQpLHpkPWZ1bmN0aW9uKCl7bnkoRGQpfSk6KFdkPSEwLCRkPWF5LmNyZWF0ZVRleHROb2RlKCIiKSxuZXcgZnkoRGQpLm9ic2VydmUoJGQse2NoYXJhY3RlckRhdGE6ITB9KSx6ZD1mdW5jdGlvbigpeyRkLmRhdGE9V2Q9IVdkfSkpO3ZhciBseT1oeXx8ZnVuY3Rpb24ocil7dmFyIHQ9e3dyOnIsbmV4dDp2b2lkIDB9O1lkJiYoWWQubmV4dD10KSxWZHx8KFZkPXQsemQoKSksWWQ9dH0sZHk9bix5eT1mdW5jdGlvbihyKXt0cnl7cmV0dXJue2Vycm9yOiExLHZhbHVlOnIoKX19Y2F0Y2gocil7cmV0dXJue2Vycm9yOiEwLHZhbHVlOnJ9fX0sd3k9ZnVuY3Rpb24oKXt0aGlzLmhlYWQ9bnVsbCx0aGlzLnByPW51bGx9O3d5LnByb3RvdHlwZT17YWRkOmZ1bmN0aW9uKHIpe3ZhciB0PXtpdGVtOnIsbmV4dDpudWxsfTt0aGlzLmhlYWQ/dGhpcy5wci5uZXh0PXQ6dGhpcy5oZWFkPXQsdGhpcy5wcj10fSxnZXQ6ZnVuY3Rpb24oKXt2YXIgcj10aGlzLmhlYWQ7aWYocilyZXR1cm4gdGhpcy5oZWFkPXIubmV4dCx0aGlzLnByPT09ciYmKHRoaXMucHI9bnVsbCksci5pdGVtfX07dmFyIGJ5PXd5LHB5PW4uUHJvbWlzZSxneT0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmIm9iamVjdCIhPXR5cGVvZiBEZW5vLG15PW4sU3k9cHksQXk9RixqeT1JZSxPeT1IdCxreT0kcixFeT1neSxUeT1YO1N5JiZTeS5wcm90b3R5cGU7dmFyIHh5PWt5KCJzcGVjaWVzIiksVXk9ITEsTXk9QXkobXkuUHJvbWlzZVJlamVjdGlvbkV2ZW50KSxJeT1qeSgiUHJvbWlzZSIsKGZ1bmN0aW9uKCl7dmFyIHI9T3koU3kpLHQ9ciE9PVN5KyIiO2lmKCF0JiY2Nj09PVR5KXJldHVybiEwO2lmKFR5Pj01MSYmL25hdGl2ZSBjb2RlLy50ZXN0KHIpKXJldHVybiExO3ZhciBuPW5ldyBTeSgoZnVuY3Rpb24ocil7cigxKX0pKSxlPWZ1bmN0aW9uKHIpe3IoKGZ1bmN0aW9uKCl7fSksKGZ1bmN0aW9uKCl7fSkpfTtyZXR1cm4obi5jb25zdHJ1Y3Rvcj17fSlbeHldPWUsIShVeT1uLnRoZW4oKGZ1bmN0aW9uKCl7fSkpaW5zdGFuY2VvZiBlKXx8IXQmJkV5JiYhTXl9KSksTHk9e2dyOkl5LG1yOk15LFNyOlV5fSxQeT17fSxfeT12cixSeT1mdW5jdGlvbihyKXt2YXIgdCxuO3RoaXMucHJvbWlzZT1uZXcgcigoZnVuY3Rpb24ocixlKXtpZih2b2lkIDAhPT10fHx2b2lkIDAhPT1uKXRocm93IFR5cGVFcnJvcigiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTt0PXIsbj1lfSkpLHRoaXMucmVzb2x2ZT1feSh0KSx0aGlzLnJlamVjdD1feShuKX07UHkuZj1mdW5jdGlvbihyKXtyZXR1cm4gbmV3IFJ5KHIpfTt2YXIgRnksTnksQ3ksQnk9QmUsR3k9bGQsRHk9bixWeT1hLFl5PUZuLHp5PXhvLFd5PXdvLCR5PWNzLEh5PXZyLEt5PUYscXk9QyxKeT11dSxYeT1xZixReT1xZC5zZXQsWnk9bHkscnc9eXksdHc9Ynksbnc9bW4sZXc9cHksaXc9UHksb3c9THkuZ3IsdXc9THkubXIsZnc9THkuU3IsYXc9bncuVSgiUHJvbWlzZSIpLGN3PW53LnNldCxzdz1ldyYmZXcucHJvdG90eXBlLHZ3PWV3LGh3PXN3LGx3PUR5LlR5cGVFcnJvcixkdz1EeS5kb2N1bWVudCx5dz1EeS5wcm9jZXNzLHd3PWl3LmYsYnc9d3cscHc9ISEoZHcmJmR3LmNyZWF0ZUV2ZW50JiZEeS5kaXNwYXRjaEV2ZW50KSxndz1mdW5jdGlvbihyKXt2YXIgdDtyZXR1cm4hKCFxeShyKXx8IUt5KHQ9ci50aGVuKSkmJnR9LG13PWZ1bmN0aW9uKHIsdCl7dmFyIG4sZSxpLG89dC52YWx1ZSx1PTE9PXQuc3RhdGUsZj11P3Iub2s6ci5BcixhPXIucmVzb2x2ZSxjPXIucmVqZWN0LHM9ci5kb21haW47dHJ5e2Y/KHV8fCgyPT09dC5qciYma3codCksdC5qcj0xKSwhMD09PWY/bj1vOihzJiZzLmJyKCksbj1mKG8pLHMmJihzLnlyKCksaT0hMCkpLG49PT1yLnByb21pc2U/YyhsdygiUHJvbWlzZS1jaGFpbiBjeWNsZSIpKTooZT1ndyhuKSk/VnkoZSxuLGEsYyk6YShuKSk6YyhvKX1jYXRjaChyKXtzJiYhaSYmcy55cigpLGMocil9fSxTdz1mdW5jdGlvbihyLHQpe3IuT3J8fChyLk9yPSEwLFp5KChmdW5jdGlvbigpe2Zvcih2YXIgbixlPXIua3I7bj1lLmdldCgpOyltdyhuLHIpO3IuT3I9ITEsdCYmIXIuanImJmp3KHIpfSkpKX0sQXc9ZnVuY3Rpb24ocix0LG4pe3ZhciBlLGk7cHc/KChlPWR3LmNyZWF0ZUV2ZW50KCJFdmVudCIpKS5wcm9taXNlPXQsZS5yZWFzb249bixlLmluaXRFdmVudChyLCExLCEwKSxEeS5kaXNwYXRjaEV2ZW50KGUpKTplPXtwcm9taXNlOnQscmVhc29uOm59LCF1dyYmKGk9RHlbIm9uIityXSk/aShlKToidW5oYW5kbGVkcmVqZWN0aW9uIj09PXImJmZ1bmN0aW9uKHIsdCl7dmFyIG49ZHkuY29uc29sZTtuJiZuLmVycm9yJiYoMT09YXJndW1lbnRzLmxlbmd0aD9uLmVycm9yKHIpOm4uZXJyb3Iocix0KSl9KCJVbmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb24iLG4pfSxqdz1mdW5jdGlvbihyKXtWeShReSxEeSwoZnVuY3Rpb24oKXt2YXIgdCxuPXIuayxlPXIudmFsdWU7aWYoT3cocikmJih0PXJ3KChmdW5jdGlvbigpe0d5P3l3LkVyKCJ1bmhhbmRsZWRSZWplY3Rpb24iLGUsbik6QXcoInVuaGFuZGxlZHJlamVjdGlvbiIsbixlKX0pKSxyLmpyPUd5fHxPdyhyKT8yOjEsdC5lcnJvcikpdGhyb3cgdC52YWx1ZX0pKX0sT3c9ZnVuY3Rpb24ocil7cmV0dXJuIDEhPT1yLmpyJiYhci5wYXJlbnR9LGt3PWZ1bmN0aW9uKHIpe1Z5KFF5LER5LChmdW5jdGlvbigpe3ZhciB0PXIuaztHeT95dy5FcigicmVqZWN0aW9uSGFuZGxlZCIsdCk6QXcoInJlamVjdGlvbmhhbmRsZWQiLHQsci52YWx1ZSl9KSl9LEV3PWZ1bmN0aW9uKHIsdCxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7cih0LGUsbil9fSxUdz1mdW5jdGlvbihyLHQsbil7ci5kb25lfHwoci5kb25lPSEwLG4mJihyPW4pLHIudmFsdWU9dCxyLnN0YXRlPTIsU3cociwhMCkpfSx4dz1mdW5jdGlvbihyLHQsbil7aWYoIXIuZG9uZSl7ci5kb25lPSEwLG4mJihyPW4pO3RyeXtpZihyLms9PT10KXRocm93IGx3KCJQcm9taXNlIGNhbid0IGJlIHJlc29sdmVkIGl0c2VsZiIpO3ZhciBlPWd3KHQpO2U/WnkoKGZ1bmN0aW9uKCl7dmFyIG49e2RvbmU6ITF9O3RyeXtWeShlLHQsRXcoeHcsbixyKSxFdyhUdyxuLHIpKX1jYXRjaCh0KXtUdyhuLHQscil9fSkpOihyLnZhbHVlPXQsci5zdGF0ZT0xLFN3KHIsITEpKX1jYXRjaCh0KXtUdyh7ZG9uZTohMX0sdCxyKX19fTtpZihvdyYmKGh3PSh2dz1mdW5jdGlvbihyKXtKeSh0aGlzLGh3KSxIeShyKSxWeShGeSx0aGlzKTt2YXIgdD1hdyh0aGlzKTt0cnl7cihFdyh4dyx0KSxFdyhUdyx0KSl9Y2F0Y2gocil7VHcodCxyKX19KS5wcm90b3R5cGUsKEZ5PWZ1bmN0aW9uKCl7Y3codGhpcyx7dHlwZToiUHJvbWlzZSIsZG9uZTohMSxPcjohMSxwYXJlbnQ6ITEsa3I6bmV3IHR3LGpyOiExLHN0YXRlOjAsdmFsdWU6dm9pZCAwfSl9KS5wcm90b3R5cGU9WXkoaHcsInRoZW4iLChmdW5jdGlvbihyLHQpe3ZhciBuPWF3KHRoaXMpLGU9d3coWHkodGhpcyx2dykpO3JldHVybiBuLnBhcmVudD0hMCxlLm9rPSFLeShyKXx8cixlLkFyPUt5KHQpJiZ0LGUuZG9tYWluPUd5P3l3LmRvbWFpbjp2b2lkIDAsMD09bi5zdGF0ZT9uLmtyLmFkZChlKTpaeSgoZnVuY3Rpb24oKXttdyhlLG4pfSkpLGUucHJvbWlzZX0pKSxOeT1mdW5jdGlvbigpe3ZhciByPW5ldyBGeSx0PWF3KHIpO3RoaXMucHJvbWlzZT1yLHRoaXMucmVzb2x2ZT1Fdyh4dyx0KSx0aGlzLnJlamVjdD1FdyhUdyx0KX0saXcuZj13dz1mdW5jdGlvbihyKXtyZXR1cm4gcj09PXZ3fHx2b2lkIDA9PT1yP25ldyBOeShyKTpidyhyKX0sS3koZXcpJiZzdyE9PU9iamVjdC5wcm90b3R5cGUpKXtDeT1zdy50aGVuLGZ3fHxZeShzdywidGhlbiIsKGZ1bmN0aW9uKHIsdCl7dmFyIG49dGhpcztyZXR1cm4gbmV3IHZ3KChmdW5jdGlvbihyLHQpe1Z5KEN5LG4scix0KX0pKS50aGVuKHIsdCl9KSx7UDohMH0pO3RyeXtkZWxldGUgc3cuY29uc3RydWN0b3J9Y2F0Y2gocil7fXp5JiZ6eShzdyxodyl9Qnkoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCx3cmFwOiEwLEc6b3d9LHtQcm9taXNlOnZ3fSksV3kodncsIlByb21pc2UiLCExKSwkeSgiUHJvbWlzZSIpO3ZhciBVdz1hLE13PWp0LEl3PWxyLEx3PWZ1bmN0aW9uKHIsdCxuKXt2YXIgZSxpO013KHIpO3RyeXtpZighKGU9SXcociwicmV0dXJuIikpKXtpZigidGhyb3ciPT09dCl0aHJvdyBuO3JldHVybiBufWU9VXcoZSxyKX1jYXRjaChyKXtpPSEwLGU9cn1pZigidGhyb3ciPT09dCl0aHJvdyBuO2lmKGkpdGhyb3cgZTtyZXR1cm4gTXcoZSksbn0sUHc9YmMsX3c9YSxSdz1qdCxGdz1mcixOdz1QYyxDdz1KbixCdz1ZLEd3PVVjLER3PUFjLFZ3PUx3LFl3PVR5cGVFcnJvcix6dz1mdW5jdGlvbihyLHQpe3RoaXMuc3RvcHBlZD1yLHRoaXMucmVzdWx0PXR9LFd3PXp3LnByb3RvdHlwZSwkdz1mdW5jdGlvbihyLHQsbil7dmFyIGUsaSxvLHUsZixhLGMscz1uJiZuLlRyLHY9ISghbnx8IW4uVXIpLGg9ISghbnx8IW4uTXIpLGw9ISghbnx8IW4uSXIpLGQ9UHcodCxzKSx5PWZ1bmN0aW9uKHIpe3JldHVybiBlJiZWdyhlLCJub3JtYWwiLHIpLG5ldyB6dyghMCxyKX0sdz1mdW5jdGlvbihyKXtyZXR1cm4gdj8oUncociksbD9kKHJbMF0sclsxXSx5KTpkKHJbMF0sclsxXSkpOmw/ZChyLHkpOmQocil9O2lmKGgpZT1yO2Vsc2V7aWYoIShpPUR3KHIpKSl0aHJvdyBZdyhGdyhyKSsiIGlzIG5vdCBpdGVyYWJsZSIpO2lmKE53KGkpKXtmb3Iobz0wLHU9Q3cocik7dT5vO28rKylpZigoZj13KHJbb10pKSYmQncoV3csZikpcmV0dXJuIGY7cmV0dXJuIG5ldyB6dyghMSl9ZT1HdyhyLGkpfWZvcihhPWUubmV4dDshKGM9X3coYSxlKSkuZG9uZTspe3RyeXtmPXcoYy52YWx1ZSl9Y2F0Y2gocil7VncoZSwidGhyb3ciLHIpfWlmKCJvYmplY3QiPT10eXBlb2YgZiYmZiYmQncoV3csZikpcmV0dXJuIGZ9cmV0dXJuIG5ldyB6dyghMSl9LEh3PXB5LEt3PUx5LmdyfHwhcGEoKGZ1bmN0aW9uKHIpe0h3LmFsbChyKS50aGVuKHZvaWQgMCwoZnVuY3Rpb24oKXt9KSl9KSkscXc9YSxKdz12cixYdz1QeSxRdz15eSxadz0kdztCZSh7dGFyZ2V0OiJQcm9taXNlIixDOiEwLEc6S3d9LHthbGw6ZnVuY3Rpb24ocil7dmFyIHQ9dGhpcyxuPVh3LmYodCksZT1uLnJlc29sdmUsaT1uLnJlamVjdCxvPVF3KChmdW5jdGlvbigpe3ZhciBuPUp3KHQucmVzb2x2ZSksbz1bXSx1PTAsZj0xO1p3KHIsKGZ1bmN0aW9uKHIpe3ZhciBhPXUrKyxjPSExO2YrKyxxdyhuLHQscikudGhlbigoZnVuY3Rpb24ocil7Y3x8KGM9ITAsb1thXT1yLC0tZnx8ZShvKSl9KSxpKX0pKSwtLWZ8fGUobyl9KSk7cmV0dXJuIG8uZXJyb3ImJmkoby52YWx1ZSksbi5wcm9taXNlfX0pO3ZhciByYj1CZSx0Yj1MeS5ncixuYj1weSxlYj1WLGliPUYsb2I9Rm4sdWI9bmImJm5iLnByb3RvdHlwZTtpZihyYih7dGFyZ2V0OiJQcm9taXNlIixWOiEwLEc6dGIsTHI6ITB9LHtjYXRjaDpmdW5jdGlvbihyKXtyZXR1cm4gdGhpcy50aGVuKHZvaWQgMCxyKX19KSxpYihuYikpe3ZhciBmYj1lYigiUHJvbWlzZSIpLnByb3RvdHlwZS5jYXRjaDt1Yi5jYXRjaCE9PWZiJiZvYih1YiwiY2F0Y2giLGZiLHtQOiEwfSl9dmFyIGFiPWEsY2I9dnIsc2I9UHksdmI9eXksaGI9JHc7QmUoe3RhcmdldDoiUHJvbWlzZSIsQzohMCxHOkt3fSx7cmFjZTpmdW5jdGlvbihyKXt2YXIgdD10aGlzLG49c2IuZih0KSxlPW4ucmVqZWN0LGk9dmIoKGZ1bmN0aW9uKCl7dmFyIGk9Y2IodC5yZXNvbHZlKTtoYihyLChmdW5jdGlvbihyKXthYihpLHQscikudGhlbihuLnJlc29sdmUsZSl9KSl9KSk7cmV0dXJuIGkuZXJyb3ImJmUoaS52YWx1ZSksbi5wcm9taXNlfX0pO3ZhciBsYj1hLGRiPVB5O0JlKHt0YXJnZXQ6IlByb21pc2UiLEM6ITAsRzpMeS5ncn0se3JlamVjdDpmdW5jdGlvbihyKXt2YXIgdD1kYi5mKHRoaXMpO3JldHVybiBsYih0LnJlamVjdCx2b2lkIDAsciksdC5wcm9taXNlfX0pO3ZhciB5Yj1qdCx3Yj1DLGJiPVB5LHBiPUJlLGdiPUx5LmdyO1YoIlByb21pc2UiKSxwYih7dGFyZ2V0OiJQcm9taXNlIixDOiEwLEc6Z2J9LHtyZXNvbHZlOmZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbihyLHQpe2lmKHliKHIpLHdiKHQpJiZ0LmNvbnN0cnVjdG9yPT09cilyZXR1cm4gdDt2YXIgbj1iYi5mKHIpO3JldHVybigwLG4ucmVzb2x2ZSkodCksbi5wcm9taXNlfSh0aGlzLHIpfX0pO3ZhciBtYj17fSxTYj1rLEFiPVIsamI9Tm4uZixPYj1VdSxrYj0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93JiZPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcz9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh3aW5kb3cpOltdO21iLmY9ZnVuY3Rpb24ocil7cmV0dXJuIGtiJiYiV2luZG93Ij09U2Iocik/ZnVuY3Rpb24ocil7dHJ5e3JldHVybiBqYihyKX1jYXRjaChyKXtyZXR1cm4gT2Ioa2IpfX0ocik6amIoQWIocikpfTt2YXIgRWI9e30sVGI9JHI7RWIuZj1UYjt2YXIgeGI9bixVYj1NcixNYj1FYixJYj1wdC5mLExiPWZ1bmN0aW9uKHIpe3ZhciB0PXhiLlN5bWJvbHx8KHhiLlN5bWJvbD17fSk7VWIodCxyKXx8SWIodCxyLHt2YWx1ZTpNYi5mKHIpfSl9LFBiPWEsX2I9VixSYj0kcixGYj1GbixOYj1CZSxDYj1uLEJiPWEsR2I9UyxEYj1vLFZiPVosWWI9aSx6Yj1NcixXYj1ZLCRiPWp0LEhiPVIsS2I9bnQscWI9UWUsSmI9eSxYYj1DaSxRYj1waSxaYj1ObixycD1tYix0cD12ZSxucD1lLGVwPXB0LGlwPXlpLG9wPWMsdXA9Rm4sZnA9cHIuZXhwb3J0cyxhcD1ubixjcD1ScixzcD0kcix2cD1FYixocD1MYixscD13byxkcD1tbix5cD1pcy5mb3JFYWNoLHdwPXRuKCJoaWRkZW4iKSxicD1kcC5zZXQscHA9ZHAuVSgiU3ltYm9sIiksZ3A9T2JqZWN0LnByb3RvdHlwZSxtcD1DYi5TeW1ib2wsU3A9bXAmJm1wLnByb3RvdHlwZSxBcD1DYi5UeXBlRXJyb3IsanA9Q2IuUHIsT3A9bnAuZixrcD1lcC5mLEVwPXJwLmYsVHA9b3AuZix4cD1HYihbXS5wdXNoKSxVcD1mcCgic3ltYm9scyIpLE1wPWZwKCJvcC1zeW1ib2xzIiksSXA9ZnAoIndrcyIpLExwPSFqcHx8IWpwLnByb3RvdHlwZXx8IWpwLnByb3RvdHlwZS5fcixQcD1EYiYmWWIoKGZ1bmN0aW9uKCl7cmV0dXJuIDchPVhiKGtwKHt9LCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGtwKHRoaXMsImEiLHt2YWx1ZTo3fSkuYX19KSkuYX0pKT9mdW5jdGlvbihyLHQsbil7dmFyIGU9T3AoZ3AsdCk7ZSYmZGVsZXRlIGdwW3RdLGtwKHIsdCxuKSxlJiZyIT09Z3AmJmtwKGdwLHQsZSl9OmtwLF9wPWZ1bmN0aW9uKHIsdCl7dmFyIG49VXBbcl09WGIoU3ApO3JldHVybiBicChuLHt0eXBlOiJTeW1ib2wiLHRhZzpyLGRlc2NyaXB0aW9uOnR9KSxEYnx8KG4uZGVzY3JpcHRpb249dCksbn0sUnA9ZnVuY3Rpb24ocix0LG4pe3I9PT1ncCYmUnAoTXAsdCxuKSwkYihyKTt2YXIgZT1LYih0KTtyZXR1cm4gJGIobiksemIoVXAsZSk/KG4udD8oemIocix3cCkmJnJbd3BdW2VdJiYoclt3cF1bZV09ITEpLG49WGIobix7dDpKYigwLCExKX0pKTooemIocix3cCl8fGtwKHIsd3AsSmIoMSx7fSkpLHJbd3BdW2VdPSEwKSxQcChyLGUsbikpOmtwKHIsZSxuKX0sRnA9ZnVuY3Rpb24ocix0KXskYihyKTt2YXIgbj1IYih0KSxlPVFiKG4pLmNvbmNhdChHcChuKSk7cmV0dXJuIHlwKGUsKGZ1bmN0aW9uKHQpe0RiJiYhQmIoTnAsbix0KXx8UnAocix0LG5bdF0pfSkpLHJ9LE5wPWZ1bmN0aW9uKHIpe3ZhciB0PUtiKHIpLG49QmIoVHAsdGhpcyx0KTtyZXR1cm4hKHRoaXM9PT1ncCYmemIoVXAsdCkmJiF6YihNcCx0KSkmJighKG58fCF6Yih0aGlzLHQpfHwhemIoVXAsdCl8fHpiKHRoaXMsd3ApJiZ0aGlzW3dwXVt0XSl8fG4pfSxDcD1mdW5jdGlvbihyLHQpe3ZhciBuPUhiKHIpLGU9S2IodCk7aWYobiE9PWdwfHwhemIoVXAsZSl8fHpiKE1wLGUpKXt2YXIgaT1PcChuLGUpO3JldHVybiFpfHwhemIoVXAsZSl8fHpiKG4sd3ApJiZuW3dwXVtlXXx8KGkudD0hMCksaX19LEJwPWZ1bmN0aW9uKHIpe3ZhciB0PUVwKEhiKHIpKSxuPVtdO3JldHVybiB5cCh0LChmdW5jdGlvbihyKXt6YihVcCxyKXx8emIoYXAscil8fHhwKG4scil9KSksbn0sR3A9ZnVuY3Rpb24ocil7dmFyIHQ9cj09PWdwLG49RXAodD9NcDpIYihyKSksZT1bXTtyZXR1cm4geXAobiwoZnVuY3Rpb24ocil7IXpiKFVwLHIpfHx0JiYhemIoZ3Ascil8fHhwKGUsVXBbcl0pfSkpLGV9O1ZifHwodXAoU3A9KG1wPWZ1bmN0aW9uKCl7aWYoV2IoU3AsdGhpcykpdGhyb3cgQXAoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciIpO3ZhciByPWFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9xYihhcmd1bWVudHNbMF0pOnZvaWQgMCx0PWNwKHIpLG49ZnVuY3Rpb24ocil7dGhpcz09PWdwJiZCYihuLE1wLHIpLHpiKHRoaXMsd3ApJiZ6Yih0aGlzW3dwXSx0KSYmKHRoaXNbd3BdW3RdPSExKSxQcCh0aGlzLHQsSmIoMSxyKSl9O3JldHVybiBEYiYmTHAmJlBwKGdwLHQse2k6ITAsc2V0Om59KSxfcCh0LHIpfSkucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIHBwKHRoaXMpLnRhZ30pKSx1cChtcCwid2l0aG91dFNldHRlciIsKGZ1bmN0aW9uKHIpe3JldHVybiBfcChjcChyKSxyKX0pKSxvcC5mPU5wLGVwLmY9UnAsaXAuZj1GcCxucC5mPUNwLFpiLmY9cnAuZj1CcCx0cC5mPUdwLHZwLmY9ZnVuY3Rpb24ocil7cmV0dXJuIF9wKHNwKHIpLHIpfSxEYiYmKGtwKFNwLCJkZXNjcmlwdGlvbiIse2k6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHBwKHRoaXMpLmRlc2NyaXB0aW9ufX0pLHVwKGdwLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsTnAse1A6ITB9KSkpLE5iKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsd3JhcDohMCxHOiFWYixoOiFWYn0se1N5bWJvbDptcH0pLHlwKFFiKElwKSwoZnVuY3Rpb24ocil7aHAocil9KSksTmIoe3RhcmdldDoiU3ltYm9sIixDOiEwLEc6IVZifSx7UnI6ZnVuY3Rpb24oKXtMcD0hMH0sRnI6ZnVuY3Rpb24oKXtMcD0hMX19KSxOYih7dGFyZ2V0OiJPYmplY3QiLEM6ITAsRzohVmIsaDohRGJ9LHtjcmVhdGU6ZnVuY3Rpb24ocix0KXtyZXR1cm4gdm9pZCAwPT09dD9YYihyKTpGcChYYihyKSx0KX0sZGVmaW5lUHJvcGVydHk6UnAsZGVmaW5lUHJvcGVydGllczpGcCxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6Q3B9KSxOYih7dGFyZ2V0OiJPYmplY3QiLEM6ITAsRzohVmJ9LHtnZXRPd25Qcm9wZXJ0eU5hbWVzOkJwfSksZnVuY3Rpb24oKXt2YXIgcj1fYigiU3ltYm9sIiksdD1yJiZyLnByb3RvdHlwZSxuPXQmJnQudmFsdWVPZixlPVJiKCJ0b1ByaW1pdGl2ZSIpO3QmJiF0W2VdJiZGYih0LGUsKGZ1bmN0aW9uKCl7cmV0dXJuIFBiKG4sdGhpcyl9KSx7TDoxfSl9KCksbHAobXAsIlN5bWJvbCIpLGFwW3dwXT0hMDt2YXIgRHA9WiYmISFTeW1ib2wuZm9yJiYhIVN5bWJvbC5rZXlGb3IsVnA9QmUsWXA9Vix6cD1NcixXcD1RZSwkcD1wci5leHBvcnRzLEhwPURwLEtwPSRwKCJzdHJpbmctdG8tc3ltYm9sLXJlZ2lzdHJ5IikscXA9JHAoInN5bWJvbC10by1zdHJpbmctcmVnaXN0cnkiKTtWcCh7dGFyZ2V0OiJTeW1ib2wiLEM6ITAsRzohSHB9LHtmb3I6ZnVuY3Rpb24ocil7dmFyIHQ9V3Aocik7aWYoenAoS3AsdCkpcmV0dXJuIEtwW3RdO3ZhciBuPVlwKCJTeW1ib2wiKSh0KTtyZXR1cm4gS3BbdF09bixxcFtuXT10LG59fSk7dmFyIEpwPUJlLFhwPU1yLFFwPW9yLFpwPWZyLHJnPURwLHRnPSgwLHByLmV4cG9ydHMpKCJzeW1ib2wtdG8tc3RyaW5nLXJlZ2lzdHJ5Iik7SnAoe3RhcmdldDoiU3ltYm9sIixDOiEwLEc6IXJnfSx7a2V5Rm9yOmZ1bmN0aW9uKHIpe2lmKCFRcChyKSl0aHJvdyBUeXBlRXJyb3IoWnAocikrIiBpcyBub3QgYSBzeW1ib2wiKTtpZihYcCh0ZyxyKSlyZXR1cm4gdGdbcl19fSk7dmFyIG5nPUJlLGVnPVYsaWc9bWgsb2c9YSx1Zz1TLGZnPWksYWc9emMsY2c9RixzZz1DLHZnPW9yLGhnPXZsLGxnPVosZGc9ZWcoIkpTT04iLCJzdHJpbmdpZnkiKSx5Zz11ZygvLi8uZXhlYyksd2c9dWcoIiIuY2hhckF0KSxiZz11ZygiIi5jaGFyQ29kZUF0KSxwZz11ZygiIi5yZXBsYWNlKSxnZz11ZygxLi50b1N0cmluZyksbWc9L1tcdUQ4MDAtXHVERkZGXS9nLFNnPS9eW1x1RDgwMC1cdURCRkZdJC8sQWc9L15bXHVEQzAwLVx1REZGRl0kLyxqZz0hbGd8fGZnKChmdW5jdGlvbigpe3ZhciByPWVnKCJTeW1ib2wiKSgpO3JldHVybiJbbnVsbF0iIT1kZyhbcl0pfHwie30iIT1kZyh7YTpyfSl8fCJ7fSIhPWRnKE9iamVjdChyKSl9KSksT2c9ZmcoKGZ1bmN0aW9uKCl7cmV0dXJuJyJcXHVkZjA2XFx1ZDgzNCInIT09ZGcoIlx1ZGYwNlx1ZDgzNCIpfHwnIlxcdWRlYWQiJyE9PWRnKCJcdWRlYWQiKX0pKSxrZz1mdW5jdGlvbihyLHQpe3ZhciBuPWhnKGFyZ3VtZW50cyksZT10O2lmKChzZyh0KXx8dm9pZCAwIT09cikmJiF2ZyhyKSlyZXR1cm4gYWcodCl8fCh0PWZ1bmN0aW9uKHIsdCl7aWYoY2coZSkmJih0PW9nKGUsdGhpcyxyLHQpKSwhdmcodCkpcmV0dXJuIHR9KSxuWzFdPXQsaWcoZGcsbnVsbCxuKX0sRWc9ZnVuY3Rpb24ocix0LG4pe3ZhciBlPXdnKG4sdC0xKSxpPXdnKG4sdCsxKTtyZXR1cm4geWcoU2cscikmJiF5ZyhBZyxpKXx8eWcoQWcscikmJiF5ZyhTZyxlKT8iXFx1IitnZyhiZyhyLDApLDE2KTpyfTtkZyYmbmcoe3RhcmdldDoiSlNPTiIsQzohMCxMOjMsRzpqZ3x8T2d9LHtzdHJpbmdpZnk6ZnVuY3Rpb24ocix0LG4pe3ZhciBlPWhnKGFyZ3VtZW50cyksaT1pZyhqZz9rZzpkZyxudWxsLGUpO3JldHVybiBPZyYmInN0cmluZyI9PXR5cGVvZiBpP3BnKGksbWcsRWcpOml9fSk7dmFyIFRnPXZlLHhnPVRyO0JlKHt0YXJnZXQ6Ik9iamVjdCIsQzohMCxHOiFafHxpKChmdW5jdGlvbigpe1RnLmYoMSl9KSl9LHtnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6ZnVuY3Rpb24ocil7dmFyIHQ9VGcuZjtyZXR1cm4gdD90KHhnKHIpKTpbXX19KTt2YXIgVWc9QmUsTWc9byxJZz1uLExnPVMsUGc9TXIsX2c9RixSZz1ZLEZnPVFlLE5nPXB0LmYsQ2c9QWUsQmc9SWcuU3ltYm9sLEdnPUJnJiZCZy5wcm90b3R5cGU7aWYoTWcmJl9nKEJnKSYmKCEoImRlc2NyaXB0aW9uImluIEdnKXx8dm9pZCAwIT09QmcoKS5kZXNjcmlwdGlvbikpe3ZhciBEZz17fSxWZz1mdW5jdGlvbigpe3ZhciByPTE+YXJndW1lbnRzLmxlbmd0aHx8dm9pZCAwPT09YXJndW1lbnRzWzBdP3ZvaWQgMDpGZyhhcmd1bWVudHNbMF0pLHQ9UmcoR2csdGhpcyk/bmV3IEJnKHIpOnZvaWQgMD09PXI/QmcoKTpCZyhyKTtyZXR1cm4iIj09PXImJihEZ1t0XT0hMCksdH07Q2coVmcsQmcpLFZnLnByb3RvdHlwZT1HZyxHZy5jb25zdHJ1Y3Rvcj1WZzt2YXIgWWc9QmcoInRlc3QiKSsiIj09IlN5bWJvbCh0ZXN0KSIsemc9TGcoR2cudG9TdHJpbmcpLFdnPUxnKEdnLnZhbHVlT2YpLCRnPS9eU3ltYm9sXCgoLiopXClbXildKyQvLEhnPUxnKCIiLnJlcGxhY2UpLEtnPUxnKCIiLnNsaWNlKTtOZyhHZywiZGVzY3JpcHRpb24iLHtpOiEwLGdldDpmdW5jdGlvbigpe3ZhciByPVdnKHRoaXMpLHQ9emcocik7aWYoUGcoRGcscikpcmV0dXJuIiI7dmFyIG49WWc/S2codCw3LC0xKTpIZyh0LCRnLCIkMSIpO3JldHVybiIiPT09bj92b2lkIDA6bn19KSxVZyh7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLEc6ITB9LHtTeW1ib2w6Vmd9KX1MYigiaXRlcmF0b3IiKTt2YXIgcWc9UyxKZz1EbixYZz1RZSxRZz1MLFpnPXFnKCIiLmNoYXJBdCkscm09cWcoIiIuY2hhckNvZGVBdCksdG09cWcoIiIuc2xpY2UpLG5tPWZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbih0LG4pe3ZhciBlLGksbz1YZyhRZyh0KSksdT1KZyhuKSxmPW8ubGVuZ3RoO3JldHVybiAwPnV8fHU+PWY/cj8iIjp2b2lkIDA6NTUyOTY+KGU9cm0obyx1KSl8fGU+NTYzMTl8fHUrMT09PWZ8fDU2MzIwPihpPXJtKG8sdSsxKSl8fGk+NTczNDM/cj9aZyhvLHUpOmU6cj90bShvLHUsdSsyKTppLTU2MzIwKyhlLTU1Mjk2PDwxMCkrNjU1MzZ9fSxlbT0obm0oITEpLG5tKCEwKSksaW09UWUsb209bW4sdW09em8sZm09b20uc2V0LGFtPW9tLlUoIlN0cmluZyBJdGVyYXRvciIpO3VtKFN0cmluZywiU3RyaW5nIiwoZnVuY3Rpb24ocil7Zm0odGhpcyx7dHlwZToiU3RyaW5nIEl0ZXJhdG9yIixzdHJpbmc6aW0ociksaW5kZXg6MH0pfSksKGZ1bmN0aW9uKCl7dmFyIHIsdD1hbSh0aGlzKSxuPXQuc3RyaW5nLGU9dC5pbmRleDtyZXR1cm4gZTxuLmxlbmd0aD8ocj1lbShuLGUpLHQuaW5kZXgrPXIubGVuZ3RoLHt2YWx1ZTpyLGRvbmU6ITF9KTp7dmFsdWU6dm9pZCAwLGRvbmU6ITB9fSkpO3ZhciBjbT17Q1NTUnVsZUxpc3Q6MCxDU1NTdHlsZURlY2xhcmF0aW9uOjAsQ1NTVmFsdWVMaXN0OjAsQ2xpZW50UmVjdExpc3Q6MCxET01SZWN0TGlzdDowLERPTVN0cmluZ0xpc3Q6MCxET01Ub2tlbkxpc3Q6MSxEYXRhVHJhbnNmZXJJdGVtTGlzdDowLEZpbGVMaXN0OjAsSFRNTEFsbENvbGxlY3Rpb246MCxIVE1MQ29sbGVjdGlvbjowLEhUTUxGb3JtRWxlbWVudDowLEhUTUxTZWxlY3RFbGVtZW50OjAsTWVkaWFMaXN0OjAsTWltZVR5cGVBcnJheTowLE5hbWVkTm9kZU1hcDowLE5vZGVMaXN0OjEsUGFpbnRSZXF1ZXN0TGlzdDowLFBsdWdpbjowLFBsdWdpbkFycmF5OjAsU1ZHTGVuZ3RoTGlzdDowLFNWR051bWJlckxpc3Q6MCxTVkdQYXRoU2VnTGlzdDowLFNWR1BvaW50TGlzdDowLFNWR1N0cmluZ0xpc3Q6MCxTVkdUcmFuc2Zvcm1MaXN0OjAsU291cmNlQnVmZmVyTGlzdDowLFN0eWxlU2hlZXRMaXN0OjAsVGV4dFRyYWNrQ3VlTGlzdDowLFRleHRUcmFja0xpc3Q6MCxUb3VjaExpc3Q6MH0sc209dXQoInNwYW4iKS5jbGFzc0xpc3Qsdm09c20mJnNtLmNvbnN0cnVjdG9yJiZzbS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsaG09dm09PT1PYmplY3QucHJvdG90eXBlP3ZvaWQgMDp2bSxsbT1uLGRtPWNtLHltPWhtLHdtPXJ1LGJtPV90LHBtPSRyLGdtPXBtKCJpdGVyYXRvciIpLG1tPXBtKCJ0b1N0cmluZ1RhZyIpLFNtPXdtLnZhbHVlcyxBbT1mdW5jdGlvbihyLHQpe2lmKHIpe2lmKHJbZ21dIT09U20pdHJ5e2JtKHIsZ20sU20pfWNhdGNoKHQpe3JbZ21dPVNtfWlmKHJbbW1dfHxibShyLG1tLHQpLGRtW3RdKWZvcih2YXIgbiBpbiB3bSlpZihyW25dIT09d21bbl0pdHJ5e2JtKHIsbix3bVtuXSl9Y2F0Y2godCl7cltuXT13bVtuXX19fTtmb3IodmFyIGptIGluIGRtKUFtKGxtW2ptXSYmbG1bam1dLnByb3RvdHlwZSxqbSk7QW0oeW0sIkRPTVRva2VuTGlzdCIpLExiKCJhc3luY0l0ZXJhdG9yIik7dmFyIE9tPVYsa209d287TGIoInRvU3RyaW5nVGFnIiksa20oT20oIlN5bWJvbCIpLCJTeW1ib2wiKSx3byhuLkpTT04sIkpTT04iLCEwKSx3byhNYXRoLCJNYXRoIiwhMCk7dmFyIEVtPVRyLFRtPWVvLHhtPXFpO0JlKHt0YXJnZXQ6Ik9iamVjdCIsQzohMCxHOmkoKGZ1bmN0aW9uKCl7VG0oMSl9KSksaDoheG19LHtnZXRQcm90b3R5cGVPZjpmdW5jdGlvbihyKXtyZXR1cm4gVG0oRW0ocikpfX0pO3ZhciBVbT1pcy5mb3JFYWNoLE1tPW4sSW09Y20sTG09aG0sUG09QWgoImZvckVhY2giKT9bXS5mb3JFYWNoOmZ1bmN0aW9uKHIpe3JldHVybiBVbSh0aGlzLHIsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSxfbT1fdCxSbT1mdW5jdGlvbihyKXtpZihyJiZyLmZvckVhY2ghPT1QbSl0cnl7X20ociwiZm9yRWFjaCIsUG0pfWNhdGNoKHQpe3IuZm9yRWFjaD1QbX19O2Zvcih2YXIgRm0gaW4gSW0pSW1bRm1dJiZSbShNbVtGbV0mJk1tW0ZtXS5wcm90b3R5cGUpO1JtKExtKTt2YXIgTm09byxDbT1HdC5TLEJtPVMsR209cHQuZixEbT1GdW5jdGlvbi5wcm90b3R5cGUsVm09Qm0oRG0udG9TdHJpbmcpLFltPS9mdW5jdGlvblxiKD86XHN8XC9cKltcU1xzXSo/XCpcL3xcL1wvW15cblxyXSpbXG5ccl0rKSooW15ccygvXSopLyx6bT1CbShZbS5leGVjKTtObSYmIUNtJiZHbShEbSwibmFtZSIse2k6ITAsZ2V0OmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB6bShZbSxWbSh0aGlzKSlbMV19Y2F0Y2gocil7cmV0dXJuIiJ9fX0pO3ZhciBXbT1CZSwkbT16YyxIbT1TKFtdLnJldmVyc2UpLEttPVsxLDJdO1dtKHt0YXJnZXQ6IkFycmF5IixWOiEwLEc6S20rIiI9PUttLnJldmVyc2UoKSsiIn0se3JldmVyc2U6ZnVuY3Rpb24oKXtyZXR1cm4gJG0odGhpcykmJih0aGlzLmxlbmd0aD10aGlzLmxlbmd0aCksSG0odGhpcyl9fSk7dmFyIHFtPWksSm09WCxYbT0kcigic3BlY2llcyIpLFFtPWZ1bmN0aW9uKHIpe3JldHVybiBKbT49NTF8fCFxbSgoZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4odC5jb25zdHJ1Y3Rvcj17fSlbWG1dPWZ1bmN0aW9uKCl7cmV0dXJue05yOjF9fSwxIT09dFtyXShCb29sZWFuKS5Ocn0pKX0sWm09QmUsclM9emMsdFM9RGYsblM9QyxlUz1XbixpUz1KbixvUz1SLHVTPWp1LGZTPSRyLGFTPXZsLGNTPVFtKCJzbGljZSIpLHNTPWZTKCJzcGVjaWVzIiksdlM9QXJyYXksaFM9TWF0aC5tYXg7Wm0oe3RhcmdldDoiQXJyYXkiLFY6ITAsRzohY1N9LHtzbGljZTpmdW5jdGlvbihyLHQpe3ZhciBuLGUsaSxvPW9TKHRoaXMpLHU9aVMobyksZj1lUyhyLHUpLGE9ZVModm9pZCAwPT09dD91OnQsdSk7aWYoclMobykmJihuPW8uY29uc3RydWN0b3IsKHRTKG4pJiYobj09PXZTfHxyUyhuLnByb3RvdHlwZSkpfHxuUyhuKSYmbnVsbD09PShuPW5bc1NdKSkmJihuPXZvaWQgMCksbj09PXZTfHx2b2lkIDA9PT1uKSlyZXR1cm4gYVMobyxmLGEpO2ZvcihlPW5ldyh2b2lkIDA9PT1uP3ZTOm4pKGhTKGEtZiwwKSksaT0wO2E+ZjtmKyssaSsrKWYgaW4gbyYmdVMoZSxpLG9bZl0pO3JldHVybiBlLmxlbmd0aD1pLGV9fSk7dmFyIGxTPW8sZFM9YSx5Uz1pLHdTPXBpLGJTPXZlLHBTPWMsZ1M9VHIsbVM9TSxTUz1PYmplY3QuYXNzaWduLEFTPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxqUz1TKFtdLmNvbmNhdCksT1M9IVNTfHx5UygoZnVuY3Rpb24oKXtpZihsUyYmMSE9PVNTKHtiOjF9LFNTKEFTKHt9LCJhIix7dDohMCxnZXQ6ZnVuY3Rpb24oKXtBUyh0aGlzLCJiIix7dmFsdWU6Myx0OiExfSl9fSkse2I6Mn0pKS5iKXJldHVybiEwO3ZhciByPXt9LHQ9e30sbj1TeW1ib2woKSxlPSJhYmNkZWZnaGlqa2xtbm9wcXJzdCI7cmV0dXJuIHJbbl09NyxlLnNwbGl0KCIiKS5mb3JFYWNoKChmdW5jdGlvbihyKXt0W3JdPXJ9KSksNyE9U1Moe30scilbbl18fHdTKFNTKHt9LHQpKS5qb2luKCIiKSE9ZX0pKT9mdW5jdGlvbihyLHQpe2Zvcih2YXIgbj1nUyhyKSxlPWFyZ3VtZW50cy5sZW5ndGgsaT0xLG89YlMuZix1PXBTLmY7ZT5pOylmb3IodmFyIGYsYT1tUyhhcmd1bWVudHNbaSsrXSksYz1vP2pTKHdTKGEpLG8oYSkpOndTKGEpLHM9Yy5sZW5ndGgsdj0wO3M+djspZj1jW3YrK10sbFMmJiFkUyh1LGEsZil8fChuW2ZdPWFbZl0pO3JldHVybiBufTpTUztCZSh7dGFyZ2V0OiJPYmplY3QiLEM6ITAsTDoyLEc6T2JqZWN0LmFzc2lnbiE9PU9TfSx7YXNzaWduOk9TfSk7Zm9yKHZhciBrUz1bXSxFUz0wOzI1Nj5FUztFUysrKXtmb3IodmFyIFRTPUVTLHhTPTA7OD54Uzt4UysrKTEmVFM/VFM9VFM+Pj4xXjM5ODgyOTIzODQ6VFM+Pj49MTtrU1tFU109VFN9dmFyIFVTPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0KXshZnVuY3Rpb24ocix0KXtpZighKHIgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxyKSx0aGlzLkNyPXR8fC0xfXJldHVybiBmdW5jdGlvbihyLHQpe3QmJmZ1bmN0aW9uKHIsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBlPXRbbl07ZS50PWUudHx8ITEsZS5pPSEwLCJ2YWx1ZSJpbiBlJiYoZS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsZS5rZXksZSl9fShyLnByb3RvdHlwZSx0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0ocixbe2tleToiYXBwZW5kIix2YWx1ZTpmdW5jdGlvbihyKXtmb3IodmFyIHQ9MHx0aGlzLkNyLG49MCxlPTB8ci5sZW5ndGg7ZT5uO24rKyl0PXQ+Pj44XmtTWzI1NSYodF5yW25dKV07dGhpcy5Dcj10fX0se2tleToiZ2V0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybn50aGlzLkNyfX1dKSxyfSgpLE1TPWp0LElTPUx3LExTPWJjLFBTPWEsX1M9VHIsUlM9ZnVuY3Rpb24ocix0LG4sZSl7dHJ5e3JldHVybiBlP3QoTVMobilbMF0sblsxXSk6dChuKX1jYXRjaCh0KXtJUyhyLCJ0aHJvdyIsdCl9fSxGUz1QYyxOUz1EZixDUz1KbixCUz1qdSxHUz1VYyxEUz1BYyxWUz1BcnJheTtmdW5jdGlvbiBZUyhyKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFRleHRFbmNvZGVyKXtyPXVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChyKSk7Zm9yKHZhciB0PW5ldyBVaW50OEFycmF5KHIubGVuZ3RoKSxuPTA7bjx0Lmxlbmd0aDtuKyspdFtuXT1yLmNoYXJDb2RlQXQobik7cmV0dXJuIHR9cmV0dXJuKG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKHIpfUJlKHt0YXJnZXQ6IkFycmF5IixDOiEwLEc6IXBhKChmdW5jdGlvbihyKXtBcnJheS5mcm9tKHIpfSkpfSx7ZnJvbTpmdW5jdGlvbihyKXt2YXIgdD1fUyhyKSxuPU5TKHRoaXMpLGU9YXJndW1lbnRzLmxlbmd0aCxpPWU+MT9hcmd1bWVudHNbMV06dm9pZCAwLG89dm9pZCAwIT09aTtvJiYoaT1MUyhpLGU+Mj9hcmd1bWVudHNbMl06dm9pZCAwKSk7dmFyIHUsZixhLGMscyx2LGg9RFModCksbD0wO2lmKCFofHx0aGlzPT09VlMmJkZTKGgpKWZvcih1PUNTKHQpLGY9bj9uZXcgdGhpcyh1KTpWUyh1KTt1Pmw7bCsrKXY9bz9pKHRbbF0sbCk6dFtsXSxCUyhmLGwsdik7ZWxzZSBmb3Iocz0oYz1HUyh0LGgpKS5uZXh0LGY9bj9uZXcgdGhpczpbXTshKGE9UFMocyxjKSkuZG9uZTtsKyspdj1vP1JTKGMsaSxbYS52YWx1ZSxsXSwhMCk6YS52YWx1ZSxCUyhmLGwsdik7cmV0dXJuIGYubGVuZ3RoPWwsZn19KTt2YXIgelM9VHlwZUVycm9yLFdTPWZ1bmN0aW9uKHIpe2lmKHI+OTAwNzE5OTI1NDc0MDk5MSl0aHJvdyB6UygiTWF4aW11bSBhbGxvd2VkIGluZGV4IGV4Y2VlZGVkIik7cmV0dXJuIHJ9LCRTPUJlLEhTPWksS1M9emMscVM9QyxKUz1UcixYUz1KbixRUz1XUyxaUz1qdSxyQT1KYyx0QT1RbSxuQT1YLGVBPSRyKCJpc0NvbmNhdFNwcmVhZGFibGUiKSxpQT1uQT49NTF8fCFIUygoZnVuY3Rpb24oKXt2YXIgcj1bXTtyZXR1cm4gcltlQV09ITEsci5jb25jYXQoKVswXSE9PXJ9KSksb0E9dEEoImNvbmNhdCIpLHVBPWZ1bmN0aW9uKHIpe2lmKCFxUyhyKSlyZXR1cm4hMTt2YXIgdD1yW2VBXTtyZXR1cm4gdm9pZCAwIT09dD8hIXQ6S1Mocil9OyRTKHt0YXJnZXQ6IkFycmF5IixWOiEwLEw6MSxHOiFpQXx8IW9BfSx7Y29uY2F0OmZ1bmN0aW9uKHIpe3ZhciB0LG4sZSxpLG8sdT1KUyh0aGlzKSxmPXJBKHUsMCksYT0wO2Zvcih0PS0xLGU9YXJndW1lbnRzLmxlbmd0aDtlPnQ7dCsrKWlmKHVBKG89LTE9PT10P3U6YXJndW1lbnRzW3RdKSlmb3IoaT1YUyhvKSxRUyhhK2kpLG49MDtpPm47bisrLGErKyluIGluIG8mJlpTKGYsYSxvW25dKTtlbHNlIFFTKGErMSksWlMoZixhKyssbyk7cmV0dXJuIGYubGVuZ3RoPWEsZn19KSwoMCxzYS5leHBvcnRzKSgiVWludDMyIiwoZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gcih0aGlzLHQsbixlKX19KSk7dmFyIGZBPUJlLGFBPVRyLGNBPVduLHNBPURuLHZBPUpuLGhBPVdTLGxBPUpjLGRBPWp1LHlBPXZ2LHdBPVFtKCJzcGxpY2UiKSxiQT1NYXRoLm1heCxwQT1NYXRoLm1pbjtmQSh7dGFyZ2V0OiJBcnJheSIsVjohMCxHOiF3QX0se3NwbGljZTpmdW5jdGlvbihyLHQpe3ZhciBuLGUsaSxvLHUsZixhPWFBKHRoaXMpLGM9dkEoYSkscz1jQShyLGMpLHY9YXJndW1lbnRzLmxlbmd0aDtmb3IoMD09PXY/bj1lPTA6MT09PXY/KG49MCxlPWMtcyk6KG49di0yLGU9cEEoYkEoc0EodCksMCksYy1zKSksaEEoYytuLWUpLGk9bEEoYSxlKSxvPTA7ZT5vO28rKykodT1zK28paW4gYSYmZEEoaSxvLGFbdV0pO2lmKGkubGVuZ3RoPWUsZT5uKXtmb3Iobz1zO2MtZT5vO28rKylmPW8rbiwodT1vK2UpaW4gYT9hW2ZdPWFbdV06eUEoYSxmKTtmb3Iobz1jO28+Yy1lK247by0tKXlBKGEsby0xKX1lbHNlIGlmKG4+ZSlmb3Iobz1jLWU7bz5zO28tLSlmPW8rbi0xLCh1PW8rZS0xKWluIGE/YVtmXT1hW3VdOnlBKGEsZik7Zm9yKG89MDtuPm87bysrKWFbbytzXT1hcmd1bWVudHNbbysyXTtyZXR1cm4gYS5sZW5ndGg9Yy1lK24saX19KTt2YXIgZ0E9Y3MsbUE9VGYuQXJyYXlCdWZmZXI7ZnVuY3Rpb24gU0Eocix0KXtpZighKHIgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBBQShyLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgZT10W25dO2UudD1lLnR8fCExLGUuaT0hMCwidmFsdWUiaW4gZSYmKGUud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGUua2V5LGUpfX1mdW5jdGlvbiBqQShyLHQsbil7cmV0dXJuIHQmJkFBKHIucHJvdG90eXBlLHQpLG4mJkFBKHIsbiksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSkscn1CZSh7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLEc6bi5BcnJheUJ1ZmZlciE9PW1BfSx7QXJyYXlCdWZmZXI6bUF9KSxnQSgiQXJyYXlCdWZmZXIiKTt2YXIgT0E9e2NvbmNhdDpmdW5jdGlvbihyLHQpe2lmKDA9PT1yLmxlbmd0aHx8MD09PXQubGVuZ3RoKXJldHVybiByLmNvbmNhdCh0KTt2YXIgbj1yW3IubGVuZ3RoLTFdLGU9T0EuQnIobik7cmV0dXJuIDMyPT09ZT9yLmNvbmNhdCh0KTpPQS5Hcih0LGUsMHxuLHIuc2xpY2UoMCxyLmxlbmd0aC0xKSl9LERyOmZ1bmN0aW9uKHIpe3ZhciB0PXIubGVuZ3RoO2lmKDA9PT10KXJldHVybiAwO3ZhciBuPXJbdC0xXTtyZXR1cm4gMzIqKHQtMSkrT0EuQnIobil9LFZyOmZ1bmN0aW9uKHIsdCl7aWYoMzIqci5sZW5ndGg8dClyZXR1cm4gcjt2YXIgbj0ocj1yLnNsaWNlKDAsTWF0aC5jZWlsKHQvMzIpKSkubGVuZ3RoO3JldHVybiB0Jj0zMSxuPjAmJnQmJihyW24tMV09T0EuWXIodCxyW24tMV0mMjE0NzQ4MzY0OD4+dC0xLDEpKSxyfSxZcjpmdW5jdGlvbihyLHQsbil7cmV0dXJuIDMyPT09cj90OihuPzB8dDp0PDwzMi1yKSsxMDk5NTExNjI3Nzc2KnJ9LEJyOmZ1bmN0aW9uKHIpe3JldHVybiBNYXRoLnJvdW5kKHIvMTA5OTUxMTYyNzc3Nil8fDMyfSxHcjpmdW5jdGlvbihyLHQsbixlKXtmb3Iodm9pZCAwPT09ZSYmKGU9W10pO3Q+PTMyO3QtPTMyKWUucHVzaChuKSxuPTA7aWYoMD09PXQpcmV0dXJuIGUuY29uY2F0KHIpO2Zvcih2YXIgaT0wO2k8ci5sZW5ndGg7aSsrKWUucHVzaChufHJbaV0+Pj50KSxuPXJbaV08PDMyLXQ7dmFyIG89ci5sZW5ndGg/cltyLmxlbmd0aC0xXTowLHU9T0EuQnIobyk7cmV0dXJuIGUucHVzaChPQS5Zcih0K3UmMzEsdCt1PjMyP246ZS5wb3AoKSwxKSksZX19LGtBPXtLOnt6cjpmdW5jdGlvbihyKXtmb3IodmFyIHQsbj1PQS5EcihyKS84LGU9bmV3IFVpbnQ4QXJyYXkobiksaT0wO24+aTtpKyspMD09KDMmaSkmJih0PXJbaS80XSksZVtpXT10Pj4+MjQsdDw8PTg7cmV0dXJuIGV9LFdyOmZ1bmN0aW9uKHIpe3ZhciB0LG49W10sZT0wO2Zvcih0PTA7dDxyLmxlbmd0aDt0KyspZT1lPDw4fHJbdF0sMz09KDMmdCkmJihuLnB1c2goZSksZT0wKTtyZXR1cm4gMyZ0JiZuLnB1c2goT0EuWXIoOCooMyZ0KSxlKSksbn19fSxFQT17JHI6ZnVuY3Rpb24ocil7cj8odGhpcy5Icj1yLkhyLnNsaWNlKDApLHRoaXMuS3I9ci5Lci5zbGljZSgwKSx0aGlzLnFyPXIucXIpOnRoaXMucmVzZXQoKX19O0VBLiRyLnByb3RvdHlwZT17YmxvY2tTaXplOjUxMixyZXNldDpmdW5jdGlvbigpe3ZhciByPXRoaXM7cmV0dXJuIHIuSHI9dGhpcy5Kci5zbGljZSgwKSxyLktyPVtdLHIucXI9MCxyfSx1cGRhdGU6ZnVuY3Rpb24ocil7dmFyIHQ9dGhpczsic3RyaW5nIj09dHlwZW9mIHImJihyPWtBLlhyLldyKHIpKTt2YXIgbj10LktyPU9BLmNvbmNhdCh0LktyLHIpLGU9dC5xcixpPXQucXI9ZStPQS5EcihyKTtpZihpPjkwMDcxOTkyNTQ3NDA5OTEpdGhyb3cgRXJyb3IoIkNhbm5vdCBoYXNoIG1vcmUgdGhhbiAyXjUzIC0gMSBiaXRzIik7Zm9yKHZhciBvPW5ldyBVaW50MzJBcnJheShuKSx1PTAsZj10LmJsb2NrU2l6ZStlLSh0LmJsb2NrU2l6ZStlJnQuYmxvY2tTaXplLTEpO2k+PWY7Zis9dC5ibG9ja1NpemUpdC5RcihvLnN1YmFycmF5KDE2KnUsMTYqKHUrMSkpKSx1Kz0xO3JldHVybiBuLnNwbGljZSgwLDE2KnUpLHR9LFpyOmZ1bmN0aW9uKCl7Zm9yKHZhciByPXRoaXMsdD1yLktyLG49ci5IcixlPSh0PU9BLmNvbmNhdCh0LFtPQS5ZcigxLDEpXSkpLmxlbmd0aCsyOzE1JmU7ZSsrKXQucHVzaCgwKTtmb3IodC5wdXNoKE1hdGguZmxvb3Ioci5xci80Mjk0OTY3Mjk2KSksdC5wdXNoKDB8ci5xcik7dC5sZW5ndGg7KXIuUXIodC5zcGxpY2UoMCwxNikpO3JldHVybiByLnJlc2V0KCksbn0sSnI6WzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSxydDpbMTUxODUwMDI0OSwxODU5Nzc1MzkzLDI0MDA5NTk3MDgsMzM5NTQ2OTc4Ml0sdHQ6ZnVuY3Rpb24ocix0LG4sZSl7cmV0dXJuIHI+MTk/cj4zOT9yPjU5P3I+Nzk/dm9pZCAwOnRebl5lOnQmbnx0JmV8biZlOnRebl5lOnQmbnx+dCZlfSxudDpmdW5jdGlvbihyLHQpe3JldHVybiB0PDxyfHQ+Pj4zMi1yfSxRcjpmdW5jdGlvbihyKXtmb3IodmFyIHQ9dGhpcyxuPXQuSHIsZT1BcnJheSg4MCksaT0wOzE2Pmk7aSsrKWVbaV09cltpXTtmb3IodmFyIG89blswXSx1PW5bMV0sZj1uWzJdLGE9blszXSxjPW5bNF0scz0wOzc5Pj1zO3MrKyl7MTY+c3x8KGVbc109dC5udCgxLGVbcy0zXV5lW3MtOF1eZVtzLTE0XV5lW3MtMTZdKSk7dmFyIHY9dC5udCg1LG8pK3QudHQocyx1LGYsYSkrYytlW3NdK3QucnRbTWF0aC5mbG9vcihzLzIwKV18MDtjPWEsYT1mLGY9dC5udCgzMCx1KSx1PW8sbz12fW5bMF09blswXStvfDAsblsxXT1uWzFdK3V8MCxuWzJdPW5bMl0rZnwwLG5bM109blszXSthfDAsbls0XT1uWzRdK2N8MH19O3ZhciBUQT17fTtUQS5ldD1mdW5jdGlvbigpe2Z1bmN0aW9uIHIodCl7U0EodGhpcyxyKTt2YXIgbj10aGlzO24uaXQ9W1tbXSxbXSxbXSxbXSxbXV0sW1tdLFtdLFtdLFtdLFtdXV0sbi5pdFswXVswXVswXXx8bi5vdCgpO3ZhciBlLGksbyx1PW4uaXRbMF1bNF0sZj1uLml0WzFdLGE9dC5sZW5ndGgsYz0xO2lmKDQhPT1hJiY2IT09YSYmOCE9PWEpdGhyb3cgRXJyb3IoImludmFsaWQgYWVzIGtleSBzaXplIik7Zm9yKG4ucnQ9W2k9dC5zbGljZSgwKSxvPVtdXSxlPWE7NCphKzI4PmU7ZSsrKXt2YXIgcz1pW2UtMV07KGUlYT09MHx8OD09PWEmJmUlYT09NCkmJihzPXVbcz4+PjI0XTw8MjRedVtzPj4xNiYyNTVdPDwxNl51W3M+PjgmMjU1XTw8OF51WzI1NSZzXSxlJWE9PTAmJihzPXM8PDhecz4+PjI0XmM8PDI0LGM9Yzw8MV4yODMqKGM+PjcpKSksaVtlXT1pW2UtYV1ec31mb3IodmFyIHY9MDtlO3YrKyxlLS0pe3ZhciBoPWlbMyZ2P2U6ZS00XTtvW3ZdPTQ+PWV8fDQ+dj9oOmZbMF1bdVtoPj4+MjRdXV5mWzFdW3VbaD4+MTYmMjU1XV1eZlsyXVt1W2g+PjgmMjU1XV1eZlszXVt1WzI1NSZoXV19fXJldHVybiBqQShyLFt7a2V5OiJlbmNyeXB0Iix2YWx1ZTpmdW5jdGlvbihyKXtyZXR1cm4gdGhpcy51dChyLDApfX0se2tleToiZGVjcnlwdCIsdmFsdWU6ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMudXQociwxKX19LHtrZXk6Il9wcmVjb21wdXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgcix0LG4sZT10aGlzLml0WzBdLGk9dGhpcy5pdFsxXSxvPWVbNF0sdT1pWzRdLGY9W10sYT1bXSxjPTA7MjU2PmM7YysrKWFbKGZbY109Yzw8MV4yODMqKGM+PjcpKV5jXT1jO2Zvcih2YXIgcz1yPTA7IW9bc107c149dHx8MSxyPWFbcl18fDEpe3ZhciB2PXJecjw8MV5yPDwyXnI8PDNecjw8NDt2PXY+PjheMjU1JnZeOTksb1tzXT12LHVbdl09cztmb3IodmFyIGg9MTY4NDMwMDkqZltuPWZbdD1mW3NdXV1eNjU1Mzcqbl4yNTcqdF4xNjg0MzAwOCpzLGw9MjU3KmZbdl1eMTY4NDMwMDgqdixkPTA7ND5kO2QrKyllW2RdW3NdPWw9bDw8MjRebD4+PjgsaVtkXVt2XT1oPWg8PDI0Xmg+Pj44fWZvcih2YXIgeT0wOzU+eTt5KyspZVt5XT1lW3ldLnNsaWNlKDApLGlbeV09aVt5XS5zbGljZSgwKX19LHtrZXk6Il9jcnlwdCIsdmFsdWU6ZnVuY3Rpb24ocix0KXtpZig0IT09ci5sZW5ndGgpdGhyb3cgRXJyb3IoImludmFsaWQgYWVzIGJsb2NrIHNpemUiKTtmb3IodmFyIG4sZSxpLG89dGhpcy5ydFt0XSx1PW8ubGVuZ3RoLzQtMixmPVswLDAsMCwwXSxhPXRoaXMuaXRbdF0sYz1hWzBdLHM9YVsxXSx2PWFbMl0saD1hWzNdLGw9YVs0XSxkPXJbMF1eb1swXSx5PXJbdD8zOjFdXm9bMV0sdz1yWzJdXm9bMl0sYj1yW3Q/MTozXV5vWzNdLHA9NCxnPTA7dT5nO2crKyluPWNbZD4+PjI0XV5zW3k+PjE2JjI1NV1edlt3Pj44JjI1NV1eaFsyNTUmYl1eb1twXSxlPWNbeT4+PjI0XV5zW3c+PjE2JjI1NV1edltiPj44JjI1NV1eaFsyNTUmZF1eb1twKzFdLGk9Y1t3Pj4+MjRdXnNbYj4+MTYmMjU1XV52W2Q+PjgmMjU1XV5oWzI1NSZ5XV5vW3ArMl0sYj1jW2I+Pj4yNF1ec1tkPj4xNiYyNTVdXnZbeT4+OCYyNTVdXmhbMjU1JnddXm9bcCszXSxwKz00LGQ9bix5PWUsdz1pO2Zvcih2YXIgbT0wOzQ+bTttKyspZlt0PzMmLW06bV09bFtkPj4+MjRdPDwyNF5sW3k+PjE2JjI1NV08PDE2Xmxbdz4+OCYyNTVdPDw4XmxbMjU1JmJdXm9bcCsrXSxuPWQsZD15LHk9dyx3PWIsYj1uO3JldHVybiBmfX1dKSxyfSgpO3ZhciB4QT17fTt4QS5mdD1mdW5jdGlvbigpe2Z1bmN0aW9uIHIodCxuKXtTQSh0aGlzLHIpLHRoaXMuY3Q9dCx0aGlzLnN0PW4sdGhpcy52dD1ufXJldHVybiBqQShyLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnZ0PXRoaXMuc3R9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLmh0KHRoaXMuY3Qscix0aGlzLnZ0KX19LHtrZXk6ImluY1dvcmQiLHZhbHVlOmZ1bmN0aW9uKHIpe2lmKDI1NT09KHI+PjI0JjI1NSkpe3ZhciB0PXI+PjE2JjI1NSxuPXI+PjgmMjU1LGU9MjU1JnI7MjU1PT09dD8odD0wLDI1NT09PW4/KG49MCwyNTU9PT1lP2U9MDorK2UpOisrbik6Kyt0LHI9MCxyKz10PDwxNixyKz1uPDw4LHIrPWV9ZWxzZSByKz0xPDwyNDtyZXR1cm4gcn19LHtrZXk6ImluY0NvdW50ZXIiLHZhbHVlOmZ1bmN0aW9uKHIpezA9PT0oclswXT10aGlzLmx0KHJbMF0pKSYmKHJbMV09dGhpcy5sdChyWzFdKSl9fSx7a2V5OiJjYWxjdWxhdGUiLHZhbHVlOmZ1bmN0aW9uKHIsdCxuKXt2YXIgZTtpZighKGU9dC5sZW5ndGgpKXJldHVybltdO2Zvcih2YXIgaT1PQS5Ecih0KSxvPTA7ZT5vO28rPTQpe3RoaXMuZHQobik7dmFyIHU9ci5lbmNyeXB0KG4pO3Rbb11ePXVbMF0sdFtvKzFdXj11WzFdLHRbbysyXV49dVsyXSx0W28rM11ePXVbM119cmV0dXJuIE9BLlZyKHQsaSl9fV0pLHJ9KCk7dmFyIFVBPXtpbXBvcnRLZXk6ZnVuY3Rpb24ocil7cmV0dXJuIG5ldyBVQS55dChrQS5LLldyKHIpKX0sd3Q6ZnVuY3Rpb24ocix0LG4sZSl7aWYobj1ufHwxZTQsMD5lfHwwPm4pdGhyb3cgRXJyb3IoImludmFsaWQgcGFyYW1zIHRvIHBia2RmMiIpO3ZhciBpLG8sdSxmLGEsYz0xKyhlPj41KTw8MixzPW5ldyBBcnJheUJ1ZmZlcihjKSx2PW5ldyBEYXRhVmlldyhzKSxoPTAsbD1PQTtmb3IodD1rQS5LLldyKHQpLGE9MTsoY3x8MSk+aDthKyspe2ZvcihpPW89ci5lbmNyeXB0KGwuY29uY2F0KHQsW2FdKSksdT0xO24+dTt1KyspZm9yKG89ci5lbmNyeXB0KG8pLGY9MDtmPG8ubGVuZ3RoO2YrKylpW2ZdXj1vW2ZdO2Zvcih1PTA7KGN8fDEpPmgmJnU8aS5sZW5ndGg7dSsrKXYuc2V0SW50MzIoaCxpW3VdKSxoKz00fXJldHVybiBzLnNsaWNlKDAsZS84KX19O2Z1bmN0aW9uIE1BKHIpe3JldHVybiBNQT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihyKXtyZXR1cm4gdHlwZW9mIHJ9OmZ1bmN0aW9uKHIpe3JldHVybiByJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZyLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZyIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2Ygcn0sTUEocil9ZnVuY3Rpb24gSUEoKXsvKiEgcmVnZW5lcmF0b3ItcnVudGltZSAtLSBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy4gLS0gbGljZW5zZSAoTUlUKTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlZ2VuZXJhdG9yL2Jsb2IvbWFpbi9MSUNFTlNFICovSUE9ZnVuY3Rpb24oKXtyZXR1cm4gcn07dmFyIHI9e30sdD1PYmplY3QucHJvdG90eXBlLG49dC5oYXNPd25Qcm9wZXJ0eSxlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGk9ZS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLG89ZS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIix1PWUudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBmKHIsdCxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsdCx7dmFsdWU6bix0OiEwLGk6ITAsd3JpdGFibGU6ITB9KSxyW3RdfXRyeXtmKHt9LCIiKX1jYXRjaChyKXtmPWZ1bmN0aW9uKHIsdCxuKXtyZXR1cm4gclt0XT1ufX1mdW5jdGlvbiBhKHIsdCxuLGUpe3ZhciBpPXQmJnQucHJvdG90eXBlIGluc3RhbmNlb2Ygdj90OnYsbz1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSx1PW5ldyBqKGV8fFtdKTtyZXR1cm4gby5idD1mdW5jdGlvbihyLHQsbil7dmFyIGU9InN1c3BlbmRlZFN0YXJ0IjtyZXR1cm4gZnVuY3Rpb24oaSxvKXtpZigiZXhlY3V0aW5nIj09PWUpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZigiY29tcGxldGVkIj09PWUpe2lmKCJ0aHJvdyI9PT1pKXRocm93IG87cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX1mb3Iobi5tZXRob2Q9aSxuLmd0PW87Oyl7dmFyIHU9bi5TdDtpZih1KXt2YXIgZj1tKHUsbik7aWYoZil7aWYoZj09PXMpY29udGludWU7cmV0dXJuIGZ9fWlmKCJuZXh0Ij09PW4ubWV0aG9kKW4uQXQ9bi5qdD1uLmd0O2Vsc2UgaWYoInRocm93Ij09PW4ubWV0aG9kKXtpZigic3VzcGVuZGVkU3RhcnQiPT09ZSl0aHJvdyBlPSJjb21wbGV0ZWQiLG4uZ3Q7bi5PdChuLmd0KX1lbHNlInJldHVybiI9PT1uLm1ldGhvZCYmbi5rdCgicmV0dXJuIixuLmd0KTtlPSJleGVjdXRpbmciO3ZhciBhPWMocix0LG4pO2lmKCJub3JtYWwiPT09YS50eXBlKXtpZihlPW4uZG9uZT8iY29tcGxldGVkIjoic3VzcGVuZGVkWWllbGQiLGEuZ3Q9PT1zKWNvbnRpbnVlO3JldHVybnt2YWx1ZTphLmd0LGRvbmU6bi5kb25lfX0idGhyb3ciPT09YS50eXBlJiYoZT0iY29tcGxldGVkIixuLm1ldGhvZD0idGhyb3ciLG4uZ3Q9YS5ndCl9fX0ocixuLHUpLG99ZnVuY3Rpb24gYyhyLHQsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGd0OnIuY2FsbCh0LG4pfX1jYXRjaChyKXtyZXR1cm57dHlwZToidGhyb3ciLGd0OnJ9fX1yLndyYXA9YTt2YXIgcz17fTtmdW5jdGlvbiB2KCl7fWZ1bmN0aW9uIGgoKXt9ZnVuY3Rpb24gbCgpe312YXIgZD17fTtmKGQsaSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgeT1PYmplY3QuZ2V0UHJvdG90eXBlT2Ysdz15JiZ5KHkoTyhbXSkpKTt3JiZ3IT09dCYmbi5jYWxsKHcsaSkmJihkPXcpO3ZhciBiPWwucHJvdG90eXBlPXYucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZCk7ZnVuY3Rpb24gcChyKXtbIm5leHQiLCJ0aHJvdyIsInJldHVybiJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe2Yocix0LChmdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5idCh0LHIpfSkpfSkpfWZ1bmN0aW9uIGcocix0KXtmdW5jdGlvbiBlKGksbyx1LGYpe3ZhciBhPWMocltpXSxyLG8pO2lmKCJ0aHJvdyIhPT1hLnR5cGUpe3ZhciBzPWEuZ3Qsdj1zLnZhbHVlO3JldHVybiB2JiYib2JqZWN0Ij09TUEodikmJm4uY2FsbCh2LCJfX2F3YWl0Iik/dC5yZXNvbHZlKHYuRXQpLnRoZW4oKGZ1bmN0aW9uKHIpe2UoIm5leHQiLHIsdSxmKX0pLChmdW5jdGlvbihyKXtlKCJ0aHJvdyIscix1LGYpfSkpOnQucmVzb2x2ZSh2KS50aGVuKChmdW5jdGlvbihyKXtzLnZhbHVlPXIsdShzKX0pLChmdW5jdGlvbihyKXtyZXR1cm4gZSgidGhyb3ciLHIsdSxmKX0pKX1mKGEuZ3QpfXZhciBpO3RoaXMuYnQ9ZnVuY3Rpb24ocixuKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyB0KChmdW5jdGlvbih0LGkpe2UocixuLHQsaSl9KSl9cmV0dXJuIGk9aT9pLnRoZW4obyxvKTpvKCl9fWZ1bmN0aW9uIG0ocix0KXt2YXIgbj1yLml0ZXJhdG9yW3QubWV0aG9kXTtpZih2b2lkIDA9PT1uKXtpZih0LlN0PW51bGwsInRocm93Ij09PXQubWV0aG9kKXtpZihyLml0ZXJhdG9yLnEmJih0Lm1ldGhvZD0icmV0dXJuIix0Lmd0PXZvaWQgMCxtKHIsdCksInRocm93Ij09PXQubWV0aG9kKSlyZXR1cm4gczt0Lm1ldGhvZD0idGhyb3ciLHQuZ3Q9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAndGhyb3cnIG1ldGhvZCIpfXJldHVybiBzfXZhciBlPWMobixyLml0ZXJhdG9yLHQuZ3QpO2lmKCJ0aHJvdyI9PT1lLnR5cGUpcmV0dXJuIHQubWV0aG9kPSJ0aHJvdyIsdC5ndD1lLmd0LHQuU3Q9bnVsbCxzO3ZhciBpPWUuZ3Q7cmV0dXJuIGk/aS5kb25lPyh0W3IuVHRdPWkudmFsdWUsdC5uZXh0PXIueHQsInJldHVybiIhPT10Lm1ldGhvZCYmKHQubWV0aG9kPSJuZXh0Iix0Lmd0PXZvaWQgMCksdC5TdD1udWxsLHMpOmk6KHQubWV0aG9kPSJ0aHJvdyIsdC5ndD1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLHQuU3Q9bnVsbCxzKX1mdW5jdGlvbiBTKHIpe3ZhciB0PXtVdDpyWzBdfTsxIGluIHImJih0Lk10PXJbMV0pLDIgaW4gciYmKHQuSXQ9clsyXSx0Lkx0PXJbM10pLHRoaXMuUHQucHVzaCh0KX1mdW5jdGlvbiBBKHIpe3ZhciB0PXIuX3R8fHt9O3QudHlwZT0ibm9ybWFsIixkZWxldGUgdC5ndCxyLl90PXR9ZnVuY3Rpb24gaihyKXt0aGlzLlB0PVt7VXQ6InJvb3QifV0sci5mb3JFYWNoKFMsdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gTyhyKXtpZihyKXt2YXIgdD1yW2ldO2lmKHQpcmV0dXJuIHQuY2FsbChyKTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygci5uZXh0KXJldHVybiByO2lmKCFpc05hTihyLmxlbmd0aCkpe3ZhciBlPS0xLG89ZnVuY3Rpb24gdCgpe2Zvcig7KytlPHIubGVuZ3RoOylpZihuLmNhbGwocixlKSlyZXR1cm4gdC52YWx1ZT1yW2VdLHQuZG9uZT0hMSx0O3JldHVybiB0LnZhbHVlPXZvaWQgMCx0LmRvbmU9ITAsdH07cmV0dXJuIG8ubmV4dD1vfX1yZXR1cm57bmV4dDprfX1mdW5jdGlvbiBrKCl7cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX1yZXR1cm4gaC5wcm90b3R5cGU9bCxmKGIsImNvbnN0cnVjdG9yIixsKSxmKGwsImNvbnN0cnVjdG9yIixoKSxoLmRpc3BsYXlOYW1lPWYobCx1LCJHZW5lcmF0b3JGdW5jdGlvbiIpLHIuUnQ9ZnVuY3Rpb24ocil7dmFyIHQ9ImZ1bmN0aW9uIj09dHlwZW9mIHImJnIuY29uc3RydWN0b3I7cmV0dXJuISF0JiYodD09PWh8fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0odC5kaXNwbGF5TmFtZXx8dC5uYW1lKSl9LHIubWFyaz1mdW5jdGlvbihyKXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihyLGwpOihyLl9fcHJvdG9fXz1sLGYocix1LCJHZW5lcmF0b3JGdW5jdGlvbiIpKSxyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGIpLHJ9LHIuRnQ9ZnVuY3Rpb24ocil7cmV0dXJue0V0OnJ9fSxwKGcucHJvdG90eXBlKSxmKGcucHJvdG90eXBlLG8sKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksci5OdD1nLHIuYXN5bmM9ZnVuY3Rpb24odCxuLGUsaSxvKXt2b2lkIDA9PT1vJiYobz1Qcm9taXNlKTt2YXIgdT1uZXcgZyhhKHQsbixlLGkpLG8pO3JldHVybiByLlJ0KG4pP3U6dS5uZXh0KCkudGhlbigoZnVuY3Rpb24ocil7cmV0dXJuIHIuZG9uZT9yLnZhbHVlOnUubmV4dCgpfSkpfSxwKGIpLGYoYix1LCJHZW5lcmF0b3IiKSxmKGIsaSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxmKGIsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxyLmtleXM9ZnVuY3Rpb24ocil7dmFyIHQ9W107Zm9yKHZhciBuIGluIHIpdC5wdXNoKG4pO3JldHVybiB0LnJldmVyc2UoKSxmdW5jdGlvbiBuKCl7Zm9yKDt0Lmxlbmd0aDspe3ZhciBlPXQucG9wKCk7aWYoZSBpbiByKXJldHVybiBuLnZhbHVlPWUsbi5kb25lPSExLG59cmV0dXJuIG4uZG9uZT0hMCxufX0sci52YWx1ZXM9TyxqLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aixyZXNldDpmdW5jdGlvbihyKXtpZih0aGlzLkN0PTAsdGhpcy5uZXh0PTAsdGhpcy5BdD10aGlzLmp0PXZvaWQgMCx0aGlzLmRvbmU9ITEsdGhpcy5TdD1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmd0PXZvaWQgMCx0aGlzLlB0LmZvckVhY2goQSksIXIpZm9yKHZhciB0IGluIHRoaXMpInQiPT09dC5jaGFyQXQoMCkmJm4uY2FsbCh0aGlzLHQpJiYhaXNOYU4oK3Quc2xpY2UoMSkpJiYodGhpc1t0XT12b2lkIDApfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciByPXRoaXMuUHRbMF0uX3Q7aWYoInRocm93Ij09PXIudHlwZSl0aHJvdyByLmd0O3JldHVybiB0aGlzLkJ0fSxPdDpmdW5jdGlvbihyKXtpZih0aGlzLmRvbmUpdGhyb3cgcjt2YXIgdD10aGlzO2Z1bmN0aW9uIGUobixlKXtyZXR1cm4gdS50eXBlPSJ0aHJvdyIsdS5ndD1yLHQubmV4dD1uLGUmJih0Lm1ldGhvZD0ibmV4dCIsdC5ndD12b2lkIDApLCEhZX1mb3IodmFyIGk9dGhpcy5QdC5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIG89dGhpcy5QdFtpXSx1PW8uX3Q7aWYoInJvb3QiPT09by5VdClyZXR1cm4gZSgiZW5kIik7aWYoby5VdDw9dGhpcy5DdCl7dmFyIGY9bi5jYWxsKG8sImNhdGNoTG9jIiksYT1uLmNhbGwobywiZmluYWxseUxvYyIpO2lmKGYmJmEpe2lmKHRoaXMuQ3Q8by5NdClyZXR1cm4gZShvLk10LCEwKTtpZih0aGlzLkN0PG8uSXQpcmV0dXJuIGUoby5JdCl9ZWxzZSBpZihmKXtpZih0aGlzLkN0PG8uTXQpcmV0dXJuIGUoby5NdCwhMCl9ZWxzZXtpZighYSl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLkN0PG8uSXQpcmV0dXJuIGUoby5JdCl9fX19LGt0OmZ1bmN0aW9uKHIsdCl7Zm9yKHZhciBlPXRoaXMuUHQubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBpPXRoaXMuUHRbZV07aWYoaS5VdDw9dGhpcy5DdCYmbi5jYWxsKGksImZpbmFsbHlMb2MiKSYmdGhpcy5DdDxpLkl0KXt2YXIgbz1pO2JyZWFrfX1vJiYoImJyZWFrIj09PXJ8fCJjb250aW51ZSI9PT1yKSYmby5VdDw9dCYmdDw9by5JdCYmKG89bnVsbCk7dmFyIHU9bz9vLl90Ont9O3JldHVybiB1LnR5cGU9cix1Lmd0PXQsbz8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1vLkl0LHMpOnRoaXMuY29tcGxldGUodSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHIsdCl7aWYoInRocm93Ij09PXIudHlwZSl0aHJvdyByLmd0O3JldHVybiJicmVhayI9PT1yLnR5cGV8fCJjb250aW51ZSI9PT1yLnR5cGU/dGhpcy5uZXh0PXIuZ3Q6InJldHVybiI9PT1yLnR5cGU/KHRoaXMuQnQ9dGhpcy5ndD1yLmd0LHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT1yLnR5cGUmJnQmJih0aGlzLm5leHQ9dCksc30sZmluaXNoOmZ1bmN0aW9uKHIpe2Zvcih2YXIgdD10aGlzLlB0Lmxlbmd0aC0xO3Q+PTA7LS10KXt2YXIgbj10aGlzLlB0W3RdO2lmKG4uSXQ9PT1yKXJldHVybiB0aGlzLmNvbXBsZXRlKG4uX3Qsbi5MdCksQShuKSxzfX0sY2F0Y2g6ZnVuY3Rpb24ocil7Zm9yKHZhciB0PXRoaXMuUHQubGVuZ3RoLTE7dD49MDstLXQpe3ZhciBuPXRoaXMuUHRbdF07aWYobi5VdD09PXIpe3ZhciBlPW4uX3Q7aWYoInRocm93Ij09PWUudHlwZSl7dmFyIGk9ZS5ndDtBKG4pfXJldHVybiBpfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LEd0OmZ1bmN0aW9uKHIsdCxuKXtyZXR1cm4gdGhpcy5TdD17aXRlcmF0b3I6TyhyKSxUdDp0LHh0Om59LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5ndD12b2lkIDApLHN9fSxyfWZ1bmN0aW9uIExBKHIsdCxuLGUsaSxvLHUpe3RyeXt2YXIgZj1yW29dKHUpLGE9Zi52YWx1ZX1jYXRjaChyKXtyZXR1cm4gdm9pZCBuKHIpfWYuZG9uZT90KGEpOlByb21pc2UucmVzb2x2ZShhKS50aGVuKGUsaSl9ZnVuY3Rpb24gUEEocil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGUsaSl7dmFyIG89ci5hcHBseSh0LG4pO2Z1bmN0aW9uIHUocil7TEEobyxlLGksdSxmLCJuZXh0IixyKX1mdW5jdGlvbiBmKHIpe0xBKG8sZSxpLHUsZiwidGhyb3ciLHIpfXUodm9pZCAwKX0pKX19ZnVuY3Rpb24gX0Eocix0KXtpZighKHIgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBSQShyLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgZT10W25dO2UudD1lLnR8fCExLGUuaT0hMCwidmFsdWUiaW4gZSYmKGUud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGUua2V5LGUpfX1mdW5jdGlvbiBGQShyLHQsbil7cmV0dXJuIHQmJlJBKHIucHJvdG90eXBlLHQpLG4mJlJBKHIsbiksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSkscn1VQS55dD1mdW5jdGlvbigpe2Z1bmN0aW9uIHIodCl7U0EodGhpcyxyKTt2YXIgbj10aGlzLGU9bi5EdD1FQS4kcixpPVtbXSxbXV0sbz1lLnByb3RvdHlwZS5ibG9ja1NpemUvMzI7bi5WdD1bbmV3IGUsbmV3IGVdLHQubGVuZ3RoPm8mJih0PWUuaGFzaCh0KSk7Zm9yKHZhciB1PTA7bz51O3UrKylpWzBdW3VdPTkwOTUyMjQ4Nl50W3VdLGlbMV1bdV09MTU0OTU1NjgyOF50W3VdO24uVnRbMF0udXBkYXRlKGlbMF0pLG4uVnRbMV0udXBkYXRlKGlbMV0pLG4uWXQ9bmV3IGUobi5WdFswXSl9cmV0dXJuIGpBKHIsW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciByPXRoaXM7ci5ZdD1uZXcgci5EdChyLlZ0WzBdKSxyLnp0PSExfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbihyKXt0aGlzLnp0PSEwLHRoaXMuWXQudXBkYXRlKHIpfX0se2tleToiZGlnZXN0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciByPXRoaXMsdD1yLll0LlpyKCksbj1uZXcgci5EdChyLlZ0WzFdKS51cGRhdGUodCkuWnIoKTtyZXR1cm4gci5yZXNldCgpLG59fSx7a2V5OiJlbmNyeXB0Iix2YWx1ZTpmdW5jdGlvbihyKXtpZih0aGlzLnp0KXRocm93IEVycm9yKCJlbmNyeXB0IG9uIGFscmVhZHkgdXBkYXRlZCBobWFjIGNhbGxlZCEiKTtyZXR1cm4gdGhpcy51cGRhdGUociksdGhpcy5kaWdlc3Qocil9fV0pLHJ9KCk7dmFyIE5BPXtuYW1lOiJQQktERjIifSxDQT1PYmplY3QuYXNzaWduKHtoYXNoOntuYW1lOiJITUFDIn19LE5BKSxCQT1PYmplY3QuYXNzaWduKHtpdGVyYXRpb25zOjFlMyxoYXNoOntuYW1lOiJTSEEtMSJ9fSxOQSksR0E9WyJkZXJpdmVCaXRzIl0sREE9WzgsMTIsMTZdLFZBPVsxNiwyNCwzMl0sWUE9WzAsMCwwLDBdLHpBPSJ1bmRlZmluZWQiIT10eXBlb2YgY3J5cHRvLFdBPXpBJiZ2b2lkIDAhPT1jcnlwdG8uc3VidGxlLCRBPWtBLkssSEE9VEEuZXQsS0E9eEEuZnQscUE9VUEueXQsSkE9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQsbixlKXtfQSh0aGlzLHIpLE9iamVjdC5hc3NpZ24odGhpcyx7cGFzc3dvcmQ6dCxzaWduZWQ6bixXdDplLTEsJHQ6bmV3IFVpbnQ4QXJyYXkoMCl9KX12YXIgdDtyZXR1cm4gRkEocixbe2tleToiYXBwZW5kIix2YWx1ZToodD1QQShJQSgpLm1hcmsoKGZ1bmN0aW9uIHIodCl7dmFyIG4sZSxpO3JldHVybiBJQSgpLndyYXAoKGZ1bmN0aW9uKHIpe2Zvcig7Oylzd2l0Y2goci5DdD1yLm5leHQpe2Nhc2UgMDppZighKG49dGhpcykucGFzc3dvcmQpe3IubmV4dD05O2JyZWFrfXJldHVybiBlPXNqKHQsMCxEQVtuLld0XSsyKSxyLm5leHQ9NSxaQShuLGUsbi5wYXNzd29yZCk7Y2FzZSA1Om4ucGFzc3dvcmQ9bnVsbCxuLkh0PW5ldyBLQShuZXcgSEEobi5rZXlzLmtleSksQXJyYXkuZnJvbShZQSkpLG4uS3Q9bmV3IHFBKG4ua2V5cy5xdCksdD1zaih0LERBW24uV3RdKzIpO2Nhc2UgOTpyZXR1cm4gaT1uZXcgVWludDhBcnJheSh0Lmxlbmd0aC0xMC0odC5sZW5ndGgtMTApJTE2KSxyLmt0KCJyZXR1cm4iLFFBKG4sdCxpLDAsMTAsITApKTtjYXNlIDExOmNhc2UiZW5kIjpyZXR1cm4gci5zdG9wKCl9fSkscix0aGlzKX0pKSksZnVuY3Rpb24ocil7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9LHtrZXk6ImZsdXNoIix2YWx1ZTpmdW5jdGlvbigpe3ZhciByPXRoaXMsdD1yLiR0LG49c2oodCwwLHQubGVuZ3RoLTEwKSxlPXNqKHQsdC5sZW5ndGgtMTApLGk9bmV3IFVpbnQ4QXJyYXkoMCk7aWYobi5sZW5ndGgpe3ZhciBvPSRBLldyKG4pO3IuS3QudXBkYXRlKG8pO3ZhciB1PXIuSHQudXBkYXRlKG8pO2k9JEEuenIodSl9dmFyIGY9ITA7aWYoci5zaWduZWQpZm9yKHZhciBhPXNqKCRBLnpyKHIuS3QuZGlnZXN0KCkpLDAsMTApLGM9MDsxMD5jO2MrKylhW2NdIT1lW2NdJiYoZj0hMSk7cmV0dXJue3ZhbGlkOmYsZGF0YTppfX19XSkscn0oKSxYQT1mdW5jdGlvbigpe2Z1bmN0aW9uIHIodCxuKXtfQSh0aGlzLHIpLE9iamVjdC5hc3NpZ24odGhpcyx7cGFzc3dvcmQ6dCxXdDpuLTEsJHQ6bmV3IFVpbnQ4QXJyYXkoMCl9KX12YXIgdDtyZXR1cm4gRkEocixbe2tleToiYXBwZW5kIix2YWx1ZToodD1QQShJQSgpLm1hcmsoKGZ1bmN0aW9uIHIodCl7dmFyIG4sZSxpO3JldHVybiBJQSgpLndyYXAoKGZ1bmN0aW9uKHIpe2Zvcig7Oylzd2l0Y2goci5DdD1yLm5leHQpe2Nhc2UgMDppZihuPXRoaXMsZT1uZXcgVWludDhBcnJheSgwKSwhbi5wYXNzd29yZCl7ci5uZXh0PTk7YnJlYWt9cmV0dXJuIHIubmV4dD01LHRqKG4sbi5wYXNzd29yZCk7Y2FzZSA1OmU9ci5BdCxuLnBhc3N3b3JkPW51bGwsbi5IdD1uZXcgS0EobmV3IEhBKG4ua2V5cy5rZXkpLEFycmF5LmZyb20oWUEpKSxuLkt0PW5ldyBxQShuLmtleXMucXQpO2Nhc2UgOTpyZXR1cm4oaT1uZXcgVWludDhBcnJheShlLmxlbmd0aCt0Lmxlbmd0aC10Lmxlbmd0aCUxNikpLnNldChlLDApLHIua3QoInJldHVybiIsUUEobix0LGksZS5sZW5ndGgsMCkpO2Nhc2UgMTI6Y2FzZSJlbmQiOnJldHVybiByLnN0b3AoKX19KSxyLHRoaXMpfSkpKSxmdW5jdGlvbihyKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToiZmx1c2giLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHI9dGhpcyx0PW5ldyBVaW50OEFycmF5KDApO2lmKHIuJHQubGVuZ3RoKXt2YXIgbj1yLkh0LnVwZGF0ZSgkQS5XcihyLiR0KSk7ci5LdC51cGRhdGUobiksdD0kQS56cihuKX12YXIgZT1zaigkQS56cihyLkt0LmRpZ2VzdCgpKSwwLDEwKTtyZXR1cm57ZGF0YTpjaih0LGUpLHNpZ25hdHVyZTplfX19XSkscn0oKTtmdW5jdGlvbiBRQShyLHQsbixlLGksbyl7dmFyIHUsZj10Lmxlbmd0aC1pO2ZvcihyLiR0Lmxlbmd0aCYmKHQ9Y2ooci4kdCx0KSxuPWZ1bmN0aW9uKHIsdCl7aWYodCYmdD5yLmxlbmd0aCl7dmFyIG49cjsocj1uZXcgVWludDhBcnJheSh0KSkuc2V0KG4sMCl9cmV0dXJuIHJ9KG4sZi1mJTE2KSksdT0wO2YtMTY+PXU7dSs9MTYpe3ZhciBhPSRBLldyKHNqKHQsdSx1KzE2KSk7byYmci5LdC51cGRhdGUoYSk7dmFyIGM9ci5IdC51cGRhdGUoYSk7b3x8ci5LdC51cGRhdGUoYyksbi5zZXQoJEEuenIoYyksdStlKX1yZXR1cm4gci4kdD1zaih0LHUpLG59ZnVuY3Rpb24gWkEocix0LG4pe3JldHVybiByai5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcmooKXtyZXR1cm4gcmo9UEEoSUEoKS5tYXJrKChmdW5jdGlvbiByKHQsbixlKXt2YXIgaSxvO3JldHVybiBJQSgpLndyYXAoKGZ1bmN0aW9uKHIpe2Zvcig7Oylzd2l0Y2goci5DdD1yLm5leHQpe2Nhc2UgMDpyZXR1cm4gci5uZXh0PTIsZWoodCxlLHNqKG4sMCxEQVt0Lld0XSkpO2Nhc2UgMjppZihpPXNqKG4sREFbdC5XdF0pLChvPXQua2V5cy5wYXNzd29yZFZlcmlmaWNhdGlvbilbMF09PWlbMF0mJm9bMV09PWlbMV0pe3IubmV4dD02O2JyZWFrfXRocm93IEVycm9yKCJJbnZhbGlkIHBhc3dvcmQiKTtjYXNlIDY6Y2FzZSJlbmQiOnJldHVybiByLnN0b3AoKX19KSxyKX0pKSkscmouYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHRqKHIsdCl7cmV0dXJuIG5qLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBuaigpe3JldHVybiBuaj1QQShJQSgpLm1hcmsoKGZ1bmN0aW9uIHIodCxuKXt2YXIgZTtyZXR1cm4gSUEoKS53cmFwKChmdW5jdGlvbihyKXtmb3IoOzspc3dpdGNoKHIuQ3Q9ci5uZXh0KXtjYXNlIDA6cmV0dXJuIGU9b2oobmV3IFVpbnQ4QXJyYXkoREFbdC5XdF0pKSxyLm5leHQ9Myxlaih0LG4sZSk7Y2FzZSAzOnJldHVybiByLmt0KCJyZXR1cm4iLGNqKGUsdC5rZXlzLnBhc3N3b3JkVmVyaWZpY2F0aW9uKSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gci5zdG9wKCl9fSkscil9KSkpLG5qLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBlaihyLHQsbil7cmV0dXJuIGlqLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBpaigpe3JldHVybihpaj1QQShJQSgpLm1hcmsoKGZ1bmN0aW9uIHIodCxuLGUpe3ZhciBpLG8sdSxmO3JldHVybiBJQSgpLndyYXAoKGZ1bmN0aW9uKHIpe2Zvcig7Oylzd2l0Y2goci5DdD1yLm5leHQpe2Nhc2UgMDpyZXR1cm4gaT1ZUyhuKSxyLm5leHQ9Myx1aigicmF3IixpLENBLCExLEdBKTtjYXNlIDM6cmV0dXJuIG89ci5BdCxyLm5leHQ9NixmaihPYmplY3QuYXNzaWduKHtzYWx0OmV9LEJBKSxvLDgqKDIqVkFbdC5XdF0rMikpO2Nhc2UgNjp1PXIuQXQsZj1uZXcgVWludDhBcnJheSh1KSx0LmtleXM9e2tleTokQS5XcihzaihmLDAsVkFbdC5XdF0pKSxxdDokQS5XcihzaihmLFZBW3QuV3RdLDIqVkFbdC5XdF0pKSxwYXNzd29yZFZlcmlmaWNhdGlvbjpzaihmLDIqVkFbdC5XdF0pfTtjYXNlIDk6Y2FzZSJlbmQiOnJldHVybiByLnN0b3AoKX19KSxyKX0pKSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBvaihyKXtyZXR1cm4gekEmJiJmdW5jdGlvbiI9PXR5cGVvZiBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzP2NyeXB0by5nZXRSYW5kb21WYWx1ZXMocik6ZnVuY3Rpb24ocil7Zm9yKHZhciB0LG49bmV3IFVpbnQzMkFycmF5KHIuYnVmZmVyKSxlPWZ1bmN0aW9uKHIpe3ZhciB0PTk4NzY1NDMyMSxuPTQyOTQ5NjcyOTU7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuKCgoKHQ9MzY5NjkqKDY1NTM1JnQpKyh0Pj4xNikmbik8PDE2KSsocj0xOGUzKig2NTUzNSZyKSsocj4+MTYpJm4pJm4pLzQyOTQ5NjcyOTYrLjUpKihNYXRoLnJhbmRvbSgpPi41PzE6LTEpfX0saT0wO2k8ci5sZW5ndGg7aSs9NCl7dmFyIG89ZSg0Mjk0OTY3Mjk2Kih0fHxNYXRoLnJhbmRvbSgpKSk7dD05ODc2NTQwNzEqbygpLG5baS80XT00Mjk0OTY3Mjk2Km8oKXwwfXJldHVybiByfShyKX1mdW5jdGlvbiB1aihyLHQsbixlLGkpe3JldHVybiB6QSYmV0EmJiJmdW5jdGlvbiI9PXR5cGVvZiBjcnlwdG8uc3VidGxlLmltcG9ydEtleT9jcnlwdG8uc3VidGxlLmltcG9ydEtleShyLHQsbixlLGkpOlVBLmltcG9ydEtleSh0KX1mdW5jdGlvbiBmaihyLHQsbil7cmV0dXJuIGFqLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBhaigpe3JldHVybihhaj1QQShJQSgpLm1hcmsoKGZ1bmN0aW9uIHIodCxuLGUpe3JldHVybiBJQSgpLndyYXAoKGZ1bmN0aW9uKHIpe2Zvcig7Oylzd2l0Y2goci5DdD1yLm5leHQpe2Nhc2UgMDppZighekF8fCFXQXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyl7ci5uZXh0PTY7YnJlYWt9cmV0dXJuIHIubmV4dD0zLGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh0LG4sZSk7Y2FzZSAzOnJldHVybiByLmt0KCJyZXR1cm4iLHIuQXQpO2Nhc2UgNjpyZXR1cm4gci5rdCgicmV0dXJuIixVQS53dChuLHQuc2FsdCxCQS5pdGVyYXRpb25zLGUpKTtjYXNlIDc6Y2FzZSJlbmQiOnJldHVybiByLnN0b3AoKX19KSxyKX0pKSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBjaihyLHQpe3ZhciBuPXI7cmV0dXJuIHIubGVuZ3RoK3QubGVuZ3RoJiYoKG49bmV3IFVpbnQ4QXJyYXkoci5sZW5ndGgrdC5sZW5ndGgpKS5zZXQociwwKSxuLnNldCh0LHIubGVuZ3RoKSksbn1mdW5jdGlvbiBzaihyLHQsbil7cmV0dXJuIHIuc3ViYXJyYXkodCxuKX12YXIgdmo9TWF0aC5pbXVsO2Z1bmN0aW9uIGhqKHIsdCl7aWYoIShyIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gbGoocix0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGU9dFtuXTtlLnQ9ZS50fHwhMSxlLmk9ITAsInZhbHVlImluIGUmJihlLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocixlLmtleSxlKX19ZnVuY3Rpb24gZGoocix0LG4pe3JldHVybiB0JiZsaihyLnByb3RvdHlwZSx0KSxuJiZsaihyLG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHJ9QmUoe3RhcmdldDoiTWF0aCIsQzohMCxHOmkoKGZ1bmN0aW9uKCl7cmV0dXJuLTUhPXZqKDQyOTQ5NjcyOTUsNSl8fDIhPXZqLmxlbmd0aH0pKX0se2ltdWw6ZnVuY3Rpb24ocix0KXt2YXIgbj02NTUzNSxlPStyLGk9K3Qsbz1uJmUsdT1uJmk7cmV0dXJuIDB8byp1KygobiZlPj4+MTYpKnUrbyoobiZpPj4+MTYpPDwxNj4+PjApfX0pO3ZhciB5aj1mdW5jdGlvbigpe2Z1bmN0aW9uIHIodCxuKXtoaih0aGlzLHIpLE9iamVjdC5hc3NpZ24odGhpcyx7cGFzc3dvcmQ6dCxwYXNzd29yZFZlcmlmaWNhdGlvbjpufSksZ2oodGhpcyx0KX1yZXR1cm4gZGoocixbe2tleToiYXBwZW5kIix2YWx1ZTpmdW5jdGlvbihyKXt2YXIgdD10aGlzO2lmKHQucGFzc3dvcmQpe3ZhciBuPWJqKHQsci5zdWJhcnJheSgwLDEyKSk7aWYodC5wYXNzd29yZD1udWxsLG5bMTFdIT10LnBhc3N3b3JkVmVyaWZpY2F0aW9uKXRocm93IEVycm9yKCJJbnZhbGlkIHBhc3dvcmQiKTtyPXIuc3ViYXJyYXkoMTIpfXJldHVybiBiaih0LHIpfX0se2tleToiZmx1c2giLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue3ZhbGlkOiEwLGRhdGE6bmV3IFVpbnQ4QXJyYXkoMCl9fX1dKSxyfSgpLHdqPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0LG4pe2hqKHRoaXMsciksT2JqZWN0LmFzc2lnbih0aGlzLHtwYXNzd29yZDp0LHBhc3N3b3JkVmVyaWZpY2F0aW9uOm59KSxnaih0aGlzLHQpfXJldHVybiBkaihyLFt7a2V5OiJhcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKHIpe3ZhciB0LG4sZT10aGlzO2lmKGUucGFzc3dvcmQpe2UucGFzc3dvcmQ9bnVsbDt2YXIgaT1jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KDEyKSk7aVsxMV09ZS5wYXNzd29yZFZlcmlmaWNhdGlvbiwodD1uZXcgVWludDhBcnJheShyLmxlbmd0aCtpLmxlbmd0aCkpLnNldChwaihlLGkpLDApLG49MTJ9ZWxzZSB0PW5ldyBVaW50OEFycmF5KHIubGVuZ3RoKSxuPTA7cmV0dXJuIHQuc2V0KHBqKGUsciksbiksdH19LHtrZXk6ImZsdXNoIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybntkYXRhOm5ldyBVaW50OEFycmF5KDApfX19XSkscn0oKTtmdW5jdGlvbiBiaihyLHQpe2Zvcih2YXIgbj1uZXcgVWludDhBcnJheSh0Lmxlbmd0aCksZT0wO2U8dC5sZW5ndGg7ZSsrKW5bZV09U2oociledFtlXSxtaihyLG5bZV0pO3JldHVybiBufWZ1bmN0aW9uIHBqKHIsdCl7Zm9yKHZhciBuPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKSxlPTA7ZTx0Lmxlbmd0aDtlKyspbltlXT1TaihyKV50W2VdLG1qKHIsdFtlXSk7cmV0dXJuIG59ZnVuY3Rpb24gZ2oocix0KXtyLmtleXM9WzMwNTQxOTg5Niw1OTE3NTEwNDksODc4MDgyMTkyXSxyLkp0PW5ldyBVUyhyLmtleXNbMF0pLHIuWHQ9bmV3IFVTKHIua2V5c1syXSk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspbWoocix0LmNoYXJDb2RlQXQobikpfWZ1bmN0aW9uIG1qKHIsdCl7ci5KdC5hcHBlbmQoW3RdKSxyLmtleXNbMF09fnIuSnQuZ2V0KCksci5rZXlzWzFdPWpqKHIua2V5c1sxXStBaihyLmtleXNbMF0pKSxyLmtleXNbMV09amooTWF0aC5pbXVsKHIua2V5c1sxXSwxMzQ3NzU4MTMpKzEpLHIuWHQuYXBwZW5kKFtyLmtleXNbMV0+Pj4yNF0pLHIua2V5c1syXT1+ci5YdC5nZXQoKX1mdW5jdGlvbiBTaihyKXt2YXIgdD0yfHIua2V5c1syXTtyZXR1cm4gQWooTWF0aC5pbXVsKHQsMV50KT4+PjgpfWZ1bmN0aW9uIEFqKHIpe3JldHVybiAyNTUmcn1mdW5jdGlvbiBqaihyKXtyZXR1cm4gNDI5NDk2NzI5NSZyfWZ1bmN0aW9uIE9qKHIpe3JldHVybiBPaj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihyKXtyZXR1cm4gdHlwZW9mIHJ9OmZ1bmN0aW9uKHIpe3JldHVybiByJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZyLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZyIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2Ygcn0sT2oocil9ZnVuY3Rpb24ga2ooKXsvKiEgcmVnZW5lcmF0b3ItcnVudGltZSAtLSBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy4gLS0gbGljZW5zZSAoTUlUKTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlZ2VuZXJhdG9yL2Jsb2IvbWFpbi9MSUNFTlNFICova2o9ZnVuY3Rpb24oKXtyZXR1cm4gcn07dmFyIHI9e30sdD1PYmplY3QucHJvdG90eXBlLG49dC5oYXNPd25Qcm9wZXJ0eSxlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2w/U3ltYm9sOnt9LGk9ZS5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiLG89ZS5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIix1PWUudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBmKHIsdCxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsdCx7dmFsdWU6bix0OiEwLGk6ITAsd3JpdGFibGU6ITB9KSxyW3RdfXRyeXtmKHt9LCIiKX1jYXRjaChyKXtmPWZ1bmN0aW9uKHIsdCxuKXtyZXR1cm4gclt0XT1ufX1mdW5jdGlvbiBhKHIsdCxuLGUpe3ZhciBpPXQmJnQucHJvdG90eXBlIGluc3RhbmNlb2Ygdj90OnYsbz1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSx1PW5ldyBqKGV8fFtdKTtyZXR1cm4gby5idD1mdW5jdGlvbihyLHQsbil7dmFyIGU9InN1c3BlbmRlZFN0YXJ0IjtyZXR1cm4gZnVuY3Rpb24oaSxvKXtpZigiZXhlY3V0aW5nIj09PWUpdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZigiY29tcGxldGVkIj09PWUpe2lmKCJ0aHJvdyI9PT1pKXRocm93IG87cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX1mb3Iobi5tZXRob2Q9aSxuLmd0PW87Oyl7dmFyIHU9bi5TdDtpZih1KXt2YXIgZj1tKHUsbik7aWYoZil7aWYoZj09PXMpY29udGludWU7cmV0dXJuIGZ9fWlmKCJuZXh0Ij09PW4ubWV0aG9kKW4uQXQ9bi5qdD1uLmd0O2Vsc2UgaWYoInRocm93Ij09PW4ubWV0aG9kKXtpZigic3VzcGVuZGVkU3RhcnQiPT09ZSl0aHJvdyBlPSJjb21wbGV0ZWQiLG4uZ3Q7bi5PdChuLmd0KX1lbHNlInJldHVybiI9PT1uLm1ldGhvZCYmbi5rdCgicmV0dXJuIixuLmd0KTtlPSJleGVjdXRpbmciO3ZhciBhPWMocix0LG4pO2lmKCJub3JtYWwiPT09YS50eXBlKXtpZihlPW4uZG9uZT8iY29tcGxldGVkIjoic3VzcGVuZGVkWWllbGQiLGEuZ3Q9PT1zKWNvbnRpbnVlO3JldHVybnt2YWx1ZTphLmd0LGRvbmU6bi5kb25lfX0idGhyb3ciPT09YS50eXBlJiYoZT0iY29tcGxldGVkIixuLm1ldGhvZD0idGhyb3ciLG4uZ3Q9YS5ndCl9fX0ocixuLHUpLG99ZnVuY3Rpb24gYyhyLHQsbil7dHJ5e3JldHVybnt0eXBlOiJub3JtYWwiLGd0OnIuY2FsbCh0LG4pfX1jYXRjaChyKXtyZXR1cm57dHlwZToidGhyb3ciLGd0OnJ9fX1yLndyYXA9YTt2YXIgcz17fTtmdW5jdGlvbiB2KCl7fWZ1bmN0aW9uIGgoKXt9ZnVuY3Rpb24gbCgpe312YXIgZD17fTtmKGQsaSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgeT1PYmplY3QuZ2V0UHJvdG90eXBlT2Ysdz15JiZ5KHkoTyhbXSkpKTt3JiZ3IT09dCYmbi5jYWxsKHcsaSkmJihkPXcpO3ZhciBiPWwucHJvdG90eXBlPXYucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZCk7ZnVuY3Rpb24gcChyKXtbIm5leHQiLCJ0aHJvdyIsInJldHVybiJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe2Yocix0LChmdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5idCh0LHIpfSkpfSkpfWZ1bmN0aW9uIGcocix0KXtmdW5jdGlvbiBlKGksbyx1LGYpe3ZhciBhPWMocltpXSxyLG8pO2lmKCJ0aHJvdyIhPT1hLnR5cGUpe3ZhciBzPWEuZ3Qsdj1zLnZhbHVlO3JldHVybiB2JiYib2JqZWN0Ij09T2oodikmJm4uY2FsbCh2LCJfX2F3YWl0Iik/dC5yZXNvbHZlKHYuRXQpLnRoZW4oKGZ1bmN0aW9uKHIpe2UoIm5leHQiLHIsdSxmKX0pLChmdW5jdGlvbihyKXtlKCJ0aHJvdyIscix1LGYpfSkpOnQucmVzb2x2ZSh2KS50aGVuKChmdW5jdGlvbihyKXtzLnZhbHVlPXIsdShzKX0pLChmdW5jdGlvbihyKXtyZXR1cm4gZSgidGhyb3ciLHIsdSxmKX0pKX1mKGEuZ3QpfXZhciBpO3RoaXMuYnQ9ZnVuY3Rpb24ocixuKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyB0KChmdW5jdGlvbih0LGkpe2UocixuLHQsaSl9KSl9cmV0dXJuIGk9aT9pLnRoZW4obyxvKTpvKCl9fWZ1bmN0aW9uIG0ocix0KXt2YXIgbj1yLml0ZXJhdG9yW3QubWV0aG9kXTtpZih2b2lkIDA9PT1uKXtpZih0LlN0PW51bGwsInRocm93Ij09PXQubWV0aG9kKXtpZihyLml0ZXJhdG9yLnEmJih0Lm1ldGhvZD0icmV0dXJuIix0Lmd0PXZvaWQgMCxtKHIsdCksInRocm93Ij09PXQubWV0aG9kKSlyZXR1cm4gczt0Lm1ldGhvZD0idGhyb3ciLHQuZ3Q9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAndGhyb3cnIG1ldGhvZCIpfXJldHVybiBzfXZhciBlPWMobixyLml0ZXJhdG9yLHQuZ3QpO2lmKCJ0aHJvdyI9PT1lLnR5cGUpcmV0dXJuIHQubWV0aG9kPSJ0aHJvdyIsdC5ndD1lLmd0LHQuU3Q9bnVsbCxzO3ZhciBpPWUuZ3Q7cmV0dXJuIGk/aS5kb25lPyh0W3IuVHRdPWkudmFsdWUsdC5uZXh0PXIueHQsInJldHVybiIhPT10Lm1ldGhvZCYmKHQubWV0aG9kPSJuZXh0Iix0Lmd0PXZvaWQgMCksdC5TdD1udWxsLHMpOmk6KHQubWV0aG9kPSJ0aHJvdyIsdC5ndD1uZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLHQuU3Q9bnVsbCxzKX1mdW5jdGlvbiBTKHIpe3ZhciB0PXtVdDpyWzBdfTsxIGluIHImJih0Lk10PXJbMV0pLDIgaW4gciYmKHQuSXQ9clsyXSx0Lkx0PXJbM10pLHRoaXMuUHQucHVzaCh0KX1mdW5jdGlvbiBBKHIpe3ZhciB0PXIuX3R8fHt9O3QudHlwZT0ibm9ybWFsIixkZWxldGUgdC5ndCxyLl90PXR9ZnVuY3Rpb24gaihyKXt0aGlzLlB0PVt7VXQ6InJvb3QifV0sci5mb3JFYWNoKFMsdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gTyhyKXtpZihyKXt2YXIgdD1yW2ldO2lmKHQpcmV0dXJuIHQuY2FsbChyKTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygci5uZXh0KXJldHVybiByO2lmKCFpc05hTihyLmxlbmd0aCkpe3ZhciBlPS0xLG89ZnVuY3Rpb24gdCgpe2Zvcig7KytlPHIubGVuZ3RoOylpZihuLmNhbGwocixlKSlyZXR1cm4gdC52YWx1ZT1yW2VdLHQuZG9uZT0hMSx0O3JldHVybiB0LnZhbHVlPXZvaWQgMCx0LmRvbmU9ITAsdH07cmV0dXJuIG8ubmV4dD1vfX1yZXR1cm57bmV4dDprfX1mdW5jdGlvbiBrKCl7cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX1yZXR1cm4gaC5wcm90b3R5cGU9bCxmKGIsImNvbnN0cnVjdG9yIixsKSxmKGwsImNvbnN0cnVjdG9yIixoKSxoLmRpc3BsYXlOYW1lPWYobCx1LCJHZW5lcmF0b3JGdW5jdGlvbiIpLHIuUnQ9ZnVuY3Rpb24ocil7dmFyIHQ9ImZ1bmN0aW9uIj09dHlwZW9mIHImJnIuY29uc3RydWN0b3I7cmV0dXJuISF0JiYodD09PWh8fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0odC5kaXNwbGF5TmFtZXx8dC5uYW1lKSl9LHIubWFyaz1mdW5jdGlvbihyKXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihyLGwpOihyLl9fcHJvdG9fXz1sLGYocix1LCJHZW5lcmF0b3JGdW5jdGlvbiIpKSxyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGIpLHJ9LHIuRnQ9ZnVuY3Rpb24ocil7cmV0dXJue0V0OnJ9fSxwKGcucHJvdG90eXBlKSxmKGcucHJvdG90eXBlLG8sKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksci5OdD1nLHIuYXN5bmM9ZnVuY3Rpb24odCxuLGUsaSxvKXt2b2lkIDA9PT1vJiYobz1Qcm9taXNlKTt2YXIgdT1uZXcgZyhhKHQsbixlLGkpLG8pO3JldHVybiByLlJ0KG4pP3U6dS5uZXh0KCkudGhlbigoZnVuY3Rpb24ocil7cmV0dXJuIHIuZG9uZT9yLnZhbHVlOnUubmV4dCgpfSkpfSxwKGIpLGYoYix1LCJHZW5lcmF0b3IiKSxmKGIsaSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxmKGIsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIn0pKSxyLmtleXM9ZnVuY3Rpb24ocil7dmFyIHQ9W107Zm9yKHZhciBuIGluIHIpdC5wdXNoKG4pO3JldHVybiB0LnJldmVyc2UoKSxmdW5jdGlvbiBuKCl7Zm9yKDt0Lmxlbmd0aDspe3ZhciBlPXQucG9wKCk7aWYoZSBpbiByKXJldHVybiBuLnZhbHVlPWUsbi5kb25lPSExLG59cmV0dXJuIG4uZG9uZT0hMCxufX0sci52YWx1ZXM9TyxqLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aixyZXNldDpmdW5jdGlvbihyKXtpZih0aGlzLkN0PTAsdGhpcy5uZXh0PTAsdGhpcy5BdD10aGlzLmp0PXZvaWQgMCx0aGlzLmRvbmU9ITEsdGhpcy5TdD1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmd0PXZvaWQgMCx0aGlzLlB0LmZvckVhY2goQSksIXIpZm9yKHZhciB0IGluIHRoaXMpInQiPT09dC5jaGFyQXQoMCkmJm4uY2FsbCh0aGlzLHQpJiYhaXNOYU4oK3Quc2xpY2UoMSkpJiYodGhpc1t0XT12b2lkIDApfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciByPXRoaXMuUHRbMF0uX3Q7aWYoInRocm93Ij09PXIudHlwZSl0aHJvdyByLmd0O3JldHVybiB0aGlzLkJ0fSxPdDpmdW5jdGlvbihyKXtpZih0aGlzLmRvbmUpdGhyb3cgcjt2YXIgdD10aGlzO2Z1bmN0aW9uIGUobixlKXtyZXR1cm4gdS50eXBlPSJ0aHJvdyIsdS5ndD1yLHQubmV4dD1uLGUmJih0Lm1ldGhvZD0ibmV4dCIsdC5ndD12b2lkIDApLCEhZX1mb3IodmFyIGk9dGhpcy5QdC5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIG89dGhpcy5QdFtpXSx1PW8uX3Q7aWYoInJvb3QiPT09by5VdClyZXR1cm4gZSgiZW5kIik7aWYoby5VdDw9dGhpcy5DdCl7dmFyIGY9bi5jYWxsKG8sImNhdGNoTG9jIiksYT1uLmNhbGwobywiZmluYWxseUxvYyIpO2lmKGYmJmEpe2lmKHRoaXMuQ3Q8by5NdClyZXR1cm4gZShvLk10LCEwKTtpZih0aGlzLkN0PG8uSXQpcmV0dXJuIGUoby5JdCl9ZWxzZSBpZihmKXtpZih0aGlzLkN0PG8uTXQpcmV0dXJuIGUoby5NdCwhMCl9ZWxzZXtpZighYSl0aHJvdyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLkN0PG8uSXQpcmV0dXJuIGUoby5JdCl9fX19LGt0OmZ1bmN0aW9uKHIsdCl7Zm9yKHZhciBlPXRoaXMuUHQubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciBpPXRoaXMuUHRbZV07aWYoaS5VdDw9dGhpcy5DdCYmbi5jYWxsKGksImZpbmFsbHlMb2MiKSYmdGhpcy5DdDxpLkl0KXt2YXIgbz1pO2JyZWFrfX1vJiYoImJyZWFrIj09PXJ8fCJjb250aW51ZSI9PT1yKSYmby5VdDw9dCYmdDw9by5JdCYmKG89bnVsbCk7dmFyIHU9bz9vLl90Ont9O3JldHVybiB1LnR5cGU9cix1Lmd0PXQsbz8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1vLkl0LHMpOnRoaXMuY29tcGxldGUodSl9LGNvbXBsZXRlOmZ1bmN0aW9uKHIsdCl7aWYoInRocm93Ij09PXIudHlwZSl0aHJvdyByLmd0O3JldHVybiJicmVhayI9PT1yLnR5cGV8fCJjb250aW51ZSI9PT1yLnR5cGU/dGhpcy5uZXh0PXIuZ3Q6InJldHVybiI9PT1yLnR5cGU/KHRoaXMuQnQ9dGhpcy5ndD1yLmd0LHRoaXMubWV0aG9kPSJyZXR1cm4iLHRoaXMubmV4dD0iZW5kIik6Im5vcm1hbCI9PT1yLnR5cGUmJnQmJih0aGlzLm5leHQ9dCksc30sZmluaXNoOmZ1bmN0aW9uKHIpe2Zvcih2YXIgdD10aGlzLlB0Lmxlbmd0aC0xO3Q+PTA7LS10KXt2YXIgbj10aGlzLlB0W3RdO2lmKG4uSXQ9PT1yKXJldHVybiB0aGlzLmNvbXBsZXRlKG4uX3Qsbi5MdCksQShuKSxzfX0sY2F0Y2g6ZnVuY3Rpb24ocil7Zm9yKHZhciB0PXRoaXMuUHQubGVuZ3RoLTE7dD49MDstLXQpe3ZhciBuPXRoaXMuUHRbdF07aWYobi5VdD09PXIpe3ZhciBlPW4uX3Q7aWYoInRocm93Ij09PWUudHlwZSl7dmFyIGk9ZS5ndDtBKG4pfXJldHVybiBpfX10aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LEd0OmZ1bmN0aW9uKHIsdCxuKXtyZXR1cm4gdGhpcy5TdD17aXRlcmF0b3I6TyhyKSxUdDp0LHh0Om59LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5ndD12b2lkIDApLHN9fSxyfWZ1bmN0aW9uIEVqKHIsdCxuLGUsaSxvLHUpe3RyeXt2YXIgZj1yW29dKHUpLGE9Zi52YWx1ZX1jYXRjaChyKXtyZXR1cm4gdm9pZCBuKHIpfWYuZG9uZT90KGEpOlByb21pc2UucmVzb2x2ZShhKS50aGVuKGUsaSl9ZnVuY3Rpb24gVGoocil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGUsaSl7dmFyIG89ci5hcHBseSh0LG4pO2Z1bmN0aW9uIHUocil7RWoobyxlLGksdSxmLCJuZXh0IixyKX1mdW5jdGlvbiBmKHIpe0VqKG8sZSxpLHUsZiwidGhyb3ciLHIpfXUodm9pZCAwKX0pKX19ZnVuY3Rpb24geGoocix0KXtpZighKHIgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBVaihyLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgZT10W25dO2UudD1lLnR8fCExLGUuaT0hMCwidmFsdWUiaW4gZSYmKGUud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGUua2V5LGUpfX1mdW5jdGlvbiBNaihyLHQsbil7cmV0dXJuIHQmJlVqKHIucHJvdG90eXBlLHQpLG4mJlVqKHIsbiksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSkscn12YXIgSWo9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQsbixlKXt2YXIgaT1uLnNpZ25hdHVyZSxvPW4ucGFzc3dvcmQsdT1uLnNpZ25lZCxmPW4uY29tcHJlc3NlZCxhPW4uemlwQ3J5cHRvLGM9bi5wYXNzd29yZFZlcmlmaWNhdGlvbixzPW4uZW5jcnlwdGlvblN0cmVuZ3RoLHY9ZS5RdDt4aih0aGlzLHIpO3ZhciBoPSEhbztPYmplY3QuYXNzaWduKHRoaXMse3NpZ25hdHVyZTppLGVuY3J5cHRlZDpoLHNpZ25lZDp1LGNvbXByZXNzZWQ6ZixadDpmJiZuZXcgdCh7UXQ6dn0pLHJuOnUmJm5ldyBVUyx6aXBDcnlwdG86YSxkZWNyeXB0OmgmJmE/bmV3IHlqKG8sYyk6bmV3IEpBKG8sdSxzKX0pfXZhciB0O3JldHVybiBNaihyLFt7a2V5OiJhcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHI9VGooa2ooKS5tYXJrKChmdW5jdGlvbiByKHQpe3ZhciBuO3JldHVybiBraigpLndyYXAoKGZ1bmN0aW9uKHIpe2Zvcig7Oylzd2l0Y2goci5DdD1yLm5leHQpe2Nhc2UgMDppZighKG49dGhpcykuZW5jcnlwdGVkfHwhdC5sZW5ndGgpe3IubmV4dD01O2JyZWFrfXJldHVybiByLm5leHQ9NCxuLmRlY3J5cHQuYXBwZW5kKHQpO2Nhc2UgNDp0PXIuQXQ7Y2FzZSA1OmlmKCFuLmNvbXByZXNzZWR8fCF0Lmxlbmd0aCl7ci5uZXh0PTk7YnJlYWt9cmV0dXJuIHIubmV4dD04LG4uWnQuYXBwZW5kKHQpO2Nhc2UgODp0PXIuQXQ7Y2FzZSA5OnJldHVybighbi5lbmNyeXB0ZWR8fG4uemlwQ3J5cHRvKSYmbi5zaWduZWQmJnQubGVuZ3RoJiZuLnJuLmFwcGVuZCh0KSxyLmt0KCJyZXR1cm4iLHQpO2Nhc2UgMTE6Y2FzZSJlbmQiOnJldHVybiByLnN0b3AoKX19KSxyLHRoaXMpfSkpKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKX0se2tleToiZmx1c2giLHZhbHVlOih0PVRqKGtqKCkubWFyaygoZnVuY3Rpb24gcigpe3ZhciB0LG4sZSxpLG87cmV0dXJuIGtqKCkud3JhcCgoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLkN0PXIubmV4dCl7Y2FzZSAwOmlmKHQ9dGhpcyxlPW5ldyBVaW50OEFycmF5KDApLCF0LmVuY3J5cHRlZCl7ci5uZXh0PTc7YnJlYWt9aWYoKGk9dC5kZWNyeXB0LmZsdXNoKCkpLnZhbGlkKXtyLm5leHQ9NjticmVha310aHJvdyBFcnJvcigiSW52YWxpZCBzaWduYXR1cmUiKTtjYXNlIDY6ZT1pLmRhdGE7Y2FzZSA3OmlmKHQuZW5jcnlwdGVkJiYhdC56aXBDcnlwdG98fCF0LnNpZ25lZCl7ci5uZXh0PTEzO2JyZWFrfWlmKG89bmV3IERhdGFWaWV3KG5ldyBVaW50OEFycmF5KDQpLmJ1ZmZlciksbj10LnJuLmdldCgpLG8uc2V0VWludDMyKDAsbiksdC5zaWduYXR1cmU9PW8uZ2V0VWludDMyKDAsITEpKXtyLm5leHQ9MTM7YnJlYWt9dGhyb3cgRXJyb3IoIkludmFsaWQgc2lnbmF0dXJlIik7Y2FzZSAxMzppZighdC5jb21wcmVzc2VkKXtyLm5leHQ9MjI7YnJlYWt9cmV0dXJuIHIubmV4dD0xNix0Llp0LmFwcGVuZChlKTtjYXNlIDE2OmlmKHIudG49ci5BdCxyLnRuKXtyLm5leHQ9MTk7YnJlYWt9ci50bj1uZXcgVWludDhBcnJheSgwKTtjYXNlIDE5OnJldHVybiBlPXIudG4sci5uZXh0PTIyLHQuWnQuZmx1c2goKTtjYXNlIDIyOnJldHVybiByLmt0KCJyZXR1cm4iLHtkYXRhOmUsc2lnbmF0dXJlOm59KTtjYXNlIDIzOmNhc2UiZW5kIjpyZXR1cm4gci5zdG9wKCl9fSkscix0aGlzKX0pKSksZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX1dKSxyfSgpLExqPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0LG4sZSl7dmFyIGk9bi5lbmNyeXB0ZWQsbz1uLnNpZ25lZCx1PW4uY29tcHJlc3NlZCxmPW4ubGV2ZWwsYT1uLnppcENyeXB0byxjPW4ucGFzc3dvcmQscz1uLnBhc3N3b3JkVmVyaWZpY2F0aW9uLHY9bi5lbmNyeXB0aW9uU3RyZW5ndGgsaD1lLlF0O3hqKHRoaXMsciksT2JqZWN0LmFzc2lnbih0aGlzLHtlbmNyeXB0ZWQ6aSxzaWduZWQ6byxjb21wcmVzc2VkOnUsbm46dSYmbmV3IHQoe2xldmVsOmZ8fDUsUXQ6aH0pLHJuOm8mJm5ldyBVUyx6aXBDcnlwdG86YSxlbmNyeXB0OmkmJmE/bmV3IHdqKGMscyk6bmV3IFhBKGMsdil9KX12YXIgdCxuO3JldHVybiBNaihyLFt7a2V5OiJhcHBlbmQiLHZhbHVlOihuPVRqKGtqKCkubWFyaygoZnVuY3Rpb24gcih0KXt2YXIgbixlO3JldHVybiBraigpLndyYXAoKGZ1bmN0aW9uKHIpe2Zvcig7Oylzd2l0Y2goci5DdD1yLm5leHQpe2Nhc2UgMDppZihlPXQsIShuPXRoaXMpLmNvbXByZXNzZWR8fCF0Lmxlbmd0aCl7ci5uZXh0PTY7YnJlYWt9cmV0dXJuIHIubmV4dD01LG4ubm4uYXBwZW5kKHQpO2Nhc2UgNTplPXIuQXQ7Y2FzZSA2OmlmKCFuLmVuY3J5cHRlZHx8IWUubGVuZ3RoKXtyLm5leHQ9MTA7YnJlYWt9cmV0dXJuIHIubmV4dD05LG4uZW5jcnlwdC5hcHBlbmQoZSk7Y2FzZSA5OmU9ci5BdDtjYXNlIDEwOnJldHVybighbi5lbmNyeXB0ZWR8fG4uemlwQ3J5cHRvKSYmbi5zaWduZWQmJnQubGVuZ3RoJiZuLnJuLmFwcGVuZCh0KSxyLmt0KCJyZXR1cm4iLGUpO2Nhc2UgMTI6Y2FzZSJlbmQiOnJldHVybiByLnN0b3AoKX19KSxyLHRoaXMpfSkpKSxmdW5jdGlvbihyKXtyZXR1cm4gbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToiZmx1c2giLHZhbHVlOih0PVRqKGtqKCkubWFyaygoZnVuY3Rpb24gcigpe3ZhciB0LG4sZSxpLG87cmV0dXJuIGtqKCkud3JhcCgoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLkN0PXIubmV4dCl7Y2FzZSAwOmlmKHQ9dGhpcyxlPW5ldyBVaW50OEFycmF5KDApLCF0LmNvbXByZXNzZWQpe3IubmV4dD05O2JyZWFrfXJldHVybiByLm5leHQ9NSx0Lm5uLmZsdXNoKCk7Y2FzZSA1OmlmKHIudG49ci5BdCxyLnRuKXtyLm5leHQ9ODticmVha31yLnRuPW5ldyBVaW50OEFycmF5KDApO2Nhc2UgODplPXIudG47Y2FzZSA5OmlmKCF0LmVuY3J5cHRlZCl7ci5uZXh0PTE5O2JyZWFrfXJldHVybiByLm5leHQ9MTIsdC5lbmNyeXB0LmFwcGVuZChlKTtjYXNlIDEyOmU9ci5BdCxpPXQuZW5jcnlwdC5mbHVzaCgpLG49aS5zaWduYXR1cmUsKG89bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgraS5kYXRhLmxlbmd0aCkpLnNldChlLDApLG8uc2V0KGkuZGF0YSxlLmxlbmd0aCksZT1vO2Nhc2UgMTk6cmV0dXJuIHQuZW5jcnlwdGVkJiYhdC56aXBDcnlwdG98fCF0LnNpZ25lZHx8KG49dC5ybi5nZXQoKSksci5rdCgicmV0dXJuIix7ZGF0YTplLHNpZ25hdHVyZTpufSk7Y2FzZSAyMTpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0pLHIsdGhpcyl9KSkpLGZ1bmN0aW9uKCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9XSkscn0oKTtmdW5jdGlvbiBQaihyKXtyZXR1cm4gUGo9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24ocil7cmV0dXJuIHR5cGVvZiByfTpmdW5jdGlvbihyKXtyZXR1cm4gciYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmci5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmciE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHJ9LFBqKHIpfWZ1bmN0aW9uIF9qKCl7LyohIHJlZ2VuZXJhdG9yLXJ1bnRpbWUgLS0gQ29weXJpZ2h0IChjKSAyMDE0LXByZXNlbnQsIEZhY2Vib29rLCBJbmMuIC0tIGxpY2Vuc2UgKE1JVCk6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWdlbmVyYXRvci9ibG9iL21haW4vTElDRU5TRSAqL19qPWZ1bmN0aW9uKCl7cmV0dXJuIHJ9O3ZhciByPXt9LHQ9T2JqZWN0LnByb3RvdHlwZSxuPXQuaGFzT3duUHJvcGVydHksZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxpPWUuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIixvPWUuYXN5bmNJdGVyYXRvcnx8IkBAYXN5bmNJdGVyYXRvciIsdT1lLnRvU3RyaW5nVGFnfHwiQEB0b1N0cmluZ1RhZyI7ZnVuY3Rpb24gZihyLHQsbil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLHQse3ZhbHVlOm4sdDohMCxpOiEwLHdyaXRhYmxlOiEwfSksclt0XX10cnl7Zih7fSwiIil9Y2F0Y2gocil7Zj1mdW5jdGlvbihyLHQsbil7cmV0dXJuIHJbdF09bn19ZnVuY3Rpb24gYShyLHQsbixlKXt2YXIgaT10JiZ0LnByb3RvdHlwZSBpbnN0YW5jZW9mIHY/dDp2LG89T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksdT1uZXcgaihlfHxbXSk7cmV0dXJuIG8uYnQ9ZnVuY3Rpb24ocix0LG4pe3ZhciBlPSJzdXNwZW5kZWRTdGFydCI7cmV0dXJuIGZ1bmN0aW9uKGksbyl7aWYoImV4ZWN1dGluZyI9PT1lKXRocm93IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYoImNvbXBsZXRlZCI9PT1lKXtpZigidGhyb3ciPT09aSl0aHJvdyBvO3JldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19Zm9yKG4ubWV0aG9kPWksbi5ndD1vOzspe3ZhciB1PW4uU3Q7aWYodSl7dmFyIGY9bSh1LG4pO2lmKGYpe2lmKGY9PT1zKWNvbnRpbnVlO3JldHVybiBmfX1pZigibmV4dCI9PT1uLm1ldGhvZCluLkF0PW4uanQ9bi5ndDtlbHNlIGlmKCJ0aHJvdyI9PT1uLm1ldGhvZCl7aWYoInN1c3BlbmRlZFN0YXJ0Ij09PWUpdGhyb3cgZT0iY29tcGxldGVkIixuLmd0O24uT3Qobi5ndCl9ZWxzZSJyZXR1cm4iPT09bi5tZXRob2QmJm4ua3QoInJldHVybiIsbi5ndCk7ZT0iZXhlY3V0aW5nIjt2YXIgYT1jKHIsdCxuKTtpZigibm9ybWFsIj09PWEudHlwZSl7aWYoZT1uLmRvbmU/ImNvbXBsZXRlZCI6InN1c3BlbmRlZFlpZWxkIixhLmd0PT09cyljb250aW51ZTtyZXR1cm57dmFsdWU6YS5ndCxkb25lOm4uZG9uZX19InRocm93Ij09PWEudHlwZSYmKGU9ImNvbXBsZXRlZCIsbi5tZXRob2Q9InRocm93IixuLmd0PWEuZ3QpfX19KHIsbix1KSxvfWZ1bmN0aW9uIGMocix0LG4pe3RyeXtyZXR1cm57dHlwZToibm9ybWFsIixndDpyLmNhbGwodCxuKX19Y2F0Y2gocil7cmV0dXJue3R5cGU6InRocm93IixndDpyfX19ci53cmFwPWE7dmFyIHM9e307ZnVuY3Rpb24gdigpe31mdW5jdGlvbiBoKCl7fWZ1bmN0aW9uIGwoKXt9dmFyIGQ9e307ZihkLGksKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIHk9T2JqZWN0LmdldFByb3RvdHlwZU9mLHc9eSYmeSh5KE8oW10pKSk7dyYmdyE9PXQmJm4uY2FsbCh3LGkpJiYoZD13KTt2YXIgYj1sLnByb3RvdHlwZT12LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGQpO2Z1bmN0aW9uIHAocil7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbih0KXtmKHIsdCwoZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuYnQodCxyKX0pKX0pKX1mdW5jdGlvbiBnKHIsdCl7ZnVuY3Rpb24gZShpLG8sdSxmKXt2YXIgYT1jKHJbaV0scixvKTtpZigidGhyb3ciIT09YS50eXBlKXt2YXIgcz1hLmd0LHY9cy52YWx1ZTtyZXR1cm4gdiYmIm9iamVjdCI9PVBqKHYpJiZuLmNhbGwodiwiX19hd2FpdCIpP3QucmVzb2x2ZSh2LkV0KS50aGVuKChmdW5jdGlvbihyKXtlKCJuZXh0IixyLHUsZil9KSwoZnVuY3Rpb24ocil7ZSgidGhyb3ciLHIsdSxmKX0pKTp0LnJlc29sdmUodikudGhlbigoZnVuY3Rpb24ocil7cy52YWx1ZT1yLHUocyl9KSwoZnVuY3Rpb24ocil7cmV0dXJuIGUoInRocm93IixyLHUsZil9KSl9ZihhLmd0KX12YXIgaTt0aGlzLmJ0PWZ1bmN0aW9uKHIsbil7ZnVuY3Rpb24gbygpe3JldHVybiBuZXcgdCgoZnVuY3Rpb24odCxpKXtlKHIsbix0LGkpfSkpfXJldHVybiBpPWk/aS50aGVuKG8sbyk6bygpfX1mdW5jdGlvbiBtKHIsdCl7dmFyIG49ci5pdGVyYXRvclt0Lm1ldGhvZF07aWYodm9pZCAwPT09bil7aWYodC5TdD1udWxsLCJ0aHJvdyI9PT10Lm1ldGhvZCl7aWYoci5pdGVyYXRvci5xJiYodC5tZXRob2Q9InJldHVybiIsdC5ndD12b2lkIDAsbShyLHQpLCJ0aHJvdyI9PT10Lm1ldGhvZCkpcmV0dXJuIHM7dC5tZXRob2Q9InRocm93Iix0Lmd0PW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ3Rocm93JyBtZXRob2QiKX1yZXR1cm4gc312YXIgZT1jKG4sci5pdGVyYXRvcix0Lmd0KTtpZigidGhyb3ciPT09ZS50eXBlKXJldHVybiB0Lm1ldGhvZD0idGhyb3ciLHQuZ3Q9ZS5ndCx0LlN0PW51bGwsczt2YXIgaT1lLmd0O3JldHVybiBpP2kuZG9uZT8odFtyLlR0XT1pLnZhbHVlLHQubmV4dD1yLnh0LCJyZXR1cm4iIT09dC5tZXRob2QmJih0Lm1ldGhvZD0ibmV4dCIsdC5ndD12b2lkIDApLHQuU3Q9bnVsbCxzKTppOih0Lm1ldGhvZD0idGhyb3ciLHQuZ3Q9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSx0LlN0PW51bGwscyl9ZnVuY3Rpb24gUyhyKXt2YXIgdD17VXQ6clswXX07MSBpbiByJiYodC5NdD1yWzFdKSwyIGluIHImJih0Lkl0PXJbMl0sdC5MdD1yWzNdKSx0aGlzLlB0LnB1c2godCl9ZnVuY3Rpb24gQShyKXt2YXIgdD1yLl90fHx7fTt0LnR5cGU9Im5vcm1hbCIsZGVsZXRlIHQuZ3Qsci5fdD10fWZ1bmN0aW9uIGoocil7dGhpcy5QdD1be1V0OiJyb290In1dLHIuZm9yRWFjaChTLHRoaXMpLHRoaXMucmVzZXQoITApfWZ1bmN0aW9uIE8ocil7aWYocil7dmFyIHQ9cltpXTtpZih0KXJldHVybiB0LmNhbGwocik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHIubmV4dClyZXR1cm4gcjtpZighaXNOYU4oci5sZW5ndGgpKXt2YXIgZT0tMSxvPWZ1bmN0aW9uIHQoKXtmb3IoOysrZTxyLmxlbmd0aDspaWYobi5jYWxsKHIsZSkpcmV0dXJuIHQudmFsdWU9cltlXSx0LmRvbmU9ITEsdDtyZXR1cm4gdC52YWx1ZT12b2lkIDAsdC5kb25lPSEwLHR9O3JldHVybiBvLm5leHQ9b319cmV0dXJue25leHQ6a319ZnVuY3Rpb24gaygpe3JldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19cmV0dXJuIGgucHJvdG90eXBlPWwsZihiLCJjb25zdHJ1Y3RvciIsbCksZihsLCJjb25zdHJ1Y3RvciIsaCksaC5kaXNwbGF5TmFtZT1mKGwsdSwiR2VuZXJhdG9yRnVuY3Rpb24iKSxyLlJ0PWZ1bmN0aW9uKHIpe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiByJiZyLmNvbnN0cnVjdG9yO3JldHVybiEhdCYmKHQ9PT1ofHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KHQuZGlzcGxheU5hbWV8fHQubmFtZSkpfSxyLm1hcms9ZnVuY3Rpb24ocil7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YocixsKTooci5fX3Byb3RvX189bCxmKHIsdSwiR2VuZXJhdG9yRnVuY3Rpb24iKSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShiKSxyfSxyLkZ0PWZ1bmN0aW9uKHIpe3JldHVybntFdDpyfX0scChnLnByb3RvdHlwZSksZihnLnByb3RvdHlwZSxvLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLHIuTnQ9ZyxyLmFzeW5jPWZ1bmN0aW9uKHQsbixlLGksbyl7dm9pZCAwPT09byYmKG89UHJvbWlzZSk7dmFyIHU9bmV3IGcoYSh0LG4sZSxpKSxvKTtyZXR1cm4gci5SdChuKT91OnUubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHIpe3JldHVybiByLmRvbmU/ci52YWx1ZTp1Lm5leHQoKX0pKX0scChiKSxmKGIsdSwiR2VuZXJhdG9yIiksZihiLGksKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksZihiLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSksci5rZXlzPWZ1bmN0aW9uKHIpe3ZhciB0PVtdO2Zvcih2YXIgbiBpbiByKXQucHVzaChuKTtyZXR1cm4gdC5yZXZlcnNlKCksZnVuY3Rpb24gbigpe2Zvcig7dC5sZW5ndGg7KXt2YXIgZT10LnBvcCgpO2lmKGUgaW4gcilyZXR1cm4gbi52YWx1ZT1lLG4uZG9uZT0hMSxufXJldHVybiBuLmRvbmU9ITAsbn19LHIudmFsdWVzPU8sai5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmoscmVzZXQ6ZnVuY3Rpb24ocil7aWYodGhpcy5DdD0wLHRoaXMubmV4dD0wLHRoaXMuQXQ9dGhpcy5qdD12b2lkIDAsdGhpcy5kb25lPSExLHRoaXMuU3Q9bnVsbCx0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5ndD12b2lkIDAsdGhpcy5QdC5mb3JFYWNoKEEpLCFyKWZvcih2YXIgdCBpbiB0aGlzKSJ0Ij09PXQuY2hhckF0KDApJiZuLmNhbGwodGhpcyx0KSYmIWlzTmFOKCt0LnNsaWNlKDEpKSYmKHRoaXNbdF09dm9pZCAwKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuZG9uZT0hMDt2YXIgcj10aGlzLlB0WzBdLl90O2lmKCJ0aHJvdyI9PT1yLnR5cGUpdGhyb3cgci5ndDtyZXR1cm4gdGhpcy5CdH0sT3Q6ZnVuY3Rpb24ocil7aWYodGhpcy5kb25lKXRocm93IHI7dmFyIHQ9dGhpcztmdW5jdGlvbiBlKG4sZSl7cmV0dXJuIHUudHlwZT0idGhyb3ciLHUuZ3Q9cix0Lm5leHQ9bixlJiYodC5tZXRob2Q9Im5leHQiLHQuZ3Q9dm9pZCAwKSwhIWV9Zm9yKHZhciBpPXRoaXMuUHQubGVuZ3RoLTE7aT49MDstLWkpe3ZhciBvPXRoaXMuUHRbaV0sdT1vLl90O2lmKCJyb290Ij09PW8uVXQpcmV0dXJuIGUoImVuZCIpO2lmKG8uVXQ8PXRoaXMuQ3Qpe3ZhciBmPW4uY2FsbChvLCJjYXRjaExvYyIpLGE9bi5jYWxsKG8sImZpbmFsbHlMb2MiKTtpZihmJiZhKXtpZih0aGlzLkN0PG8uTXQpcmV0dXJuIGUoby5NdCwhMCk7aWYodGhpcy5DdDxvLkl0KXJldHVybiBlKG8uSXQpfWVsc2UgaWYoZil7aWYodGhpcy5DdDxvLk10KXJldHVybiBlKG8uTXQsITApfWVsc2V7aWYoIWEpdGhyb3cgRXJyb3IoInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5Iik7aWYodGhpcy5DdDxvLkl0KXJldHVybiBlKG8uSXQpfX19fSxrdDpmdW5jdGlvbihyLHQpe2Zvcih2YXIgZT10aGlzLlB0Lmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgaT10aGlzLlB0W2VdO2lmKGkuVXQ8PXRoaXMuQ3QmJm4uY2FsbChpLCJmaW5hbGx5TG9jIikmJnRoaXMuQ3Q8aS5JdCl7dmFyIG89aTticmVha319byYmKCJicmVhayI9PT1yfHwiY29udGludWUiPT09cikmJm8uVXQ8PXQmJnQ8PW8uSXQmJihvPW51bGwpO3ZhciB1PW8/by5fdDp7fTtyZXR1cm4gdS50eXBlPXIsdS5ndD10LG8/KHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLm5leHQ9by5JdCxzKTp0aGlzLmNvbXBsZXRlKHUpfSxjb21wbGV0ZTpmdW5jdGlvbihyLHQpe2lmKCJ0aHJvdyI9PT1yLnR5cGUpdGhyb3cgci5ndDtyZXR1cm4iYnJlYWsiPT09ci50eXBlfHwiY29udGludWUiPT09ci50eXBlP3RoaXMubmV4dD1yLmd0OiJyZXR1cm4iPT09ci50eXBlPyh0aGlzLkJ0PXRoaXMuZ3Q9ci5ndCx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09ci50eXBlJiZ0JiYodGhpcy5uZXh0PXQpLHN9LGZpbmlzaDpmdW5jdGlvbihyKXtmb3IodmFyIHQ9dGhpcy5QdC5sZW5ndGgtMTt0Pj0wOy0tdCl7dmFyIG49dGhpcy5QdFt0XTtpZihuLkl0PT09cilyZXR1cm4gdGhpcy5jb21wbGV0ZShuLl90LG4uTHQpLEEobiksc319LGNhdGNoOmZ1bmN0aW9uKHIpe2Zvcih2YXIgdD10aGlzLlB0Lmxlbmd0aC0xO3Q+PTA7LS10KXt2YXIgbj10aGlzLlB0W3RdO2lmKG4uVXQ9PT1yKXt2YXIgZT1uLl90O2lmKCJ0aHJvdyI9PT1lLnR5cGUpe3ZhciBpPWUuZ3Q7QShuKX1yZXR1cm4gaX19dGhyb3cgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxHdDpmdW5jdGlvbihyLHQsbil7cmV0dXJuIHRoaXMuU3Q9e2l0ZXJhdG9yOk8ociksVHQ6dCx4dDpufSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuZ3Q9dm9pZCAwKSxzfX0scn1mdW5jdGlvbiBSaihyLHQsbixlLGksbyx1KXt0cnl7dmFyIGY9cltvXSh1KSxhPWYudmFsdWV9Y2F0Y2gocil7cmV0dXJuIHZvaWQgbihyKX1mLmRvbmU/dChhKTpQcm9taXNlLnJlc29sdmUoYSkudGhlbihlLGkpfWZ1bmN0aW9uIEZqKHIpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihlLGkpe3ZhciBvPXIuYXBwbHkodCxuKTtmdW5jdGlvbiB1KHIpe1JqKG8sZSxpLHUsZiwibmV4dCIscil9ZnVuY3Rpb24gZihyKXtSaihvLGUsaSx1LGYsInRocm93IixyKX11KHZvaWQgMCl9KSl9fXZhciBOaixDaj17aW5pdDpmdW5jdGlvbihyKXtyLnNjcmlwdHMmJnIuc2NyaXB0cy5sZW5ndGgmJmltcG9ydFNjcmlwdHMuYXBwbHkodm9pZCAwLHIuc2NyaXB0cyk7dmFyIHQsbj1yLm9wdGlvbnM7c2VsZi5pbml0Q29kZWMmJnNlbGYuaW5pdENvZGVjKCksbi5jb2RlY1R5cGUuc3RhcnRzV2l0aCgiZGVmbGF0ZSIpP3Q9c2VsZi5EZWZsYXRlOm4uY29kZWNUeXBlLnN0YXJ0c1dpdGgoImluZmxhdGUiKSYmKHQ9c2VsZi5JbmZsYXRlKSxOaj1mdW5jdGlvbihyLHQsbil7cmV0dXJuIHQuY29kZWNUeXBlLnN0YXJ0c1dpdGgoImRlZmxhdGUiKT9uZXcgTGoocix0LG4pOnQuY29kZWNUeXBlLnN0YXJ0c1dpdGgoImluZmxhdGUiKT9uZXcgSWoocix0LG4pOnZvaWQgMH0odCxuLHIuY29uZmlnKX0sYXBwZW5kOmZ1bmN0aW9uKHIpe3JldHVybiBGaihfaigpLm1hcmsoKGZ1bmN0aW9uIHQoKXtyZXR1cm4gX2ooKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQuQ3Q9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHQubmV4dD0yLE5qLmFwcGVuZChyLmRhdGEpO2Nhc2UgMjpyZXR1cm4gdC50bj10LkF0LHQua3QoInJldHVybiIse2RhdGE6dC50bn0pO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQpfSkpKSgpfSxmbHVzaDpmdW5jdGlvbigpe3JldHVybiBOai5mbHVzaCgpfX07YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24oKXt2YXIgcj1GaihfaigpLm1hcmsoKGZ1bmN0aW9uIHIodCl7dmFyIG4sZSxpLG87cmV0dXJuIF9qKCkud3JhcCgoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLkN0PXIubmV4dCl7Y2FzZSAwOmlmKG49dC5kYXRhLGU9bi50eXBlLCEoaT1DaltlXSkpe3IubmV4dD0xOTticmVha31yZXR1cm4gci5DdD00LG4uZGF0YSYmKG4uZGF0YT1uZXcgVWludDhBcnJheShuLmRhdGEpKSxyLm5leHQ9OCxpKG4pO2Nhc2UgODppZihyLnRuPXIuQXQsci50bil7ci5uZXh0PTExO2JyZWFrfXIudG49e307Y2FzZSAxMTppZigobz1yLnRuKS50eXBlPWUsby5kYXRhKXRyeXtvLmRhdGE9by5kYXRhLmJ1ZmZlcixwb3N0TWVzc2FnZShvLFtvLmRhdGFdKX1jYXRjaChyKXtwb3N0TWVzc2FnZShvKX1lbHNlIHBvc3RNZXNzYWdlKG8pO3IubmV4dD0xOTticmVhaztjYXNlIDE2OnIuQ3Q9MTYsci5lbj1yLmNhdGNoKDQpLHBvc3RNZXNzYWdlKHt0eXBlOmUsZXJyb3I6e21lc3NhZ2U6ci5lbi5tZXNzYWdlLHN0YWNrOnIuZW4uc3RhY2t9fSk7Y2FzZSAxOTpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfX0pLHIsbnVsbCxbWzQsMTZdXSl9KSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKTt2YXIgQmo9aXMubWFwO0JlKHt0YXJnZXQ6IkFycmF5IixWOiEwLEc6IVFtKCJtYXAiKX0se21hcDpmdW5jdGlvbihyKXtyZXR1cm4gQmoodGhpcyxyLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KTt2YXIgR2o9SGk7QmUoe3RhcmdldDoiQXJyYXkiLFY6ITB9LHtmaWxsOmd1fSksR2ooImZpbGwiKSwoMCxzYS5leHBvcnRzKSgiVWludDE2IiwoZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gcih0aGlzLHQsbixlKX19KSk7dmFyIERqLFZqLFlqLHpqLFdqPWp0LCRqPWksSGo9bi5SZWdFeHAsS2o9JGooKGZ1bmN0aW9uKCl7dmFyIHI9SGooImEiLCJ5Iik7cmV0dXJuIHIubGFzdEluZGV4PTIsbnVsbCE9ci5leGVjKCJhYmNkIil9KSkscWo9S2p8fCRqKChmdW5jdGlvbigpe3JldHVybiFIaigiYSIsInkiKS5zdGlja3l9KSksSmo9e29uOktqfHwkaigoZnVuY3Rpb24oKXt2YXIgcj1IaigiXnIiLCJneSIpO3JldHVybiByLmxhc3RJbmRleD0yLG51bGwhPXIuZXhlYygic3RyIil9KSksdW46cWosZm46S2p9LFhqPWksUWo9bi5SZWdFeHAsWmo9WGooKGZ1bmN0aW9uKCl7dmFyIHI9UWooIi4iLCJzIik7cmV0dXJuIShyLmRvdEFsbCYmci5leGVjKCJcbiIpJiYicyI9PT1yLmZsYWdzKX0pKSxyTz1pLHRPPW4uUmVnRXhwLG5PPXJPKChmdW5jdGlvbigpe3ZhciByPXRPKCIoPzxhPmIpIiwiZyIpO3JldHVybiJiIiE9PXIuZXhlYygiYiIpLmFuLmF8fCJiYyIhPT0iYiIucmVwbGFjZShyLCIkPGE+YyIpfSkpLGVPPWEsaU89UyxvTz1RZSx1Tz1mdW5jdGlvbigpe3ZhciByPVdqKHRoaXMpLHQ9IiI7cmV0dXJuIHIuaGFzSW5kaWNlcyYmKHQrPSJkIiksci5nbG9iYWwmJih0Kz0iZyIpLHIuaWdub3JlQ2FzZSYmKHQrPSJpIiksci5tdWx0aWxpbmUmJih0Kz0ibSIpLHIuZG90QWxsJiYodCs9InMiKSxyLnVuaWNvZGUmJih0Kz0idSIpLHIuY24mJih0Kz0idiIpLHIuc3RpY2t5JiYodCs9InkiKSx0fSxmTz1KaixhTz1wci5leHBvcnRzLGNPPUNpLHNPPW1uLmdldCx2Tz1aaixoTz1uTyxsTz1hTygibmF0aXZlLXN0cmluZy1yZXBsYWNlIiwiIi5yZXBsYWNlKSxkTz0vdC8uZXhlYyx5Tz1kTyx3Tz1pTygiIi5jaGFyQXQpLGJPPWlPKCIiLmluZGV4T2YpLHBPPWlPKCIiLnJlcGxhY2UpLGdPPWlPKCIiLnNsaWNlKSxtTz0oVmo9L2IqL2csZU8oZE8sRGo9L2EvLCJhIiksZU8oZE8sVmosImEiKSwwIT09RGoubGFzdEluZGV4fHwwIT09VmoubGFzdEluZGV4KSxTTz1mTy5vbixBTz12b2lkIDAhPT0vKCk/Py8uZXhlYygiIilbMV07ZnVuY3Rpb24gak8ocil7cmV0dXJuIGZ1bmN0aW9uKHIpe2lmKEFycmF5LmlzQXJyYXkocikpcmV0dXJuIGtPKHIpfShyKXx8ZnVuY3Rpb24ocil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPXJbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9clsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKHIpfShyKXx8T08ocil8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gT08ocix0KXtpZihyKXtpZigic3RyaW5nIj09dHlwZW9mIHIpcmV0dXJuIGtPKHIsdCk7dmFyIG49e30udG9TdHJpbmcuY2FsbChyKS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PW4mJnIuY29uc3RydWN0b3ImJihuPXIuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4/QXJyYXkuZnJvbShyKToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP2tPKHIsdCk6dm9pZCAwfX1mdW5jdGlvbiBrTyhyLHQpeyhudWxsPT10fHx0PnIubGVuZ3RoKSYmKHQ9ci5sZW5ndGgpO2Zvcih2YXIgbj0wLGU9QXJyYXkodCk7dD5uO24rKyllW25dPXJbbl07cmV0dXJuIGV9ZnVuY3Rpb24gRU8ocil7cmV0dXJuIFRPKHIubWFwKChmdW5jdGlvbihyKXt2YXIgdCxuPWZ1bmN0aW9uKHIpe2lmKEFycmF5LmlzQXJyYXkocikpcmV0dXJuIHJ9KHQ9cil8fGZ1bmN0aW9uKHIpe3ZhciB0PW51bGw9PXI/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmcltTeW1ib2wuaXRlcmF0b3JdfHxyWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9dCl7dmFyIG4sZSxpPVtdLG89ITAsdT0hMTt0cnl7Zm9yKHQ9dC5jYWxsKHIpOyEobz0obj10Lm5leHQoKSkuZG9uZSkmJihpLnB1c2gobi52YWx1ZSksMiE9PWkubGVuZ3RoKTtvPSEwKTt9Y2F0Y2gocil7dT0hMCxlPXJ9ZmluYWxseXt0cnl7b3x8bnVsbD09dC5xfHx0LnEoKX1maW5hbGx5e2lmKHUpdGhyb3cgZX19cmV0dXJuIGl9fSh0KXx8T08odCwyKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpLGU9blswXSxpPW5bMV07cmV0dXJuIEFycmF5KGUpLmZpbGwoaSwwLGUpfSkpKX1mdW5jdGlvbiBUTyhyKXtyZXR1cm4gci5yZWR1Y2UoKGZ1bmN0aW9uKHIsdCl7cmV0dXJuIHIuY29uY2F0KEFycmF5LmlzQXJyYXkodCk/VE8odCk6dCl9KSxbXSl9KG1PfHxBT3x8U098fHZPfHxoTykmJih5Tz1mdW5jdGlvbihyKXt2YXIgdCxuLGUsaSxvLHUsZixhPXRoaXMsYz1zTyhhKSxzPW9PKHIpLHY9Yy5yYXc7aWYodilyZXR1cm4gdi5sYXN0SW5kZXg9YS5sYXN0SW5kZXgsdD1lTyh5Tyx2LHMpLGEubGFzdEluZGV4PXYubGFzdEluZGV4LHQ7dmFyIGg9Yy5hbixsPVNPJiZhLnN0aWNreSxkPWVPKHVPLGEpLHk9YS5zb3VyY2Usdz0wLGI9cztpZihsJiYoZD1wTyhkLCJ5IiwiIiksLTE9PT1iTyhkLCJnIikmJihkKz0iZyIpLGI9Z08ocyxhLmxhc3RJbmRleCksYS5sYXN0SW5kZXg+MCYmKCFhLm11bHRpbGluZXx8YS5tdWx0aWxpbmUmJiJcbiIhPT13TyhzLGEubGFzdEluZGV4LTEpKSYmKHk9Iig/OiAiK3krIikiLGI9IiAiK2IsdysrKSxuPVJlZ0V4cCgiXig/OiIreSsiKSIsZCkpLEFPJiYobj1SZWdFeHAoIl4iK3krIiQoPyFcXHMpIixkKSksbU8mJihlPWEubGFzdEluZGV4KSxpPWVPKGRPLGw/bjphLGIpLGw/aT8oaS5pbnB1dD1nTyhpLmlucHV0LHcpLGlbMF09Z08oaVswXSx3KSxpLmluZGV4PWEubGFzdEluZGV4LGEubGFzdEluZGV4Kz1pWzBdLmxlbmd0aCk6YS5sYXN0SW5kZXg9MDptTyYmaSYmKGEubGFzdEluZGV4PWEuZ2xvYmFsP2kuaW5kZXgraVswXS5sZW5ndGg6ZSksQU8mJmkmJmkubGVuZ3RoPjEmJmVPKGxPLGlbMF0sbiwoZnVuY3Rpb24oKXtmb3Iobz0xO2FyZ3VtZW50cy5sZW5ndGgtMj5vO28rKyl2b2lkIDA9PT1hcmd1bWVudHNbb10mJihpW29dPXZvaWQgMCl9KSksaSYmaClmb3IoaS5hbj11PWNPKG51bGwpLG89MDtvPGgubGVuZ3RoO28rKyl1WyhmPWhbb10pWzBdXT1pW2ZbMV1dO3JldHVybiBpfSksQmUoe3RhcmdldDoiUmVnRXhwIixWOiEwLEc6Ly4vLmV4ZWMhPT15T30se2V4ZWM6eU99KTt2YXIgeE89KFlqPVswLDEsMiwzXSkuY29uY2F0LmFwcGx5KFlqLGpPKEVPKFtbMiw0XSxbMiw1XSxbNCw2XSxbNCw3XSxbOCw4XSxbOCw5XSxbMTYsMTBdLFsxNiwxMV0sWzMyLDEyXSxbMzIsMTNdLFs2NCwxNF0sWzY0LDE1XSxbMiwwXSxbMSwxNl0sWzEsMTddLFsyLDE4XSxbMiwxOV0sWzQsMjBdLFs0LDIxXSxbOCwyMl0sWzgsMjNdLFsxNiwyNF0sWzE2LDI1XSxbMzIsMjZdLFszMiwyN10sWzY0LDI4XSxbNjQsMjldXSkpKTtmdW5jdGlvbiBVTygpe3ZhciByPXRoaXM7ZnVuY3Rpb24gdChyLHQpe3ZhciBuPTA7ZG97bnw9MSZyLHI+Pj49MSxuPDw9MX13aGlsZSgtLXQ+MCk7cmV0dXJuIG4+Pj4xfXIuc249ZnVuY3Rpb24obil7dmFyIGUsaSxvLHU9ci52bixmPXIubG4uaG4sYT1yLmxuLmRuLGM9LTE7Zm9yKG4ueW49MCxuLnduPTU3MyxlPTA7YT5lO2UrKykwIT09dVsyKmVdPyhuLmJuWysrbi55bl09Yz1lLG4ucG5bZV09MCk6dVsyKmUrMV09MDtmb3IoOzI+bi55bjspdVsyKihvPW4uYm5bKytuLnluXT0yPmM/KytjOjApXT0xLG4ucG5bb109MCxuLmduLS0sZiYmKG4ubW4tPWZbMipvKzFdKTtmb3Ioci5Tbj1jLGU9TWF0aC5mbG9vcihuLnluLzIpO2U+PTE7ZS0tKW4uQW4odSxlKTtvPWE7ZG97ZT1uLmJuWzFdLG4uYm5bMV09bi5ibltuLnluLS1dLG4uQW4odSwxKSxpPW4uYm5bMV0sbi5iblstLW4ud25dPWUsbi5iblstLW4ud25dPWksdVsyKm9dPXVbMiplXSt1WzIqaV0sbi5wbltvXT1NYXRoLm1heChuLnBuW2VdLG4ucG5baV0pKzEsdVsyKmUrMV09dVsyKmkrMV09byxuLmJuWzFdPW8rKyxuLkFuKHUsMSl9d2hpbGUobi55bj49Mik7bi5iblstLW4ud25dPW4uYm5bMV0sZnVuY3Rpb24odCl7dmFyIG4sZSxpLG8sdSxmLGE9ci52bixjPXIubG4uaG4scz1yLmxuLmpuLHY9ci5sbi5PbixoPXIubG4ua24sbD0wO2ZvcihvPTA7MTU+PW87bysrKXQuRW5bb109MDtmb3IoYVsyKnQuYm5bdC53bl0rMV09MCxuPXQud24rMTs1NzM+bjtuKyspKG89YVsyKmFbMiooZT10LmJuW25dKSsxXSsxXSsxKT5oJiYobz1oLGwrKyksYVsyKmUrMV09byxlPnIuU258fCh0LkVuW29dKyssdT0wLHY+ZXx8KHU9c1tlLXZdKSxmPWFbMiplXSx0LmduKz1mKihvK3UpLGMmJih0Lm1uKz1mKihjWzIqZSsxXSt1KSkpO2lmKDAhPT1sKXtkb3tmb3Iobz1oLTE7MD09PXQuRW5bb107KW8tLTt0LkVuW29dLS0sdC5FbltvKzFdKz0yLHQuRW5baF0tLSxsLT0yfXdoaWxlKGw+MCk7Zm9yKG89aDswIT09bztvLS0pZm9yKGU9dC5FbltvXTswIT09ZTspKGk9dC5iblstLW5dKT5yLlNufHwoYVsyKmkrMV0hPW8mJih0LmduKz0oby1hWzIqaSsxXSkqYVsyKmldLGFbMippKzFdPW8pLGUtLSl9fShuKSxmdW5jdGlvbihyLG4sZSl7dmFyIGksbyx1LGY9W10sYT0wO2ZvcihpPTE7MTU+PWk7aSsrKWZbaV09YT1hK2VbaS0xXTw8MTtmb3Iobz0wO24+PW87bysrKTAhPT0odT1yWzIqbysxXSkmJihyWzIqb109dChmW3VdKyssdSkpfSh1LHIuU24sbi5Fbil9fWZ1bmN0aW9uIE1PKHIsdCxuLGUsaSl7dmFyIG89dGhpcztvLmhuPXIsby5qbj10LG8uT249bixvLmRuPWUsby5rbj1pfVVPLlRuPSh6aj1bMCwxLDIsMyw0LDUsNiw3XSkuY29uY2F0LmFwcGx5KHpqLGpPKEVPKFtbMiw4XSxbMiw5XSxbMiwxMF0sWzIsMTFdLFs0LDEyXSxbNCwxM10sWzQsMTRdLFs0LDE1XSxbOCwxNl0sWzgsMTddLFs4LDE4XSxbOCwxOV0sWzE2LDIwXSxbMTYsMjFdLFsxNiwyMl0sWzE2LDIzXSxbMzIsMjRdLFszMiwyNV0sWzMyLDI2XSxbMzEsMjddLFsxLDI4XV0pKSksVU8ueG49WzAsMSwyLDMsNCw1LDYsNyw4LDEwLDEyLDE0LDE2LDIwLDI0LDI4LDMyLDQwLDQ4LDU2LDY0LDgwLDk2LDExMiwxMjgsMTYwLDE5MiwyMjQsMF0sVU8uVW49WzAsMSwyLDMsNCw2LDgsMTIsMTYsMjQsMzIsNDgsNjQsOTYsMTI4LDE5MiwyNTYsMzg0LDUxMiw3NjgsMTAyNCwxNTM2LDIwNDgsMzA3Miw0MDk2LDYxNDQsODE5MiwxMjI4OCwxNjM4NCwyNDU3Nl0sVU8uTW49ZnVuY3Rpb24ocil7cmV0dXJuIDI1Nj5yP3hPW3JdOnhPWzI1Nisocj4+PjcpXX0sVU8uSW49WzAsMCwwLDAsMCwwLDAsMCwxLDEsMSwxLDIsMiwyLDIsMywzLDMsMyw0LDQsNCw0LDUsNSw1LDUsMF0sVU8uTG49WzAsMCwwLDAsMSwxLDIsMiwzLDMsNCw0LDUsNSw2LDYsNyw3LDgsOCw5LDksMTAsMTAsMTEsMTEsMTIsMTIsMTMsMTNdLFVPLlBuPVswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIsMyw3XSxVTy5fbj1bMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV07dmFyIElPPUVPKFtbMTQ0LDhdLFsxMTIsOV0sWzI0LDddLFs4LDhdXSk7TU8uUm49VE8oWzEyLDE0MCw3NiwyMDQsNDQsMTcyLDEwOCwyMzYsMjgsMTU2LDkyLDIyMCw2MCwxODgsMTI0LDI1MiwyLDEzMCw2NiwxOTQsMzQsMTYyLDk4LDIyNiwxOCwxNDYsODIsMjEwLDUwLDE3OCwxMTQsMjQyLDEwLDEzOCw3NCwyMDIsNDIsMTcwLDEwNiwyMzQsMjYsMTU0LDkwLDIxOCw1OCwxODYsMTIyLDI1MCw2LDEzNCw3MCwxOTgsMzgsMTY2LDEwMiwyMzAsMjIsMTUwLDg2LDIxNCw1NCwxODIsMTE4LDI0NiwxNCwxNDIsNzgsMjA2LDQ2LDE3NCwxMTAsMjM4LDMwLDE1OCw5NCwyMjIsNjIsMTkwLDEyNiwyNTQsMSwxMjksNjUsMTkzLDMzLDE2MSw5NywyMjUsMTcsMTQ1LDgxLDIwOSw0OSwxNzcsMTEzLDI0MSw5LDEzNyw3MywyMDEsNDEsMTY5LDEwNSwyMzMsMjUsMTUzLDg5LDIxNyw1NywxODUsMTIxLDI0OSw1LDEzMyw2OSwxOTcsMzcsMTY1LDEwMSwyMjksMjEsMTQ5LDg1LDIxMyw1MywxODEsMTE3LDI0NSwxMywxNDEsNzcsMjA1LDQ1LDE3MywxMDksMjM3LDI5LDE1Nyw5MywyMjEsNjEsMTg5LDEyNSwyNTMsMTksMjc1LDE0Nyw0MDMsODMsMzM5LDIxMSw0NjcsNTEsMzA3LDE3OSw0MzUsMTE1LDM3MSwyNDMsNDk5LDExLDI2NywxMzksMzk1LDc1LDMzMSwyMDMsNDU5LDQzLDI5OSwxNzEsNDI3LDEwNywzNjMsMjM1LDQ5MSwyNywyODMsMTU1LDQxMSw5MSwzNDcsMjE5LDQ3NSw1OSwzMTUsMTg3LDQ0MywxMjMsMzc5LDI1MSw1MDcsNywyNjMsMTM1LDM5MSw3MSwzMjcsMTk5LDQ1NSwzOSwyOTUsMTY3LDQyMywxMDMsMzU5LDIzMSw0ODcsMjMsMjc5LDE1MSw0MDcsODcsMzQzLDIxNSw0NzEsNTUsMzExLDE4Myw0MzksMTE5LDM3NSwyNDcsNTAzLDE1LDI3MSwxNDMsMzk5LDc5LDMzNSwyMDcsNDYzLDQ3LDMwMywxNzUsNDMxLDExMSwzNjcsMjM5LDQ5NSwzMSwyODcsMTU5LDQxNSw5NSwzNTEsMjIzLDQ3OSw2MywzMTksMTkxLDQ0NywxMjcsMzgzLDI1NSw1MTEsMCw2NCwzMiw5NiwxNiw4MCw0OCwxMTIsOCw3Miw0MCwxMDQsMjQsODgsNTYsMTIwLDQsNjgsMzYsMTAwLDIwLDg0LDUyLDExNiwzLDEzMSw2NywxOTUsMzUsMTYzLDk5LDIyN10ubWFwKChmdW5jdGlvbihyLHQpe3JldHVybltyLElPW3RdXX0pKSk7dmFyIExPPUVPKFtbMzAsNV1dKTtmdW5jdGlvbiBQTyhyLHQsbixlLGkpe3ZhciBvPXRoaXM7by5Gbj1yLG8uTm49dCxvLkNuPW4sby5Cbj1lLG8uR249aX1NTy5Ebj1UTyhbMCwxNiw4LDI0LDQsMjAsMTIsMjgsMiwxOCwxMCwyNiw2LDIyLDE0LDMwLDEsMTcsOSwyNSw1LDIxLDEzLDI5LDMsMTksMTEsMjcsNywyM10ubWFwKChmdW5jdGlvbihyLHQpe3JldHVybltyLExPW3RdXX0pKSksTU8uVm49bmV3IE1PKE1PLlJuLFVPLkluLDI1NywyODYsMTUpLE1PLlluPW5ldyBNTyhNTy5EbixVTy5MbiwwLDMwLDE1KSxNTy56bj1uZXcgTU8obnVsbCxVTy5QbiwwLDE5LDcpO3ZhciBfTz1bbmV3IFBPKDAsMCwwLDAsMCksbmV3IFBPKDQsNCw4LDQsMSksbmV3IFBPKDQsNSwxNiw4LDEpLG5ldyBQTyg0LDYsMzIsMzIsMSksbmV3IFBPKDQsNCwxNiwxNiwyKSxuZXcgUE8oOCwxNiwzMiwzMiwyKSxuZXcgUE8oOCwxNiwxMjgsMTI4LDIpLG5ldyBQTyg4LDMyLDEyOCwyNTYsMiksbmV3IFBPKDMyLDEyOCwyNTgsMTAyNCwyKSxuZXcgUE8oMzIsMjU4LDI1OCw0MDk2LDIpXSxSTz1bIm5lZWQgZGljdGlvbmFyeSIsInN0cmVhbSBlbmQiLCIiLCIiLCJzdHJlYW0gZXJyb3IiLCJkYXRhIGVycm9yIiwiIiwiYnVmZmVyIGVycm9yIiwiIiwiIl07ZnVuY3Rpb24gRk8ocix0LG4sZSl7dmFyIGk9clsyKnRdLG89clsyKm5dO3JldHVybiBvPml8fGk9PW8mJmVbdF08PWVbbl19ZnVuY3Rpb24gTk8oKXt2YXIgcix0LG4sZSxpLG8sdSxmLGEsYyxzLHYsaCxsLGQseSx3LGIscCxnLG0sUyxBLGosTyxrLEUsVCx4LFUsTSxJLEwsUCxfLFIsRixOLEMsQj10aGlzLEc9bmV3IFVPLEQ9bmV3IFVPLFY9bmV3IFVPO2Z1bmN0aW9uIFkoKXt2YXIgcjtmb3Iocj0wOzI4Nj5yO3IrKylNWzIqcl09MDtmb3Iocj0wOzMwPnI7cisrKUlbMipyXT0wO2ZvcihyPTA7MTk+cjtyKyspTFsyKnJdPTA7TVs1MTJdPTEsQi5nbj1CLm1uPTAsXz1SPTB9ZnVuY3Rpb24geihyLHQpe3ZhciBuLGU9LTEsaT1yWzFdLG89MCx1PTcsZj00OzA9PT1pJiYodT0xMzgsZj0zKSxyWzIqKHQrMSkrMV09NjU1MzU7Zm9yKHZhciBhPTA7dD49YTthKyspbj1pLGk9clsyKihhKzEpKzFdLCsrbzx1JiZuPT1pfHwoZj5vP0xbMipuXSs9bzowIT09bj8obiE9ZSYmTFsyKm5dKyssTFszMl0rKyk6bz4xMD9MWzM2XSsrOkxbMzRdKyssbz0wLGU9biwwPT09aT8odT0xMzgsZj0zKTpuPT1pPyh1PTYsZj0zKToodT03LGY9NCkpfWZ1bmN0aW9uIFcocil7Qi5XbltCLnBlbmRpbmcrK109cn1mdW5jdGlvbiAkKHIpe1coMjU1JnIpLFcocj4+PjgmMjU1KX1mdW5jdGlvbiBIKHIsdCl7dmFyIG4sZT10O0M+MTYtZT8oJChOfD0obj1yKTw8QyY2NTUzNSksTj1uPj4+MTYtQyxDKz1lLTE2KTooTnw9cjw8QyY2NTUzNSxDKz1lKX1mdW5jdGlvbiBLKHIsdCl7dmFyIG49MipyO0goNjU1MzUmdFtuXSw2NTUzNSZ0W24rMV0pfWZ1bmN0aW9uIHEocix0KXt2YXIgbixlLGk9LTEsbz1yWzFdLHU9MCxmPTcsYT00O2ZvcigwPT09byYmKGY9MTM4LGE9Myksbj0wO3Q+PW47bisrKWlmKGU9byxvPXJbMioobisxKSsxXSwrK3U+PWZ8fGUhPW8pe2lmKGE+dSlkb3tLKGUsTCl9d2hpbGUoMCE9LS11KTtlbHNlIDAhPT1lPyhlIT1pJiYoSyhlLEwpLHUtLSksSygxNixMKSxIKHUtMywyKSk6dT4xMD8oSygxOCxMKSxIKHUtMTEsNykpOihLKDE3LEwpLEgodS0zLDMpKTt1PTAsaT1lLDA9PT1vPyhmPTEzOCxhPTMpOmU9PW8/KGY9NixhPTMpOihmPTcsYT00KX19ZnVuY3Rpb24gSigpezE2PT1DPygkKE4pLE49MCxDPTApOjg+Q3x8KFcoMjU1Jk4pLE4+Pj49OCxDLT04KX1mdW5jdGlvbiBYKHIsdCl7dmFyIG4sZSxpO2lmKEIuJG5bX109cixCLkhuW19dPTI1NSZ0LF8rKywwPT09cj9NWzIqdF0rKzooUisrLHItLSxNWzIqKFVPLlRuW3RdKzI1NisxKV0rKyxJWzIqVU8uTW4ocildKyspLDA9PSg4MTkxJl8pJiZFPjIpe2ZvcihuPTgqXyxlPW0tdyxpPTA7MzA+aTtpKyspbis9SVsyKmldKig1K1VPLkxuW2ldKTtpZihuPj4+PTMsTWF0aC5mbG9vcihfLzIpPlImJk1hdGguZmxvb3IoZS8yKT5uKXJldHVybiEwfXJldHVybiBfPT1QLTF9ZnVuY3Rpb24gUShyLHQpe3ZhciBuLGUsaSxvLHU9MDtpZigwIT09Xylkb3tuPUIuJG5bdV0sZT1CLkhuW3VdLHUrKywwPT09bj9LKGUscik6KEsoKGk9VU8uVG5bZV0pKzI1NisxLHIpLDAhPT0obz1VTy5JbltpXSkmJkgoZS09VU8ueG5baV0sbyksbi0tLEsoaT1VTy5NbihuKSx0KSwwIT09KG89VU8uTG5baV0pJiZIKG4tPVVPLlVuW2ldLG8pKX13aGlsZShfPnUpO0soMjU2LHIpLEY9cls1MTNdfWZ1bmN0aW9uIFooKXtDPjg/JChOKTpDPjAmJlcoMjU1Jk4pLE49MCxDPTB9ZnVuY3Rpb24gcnIocix0LG4pe0goMCsobj8xOjApLDMpLGZ1bmN0aW9uKHIsdCl7WigpLEY9OCwkKHQpLCQofnQpLEIuV24uc2V0KGYuc3ViYXJyYXkocixyK3QpLEIucGVuZGluZyksQi5wZW5kaW5nKz10fShyLHQpfWZ1bmN0aW9uIHRyKHQpeyhmdW5jdGlvbihyLHQsbil7dmFyIGUsaSxvPTA7RT4wPyhHLnNuKEIpLEQuc24oQiksbz1mdW5jdGlvbigpe3ZhciByO2Zvcih6KE0sRy5TbikseihJLEQuU24pLFYuc24oQikscj0xODtyPj0zJiYwPT09TFsyKlVPLl9uW3JdKzFdO3ItLSk7cmV0dXJuIEIuZ24rPTE0KzMqKHIrMSkscn0oKSxlPUIuZ24rMys3Pj4+MywoaT1CLm1uKzMrNz4+PjMpPmV8fChlPWkpKTplPWk9dCs1LHQrND5lfHwtMT09cj9pPT1lPyhIKDIrKG4/MTowKSwzKSxRKE1PLlJuLE1PLkRuKSk6KEgoNCsobj8xOjApLDMpLGZ1bmN0aW9uKHIsdCxuKXt2YXIgZTtmb3IoSChyLTI1Nyw1KSxIKHQtMSw1KSxIKG4tNCw0KSxlPTA7bj5lO2UrKylIKExbMipVTy5fbltlXSsxXSwzKTtxKE0sci0xKSxxKEksdC0xKX0oRy5TbisxLEQuU24rMSxvKzEpLFEoTSxJKSk6cnIocix0LG4pLFkoKSxuJiZaKCl9KSgwPnc/LTE6dyxtLXcsdCksdz1tLHIuS24oKX1mdW5jdGlvbiBucigpe3ZhciB0LG4sZSxvO2Rve2lmKDA9PShvPWEtQS1tKSYmMD09PW0mJjA9PT1BKW89aTtlbHNlIGlmKC0xPT1vKW8tLTtlbHNlIGlmKG0+PWkraS0yNjIpe2Yuc2V0KGYuc3ViYXJyYXkoaSxpK2kpLDApLFMtPWksbS09aSx3LT1pLGU9dD1oO2Rve249NjU1MzUmc1stLWVdLHNbZV09aT5uPzA6bi1pfXdoaWxlKDAhPS0tdCk7ZT10PWk7ZG97bj02NTUzNSZjWy0tZV0sY1tlXT1pPm4/MDpuLWl9d2hpbGUoMCE9LS10KTtvKz1pfWlmKDA9PT1yLnFuKXJldHVybjt0PXIuSm4oZixtK0EsbyksMz4oQSs9dCl8fCh2PSgodj0yNTUmZlttXSk8PHleMjU1JmZbbSsxXSkmZCl9d2hpbGUoMjYyPkEmJjAhPT1yLnFuKX1mdW5jdGlvbiBlcihyKXt2YXIgdCxuLGU9TyxvPW0sYT1qLHM9bT5pLTI2Mj9tLShpLTI2Mik6MCx2PVUsaD11LGw9bSsyNTgsZD1mW28rYS0xXSx5PWZbbythXTt4Pmp8fChlPj49Miksdj5BJiYodj1BKTtkb3tpZihmWyh0PXIpK2FdPT15JiZmW3QrYS0xXT09ZCYmZlt0XT09ZltvXSYmZlsrK3RdPT1mW28rMV0pe28rPTIsdCsrO2Rve313aGlsZShmWysrb109PWZbKyt0XSYmZlsrK29dPT1mWysrdF0mJmZbKytvXT09ZlsrK3RdJiZmWysrb109PWZbKyt0XSYmZlsrK29dPT1mWysrdF0mJmZbKytvXT09ZlsrK3RdJiZmWysrb109PWZbKyt0XSYmZlsrK29dPT1mWysrdF0mJmw+byk7aWYobj0yNTgtKGwtbyksbz1sLTI1OCxuPmEpe2lmKFM9cixhPW4sbj49dilicmVhaztkPWZbbythLTFdLHk9ZltvK2FdfX19d2hpbGUoKHI9NjU1MzUmY1tyJmhdKT5zJiYwIT0tLWUpO3JldHVybiBhPkE/QTphfUIucG49W10sQi5Fbj1bXSxCLmJuPVtdLE09W10sST1bXSxMPVtdLEIuQW49ZnVuY3Rpb24ocix0KXtmb3IodmFyIG49Qi5ibixlPW5bdF0saT10PDwxO2k8PUIueW4mJihpPEIueW4mJkZPKHIsbltpKzFdLG5baV0sQi5wbikmJmkrKywhRk8ocixlLG5baV0sQi5wbikpOyluW3RdPW5baV0sdD1pLGk8PD0xO25bdF09ZX0sQi5Ybj1mdW5jdGlvbihyLHAsUyxfLFIseil7cmV0dXJuIF98fChfPTgpLFJ8fChSPTgpLHp8fCh6PTApLHIuUW49bnVsbCwtMT09cCYmKHA9NiksMT5SfHxSPjl8fDghPV98fDk+U3x8Uz4xNXx8MD5wfHxwPjl8fDA+enx8ej4yPy0yOihyLlpuPUIsdT0oaT0xPDwobz1TKSktMSxkPShoPTE8PChsPVIrNykpLTEseT1NYXRoLmZsb29yKChsKzMtMSkvMyksZj1uZXcgVWludDhBcnJheSgyKmkpLGM9W10scz1bXSxQPTE8PFIrNixCLlduPW5ldyBVaW50OEFycmF5KDQqUCksbj00KlAsQi4kbj1uZXcgVWludDE2QXJyYXkoUCksQi5Ibj1uZXcgVWludDhBcnJheShQKSxFPXAsVD16LGZ1bmN0aW9uKHIpe3JldHVybiByLnJlPXIudGU9MCxyLlFuPW51bGwsQi5wZW5kaW5nPTAsQi5uZT0wLHQ9MTEzLGU9MCxHLnZuPU0sRy5sbj1NTy5WbixELnZuPUksRC5sbj1NTy5ZbixWLnZuPUwsVi5sbj1NTy56bixOPTAsQz0wLEY9OCxZKCksZnVuY3Rpb24oKXthPTIqaSxzW2gtMV09MDtmb3IodmFyIHI9MDtoLTE+cjtyKyspc1tyXT0wO2s9X09bRV0uTm4seD1fT1tFXS5GbixVPV9PW0VdLkNuLE89X09bRV0uQm4sbT0wLHc9MCxBPTAsYj1qPTIsZz0wLHY9MH0oKSwwfShyKSl9LEIuZWU9ZnVuY3Rpb24oKXtyZXR1cm4gNDIhPXQmJjExMyE9dCYmNjY2IT10Py0yOihCLkhuPW51bGwsQi4kbj1udWxsLEIuV249bnVsbCxzPW51bGwsYz1udWxsLGY9bnVsbCxCLlpuPW51bGwsMTEzPT10Py0zOjApfSxCLmllPWZ1bmN0aW9uKHIsdCxuKXt2YXIgZT0wO3JldHVybi0xPT10JiYodD02KSwwPnR8fHQ+OXx8MD5ufHxuPjI/LTI6KF9PW0VdLkduIT1fT1t0XS5HbiYmMCE9PXIucmUmJihlPXIubm4oMSkpLEUhPXQmJihrPV9PW0U9dF0uTm4seD1fT1tFXS5GbixVPV9PW0VdLkNuLE89X09bRV0uQm4pLFQ9bixlKX0sQi5vZT1mdW5jdGlvbihyLG4sZSl7dmFyIG8sYT1lLGg9MDtpZighbnx8NDIhPXQpcmV0dXJuLTI7aWYoMz5hKXJldHVybiAwO2ZvcihhPmktMjYyJiYoaD1lLShhPWktMjYyKSksZi5zZXQobi5zdWJhcnJheShoLGgrYSksMCksbT1hLHc9YSx2PSgodj0yNTUmZlswXSk8PHleMjU1JmZbMV0pJmQsbz0wO2EtMz49bztvKyspdj0odjw8eV4yNTUmZltvKzJdKSZkLGNbbyZ1XT1zW3ZdLHNbdl09bztyZXR1cm4gMH0sQi5ubj1mdW5jdGlvbihhLGwpe3ZhciBPLHgsVSxNLEksTDtpZihsPjR8fDA+bClyZXR1cm4tMjtpZighYS51ZXx8IWEuZmUmJjAhPT1hLnFufHw2NjY9PXQmJjQhPWwpcmV0dXJuIGEuUW49Uk9bNF0sLTI7aWYoMD09PWEuYWUpcmV0dXJuIGEuUW49Uk9bN10sLTU7aWYocj1hLE09ZSxlPWwsNDI9PXQmJih4PTgrKG8tODw8NCk8PDgsKFU9KEUtMSYyNTUpPj4xKT4zJiYoVT0zKSx4fD1VPDw2LDAhPT1tJiYoeHw9MzIpLHQ9MTEzLFcoKEw9eCs9MzEteCUzMSk+PjgmMjU1KSxXKDI1NSZMKSksMCE9PUIucGVuZGluZyl7aWYoci5LbigpLDA9PT1yLmFlKXJldHVybiBlPS0xLDB9ZWxzZSBpZigwPT09ci5xbiYmTT49bCYmNCE9bClyZXR1cm4gci5Rbj1ST1s3XSwtNTtpZig2NjY9PXQmJjAhPT1yLnFuKXJldHVybiBhLlFuPVJPWzddLC01O2lmKDAhPT1yLnFufHwwIT09QXx8MCE9bCYmNjY2IT10KXtzd2l0Y2goST0tMSxfT1tFXS5Hbil7Y2FzZSAwOkk9ZnVuY3Rpb24odCl7dmFyIGUsbz02NTUzNTtmb3Iobz5uLTUmJihvPW4tNSk7Oyl7aWYoMT49QSl7aWYobnIoKSwwPT09QSYmMD09dClyZXR1cm4gMDtpZigwPT09QSlicmVha31pZihtKz1BLEE9MCxlPXcrbywoMD09PW18fG0+PWUpJiYoQT1tLWUsbT1lLHRyKCExKSwwPT09ci5hZSkpcmV0dXJuIDA7aWYobS13Pj1pLTI2MiYmKHRyKCExKSwwPT09ci5hZSkpcmV0dXJuIDB9cmV0dXJuIHRyKDQ9PXQpLDA9PT1yLmFlPzQ9PXQ/MjowOjQ9PXQ/MzoxfShsKTticmVhaztjYXNlIDE6ST1mdW5jdGlvbih0KXtmb3IodmFyIG4sZT0wOzspe2lmKDI2Mj5BKXtpZihucigpLDI2Mj5BJiYwPT10KXJldHVybiAwO2lmKDA9PT1BKWJyZWFrfWlmKDM+QXx8KHY9KHY8PHleMjU1JmZbbSsyXSkmZCxlPTY1NTM1JnNbdl0sY1ttJnVdPXNbdl0sc1t2XT1tKSwwPT09ZXx8KG0tZSY2NTUzNSk+aS0yNjJ8fDIhPVQmJihiPWVyKGUpKSwzPmIpbj1YKDAsMjU1JmZbbV0pLEEtLSxtKys7ZWxzZSBpZihuPVgobS1TLGItMyksQS09YixiPmt8fDM+QSltKz1iLGI9MCx2PSgodj0yNTUmZlttXSk8PHleMjU1JmZbbSsxXSkmZDtlbHNle2ItLTtkb3ttKyssdj0odjw8eV4yNTUmZlttKzJdKSZkLGU9NjU1MzUmc1t2XSxjW20mdV09c1t2XSxzW3ZdPW19d2hpbGUoMCE9LS1iKTttKyt9aWYobiYmKHRyKCExKSwwPT09ci5hZSkpcmV0dXJuIDB9cmV0dXJuIHRyKDQ9PXQpLDA9PT1yLmFlPzQ9PXQ/MjowOjQ9PXQ/MzoxfShsKTticmVhaztjYXNlIDI6ST1mdW5jdGlvbih0KXtmb3IodmFyIG4sZSxvPTA7Oyl7aWYoMjYyPkEpe2lmKG5yKCksMjYyPkEmJjA9PXQpcmV0dXJuIDA7aWYoMD09PUEpYnJlYWt9aWYoMz5BfHwodj0odjw8eV4yNTUmZlttKzJdKSZkLG89NjU1MzUmc1t2XSxjW20mdV09c1t2XSxzW3ZdPW0pLGo9YixwPVMsYj0yLDAhPT1vJiZrPmomJmktMjYyPj0obS1vJjY1NTM1KSYmKDIhPVQmJihiPWVyKG8pKSw1Pj1iJiYoMT09VHx8Mz09YiYmbS1TPjQwOTYpJiYoYj0yKSksMz5qfHxiPmopaWYoMCE9PWcpe2lmKChuPVgoMCwyNTUmZlttLTFdKSkmJnRyKCExKSxtKyssQS0tLDA9PT1yLmFlKXJldHVybiAwfWVsc2UgZz0xLG0rKyxBLS07ZWxzZXtlPW0rQS0zLG49WChtLTEtcCxqLTMpLEEtPWotMSxqLT0yO2RveysrbT5lfHwodj0odjw8eV4yNTUmZlttKzJdKSZkLG89NjU1MzUmc1t2XSxjW20mdV09c1t2XSxzW3ZdPW0pfXdoaWxlKDAhPS0taik7aWYoZz0wLGI9MixtKyssbiYmKHRyKCExKSwwPT09ci5hZSkpcmV0dXJuIDB9fXJldHVybiAwIT09ZyYmKG49WCgwLDI1NSZmW20tMV0pLGc9MCksdHIoND09dCksMD09PXIuYWU/ND09dD8yOjA6ND09dD8zOjF9KGwpfWlmKDIhPUkmJjMhPUl8fCh0PTY2NiksMD09SXx8Mj09SSlyZXR1cm4gMD09PXIuYWUmJihlPS0xKSwwO2lmKDE9PUkpe2lmKDE9PWwpSCgyLDMpLEsoMjU2LE1PLlJuKSxKKCksOT4xK0YrMTAtQyYmKEgoMiwzKSxLKDI1NixNTy5SbiksSigpKSxGPTc7ZWxzZSBpZihycigwLDAsITEpLDM9PWwpZm9yKE89MDtoPk87TysrKXNbT109MDtpZihyLktuKCksMD09PXIuYWUpcmV0dXJuIGU9LTEsMH19cmV0dXJuIDQhPWw/MDoxfX1mdW5jdGlvbiBDTygpe3ZhciByPXRoaXM7ci5jZT0wLHIuc2U9MCxyLnFuPTAsci5yZT0wLHIuYWU9MCxyLnRlPTB9ZnVuY3Rpb24gQk8ocil7dmFyIHQsbj1uZXcgQ08sZT0odD1yJiZyLlF0P3IuUXQ6NjU1MzYpKzUqKE1hdGguZmxvb3IodC8xNjM4MykrMSksaT1uZXcgVWludDhBcnJheShlKSxvPXI/ci5sZXZlbDotMTt2b2lkIDA9PT1vJiYobz0tMSksbi5YbihvKSxuLnVlPWksdGhpcy5hcHBlbmQ9ZnVuY3Rpb24ocix0KXt2YXIgbyx1PTAsZj0wLGE9MCxjPVtdO2lmKHIubGVuZ3RoKXtuLmNlPTAsbi5mZT1yLG4ucW49ci5sZW5ndGg7ZG97aWYobi5zZT0wLG4uYWU9ZSwwIT1uLm5uKDApKXRocm93IEVycm9yKCJkZWZsYXRpbmc6ICIrbi5Rbik7bi5zZSYmKG4uc2U9PWU/Yy5wdXNoKG5ldyBVaW50OEFycmF5KGkpKTpjLnB1c2goaS5zbGljZSgwLG4uc2UpKSksYSs9bi5zZSx0JiZuLmNlPjAmJm4uY2UhPXUmJih0KG4uY2UpLHU9bi5jZSl9d2hpbGUobi5xbj4wfHwwPT09bi5hZSk7cmV0dXJuIGMubGVuZ3RoPjE/KG89bmV3IFVpbnQ4QXJyYXkoYSksYy5mb3JFYWNoKChmdW5jdGlvbihyKXtvLnNldChyLGYpLGYrPXIubGVuZ3RofSkpKTpvPWNbMF18fG5ldyBVaW50OEFycmF5KDApLG99fSx0aGlzLmZsdXNoPWZ1bmN0aW9uKCl7dmFyIHIsdCxvPTAsdT0wLGY9W107ZG97aWYobi5zZT0wLG4uYWU9ZSwxIT0ocj1uLm5uKDQpKSYmMCE9cil0aHJvdyBFcnJvcigiZGVmbGF0aW5nOiAiK24uUW4pO2Utbi5hZT4wJiZmLnB1c2goaS5zbGljZSgwLG4uc2UpKSx1Kz1uLnNlfXdoaWxlKG4ucW4+MHx8MD09PW4uYWUpO3JldHVybiBuLmVlKCksdD1uZXcgVWludDhBcnJheSh1KSxmLmZvckVhY2goKGZ1bmN0aW9uKHIpe3Quc2V0KHIsbyksbys9ci5sZW5ndGh9KSksdH19Q08ucHJvdG90eXBlPXtYbjpmdW5jdGlvbihyLHQpe3ZhciBuPXRoaXM7cmV0dXJuIG4uWm49bmV3IE5PLHR8fCh0PTE1KSxuLlpuLlhuKG4scix0KX0sbm46ZnVuY3Rpb24ocil7dmFyIHQ9dGhpcztyZXR1cm4gdC5abj90LlpuLm5uKHQscik6LTJ9LGVlOmZ1bmN0aW9uKCl7dmFyIHI9dGhpcztpZighci5abilyZXR1cm4tMjt2YXIgdD1yLlpuLmVlKCk7cmV0dXJuIHIuWm49bnVsbCx0fSxpZTpmdW5jdGlvbihyLHQpe3ZhciBuPXRoaXM7cmV0dXJuIG4uWm4/bi5abi5pZShuLHIsdCk6LTJ9LG9lOmZ1bmN0aW9uKHIsdCl7dmFyIG49dGhpcztyZXR1cm4gbi5abj9uLlpuLm9lKG4scix0KTotMn0sSm46ZnVuY3Rpb24ocix0LG4pe3ZhciBlPXRoaXMsaT1lLnFuO3JldHVybiBpPm4mJihpPW4pLDA9PT1pPzA6KGUucW4tPWksci5zZXQoZS5mZS5zdWJhcnJheShlLmNlLGUuY2UraSksdCksZS5jZSs9aSxlLnJlKz1pLGkpfSxLbjpmdW5jdGlvbigpe3ZhciByPXRoaXMsdD1yLlpuLnBlbmRpbmc7dD5yLmFlJiYodD1yLmFlKSwwIT09dCYmKHIudWUuc2V0KHIuWm4uV24uc3ViYXJyYXkoci5abi5uZSxyLlpuLm5lK3QpLHIuc2UpLHIuc2UrPXQsci5abi5uZSs9dCxyLnRlKz10LHIuYWUtPXQsci5abi5wZW5kaW5nLT10LDA9PT1yLlpuLnBlbmRpbmcmJihyLlpuLm5lPTApKX19LCgwLHNhLmV4cG9ydHMpKCJJbnQzMiIsKGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbih0LG4sZSl7cmV0dXJuIHIodGhpcyx0LG4sZSl9fSkpO3ZhciBHTz1bMCwxLDMsNywxNSwzMSw2MywxMjcsMjU1LDUxMSwxMDIzLDIwNDcsNDA5NSw4MTkxLDE2MzgzLDMyNzY3LDY1NTM1XSxETz1bOTYsNywyNTYsMCw4LDgwLDAsOCwxNiw4NCw4LDExNSw4Miw3LDMxLDAsOCwxMTIsMCw4LDQ4LDAsOSwxOTIsODAsNywxMCwwLDgsOTYsMCw4LDMyLDAsOSwxNjAsMCw4LDAsMCw4LDEyOCwwLDgsNjQsMCw5LDIyNCw4MCw3LDYsMCw4LDg4LDAsOCwyNCwwLDksMTQ0LDgzLDcsNTksMCw4LDEyMCwwLDgsNTYsMCw5LDIwOCw4MSw3LDE3LDAsOCwxMDQsMCw4LDQwLDAsOSwxNzYsMCw4LDgsMCw4LDEzNiwwLDgsNzIsMCw5LDI0MCw4MCw3LDQsMCw4LDg0LDAsOCwyMCw4NSw4LDIyNyw4Myw3LDQzLDAsOCwxMTYsMCw4LDUyLDAsOSwyMDAsODEsNywxMywwLDgsMTAwLDAsOCwzNiwwLDksMTY4LDAsOCw0LDAsOCwxMzIsMCw4LDY4LDAsOSwyMzIsODAsNyw4LDAsOCw5MiwwLDgsMjgsMCw5LDE1Miw4NCw3LDgzLDAsOCwxMjQsMCw4LDYwLDAsOSwyMTYsODIsNywyMywwLDgsMTA4LDAsOCw0NCwwLDksMTg0LDAsOCwxMiwwLDgsMTQwLDAsOCw3NiwwLDksMjQ4LDgwLDcsMywwLDgsODIsMCw4LDE4LDg1LDgsMTYzLDgzLDcsMzUsMCw4LDExNCwwLDgsNTAsMCw5LDE5Niw4MSw3LDExLDAsOCw5OCwwLDgsMzQsMCw5LDE2NCwwLDgsMiwwLDgsMTMwLDAsOCw2NiwwLDksMjI4LDgwLDcsNywwLDgsOTAsMCw4LDI2LDAsOSwxNDgsODQsNyw2NywwLDgsMTIyLDAsOCw1OCwwLDksMjEyLDgyLDcsMTksMCw4LDEwNiwwLDgsNDIsMCw5LDE4MCwwLDgsMTAsMCw4LDEzOCwwLDgsNzQsMCw5LDI0NCw4MCw3LDUsMCw4LDg2LDAsOCwyMiwxOTIsOCwwLDgzLDcsNTEsMCw4LDExOCwwLDgsNTQsMCw5LDIwNCw4MSw3LDE1LDAsOCwxMDIsMCw4LDM4LDAsOSwxNzIsMCw4LDYsMCw4LDEzNCwwLDgsNzAsMCw5LDIzNiw4MCw3LDksMCw4LDk0LDAsOCwzMCwwLDksMTU2LDg0LDcsOTksMCw4LDEyNiwwLDgsNjIsMCw5LDIyMCw4Miw3LDI3LDAsOCwxMTAsMCw4LDQ2LDAsOSwxODgsMCw4LDE0LDAsOCwxNDIsMCw4LDc4LDAsOSwyNTIsOTYsNywyNTYsMCw4LDgxLDAsOCwxNyw4NSw4LDEzMSw4Miw3LDMxLDAsOCwxMTMsMCw4LDQ5LDAsOSwxOTQsODAsNywxMCwwLDgsOTcsMCw4LDMzLDAsOSwxNjIsMCw4LDEsMCw4LDEyOSwwLDgsNjUsMCw5LDIyNiw4MCw3LDYsMCw4LDg5LDAsOCwyNSwwLDksMTQ2LDgzLDcsNTksMCw4LDEyMSwwLDgsNTcsMCw5LDIxMCw4MSw3LDE3LDAsOCwxMDUsMCw4LDQxLDAsOSwxNzgsMCw4LDksMCw4LDEzNywwLDgsNzMsMCw5LDI0Miw4MCw3LDQsMCw4LDg1LDAsOCwyMSw4MCw4LDI1OCw4Myw3LDQzLDAsOCwxMTcsMCw4LDUzLDAsOSwyMDIsODEsNywxMywwLDgsMTAxLDAsOCwzNywwLDksMTcwLDAsOCw1LDAsOCwxMzMsMCw4LDY5LDAsOSwyMzQsODAsNyw4LDAsOCw5MywwLDgsMjksMCw5LDE1NCw4NCw3LDgzLDAsOCwxMjUsMCw4LDYxLDAsOSwyMTgsODIsNywyMywwLDgsMTA5LDAsOCw0NSwwLDksMTg2LDAsOCwxMywwLDgsMTQxLDAsOCw3NywwLDksMjUwLDgwLDcsMywwLDgsODMsMCw4LDE5LDg1LDgsMTk1LDgzLDcsMzUsMCw4LDExNSwwLDgsNTEsMCw5LDE5OCw4MSw3LDExLDAsOCw5OSwwLDgsMzUsMCw5LDE2NiwwLDgsMywwLDgsMTMxLDAsOCw2NywwLDksMjMwLDgwLDcsNywwLDgsOTEsMCw4LDI3LDAsOSwxNTAsODQsNyw2NywwLDgsMTIzLDAsOCw1OSwwLDksMjE0LDgyLDcsMTksMCw4LDEwNywwLDgsNDMsMCw5LDE4MiwwLDgsMTEsMCw4LDEzOSwwLDgsNzUsMCw5LDI0Niw4MCw3LDUsMCw4LDg3LDAsOCwyMywxOTIsOCwwLDgzLDcsNTEsMCw4LDExOSwwLDgsNTUsMCw5LDIwNiw4MSw3LDE1LDAsOCwxMDMsMCw4LDM5LDAsOSwxNzQsMCw4LDcsMCw4LDEzNSwwLDgsNzEsMCw5LDIzOCw4MCw3LDksMCw4LDk1LDAsOCwzMSwwLDksMTU4LDg0LDcsOTksMCw4LDEyNywwLDgsNjMsMCw5LDIyMiw4Miw3LDI3LDAsOCwxMTEsMCw4LDQ3LDAsOSwxOTAsMCw4LDE1LDAsOCwxNDMsMCw4LDc5LDAsOSwyNTQsOTYsNywyNTYsMCw4LDgwLDAsOCwxNiw4NCw4LDExNSw4Miw3LDMxLDAsOCwxMTIsMCw4LDQ4LDAsOSwxOTMsODAsNywxMCwwLDgsOTYsMCw4LDMyLDAsOSwxNjEsMCw4LDAsMCw4LDEyOCwwLDgsNjQsMCw5LDIyNSw4MCw3LDYsMCw4LDg4LDAsOCwyNCwwLDksMTQ1LDgzLDcsNTksMCw4LDEyMCwwLDgsNTYsMCw5LDIwOSw4MSw3LDE3LDAsOCwxMDQsMCw4LDQwLDAsOSwxNzcsMCw4LDgsMCw4LDEzNiwwLDgsNzIsMCw5LDI0MSw4MCw3LDQsMCw4LDg0LDAsOCwyMCw4NSw4LDIyNyw4Myw3LDQzLDAsOCwxMTYsMCw4LDUyLDAsOSwyMDEsODEsNywxMywwLDgsMTAwLDAsOCwzNiwwLDksMTY5LDAsOCw0LDAsOCwxMzIsMCw4LDY4LDAsOSwyMzMsODAsNyw4LDAsOCw5MiwwLDgsMjgsMCw5LDE1Myw4NCw3LDgzLDAsOCwxMjQsMCw4LDYwLDAsOSwyMTcsODIsNywyMywwLDgsMTA4LDAsOCw0NCwwLDksMTg1LDAsOCwxMiwwLDgsMTQwLDAsOCw3NiwwLDksMjQ5LDgwLDcsMywwLDgsODIsMCw4LDE4LDg1LDgsMTYzLDgzLDcsMzUsMCw4LDExNCwwLDgsNTAsMCw5LDE5Nyw4MSw3LDExLDAsOCw5OCwwLDgsMzQsMCw5LDE2NSwwLDgsMiwwLDgsMTMwLDAsOCw2NiwwLDksMjI5LDgwLDcsNywwLDgsOTAsMCw4LDI2LDAsOSwxNDksODQsNyw2NywwLDgsMTIyLDAsOCw1OCwwLDksMjEzLDgyLDcsMTksMCw4LDEwNiwwLDgsNDIsMCw5LDE4MSwwLDgsMTAsMCw4LDEzOCwwLDgsNzQsMCw5LDI0NSw4MCw3LDUsMCw4LDg2LDAsOCwyMiwxOTIsOCwwLDgzLDcsNTEsMCw4LDExOCwwLDgsNTQsMCw5LDIwNSw4MSw3LDE1LDAsOCwxMDIsMCw4LDM4LDAsOSwxNzMsMCw4LDYsMCw4LDEzNCwwLDgsNzAsMCw5LDIzNyw4MCw3LDksMCw4LDk0LDAsOCwzMCwwLDksMTU3LDg0LDcsOTksMCw4LDEyNiwwLDgsNjIsMCw5LDIyMSw4Miw3LDI3LDAsOCwxMTAsMCw4LDQ2LDAsOSwxODksMCw4LDE0LDAsOCwxNDIsMCw4LDc4LDAsOSwyNTMsOTYsNywyNTYsMCw4LDgxLDAsOCwxNyw4NSw4LDEzMSw4Miw3LDMxLDAsOCwxMTMsMCw4LDQ5LDAsOSwxOTUsODAsNywxMCwwLDgsOTcsMCw4LDMzLDAsOSwxNjMsMCw4LDEsMCw4LDEyOSwwLDgsNjUsMCw5LDIyNyw4MCw3LDYsMCw4LDg5LDAsOCwyNSwwLDksMTQ3LDgzLDcsNTksMCw4LDEyMSwwLDgsNTcsMCw5LDIxMSw4MSw3LDE3LDAsOCwxMDUsMCw4LDQxLDAsOSwxNzksMCw4LDksMCw4LDEzNywwLDgsNzMsMCw5LDI0Myw4MCw3LDQsMCw4LDg1LDAsOCwyMSw4MCw4LDI1OCw4Myw3LDQzLDAsOCwxMTcsMCw4LDUzLDAsOSwyMDMsODEsNywxMywwLDgsMTAxLDAsOCwzNywwLDksMTcxLDAsOCw1LDAsOCwxMzMsMCw4LDY5LDAsOSwyMzUsODAsNyw4LDAsOCw5MywwLDgsMjksMCw5LDE1NSw4NCw3LDgzLDAsOCwxMjUsMCw4LDYxLDAsOSwyMTksODIsNywyMywwLDgsMTA5LDAsOCw0NSwwLDksMTg3LDAsOCwxMywwLDgsMTQxLDAsOCw3NywwLDksMjUxLDgwLDcsMywwLDgsODMsMCw4LDE5LDg1LDgsMTk1LDgzLDcsMzUsMCw4LDExNSwwLDgsNTEsMCw5LDE5OSw4MSw3LDExLDAsOCw5OSwwLDgsMzUsMCw5LDE2NywwLDgsMywwLDgsMTMxLDAsOCw2NywwLDksMjMxLDgwLDcsNywwLDgsOTEsMCw4LDI3LDAsOSwxNTEsODQsNyw2NywwLDgsMTIzLDAsOCw1OSwwLDksMjE1LDgyLDcsMTksMCw4LDEwNywwLDgsNDMsMCw5LDE4MywwLDgsMTEsMCw4LDEzOSwwLDgsNzUsMCw5LDI0Nyw4MCw3LDUsMCw4LDg3LDAsOCwyMywxOTIsOCwwLDgzLDcsNTEsMCw4LDExOSwwLDgsNTUsMCw5LDIwNyw4MSw3LDE1LDAsOCwxMDMsMCw4LDM5LDAsOSwxNzUsMCw4LDcsMCw4LDEzNSwwLDgsNzEsMCw5LDIzOSw4MCw3LDksMCw4LDk1LDAsOCwzMSwwLDksMTU5LDg0LDcsOTksMCw4LDEyNywwLDgsNjMsMCw5LDIyMyw4Miw3LDI3LDAsOCwxMTEsMCw4LDQ3LDAsOSwxOTEsMCw4LDE1LDAsOCwxNDMsMCw4LDc5LDAsOSwyNTVdLFZPPVs4MCw1LDEsODcsNSwyNTcsODMsNSwxNyw5MSw1LDQwOTcsODEsNSw1LDg5LDUsMTAyNSw4NSw1LDY1LDkzLDUsMTYzODUsODAsNSwzLDg4LDUsNTEzLDg0LDUsMzMsOTIsNSw4MTkzLDgyLDUsOSw5MCw1LDIwNDksODYsNSwxMjksMTkyLDUsMjQ1NzcsODAsNSwyLDg3LDUsMzg1LDgzLDUsMjUsOTEsNSw2MTQ1LDgxLDUsNyw4OSw1LDE1MzcsODUsNSw5Nyw5Myw1LDI0NTc3LDgwLDUsNCw4OCw1LDc2OSw4NCw1LDQ5LDkyLDUsMTIyODksODIsNSwxMyw5MCw1LDMwNzMsODYsNSwxOTMsMTkyLDUsMjQ1NzddLFlPPVszLDQsNSw2LDcsOCw5LDEwLDExLDEzLDE1LDE3LDE5LDIzLDI3LDMxLDM1LDQzLDUxLDU5LDY3LDgzLDk5LDExNSwxMzEsMTYzLDE5NSwyMjcsMjU4LDAsMF0sek89WzAsMCwwLDAsMCwwLDAsMCwxLDEsMSwxLDIsMiwyLDIsMywzLDMsMyw0LDQsNCw0LDUsNSw1LDUsMCwxMTIsMTEyXSxXTz1bMSwyLDMsNCw1LDcsOSwxMywxNywyNSwzMyw0OSw2NSw5NywxMjksMTkzLDI1NywzODUsNTEzLDc2OSwxMDI1LDE1MzcsMjA0OSwzMDczLDQwOTcsNjE0NSw4MTkzLDEyMjg5LDE2Mzg1LDI0NTc3XSwkTz1bMCwwLDAsMCwxLDEsMiwyLDMsMyw0LDQsNSw1LDYsNiw3LDcsOCw4LDksOSwxMCwxMCwxMSwxMSwxMiwxMiwxMywxM107ZnVuY3Rpb24gSE8oKXt2YXIgcix0LG4sZSxpLG87ZnVuY3Rpb24gdShyLHQsdSxmLGEsYyxzLHYsaCxsLGQpe3ZhciB5LHcsYixwLGcsbSxTLEEsaixPLGssRSxULHgsVTtPPTAsZz11O2Rve25bclt0K09dXSsrLE8rKyxnLS19d2hpbGUoMCE9PWcpO2lmKG5bMF09PXUpcmV0dXJuIHNbMF09LTEsdlswXT0wLDA7Zm9yKEE9dlswXSxtPTE7MTU+PW0mJjA9PT1uW21dO20rKyk7Zm9yKFM9bSxtPkEmJihBPW0pLGc9MTU7MCE9PWcmJjA9PT1uW2ddO2ctLSk7Zm9yKGI9ZyxBPmcmJihBPWcpLHZbMF09QSx4PTE8PG07Zz5tO20rKyx4PDw9MSlpZigwPih4LT1uW21dKSlyZXR1cm4tMztpZigwPih4LT1uW2ddKSlyZXR1cm4tMztmb3IobltnXSs9eCxvWzFdPW09MCxPPTEsVD0yOzAhPS0tZzspb1tUXT1tKz1uW09dLFQrKyxPKys7Zz0wLE89MDtkb3swIT09KG09clt0K09dKSYmKGRbb1ttXSsrXT1nKSxPKyt9d2hpbGUoKytnPHUpO2Zvcih1PW9bYl0sb1swXT1nPTAsTz0wLHA9LTEsRT0tQSxpWzBdPTAsaz0wLFU9MDtiPj1TO1MrKylmb3IoeT1uW1NdOzAhPXktLTspe2Zvcig7Uz5FK0E7KXtpZihwKyssVT0oVT1iLShFKz1BKSk+QT9BOlUsKHc9MTw8KG09Uy1FKSk+eSsxJiYody09eSsxLFQ9UyxVPm0pKWZvcig7KyttPFUmJih3PDw9MSk+blsrK1RdOyl3LT1uW1RdO2lmKFU9MTw8bSxsWzBdK1U+MTQ0MClyZXR1cm4tMztpW3BdPWs9bFswXSxsWzBdKz1VLDAhPT1wPyhvW3BdPWcsZVswXT1tLGVbMV09QSxtPWc+Pj5FLUEsZVsyXT1rLWlbcC0xXS1tLGguc2V0KGUsMyooaVtwLTFdK20pKSk6c1swXT1rfWZvcihlWzFdPVMtRSx1Pk8/ZFtPXTxmPyhlWzBdPTI1Nj5kW09dPzA6OTYsZVsyXT1kW08rK10pOihlWzBdPWNbZFtPXS1mXSsxNis2NCxlWzJdPWFbZFtPKytdLWZdKTplWzBdPTE5Mix3PTE8PFMtRSxtPWc+Pj5FO1U+bTttKz13KWguc2V0KGUsMyooayttKSk7Zm9yKG09MTw8Uy0xOzAhPShnJm0pO20+Pj49MSlnXj1tO2ZvcihnXj1tLGo9KDE8PEUpLTE7KGcmaikhPW9bcF07KXAtLSxqPSgxPDwoRS09QSkpLTF9cmV0dXJuIDAhPT14JiYxIT1iPy01OjB9ZnVuY3Rpb24gZih1KXt2YXIgZjtmb3Iocnx8KHI9W10sdD1bXSxuPW5ldyBJbnQzMkFycmF5KDE2KSxlPVtdLGk9bmV3IEludDMyQXJyYXkoMTUpLG89bmV3IEludDMyQXJyYXkoMTYpKSx0Lmxlbmd0aDx1JiYodD1bXSksZj0wO3U+ZjtmKyspdFtmXT0wO2ZvcihmPTA7MTY+ZjtmKyspbltmXT0wO2ZvcihmPTA7Mz5mO2YrKyllW2ZdPTA7aS5zZXQobi5zdWJhcnJheSgwLDE1KSwwKSxvLnNldChuLnN1YmFycmF5KDAsMTYpLDApfXRoaXMudmU9ZnVuY3Rpb24obixlLGksbyxhKXt2YXIgYztyZXR1cm4gZigxOSksclswXT0wLC0zPT0oYz11KG4sMCwxOSwxOSxudWxsLG51bGwsaSxlLG8scix0KSk/YS5Rbj0ib3ZlcnN1YnNjcmliZWQgZHluYW1pYyBiaXQgbGVuZ3RocyB0cmVlIjotNSE9YyYmMCE9PWVbMF18fChhLlFuPSJpbmNvbXBsZXRlIGR5bmFtaWMgYml0IGxlbmd0aHMgdHJlZSIsYz0tMyksY30sdGhpcy5oZT1mdW5jdGlvbihuLGUsaSxvLGEsYyxzLHYsaCl7dmFyIGw7cmV0dXJuIGYoMjg4KSxyWzBdPTAsMCE9KGw9dShpLDAsbiwyNTcsWU8sek8sYyxvLHYscix0KSl8fDA9PT1vWzBdPygtMz09bD9oLlFuPSJvdmVyc3Vic2NyaWJlZCBsaXRlcmFsL2xlbmd0aCB0cmVlIjotNCE9bCYmKGguUW49ImluY29tcGxldGUgbGl0ZXJhbC9sZW5ndGggdHJlZSIsbD0tMyksbCk6KGYoMjg4KSwwIT0obD11KGksbixlLDAsV08sJE8scyxhLHYscix0KSl8fDA9PT1hWzBdJiZuPjI1Nz8oLTM9PWw/aC5Rbj0ib3ZlcnN1YnNjcmliZWQgZGlzdGFuY2UgdHJlZSI6LTU9PWw/KGguUW49ImluY29tcGxldGUgZGlzdGFuY2UgdHJlZSIsbD0tMyk6LTQhPWwmJihoLlFuPSJlbXB0eSBkaXN0YW5jZSB0cmVlIHdpdGggbGVuZ3RocyIsbD0tMyksbCk6MCl9fWZ1bmN0aW9uIEtPKCl7dmFyIHIsdCxuLGUsaT10aGlzLG89MCx1PTAsZj0wLGE9MCxjPTAscz0wLHY9MCxoPTAsbD0wLGQ9MDtmdW5jdGlvbiB5KHIsdCxuLGUsaSxvLHUsZil7dmFyIGEsYyxzLHYsaCxsLGQseSx3LGIscCxnLG0sUyxBLGo7ZD1mLmNlLHk9Zi5xbixoPXUubGUsbD11LmRlLGI9KHc9dS53cml0ZSk8dS5yZWFkP3UucmVhZC13LTE6dS5lbmQtdyxwPUdPW3JdLGc9R09bdF07ZG97Zm9yKDsyMD5sOyl5LS0saHw9KDI1NSZmLnllKGQrKykpPDxsLGwrPTg7aWYoMCE9PSh2PShjPW4pW2o9MyooKHM9ZSkrKGE9aCZwKSldKSlmb3IoOzspe2lmKGg+Pj1jW2orMV0sbC09Y1tqKzFdLDAhPSgxNiZ2KSl7Zm9yKHYmPTE1LG09Y1tqKzJdKyhoJkdPW3ZdKSxoPj49dixsLT12OzE1Pmw7KXktLSxofD0oMjU1JmYueWUoZCsrKSk8PGwsbCs9ODtmb3Iodj0oYz1pKVtqPTMqKChzPW8pKyhhPWgmZykpXTs7KXtpZihoPj49Y1tqKzFdLGwtPWNbaisxXSwwIT0oMTYmdikpe2Zvcih2Jj0xNTt2Pmw7KXktLSxofD0oMjU1JmYueWUoZCsrKSk8PGwsbCs9ODtpZihTPWNbaisyXSsoaCZHT1t2XSksaD4+PXYsbC09dixiLT1tLFM+dyl7QT13LVM7ZG97QSs9dS5lbmR9d2hpbGUoMD5BKTtpZihtPih2PXUuZW5kLUEpKXtpZihtLT12LHctQT4wJiZ2PnctQSlkb3t1LndlW3crK109dS53ZVtBKytdfXdoaWxlKDAhPS0tdik7ZWxzZSB1LndlLnNldCh1LndlLnN1YmFycmF5KEEsQSt2KSx3KSx3Kz12LEErPXYsdj0wO0E9MH19ZWxzZSB3LShBPXctUyk+MCYmMj53LUE/KHUud2VbdysrXT11LndlW0ErK10sdS53ZVt3KytdPXUud2VbQSsrXSxtLT0yKToodS53ZS5zZXQodS53ZS5zdWJhcnJheShBLEErMiksdyksdys9MixBKz0yLG0tPTIpO2lmKHctQT4wJiZtPnctQSlkb3t1LndlW3crK109dS53ZVtBKytdfXdoaWxlKDAhPS0tbSk7ZWxzZSB1LndlLnNldCh1LndlLnN1YmFycmF5KEEsQSttKSx3KSx3Kz1tLEErPW0sbT0wO2JyZWFrfWlmKDAhPSg2NCZ2KSlyZXR1cm4gZi5Rbj0iaW52YWxpZCBkaXN0YW5jZSBjb2RlIix5Kz1tPShtPWYucW4teSk+bD4+Mz9sPj4zOm0sZC09bSxsLT1tPDwzLHUubGU9aCx1LmRlPWwsZi5xbj15LGYucmUrPWQtZi5jZSxmLmNlPWQsdS53cml0ZT13LC0zO2ErPWNbaisyXSx2PWNbaj0zKihzKyhhKz1oJkdPW3ZdKSldfWJyZWFrfWlmKDAhPSg2NCZ2KSlyZXR1cm4gMCE9KDMyJnYpPyh5Kz1tPShtPWYucW4teSk+bD4+Mz9sPj4zOm0sZC09bSxsLT1tPDwzLHUubGU9aCx1LmRlPWwsZi5xbj15LGYucmUrPWQtZi5jZSxmLmNlPWQsdS53cml0ZT13LDEpOihmLlFuPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUiLHkrPW09KG09Zi5xbi15KT5sPj4zP2w+PjM6bSxkLT1tLGwtPW08PDMsdS5sZT1oLHUuZGU9bCxmLnFuPXksZi5yZSs9ZC1mLmNlLGYuY2U9ZCx1LndyaXRlPXcsLTMpO2lmKGErPWNbaisyXSwwPT09KHY9Y1tqPTMqKHMrKGErPWgmR09bdl0pKV0pKXtoPj49Y1tqKzFdLGwtPWNbaisxXSx1LndlW3crK109Y1tqKzJdLGItLTticmVha319ZWxzZSBoPj49Y1tqKzFdLGwtPWNbaisxXSx1LndlW3crK109Y1tqKzJdLGItLX13aGlsZShiPj0yNTgmJnk+PTEwKTtyZXR1cm4geSs9bT0obT1mLnFuLXkpPmw+PjM/bD4+MzptLGQtPW0sbC09bTw8Myx1LmxlPWgsdS5kZT1sLGYucW49eSxmLnJlKz1kLWYuY2UsZi5jZT1kLHUud3JpdGU9dywwfWkuaW5pdD1mdW5jdGlvbihpLG8sdSxmLGEsYyl7cj0wLHY9aSxoPW8sbj11LGw9ZixlPWEsZD1jLHQ9bnVsbH0saS5iZT1mdW5jdGlvbihpLHcsYil7dmFyIHAsZyxtLFMsQSxqLE8saz0wLEU9MCxUPTA7Zm9yKFQ9dy5jZSxTPXcucW4saz1pLmxlLEU9aS5kZSxqPShBPWkud3JpdGUpPGkucmVhZD9pLnJlYWQtQS0xOmkuZW5kLUE7Oylzd2l0Y2gocil7Y2FzZSAwOmlmKGo+PTI1OCYmUz49MTAmJihpLmxlPWssaS5kZT1FLHcucW49Uyx3LnJlKz1ULXcuY2Usdy5jZT1ULGkud3JpdGU9QSxiPXkodixoLG4sbCxlLGQsaSx3KSxUPXcuY2UsUz13LnFuLGs9aS5sZSxFPWkuZGUsaj0oQT1pLndyaXRlKTxpLnJlYWQ/aS5yZWFkLUEtMTppLmVuZC1BLDAhPWIpKXtyPTE9PWI/Nzo5O2JyZWFrfWY9dix0PW4sdT1sLHI9MTtjYXNlIDE6Zm9yKHA9ZjtwPkU7KXtpZigwPT09UylyZXR1cm4gaS5sZT1rLGkuZGU9RSx3LnFuPVMsdy5yZSs9VC13LmNlLHcuY2U9VCxpLndyaXRlPUEsaS5wZSh3LGIpO2I9MCxTLS0sa3w9KDI1NSZ3LnllKFQrKykpPDxFLEUrPTh9aWYoaz4+Pj10WzErKGc9MyoodSsoayZHT1twXSkpKV0sRS09dFtnKzFdLDA9PT0obT10W2ddKSl7YT10W2crMl0scj02O2JyZWFrfWlmKDAhPSgxNiZtKSl7Yz0xNSZtLG89dFtnKzJdLHI9MjticmVha31pZigwPT0oNjQmbSkpe2Y9bSx1PWcvMyt0W2crMl07YnJlYWt9aWYoMCE9KDMyJm0pKXtyPTc7YnJlYWt9cmV0dXJuIHI9OSx3LlFuPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUiLGI9LTMsaS5sZT1rLGkuZGU9RSx3LnFuPVMsdy5yZSs9VC13LmNlLHcuY2U9VCxpLndyaXRlPUEsaS5wZSh3LGIpO2Nhc2UgMjpmb3IocD1jO3A+RTspe2lmKDA9PT1TKXJldHVybiBpLmxlPWssaS5kZT1FLHcucW49Uyx3LnJlKz1ULXcuY2Usdy5jZT1ULGkud3JpdGU9QSxpLnBlKHcsYik7Yj0wLFMtLSxrfD0oMjU1JncueWUoVCsrKSk8PEUsRSs9OH1vKz1rJkdPW3BdLGs+Pj1wLEUtPXAsZj1oLHQ9ZSx1PWQscj0zO2Nhc2UgMzpmb3IocD1mO3A+RTspe2lmKDA9PT1TKXJldHVybiBpLmxlPWssaS5kZT1FLHcucW49Uyx3LnJlKz1ULXcuY2Usdy5jZT1ULGkud3JpdGU9QSxpLnBlKHcsYik7Yj0wLFMtLSxrfD0oMjU1JncueWUoVCsrKSk8PEUsRSs9OH1pZihrPj49dFsxKyhnPTMqKHUrKGsmR09bcF0pKSldLEUtPXRbZysxXSwwIT0oMTYmKG09dFtnXSkpKXtjPTE1Jm0scz10W2crMl0scj00O2JyZWFrfWlmKDA9PSg2NCZtKSl7Zj1tLHU9Zy8zK3RbZysyXTticmVha31yZXR1cm4gcj05LHcuUW49ImludmFsaWQgZGlzdGFuY2UgY29kZSIsYj0tMyxpLmxlPWssaS5kZT1FLHcucW49Uyx3LnJlKz1ULXcuY2Usdy5jZT1ULGkud3JpdGU9QSxpLnBlKHcsYik7Y2FzZSA0OmZvcihwPWM7cD5FOyl7aWYoMD09PVMpcmV0dXJuIGkubGU9ayxpLmRlPUUsdy5xbj1TLHcucmUrPVQtdy5jZSx3LmNlPVQsaS53cml0ZT1BLGkucGUodyxiKTtiPTAsUy0tLGt8PSgyNTUmdy55ZShUKyspKTw8RSxFKz04fXMrPWsmR09bcF0saz4+PXAsRS09cCxyPTU7Y2FzZSA1OmZvcihPPUEtczswPk87KU8rPWkuZW5kO2Zvcig7MCE9PW87KXtpZigwPT09aiYmKEE9PWkuZW5kJiYwIT09aS5yZWFkJiYoaj0oQT0wKTxpLnJlYWQ/aS5yZWFkLUEtMTppLmVuZC1BKSwwPT09aiYmKGkud3JpdGU9QSxiPWkucGUodyxiKSxqPShBPWkud3JpdGUpPGkucmVhZD9pLnJlYWQtQS0xOmkuZW5kLUEsQT09aS5lbmQmJjAhPT1pLnJlYWQmJihqPShBPTApPGkucmVhZD9pLnJlYWQtQS0xOmkuZW5kLUEpLDA9PT1qKSkpcmV0dXJuIGkubGU9ayxpLmRlPUUsdy5xbj1TLHcucmUrPVQtdy5jZSx3LmNlPVQsaS53cml0ZT1BLGkucGUodyxiKTtpLndlW0ErK109aS53ZVtPKytdLGotLSxPPT1pLmVuZCYmKE89MCksby0tfXI9MDticmVhaztjYXNlIDY6aWYoMD09PWomJihBPT1pLmVuZCYmMCE9PWkucmVhZCYmKGo9KEE9MCk8aS5yZWFkP2kucmVhZC1BLTE6aS5lbmQtQSksMD09PWomJihpLndyaXRlPUEsYj1pLnBlKHcsYiksaj0oQT1pLndyaXRlKTxpLnJlYWQ/aS5yZWFkLUEtMTppLmVuZC1BLEE9PWkuZW5kJiYwIT09aS5yZWFkJiYoaj0oQT0wKTxpLnJlYWQ/aS5yZWFkLUEtMTppLmVuZC1BKSwwPT09aikpKXJldHVybiBpLmxlPWssaS5kZT1FLHcucW49Uyx3LnJlKz1ULXcuY2Usdy5jZT1ULGkud3JpdGU9QSxpLnBlKHcsYik7Yj0wLGkud2VbQSsrXT1hLGotLSxyPTA7YnJlYWs7Y2FzZSA3OmlmKEU+NyYmKEUtPTgsUysrLFQtLSksaS53cml0ZT1BLGI9aS5wZSh3LGIpLGo9KEE9aS53cml0ZSk8aS5yZWFkP2kucmVhZC1BLTE6aS5lbmQtQSxpLnJlYWQhPWkud3JpdGUpcmV0dXJuIGkubGU9ayxpLmRlPUUsdy5xbj1TLHcucmUrPVQtdy5jZSx3LmNlPVQsaS53cml0ZT1BLGkucGUodyxiKTtyPTg7Y2FzZSA4OnJldHVybiBiPTEsaS5sZT1rLGkuZGU9RSx3LnFuPVMsdy5yZSs9VC13LmNlLHcuY2U9VCxpLndyaXRlPUEsaS5wZSh3LGIpO2Nhc2UgOTpyZXR1cm4gYj0tMyxpLmxlPWssaS5kZT1FLHcucW49Uyx3LnJlKz1ULXcuY2Usdy5jZT1ULGkud3JpdGU9QSxpLnBlKHcsYik7ZGVmYXVsdDpyZXR1cm4gYj0tMixpLmxlPWssaS5kZT1FLHcucW49Uyx3LnJlKz1ULXcuY2Usdy5jZT1ULGkud3JpdGU9QSxpLnBlKHcsYil9fSxpLmdlPWZ1bmN0aW9uKCl7fX1ITy5tZT1mdW5jdGlvbihyLHQsbixlKXtyZXR1cm4gclswXT05LHRbMF09NSxuWzBdPURPLGVbMF09Vk8sMH07dmFyIHFPPVsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XTtmdW5jdGlvbiBKTyhyLHQpe3ZhciBuLGU9dGhpcyxpPTAsbz0wLHU9MCxmPTAsYT1bMF0sYz1bMF0scz1uZXcgS08sdj0wLGg9bmV3IEludDMyQXJyYXkoNDMyMCksbD1uZXcgSE87ZS5kZT0wLGUubGU9MCxlLndlPW5ldyBVaW50OEFycmF5KHQpLGUuZW5kPXQsZS5yZWFkPTAsZS53cml0ZT0wLGUucmVzZXQ9ZnVuY3Rpb24ocix0KXt0JiYodFswXT0wKSw2PT1pJiZzLmdlKHIpLGk9MCxlLmRlPTAsZS5sZT0wLGUucmVhZD1lLndyaXRlPTB9LGUucmVzZXQocixudWxsKSxlLnBlPWZ1bmN0aW9uKHIsdCl7dmFyIG4saSxvO3JldHVybiBpPXIuc2UsKG49KChvPWUucmVhZCk+ZS53cml0ZT9lLmVuZDplLndyaXRlKS1vKT5yLmFlJiYobj1yLmFlKSwwIT09biYmLTU9PXQmJih0PTApLHIuYWUtPW4sci50ZSs9bixyLnVlLnNldChlLndlLnN1YmFycmF5KG8sbytuKSxpKSxpKz1uLChvKz1uKT09ZS5lbmQmJihvPTAsZS53cml0ZT09ZS5lbmQmJihlLndyaXRlPTApLChuPWUud3JpdGUtbyk+ci5hZSYmKG49ci5hZSksMCE9PW4mJi01PT10JiYodD0wKSxyLmFlLT1uLHIudGUrPW4sci51ZS5zZXQoZS53ZS5zdWJhcnJheShvLG8rbiksaSksaSs9bixvKz1uKSxyLnNlPWksZS5yZWFkPW8sdH0sZS5iZT1mdW5jdGlvbihyLHQpe3ZhciBkLHksdyxiLHAsZyxtLFM7Zm9yKGI9ci5jZSxwPXIucW4seT1lLmxlLHc9ZS5kZSxtPShnPWUud3JpdGUpPGUucmVhZD9lLnJlYWQtZy0xOmUuZW5kLWc7Oyl7dmFyIEE9dm9pZCAwLGo9dm9pZCAwLE89dm9pZCAwLGs9dm9pZCAwLEU9dm9pZCAwLFQ9dm9pZCAwLHg9dm9pZCAwLFU9dm9pZCAwO3N3aXRjaChpKXtjYXNlIDA6Zm9yKDszPnc7KXtpZigwPT09cClyZXR1cm4gZS5sZT15LGUuZGU9dyxyLnFuPXAsci5yZSs9Yi1yLmNlLHIuY2U9YixlLndyaXRlPWcsZS5wZShyLHQpO3Q9MCxwLS0seXw9KDI1NSZyLnllKGIrKykpPDx3LHcrPTh9c3dpdGNoKHY9MSYoZD03JnkpLGQ+Pj4xKXtjYXNlIDA6eT4+Pj0zLHk+Pj49ZD03Jih3LT0zKSx3LT1kLGk9MTticmVhaztjYXNlIDE6QT1bXSxqPVtdLE89W1tdXSxrPVtbXV0sSE8ubWUoQSxqLE8saykscy5pbml0KEFbMF0salswXSxPWzBdLDAsa1swXSwwKSx5Pj4+PTMsdy09MyxpPTY7YnJlYWs7Y2FzZSAyOnk+Pj49Myx3LT0zLGk9MzticmVhaztjYXNlIDM6cmV0dXJuIHk+Pj49Myx3LT0zLGk9OSxyLlFuPSJpbnZhbGlkIGJsb2NrIHR5cGUiLHQ9LTMsZS5sZT15LGUuZGU9dyxyLnFuPXAsci5yZSs9Yi1yLmNlLHIuY2U9YixlLndyaXRlPWcsZS5wZShyLHQpfWJyZWFrO2Nhc2UgMTpmb3IoOzMyPnc7KXtpZigwPT09cClyZXR1cm4gZS5sZT15LGUuZGU9dyxyLnFuPXAsci5yZSs9Yi1yLmNlLHIuY2U9YixlLndyaXRlPWcsZS5wZShyLHQpO3Q9MCxwLS0seXw9KDI1NSZyLnllKGIrKykpPDx3LHcrPTh9aWYoKH55Pj4+MTYmNjU1MzUpIT0oNjU1MzUmeSkpcmV0dXJuIGk9OSxyLlFuPSJpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzIix0PS0zLGUubGU9eSxlLmRlPXcsci5xbj1wLHIucmUrPWItci5jZSxyLmNlPWIsZS53cml0ZT1nLGUucGUocix0KTtvPTY1NTM1JnkseT13PTAsaT0wIT09bz8yOjAhPT12Pzc6MDticmVhaztjYXNlIDI6aWYoMD09PXApcmV0dXJuIGUubGU9eSxlLmRlPXcsci5xbj1wLHIucmUrPWItci5jZSxyLmNlPWIsZS53cml0ZT1nLGUucGUocix0KTtpZigwPT09bSYmKGc9PWUuZW5kJiYwIT09ZS5yZWFkJiYobT0oZz0wKTxlLnJlYWQ/ZS5yZWFkLWctMTplLmVuZC1nKSwwPT09bSYmKGUud3JpdGU9Zyx0PWUucGUocix0KSxtPShnPWUud3JpdGUpPGUucmVhZD9lLnJlYWQtZy0xOmUuZW5kLWcsZz09ZS5lbmQmJjAhPT1lLnJlYWQmJihtPShnPTApPGUucmVhZD9lLnJlYWQtZy0xOmUuZW5kLWcpLDA9PT1tKSkpcmV0dXJuIGUubGU9eSxlLmRlPXcsci5xbj1wLHIucmUrPWItci5jZSxyLmNlPWIsZS53cml0ZT1nLGUucGUocix0KTtpZih0PTAsKGQ9byk+cCYmKGQ9cCksZD5tJiYoZD1tKSxlLndlLnNldChyLkpuKGIsZCksZyksYis9ZCxwLT1kLGcrPWQsbS09ZCwwIT0oby09ZCkpYnJlYWs7aT0wIT09dj83OjA7YnJlYWs7Y2FzZSAzOmZvcig7MTQ+dzspe2lmKDA9PT1wKXJldHVybiBlLmxlPXksZS5kZT13LHIucW49cCxyLnJlKz1iLXIuY2Usci5jZT1iLGUud3JpdGU9ZyxlLnBlKHIsdCk7dD0wLHAtLSx5fD0oMjU1JnIueWUoYisrKSk8PHcsdys9OH1pZih1PWQ9MTYzODMmeSwoMzEmZCk+Mjl8fChkPj41JjMxKT4yOSlyZXR1cm4gaT05LHIuUW49InRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzIix0PS0zLGUubGU9eSxlLmRlPXcsci5xbj1wLHIucmUrPWItci5jZSxyLmNlPWIsZS53cml0ZT1nLGUucGUocix0KTtpZihkPTI1OCsoMzEmZCkrKGQ+PjUmMzEpLCFufHxuLmxlbmd0aDxkKW49W107ZWxzZSBmb3IoUz0wO2Q+UztTKyspbltTXT0wO3k+Pj49MTQsdy09MTQsZj0wLGk9NDtjYXNlIDQ6Zm9yKDs0Kyh1Pj4+MTApPmY7KXtmb3IoOzM+dzspe2lmKDA9PT1wKXJldHVybiBlLmxlPXksZS5kZT13LHIucW49cCxyLnJlKz1iLXIuY2Usci5jZT1iLGUud3JpdGU9ZyxlLnBlKHIsdCk7dD0wLHAtLSx5fD0oMjU1JnIueWUoYisrKSk8PHcsdys9OH1uW3FPW2YrK11dPTcmeSx5Pj4+PTMsdy09M31mb3IoOzE5PmY7KW5bcU9bZisrXV09MDtpZihhWzBdPTcsMCE9KGQ9bC52ZShuLGEsYyxoLHIpKSlyZXR1cm4tMz09KHQ9ZCkmJihuPW51bGwsaT05KSxlLmxlPXksZS5kZT13LHIucW49cCxyLnJlKz1iLXIuY2Usci5jZT1iLGUud3JpdGU9ZyxlLnBlKHIsdCk7Zj0wLGk9NTtjYXNlIDU6Zm9yKDtmPDI1OCsoMzEmKGQ9dSkpKyhkPj41JjMxKTspe3ZhciBNPXZvaWQgMCxJPXZvaWQgMDtmb3IoZD1hWzBdO2Q+dzspe2lmKDA9PT1wKXJldHVybiBlLmxlPXksZS5kZT13LHIucW49cCxyLnJlKz1iLXIuY2Usci5jZT1iLGUud3JpdGU9ZyxlLnBlKHIsdCk7dD0wLHAtLSx5fD0oMjU1JnIueWUoYisrKSk8PHcsdys9OH1pZihkPWhbMyooY1swXSsoeSZHT1tkXSkpKzFdLDE2PihJPWhbMyooY1swXSsoeSZHT1tkXSkpKzJdKSl5Pj4+PWQsdy09ZCxuW2YrK109STtlbHNle2ZvcihTPTE4PT1JPzc6SS0xNCxNPTE4PT1JPzExOjM7ZCtTPnc7KXtpZigwPT09cClyZXR1cm4gZS5sZT15LGUuZGU9dyxyLnFuPXAsci5yZSs9Yi1yLmNlLHIuY2U9YixlLndyaXRlPWcsZS5wZShyLHQpO3Q9MCxwLS0seXw9KDI1NSZyLnllKGIrKykpPDx3LHcrPTh9aWYody09ZCxNKz0oeT4+Pj1kKSZHT1tTXSx5Pj4+PVMsdy09UywoUz1mKStNPjI1OCsoMzEmKGQ9dSkpKyhkPj41JjMxKXx8MTY9PUkmJjE+UylyZXR1cm4gbj1udWxsLGk9OSxyLlFuPSJpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0Iix0PS0zLGUubGU9eSxlLmRlPXcsci5xbj1wLHIucmUrPWItci5jZSxyLmNlPWIsZS53cml0ZT1nLGUucGUocix0KTtJPTE2PT1JP25bUy0xXTowO2Rve25bUysrXT1JfXdoaWxlKDAhPS0tTSk7Zj1TfX1pZihjWzBdPS0xLFQ9W10seD1bXSxVPVtdLChFPVtdKVswXT05LFRbMF09NixkPXUsMCE9KGQ9bC5oZSgyNTcrKDMxJmQpLDErKGQ+PjUmMzEpLG4sRSxULHgsVSxoLHIpKSlyZXR1cm4tMz09ZCYmKG49bnVsbCxpPTkpLHQ9ZCxlLmxlPXksZS5kZT13LHIucW49cCxyLnJlKz1iLXIuY2Usci5jZT1iLGUud3JpdGU9ZyxlLnBlKHIsdCk7cy5pbml0KEVbMF0sVFswXSxoLHhbMF0saCxVWzBdKSxpPTY7Y2FzZSA2OmlmKGUubGU9eSxlLmRlPXcsci5xbj1wLHIucmUrPWItci5jZSxyLmNlPWIsZS53cml0ZT1nLDEhPSh0PXMuYmUoZSxyLHQpKSlyZXR1cm4gZS5wZShyLHQpO2lmKHQ9MCxzLmdlKHIpLGI9ci5jZSxwPXIucW4seT1lLmxlLHc9ZS5kZSxtPShnPWUud3JpdGUpPGUucmVhZD9lLnJlYWQtZy0xOmUuZW5kLWcsMD09PXYpe2k9MDticmVha31pPTc7Y2FzZSA3OmlmKGUud3JpdGU9Zyx0PWUucGUocix0KSxtPShnPWUud3JpdGUpPGUucmVhZD9lLnJlYWQtZy0xOmUuZW5kLWcsZS5yZWFkIT1lLndyaXRlKXJldHVybiBlLmxlPXksZS5kZT13LHIucW49cCxyLnJlKz1iLXIuY2Usci5jZT1iLGUud3JpdGU9ZyxlLnBlKHIsdCk7aT04O2Nhc2UgODpyZXR1cm4gdD0xLGUubGU9eSxlLmRlPXcsci5xbj1wLHIucmUrPWItci5jZSxyLmNlPWIsZS53cml0ZT1nLGUucGUocix0KTtjYXNlIDk6cmV0dXJuIHQ9LTMsZS5sZT15LGUuZGU9dyxyLnFuPXAsci5yZSs9Yi1yLmNlLHIuY2U9YixlLndyaXRlPWcsZS5wZShyLHQpO2RlZmF1bHQ6cmV0dXJuIHQ9LTIsZS5sZT15LGUuZGU9dyxyLnFuPXAsci5yZSs9Yi1yLmNlLHIuY2U9YixlLndyaXRlPWcsZS5wZShyLHQpfX19LGUuZ2U9ZnVuY3Rpb24ocil7ZS5yZXNldChyLG51bGwpLGUud2U9bnVsbCxoPW51bGx9LGUuU2U9ZnVuY3Rpb24ocix0LG4pe2Uud2Uuc2V0KHIuc3ViYXJyYXkodCx0K24pLDApLGUucmVhZD1lLndyaXRlPW59LGUuQWU9ZnVuY3Rpb24oKXtyZXR1cm4gMT09aT8xOjB9fXZhciBYTz1bMCwwLDI1NSwyNTVdO2Z1bmN0aW9uIFFPKCl7dmFyIHI9dGhpcztmdW5jdGlvbiB0KHIpe3JldHVybiByJiZyLmplPyhyLnJlPXIudGU9MCxyLlFuPW51bGwsci5qZS5tb2RlPTcsci5qZS5PZS5yZXNldChyLG51bGwpLDApOi0yfXIubW9kZT0wLHIubWV0aG9kPTAsci5rZT1bMF0sci5FZT0wLHIubWFya2VyPTAsci5UZT0wLHIueGU9ZnVuY3Rpb24odCl7cmV0dXJuIHIuT2UmJnIuT2UuZ2UodCksci5PZT1udWxsLDB9LHIuVWU9ZnVuY3Rpb24obixlKXtyZXR1cm4gbi5Rbj1udWxsLHIuT2U9bnVsbCw4PmV8fGU+MTU/KHIueGUobiksLTIpOihyLlRlPWUsbi5qZS5PZT1uZXcgSk8obiwxPDxlKSx0KG4pLDApfSxyLlp0PWZ1bmN0aW9uKHIsdCl7dmFyIG4sZTtpZighcnx8IXIuamV8fCFyLmZlKXJldHVybi0yO3ZhciBpPXIuamU7Zm9yKHQ9ND09dD8tNTowLG49LTU7Oylzd2l0Y2goaS5tb2RlKXtjYXNlIDA6aWYoMD09PXIucW4pcmV0dXJuIG47aWYobj10LHIucW4tLSxyLnJlKyssOCE9KDE1JihpLm1ldGhvZD1yLnllKHIuY2UrKykpKSl7aS5tb2RlPTEzLHIuUW49InVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIixpLm1hcmtlcj01O2JyZWFrfWlmKDgrKGkubWV0aG9kPj40KT5pLlRlKXtpLm1vZGU9MTMsci5Rbj0iaW52YWxpZCB3aW4gc2l6ZSIsaS5tYXJrZXI9NTticmVha31pLm1vZGU9MTtjYXNlIDE6aWYoMD09PXIucW4pcmV0dXJuIG47aWYobj10LHIucW4tLSxyLnJlKyssZT0yNTUmci55ZShyLmNlKyspLCgoaS5tZXRob2Q8PDgpK2UpJTMxIT0wKXtpLm1vZGU9MTMsci5Rbj0iaW5jb3JyZWN0IGhlYWRlciBjaGVjayIsaS5tYXJrZXI9NTticmVha31pZigwPT0oMzImZSkpe2kubW9kZT03O2JyZWFrfWkubW9kZT0yO2Nhc2UgMjppZigwPT09ci5xbilyZXR1cm4gbjtuPXQsci5xbi0tLHIucmUrKyxpLkVlPSgyNTUmci55ZShyLmNlKyspKTw8MjQmNDI3ODE5MDA4MCxpLm1vZGU9MztjYXNlIDM6aWYoMD09PXIucW4pcmV0dXJuIG47bj10LHIucW4tLSxyLnJlKyssaS5FZSs9KDI1NSZyLnllKHIuY2UrKykpPDwxNiYxNjcxMTY4MCxpLm1vZGU9NDtjYXNlIDQ6aWYoMD09PXIucW4pcmV0dXJuIG47bj10LHIucW4tLSxyLnJlKyssaS5FZSs9KDI1NSZyLnllKHIuY2UrKykpPDw4JjY1MjgwLGkubW9kZT01O2Nhc2UgNTpyZXR1cm4gMD09PXIucW4/bjoobj10LHIucW4tLSxyLnJlKyssaS5FZSs9MjU1JnIueWUoci5jZSsrKSxpLm1vZGU9NiwyKTtjYXNlIDY6cmV0dXJuIGkubW9kZT0xMyxyLlFuPSJuZWVkIGRpY3Rpb25hcnkiLGkubWFya2VyPTAsLTI7Y2FzZSA3OmlmKC0zPT0obj1pLk9lLmJlKHIsbikpKXtpLm1vZGU9MTMsaS5tYXJrZXI9MDticmVha31pZigwPT1uJiYobj10KSwxIT1uKXJldHVybiBuO249dCxpLk9lLnJlc2V0KHIsaS5rZSksaS5tb2RlPTEyO2Nhc2UgMTI6cmV0dXJuIHIucW49MCwxO2Nhc2UgMTM6cmV0dXJuLTM7ZGVmYXVsdDpyZXR1cm4tMn19LHIuTWU9ZnVuY3Rpb24ocix0LG4pe3ZhciBlPTAsaT1uO2lmKCFyfHwhci5qZXx8NiE9ci5qZS5tb2RlKXJldHVybi0yO3ZhciBvPXIuamU7cmV0dXJuIGk8MTw8by5UZXx8KGU9bi0oaT0oMTw8by5UZSktMSkpLG8uT2UuU2UodCxlLGkpLG8ubW9kZT03LDB9LHIuSWU9ZnVuY3Rpb24ocil7dmFyIG4sZSxpLG8sdTtpZighcnx8IXIuamUpcmV0dXJuLTI7dmFyIGY9ci5qZTtpZigxMyE9Zi5tb2RlJiYoZi5tb2RlPTEzLGYubWFya2VyPTApLDA9PT0obj1yLnFuKSlyZXR1cm4tNTtmb3IoZT1yLmNlLGk9Zi5tYXJrZXI7MCE9PW4mJjQ+aTspci55ZShlKT09WE9baV0/aSsrOmk9MCE9PXIueWUoZSk/MDo0LWksZSsrLG4tLTtyZXR1cm4gci5yZSs9ZS1yLmNlLHIuY2U9ZSxyLnFuPW4sZi5tYXJrZXI9aSw0IT1pPy0zOihvPXIucmUsdT1yLnRlLHQociksci5yZT1vLHIudGU9dSxmLm1vZGU9NywwKX0sci5MZT1mdW5jdGlvbihyKXtyZXR1cm4gciYmci5qZSYmci5qZS5PZT9yLmplLk9lLkFlKCk6LTJ9fWZ1bmN0aW9uIFpPKCl7fWZ1bmN0aW9uIHJrKHIpe3ZhciB0PW5ldyBaTyxuPXImJnIuUXQ/TWF0aC5mbG9vcigyKnIuUXQpOjEzMTA3MixlPW5ldyBVaW50OEFycmF5KG4pLGk9ITE7dC5VZSgpLHQudWU9ZSx0aGlzLmFwcGVuZD1mdW5jdGlvbihyLG8pe3ZhciB1LGYsYT1bXSxjPTAscz0wLHY9MDtpZigwIT09ci5sZW5ndGgpe3QuY2U9MCx0LmZlPXIsdC5xbj1yLmxlbmd0aDtkb3tpZih0LnNlPTAsdC5hZT1uLDAhPT10LnFufHxpfHwodC5jZT0wLGk9ITApLHU9dC5adCgwKSxpJiYtNT09PXUpe2lmKDAhPT10LnFuKXRocm93IEVycm9yKCJpbmZsYXRpbmc6IGJhZCBpbnB1dCIpfWVsc2UgaWYoMCE9PXUmJjEhPT11KXRocm93IEVycm9yKCJpbmZsYXRpbmc6ICIrdC5Rbik7aWYoKGl8fDE9PT11KSYmdC5xbj09PXIubGVuZ3RoKXRocm93IEVycm9yKCJpbmZsYXRpbmc6IGJhZCBpbnB1dCIpO3Quc2UmJih0LnNlPT09bj9hLnB1c2gobmV3IFVpbnQ4QXJyYXkoZSkpOmEucHVzaChlLnNsaWNlKDAsdC5zZSkpKSx2Kz10LnNlLG8mJnQuY2U+MCYmdC5jZSE9YyYmKG8odC5jZSksYz10LmNlKX13aGlsZSh0LnFuPjB8fDA9PT10LmFlKTtyZXR1cm4gYS5sZW5ndGg+MT8oZj1uZXcgVWludDhBcnJheSh2KSxhLmZvckVhY2goKGZ1bmN0aW9uKHIpe2Yuc2V0KHIscykscys9ci5sZW5ndGh9KSkpOmY9YVswXXx8bmV3IFVpbnQ4QXJyYXkoMCksZn19LHRoaXMuZmx1c2g9ZnVuY3Rpb24oKXt0LnhlKCl9fVpPLnByb3RvdHlwZT17VWU6ZnVuY3Rpb24ocil7dmFyIHQ9dGhpcztyZXR1cm4gdC5qZT1uZXcgUU8scnx8KHI9MTUpLHQuamUuVWUodCxyKX0sWnQ6ZnVuY3Rpb24ocil7dmFyIHQ9dGhpcztyZXR1cm4gdC5qZT90LmplLlp0KHQscik6LTJ9LHhlOmZ1bmN0aW9uKCl7dmFyIHI9dGhpcztpZighci5qZSlyZXR1cm4tMjt2YXIgdD1yLmplLnhlKHIpO3JldHVybiByLmplPW51bGwsdH0sSWU6ZnVuY3Rpb24oKXt2YXIgcj10aGlzO3JldHVybiByLmplP3IuamUuSWUocik6LTJ9LE1lOmZ1bmN0aW9uKHIsdCl7dmFyIG49dGhpcztyZXR1cm4gbi5qZT9uLmplLk1lKG4scix0KTotMn0seWU6ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMuZmVbcl19LEpuOmZ1bmN0aW9uKHIsdCl7cmV0dXJuIHRoaXMuZmUuc3ViYXJyYXkocixyK3QpfX0sc2VsZi5pbml0Q29kZWM9ZnVuY3Rpb24oKXtzZWxmLkRlZmxhdGU9Qk8sc2VsZi5JbmZsYXRlPXJrfTsK")],{type:"text/javascript"}))};t({workerScripts:{inflate:[e],deflate:[e]}})}}(lh),lh({Deflate:function(t){var e,i=new gb,n=(e=t&&t.chunkSize?t.chunkSize:65536)+5*(Math.floor(e/16383)+1),r=new Uint8Array(n),d=t?t.level:-1;void 0===d&&(d=-1),i.deflateInit(d),i.next_out=r,this.append=function(t,e){var d,c=0,a=0,s=0,l=[];if(t.length){i.next_in_index=0,i.next_in=t,i.avail_in=t.length;do{if(i.next_out_index=0,i.avail_out=n,0!=i.deflate(0))throw Error("deflating: "+i.msg);i.next_out_index&&(i.next_out_index==n?l.push(new Uint8Array(r)):l.push(r.slice(0,i.next_out_index))),s+=i.next_out_index,e&&i.next_in_index>0&&i.next_in_index!=c&&(e(i.next_in_index),c=i.next_in_index)}while(i.avail_in>0||0===i.avail_out);return l.length>1?(d=new Uint8Array(s),l.forEach((function(t){d.set(t,a),a+=t.length}))):d=l[0]||new Uint8Array(0),d}},this.flush=function(){var t,e,d=0,c=0,a=[];do{if(i.next_out_index=0,i.avail_out=n,1!=(t=i.deflate(4))&&0!=t)throw Error("deflating: "+i.msg);n-i.avail_out>0&&a.push(r.slice(0,i.next_out_index)),c+=i.next_out_index}while(i.avail_in>0||0===i.avail_out);return i.deflateEnd(),e=new Uint8Array(c),a.forEach((function(t){e.set(t,d),d+=t.length})),e}},Inflate:function(t){var e=new Qb,i=t&&t.chunkSize?Math.floor(2*t.chunkSize):131072,n=new Uint8Array(i),r=!1;e.inflateInit(),e.next_out=n,this.append=function(t,d){var c,a,s=[],l=0,o=0,u=0;if(0!==t.length){e.next_in_index=0,e.next_in=t,e.avail_in=t.length;do{if(e.next_out_index=0,e.avail_out=i,0!==e.avail_in||r||(e.next_in_index=0,r=!0),c=e.inflate(0),r&&c===Tb){if(0!==e.avail_in)throw Error("inflating: bad input")}else if(0!==c&&1!==c)throw Error("inflating: "+e.msg);if((r||1===c)&&e.avail_in===t.length)throw Error("inflating: bad input");e.next_out_index&&(e.next_out_index===i?s.push(new Uint8Array(n)):s.push(n.slice(0,e.next_out_index))),u+=e.next_out_index,d&&e.next_in_index>0&&e.next_in_index!=l&&(d(e.next_in_index),l=e.next_in_index)}while(e.avail_in>0||0===e.avail_out);return s.length>1?(a=new Uint8Array(u),s.forEach((function(t){a.set(t,o),o+=t.length}))):a=s[0]||new Uint8Array(0),a}},this.flush=function(){e.inflateEnd()}}}),t.BlobReader=sH,t.BlobWriter=lH,t.Data64URIReader=cH,t.Data64URIWriter=aH,t.ERR_ABORT=ek,t.ERR_BAD_FORMAT=sk,t.ERR_CENTRAL_DIRECTORY_NOT_FOUND=mk,t.ERR_DUPLICATED_NAME=Ek,t.ERR_ENCRYPTED=bk,t.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=uk,t.ERR_EOCDR_NOT_FOUND=lk,t.ERR_EOCDR_ZIP64_NOT_FOUND=ok,t.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=yk,t.ERR_HTTP_RANGE=FT,t.ERR_INVALID_COMMENT=Qk,t.ERR_INVALID_ENCRYPTION_STRENGTH=_k,t.ERR_INVALID_ENTRY_COMMENT=Ok,t.ERR_INVALID_ENTRY_NAME=Bk,t.ERR_INVALID_EXTRAFIELD_DATA=$k,t.ERR_INVALID_EXTRAFIELD_TYPE=qk,t.ERR_INVALID_PASSWORD=cK,t.ERR_INVALID_SIGNATURE=DK,t.ERR_INVALID_VERSION=Ak,t.ERR_LOCAL_FILE_HEADER_NOT_FOUND=pk,t.ERR_NOT_SEEKABLE_READER=ET,t.ERR_UNSUPPORTED_COMPRESSION=Zk,t.ERR_UNSUPPORTED_ENCRYPTION=hk,t.ERR_UNSUPPORTED_FORMAT=tP,t.HttpRangeReader=xH,t.HttpReader=LH,t.ReadableStreamReader=mH,t.Reader=iH,t.TextReader=rH,t.TextWriter=dH,t.Uint8ArrayReader=XH,t.Uint8ArrayWriter=IH,t.WritableStreamWriter=pH,t.Writer=nH,t.ZipReader=Xk,t.ZipWriter=rP,t.configure=lh,t.fs=GP,t.getMimeType=function(t){return t&&AZ[t.split(".").pop().toLowerCase()]||"application/octet-stream"},t.initShimAsyncCodec=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2?arguments[2]:void 0;return{Deflate:fw(t.Deflate,e.deflate,i),Inflate:fw(t.Inflate,e.inflate,i)}},t.terminateWorkers=function(){yw.forEach((function(t){Zw(t),t.terminate()}))},Object.defineProperty(t,"__esModule",{value:!0})}));
|