@asgardeo/auth-react 5.4.3 → 5.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/main.js +1 -1
- package/dist/main.js.LICENSE.txt +30 -0
- package/dist/types/src/api.d.ts +9 -0
- package/dist/types/src/api.d.ts.map +1 -1
- package/dist/types/src/authenticate.d.ts.map +1 -1
- package/dist/types/src/models.d.ts +1 -0
- package/dist/types/src/models.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/main.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see main.js.LICENSE.txt */
|
|
2
|
-
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.AsgardeoAuth=e(require("react")):t.AsgardeoAuth=e(t.React)}(this,(t=>(()=>{var e={19662:(t,e,n)=>{var r=n(60614),i=n(66330),o=TypeError;t.exports=function(t){if(r(t))return t;throw o(i(t)+" is not a function")}},39483:(t,e,n)=>{var r=n(4411),i=n(66330),o=TypeError;t.exports=function(t){if(r(t))return t;throw o(i(t)+" is not a constructor")}},96077:(t,e,n)=>{var r=n(60614),i=String,o=TypeError;t.exports=function(t){if("object"==typeof t||r(t))return t;throw o("Can't set "+i(t)+" as a prototype")}},51223:(t,e,n)=>{var r=n(5112),i=n(70030),o=n(3070).f,a=r("unscopables"),l=Array.prototype;null==l[a]&&o(l,a,{configurable:!0,value:i(null)}),t.exports=function(t){l[a][t]=!0}},31530:(t,e,n)=>{"use strict";var r=n(28710).charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},25787:(t,e,n)=>{var r=n(47976),i=TypeError;t.exports=function(t,e){if(r(e,t))return t;throw i("Incorrect invocation")}},19670:(t,e,n)=>{var r=n(70111),i=String,o=TypeError;t.exports=function(t){if(r(t))return t;throw o(i(t)+" is not an object")}},23013:t=>{t.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},7556:(t,e,n)=>{var r=n(47293);t.exports=r((function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}}))},90260:(t,e,n)=>{"use strict";var r,i,o,a=n(23013),l=n(19781),c=n(17854),s=n(60614),u=n(70111),d=n(92597),h=n(70648),p=n(66330),b=n(68880),m=n(98052),Z=n(3070).f,g=n(47976),y=n(79518),f=n(27674),I=n(5112),v=n(69711),G=n(29909),X=G.enforce,V=G.get,W=c.Int8Array,S=W&&W.prototype,R=c.Uint8ClampedArray,C=R&&R.prototype,Y=W&&y(W),N=S&&y(S),K=Object.prototype,k=c.TypeError,L=I("toStringTag"),H=v("TYPED_ARRAY_TAG"),J="TypedArrayConstructor",U=a&&!!f&&"Opera"!==h(c.opera),x=!1,T={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},w={BigInt64Array:8,BigUint64Array:8},A=function(t){var e=y(t);if(u(e)){var n=V(e);return n&&d(n,J)?n[J]:A(e)}},F=function(t){if(!u(t))return!1;var e=h(t);return d(T,e)||d(w,e)};for(r in T)(o=(i=c[r])&&i.prototype)?X(o)[J]=i:U=!1;for(r in w)(o=(i=c[r])&&i.prototype)&&(X(o)[J]=i);if((!U||!s(Y)||Y===Function.prototype)&&(Y=function(){throw k("Incorrect invocation")},U))for(r in T)c[r]&&f(c[r],Y);if((!U||!N||N===K)&&(N=Y.prototype,U))for(r in T)c[r]&&f(c[r].prototype,N);if(U&&y(C)!==N&&f(C,N),l&&!d(N,L))for(r in x=!0,Z(N,L,{get:function(){return u(this)?this[H]:void 0}}),T)c[r]&&b(c[r],H,r);t.exports={NATIVE_ARRAY_BUFFER_VIEWS:U,TYPED_ARRAY_TAG:x&&H,aTypedArray:function(t){if(F(t))return t;throw k("Target is not a typed array")},aTypedArrayConstructor:function(t){if(s(t)&&(!f||g(Y,t)))return t;throw k(p(t)+" is not a typed array constructor")},exportTypedArrayMethod:function(t,e,n,r){if(l){if(n)for(var i in T){var o=c[i];if(o&&d(o.prototype,t))try{delete o.prototype[t]}catch(n){try{o.prototype[t]=e}catch(t){}}}N[t]&&!n||m(N,t,n?e:U&&S[t]||e,r)}},exportTypedArrayStaticMethod:function(t,e,n){var r,i;if(l){if(f){if(n)for(r in T)if((i=c[r])&&d(i,t))try{delete i[t]}catch(t){}if(Y[t]&&!n)return;try{return m(Y,t,n?e:U&&Y[t]||e)}catch(t){}}for(r in T)!(i=c[r])||i[t]&&!n||m(i,t,e)}},getTypedArrayConstructor:A,isView:function(t){if(!u(t))return!1;var e=h(t);return"DataView"===e||d(T,e)||d(w,e)},isTypedArray:F,TypedArray:Y,TypedArrayPrototype:N}},13331:(t,e,n)=>{"use strict";var r=n(17854),i=n(1702),o=n(19781),a=n(23013),l=n(76530),c=n(68880),s=n(89190),u=n(47293),d=n(25787),h=n(19303),p=n(17466),b=n(57067),m=n(11179),Z=n(79518),g=n(27674),y=n(8006).f,f=n(3070).f,I=n(21285),v=n(41589),G=n(58003),X=n(29909),V=l.PROPER,W=l.CONFIGURABLE,S=X.get,R=X.set,C="ArrayBuffer",Y="DataView",N="prototype",K="Wrong index",k=r[C],L=k,H=L&&L[N],J=r[Y],U=J&&J[N],x=Object.prototype,T=r.Array,w=r.RangeError,A=i(I),F=i([].reverse),B=m.pack,z=m.unpack,P=function(t){return[255&t]},M=function(t){return[255&t,t>>8&255]},E=function(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]},j=function(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]},Q=function(t){return B(t,23,4)},O=function(t){return B(t,52,8)},D=function(t,e){f(t[N],e,{get:function(){return S(this)[e]}})},_=function(t,e,n,r){var i=b(n),o=S(t);if(i+e>o.byteLength)throw w(K);var a=S(o.buffer).bytes,l=i+o.byteOffset,c=v(a,l,l+e);return r?c:F(c)},q=function(t,e,n,r,i,o){var a=b(n),l=S(t);if(a+e>l.byteLength)throw w(K);for(var c=S(l.buffer).bytes,s=a+l.byteOffset,u=r(+i),d=0;d<e;d++)c[s+d]=u[o?d:e-d-1]};if(a){var $=V&&k.name!==C;if(u((function(){k(1)}))&&u((function(){new k(-1)}))&&!u((function(){return new k,new k(1.5),new k(NaN),1!=k.length||$&&!W})))$&&W&&c(k,"name",C);else{(L=function(t){return d(this,H),new k(b(t))})[N]=H;for(var tt,et=y(k),nt=0;et.length>nt;)(tt=et[nt++])in L||c(L,tt,k[tt]);H.constructor=L}g&&Z(U)!==x&&g(U,x);var rt=new J(new L(2)),it=i(U.setInt8);rt.setInt8(0,2147483648),rt.setInt8(1,2147483649),!rt.getInt8(0)&&rt.getInt8(1)||s(U,{setInt8:function(t,e){it(this,t,e<<24>>24)},setUint8:function(t,e){it(this,t,e<<24>>24)}},{unsafe:!0})}else H=(L=function(t){d(this,H);var e=b(t);R(this,{bytes:A(T(e),0),byteLength:e}),o||(this.byteLength=e)})[N],U=(J=function(t,e,n){d(this,U),d(t,H);var r=S(t).byteLength,i=h(e);if(i<0||i>r)throw w("Wrong offset");if(i+(n=void 0===n?r-i:p(n))>r)throw w("Wrong length");R(this,{buffer:t,byteLength:n,byteOffset:i}),o||(this.buffer=t,this.byteLength=n,this.byteOffset=i)})[N],o&&(D(L,"byteLength"),D(J,"buffer"),D(J,"byteLength"),D(J,"byteOffset")),s(U,{getInt8:function(t){return _(this,1,t)[0]<<24>>24},getUint8:function(t){return _(this,1,t)[0]},getInt16:function(t){var e=_(this,2,t,arguments.length>1?arguments[1]:void 0);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=_(this,2,t,arguments.length>1?arguments[1]:void 0);return e[1]<<8|e[0]},getInt32:function(t){return j(_(this,4,t,arguments.length>1?arguments[1]:void 0))},getUint32:function(t){return j(_(this,4,t,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(t){return z(_(this,4,t,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(t){return z(_(this,8,t,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(t,e){q(this,1,t,P,e)},setUint8:function(t,e){q(this,1,t,P,e)},setInt16:function(t,e){q(this,2,t,M,e,arguments.length>2?arguments[2]:void 0)},setUint16:function(t,e){q(this,2,t,M,e,arguments.length>2?arguments[2]:void 0)},setInt32:function(t,e){q(this,4,t,E,e,arguments.length>2?arguments[2]:void 0)},setUint32:function(t,e){q(this,4,t,E,e,arguments.length>2?arguments[2]:void 0)},setFloat32:function(t,e){q(this,4,t,Q,e,arguments.length>2?arguments[2]:void 0)},setFloat64:function(t,e){q(this,8,t,O,e,arguments.length>2?arguments[2]:void 0)}});G(L,C),G(J,Y),t.exports={ArrayBuffer:L,DataView:J}},1048:(t,e,n)=>{"use strict";var r=n(47908),i=n(51400),o=n(26244),a=n(85117),l=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=o(n),s=i(t,c),u=i(e,c),d=arguments.length>2?arguments[2]:void 0,h=l((void 0===d?c:i(d,c))-u,c-s),p=1;for(u<s&&s<u+h&&(p=-1,u+=h-1,s+=h-1);h-- >0;)u in n?n[s]=n[u]:a(n,s),s+=p,u+=p;return n}},21285:(t,e,n)=>{"use strict";var r=n(47908),i=n(51400),o=n(26244);t.exports=function(t){for(var e=r(this),n=o(e),a=arguments.length,l=i(a>1?arguments[1]:void 0,n),c=a>2?arguments[2]:void 0,s=void 0===c?n:i(c,n);s>l;)e[l++]=t;return e}},18533:(t,e,n)=>{"use strict";var r=n(42092).forEach,i=n(9341)("forEach");t.exports=i?[].forEach:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}},97745:(t,e,n)=>{var r=n(26244);t.exports=function(t,e){for(var n=0,i=r(e),o=new t(i);i>n;)o[n]=e[n++];return o}},48457:(t,e,n)=>{"use strict";var r=n(49974),i=n(46916),o=n(47908),a=n(53411),l=n(97659),c=n(4411),s=n(26244),u=n(86135),d=n(18554),h=n(71246),p=Array;t.exports=function(t){var e=o(t),n=c(this),b=arguments.length,m=b>1?arguments[1]:void 0,Z=void 0!==m;Z&&(m=r(m,b>2?arguments[2]:void 0));var g,y,f,I,v,G,X=h(e),V=0;if(!X||this===p&&l(X))for(g=s(e),y=n?new this(g):p(g);g>V;V++)G=Z?m(e[V],V):e[V],u(y,V,G);else for(v=(I=d(e,X)).next,y=n?new this:[];!(f=i(v,I)).done;V++)G=Z?a(I,m,[f.value,V],!0):f.value,u(y,V,G);return y.length=V,y}},41318:(t,e,n)=>{var r=n(45656),i=n(51400),o=n(26244),a=function(t){return function(e,n,a){var l,c=r(e),s=o(c),u=i(a,s);if(t&&n!=n){for(;s>u;)if((l=c[u++])!=l)return!0}else for(;s>u;u++)if((t||u in c)&&c[u]===n)return t||u||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},42092:(t,e,n)=>{var r=n(49974),i=n(1702),o=n(68361),a=n(47908),l=n(26244),c=n(65417),s=i([].push),u=function(t){var e=1==t,n=2==t,i=3==t,u=4==t,d=6==t,h=7==t,p=5==t||d;return function(b,m,Z,g){for(var y,f,I=a(b),v=o(I),G=r(m,Z),X=l(v),V=0,W=g||c,S=e?W(b,X):n||h?W(b,0):void 0;X>V;V++)if((p||V in v)&&(f=G(y=v[V],V,I),t))if(e)S[V]=f;else if(f)switch(t){case 3:return!0;case 5:return y;case 6:return V;case 2:s(S,y)}else switch(t){case 4:return!1;case 7:s(S,y)}return d?-1:i||u?u:S}};t.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterReject:u(7)}},86583:(t,e,n)=>{"use strict";var r=n(22104),i=n(45656),o=n(19303),a=n(26244),l=n(9341),c=Math.min,s=[].lastIndexOf,u=!!s&&1/[1].lastIndexOf(1,-0)<0,d=l("lastIndexOf"),h=u||!d;t.exports=h?function(t){if(u)return r(s,this,arguments)||0;var e=i(this),n=a(e),l=n-1;for(arguments.length>1&&(l=c(l,o(arguments[1]))),l<0&&(l=n+l);l>=0;l--)if(l in e&&e[l]===t)return l||0;return-1}:s},81194:(t,e,n)=>{var r=n(47293),i=n(5112),o=n(7392),a=i("species");t.exports=function(t){return o>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},9341:(t,e,n)=>{"use strict";var r=n(47293);t.exports=function(t,e){var n=[][t];return!!n&&r((function(){n.call(null,e||function(){return 1},1)}))}},53671:(t,e,n)=>{var r=n(19662),i=n(47908),o=n(68361),a=n(26244),l=TypeError,c=function(t){return function(e,n,c,s){r(n);var u=i(e),d=o(u),h=a(u),p=t?h-1:0,b=t?-1:1;if(c<2)for(;;){if(p in d){s=d[p],p+=b;break}if(p+=b,t?p<0:h<=p)throw l("Reduce of empty array with no initial value")}for(;t?p>=0:h>p;p+=b)p in d&&(s=n(s,d[p],p,u));return s}};t.exports={left:c(!1),right:c(!0)}},83658:(t,e,n)=>{"use strict";var r=n(19781),i=n(43157),o=TypeError,a=Object.getOwnPropertyDescriptor,l=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=l?function(t,e){if(i(t)&&!a(t,"length").writable)throw o("Cannot set read only .length");return t.length=e}:function(t,e){return t.length=e}},41589:(t,e,n)=>{var r=n(51400),i=n(26244),o=n(86135),a=Array,l=Math.max;t.exports=function(t,e,n){for(var c=i(t),s=r(e,c),u=r(void 0===n?c:n,c),d=a(l(u-s,0)),h=0;s<u;s++,h++)o(d,h,t[s]);return d.length=h,d}},50206:(t,e,n)=>{var r=n(1702);t.exports=r([].slice)},94362:(t,e,n)=>{var r=n(41589),i=Math.floor,o=function(t,e){var n=t.length,c=i(n/2);return n<8?a(t,e):l(t,o(r(t,0,c),e),o(r(t,c),e),e)},a=function(t,e){for(var n,r,i=t.length,o=1;o<i;){for(r=o,n=t[o];r&&e(t[r-1],n)>0;)t[r]=t[--r];r!==o++&&(t[r]=n)}return t},l=function(t,e,n,r){for(var i=e.length,o=n.length,a=0,l=0;a<i||l<o;)t[a+l]=a<i&&l<o?r(e[a],n[l])<=0?e[a++]:n[l++]:a<i?e[a++]:n[l++];return t};t.exports=o},77475:(t,e,n)=>{var r=n(43157),i=n(4411),o=n(70111),a=n(5112)("species"),l=Array;t.exports=function(t){var e;return r(t)&&(e=t.constructor,(i(e)&&(e===l||r(e.prototype))||o(e)&&null===(e=e[a]))&&(e=void 0)),void 0===e?l:e}},65417:(t,e,n)=>{var r=n(77475);t.exports=function(t,e){return new(r(t))(0===e?0:e)}},60956:(t,e,n)=>{"use strict";var r=n(35005),i=n(1702),o=n(19662),a=n(68554),l=n(26244),c=n(47908),s=n(65417),u=r("Map"),d=u.prototype,h=i(d.forEach),p=i(d.has),b=i(d.set),m=i([].push);t.exports=function(t){var e,n,r,i=c(this),d=l(i),Z=s(i,0),g=new u,y=a(t)?function(t){return t}:o(t);for(e=0;e<d;e++)r=y(n=i[e]),p(g,r)||b(g,r,n);return h(g,(function(t){m(Z,t)})),Z}},28091:(t,e,n)=>{"use strict";var r=n(46916),i=n(19670),o=n(70030),a=n(58173),l=n(89190),c=n(29909),s=n(35005),u=n(66462),d=n(76178),h=s("Promise"),p="AsyncFromSyncIterator",b=c.set,m=c.getterFor(p),Z=function(t,e,n){var r=t.done;h.resolve(t.value).then((function(t){e(d(t,r))}),n)},g=function(t){t.type=p,b(this,t)};g.prototype=l(o(u),{next:function(){var t=m(this);return new h((function(e,n){var o=i(r(t.next,t.iterator));Z(o,e,n)}))},return:function(){var t=m(this).iterator;return new h((function(e,n){var o=a(t,"return");if(void 0===o)return e(d(void 0,!0));var l=i(r(o,t));Z(l,e,n)}))}}),t.exports=g},21753:(t,e,n)=>{var r=n(46916),i=n(35005),o=n(58173);t.exports=function(t,e,n,a){try{var l=o(t,"return");if(l)return i("Promise").resolve(r(l,t)).then((function(){e(n)}),(function(t){a(t)}))}catch(t){return a(t)}e(n)}},45348:(t,e,n)=>{"use strict";var r=n(46916),i=n(12534),o=n(19670),a=n(70030),l=n(68880),c=n(89190),s=n(5112),u=n(29909),d=n(35005),h=n(58173),p=n(66462),b=n(76178),m=n(99212),Z=d("Promise"),g="AsyncIteratorHelper",y="WrapForValidAsyncIterator",f=u.set,I=s("toStringTag"),v=function(t){var e=!t,n=t?y:g,s=u.getterFor(n),d=function(t){var n=i((function(){return s(t)})),r=n.error,o=n.value;return r||e&&o.done?{exit:!0,value:r?Z.reject(o):Z.resolve(b(void 0,!0))}:{exit:!1,value:o}},f=function(t,n){var r=function(){var r=n();if(e){t.awaiting=r;var i=function(){t.awaiting===r&&(t.awaiting=null)};r.then(i,i)}return r};return t.awaiting?t.awaiting=t.awaiting.then(r,r):r()},v=c(a(p),{next:function(){var t=d(this),e=t.exit,n=t.value;return e?n:f(n,(function(){var t=i((function(){return o(n.nextHandler(Z))})),e=t.error,r=t.value;return e&&(n.done=!0),e?Z.reject(r):Z.resolve(r)}))},return:function(){var e=d(this),n=e.exit,a=e.value;return n?a:f(a,(function(){a.done=!0;var e,n,l=a.iterator,c=i((function(){if(a.inner)try{m(a.inner.iterator,"return")}catch(t){return m(l,"throw",t)}return h(l,"return")}));return e=n=c.value,c.error?Z.reject(n):void 0===e?Z.resolve(b(void 0,!0)):(n=(c=i((function(){return r(e,l)}))).value,c.error?Z.reject(n):t?Z.resolve(n):Z.resolve(n).then((function(t){return o(t),b(void 0,!0)})))}))}});return e&&l(v,I,"Async Iterator Helper"),v},G=v(!1),X=v(!0);t.exports=function(t,e){var n=e?y:g,r=function(e,r){r?(r.iterator=e.iterator,r.next=e.next):r=e,r.type=n,r.nextHandler=t,r.counter=0,r.done=!1,r.awaiting=null,f(this,r)};return r.prototype=e?X:G,r}},47520:(t,e,n)=>{"use strict";var r=n(46916),i=n(19670),o=n(24942),a=n(45348),l=n(76178),c=a((function(t){var e=this,n=e.iterator;return t.resolve(i(r(e.next,n))).then((function(t){return i(t).done?(e.done=!0,l(void 0,!0)):l([e.index++,t.value],!1)})).then(null,(function(t){throw e.done=!0,t}))}));t.exports=function(){return new c(o(this),{index:0})}},12269:(t,e,n)=>{"use strict";var r=n(46916),i=n(19662),o=n(19670),a=n(70111),l=n(7207),c=n(35005),s=n(24942),u=n(21753),d=function(t){var e=0==t,n=1==t,d=2==t,h=3==t;return function(t,p,b){var m=s(t),Z=c("Promise"),g=m.iterator,y=m.next,f=0,I=void 0!==p;return!I&&e||i(p),new Z((function(t,i){var c=function(t){u(g,i,t,i)},s=function(){try{if(I)try{l(f)}catch(t){c(t)}Z.resolve(o(r(y,g))).then((function(r){try{if(o(r).done)e?(b.length=f,t(b)):t(!h&&(d||void 0));else{var l=r.value;try{if(I){var m=p(l,f),y=function(r){if(n)s();else if(d)r?s():u(g,t,!1,i);else if(e)try{b[f++]=r,s()}catch(t){c(t)}else r?u(g,t,h||l,i):s()};a(m)?Z.resolve(m).then(y,c):y(m)}else b[f++]=l,s()}catch(t){c(t)}}}catch(t){i(t)}}),i)}catch(t){i(t)}};s()}))}};t.exports={toArray:d(0),forEach:d(1),every:d(2),some:d(3),find:d(4)}},66462:(t,e,n)=>{var r,i,o=n(17854),a=n(5465),l=n(60614),c=n(70030),s=n(79518),u=n(98052),d=n(5112),h=n(31913),p="USE_FUNCTION_CONSTRUCTOR",b=d("asyncIterator"),m=o.AsyncIterator,Z=a.AsyncIteratorPrototype;if(Z)r=Z;else if(l(m))r=m.prototype;else if(a[p]||o[p])try{i=s(s(s(Function("return async function*(){}()")()))),s(i)===Object.prototype&&(r=i)}catch(t){}r?h&&(r=c(r)):r={},l(r[b])||u(r,b,(function(){return this})),t.exports=r},86221:(t,e,n)=>{var r=n(46916),i=n(45348);t.exports=i((function(){return r(this.next,this.iterator)}),!0)},53411:(t,e,n)=>{var r=n(19670),i=n(99212);t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(e){i(t,"throw",e)}}},17072:(t,e,n)=>{var r=n(5112)("iterator"),i=!1;try{var o=0,a={next:function(){return{done:!!o++}},return:function(){i=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(t){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var o={};o[r]=function(){return{next:function(){return{done:n=!0}}}},t(o)}catch(t){}return n}},84326:(t,e,n)=>{var r=n(1702),i=r({}.toString),o=r("".slice);t.exports=function(t){return o(i(t),8,-1)}},70648:(t,e,n)=>{var r=n(51694),i=n(60614),o=n(84326),a=n(5112)("toStringTag"),l=Object,c="Arguments"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=l(t),a))?n:c?o(e):"Object"==(r=o(e))&&i(e.callee)?"Arguments":r}},31501:(t,e,n)=>{"use strict";var r=n(46916),i=n(19662),o=n(19670);t.exports=function(){for(var t=o(this),e=i(t.add),n=0,a=arguments.length;n<a;n++)r(e,t,arguments[n]);return t}},34092:(t,e,n)=>{"use strict";var r=n(46916),i=n(19662),o=n(19670);t.exports=function(){for(var t,e=o(this),n=i(e.delete),a=!0,l=0,c=arguments.length;l<c;l++)t=r(n,e,arguments[l]),a=a&&t;return!!a}},27296:(t,e,n)=>{"use strict";var r=n(49974),i=n(46916),o=n(19662),a=n(39483),l=n(68554),c=n(20408),s=[].push;t.exports=function(t){var e,n,u,d,h=arguments.length,p=h>1?arguments[1]:void 0;return a(this),(e=void 0!==p)&&o(p),l(t)?new this:(n=[],e?(u=0,d=r(p,h>2?arguments[2]:void 0),c(t,(function(t){i(s,n,d(t,u++))}))):c(t,s,{that:n}),new this(n))}},82044:(t,e,n)=>{"use strict";var r=n(50206);t.exports=function(){return new this(r(arguments))}},95631:(t,e,n)=>{"use strict";var r=n(3070).f,i=n(70030),o=n(89190),a=n(49974),l=n(25787),c=n(68554),s=n(20408),u=n(51656),d=n(76178),h=n(96340),p=n(19781),b=n(62423).fastKey,m=n(29909),Z=m.set,g=m.getterFor;t.exports={getConstructor:function(t,e,n,u){var d=t((function(t,r){l(t,h),Z(t,{type:e,index:i(null),first:void 0,last:void 0,size:0}),p||(t.size=0),c(r)||s(r,t[u],{that:t,AS_ENTRIES:n})})),h=d.prototype,m=g(e),y=function(t,e,n){var r,i,o=m(t),a=f(t,e);return a?a.value=n:(o.last=a={index:i=b(e,!0),key:e,value:n,previous:r=o.last,next:void 0,removed:!1},o.first||(o.first=a),r&&(r.next=a),p?o.size++:t.size++,"F"!==i&&(o.index[i]=a)),t},f=function(t,e){var n,r=m(t),i=b(e);if("F"!==i)return r.index[i];for(n=r.first;n;n=n.next)if(n.key==e)return n};return o(h,{clear:function(){for(var t=m(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,p?t.size=0:this.size=0},delete:function(t){var e=this,n=m(e),r=f(e,t);if(r){var i=r.next,o=r.previous;delete n.index[r.index],r.removed=!0,o&&(o.next=i),i&&(i.previous=o),n.first==r&&(n.first=i),n.last==r&&(n.last=o),p?n.size--:e.size--}return!!r},forEach:function(t){for(var e,n=m(this),r=a(t,arguments.length>1?arguments[1]:void 0);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!f(this,t)}}),o(h,n?{get:function(t){var e=f(this,t);return e&&e.value},set:function(t,e){return y(this,0===t?0:t,e)}}:{add:function(t){return y(this,t=0===t?0:t,t)}}),p&&r(h,"size",{get:function(){return m(this).size}}),d},setStrong:function(t,e,n){var r=e+" Iterator",i=g(e),o=g(r);u(t,e,(function(t,e){Z(this,{type:r,target:t,state:i(t),kind:e,last:void 0})}),(function(){for(var t=o(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?d("keys"==e?n.key:"values"==e?n.value:[n.key,n.value],!1):(t.target=void 0,d(void 0,!0))}),n?"entries":"values",!n,!0),h(e)}}},29320:(t,e,n)=>{"use strict";var r=n(1702),i=n(89190),o=n(62423).getWeakData,a=n(25787),l=n(19670),c=n(68554),s=n(70111),u=n(20408),d=n(42092),h=n(92597),p=n(29909),b=p.set,m=p.getterFor,Z=d.find,g=d.findIndex,y=r([].splice),f=0,I=function(t){return t.frozen||(t.frozen=new v)},v=function(){this.entries=[]},G=function(t,e){return Z(t.entries,(function(t){return t[0]===e}))};v.prototype={get:function(t){var e=G(this,t);if(e)return e[1]},has:function(t){return!!G(this,t)},set:function(t,e){var n=G(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=g(this.entries,(function(e){return e[0]===t}));return~e&&y(this.entries,e,1),!!~e}},t.exports={getConstructor:function(t,e,n,r){var d=t((function(t,i){a(t,p),b(t,{type:e,id:f++,frozen:void 0}),c(i)||u(i,t[r],{that:t,AS_ENTRIES:n})})),p=d.prototype,Z=m(e),g=function(t,e,n){var r=Z(t),i=o(l(e),!0);return!0===i?I(r).set(e,n):i[r.id]=n,t};return i(p,{delete:function(t){var e=Z(this);if(!s(t))return!1;var n=o(t);return!0===n?I(e).delete(t):n&&h(n,e.id)&&delete n[e.id]},has:function(t){var e=Z(this);if(!s(t))return!1;var n=o(t);return!0===n?I(e).has(t):n&&h(n,e.id)}}),i(p,n?{get:function(t){var e=Z(this);if(s(t)){var n=o(t);return!0===n?I(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return g(this,t,e)}}:{add:function(t){return g(this,t,!0)}}),d}}},77710:(t,e,n)=>{"use strict";var r=n(82109),i=n(17854),o=n(1702),a=n(54705),l=n(98052),c=n(62423),s=n(20408),u=n(25787),d=n(60614),h=n(68554),p=n(70111),b=n(47293),m=n(17072),Z=n(58003),g=n(79587);t.exports=function(t,e,n){var y=-1!==t.indexOf("Map"),f=-1!==t.indexOf("Weak"),I=y?"set":"add",v=i[t],G=v&&v.prototype,X=v,V={},W=function(t){var e=o(G[t]);l(G,t,"add"==t?function(t){return e(this,0===t?0:t),this}:"delete"==t?function(t){return!(f&&!p(t))&&e(this,0===t?0:t)}:"get"==t?function(t){return f&&!p(t)?void 0:e(this,0===t?0:t)}:"has"==t?function(t){return!(f&&!p(t))&&e(this,0===t?0:t)}:function(t,n){return e(this,0===t?0:t,n),this})};if(a(t,!d(v)||!(f||G.forEach&&!b((function(){(new v).entries().next()})))))X=n.getConstructor(e,t,y,I),c.enable();else if(a(t,!0)){var S=new X,R=S[I](f?{}:-0,1)!=S,C=b((function(){S.has(1)})),Y=m((function(t){new v(t)})),N=!f&&b((function(){for(var t=new v,e=5;e--;)t[I](e,e);return!t.has(-0)}));Y||((X=e((function(t,e){u(t,G);var n=g(new v,t,X);return h(e)||s(e,n[I],{that:n,AS_ENTRIES:y}),n}))).prototype=G,G.constructor=X),(C||N)&&(W("delete"),W("has"),y&&W("get")),(N||R)&&W(I),f&&G.clear&&delete G.clear}return V[t]=X,r({global:!0,constructor:!0,forced:X!=v},V),Z(X,t),f||n.setStrong(X,t,y),X}},10313:(t,e,n)=>{n(51532),n(4129);var r=n(35005),i=n(70030),o=n(70111),a=Object,l=TypeError,c=r("Map"),s=r("WeakMap"),u=function(){this.object=null,this.symbol=null,this.primitives=null,this.objectsByIndex=i(null)};u.prototype.get=function(t,e){return this[t]||(this[t]=e())},u.prototype.next=function(t,e,n){var r=n?this.objectsByIndex[t]||(this.objectsByIndex[t]=new s):this.primitives||(this.primitives=new c),i=r.get(e);return i||r.set(e,i=new u),i};var d=new u;t.exports=function(){var t,e,n=d,r=arguments.length;for(t=0;t<r;t++)o(e=arguments[t])&&(n=n.next(t,e,!0));if(this===a&&n===d)throw l("Composite keys must contain a non-primitive component");for(t=0;t<r;t++)o(e=arguments[t])||(n=n.next(t,e,!1));return n}},99920:(t,e,n)=>{var r=n(92597),i=n(53887),o=n(31236),a=n(3070);t.exports=function(t,e,n){for(var l=i(e),c=a.f,s=o.f,u=0;u<l.length;u++){var d=l[u];r(t,d)||n&&r(n,d)||c(t,d,s(e,d))}}},84964:(t,e,n)=>{var r=n(5112)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,"/./"[t](e)}catch(t){}}return!1}},49920:(t,e,n)=>{var r=n(47293);t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},14230:(t,e,n)=>{var r=n(1702),i=n(84488),o=n(41340),a=/"/g,l=r("".replace);t.exports=function(t,e,n,r){var c=o(i(t)),s="<"+e;return""!==n&&(s+=" "+n+'="'+l(o(r),a,""")+'"'),s+">"+c+"</"+e+">"}},76178:t=>{t.exports=function(t,e){return{value:t,done:e}}},68880:(t,e,n)=>{var r=n(19781),i=n(3070),o=n(79114);t.exports=r?function(t,e,n){return i.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},79114:t=>{t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},86135:(t,e,n)=>{"use strict";var r=n(34948),i=n(3070),o=n(79114);t.exports=function(t,e,n){var a=r(e);a in t?i.f(t,a,o(0,n)):t[a]=n}},85573:(t,e,n)=>{"use strict";var r=n(1702),i=n(47293),o=n(76650).start,a=RangeError,l=isFinite,c=Math.abs,s=Date.prototype,u=s.toISOString,d=r(s.getTime),h=r(s.getUTCDate),p=r(s.getUTCFullYear),b=r(s.getUTCHours),m=r(s.getUTCMilliseconds),Z=r(s.getUTCMinutes),g=r(s.getUTCMonth),y=r(s.getUTCSeconds);t.exports=i((function(){return"0385-07-25T07:06:39.999Z"!=u.call(new Date(-50000000000001))}))||!i((function(){u.call(new Date(NaN))}))?function(){if(!l(d(this)))throw a("Invalid time value");var t=this,e=p(t),n=m(t),r=e<0?"-":e>9999?"+":"";return r+o(c(e),r?6:4,0)+"-"+o(g(t)+1,2,0)+"-"+o(h(t),2,0)+"T"+o(b(t),2,0)+":"+o(Z(t),2,0)+":"+o(y(t),2,0)+"."+o(n,3,0)+"Z"}:u},38709:(t,e,n)=>{"use strict";var r=n(19670),i=n(92140),o=TypeError;t.exports=function(t){if(r(this),"string"===t||"default"===t)t="string";else if("number"!==t)throw o("Incorrect hint");return i(this,t)}},47045:(t,e,n)=>{var r=n(56339),i=n(3070);t.exports=function(t,e,n){return n.get&&r(n.get,e,{getter:!0}),n.set&&r(n.set,e,{setter:!0}),i.f(t,e,n)}},98052:(t,e,n)=>{var r=n(60614),i=n(3070),o=n(56339),a=n(13072);t.exports=function(t,e,n,l){l||(l={});var c=l.enumerable,s=void 0!==l.name?l.name:e;if(r(n)&&o(n,s,l),l.global)c?t[e]=n:a(e,n);else{try{l.unsafe?t[e]&&(c=!0):delete t[e]}catch(t){}c?t[e]=n:i.f(t,e,{value:n,enumerable:!1,configurable:!l.nonConfigurable,writable:!l.nonWritable})}return t}},89190:(t,e,n)=>{var r=n(98052);t.exports=function(t,e,n){for(var i in e)r(t,i,e[i],n);return t}},13072:(t,e,n)=>{var r=n(17854),i=Object.defineProperty;t.exports=function(t,e){try{i(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},85117:(t,e,n)=>{"use strict";var r=n(66330),i=TypeError;t.exports=function(t,e){if(!delete t[e])throw i("Cannot delete property "+r(e)+" of "+r(t))}},19781:(t,e,n)=>{var r=n(47293);t.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},4154:t=>{var e="object"==typeof document&&document.all,n=void 0===e&&void 0!==e;t.exports={all:e,IS_HTMLDDA:n}},80317:(t,e,n)=>{var r=n(17854),i=n(70111),o=r.document,a=i(o)&&i(o.createElement);t.exports=function(t){return a?o.createElement(t):{}}},7207:t=>{var e=TypeError;t.exports=function(t){if(t>9007199254740991)throw e("Maximum allowed index exceeded");return t}},48324:t=>{t.exports={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}},98509:(t,e,n)=>{var r=n(80317)("span").classList,i=r&&r.constructor&&r.constructor.prototype;t.exports=i===Object.prototype?void 0:i},68886:(t,e,n)=>{var r=n(88113).match(/firefox\/(\d+)/i);t.exports=!!r&&+r[1]},7871:(t,e,n)=>{var r=n(83823),i=n(35268);t.exports=!r&&!i&&"object"==typeof window&&"object"==typeof document},83823:t=>{t.exports="object"==typeof Deno&&Deno&&"object"==typeof Deno.version},30256:(t,e,n)=>{var r=n(88113);t.exports=/MSIE|Trident/.test(r)},71528:(t,e,n)=>{var r=n(88113),i=n(17854);t.exports=/ipad|iphone|ipod/i.test(r)&&void 0!==i.Pebble},6833:(t,e,n)=>{var r=n(88113);t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(r)},35268:(t,e,n)=>{var r=n(84326),i=n(17854);t.exports="process"==r(i.process)},71036:(t,e,n)=>{var r=n(88113);t.exports=/web0s(?!.*chrome)/i.test(r)},88113:(t,e,n)=>{var r=n(35005);t.exports=r("navigator","userAgent")||""},7392:(t,e,n)=>{var r,i,o=n(17854),a=n(88113),l=o.process,c=o.Deno,s=l&&l.versions||c&&c.version,u=s&&s.v8;u&&(i=(r=u.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!i&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(i=+r[1]),t.exports=i},98008:(t,e,n)=>{var r=n(88113).match(/AppleWebKit\/(\d+)\./);t.exports=!!r&&+r[1]},80748:t=>{t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},11060:(t,e,n)=>{var r=n(1702),i=Error,o=r("".replace),a=String(i("zxcasd").stack),l=/\n\s*at [^:]*:[^\n]*/,c=l.test(a);t.exports=function(t,e){if(c&&"string"==typeof t&&!i.prepareStackTrace)for(;e--;)t=o(t,l,"");return t}},22914:(t,e,n)=>{var r=n(47293),i=n(79114);t.exports=!r((function(){var t=Error("a");return!("stack"in t)||(Object.defineProperty(t,"stack",i(1,7)),7!==t.stack)}))},82109:(t,e,n)=>{var r=n(17854),i=n(31236).f,o=n(68880),a=n(98052),l=n(13072),c=n(99920),s=n(54705);t.exports=function(t,e){var n,u,d,h,p,b=t.target,m=t.global,Z=t.stat;if(n=m?r:Z?r[b]||l(b,{}):(r[b]||{}).prototype)for(u in e){if(h=e[u],d=t.dontCallGetSet?(p=i(n,u))&&p.value:n[u],!s(m?u:b+(Z?".":"#")+u,t.forced)&&void 0!==d){if(typeof h==typeof d)continue;c(h,d)}(t.sham||d&&d.sham)&&o(h,"sham",!0),a(n,u,h,t)}}},47293:t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},27007:(t,e,n)=>{"use strict";n(74916);var r=n(21470),i=n(98052),o=n(22261),a=n(47293),l=n(5112),c=n(68880),s=l("species"),u=RegExp.prototype;t.exports=function(t,e,n,d){var h=l(t),p=!a((function(){var e={};return e[h]=function(){return 7},7!=""[t](e)})),b=p&&!a((function(){var e=!1,n=/a/;return"split"===t&&((n={}).constructor={},n.constructor[s]=function(){return n},n.flags="",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](""),!e}));if(!p||!b||n){var m=r(/./[h]),Z=e(h,""[t],(function(t,e,n,i,a){var l=r(t),c=e.exec;return c===o||c===u.exec?p&&!a?{done:!0,value:m(e,n,i)}:{done:!0,value:l(n,e,i)}:{done:!1}}));i(String.prototype,t,Z[0]),i(u,h,Z[1])}d&&c(u[h],"sham",!0)}},6790:(t,e,n)=>{"use strict";var r=n(43157),i=n(26244),o=n(7207),a=n(49974),l=function(t,e,n,c,s,u,d,h){for(var p,b,m=s,Z=0,g=!!d&&a(d,h);Z<c;)Z in n&&(p=g?g(n[Z],Z,e):n[Z],u>0&&r(p)?(b=i(p),m=l(t,e,p,b,m,u-1)-1):(o(m+1),t[m]=p),m++),Z++;return m};t.exports=l},76677:(t,e,n)=>{var r=n(47293);t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},22104:(t,e,n)=>{var r=n(34374),i=Function.prototype,o=i.apply,a=i.call;t.exports="object"==typeof Reflect&&Reflect.apply||(r?a.bind(o):function(){return a.apply(o,arguments)})},49974:(t,e,n)=>{var r=n(21470),i=n(19662),o=n(34374),a=r(r.bind);t.exports=function(t,e){return i(t),void 0===e?t:o?a(t,e):function(){return t.apply(e,arguments)}}},34374:(t,e,n)=>{var r=n(47293);t.exports=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},27065:(t,e,n)=>{"use strict";var r=n(1702),i=n(19662),o=n(70111),a=n(92597),l=n(50206),c=n(34374),s=Function,u=r([].concat),d=r([].join),h={},p=function(t,e,n){if(!a(h,e)){for(var r=[],i=0;i<e;i++)r[i]="a["+i+"]";h[e]=s("C,a","return new C("+d(r,",")+")")}return h[e](t,n)};t.exports=c?s.bind:function(t){var e=i(this),n=e.prototype,r=l(arguments,1),a=function(){var n=u(r,l(arguments));return this instanceof a?p(e,n.length,n):e.apply(t,n)};return o(n)&&(a.prototype=n),a}},46916:(t,e,n)=>{var r=n(34374),i=Function.prototype.call;t.exports=r?i.bind(i):function(){return i.apply(i,arguments)}},76530:(t,e,n)=>{var r=n(19781),i=n(92597),o=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,l=i(o,"name"),c=l&&"something"===function(){}.name,s=l&&(!r||r&&a(o,"name").configurable);t.exports={EXISTS:l,PROPER:c,CONFIGURABLE:s}},21470:(t,e,n)=>{var r=n(84326),i=n(1702);t.exports=function(t){if("Function"===r(t))return i(t)}},1702:(t,e,n)=>{var r=n(34374),i=Function.prototype,o=i.call,a=r&&i.bind.bind(o,o);t.exports=r?a:function(t){return function(){return o.apply(t,arguments)}}},62617:(t,e,n)=>{var r=n(46916),i=n(60614),o=n(47908),a=n(24942),l=n(71246),c=n(58173),s=n(5112),u=n(28091),d=s("asyncIterator");t.exports=function(t){var e,n=o(t),s=!0,h=c(n,d);return i(h)||(h=l(n),s=!1),i(h)?e=r(h,n):(e=n,s=!0),a(s?e:new u(a(e)))}},35005:(t,e,n)=>{var r=n(17854),i=n(60614),o=function(t){return i(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?o(r[t]):r[t]&&r[t][e]}},24942:(t,e,n)=>{var r=n(19662),i=n(19670);t.exports=function(t){return{iterator:t,next:r(i(t).next)}}},72897:(t,e,n)=>{var r=n(46916),i=n(60614),o=n(47908),a=n(24942),l=n(71246);t.exports=function(t){var e=o(t),n=l(e);return a(i(n)?r(n,e):e)}},71246:(t,e,n)=>{var r=n(70648),i=n(58173),o=n(68554),a=n(97497),l=n(5112)("iterator");t.exports=function(t){if(!o(t))return i(t,l)||i(t,"@@iterator")||a[r(t)]}},18554:(t,e,n)=>{var r=n(46916),i=n(19662),o=n(19670),a=n(66330),l=n(71246),c=TypeError;t.exports=function(t,e){var n=arguments.length<2?l(t):e;if(i(n))return o(r(n,t));throw c(a(t)+" is not iterable")}},54647:(t,e,n)=>{var r=n(46916);t.exports=function(t){return r(Map.prototype.entries,t)}},58173:(t,e,n)=>{var r=n(19662),i=n(68554);t.exports=function(t,e){var n=t[e];return i(n)?void 0:r(n)}},96767:(t,e,n)=>{var r=n(46916);t.exports=function(t){return r(Set.prototype.values,t)}},10647:(t,e,n)=>{var r=n(1702),i=n(47908),o=Math.floor,a=r("".charAt),l=r("".replace),c=r("".slice),s=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,u=/\$([$&'`]|\d{1,2})/g;t.exports=function(t,e,n,r,d,h){var p=n+t.length,b=r.length,m=u;return void 0!==d&&(d=i(d),m=s),l(h,m,(function(i,l){var s;switch(a(l,0)){case"$":return"$";case"&":return t;case"`":return c(e,0,n);case"'":return c(e,p);case"<":s=d[c(l,1,-1)];break;default:var u=+l;if(0===u)return i;if(u>b){var h=o(u/10);return 0===h?i:h<=b?void 0===r[h-1]?a(l,1):r[h-1]+a(l,1):i}s=r[u-1]}return void 0===s?"":s}))}},17854:(t,e,n)=>{var r=function(t){return t&&t.Math==Math&&t};t.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},92597:(t,e,n)=>{var r=n(1702),i=n(47908),o=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return o(i(t),e)}},3501:t=>{t.exports={}},842:(t,e,n)=>{var r=n(17854);t.exports=function(t,e){var n=r.console;n&&n.error&&(1==arguments.length?n.error(t):n.error(t,e))}},60490:(t,e,n)=>{var r=n(35005);t.exports=r("document","documentElement")},64664:(t,e,n)=>{var r=n(19781),i=n(47293),o=n(80317);t.exports=!r&&!i((function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},11179:t=>{var e=Array,n=Math.abs,r=Math.pow,i=Math.floor,o=Math.log,a=Math.LN2;t.exports={pack:function(t,l,c){var s,u,d,h=e(c),p=8*c-l-1,b=(1<<p)-1,m=b>>1,Z=23===l?r(2,-24)-r(2,-77):0,g=t<0||0===t&&1/t<0?1:0,y=0;for((t=n(t))!=t||t===1/0?(u=t!=t?1:0,s=b):(s=i(o(t)/a),t*(d=r(2,-s))<1&&(s--,d*=2),(t+=s+m>=1?Z/d:Z*r(2,1-m))*d>=2&&(s++,d/=2),s+m>=b?(u=0,s=b):s+m>=1?(u=(t*d-1)*r(2,l),s+=m):(u=t*r(2,m-1)*r(2,l),s=0));l>=8;)h[y++]=255&u,u/=256,l-=8;for(s=s<<l|u,p+=l;p>0;)h[y++]=255&s,s/=256,p-=8;return h[--y]|=128*g,h},unpack:function(t,e){var n,i=t.length,o=8*i-e-1,a=(1<<o)-1,l=a>>1,c=o-7,s=i-1,u=t[s--],d=127&u;for(u>>=7;c>0;)d=256*d+t[s--],c-=8;for(n=d&(1<<-c)-1,d>>=-c,c+=e;c>0;)n=256*n+t[s--],c-=8;if(0===d)d=1-l;else{if(d===a)return n?NaN:u?-1/0:1/0;n+=r(2,e),d-=l}return(u?-1:1)*n*r(2,d-e)}}},68361:(t,e,n)=>{var r=n(1702),i=n(47293),o=n(84326),a=Object,l=r("".split);t.exports=i((function(){return!a("z").propertyIsEnumerable(0)}))?function(t){return"String"==o(t)?l(t,""):a(t)}:a},79587:(t,e,n)=>{var r=n(60614),i=n(70111),o=n(27674);t.exports=function(t,e,n){var a,l;return o&&r(a=e.constructor)&&a!==n&&i(l=a.prototype)&&l!==n.prototype&&o(t,l),t}},42788:(t,e,n)=>{var r=n(1702),i=n(60614),o=n(5465),a=r(Function.toString);i(o.inspectSource)||(o.inspectSource=function(t){return a(t)}),t.exports=o.inspectSource},58340:(t,e,n)=>{var r=n(70111),i=n(68880);t.exports=function(t,e){r(e)&&"cause"in e&&i(t,"cause",e.cause)}},62423:(t,e,n)=>{var r=n(82109),i=n(1702),o=n(3501),a=n(70111),l=n(92597),c=n(3070).f,s=n(8006),u=n(1156),d=n(52050),h=n(69711),p=n(76677),b=!1,m=h("meta"),Z=0,g=function(t){c(t,m,{value:{objectID:"O"+Z++,weakData:{}}})},y=t.exports={enable:function(){y.enable=function(){},b=!0;var t=s.f,e=i([].splice),n={};n[m]=1,t(n).length&&(s.f=function(n){for(var r=t(n),i=0,o=r.length;i<o;i++)if(r[i]===m){e(r,i,1);break}return r},r({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:u.f}))},fastKey:function(t,e){if(!a(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!l(t,m)){if(!d(t))return"F";if(!e)return"E";g(t)}return t[m].objectID},getWeakData:function(t,e){if(!l(t,m)){if(!d(t))return!0;if(!e)return!1;g(t)}return t[m].weakData},onFreeze:function(t){return p&&b&&d(t)&&!l(t,m)&&g(t),t}};o[m]=!0},29909:(t,e,n)=>{var r,i,o,a=n(94811),l=n(17854),c=n(70111),s=n(68880),u=n(92597),d=n(5465),h=n(6200),p=n(3501),b="Object already initialized",m=l.TypeError,Z=l.WeakMap;if(a||d.state){var g=d.state||(d.state=new Z);g.get=g.get,g.has=g.has,g.set=g.set,r=function(t,e){if(g.has(t))throw m(b);return e.facade=t,g.set(t,e),e},i=function(t){return g.get(t)||{}},o=function(t){return g.has(t)}}else{var y=h("state");p[y]=!0,r=function(t,e){if(u(t,y))throw m(b);return e.facade=t,s(t,y,e),e},i=function(t){return u(t,y)?t[y]:{}},o=function(t){return u(t,y)}}t.exports={set:r,get:i,has:o,enforce:function(t){return o(t)?i(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=i(e)).type!==t)throw m("Incompatible receiver, "+t+" required");return n}}}},97659:(t,e,n)=>{var r=n(5112),i=n(97497),o=r("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(i.Array===t||a[o]===t)}},43157:(t,e,n)=>{var r=n(84326);t.exports=Array.isArray||function(t){return"Array"==r(t)}},44067:(t,e,n)=>{var r=n(70648),i=n(1702)("".slice);t.exports=function(t){return"Big"===i(r(t),0,3)}},60614:(t,e,n)=>{var r=n(4154),i=r.all;t.exports=r.IS_HTMLDDA?function(t){return"function"==typeof t||t===i}:function(t){return"function"==typeof t}},4411:(t,e,n)=>{var r=n(1702),i=n(47293),o=n(60614),a=n(70648),l=n(35005),c=n(42788),s=function(){},u=[],d=l("Reflect","construct"),h=/^\s*(?:class|function)\b/,p=r(h.exec),b=!h.exec(s),m=function(t){if(!o(t))return!1;try{return d(s,u,t),!0}catch(t){return!1}},Z=function(t){if(!o(t))return!1;switch(a(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return b||!!p(h,c(t))}catch(t){return!0}};Z.sham=!0,t.exports=!d||i((function(){var t;return m(m.call)||!m(Object)||!m((function(){t=!0}))||t}))?Z:m},45032:(t,e,n)=>{var r=n(92597);t.exports=function(t){return void 0!==t&&(r(t,"value")||r(t,"writable"))}},54705:(t,e,n)=>{var r=n(47293),i=n(60614),o=/#|\.prototype\./,a=function(t,e){var n=c[l(t)];return n==u||n!=s&&(i(e)?r(e):!!e)},l=a.normalize=function(t){return String(t).replace(o,".").toLowerCase()},c=a.data={},s=a.NATIVE="N",u=a.POLYFILL="P";t.exports=a},55988:(t,e,n)=>{var r=n(70111),i=Math.floor;t.exports=Number.isInteger||function(t){return!r(t)&&isFinite(t)&&i(t)===t}},68554:t=>{t.exports=function(t){return null==t}},70111:(t,e,n)=>{var r=n(60614),i=n(4154),o=i.all;t.exports=i.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:r(t)||t===o}:function(t){return"object"==typeof t?null!==t:r(t)}},31913:t=>{t.exports=!1},47850:(t,e,n)=>{var r=n(70111),i=n(84326),o=n(5112)("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[o])?!!e:"RegExp"==i(t))}},52190:(t,e,n)=>{var r=n(35005),i=n(60614),o=n(47976),a=n(43307),l=Object;t.exports=a?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return i(e)&&o(e.prototype,l(t))}},20408:(t,e,n)=>{var r=n(49974),i=n(46916),o=n(19670),a=n(66330),l=n(97659),c=n(26244),s=n(47976),u=n(18554),d=n(71246),h=n(99212),p=TypeError,b=function(t,e){this.stopped=t,this.result=e},m=b.prototype;t.exports=function(t,e,n){var Z,g,y,f,I,v,G,X=n&&n.that,V=!(!n||!n.AS_ENTRIES),W=!(!n||!n.IS_RECORD),S=!(!n||!n.IS_ITERATOR),R=!(!n||!n.INTERRUPTED),C=r(e,X),Y=function(t){return Z&&h(Z,"normal",t),new b(!0,t)},N=function(t){return V?(o(t),R?C(t[0],t[1],Y):C(t[0],t[1])):R?C(t,Y):C(t)};if(W)Z=t.iterator;else if(S)Z=t;else{if(!(g=d(t)))throw p(a(t)+" is not iterable");if(l(g)){for(y=0,f=c(t);f>y;y++)if((I=N(t[y]))&&s(m,I))return I;return new b(!1)}Z=u(t,g)}for(v=W?t.next:Z.next;!(G=i(v,Z)).done;){try{I=N(G.value)}catch(t){h(Z,"throw",t)}if("object"==typeof I&&I&&s(m,I))return I}return new b(!1)}},99212:(t,e,n)=>{var r=n(46916),i=n(19670),o=n(58173);t.exports=function(t,e,n){var a,l;i(t);try{if(!(a=o(t,"return"))){if("throw"===e)throw n;return n}a=r(a,t)}catch(t){l=!0,a=t}if("throw"===e)throw n;if(l)throw a;return i(a),n}},63061:(t,e,n)=>{"use strict";var r=n(13383).IteratorPrototype,i=n(70030),o=n(79114),a=n(58003),l=n(97497),c=function(){return this};t.exports=function(t,e,n,s){var u=e+" Iterator";return t.prototype=i(r,{next:o(+!s,n)}),a(t,u,!1,!0),l[u]=c,t}},54956:(t,e,n)=>{"use strict";var r=n(46916),i=n(70030),o=n(68880),a=n(89190),l=n(5112),c=n(29909),s=n(58173),u=n(13383).IteratorPrototype,d=n(76178),h=n(99212),p="IteratorHelper",b="WrapForValidIterator",m=c.set,Z=l("toStringTag"),g=function(t){var e=t?b:p,n=c.getterFor(e),l=a(i(u),{next:function(){var e=n(this);if(t)return e.nextHandler();try{var r=e.done?void 0:e.nextHandler();return d(r,e.done)}catch(t){throw e.done=!0,t}},return:function(){var e=n(this),i=e.iterator;if(e.done=!0,t){var o=s(i,"return");return o?r(o,i):d(void 0,!0)}if(e.inner)try{h(e.inner.iterator,"return")}catch(t){return h(i,"throw",t)}return h(i,"return"),d(void 0,!0)}});return t||o(l,Z,"Iterator Helper"),l},y=g(!1),f=g(!0);t.exports=function(t,e){var n=e?b:p,r=function(e,r){r?(r.iterator=e.iterator,r.next=e.next):r=e,r.type=n,r.nextHandler=t,r.counter=0,r.done=!1,m(this,r)};return r.prototype=e?f:y,r}},51656:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(31913),a=n(76530),l=n(60614),c=n(63061),s=n(79518),u=n(27674),d=n(58003),h=n(68880),p=n(98052),b=n(5112),m=n(97497),Z=n(13383),g=a.PROPER,y=a.CONFIGURABLE,f=Z.IteratorPrototype,I=Z.BUGGY_SAFARI_ITERATORS,v=b("iterator"),G="keys",X="values",V="entries",W=function(){return this};t.exports=function(t,e,n,a,b,Z,S){c(n,e,a);var R,C,Y,N=function(t){if(t===b&&J)return J;if(!I&&t in L)return L[t];switch(t){case G:case X:case V:return function(){return new n(this,t)}}return function(){return new n(this)}},K=e+" Iterator",k=!1,L=t.prototype,H=L[v]||L["@@iterator"]||b&&L[b],J=!I&&H||N(b),U="Array"==e&&L.entries||H;if(U&&(R=s(U.call(new t)))!==Object.prototype&&R.next&&(o||s(R)===f||(u?u(R,f):l(R[v])||p(R,v,W)),d(R,K,!0,!0),o&&(m[K]=W)),g&&b==X&&H&&H.name!==X&&(!o&&y?h(L,"name",X):(k=!0,J=function(){return i(H,this)})),b)if(C={values:N(X),keys:Z?J:N(G),entries:N(V)},S)for(Y in C)(I||k||!(Y in L))&&p(L,Y,C[Y]);else r({target:e,proto:!0,forced:I||k},C);return o&&!S||L[v]===J||p(L,v,J,{name:b}),m[e]=J,C}},14323:(t,e,n)=>{"use strict";var r=n(46916),i=n(19670),o=n(24942),a=n(54956)((function(){var t=i(r(this.next,this.iterator));if(!(this.done=!!t.done))return[this.index++,t.value]}));t.exports=function(){return new a(o(this),{index:0})}},13383:(t,e,n)=>{"use strict";var r,i,o,a=n(47293),l=n(60614),c=n(70111),s=n(70030),u=n(79518),d=n(98052),h=n(5112),p=n(31913),b=h("iterator"),m=!1;[].keys&&("next"in(o=[].keys())?(i=u(u(o)))!==Object.prototype&&(r=i):m=!0),!c(r)||a((function(){var t={};return r[b].call(t)!==t}))?r={}:p&&(r=s(r)),l(r[b])||d(r,b,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:m}},97497:t=>{t.exports={}},26244:(t,e,n)=>{var r=n(17466);t.exports=function(t){return r(t.length)}},56339:(t,e,n)=>{var r=n(47293),i=n(60614),o=n(92597),a=n(19781),l=n(76530).CONFIGURABLE,c=n(42788),s=n(29909),u=s.enforce,d=s.get,h=Object.defineProperty,p=a&&!r((function(){return 8!==h((function(){}),"length",{value:8}).length})),b=String(String).split("String"),m=t.exports=function(t,e,n){"Symbol("===String(e).slice(0,7)&&(e="["+String(e).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!o(t,"name")||l&&t.name!==e)&&(a?h(t,"name",{value:e,configurable:!0}):t.name=e),p&&n&&o(n,"arity")&&t.length!==n.arity&&h(t,"length",{value:n.arity});try{n&&o(n,"constructor")&&n.constructor?a&&h(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=u(t);return o(r,"source")||(r.source=b.join("string"==typeof e?e:"")),t};Function.prototype.toString=m((function(){return i(this)&&d(this).source||c(this)}),"toString")},8154:(t,e,n)=>{"use strict";var r=n(46916),i=n(19662),o=n(60614),a=n(19670),l=TypeError;t.exports=function(t,e){var n,c=a(this),s=i(c.get),u=i(c.has),d=i(c.set),h=arguments.length>2?arguments[2]:void 0;if(!o(e)&&!o(h))throw l("At least one callback required");return r(u,c,t)?(n=r(s,c,t),o(e)&&(n=e(n),r(d,c,t,n))):o(h)&&(n=h(),r(d,c,t,n)),n}},66736:t=>{var e=Math.expm1,n=Math.exp;t.exports=!e||e(10)>22025.465794806718||e(10)<22025.465794806718||-2e-17!=e(-2e-17)?function(t){var e=+t;return 0==e?e:e>-1e-6&&e<1e-6?e+e*e/2:n(e)-1}:e},26130:(t,e,n)=>{var r=n(64310),i=Math.abs,o=Math.pow,a=o(2,-52),l=o(2,-23),c=o(2,127)*(2-l),s=o(2,-126);t.exports=Math.fround||function(t){var e,n,o=+t,u=i(o),d=r(o);return u<s?d*function(t){return t+1/a-1/a}(u/s/l)*s*l:(n=(e=(1+l/a)*u)-(e-u))>c||n!=n?d*(1/0):d*n}},20403:t=>{var e=Math.log,n=Math.LOG10E;t.exports=Math.log10||function(t){return e(t)*n}},26513:t=>{var e=Math.log;t.exports=Math.log1p||function(t){var n=+t;return n>-1e-8&&n<1e-8?n-n*n/2:e(1+n)}},47103:t=>{t.exports=Math.scale||function(t,e,n,r,i){var o=+t,a=+e,l=+n,c=+r,s=+i;return o!=o||a!=a||l!=l||c!=c||s!=s?NaN:o===1/0||o===-1/0?o:(o-a)*(s-c)/(l-a)+c}},64310:t=>{t.exports=Math.sign||function(t){var e=+t;return 0==e||e!=e?e:e<0?-1:1}},74758:t=>{var e=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(t){var r=+t;return(r>0?n:e)(r)}},95948:(t,e,n)=>{var r,i,o,a,l,c,s,u,d=n(17854),h=n(49974),p=n(31236).f,b=n(20261).set,m=n(6833),Z=n(71528),g=n(71036),y=n(35268),f=d.MutationObserver||d.WebKitMutationObserver,I=d.document,v=d.process,G=d.Promise,X=p(d,"queueMicrotask"),V=X&&X.value;V||(r=function(){var t,e;for(y&&(t=v.domain)&&t.exit();i;){e=i.fn,i=i.next;try{e()}catch(t){throw i?a():o=void 0,t}}o=void 0,t&&t.enter()},m||y||g||!f||!I?!Z&&G&&G.resolve?((s=G.resolve(void 0)).constructor=G,u=h(s.then,s),a=function(){u(r)}):y?a=function(){v.nextTick(r)}:(b=h(b,d),a=function(){b(r)}):(l=!0,c=I.createTextNode(""),new f(r).observe(c,{characterData:!0}),a=function(){c.data=l=!l})),t.exports=V||function(t){var e={fn:t,next:void 0};o&&(o.next=e),i||(i=e,a()),o=e}},78523:(t,e,n)=>{"use strict";var r=n(19662),i=TypeError,o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw i("Bad Promise constructor");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},56277:(t,e,n)=>{var r=n(41340);t.exports=function(t,e){return void 0===t?arguments.length<2?"":e:r(t)}},66336:t=>{var e=RangeError;t.exports=function(t){if(t==t)return t;throw e("NaN is not allowed")}},3929:(t,e,n)=>{var r=n(47850),i=TypeError;t.exports=function(t){if(r(t))throw i("The method doesn't accept regular expressions");return t}},77023:(t,e,n)=>{var r=n(17854).isFinite;t.exports=Number.isFinite||function(t){return"number"==typeof t&&r(t)}},2814:(t,e,n)=>{var r=n(17854),i=n(47293),o=n(1702),a=n(41340),l=n(53111).trim,c=n(81361),s=o("".charAt),u=r.parseFloat,d=r.Symbol,h=d&&d.iterator,p=1/u(c+"-0")!=-1/0||h&&!i((function(){u(Object(h))}));t.exports=p?function(t){var e=l(a(t)),n=u(e);return 0===n&&"-"==s(e,0)?-0:n}:u},83009:(t,e,n)=>{var r=n(17854),i=n(47293),o=n(1702),a=n(41340),l=n(53111).trim,c=n(81361),s=r.parseInt,u=r.Symbol,d=u&&u.iterator,h=/^[+-]?0x/i,p=o(h.exec),b=8!==s(c+"08")||22!==s(c+"0x16")||d&&!i((function(){s(Object(d))}));t.exports=b?function(t,e){var n=l(a(t));return s(n,e>>>0||(p(h,n)?16:10))}:s},21574:(t,e,n)=>{"use strict";var r=n(19781),i=n(1702),o=n(46916),a=n(47293),l=n(81956),c=n(25181),s=n(55296),u=n(47908),d=n(68361),h=Object.assign,p=Object.defineProperty,b=i([].concat);t.exports=!h||a((function(){if(r&&1!==h({b:1},h(p({},"a",{enumerable:!0,get:function(){p(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(),i="abcdefghijklmnopqrst";return t[n]=7,i.split("").forEach((function(t){e[t]=t})),7!=h({},t)[n]||l(h({},e)).join("")!=i}))?function(t,e){for(var n=u(t),i=arguments.length,a=1,h=c.f,p=s.f;i>a;)for(var m,Z=d(arguments[a++]),g=h?b(l(Z),h(Z)):l(Z),y=g.length,f=0;y>f;)m=g[f++],r&&!o(p,Z,m)||(n[m]=Z[m]);return n}:h},70030:(t,e,n)=>{var r,i=n(19670),o=n(36048),a=n(80748),l=n(3501),c=n(60490),s=n(80317),u=n(6200),d="prototype",h="script",p=u("IE_PROTO"),b=function(){},m=function(t){return"<"+h+">"+t+"</"+h+">"},Z=function(t){t.write(m("")),t.close();var e=t.parentWindow.Object;return t=null,e},g=function(){try{r=new ActiveXObject("htmlfile")}catch(t){}var t,e,n;g="undefined"!=typeof document?document.domain&&r?Z(r):(e=s("iframe"),n="java"+h+":",e.style.display="none",c.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(m("document.F=Object")),t.close(),t.F):Z(r);for(var i=a.length;i--;)delete g[d][a[i]];return g()};l[p]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(b[d]=i(t),n=new b,b[d]=null,n[p]=t):n=g(),void 0===e?n:o.f(n,e)}},36048:(t,e,n)=>{var r=n(19781),i=n(3353),o=n(3070),a=n(19670),l=n(45656),c=n(81956);e.f=r&&!i?Object.defineProperties:function(t,e){a(t);for(var n,r=l(e),i=c(e),s=i.length,u=0;s>u;)o.f(t,n=i[u++],r[n]);return t}},3070:(t,e,n)=>{var r=n(19781),i=n(64664),o=n(3353),a=n(19670),l=n(34948),c=TypeError,s=Object.defineProperty,u=Object.getOwnPropertyDescriptor,d="enumerable",h="configurable",p="writable";e.f=r?o?function(t,e,n){if(a(t),e=l(e),a(n),"function"==typeof t&&"prototype"===e&&"value"in n&&p in n&&!n[p]){var r=u(t,e);r&&r[p]&&(t[e]=n.value,n={configurable:h in n?n[h]:r[h],enumerable:d in n?n[d]:r[d],writable:!1})}return s(t,e,n)}:s:function(t,e,n){if(a(t),e=l(e),a(n),i)try{return s(t,e,n)}catch(t){}if("get"in n||"set"in n)throw c("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},31236:(t,e,n)=>{var r=n(19781),i=n(46916),o=n(55296),a=n(79114),l=n(45656),c=n(34948),s=n(92597),u=n(64664),d=Object.getOwnPropertyDescriptor;e.f=r?d:function(t,e){if(t=l(t),e=c(e),u)try{return d(t,e)}catch(t){}if(s(t,e))return a(!i(o.f,t,e),t[e])}},1156:(t,e,n)=>{var r=n(84326),i=n(45656),o=n(8006).f,a=n(41589),l="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return l&&"Window"==r(t)?function(t){try{return o(t)}catch(t){return a(l)}}(t):o(i(t))}},8006:(t,e,n)=>{var r=n(16324),i=n(80748).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},25181:(t,e)=>{e.f=Object.getOwnPropertySymbols},79518:(t,e,n)=>{var r=n(92597),i=n(60614),o=n(47908),a=n(6200),l=n(49920),c=a("IE_PROTO"),s=Object,u=s.prototype;t.exports=l?s.getPrototypeOf:function(t){var e=o(t);if(r(e,c))return e[c];var n=e.constructor;return i(n)&&e instanceof n?n.prototype:e instanceof s?u:null}},52050:(t,e,n)=>{var r=n(47293),i=n(70111),o=n(84326),a=n(7556),l=Object.isExtensible,c=r((function(){l(1)}));t.exports=c||a?function(t){return!!i(t)&&(!a||"ArrayBuffer"!=o(t))&&(!l||l(t))}:l},47976:(t,e,n)=>{var r=n(1702);t.exports=r({}.isPrototypeOf)},60996:(t,e,n)=>{"use strict";var r=n(29909),i=n(63061),o=n(76178),a=n(92597),l=n(81956),c=n(47908),s="Object Iterator",u=r.set,d=r.getterFor(s);t.exports=i((function(t,e){var n=c(t);u(this,{type:s,mode:e,object:n,keys:l(n),index:0})}),"Object",(function(){for(var t=d(this),e=t.keys;;){if(null===e||t.index>=e.length)return t.object=t.keys=null,o(void 0,!0);var n=e[t.index++],r=t.object;if(a(r,n)){switch(t.mode){case"keys":return o(n,!1);case"values":return o(r[n],!1)}return o([n,r[n]],!1)}}}))},16324:(t,e,n)=>{var r=n(1702),i=n(92597),o=n(45656),a=n(41318).indexOf,l=n(3501),c=r([].push);t.exports=function(t,e){var n,r=o(t),s=0,u=[];for(n in r)!i(l,n)&&i(r,n)&&c(u,n);for(;e.length>s;)i(r,n=e[s++])&&(~a(u,n)||c(u,n));return u}},81956:(t,e,n)=>{var r=n(16324),i=n(80748);t.exports=Object.keys||function(t){return r(t,i)}},55296:(t,e)=>{"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,i=r&&!n.call({1:2},1);e.f=i?function(t){var e=r(this,t);return!!e&&e.enumerable}:n},69026:(t,e,n)=>{"use strict";var r=n(31913),i=n(17854),o=n(47293),a=n(98008);t.exports=r||!o((function(){if(!(a&&a<535)){var t=Math.random();__defineSetter__.call(null,t,(function(){})),delete i[t]}}))},27674:(t,e,n)=>{var r=n(1702),i=n(19670),o=n(96077);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=r(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(n,[]),e=n instanceof Array}catch(t){}return function(n,r){return i(n),o(r),e?t(n,r):n.__proto__=r,n}}():void 0)},44699:(t,e,n)=>{var r=n(19781),i=n(1702),o=n(81956),a=n(45656),l=i(n(55296).f),c=i([].push),s=function(t){return function(e){for(var n,i=a(e),s=o(i),u=s.length,d=0,h=[];u>d;)n=s[d++],r&&!l(i,n)||c(h,t?[n,i[n]]:i[n]);return h}};t.exports={entries:s(!0),values:s(!1)}},90288:(t,e,n)=>{"use strict";var r=n(51694),i=n(70648);t.exports=r?{}.toString:function(){return"[object "+i(this)+"]"}},90515:(t,e,n)=>{var r=n(17854),i=n(60614),o=n(5112)("observable"),a=r.Observable,l=a&&a.prototype;t.exports=!(i(a)&&i(a.from)&&i(a.of)&&i(l.subscribe)&&i(l[o]))},92140:(t,e,n)=>{var r=n(46916),i=n(60614),o=n(70111),a=TypeError;t.exports=function(t,e){var n,l;if("string"===e&&i(n=t.toString)&&!o(l=r(n,t)))return l;if(i(n=t.valueOf)&&!o(l=r(n,t)))return l;if("string"!==e&&i(n=t.toString)&&!o(l=r(n,t)))return l;throw a("Can't convert object to primitive value")}},53887:(t,e,n)=>{var r=n(35005),i=n(1702),o=n(8006),a=n(25181),l=n(19670),c=i([].concat);t.exports=r("Reflect","ownKeys")||function(t){var e=o.f(l(t)),n=a.f;return n?c(e,n(t)):e}},40857:(t,e,n)=>{var r=n(17854);t.exports=r},12534:t=>{t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},63702:(t,e,n)=>{var r=n(17854),i=n(2492),o=n(60614),a=n(54705),l=n(42788),c=n(5112),s=n(7871),u=n(83823),d=n(31913),h=n(7392),p=i&&i.prototype,b=c("species"),m=!1,Z=o(r.PromiseRejectionEvent),g=a("Promise",(function(){var t=l(i),e=t!==String(i);if(!e&&66===h)return!0;if(d&&(!p.catch||!p.finally))return!0;if(!h||h<51||!/native code/.test(t)){var n=new i((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))};if((n.constructor={})[b]=r,!(m=n.then((function(){}))instanceof r))return!0}return!e&&(s||u)&&!Z}));t.exports={CONSTRUCTOR:g,REJECTION_EVENT:Z,SUBCLASSING:m}},2492:(t,e,n)=>{var r=n(17854);t.exports=r.Promise},69478:(t,e,n)=>{var r=n(19670),i=n(70111),o=n(78523);t.exports=function(t,e){if(r(t),i(e)&&e.constructor===t)return e;var n=o.f(t);return(0,n.resolve)(e),n.promise}},80612:(t,e,n)=>{var r=n(2492),i=n(17072),o=n(63702).CONSTRUCTOR;t.exports=o||!i((function(t){r.all(t).then(void 0,(function(){}))}))},2626:(t,e,n)=>{var r=n(3070).f;t.exports=function(t,e,n){n in t||r(t,n,{configurable:!0,get:function(){return e[n]},set:function(t){e[n]=t}})}},18572:t=>{var e=function(){this.head=null,this.tail=null};e.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}},t.exports=e},38845:(t,e,n)=>{n(51532),n(4129);var r=n(35005),i=n(1702),o=n(72309),a=r("Map"),l=r("WeakMap"),c=i([].push),s=o("metadata"),u=s.store||(s.store=new l),d=function(t,e,n){var r=u.get(t);if(!r){if(!n)return;u.set(t,r=new a)}var i=r.get(e);if(!i){if(!n)return;r.set(e,i=new a)}return i};t.exports={store:u,getMap:d,has:function(t,e,n){var r=d(e,n,!1);return void 0!==r&&r.has(t)},get:function(t,e,n){var r=d(e,n,!1);return void 0===r?void 0:r.get(t)},set:function(t,e,n,r){d(n,r,!0).set(t,e)},keys:function(t,e){var n=d(t,e,!1),r=[];return n&&n.forEach((function(t,e){c(r,e)})),r},toKey:function(t){return void 0===t||"symbol"==typeof t?t:String(t)}}},97651:(t,e,n)=>{var r=n(46916),i=n(19670),o=n(60614),a=n(84326),l=n(22261),c=TypeError;t.exports=function(t,e){var n=t.exec;if(o(n)){var s=r(n,t,e);return null!==s&&i(s),s}if("RegExp"===a(t))return r(l,t,e);throw c("RegExp#exec called on incompatible receiver")}},22261:(t,e,n)=>{"use strict";var r,i,o=n(46916),a=n(1702),l=n(41340),c=n(67066),s=n(52999),u=n(72309),d=n(70030),h=n(29909).get,p=n(9441),b=n(38173),m=u("native-string-replace",String.prototype.replace),Z=RegExp.prototype.exec,g=Z,y=a("".charAt),f=a("".indexOf),I=a("".replace),v=a("".slice),G=(i=/b*/g,o(Z,r=/a/,"a"),o(Z,i,"a"),0!==r.lastIndex||0!==i.lastIndex),X=s.BROKEN_CARET,V=void 0!==/()??/.exec("")[1];(G||V||X||p||b)&&(g=function(t){var e,n,r,i,a,s,u,p=this,b=h(p),W=l(t),S=b.raw;if(S)return S.lastIndex=p.lastIndex,e=o(g,S,W),p.lastIndex=S.lastIndex,e;var R=b.groups,C=X&&p.sticky,Y=o(c,p),N=p.source,K=0,k=W;if(C&&(Y=I(Y,"y",""),-1===f(Y,"g")&&(Y+="g"),k=v(W,p.lastIndex),p.lastIndex>0&&(!p.multiline||p.multiline&&"\n"!==y(W,p.lastIndex-1))&&(N="(?: "+N+")",k=" "+k,K++),n=new RegExp("^(?:"+N+")",Y)),V&&(n=new RegExp("^"+N+"$(?!\\s)",Y)),G&&(r=p.lastIndex),i=o(Z,C?n:p,k),C?i?(i.input=v(i.input,K),i[0]=v(i[0],K),i.index=p.lastIndex,p.lastIndex+=i[0].length):p.lastIndex=0:G&&i&&(p.lastIndex=p.global?i.index+i[0].length:r),V&&i&&i.length>1&&o(m,i[0],n,(function(){for(a=1;a<arguments.length-2;a++)void 0===arguments[a]&&(i[a]=void 0)})),i&&R)for(i.groups=s=d(null),a=0;a<R.length;a++)s[(u=R[a])[0]]=i[u[1]];return i}),t.exports=g},67066:(t,e,n)=>{"use strict";var r=n(19670);t.exports=function(){var t=r(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}},34706:(t,e,n)=>{var r=n(46916),i=n(92597),o=n(47976),a=n(67066),l=RegExp.prototype;t.exports=function(t){var e=t.flags;return void 0!==e||"flags"in l||i(t,"flags")||!o(l,t)?e:r(a,t)}},52999:(t,e,n)=>{var r=n(47293),i=n(17854).RegExp,o=r((function(){var t=i("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),a=o||r((function(){return!i("a","y").sticky})),l=o||r((function(){var t=i("^r","gy");return t.lastIndex=2,null!=t.exec("str")}));t.exports={BROKEN_CARET:l,MISSED_STICKY:a,UNSUPPORTED_Y:o}},9441:(t,e,n)=>{var r=n(47293),i=n(17854).RegExp;t.exports=r((function(){var t=i(".","s");return!(t.dotAll&&t.exec("\n")&&"s"===t.flags)}))},38173:(t,e,n)=>{var r=n(47293),i=n(17854).RegExp;t.exports=r((function(){var t=i("(?<a>b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$<a>c")}))},84488:(t,e,n)=>{var r=n(68554),i=TypeError;t.exports=function(t){if(r(t))throw i("Can't call method on "+t);return t}},46465:t=>{t.exports=function(t,e){return t===e||t!=t&&e!=e}},81150:t=>{t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},17152:(t,e,n)=>{var r=n(17854),i=n(22104),o=n(60614),a=n(88113),l=n(50206),c=n(48053),s=/MSIE .\./.test(a),u=r.Function,d=function(t){return s?function(e,n){var r=c(arguments.length,1)>2,a=o(e)?e:u(e),s=r?l(arguments,2):void 0;return t(r?function(){i(a,this,s)}:a,n)}:t};t.exports={setTimeout:d(r.setTimeout),setInterval:d(r.setInterval)}},96340:(t,e,n)=>{"use strict";var r=n(35005),i=n(3070),o=n(5112),a=n(19781),l=o("species");t.exports=function(t){var e=r(t),n=i.f;a&&e&&!e[l]&&n(e,l,{configurable:!0,get:function(){return this}})}},58003:(t,e,n)=>{var r=n(3070).f,i=n(92597),o=n(5112)("toStringTag");t.exports=function(t,e,n){t&&!n&&(t=t.prototype),t&&!i(t,o)&&r(t,o,{configurable:!0,value:e})}},6200:(t,e,n)=>{var r=n(72309),i=n(69711),o=r("keys");t.exports=function(t){return o[t]||(o[t]=i(t))}},5465:(t,e,n)=>{var r=n(17854),i=n(13072),o="__core-js_shared__",a=r[o]||i(o,{});t.exports=a},72309:(t,e,n)=>{var r=n(31913),i=n(5465);(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.26.1",mode:r?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.26.1/LICENSE",source:"https://github.com/zloirock/core-js"})},36707:(t,e,n)=>{var r=n(19670),i=n(39483),o=n(68554),a=n(5112)("species");t.exports=function(t,e){var n,l=r(t).constructor;return void 0===l||o(n=r(l)[a])?e:i(n)}},43429:(t,e,n)=>{var r=n(47293);t.exports=function(t){return r((function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}))}},28710:(t,e,n)=>{var r=n(1702),i=n(19303),o=n(41340),a=n(84488),l=r("".charAt),c=r("".charCodeAt),s=r("".slice),u=function(t){return function(e,n){var r,u,d=o(a(e)),h=i(n),p=d.length;return h<0||h>=p?t?"":void 0:(r=c(d,h))<55296||r>56319||h+1===p||(u=c(d,h+1))<56320||u>57343?t?l(d,h):r:t?s(d,h,h+2):u-56320+(r-55296<<10)+65536}};t.exports={codeAt:u(!1),charAt:u(!0)}},54986:(t,e,n)=>{var r=n(88113);t.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(r)},76650:(t,e,n)=>{var r=n(1702),i=n(17466),o=n(41340),a=n(38415),l=n(84488),c=r(a),s=r("".slice),u=Math.ceil,d=function(t){return function(e,n,r){var a,d,h=o(l(e)),p=i(n),b=h.length,m=void 0===r?" ":o(r);return p<=b||""==m?h:((d=c(m,u((a=p-b)/m.length))).length>a&&(d=s(d,0,a)),t?h+d:d+h)}};t.exports={start:d(!1),end:d(!0)}},33197:(t,e,n)=>{"use strict";var r=n(1702),i=2147483647,o=/[^\0-\u007E]/,a=/[.\u3002\uFF0E\uFF61]/g,l="Overflow: input needs wider integers to process",c=RangeError,s=r(a.exec),u=Math.floor,d=String.fromCharCode,h=r("".charCodeAt),p=r([].join),b=r([].push),m=r("".replace),Z=r("".split),g=r("".toLowerCase),y=function(t){return t+22+75*(t<26)},f=function(t,e,n){var r=0;for(t=n?u(t/700):t>>1,t+=u(t/e);t>455;)t=u(t/35),r+=36;return u(r+36*t/(t+38))},I=function(t){var e=[];t=function(t){for(var e=[],n=0,r=t.length;n<r;){var i=h(t,n++);if(i>=55296&&i<=56319&&n<r){var o=h(t,n++);56320==(64512&o)?b(e,((1023&i)<<10)+(1023&o)+65536):(b(e,i),n--)}else b(e,i)}return e}(t);var n,r,o=t.length,a=128,s=0,m=72;for(n=0;n<t.length;n++)(r=t[n])<128&&b(e,d(r));var Z=e.length,g=Z;for(Z&&b(e,"-");g<o;){var I=i;for(n=0;n<t.length;n++)(r=t[n])>=a&&r<I&&(I=r);var v=g+1;if(I-a>u((i-s)/v))throw c(l);for(s+=(I-a)*v,a=I,n=0;n<t.length;n++){if((r=t[n])<a&&++s>i)throw c(l);if(r==a){for(var G=s,X=36;;){var V=X<=m?1:X>=m+26?26:X-m;if(G<V)break;var W=G-V,S=36-V;b(e,d(y(V+W%S))),G=u(W/S),X+=36}b(e,d(y(G))),m=f(s,v,g==Z),s=0,g++}}s++,a++}return p(e,"")};t.exports=function(t){var e,n,r=[],i=Z(m(g(t),a,"."),".");for(e=0;e<i.length;e++)n=i[e],b(r,s(o,n)?"xn--"+I(n):n);return p(r,".")}},38415:(t,e,n)=>{"use strict";var r=n(19303),i=n(41340),o=n(84488),a=RangeError;t.exports=function(t){var e=i(o(this)),n="",l=r(t);if(l<0||l==1/0)throw a("Wrong number of repetitions");for(;l>0;(l>>>=1)&&(e+=e))1&l&&(n+=e);return n}},10365:(t,e,n)=>{"use strict";var r=n(53111).end,i=n(76091);t.exports=i("trimEnd")?function(){return r(this)}:"".trimEnd},76091:(t,e,n)=>{var r=n(76530).PROPER,i=n(47293),o=n(81361);t.exports=function(t){return i((function(){return!!o[t]()||"
"!=="
"[t]()||r&&o[t].name!==t}))}},33217:(t,e,n)=>{"use strict";var r=n(53111).start,i=n(76091);t.exports=i("trimStart")?function(){return r(this)}:"".trimStart},53111:(t,e,n)=>{var r=n(1702),i=n(84488),o=n(41340),a=n(81361),l=r("".replace),c="["+a+"]",s=RegExp("^"+c+c+"*"),u=RegExp(c+c+"*$"),d=function(t){return function(e){var n=o(i(e));return 1&t&&(n=l(n,s,"")),2&t&&(n=l(n,u,"")),n}};t.exports={start:d(1),end:d(2),trim:d(3)}},36293:(t,e,n)=>{var r=n(7392),i=n(47293);t.exports=!!Object.getOwnPropertySymbols&&!i((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},56532:(t,e,n)=>{var r=n(46916),i=n(35005),o=n(5112),a=n(98052);t.exports=function(){var t=i("Symbol"),e=t&&t.prototype,n=e&&e.valueOf,l=o("toPrimitive");e&&!e[l]&&a(e,l,(function(t){return r(n,this)}),{arity:1})}},2015:(t,e,n)=>{var r=n(36293);t.exports=r&&!!Symbol.for&&!!Symbol.keyFor},20261:(t,e,n)=>{var r,i,o,a,l=n(17854),c=n(22104),s=n(49974),u=n(60614),d=n(92597),h=n(47293),p=n(60490),b=n(50206),m=n(80317),Z=n(48053),g=n(6833),y=n(35268),f=l.setImmediate,I=l.clearImmediate,v=l.process,G=l.Dispatch,X=l.Function,V=l.MessageChannel,W=l.String,S=0,R={},C="onreadystatechange";try{r=l.location}catch(t){}var Y=function(t){if(d(R,t)){var e=R[t];delete R[t],e()}},N=function(t){return function(){Y(t)}},K=function(t){Y(t.data)},k=function(t){l.postMessage(W(t),r.protocol+"//"+r.host)};f&&I||(f=function(t){Z(arguments.length,1);var e=u(t)?t:X(t),n=b(arguments,1);return R[++S]=function(){c(e,void 0,n)},i(S),S},I=function(t){delete R[t]},y?i=function(t){v.nextTick(N(t))}:G&&G.now?i=function(t){G.now(N(t))}:V&&!g?(a=(o=new V).port2,o.port1.onmessage=K,i=s(a.postMessage,a)):l.addEventListener&&u(l.postMessage)&&!l.importScripts&&r&&"file:"!==r.protocol&&!h(k)?(i=k,l.addEventListener("message",K,!1)):i=C in m("script")?function(t){p.appendChild(m("script"))[C]=function(){p.removeChild(this),Y(t)}}:function(t){setTimeout(N(t),0)}),t.exports={set:f,clear:I}},50863:(t,e,n)=>{var r=n(1702);t.exports=r(1..valueOf)},51400:(t,e,n)=>{var r=n(19303),i=Math.max,o=Math.min;t.exports=function(t,e){var n=r(t);return n<0?i(n+e,0):o(n,e)}},64599:(t,e,n)=>{var r=n(57593),i=TypeError;t.exports=function(t){var e=r(t,"number");if("number"==typeof e)throw i("Can't convert number to bigint");return BigInt(e)}},57067:(t,e,n)=>{var r=n(19303),i=n(17466),o=RangeError;t.exports=function(t){if(void 0===t)return 0;var e=r(t),n=i(e);if(e!==n)throw o("Wrong length or index");return n}},45656:(t,e,n)=>{var r=n(68361),i=n(84488);t.exports=function(t){return r(i(t))}},19303:(t,e,n)=>{var r=n(74758);t.exports=function(t){var e=+t;return e!=e||0===e?0:r(e)}},17466:(t,e,n)=>{var r=n(19303),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},47908:(t,e,n)=>{var r=n(84488),i=Object;t.exports=function(t){return i(r(t))}},84590:(t,e,n)=>{var r=n(73002),i=RangeError;t.exports=function(t,e){var n=r(t);if(n%e)throw i("Wrong offset");return n}},73002:(t,e,n)=>{var r=n(19303),i=RangeError;t.exports=function(t){var e=r(t);if(e<0)throw i("The argument can't be less than 0");return e}},57593:(t,e,n)=>{var r=n(46916),i=n(70111),o=n(52190),a=n(58173),l=n(92140),c=n(5112),s=TypeError,u=c("toPrimitive");t.exports=function(t,e){if(!i(t)||o(t))return t;var n,c=a(t,u);if(c){if(void 0===e&&(e="default"),n=r(c,t,e),!i(n)||o(n))return n;throw s("Can't convert object to primitive value")}return void 0===e&&(e="number"),l(t,e)}},34948:(t,e,n)=>{var r=n(57593),i=n(52190);t.exports=function(t){var e=r(t,"string");return i(e)?e:e+""}},51694:(t,e,n)=>{var r={};r[n(5112)("toStringTag")]="z",t.exports="[object z]"===String(r)},41340:(t,e,n)=>{var r=n(70648),i=String;t.exports=function(t){if("Symbol"===r(t))throw TypeError("Cannot convert a Symbol value to a string");return i(t)}},66330:t=>{var e=String;t.exports=function(t){try{return e(t)}catch(t){return"Object"}}},19843:(t,e,n)=>{"use strict";var r=n(82109),i=n(17854),o=n(46916),a=n(19781),l=n(63832),c=n(90260),s=n(13331),u=n(25787),d=n(79114),h=n(68880),p=n(55988),b=n(17466),m=n(57067),Z=n(84590),g=n(34948),y=n(92597),f=n(70648),I=n(70111),v=n(52190),G=n(70030),X=n(47976),V=n(27674),W=n(8006).f,S=n(97321),R=n(42092).forEach,C=n(96340),Y=n(3070),N=n(31236),K=n(29909),k=n(79587),L=K.get,H=K.set,J=K.enforce,U=Y.f,x=N.f,T=Math.round,w=i.RangeError,A=s.ArrayBuffer,F=A.prototype,B=s.DataView,z=c.NATIVE_ARRAY_BUFFER_VIEWS,P=c.TYPED_ARRAY_TAG,M=c.TypedArray,E=c.TypedArrayPrototype,j=c.aTypedArrayConstructor,Q=c.isTypedArray,O="BYTES_PER_ELEMENT",D="Wrong length",_=function(t,e){j(t);for(var n=0,r=e.length,i=new t(r);r>n;)i[n]=e[n++];return i},q=function(t,e){U(t,e,{get:function(){return L(this)[e]}})},$=function(t){var e;return X(F,t)||"ArrayBuffer"==(e=f(t))||"SharedArrayBuffer"==e},tt=function(t,e){return Q(t)&&!v(e)&&e in t&&p(+e)&&e>=0},et=function(t,e){return e=g(e),tt(t,e)?d(2,t[e]):x(t,e)},nt=function(t,e,n){return e=g(e),!(tt(t,e)&&I(n)&&y(n,"value"))||y(n,"get")||y(n,"set")||n.configurable||y(n,"writable")&&!n.writable||y(n,"enumerable")&&!n.enumerable?U(t,e,n):(t[e]=n.value,t)};a?(z||(N.f=et,Y.f=nt,q(E,"buffer"),q(E,"byteOffset"),q(E,"byteLength"),q(E,"length")),r({target:"Object",stat:!0,forced:!z},{getOwnPropertyDescriptor:et,defineProperty:nt}),t.exports=function(t,e,n){var a=t.match(/\d+$/)[0]/8,c=t+(n?"Clamped":"")+"Array",s="get"+t,d="set"+t,p=i[c],g=p,y=g&&g.prototype,f={},v=function(t,e){U(t,e,{get:function(){return function(t,e){var n=L(t);return n.view[s](e*a+n.byteOffset,!0)}(this,e)},set:function(t){return function(t,e,r){var i=L(t);n&&(r=(r=T(r))<0?0:r>255?255:255&r),i.view[d](e*a+i.byteOffset,r,!0)}(this,e,t)},enumerable:!0})};z?l&&(g=e((function(t,e,n,r){return u(t,y),k(I(e)?$(e)?void 0!==r?new p(e,Z(n,a),r):void 0!==n?new p(e,Z(n,a)):new p(e):Q(e)?_(g,e):o(S,g,e):new p(m(e)),t,g)})),V&&V(g,M),R(W(p),(function(t){t in g||h(g,t,p[t])})),g.prototype=y):(g=e((function(t,e,n,r){u(t,y);var i,l,c,s=0,d=0;if(I(e)){if(!$(e))return Q(e)?_(g,e):o(S,g,e);i=e,d=Z(n,a);var h=e.byteLength;if(void 0===r){if(h%a)throw w(D);if((l=h-d)<0)throw w(D)}else if((l=b(r)*a)+d>h)throw w(D);c=l/a}else c=m(e),i=new A(l=c*a);for(H(t,{buffer:i,byteOffset:d,byteLength:l,length:c,view:new B(i)});s<c;)v(t,s++)})),V&&V(g,M),y=g.prototype=G(E)),y.constructor!==g&&h(y,"constructor",g),J(y).TypedArrayConstructor=g,P&&h(y,P,c);var X=g!=p;f[c]=g,r({global:!0,constructor:!0,forced:X,sham:!z},f),O in g||h(g,O,a),O in y||h(y,O,a),C(c)}):t.exports=function(){}},63832:(t,e,n)=>{var r=n(17854),i=n(47293),o=n(17072),a=n(90260).NATIVE_ARRAY_BUFFER_VIEWS,l=r.ArrayBuffer,c=r.Int8Array;t.exports=!a||!i((function(){c(1)}))||!i((function(){new c(-1)}))||!o((function(t){new c,new c(null),new c(1.5),new c(t)}),!0)||i((function(){return 1!==new c(new l(2),1,void 0).length}))},43074:(t,e,n)=>{var r=n(97745),i=n(66304);t.exports=function(t,e){return r(i(t),e)}},97321:(t,e,n)=>{var r=n(49974),i=n(46916),o=n(39483),a=n(47908),l=n(26244),c=n(18554),s=n(71246),u=n(97659),d=n(44067),h=n(90260).aTypedArrayConstructor,p=n(64599);t.exports=function(t){var e,n,b,m,Z,g,y,f,I=o(this),v=a(t),G=arguments.length,X=G>1?arguments[1]:void 0,V=void 0!==X,W=s(v);if(W&&!u(W))for(f=(y=c(v,W)).next,v=[];!(g=i(f,y)).done;)v.push(g.value);for(V&&G>2&&(X=r(X,arguments[2])),n=l(v),b=new(h(I))(n),m=d(b),e=0;n>e;e++)Z=V?X(v[e],e):v[e],b[e]=m?p(Z):+Z;return b}},66304:(t,e,n)=>{var r=n(90260),i=n(36707),o=r.aTypedArrayConstructor,a=r.getTypedArrayConstructor;t.exports=function(t){return o(i(t,a(t)))}},69711:(t,e,n)=>{var r=n(1702),i=0,o=Math.random(),a=r(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++i+o,36)}},85143:(t,e,n)=>{var r=n(47293),i=n(5112),o=n(31913),a=i("iterator");t.exports=!r((function(){var t=new URL("b?a=1&b=2&c=3","http://a"),e=t.searchParams,n="";return t.pathname="c%20d",e.forEach((function(t,r){e.delete("b"),n+=r+t})),o&&!t.toJSON||!e.sort||"http://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[a]||"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"!==n||"x"!==new URL("http://x",void 0).host}))},43307:(t,e,n)=>{var r=n(36293);t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},3353:(t,e,n)=>{var r=n(19781),i=n(47293);t.exports=r&&i((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},48053:t=>{var e=TypeError;t.exports=function(t,n){if(t<n)throw e("Not enough arguments");return t}},94811:(t,e,n)=>{var r=n(17854),i=n(60614),o=r.WeakMap;t.exports=i(o)&&/native code/.test(String(o))},26800:(t,e,n)=>{var r=n(40857),i=n(92597),o=n(6061),a=n(3070).f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});i(e,t)||a(e,t,{value:o.f(t)})}},6061:(t,e,n)=>{var r=n(5112);e.f=r},5112:(t,e,n)=>{var r=n(17854),i=n(72309),o=n(92597),a=n(69711),l=n(36293),c=n(43307),s=i("wks"),u=r.Symbol,d=u&&u.for,h=c?u:u&&u.withoutSetter||a;t.exports=function(t){if(!o(s,t)||!l&&"string"!=typeof s[t]){var e="Symbol."+t;l&&o(u,t)?s[t]=u[t]:s[t]=c&&d?d(e):h(e)}return s[t]}},81361:t=>{t.exports="\t\n\v\f\r \u2028\u2029\ufeff"},56967:(t,e,n)=>{"use strict";var r=n(82109),i=n(47976),o=n(79518),a=n(27674),l=n(99920),c=n(70030),s=n(68880),u=n(79114),d=n(11060),h=n(58340),p=n(20408),b=n(56277),m=n(5112),Z=n(22914),g=m("toStringTag"),y=Error,f=[].push,I=function(t,e){var n,r=arguments.length>2?arguments[2]:void 0,l=i(v,this);a?n=a(y(),l?o(this):v):(n=l?this:c(v),s(n,g,"Error")),void 0!==e&&s(n,"message",b(e)),Z&&s(n,"stack",d(n.stack,1)),h(n,r);var u=[];return p(t,f,{that:u}),s(n,"errors",u),n};a?a(I,y):l(I,y,{name:!0});var v=I.prototype=c(y.prototype,{constructor:u(1,I),message:u(1,""),name:u(1,"AggregateError")});r({global:!0,constructor:!0,arity:2},{AggregateError:I})},9170:(t,e,n)=>{n(56967)},18264:(t,e,n)=>{"use strict";var r=n(82109),i=n(17854),o=n(13331),a=n(96340),l="ArrayBuffer",c=o[l];r({global:!0,constructor:!0,forced:i[l]!==c},{ArrayBuffer:c}),a(l)},76938:(t,e,n)=>{var r=n(82109),i=n(90260);r({target:"ArrayBuffer",stat:!0,forced:!i.NATIVE_ARRAY_BUFFER_VIEWS},{isView:i.isView})},39575:(t,e,n)=>{"use strict";var r=n(82109),i=n(21470),o=n(47293),a=n(13331),l=n(19670),c=n(51400),s=n(17466),u=n(36707),d=a.ArrayBuffer,h=a.DataView,p=h.prototype,b=i(d.prototype.slice),m=i(p.getUint8),Z=i(p.setUint8);r({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:o((function(){return!new d(2).slice(1,void 0).byteLength}))},{slice:function(t,e){if(b&&void 0===e)return b(l(this),t);for(var n=l(this).byteLength,r=c(t,n),i=c(void 0===e?n:e,n),o=new(u(this,d))(s(i-r)),a=new h(this),p=new h(o),g=0;r<i;)Z(p,g++,m(a,r++));return o}})},92222:(t,e,n)=>{"use strict";var r=n(82109),i=n(47293),o=n(43157),a=n(70111),l=n(47908),c=n(26244),s=n(7207),u=n(86135),d=n(65417),h=n(81194),p=n(5112),b=n(7392),m=p("isConcatSpreadable"),Z=b>=51||!i((function(){var t=[];return t[m]=!1,t.concat()[0]!==t})),g=h("concat"),y=function(t){if(!a(t))return!1;var e=t[m];return void 0!==e?!!e:o(t)};r({target:"Array",proto:!0,arity:1,forced:!Z||!g},{concat:function(t){var e,n,r,i,o,a=l(this),h=d(a,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(o=-1===e?a:arguments[e]))for(i=c(o),s(p+i),n=0;n<i;n++,p++)n in o&&u(h,p,o[n]);else s(p+1),u(h,p++,o);return h.length=p,h}})},50545:(t,e,n)=>{var r=n(82109),i=n(1048),o=n(51223);r({target:"Array",proto:!0},{copyWithin:i}),o("copyWithin")},26541:(t,e,n)=>{"use strict";var r=n(82109),i=n(42092).every;r({target:"Array",proto:!0,forced:!n(9341)("every")},{every:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},43290:(t,e,n)=>{var r=n(82109),i=n(21285),o=n(51223);r({target:"Array",proto:!0},{fill:i}),o("fill")},57327:(t,e,n)=>{"use strict";var r=n(82109),i=n(42092).filter;r({target:"Array",proto:!0,forced:!n(81194)("filter")},{filter:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},34553:(t,e,n)=>{"use strict";var r=n(82109),i=n(42092).findIndex,o=n(51223),a="findIndex",l=!0;a in[]&&Array(1)[a]((function(){l=!1})),r({target:"Array",proto:!0,forced:l},{findIndex:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),o(a)},69826:(t,e,n)=>{"use strict";var r=n(82109),i=n(42092).find,o=n(51223),a="find",l=!0;a in[]&&Array(1)[a]((function(){l=!1})),r({target:"Array",proto:!0,forced:l},{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),o(a)},86535:(t,e,n)=>{"use strict";var r=n(82109),i=n(6790),o=n(19662),a=n(47908),l=n(26244),c=n(65417);r({target:"Array",proto:!0},{flatMap:function(t){var e,n=a(this),r=l(n);return o(t),(e=c(n,0)).length=i(e,n,n,r,0,1,t,arguments.length>1?arguments[1]:void 0),e}})},84944:(t,e,n)=>{"use strict";var r=n(82109),i=n(6790),o=n(47908),a=n(26244),l=n(19303),c=n(65417);r({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=o(this),n=a(e),r=c(e,0);return r.length=i(r,e,e,n,0,void 0===t?1:l(t)),r}})},89554:(t,e,n)=>{"use strict";var r=n(82109),i=n(18533);r({target:"Array",proto:!0,forced:[].forEach!=i},{forEach:i})},91038:(t,e,n)=>{var r=n(82109),i=n(48457);r({target:"Array",stat:!0,forced:!n(17072)((function(t){Array.from(t)}))},{from:i})},26699:(t,e,n)=>{"use strict";var r=n(82109),i=n(41318).includes,o=n(47293),a=n(51223);r({target:"Array",proto:!0,forced:o((function(){return!Array(1).includes()}))},{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),a("includes")},82772:(t,e,n)=>{"use strict";var r=n(82109),i=n(21470),o=n(41318).indexOf,a=n(9341),l=i([].indexOf),c=!!l&&1/l([1],1,-0)<0,s=a("indexOf");r({target:"Array",proto:!0,forced:c||!s},{indexOf:function(t){var e=arguments.length>1?arguments[1]:void 0;return c?l(this,t,e)||0:o(this,t,e)}})},79753:(t,e,n)=>{n(82109)({target:"Array",stat:!0},{isArray:n(43157)})},66992:(t,e,n)=>{"use strict";var r=n(45656),i=n(51223),o=n(97497),a=n(29909),l=n(3070).f,c=n(51656),s=n(76178),u=n(31913),d=n(19781),h="Array Iterator",p=a.set,b=a.getterFor(h);t.exports=c(Array,"Array",(function(t,e){p(this,{type:h,target:r(t),index:0,kind:e})}),(function(){var t=b(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,s(void 0,!0)):s("keys"==n?r:"values"==n?e[r]:[r,e[r]],!1)}),"values");var m=o.Arguments=o.Array;if(i("keys"),i("values"),i("entries"),!u&&d&&"values"!==m.name)try{l(m,"name",{value:"values"})}catch(t){}},69600:(t,e,n)=>{"use strict";var r=n(82109),i=n(1702),o=n(68361),a=n(45656),l=n(9341),c=i([].join),s=o!=Object,u=l("join",",");r({target:"Array",proto:!0,forced:s||!u},{join:function(t){return c(a(this),void 0===t?",":t)}})},94986:(t,e,n)=>{var r=n(82109),i=n(86583);r({target:"Array",proto:!0,forced:i!==[].lastIndexOf},{lastIndexOf:i})},21249:(t,e,n)=>{"use strict";var r=n(82109),i=n(42092).map;r({target:"Array",proto:!0,forced:!n(81194)("map")},{map:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},26572:(t,e,n)=>{"use strict";var r=n(82109),i=n(47293),o=n(4411),a=n(86135),l=Array;r({target:"Array",stat:!0,forced:i((function(){function t(){}return!(l.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(o(this)?this:l)(e);e>t;)a(n,t,arguments[t++]);return n.length=e,n}})},96644:(t,e,n)=>{"use strict";var r=n(82109),i=n(53671).right,o=n(9341),a=n(7392),l=n(35268);r({target:"Array",proto:!0,forced:!o("reduceRight")||!l&&a>79&&a<83},{reduceRight:function(t){return i(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},85827:(t,e,n)=>{"use strict";var r=n(82109),i=n(53671).left,o=n(9341),a=n(7392),l=n(35268);r({target:"Array",proto:!0,forced:!o("reduce")||!l&&a>79&&a<83},{reduce:function(t){var e=arguments.length;return i(this,t,e,e>1?arguments[1]:void 0)}})},65069:(t,e,n)=>{"use strict";var r=n(82109),i=n(1702),o=n(43157),a=i([].reverse),l=[1,2];r({target:"Array",proto:!0,forced:String(l)===String(l.reverse())},{reverse:function(){return o(this)&&(this.length=this.length),a(this)}})},47042:(t,e,n)=>{"use strict";var r=n(82109),i=n(43157),o=n(4411),a=n(70111),l=n(51400),c=n(26244),s=n(45656),u=n(86135),d=n(5112),h=n(81194),p=n(50206),b=h("slice"),m=d("species"),Z=Array,g=Math.max;r({target:"Array",proto:!0,forced:!b},{slice:function(t,e){var n,r,d,h=s(this),b=c(h),y=l(t,b),f=l(void 0===e?b:e,b);if(i(h)&&(n=h.constructor,(o(n)&&(n===Z||i(n.prototype))||a(n)&&null===(n=n[m]))&&(n=void 0),n===Z||void 0===n))return p(h,y,f);for(r=new(void 0===n?Z:n)(g(f-y,0)),d=0;y<f;y++,d++)y in h&&u(r,d,h[y]);return r.length=d,r}})},5212:(t,e,n)=>{"use strict";var r=n(82109),i=n(42092).some;r({target:"Array",proto:!0,forced:!n(9341)("some")},{some:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},2707:(t,e,n)=>{"use strict";var r=n(82109),i=n(1702),o=n(19662),a=n(47908),l=n(26244),c=n(85117),s=n(41340),u=n(47293),d=n(94362),h=n(9341),p=n(68886),b=n(30256),m=n(7392),Z=n(98008),g=[],y=i(g.sort),f=i(g.push),I=u((function(){g.sort(void 0)})),v=u((function(){g.sort(null)})),G=h("sort"),X=!u((function(){if(m)return m<70;if(!(p&&p>3)){if(b)return!0;if(Z)return Z<603;var t,e,n,r,i="";for(t=65;t<76;t++){switch(e=String.fromCharCode(t),t){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)g.push({k:e+r,v:n})}for(g.sort((function(t,e){return e.v-t.v})),r=0;r<g.length;r++)e=g[r].k.charAt(0),i.charAt(i.length-1)!==e&&(i+=e);return"DGBEFHACIJK"!==i}}));r({target:"Array",proto:!0,forced:I||!v||!G||!X},{sort:function(t){void 0!==t&&o(t);var e=a(this);if(X)return void 0===t?y(e):y(e,t);var n,r,i=[],u=l(e);for(r=0;r<u;r++)r in e&&f(i,e[r]);for(d(i,function(t){return function(e,n){return void 0===n?-1:void 0===e?1:void 0!==t?+t(e,n)||0:s(e)>s(n)?1:-1}}(t)),n=l(i),r=0;r<n;)e[r]=i[r++];for(;r<u;)c(e,r++);return e}})},38706:(t,e,n)=>{n(96340)("Array")},40561:(t,e,n)=>{"use strict";var r=n(82109),i=n(47908),o=n(51400),a=n(19303),l=n(26244),c=n(83658),s=n(7207),u=n(65417),d=n(86135),h=n(85117),p=n(81194)("splice"),b=Math.max,m=Math.min;r({target:"Array",proto:!0,forced:!p},{splice:function(t,e){var n,r,p,Z,g,y,f=i(this),I=l(f),v=o(t,I),G=arguments.length;for(0===G?n=r=0:1===G?(n=0,r=I-v):(n=G-2,r=m(b(a(e),0),I-v)),s(I+n-r),p=u(f,r),Z=0;Z<r;Z++)(g=v+Z)in f&&d(p,Z,f[g]);if(p.length=r,n<r){for(Z=v;Z<I-r;Z++)y=Z+n,(g=Z+r)in f?f[y]=f[g]:h(f,y);for(Z=I;Z>I-r+n;Z--)h(f,Z-1)}else if(n>r)for(Z=I-r;Z>v;Z--)y=Z+n-1,(g=Z+r-1)in f?f[y]=f[g]:h(f,y);for(Z=0;Z<n;Z++)f[Z+v]=arguments[Z+2];return c(f,I-r+n),p}})},99244:(t,e,n)=>{n(51223)("flatMap")},33792:(t,e,n)=>{n(51223)("flat")},3690:(t,e,n)=>{var r=n(82109),i=n(13331);r({global:!0,constructor:!0,forced:!n(23013)},{DataView:i.DataView})},16716:(t,e,n)=>{n(3690)},3843:(t,e,n)=>{var r=n(82109),i=n(1702),o=Date,a=i(o.prototype.getTime);r({target:"Date",stat:!0},{now:function(){return a(new o)}})},28733:(t,e,n)=>{var r=n(82109),i=n(85573);r({target:"Date",proto:!0,forced:Date.prototype.toISOString!==i},{toISOString:i})},5735:(t,e,n)=>{"use strict";var r=n(82109),i=n(47293),o=n(47908),a=n(57593);r({target:"Date",proto:!0,arity:1,forced:i((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=o(this),n=a(e,"number");return"number"!=typeof n||isFinite(n)?e.toISOString():null}})},96078:(t,e,n)=>{var r=n(92597),i=n(98052),o=n(38709),a=n(5112)("toPrimitive"),l=Date.prototype;r(l,a)||i(l,a,o)},83710:(t,e,n)=>{var r=n(1702),i=n(98052),o=Date.prototype,a="Invalid Date",l="toString",c=r(o[l]),s=r(o.getTime);String(new Date(NaN))!=a&&i(o,l,(function(){var t=s(this);return t==t?c(this):a}))},24812:(t,e,n)=>{var r=n(82109),i=n(27065);r({target:"Function",proto:!0,forced:Function.bind!==i},{bind:i})},4855:(t,e,n)=>{"use strict";var r=n(60614),i=n(70111),o=n(3070),a=n(79518),l=n(5112),c=n(56339),s=l("hasInstance"),u=Function.prototype;s in u||o.f(u,s,{value:c((function(t){if(!r(this)||!i(t))return!1;var e=this.prototype;if(!i(e))return t instanceof this;for(;t=a(t);)if(e===t)return!0;return!1}),s)})},68309:(t,e,n)=>{var r=n(19781),i=n(76530).EXISTS,o=n(1702),a=n(3070).f,l=Function.prototype,c=o(l.toString),s=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,u=o(s.exec);r&&!i&&a(l,"name",{configurable:!0,get:function(){try{return u(s,c(this))[1]}catch(t){return""}}})},35837:(t,e,n)=>{var r=n(82109),i=n(17854);r({global:!0,forced:i.globalThis!==i},{globalThis:i})},38862:(t,e,n)=>{var r=n(82109),i=n(35005),o=n(22104),a=n(46916),l=n(1702),c=n(47293),s=n(43157),u=n(60614),d=n(70111),h=n(52190),p=n(50206),b=n(36293),m=i("JSON","stringify"),Z=l(/./.exec),g=l("".charAt),y=l("".charCodeAt),f=l("".replace),I=l(1..toString),v=/[\uD800-\uDFFF]/g,G=/^[\uD800-\uDBFF]$/,X=/^[\uDC00-\uDFFF]$/,V=!b||c((function(){var t=i("Symbol")();return"[null]"!=m([t])||"{}"!=m({a:t})||"{}"!=m(Object(t))})),W=c((function(){return'"\\udf06\\ud834"'!==m("\udf06\ud834")||'"\\udead"'!==m("\udead")})),S=function(t,e){var n=p(arguments),r=e;if((d(e)||void 0!==t)&&!h(t))return s(e)||(e=function(t,e){if(u(r)&&(e=a(r,this,t,e)),!h(e))return e}),n[1]=e,o(m,null,n)},R=function(t,e,n){var r=g(n,e-1),i=g(n,e+1);return Z(G,t)&&!Z(X,i)||Z(X,t)&&!Z(G,r)?"\\u"+I(y(t,0),16):t};m&&r({target:"JSON",stat:!0,arity:3,forced:V||W},{stringify:function(t,e,n){var r=p(arguments),i=o(V?S:m,null,r);return W&&"string"==typeof i?f(i,v,R):i}})},73706:(t,e,n)=>{var r=n(17854);n(58003)(r.JSON,"JSON",!0)},69098:(t,e,n)=>{"use strict";n(77710)("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),n(95631))},51532:(t,e,n)=>{n(69098)},99752:(t,e,n)=>{var r=n(82109),i=n(26513),o=Math.acosh,a=Math.log,l=Math.sqrt,c=Math.LN2;r({target:"Math",stat:!0,forced:!o||710!=Math.floor(o(Number.MAX_VALUE))||o(1/0)!=1/0},{acosh:function(t){var e=+t;return e<1?NaN:e>94906265.62425156?a(e)+c:i(e-1+l(e-1)*l(e+1))}})},82376:(t,e,n)=>{var r=n(82109),i=Math.asinh,o=Math.log,a=Math.sqrt;r({target:"Math",stat:!0,forced:!(i&&1/i(0)>0)},{asinh:function t(e){var n=+e;return isFinite(n)&&0!=n?n<0?-t(-n):o(n+a(n*n+1)):n}})},73181:(t,e,n)=>{var r=n(82109),i=Math.atanh,o=Math.log;r({target:"Math",stat:!0,forced:!(i&&1/i(-0)<0)},{atanh:function(t){var e=+t;return 0==e?e:o((1+e)/(1-e))/2}})},23484:(t,e,n)=>{var r=n(82109),i=n(64310),o=Math.abs,a=Math.pow;r({target:"Math",stat:!0},{cbrt:function(t){var e=+t;return i(e)*a(o(e),1/3)}})},2388:(t,e,n)=>{var r=n(82109),i=Math.floor,o=Math.log,a=Math.LOG2E;r({target:"Math",stat:!0},{clz32:function(t){var e=t>>>0;return e?31-i(o(e+.5)*a):32}})},88621:(t,e,n)=>{var r=n(82109),i=n(66736),o=Math.cosh,a=Math.abs,l=Math.E;r({target:"Math",stat:!0,forced:!o||o(710)===1/0},{cosh:function(t){var e=i(a(t)-1)+1;return(e+1/(e*l*l))*(l/2)}})},60403:(t,e,n)=>{var r=n(82109),i=n(66736);r({target:"Math",stat:!0,forced:i!=Math.expm1},{expm1:i})},84755:(t,e,n)=>{n(82109)({target:"Math",stat:!0},{fround:n(26130)})},25438:(t,e,n)=>{var r=n(82109),i=Math.hypot,o=Math.abs,a=Math.sqrt;r({target:"Math",stat:!0,arity:2,forced:!!i&&i(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,i=0,l=0,c=arguments.length,s=0;l<c;)s<(n=o(arguments[l++]))?(i=i*(r=s/n)*r+1,s=n):i+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*a(i)}})},90332:(t,e,n)=>{var r=n(82109),i=n(47293),o=Math.imul;r({target:"Math",stat:!0,forced:i((function(){return-5!=o(4294967295,5)||2!=o.length}))},{imul:function(t,e){var n=65535,r=+t,i=+e,o=n&r,a=n&i;return 0|o*a+((n&r>>>16)*a+o*(n&i>>>16)<<16>>>0)}})},40658:(t,e,n)=>{n(82109)({target:"Math",stat:!0},{log10:n(20403)})},40197:(t,e,n)=>{n(82109)({target:"Math",stat:!0},{log1p:n(26513)})},44914:(t,e,n)=>{var r=n(82109),i=Math.log,o=Math.LN2;r({target:"Math",stat:!0},{log2:function(t){return i(t)/o}})},52420:(t,e,n)=>{n(82109)({target:"Math",stat:!0},{sign:n(64310)})},60160:(t,e,n)=>{var r=n(82109),i=n(47293),o=n(66736),a=Math.abs,l=Math.exp,c=Math.E;r({target:"Math",stat:!0,forced:i((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){var e=+t;return a(e)<1?(o(e)-o(-e))/2:(l(e-1)-l(-e-1))*(c/2)}})},60970:(t,e,n)=>{var r=n(82109),i=n(66736),o=Math.exp;r({target:"Math",stat:!0},{tanh:function(t){var e=+t,n=i(e),r=i(-e);return n==1/0?1:r==1/0?-1:(n-r)/(o(e)+o(-e))}})},10408:(t,e,n)=>{n(58003)(Math,"Math",!0)},73689:(t,e,n)=>{n(82109)({target:"Math",stat:!0},{trunc:n(74758)})},9653:(t,e,n)=>{"use strict";var r=n(19781),i=n(17854),o=n(1702),a=n(54705),l=n(98052),c=n(92597),s=n(79587),u=n(47976),d=n(52190),h=n(57593),p=n(47293),b=n(8006).f,m=n(31236).f,Z=n(3070).f,g=n(50863),y=n(53111).trim,f="Number",I=i[f],v=I.prototype,G=i.TypeError,X=o("".slice),V=o("".charCodeAt),W=function(t){var e=h(t,"number");return"bigint"==typeof e?e:S(e)},S=function(t){var e,n,r,i,o,a,l,c,s=h(t,"number");if(d(s))throw G("Cannot convert a Symbol value to a number");if("string"==typeof s&&s.length>2)if(s=y(s),43===(e=V(s,0))||45===e){if(88===(n=V(s,2))||120===n)return NaN}else if(48===e){switch(V(s,1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+s}for(a=(o=X(s,2)).length,l=0;l<a;l++)if((c=V(o,l))<48||c>i)return NaN;return parseInt(o,r)}return+s};if(a(f,!I(" 0o1")||!I("0b1")||I("+0x1"))){for(var R,C=function(t){var e=arguments.length<1?0:I(W(t)),n=this;return u(v,n)&&p((function(){g(n)}))?s(Object(e),n,C):e},Y=r?b(I):"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(","),N=0;Y.length>N;N++)c(I,R=Y[N])&&!c(C,R)&&Z(C,R,m(I,R));C.prototype=v,v.constructor=C,l(i,f,C,{constructor:!0})}},93299:(t,e,n)=>{n(82109)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})},35192:(t,e,n)=>{n(82109)({target:"Number",stat:!0},{isFinite:n(77023)})},33161:(t,e,n)=>{n(82109)({target:"Number",stat:!0},{isInteger:n(55988)})},44048:(t,e,n)=>{n(82109)({target:"Number",stat:!0},{isNaN:function(t){return t!=t}})},78285:(t,e,n)=>{var r=n(82109),i=n(55988),o=Math.abs;r({target:"Number",stat:!0},{isSafeInteger:function(t){return i(t)&&o(t)<=9007199254740991}})},44363:(t,e,n)=>{n(82109)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})},55994:(t,e,n)=>{n(82109)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})},61874:(t,e,n)=>{var r=n(82109),i=n(2814);r({target:"Number",stat:!0,forced:Number.parseFloat!=i},{parseFloat:i})},9494:(t,e,n)=>{var r=n(82109),i=n(83009);r({target:"Number",stat:!0,forced:Number.parseInt!=i},{parseInt:i})},56977:(t,e,n)=>{"use strict";var r=n(82109),i=n(1702),o=n(19303),a=n(50863),l=n(38415),c=n(47293),s=RangeError,u=String,d=Math.floor,h=i(l),p=i("".slice),b=i(1..toFixed),m=function(t,e,n){return 0===e?n:e%2==1?m(t,e-1,n*t):m(t*t,e/2,n)},Z=function(t,e,n){for(var r=-1,i=n;++r<6;)i+=e*t[r],t[r]=i%1e7,i=d(i/1e7)},g=function(t,e){for(var n=6,r=0;--n>=0;)r+=t[n],t[n]=d(r/e),r=r%e*1e7},y=function(t){for(var e=6,n="";--e>=0;)if(""!==n||0===e||0!==t[e]){var r=u(t[e]);n=""===n?r:n+h("0",7-r.length)+r}return n};r({target:"Number",proto:!0,forced:c((function(){return"0.000"!==b(8e-5,3)||"1"!==b(.9,0)||"1.25"!==b(1.255,2)||"1000000000000000128"!==b(0xde0b6b3a7640080,0)}))||!c((function(){b({})}))},{toFixed:function(t){var e,n,r,i,l=a(this),c=o(t),d=[0,0,0,0,0,0],b="",f="0";if(c<0||c>20)throw s("Incorrect fraction digits");if(l!=l)return"NaN";if(l<=-1e21||l>=1e21)return u(l);if(l<0&&(b="-",l=-l),l>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(l*m(2,69,1))-69)<0?l*m(2,-e,1):l/m(2,e,1),n*=4503599627370496,(e=52-e)>0){for(Z(d,0,n),r=c;r>=7;)Z(d,1e7,0),r-=7;for(Z(d,m(10,r,1),0),r=e-1;r>=23;)g(d,1<<23),r-=23;g(d,1<<r),Z(d,1,1),g(d,2),f=y(d)}else Z(d,0,n),Z(d,1<<-e,0),f=y(d)+h("0",c);return c>0?b+((i=f.length)<=c?"0."+h("0",c-i)+f:p(f,0,i-c)+"."+p(f,i-c)):b+f}})},55147:(t,e,n)=>{"use strict";var r=n(82109),i=n(1702),o=n(47293),a=n(50863),l=i(1..toPrecision);r({target:"Number",proto:!0,forced:o((function(){return"1"!==l(1,void 0)}))||!o((function(){l({})}))},{toPrecision:function(t){return void 0===t?l(a(this)):l(a(this),t)}})},19601:(t,e,n)=>{var r=n(82109),i=n(21574);r({target:"Object",stat:!0,arity:2,forced:Object.assign!==i},{assign:i})},78011:(t,e,n)=>{n(82109)({target:"Object",stat:!0,sham:!n(19781)},{create:n(70030)})},59595:(t,e,n)=>{"use strict";var r=n(82109),i=n(19781),o=n(69026),a=n(19662),l=n(47908),c=n(3070);i&&r({target:"Object",proto:!0,forced:o},{__defineGetter__:function(t,e){c.f(l(this),t,{get:a(e),enumerable:!0,configurable:!0})}})},33321:(t,e,n)=>{var r=n(82109),i=n(19781),o=n(36048).f;r({target:"Object",stat:!0,forced:Object.defineProperties!==o,sham:!i},{defineProperties:o})},69070:(t,e,n)=>{var r=n(82109),i=n(19781),o=n(3070).f;r({target:"Object",stat:!0,forced:Object.defineProperty!==o,sham:!i},{defineProperty:o})},35500:(t,e,n)=>{"use strict";var r=n(82109),i=n(19781),o=n(69026),a=n(19662),l=n(47908),c=n(3070);i&&r({target:"Object",proto:!0,forced:o},{__defineSetter__:function(t,e){c.f(l(this),t,{set:a(e),enumerable:!0,configurable:!0})}})},69720:(t,e,n)=>{var r=n(82109),i=n(44699).entries;r({target:"Object",stat:!0},{entries:function(t){return i(t)}})},43371:(t,e,n)=>{var r=n(82109),i=n(76677),o=n(47293),a=n(70111),l=n(62423).onFreeze,c=Object.freeze;r({target:"Object",stat:!0,forced:o((function(){c(1)})),sham:!i},{freeze:function(t){return c&&a(t)?c(l(t)):t}})},38559:(t,e,n)=>{var r=n(82109),i=n(20408),o=n(86135);r({target:"Object",stat:!0},{fromEntries:function(t){var e={};return i(t,(function(t,n){o(e,t,n)}),{AS_ENTRIES:!0}),e}})},38880:(t,e,n)=>{var r=n(82109),i=n(47293),o=n(45656),a=n(31236).f,l=n(19781),c=i((function(){a(1)}));r({target:"Object",stat:!0,forced:!l||c,sham:!l},{getOwnPropertyDescriptor:function(t,e){return a(o(t),e)}})},49337:(t,e,n)=>{var r=n(82109),i=n(19781),o=n(53887),a=n(45656),l=n(31236),c=n(86135);r({target:"Object",stat:!0,sham:!i},{getOwnPropertyDescriptors:function(t){for(var e,n,r=a(t),i=l.f,s=o(r),u={},d=0;s.length>d;)void 0!==(n=i(r,e=s[d++]))&&c(u,e,n);return u}})},36210:(t,e,n)=>{var r=n(82109),i=n(47293),o=n(1156).f;r({target:"Object",stat:!0,forced:i((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:o})},29660:(t,e,n)=>{var r=n(82109),i=n(36293),o=n(47293),a=n(25181),l=n(47908);r({target:"Object",stat:!0,forced:!i||o((function(){a.f(1)}))},{getOwnPropertySymbols:function(t){var e=a.f;return e?e(l(t)):[]}})},30489:(t,e,n)=>{var r=n(82109),i=n(47293),o=n(47908),a=n(79518),l=n(49920);r({target:"Object",stat:!0,forced:i((function(){a(1)})),sham:!l},{getPrototypeOf:function(t){return a(o(t))}})},41825:(t,e,n)=>{var r=n(82109),i=n(52050);r({target:"Object",stat:!0,forced:Object.isExtensible!==i},{isExtensible:i})},98410:(t,e,n)=>{var r=n(82109),i=n(47293),o=n(70111),a=n(84326),l=n(7556),c=Object.isFrozen;r({target:"Object",stat:!0,forced:i((function(){c(1)}))||l},{isFrozen:function(t){return!o(t)||!(!l||"ArrayBuffer"!=a(t))||!!c&&c(t)}})},72200:(t,e,n)=>{var r=n(82109),i=n(47293),o=n(70111),a=n(84326),l=n(7556),c=Object.isSealed;r({target:"Object",stat:!0,forced:i((function(){c(1)}))||l},{isSealed:function(t){return!o(t)||!(!l||"ArrayBuffer"!=a(t))||!!c&&c(t)}})},43304:(t,e,n)=>{n(82109)({target:"Object",stat:!0},{is:n(81150)})},47941:(t,e,n)=>{var r=n(82109),i=n(47908),o=n(81956);r({target:"Object",stat:!0,forced:n(47293)((function(){o(1)}))},{keys:function(t){return o(i(t))}})},94869:(t,e,n)=>{"use strict";var r=n(82109),i=n(19781),o=n(69026),a=n(47908),l=n(34948),c=n(79518),s=n(31236).f;i&&r({target:"Object",proto:!0,forced:o},{__lookupGetter__:function(t){var e,n=a(this),r=l(t);do{if(e=s(n,r))return e.get}while(n=c(n))}})},33952:(t,e,n)=>{"use strict";var r=n(82109),i=n(19781),o=n(69026),a=n(47908),l=n(34948),c=n(79518),s=n(31236).f;i&&r({target:"Object",proto:!0,forced:o},{__lookupSetter__:function(t){var e,n=a(this),r=l(t);do{if(e=s(n,r))return e.set}while(n=c(n))}})},57227:(t,e,n)=>{var r=n(82109),i=n(70111),o=n(62423).onFreeze,a=n(76677),l=n(47293),c=Object.preventExtensions;r({target:"Object",stat:!0,forced:l((function(){c(1)})),sham:!a},{preventExtensions:function(t){return c&&i(t)?c(o(t)):t}})},60514:(t,e,n)=>{var r=n(82109),i=n(70111),o=n(62423).onFreeze,a=n(76677),l=n(47293),c=Object.seal;r({target:"Object",stat:!0,forced:l((function(){c(1)})),sham:!a},{seal:function(t){return c&&i(t)?c(o(t)):t}})},68304:(t,e,n)=>{n(82109)({target:"Object",stat:!0},{setPrototypeOf:n(27674)})},41539:(t,e,n)=>{var r=n(51694),i=n(98052),o=n(90288);r||i(Object.prototype,"toString",o,{unsafe:!0})},26833:(t,e,n)=>{var r=n(82109),i=n(44699).values;r({target:"Object",stat:!0},{values:function(t){return i(t)}})},54678:(t,e,n)=>{var r=n(82109),i=n(2814);r({global:!0,forced:parseFloat!=i},{parseFloat:i})},91058:(t,e,n)=>{var r=n(82109),i=n(83009);r({global:!0,forced:parseInt!=i},{parseInt:i})},17922:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),a=n(78523),l=n(12534),c=n(20408);r({target:"Promise",stat:!0},{allSettled:function(t){var e=this,n=a.f(e),r=n.resolve,s=n.reject,u=l((function(){var n=o(e.resolve),a=[],l=0,s=1;c(t,(function(t){var o=l++,c=!1;s++,i(n,e,t).then((function(t){c||(c=!0,a[o]={status:"fulfilled",value:t},--s||r(a))}),(function(t){c||(c=!0,a[o]={status:"rejected",reason:t},--s||r(a))}))})),--s||r(a)}));return u.error&&s(u.value),n.promise}})},70821:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),a=n(78523),l=n(12534),c=n(20408);r({target:"Promise",stat:!0,forced:n(80612)},{all:function(t){var e=this,n=a.f(e),r=n.resolve,s=n.reject,u=l((function(){var n=o(e.resolve),a=[],l=0,u=1;c(t,(function(t){var o=l++,c=!1;u++,i(n,e,t).then((function(t){c||(c=!0,a[o]=t,--u||r(a))}),s)})),--u||r(a)}));return u.error&&s(u.value),n.promise}})},34668:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),a=n(35005),l=n(78523),c=n(12534),s=n(20408),u="No one promise resolved";r({target:"Promise",stat:!0},{any:function(t){var e=this,n=a("AggregateError"),r=l.f(e),d=r.resolve,h=r.reject,p=c((function(){var r=o(e.resolve),a=[],l=0,c=1,p=!1;s(t,(function(t){var o=l++,s=!1;c++,i(r,e,t).then((function(t){s||p||(p=!0,d(t))}),(function(t){s||p||(s=!0,a[o]=t,--c||h(new n(a,u)))}))})),--c||h(new n(a,u))}));return p.error&&h(p.value),r.promise}})},94164:(t,e,n)=>{"use strict";var r=n(82109),i=n(31913),o=n(63702).CONSTRUCTOR,a=n(2492),l=n(35005),c=n(60614),s=n(98052),u=a&&a.prototype;if(r({target:"Promise",proto:!0,forced:o,real:!0},{catch:function(t){return this.then(void 0,t)}}),!i&&c(a)){var d=l("Promise").prototype.catch;u.catch!==d&&s(u,"catch",d,{unsafe:!0})}},43401:(t,e,n)=>{"use strict";var r,i,o,a=n(82109),l=n(31913),c=n(35268),s=n(17854),u=n(46916),d=n(98052),h=n(27674),p=n(58003),b=n(96340),m=n(19662),Z=n(60614),g=n(70111),y=n(25787),f=n(36707),I=n(20261).set,v=n(95948),G=n(842),X=n(12534),V=n(18572),W=n(29909),S=n(2492),R=n(63702),C=n(78523),Y="Promise",N=R.CONSTRUCTOR,K=R.REJECTION_EVENT,k=R.SUBCLASSING,L=W.getterFor(Y),H=W.set,J=S&&S.prototype,U=S,x=J,T=s.TypeError,w=s.document,A=s.process,F=C.f,B=F,z=!!(w&&w.createEvent&&s.dispatchEvent),P="unhandledrejection",M=function(t){var e;return!(!g(t)||!Z(e=t.then))&&e},E=function(t,e){var n,r,i,o=e.value,a=1==e.state,l=a?t.ok:t.fail,c=t.resolve,s=t.reject,d=t.domain;try{l?(a||(2===e.rejection&&_(e),e.rejection=1),!0===l?n=o:(d&&d.enter(),n=l(o),d&&(d.exit(),i=!0)),n===t.promise?s(T("Promise-chain cycle")):(r=M(n))?u(r,n,c,s):c(n)):s(o)}catch(t){d&&!i&&d.exit(),s(t)}},j=function(t,e){t.notified||(t.notified=!0,v((function(){for(var n,r=t.reactions;n=r.get();)E(n,t);t.notified=!1,e&&!t.rejection&&O(t)})))},Q=function(t,e,n){var r,i;z?((r=w.createEvent("Event")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},!K&&(i=s["on"+t])?i(r):t===P&&G("Unhandled promise rejection",n)},O=function(t){u(I,s,(function(){var e,n=t.facade,r=t.value;if(D(t)&&(e=X((function(){c?A.emit("unhandledRejection",r,n):Q(P,n,r)})),t.rejection=c||D(t)?2:1,e.error))throw e.value}))},D=function(t){return 1!==t.rejection&&!t.parent},_=function(t){u(I,s,(function(){var e=t.facade;c?A.emit("rejectionHandled",e):Q("rejectionhandled",e,t.value)}))},q=function(t,e,n){return function(r){t(e,r,n)}},$=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=2,j(t,!0))},tt=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw T("Promise can't be resolved itself");var r=M(e);r?v((function(){var n={done:!1};try{u(r,e,q(tt,n,t),q($,n,t))}catch(e){$(n,e,t)}})):(t.value=e,t.state=1,j(t,!1))}catch(e){$({done:!1},e,t)}}};if(N&&(x=(U=function(t){y(this,x),m(t),u(r,this);var e=L(this);try{t(q(tt,e),q($,e))}catch(t){$(e,t)}}).prototype,(r=function(t){H(this,{type:Y,done:!1,notified:!1,parent:!1,reactions:new V,rejection:!1,state:0,value:void 0})}).prototype=d(x,"then",(function(t,e){var n=L(this),r=F(f(this,U));return n.parent=!0,r.ok=!Z(t)||t,r.fail=Z(e)&&e,r.domain=c?A.domain:void 0,0==n.state?n.reactions.add(r):v((function(){E(r,n)})),r.promise})),i=function(){var t=new r,e=L(t);this.promise=t,this.resolve=q(tt,e),this.reject=q($,e)},C.f=F=function(t){return t===U||void 0===t?new i(t):B(t)},!l&&Z(S)&&J!==Object.prototype)){o=J.then,k||d(J,"then",(function(t,e){var n=this;return new U((function(t,e){u(o,n,t,e)})).then(t,e)}),{unsafe:!0});try{delete J.constructor}catch(t){}h&&h(J,x)}a({global:!0,constructor:!0,wrap:!0,forced:N},{Promise:U}),p(U,Y,!1,!0),b(Y)},17727:(t,e,n)=>{"use strict";var r=n(82109),i=n(31913),o=n(2492),a=n(47293),l=n(35005),c=n(60614),s=n(36707),u=n(69478),d=n(98052),h=o&&o.prototype;if(r({target:"Promise",proto:!0,real:!0,forced:!!o&&a((function(){h.finally.call({then:function(){}},(function(){}))}))},{finally:function(t){var e=s(this,l("Promise")),n=c(t);return this.then(n?function(n){return u(e,t()).then((function(){return n}))}:t,n?function(n){return u(e,t()).then((function(){throw n}))}:t)}}),!i&&c(o)){var p=l("Promise").prototype.finally;h.finally!==p&&d(h,"finally",p,{unsafe:!0})}},88674:(t,e,n)=>{n(43401),n(70821),n(94164),n(6027),n(60683),n(96294)},6027:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),a=n(78523),l=n(12534),c=n(20408);r({target:"Promise",stat:!0,forced:n(80612)},{race:function(t){var e=this,n=a.f(e),r=n.reject,s=l((function(){var a=o(e.resolve);c(t,(function(t){i(a,e,t).then(n.resolve,r)}))}));return s.error&&r(s.value),n.promise}})},60683:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(78523);r({target:"Promise",stat:!0,forced:n(63702).CONSTRUCTOR},{reject:function(t){var e=o.f(this);return i(e.reject,void 0,t),e.promise}})},96294:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(31913),a=n(2492),l=n(63702).CONSTRUCTOR,c=n(69478),s=i("Promise"),u=o&&!l;r({target:"Promise",stat:!0,forced:o||l},{resolve:function(t){return c(u&&this===s?a:this,t)}})},36535:(t,e,n)=>{var r=n(82109),i=n(22104),o=n(19662),a=n(19670);r({target:"Reflect",stat:!0,forced:!n(47293)((function(){Reflect.apply((function(){}))}))},{apply:function(t,e,n){return i(o(t),e,a(n))}})},12419:(t,e,n)=>{var r=n(82109),i=n(35005),o=n(22104),a=n(27065),l=n(39483),c=n(19670),s=n(70111),u=n(70030),d=n(47293),h=i("Reflect","construct"),p=Object.prototype,b=[].push,m=d((function(){function t(){}return!(h((function(){}),[],t)instanceof t)})),Z=!d((function(){h((function(){}))})),g=m||Z;r({target:"Reflect",stat:!0,forced:g,sham:g},{construct:function(t,e){l(t),c(e);var n=arguments.length<3?t:l(arguments[2]);if(Z&&!m)return h(t,e,n);if(t==n){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var r=[null];return o(b,r,e),new(o(a,t,r))}var i=n.prototype,d=u(s(i)?i:p),g=o(t,d,e);return s(g)?g:d}})},69596:(t,e,n)=>{var r=n(82109),i=n(19781),o=n(19670),a=n(34948),l=n(3070);r({target:"Reflect",stat:!0,forced:n(47293)((function(){Reflect.defineProperty(l.f({},1,{value:1}),1,{value:2})})),sham:!i},{defineProperty:function(t,e,n){o(t);var r=a(e);o(n);try{return l.f(t,r,n),!0}catch(t){return!1}}})},52586:(t,e,n)=>{var r=n(82109),i=n(19670),o=n(31236).f;r({target:"Reflect",stat:!0},{deleteProperty:function(t,e){var n=o(i(t),e);return!(n&&!n.configurable)&&delete t[e]}})},95683:(t,e,n)=>{var r=n(82109),i=n(19781),o=n(19670),a=n(31236);r({target:"Reflect",stat:!0,sham:!i},{getOwnPropertyDescriptor:function(t,e){return a.f(o(t),e)}})},39361:(t,e,n)=>{var r=n(82109),i=n(19670),o=n(79518);r({target:"Reflect",stat:!0,sham:!n(49920)},{getPrototypeOf:function(t){return o(i(t))}})},74819:(t,e,n)=>{var r=n(82109),i=n(46916),o=n(70111),a=n(19670),l=n(45032),c=n(31236),s=n(79518);r({target:"Reflect",stat:!0},{get:function t(e,n){var r,u,d=arguments.length<3?e:arguments[2];return a(e)===d?e[n]:(r=c.f(e,n))?l(r)?r.value:void 0===r.get?void 0:i(r.get,d):o(u=s(e))?t(u,n,d):void 0}})},51037:(t,e,n)=>{n(82109)({target:"Reflect",stat:!0},{has:function(t,e){return e in t}})},5898:(t,e,n)=>{var r=n(82109),i=n(19670),o=n(52050);r({target:"Reflect",stat:!0},{isExtensible:function(t){return i(t),o(t)}})},67556:(t,e,n)=>{n(82109)({target:"Reflect",stat:!0},{ownKeys:n(53887)})},14361:(t,e,n)=>{var r=n(82109),i=n(35005),o=n(19670);r({target:"Reflect",stat:!0,sham:!n(76677)},{preventExtensions:function(t){o(t);try{var e=i("Object","preventExtensions");return e&&e(t),!0}catch(t){return!1}}})},39532:(t,e,n)=>{var r=n(82109),i=n(19670),o=n(96077),a=n(27674);a&&r({target:"Reflect",stat:!0},{setPrototypeOf:function(t,e){i(t),o(e);try{return a(t,e),!0}catch(t){return!1}}})},83593:(t,e,n)=>{var r=n(82109),i=n(46916),o=n(19670),a=n(70111),l=n(45032),c=n(47293),s=n(3070),u=n(31236),d=n(79518),h=n(79114);r({target:"Reflect",stat:!0,forced:c((function(){var t=function(){},e=s.f(new t,"a",{configurable:!0});return!1!==Reflect.set(t.prototype,"a",1,e)}))},{set:function t(e,n,r){var c,p,b,m=arguments.length<4?e:arguments[3],Z=u.f(o(e),n);if(!Z){if(a(p=d(e)))return t(p,n,r,m);Z=h(0)}if(l(Z)){if(!1===Z.writable||!a(m))return!1;if(c=u.f(m,n)){if(c.get||c.set||!1===c.writable)return!1;c.value=r,s.f(m,n,c)}else s.f(m,n,h(0,r))}else{if(void 0===(b=Z.set))return!1;i(b,m,r)}return!0}})},24603:(t,e,n)=>{var r=n(19781),i=n(17854),o=n(1702),a=n(54705),l=n(79587),c=n(68880),s=n(8006).f,u=n(47976),d=n(47850),h=n(41340),p=n(34706),b=n(52999),m=n(2626),Z=n(98052),g=n(47293),y=n(92597),f=n(29909).enforce,I=n(96340),v=n(5112),G=n(9441),X=n(38173),V=v("match"),W=i.RegExp,S=W.prototype,R=i.SyntaxError,C=o(S.exec),Y=o("".charAt),N=o("".replace),K=o("".indexOf),k=o("".slice),L=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,H=/a/g,J=/a/g,U=new W(H)!==H,x=b.MISSED_STICKY,T=b.UNSUPPORTED_Y;if(a("RegExp",r&&(!U||x||G||X||g((function(){return J[V]=!1,W(H)!=H||W(J)==J||"/a/i"!=W(H,"i")}))))){for(var w=function(t,e){var n,r,i,o,a,s,b=u(S,this),m=d(t),Z=void 0===e,g=[],I=t;if(!b&&m&&Z&&t.constructor===w)return t;if((m||u(S,t))&&(t=t.source,Z&&(e=p(I))),t=void 0===t?"":h(t),e=void 0===e?"":h(e),I=t,G&&"dotAll"in H&&(r=!!e&&K(e,"s")>-1)&&(e=N(e,/s/g,"")),n=e,x&&"sticky"in H&&(i=!!e&&K(e,"y")>-1)&&T&&(e=N(e,/y/g,"")),X&&(o=function(t){for(var e,n=t.length,r=0,i="",o=[],a={},l=!1,c=!1,s=0,u="";r<=n;r++){if("\\"===(e=Y(t,r)))e+=Y(t,++r);else if("]"===e)l=!1;else if(!l)switch(!0){case"["===e:l=!0;break;case"("===e:C(L,k(t,r+1))&&(r+=2,c=!0),i+=e,s++;continue;case">"===e&&c:if(""===u||y(a,u))throw new R("Invalid capture group name");a[u]=!0,o[o.length]=[u,s],c=!1,u="";continue}c?u+=e:i+=e}return[i,o]}(t),t=o[0],g=o[1]),a=l(W(t,e),b?this:S,w),(r||i||g.length)&&(s=f(a),r&&(s.dotAll=!0,s.raw=w(function(t){for(var e,n=t.length,r=0,i="",o=!1;r<=n;r++)"\\"!==(e=Y(t,r))?o||"."!==e?("["===e?o=!0:"]"===e&&(o=!1),i+=e):i+="[\\s\\S]":i+=e+Y(t,++r);return i}(t),n)),i&&(s.sticky=!0),g.length&&(s.groups=g)),t!==I)try{c(a,"source",""===I?"(?:)":I)}catch(t){}return a},A=s(W),F=0;A.length>F;)m(w,W,A[F++]);S.constructor=w,w.prototype=S,Z(i,"RegExp",w,{constructor:!0})}I("RegExp")},74916:(t,e,n)=>{"use strict";var r=n(82109),i=n(22261);r({target:"RegExp",proto:!0,forced:/./.exec!==i},{exec:i})},92087:(t,e,n)=>{var r=n(17854),i=n(19781),o=n(47045),a=n(67066),l=n(47293),c=r.RegExp,s=c.prototype;i&&l((function(){var t=!0;try{c(".","d")}catch(e){t=!1}var e={},n="",r=t?"dgimsy":"gimsy",i=function(t,r){Object.defineProperty(e,t,{get:function(){return n+=r,!0}})},o={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var a in t&&(o.hasIndices="d"),o)i(a,o[a]);return Object.getOwnPropertyDescriptor(s,"flags").get.call(e)!==r||n!==r}))&&o(s,"flags",{configurable:!0,get:a})},88386:(t,e,n)=>{var r=n(19781),i=n(52999).MISSED_STICKY,o=n(84326),a=n(47045),l=n(29909).get,c=RegExp.prototype,s=TypeError;r&&i&&a(c,"sticky",{configurable:!0,get:function(){if(this!==c){if("RegExp"===o(this))return!!l(this).sticky;throw s("Incompatible receiver, RegExp required")}}})},77601:(t,e,n)=>{"use strict";n(74916);var r,i,o=n(82109),a=n(46916),l=n(60614),c=n(19670),s=n(41340),u=(r=!1,(i=/[ac]/).exec=function(){return r=!0,/./.exec.apply(this,arguments)},!0===i.test("abc")&&r),d=/./.test;o({target:"RegExp",proto:!0,forced:!u},{test:function(t){var e=c(this),n=s(t),r=e.exec;if(!l(r))return a(d,e,n);var i=a(r,e,n);return null!==i&&(c(i),!0)}})},39714:(t,e,n)=>{"use strict";var r=n(76530).PROPER,i=n(98052),o=n(19670),a=n(41340),l=n(47293),c=n(34706),s="toString",u=RegExp.prototype[s],d=l((function(){return"/a/b"!=u.call({source:"a",flags:"b"})})),h=r&&u.name!=s;(d||h)&&i(RegExp.prototype,s,(function(){var t=o(this);return"/"+a(t.source)+"/"+a(c(t))}),{unsafe:!0})},37227:(t,e,n)=>{"use strict";n(77710)("Set",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),n(95631))},70189:(t,e,n)=>{n(37227)},15218:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("anchor")},{anchor:function(t){return i(this,"a","name",t)}})},74475:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("big")},{big:function(){return i(this,"big","","")}})},57929:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("blink")},{blink:function(){return i(this,"blink","","")}})},50915:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("bold")},{bold:function(){return i(this,"b","","")}})},79841:(t,e,n)=>{"use strict";var r=n(82109),i=n(28710).codeAt;r({target:"String",proto:!0},{codePointAt:function(t){return i(this,t)}})},27852:(t,e,n)=>{"use strict";var r,i=n(82109),o=n(21470),a=n(31236).f,l=n(17466),c=n(41340),s=n(3929),u=n(84488),d=n(84964),h=n(31913),p=o("".endsWith),b=o("".slice),m=Math.min,Z=d("endsWith");i({target:"String",proto:!0,forced:!(!h&&!Z&&(r=a(String.prototype,"endsWith"),r&&!r.writable)||Z)},{endsWith:function(t){var e=c(u(this));s(t);var n=arguments.length>1?arguments[1]:void 0,r=e.length,i=void 0===n?r:m(l(n),r),o=c(t);return p?p(e,o,i):b(e,i-o.length,i)===o}})},29253:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("fixed")},{fixed:function(){return i(this,"tt","","")}})},42125:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("fontcolor")},{fontcolor:function(t){return i(this,"font","color",t)}})},78830:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("fontsize")},{fontsize:function(t){return i(this,"font","size",t)}})},94953:(t,e,n)=>{var r=n(82109),i=n(1702),o=n(51400),a=RangeError,l=String.fromCharCode,c=String.fromCodePoint,s=i([].join);r({target:"String",stat:!0,arity:1,forced:!!c&&1!=c.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,i=0;r>i;){if(e=+arguments[i++],o(e,1114111)!==e)throw a(e+" is not a valid code point");n[i]=e<65536?l(e):l(55296+((e-=65536)>>10),e%1024+56320)}return s(n,"")}})},32023:(t,e,n)=>{"use strict";var r=n(82109),i=n(1702),o=n(3929),a=n(84488),l=n(41340),c=n(84964),s=i("".indexOf);r({target:"String",proto:!0,forced:!c("includes")},{includes:function(t){return!!~s(l(a(this)),l(o(t)),arguments.length>1?arguments[1]:void 0)}})},58734:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("italics")},{italics:function(){return i(this,"i","","")}})},78783:(t,e,n)=>{"use strict";var r=n(28710).charAt,i=n(41340),o=n(29909),a=n(51656),l=n(76178),c="String Iterator",s=o.set,u=o.getterFor(c);a(String,"String",(function(t){s(this,{type:c,string:i(t),index:0})}),(function(){var t,e=u(this),n=e.string,i=e.index;return i>=n.length?l(void 0,!0):(t=r(n,i),e.index+=t.length,l(t,!1))}))},29254:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("link")},{link:function(t){return i(this,"a","href",t)}})},76373:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(21470),a=n(63061),l=n(76178),c=n(84488),s=n(17466),u=n(41340),d=n(19670),h=n(68554),p=n(84326),b=n(47850),m=n(34706),Z=n(58173),g=n(98052),y=n(47293),f=n(5112),I=n(36707),v=n(31530),G=n(97651),X=n(29909),V=n(31913),W=f("matchAll"),S="RegExp String",R=S+" Iterator",C=X.set,Y=X.getterFor(R),N=RegExp.prototype,K=TypeError,k=o("".indexOf),L=o("".matchAll),H=!!L&&!y((function(){L("a",/./)})),J=a((function(t,e,n,r){C(this,{type:R,regexp:t,string:e,global:n,unicode:r,done:!1})}),S,(function(){var t=Y(this);if(t.done)return l(void 0,!0);var e=t.regexp,n=t.string,r=G(e,n);return null===r?(t.done=!0,l(void 0,!0)):t.global?(""===u(r[0])&&(e.lastIndex=v(n,s(e.lastIndex),t.unicode)),l(r,!1)):(t.done=!0,l(r,!1))})),U=function(t){var e,n,r,i=d(this),o=u(t),a=I(i,RegExp),l=u(m(i));return e=new a(a===RegExp?i.source:i,l),n=!!~k(l,"g"),r=!!~k(l,"u"),e.lastIndex=s(i.lastIndex),new J(e,o,n,r)};r({target:"String",proto:!0,forced:H},{matchAll:function(t){var e,n,r,o,a=c(this);if(h(t)){if(H)return L(a,t)}else{if(b(t)&&(e=u(c(m(t))),!~k(e,"g")))throw K("`.matchAll` does not allow non-global regexes");if(H)return L(a,t);if(void 0===(r=Z(t,W))&&V&&"RegExp"==p(t)&&(r=U),r)return i(r,t,a)}return n=u(a),o=new RegExp(t,"g"),V?i(U,o,n):o[W](n)}}),V||W in N||g(N,W,U)},4723:(t,e,n)=>{"use strict";var r=n(46916),i=n(27007),o=n(19670),a=n(68554),l=n(17466),c=n(41340),s=n(84488),u=n(58173),d=n(31530),h=n(97651);i("match",(function(t,e,n){return[function(e){var n=s(this),i=a(e)?void 0:u(e,t);return i?r(i,e,n):new RegExp(e)[t](c(n))},function(t){var r=o(this),i=c(t),a=n(e,r,i);if(a.done)return a.value;if(!r.global)return h(r,i);var s=r.unicode;r.lastIndex=0;for(var u,p=[],b=0;null!==(u=h(r,i));){var m=c(u[0]);p[b]=m,""===m&&(r.lastIndex=d(i,l(r.lastIndex),s)),b++}return 0===b?null:p}]}))},66528:(t,e,n)=>{"use strict";var r=n(82109),i=n(76650).end;r({target:"String",proto:!0,forced:n(54986)},{padEnd:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},83112:(t,e,n)=>{"use strict";var r=n(82109),i=n(76650).start;r({target:"String",proto:!0,forced:n(54986)},{padStart:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},38992:(t,e,n)=>{var r=n(82109),i=n(1702),o=n(45656),a=n(47908),l=n(41340),c=n(26244),s=i([].push),u=i([].join);r({target:"String",stat:!0},{raw:function(t){for(var e=o(a(t).raw),n=c(e),r=arguments.length,i=[],d=0;n>d;){if(s(i,l(e[d++])),d===n)return u(i,"");d<r&&s(i,l(arguments[d]))}}})},82481:(t,e,n)=>{n(82109)({target:"String",proto:!0},{repeat:n(38415)})},68757:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(1702),a=n(84488),l=n(60614),c=n(68554),s=n(47850),u=n(41340),d=n(58173),h=n(34706),p=n(10647),b=n(5112),m=n(31913),Z=b("replace"),g=TypeError,y=o("".indexOf),f=o("".replace),I=o("".slice),v=Math.max,G=function(t,e,n){return n>t.length?-1:""===e?n:y(t,e,n)};r({target:"String",proto:!0},{replaceAll:function(t,e){var n,r,o,b,X,V,W,S,R,C=a(this),Y=0,N=0,K="";if(!c(t)){if((n=s(t))&&(r=u(a(h(t))),!~y(r,"g")))throw g("`.replaceAll` does not allow non-global regexes");if(o=d(t,Z))return i(o,t,C,e);if(m&&n)return f(u(C),t,e)}for(b=u(C),X=u(t),(V=l(e))||(e=u(e)),W=X.length,S=v(1,W),Y=G(b,X,0);-1!==Y;)R=V?u(e(X,Y,b)):p(X,b,Y,[],void 0,e),K+=I(b,N,Y)+R,N=Y+W,Y=G(b,X,Y+S);return N<b.length&&(K+=I(b,N)),K}})},15306:(t,e,n)=>{"use strict";var r=n(22104),i=n(46916),o=n(1702),a=n(27007),l=n(47293),c=n(19670),s=n(60614),u=n(68554),d=n(19303),h=n(17466),p=n(41340),b=n(84488),m=n(31530),Z=n(58173),g=n(10647),y=n(97651),f=n(5112)("replace"),I=Math.max,v=Math.min,G=o([].concat),X=o([].push),V=o("".indexOf),W=o("".slice),S="$0"==="a".replace(/./,"$0"),R=!!/./[f]&&""===/./[f]("a","$0");a("replace",(function(t,e,n){var o=R?"$":"$0";return[function(t,n){var r=b(this),o=u(t)?void 0:Z(t,f);return o?i(o,t,r,n):i(e,p(r),t,n)},function(t,i){var a=c(this),l=p(t);if("string"==typeof i&&-1===V(i,o)&&-1===V(i,"$<")){var u=n(e,a,l,i);if(u.done)return u.value}var b=s(i);b||(i=p(i));var Z=a.global;if(Z){var f=a.unicode;a.lastIndex=0}for(var S=[];;){var R=y(a,l);if(null===R)break;if(X(S,R),!Z)break;""===p(R[0])&&(a.lastIndex=m(l,h(a.lastIndex),f))}for(var C,Y="",N=0,K=0;K<S.length;K++){for(var k=p((R=S[K])[0]),L=I(v(d(R.index),l.length),0),H=[],J=1;J<R.length;J++)X(H,void 0===(C=R[J])?C:String(C));var U=R.groups;if(b){var x=G([k],H,L,l);void 0!==U&&X(x,U);var T=p(r(i,void 0,x))}else T=g(k,l,L,H,U,i);L>=N&&(Y+=W(l,N,L)+T,N=L+k.length)}return Y+W(l,N)}]}),!!l((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}))||!S||R)},64765:(t,e,n)=>{"use strict";var r=n(46916),i=n(27007),o=n(19670),a=n(68554),l=n(84488),c=n(81150),s=n(41340),u=n(58173),d=n(97651);i("search",(function(t,e,n){return[function(e){var n=l(this),i=a(e)?void 0:u(e,t);return i?r(i,e,n):new RegExp(e)[t](s(n))},function(t){var r=o(this),i=s(t),a=n(e,r,i);if(a.done)return a.value;var l=r.lastIndex;c(l,0)||(r.lastIndex=0);var u=d(r,i);return c(r.lastIndex,l)||(r.lastIndex=l),null===u?-1:u.index}]}))},37268:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("small")},{small:function(){return i(this,"small","","")}})},23123:(t,e,n)=>{"use strict";var r=n(22104),i=n(46916),o=n(1702),a=n(27007),l=n(19670),c=n(68554),s=n(47850),u=n(84488),d=n(36707),h=n(31530),p=n(17466),b=n(41340),m=n(58173),Z=n(41589),g=n(97651),y=n(22261),f=n(52999),I=n(47293),v=f.UNSUPPORTED_Y,G=4294967295,X=Math.min,V=[].push,W=o(/./.exec),S=o(V),R=o("".slice);a("split",(function(t,e,n){var o;return o="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var o=b(u(this)),a=void 0===n?G:n>>>0;if(0===a)return[];if(void 0===t)return[o];if(!s(t))return i(e,o,t,a);for(var l,c,d,h=[],p=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),m=0,g=new RegExp(t.source,p+"g");(l=i(y,g,o))&&!((c=g.lastIndex)>m&&(S(h,R(o,m,l.index)),l.length>1&&l.index<o.length&&r(V,h,Z(l,1)),d=l[0].length,m=c,h.length>=a));)g.lastIndex===l.index&&g.lastIndex++;return m===o.length?!d&&W(g,"")||S(h,""):S(h,R(o,m)),h.length>a?Z(h,0,a):h}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:i(e,this,t,n)}:e,[function(e,n){var r=u(this),a=c(e)?void 0:m(e,t);return a?i(a,e,r,n):i(o,b(r),e,n)},function(t,r){var i=l(this),a=b(t),c=n(o,i,a,r,o!==e);if(c.done)return c.value;var s=d(i,RegExp),u=i.unicode,m=(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(v?"g":"y"),Z=new s(v?"^(?:"+i.source+")":i,m),y=void 0===r?G:r>>>0;if(0===y)return[];if(0===a.length)return null===g(Z,a)?[a]:[];for(var f=0,I=0,V=[];I<a.length;){Z.lastIndex=v?0:I;var W,C=g(Z,v?R(a,I):a);if(null===C||(W=X(p(Z.lastIndex+(v?I:0)),a.length))===f)I=h(a,I,u);else{if(S(V,R(a,f,I)),V.length===y)return V;for(var Y=1;Y<=C.length-1;Y++)if(S(V,C[Y]),V.length===y)return V;I=f=W}}return S(V,R(a,f)),V}]}),!!I((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),v)},23157:(t,e,n)=>{"use strict";var r,i=n(82109),o=n(21470),a=n(31236).f,l=n(17466),c=n(41340),s=n(3929),u=n(84488),d=n(84964),h=n(31913),p=o("".startsWith),b=o("".slice),m=Math.min,Z=d("startsWith");i({target:"String",proto:!0,forced:!(!h&&!Z&&(r=a(String.prototype,"startsWith"),r&&!r.writable)||Z)},{startsWith:function(t){var e=c(u(this));s(t);var n=l(m(arguments.length>1?arguments[1]:void 0,e.length)),r=c(t);return p?p(e,r,n):b(e,n,n+r.length)===r}})},7397:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("strike")},{strike:function(){return i(this,"strike","","")}})},60086:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("sub")},{sub:function(){return i(this,"sub","","")}})},80623:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("sup")},{sup:function(){return i(this,"sup","","")}})},48702:(t,e,n)=>{n(83462);var r=n(82109),i=n(10365);r({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==i},{trimEnd:i})},99967:(t,e,n)=>{var r=n(82109),i=n(33217);r({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==i},{trimLeft:i})},83462:(t,e,n)=>{var r=n(82109),i=n(10365);r({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==i},{trimRight:i})},55674:(t,e,n)=>{n(99967);var r=n(82109),i=n(33217);r({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==i},{trimStart:i})},73210:(t,e,n)=>{"use strict";var r=n(82109),i=n(53111).trim;r({target:"String",proto:!0,forced:n(76091)("trim")},{trim:function(){return i(this)}})},72443:(t,e,n)=>{n(26800)("asyncIterator")},4032:(t,e,n)=>{"use strict";var r=n(82109),i=n(17854),o=n(46916),a=n(1702),l=n(31913),c=n(19781),s=n(36293),u=n(47293),d=n(92597),h=n(47976),p=n(19670),b=n(45656),m=n(34948),Z=n(41340),g=n(79114),y=n(70030),f=n(81956),I=n(8006),v=n(1156),G=n(25181),X=n(31236),V=n(3070),W=n(36048),S=n(55296),R=n(98052),C=n(72309),Y=n(6200),N=n(3501),K=n(69711),k=n(5112),L=n(6061),H=n(26800),J=n(56532),U=n(58003),x=n(29909),T=n(42092).forEach,w=Y("hidden"),A="Symbol",F="prototype",B=x.set,z=x.getterFor(A),P=Object[F],M=i.Symbol,E=M&&M[F],j=i.TypeError,Q=i.QObject,O=X.f,D=V.f,_=v.f,q=S.f,$=a([].push),tt=C("symbols"),et=C("op-symbols"),nt=C("wks"),rt=!Q||!Q[F]||!Q[F].findChild,it=c&&u((function(){return 7!=y(D({},"a",{get:function(){return D(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=O(P,e);r&&delete P[e],D(t,e,n),r&&t!==P&&D(P,e,r)}:D,ot=function(t,e){var n=tt[t]=y(E);return B(n,{type:A,tag:t,description:e}),c||(n.description=e),n},at=function(t,e,n){t===P&&at(et,e,n),p(t);var r=m(e);return p(n),d(tt,r)?(n.enumerable?(d(t,w)&&t[w][r]&&(t[w][r]=!1),n=y(n,{enumerable:g(0,!1)})):(d(t,w)||D(t,w,g(1,{})),t[w][r]=!0),it(t,r,n)):D(t,r,n)},lt=function(t,e){p(t);var n=b(e),r=f(n).concat(dt(n));return T(r,(function(e){c&&!o(ct,n,e)||at(t,e,n[e])})),t},ct=function(t){var e=m(t),n=o(q,this,e);return!(this===P&&d(tt,e)&&!d(et,e))&&(!(n||!d(this,e)||!d(tt,e)||d(this,w)&&this[w][e])||n)},st=function(t,e){var n=b(t),r=m(e);if(n!==P||!d(tt,r)||d(et,r)){var i=O(n,r);return!i||!d(tt,r)||d(n,w)&&n[w][r]||(i.enumerable=!0),i}},ut=function(t){var e=_(b(t)),n=[];return T(e,(function(t){d(tt,t)||d(N,t)||$(n,t)})),n},dt=function(t){var e=t===P,n=_(e?et:b(t)),r=[];return T(n,(function(t){!d(tt,t)||e&&!d(P,t)||$(r,tt[t])})),r};s||(R(E=(M=function(){if(h(E,this))throw j("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?Z(arguments[0]):void 0,e=K(t),n=function(t){this===P&&o(n,et,t),d(this,w)&&d(this[w],e)&&(this[w][e]=!1),it(this,e,g(1,t))};return c&&rt&&it(P,e,{configurable:!0,set:n}),ot(e,t)})[F],"toString",(function(){return z(this).tag})),R(M,"withoutSetter",(function(t){return ot(K(t),t)})),S.f=ct,V.f=at,W.f=lt,X.f=st,I.f=v.f=ut,G.f=dt,L.f=function(t){return ot(k(t),t)},c&&(D(E,"description",{configurable:!0,get:function(){return z(this).description}}),l||R(P,"propertyIsEnumerable",ct,{unsafe:!0}))),r({global:!0,constructor:!0,wrap:!0,forced:!s,sham:!s},{Symbol:M}),T(f(nt),(function(t){H(t)})),r({target:A,stat:!0,forced:!s},{useSetter:function(){rt=!0},useSimple:function(){rt=!1}}),r({target:"Object",stat:!0,forced:!s,sham:!c},{create:function(t,e){return void 0===e?y(t):lt(y(t),e)},defineProperty:at,defineProperties:lt,getOwnPropertyDescriptor:st}),r({target:"Object",stat:!0,forced:!s},{getOwnPropertyNames:ut}),J(),U(M,A),N[w]=!0},41817:(t,e,n)=>{"use strict";var r=n(82109),i=n(19781),o=n(17854),a=n(1702),l=n(92597),c=n(60614),s=n(47976),u=n(41340),d=n(3070).f,h=n(99920),p=o.Symbol,b=p&&p.prototype;if(i&&c(p)&&(!("description"in b)||void 0!==p().description)){var m={},Z=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:u(arguments[0]),e=s(b,this)?new p(t):void 0===t?p():p(t);return""===t&&(m[e]=!0),e};h(Z,p),Z.prototype=b,b.constructor=Z;var g="Symbol(test)"==String(p("test")),y=a(b.valueOf),f=a(b.toString),I=/^Symbol\((.*)\)[^)]+$/,v=a("".replace),G=a("".slice);d(b,"description",{configurable:!0,get:function(){var t=y(this);if(l(m,t))return"";var e=f(t),n=g?G(e,7,-1):v(e,I,"$1");return""===n?void 0:n}}),r({global:!0,constructor:!0,forced:!0},{Symbol:Z})}},40763:(t,e,n)=>{var r=n(82109),i=n(35005),o=n(92597),a=n(41340),l=n(72309),c=n(2015),s=l("string-to-symbol-registry"),u=l("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!c},{for:function(t){var e=a(t);if(o(s,e))return s[e];var n=i("Symbol")(e);return s[e]=n,u[n]=e,n}})},92401:(t,e,n)=>{n(26800)("hasInstance")},8722:(t,e,n)=>{n(26800)("isConcatSpreadable")},32165:(t,e,n)=>{n(26800)("iterator")},82526:(t,e,n)=>{n(4032),n(40763),n(26620),n(38862),n(29660)},26620:(t,e,n)=>{var r=n(82109),i=n(92597),o=n(52190),a=n(66330),l=n(72309),c=n(2015),s=l("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!c},{keyFor:function(t){if(!o(t))throw TypeError(a(t)+" is not a symbol");if(i(s,t))return s[t]}})},16066:(t,e,n)=>{n(26800)("matchAll")},69007:(t,e,n)=>{n(26800)("match")},83510:(t,e,n)=>{n(26800)("replace")},41840:(t,e,n)=>{n(26800)("search")},6982:(t,e,n)=>{n(26800)("species")},32159:(t,e,n)=>{n(26800)("split")},96649:(t,e,n)=>{var r=n(26800),i=n(56532);r("toPrimitive"),i()},39341:(t,e,n)=>{var r=n(35005),i=n(26800),o=n(58003);i("toStringTag"),o(r("Symbol"),"Symbol")},60543:(t,e,n)=>{n(26800)("unscopables")},92990:(t,e,n)=>{"use strict";var r=n(1702),i=n(90260),o=r(n(1048)),a=i.aTypedArray;(0,i.exportTypedArrayMethod)("copyWithin",(function(t,e){return o(a(this),t,e,arguments.length>2?arguments[2]:void 0)}))},18927:(t,e,n)=>{"use strict";var r=n(90260),i=n(42092).every,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("every",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},33105:(t,e,n)=>{"use strict";var r=n(90260),i=n(21285),o=n(64599),a=n(70648),l=n(46916),c=n(1702),s=n(47293),u=r.aTypedArray,d=r.exportTypedArrayMethod,h=c("".slice);d("fill",(function(t){var e=arguments.length;u(this);var n="Big"===h(a(this),0,3)?o(t):+t;return l(i,this,n,e>1?arguments[1]:void 0,e>2?arguments[2]:void 0)}),s((function(){var t=0;return new Int8Array(2).fill({valueOf:function(){return t++}}),1!==t})))},35035:(t,e,n)=>{"use strict";var r=n(90260),i=n(42092).filter,o=n(43074),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("filter",(function(t){var e=i(a(this),t,arguments.length>1?arguments[1]:void 0);return o(this,e)}))},7174:(t,e,n)=>{"use strict";var r=n(90260),i=n(42092).findIndex,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("findIndex",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},74345:(t,e,n)=>{"use strict";var r=n(90260),i=n(42092).find,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("find",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},44197:(t,e,n)=>{n(19843)("Float32",(function(t){return function(e,n,r){return t(this,e,n,r)}}))},76495:(t,e,n)=>{n(19843)("Float64",(function(t){return function(e,n,r){return t(this,e,n,r)}}))},32846:(t,e,n)=>{"use strict";var r=n(90260),i=n(42092).forEach,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("forEach",(function(t){i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},98145:(t,e,n)=>{"use strict";var r=n(63832);(0,n(90260).exportTypedArrayStaticMethod)("from",n(97321),r)},44731:(t,e,n)=>{"use strict";var r=n(90260),i=n(41318).includes,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("includes",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},77209:(t,e,n)=>{"use strict";var r=n(90260),i=n(41318).indexOf,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("indexOf",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},35109:(t,e,n)=>{n(19843)("Int16",(function(t){return function(e,n,r){return t(this,e,n,r)}}))},65125:(t,e,n)=>{n(19843)("Int32",(function(t){return function(e,n,r){return t(this,e,n,r)}}))},87145:(t,e,n)=>{n(19843)("Int8",(function(t){return function(e,n,r){return t(this,e,n,r)}}))},96319:(t,e,n)=>{"use strict";var r=n(17854),i=n(47293),o=n(1702),a=n(90260),l=n(66992),c=n(5112)("iterator"),s=r.Uint8Array,u=o(l.values),d=o(l.keys),h=o(l.entries),p=a.aTypedArray,b=a.exportTypedArrayMethod,m=s&&s.prototype,Z=!i((function(){m[c].call([1])})),g=!!m&&m.values&&m[c]===m.values&&"values"===m.values.name,y=function(){return u(p(this))};b("entries",(function(){return h(p(this))}),Z),b("keys",(function(){return d(p(this))}),Z),b("values",y,Z||!g,{name:"values"}),b(c,y,Z||!g,{name:"values"})},58867:(t,e,n)=>{"use strict";var r=n(90260),i=n(1702),o=r.aTypedArray,a=r.exportTypedArrayMethod,l=i([].join);a("join",(function(t){return l(o(this),t)}))},37789:(t,e,n)=>{"use strict";var r=n(90260),i=n(22104),o=n(86583),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("lastIndexOf",(function(t){var e=arguments.length;return i(o,a(this),e>1?[t,arguments[1]]:[t])}))},33739:(t,e,n)=>{"use strict";var r=n(90260),i=n(42092).map,o=n(66304),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("map",(function(t){return i(a(this),t,arguments.length>1?arguments[1]:void 0,(function(t,e){return new(o(t))(e)}))}))},95206:(t,e,n)=>{"use strict";var r=n(90260),i=n(63832),o=r.aTypedArrayConstructor;(0,r.exportTypedArrayStaticMethod)("of",(function(){for(var t=0,e=arguments.length,n=new(o(this))(e);e>t;)n[t]=arguments[t++];return n}),i)},14483:(t,e,n)=>{"use strict";var r=n(90260),i=n(53671).right,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduceRight",(function(t){var e=arguments.length;return i(o(this),t,e,e>1?arguments[1]:void 0)}))},29368:(t,e,n)=>{"use strict";var r=n(90260),i=n(53671).left,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduce",(function(t){var e=arguments.length;return i(o(this),t,e,e>1?arguments[1]:void 0)}))},12056:(t,e,n)=>{"use strict";var r=n(90260),i=r.aTypedArray,o=r.exportTypedArrayMethod,a=Math.floor;o("reverse",(function(){for(var t,e=this,n=i(e).length,r=a(n/2),o=0;o<r;)t=e[o],e[o++]=e[--n],e[n]=t;return e}))},3462:(t,e,n)=>{"use strict";var r=n(17854),i=n(46916),o=n(90260),a=n(26244),l=n(84590),c=n(47908),s=n(47293),u=r.RangeError,d=r.Int8Array,h=d&&d.prototype,p=h&&h.set,b=o.aTypedArray,m=o.exportTypedArrayMethod,Z=!s((function(){var t=new Uint8ClampedArray(2);return i(p,t,{length:1,0:3},1),3!==t[1]})),g=Z&&o.NATIVE_ARRAY_BUFFER_VIEWS&&s((function(){var t=new d(2);return t.set(1),t.set("2",1),0!==t[0]||2!==t[1]}));m("set",(function(t){b(this);var e=l(arguments.length>1?arguments[1]:void 0,1),n=c(t);if(Z)return i(p,this,n,e);var r=this.length,o=a(n),s=0;if(o+e>r)throw u("Wrong length");for(;s<o;)this[e+s]=n[s++]}),!Z||g)},30678:(t,e,n)=>{"use strict";var r=n(90260),i=n(66304),o=n(47293),a=n(50206),l=r.aTypedArray;(0,r.exportTypedArrayMethod)("slice",(function(t,e){for(var n=a(l(this),t,e),r=i(this),o=0,c=n.length,s=new r(c);c>o;)s[o]=n[o++];return s}),o((function(){new Int8Array(1).slice()})))},27462:(t,e,n)=>{"use strict";var r=n(90260),i=n(42092).some,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("some",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},33824:(t,e,n)=>{"use strict";var r=n(17854),i=n(21470),o=n(47293),a=n(19662),l=n(94362),c=n(90260),s=n(68886),u=n(30256),d=n(7392),h=n(98008),p=c.aTypedArray,b=c.exportTypedArrayMethod,m=r.Uint16Array,Z=m&&i(m.prototype.sort),g=!(!Z||o((function(){Z(new m(2),null)}))&&o((function(){Z(new m(2),{})}))),y=!!Z&&!o((function(){if(d)return d<74;if(s)return s<67;if(u)return!0;if(h)return h<602;var t,e,n=new m(516),r=Array(516);for(t=0;t<516;t++)e=t%4,n[t]=515-t,r[t]=t-2*e+3;for(Z(n,(function(t,e){return(t/4|0)-(e/4|0)})),t=0;t<516;t++)if(n[t]!==r[t])return!0}));b("sort",(function(t){return void 0!==t&&a(t),y?Z(this,t):l(p(this),function(t){return function(e,n){return void 0!==t?+t(e,n)||0:n!=n?-1:e!=e?1:0===e&&0===n?1/e>0&&1/n<0?1:-1:e>n}}(t))}),!y||g)},55021:(t,e,n)=>{"use strict";var r=n(90260),i=n(17466),o=n(51400),a=n(66304),l=r.aTypedArray;(0,r.exportTypedArrayMethod)("subarray",(function(t,e){var n=l(this),r=n.length,c=o(t,r);return new(a(n))(n.buffer,n.byteOffset+c*n.BYTES_PER_ELEMENT,i((void 0===e?r:o(e,r))-c))}))},12974:(t,e,n)=>{"use strict";var r=n(17854),i=n(22104),o=n(90260),a=n(47293),l=n(50206),c=r.Int8Array,s=o.aTypedArray,u=o.exportTypedArrayMethod,d=[].toLocaleString,h=!!c&&a((function(){d.call(new c(1))}));u("toLocaleString",(function(){return i(d,h?l(s(this)):s(this),l(arguments))}),a((function(){return[1,2].toLocaleString()!=new c([1,2]).toLocaleString()}))||!a((function(){c.prototype.toLocaleString.call([1,2])})))},15016:(t,e,n)=>{"use strict";var r=n(90260).exportTypedArrayMethod,i=n(47293),o=n(17854),a=n(1702),l=o.Uint8Array,c=l&&l.prototype||{},s=[].toString,u=a([].join);i((function(){s.call({})}))&&(s=function(){return u(this)});var d=c.toString!=s;r("toString",s,d)},8255:(t,e,n)=>{n(19843)("Uint16",(function(t){return function(e,n,r){return t(this,e,n,r)}}))},29135:(t,e,n)=>{n(19843)("Uint32",(function(t){return function(e,n,r){return t(this,e,n,r)}}))},82472:(t,e,n)=>{n(19843)("Uint8",(function(t){return function(e,n,r){return t(this,e,n,r)}}))},49743:(t,e,n)=>{n(19843)("Uint8",(function(t){return function(e,n,r){return t(this,e,n,r)}}),!0)},41202:(t,e,n)=>{"use strict";var r,i=n(17854),o=n(1702),a=n(89190),l=n(62423),c=n(77710),s=n(29320),u=n(70111),d=n(52050),h=n(29909).enforce,p=n(94811),b=!i.ActiveXObject&&"ActiveXObject"in i,m=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Z=c("WeakMap",m,s);if(p&&b){r=s.getConstructor(m,"WeakMap",!0),l.enable();var g=Z.prototype,y=o(g.delete),f=o(g.has),I=o(g.get),v=o(g.set);a(g,{delete:function(t){if(u(t)&&!d(t)){var e=h(this);return e.frozen||(e.frozen=new r),y(this,t)||e.frozen.delete(t)}return y(this,t)},has:function(t){if(u(t)&&!d(t)){var e=h(this);return e.frozen||(e.frozen=new r),f(this,t)||e.frozen.has(t)}return f(this,t)},get:function(t){if(u(t)&&!d(t)){var e=h(this);return e.frozen||(e.frozen=new r),f(this,t)?I(this,t):e.frozen.get(t)}return I(this,t)},set:function(t,e){if(u(t)&&!d(t)){var n=h(this);n.frozen||(n.frozen=new r),f(this,t)?v(this,t,e):n.frozen.set(t,e)}else v(this,t,e);return this}})}},4129:(t,e,n)=>{n(41202)},72098:(t,e,n)=>{"use strict";n(77710)("WeakSet",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),n(29320))},38478:(t,e,n)=>{n(72098)},8628:(t,e,n)=>{n(9170)},8e4:(t,e,n)=>{var r=n(82109),i=n(43157),o=Object.isFrozen,a=function(t,e){if(!o||!i(t)||!o(t))return!1;for(var n,r=0,a=t.length;r<a;)if(!("string"==typeof(n=t[r++])||e&&void 0===n))return!1;return 0!==a};r({target:"Array",stat:!0,sham:!0,forced:!0},{isTemplateObject:function(t){if(!a(t,!0))return!1;var e=t.raw;return e.length===t.length&&a(e,!1)}})},83475:(t,e,n)=>{"use strict";var r=n(19781),i=n(51223),o=n(47908),a=n(26244),l=n(47045);r&&(l(Array.prototype,"lastIndex",{configurable:!0,get:function(){var t=o(this),e=a(t);return 0==e?0:e-1}}),i("lastIndex"))},46273:(t,e,n)=>{"use strict";var r=n(19781),i=n(51223),o=n(47908),a=n(26244),l=n(47045);r&&(l(Array.prototype,"lastItem",{configurable:!0,get:function(){var t=o(this),e=a(t);return 0==e?void 0:t[e-1]},set:function(t){var e=o(this),n=a(e);return e[0==n?0:n-1]=t}}),i("lastItem"))},40787:(t,e,n)=>{n(82109)({target:"AsyncIterator",name:"indexed",proto:!0,real:!0,forced:!0},{asIndexedPairs:n(47520)})},66342:(t,e,n)=>{"use strict";var r=n(82109),i=n(25787),o=n(68880),a=n(92597),l=n(5112),c=n(66462),s=n(31913),u=l("toStringTag"),d=function(){i(this,c)};d.prototype=c,a(c,u)||o(c,u,"AsyncIterator"),!s&&a(c,"constructor")&&c.constructor!==Object||o(c,"constructor",d),r({global:!0,constructor:!0,forced:s},{AsyncIterator:d})},23647:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19670),a=n(24942),l=n(66336),c=n(73002),s=n(45348),u=n(76178),d=s((function(t){var e=this;return new t((function(n,r){var a=function(t){e.done=!0,r(t)},l=function(){try{t.resolve(o(i(e.next,e.iterator))).then((function(t){try{o(t).done?(e.done=!0,n(u(void 0,!0))):e.remaining?(e.remaining--,l()):n(u(t.value,!1))}catch(t){a(t)}}),a)}catch(t){a(t)}};l()}))}));r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{drop:function(t){return new d(a(this),{remaining:c(l(+t))})}})},68216:(t,e,n)=>{"use strict";var r=n(82109),i=n(12269).every;r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{every:function(t){return i(this,t)}})},88449:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),a=n(19670),l=n(70111),c=n(24942),s=n(45348),u=n(76178),d=n(21753),h=s((function(t){var e=this,n=e.iterator,r=e.filterer;return new t((function(o,c){var s=function(t){e.done=!0,c(t)},h=function(t){d(n,s,t,s)},p=function(){try{t.resolve(a(i(e.next,n))).then((function(n){try{if(a(n).done)e.done=!0,o(u(void 0,!0));else{var i=n.value;try{var c=r(i,e.counter++),d=function(t){t?o(u(i,!1)):p()};l(c)?t.resolve(c).then(d,h):d(c)}catch(t){h(t)}}}catch(t){s(t)}}),s)}catch(t){s(t)}};p()}))}));r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{filter:function(t){return new h(c(this),{filterer:o(t)})}})},31672:(t,e,n)=>{"use strict";var r=n(82109),i=n(12269).find;r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{find:function(t){return i(this,t)}})},74326:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),a=n(19670),l=n(70111),c=n(24942),s=n(45348),u=n(76178),d=n(62617),h=n(21753),p=s((function(t){var e=this,n=e.iterator,r=e.mapper;return new t((function(o,c){var s=function(t){e.done=!0,c(t)},p=function(t){h(n,s,t,s)},b=function(){try{t.resolve(a(i(e.next,n))).then((function(n){try{if(a(n).done)e.done=!0,o(u(void 0,!0));else{var i=n.value;try{var c=r(i,e.counter++),h=function(t){try{e.inner=d(t),m()}catch(t){p(t)}};l(c)?t.resolve(c).then(h,p):h(c)}catch(t){p(t)}}}catch(t){s(t)}}),s)}catch(t){s(t)}},m=function(){var n=e.inner;if(n)try{t.resolve(a(i(n.next,n.iterator))).then((function(t){try{a(t).done?(e.inner=null,b()):o(u(t.value,!1))}catch(t){p(t)}}),p)}catch(t){p(t)}else b()};m()}))}));r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{flatMap:function(t){return new p(c(this),{mapper:o(t),inner:null})}})},15581:(t,e,n)=>{"use strict";var r=n(82109),i=n(12269).forEach;r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{forEach:function(t){return i(this,t)}})},78631:(t,e,n)=>{var r=n(82109),i=n(47976),o=n(62617),a=n(66462),l=n(86221);r({target:"AsyncIterator",stat:!0,forced:!0},{from:function(t){var e=o(t);return i(a,e.iterator)?e.iterator:new l(e)}})},57640:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),a=n(19670),l=n(70111),c=n(24942),s=n(45348),u=n(76178),d=n(21753),h=s((function(t){var e=this,n=e.iterator,r=e.mapper;return new t((function(o,c){var s=function(t){e.done=!0,c(t)},h=function(t){d(n,s,t,s)};t.resolve(a(i(e.next,n))).then((function(n){try{if(a(n).done)e.done=!0,o(u(void 0,!0));else{var i=n.value;try{var c=r(i,e.counter++),d=function(t){o(u(t,!1))};l(c)?t.resolve(c).then(d,h):d(c)}catch(t){h(t)}}}catch(t){s(t)}}),s)}))}));r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{map:function(t){return new h(c(this),{mapper:o(t)})}})},25387:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),a=n(19670),l=n(70111),c=n(35005),s=n(24942),u=n(21753),d=c("Promise"),h=TypeError;r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{reduce:function(t){var e=s(this),n=e.iterator,r=e.next,c=arguments.length<2,p=c?void 0:arguments[1],b=0;return o(t),new d((function(e,o){var s=function(t){u(n,o,t,o)},m=function(){try{d.resolve(a(i(r,n))).then((function(n){try{if(a(n).done)c?o(h("Reduce of empty iterator with no initial value")):e(p);else{var r=n.value;if(c)c=!1,p=r,m();else try{var i=t(p,r,b),u=function(t){p=t,m()};l(i)?d.resolve(i).then(u,s):u(i)}catch(t){s(t)}}b++}catch(t){o(t)}}),o)}catch(t){o(t)}};m()}))}})},64211:(t,e,n)=>{"use strict";var r=n(82109),i=n(12269).some;r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{some:function(t){return i(this,t)}})},12771:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19670),a=n(24942),l=n(66336),c=n(73002),s=n(45348),u=n(76178),d=s((function(t){var e,n=this,r=n.iterator;if(!n.remaining--){var a=u(void 0,!0);return n.done=!0,void 0!==(e=r.return)?t.resolve(i(e,r,void 0)).then((function(){return a})):a}return t.resolve(i(n.next,r)).then((function(t){return o(t).done?(n.done=!0,u(void 0,!0)):u(t.value,!1)})).then(null,(function(t){throw n.done=!0,t}))}));r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{take:function(t){return new d(a(this),{remaining:c(l(+t))})}})},62962:(t,e,n)=>{"use strict";var r=n(82109),i=n(12269).toArray;r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{toArray:function(){return i(this,void 0,[])}})},51568:(t,e,n)=>{var r=n(82109),i=n(22104),o=n(10313),a=n(35005),l=n(70030),c=Object,s=function(){var t=a("Object","freeze");return t?t(l(null)):l(null)};r({global:!0,forced:!0},{compositeKey:function(){return i(o,c,arguments).get("object",s)}})},26349:(t,e,n)=>{var r=n(82109),i=n(10313),o=n(35005),a=n(22104);r({global:!0,forced:!0},{compositeSymbol:function(){return 1==arguments.length&&"string"==typeof arguments[0]?o("Symbol").for(arguments[0]):a(i,null,arguments).get("symbol",o("Symbol"))}})},85567:(t,e,n)=>{n(82109)({target:"Iterator",name:"indexed",proto:!0,real:!0,forced:!0},{asIndexedPairs:n(14323)})},2490:(t,e,n)=>{"use strict";var r=n(82109),i=n(17854),o=n(25787),a=n(60614),l=n(68880),c=n(47293),s=n(92597),u=n(5112),d=n(13383).IteratorPrototype,h=n(31913),p=u("toStringTag"),b=i.Iterator,m=h||!a(b)||b.prototype!==d||!c((function(){b({})})),Z=function(){o(this,d)};s(d,p)||l(d,p,"Iterator"),!m&&s(d,"constructor")&&d.constructor!==Object||l(d,"constructor",Z),Z.prototype=d,r({global:!0,constructor:!0,forced:m},{Iterator:Z})},5332:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19670),a=n(24942),l=n(66336),c=n(73002),s=n(54956)((function(){for(var t,e=this.iterator,n=this.next;this.remaining;)if(this.remaining--,t=o(i(n,e)),this.done=!!t.done)return;if(t=o(i(n,e)),!(this.done=!!t.done))return t.value}));r({target:"Iterator",proto:!0,real:!0,forced:!0},{drop:function(t){return new s(a(this),{remaining:c(l(+t))})}})},79433:(t,e,n)=>{"use strict";var r=n(82109),i=n(20408),o=n(19662),a=n(24942);r({target:"Iterator",proto:!0,real:!0,forced:!0},{every:function(t){var e=a(this),n=0;return o(t),!i(e,(function(e,r){if(!t(e,n++))return r()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},59849:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),a=n(19670),l=n(24942),c=n(54956),s=n(53411),u=c((function(){for(var t,e,n=this.iterator,r=this.filterer,o=this.next;;){if(t=a(i(o,n)),this.done=!!t.done)return;if(e=t.value,s(n,r,[e,this.counter++],!0))return e}}));r({target:"Iterator",proto:!0,real:!0,forced:!0},{filter:function(t){return new u(l(this),{filterer:o(t)})}})},59461:(t,e,n)=>{"use strict";var r=n(82109),i=n(20408),o=n(19662),a=n(24942);r({target:"Iterator",proto:!0,real:!0,forced:!0},{find:function(t){var e=a(this),n=0;return o(t),i(e,(function(e,r){if(t(e,n++))return r(e)}),{IS_RECORD:!0,INTERRUPTED:!0}).result}})},82499:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),a=n(19670),l=n(24942),c=n(72897),s=n(54956),u=n(99212),d=s((function(){for(var t,e,n=this.iterator,r=this.mapper;;){if(e=this.inner)try{if(!(t=a(i(e.next,e.iterator))).done)return t.value;this.inner=null}catch(t){u(n,"throw",t)}if(t=a(i(this.next,n)),this.done=!!t.done)return;try{this.inner=c(r(t.value,this.counter++))}catch(t){u(n,"throw",t)}}}));r({target:"Iterator",proto:!0,real:!0,forced:!0},{flatMap:function(t){return new d(l(this),{mapper:o(t),inner:null})}})},34514:(t,e,n)=>{"use strict";var r=n(82109),i=n(20408),o=n(19662),a=n(24942);r({target:"Iterator",proto:!0,real:!0,forced:!0},{forEach:function(t){var e=a(this),n=0;o(t),i(e,(function(e){t(e,n++)}),{IS_RECORD:!0})}})},26877:(t,e,n)=>{var r=n(82109),i=n(46916),o=n(47976),a=n(13383).IteratorPrototype,l=n(54956),c=n(72897),s=l((function(){return i(this.next,this.iterator)}),!0);r({target:"Iterator",stat:!0,forced:!0},{from:function(t){var e=c(t);return o(a,e.iterator)?e.iterator:new s(e)}})},9924:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),a=n(19670),l=n(24942),c=n(54956),s=n(53411),u=c((function(){var t=this.iterator,e=a(i(this.next,t));if(!(this.done=!!e.done))return s(t,this.mapper,[e.value,this.counter++],!0)}));r({target:"Iterator",proto:!0,real:!0,forced:!0},{map:function(t){return new u(l(this),{mapper:o(t)})}})},72608:(t,e,n)=>{"use strict";var r=n(82109),i=n(20408),o=n(19662),a=n(24942),l=TypeError;r({target:"Iterator",proto:!0,real:!0,forced:!0},{reduce:function(t){var e=a(this);o(t);var n=arguments.length<2,r=n?void 0:arguments[1],c=0;if(i(e,(function(e){n?(n=!1,r=e):r=t(r,e,c),c++}),{IS_RECORD:!0}),n)throw l("Reduce of empty iterator with no initial value");return r}})},41874:(t,e,n)=>{"use strict";var r=n(82109),i=n(20408),o=n(19662),a=n(24942);r({target:"Iterator",proto:!0,real:!0,forced:!0},{some:function(t){var e=a(this),n=0;return o(t),i(e,(function(e,r){if(t(e,n++))return r()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},66043:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19670),a=n(24942),l=n(66336),c=n(73002),s=n(54956),u=n(99212),d=s((function(){var t=this.iterator;if(!this.remaining--)return this.done=!0,u(t,"normal",void 0);var e=o(i(this.next,t));return(this.done=!!e.done)?void 0:e.value}));r({target:"Iterator",proto:!0,real:!0,forced:!0},{take:function(t){return new d(a(this),{remaining:c(l(+t))})}})},23748:(t,e,n)=>{"use strict";var r=n(82109),i=n(20408),o=n(24942),a=[].push;r({target:"Iterator",proto:!0,real:!0,forced:!0},{toArray:function(){var t=[];return i(o(this),a,{that:t,IS_RECORD:!0}),t}})},10072:(t,e,n)=>{"use strict";n(82109)({target:"Map",proto:!0,real:!0,forced:!0},{deleteAll:n(34092)})},99137:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(49974),a=n(54647),l=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{every:function(t){var e=i(this),n=a(e),r=o(t,arguments.length>1?arguments[1]:void 0);return!l(n,(function(t,n,i){if(!r(n,t,e))return i()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},71957:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(49974),a=n(46916),l=n(19662),c=n(19670),s=n(36707),u=n(54647),d=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(t){var e=c(this),n=u(e),r=o(t,arguments.length>1?arguments[1]:void 0),h=new(s(e,i("Map"))),p=l(h.set);return d(n,(function(t,n){r(n,t,e)&&a(p,h,t,n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),h}})},103:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(49974),a=n(54647),l=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(t){var e=i(this),n=a(e),r=o(t,arguments.length>1?arguments[1]:void 0);return l(n,(function(t,n,i){if(r(n,t,e))return i(t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}})},96306:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(49974),a=n(54647),l=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{find:function(t){var e=i(this),n=a(e),r=o(t,arguments.length>1?arguments[1]:void 0);return l(n,(function(t,n,i){if(r(n,t,e))return i(n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}})},8582:(t,e,n)=>{n(82109)({target:"Map",stat:!0,forced:!0},{from:n(27296)})},90618:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(1702),a=n(19662),l=n(18554),c=n(20408),s=o([].push);r({target:"Map",stat:!0,forced:!0},{groupBy:function(t,e){a(e);var n=l(t),r=new this,o=a(r.has),u=a(r.get),d=a(r.set);return c(n,(function(t){var n=e(t);i(o,r,n)?s(i(u,r,n),t):i(d,r,n,[t])}),{IS_ITERATOR:!0}),r}})},74592:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(54647),a=n(46465),l=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(t){return l(o(i(this)),(function(e,n,r){if(a(n,t))return r()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},88440:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(20408),a=n(19662);r({target:"Map",stat:!0,forced:!0},{keyBy:function(t,e){var n=new this;a(e);var r=a(n.set);return o(t,(function(t){i(r,n,e(t),t)})),n}})},58276:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(54647),a=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(t){return a(o(i(this)),(function(e,n,r){if(n===t)return r(e)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}})},35082:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(49974),a=n(46916),l=n(19662),c=n(19670),s=n(36707),u=n(54647),d=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(t){var e=c(this),n=u(e),r=o(t,arguments.length>1?arguments[1]:void 0),h=new(s(e,i("Map"))),p=l(h.set);return d(n,(function(t,n){a(p,h,r(n,t,e),n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),h}})},12813:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(49974),a=n(46916),l=n(19662),c=n(19670),s=n(36707),u=n(54647),d=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(t){var e=c(this),n=u(e),r=o(t,arguments.length>1?arguments[1]:void 0),h=new(s(e,i("Map"))),p=l(h.set);return d(n,(function(t,n){a(p,h,t,r(n,t,e))}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),h}})},18222:(t,e,n)=>{"use strict";var r=n(82109),i=n(19662),o=n(19670),a=n(20408);r({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(t){for(var e=o(this),n=i(e.set),r=arguments.length,l=0;l<r;)a(arguments[l++],n,{that:e,AS_ENTRIES:!0});return e}})},24838:(t,e,n)=>{n(82109)({target:"Map",stat:!0,forced:!0},{of:n(82044)})},38563:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(19662),a=n(54647),l=n(20408),c=TypeError;r({target:"Map",proto:!0,real:!0,forced:!0},{reduce:function(t){var e=i(this),n=a(e),r=arguments.length<2,s=r?void 0:arguments[1];if(o(t),l(n,(function(n,i){r?(r=!1,s=i):s=t(s,i,n,e)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),r)throw c("Reduce of empty map with no initial value");return s}})},50336:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(49974),a=n(54647),l=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{some:function(t){var e=i(this),n=a(e),r=o(t,arguments.length>1?arguments[1]:void 0);return l(n,(function(t,n,i){if(r(n,t,e))return i()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},74442:(t,e,n)=>{"use strict";n(82109)({target:"Map",proto:!0,real:!0,name:"upsert",forced:!0},{updateOrInsert:n(8154)})},7512:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19670),a=n(19662),l=TypeError;r({target:"Map",proto:!0,real:!0,forced:!0},{update:function(t,e){var n=o(this),r=a(n.get),c=a(n.has),s=a(n.set),u=arguments.length;a(e);var d=i(c,n,t);if(!d&&u<3)throw l("Updating absent value");var h=d?i(r,n,t):a(u>2?arguments[2]:void 0)(t,n);return i(s,n,t,e(h,t,n)),n}})},87713:(t,e,n)=>{"use strict";n(82109)({target:"Map",proto:!0,real:!0,forced:!0},{upsert:n(8154)})},46603:(t,e,n)=>{var r=n(82109),i=Math.min,o=Math.max;r({target:"Math",stat:!0,forced:!0},{clamp:function(t,e,n){return i(n,o(e,t))}})},70100:(t,e,n)=>{n(82109)({target:"Math",stat:!0,nonConfigurable:!0,nonWritable:!0},{DEG_PER_RAD:Math.PI/180})},10490:(t,e,n)=>{var r=n(82109),i=180/Math.PI;r({target:"Math",stat:!0,forced:!0},{degrees:function(t){return t*i}})},13187:(t,e,n)=>{var r=n(82109),i=n(47103),o=n(26130);r({target:"Math",stat:!0,forced:!0},{fscale:function(t,e,n,r,a){return o(i(t,e,n,r,a))}})},60092:(t,e,n)=>{n(82109)({target:"Math",stat:!0,forced:!0},{iaddh:function(t,e,n,r){var i=t>>>0,o=n>>>0;return(e>>>0)+(r>>>0)+((i&o|(i|o)&~(i+o>>>0))>>>31)|0}})},19041:(t,e,n)=>{n(82109)({target:"Math",stat:!0,forced:!0},{imulh:function(t,e){var n=65535,r=+t,i=+e,o=r&n,a=i&n,l=r>>16,c=i>>16,s=(l*a>>>0)+(o*a>>>16);return l*c+(s>>16)+((o*c>>>0)+(s&n)>>16)}})},30666:(t,e,n)=>{n(82109)({target:"Math",stat:!0,forced:!0},{isubh:function(t,e,n,r){var i=t>>>0,o=n>>>0;return(e>>>0)-(r>>>0)-((~i&o|~(i^o)&i-o>>>0)>>>31)|0}})},51638:(t,e,n)=>{n(82109)({target:"Math",stat:!0,nonConfigurable:!0,nonWritable:!0},{RAD_PER_DEG:180/Math.PI})},62975:(t,e,n)=>{var r=n(82109),i=Math.PI/180;r({target:"Math",stat:!0,forced:!0},{radians:function(t){return t*i}})},15728:(t,e,n)=>{n(82109)({target:"Math",stat:!0,forced:!0},{scale:n(47103)})},46056:(t,e,n)=>{var r=n(82109),i=n(19670),o=n(77023),a=n(63061),l=n(76178),c=n(29909),s="Seeded Random",u=s+" Generator",d=c.set,h=c.getterFor(u),p=TypeError,b=a((function(t){d(this,{type:u,seed:t%2147483647})}),s,(function(){var t=h(this),e=t.seed=(1103515245*t.seed+12345)%2147483647;return l((1073741823&e)/1073741823,!1)}));r({target:"Math",stat:!0,forced:!0},{seededPRNG:function(t){var e=i(t).seed;if(!o(e))throw p('Math.seededPRNG() argument should have a "seed" field with a finite value.');return new b(e)}})},44299:(t,e,n)=>{n(82109)({target:"Math",stat:!0,forced:!0},{signbit:function(t){var e=+t;return e==e&&0==e?1/e==-1/0:e<0}})},5162:(t,e,n)=>{n(82109)({target:"Math",stat:!0,forced:!0},{umulh:function(t,e){var n=65535,r=+t,i=+e,o=r&n,a=i&n,l=r>>>16,c=i>>>16,s=(l*a>>>0)+(o*a>>>16);return l*c+(s>>>16)+((o*c>>>0)+(s&n)>>>16)}})},50292:(t,e,n)=>{"use strict";var r=n(82109),i=n(1702),o=n(19303),a=n(83009),l="Invalid number representation",c=RangeError,s=SyntaxError,u=TypeError,d=/^[\da-z]+$/,h=i("".charAt),p=i(d.exec),b=i(1..toString),m=i("".slice);r({target:"Number",stat:!0,forced:!0},{fromString:function(t,e){var n,r,i=1;if("string"!=typeof t)throw u(l);if(!t.length)throw s(l);if("-"==h(t,0)&&(i=-1,!(t=m(t,1)).length))throw s(l);if((n=void 0===e?10:o(e))<2||n>36)throw c("Invalid radix");if(!p(d,t)||b(r=a(t,n),n)!==t)throw s(l);return i*r}})},99964:(t,e,n)=>{"use strict";var r=n(82109),i=n(60996);r({target:"Object",stat:!0,forced:!0},{iterateEntries:function(t){return new i(t,"entries")}})},75238:(t,e,n)=>{"use strict";var r=n(82109),i=n(60996);r({target:"Object",stat:!0,forced:!0},{iterateKeys:function(t){return new i(t,"keys")}})},4987:(t,e,n)=>{"use strict";var r=n(82109),i=n(60996);r({target:"Object",stat:!0,forced:!0},{iterateValues:function(t){return new i(t,"values")}})},39769:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19781),a=n(96340),l=n(19662),c=n(19670),s=n(25787),u=n(60614),d=n(68554),h=n(70111),p=n(58173),b=n(98052),m=n(89190),Z=n(47045),g=n(842),y=n(5112),f=n(29909),I=n(90515),v=y("observable"),G="Observable",X="Subscription",V="SubscriptionObserver",W=f.getterFor,S=f.set,R=W(G),C=W(X),Y=W(V),N=function(t){this.observer=c(t),this.cleanup=void 0,this.subscriptionObserver=void 0};N.prototype={type:X,clean:function(){var t=this.cleanup;if(t){this.cleanup=void 0;try{t()}catch(t){g(t)}}},close:function(){if(!o){var t=this.facade,e=this.subscriptionObserver;t.closed=!0,e&&(e.closed=!0)}this.observer=void 0},isClosed:function(){return void 0===this.observer}};var K=function(t,e){var n,r=S(this,new N(t));o||(this.closed=!1);try{(n=p(t,"start"))&&i(n,t,this)}catch(t){g(t)}if(!r.isClosed()){var a=r.subscriptionObserver=new k(r);try{var c=e(a),s=c;d(c)||(r.cleanup=u(c.unsubscribe)?function(){s.unsubscribe()}:l(c))}catch(t){return void a.error(t)}r.isClosed()&&r.clean()}};K.prototype=m({},{unsubscribe:function(){var t=C(this);t.isClosed()||(t.close(),t.clean())}}),o&&Z(K.prototype,"closed",{configurable:!0,get:function(){return C(this).isClosed()}});var k=function(t){S(this,{type:V,subscriptionState:t}),o||(this.closed=!1)};k.prototype=m({},{next:function(t){var e=Y(this).subscriptionState;if(!e.isClosed()){var n=e.observer;try{var r=p(n,"next");r&&i(r,n,t)}catch(t){g(t)}}},error:function(t){var e=Y(this).subscriptionState;if(!e.isClosed()){var n=e.observer;e.close();try{var r=p(n,"error");r?i(r,n,t):g(t)}catch(t){g(t)}e.clean()}},complete:function(){var t=Y(this).subscriptionState;if(!t.isClosed()){var e=t.observer;t.close();try{var n=p(e,"complete");n&&i(n,e)}catch(t){g(t)}t.clean()}}}),o&&Z(k.prototype,"closed",{configurable:!0,get:function(){return Y(this).subscriptionState.isClosed()}});var L=function(t){s(this,H),S(this,{type:G,subscriber:l(t)})},H=L.prototype;m(H,{subscribe:function(t){var e=arguments.length;return new K(u(t)?{next:t,error:e>1?arguments[1]:void 0,complete:e>2?arguments[2]:void 0}:h(t)?t:{},R(this).subscriber)}}),b(H,v,(function(){return this})),r({global:!0,constructor:!0,forced:I},{Observable:L}),a(G)},93532:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(46916),a=n(19670),l=n(4411),c=n(18554),s=n(58173),u=n(20408),d=n(5112),h=n(90515),p=d("observable");r({target:"Observable",stat:!0,forced:h},{from:function(t){var e=l(this)?this:i("Observable"),n=s(a(t),p);if(n){var r=a(o(n,t));return r.constructor===e?r:new e((function(t){return r.subscribe(t)}))}var d=c(t);return new e((function(t){u(d,(function(e,n){if(t.next(e),t.closed)return n()}),{IS_ITERATOR:!0,INTERRUPTED:!0}),t.complete()}))}})},1025:(t,e,n)=>{n(39769),n(93532),n(88170)},88170:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(4411),a=n(90515),l=i("Array");r({target:"Observable",stat:!0,forced:a},{of:function(){for(var t=o(this)?this:i("Observable"),e=arguments.length,n=l(e),r=0;r<e;)n[r]=arguments[r++];return new t((function(t){for(var r=0;r<e;r++)if(t.next(n[r]),t.closed)return;t.complete()}))}})},96290:(t,e,n)=>{n(34668)},77479:(t,e,n)=>{"use strict";var r=n(82109),i=n(78523),o=n(12534);r({target:"Promise",stat:!0,forced:!0},{try:function(t){var e=i.f(this),n=o(t);return(n.error?e.reject:e.resolve)(n.value),e.promise}})},34582:(t,e,n)=>{var r=n(82109),i=n(38845),o=n(19670),a=i.toKey,l=i.set;r({target:"Reflect",stat:!0},{defineMetadata:function(t,e,n){var r=arguments.length<4?void 0:a(arguments[3]);l(t,e,o(n),r)}})},47896:(t,e,n)=>{var r=n(82109),i=n(38845),o=n(19670),a=i.toKey,l=i.getMap,c=i.store;r({target:"Reflect",stat:!0},{deleteMetadata:function(t,e){var n=arguments.length<3?void 0:a(arguments[2]),r=l(o(e),n,!1);if(void 0===r||!r.delete(t))return!1;if(r.size)return!0;var i=c.get(e);return i.delete(n),!!i.size||c.delete(e)}})},98558:(t,e,n)=>{var r=n(82109),i=n(1702),o=n(38845),a=n(19670),l=n(79518),c=i(n(60956)),s=i([].concat),u=o.keys,d=o.toKey,h=function(t,e){var n=u(t,e),r=l(t);if(null===r)return n;var i=h(r,e);return i.length?n.length?c(s(n,i)):i:n};r({target:"Reflect",stat:!0},{getMetadataKeys:function(t){var e=arguments.length<2?void 0:d(arguments[1]);return h(a(t),e)}})},12647:(t,e,n)=>{var r=n(82109),i=n(38845),o=n(19670),a=n(79518),l=i.has,c=i.get,s=i.toKey,u=function(t,e,n){if(l(t,e,n))return c(t,e,n);var r=a(e);return null!==r?u(t,r,n):void 0};r({target:"Reflect",stat:!0},{getMetadata:function(t,e){var n=arguments.length<3?void 0:s(arguments[2]);return u(t,o(e),n)}})},97507:(t,e,n)=>{var r=n(82109),i=n(38845),o=n(19670),a=i.keys,l=i.toKey;r({target:"Reflect",stat:!0},{getOwnMetadataKeys:function(t){var e=arguments.length<2?void 0:l(arguments[1]);return a(o(t),e)}})},84018:(t,e,n)=>{var r=n(82109),i=n(38845),o=n(19670),a=i.get,l=i.toKey;r({target:"Reflect",stat:!0},{getOwnMetadata:function(t,e){var n=arguments.length<3?void 0:l(arguments[2]);return a(t,o(e),n)}})},61605:(t,e,n)=>{var r=n(82109),i=n(38845),o=n(19670),a=n(79518),l=i.has,c=i.toKey,s=function(t,e,n){if(l(t,e,n))return!0;var r=a(e);return null!==r&&s(t,r,n)};r({target:"Reflect",stat:!0},{hasMetadata:function(t,e){var n=arguments.length<3?void 0:c(arguments[2]);return s(t,o(e),n)}})},49076:(t,e,n)=>{var r=n(82109),i=n(38845),o=n(19670),a=i.has,l=i.toKey;r({target:"Reflect",stat:!0},{hasOwnMetadata:function(t,e){var n=arguments.length<3?void 0:l(arguments[2]);return a(t,o(e),n)}})},34999:(t,e,n)=>{var r=n(82109),i=n(38845),o=n(19670),a=i.toKey,l=i.set;r({target:"Reflect",stat:!0},{metadata:function(t,e){return function(n,r){l(t,e,o(n),a(r))}}})},88921:(t,e,n)=>{"use strict";n(82109)({target:"Set",proto:!0,real:!0,forced:!0},{addAll:n(31501)})},96248:(t,e,n)=>{"use strict";n(82109)({target:"Set",proto:!0,real:!0,forced:!0},{deleteAll:n(34092)})},13599:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(46916),a=n(19662),l=n(19670),c=n(36707),s=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{difference:function(t){var e=l(this),n=new(c(e,i("Set")))(e),r=a(n.delete);return s(t,(function(t){o(r,n,t)})),n}})},11477:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(49974),a=n(96767),l=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{every:function(t){var e=i(this),n=a(e),r=o(t,arguments.length>1?arguments[1]:void 0);return!l(n,(function(t,n){if(!r(t,t,e))return n()}),{IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},64362:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(46916),a=n(19662),l=n(19670),c=n(49974),s=n(36707),u=n(96767),d=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{filter:function(t){var e=l(this),n=u(e),r=c(t,arguments.length>1?arguments[1]:void 0),h=new(s(e,i("Set"))),p=a(h.add);return d(n,(function(t){r(t,t,e)&&o(p,h,t)}),{IS_ITERATOR:!0}),h}})},15389:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(49974),a=n(96767),l=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{find:function(t){var e=i(this),n=a(e),r=o(t,arguments.length>1?arguments[1]:void 0);return l(n,(function(t,n){if(r(t,t,e))return n(t)}),{IS_ITERATOR:!0,INTERRUPTED:!0}).result}})},46006:(t,e,n)=>{n(82109)({target:"Set",stat:!0,forced:!0},{from:n(27296)})},90401:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(46916),a=n(19662),l=n(19670),c=n(36707),s=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{intersection:function(t){var e=l(this),n=new(c(e,i("Set"))),r=a(e.has),u=a(n.add);return s(t,(function(t){o(r,e,t)&&o(u,n,t)})),n}})},45164:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),a=n(19670),l=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{isDisjointFrom:function(t){var e=a(this),n=o(e.has);return!l(t,(function(t,r){if(!0===i(n,e,t))return r()}),{INTERRUPTED:!0}).stopped}})},91238:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(46916),a=n(19662),l=n(60614),c=n(19670),s=n(18554),u=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{isSubsetOf:function(t){var e=s(this),n=c(t),r=n.has;return l(r)||(n=new(i("Set"))(t),r=a(n.has)),!u(e,(function(t,e){if(!1===o(r,n,t))return e()}),{IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},54837:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),a=n(19670),l=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{isSupersetOf:function(t){var e=a(this),n=o(e.has);return!l(t,(function(t,r){if(!1===i(n,e,t))return r()}),{INTERRUPTED:!0}).stopped}})},87485:(t,e,n)=>{"use strict";var r=n(82109),i=n(1702),o=n(19670),a=n(41340),l=n(96767),c=n(20408),s=i([].join),u=[].push;r({target:"Set",proto:!0,real:!0,forced:!0},{join:function(t){var e=o(this),n=l(e),r=void 0===t?",":a(t),i=[];return c(n,u,{that:i,IS_ITERATOR:!0}),s(i,r)}})},56767:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(49974),a=n(46916),l=n(19662),c=n(19670),s=n(36707),u=n(96767),d=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{map:function(t){var e=c(this),n=u(e),r=o(t,arguments.length>1?arguments[1]:void 0),h=new(s(e,i("Set"))),p=l(h.add);return d(n,(function(t){a(p,h,r(t,t,e))}),{IS_ITERATOR:!0}),h}})},69916:(t,e,n)=>{n(82109)({target:"Set",stat:!0,forced:!0},{of:n(82044)})},76651:(t,e,n)=>{"use strict";var r=n(82109),i=n(19662),o=n(19670),a=n(96767),l=n(20408),c=TypeError;r({target:"Set",proto:!0,real:!0,forced:!0},{reduce:function(t){var e=o(this),n=a(e),r=arguments.length<2,s=r?void 0:arguments[1];if(i(t),l(n,(function(n){r?(r=!1,s=n):s=t(s,n,n,e)}),{IS_ITERATOR:!0}),r)throw c("Reduce of empty set with no initial value");return s}})},61437:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(49974),a=n(96767),l=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{some:function(t){var e=i(this),n=a(e),r=o(t,arguments.length>1?arguments[1]:void 0);return l(n,(function(t,n){if(r(t,t,e))return n()}),{IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},35285:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(46916),a=n(19662),l=n(19670),c=n(36707),s=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{symmetricDifference:function(t){var e=l(this),n=new(c(e,i("Set")))(e),r=a(n.delete),u=a(n.add);return s(t,(function(t){o(r,n,t)||o(u,n,t)})),n}})},39865:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(19662),a=n(19670),l=n(36707),c=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{union:function(t){var e=a(this),n=new(l(e,i("Set")))(e);return c(t,o(n.add),{that:n}),n}})},86035:(t,e,n)=>{"use strict";var r=n(82109),i=n(28710).charAt,o=n(84488),a=n(19303),l=n(41340);r({target:"String",proto:!0,forced:!0},{at:function(t){var e=l(o(this)),n=e.length,r=a(t),c=r>=0?r:n+r;return c<0||c>=n?void 0:i(e,c)}})},67501:(t,e,n)=>{"use strict";var r=n(82109),i=n(63061),o=n(76178),a=n(84488),l=n(41340),c=n(29909),s=n(28710),u=s.codeAt,d=s.charAt,h="String Iterator",p=c.set,b=c.getterFor(h),m=i((function(t){p(this,{type:h,string:t,index:0})}),"String",(function(){var t,e=b(this),n=e.string,r=e.index;return r>=n.length?o(void 0,!0):(t=d(n,r),e.index+=t.length,o({codePoint:u(t,0),position:r},!1))}));r({target:"String",proto:!0,forced:!0},{codePoints:function(){return new m(l(a(this)))}})},27207:(t,e,n)=>{n(68757)},609:(t,e,n)=>{n(26800)("asyncDispose")},21568:(t,e,n)=>{n(26800)("dispose")},48824:(t,e,n)=>{n(26800)("observable")},44130:(t,e,n)=>{n(26800)("patternMatch")},35954:(t,e,n)=>{n(26800)("replaceAll")},78206:(t,e,n)=>{"use strict";n(82109)({target:"WeakMap",proto:!0,real:!0,forced:!0},{deleteAll:n(34092)})},76478:(t,e,n)=>{n(82109)({target:"WeakMap",stat:!0,forced:!0},{from:n(27296)})},79715:(t,e,n)=>{n(82109)({target:"WeakMap",stat:!0,forced:!0},{of:n(82044)})},5964:(t,e,n)=>{"use strict";n(82109)({target:"WeakMap",proto:!0,real:!0,forced:!0},{upsert:n(8154)})},43561:(t,e,n)=>{"use strict";n(82109)({target:"WeakSet",proto:!0,real:!0,forced:!0},{addAll:n(31501)})},32049:(t,e,n)=>{"use strict";n(82109)({target:"WeakSet",proto:!0,real:!0,forced:!0},{deleteAll:n(34092)})},86020:(t,e,n)=>{n(82109)({target:"WeakSet",stat:!0,forced:!0},{from:n(27296)})},56585:(t,e,n)=>{n(82109)({target:"WeakSet",stat:!0,forced:!0},{of:n(82044)})},11091:(t,e,n)=>{var r=n(82109),i=n(17854),o=n(20261).clear;r({global:!0,bind:!0,enumerable:!0,forced:i.clearImmediate!==o},{clearImmediate:o})},54747:(t,e,n)=>{var r=n(17854),i=n(48324),o=n(98509),a=n(18533),l=n(68880),c=function(t){if(t&&t.forEach!==a)try{l(t,"forEach",a)}catch(e){t.forEach=a}};for(var s in i)i[s]&&c(r[s]&&r[s].prototype);c(o)},33948:(t,e,n)=>{var r=n(17854),i=n(48324),o=n(98509),a=n(66992),l=n(68880),c=n(5112),s=c("iterator"),u=c("toStringTag"),d=a.values,h=function(t,e){if(t){if(t[s]!==d)try{l(t,s,d)}catch(e){t[s]=d}if(t[u]||l(t,u,e),i[e])for(var n in a)if(t[n]!==a[n])try{l(t,n,a[n])}catch(e){t[n]=a[n]}}};for(var p in i)h(r[p]&&r[p].prototype,p);h(o,"DOMTokenList")},84633:(t,e,n)=>{n(11091),n(12986)},85844:(t,e,n)=>{var r=n(82109),i=n(17854),o=n(95948),a=n(19662),l=n(48053),c=n(35268),s=i.process;r({global:!0,enumerable:!0,dontCallGetSet:!0},{queueMicrotask:function(t){l(arguments.length,1),a(t);var e=c&&s.domain;o(e?e.bind(t):t)}})},12986:(t,e,n)=>{var r=n(82109),i=n(17854),o=n(20261).set;r({global:!0,bind:!0,enumerable:!0,forced:i.setImmediate!==o},{setImmediate:o})},96815:(t,e,n)=>{var r=n(82109),i=n(17854),o=n(17152).setInterval;r({global:!0,bind:!0,forced:i.setInterval!==o},{setInterval:o})},88417:(t,e,n)=>{var r=n(82109),i=n(17854),o=n(17152).setTimeout;r({global:!0,bind:!0,forced:i.setTimeout!==o},{setTimeout:o})},32564:(t,e,n)=>{n(96815),n(88417)},65556:(t,e,n)=>{"use strict";n(66992);var r=n(82109),i=n(17854),o=n(46916),a=n(1702),l=n(19781),c=n(85143),s=n(98052),u=n(89190),d=n(58003),h=n(63061),p=n(29909),b=n(25787),m=n(60614),Z=n(92597),g=n(49974),y=n(70648),f=n(19670),I=n(70111),v=n(41340),G=n(70030),X=n(79114),V=n(18554),W=n(71246),S=n(48053),R=n(5112),C=n(94362),Y=R("iterator"),N="URLSearchParams",K=N+"Iterator",k=p.set,L=p.getterFor(N),H=p.getterFor(K),J=Object.getOwnPropertyDescriptor,U=function(t){if(!l)return i[t];var e=J(i,t);return e&&e.value},x=U("fetch"),T=U("Request"),w=U("Headers"),A=T&&T.prototype,F=w&&w.prototype,B=i.RegExp,z=i.TypeError,P=i.decodeURIComponent,M=i.encodeURIComponent,E=a("".charAt),j=a([].join),Q=a([].push),O=a("".replace),D=a([].shift),_=a([].splice),q=a("".split),$=a("".slice),tt=/\+/g,et=Array(4),nt=function(t){return et[t-1]||(et[t-1]=B("((?:%[\\da-f]{2}){"+t+"})","gi"))},rt=function(t){try{return P(t)}catch(e){return t}},it=function(t){var e=O(t,tt," "),n=4;try{return P(e)}catch(t){for(;n;)e=O(e,nt(n--),rt);return e}},ot=/[!'()~]|%20/g,at={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},lt=function(t){return at[t]},ct=function(t){return O(M(t),ot,lt)},st=h((function(t,e){k(this,{type:K,iterator:V(L(t).entries),kind:e})}),"Iterator",(function(){var t=H(this),e=t.kind,n=t.iterator.next(),r=n.value;return n.done||(n.value="keys"===e?r.key:"values"===e?r.value:[r.key,r.value]),n}),!0),ut=function(t){this.entries=[],this.url=null,void 0!==t&&(I(t)?this.parseObject(t):this.parseQuery("string"==typeof t?"?"===E(t,0)?$(t,1):t:v(t)))};ut.prototype={type:N,bindURL:function(t){this.url=t,this.update()},parseObject:function(t){var e,n,r,i,a,l,c,s=W(t);if(s)for(n=(e=V(t,s)).next;!(r=o(n,e)).done;){if(a=(i=V(f(r.value))).next,(l=o(a,i)).done||(c=o(a,i)).done||!o(a,i).done)throw z("Expected sequence with length 2");Q(this.entries,{key:v(l.value),value:v(c.value)})}else for(var u in t)Z(t,u)&&Q(this.entries,{key:u,value:v(t[u])})},parseQuery:function(t){if(t)for(var e,n,r=q(t,"&"),i=0;i<r.length;)(e=r[i++]).length&&(n=q(e,"="),Q(this.entries,{key:it(D(n)),value:it(j(n,"="))}))},serialize:function(){for(var t,e=this.entries,n=[],r=0;r<e.length;)t=e[r++],Q(n,ct(t.key)+"="+ct(t.value));return j(n,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var dt=function(){b(this,ht);var t=arguments.length>0?arguments[0]:void 0;k(this,new ut(t))},ht=dt.prototype;if(u(ht,{append:function(t,e){S(arguments.length,2);var n=L(this);Q(n.entries,{key:v(t),value:v(e)}),n.updateURL()},delete:function(t){S(arguments.length,1);for(var e=L(this),n=e.entries,r=v(t),i=0;i<n.length;)n[i].key===r?_(n,i,1):i++;e.updateURL()},get:function(t){S(arguments.length,1);for(var e=L(this).entries,n=v(t),r=0;r<e.length;r++)if(e[r].key===n)return e[r].value;return null},getAll:function(t){S(arguments.length,1);for(var e=L(this).entries,n=v(t),r=[],i=0;i<e.length;i++)e[i].key===n&&Q(r,e[i].value);return r},has:function(t){S(arguments.length,1);for(var e=L(this).entries,n=v(t),r=0;r<e.length;)if(e[r++].key===n)return!0;return!1},set:function(t,e){S(arguments.length,1);for(var n,r=L(this),i=r.entries,o=!1,a=v(t),l=v(e),c=0;c<i.length;c++)(n=i[c]).key===a&&(o?_(i,c--,1):(o=!0,n.value=l));o||Q(i,{key:a,value:l}),r.updateURL()},sort:function(){var t=L(this);C(t.entries,(function(t,e){return t.key>e.key?1:-1})),t.updateURL()},forEach:function(t){for(var e,n=L(this).entries,r=g(t,arguments.length>1?arguments[1]:void 0),i=0;i<n.length;)r((e=n[i++]).value,e.key,this)},keys:function(){return new st(this,"keys")},values:function(){return new st(this,"values")},entries:function(){return new st(this,"entries")}},{enumerable:!0}),s(ht,Y,ht.entries,{name:"entries"}),s(ht,"toString",(function(){return L(this).serialize()}),{enumerable:!0}),d(dt,N),r({global:!0,constructor:!0,forced:!c},{URLSearchParams:dt}),!c&&m(w)){var pt=a(F.has),bt=a(F.set),mt=function(t){if(I(t)){var e,n=t.body;if(y(n)===N)return e=t.headers?new w(t.headers):new w,pt(e,"content-type")||bt(e,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),G(t,{body:X(0,v(n)),headers:X(0,e)})}return t};if(m(x)&&r({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(t){return x(t,arguments.length>1?mt(arguments[1]):{})}}),m(T)){var Zt=function(t){return b(this,A),new T(t,arguments.length>1?mt(arguments[1]):{})};A.constructor=Zt,Zt.prototype=A,r({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:Zt})}}t.exports={URLSearchParams:dt,getState:L}},41637:(t,e,n)=>{n(65556)},68789:(t,e,n)=>{"use strict";n(78783);var r,i=n(82109),o=n(19781),a=n(85143),l=n(17854),c=n(49974),s=n(1702),u=n(98052),d=n(47045),h=n(25787),p=n(92597),b=n(21574),m=n(48457),Z=n(41589),g=n(28710).codeAt,y=n(33197),f=n(41340),I=n(58003),v=n(48053),G=n(65556),X=n(29909),V=X.set,W=X.getterFor("URL"),S=G.URLSearchParams,R=G.getState,C=l.URL,Y=l.TypeError,N=l.parseInt,K=Math.floor,k=Math.pow,L=s("".charAt),H=s(/./.exec),J=s([].join),U=s(1..toString),x=s([].pop),T=s([].push),w=s("".replace),A=s([].shift),F=s("".split),B=s("".slice),z=s("".toLowerCase),P=s([].unshift),M="Invalid scheme",E="Invalid host",j="Invalid port",Q=/[a-z]/i,O=/[\d+-.a-z]/i,D=/\d/,_=/^0x/i,q=/^[0-7]+$/,$=/^\d+$/,tt=/^[\da-f]+$/i,et=/[\0\t\n\r #%/:<>?@[\\\]^|]/,nt=/[\0\t\n\r #/:<>?@[\\\]^|]/,rt=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,it=/[\t\n\r]/g,ot=function(t){var e,n,r,i;if("number"==typeof t){for(e=[],n=0;n<4;n++)P(e,t%256),t=K(t/256);return J(e,".")}if("object"==typeof t){for(e="",r=function(t){for(var e=null,n=1,r=null,i=0,o=0;o<8;o++)0!==t[o]?(i>n&&(e=r,n=i),r=null,i=0):(null===r&&(r=o),++i);return i>n&&(e=r,n=i),e}(t),n=0;n<8;n++)i&&0===t[n]||(i&&(i=!1),r===n?(e+=n?":":"::",i=!0):(e+=U(t[n],16),n<7&&(e+=":")));return"["+e+"]"}return t},at={},lt=b({},at,{" ":1,'"':1,"<":1,">":1,"`":1}),ct=b({},lt,{"#":1,"?":1,"{":1,"}":1}),st=b({},ct,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),ut=function(t,e){var n=g(t,0);return n>32&&n<127&&!p(e,t)?t:encodeURIComponent(t)},dt={ftp:21,file:null,http:80,https:443,ws:80,wss:443},ht=function(t,e){var n;return 2==t.length&&H(Q,L(t,0))&&(":"==(n=L(t,1))||!e&&"|"==n)},pt=function(t){var e;return t.length>1&&ht(B(t,0,2))&&(2==t.length||"/"===(e=L(t,2))||"\\"===e||"?"===e||"#"===e)},bt=function(t){return"."===t||"%2e"===z(t)},mt={},Zt={},gt={},yt={},ft={},It={},vt={},Gt={},Xt={},Vt={},Wt={},St={},Rt={},Ct={},Yt={},Nt={},Kt={},kt={},Lt={},Ht={},Jt={},Ut=function(t,e,n){var r,i,o,a=f(t);if(e){if(i=this.parse(a))throw Y(i);this.searchParams=null}else{if(void 0!==n&&(r=new Ut(n,!0)),i=this.parse(a,null,r))throw Y(i);(o=R(new S)).bindURL(this),this.searchParams=o}};Ut.prototype={type:"URL",parse:function(t,e,n){var i,o,a,l,c,s=this,u=e||mt,d=0,h="",b=!1,g=!1,y=!1;for(t=f(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=w(t,rt,"")),t=w(t,it,""),i=m(t);d<=i.length;){switch(o=i[d],u){case mt:if(!o||!H(Q,o)){if(e)return M;u=gt;continue}h+=z(o),u=Zt;break;case Zt:if(o&&(H(O,o)||"+"==o||"-"==o||"."==o))h+=z(o);else{if(":"!=o){if(e)return M;h="",u=gt,d=0;continue}if(e&&(s.isSpecial()!=p(dt,h)||"file"==h&&(s.includesCredentials()||null!==s.port)||"file"==s.scheme&&!s.host))return;if(s.scheme=h,e)return void(s.isSpecial()&&dt[s.scheme]==s.port&&(s.port=null));h="","file"==s.scheme?u=Ct:s.isSpecial()&&n&&n.scheme==s.scheme?u=yt:s.isSpecial()?u=Gt:"/"==i[d+1]?(u=ft,d++):(s.cannotBeABaseURL=!0,T(s.path,""),u=Lt)}break;case gt:if(!n||n.cannotBeABaseURL&&"#"!=o)return M;if(n.cannotBeABaseURL&&"#"==o){s.scheme=n.scheme,s.path=Z(n.path),s.query=n.query,s.fragment="",s.cannotBeABaseURL=!0,u=Jt;break}u="file"==n.scheme?Ct:It;continue;case yt:if("/"!=o||"/"!=i[d+1]){u=It;continue}u=Xt,d++;break;case ft:if("/"==o){u=Vt;break}u=kt;continue;case It:if(s.scheme=n.scheme,o==r)s.username=n.username,s.password=n.password,s.host=n.host,s.port=n.port,s.path=Z(n.path),s.query=n.query;else if("/"==o||"\\"==o&&s.isSpecial())u=vt;else if("?"==o)s.username=n.username,s.password=n.password,s.host=n.host,s.port=n.port,s.path=Z(n.path),s.query="",u=Ht;else{if("#"!=o){s.username=n.username,s.password=n.password,s.host=n.host,s.port=n.port,s.path=Z(n.path),s.path.length--,u=kt;continue}s.username=n.username,s.password=n.password,s.host=n.host,s.port=n.port,s.path=Z(n.path),s.query=n.query,s.fragment="",u=Jt}break;case vt:if(!s.isSpecial()||"/"!=o&&"\\"!=o){if("/"!=o){s.username=n.username,s.password=n.password,s.host=n.host,s.port=n.port,u=kt;continue}u=Vt}else u=Xt;break;case Gt:if(u=Xt,"/"!=o||"/"!=L(h,d+1))continue;d++;break;case Xt:if("/"!=o&&"\\"!=o){u=Vt;continue}break;case Vt:if("@"==o){b&&(h="%40"+h),b=!0,a=m(h);for(var I=0;I<a.length;I++){var v=a[I];if(":"!=v||y){var G=ut(v,st);y?s.password+=G:s.username+=G}else y=!0}h=""}else if(o==r||"/"==o||"?"==o||"#"==o||"\\"==o&&s.isSpecial()){if(b&&""==h)return"Invalid authority";d-=m(h).length+1,h="",u=Wt}else h+=o;break;case Wt:case St:if(e&&"file"==s.scheme){u=Nt;continue}if(":"!=o||g){if(o==r||"/"==o||"?"==o||"#"==o||"\\"==o&&s.isSpecial()){if(s.isSpecial()&&""==h)return E;if(e&&""==h&&(s.includesCredentials()||null!==s.port))return;if(l=s.parseHost(h))return l;if(h="",u=Kt,e)return;continue}"["==o?g=!0:"]"==o&&(g=!1),h+=o}else{if(""==h)return E;if(l=s.parseHost(h))return l;if(h="",u=Rt,e==St)return}break;case Rt:if(!H(D,o)){if(o==r||"/"==o||"?"==o||"#"==o||"\\"==o&&s.isSpecial()||e){if(""!=h){var X=N(h,10);if(X>65535)return j;s.port=s.isSpecial()&&X===dt[s.scheme]?null:X,h=""}if(e)return;u=Kt;continue}return j}h+=o;break;case Ct:if(s.scheme="file","/"==o||"\\"==o)u=Yt;else{if(!n||"file"!=n.scheme){u=kt;continue}if(o==r)s.host=n.host,s.path=Z(n.path),s.query=n.query;else if("?"==o)s.host=n.host,s.path=Z(n.path),s.query="",u=Ht;else{if("#"!=o){pt(J(Z(i,d),""))||(s.host=n.host,s.path=Z(n.path),s.shortenPath()),u=kt;continue}s.host=n.host,s.path=Z(n.path),s.query=n.query,s.fragment="",u=Jt}}break;case Yt:if("/"==o||"\\"==o){u=Nt;break}n&&"file"==n.scheme&&!pt(J(Z(i,d),""))&&(ht(n.path[0],!0)?T(s.path,n.path[0]):s.host=n.host),u=kt;continue;case Nt:if(o==r||"/"==o||"\\"==o||"?"==o||"#"==o){if(!e&&ht(h))u=kt;else if(""==h){if(s.host="",e)return;u=Kt}else{if(l=s.parseHost(h))return l;if("localhost"==s.host&&(s.host=""),e)return;h="",u=Kt}continue}h+=o;break;case Kt:if(s.isSpecial()){if(u=kt,"/"!=o&&"\\"!=o)continue}else if(e||"?"!=o)if(e||"#"!=o){if(o!=r&&(u=kt,"/"!=o))continue}else s.fragment="",u=Jt;else s.query="",u=Ht;break;case kt:if(o==r||"/"==o||"\\"==o&&s.isSpecial()||!e&&("?"==o||"#"==o)){if(".."===(c=z(c=h))||"%2e."===c||".%2e"===c||"%2e%2e"===c?(s.shortenPath(),"/"==o||"\\"==o&&s.isSpecial()||T(s.path,"")):bt(h)?"/"==o||"\\"==o&&s.isSpecial()||T(s.path,""):("file"==s.scheme&&!s.path.length&&ht(h)&&(s.host&&(s.host=""),h=L(h,0)+":"),T(s.path,h)),h="","file"==s.scheme&&(o==r||"?"==o||"#"==o))for(;s.path.length>1&&""===s.path[0];)A(s.path);"?"==o?(s.query="",u=Ht):"#"==o&&(s.fragment="",u=Jt)}else h+=ut(o,ct);break;case Lt:"?"==o?(s.query="",u=Ht):"#"==o?(s.fragment="",u=Jt):o!=r&&(s.path[0]+=ut(o,at));break;case Ht:e||"#"!=o?o!=r&&("'"==o&&s.isSpecial()?s.query+="%27":s.query+="#"==o?"%23":ut(o,at)):(s.fragment="",u=Jt);break;case Jt:o!=r&&(s.fragment+=ut(o,lt))}d++}},parseHost:function(t){var e,n,r;if("["==L(t,0)){if("]"!=L(t,t.length-1))return E;if(e=function(t){var e,n,r,i,o,a,l,c=[0,0,0,0,0,0,0,0],s=0,u=null,d=0,h=function(){return L(t,d)};if(":"==h()){if(":"!=L(t,1))return;d+=2,u=++s}for(;h();){if(8==s)return;if(":"!=h()){for(e=n=0;n<4&&H(tt,h());)e=16*e+N(h(),16),d++,n++;if("."==h()){if(0==n)return;if(d-=n,s>6)return;for(r=0;h();){if(i=null,r>0){if(!("."==h()&&r<4))return;d++}if(!H(D,h()))return;for(;H(D,h());){if(o=N(h(),10),null===i)i=o;else{if(0==i)return;i=10*i+o}if(i>255)return;d++}c[s]=256*c[s]+i,2!=++r&&4!=r||s++}if(4!=r)return;break}if(":"==h()){if(d++,!h())return}else if(h())return;c[s++]=e}else{if(null!==u)return;d++,u=++s}}if(null!==u)for(a=s-u,s=7;0!=s&&a>0;)l=c[s],c[s--]=c[u+a-1],c[u+--a]=l;else if(8!=s)return;return c}(B(t,1,-1)),!e)return E;this.host=e}else if(this.isSpecial()){if(t=y(t),H(et,t))return E;if(e=function(t){var e,n,r,i,o,a,l,c=F(t,".");if(c.length&&""==c[c.length-1]&&c.length--,(e=c.length)>4)return t;for(n=[],r=0;r<e;r++){if(""==(i=c[r]))return t;if(o=10,i.length>1&&"0"==L(i,0)&&(o=H(_,i)?16:8,i=B(i,8==o?1:2)),""===i)a=0;else{if(!H(10==o?$:8==o?q:tt,i))return t;a=N(i,o)}T(n,a)}for(r=0;r<e;r++)if(a=n[r],r==e-1){if(a>=k(256,5-e))return null}else if(a>255)return null;for(l=x(n),r=0;r<n.length;r++)l+=n[r]*k(256,3-r);return l}(t),null===e)return E;this.host=e}else{if(H(nt,t))return E;for(e="",n=m(t),r=0;r<n.length;r++)e+=ut(n[r],at);this.host=e}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||"file"==this.scheme},includesCredentials:function(){return""!=this.username||""!=this.password},isSpecial:function(){return p(dt,this.scheme)},shortenPath:function(){var t=this.path,e=t.length;!e||"file"==this.scheme&&1==e&&ht(t[0],!0)||t.length--},serialize:function(){var t=this,e=t.scheme,n=t.username,r=t.password,i=t.host,o=t.port,a=t.path,l=t.query,c=t.fragment,s=e+":";return null!==i?(s+="//",t.includesCredentials()&&(s+=n+(r?":"+r:"")+"@"),s+=ot(i),null!==o&&(s+=":"+o)):"file"==e&&(s+="//"),s+=t.cannotBeABaseURL?a[0]:a.length?"/"+J(a,"/"):"",null!==l&&(s+="?"+l),null!==c&&(s+="#"+c),s},setHref:function(t){var e=this.parse(t);if(e)throw Y(e);this.searchParams.update()},getOrigin:function(){var t=this.scheme,e=this.port;if("blob"==t)try{return new xt(t.path[0]).origin}catch(t){return"null"}return"file"!=t&&this.isSpecial()?t+"://"+ot(this.host)+(null!==e?":"+e:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(t){this.parse(f(t)+":",mt)},getUsername:function(){return this.username},setUsername:function(t){var e=m(f(t));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var n=0;n<e.length;n++)this.username+=ut(e[n],st)}},getPassword:function(){return this.password},setPassword:function(t){var e=m(f(t));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var n=0;n<e.length;n++)this.password+=ut(e[n],st)}},getHost:function(){var t=this.host,e=this.port;return null===t?"":null===e?ot(t):ot(t)+":"+e},setHost:function(t){this.cannotBeABaseURL||this.parse(t,Wt)},getHostname:function(){var t=this.host;return null===t?"":ot(t)},setHostname:function(t){this.cannotBeABaseURL||this.parse(t,St)},getPort:function(){var t=this.port;return null===t?"":f(t)},setPort:function(t){this.cannotHaveUsernamePasswordPort()||(""==(t=f(t))?this.port=null:this.parse(t,Rt))},getPathname:function(){var t=this.path;return this.cannotBeABaseURL?t[0]:t.length?"/"+J(t,"/"):""},setPathname:function(t){this.cannotBeABaseURL||(this.path=[],this.parse(t,Kt))},getSearch:function(){var t=this.query;return t?"?"+t:""},setSearch:function(t){""==(t=f(t))?this.query=null:("?"==L(t,0)&&(t=B(t,1)),this.query="",this.parse(t,Ht)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var t=this.fragment;return t?"#"+t:""},setHash:function(t){""!=(t=f(t))?("#"==L(t,0)&&(t=B(t,1)),this.fragment="",this.parse(t,Jt)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var xt=function(t){var e=h(this,Tt),n=v(arguments.length,1)>1?arguments[1]:void 0,r=V(e,new Ut(t,!1,n));o||(e.href=r.serialize(),e.origin=r.getOrigin(),e.protocol=r.getProtocol(),e.username=r.getUsername(),e.password=r.getPassword(),e.host=r.getHost(),e.hostname=r.getHostname(),e.port=r.getPort(),e.pathname=r.getPathname(),e.search=r.getSearch(),e.searchParams=r.getSearchParams(),e.hash=r.getHash())},Tt=xt.prototype,wt=function(t,e){return{get:function(){return W(this)[t]()},set:e&&function(t){return W(this)[e](t)},configurable:!0,enumerable:!0}};if(o&&(d(Tt,"href",wt("serialize","setHref")),d(Tt,"origin",wt("getOrigin")),d(Tt,"protocol",wt("getProtocol","setProtocol")),d(Tt,"username",wt("getUsername","setUsername")),d(Tt,"password",wt("getPassword","setPassword")),d(Tt,"host",wt("getHost","setHost")),d(Tt,"hostname",wt("getHostname","setHostname")),d(Tt,"port",wt("getPort","setPort")),d(Tt,"pathname",wt("getPathname","setPathname")),d(Tt,"search",wt("getSearch","setSearch")),d(Tt,"searchParams",wt("getSearchParams")),d(Tt,"hash",wt("getHash","setHash"))),u(Tt,"toJSON",(function(){return W(this).serialize()}),{enumerable:!0}),u(Tt,"toString",(function(){return W(this).serialize()}),{enumerable:!0}),C){var At=C.createObjectURL,Ft=C.revokeObjectURL;At&&u(xt,"createObjectURL",c(At,C)),Ft&&u(xt,"revokeObjectURL",c(Ft,C))}I(xt,"URL"),i({global:!0,constructor:!0,forced:!a,sham:!o},{URL:xt})},60285:(t,e,n)=>{n(68789)},83753:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916);r({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return i(URL.prototype.toString,this)}})},86248:t=>{var e=function(t){"use strict";var e,n=Object.prototype,r=n.hasOwnProperty,i=Object.defineProperty||function(t,e,n){t[e]=n.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",l=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function s(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,n){return t[e]=n}}function u(t,e,n,r){var o=e&&e.prototype instanceof Z?e:Z,a=Object.create(o.prototype),l=new Y(r||[]);return i(a,"_invoke",{value:W(t,n,l)}),a}function d(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=u;var h="suspendedStart",p="executing",b="completed",m={};function Z(){}function g(){}function y(){}var f={};s(f,a,(function(){return this}));var I=Object.getPrototypeOf,v=I&&I(I(N([])));v&&v!==n&&r.call(v,a)&&(f=v);var G=y.prototype=Z.prototype=Object.create(f);function X(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function V(t,e){function n(i,o,a,l){var c=d(t[i],t,o);if("throw"!==c.type){var s=c.arg,u=s.value;return u&&"object"==typeof u&&r.call(u,"__await")?e.resolve(u.__await).then((function(t){n("next",t,a,l)}),(function(t){n("throw",t,a,l)})):e.resolve(u).then((function(t){s.value=t,a(s)}),(function(t){return n("throw",t,a,l)}))}l(c.arg)}var o;i(this,"_invoke",{value:function(t,r){function i(){return new e((function(e,i){n(t,r,e,i)}))}return o=o?o.then(i,i):i()}})}function W(t,e,n){var r=h;return function(i,o){if(r===p)throw new Error("Generator is already running");if(r===b){if("throw"===i)throw o;return K()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var l=S(a,n);if(l){if(l===m)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===h)throw r=b,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var c=d(t,e,n);if("normal"===c.type){if(r=n.done?b:"suspendedYield",c.arg===m)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r=b,n.method="throw",n.arg=c.arg)}}}function S(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,S(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),m;var o=d(i,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,m;var a=o.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,m):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function R(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 C(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function Y(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(R,this),this.reset(!0)}function N(t){if(t){var n=t[a];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,o=function n(){for(;++i<t.length;)if(r.call(t,i))return n.value=t[i],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}return{next:K}}function K(){return{value:e,done:!0}}return g.prototype=y,i(G,"constructor",{value:y,configurable:!0}),i(y,"constructor",{value:g,configurable:!0}),g.displayName=s(y,c,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===g||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,y):(t.__proto__=y,s(t,c,"GeneratorFunction")),t.prototype=Object.create(G),t},t.awrap=function(t){return{__await:t}},X(V.prototype),s(V.prototype,l,(function(){return this})),t.AsyncIterator=V,t.async=function(e,n,r,i,o){void 0===o&&(o=Promise);var a=new V(u(e,n,r,i),o);return t.isGeneratorFunction(n)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},X(G),s(G,c,"Generator"),s(G,a,(function(){return this})),s(G,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),n=[];for(var r in e)n.push(r);return n.reverse(),function t(){for(;n.length;){var r=n.pop();if(r in e)return t.value=r,t.done=!1,t}return t.done=!0,t}},t.values=N,Y.prototype={constructor:Y,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(C),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},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 n=this;function i(r,i){return l.type="throw",l.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],l=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var c=r.call(a,"catchLoc"),s=r.call(a,"finallyLoc");if(c&&s){if(this.prev<a.catchLoc)return i(a.catchLoc,!0);if(this.prev<a.finallyLoc)return i(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return i(a.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return i(a.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=t,a.arg=e,o?(this.method="next",this.next=o.finallyLoc,m):this.complete(a)},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),m},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),C(n),m}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;C(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:N(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),m}},t}(t.exports);try{regeneratorRuntime=e}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=e:Function("r","regeneratorRuntime = r")(e)}},48947:e=>{"use strict";e.exports=t}},n={};function r(t){var i=n[t];if(void 0!==i)return i.exports;var o=n[t]={exports:{}};return e[t](o,o.exports,r),o.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};return(()=>{"use strict";var t;function e(t,e,n,r){return new(n||(n=Promise))((function(i,o){function a(t){try{c(r.next(t))}catch(t){o(t)}}function l(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,l)}c((r=r.apply(t,e||[])).next())}))}function n(t,e,n,r){return new(n||(n=Promise))((function(i,o){function a(t){try{c(r.next(t))}catch(t){o(t)}}function l(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,l)}c((r=r.apply(t,e||[])).next())}))}r.r(i),r.d(i,{ASGARDEO_SESSION_ACTIVE:()=>R,AUTHORIZATION_CODE:()=>m,AsgardeoAuthClient:()=>N,AsgardeoAuthException:()=>G,AsgardeoSPAClient:()=>zi,AuthProvider:()=>yo,AuthenticatedComponent:()=>Io,AuthenticationHelper:()=>w,AuthenticationUtils:()=>X,CLIENT_ID_TAG:()=>c,CLIENT_SECRET_TAG:()=>s,CryptoHelper:()=>W,DataLayer:()=>C,Hooks:()=>H,HttpError:()=>Ei,MainThreadClient:()=>Ai,OIDC_SCOPE:()=>I,PKCE_CODE_VERIFIER:()=>h,PKCE_SEPARATOR:()=>p,REFRESH_TOKEN_TIMER:()=>d,ResponseMode:()=>t,SCOPE_TAG:()=>l,SESSION_STATE:()=>Z,SIGN_OUT_SUCCESS_PARAM:()=>y,SIGN_OUT_URL:()=>g,SPAHelper:()=>A,SPAUtils:()=>T,STATE:()=>f,SUPPORTED_SIGNATURE_ALGORITHMS:()=>b,SecureApp:()=>Vo,Storage:()=>U,Stores:()=>u,TOKEN_REQUEST_CONFIG_KEY:()=>L,TOKEN_TAG:()=>o,USERNAME_TAG:()=>a,WebWorkerClass:()=>Pi,WebWorkerClient:()=>Fi,useAuthContext:()=>fo,workerReceiver:()=>Mi}),r(82526),r(41817),r(72443),r(92401),r(8722),r(32165),r(69007),r(16066),r(83510),r(41840),r(6982),r(32159),r(96649),r(39341),r(60543),r(92222),r(50545),r(26541),r(43290),r(57327),r(69826),r(34553),r(84944),r(86535),r(89554),r(91038),r(26699),r(82772),r(79753),r(66992),r(69600),r(94986),r(21249),r(26572),r(85827),r(96644),r(65069),r(47042),r(5212),r(2707),r(38706),r(40561),r(33792),r(99244),r(18264),r(76938),r(39575),r(16716),r(3843),r(28733),r(5735),r(96078),r(83710),r(24812),r(4855),r(68309),r(35837),r(38862),r(73706),r(51532),r(99752),r(82376),r(73181),r(23484),r(2388),r(88621),r(60403),r(84755),r(25438),r(90332),r(40658),r(40197),r(44914),r(52420),r(60160),r(60970),r(10408),r(73689),r(9653),r(93299),r(35192),r(33161),r(44048),r(78285),r(44363),r(55994),r(61874),r(9494),r(56977),r(55147),r(19601),r(78011),r(59595),r(33321),r(69070),r(35500),r(69720),r(43371),r(38559),r(38880),r(49337),r(36210),r(30489),r(43304),r(41825),r(98410),r(72200),r(47941),r(94869),r(33952),r(57227),r(60514),r(68304),r(41539),r(26833),r(54678),r(91058),r(88674),r(17922),r(17727),r(36535),r(12419),r(69596),r(52586),r(74819),r(95683),r(39361),r(51037),r(5898),r(67556),r(14361),r(83593),r(39532),r(24603),r(74916),r(92087),r(88386),r(77601),r(39714),r(70189),r(79841),r(27852),r(94953),r(32023),r(78783),r(4723),r(76373),r(66528),r(83112),r(38992),r(82481),r(15306),r(64765),r(23123),r(23157),r(73210),r(48702),r(55674),r(15218),r(74475),r(57929),r(50915),r(29253),r(42125),r(78830),r(58734),r(29254),r(37268),r(7397),r(60086),r(80623),r(44197),r(76495),r(87145),r(35109),r(65125),r(82472),r(49743),r(8255),r(29135),r(92990),r(18927),r(33105),r(35035),r(74345),r(7174),r(32846),r(98145),r(44731),r(77209),r(96319),r(58867),r(37789),r(33739),r(95206),r(29368),r(14483),r(12056),r(3462),r(30678),r(27462),r(33824),r(55021),r(12974),r(15016),r(4129),r(38478),r(8628),r(8e4),r(83475),r(46273),r(66342),r(40787),r(23647),r(68216),r(88449),r(31672),r(74326),r(15581),r(78631),r(57640),r(25387),r(64211),r(12771),r(62962),r(51568),r(26349),r(2490),r(85567),r(5332),r(79433),r(59849),r(59461),r(82499),r(34514),r(26877),r(9924),r(72608),r(41874),r(66043),r(23748),r(10072),r(99137),r(71957),r(96306),r(103),r(8582),r(90618),r(74592),r(88440),r(58276),r(35082),r(12813),r(18222),r(24838),r(38563),r(50336),r(7512),r(74442),r(87713),r(46603),r(70100),r(10490),r(13187),r(60092),r(19041),r(30666),r(51638),r(62975),r(15728),r(46056),r(44299),r(5162),r(50292),r(99964),r(75238),r(4987),r(1025),r(96290),r(77479),r(34582),r(47896),r(12647),r(98558),r(84018),r(97507),r(61605),r(49076),r(34999),r(88921),r(96248),r(13599),r(11477),r(64362),r(15389),r(46006),r(90401),r(45164),r(91238),r(54837),r(87485),r(56767),r(69916),r(76651),r(61437),r(35285),r(39865),r(86035),r(67501),r(27207),r(609),r(21568),r(48824),r(44130),r(35954),r(78206),r(76478),r(79715),r(5964),r(43561),r(32049),r(86020),r(56585),r(54747),r(33948),r(84633),r(85844),r(32564),r(60285),r(83753),r(41637),r(86248),function(t){t.formPost="form_post",t.query="query",t.direct="direct"}(t||(t={}));const o="{{token}}",a="{{username}}",l="{{scope}}",c="{{clientID}}",s="{{clientSecret}}";var u;!function(t){t.ConfigData="config_data",t.OIDCProviderMetaData="oidc_provider_meta_data",t.SessionData="session_data",t.TemporaryData="temporary_data"}(u||(u={}));const d="refresh_token_timer",h="pkce_code_verifier",p="#",b=["RS256","RS512","RS384","PS256"],m="code",Z="session_state",g="sign_out_url",y="sign_out_success",f="state",I="openid";var v;!function(t){t.Include="include",t.SameOrigin="same-origin",t.Omit="omit"}(v||(v={}));class G{constructor(t,e,n){this.message=n,this.name=e,this.code=t,Object.setPrototypeOf(this,new.target.prototype)}}class X{constructor(){}static filterClaimsFromIDTokenPayload(t){const e=Object.assign({},t);null==e||delete e.iss,null==e||delete e.aud,null==e||delete e.exp,null==e||delete e.iat,null==e||delete e.acr,null==e||delete e.amr,null==e||delete e.azp,null==e||delete e.auth_time,null==e||delete e.nonce,null==e||delete e.c_hash,null==e||delete e.at_hash,null==e||delete e.nbf,null==e||delete e.isk,null==e||delete e.sid;const n={};return Object.entries(e).forEach((([t,e])=>{const r=t.split("_").map(((t,e)=>0===e?t:[t[0].toUpperCase(),...t.slice(1)].join(""))).join("");n[r]=e})),n}static getTokenRequestHeaders(){return{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded"}}static generateStateParamForRequestCorrelation(t,e){const n=parseInt(t.split("#")[1]);return e?`${e}_request_${n}`:`request_${n}`}static extractPKCEKeyFromStateParam(t){return`pkce_code_verifier#${parseInt(t.split("request_")[1])}`}}X.getTenantDomainFromIdTokenPayload=(t,e="@")=>{const n=t.sub.split(e);return n.length>2?n[n.length-1]:""};class V{constructor(t,e){this._dataLayer=t,this._config=()=>n(this,void 0,void 0,(function*(){return yield this._dataLayer.getConfigData()})),this._oidcProviderMetaData=()=>n(this,void 0,void 0,(function*(){return yield this._dataLayer.getOIDCProviderMetaData()})),this._cryptoHelper=e}resolveEndpoints(t){return n(this,void 0,void 0,(function*(){const e={},n=yield this._config();return n.endpoints&&Object.keys(n.endpoints).forEach((t=>{const r=t.replace(/[A-Z]/g,(t=>`_${t.toLowerCase()}`));e[r]=(null==n?void 0:n.endpoints)?n.endpoints[t]:""})),Object.assign(Object.assign({},t),e)}))}resolveEndpointsExplicitly(){return n(this,void 0,void 0,(function*(){const t={},e=yield this._config();if(!e.endpoints||!["authorization_endpoint","end_session_endpoint","jwks_uri","check_session_iframe","revocation_endpoint","token_endpoint","issuer","userinfo_endpoint"].every((t=>!!e.endpoints&&Object.keys(e.endpoints).some((e=>e.replace(/[A-Z]/g,(t=>`_${t.toLowerCase()}`))===t)))))throw new G("JS-AUTH_HELPER-REE-NF01","Required endpoints missing","Some or all of the required endpoints are missing in the object passed to the `endpoints` attribute of the`AuthConfig` object.");return e.endpoints&&Object.keys(e.endpoints).forEach((n=>{const r=n.replace(/[A-Z]/g,(t=>`_${t.toLowerCase()}`));t[r]=(null==e?void 0:e.endpoints)?e.endpoints[n]:""})),Object.assign({},t)}))}resolveEndpointsByBaseURL(){return n(this,void 0,void 0,(function*(){const t={},e=yield this._config(),n=e.baseUrl;if(!n)throw new G("JS-AUTH_HELPER_REBO-NF01","Base URL not defined.","Base URL is not defined in AuthClient config.");e.endpoints&&Object.keys(e.endpoints).forEach((n=>{const r=n.replace(/[A-Z]/g,(t=>`_${t.toLowerCase()}`));t[r]=(null==e?void 0:e.endpoints)?e.endpoints[n]:""}));const r={authorization_endpoint:`${n}/oauth2/authorize`,end_session_endpoint:`${n}/oidc/logout`,issuer:`${n}/oauth2/token`,jwks_uri:`${n}/oauth2/jwks`,check_session_iframe:`${n}/oidc/checksession`,revocation_endpoint:`${n}/oauth2/revoke`,token_endpoint:`${n}/oauth2/token`,userinfo_endpoint:`${n}/oauth2/userinfo`};return Object.assign(Object.assign({},r),t)}))}validateIdToken(t){var e;return n(this,void 0,void 0,(function*(){const n=(yield this._dataLayer.getOIDCProviderMetaData()).jwks_uri,r=yield this._config();if(!n||0===n.trim().length)throw new G("JS_AUTH_HELPER-VIT-NF01","JWKS endpoint not found.","No JWKS endpoint was found in the OIDC provider meta data returned by the well-known endpoint or the JWKS endpoint passed to the SDK is empty.");let i;try{i=yield fetch(n,{credentials:r.sendCookiesInRequests?v.Include:v.SameOrigin})}catch(n){throw new G("JS-AUTH_HELPER-VIT-NE02","Request to jwks endpoint failed.",null!=n?n:"The request sent to get the jwks from the server failed.")}if(200!==i.status||!i.ok)throw new G("JS-AUTH_HELPER-VIT-HE03",`Invalid response status received for jwks request (${i.statusText}).`,yield i.json());const o=(yield this._oidcProviderMetaData()).issuer,{keys:a}=yield i.json(),l=yield this._cryptoHelper.getJWKForTheIdToken(t.split(".")[0],a);return this._cryptoHelper.isValidIdToken(t,l,(yield this._config()).clientID,null!=o?o:"",this._cryptoHelper.decodeIDToken(t).sub,(yield this._config()).clockTolerance,null===(e=(yield this._config()).validateIDTokenIssuer)||void 0===e||e)}))}getAuthenticatedUserInfo(t){var e,n,r,i;const o=this._cryptoHelper.decodeIDToken(t),a=X.getTenantDomainFromIdTokenPayload(o),l=null!==(e=null==o?void 0:o.username)&&void 0!==e?e:"",c=null!==(n=o.given_name)&&void 0!==n?n:"",s=null!==(r=o.family_name)&&void 0!==r?r:"",u=c&&s?`${c} ${s}`:c||s||"",d=null!==(i=o.preferred_username)&&void 0!==i?i:u;return Object.assign({displayName:d,tenantDomain:a,username:l},X.filterClaimsFromIDTokenPayload(o))}replaceCustomGrantTemplateTags(t,e){var r;return n(this,void 0,void 0,(function*(){let n="openid";const i=yield this._config(),o=yield this._dataLayer.getSessionData(e);return i.scope&&i.scope.length>0&&(i.scope.includes("openid")||i.scope.push("openid"),n=i.scope.join(" ")),t.replace("{{token}}",o.access_token).replace("{{username}}",this.getAuthenticatedUserInfo(o.id_token).username).replace("{{scope}}",n).replace("{{clientID}}",i.clientID).replace("{{clientSecret}}",null!==(r=i.clientSecret)&&void 0!==r?r:"")}))}clearUserSessionData(t){return n(this,void 0,void 0,(function*(){yield this._dataLayer.removeTemporaryData(t),yield this._dataLayer.removeSessionData(t)}))}handleTokenResponse(t,e){return n(this,void 0,void 0,(function*(){if(200!==t.status||!t.ok)throw new G("JS-AUTH_HELPER-HTR-NE01",`Invalid response status received for token request (${t.statusText}).`,yield t.json());const r=yield t.json();if(r.created_at=(new Date).getTime(),(yield this._config()).validateIDToken)return this.validateIdToken(r.id_token).then((()=>n(this,void 0,void 0,(function*(){yield this._dataLayer.setSessionData(r,e);const t={accessToken:r.access_token,createdAt:r.created_at,expiresIn:r.expires_in,idToken:r.id_token,refreshToken:r.refresh_token,scope:r.scope,tokenType:r.token_type};return Promise.resolve(t)}))));{const t={accessToken:r.access_token,createdAt:r.created_at,expiresIn:r.expires_in,idToken:r.id_token,refreshToken:r.refresh_token,scope:r.scope,tokenType:r.token_type};return yield this._dataLayer.setSessionData(r,e),Promise.resolve(t)}}))}generatePKCEKey(t){var e;return n(this,void 0,void 0,(function*(){const n=yield this._dataLayer.getTemporaryData(t),r=[];Object.keys(n).forEach((t=>{t.startsWith("pkce_code_verifier")&&r.push(t)}));const i=r.sort().pop();return`pkce_code_verifier#${parseInt(null!==(e=null==i?void 0:i.split("#")[1])&&void 0!==e?e:"-1")+1}`}))}}class W{constructor(t){this._cryptoUtils=t}getCodeVerifier(){return this._cryptoUtils.base64URLEncode(this._cryptoUtils.generateRandomBytes(32))}getCodeChallenge(t){return this._cryptoUtils.base64URLEncode(this._cryptoUtils.hashSha256(t))}getJWKForTheIdToken(t,e){const n=JSON.parse(this._cryptoUtils.base64URLDecode(t));for(const t of e)if(n.kid===t.kid)return t;throw new G("JS-CRYPTO_UTIL-GJFTIT-IV01","kid not found.","Failed to find the 'kid' specified in the id_token. 'kid' found in the header : "+n.kid+", Expected values: "+e.map((t=>t.kid)).join(", "))}isValidIdToken(t,e,n,r,i,o,a){return this._cryptoUtils.verifyJwt(t,e,b,n,r,i,o,a).then((t=>t?Promise.resolve(!0):Promise.reject(new G("JS-CRYPTO_HELPER-IVIT-IV01","Invalid ID token.","ID token validation returned false"))))}decodeIDToken(t){try{const e=this._cryptoUtils.base64URLDecode(t.split(".")[1]);return JSON.parse(e)}catch(t){throw new G("JS-CRYPTO_UTIL-DIT-IV01","Decoding ID token failed.",t)}}}class S{constructor(t,e){this._cryptoUtils=e,this._cryptoHelper=new W(e),this._authenticationHelper=new V(t,this._cryptoHelper),this._dataLayer=t,this._config=()=>n(this,void 0,void 0,(function*(){return yield this._dataLayer.getConfigData()})),this._oidcProviderMetaData=()=>n(this,void 0,void 0,(function*(){return yield this._dataLayer.getOIDCProviderMetaData()}))}getAuthorizationURLParams(t,e){var r,i,o;return n(this,void 0,void 0,(function*(){const n=yield this._config(),a=new Map;a.set("response_type","code"),a.set("client_id",n.clientID),n.clientSecret&&n.clientSecret.trim().length>0&&a.set("client_secret",n.clientSecret);let l="openid";n.scope&&n.scope.length>0&&(n.scope.includes("openid")||n.scope.push("openid"),l=n.scope.join(" ")),a.set("scope",l),a.set("redirect_uri",n.signInRedirectURL),n.responseMode&&a.set("response_mode",n.responseMode);const c=yield this._authenticationHelper.generatePKCEKey(e);if(n.enablePKCE){const t=null===(r=this._cryptoHelper)||void 0===r?void 0:r.getCodeVerifier(),n=null===(i=this._cryptoHelper)||void 0===i?void 0:i.getCodeChallenge(t);yield this._dataLayer.setTemporaryDataParameter(c,t,e),a.set("code_challenge_method","S256"),a.set("code_challenge",n)}n.prompt&&a.set("prompt",n.prompt);const s=t;if(s)for(const[t,e]of Object.entries(s))""!=t&&""!=e&&"state"!==t&&a.set(t,e.toString());return a.set("state",X.generateStateParamForRequestCorrelation(c,s?null===(o=s.state)||void 0===o?void 0:o.toString():"")),a}))}getAuthorizationURL(t,e){return n(this,void 0,void 0,(function*(){const n=yield this._dataLayer.getOIDCProviderMetaDataParameter("authorization_endpoint");if(!n||0===n.trim().length)throw new G("JS-AUTH_CORE-GAU-NF01","No authorization endpoint found.","No authorization endpoint was found in the OIDC provider meta data from the well-known endpoint or the authorization endpoint passed to the SDK is empty.");const r=new URL(n),i=yield this.getAuthorizationURLParams(t,e);for(const[t,e]of i.entries())r.searchParams.append(t,e);return r.toString()}))}requestAccessToken(t,e,r,i,o){return n(this,void 0,void 0,(function*(){const n=(yield this._oidcProviderMetaData()).token_endpoint,a=yield this._config();if(!n||0===n.trim().length)throw new G("JS-AUTH_CORE-RAT1-NF01","Token endpoint not found.","No token endpoint was found in the OIDC provider meta data returned by the well-known endpoint or the token endpoint passed to the SDK is empty.");e&&(yield this._dataLayer.setSessionDataParameter("session_state",e,i));const l=new URLSearchParams;l.set("client_id",a.clientID),a.clientSecret&&a.clientSecret.trim().length>0&&l.set("client_secret",a.clientSecret);const c=t;let s;l.set("code",c),l.set("grant_type","authorization_code"),l.set("redirect_uri",a.signInRedirectURL),(null==o?void 0:o.params)&&Object.entries(o.params).forEach((([t,e])=>{l.append(t,e)})),a.enablePKCE&&(l.set("code_verifier",`${yield this._dataLayer.getTemporaryDataParameter(X.extractPKCEKeyFromStateParam(r),i)}`),yield this._dataLayer.removeTemporaryDataParameter(X.extractPKCEKeyFromStateParam(r),i));try{s=yield fetch(n,{body:l,credentials:a.sendCookiesInRequests?v.Include:v.SameOrigin,headers:new Headers(X.getTokenRequestHeaders()),method:"POST"})}catch(n){throw new G("JS-AUTH_CORE-RAT1-NE02","Requesting access token failed",null!=n?n:"The request to get the access token from the server failed.")}if(!s.ok)throw new G("JS-AUTH_CORE-RAT1-HE03",`Requesting access token failed with ${s.statusText}`,yield s.json());return yield this._authenticationHelper.handleTokenResponse(s,i)}))}refreshAccessToken(t){return n(this,void 0,void 0,(function*(){const e=(yield this._oidcProviderMetaData()).token_endpoint,n=yield this._config(),r=yield this._dataLayer.getSessionData(t);if(!r.refresh_token)throw new G("JS-AUTH_CORE-RAT2-NF01","No refresh token found.","There was no refresh token found. Asgardeo doesn't return a refresh token if the refresh token grant is not enabled.");if(!e||0===e.trim().length)throw new G("JS-AUTH_CORE-RAT2-NF02","No refresh token endpoint found.","No refresh token endpoint was in the OIDC provider meta data returned by the well-known endpoint or the refresh token endpoint passed to the SDK is empty.");const i=[];let o;i.push(`client_id=${n.clientID}`),i.push(`refresh_token=${r.refresh_token}`),i.push("grant_type=refresh_token"),n.clientSecret&&n.clientSecret.trim().length>0&&i.push(`client_secret=${n.clientSecret}`);try{o=yield fetch(e,{body:i.join("&"),credentials:n.sendCookiesInRequests?v.Include:v.SameOrigin,headers:new Headers(X.getTokenRequestHeaders()),method:"POST"})}catch(e){throw new G("JS-AUTH_CORE-RAT2-NR03","Refresh access token request failed.",null!=e?e:"The request to refresh the access token failed.")}if(!o.ok)throw new G("JS-AUTH_CORE-RAT2-HE04",`Refreshing access token failed with ${o.statusText}`,yield o.json());return this._authenticationHelper.handleTokenResponse(o,t)}))}revokeAccessToken(t){return n(this,void 0,void 0,(function*(){const e=(yield this._oidcProviderMetaData()).revocation_endpoint,n=yield this._config();if(!e||0===e.trim().length)throw new G("JS-AUTH_CORE-RAT3-NF01","No revoke access token endpoint found.","No revoke access token endpoint was found in the OIDC provider meta data returned by the well-known endpoint or the revoke access token endpoint passed to the SDK is empty.");const r=[];let i;r.push(`client_id=${n.clientID}`),r.push(`token=${(yield this._dataLayer.getSessionData(t)).access_token}`),r.push("token_type_hint=access_token");try{i=yield fetch(e,{body:r.join("&"),credentials:n.sendCookiesInRequests?v.Include:v.SameOrigin,headers:new Headers(X.getTokenRequestHeaders()),method:"POST"})}catch(e){throw new G("JS-AUTH_CORE-RAT3-NE02","The request to revoke access token failed.",null!=e?e:"The request sent to revoke the access token failed.")}if(200!==i.status||!i.ok)throw new G("JS-AUTH_CORE-RAT3-HE03",`Invalid response status received for revoke access token request (${i.statusText}).`,yield i.json());return this._authenticationHelper.clearUserSessionData(t),Promise.resolve(i)}))}requestCustomGrant(t,e){return n(this,void 0,void 0,(function*(){const r=yield this._oidcProviderMetaData(),i=yield this._config();let o;if(o=t.tokenEndpoint&&0!==t.tokenEndpoint.trim().length?t.tokenEndpoint:r.token_endpoint,!o||0===o.trim().length)throw new G("JS-AUTH_CORE-RCG-NF01","Token endpoint not found.","No token endpoint was found in the OIDC provider meta data returned by the well-known endpoint or the token endpoint passed to the SDK is empty.");const a=yield Promise.all(Object.entries(t.data).map((([t,r])=>n(this,void 0,void 0,(function*(){const n=yield this._authenticationHelper.replaceCustomGrantTemplateTags(r,e);return`${t}=${n}`})))));let l=Object.assign({},X.getTokenRequestHeaders());t.attachToken&&(l=Object.assign(Object.assign({},l),{Authorization:`Bearer ${(yield this._dataLayer.getSessionData(e)).access_token}`}));const c={body:a.join("&"),credentials:i.sendCookiesInRequests?v.Include:v.SameOrigin,headers:new Headers(l),method:"POST"};let s;try{s=yield fetch(o,c)}catch(t){throw new G("JS-AUTH_CORE-RCG-NE02","The custom grant request failed.",null!=t?t:"The request sent to get the custom grant failed.")}if(200!==s.status||!s.ok)throw new G("JS-AUTH_CORE-RCG-HE03",`Invalid response status received for the custom grant request. (${s.statusText})`,yield s.json());return t.returnsSession?this._authenticationHelper.handleTokenResponse(s,e):Promise.resolve(yield s.json())}))}getBasicUserInfo(t){return n(this,void 0,void 0,(function*(){const e=yield this._dataLayer.getSessionData(t),n=this._authenticationHelper.getAuthenticatedUserInfo(null==e?void 0:e.id_token);let r={allowedScopes:e.scope,sessionState:e.session_state};return Object.keys(n).forEach((t=>{void 0!==n[t]&&""!==n[t]&&null!==n[t]||delete n[t]})),r=Object.assign(Object.assign({},r),n),r}))}getDecodedIDToken(t){return n(this,void 0,void 0,(function*(){const e=(yield this._dataLayer.getSessionData(t)).id_token;return this._cryptoHelper.decodeIDToken(e)}))}getCryptoHelper(){return n(this,void 0,void 0,(function*(){return this._cryptoHelper}))}getIDToken(t){return n(this,void 0,void 0,(function*(){return(yield this._dataLayer.getSessionData(t)).id_token}))}getOIDCProviderMetaData(t){return n(this,void 0,void 0,(function*(){const e=yield this._config();if(!t&&(yield this._dataLayer.getTemporaryDataParameter("op_config_initiated")))return Promise.resolve();const n=e.wellKnownEndpoint;if(n){let t;try{if(t=yield fetch(n),200!==t.status||!t.ok)throw new Error}catch(e){throw new G("JS-AUTH_CORE-GOPMD-HE01","Invalid well-known response","The well known endpoint response has been failed with an error.")}return yield this._dataLayer.setOIDCProviderMetaData(yield this._authenticationHelper.resolveEndpoints(yield t.json())),yield this._dataLayer.setTemporaryDataParameter("op_config_initiated",!0),Promise.resolve()}if(e.baseUrl){try{yield this._dataLayer.setOIDCProviderMetaData(yield this._authenticationHelper.resolveEndpointsByBaseURL())}catch(e){throw new G("JS-AUTH_CORE-GOPMD-IV02","Resolving endpoints failed.",null!=e?e:"Resolving endpoints by base url failed.")}return yield this._dataLayer.setTemporaryDataParameter("op_config_initiated",!0),Promise.resolve()}return yield this._dataLayer.setOIDCProviderMetaData(yield this._authenticationHelper.resolveEndpointsExplicitly()),yield this._dataLayer.setTemporaryDataParameter("op_config_initiated",!0),Promise.resolve()}))}getOIDCServiceEndpoints(){var t,e,r,i,o,a,l,c,s,u;return n(this,void 0,void 0,(function*(){const n=yield this._oidcProviderMetaData();return{authorizationEndpoint:null!==(t=n.authorization_endpoint)&&void 0!==t?t:"",checkSessionIframe:null!==(e=n.check_session_iframe)&&void 0!==e?e:"",endSessionEndpoint:null!==(r=n.end_session_endpoint)&&void 0!==r?r:"",introspectionEndpoint:null!==(i=n.introspection_endpoint)&&void 0!==i?i:"",issuer:null!==(o=n.issuer)&&void 0!==o?o:"",jwksUri:null!==(a=n.jwks_uri)&&void 0!==a?a:"",registrationEndpoint:null!==(l=n.registration_endpoint)&&void 0!==l?l:"",revocationEndpoint:null!==(c=n.revocation_endpoint)&&void 0!==c?c:"",tokenEndpoint:null!==(s=n.token_endpoint)&&void 0!==s?s:"",userinfoEndpoint:null!==(u=n.userinfo_endpoint)&&void 0!==u?u:""}}))}getSignOutURL(t){var e,r,i;return n(this,void 0,void 0,(function*(){const n=null===(e=yield this._oidcProviderMetaData())||void 0===e?void 0:e.end_session_endpoint,o=yield this._config();if(!n||0===n.trim().length)throw new G("JS-AUTH_CORE-GSOU-NF01","Sign-out endpoint not found.","No sign-out endpoint was found in the OIDC provider meta data returned by the well-known endpoint or the sign-out endpoint passed to the SDK is empty.");const a=null!==(r=null==o?void 0:o.signOutRedirectURL)&&void 0!==r?r:null==o?void 0:o.signInRedirectURL;if(!a||0===a.trim().length)throw new G("JS-AUTH_CORE-GSOU-NF03","No sign-out redirect URL found.","The sign-out redirect URL cannot be found or the URL passed to the SDK is empty. No sign-in redirect URL has been found either. ");const l=new URLSearchParams;if(l.set("post_logout_redirect_uri",a),o.sendIdTokenInLogoutRequest){const e=null===(i=yield this._dataLayer.getSessionData(t))||void 0===i?void 0:i.id_token;if(!e||0===e.trim().length)throw new G("JS-AUTH_CORE-GSOU-NF02","ID token not found.","No ID token could be found. Either the session information is lost or you have not signed in.");l.set("id_token_hint",e)}else l.set("client_id",o.clientID);return l.set("state","sign_out_success"),`${n}?${l.toString()}`}))}clearUserSessionData(t){return n(this,void 0,void 0,(function*(){yield this._authenticationHelper.clearUserSessionData(t)}))}getAccessToken(t){var e;return n(this,void 0,void 0,(function*(){return null===(e=yield this._dataLayer.getSessionData(t))||void 0===e?void 0:e.access_token}))}getCreatedAt(t){var e;return n(this,void 0,void 0,(function*(){return null===(e=yield this._dataLayer.getSessionData(t))||void 0===e?void 0:e.created_at}))}getExpiresIn(t){var e;return n(this,void 0,void 0,(function*(){return null===(e=yield this._dataLayer.getSessionData(t))||void 0===e?void 0:e.expires_in}))}isAuthenticated(t){return n(this,void 0,void 0,(function*(){const e=Boolean(yield this.getAccessToken(t)),n=yield this.getCreatedAt(t),r=yield this.getExpiresIn(t);if(!r)return!1;const i=1e3*parseInt(r),o=(new Date).getTime();return e&&n+i>o}))}getPKCECode(t,e){return n(this,void 0,void 0,(function*(){return yield this._dataLayer.getTemporaryDataParameter(X.extractPKCEKeyFromStateParam(t),e)}))}setPKCECode(t,e,r){return n(this,void 0,void 0,(function*(){return yield this._dataLayer.setTemporaryDataParameter(X.extractPKCEKeyFromStateParam(e),t,r)}))}updateConfig(t){return n(this,void 0,void 0,(function*(){yield this._dataLayer.setConfigData(t),yield this.getOIDCProviderMetaData(!0)}))}}const R="asgardeo-session-active";class C{constructor(t,e){this._id=t,this._store=e}setDataInBulk(t,e){var r;return n(this,void 0,void 0,(function*(){const n=null!==(r=yield this._store.getData(t))&&void 0!==r?r:null,i=n&&JSON.parse(n),o=Object.assign(Object.assign({},i),e),a=JSON.stringify(o);yield this._store.setData(t,a)}))}setValue(t,e,r){var i;return n(this,void 0,void 0,(function*(){const n=null!==(i=yield this._store.getData(t))&&void 0!==i?i:null,o=n&&JSON.parse(n),a=Object.assign(Object.assign({},o),{[e]:r}),l=JSON.stringify(a);yield this._store.setData(t,l)}))}removeValue(t,e){var r;return n(this,void 0,void 0,(function*(){const n=null!==(r=yield this._store.getData(t))&&void 0!==r?r:null,i=n&&JSON.parse(n),o=Object.assign({},i);delete o[e];const a=JSON.stringify(o);yield this._store.setData(t,a)}))}_resolveKey(t,e){return e?`${t}-${this._id}-${e}`:`${t}-${this._id}`}isLocalStorageAvailable(){try{const t="__ASGARDEO_AUTH_CORE_LOCAL_STORAGE_TEST__";return localStorage.setItem(t,t),localStorage.removeItem(t),!0}catch(t){return!1}}setConfigData(t){return n(this,void 0,void 0,(function*(){yield this.setDataInBulk(this._resolveKey(u.ConfigData),t)}))}setOIDCProviderMetaData(t){return n(this,void 0,void 0,(function*(){this.setDataInBulk(this._resolveKey(u.OIDCProviderMetaData),t)}))}setTemporaryData(t,e){return n(this,void 0,void 0,(function*(){this.setDataInBulk(this._resolveKey(u.TemporaryData,e),t)}))}setSessionData(t,e){return n(this,void 0,void 0,(function*(){this.setDataInBulk(this._resolveKey(u.SessionData,e),t)}))}setCustomData(t,e,r){return n(this,void 0,void 0,(function*(){this.setDataInBulk(this._resolveKey(t,r),e)}))}getConfigData(){var t;return n(this,void 0,void 0,(function*(){return JSON.parse(null!==(t=yield this._store.getData(this._resolveKey(u.ConfigData)))&&void 0!==t?t:null)}))}getOIDCProviderMetaData(){var t;return n(this,void 0,void 0,(function*(){return JSON.parse(null!==(t=yield this._store.getData(this._resolveKey(u.OIDCProviderMetaData)))&&void 0!==t?t:null)}))}getTemporaryData(t){var e;return n(this,void 0,void 0,(function*(){return JSON.parse(null!==(e=yield this._store.getData(this._resolveKey(u.TemporaryData,t)))&&void 0!==e?e:null)}))}getSessionData(t){var e;return n(this,void 0,void 0,(function*(){return JSON.parse(null!==(e=yield this._store.getData(this._resolveKey(u.SessionData,t)))&&void 0!==e?e:null)}))}getCustomData(t,e){var r;return n(this,void 0,void 0,(function*(){return JSON.parse(null!==(r=yield this._store.getData(this._resolveKey(t,e)))&&void 0!==r?r:null)}))}setSessionStatus(t){this.isLocalStorageAvailable()&&localStorage.setItem("asgardeo-session-active",t)}getSessionStatus(){var t;return this.isLocalStorageAvailable()&&null!==(t=localStorage.getItem("asgardeo-session-active"))&&void 0!==t?t:""}removeSessionStatus(){this.isLocalStorageAvailable()&&localStorage.removeItem("asgardeo-session-active")}removeConfigData(){return n(this,void 0,void 0,(function*(){yield this._store.removeData(this._resolveKey(u.ConfigData))}))}removeOIDCProviderMetaData(){return n(this,void 0,void 0,(function*(){yield this._store.removeData(this._resolveKey(u.OIDCProviderMetaData))}))}removeTemporaryData(t){return n(this,void 0,void 0,(function*(){yield this._store.removeData(this._resolveKey(u.TemporaryData,t))}))}removeSessionData(t){return n(this,void 0,void 0,(function*(){yield this._store.removeData(this._resolveKey(u.SessionData,t))}))}getConfigDataParameter(t){return n(this,void 0,void 0,(function*(){const e=yield this._store.getData(this._resolveKey(u.ConfigData));return e&&JSON.parse(e)[t]}))}getOIDCProviderMetaDataParameter(t){return n(this,void 0,void 0,(function*(){const e=yield this._store.getData(this._resolveKey(u.OIDCProviderMetaData));return e&&JSON.parse(e)[t]}))}getTemporaryDataParameter(t,e){return n(this,void 0,void 0,(function*(){const n=yield this._store.getData(this._resolveKey(u.TemporaryData,e));return n&&JSON.parse(n)[t]}))}getSessionDataParameter(t,e){return n(this,void 0,void 0,(function*(){const n=yield this._store.getData(this._resolveKey(u.SessionData,e));return n&&JSON.parse(n)[t]}))}setConfigDataParameter(t,e){return n(this,void 0,void 0,(function*(){yield this.setValue(this._resolveKey(u.ConfigData),t,e)}))}setOIDCProviderMetaDataParameter(t,e){return n(this,void 0,void 0,(function*(){yield this.setValue(this._resolveKey(u.OIDCProviderMetaData),t,e)}))}setTemporaryDataParameter(t,e,r){return n(this,void 0,void 0,(function*(){yield this.setValue(this._resolveKey(u.TemporaryData,r),t,e)}))}setSessionDataParameter(t,e,r){return n(this,void 0,void 0,(function*(){yield this.setValue(this._resolveKey(u.SessionData,r),t,e)}))}removeConfigDataParameter(t){return n(this,void 0,void 0,(function*(){yield this.removeValue(this._resolveKey(u.ConfigData),t)}))}removeOIDCProviderMetaDataParameter(t){return n(this,void 0,void 0,(function*(){yield this.removeValue(this._resolveKey(u.OIDCProviderMetaData),t)}))}removeTemporaryDataParameter(t,e){return n(this,void 0,void 0,(function*(){yield this.removeValue(this._resolveKey(u.TemporaryData,e),t)}))}removeSessionDataParameter(t,e){return n(this,void 0,void 0,(function*(){yield this.removeValue(this._resolveKey(u.SessionData,e),t)}))}}const Y={clockTolerance:300,enablePKCE:!0,responseMode:t.query,scope:["openid"],sendCookiesInRequests:!0,validateIDToken:!0,validateIDTokenIssuer:!0};class N{constructor(){}initialize(t,e,r,i){var o,a,l;return n(this,void 0,void 0,(function*(){const n=t.clientID;N._instanceID?N._instanceID+=1:N._instanceID=0,i&&(N._instanceID=i),this._dataLayer=new C(n?`instance_${N._instanceID}-${n}`:`instance_${N._instanceID}`,e),this._authenticationCore=new S(this._dataLayer,r),N._authenticationCore=new S(this._dataLayer,r),yield this._dataLayer.setConfigData(Object.assign(Object.assign(Object.assign({},Y),t),{scope:[...null!==(o=Y.scope)&&void 0!==o?o:[],...null!==(l=null===(a=t.scope)||void 0===a?void 0:a.filter((t=>{var e;return!(null===(e=null==Y?void 0:Y.scope)||void 0===e?void 0:e.includes(t))})))&&void 0!==l?l:[]]}))}))}getDataLayer(){return this._dataLayer}getInstanceID(){return N._instanceID}getAuthorizationURLParams(t,e){return n(this,void 0,void 0,(function*(){const n=Object.assign({},t);return null==n||delete n.forceInit,(yield this._dataLayer.getTemporaryDataParameter("op_config_initiated"))?this._authenticationCore.getAuthorizationURLParams(n,e):this._authenticationCore.getOIDCProviderMetaData(null==t?void 0:t.forceInit).then((()=>this._authenticationCore.getAuthorizationURLParams(n,e)))}))}getAuthorizationURL(t,e){return n(this,void 0,void 0,(function*(){const n=Object.assign({},t);return null==n||delete n.forceInit,(yield this._dataLayer.getTemporaryDataParameter("op_config_initiated"))?this._authenticationCore.getAuthorizationURL(n,e):this._authenticationCore.getOIDCProviderMetaData(null==t?void 0:t.forceInit).then((()=>this._authenticationCore.getAuthorizationURL(n,e)))}))}requestAccessToken(t,e,r,i,o){return n(this,void 0,void 0,(function*(){return(yield this._dataLayer.getTemporaryDataParameter("op_config_initiated"))?this._authenticationCore.requestAccessToken(t,e,r,i,o):this._authenticationCore.getOIDCProviderMetaData(!1).then((()=>this._authenticationCore.requestAccessToken(t,e,r,i,o)))}))}getSignOutURL(t){return n(this,void 0,void 0,(function*(){return this._authenticationCore.getSignOutURL(t)}))}getOIDCServiceEndpoints(){return n(this,void 0,void 0,(function*(){return this._authenticationCore.getOIDCServiceEndpoints()}))}getDecodedIDToken(t){return n(this,void 0,void 0,(function*(){return this._authenticationCore.getDecodedIDToken(t)}))}getIDToken(t){return n(this,void 0,void 0,(function*(){return this._authenticationCore.getIDToken(t)}))}getBasicUserInfo(t){return n(this,void 0,void 0,(function*(){return this._authenticationCore.getBasicUserInfo(t)}))}getCryptoHelper(){return n(this,void 0,void 0,(function*(){return this._authenticationCore.getCryptoHelper()}))}revokeAccessToken(t){return this._authenticationCore.revokeAccessToken(t)}refreshAccessToken(t){return this._authenticationCore.refreshAccessToken(t)}getAccessToken(t){return n(this,void 0,void 0,(function*(){return this._authenticationCore.getAccessToken(t)}))}requestCustomGrant(t,e){return this._authenticationCore.requestCustomGrant(t,e)}isAuthenticated(t){return n(this,void 0,void 0,(function*(){return this._authenticationCore.isAuthenticated(t)}))}getPKCECode(t,e){return n(this,void 0,void 0,(function*(){return this._authenticationCore.getPKCECode(t,e)}))}setPKCECode(t,e,r){return n(this,void 0,void 0,(function*(){yield this._authenticationCore.setPKCECode(t,e,r)}))}static isSignOutSuccessful(t){const e=new URL(t),n=e.searchParams.get("state"),r=Boolean(e.searchParams.get("error"));return!!n&&"sign_out_success"===n&&!r}static didSignOutFail(t){const e=new URL(t),n=e.searchParams.get("state"),r=Boolean(e.searchParams.get("error"));return!!n&&"sign_out_success"===n&&r}updateConfig(t){return n(this,void 0,void 0,(function*(){yield this._authenticationCore.updateConfig(t)}))}static clearUserSessionData(t){return n(this,void 0,void 0,(function*(){yield this._authenticationCore.clearUserSessionData(t)}))}}var K,k=function(t){return K=K||function(t,e,n){var r=function(t,e){var n=atob(t);return n}("Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwp2YXIgd29ya2VyX2NvZGU9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZShlLHQscixuKXtyZXR1cm4gbmV3KHJ8fChyPVByb21pc2UpKSgoZnVuY3Rpb24oaSxvKXtmdW5jdGlvbiBzKGUpe3RyeXtjKG4ubmV4dChlKSl9Y2F0Y2goZSl7byhlKX19ZnVuY3Rpb24gYShlKXt0cnl7YyhuLnRocm93KGUpKX1jYXRjaChlKXtvKGUpfX1mdW5jdGlvbiBjKGUpe3ZhciB0O2UuZG9uZT9pKGUudmFsdWUpOih0PWUudmFsdWUsdCBpbnN0YW5jZW9mIHI/dDpuZXcgcigoZnVuY3Rpb24oZSl7ZSh0KX0pKSkudGhlbihzLGEpfWMoKG49bi5hcHBseShlLHR8fFtdKSkubmV4dCgpKX0pKX1mdW5jdGlvbiB0KGUsdCxyLG4pe3JldHVybiBuZXcocnx8KHI9UHJvbWlzZSkpKChmdW5jdGlvbihpLG8pe2Z1bmN0aW9uIHMoZSl7dHJ5e2Mobi5uZXh0KGUpKX1jYXRjaChlKXtvKGUpfX1mdW5jdGlvbiBhKGUpe3RyeXtjKG4udGhyb3coZSkpfWNhdGNoKGUpe28oZSl9fWZ1bmN0aW9uIGMoZSl7dmFyIHQ7ZS5kb25lP2koZS52YWx1ZSk6KHQ9ZS52YWx1ZSx0IGluc3RhbmNlb2Ygcj90Om5ldyByKChmdW5jdGlvbihlKXtlKHQpfSkpKS50aGVuKHMsYSl9Yygobj1uLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSkpfXZhciByOyFmdW5jdGlvbihlKXtlLmZvcm1Qb3N0PSJmb3JtX3Bvc3QiLGUucXVlcnk9InF1ZXJ5IixlLmRpcmVjdD0iZGlyZWN0In0ocnx8KHI9e30pKTt2YXIgbjshZnVuY3Rpb24oZSl7ZS5Db25maWdEYXRhPSJjb25maWdfZGF0YSIsZS5PSURDUHJvdmlkZXJNZXRhRGF0YT0ib2lkY19wcm92aWRlcl9tZXRhX2RhdGEiLGUuU2Vzc2lvbkRhdGE9InNlc3Npb25fZGF0YSIsZS5UZW1wb3JhcnlEYXRhPSJ0ZW1wb3JhcnlfZGF0YSJ9KG58fChuPXt9KSk7Y29uc3QgaT0icmVmcmVzaF90b2tlbl90aW1lciIsbz1bIlJTMjU2IiwiUlM1MTIiLCJSUzM4NCIsIlBTMjU2Il0scz0ic2lnbl9vdXRfdXJsIjt2YXIgYTshZnVuY3Rpb24oZSl7ZS5JbmNsdWRlPSJpbmNsdWRlIixlLlNhbWVPcmlnaW49InNhbWUtb3JpZ2luIixlLk9taXQ9Im9taXQifShhfHwoYT17fSkpO2NsYXNzIGN7Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMubWVzc2FnZT1yLHRoaXMubmFtZT10LHRoaXMuY29kZT1lLE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLG5ldy50YXJnZXQucHJvdG90eXBlKX19Y2xhc3MgdXtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZmlsdGVyQ2xhaW1zRnJvbUlEVG9rZW5QYXlsb2FkKGUpe2NvbnN0IHQ9T2JqZWN0LmFzc2lnbih7fSxlKTtudWxsPT10fHxkZWxldGUgdC5pc3MsbnVsbD09dHx8ZGVsZXRlIHQuYXVkLG51bGw9PXR8fGRlbGV0ZSB0LmV4cCxudWxsPT10fHxkZWxldGUgdC5pYXQsbnVsbD09dHx8ZGVsZXRlIHQuYWNyLG51bGw9PXR8fGRlbGV0ZSB0LmFtcixudWxsPT10fHxkZWxldGUgdC5henAsbnVsbD09dHx8ZGVsZXRlIHQuYXV0aF90aW1lLG51bGw9PXR8fGRlbGV0ZSB0Lm5vbmNlLG51bGw9PXR8fGRlbGV0ZSB0LmNfaGFzaCxudWxsPT10fHxkZWxldGUgdC5hdF9oYXNoLG51bGw9PXR8fGRlbGV0ZSB0Lm5iZixudWxsPT10fHxkZWxldGUgdC5pc2ssbnVsbD09dHx8ZGVsZXRlIHQuc2lkO2NvbnN0IHI9e307cmV0dXJuIE9iamVjdC5lbnRyaWVzKHQpLmZvckVhY2goKChbZSx0XSk9Pntjb25zdCBuPWUuc3BsaXQoIl8iKS5tYXAoKChlLHQpPT4wPT09dD9lOltlWzBdLnRvVXBwZXJDYXNlKCksLi4uZS5zbGljZSgxKV0uam9pbigiIikpKS5qb2luKCIiKTtyW25dPXR9KSkscn1zdGF0aWMgZ2V0VG9rZW5SZXF1ZXN0SGVhZGVycygpe3JldHVybntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLCJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifX1zdGF0aWMgZ2VuZXJhdGVTdGF0ZVBhcmFtRm9yUmVxdWVzdENvcnJlbGF0aW9uKGUsdCl7Y29uc3Qgcj1wYXJzZUludChlLnNwbGl0KCIjIilbMV0pO3JldHVybiB0P2Ake3R9X3JlcXVlc3RfJHtyfWA6YHJlcXVlc3RfJHtyfWB9c3RhdGljIGV4dHJhY3RQS0NFS2V5RnJvbVN0YXRlUGFyYW0oZSl7cmV0dXJuYHBrY2VfY29kZV92ZXJpZmllciMke3BhcnNlSW50KGUuc3BsaXQoInJlcXVlc3RfIilbMV0pfWB9fXUuZ2V0VGVuYW50RG9tYWluRnJvbUlkVG9rZW5QYXlsb2FkPShlLHQ9IkAiKT0+e2NvbnN0IHI9ZS5zdWIuc3BsaXQodCk7cmV0dXJuIHIubGVuZ3RoPjI/cltyLmxlbmd0aC0xXToiIn07Y2xhc3MgbHtjb25zdHJ1Y3RvcihlLHIpe3RoaXMuX2RhdGFMYXllcj1lLHRoaXMuX2NvbmZpZz0oKT0+dCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0Q29uZmlnRGF0YSgpfSkpLHRoaXMuX29pZGNQcm92aWRlck1ldGFEYXRhPSgpPT50KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHlpZWxkIHRoaXMuX2RhdGFMYXllci5nZXRPSURDUHJvdmlkZXJNZXRhRGF0YSgpfSkpLHRoaXMuX2NyeXB0b0hlbHBlcj1yfXJlc29sdmVFbmRwb2ludHMoZSl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCB0PXt9LHI9eWllbGQgdGhpcy5fY29uZmlnKCk7cmV0dXJuIHIuZW5kcG9pbnRzJiZPYmplY3Qua2V5cyhyLmVuZHBvaW50cykuZm9yRWFjaCgoZT0+e2NvbnN0IG49ZS5yZXBsYWNlKC9bQS1aXS9nLChlPT5gXyR7ZS50b0xvd2VyQ2FzZSgpfWApKTt0W25dPShudWxsPT1yP3ZvaWQgMDpyLmVuZHBvaW50cyk/ci5lbmRwb2ludHNbZV06IiJ9KSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHQpfSkpfXJlc29sdmVFbmRwb2ludHNFeHBsaWNpdGx5KCl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCBlPXt9LHQ9eWllbGQgdGhpcy5fY29uZmlnKCk7aWYoIXQuZW5kcG9pbnRzfHwhWyJhdXRob3JpemF0aW9uX2VuZHBvaW50IiwiZW5kX3Nlc3Npb25fZW5kcG9pbnQiLCJqd2tzX3VyaSIsImNoZWNrX3Nlc3Npb25faWZyYW1lIiwicmV2b2NhdGlvbl9lbmRwb2ludCIsInRva2VuX2VuZHBvaW50IiwiaXNzdWVyIiwidXNlcmluZm9fZW5kcG9pbnQiXS5ldmVyeSgoZT0+ISF0LmVuZHBvaW50cyYmT2JqZWN0LmtleXModC5lbmRwb2ludHMpLnNvbWUoKHQ9PnQucmVwbGFjZSgvW0EtWl0vZywoZT0+YF8ke2UudG9Mb3dlckNhc2UoKX1gKSk9PT1lKSkpKSl0aHJvdyBuZXcgYygiSlMtQVVUSF9IRUxQRVItUkVFLU5GMDEiLCJSZXF1aXJlZCBlbmRwb2ludHMgbWlzc2luZyIsIlNvbWUgb3IgYWxsIG9mIHRoZSByZXF1aXJlZCBlbmRwb2ludHMgYXJlIG1pc3NpbmcgaW4gdGhlIG9iamVjdCBwYXNzZWQgdG8gdGhlIGBlbmRwb2ludHNgIGF0dHJpYnV0ZSBvZiB0aGVgQXV0aENvbmZpZ2Agb2JqZWN0LiIpO3JldHVybiB0LmVuZHBvaW50cyYmT2JqZWN0LmtleXModC5lbmRwb2ludHMpLmZvckVhY2goKHI9Pntjb25zdCBuPXIucmVwbGFjZSgvW0EtWl0vZywoZT0+YF8ke2UudG9Mb3dlckNhc2UoKX1gKSk7ZVtuXT0obnVsbD09dD92b2lkIDA6dC5lbmRwb2ludHMpP3QuZW5kcG9pbnRzW3JdOiIifSkpLE9iamVjdC5hc3NpZ24oe30sZSl9KSl9cmVzb2x2ZUVuZHBvaW50c0J5QmFzZVVSTCgpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgZT17fSx0PXlpZWxkIHRoaXMuX2NvbmZpZygpLHI9dC5iYXNlVXJsO2lmKCFyKXRocm93IG5ldyBjKCJKUy1BVVRIX0hFTFBFUl9SRUJPLU5GMDEiLCJCYXNlIFVSTCBub3QgZGVmaW5lZC4iLCJCYXNlIFVSTCBpcyBub3QgZGVmaW5lZCBpbiBBdXRoQ2xpZW50IGNvbmZpZy4iKTt0LmVuZHBvaW50cyYmT2JqZWN0LmtleXModC5lbmRwb2ludHMpLmZvckVhY2goKHI9Pntjb25zdCBuPXIucmVwbGFjZSgvW0EtWl0vZywoZT0+YF8ke2UudG9Mb3dlckNhc2UoKX1gKSk7ZVtuXT0obnVsbD09dD92b2lkIDA6dC5lbmRwb2ludHMpP3QuZW5kcG9pbnRzW3JdOiIifSkpO2NvbnN0IG49e2F1dGhvcml6YXRpb25fZW5kcG9pbnQ6YCR7cn0vb2F1dGgyL2F1dGhvcml6ZWAsZW5kX3Nlc3Npb25fZW5kcG9pbnQ6YCR7cn0vb2lkYy9sb2dvdXRgLGlzc3VlcjpgJHtyfS9vYXV0aDIvdG9rZW5gLGp3a3NfdXJpOmAke3J9L29hdXRoMi9qd2tzYCxjaGVja19zZXNzaW9uX2lmcmFtZTpgJHtyfS9vaWRjL2NoZWNrc2Vzc2lvbmAscmV2b2NhdGlvbl9lbmRwb2ludDpgJHtyfS9vYXV0aDIvcmV2b2tlYCx0b2tlbl9lbmRwb2ludDpgJHtyfS9vYXV0aDIvdG9rZW5gLHVzZXJpbmZvX2VuZHBvaW50OmAke3J9L29hdXRoMi91c2VyaW5mb2B9O3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbiksZSl9KSl9dmFsaWRhdGVJZFRva2VuKGUpe3ZhciByO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD0oeWllbGQgdGhpcy5fZGF0YUxheWVyLmdldE9JRENQcm92aWRlck1ldGFEYXRhKCkpLmp3a3NfdXJpLG49eWllbGQgdGhpcy5fY29uZmlnKCk7aWYoIXR8fDA9PT10LnRyaW0oKS5sZW5ndGgpdGhyb3cgbmV3IGMoIkpTX0FVVEhfSEVMUEVSLVZJVC1ORjAxIiwiSldLUyBlbmRwb2ludCBub3QgZm91bmQuIiwiTm8gSldLUyBlbmRwb2ludCB3YXMgZm91bmQgaW4gdGhlIE9JREMgcHJvdmlkZXIgbWV0YSBkYXRhIHJldHVybmVkIGJ5IHRoZSB3ZWxsLWtub3duIGVuZHBvaW50IG9yIHRoZSBKV0tTIGVuZHBvaW50IHBhc3NlZCB0byB0aGUgU0RLIGlzIGVtcHR5LiIpO2xldCBpO3RyeXtpPXlpZWxkIGZldGNoKHQse2NyZWRlbnRpYWxzOm4uc2VuZENvb2tpZXNJblJlcXVlc3RzP2EuSW5jbHVkZTphLlNhbWVPcmlnaW59KX1jYXRjaCh0KXt0aHJvdyBuZXcgYygiSlMtQVVUSF9IRUxQRVItVklULU5FMDIiLCJSZXF1ZXN0IHRvIGp3a3MgZW5kcG9pbnQgZmFpbGVkLiIsbnVsbCE9dD90OiJUaGUgcmVxdWVzdCBzZW50IHRvIGdldCB0aGUgandrcyBmcm9tIHRoZSBzZXJ2ZXIgZmFpbGVkLiIpfWlmKDIwMCE9PWkuc3RhdHVzfHwhaS5vayl0aHJvdyBuZXcgYygiSlMtQVVUSF9IRUxQRVItVklULUhFMDMiLGBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cyByZWNlaXZlZCBmb3IgandrcyByZXF1ZXN0ICgke2kuc3RhdHVzVGV4dH0pLmAseWllbGQgaS5qc29uKCkpO2NvbnN0IG89KHlpZWxkIHRoaXMuX29pZGNQcm92aWRlck1ldGFEYXRhKCkpLmlzc3Vlcix7a2V5czpzfT15aWVsZCBpLmpzb24oKSx1PXlpZWxkIHRoaXMuX2NyeXB0b0hlbHBlci5nZXRKV0tGb3JUaGVJZFRva2VuKGUuc3BsaXQoIi4iKVswXSxzKTtyZXR1cm4gdGhpcy5fY3J5cHRvSGVscGVyLmlzVmFsaWRJZFRva2VuKGUsdSwoeWllbGQgdGhpcy5fY29uZmlnKCkpLmNsaWVudElELG51bGwhPW8/bzoiIix0aGlzLl9jcnlwdG9IZWxwZXIuZGVjb2RlSURUb2tlbihlKS5zdWIsKHlpZWxkIHRoaXMuX2NvbmZpZygpKS5jbG9ja1RvbGVyYW5jZSxudWxsPT09KHI9KHlpZWxkIHRoaXMuX2NvbmZpZygpKS52YWxpZGF0ZUlEVG9rZW5Jc3N1ZXIpfHx2b2lkIDA9PT1yfHxyKX0pKX1nZXRBdXRoZW50aWNhdGVkVXNlckluZm8oZSl7dmFyIHQscixuLGk7Y29uc3Qgbz10aGlzLl9jcnlwdG9IZWxwZXIuZGVjb2RlSURUb2tlbihlKSxzPXUuZ2V0VGVuYW50RG9tYWluRnJvbUlkVG9rZW5QYXlsb2FkKG8pLGE9bnVsbCE9PSh0PW51bGw9PW8/dm9pZCAwOm8udXNlcm5hbWUpJiZ2b2lkIDAhPT10P3Q6IiIsYz1udWxsIT09KHI9by5naXZlbl9uYW1lKSYmdm9pZCAwIT09cj9yOiIiLGw9bnVsbCE9PShuPW8uZmFtaWx5X25hbWUpJiZ2b2lkIDAhPT1uP246IiIsZD1jJiZsP2Ake2N9ICR7bH1gOmN8fGx8fCIiLGg9bnVsbCE9PShpPW8ucHJlZmVycmVkX3VzZXJuYW1lKSYmdm9pZCAwIT09aT9pOmQ7cmV0dXJuIE9iamVjdC5hc3NpZ24oe2Rpc3BsYXlOYW1lOmgsdGVuYW50RG9tYWluOnMsdXNlcm5hbWU6YX0sdS5maWx0ZXJDbGFpbXNGcm9tSURUb2tlblBheWxvYWQobykpfXJlcGxhY2VDdXN0b21HcmFudFRlbXBsYXRlVGFncyhlLHIpe3ZhciBuO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7bGV0IHQ9Im9wZW5pZCI7Y29uc3QgaT15aWVsZCB0aGlzLl9jb25maWcoKSxvPXlpZWxkIHRoaXMuX2RhdGFMYXllci5nZXRTZXNzaW9uRGF0YShyKTtyZXR1cm4gaS5zY29wZSYmaS5zY29wZS5sZW5ndGg+MCYmKGkuc2NvcGUuaW5jbHVkZXMoIm9wZW5pZCIpfHxpLnNjb3BlLnB1c2goIm9wZW5pZCIpLHQ9aS5zY29wZS5qb2luKCIgIikpLGUucmVwbGFjZSgie3t0b2tlbn19IixvLmFjY2Vzc190b2tlbikucmVwbGFjZSgie3t1c2VybmFtZX19Iix0aGlzLmdldEF1dGhlbnRpY2F0ZWRVc2VySW5mbyhvLmlkX3Rva2VuKS51c2VybmFtZSkucmVwbGFjZSgie3tzY29wZX19Iix0KS5yZXBsYWNlKCJ7e2NsaWVudElEfX0iLGkuY2xpZW50SUQpLnJlcGxhY2UoInt7Y2xpZW50U2VjcmV0fX0iLG51bGwhPT0obj1pLmNsaWVudFNlY3JldCkmJnZvaWQgMCE9PW4/bjoiIil9KSl9Y2xlYXJVc2VyU2Vzc2lvbkRhdGEoZSl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt5aWVsZCB0aGlzLl9kYXRhTGF5ZXIucmVtb3ZlVGVtcG9yYXJ5RGF0YShlKSx5aWVsZCB0aGlzLl9kYXRhTGF5ZXIucmVtb3ZlU2Vzc2lvbkRhdGEoZSl9KSl9aGFuZGxlVG9rZW5SZXNwb25zZShlLHIpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7aWYoMjAwIT09ZS5zdGF0dXN8fCFlLm9rKXRocm93IG5ldyBjKCJKUy1BVVRIX0hFTFBFUi1IVFItTkUwMSIsYEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzIHJlY2VpdmVkIGZvciB0b2tlbiByZXF1ZXN0ICgke2Uuc3RhdHVzVGV4dH0pLmAseWllbGQgZS5qc29uKCkpO2NvbnN0IG49eWllbGQgZS5qc29uKCk7aWYobi5jcmVhdGVkX2F0PShuZXcgRGF0ZSkuZ2V0VGltZSgpLCh5aWVsZCB0aGlzLl9jb25maWcoKSkudmFsaWRhdGVJRFRva2VuKXJldHVybiB0aGlzLnZhbGlkYXRlSWRUb2tlbihuLmlkX3Rva2VuKS50aGVuKCgoKT0+dCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMuX2RhdGFMYXllci5zZXRTZXNzaW9uRGF0YShuLHIpO2NvbnN0IGU9e2FjY2Vzc1Rva2VuOm4uYWNjZXNzX3Rva2VuLGNyZWF0ZWRBdDpuLmNyZWF0ZWRfYXQsZXhwaXJlc0luOm4uZXhwaXJlc19pbixpZFRva2VuOm4uaWRfdG9rZW4scmVmcmVzaFRva2VuOm4ucmVmcmVzaF90b2tlbixzY29wZTpuLnNjb3BlLHRva2VuVHlwZTpuLnRva2VuX3R5cGV9O3JldHVybiBQcm9taXNlLnJlc29sdmUoZSl9KSkpKTt7Y29uc3QgZT17YWNjZXNzVG9rZW46bi5hY2Nlc3NfdG9rZW4sY3JlYXRlZEF0Om4uY3JlYXRlZF9hdCxleHBpcmVzSW46bi5leHBpcmVzX2luLGlkVG9rZW46bi5pZF90b2tlbixyZWZyZXNoVG9rZW46bi5yZWZyZXNoX3Rva2VuLHNjb3BlOm4uc2NvcGUsdG9rZW5UeXBlOm4udG9rZW5fdHlwZX07cmV0dXJuIHlpZWxkIHRoaXMuX2RhdGFMYXllci5zZXRTZXNzaW9uRGF0YShuLHIpLFByb21pc2UucmVzb2x2ZShlKX19KSl9Z2VuZXJhdGVQS0NFS2V5KGUpe3ZhciByO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD15aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0VGVtcG9yYXJ5RGF0YShlKSxuPVtdO09iamVjdC5rZXlzKHQpLmZvckVhY2goKGU9PntlLnN0YXJ0c1dpdGgoInBrY2VfY29kZV92ZXJpZmllciIpJiZuLnB1c2goZSl9KSk7Y29uc3QgaT1uLnNvcnQoKS5wb3AoKTtyZXR1cm5gcGtjZV9jb2RlX3ZlcmlmaWVyIyR7cGFyc2VJbnQobnVsbCE9PShyPW51bGw9PWk/dm9pZCAwOmkuc3BsaXQoIiMiKVsxXSkmJnZvaWQgMCE9PXI/cjoiLTEiKSsxfWB9KSl9fWNsYXNzIGR7Y29uc3RydWN0b3IoZSl7dGhpcy5fY3J5cHRvVXRpbHM9ZX1nZXRDb2RlVmVyaWZpZXIoKXtyZXR1cm4gdGhpcy5fY3J5cHRvVXRpbHMuYmFzZTY0VVJMRW5jb2RlKHRoaXMuX2NyeXB0b1V0aWxzLmdlbmVyYXRlUmFuZG9tQnl0ZXMoMzIpKX1nZXRDb2RlQ2hhbGxlbmdlKGUpe3JldHVybiB0aGlzLl9jcnlwdG9VdGlscy5iYXNlNjRVUkxFbmNvZGUodGhpcy5fY3J5cHRvVXRpbHMuaGFzaFNoYTI1NihlKSl9Z2V0SldLRm9yVGhlSWRUb2tlbihlLHQpe2NvbnN0IHI9SlNPTi5wYXJzZSh0aGlzLl9jcnlwdG9VdGlscy5iYXNlNjRVUkxEZWNvZGUoZSkpO2Zvcihjb25zdCBlIG9mIHQpaWYoci5raWQ9PT1lLmtpZClyZXR1cm4gZTt0aHJvdyBuZXcgYygiSlMtQ1JZUFRPX1VUSUwtR0pGVElULUlWMDEiLCJraWQgbm90IGZvdW5kLiIsIkZhaWxlZCB0byBmaW5kIHRoZSAna2lkJyBzcGVjaWZpZWQgaW4gdGhlIGlkX3Rva2VuLiAna2lkJyBmb3VuZCBpbiB0aGUgaGVhZGVyIDogIityLmtpZCsiLCBFeHBlY3RlZCB2YWx1ZXM6ICIrdC5tYXAoKGU9PmUua2lkKSkuam9pbigiLCAiKSl9aXNWYWxpZElkVG9rZW4oZSx0LHIsbixpLHMsYSl7cmV0dXJuIHRoaXMuX2NyeXB0b1V0aWxzLnZlcmlmeUp3dChlLHQsbyxyLG4saSxzLGEpLnRoZW4oKGU9PmU/UHJvbWlzZS5yZXNvbHZlKCEwKTpQcm9taXNlLnJlamVjdChuZXcgYygiSlMtQ1JZUFRPX0hFTFBFUi1JVklULUlWMDEiLCJJbnZhbGlkIElEIHRva2VuLiIsIklEIHRva2VuIHZhbGlkYXRpb24gcmV0dXJuZWQgZmFsc2UiKSkpKX1kZWNvZGVJRFRva2VuKGUpe3RyeXtjb25zdCB0PXRoaXMuX2NyeXB0b1V0aWxzLmJhc2U2NFVSTERlY29kZShlLnNwbGl0KCIuIilbMV0pO3JldHVybiBKU09OLnBhcnNlKHQpfWNhdGNoKGUpe3Rocm93IG5ldyBjKCJKUy1DUllQVE9fVVRJTC1ESVQtSVYwMSIsIkRlY29kaW5nIElEIHRva2VuIGZhaWxlZC4iLGUpfX19Y2xhc3MgaHtjb25zdHJ1Y3RvcihlLHIpe3RoaXMuX2NyeXB0b1V0aWxzPXIsdGhpcy5fY3J5cHRvSGVscGVyPW5ldyBkKHIpLHRoaXMuX2F1dGhlbnRpY2F0aW9uSGVscGVyPW5ldyBsKGUsdGhpcy5fY3J5cHRvSGVscGVyKSx0aGlzLl9kYXRhTGF5ZXI9ZSx0aGlzLl9jb25maWc9KCk9PnQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4geWllbGQgdGhpcy5fZGF0YUxheWVyLmdldENvbmZpZ0RhdGEoKX0pKSx0aGlzLl9vaWRjUHJvdmlkZXJNZXRhRGF0YT0oKT0+dCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0T0lEQ1Byb3ZpZGVyTWV0YURhdGEoKX0pKX1nZXRBdXRob3JpemF0aW9uVVJMUGFyYW1zKGUscil7dmFyIG4saSxvO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD15aWVsZCB0aGlzLl9jb25maWcoKSxzPW5ldyBNYXA7cy5zZXQoInJlc3BvbnNlX3R5cGUiLCJjb2RlIikscy5zZXQoImNsaWVudF9pZCIsdC5jbGllbnRJRCksdC5jbGllbnRTZWNyZXQmJnQuY2xpZW50U2VjcmV0LnRyaW0oKS5sZW5ndGg+MCYmcy5zZXQoImNsaWVudF9zZWNyZXQiLHQuY2xpZW50U2VjcmV0KTtsZXQgYT0ib3BlbmlkIjt0LnNjb3BlJiZ0LnNjb3BlLmxlbmd0aD4wJiYodC5zY29wZS5pbmNsdWRlcygib3BlbmlkIil8fHQuc2NvcGUucHVzaCgib3BlbmlkIiksYT10LnNjb3BlLmpvaW4oIiAiKSkscy5zZXQoInNjb3BlIixhKSxzLnNldCgicmVkaXJlY3RfdXJpIix0LnNpZ25JblJlZGlyZWN0VVJMKSx0LnJlc3BvbnNlTW9kZSYmcy5zZXQoInJlc3BvbnNlX21vZGUiLHQucmVzcG9uc2VNb2RlKTtjb25zdCBjPXlpZWxkIHRoaXMuX2F1dGhlbnRpY2F0aW9uSGVscGVyLmdlbmVyYXRlUEtDRUtleShyKTtpZih0LmVuYWJsZVBLQ0Upe2NvbnN0IGU9bnVsbD09PShuPXRoaXMuX2NyeXB0b0hlbHBlcil8fHZvaWQgMD09PW4/dm9pZCAwOm4uZ2V0Q29kZVZlcmlmaWVyKCksdD1udWxsPT09KGk9dGhpcy5fY3J5cHRvSGVscGVyKXx8dm9pZCAwPT09aT92b2lkIDA6aS5nZXRDb2RlQ2hhbGxlbmdlKGUpO3lpZWxkIHRoaXMuX2RhdGFMYXllci5zZXRUZW1wb3JhcnlEYXRhUGFyYW1ldGVyKGMsZSxyKSxzLnNldCgiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIiwiUzI1NiIpLHMuc2V0KCJjb2RlX2NoYWxsZW5nZSIsdCl9dC5wcm9tcHQmJnMuc2V0KCJwcm9tcHQiLHQucHJvbXB0KTtjb25zdCBsPWU7aWYobClmb3IoY29uc3RbZSx0XW9mIE9iamVjdC5lbnRyaWVzKGwpKSIiIT1lJiYiIiE9dCYmInN0YXRlIiE9PWUmJnMuc2V0KGUsdC50b1N0cmluZygpKTtyZXR1cm4gcy5zZXQoInN0YXRlIix1LmdlbmVyYXRlU3RhdGVQYXJhbUZvclJlcXVlc3RDb3JyZWxhdGlvbihjLGw/bnVsbD09PShvPWwuc3RhdGUpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLnRvU3RyaW5nKCk6IiIpKSxzfSkpfWdldEF1dGhvcml6YXRpb25VUkwoZSxyKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9eWllbGQgdGhpcy5fZGF0YUxheWVyLmdldE9JRENQcm92aWRlck1ldGFEYXRhUGFyYW1ldGVyKCJhdXRob3JpemF0aW9uX2VuZHBvaW50Iik7aWYoIXR8fDA9PT10LnRyaW0oKS5sZW5ndGgpdGhyb3cgbmV3IGMoIkpTLUFVVEhfQ09SRS1HQVUtTkYwMSIsIk5vIGF1dGhvcml6YXRpb24gZW5kcG9pbnQgZm91bmQuIiwiTm8gYXV0aG9yaXphdGlvbiBlbmRwb2ludCB3YXMgZm91bmQgaW4gdGhlIE9JREMgcHJvdmlkZXIgbWV0YSBkYXRhIGZyb20gdGhlIHdlbGwta25vd24gZW5kcG9pbnQgb3IgdGhlIGF1dGhvcml6YXRpb24gZW5kcG9pbnQgcGFzc2VkIHRvIHRoZSBTREsgaXMgZW1wdHkuIik7Y29uc3Qgbj1uZXcgVVJMKHQpLGk9eWllbGQgdGhpcy5nZXRBdXRob3JpemF0aW9uVVJMUGFyYW1zKGUscik7Zm9yKGNvbnN0W2UsdF1vZiBpLmVudHJpZXMoKSluLnNlYXJjaFBhcmFtcy5hcHBlbmQoZSx0KTtyZXR1cm4gbi50b1N0cmluZygpfSkpfXJlcXVlc3RBY2Nlc3NUb2tlbihlLHIsbixpLG8pe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD0oeWllbGQgdGhpcy5fb2lkY1Byb3ZpZGVyTWV0YURhdGEoKSkudG9rZW5fZW5kcG9pbnQscz15aWVsZCB0aGlzLl9jb25maWcoKTtpZighdHx8MD09PXQudHJpbSgpLmxlbmd0aCl0aHJvdyBuZXcgYygiSlMtQVVUSF9DT1JFLVJBVDEtTkYwMSIsIlRva2VuIGVuZHBvaW50IG5vdCBmb3VuZC4iLCJObyB0b2tlbiBlbmRwb2ludCB3YXMgZm91bmQgaW4gdGhlIE9JREMgcHJvdmlkZXIgbWV0YSBkYXRhIHJldHVybmVkIGJ5IHRoZSB3ZWxsLWtub3duIGVuZHBvaW50IG9yIHRoZSB0b2tlbiBlbmRwb2ludCBwYXNzZWQgdG8gdGhlIFNESyBpcyBlbXB0eS4iKTtyJiYoeWllbGQgdGhpcy5fZGF0YUxheWVyLnNldFNlc3Npb25EYXRhUGFyYW1ldGVyKCJzZXNzaW9uX3N0YXRlIixyLGkpKTtjb25zdCBsPW5ldyBVUkxTZWFyY2hQYXJhbXM7bC5zZXQoImNsaWVudF9pZCIscy5jbGllbnRJRCkscy5jbGllbnRTZWNyZXQmJnMuY2xpZW50U2VjcmV0LnRyaW0oKS5sZW5ndGg+MCYmbC5zZXQoImNsaWVudF9zZWNyZXQiLHMuY2xpZW50U2VjcmV0KTtjb25zdCBkPWU7bGV0IGg7bC5zZXQoImNvZGUiLGQpLGwuc2V0KCJncmFudF90eXBlIiwiYXV0aG9yaXphdGlvbl9jb2RlIiksbC5zZXQoInJlZGlyZWN0X3VyaSIscy5zaWduSW5SZWRpcmVjdFVSTCksKG51bGw9PW8/dm9pZCAwOm8ucGFyYW1zKSYmT2JqZWN0LmVudHJpZXMoby5wYXJhbXMpLmZvckVhY2goKChbZSx0XSk9PntsLmFwcGVuZChlLHQpfSkpLHMuZW5hYmxlUEtDRSYmKGwuc2V0KCJjb2RlX3ZlcmlmaWVyIixgJHt5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0VGVtcG9yYXJ5RGF0YVBhcmFtZXRlcih1LmV4dHJhY3RQS0NFS2V5RnJvbVN0YXRlUGFyYW0obiksaSl9YCkseWllbGQgdGhpcy5fZGF0YUxheWVyLnJlbW92ZVRlbXBvcmFyeURhdGFQYXJhbWV0ZXIodS5leHRyYWN0UEtDRUtleUZyb21TdGF0ZVBhcmFtKG4pLGkpKTt0cnl7aD15aWVsZCBmZXRjaCh0LHtib2R5OmwsY3JlZGVudGlhbHM6cy5zZW5kQ29va2llc0luUmVxdWVzdHM/YS5JbmNsdWRlOmEuU2FtZU9yaWdpbixoZWFkZXJzOm5ldyBIZWFkZXJzKHUuZ2V0VG9rZW5SZXF1ZXN0SGVhZGVycygpKSxtZXRob2Q6IlBPU1QifSl9Y2F0Y2godCl7dGhyb3cgbmV3IGMoIkpTLUFVVEhfQ09SRS1SQVQxLU5FMDIiLCJSZXF1ZXN0aW5nIGFjY2VzcyB0b2tlbiBmYWlsZWQiLG51bGwhPXQ/dDoiVGhlIHJlcXVlc3QgdG8gZ2V0IHRoZSBhY2Nlc3MgdG9rZW4gZnJvbSB0aGUgc2VydmVyIGZhaWxlZC4iKX1pZighaC5vayl0aHJvdyBuZXcgYygiSlMtQVVUSF9DT1JFLVJBVDEtSEUwMyIsYFJlcXVlc3RpbmcgYWNjZXNzIHRva2VuIGZhaWxlZCB3aXRoICR7aC5zdGF0dXNUZXh0fWAseWllbGQgaC5qc29uKCkpO3JldHVybiB5aWVsZCB0aGlzLl9hdXRoZW50aWNhdGlvbkhlbHBlci5oYW5kbGVUb2tlblJlc3BvbnNlKGgsaSl9KSl9cmVmcmVzaEFjY2Vzc1Rva2VuKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD0oeWllbGQgdGhpcy5fb2lkY1Byb3ZpZGVyTWV0YURhdGEoKSkudG9rZW5fZW5kcG9pbnQscj15aWVsZCB0aGlzLl9jb25maWcoKSxuPXlpZWxkIHRoaXMuX2RhdGFMYXllci5nZXRTZXNzaW9uRGF0YShlKTtpZighbi5yZWZyZXNoX3Rva2VuKXRocm93IG5ldyBjKCJKUy1BVVRIX0NPUkUtUkFUMi1ORjAxIiwiTm8gcmVmcmVzaCB0b2tlbiBmb3VuZC4iLCJUaGVyZSB3YXMgbm8gcmVmcmVzaCB0b2tlbiBmb3VuZC4gQXNnYXJkZW8gZG9lc24ndCByZXR1cm4gYSByZWZyZXNoIHRva2VuIGlmIHRoZSByZWZyZXNoIHRva2VuIGdyYW50IGlzIG5vdCBlbmFibGVkLiIpO2lmKCF0fHwwPT09dC50cmltKCkubGVuZ3RoKXRocm93IG5ldyBjKCJKUy1BVVRIX0NPUkUtUkFUMi1ORjAyIiwiTm8gcmVmcmVzaCB0b2tlbiBlbmRwb2ludCBmb3VuZC4iLCJObyByZWZyZXNoIHRva2VuIGVuZHBvaW50IHdhcyBpbiB0aGUgT0lEQyBwcm92aWRlciBtZXRhIGRhdGEgcmV0dXJuZWQgYnkgdGhlIHdlbGwta25vd24gZW5kcG9pbnQgb3IgdGhlIHJlZnJlc2ggdG9rZW4gZW5kcG9pbnQgcGFzc2VkIHRvIHRoZSBTREsgaXMgZW1wdHkuIik7Y29uc3QgaT1bXTtsZXQgbztpLnB1c2goYGNsaWVudF9pZD0ke3IuY2xpZW50SUR9YCksaS5wdXNoKGByZWZyZXNoX3Rva2VuPSR7bi5yZWZyZXNoX3Rva2VufWApLGkucHVzaCgiZ3JhbnRfdHlwZT1yZWZyZXNoX3Rva2VuIiksci5jbGllbnRTZWNyZXQmJnIuY2xpZW50U2VjcmV0LnRyaW0oKS5sZW5ndGg+MCYmaS5wdXNoKGBjbGllbnRfc2VjcmV0PSR7ci5jbGllbnRTZWNyZXR9YCk7dHJ5e289eWllbGQgZmV0Y2godCx7Ym9keTppLmpvaW4oIiYiKSxjcmVkZW50aWFsczpyLnNlbmRDb29raWVzSW5SZXF1ZXN0cz9hLkluY2x1ZGU6YS5TYW1lT3JpZ2luLGhlYWRlcnM6bmV3IEhlYWRlcnModS5nZXRUb2tlblJlcXVlc3RIZWFkZXJzKCkpLG1ldGhvZDoiUE9TVCJ9KX1jYXRjaCh0KXt0aHJvdyBuZXcgYygiSlMtQVVUSF9DT1JFLVJBVDItTlIwMyIsIlJlZnJlc2ggYWNjZXNzIHRva2VuIHJlcXVlc3QgZmFpbGVkLiIsbnVsbCE9dD90OiJUaGUgcmVxdWVzdCB0byByZWZyZXNoIHRoZSBhY2Nlc3MgdG9rZW4gZmFpbGVkLiIpfWlmKCFvLm9rKXRocm93IG5ldyBjKCJKUy1BVVRIX0NPUkUtUkFUMi1IRTA0IixgUmVmcmVzaGluZyBhY2Nlc3MgdG9rZW4gZmFpbGVkIHdpdGggJHtvLnN0YXR1c1RleHR9YCx5aWVsZCBvLmpzb24oKSk7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uSGVscGVyLmhhbmRsZVRva2VuUmVzcG9uc2UobyxlKX0pKX1yZXZva2VBY2Nlc3NUb2tlbihlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9KHlpZWxkIHRoaXMuX29pZGNQcm92aWRlck1ldGFEYXRhKCkpLnJldm9jYXRpb25fZW5kcG9pbnQscj15aWVsZCB0aGlzLl9jb25maWcoKTtpZighdHx8MD09PXQudHJpbSgpLmxlbmd0aCl0aHJvdyBuZXcgYygiSlMtQVVUSF9DT1JFLVJBVDMtTkYwMSIsIk5vIHJldm9rZSBhY2Nlc3MgdG9rZW4gZW5kcG9pbnQgZm91bmQuIiwiTm8gcmV2b2tlIGFjY2VzcyB0b2tlbiBlbmRwb2ludCB3YXMgZm91bmQgaW4gdGhlIE9JREMgcHJvdmlkZXIgbWV0YSBkYXRhIHJldHVybmVkIGJ5IHRoZSB3ZWxsLWtub3duIGVuZHBvaW50IG9yIHRoZSByZXZva2UgYWNjZXNzIHRva2VuIGVuZHBvaW50IHBhc3NlZCB0byB0aGUgU0RLIGlzIGVtcHR5LiIpO2NvbnN0IG49W107bGV0IGk7bi5wdXNoKGBjbGllbnRfaWQ9JHtyLmNsaWVudElEfWApLG4ucHVzaChgdG9rZW49JHsoeWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFNlc3Npb25EYXRhKGUpKS5hY2Nlc3NfdG9rZW59YCksbi5wdXNoKCJ0b2tlbl90eXBlX2hpbnQ9YWNjZXNzX3Rva2VuIik7dHJ5e2k9eWllbGQgZmV0Y2godCx7Ym9keTpuLmpvaW4oIiYiKSxjcmVkZW50aWFsczpyLnNlbmRDb29raWVzSW5SZXF1ZXN0cz9hLkluY2x1ZGU6YS5TYW1lT3JpZ2luLGhlYWRlcnM6bmV3IEhlYWRlcnModS5nZXRUb2tlblJlcXVlc3RIZWFkZXJzKCkpLG1ldGhvZDoiUE9TVCJ9KX1jYXRjaCh0KXt0aHJvdyBuZXcgYygiSlMtQVVUSF9DT1JFLVJBVDMtTkUwMiIsIlRoZSByZXF1ZXN0IHRvIHJldm9rZSBhY2Nlc3MgdG9rZW4gZmFpbGVkLiIsbnVsbCE9dD90OiJUaGUgcmVxdWVzdCBzZW50IHRvIHJldm9rZSB0aGUgYWNjZXNzIHRva2VuIGZhaWxlZC4iKX1pZigyMDAhPT1pLnN0YXR1c3x8IWkub2spdGhyb3cgbmV3IGMoIkpTLUFVVEhfQ09SRS1SQVQzLUhFMDMiLGBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cyByZWNlaXZlZCBmb3IgcmV2b2tlIGFjY2VzcyB0b2tlbiByZXF1ZXN0ICgke2kuc3RhdHVzVGV4dH0pLmAseWllbGQgaS5qc29uKCkpO3JldHVybiB0aGlzLl9hdXRoZW50aWNhdGlvbkhlbHBlci5jbGVhclVzZXJTZXNzaW9uRGF0YShlKSxQcm9taXNlLnJlc29sdmUoaSl9KSl9cmVxdWVzdEN1c3RvbUdyYW50KGUscil7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCBuPXlpZWxkIHRoaXMuX29pZGNQcm92aWRlck1ldGFEYXRhKCksaT15aWVsZCB0aGlzLl9jb25maWcoKTtsZXQgbztpZihvPWUudG9rZW5FbmRwb2ludCYmMCE9PWUudG9rZW5FbmRwb2ludC50cmltKCkubGVuZ3RoP2UudG9rZW5FbmRwb2ludDpuLnRva2VuX2VuZHBvaW50LCFvfHwwPT09by50cmltKCkubGVuZ3RoKXRocm93IG5ldyBjKCJKUy1BVVRIX0NPUkUtUkNHLU5GMDEiLCJUb2tlbiBlbmRwb2ludCBub3QgZm91bmQuIiwiTm8gdG9rZW4gZW5kcG9pbnQgd2FzIGZvdW5kIGluIHRoZSBPSURDIHByb3ZpZGVyIG1ldGEgZGF0YSByZXR1cm5lZCBieSB0aGUgd2VsbC1rbm93biBlbmRwb2ludCBvciB0aGUgdG9rZW4gZW5kcG9pbnQgcGFzc2VkIHRvIHRoZSBTREsgaXMgZW1wdHkuIik7Y29uc3Qgcz15aWVsZCBQcm9taXNlLmFsbChPYmplY3QuZW50cmllcyhlLmRhdGEpLm1hcCgoKFtlLG5dKT0+dCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9eWllbGQgdGhpcy5fYXV0aGVudGljYXRpb25IZWxwZXIucmVwbGFjZUN1c3RvbUdyYW50VGVtcGxhdGVUYWdzKG4scik7cmV0dXJuYCR7ZX09JHt0fWB9KSkpKSk7bGV0IGw9T2JqZWN0LmFzc2lnbih7fSx1LmdldFRva2VuUmVxdWVzdEhlYWRlcnMoKSk7ZS5hdHRhY2hUb2tlbiYmKGw9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGwpLHtBdXRob3JpemF0aW9uOmBCZWFyZXIgJHsoeWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFNlc3Npb25EYXRhKHIpKS5hY2Nlc3NfdG9rZW59YH0pKTtjb25zdCBkPXtib2R5OnMuam9pbigiJiIpLGNyZWRlbnRpYWxzOmkuc2VuZENvb2tpZXNJblJlcXVlc3RzP2EuSW5jbHVkZTphLlNhbWVPcmlnaW4saGVhZGVyczpuZXcgSGVhZGVycyhsKSxtZXRob2Q6IlBPU1QifTtsZXQgaDt0cnl7aD15aWVsZCBmZXRjaChvLGQpfWNhdGNoKGUpe3Rocm93IG5ldyBjKCJKUy1BVVRIX0NPUkUtUkNHLU5FMDIiLCJUaGUgY3VzdG9tIGdyYW50IHJlcXVlc3QgZmFpbGVkLiIsbnVsbCE9ZT9lOiJUaGUgcmVxdWVzdCBzZW50IHRvIGdldCB0aGUgY3VzdG9tIGdyYW50IGZhaWxlZC4iKX1pZigyMDAhPT1oLnN0YXR1c3x8IWgub2spdGhyb3cgbmV3IGMoIkpTLUFVVEhfQ09SRS1SQ0ctSEUwMyIsYEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzIHJlY2VpdmVkIGZvciB0aGUgY3VzdG9tIGdyYW50IHJlcXVlc3QuICgke2guc3RhdHVzVGV4dH0pYCx5aWVsZCBoLmpzb24oKSk7cmV0dXJuIGUucmV0dXJuc1Nlc3Npb24/dGhpcy5fYXV0aGVudGljYXRpb25IZWxwZXIuaGFuZGxlVG9rZW5SZXNwb25zZShoLHIpOlByb21pc2UucmVzb2x2ZSh5aWVsZCBoLmpzb24oKSl9KSl9Z2V0QmFzaWNVc2VySW5mbyhlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9eWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFNlc3Npb25EYXRhKGUpLHI9dGhpcy5fYXV0aGVudGljYXRpb25IZWxwZXIuZ2V0QXV0aGVudGljYXRlZFVzZXJJbmZvKG51bGw9PXQ/dm9pZCAwOnQuaWRfdG9rZW4pO2xldCBuPXthbGxvd2VkU2NvcGVzOnQuc2NvcGUsc2Vzc2lvblN0YXRlOnQuc2Vzc2lvbl9zdGF0ZX07cmV0dXJuIE9iamVjdC5rZXlzKHIpLmZvckVhY2goKGU9Pnt2b2lkIDAhPT1yW2VdJiYiIiE9PXJbZV0mJm51bGwhPT1yW2VdfHxkZWxldGUgcltlXX0pKSxuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuKSxyKSxufSkpfWdldERlY29kZWRJRFRva2VuKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD0oeWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFNlc3Npb25EYXRhKGUpKS5pZF90b2tlbjtyZXR1cm4gdGhpcy5fY3J5cHRvSGVscGVyLmRlY29kZUlEVG9rZW4odCl9KSl9Z2V0Q3J5cHRvSGVscGVyKCl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5fY3J5cHRvSGVscGVyfSkpfWdldElEVG9rZW4oZSl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4oeWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFNlc3Npb25EYXRhKGUpKS5pZF90b2tlbn0pKX1nZXRPSURDUHJvdmlkZXJNZXRhRGF0YShlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9eWllbGQgdGhpcy5fY29uZmlnKCk7aWYoIWUmJih5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0VGVtcG9yYXJ5RGF0YVBhcmFtZXRlcigib3BfY29uZmlnX2luaXRpYXRlZCIpKSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7Y29uc3Qgcj10LndlbGxLbm93bkVuZHBvaW50O2lmKHIpe2xldCBlO3RyeXtpZihlPXlpZWxkIGZldGNoKHIpLDIwMCE9PWUuc3RhdHVzfHwhZS5vayl0aHJvdyBuZXcgRXJyb3J9Y2F0Y2godCl7dGhyb3cgbmV3IGMoIkpTLUFVVEhfQ09SRS1HT1BNRC1IRTAxIiwiSW52YWxpZCB3ZWxsLWtub3duIHJlc3BvbnNlIiwiVGhlIHdlbGwga25vd24gZW5kcG9pbnQgcmVzcG9uc2UgaGFzIGJlZW4gZmFpbGVkIHdpdGggYW4gZXJyb3IuIil9cmV0dXJuIHlpZWxkIHRoaXMuX2RhdGFMYXllci5zZXRPSURDUHJvdmlkZXJNZXRhRGF0YSh5aWVsZCB0aGlzLl9hdXRoZW50aWNhdGlvbkhlbHBlci5yZXNvbHZlRW5kcG9pbnRzKHlpZWxkIGUuanNvbigpKSkseWllbGQgdGhpcy5fZGF0YUxheWVyLnNldFRlbXBvcmFyeURhdGFQYXJhbWV0ZXIoIm9wX2NvbmZpZ19pbml0aWF0ZWQiLCEwKSxQcm9taXNlLnJlc29sdmUoKX1pZih0LmJhc2VVcmwpe3RyeXt5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuc2V0T0lEQ1Byb3ZpZGVyTWV0YURhdGEoeWllbGQgdGhpcy5fYXV0aGVudGljYXRpb25IZWxwZXIucmVzb2x2ZUVuZHBvaW50c0J5QmFzZVVSTCgpKX1jYXRjaCh0KXt0aHJvdyBuZXcgYygiSlMtQVVUSF9DT1JFLUdPUE1ELUlWMDIiLCJSZXNvbHZpbmcgZW5kcG9pbnRzIGZhaWxlZC4iLG51bGwhPXQ/dDoiUmVzb2x2aW5nIGVuZHBvaW50cyBieSBiYXNlIHVybCBmYWlsZWQuIil9cmV0dXJuIHlpZWxkIHRoaXMuX2RhdGFMYXllci5zZXRUZW1wb3JhcnlEYXRhUGFyYW1ldGVyKCJvcF9jb25maWdfaW5pdGlhdGVkIiwhMCksUHJvbWlzZS5yZXNvbHZlKCl9cmV0dXJuIHlpZWxkIHRoaXMuX2RhdGFMYXllci5zZXRPSURDUHJvdmlkZXJNZXRhRGF0YSh5aWVsZCB0aGlzLl9hdXRoZW50aWNhdGlvbkhlbHBlci5yZXNvbHZlRW5kcG9pbnRzRXhwbGljaXRseSgpKSx5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuc2V0VGVtcG9yYXJ5RGF0YVBhcmFtZXRlcigib3BfY29uZmlnX2luaXRpYXRlZCIsITApLFByb21pc2UucmVzb2x2ZSgpfSkpfWdldE9JRENTZXJ2aWNlRW5kcG9pbnRzKCl7dmFyIGUscixuLGksbyxzLGEsYyx1LGw7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCB0PXlpZWxkIHRoaXMuX29pZGNQcm92aWRlck1ldGFEYXRhKCk7cmV0dXJue2F1dGhvcml6YXRpb25FbmRwb2ludDpudWxsIT09KGU9dC5hdXRob3JpemF0aW9uX2VuZHBvaW50KSYmdm9pZCAwIT09ZT9lOiIiLGNoZWNrU2Vzc2lvbklmcmFtZTpudWxsIT09KHI9dC5jaGVja19zZXNzaW9uX2lmcmFtZSkmJnZvaWQgMCE9PXI/cjoiIixlbmRTZXNzaW9uRW5kcG9pbnQ6bnVsbCE9PShuPXQuZW5kX3Nlc3Npb25fZW5kcG9pbnQpJiZ2b2lkIDAhPT1uP246IiIsaW50cm9zcGVjdGlvbkVuZHBvaW50Om51bGwhPT0oaT10LmludHJvc3BlY3Rpb25fZW5kcG9pbnQpJiZ2b2lkIDAhPT1pP2k6IiIsaXNzdWVyOm51bGwhPT0obz10Lmlzc3VlcikmJnZvaWQgMCE9PW8/bzoiIixqd2tzVXJpOm51bGwhPT0ocz10Lmp3a3NfdXJpKSYmdm9pZCAwIT09cz9zOiIiLHJlZ2lzdHJhdGlvbkVuZHBvaW50Om51bGwhPT0oYT10LnJlZ2lzdHJhdGlvbl9lbmRwb2ludCkmJnZvaWQgMCE9PWE/YToiIixyZXZvY2F0aW9uRW5kcG9pbnQ6bnVsbCE9PShjPXQucmV2b2NhdGlvbl9lbmRwb2ludCkmJnZvaWQgMCE9PWM/YzoiIix0b2tlbkVuZHBvaW50Om51bGwhPT0odT10LnRva2VuX2VuZHBvaW50KSYmdm9pZCAwIT09dT91OiIiLHVzZXJpbmZvRW5kcG9pbnQ6bnVsbCE9PShsPXQudXNlcmluZm9fZW5kcG9pbnQpJiZ2b2lkIDAhPT1sP2w6IiJ9fSkpfWdldFNpZ25PdXRVUkwoZSl7dmFyIHIsbixpO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD1udWxsPT09KHI9eWllbGQgdGhpcy5fb2lkY1Byb3ZpZGVyTWV0YURhdGEoKSl8fHZvaWQgMD09PXI/dm9pZCAwOnIuZW5kX3Nlc3Npb25fZW5kcG9pbnQsbz15aWVsZCB0aGlzLl9jb25maWcoKTtpZighdHx8MD09PXQudHJpbSgpLmxlbmd0aCl0aHJvdyBuZXcgYygiSlMtQVVUSF9DT1JFLUdTT1UtTkYwMSIsIlNpZ24tb3V0IGVuZHBvaW50IG5vdCBmb3VuZC4iLCJObyBzaWduLW91dCBlbmRwb2ludCB3YXMgZm91bmQgaW4gdGhlIE9JREMgcHJvdmlkZXIgbWV0YSBkYXRhIHJldHVybmVkIGJ5IHRoZSB3ZWxsLWtub3duIGVuZHBvaW50IG9yIHRoZSBzaWduLW91dCBlbmRwb2ludCBwYXNzZWQgdG8gdGhlIFNESyBpcyBlbXB0eS4iKTtjb25zdCBzPW51bGwhPT0obj1udWxsPT1vP3ZvaWQgMDpvLnNpZ25PdXRSZWRpcmVjdFVSTCkmJnZvaWQgMCE9PW4/bjpudWxsPT1vP3ZvaWQgMDpvLnNpZ25JblJlZGlyZWN0VVJMO2lmKCFzfHwwPT09cy50cmltKCkubGVuZ3RoKXRocm93IG5ldyBjKCJKUy1BVVRIX0NPUkUtR1NPVS1ORjAzIiwiTm8gc2lnbi1vdXQgcmVkaXJlY3QgVVJMIGZvdW5kLiIsIlRoZSBzaWduLW91dCByZWRpcmVjdCBVUkwgY2Fubm90IGJlIGZvdW5kIG9yIHRoZSBVUkwgcGFzc2VkIHRvIHRoZSBTREsgaXMgZW1wdHkuIE5vIHNpZ24taW4gcmVkaXJlY3QgVVJMIGhhcyBiZWVuIGZvdW5kIGVpdGhlci4gIik7Y29uc3QgYT1uZXcgVVJMU2VhcmNoUGFyYW1zO2lmKGEuc2V0KCJwb3N0X2xvZ291dF9yZWRpcmVjdF91cmkiLHMpLG8uc2VuZElkVG9rZW5JbkxvZ291dFJlcXVlc3Qpe2NvbnN0IHQ9bnVsbD09PShpPXlpZWxkIHRoaXMuX2RhdGFMYXllci5nZXRTZXNzaW9uRGF0YShlKSl8fHZvaWQgMD09PWk/dm9pZCAwOmkuaWRfdG9rZW47aWYoIXR8fDA9PT10LnRyaW0oKS5sZW5ndGgpdGhyb3cgbmV3IGMoIkpTLUFVVEhfQ09SRS1HU09VLU5GMDIiLCJJRCB0b2tlbiBub3QgZm91bmQuIiwiTm8gSUQgdG9rZW4gY291bGQgYmUgZm91bmQuIEVpdGhlciB0aGUgc2Vzc2lvbiBpbmZvcm1hdGlvbiBpcyBsb3N0IG9yIHlvdSBoYXZlIG5vdCBzaWduZWQgaW4uIik7YS5zZXQoImlkX3Rva2VuX2hpbnQiLHQpfWVsc2UgYS5zZXQoImNsaWVudF9pZCIsby5jbGllbnRJRCk7cmV0dXJuIGEuc2V0KCJzdGF0ZSIsInNpZ25fb3V0X3N1Y2Nlc3MiKSxgJHt0fT8ke2EudG9TdHJpbmcoKX1gfSkpfWNsZWFyVXNlclNlc3Npb25EYXRhKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7eWllbGQgdGhpcy5fYXV0aGVudGljYXRpb25IZWxwZXIuY2xlYXJVc2VyU2Vzc2lvbkRhdGEoZSl9KSl9Z2V0QWNjZXNzVG9rZW4oZSl7dmFyIHI7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gbnVsbD09PShyPXlpZWxkIHRoaXMuX2RhdGFMYXllci5nZXRTZXNzaW9uRGF0YShlKSl8fHZvaWQgMD09PXI/dm9pZCAwOnIuYWNjZXNzX3Rva2VufSkpfWdldENyZWF0ZWRBdChlKXt2YXIgcjtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiBudWxsPT09KHI9eWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFNlc3Npb25EYXRhKGUpKXx8dm9pZCAwPT09cj92b2lkIDA6ci5jcmVhdGVkX2F0fSkpfWdldEV4cGlyZXNJbihlKXt2YXIgcjtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiBudWxsPT09KHI9eWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFNlc3Npb25EYXRhKGUpKXx8dm9pZCAwPT09cj92b2lkIDA6ci5leHBpcmVzX2lufSkpfWlzQXV0aGVudGljYXRlZChlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9Qm9vbGVhbih5aWVsZCB0aGlzLmdldEFjY2Vzc1Rva2VuKGUpKSxyPXlpZWxkIHRoaXMuZ2V0Q3JlYXRlZEF0KGUpLG49eWllbGQgdGhpcy5nZXRFeHBpcmVzSW4oZSk7aWYoIW4pcmV0dXJuITE7Y29uc3QgaT0xZTMqcGFyc2VJbnQobiksbz0obmV3IERhdGUpLmdldFRpbWUoKTtyZXR1cm4gdCYmcitpPm99KSl9Z2V0UEtDRUNvZGUoZSxyKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0VGVtcG9yYXJ5RGF0YVBhcmFtZXRlcih1LmV4dHJhY3RQS0NFS2V5RnJvbVN0YXRlUGFyYW0oZSkscil9KSl9c2V0UEtDRUNvZGUoZSxyLG4pe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHlpZWxkIHRoaXMuX2RhdGFMYXllci5zZXRUZW1wb3JhcnlEYXRhUGFyYW1ldGVyKHUuZXh0cmFjdFBLQ0VLZXlGcm9tU3RhdGVQYXJhbShyKSxlLG4pfSkpfXVwZGF0ZUNvbmZpZyhlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMuX2RhdGFMYXllci5zZXRDb25maWdEYXRhKGUpLHlpZWxkIHRoaXMuZ2V0T0lEQ1Byb3ZpZGVyTWV0YURhdGEoITApfSkpfX1jbGFzcyBme2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5faWQ9ZSx0aGlzLl9zdG9yZT10fXNldERhdGFJbkJ1bGsoZSxyKXt2YXIgbjtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9bnVsbCE9PShuPXlpZWxkIHRoaXMuX3N0b3JlLmdldERhdGEoZSkpJiZ2b2lkIDAhPT1uP246bnVsbCxpPXQmJkpTT04ucGFyc2UodCksbz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saSkscikscz1KU09OLnN0cmluZ2lmeShvKTt5aWVsZCB0aGlzLl9zdG9yZS5zZXREYXRhKGUscyl9KSl9c2V0VmFsdWUoZSxyLG4pe3ZhciBpO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD1udWxsIT09KGk9eWllbGQgdGhpcy5fc3RvcmUuZ2V0RGF0YShlKSkmJnZvaWQgMCE9PWk/aTpudWxsLG89dCYmSlNPTi5wYXJzZSh0KSxzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxvKSx7W3JdOm59KSxhPUpTT04uc3RyaW5naWZ5KHMpO3lpZWxkIHRoaXMuX3N0b3JlLnNldERhdGEoZSxhKX0pKX1yZW1vdmVWYWx1ZShlLHIpe3ZhciBuO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD1udWxsIT09KG49eWllbGQgdGhpcy5fc3RvcmUuZ2V0RGF0YShlKSkmJnZvaWQgMCE9PW4/bjpudWxsLGk9dCYmSlNPTi5wYXJzZSh0KSxvPU9iamVjdC5hc3NpZ24oe30saSk7ZGVsZXRlIG9bcl07Y29uc3Qgcz1KU09OLnN0cmluZ2lmeShvKTt5aWVsZCB0aGlzLl9zdG9yZS5zZXREYXRhKGUscyl9KSl9X3Jlc29sdmVLZXkoZSx0KXtyZXR1cm4gdD9gJHtlfS0ke3RoaXMuX2lkfS0ke3R9YDpgJHtlfS0ke3RoaXMuX2lkfWB9aXNMb2NhbFN0b3JhZ2VBdmFpbGFibGUoKXt0cnl7Y29uc3QgZT0iX19BU0dBUkRFT19BVVRIX0NPUkVfTE9DQUxfU1RPUkFHRV9URVNUX18iO3JldHVybiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLGUpLGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGUpLCEwfWNhdGNoKGUpe3JldHVybiExfX1zZXRDb25maWdEYXRhKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7eWllbGQgdGhpcy5zZXREYXRhSW5CdWxrKHRoaXMuX3Jlc29sdmVLZXkobi5Db25maWdEYXRhKSxlKX0pKX1zZXRPSURDUHJvdmlkZXJNZXRhRGF0YShlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3RoaXMuc2V0RGF0YUluQnVsayh0aGlzLl9yZXNvbHZlS2V5KG4uT0lEQ1Byb3ZpZGVyTWV0YURhdGEpLGUpfSkpfXNldFRlbXBvcmFyeURhdGEoZSxyKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3RoaXMuc2V0RGF0YUluQnVsayh0aGlzLl9yZXNvbHZlS2V5KG4uVGVtcG9yYXJ5RGF0YSxyKSxlKX0pKX1zZXRTZXNzaW9uRGF0YShlLHIpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7dGhpcy5zZXREYXRhSW5CdWxrKHRoaXMuX3Jlc29sdmVLZXkobi5TZXNzaW9uRGF0YSxyKSxlKX0pKX1zZXRDdXN0b21EYXRhKGUscixuKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3RoaXMuc2V0RGF0YUluQnVsayh0aGlzLl9yZXNvbHZlS2V5KGUsbikscil9KSl9Z2V0Q29uZmlnRGF0YSgpe3ZhciBlO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIEpTT04ucGFyc2UobnVsbCE9PShlPXlpZWxkIHRoaXMuX3N0b3JlLmdldERhdGEodGhpcy5fcmVzb2x2ZUtleShuLkNvbmZpZ0RhdGEpKSkmJnZvaWQgMCE9PWU/ZTpudWxsKX0pKX1nZXRPSURDUHJvdmlkZXJNZXRhRGF0YSgpe3ZhciBlO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIEpTT04ucGFyc2UobnVsbCE9PShlPXlpZWxkIHRoaXMuX3N0b3JlLmdldERhdGEodGhpcy5fcmVzb2x2ZUtleShuLk9JRENQcm92aWRlck1ldGFEYXRhKSkpJiZ2b2lkIDAhPT1lP2U6bnVsbCl9KSl9Z2V0VGVtcG9yYXJ5RGF0YShlKXt2YXIgcjtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiBKU09OLnBhcnNlKG51bGwhPT0ocj15aWVsZCB0aGlzLl9zdG9yZS5nZXREYXRhKHRoaXMuX3Jlc29sdmVLZXkobi5UZW1wb3JhcnlEYXRhLGUpKSkmJnZvaWQgMCE9PXI/cjpudWxsKX0pKX1nZXRTZXNzaW9uRGF0YShlKXt2YXIgcjtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiBKU09OLnBhcnNlKG51bGwhPT0ocj15aWVsZCB0aGlzLl9zdG9yZS5nZXREYXRhKHRoaXMuX3Jlc29sdmVLZXkobi5TZXNzaW9uRGF0YSxlKSkpJiZ2b2lkIDAhPT1yP3I6bnVsbCl9KSl9Z2V0Q3VzdG9tRGF0YShlLHIpe3ZhciBuO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIEpTT04ucGFyc2UobnVsbCE9PShuPXlpZWxkIHRoaXMuX3N0b3JlLmdldERhdGEodGhpcy5fcmVzb2x2ZUtleShlLHIpKSkmJnZvaWQgMCE9PW4/bjpudWxsKX0pKX1zZXRTZXNzaW9uU3RhdHVzKGUpe3RoaXMuaXNMb2NhbFN0b3JhZ2VBdmFpbGFibGUoKSYmbG9jYWxTdG9yYWdlLnNldEl0ZW0oImFzZ2FyZGVvLXNlc3Npb24tYWN0aXZlIixlKX1nZXRTZXNzaW9uU3RhdHVzKCl7dmFyIGU7cmV0dXJuIHRoaXMuaXNMb2NhbFN0b3JhZ2VBdmFpbGFibGUoKSYmbnVsbCE9PShlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJhc2dhcmRlby1zZXNzaW9uLWFjdGl2ZSIpKSYmdm9pZCAwIT09ZT9lOiIifXJlbW92ZVNlc3Npb25TdGF0dXMoKXt0aGlzLmlzTG9jYWxTdG9yYWdlQXZhaWxhYmxlKCkmJmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJhc2dhcmRlby1zZXNzaW9uLWFjdGl2ZSIpfXJlbW92ZUNvbmZpZ0RhdGEoKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMuX3N0b3JlLnJlbW92ZURhdGEodGhpcy5fcmVzb2x2ZUtleShuLkNvbmZpZ0RhdGEpKX0pKX1yZW1vdmVPSURDUHJvdmlkZXJNZXRhRGF0YSgpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7eWllbGQgdGhpcy5fc3RvcmUucmVtb3ZlRGF0YSh0aGlzLl9yZXNvbHZlS2V5KG4uT0lEQ1Byb3ZpZGVyTWV0YURhdGEpKX0pKX1yZW1vdmVUZW1wb3JhcnlEYXRhKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7eWllbGQgdGhpcy5fc3RvcmUucmVtb3ZlRGF0YSh0aGlzLl9yZXNvbHZlS2V5KG4uVGVtcG9yYXJ5RGF0YSxlKSl9KSl9cmVtb3ZlU2Vzc2lvbkRhdGEoZSl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt5aWVsZCB0aGlzLl9zdG9yZS5yZW1vdmVEYXRhKHRoaXMuX3Jlc29sdmVLZXkobi5TZXNzaW9uRGF0YSxlKSl9KSl9Z2V0Q29uZmlnRGF0YVBhcmFtZXRlcihlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9eWllbGQgdGhpcy5fc3RvcmUuZ2V0RGF0YSh0aGlzLl9yZXNvbHZlS2V5KG4uQ29uZmlnRGF0YSkpO3JldHVybiB0JiZKU09OLnBhcnNlKHQpW2VdfSkpfWdldE9JRENQcm92aWRlck1ldGFEYXRhUGFyYW1ldGVyKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD15aWVsZCB0aGlzLl9zdG9yZS5nZXREYXRhKHRoaXMuX3Jlc29sdmVLZXkobi5PSURDUHJvdmlkZXJNZXRhRGF0YSkpO3JldHVybiB0JiZKU09OLnBhcnNlKHQpW2VdfSkpfWdldFRlbXBvcmFyeURhdGFQYXJhbWV0ZXIoZSxyKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9eWllbGQgdGhpcy5fc3RvcmUuZ2V0RGF0YSh0aGlzLl9yZXNvbHZlS2V5KG4uVGVtcG9yYXJ5RGF0YSxyKSk7cmV0dXJuIHQmJkpTT04ucGFyc2UodClbZV19KSl9Z2V0U2Vzc2lvbkRhdGFQYXJhbWV0ZXIoZSxyKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9eWllbGQgdGhpcy5fc3RvcmUuZ2V0RGF0YSh0aGlzLl9yZXNvbHZlS2V5KG4uU2Vzc2lvbkRhdGEscikpO3JldHVybiB0JiZKU09OLnBhcnNlKHQpW2VdfSkpfXNldENvbmZpZ0RhdGFQYXJhbWV0ZXIoZSxyKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMuc2V0VmFsdWUodGhpcy5fcmVzb2x2ZUtleShuLkNvbmZpZ0RhdGEpLGUscil9KSl9c2V0T0lEQ1Byb3ZpZGVyTWV0YURhdGFQYXJhbWV0ZXIoZSxyKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMuc2V0VmFsdWUodGhpcy5fcmVzb2x2ZUtleShuLk9JRENQcm92aWRlck1ldGFEYXRhKSxlLHIpfSkpfXNldFRlbXBvcmFyeURhdGFQYXJhbWV0ZXIoZSxyLGkpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7eWllbGQgdGhpcy5zZXRWYWx1ZSh0aGlzLl9yZXNvbHZlS2V5KG4uVGVtcG9yYXJ5RGF0YSxpKSxlLHIpfSkpfXNldFNlc3Npb25EYXRhUGFyYW1ldGVyKGUscixpKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMuc2V0VmFsdWUodGhpcy5fcmVzb2x2ZUtleShuLlNlc3Npb25EYXRhLGkpLGUscil9KSl9cmVtb3ZlQ29uZmlnRGF0YVBhcmFtZXRlcihlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMucmVtb3ZlVmFsdWUodGhpcy5fcmVzb2x2ZUtleShuLkNvbmZpZ0RhdGEpLGUpfSkpfXJlbW92ZU9JRENQcm92aWRlck1ldGFEYXRhUGFyYW1ldGVyKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7eWllbGQgdGhpcy5yZW1vdmVWYWx1ZSh0aGlzLl9yZXNvbHZlS2V5KG4uT0lEQ1Byb3ZpZGVyTWV0YURhdGEpLGUpfSkpfXJlbW92ZVRlbXBvcmFyeURhdGFQYXJhbWV0ZXIoZSxyKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMucmVtb3ZlVmFsdWUodGhpcy5fcmVzb2x2ZUtleShuLlRlbXBvcmFyeURhdGEsciksZSl9KSl9cmVtb3ZlU2Vzc2lvbkRhdGFQYXJhbWV0ZXIoZSxyKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMucmVtb3ZlVmFsdWUodGhpcy5fcmVzb2x2ZUtleShuLlNlc3Npb25EYXRhLHIpLGUpfSkpfX1jb25zdCBwPXtjbG9ja1RvbGVyYW5jZTozMDAsZW5hYmxlUEtDRTohMCxyZXNwb25zZU1vZGU6ci5xdWVyeSxzY29wZTpbIm9wZW5pZCJdLHNlbmRDb29raWVzSW5SZXF1ZXN0czohMCx2YWxpZGF0ZUlEVG9rZW46ITAsdmFsaWRhdGVJRFRva2VuSXNzdWVyOiEwfTtjbGFzcyBnewovKioKICAgICAgICAgKiBUaGlzIGlzIHRoZSBjb25zdHJ1Y3RvciBtZXRob2QgdGhhdCByZXR1cm5zIGFuIGluc3RhbmNlIG9mIHRoZSAuCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gc3RvcmUgLSBUaGUgc3RvcmUgb2JqZWN0LgogICAgICAgICAqCiAgICAgICAgICogQGV4YW1wbGUKICAgICAgICAgKiBgYGAKICAgICAgICAgKiBjb25zdCBfc3RvcmU6IFN0b3JlID0gbmV3IERhdGFTdG9yZSgpOwogICAgICAgICAqIGNvbnN0IGF1dGggPSBuZXcgQXNnYXJkZW9BdXRoQ2xpZW50PEN1c3RvbUNsaWVudENvbmZpZz4oX3N0b3JlKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjY29uc3RydWN0b3J9CiAgICAgICAgICoKICAgICAgICAgKiBAcHJlc2VydmUKICAgICAgICAgKi8KY29uc3RydWN0b3IoKXt9Ci8qKgogICAgICAgICAqCiAgICAgICAgICogVGhpcyBtZXRob2QgaW5pdGlhbGl6ZXMgdGhlIFNESyB3aXRoIHRoZSBjb25maWcgZGF0YS4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSBjb25maWcgLSBUaGUgY29uZmlnIG9iamVjdCB0byBpbml0aWFsaXplIHdpdGguCiAgICAgICAgICoKICAgICAgICAgKiBAZXhhbXBsZQogICAgICAgICAqIGNvbnN0IGNvbmZpZyA9IFx7CiAgICAgICAgICogICAgIHNpZ25JblJlZGlyZWN0VVJMOiAiaHR0cDovL2xvY2FsaG9zdDozMDAwL3NpZ24taW4iLAogICAgICAgICAqICAgICBjbGllbnRJRDogImNsaWVudCBJRCIsCiAgICAgICAgICogICAgIGJhc2VVcmw6ICJodHRwczovL2xvY2FsaG9zdDo5NDQzIgogICAgICAgICAqIFx9CiAgICAgICAgICoKICAgICAgICAgKiBhd2FpdCBhdXRoLmluaXRpYWxpemUoY29uZmlnKTsKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjaW5pdGlhbGl6ZX0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2luaXRpYWxpemUoZSxyLG4saSl7dmFyIG8scyxhO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD1lLmNsaWVudElEO2cuX2luc3RhbmNlSUQ/Zy5faW5zdGFuY2VJRCs9MTpnLl9pbnN0YW5jZUlEPTAsaSYmKGcuX2luc3RhbmNlSUQ9aSksdGhpcy5fZGF0YUxheWVyPW5ldyBmKHQ/YGluc3RhbmNlXyR7Zy5faW5zdGFuY2VJRH0tJHt0fWA6YGluc3RhbmNlXyR7Zy5faW5zdGFuY2VJRH1gLHIpLHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZT1uZXcgaCh0aGlzLl9kYXRhTGF5ZXIsbiksZy5fYXV0aGVudGljYXRpb25Db3JlPW5ldyBoKHRoaXMuX2RhdGFMYXllcixuKSx5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuc2V0Q29uZmlnRGF0YShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxwKSxlKSx7c2NvcGU6Wy4uLm51bGwhPT0obz1wLnNjb3BlKSYmdm9pZCAwIT09bz9vOltdLC4uLm51bGwhPT0oYT1udWxsPT09KHM9ZS5zY29wZSl8fHZvaWQgMD09PXM/dm9pZCAwOnMuZmlsdGVyKChlPT57dmFyIHQ7cmV0dXJuIShudWxsPT09KHQ9bnVsbD09cD92b2lkIDA6cC5zY29wZSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuaW5jbHVkZXMoZSkpfSkpKSYmdm9pZCAwIT09YT9hOltdXX0pKX0pKX0KLyoqCiAgICAgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgYERhdGFMYXllcmAgb2JqZWN0IHRoYXQgYWxsb3dzIHlvdSB0byBhY2Nlc3MgYXV0aGVudGljYXRpb24gZGF0YS4KICAgICAgICAgKgogICAgICAgICAqIEByZXR1cm5zIC0gVGhlIGBEYXRhTGF5ZXJgIG9iamVjdC4KICAgICAgICAgKgogICAgICAgICAqIEBleGFtcGxlCiAgICAgICAgICogYGBgCiAgICAgICAgICogY29uc3QgZGF0YSA9IGF1dGguZ2V0RGF0YUxheWVyKCk7CiAgICAgICAgICogYGBgCiAgICAgICAgICoKICAgICAgICAgKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2FzZ2FyZGVvL2FzZ2FyZGVvLWF1dGgtanMtc2RrL3RyZWUvbWFzdGVyI2dldERhdGFMYXllcn0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2dldERhdGFMYXllcigpe3JldHVybiB0aGlzLl9kYXRhTGF5ZXJ9Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGBpbnN0YW5jZUlEYCB2YXJpYWJsZSBvZiB0aGUgZ2l2ZW4gaW5zdGFuY2UuCiAgICAgICAgICoKICAgICAgICAgKiBAcmV0dXJucyAtIFRoZSBgaW5zdGFuY2VJRGAgbnVtYmVyLgogICAgICAgICAqCiAgICAgICAgICogQGV4YW1wbGUKICAgICAgICAgKiBgYGAKICAgICAgICAgKiBjb25zdCBpbnN0YW5jZUlkID0gYXV0aC5nZXRJbnN0YW5jZUlEKCk7CiAgICAgICAgICogYGBgCiAgICAgICAgICoKICAgICAgICAgKiBAcHJlc2VydmUKICAgICAgICAgKi9nZXRJbnN0YW5jZUlEKCl7cmV0dXJuIGcuX2luc3RhbmNlSUR9Ci8qKgogICAgICAgKiBUaGlzIGlzIGFuIGFzeW5jIG1ldGhvZCB0aGF0IHJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgYXV0aG9yaXphdGlvbiBVUkwgcGFyYW1ldGVycy4KICAgICAgICoKICAgICAgICogQHBhcmFtIGNvbmZpZyAtIChPcHRpb25hbCkgQSBjb25maWcgb2JqZWN0IHRvIGZvcmNlIGluaXRpYWxpemF0aW9uIGFuZCBwYXNzCiAgICAgICAqIGN1c3RvbSBwYXRoIHBhcmFtZXRlcnMgc3VjaCBhcyB0aGUgYGZpZHBgIHBhcmFtZXRlci4KICAgICAgICogQHBhcmFtIHVzZXJJRCAtIChPcHRpb25hbCkgQSB1bmlxdWUgSUQgb2YgdGhlIHVzZXIgdG8gYmUgYXV0aGVudGljYXRlZC4gVGhpcyBpcyB1c2VmdWwgaW4gbXVsdGktdXNlcgogICAgICAgKiBzY2VuYXJpb3Mgd2hlcmUgZWFjaCB1c2VyIHNob3VsZCBiZSB1bmlxdWVseSBpZGVudGlmaWVkLgogICAgICAgKgogICAgICAgKiBAcmV0dXJucyAtIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGF1dGhvcml6YXRpb24gVVJMIHBhcmFtZXRlcnMuCiAgICAgICAqCiAgICAgICAqIEBleGFtcGxlCiAgICAgICAqIGBgYAogICAgICAgKiBhdXRoLmdldEF1dGhvcml6YXRpb25VUkxQYXJhbXMoKS50aGVuKChwYXJhbXMpPT57CiAgICAgICAqICAvLyBjb25zb2xlLmxvZyhwYXJhbXMpOwogICAgICAgKiB9KS5jYXRjaCgoZXJyb3IpPT57CiAgICAgICAqICAvLyBjb25zb2xlLmVycm9yKGVycm9yKTsKICAgICAgICogfSk7CiAgICAgICAqIGBgYAogICAgICAgKgogICAgICAgKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2FzZ2FyZGVvL2FzZ2FyZGVvLWF1dGgtanMtc2RrL3RyZWUvbWFzdGVyI2dldEF1dGhvcml6YXRpb25VUkxQYXJhbXN9CiAgICAgICAqCiAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgKi9nZXRBdXRob3JpemF0aW9uVVJMUGFyYW1zKGUscil7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCB0PU9iamVjdC5hc3NpZ24oe30sZSk7cmV0dXJuIG51bGw9PXR8fGRlbGV0ZSB0LmZvcmNlSW5pdCwoeWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFRlbXBvcmFyeURhdGFQYXJhbWV0ZXIoIm9wX2NvbmZpZ19pbml0aWF0ZWQiKSk/dGhpcy5fYXV0aGVudGljYXRpb25Db3JlLmdldEF1dGhvcml6YXRpb25VUkxQYXJhbXModCxyKTp0aGlzLl9hdXRoZW50aWNhdGlvbkNvcmUuZ2V0T0lEQ1Byb3ZpZGVyTWV0YURhdGEobnVsbD09ZT92b2lkIDA6ZS5mb3JjZUluaXQpLnRoZW4oKCgpPT50aGlzLl9hdXRoZW50aWNhdGlvbkNvcmUuZ2V0QXV0aG9yaXphdGlvblVSTFBhcmFtcyh0LHIpKSl9KSl9Ci8qKgogICAgICAgICAqIFRoaXMgaXMgYW4gYXN5bmMgbWV0aG9kIHRoYXQgcmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBhdXRob3JpemF0aW9uIFVSTC4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSBjb25maWcgLSAoT3B0aW9uYWwpIEEgY29uZmlnIG9iamVjdCB0byBmb3JjZSBpbml0aWFsaXphdGlvbiBhbmQgcGFzcwogICAgICAgICAqIGN1c3RvbSBwYXRoIHBhcmFtZXRlcnMgc3VjaCBhcyB0aGUgZmlkcCBwYXJhbWV0ZXIuCiAgICAgICAgICogQHBhcmFtIHVzZXJJRCAtIChPcHRpb25hbCkgQSB1bmlxdWUgSUQgb2YgdGhlIHVzZXIgdG8gYmUgYXV0aGVudGljYXRlZC4gVGhpcyBpcyB1c2VmdWwgaW4gbXVsdGktdXNlcgogICAgICAgICAqIHNjZW5hcmlvcyB3aGVyZSBlYWNoIHVzZXIgc2hvdWxkIGJlIHVuaXF1ZWx5IGlkZW50aWZpZWQuCiAgICAgICAgICoKICAgICAgICAgKiBAcmV0dXJucyAtIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGF1dGhvcml6YXRpb24gVVJMLgogICAgICAgICAqCiAgICAgICAgICogQGV4YW1wbGUKICAgICAgICAgKiBgYGAKICAgICAgICAgKiBhdXRoLmdldEF1dGhvcml6YXRpb25VUkwoKS50aGVuKCh1cmwpPT57CiAgICAgICAgICogIC8vIGNvbnNvbGUubG9nKHVybCk7CiAgICAgICAgICogfSkuY2F0Y2goKGVycm9yKT0+ewogICAgICAgICAqICAvLyBjb25zb2xlLmVycm9yKGVycm9yKTsKICAgICAgICAgKiB9KTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjZ2V0QXV0aG9yaXphdGlvblVSTH0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2dldEF1dGhvcml6YXRpb25VUkwoZSxyKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9T2JqZWN0LmFzc2lnbih7fSxlKTtyZXR1cm4gbnVsbD09dHx8ZGVsZXRlIHQuZm9yY2VJbml0LCh5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0VGVtcG9yYXJ5RGF0YVBhcmFtZXRlcigib3BfY29uZmlnX2luaXRpYXRlZCIpKT90aGlzLl9hdXRoZW50aWNhdGlvbkNvcmUuZ2V0QXV0aG9yaXphdGlvblVSTCh0LHIpOnRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5nZXRPSURDUHJvdmlkZXJNZXRhRGF0YShudWxsPT1lP3ZvaWQgMDplLmZvcmNlSW5pdCkudGhlbigoKCk9PnRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5nZXRBdXRob3JpemF0aW9uVVJMKHQscikpKX0pKX0KLyoqCiAgICAgICAgICogVGhpcyBpcyBhbiBhc3luYyBtZXRob2QgdGhhdCBzZW5kcyBhIHJlcXVlc3QgdG8gb2J0YWluIHRoZSBhY2Nlc3MgdG9rZW4gYW5kIHJldHVybnMgYSBQcm9taXNlCiAgICAgICAgICogdGhhdCByZXNvbHZlcyB3aXRoIHRoZSB0b2tlbiBhbmQgb3RoZXIgcmVsZXZhbnQgZGF0YS4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSBhdXRob3JpemF0aW9uQ29kZSAtIFRoZSBhdXRob3JpemF0aW9uIGNvZGUuCiAgICAgICAgICogQHBhcmFtIHNlc3Npb25TdGF0ZSAtIFRoZSBzZXNzaW9uIHN0YXRlLgogICAgICAgICAqIEBwYXJhbSB1c2VySUQgLSAoT3B0aW9uYWwpIEEgdW5pcXVlIElEIG9mIHRoZSB1c2VyIHRvIGJlIGF1dGhlbnRpY2F0ZWQuIFRoaXMgaXMgdXNlZnVsIGluIG11bHRpLXVzZXIKICAgICAgICAgKiBzY2VuYXJpb3Mgd2hlcmUgZWFjaCB1c2VyIHNob3VsZCBiZSB1bmlxdWVseSBpZGVudGlmaWVkLgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSB0b2tlbiByZXNwb25zZS4KICAgICAgICAgKgogICAgICAgICAqIEBleGFtcGxlCiAgICAgICAgICogYGBgCiAgICAgICAgICogYXV0aC5yZXF1ZXN0QWNjZXNzVG9rZW4oYXV0aENvZGUsIHNlc3Npb25TdGF0ZSkudGhlbigodG9rZW4pPT57CiAgICAgICAgICogIC8vIGNvbnNvbGUubG9nKHRva2VuKTsKICAgICAgICAgKiB9KS5jYXRjaCgoZXJyb3IpPT57CiAgICAgICAgICogIC8vIGNvbnNvbGUuZXJyb3IoZXJyb3IpOwogICAgICAgICAqIH0pOwogICAgICAgICAqIGBgYAogICAgICAgICAqCiAgICAgICAgICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2dhcmRlby9hc2dhcmRlby1hdXRoLWpzLXNkay90cmVlL21hc3RlciNyZXF1ZXN0QWNjZXNzVG9rZW59CiAgICAgICAgICoKICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL3JlcXVlc3RBY2Nlc3NUb2tlbihlLHIsbixpLG8pe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuKHlpZWxkIHRoaXMuX2RhdGFMYXllci5nZXRUZW1wb3JhcnlEYXRhUGFyYW1ldGVyKCJvcF9jb25maWdfaW5pdGlhdGVkIikpP3RoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5yZXF1ZXN0QWNjZXNzVG9rZW4oZSxyLG4saSxvKTp0aGlzLl9hdXRoZW50aWNhdGlvbkNvcmUuZ2V0T0lEQ1Byb3ZpZGVyTWV0YURhdGEoITEpLnRoZW4oKCgpPT50aGlzLl9hdXRoZW50aWNhdGlvbkNvcmUucmVxdWVzdEFjY2Vzc1Rva2VuKGUscixuLGksbykpKX0pKX0KLyoqCiAgICAgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgc2lnbi1vdXQgVVJMLgogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtIHVzZXJJRCAtIChPcHRpb25hbCkgQSB1bmlxdWUgSUQgb2YgdGhlIHVzZXIgdG8gYmUgYXV0aGVudGljYXRlZC4gVGhpcyBpcyB1c2VmdWwgaW4gbXVsdGktdXNlcgogICAgICAgICAqIHNjZW5hcmlvcyB3aGVyZSBlYWNoIHVzZXIgc2hvdWxkIGJlIHVuaXF1ZWx5IGlkZW50aWZpZWQuCiAgICAgICAgICoKICAgICAgICAgKiAqKlRoaXMgZG9lc24ndCBjbGVhciB0aGUgYXV0aGVudGljYXRpb24gZGF0YS4qKgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBzaWduLW91dCBVUkwuCiAgICAgICAgICoKICAgICAgICAgKiBAZXhhbXBsZQogICAgICAgICAqIGBgYAogICAgICAgICAqIGNvbnN0IHNpZ25PdXRVcmwgPSBhd2FpdCBhdXRoLmdldFNpZ25PdXRVUkwoKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjZ2V0U2lnbk91dFVSTH0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2dldFNpZ25PdXRVUkwoZSl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25Db3JlLmdldFNpZ25PdXRVUkwoZSl9KSl9Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgT0lEQyBzZXJ2aWNlIGVuZHBvaW50cyB0aGF0IGFyZSBmZXRjaGVkIGZyb20gdGhlIGAud2VsbC1rbm93bmAgZW5kcG9pbnQuCiAgICAgICAgICoKICAgICAgICAgKiBAcmV0dXJucyAtIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIE9JREMgc2VydmljZSBlbmRwb2ludHMuCiAgICAgICAgICoKICAgICAgICAgKiBAZXhhbXBsZQogICAgICAgICAqIGBgYAogICAgICAgICAqIGNvbnN0IGVuZHBvaW50cyA9IGF3YWl0IGF1dGguZ2V0T0lEQ1NlcnZpY2VFbmRwb2ludHMoKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjZ2V0T0lEQ1NlcnZpY2VFbmRwb2ludHN9CiAgICAgICAgICoKICAgICAgICAgKiBAcHJlc2VydmUKICAgICAgICAgKi9nZXRPSURDU2VydmljZUVuZHBvaW50cygpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5nZXRPSURDU2VydmljZUVuZHBvaW50cygpfSkpfQovKioKICAgICAgICAgKiBUaGlzIG1ldGhvZCBkZWNvZGVzIHRoZSBwYXlsb2FkIG9mIHRoZSBJRCB0b2tlbiBhbmQgcmV0dXJucyBpdC4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSB1c2VySUQgLSAoT3B0aW9uYWwpIEEgdW5pcXVlIElEIG9mIHRoZSB1c2VyIHRvIGJlIGF1dGhlbnRpY2F0ZWQuIFRoaXMgaXMgdXNlZnVsIGluIG11bHRpLXVzZXIKICAgICAgICAgKiBzY2VuYXJpb3Mgd2hlcmUgZWFjaCB1c2VyIHNob3VsZCBiZSB1bmlxdWVseSBpZGVudGlmaWVkLgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBkZWNvZGVkIElEIHRva2VuIHBheWxvYWQuCiAgICAgICAgICoKICAgICAgICAgKiBAZXhhbXBsZQogICAgICAgICAqIGBgYAogICAgICAgICAqIGNvbnN0IGRlY29kZWRJZFRva2VuID0gYXdhaXQgYXV0aC5nZXREZWNvZGVkSURUb2tlbigpOwogICAgICAgICAqIGBgYAogICAgICAgICAqCiAgICAgICAgICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2dhcmRlby9hc2dhcmRlby1hdXRoLWpzLXNkay90cmVlL21hc3RlciNnZXREZWNvZGVkSURUb2tlbn0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2dldERlY29kZWRJRFRva2VuKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5nZXREZWNvZGVkSURUb2tlbihlKX0pKX0KLyoqCiAgICAgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgSUQgdG9rZW4uCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gdXNlcklEIC0gKE9wdGlvbmFsKSBBIHVuaXF1ZSBJRCBvZiB0aGUgdXNlciB0byBiZSBhdXRoZW50aWNhdGVkLiBUaGlzIGlzIHVzZWZ1bCBpbiBtdWx0aS11c2VyCiAgICAgICAgICogc2NlbmFyaW9zIHdoZXJlIGVhY2ggdXNlciBzaG91bGQgYmUgdW5pcXVlbHkgaWRlbnRpZmllZC4KICAgICAgICAgKgogICAgICAgICAqIEByZXR1cm5zIC0gQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgSUQgdG9rZW4uCiAgICAgICAgICoKICAgICAgICAgKiBAZXhhbXBsZQogICAgICAgICAqIGBgYAogICAgICAgICAqIGNvbnN0IGlkVG9rZW4gPSBhd2FpdCBhdXRoLmdldElEVG9rZW4oKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjZ2V0SURUb2tlbn0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2dldElEVG9rZW4oZSl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25Db3JlLmdldElEVG9rZW4oZSl9KSl9Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGJhc2ljIHVzZXIgaW5mb3JtYXRpb24gb2J0YWluZWQgZnJvbSB0aGUgSUQgdG9rZW4uCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gdXNlcklEIC0gKE9wdGlvbmFsKSBBIHVuaXF1ZSBJRCBvZiB0aGUgdXNlciB0byBiZSBhdXRoZW50aWNhdGVkLiBUaGlzIGlzIHVzZWZ1bCBpbiBtdWx0aS11c2VyCiAgICAgICAgICogc2NlbmFyaW9zIHdoZXJlIGVhY2ggdXNlciBzaG91bGQgYmUgdW5pcXVlbHkgaWRlbnRpZmllZC4KICAgICAgICAgKgogICAgICAgICAqIEByZXR1cm5zIC0gQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgYmFzaWMgdXNlciBpbmZvcm1hdGlvbi4KICAgICAgICAgKgogICAgICAgICAqIEBleGFtcGxlCiAgICAgICAgICogYGBgCiAgICAgICAgICogY29uc3QgdXNlckluZm8gPSBhd2FpdCBhdXRoLmdldEJhc2ljVXNlckluZm8oKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjZ2V0QmFzaWNVc2VySW5mb30KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2dldEJhc2ljVXNlckluZm8oZSl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25Db3JlLmdldEJhc2ljVXNlckluZm8oZSl9KSl9Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGNyeXB0byBoZWxwZXIgb2JqZWN0LgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGEgQ3J5cHRvSGVscGVyIG9iamVjdC4KICAgICAgICAgKgogICAgICAgICAqIEBleGFtcGxlCiAgICAgICAgICogYGBgCiAgICAgICAgICogY29uc3QgY3J5cHRvSGVscGVyID0gYXdhaXQgYXV0aC5DcnlwdG9IZWxwZXIoKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjZ2V0Q3J5cHRvSGVscGVyfQogICAgICAgICAqCiAgICAgICAgICogQHByZXNlcnZlCiAgICAgICAgICovZ2V0Q3J5cHRvSGVscGVyKCl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25Db3JlLmdldENyeXB0b0hlbHBlcigpfSkpfQovKioKICAgICAgICAgKiBUaGlzIG1ldGhvZCByZXZva2VzIHRoZSBhY2Nlc3MgdG9rZW4uCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gdXNlcklEIC0gKE9wdGlvbmFsKSBBIHVuaXF1ZSBJRCBvZiB0aGUgdXNlciB0byBiZSBhdXRoZW50aWNhdGVkLiBUaGlzIGlzIHVzZWZ1bCBpbiBtdWx0aS11c2VyCiAgICAgICAgICogc2NlbmFyaW9zIHdoZXJlIGVhY2ggdXNlciBzaG91bGQgYmUgdW5pcXVlbHkgaWRlbnRpZmllZC4KICAgICAgICAgKgogICAgICAgICAqICoqVGhpcyBtZXRob2QgYWxzbyBjbGVhcnMgdGhlIGF1dGhlbnRpY2F0aW9uIGRhdGEuKioKICAgICAgICAgKgogICAgICAgICAqIEByZXR1cm5zIC0gQSBQcm9taXNlIHRoYXQgcmV0dXJucyB0aGUgcmVzcG9uc2Ugb2YgdGhlIHJldm9rZS1hY2Nlc3MtdG9rZW4gcmVxdWVzdC4KICAgICAgICAgKgogICAgICAgICAqIEBleGFtcGxlCiAgICAgICAgICogYGBgCiAgICAgICAgICogYXV0aC5yZXZva2VBY2Nlc3NUb2tlbigpLnRoZW4oKHJlc3BvbnNlKT0+ewogICAgICAgICAqICAvLyBjb25zb2xlLmxvZyhyZXNwb25zZSk7CiAgICAgICAgICogfSkuY2F0Y2goKGVycm9yKT0+ewogICAgICAgICAqICAvLyBjb25zb2xlLmVycm9yKGVycm9yKTsKICAgICAgICAgKiB9KTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjcmV2b2tlQWNjZXNzVG9rZW59CiAgICAgICAgICoKICAgICAgICAgKiBAcHJlc2VydmUKICAgICAgICAgKi9yZXZva2VBY2Nlc3NUb2tlbihlKXtyZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25Db3JlLnJldm9rZUFjY2Vzc1Rva2VuKGUpfQovKioKICAgICAgICAgKiBUaGlzIG1ldGhvZCByZWZyZXNoZXMgdGhlIGFjY2VzcyB0b2tlbiBhbmQgcmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBuZXcgYWNjZXNzCiAgICAgICAgICogdG9rZW4gYW5kIG90aGVyIHJlbGV2YW50IGRhdGEuCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gdXNlcklEIC0gKE9wdGlvbmFsKSBBIHVuaXF1ZSBJRCBvZiB0aGUgdXNlciB0byBiZSBhdXRoZW50aWNhdGVkLiBUaGlzIGlzIHVzZWZ1bCBpbiBtdWx0aS11c2VyCiAgICAgICAgICogc2NlbmFyaW9zIHdoZXJlIGVhY2ggdXNlciBzaG91bGQgYmUgdW5pcXVlbHkgaWRlbnRpZmllZC4KICAgICAgICAgKgogICAgICAgICAqIEByZXR1cm5zIC0gQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgdG9rZW4gcmVzcG9uc2UuCiAgICAgICAgICoKICAgICAgICAgKiBAZXhhbXBsZQogICAgICAgICAqIGBgYAogICAgICAgICAqIGF1dGgucmVmcmVzaEFjY2Vzc1Rva2VuKCkudGhlbigocmVzcG9uc2UpPT57CiAgICAgICAgICogIC8vIGNvbnNvbGUubG9nKHJlc3BvbnNlKTsKICAgICAgICAgKiB9KS5jYXRjaCgoZXJyb3IpPT57CiAgICAgICAgICogIC8vIGNvbnNvbGUuZXJyb3IoZXJyb3IpOwogICAgICAgICAqIH0pOwogICAgICAgICAqIGBgYAogICAgICAgICAqCiAgICAgICAgICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2dhcmRlby9hc2dhcmRlby1hdXRoLWpzLXNkay90cmVlL21hc3RlciNyZWZyZXNoQWNjZXNzVG9rZW59CiAgICAgICAgICoKICAgICAgICAgKiBAcHJlc2VydmUKICAgICAgICAgKi9yZWZyZXNoQWNjZXNzVG9rZW4oZSl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5yZWZyZXNoQWNjZXNzVG9rZW4oZSl9Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGFjY2VzcyB0b2tlbi4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSB1c2VySUQgLSAoT3B0aW9uYWwpIEEgdW5pcXVlIElEIG9mIHRoZSB1c2VyIHRvIGJlIGF1dGhlbnRpY2F0ZWQuIFRoaXMgaXMgdXNlZnVsIGluIG11bHRpLXVzZXIKICAgICAgICAgKiBzY2VuYXJpb3Mgd2hlcmUgZWFjaCB1c2VyIHNob3VsZCBiZSB1bmlxdWVseSBpZGVudGlmaWVkLgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBhY2Nlc3MgdG9rZW4uCiAgICAgICAgICoKICAgICAgICAgKiBAZXhhbXBsZQogICAgICAgICAqIGBgYAogICAgICAgICAqIGNvbnN0IGFjY2Vzc1Rva2VuID0gYXdhaXQgYXV0aC5nZXRBY2Nlc3NUb2tlbigpOwogICAgICAgICAqIGBgYAogICAgICAgICAqCiAgICAgICAgICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2dhcmRlby9hc2dhcmRlby1hdXRoLWpzLXNkay90cmVlL21hc3RlciNnZXRBY2Nlc3NUb2tlbn0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2dldEFjY2Vzc1Rva2VuKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5nZXRBY2Nlc3NUb2tlbihlKX0pKX0KLyoqCiAgICAgICAgICogVGhpcyBtZXRob2Qgc2VuZHMgYSBjdXN0b20tZ3JhbnQgcmVxdWVzdCBhbmQgcmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSByZXNwb25zZQogICAgICAgICAqIGRlcGVuZGluZyBvbiB0aGUgY29uZmlnIHBhc3NlZC4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSBjb25maWcgLSBBIGNvbmZpZyBvYmplY3QgY29udGFpbmluZyB0aGUgY3VzdG9tIGdyYW50IGNvbmZpZ3VyYXRpb25zLgogICAgICAgICAqIEBwYXJhbSB1c2VySUQgLSAoT3B0aW9uYWwpIEEgdW5pcXVlIElEIG9mIHRoZSB1c2VyIHRvIGJlIGF1dGhlbnRpY2F0ZWQuIFRoaXMgaXMgdXNlZnVsIGluIG11bHRpLXVzZXIKICAgICAgICAgKiBzY2VuYXJpb3Mgd2hlcmUgZWFjaCB1c2VyIHNob3VsZCBiZSB1bmlxdWVseSBpZGVudGlmaWVkLgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSByZXNwb25zZSBkZXBlbmRpbmcKICAgICAgICAgKiBvbiB5b3VyIGNvbmZpZ3VyYXRpb25zLgogICAgICAgICAqCiAgICAgICAgICogQGV4YW1wbGUKICAgICAgICAgKiBgYGAKICAgICAgICAgKiBjb25zdCBjb25maWcgPSB7CiAgICAgICAgICogICBhdHRhY2hUb2tlbjogZmFsc2UsCiAgICAgICAgICogICBkYXRhOiB7CiAgICAgICAgICogICAgICAgY2xpZW50X2lkOiAie3tjbGllbnRJRH19IiwKICAgICAgICAgKiAgICAgICBncmFudF90eXBlOiAiYWNjb3VudF9zd2l0Y2giLAogICAgICAgICAqICAgICAgIHNjb3BlOiAie3tzY29wZX19IiwKICAgICAgICAgKiAgICAgICB0b2tlbjogInt7dG9rZW59fSIsCiAgICAgICAgICogICB9LAogICAgICAgICAqICAgaWQ6ICJhY2NvdW50LXN3aXRjaCIsCiAgICAgICAgICogICByZXR1cm5SZXNwb25zZTogdHJ1ZSwKICAgICAgICAgKiAgIHJldHVybnNTZXNzaW9uOiB0cnVlLAogICAgICAgICAqICAgc2lnbkluUmVxdWlyZWQ6IHRydWUKICAgICAgICAgKiB9CiAgICAgICAgICoKICAgICAgICAgKiBhdXRoLnJlcXVlc3RDdXN0b21HcmFudChjb25maWcpLnRoZW4oKHJlc3BvbnNlKT0+ewogICAgICAgICAqICAvLyBjb25zb2xlLmxvZyhyZXNwb25zZSk7CiAgICAgICAgICogfSkuY2F0Y2goKGVycm9yKT0+ewogICAgICAgICAqICAvLyBjb25zb2xlLmVycm9yKGVycm9yKTsKICAgICAgICAgKiB9KTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjcmVxdWVzdEN1c3RvbUdyYW50fQogICAgICAgICAqCiAgICAgICAgICogQHByZXNlcnZlCiAgICAgICAgICovcmVxdWVzdEN1c3RvbUdyYW50KGUsdCl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5yZXF1ZXN0Q3VzdG9tR3JhbnQoZSx0KX0KLyoqCiAgICAgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyBpZiB0aGUgdXNlciBpcyBhdXRoZW50aWNhdGVkIG9yIG5vdC4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSB1c2VySUQgLSAoT3B0aW9uYWwpIEEgdW5pcXVlIElEIG9mIHRoZSB1c2VyIHRvIGJlIGF1dGhlbnRpY2F0ZWQuIFRoaXMgaXMgdXNlZnVsIGluIG11bHRpLXVzZXIKICAgICAgICAgKiBzY2VuYXJpb3Mgd2hlcmUgZWFjaCB1c2VyIHNob3VsZCBiZSB1bmlxdWVseSBpZGVudGlmaWVkLgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGB0cnVlYCBpZiB0aGUgdXNlciBpcyBhdXRoZW50aWNhdGVkLCBgZmFsc2VgIG90aGVyd2lzZS4KICAgICAgICAgKgogICAgICAgICAqIEBleGFtcGxlCiAgICAgICAgICogYGBgCiAgICAgICAgICogYXdhaXQgYXV0aC5pc0F1dGhlbnRpY2F0ZWQoKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjaXNBdXRoZW50aWNhdGVkfQogICAgICAgICAqCiAgICAgICAgICogQHByZXNlcnZlCiAgICAgICAgICovaXNBdXRoZW50aWNhdGVkKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5pc0F1dGhlbnRpY2F0ZWQoZSl9KSl9Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIFBLQ0UgY29kZSBnZW5lcmF0ZWQgZHVyaW5nIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBVUkwuCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gdXNlcklEIC0gKE9wdGlvbmFsKSBBIHVuaXF1ZSBJRCBvZiB0aGUgdXNlciB0byBiZSBhdXRoZW50aWNhdGVkLiBUaGlzIGlzIHVzZWZ1bCBpbiBtdWx0aS11c2VyCiAgICAgICAgICogc2NlbmFyaW9zIHdoZXJlIGVhY2ggdXNlciBzaG91bGQgYmUgdW5pcXVlbHkgaWRlbnRpZmllZC4KICAgICAgICAgKiBAcGFyYW0gc3RhdGUgLSBUaGUgc3RhdGUgcGFyYW1ldGVyIHRoYXQgd2FzIHBhc3NlZCBpbiB0aGUgYXV0aGVudGljYXRpb24gVVJMLgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBQS0NFIGNvZGUuCiAgICAgICAgICoKICAgICAgICAgKiBAZXhhbXBsZQogICAgICAgICAqIGBgYAogICAgICAgICAqIGNvbnN0IHBrY2UgPSBhd2FpdCBnZXRQS0NFQ29kZSgpOwogICAgICAgICAqIGBgYAogICAgICAgICAqCiAgICAgICAgICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2dhcmRlby9hc2dhcmRlby1hdXRoLWpzLXNkay90cmVlL21hc3RlciNnZXRQS0NFQ29kZX0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2dldFBLQ0VDb2RlKGUscil7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25Db3JlLmdldFBLQ0VDb2RlKGUscil9KSl9Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHNldHMgdGhlIFBLQ0UgY29kZSB0byB0aGUgZGF0YSBzdG9yZS4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSBwa2NlIC0gVGhlIFBLQ0UgY29kZS4KICAgICAgICAgKiBAcGFyYW0gc3RhdGUgLSBUaGUgc3RhdGUgcGFyYW1ldGVyIHRoYXQgd2FzIHBhc3NlZCBpbiB0aGUgYXV0aGVudGljYXRpb24gVVJMLgogICAgICAgICAqIEBwYXJhbSB1c2VySUQgLSAoT3B0aW9uYWwpIEEgdW5pcXVlIElEIG9mIHRoZSB1c2VyIHRvIGJlIGF1dGhlbnRpY2F0ZWQuIFRoaXMgaXMgdXNlZnVsIGluIG11bHRpLXVzZXIKICAgICAgICAgKiBzY2VuYXJpb3Mgd2hlcmUgZWFjaCB1c2VyIHNob3VsZCBiZSB1bmlxdWVseSBpZGVudGlmaWVkLgogICAgICAgICAqCiAgICAgICAgICogQGV4YW1wbGUKICAgICAgICAgKiBgYGAKICAgICAgICAgKiBhd2FpdCBhdXRoLnNldFBLQ0VDb2RlKCJwa2NlX2NvZGUiKQogICAgICAgICAqIGBgYAogICAgICAgICAqCiAgICAgICAgICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2dhcmRlby9hc2dhcmRlby1hdXRoLWpzLXNkay90cmVlL21hc3RlciNzZXRQS0NFQ29kZX0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL3NldFBLQ0VDb2RlKGUscixuKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5zZXRQS0NFQ29kZShlLHIsbil9KSl9Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgaWYgdGhlIHNpZ24tb3V0IGlzIHN1Y2Nlc3NmdWwgb3Igbm90LgogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtIHNpZ25PdXRSZWRpcmVjdFVybCAtIFRoZSBVUkwgdG8gd2hpY2ggdGhlIHVzZXIgaGFzIGJlZW4gcmVkaXJlY3RlZCB0byBhZnRlciBzaWduaW5nLW91dC4KICAgICAgICAgKgogICAgICAgICAqICoqVGhlIHNlcnZlciBhcHBlbmRzIHBhdGggcGFyYW1ldGVycyB0byB0aGUgYHNpZ25PdXRSZWRpcmVjdFVSTGAgYW5kIHRoZXNlIHBhdGggcGFyYW1ldGVycwogICAgICAgICAqICBhcmUgcmVxdWlyZWQgZm9yIHRoaXMgbWV0aG9kIHRvIGZ1bmN0aW9uLioqCiAgICAgICAgICoKICAgICAgICAgKiBAcmV0dXJucyAtIGB0cnVlYCBpZiBzdWNjZXNzZnVsLCBgZmFsc2VgIG90aGVyd2lzZS4KICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjaXNTaWduT3V0U3VjY2Vzc2Z1bH0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL3N0YXRpYyBpc1NpZ25PdXRTdWNjZXNzZnVsKGUpe2NvbnN0IHQ9bmV3IFVSTChlKSxyPXQuc2VhcmNoUGFyYW1zLmdldCgic3RhdGUiKSxuPUJvb2xlYW4odC5zZWFyY2hQYXJhbXMuZ2V0KCJlcnJvciIpKTtyZXR1cm4hIXImJiJzaWduX291dF9zdWNjZXNzIj09PXImJiFufQovKioKICAgICAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGlmIHRoZSBzaWduLW91dCBoYXMgZmFpbGVkIG9yIG5vdC4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSBzaWduT3V0UmVkaXJlY3RVcmwgLSBUaGUgVVJMIHRvIHdoaWNoIHRoZSB1c2VyIGhhcyBiZWVuIHJlZGlyZWN0ZWQgdG8gYWZ0ZXIgc2lnbmluZy1vdXQuCiAgICAgICAgICoKICAgICAgICAgKiAqKlRoZSBzZXJ2ZXIgYXBwZW5kcyBwYXRoIHBhcmFtZXRlcnMgdG8gdGhlIGBzaWduT3V0UmVkaXJlY3RVUkxgIGFuZCB0aGVzZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAgKiAgYXJlIHJlcXVpcmVkIGZvciB0aGlzIG1ldGhvZCB0byBmdW5jdGlvbi4qKgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBgdHJ1ZWAgaWYgc3VjY2Vzc2Z1bCwgYGZhbHNlYCBvdGhlcndpc2UuCiAgICAgICAgICoKICAgICAgICAgKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2FzZ2FyZGVvL2FzZ2FyZGVvLWF1dGgtanMtc2RrL3RyZWUvbWFzdGVyI2RpZFNpZ25PdXRGYWlsfQogICAgICAgICAqCiAgICAgICAgICogQHByZXNlcnZlCiAgICAgICAgICovc3RhdGljIGRpZFNpZ25PdXRGYWlsKGUpe2NvbnN0IHQ9bmV3IFVSTChlKSxyPXQuc2VhcmNoUGFyYW1zLmdldCgic3RhdGUiKSxuPUJvb2xlYW4odC5zZWFyY2hQYXJhbXMuZ2V0KCJlcnJvciIpKTtyZXR1cm4hIXImJiJzaWduX291dF9zdWNjZXNzIj09PXImJm59Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHVwZGF0ZXMgdGhlIGNvbmZpZ3VyYXRpb24gdGhhdCB3YXMgcGFzc2VkIGludG8gdGhlIGNvbnN0cnVjdG9yIHdoZW4gaW5zdGFudGlhdGluZyB0aGlzIGNsYXNzLgogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtIGNvbmZpZyAtIEEgY29uZmlnIG9iamVjdCB0byB1cGRhdGUgdGhlIFNESyBjb25maWd1cmF0aW9ucyB3aXRoLgogICAgICAgICAqCiAgICAgICAgICogQGV4YW1wbGUKICAgICAgICAgKiBgYGAKICAgICAgICAgKiBjb25zdCBjb25maWcgPSB7CiAgICAgICAgICogICAgIHNpZ25JblJlZGlyZWN0VVJMOiAiaHR0cDovL2xvY2FsaG9zdDozMDAwL3NpZ24taW4iLAogICAgICAgICAqICAgICBjbGllbnRJRDogImNsaWVudCBJRCIsCiAgICAgICAgICogICAgIGJhc2VVcmw6ICJodHRwczovL2xvY2FsaG9zdDo5NDQzIgogICAgICAgICAqIH0KICAgICAgICAgKgogICAgICAgICAqIGF3YWl0IGF1dGgudXBkYXRlQ29uZmlnKGNvbmZpZyk7CiAgICAgICAgICogYGBgCiAgICAgICAgICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2dhcmRlby9hc2dhcmRlby1hdXRoLWpzLXNkay90cmVlL21hc3RlciN1cGRhdGVDb25maWd9CiAgICAgICAgICoKICAgICAgICAgKiBAcHJlc2VydmUKICAgICAgICAgKi91cGRhdGVDb25maWcoZSl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt5aWVsZCB0aGlzLl9hdXRoZW50aWNhdGlvbkNvcmUudXBkYXRlQ29uZmlnKGUpfSkpfXN0YXRpYyBjbGVhclVzZXJTZXNzaW9uRGF0YShlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5jbGVhclVzZXJTZXNzaW9uRGF0YShlKX0pKX19Y29uc3Qgdj0iaW5pdCI7dmFyIHk7IWZ1bmN0aW9uKGUpe2UuU2lnbkluPSJzaWduLWluIixlLlNpZ25PdXQ9InNpZ24tb3V0IixlLkluaXRpYWxpemU9ImluaXRpYWxpemUiLGUuSHR0cFJlcXVlc3RTdGFydD0iaHR0cC1yZXF1ZXN0LXN0YXJ0IixlLkh0dHBSZXF1ZXN0RmluaXNoPSJodHRwLXJlcXVlc3QtZmluaXNoIixlLkh0dHBSZXF1ZXN0RXJyb3I9Imh0dHAtcmVxdWVzdC1lcnJvciIsZS5IdHRwUmVxdWVzdFN1Y2Nlc3M9Imh0dHAtcmVxdWVzdC1zdWNjZXNzIixlLlJldm9rZUFjY2Vzc1Rva2VuPSJyZXZva2UtYWNjZXNzLXRva2VuIixlLkN1c3RvbUdyYW50PSJjdXN0b20tZ3JhbnQiLGUuU2lnbk91dEZhaWxlZD0ic2lnbi1vdXQtZmFpbGVkIn0oeXx8KHk9e30pKTtjb25zdCBtPSJwcm9tcHROb25lUmVxdWVzdFNlbnQiLHc9ImVycm9yIixfPSJlcnJvcl9kZXNjcmlwdGlvbiIsUz0iY3VzdG9tX2dyYW50X2NvbmZpZyIsYj0iQWNjZXNzIHRva2VuIGlzIGludmFsaWQiO3ZhciBFOyFmdW5jdGlvbihlKXtlLkxvY2FsU3RvcmFnZT0ibG9jYWxTdG9yYWdlIixlLlNlc3Npb25TdG9yYWdlPSJzZXNzaW9uU3RvcmFnZSIsZS5XZWJXb3JrZXI9IndlYldvcmtlciIsZS5Ccm93c2VyTWVtb3J5PSJicm93c2VyTWVtb3J5In0oRXx8KEU9e30pKTtjbGFzcyBre2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKGUpe3JldHVybntibG9iOihudWxsPT1lP3ZvaWQgMDplLmRhdGEpaW5zdGFuY2VvZiBCbG9iP251bGw9PWU/dm9pZCAwOmUuZGF0YTpudWxsLGRhdGE6SlNPTi5zdHJpbmdpZnkobnVsbCE9ZT9lOiIiKSxzdWNjZXNzOiEwfX1zdGF0aWMgZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKXtyZXR1cm4obnVsbD09ZT92b2lkIDA6ZS50b0pTT04pJiZkZWxldGUgZS50b0pTT04se2Vycm9yOkpTT04uc3RyaW5naWZ5KG51bGwhPWU/ZToiIiksc3VjY2VzczohMX19fWNsYXNzIFJ7Y29uc3RydWN0b3IoKXt9c3RhdGljIHJlbW92ZUF1dGhvcml6YXRpb25Db2RlKCl7Y29uc3QgZT1sb2NhdGlvbi5ocmVmO2hpc3RvcnkucHVzaFN0YXRlKHt9LGRvY3VtZW50LnRpdGxlLGUucmVwbGFjZSgvXD9jb2RlPS4qJC8sIiIpKX1zdGF0aWMgZ2V0UEtDRShlKXt2YXIgdDtyZXR1cm4gbnVsbCE9PSh0PXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZSkpJiZ2b2lkIDAhPT10P3Q6IiJ9c3RhdGljIHNldFBLQ0UoZSx0KXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGUsdCl9c3RhdGljIHNldFNpZ25PdXRVUkwoZSx0LHIpe3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oYCR7c30taW5zdGFuY2VfJHtyfS0ke3R9YCxlKX1zdGF0aWMgZ2V0U2lnbk91dFVSTChlLHQpe3ZhciByO3JldHVybiBudWxsIT09KHI9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShgJHtzfS1pbnN0YW5jZV8ke3R9LSR7ZX1gKSkmJnZvaWQgMCE9PXI/cjoiIn1zdGF0aWMgcmVtb3ZlUEtDRShlKXtzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGUpfXN0YXRpYyBjYW5Db250aW51ZVNpZ25JbihlLHQpe3JldHVybiEoZSYmIVIuaGFzRXJyb3JJblVSTCgpJiYhUi5oYXNBdXRoU2VhcmNoUGFyYW1zSW5VUkwoKSYmIXQpfXN0YXRpYyBpc0luaXRpYWxpemVkU2lsZW50U2lnbkluKCl7cmV0dXJuIFIuaXNTaWxlbnRTdGF0ZVByZXNlbnRJblVSTCgpfXN0YXRpYyB3YXNTaWduSW5DYWxsZWQoKXtyZXR1cm4hKCFSLmhhc0Vycm9ySW5VUkwoKSYmIVIuaGFzQXV0aFNlYXJjaFBhcmFtc0luVVJMKCl8fHRoaXMuaXNTaWxlbnRTdGF0ZVByZXNlbnRJblVSTCgpKX1zdGF0aWMgd2FzU2lsZW50U2lnbkluQ2FsbGVkKCl7Y29uc3QgZT1zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJpbml0aWFsaXplZC1zaWxlbnQtc2lnbi1pbiIpLHQ9ZT9KU09OLnBhcnNlKGUpOm51bGw7cmV0dXJuIEJvb2xlYW4odCl9c3RhdGljIGlzU2lnbk91dFN1Y2Nlc3NmdWwoKXtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2lmKGcuaXNTaWduT3V0U3VjY2Vzc2Z1bCh3aW5kb3cubG9jYXRpb24uaHJlZikpe2NvbnN0IGU9d2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoIj8iKVswXTtyZXR1cm4gaGlzdG9yeS5wdXNoU3RhdGUoe30sZG9jdW1lbnQudGl0bGUsZSkseWllbGQgZy5jbGVhclVzZXJTZXNzaW9uRGF0YSgpLCEwfXJldHVybiExfSkpfXN0YXRpYyBkaWRTaWduT3V0RmFpbCgpe2lmKGcuZGlkU2lnbk91dEZhaWwod2luZG93LmxvY2F0aW9uLmhyZWYpKXtjb25zdCBlPW5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpLHQ9ZS5zZWFyY2hQYXJhbXMuZ2V0KHcpLHI9ZS5zZWFyY2hQYXJhbXMuZ2V0KF8pLG49d2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoIj8iKVswXTtyZXR1cm4gaGlzdG9yeS5wdXNoU3RhdGUoe30sZG9jdW1lbnQudGl0bGUsbikse2Rlc2NyaXB0aW9uOm51bGwhPXI/cjoiIixlcnJvcjpudWxsIT10P3Q6IiJ9fXJldHVybiExfXN0YXRpYyBpc1NpbGVudFN0YXRlUHJlc2VudEluVVJMKCl7dmFyIGU7Y29uc3QgdD1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5zZWFyY2hQYXJhbXMuZ2V0KCJzdGF0ZSIpO3JldHVybiBudWxsIT09KGU9bnVsbD09dD92b2lkIDA6dC5pbmNsdWRlcygic2lnbi1pbi1zaWxlbnRseSIpKSYmdm9pZCAwIT09ZSYmZX1zdGF0aWMgaGFzQXV0aFNlYXJjaFBhcmFtc0luVVJMKGU9d2luZG93LmxvY2F0aW9uLnNlYXJjaCl7cmV0dXJuL1s/Jl1jb2RlPVteJl0rLy50ZXN0KGUpfXN0YXRpYyBoYXNFcnJvckluVVJMKGU9d2luZG93LmxvY2F0aW9uLmhyZWYpe2NvbnN0IHQ9bmV3IFVSTChlKTtyZXR1cm4hIXQuc2VhcmNoUGFyYW1zLmdldCh3KSYmInNpZ25fb3V0X3N1Y2Nlc3MiIT09dC5zZWFyY2hQYXJhbXMuZ2V0KCJzdGF0ZSIpfXN0YXRpYyBjYW5TZW5kUHJvbXB0Tm9uZVJlcXVlc3QoKXtjb25zdCBlPXNlc3Npb25TdG9yYWdlLmdldEl0ZW0obSk7cmV0dXJuIShlP0pTT04ucGFyc2UoZSk6bnVsbCl9c3RhdGljIHNldFByb21wdE5vbmVSZXF1ZXN0U2VudChlKXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKG0sSlNPTi5zdHJpbmdpZnkoZSkpfXN0YXRpYyB3YWl0VGlsbFBhZ2VSZWRpcmVjdCh0KXtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IGU9bnVsbCE9dD90OjNlMzt5aWVsZCBuZXcgUHJvbWlzZSgodD0+c2V0VGltZW91dCh0LDFlMyplKSkpfSkpfX1SLnVudGlsPShlLHQ9NTAwKT0+e2NvbnN0IHI9bj0+ZSgpP24oKTpzZXRUaW1lb3V0KCgoKT0+cihuKSksdCk7cmV0dXJuIG5ldyBQcm9taXNlKHIpfTtjbGFzcyBUe2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQ9ZSx0aGlzLl9kYXRhTGF5ZXI9dGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQuZ2V0RGF0YUxheWVyKCksdGhpcy5fc3BhSGVscGVyPXQsdGhpcy5faW5zdGFuY2VJRD10aGlzLl9hdXRoZW50aWNhdGlvbkNsaWVudC5nZXRJbnN0YW5jZUlEKCksdGhpcy5faXNUb2tlblJlZnJlc2hpbmc9ITF9ZW5hYmxlSHR0cEhhbmRsZXIoZSl7KG51bGw9PWU/dm9pZCAwOmUuZW5hYmxlSGFuZGxlcikmJmUuZW5hYmxlSGFuZGxlcigpfWRpc2FibGVIdHRwSGFuZGxlcihlKXsobnVsbD09ZT92b2lkIDA6ZS5kaXNhYmxlSGFuZGxlcikmJmUuZGlzYWJsZUhhbmRsZXIoKX1pbml0aWFsaXplU2Vzc2lvbk1hbmdlcihlLHQscixuLGkpe3ZhciBvLHMsYTtpLmluaXRpYWxpemUoZS5jbGllbnRJRCxudWxsIT09KG89dC5jaGVja1Nlc3Npb25JZnJhbWUpJiZ2b2lkIDAhPT1vP286IiIscixudWxsIT09KHM9ZS5jaGVja1Nlc3Npb25JbnRlcnZhbCkmJnZvaWQgMCE9PXM/czozLG51bGwhPT0oYT1lLnNlc3Npb25SZWZyZXNoSW50ZXJ2YWwpJiZ2b2lkIDAhPT1hP2E6MzAwLGUuc2lnbkluUmVkaXJlY3RVUkwsbil9cmVxdWVzdEN1c3RvbUdyYW50KHQscil7dmFyIG4saSxvO3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7bGV0IHM9ITAsYT0hMTtpZihudWxsPT10P3ZvaWQgMDp0LnRva2VuRW5kcG9pbnQpe3M9ITE7Zm9yKGNvbnN0IGUgb2ZbLi4ubnVsbCE9PShpPW51bGw9PT0obj15aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0Q29uZmlnRGF0YSgpKXx8dm9pZCAwPT09bj92b2lkIDA6bi5yZXNvdXJjZVNlcnZlclVSTHMpJiZ2b2lkIDAhPT1pP2k6W10sdC5iYXNlVXJsXSlpZihlJiYobnVsbD09PShvPXQudG9rZW5FbmRwb2ludCl8fHZvaWQgMD09PW8/dm9pZCAwOm8uc3RhcnRzV2l0aChlKSkpe2E9ITA7YnJlYWt9fXJldHVybiB0LnNob3VsZFJlcGxheUFmdGVyUmVmcmVzaCYmdGhpcy5fZGF0YUxheWVyLnNldFRlbXBvcmFyeURhdGFQYXJhbWV0ZXIoUyxKU09OLnN0cmluZ2lmeSh0KSksc3x8YT90aGlzLl9hdXRoZW50aWNhdGlvbkNsaWVudC5yZXF1ZXN0Q3VzdG9tR3JhbnQodCkudGhlbigobj0+ZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiByJiYiZnVuY3Rpb24iPT10eXBlb2YgciYmcih0KSx0LnJldHVybnNTZXNzaW9uPyh0aGlzLl9zcGFIZWxwZXIucmVmcmVzaEFjY2Vzc1Rva2VuQXV0b21hdGljYWxseSh0aGlzKSx0aGlzLl9hdXRoZW50aWNhdGlvbkNsaWVudC5nZXRCYXNpY1VzZXJJbmZvKCkpOm59KSkpKS5jYXRjaCgoZT0+UHJvbWlzZS5yZWplY3QoZSkpKTpQcm9taXNlLnJlamVjdChuZXcgYygiU1BBLU1BSU5fVEhSRUFEX0NMSUVOVC1SQ0ctSVYwMSIsIlJlcXVlc3QgdG8gdGhlIHByb3ZpZGVkIGVuZHBvaW50IGlzIHByb2hpYml0ZWQuIiwiUmVxdWVzdHMgY2FuIG9ubHkgYmUgc2VudCB0byByZXNvdXJjZSBzZXJ2ZXJzIHNwZWNpZmllZCBieSB0aGUgYHJlc291cmNlU2VydmVyVVJMc2AgYXR0cmlidXRlIHdoaWxlIGluaXRpYWxpemluZyB0aGUgU0RLLiBUaGUgc3BlY2lmaWVkIHRva2VuIGVuZHBvaW50IGluIHRoaXMgcmVxdWVzdCBjYW5ub3QgYmUgZm91bmQgYW1vbmcgdGhlIGByZXNvdXJjZVNlcnZlclVSTHNgIikpfSkpfWdldEN1c3RvbUdyYW50Q29uZmlnRGF0YSgpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgZT15aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0VGVtcG9yYXJ5RGF0YVBhcmFtZXRlcihTKTtyZXR1cm4gZT9KU09OLnBhcnNlKGUpOm51bGx9KSl9cmVmcmVzaEFjY2Vzc1Rva2VuKHQpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7dHJ5e3lpZWxkIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ2xpZW50LnJlZnJlc2hBY2Nlc3NUb2tlbigpO2NvbnN0IGU9eWllbGQgdGhpcy5nZXRDdXN0b21HcmFudENvbmZpZ0RhdGEoKTtyZXR1cm4gZSYmKHlpZWxkIHRoaXMucmVxdWVzdEN1c3RvbUdyYW50KGUsdCkpLHRoaXMuX3NwYUhlbHBlci5yZWZyZXNoQWNjZXNzVG9rZW5BdXRvbWF0aWNhbGx5KHRoaXMpLHRoaXMuX2F1dGhlbnRpY2F0aW9uQ2xpZW50LmdldEJhc2ljVXNlckluZm8oKX1jYXRjaChlKXtjb25zdCB0PXt0eXBlOiJyZWZyZXNoLWFjY2Vzcy10b2tlbi1lcnJvciJ9O3JldHVybiB3aW5kb3cucG9zdE1lc3NhZ2UodCksUHJvbWlzZS5yZWplY3QoZSl9fSkpfXJldHJ5RmFpbGVkUmVxdWVzdHModCl7cmV0dXJuIGUodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCBlPXQuaHR0cENsaWVudCxyPXQucmVxdWVzdENvbmZpZyxuPXQuaXNIdHRwSGFuZGxlckVuYWJsZWQsaT10Lmh0dHBFcnJvckNhbGxiYWNrLG89dC5odHRwRmluaXNoQ2FsbGJhY2s7eWllbGQgUi51bnRpbCgoKCk9PiF0aGlzLl9pc1Rva2VuUmVmcmVzaGluZykpO3RyeXtjb25zdCB0PXlpZWxkIGUucmVxdWVzdChyKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHQpfWNhdGNoKGUpe3JldHVybiBuJiYoImZ1bmN0aW9uIj09dHlwZW9mIGkmJih5aWVsZCBpKGUpKSwiZnVuY3Rpb24iPT10eXBlb2YgbyYmbygpKSxQcm9taXNlLnJlamVjdChlKX19KSl9aHR0cFJlcXVlc3QodCxyLG4saSxvLHMpe3ZhciBhLHU7cmV0dXJuIGUodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtsZXQgbD0hMTtjb25zdCBkPXlpZWxkIHRoaXMuX2RhdGFMYXllci5nZXRDb25maWdEYXRhKCk7Zm9yKGNvbnN0IGUgb2ZbLi4ubnVsbCE9PShhPXlpZWxkIG51bGw9PWQ/dm9pZCAwOmQucmVzb3VyY2VTZXJ2ZXJVUkxzKSYmdm9pZCAwIT09YT9hOltdLGQuYmFzZVVybF0paWYoZSYmKG51bGw9PT0odT1udWxsPT1yP3ZvaWQgMDpyLnVybCl8fHZvaWQgMD09PXU/dm9pZCAwOnUuc3RhcnRzV2l0aChlKSkpe2w9ITA7YnJlYWt9cmV0dXJuIGw/dC5yZXF1ZXN0KHIpLnRoZW4oKGU9PlByb21pc2UucmVzb2x2ZShlKSkpLmNhdGNoKChhPT5lKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7dmFyIGUsdSxsO2lmKDQwMT09PShudWxsPT09KGU9bnVsbD09YT92b2lkIDA6YS5yZXNwb25zZSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuc3RhdHVzKXx8IShudWxsPT1hP3ZvaWQgMDphLnJlc3BvbnNlKSl7aWYodGhpcy5faXNUb2tlblJlZnJlc2hpbmcpcmV0dXJuIHRoaXMucmV0cnlGYWlsZWRSZXF1ZXN0cyh7ZW5hYmxlUmV0cmlldmluZ1NpZ25PdXRVUkxGcm9tU2Vzc2lvbjpzLGh0dHBDbGllbnQ6dCxodHRwRXJyb3JDYWxsYmFjazppLGh0dHBGaW5pc2hDYWxsYmFjazpvLGlzSHR0cEhhbmRsZXJFbmFibGVkOm4scmVxdWVzdENvbmZpZzpyfSk7bGV0IGU7dGhpcy5faXNUb2tlblJlZnJlc2hpbmc9ITA7dHJ5e2U9eWllbGQgdGhpcy5yZWZyZXNoQWNjZXNzVG9rZW4ocyksdGhpcy5faXNUb2tlblJlZnJlc2hpbmc9ITF9Y2F0Y2goZSl7dGhyb3cgdGhpcy5faXNUb2tlblJlZnJlc2hpbmc9ITEsbiYmKCJmdW5jdGlvbiI9PXR5cGVvZiBpJiYoeWllbGQgaShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYSkse2NvZGU6Yn0pKSksImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8oKSksbmV3IGMoIlNQQS1BVVRIX0hFTFBFUi1IUi1TRTAxIixudWxsIT09KHU9bnVsbD09ZT92b2lkIDA6ZS5uYW1lKSYmdm9pZCAwIT09dT91OiJSZWZyZXNoIHRva2VuIHJlcXVlc3QgZmFpbGVkLiIsbnVsbCE9PShsPW51bGw9PWU/dm9pZCAwOmUubWVzc2FnZSkmJnZvaWQgMCE9PWw/bDoiQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgdHJ5aW5nIHRvIHJlZnJlc2ggdGhlIGFjY2VzcyB0b2tlbiBmb2xsb3dpbmcgYSA0MDEgcmVzcG9uc2UgZnJvbSB0aGUgc2VydmVyLiIpfWlmKGUpdHJ5e2NvbnN0IGU9eWllbGQgdC5yZXF1ZXN0KHIpO3JldHVybiBQcm9taXNlLnJlc29sdmUoZSl9Y2F0Y2goZSl7cmV0dXJuIG4mJigiZnVuY3Rpb24iPT10eXBlb2YgaSYmKHlpZWxkIGkoZSkpLCJmdW5jdGlvbiI9PXR5cGVvZiBvJiZvKCkpLFByb21pc2UucmVqZWN0KGUpfX1yZXR1cm4gbiYmKCJmdW5jdGlvbiI9PXR5cGVvZiBpJiYoeWllbGQgaShhKSksImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8oKSksUHJvbWlzZS5yZWplY3QoYSl9KSkpKTpQcm9taXNlLnJlamVjdChuZXcgYygiU1BBLUFVVEhfSEVMUEVSLUhSLUlWMDIiLCJSZXF1ZXN0IHRvIHRoZSBwcm92aWRlZCBlbmRwb2ludCBpcyBwcm9oaWJpdGVkLiIsIlJlcXVlc3RzIGNhbiBvbmx5IGJlIHNlbnQgdG8gcmVzb3VyY2Ugc2VydmVycyBzcGVjaWZpZWQgYnkgdGhlIGByZXNvdXJjZVNlcnZlclVSTHNgIGF0dHJpYnV0ZSB3aGlsZSBpbml0aWFsaXppbmcgdGhlIFNESy4gVGhlIHNwZWNpZmllZCBlbmRwb2ludCBpbiB0aGlzIHJlcXVlc3QgY2Fubm90IGJlIGZvdW5kIGFtb25nIHRoZSBgcmVzb3VyY2VTZXJ2ZXJVUkxzYCIpKX0pKX1odHRwUmVxdWVzdEFsbCh0LHIsbixpLG8pe3ZhciBzLGEsdTtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2xldCBsPSEwO2NvbnN0IGQ9eWllbGQgdGhpcy5fZGF0YUxheWVyLmdldENvbmZpZ0RhdGEoKTtmb3IoY29uc3QgZSBvZiB0KXtsZXQgdD0hMTtmb3IoY29uc3QgciBvZlsuLi5udWxsIT09KGE9bnVsbD09PShzPXlpZWxkIGQpfHx2b2lkIDA9PT1zP3ZvaWQgMDpzLnJlc291cmNlU2VydmVyVVJMcykmJnZvaWQgMCE9PWE/YTpbXSxkLmJhc2VVcmxdKWlmKHImJihudWxsPT09KHU9ZS51cmwpfHx2b2lkIDA9PT11P3ZvaWQgMDp1LnN0YXJ0c1dpdGgocikpKXt0PSEwO2JyZWFrfWlmKCF0KXtsPSExO2JyZWFrfX1jb25zdCBoPVtdO2lmKGwpcmV0dXJuIHQuZm9yRWFjaCgoZT0+e2gucHVzaChyLnJlcXVlc3QoZSkpfSkpLChudWxsPT1yP3ZvaWQgMDpyLmFsbCkmJnIuYWxsKGgpLnRoZW4oKGU9PlByb21pc2UucmVzb2x2ZShlKSkpLmNhdGNoKCh0PT5lKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7dmFyIHMsYSx1O2lmKDQwMT09PShudWxsPT09KHM9bnVsbD09dD92b2lkIDA6dC5yZXNwb25zZSl8fHZvaWQgMD09PXM/dm9pZCAwOnMuc3RhdHVzKXx8IShudWxsPT10P3ZvaWQgMDp0LnJlc3BvbnNlKSl7bGV0IHM7dHJ5e3M9eWllbGQgdGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQucmVmcmVzaEFjY2Vzc1Rva2VuKCl9Y2F0Y2goZSl7dGhyb3cgbiYmKCJmdW5jdGlvbiI9PXR5cGVvZiBpJiYoeWllbGQgaShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2NvZGU6Yn0pKSksImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8oKSksbmV3IGMoIlNQQS1BVVRIX0hFTFBFUi1IUkEtU0UwMSIsbnVsbCE9PShhPW51bGw9PWU/dm9pZCAwOmUubmFtZSkmJnZvaWQgMCE9PWE/YToiUmVmcmVzaCB0b2tlbiByZXF1ZXN0IGZhaWxlZC4iLG51bGwhPT0odT1udWxsPT1lP3ZvaWQgMDplLm1lc3NhZ2UpJiZ2b2lkIDAhPT11P3U6IkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHRyeWluZyB0byByZWZyZXNoIHRoZSBhY2Nlc3MgdG9rZW4gZm9sbG93aW5nIGEgNDAxIHJlc3BvbnNlIGZyb20gdGhlIHNlcnZlci4iKX1pZihzKXJldHVybiByLmFsbCYmci5hbGwoaCkudGhlbigoZT0+UHJvbWlzZS5yZXNvbHZlKGUpKSkuY2F0Y2goKHQ9PmUodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gbiYmKCJmdW5jdGlvbiI9PXR5cGVvZiBpJiYoeWllbGQgaSh0KSksImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8oKSksUHJvbWlzZS5yZWplY3QodCl9KSkpKX1yZXR1cm4gbiYmKCJmdW5jdGlvbiI9PXR5cGVvZiBpJiYoeWllbGQgaSh0KSksImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8oKSksUHJvbWlzZS5yZWplY3QodCl9KSkpKTt0aHJvdyBuZXcgYygiU1BBLUFVVEhfSEVMUEVSLUhSQS1JVjAyIiwiUmVxdWVzdCB0byB0aGUgcHJvdmlkZWQgZW5kcG9pbnQgaXMgcHJvaGliaXRlZC4iLCJSZXF1ZXN0cyBjYW4gb25seSBiZSBzZW50IHRvIHJlc291cmNlIHNlcnZlcnMgc3BlY2lmaWVkIGJ5IHRoZSBgcmVzb3VyY2VTZXJ2ZXJVUkxzYCBhdHRyaWJ1dGUgd2hpbGUgaW5pdGlhbGl6aW5nIHRoZSBTREsuIFRoZSBzcGVjaWZpZWQgZW5kcG9pbnQgaW4gdGhpcyByZXF1ZXN0IGNhbm5vdCBiZSBmb3VuZCBhbW9uZyB0aGUgYHJlc291cmNlU2VydmVyVVJMc2AiKX0pKX1yZXF1ZXN0QWNjZXNzVG9rZW4odCxyLG4saSxvLHMpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgYT15aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0Q29uZmlnRGF0YSgpO2lmKGEuc3RvcmFnZT09PUUuQnJvd3Nlck1lbW9yeSYmYS5lbmFibGVQS0NFJiZyKXtjb25zdCBlPVIuZ2V0UEtDRSh1LmV4dHJhY3RQS0NFS2V5RnJvbVN0YXRlUGFyYW0ocikpO3lpZWxkIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ2xpZW50LnNldFBLQ0VDb2RlKHUuZXh0cmFjdFBLQ0VLZXlGcm9tU3RhdGVQYXJhbShyKSxlKX1lbHNlIGEuc3RvcmFnZT09PUUuV2ViV29ya2VyJiZpJiYoeWllbGQgdGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQuc2V0UEtDRUNvZGUoaSxudWxsIT1vP286IiIpKTtyZXR1cm4gdD90aGlzLl9hdXRoZW50aWNhdGlvbkNsaWVudC5yZXF1ZXN0QWNjZXNzVG9rZW4odCxudWxsIT1yP3I6IiIsbnVsbCE9bz9vOiIiLHZvaWQgMCxzKS50aGVuKCgoKT0+ZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiBhLnN0b3JhZ2UhPT1FLldlYldvcmtlcj8oUi5zZXRTaWduT3V0VVJMKHlpZWxkIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ2xpZW50LmdldFNpZ25PdXRVUkwoKSxhLmNsaWVudElELHRoaXMuX2luc3RhbmNlSUQpLHRoaXMuX3NwYUhlbHBlciYmKHRoaXMuX3NwYUhlbHBlci5jbGVhclJlZnJlc2hUb2tlblRpbWVvdXQoKSx0aGlzLl9zcGFIZWxwZXIucmVmcmVzaEFjY2Vzc1Rva2VuQXV0b21hdGljYWxseSh0aGlzKSksbiYmImZ1bmN0aW9uIj09dHlwZW9mIG4mJmEuZW5hYmxlT0lEQ1Nlc3Npb25NYW5hZ2VtZW50JiZuKCkpOnRoaXMuX3NwYUhlbHBlciYmdGhpcy5fc3BhSGVscGVyLnJlZnJlc2hBY2Nlc3NUb2tlbkF1dG9tYXRpY2FsbHkodGhpcyksdGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQuZ2V0QmFzaWNVc2VySW5mbygpfSkpKSkuY2F0Y2goKGU9PlByb21pc2UucmVqZWN0KGUpKSk6UHJvbWlzZS5yZWplY3QobmV3IGMoIlNQQS1BVVRIX0hFTFBFUi1SQVQxLU5GMDEiLCJObyBhdXRob3JpemF0aW9uIGNvZGUuIiwiTm8gYXV0aG9yaXphdGlvbiBjb2RlIHdhcyBmb3VuZC4iKSl9KSl9dHJ5U2lnbkluU2lsZW50bHkodCxyLG4saSxvKXt2YXIgcztyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2lmKFIuaXNJbml0aWFsaXplZFNpbGVudFNpZ25JbigpKXJldHVybiB5aWVsZCBuLnJlY2VpdmVQcm9tcHROb25lUmVzcG9uc2UoKSxQcm9taXNlLnJlc29sdmUoe2FsbG93ZWRTY29wZXM6IiIsZGlzcGxheU5hbWU6IiIsZW1haWw6IiIsc2Vzc2lvblN0YXRlOiIiLHN1YjoiIix0ZW5hbnREb21haW46IiIsdXNlcm5hbWU6IiJ9KTtjb25zdCBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJycElGcmFtZSIpLGM9bnVsbD09PShzPW51bGw9PWE/dm9pZCAwOmEuY29udGVudERvY3VtZW50KXx8dm9pZCAwPT09cz92b2lkIDA6cy5nZXRFbGVtZW50QnlJZCgicHJvbXB0Tm9uZUlGcmFtZSIpO3RyeXtjb25zdCBlPXlpZWxkIHQoaSk7Yy5zcmM9ZX1jYXRjaChlKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoZSl9cmV0dXJuIG5ldyBQcm9taXNlKCgodCxuKT0+e2NvbnN0IGk9c2V0VGltZW91dCgoKCk9Pnt0KCExKX0pLDFlNCkscz1hPT5lKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7dmFyIGUsYyx1LGw7Y29uc3QgZD1hLmRhdGE7ImNoZWNrX3Nlc3Npb25fc2lnbmVkX291dCI9PShudWxsPT1kP3ZvaWQgMDpkLnR5cGUpJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHMpLGNsZWFyVGltZW91dChpKSx0KCExKSksImNoZWNrX3Nlc3Npb25fc2lnbmVkX2luIj09KG51bGw9PWQ/dm9pZCAwOmQudHlwZSkmJihudWxsPT09KGU9bnVsbD09ZD92b2lkIDA6ZC5kYXRhKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jb2RlKSYmcihudWxsPT09KGM9bnVsbD09ZD92b2lkIDA6ZC5kYXRhKXx8dm9pZCAwPT09Yz92b2lkIDA6Yy5jb2RlLG51bGw9PT0odT1udWxsPT1kP3ZvaWQgMDpkLmRhdGEpfHx2b2lkIDA9PT11P3ZvaWQgMDp1LnNlc3Npb25TdGF0ZSxudWxsPT09KGw9bnVsbD09ZD92b2lkIDA6ZC5kYXRhKXx8dm9pZCAwPT09bD92b2lkIDA6bC5zdGF0ZSxvKS50aGVuKChlPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHMpLHQoZSl9KSkuY2F0Y2goKGU9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIscyksbihlKX0pKS5maW5hbGx5KCgoKT0+e2NsZWFyVGltZW91dChpKX0pKX0pKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIscyl9KSl9KSl9aGFuZGxlU2lnbkluKHQscixuKXtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IGU9eWllbGQgdGhpcy5fZGF0YUxheWVyLmdldENvbmZpZ0RhdGEoKTtpZih5aWVsZCB0KCkpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7YWxsb3dlZFNjb3BlczoiIixkaXNwbGF5TmFtZToiIixlbWFpbDoiIixzZXNzaW9uU3RhdGU6IiIsc3ViOiIiLHRlbmFudERvbWFpbjoiIix1c2VybmFtZToiIn0pO2lmKGUuc3RvcmFnZSE9PUUuV2ViV29ya2VyJiYoeWllbGQgdGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQuaXNBdXRoZW50aWNhdGVkKCkpKXJldHVybiB0aGlzLl9zcGFIZWxwZXIuY2xlYXJSZWZyZXNoVG9rZW5UaW1lb3V0KCksdGhpcy5fc3BhSGVscGVyLnJlZnJlc2hBY2Nlc3NUb2tlbkF1dG9tYXRpY2FsbHkodGhpcyksZS5lbmFibGVPSURDU2Vzc2lvbk1hbmFnZW1lbnQmJnIoKSxQcm9taXNlLnJlc29sdmUoeWllbGQgdGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQuZ2V0QmFzaWNVc2VySW5mbygpKTtjb25zdCBpPW5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpLnNlYXJjaFBhcmFtcy5nZXQodyksbz1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5zZWFyY2hQYXJhbXMuZ2V0KF8pO2lmKGkpe2NvbnN0IGU9bmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7dGhyb3cgZS5zZWFyY2hQYXJhbXMuZGVsZXRlKHcpLGUuc2VhcmNoUGFyYW1zLmRlbGV0ZShfKSxoaXN0b3J5LnB1c2hTdGF0ZShudWxsLGRvY3VtZW50LnRpdGxlLGUudG9TdHJpbmcoKSksbmV3IGMoIlNQQS1BVVRIX0hFTFBFUi1TSS1TRTAxIixpLG51bGwhPW8/bzoiIil9aWYoZS5zdG9yYWdlPT09RS5XZWJXb3JrZXImJm4pe2NvbnN0IGU9eWllbGQgbigpO2lmKGUpcmV0dXJuIGV9fSkpfWF0dGFjaFRva2VuVG9SZXF1ZXN0Q29uZmlnKHQpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgZT1PYmplY3QuYXNzaWduKHthdHRhY2hUb2tlbjohMH0sdCk7ZS5hdHRhY2hUb2tlbiYmKGUuc2hvdWxkQXR0YWNoSURQQWNjZXNzVG9rZW4/dC5oZWFkZXJzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmhlYWRlcnMpLHtBdXRob3JpemF0aW9uOmBCZWFyZXIgJHt5aWVsZCB0aGlzLmdldElEUEFjY2Vzc1Rva2VuKCl9YH0pOnQuaGVhZGVycz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5oZWFkZXJzKSx7QXV0aG9yaXphdGlvbjpgQmVhcmVyICR7eWllbGQgdGhpcy5nZXRBY2Nlc3NUb2tlbigpfWB9KSl9KSl9Z2V0QmFzaWNVc2VySW5mbygpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ2xpZW50LmdldEJhc2ljVXNlckluZm8oKX0pKX1nZXREZWNvZGVkSURUb2tlbigpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ2xpZW50LmdldERlY29kZWRJRFRva2VuKCl9KSl9Z2V0RGVjb2RlZElEUElEVG9rZW4oKXtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLl9hdXRoZW50aWNhdGlvbkNsaWVudC5nZXREZWNvZGVkSURUb2tlbigpfSkpfWdldENyeXB0b0hlbHBlcigpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ2xpZW50LmdldENyeXB0b0hlbHBlcigpfSkpfWdldElEVG9rZW4oKXtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLl9hdXRoZW50aWNhdGlvbkNsaWVudC5nZXRJRFRva2VuKCl9KSl9Z2V0T0lEQ1NlcnZpY2VFbmRwb2ludHMoKXtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLl9hdXRoZW50aWNhdGlvbkNsaWVudC5nZXRPSURDU2VydmljZUVuZHBvaW50cygpfSkpfWdldEFjY2Vzc1Rva2VuKCl7cmV0dXJuIGUodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQuZ2V0QWNjZXNzVG9rZW4oKX0pKX1nZXRJRFBBY2Nlc3NUb2tlbigpe3ZhciB0O3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIG51bGw9PT0odD15aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0U2Vzc2lvbkRhdGEoKSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuYWNjZXNzX3Rva2VufSkpfWdldERhdGFMYXllcigpe3JldHVybiB0aGlzLl9kYXRhTGF5ZXJ9aXNBdXRoZW50aWNhdGVkKCl7cmV0dXJuIGUodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQuaXNBdXRoZW50aWNhdGVkKCl9KSl9fWNsYXNzIEF7Y29uc3RydWN0b3IoZSl7dGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQ9ZSx0aGlzLl9kYXRhTGF5ZXI9dGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQuZ2V0RGF0YUxheWVyKCl9cmVmcmVzaEFjY2Vzc1Rva2VuQXV0b21hdGljYWxseSh0KXt2YXIgcixuO3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7aWYoIShudWxsIT09KG49bnVsbD09PShyPXlpZWxkIHRoaXMuX2RhdGFMYXllci5nZXRDb25maWdEYXRhKCkpfHx2b2lkIDA9PT1yP3ZvaWQgMDpyLnBlcmlvZGljVG9rZW5SZWZyZXNoKSYmdm9pZCAwIT09biYmbikpcmV0dXJuO2NvbnN0IG89eWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFNlc3Npb25EYXRhKCk7aWYoby5yZWZyZXNoX3Rva2VuKXtjb25zdCByPXBhcnNlSW50KG8uZXhwaXJlc19pbiksbj1zZXRUaW1lb3V0KCgoKT0+ZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHQucmVmcmVzaEFjY2Vzc1Rva2VuKCl9KSkpLDFlMyoocjw9MTA/cjpyLTEwKSk7eWllbGQgdGhpcy5fZGF0YUxheWVyLnNldFRlbXBvcmFyeURhdGFQYXJhbWV0ZXIoaSxKU09OLnN0cmluZ2lmeShuKSl9fSkpfWdldFJlZnJlc2hUaW1lb3V0VGltZXIoKXtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybih5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0VGVtcG9yYXJ5RGF0YVBhcmFtZXRlcihpKSk/SlNPTi5wYXJzZSh5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0VGVtcG9yYXJ5RGF0YVBhcmFtZXRlcihpKSk6LTF9KSl9Y2xlYXJSZWZyZXNoVG9rZW5UaW1lb3V0KHQpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7aWYodClyZXR1cm4gdm9pZCBjbGVhclRpbWVvdXQodCk7Y29uc3QgZT15aWVsZCB0aGlzLmdldFJlZnJlc2hUaW1lb3V0VGltZXIoKTstMSE9PWUmJmNsZWFyVGltZW91dChlKX0pKX19dmFyIEM9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjp7fTtmdW5jdGlvbiBEKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLCJkZWZhdWx0Iik/ZS5kZWZhdWx0OmV9ZnVuY3Rpb24gUChlKXtpZihlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24ocil7dmFyIG49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHIsbi5nZXQ/bjp7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZVtyXX19KX0pKSx0fXZhciBPLEk9e2V4cG9ydHM6e319LFU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0LGFyZ3VtZW50cyl9fSxMPVUsSD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLE09KE89T2JqZWN0LmNyZWF0ZShudWxsKSxmdW5jdGlvbihlKXt2YXIgdD1ILmNhbGwoZSk7cmV0dXJuIE9bdF18fChPW3RdPXQuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KTtmdW5jdGlvbiBqKGUpe3JldHVybiBlPWUudG9Mb3dlckNhc2UoKSxmdW5jdGlvbih0KXtyZXR1cm4gTSh0KT09PWV9fWZ1bmN0aW9uIE4oZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSl9ZnVuY3Rpb24geChlKXtyZXR1cm4gdm9pZCAwPT09ZX12YXIgcT1qKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIEIoZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlfWZ1bmN0aW9uIEYoZSl7cmV0dXJuIG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGV9ZnVuY3Rpb24gSyhlKXtpZigib2JqZWN0IiE9PU0oZSkpcmV0dXJuITE7dmFyIHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO3JldHVybiBudWxsPT09dHx8dD09PU9iamVjdC5wcm90b3R5cGV9dmFyIEo9aigiRGF0ZSIpLFc9aigiRmlsZSIpLCQ9aigiQmxvYiIpLHo9aigiRmlsZUxpc3QiKTtmdW5jdGlvbiBWKGUpe3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1ILmNhbGwoZSl9dmFyIFk9aigiVVJMU2VhcmNoUGFyYW1zIik7ZnVuY3Rpb24gRyhlLHQpe2lmKG51bGwhPWUpaWYoIm9iamVjdCIhPXR5cGVvZiBlJiYoZT1bZV0pLE4oZSkpZm9yKHZhciByPTAsbj1lLmxlbmd0aDtyPG47cisrKXQuY2FsbChudWxsLGVbcl0scixlKTtlbHNlIGZvcih2YXIgaSBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGkpJiZ0LmNhbGwobnVsbCxlW2ldLGksZSl9dmFyIFgsWj0oWD0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXkmJk9iamVjdC5nZXRQcm90b3R5cGVPZihVaW50OEFycmF5KSxmdW5jdGlvbihlKXtyZXR1cm4gWCYmZSBpbnN0YW5jZW9mIFh9KTt2YXIgUSxlZT1qKCJIVE1MRm9ybUVsZW1lbnQiKSx0ZT0oUT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGZ1bmN0aW9uKGUsdCl7cmV0dXJuIFEuY2FsbChlLHQpfSkscmU9e2lzQXJyYXk6Tixpc0FycmF5QnVmZmVyOnEsaXNCdWZmZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPT1lJiYheChlKSYmbnVsbCE9PWUuY29uc3RydWN0b3ImJiF4KGUuY29uc3RydWN0b3IpJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5jb25zdHJ1Y3Rvci5pc0J1ZmZlciYmZS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihlKX0saXNGb3JtRGF0YTpmdW5jdGlvbihlKXt2YXIgdD0iW29iamVjdCBGb3JtRGF0YV0iO3JldHVybiBlJiYoImZ1bmN0aW9uIj09dHlwZW9mIEZvcm1EYXRhJiZlIGluc3RhbmNlb2YgRm9ybURhdGF8fEguY2FsbChlKT09PXR8fFYoZS50b1N0cmluZykmJmUudG9TdHJpbmcoKT09PXQpfSxpc0FycmF5QnVmZmVyVmlldzpmdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZBcnJheUJ1ZmZlci5pc1ZpZXc/QXJyYXlCdWZmZXIuaXNWaWV3KGUpOmUmJmUuYnVmZmVyJiZxKGUuYnVmZmVyKX0saXNTdHJpbmc6ZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlfSxpc051bWJlcjpCLGlzT2JqZWN0OkYsaXNQbGFpbk9iamVjdDpLLGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJjA9PT1PYmplY3Qua2V5cyhlKS5sZW5ndGgmJk9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PU9iamVjdC5wcm90b3R5cGV9LGlzVW5kZWZpbmVkOngsaXNEYXRlOkosaXNGaWxlOlcsaXNCbG9iOiQsaXNGdW5jdGlvbjpWLGlzU3RyZWFtOmZ1bmN0aW9uKGUpe3JldHVybiBGKGUpJiZWKGUucGlwZSl9LGlzVVJMU2VhcmNoUGFyYW1zOlksaXNTdGFuZGFyZEJyb3dzZXJFbnY6ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4oInVuZGVmaW5lZCI9PXR5cGVvZiBuYXZpZ2F0b3J8fCJSZWFjdE5hdGl2ZSIhPT0oZT1uYXZpZ2F0b3IucHJvZHVjdCkmJiJOYXRpdmVTY3JpcHQiIT09ZSYmIk5TIiE9PWUpJiYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQpfSxmb3JFYWNoOkcsbWVyZ2U6ZnVuY3Rpb24gZSgpe3ZhciB0PXt9O2Z1bmN0aW9uIHIocixuKXtLKHRbbl0pJiZLKHIpP3Rbbl09ZSh0W25dLHIpOksocik/dFtuXT1lKHt9LHIpOk4ocik/dFtuXT1yLnNsaWNlKCk6dFtuXT1yfWZvcih2YXIgbj0wLGk9YXJndW1lbnRzLmxlbmd0aDtuPGk7bisrKUcoYXJndW1lbnRzW25dLHIpO3JldHVybiB0fSxleHRlbmQ6ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBHKHQsKGZ1bmN0aW9uKHQsbil7ZVtuXT1yJiYiZnVuY3Rpb24iPT10eXBlb2YgdD9MKHQscik6dH0pKSxlfSx0cmltOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRyaW0/ZS50cmltKCk6ZS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIil9LHN0cmlwQk9NOmZ1bmN0aW9uKGUpe3JldHVybiA2NTI3OT09PWUuY2hhckNvZGVBdCgwKSYmKGU9ZS5zbGljZSgxKSksZX0saW5oZXJpdHM6ZnVuY3Rpb24oZSx0LHIsbil7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSxuKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLHImJk9iamVjdC5hc3NpZ24oZS5wcm90b3R5cGUscil9LHRvRmxhdE9iamVjdDpmdW5jdGlvbihlLHQscixuKXt2YXIgaSxvLHMsYT17fTtpZih0PXR8fHt9LG51bGw9PWUpcmV0dXJuIHQ7ZG97Zm9yKG89KGk9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSkpLmxlbmd0aDtvLS0gPjA7KXM9aVtvXSxuJiYhbihzLGUsdCl8fGFbc118fCh0W3NdPWVbc10sYVtzXT0hMCk7ZT0hMSE9PXImJk9iamVjdC5nZXRQcm90b3R5cGVPZihlKX13aGlsZShlJiYoIXJ8fHIoZSx0KSkmJmUhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gdH0sa2luZE9mOk0sa2luZE9mVGVzdDpqLGVuZHNXaXRoOmZ1bmN0aW9uKGUsdCxyKXtlPVN0cmluZyhlKSwodm9pZCAwPT09cnx8cj5lLmxlbmd0aCkmJihyPWUubGVuZ3RoKSxyLT10Lmxlbmd0aDt2YXIgbj1lLmluZGV4T2YodCxyKTtyZXR1cm4tMSE9PW4mJm49PT1yfSx0b0FycmF5OmZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiBudWxsO2lmKE4oZSkpcmV0dXJuIGU7dmFyIHQ9ZS5sZW5ndGg7aWYoIUIodCkpcmV0dXJuIG51bGw7Zm9yKHZhciByPW5ldyBBcnJheSh0KTt0LS0gPjA7KXJbdF09ZVt0XTtyZXR1cm4gcn0saXNUeXBlZEFycmF5OlosaXNGaWxlTGlzdDp6LGZvckVhY2hFbnRyeTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcixuPShlJiZlW1N5bWJvbC5pdGVyYXRvcl0pLmNhbGwoZSk7KHI9bi5uZXh0KCkpJiYhci5kb25lOyl7dmFyIGk9ci52YWx1ZTt0LmNhbGwoZSxpWzBdLGlbMV0pfX0sbWF0Y2hBbGw6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHIsbj1bXTtudWxsIT09KHI9ZS5leGVjKHQpKTspbi5wdXNoKHIpO3JldHVybiBufSxpc0hUTUxGb3JtOmVlLGhhc093blByb3BlcnR5OnRlfSxuZT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9LGllPVtdLG9lPVtdLHNlPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheT9VaW50OEFycmF5OkFycmF5LGFlPSExO2Z1bmN0aW9uIGNlKCl7YWU9ITA7Zm9yKHZhciBlPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIix0PTAscj1lLmxlbmd0aDt0PHI7Kyt0KWllW3RdPWVbdF0sb2VbZS5jaGFyQ29kZUF0KHQpXT10O29lWyItIi5jaGFyQ29kZUF0KDApXT02MixvZVsiXyIuY2hhckNvZGVBdCgwKV09NjN9ZnVuY3Rpb24gdWUoZSx0LHIpe2Zvcih2YXIgbixpLG89W10scz10O3M8cjtzKz0zKW49KGVbc108PDE2KSsoZVtzKzFdPDw4KStlW3MrMl0sby5wdXNoKGllWyhpPW4pPj4xOCY2M10raWVbaT4+MTImNjNdK2llW2k+PjYmNjNdK2llWzYzJmldKTtyZXR1cm4gby5qb2luKCIiKX1mdW5jdGlvbiBsZShlKXt2YXIgdDthZXx8Y2UoKTtmb3IodmFyIHI9ZS5sZW5ndGgsbj1yJTMsaT0iIixvPVtdLHM9MTYzODMsYT0wLGM9ci1uO2E8YzthKz1zKW8ucHVzaCh1ZShlLGEsYStzPmM/YzphK3MpKTtyZXR1cm4gMT09PW4/KHQ9ZVtyLTFdLGkrPWllW3Q+PjJdLGkrPWllW3Q8PDQmNjNdLGkrPSI9PSIpOjI9PT1uJiYodD0oZVtyLTJdPDw4KStlW3ItMV0saSs9aWVbdD4+MTBdLGkrPWllW3Q+PjQmNjNdLGkrPWllW3Q8PDImNjNdLGkrPSI9Iiksby5wdXNoKGkpLG8uam9pbigiIil9ZnVuY3Rpb24gZGUoZSx0LHIsbixpKXt2YXIgbyxzLGE9OCppLW4tMSxjPSgxPDxhKS0xLHU9Yz4+MSxsPS03LGQ9cj9pLTE6MCxoPXI/LTE6MSxmPWVbdCtkXTtmb3IoZCs9aCxvPWYmKDE8PC1sKS0xLGY+Pj0tbCxsKz1hO2w+MDtvPTI1NipvK2VbdCtkXSxkKz1oLGwtPTgpO2ZvcihzPW8mKDE8PC1sKS0xLG8+Pj0tbCxsKz1uO2w+MDtzPTI1NipzK2VbdCtkXSxkKz1oLGwtPTgpO2lmKDA9PT1vKW89MS11O2Vsc2V7aWYobz09PWMpcmV0dXJuIHM/TmFOOjEvMCooZj8tMToxKTtzKz1NYXRoLnBvdygyLG4pLG8tPXV9cmV0dXJuKGY/LTE6MSkqcypNYXRoLnBvdygyLG8tbil9ZnVuY3Rpb24gaGUoZSx0LHIsbixpLG8pe3ZhciBzLGEsYyx1PTgqby1pLTEsbD0oMTw8dSktMSxkPWw+PjEsaD0yMz09PWk/TWF0aC5wb3coMiwtMjQpLU1hdGgucG93KDIsLTc3KTowLGY9bj8wOm8tMSxwPW4/MTotMSxnPXQ8MHx8MD09PXQmJjEvdDwwPzE6MDtmb3IodD1NYXRoLmFicyh0KSxpc05hTih0KXx8dD09PTEvMD8oYT1pc05hTih0KT8xOjAscz1sKToocz1NYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGguTE4yKSx0KihjPU1hdGgucG93KDIsLXMpKTwxJiYocy0tLGMqPTIpLCh0Kz1zK2Q+PTE/aC9jOmgqTWF0aC5wb3coMiwxLWQpKSpjPj0yJiYocysrLGMvPTIpLHMrZD49bD8oYT0wLHM9bCk6cytkPj0xPyhhPSh0KmMtMSkqTWF0aC5wb3coMixpKSxzKz1kKTooYT10Kk1hdGgucG93KDIsZC0xKSpNYXRoLnBvdygyLGkpLHM9MCkpO2k+PTg7ZVtyK2ZdPTI1NSZhLGYrPXAsYS89MjU2LGktPTgpO2ZvcihzPXM8PGl8YSx1Kz1pO3U+MDtlW3IrZl09MjU1JnMsZis9cCxzLz0yNTYsdS09OCk7ZVtyK2YtcF18PTEyOCpnfXZhciBmZT17fS50b1N0cmluZyxwZT1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT1mZS5jYWxsKGUpfTttZS5UWVBFRF9BUlJBWV9TVVBQT1JUPXZvaWQgMD09PW5lLlRZUEVEX0FSUkFZX1NVUFBPUlR8fG5lLlRZUEVEX0FSUkFZX1NVUFBPUlQ7dmFyIGdlPXZlKCk7ZnVuY3Rpb24gdmUoKXtyZXR1cm4gbWUuVFlQRURfQVJSQVlfU1VQUE9SVD8yMTQ3NDgzNjQ3OjEwNzM3NDE4MjN9ZnVuY3Rpb24geWUoZSx0KXtpZih2ZSgpPHQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdHlwZWQgYXJyYXkgbGVuZ3RoIik7cmV0dXJuIG1lLlRZUEVEX0FSUkFZX1NVUFBPUlQ/KGU9bmV3IFVpbnQ4QXJyYXkodCkpLl9fcHJvdG9fXz1tZS5wcm90b3R5cGU6KG51bGw9PT1lJiYoZT1uZXcgbWUodCkpLGUubGVuZ3RoPXQpLGV9ZnVuY3Rpb24gbWUoZSx0LHIpe2lmKCEobWUuVFlQRURfQVJSQVlfU1VQUE9SVHx8dGhpcyBpbnN0YW5jZW9mIG1lKSlyZXR1cm4gbmV3IG1lKGUsdCxyKTtpZigibnVtYmVyIj09dHlwZW9mIGUpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3IoIklmIGVuY29kaW5nIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nIik7cmV0dXJuIFNlKHRoaXMsZSl9cmV0dXJuIHdlKHRoaXMsZSx0LHIpfWZ1bmN0aW9uIHdlKGUsdCxyLG4pe2lmKCJudW1iZXIiPT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCcidmFsdWUiIGFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyJyk7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmdCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyP2Z1bmN0aW9uKGUsdCxyLG4pe2lmKHQuYnl0ZUxlbmd0aCxyPDB8fHQuYnl0ZUxlbmd0aDxyKXRocm93IG5ldyBSYW5nZUVycm9yKCInb2Zmc2V0JyBpcyBvdXQgb2YgYm91bmRzIik7aWYodC5ieXRlTGVuZ3RoPHIrKG58fDApKXRocm93IG5ldyBSYW5nZUVycm9yKCInbGVuZ3RoJyBpcyBvdXQgb2YgYm91bmRzIik7dD12b2lkIDA9PT1yJiZ2b2lkIDA9PT1uP25ldyBVaW50OEFycmF5KHQpOnZvaWQgMD09PW4/bmV3IFVpbnQ4QXJyYXkodCxyKTpuZXcgVWludDhBcnJheSh0LHIsbik7bWUuVFlQRURfQVJSQVlfU1VQUE9SVD8oZT10KS5fX3Byb3RvX189bWUucHJvdG90eXBlOmU9YmUoZSx0KTtyZXR1cm4gZX0oZSx0LHIsbik6InN0cmluZyI9PXR5cGVvZiB0P2Z1bmN0aW9uKGUsdCxyKXsic3RyaW5nIj09dHlwZW9mIHImJiIiIT09cnx8KHI9InV0ZjgiKTtpZighbWUuaXNFbmNvZGluZyhyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCciZW5jb2RpbmciIG11c3QgYmUgYSB2YWxpZCBzdHJpbmcgZW5jb2RpbmcnKTt2YXIgbj0wfFJlKHQsciksaT0oZT15ZShlLG4pKS53cml0ZSh0LHIpO2khPT1uJiYoZT1lLnNsaWNlKDAsaSkpO3JldHVybiBlfShlLHQscik6ZnVuY3Rpb24oZSx0KXtpZihrZSh0KSl7dmFyIHI9MHxFZSh0Lmxlbmd0aCk7cmV0dXJuIDA9PT0oZT15ZShlLHIpKS5sZW5ndGh8fHQuY29weShlLDAsMCxyKSxlfWlmKHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJnQuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fCJsZW5ndGgiaW4gdClyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIHQubGVuZ3RofHwobj10Lmxlbmd0aCkhPW4/eWUoZSwwKTpiZShlLHQpO2lmKCJCdWZmZXIiPT09dC50eXBlJiZwZSh0LmRhdGEpKXJldHVybiBiZShlLHQuZGF0YSl9dmFyIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiRmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZywgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQXJyYXksIG9yIGFycmF5LWxpa2Ugb2JqZWN0LiIpfShlLHQpfWZ1bmN0aW9uIF9lKGUpe2lmKCJudW1iZXIiIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCcic2l6ZSIgYXJndW1lbnQgbXVzdCBiZSBhIG51bWJlcicpO2lmKGU8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcignInNpemUiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG5lZ2F0aXZlJyl9ZnVuY3Rpb24gU2UoZSx0KXtpZihfZSh0KSxlPXllKGUsdDwwPzA6MHxFZSh0KSksIW1lLlRZUEVEX0FSUkFZX1NVUFBPUlQpZm9yKHZhciByPTA7cjx0OysrcillW3JdPTA7cmV0dXJuIGV9ZnVuY3Rpb24gYmUoZSx0KXt2YXIgcj10Lmxlbmd0aDwwPzA6MHxFZSh0Lmxlbmd0aCk7ZT15ZShlLHIpO2Zvcih2YXIgbj0wO248cjtuKz0xKWVbbl09MjU1JnRbbl07cmV0dXJuIGV9ZnVuY3Rpb24gRWUoZSl7aWYoZT49dmUoKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXR0ZW1wdCB0byBhbGxvY2F0ZSBCdWZmZXIgbGFyZ2VyIHRoYW4gbWF4aW11bSBzaXplOiAweCIrdmUoKS50b1N0cmluZygxNikrIiBieXRlcyIpO3JldHVybiAwfGV9ZnVuY3Rpb24ga2UoZSl7cmV0dXJuIShudWxsPT1lfHwhZS5faXNCdWZmZXIpfWZ1bmN0aW9uIFJlKGUsdCl7aWYoa2UoZSkpcmV0dXJuIGUubGVuZ3RoO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBBcnJheUJ1ZmZlci5pc1ZpZXcmJihBcnJheUJ1ZmZlci5pc1ZpZXcoZSl8fGUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikpcmV0dXJuIGUuYnl0ZUxlbmd0aDsic3RyaW5nIiE9dHlwZW9mIGUmJihlPSIiK2UpO3ZhciByPWUubGVuZ3RoO2lmKDA9PT1yKXJldHVybiAwO2Zvcih2YXIgbj0hMTs7KXN3aXRjaCh0KXtjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiByO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSB2b2lkIDA6cmV0dXJuIFplKGUpLmxlbmd0aDtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIDIqcjtjYXNlImhleCI6cmV0dXJuIHI+Pj4xO2Nhc2UiYmFzZTY0IjpyZXR1cm4gUWUoZSkubGVuZ3RoO2RlZmF1bHQ6aWYobilyZXR1cm4gWmUoZSkubGVuZ3RoO3Q9KCIiK3QpLnRvTG93ZXJDYXNlKCksbj0hMH19ZnVuY3Rpb24gVGUoZSx0LHIpe3ZhciBuPSExO2lmKCh2b2lkIDA9PT10fHx0PDApJiYodD0wKSx0PnRoaXMubGVuZ3RoKXJldHVybiIiO2lmKCh2b2lkIDA9PT1yfHxyPnRoaXMubGVuZ3RoKSYmKHI9dGhpcy5sZW5ndGgpLHI8PTApcmV0dXJuIiI7aWYoKHI+Pj49MCk8PSh0Pj4+PTApKXJldHVybiIiO2ZvcihlfHwoZT0idXRmOCIpOzspc3dpdGNoKGUpe2Nhc2UiaGV4IjpyZXR1cm4gQmUodGhpcyx0LHIpO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIGplKHRoaXMsdCxyKTtjYXNlImFzY2lpIjpyZXR1cm4geGUodGhpcyx0LHIpO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIHFlKHRoaXMsdCxyKTtjYXNlImJhc2U2NCI6cmV0dXJuIE1lKHRoaXMsdCxyKTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIEZlKHRoaXMsdCxyKTtkZWZhdWx0OmlmKG4pdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitlKTtlPShlKyIiKS50b0xvd2VyQ2FzZSgpLG49ITB9fWZ1bmN0aW9uIEFlKGUsdCxyKXt2YXIgbj1lW3RdO2VbdF09ZVtyXSxlW3JdPW59ZnVuY3Rpb24gQ2UoZSx0LHIsbixpKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuLTE7aWYoInN0cmluZyI9PXR5cGVvZiByPyhuPXIscj0wKTpyPjIxNDc0ODM2NDc/cj0yMTQ3NDgzNjQ3OnI8LTIxNDc0ODM2NDgmJihyPS0yMTQ3NDgzNjQ4KSxyPStyLGlzTmFOKHIpJiYocj1pPzA6ZS5sZW5ndGgtMSkscjwwJiYocj1lLmxlbmd0aCtyKSxyPj1lLmxlbmd0aCl7aWYoaSlyZXR1cm4tMTtyPWUubGVuZ3RoLTF9ZWxzZSBpZihyPDApe2lmKCFpKXJldHVybi0xO3I9MH1pZigic3RyaW5nIj09dHlwZW9mIHQmJih0PW1lLmZyb20odCxuKSksa2UodCkpcmV0dXJuIDA9PT10Lmxlbmd0aD8tMTpEZShlLHQscixuLGkpO2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4gdCY9MjU1LG1lLlRZUEVEX0FSUkFZX1NVUFBPUlQmJiJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mP2k/VWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGUsdCxyKTpVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGUsdCxyKTpEZShlLFt0XSxyLG4saSk7dGhyb3cgbmV3IFR5cGVFcnJvcigidmFsIG11c3QgYmUgc3RyaW5nLCBudW1iZXIgb3IgQnVmZmVyIil9ZnVuY3Rpb24gRGUoZSx0LHIsbixpKXt2YXIgbyxzPTEsYT1lLmxlbmd0aCxjPXQubGVuZ3RoO2lmKHZvaWQgMCE9PW4mJigidWNzMiI9PT0obj1TdHJpbmcobikudG9Mb3dlckNhc2UoKSl8fCJ1Y3MtMiI9PT1ufHwidXRmMTZsZSI9PT1ufHwidXRmLTE2bGUiPT09bikpe2lmKGUubGVuZ3RoPDJ8fHQubGVuZ3RoPDIpcmV0dXJuLTE7cz0yLGEvPTIsYy89MixyLz0yfWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4gMT09PXM/ZVt0XTplLnJlYWRVSW50MTZCRSh0KnMpfWlmKGkpe3ZhciBsPS0xO2ZvcihvPXI7bzxhO28rKylpZih1KGUsbyk9PT11KHQsLTE9PT1sPzA6by1sKSl7aWYoLTE9PT1sJiYobD1vKSxvLWwrMT09PWMpcmV0dXJuIGwqc31lbHNlLTEhPT1sJiYoby09by1sKSxsPS0xfWVsc2UgZm9yKHIrYz5hJiYocj1hLWMpLG89cjtvPj0wO28tLSl7Zm9yKHZhciBkPSEwLGg9MDtoPGM7aCsrKWlmKHUoZSxvK2gpIT09dSh0LGgpKXtkPSExO2JyZWFrfWlmKGQpcmV0dXJuIG99cmV0dXJuLTF9ZnVuY3Rpb24gUGUoZSx0LHIsbil7cj1OdW1iZXIocil8fDA7dmFyIGk9ZS5sZW5ndGgtcjtuPyhuPU51bWJlcihuKSk+aSYmKG49aSk6bj1pO3ZhciBvPXQubGVuZ3RoO2lmKG8lMiE9MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGhleCBzdHJpbmciKTtuPm8vMiYmKG49by8yKTtmb3IodmFyIHM9MDtzPG47KytzKXt2YXIgYT1wYXJzZUludCh0LnN1YnN0cigyKnMsMiksMTYpO2lmKGlzTmFOKGEpKXJldHVybiBzO2VbcitzXT1hfXJldHVybiBzfWZ1bmN0aW9uIE9lKGUsdCxyLG4pe3JldHVybiBldChaZSh0LGUubGVuZ3RoLXIpLGUscixuKX1mdW5jdGlvbiBJZShlLHQscixuKXtyZXR1cm4gZXQoZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLHI9MDtyPGUubGVuZ3RoOysrcil0LnB1c2goMjU1JmUuY2hhckNvZGVBdChyKSk7cmV0dXJuIHR9KHQpLGUscixuKX1mdW5jdGlvbiBVZShlLHQscixuKXtyZXR1cm4gSWUoZSx0LHIsbil9ZnVuY3Rpb24gTGUoZSx0LHIsbil7cmV0dXJuIGV0KFFlKHQpLGUscixuKX1mdW5jdGlvbiBIZShlLHQscixuKXtyZXR1cm4gZXQoZnVuY3Rpb24oZSx0KXtmb3IodmFyIHIsbixpLG89W10scz0wO3M8ZS5sZW5ndGgmJiEoKHQtPTIpPDApOysrcyluPShyPWUuY2hhckNvZGVBdChzKSk+PjgsaT1yJTI1NixvLnB1c2goaSksby5wdXNoKG4pO3JldHVybiBvfSh0LGUubGVuZ3RoLXIpLGUscixuKX1mdW5jdGlvbiBNZShlLHQscil7cmV0dXJuIDA9PT10JiZyPT09ZS5sZW5ndGg/bGUoZSk6bGUoZS5zbGljZSh0LHIpKX1mdW5jdGlvbiBqZShlLHQscil7cj1NYXRoLm1pbihlLmxlbmd0aCxyKTtmb3IodmFyIG49W10saT10O2k8cjspe3ZhciBvLHMsYSxjLHU9ZVtpXSxsPW51bGwsZD11PjIzOT80OnU+MjIzPzM6dT4xOTE/MjoxO2lmKGkrZDw9cilzd2l0Y2goZCl7Y2FzZSAxOnU8MTI4JiYobD11KTticmVhaztjYXNlIDI6MTI4PT0oMTkyJihvPWVbaSsxXSkpJiYoYz0oMzEmdSk8PDZ8NjMmbyk+MTI3JiYobD1jKTticmVhaztjYXNlIDM6bz1lW2krMV0scz1lW2krMl0sMTI4PT0oMTkyJm8pJiYxMjg9PSgxOTImcykmJihjPSgxNSZ1KTw8MTJ8KDYzJm8pPDw2fDYzJnMpPjIwNDcmJihjPDU1Mjk2fHxjPjU3MzQzKSYmKGw9Yyk7YnJlYWs7Y2FzZSA0Om89ZVtpKzFdLHM9ZVtpKzJdLGE9ZVtpKzNdLDEyOD09KDE5MiZvKSYmMTI4PT0oMTkyJnMpJiYxMjg9PSgxOTImYSkmJihjPSgxNSZ1KTw8MTh8KDYzJm8pPDwxMnwoNjMmcyk8PDZ8NjMmYSk+NjU1MzUmJmM8MTExNDExMiYmKGw9Yyl9bnVsbD09PWw/KGw9NjU1MzMsZD0xKTpsPjY1NTM1JiYobC09NjU1MzYsbi5wdXNoKGw+Pj4xMCYxMDIzfDU1Mjk2KSxsPTU2MzIwfDEwMjMmbCksbi5wdXNoKGwpLGkrPWR9cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0PWUubGVuZ3RoO2lmKHQ8PU5lKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxlKTt2YXIgcj0iIixuPTA7Zm9yKDtuPHQ7KXIrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLGUuc2xpY2UobixuKz1OZSkpO3JldHVybiByfShuKX1tZS5wb29sU2l6ZT04MTkyLG1lLl9hdWdtZW50PWZ1bmN0aW9uKGUpe3JldHVybiBlLl9fcHJvdG9fXz1tZS5wcm90b3R5cGUsZX0sbWUuZnJvbT1mdW5jdGlvbihlLHQscil7cmV0dXJuIHdlKG51bGwsZSx0LHIpfSxtZS5UWVBFRF9BUlJBWV9TVVBQT1JUJiYobWUucHJvdG90eXBlLl9fcHJvdG9fXz1VaW50OEFycmF5LnByb3RvdHlwZSxtZS5fX3Byb3RvX189VWludDhBcnJheSksbWUuYWxsb2M9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBmdW5jdGlvbihlLHQscixuKXtyZXR1cm4gX2UodCksdDw9MD95ZShlLHQpOnZvaWQgMCE9PXI/InN0cmluZyI9PXR5cGVvZiBuP3llKGUsdCkuZmlsbChyLG4pOnllKGUsdCkuZmlsbChyKTp5ZShlLHQpfShudWxsLGUsdCxyKX0sbWUuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oZSl7cmV0dXJuIFNlKG51bGwsZSl9LG1lLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihlKXtyZXR1cm4gU2UobnVsbCxlKX0sbWUuaXNCdWZmZXI9dHQsbWUuY29tcGFyZT1mdW5jdGlvbihlLHQpe2lmKCFrZShlKXx8IWtlKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50cyBtdXN0IGJlIEJ1ZmZlcnMiKTtpZihlPT09dClyZXR1cm4gMDtmb3IodmFyIHI9ZS5sZW5ndGgsbj10Lmxlbmd0aCxpPTAsbz1NYXRoLm1pbihyLG4pO2k8bzsrK2kpaWYoZVtpXSE9PXRbaV0pe3I9ZVtpXSxuPXRbaV07YnJlYWt9cmV0dXJuIHI8bj8tMTpuPHI/MTowfSxtZS5pc0VuY29kaW5nPWZ1bmN0aW9uKGUpe3N3aXRjaChTdHJpbmcoZSkudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpjYXNlImJhc2U2NCI6Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fSxtZS5jb25jYXQ9ZnVuY3Rpb24oZSx0KXtpZighcGUoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gbWUuYWxsb2MoMCk7dmFyIHI7aWYodm9pZCAwPT09dClmb3IodD0wLHI9MDtyPGUubGVuZ3RoOysrcil0Kz1lW3JdLmxlbmd0aDt2YXIgbj1tZS5hbGxvY1Vuc2FmZSh0KSxpPTA7Zm9yKHI9MDtyPGUubGVuZ3RoOysrcil7dmFyIG89ZVtyXTtpZigha2UobykpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO28uY29weShuLGkpLGkrPW8ubGVuZ3RofXJldHVybiBufSxtZS5ieXRlTGVuZ3RoPVJlLG1lLnByb3RvdHlwZS5faXNCdWZmZXI9ITAsbWUucHJvdG90eXBlLnN3YXAxNj1mdW5jdGlvbigpe3ZhciBlPXRoaXMubGVuZ3RoO2lmKGUlMiE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDE2LWJpdHMiKTtmb3IodmFyIHQ9MDt0PGU7dCs9MilBZSh0aGlzLHQsdCsxKTtyZXR1cm4gdGhpc30sbWUucHJvdG90eXBlLnN3YXAzMj1mdW5jdGlvbigpe3ZhciBlPXRoaXMubGVuZ3RoO2lmKGUlNCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMyLWJpdHMiKTtmb3IodmFyIHQ9MDt0PGU7dCs9NClBZSh0aGlzLHQsdCszKSxBZSh0aGlzLHQrMSx0KzIpO3JldHVybiB0aGlzfSxtZS5wcm90b3R5cGUuc3dhcDY0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5sZW5ndGg7aWYoZSU4IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNjQtYml0cyIpO2Zvcih2YXIgdD0wO3Q8ZTt0Kz04KUFlKHRoaXMsdCx0KzcpLEFlKHRoaXMsdCsxLHQrNiksQWUodGhpcyx0KzIsdCs1KSxBZSh0aGlzLHQrMyx0KzQpO3JldHVybiB0aGlzfSxtZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgZT0wfHRoaXMubGVuZ3RoO3JldHVybiAwPT09ZT8iIjowPT09YXJndW1lbnRzLmxlbmd0aD9qZSh0aGlzLDAsZSk6VGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxtZS5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKGUpe2lmKCFrZShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIik7cmV0dXJuIHRoaXM9PT1lfHwwPT09bWUuY29tcGFyZSh0aGlzLGUpfSxtZS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3ZhciBlPSIiO3JldHVybiB0aGlzLmxlbmd0aD4wJiYoZT10aGlzLnRvU3RyaW5nKCJoZXgiLDAsNTApLm1hdGNoKC8uezJ9L2cpLmpvaW4oIiAiKSx0aGlzLmxlbmd0aD41MCYmKGUrPSIgLi4uICIpKSwiPEJ1ZmZlciAiK2UrIj4ifSxtZS5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbihlLHQscixuLGkpe2lmKCFrZShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIik7aWYodm9pZCAwPT09dCYmKHQ9MCksdm9pZCAwPT09ciYmKHI9ZT9lLmxlbmd0aDowKSx2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1pJiYoaT10aGlzLmxlbmd0aCksdDwwfHxyPmUubGVuZ3RofHxuPDB8fGk+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm91dCBvZiByYW5nZSBpbmRleCIpO2lmKG4+PWkmJnQ+PXIpcmV0dXJuIDA7aWYobj49aSlyZXR1cm4tMTtpZih0Pj1yKXJldHVybiAxO2lmKHRoaXM9PT1lKXJldHVybiAwO2Zvcih2YXIgbz0oaT4+Pj0wKS0obj4+Pj0wKSxzPShyPj4+PTApLSh0Pj4+PTApLGE9TWF0aC5taW4obyxzKSxjPXRoaXMuc2xpY2UobixpKSx1PWUuc2xpY2UodCxyKSxsPTA7bDxhOysrbClpZihjW2xdIT09dVtsXSl7bz1jW2xdLHM9dVtsXTticmVha31yZXR1cm4gbzxzPy0xOnM8bz8xOjB9LG1lLnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbihlLHQscil7cmV0dXJuLTEhPT10aGlzLmluZGV4T2YoZSx0LHIpfSxtZS5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbihlLHQscil7cmV0dXJuIENlKHRoaXMsZSx0LHIsITApfSxtZS5wcm90b3R5cGUubGFzdEluZGV4T2Y9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBDZSh0aGlzLGUsdCxyLCExKX0sbWUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGUsdCxyLG4pe2lmKHZvaWQgMD09PXQpbj0idXRmOCIscj10aGlzLmxlbmd0aCx0PTA7ZWxzZSBpZih2b2lkIDA9PT1yJiYic3RyaW5nIj09dHlwZW9mIHQpbj10LHI9dGhpcy5sZW5ndGgsdD0wO2Vsc2V7aWYoIWlzRmluaXRlKHQpKXRocm93IG5ldyBFcnJvcigiQnVmZmVyLndyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldFssIGxlbmd0aF0pIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQiKTt0fD0wLGlzRmluaXRlKHIpPyhyfD0wLHZvaWQgMD09PW4mJihuPSJ1dGY4IikpOihuPXIscj12b2lkIDApfXZhciBpPXRoaXMubGVuZ3RoLXQ7aWYoKHZvaWQgMD09PXJ8fHI+aSkmJihyPWkpLGUubGVuZ3RoPjAmJihyPDB8fHQ8MCl8fHQ+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzIik7bnx8KG49InV0ZjgiKTtmb3IodmFyIG89ITE7Oylzd2l0Y2gobil7Y2FzZSJoZXgiOnJldHVybiBQZSh0aGlzLGUsdCxyKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBPZSh0aGlzLGUsdCxyKTtjYXNlImFzY2lpIjpyZXR1cm4gSWUodGhpcyxlLHQscik7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gVWUodGhpcyxlLHQscik7Y2FzZSJiYXNlNjQiOnJldHVybiBMZSh0aGlzLGUsdCxyKTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIEhlKHRoaXMsZSx0LHIpO2RlZmF1bHQ6aWYobyl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK24pO249KCIiK24pLnRvTG93ZXJDYXNlKCksbz0hMH19LG1lLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiQnVmZmVyIixkYXRhOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX2Fycnx8dGhpcywwKX19O3ZhciBOZT00MDk2O2Z1bmN0aW9uIHhlKGUsdCxyKXt2YXIgbj0iIjtyPU1hdGgubWluKGUubGVuZ3RoLHIpO2Zvcih2YXIgaT10O2k8cjsrK2kpbis9U3RyaW5nLmZyb21DaGFyQ29kZSgxMjcmZVtpXSk7cmV0dXJuIG59ZnVuY3Rpb24gcWUoZSx0LHIpe3ZhciBuPSIiO3I9TWF0aC5taW4oZS5sZW5ndGgscik7Zm9yKHZhciBpPXQ7aTxyOysraSluKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGVbaV0pO3JldHVybiBufWZ1bmN0aW9uIEJlKGUsdCxyKXt2YXIgbj1lLmxlbmd0aDsoIXR8fHQ8MCkmJih0PTApLCghcnx8cjwwfHxyPm4pJiYocj1uKTtmb3IodmFyIGk9IiIsbz10O288cjsrK28paSs9WGUoZVtvXSk7cmV0dXJuIGl9ZnVuY3Rpb24gRmUoZSx0LHIpe2Zvcih2YXIgbj1lLnNsaWNlKHQsciksaT0iIixvPTA7bzxuLmxlbmd0aDtvKz0yKWkrPVN0cmluZy5mcm9tQ2hhckNvZGUobltvXSsyNTYqbltvKzFdKTtyZXR1cm4gaX1mdW5jdGlvbiBLZShlLHQscil7aWYoZSUxIT0wfHxlPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm9mZnNldCBpcyBub3QgdWludCIpO2lmKGUrdD5yKXRocm93IG5ldyBSYW5nZUVycm9yKCJUcnlpbmcgdG8gYWNjZXNzIGJleW9uZCBidWZmZXIgbGVuZ3RoIil9ZnVuY3Rpb24gSmUoZSx0LHIsbixpLG8pe2lmKCFrZShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmZmVyIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJyk7aWYodD5pfHx0PG8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKHIrbj5lLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gV2UoZSx0LHIsbil7dDwwJiYodD02NTUzNSt0KzEpO2Zvcih2YXIgaT0wLG89TWF0aC5taW4oZS5sZW5ndGgtciwyKTtpPG87KytpKWVbcitpXT0odCYyNTU8PDgqKG4/aToxLWkpKT4+PjgqKG4/aToxLWkpfWZ1bmN0aW9uICRlKGUsdCxyLG4pe3Q8MCYmKHQ9NDI5NDk2NzI5NSt0KzEpO2Zvcih2YXIgaT0wLG89TWF0aC5taW4oZS5sZW5ndGgtciw0KTtpPG87KytpKWVbcitpXT10Pj4+OCoobj9pOjMtaSkmMjU1fWZ1bmN0aW9uIHplKGUsdCxyLG4saSxvKXtpZihyK24+ZS5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpO2lmKHI8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gVmUoZSx0LHIsbixpKXtyZXR1cm4gaXx8emUoZSwwLHIsNCksaGUoZSx0LHIsbiwyMyw0KSxyKzR9ZnVuY3Rpb24gWWUoZSx0LHIsbixpKXtyZXR1cm4gaXx8emUoZSwwLHIsOCksaGUoZSx0LHIsbiw1Miw4KSxyKzh9bWUucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKGUsdCl7dmFyIHIsbj10aGlzLmxlbmd0aDtpZigoZT1+fmUpPDA/KGUrPW4pPDAmJihlPTApOmU+biYmKGU9biksKHQ9dm9pZCAwPT09dD9uOn5+dCk8MD8odCs9bik8MCYmKHQ9MCk6dD5uJiYodD1uKSx0PGUmJih0PWUpLG1lLlRZUEVEX0FSUkFZX1NVUFBPUlQpKHI9dGhpcy5zdWJhcnJheShlLHQpKS5fX3Byb3RvX189bWUucHJvdG90eXBlO2Vsc2V7dmFyIGk9dC1lO3I9bmV3IG1lKGksdm9pZCAwKTtmb3IodmFyIG89MDtvPGk7KytvKXJbb109dGhpc1tvK2VdfXJldHVybiByfSxtZS5wcm90b3R5cGUucmVhZFVJbnRMRT1mdW5jdGlvbihlLHQscil7ZXw9MCx0fD0wLHJ8fEtlKGUsdCx0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPXRoaXNbZV0saT0xLG89MDsrK288dCYmKGkqPTI1Nik7KW4rPXRoaXNbZStvXSppO3JldHVybiBufSxtZS5wcm90b3R5cGUucmVhZFVJbnRCRT1mdW5jdGlvbihlLHQscil7ZXw9MCx0fD0wLHJ8fEtlKGUsdCx0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPXRoaXNbZSstLXRdLGk9MTt0PjAmJihpKj0yNTYpOyluKz10aGlzW2UrLS10XSppO3JldHVybiBufSxtZS5wcm90b3R5cGUucmVhZFVJbnQ4PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fEtlKGUsMSx0aGlzLmxlbmd0aCksdGhpc1tlXX0sbWUucHJvdG90eXBlLnJlYWRVSW50MTZMRT1mdW5jdGlvbihlLHQpe3JldHVybiB0fHxLZShlLDIsdGhpcy5sZW5ndGgpLHRoaXNbZV18dGhpc1tlKzFdPDw4fSxtZS5wcm90b3R5cGUucmVhZFVJbnQxNkJFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fEtlKGUsMix0aGlzLmxlbmd0aCksdGhpc1tlXTw8OHx0aGlzW2UrMV19LG1lLnByb3RvdHlwZS5yZWFkVUludDMyTEU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8S2UoZSw0LHRoaXMubGVuZ3RoKSwodGhpc1tlXXx0aGlzW2UrMV08PDh8dGhpc1tlKzJdPDwxNikrMTY3NzcyMTYqdGhpc1tlKzNdfSxtZS5wcm90b3R5cGUucmVhZFVJbnQzMkJFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fEtlKGUsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1tlXSsodGhpc1tlKzFdPDwxNnx0aGlzW2UrMl08PDh8dGhpc1tlKzNdKX0sbWUucHJvdG90eXBlLnJlYWRJbnRMRT1mdW5jdGlvbihlLHQscil7ZXw9MCx0fD0wLHJ8fEtlKGUsdCx0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPXRoaXNbZV0saT0xLG89MDsrK288dCYmKGkqPTI1Nik7KW4rPXRoaXNbZStvXSppO3JldHVybiBuPj0oaSo9MTI4KSYmKG4tPU1hdGgucG93KDIsOCp0KSksbn0sbWUucHJvdG90eXBlLnJlYWRJbnRCRT1mdW5jdGlvbihlLHQscil7ZXw9MCx0fD0wLHJ8fEtlKGUsdCx0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPXQsaT0xLG89dGhpc1tlKy0tbl07bj4wJiYoaSo9MjU2KTspbys9dGhpc1tlKy0tbl0qaTtyZXR1cm4gbz49KGkqPTEyOCkmJihvLT1NYXRoLnBvdygyLDgqdCkpLG99LG1lLnByb3RvdHlwZS5yZWFkSW50OD1mdW5jdGlvbihlLHQpe3JldHVybiB0fHxLZShlLDEsdGhpcy5sZW5ndGgpLDEyOCZ0aGlzW2VdPy0xKigyNTUtdGhpc1tlXSsxKTp0aGlzW2VdfSxtZS5wcm90b3R5cGUucmVhZEludDE2TEU9ZnVuY3Rpb24oZSx0KXt0fHxLZShlLDIsdGhpcy5sZW5ndGgpO3ZhciByPXRoaXNbZV18dGhpc1tlKzFdPDw4O3JldHVybiAzMjc2OCZyPzQyOTQ5MDE3NjB8cjpyfSxtZS5wcm90b3R5cGUucmVhZEludDE2QkU9ZnVuY3Rpb24oZSx0KXt0fHxLZShlLDIsdGhpcy5sZW5ndGgpO3ZhciByPXRoaXNbZSsxXXx0aGlzW2VdPDw4O3JldHVybiAzMjc2OCZyPzQyOTQ5MDE3NjB8cjpyfSxtZS5wcm90b3R5cGUucmVhZEludDMyTEU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8S2UoZSw0LHRoaXMubGVuZ3RoKSx0aGlzW2VdfHRoaXNbZSsxXTw8OHx0aGlzW2UrMl08PDE2fHRoaXNbZSszXTw8MjR9LG1lLnByb3RvdHlwZS5yZWFkSW50MzJCRT1mdW5jdGlvbihlLHQpe3JldHVybiB0fHxLZShlLDQsdGhpcy5sZW5ndGgpLHRoaXNbZV08PDI0fHRoaXNbZSsxXTw8MTZ8dGhpc1tlKzJdPDw4fHRoaXNbZSszXX0sbWUucHJvdG90eXBlLnJlYWRGbG9hdExFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fEtlKGUsNCx0aGlzLmxlbmd0aCksZGUodGhpcyxlLCEwLDIzLDQpfSxtZS5wcm90b3R5cGUucmVhZEZsb2F0QkU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8S2UoZSw0LHRoaXMubGVuZ3RoKSxkZSh0aGlzLGUsITEsMjMsNCl9LG1lLnByb3RvdHlwZS5yZWFkRG91YmxlTEU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8S2UoZSw4LHRoaXMubGVuZ3RoKSxkZSh0aGlzLGUsITAsNTIsOCl9LG1lLnByb3RvdHlwZS5yZWFkRG91YmxlQkU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8S2UoZSw4LHRoaXMubGVuZ3RoKSxkZSh0aGlzLGUsITEsNTIsOCl9LG1lLnByb3RvdHlwZS53cml0ZVVJbnRMRT1mdW5jdGlvbihlLHQscixuKXsoZT0rZSx0fD0wLHJ8PTAsbil8fEplKHRoaXMsZSx0LHIsTWF0aC5wb3coMiw4KnIpLTEsMCk7dmFyIGk9MSxvPTA7Zm9yKHRoaXNbdF09MjU1JmU7KytvPHImJihpKj0yNTYpOyl0aGlzW3Qrb109ZS9pJjI1NTtyZXR1cm4gdCtyfSxtZS5wcm90b3R5cGUud3JpdGVVSW50QkU9ZnVuY3Rpb24oZSx0LHIsbil7KGU9K2UsdHw9MCxyfD0wLG4pfHxKZSh0aGlzLGUsdCxyLE1hdGgucG93KDIsOCpyKS0xLDApO3ZhciBpPXItMSxvPTE7Zm9yKHRoaXNbdCtpXT0yNTUmZTstLWk+PTAmJihvKj0yNTYpOyl0aGlzW3QraV09ZS9vJjI1NTtyZXR1cm4gdCtyfSxtZS5wcm90b3R5cGUud3JpdGVVSW50OD1mdW5jdGlvbihlLHQscil7cmV0dXJuIGU9K2UsdHw9MCxyfHxKZSh0aGlzLGUsdCwxLDI1NSwwKSxtZS5UWVBFRF9BUlJBWV9TVVBQT1JUfHwoZT1NYXRoLmZsb29yKGUpKSx0aGlzW3RdPTI1NSZlLHQrMX0sbWUucHJvdG90eXBlLndyaXRlVUludDE2TEU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlPStlLHR8PTAscnx8SmUodGhpcyxlLHQsMiw2NTUzNSwwKSxtZS5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW3RdPTI1NSZlLHRoaXNbdCsxXT1lPj4+OCk6V2UodGhpcyxlLHQsITApLHQrMn0sbWUucHJvdG90eXBlLndyaXRlVUludDE2QkU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlPStlLHR8PTAscnx8SmUodGhpcyxlLHQsMiw2NTUzNSwwKSxtZS5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW3RdPWU+Pj44LHRoaXNbdCsxXT0yNTUmZSk6V2UodGhpcyxlLHQsITEpLHQrMn0sbWUucHJvdG90eXBlLndyaXRlVUludDMyTEU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlPStlLHR8PTAscnx8SmUodGhpcyxlLHQsNCw0Mjk0OTY3Mjk1LDApLG1lLlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbdCszXT1lPj4+MjQsdGhpc1t0KzJdPWU+Pj4xNix0aGlzW3QrMV09ZT4+PjgsdGhpc1t0XT0yNTUmZSk6JGUodGhpcyxlLHQsITApLHQrNH0sbWUucHJvdG90eXBlLndyaXRlVUludDMyQkU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlPStlLHR8PTAscnx8SmUodGhpcyxlLHQsNCw0Mjk0OTY3Mjk1LDApLG1lLlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbdF09ZT4+PjI0LHRoaXNbdCsxXT1lPj4+MTYsdGhpc1t0KzJdPWU+Pj44LHRoaXNbdCszXT0yNTUmZSk6JGUodGhpcyxlLHQsITEpLHQrNH0sbWUucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rpb24oZSx0LHIsbil7aWYoZT0rZSx0fD0wLCFuKXt2YXIgaT1NYXRoLnBvdygyLDgqci0xKTtKZSh0aGlzLGUsdCxyLGktMSwtaSl9dmFyIG89MCxzPTEsYT0wO2Zvcih0aGlzW3RdPTI1NSZlOysrbzxyJiYocyo9MjU2KTspZTwwJiYwPT09YSYmMCE9PXRoaXNbdCtvLTFdJiYoYT0xKSx0aGlzW3Qrb109KGUvcz4+MCktYSYyNTU7cmV0dXJuIHQrcn0sbWUucHJvdG90eXBlLndyaXRlSW50QkU9ZnVuY3Rpb24oZSx0LHIsbil7aWYoZT0rZSx0fD0wLCFuKXt2YXIgaT1NYXRoLnBvdygyLDgqci0xKTtKZSh0aGlzLGUsdCxyLGktMSwtaSl9dmFyIG89ci0xLHM9MSxhPTA7Zm9yKHRoaXNbdCtvXT0yNTUmZTstLW8+PTAmJihzKj0yNTYpOyllPDAmJjA9PT1hJiYwIT09dGhpc1t0K28rMV0mJihhPTEpLHRoaXNbdCtvXT0oZS9zPj4wKS1hJjI1NTtyZXR1cm4gdCtyfSxtZS5wcm90b3R5cGUud3JpdGVJbnQ4PWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZT0rZSx0fD0wLHJ8fEplKHRoaXMsZSx0LDEsMTI3LC0xMjgpLG1lLlRZUEVEX0FSUkFZX1NVUFBPUlR8fChlPU1hdGguZmxvb3IoZSkpLGU8MCYmKGU9MjU1K2UrMSksdGhpc1t0XT0yNTUmZSx0KzF9LG1lLnByb3RvdHlwZS53cml0ZUludDE2TEU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlPStlLHR8PTAscnx8SmUodGhpcyxlLHQsMiwzMjc2NywtMzI3NjgpLG1lLlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbdF09MjU1JmUsdGhpc1t0KzFdPWU+Pj44KTpXZSh0aGlzLGUsdCwhMCksdCsyfSxtZS5wcm90b3R5cGUud3JpdGVJbnQxNkJFPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZT0rZSx0fD0wLHJ8fEplKHRoaXMsZSx0LDIsMzI3NjcsLTMyNzY4KSxtZS5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW3RdPWU+Pj44LHRoaXNbdCsxXT0yNTUmZSk6V2UodGhpcyxlLHQsITEpLHQrMn0sbWUucHJvdG90eXBlLndyaXRlSW50MzJMRT1mdW5jdGlvbihlLHQscil7cmV0dXJuIGU9K2UsdHw9MCxyfHxKZSh0aGlzLGUsdCw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLG1lLlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbdF09MjU1JmUsdGhpc1t0KzFdPWU+Pj44LHRoaXNbdCsyXT1lPj4+MTYsdGhpc1t0KzNdPWU+Pj4yNCk6JGUodGhpcyxlLHQsITApLHQrNH0sbWUucHJvdG90eXBlLndyaXRlSW50MzJCRT1mdW5jdGlvbihlLHQscil7cmV0dXJuIGU9K2UsdHw9MCxyfHxKZSh0aGlzLGUsdCw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLGU8MCYmKGU9NDI5NDk2NzI5NStlKzEpLG1lLlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbdF09ZT4+PjI0LHRoaXNbdCsxXT1lPj4+MTYsdGhpc1t0KzJdPWU+Pj44LHRoaXNbdCszXT0yNTUmZSk6JGUodGhpcyxlLHQsITEpLHQrNH0sbWUucHJvdG90eXBlLndyaXRlRmxvYXRMRT1mdW5jdGlvbihlLHQscil7cmV0dXJuIFZlKHRoaXMsZSx0LCEwLHIpfSxtZS5wcm90b3R5cGUud3JpdGVGbG9hdEJFPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gVmUodGhpcyxlLHQsITEscil9LG1lLnByb3RvdHlwZS53cml0ZURvdWJsZUxFPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gWWUodGhpcyxlLHQsITAscil9LG1lLnByb3RvdHlwZS53cml0ZURvdWJsZUJFPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gWWUodGhpcyxlLHQsITEscil9LG1lLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKGUsdCxyLG4pe2lmKHJ8fChyPTApLG58fDA9PT1ufHwobj10aGlzLmxlbmd0aCksdD49ZS5sZW5ndGgmJih0PWUubGVuZ3RoKSx0fHwodD0wKSxuPjAmJm48ciYmKG49ciksbj09PXIpcmV0dXJuIDA7aWYoMD09PWUubGVuZ3RofHwwPT09dGhpcy5sZW5ndGgpcmV0dXJuIDA7aWYodDwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJ0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzIik7aWYocjwwfHxyPj10aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic291cmNlU3RhcnQgb3V0IG9mIGJvdW5kcyIpO2lmKG48MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic291cmNlRW5kIG91dCBvZiBib3VuZHMiKTtuPnRoaXMubGVuZ3RoJiYobj10aGlzLmxlbmd0aCksZS5sZW5ndGgtdDxuLXImJihuPWUubGVuZ3RoLXQrcik7dmFyIGksbz1uLXI7aWYodGhpcz09PWUmJnI8dCYmdDxuKWZvcihpPW8tMTtpPj0wOy0taSllW2krdF09dGhpc1tpK3JdO2Vsc2UgaWYobzwxZTN8fCFtZS5UWVBFRF9BUlJBWV9TVVBQT1JUKWZvcihpPTA7aTxvOysraSllW2krdF09dGhpc1tpK3JdO2Vsc2UgVWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwoZSx0aGlzLnN1YmFycmF5KHIscitvKSx0KTtyZXR1cm4gb30sbWUucHJvdG90eXBlLmZpbGw9ZnVuY3Rpb24oZSx0LHIsbil7aWYoInN0cmluZyI9PXR5cGVvZiBlKXtpZigic3RyaW5nIj09dHlwZW9mIHQ/KG49dCx0PTAscj10aGlzLmxlbmd0aCk6InN0cmluZyI9PXR5cGVvZiByJiYobj1yLHI9dGhpcy5sZW5ndGgpLDE9PT1lLmxlbmd0aCl7dmFyIGk9ZS5jaGFyQ29kZUF0KDApO2k8MjU2JiYoZT1pKX1pZih2b2lkIDAhPT1uJiYic3RyaW5nIiE9dHlwZW9mIG4pdGhyb3cgbmV3IFR5cGVFcnJvcigiZW5jb2RpbmcgbXVzdCBiZSBhIHN0cmluZyIpO2lmKCJzdHJpbmciPT10eXBlb2YgbiYmIW1lLmlzRW5jb2RpbmcobikpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIituKX1lbHNlIm51bWJlciI9PXR5cGVvZiBlJiYoZSY9MjU1KTtpZih0PDB8fHRoaXMubGVuZ3RoPHR8fHRoaXMubGVuZ3RoPHIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk91dCBvZiByYW5nZSBpbmRleCIpO2lmKHI8PXQpcmV0dXJuIHRoaXM7dmFyIG87aWYodD4+Pj0wLHI9dm9pZCAwPT09cj90aGlzLmxlbmd0aDpyPj4+MCxlfHwoZT0wKSwibnVtYmVyIj09dHlwZW9mIGUpZm9yKG89dDtvPHI7KytvKXRoaXNbb109ZTtlbHNle3ZhciBzPWtlKGUpP2U6WmUobmV3IG1lKGUsbikudG9TdHJpbmcoKSksYT1zLmxlbmd0aDtmb3Iobz0wO288ci10Oysrbyl0aGlzW28rdF09c1tvJWFdfXJldHVybiB0aGlzfTt2YXIgR2U9L1teK1wvMC05QS1aYS16LV9dL2c7ZnVuY3Rpb24gWGUoZSl7cmV0dXJuIGU8MTY/IjAiK2UudG9TdHJpbmcoMTYpOmUudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIFplKGUsdCl7dmFyIHI7dD10fHwxLzA7Zm9yKHZhciBuPWUubGVuZ3RoLGk9bnVsbCxvPVtdLHM9MDtzPG47KytzKXtpZigocj1lLmNoYXJDb2RlQXQocykpPjU1Mjk1JiZyPDU3MzQ0KXtpZighaSl7aWYocj41NjMxOSl7KHQtPTMpPi0xJiZvLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfWlmKHMrMT09PW4peyh0LT0zKT4tMSYmby5wdXNoKDIzOSwxOTEsMTg5KTtjb250aW51ZX1pPXI7Y29udGludWV9aWYocjw1NjMyMCl7KHQtPTMpPi0xJiZvLnB1c2goMjM5LDE5MSwxODkpLGk9cjtjb250aW51ZX1yPTY1NTM2KyhpLTU1Mjk2PDwxMHxyLTU2MzIwKX1lbHNlIGkmJih0LT0zKT4tMSYmby5wdXNoKDIzOSwxOTEsMTg5KTtpZihpPW51bGwscjwxMjgpe2lmKCh0LT0xKTwwKWJyZWFrO28ucHVzaChyKX1lbHNlIGlmKHI8MjA0OCl7aWYoKHQtPTIpPDApYnJlYWs7by5wdXNoKHI+PjZ8MTkyLDYzJnJ8MTI4KX1lbHNlIGlmKHI8NjU1MzYpe2lmKCh0LT0zKTwwKWJyZWFrO28ucHVzaChyPj4xMnwyMjQscj4+NiY2M3wxMjgsNjMmcnwxMjgpfWVsc2V7aWYoIShyPDExMTQxMTIpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBjb2RlIHBvaW50Iik7aWYoKHQtPTQpPDApYnJlYWs7by5wdXNoKHI+PjE4fDI0MCxyPj4xMiY2M3wxMjgscj4+NiY2M3wxMjgsNjMmcnwxMjgpfX1yZXR1cm4gb31mdW5jdGlvbiBRZShlKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQscixuLGksbyxzO2FlfHxjZSgpO3ZhciBhPWUubGVuZ3RoO2lmKGElND4wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCIpO289Ij0iPT09ZVthLTJdPzI6Ij0iPT09ZVthLTFdPzE6MCxzPW5ldyBzZSgzKmEvNC1vKSxuPW8+MD9hLTQ6YTt2YXIgYz0wO2Zvcih0PTAscj0wO3Q8bjt0Kz00LHIrPTMpaT1vZVtlLmNoYXJDb2RlQXQodCldPDwxOHxvZVtlLmNoYXJDb2RlQXQodCsxKV08PDEyfG9lW2UuY2hhckNvZGVBdCh0KzIpXTw8NnxvZVtlLmNoYXJDb2RlQXQodCszKV0sc1tjKytdPWk+PjE2JjI1NSxzW2MrK109aT4+OCYyNTUsc1tjKytdPTI1NSZpO3JldHVybiAyPT09bz8oaT1vZVtlLmNoYXJDb2RlQXQodCldPDwyfG9lW2UuY2hhckNvZGVBdCh0KzEpXT4+NCxzW2MrK109MjU1JmkpOjE9PT1vJiYoaT1vZVtlLmNoYXJDb2RlQXQodCldPDwxMHxvZVtlLmNoYXJDb2RlQXQodCsxKV08PDR8b2VbZS5jaGFyQ29kZUF0KHQrMildPj4yLHNbYysrXT1pPj44JjI1NSxzW2MrK109MjU1JmkpLHN9KGZ1bmN0aW9uKGUpe2lmKChlPWZ1bmN0aW9uKGUpe3JldHVybiBlLnRyaW0/ZS50cmltKCk6ZS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIil9KGUpLnJlcGxhY2UoR2UsIiIpKS5sZW5ndGg8MilyZXR1cm4iIjtmb3IoO2UubGVuZ3RoJTQhPTA7KWUrPSI9IjtyZXR1cm4gZX0oZSkpfWZ1bmN0aW9uIGV0KGUsdCxyLG4pe2Zvcih2YXIgaT0wO2k8biYmIShpK3I+PXQubGVuZ3RofHxpPj1lLmxlbmd0aCk7KytpKXRbaStyXT1lW2ldO3JldHVybiBpfWZ1bmN0aW9uIHR0KGUpe3JldHVybiBudWxsIT1lJiYoISFlLl9pc0J1ZmZlcnx8cnQoZSl8fGZ1bmN0aW9uKGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlLnJlYWRGbG9hdExFJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5zbGljZSYmcnQoZS5zbGljZSgwLDApKX0oZSkpfWZ1bmN0aW9uIHJ0KGUpe3JldHVybiEhZS5jb25zdHJ1Y3RvciYmImZ1bmN0aW9uIj09dHlwZW9mIGUuY29uc3RydWN0b3IuaXNCdWZmZXImJmUuY29uc3RydWN0b3IuaXNCdWZmZXIoZSl9dmFyIG50PU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLEJ1ZmZlcjptZSxJTlNQRUNUX01BWF9CWVRFUzo1MCxTbG93QnVmZmVyOmZ1bmN0aW9uKGUpe3JldHVybitlIT1lJiYoZT0wKSxtZS5hbGxvYygrZSl9LGlzQnVmZmVyOnR0LGtNYXhMZW5ndGg6Z2V9KSxpdD1yZTtmdW5jdGlvbiBvdChlLHQscixuLGkpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPShuZXcgRXJyb3IpLnN0YWNrLHRoaXMubWVzc2FnZT1lLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsdCYmKHRoaXMuY29kZT10KSxyJiYodGhpcy5jb25maWc9ciksbiYmKHRoaXMucmVxdWVzdD1uKSxpJiYodGhpcy5yZXNwb25zZT1pKX1pdC5pbmhlcml0cyhvdCxFcnJvcix7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOnRoaXMuY29uZmlnLGNvZGU6dGhpcy5jb2RlLHN0YXR1czp0aGlzLnJlc3BvbnNlJiZ0aGlzLnJlc3BvbnNlLnN0YXR1cz90aGlzLnJlc3BvbnNlLnN0YXR1czpudWxsfX19KTt2YXIgc3Q9b3QucHJvdG90eXBlLGF0PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2F0W2VdPXt2YWx1ZTplfX0pKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhvdCxhdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHN0LCJpc0F4aW9zRXJyb3IiLHt2YWx1ZTohMH0pLG90LmZyb209ZnVuY3Rpb24oZSx0LHIsbixpLG8pe3ZhciBzPU9iamVjdC5jcmVhdGUoc3QpO3JldHVybiBpdC50b0ZsYXRPYmplY3QoZSxzLChmdW5jdGlvbihlKXtyZXR1cm4gZSE9PUVycm9yLnByb3RvdHlwZX0pKSxvdC5jYWxsKHMsZS5tZXNzYWdlLHQscixuLGkpLHMuY2F1c2U9ZSxzLm5hbWU9ZS5uYW1lLG8mJk9iamVjdC5hc3NpZ24ocyxvKSxzfTt2YXIgY3Q9b3QsdXQ9Im9iamVjdCI9PXR5cGVvZiBzZWxmP3NlbGYuRm9ybURhdGE6d2luZG93LkZvcm1EYXRhLGx0PXJlLGR0PWN0LGh0PXV0O2Z1bmN0aW9uIGZ0KGUpe3JldHVybiBsdC5pc1BsYWluT2JqZWN0KGUpfHxsdC5pc0FycmF5KGUpfWZ1bmN0aW9uIHB0KGUpe3JldHVybiBsdC5lbmRzV2l0aChlLCJbXSIpP2Uuc2xpY2UoMCwtMik6ZX1mdW5jdGlvbiBndChlLHQscil7cmV0dXJuIGU/ZS5jb25jYXQodCkubWFwKChmdW5jdGlvbihlLHQpe3JldHVybiBlPXB0KGUpLCFyJiZ0PyJbIitlKyJdIjplfSkpLmpvaW4ocj8iLiI6IiIpOnR9dmFyIHZ0PWx0LnRvRmxhdE9iamVjdChsdCx7fSxudWxsLChmdW5jdGlvbihlKXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QoZSl9KSk7dmFyIHl0PWZ1bmN0aW9uKGUsdCxyKXtpZighbHQuaXNPYmplY3QoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7dD10fHxuZXcoaHR8fEZvcm1EYXRhKTt2YXIgbixpPShyPWx0LnRvRmxhdE9iamVjdChyLHttZXRhVG9rZW5zOiEwLGRvdHM6ITEsaW5kZXhlczohMX0sITEsKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIWx0LmlzVW5kZWZpbmVkKHRbZV0pfSkpKS5tZXRhVG9rZW5zLG89ci52aXNpdG9yfHxsLHM9ci5kb3RzLGE9ci5pbmRleGVzLGM9KHIuQmxvYnx8InVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iJiZCbG9iKSYmKChuPXQpJiZsdC5pc0Z1bmN0aW9uKG4uYXBwZW5kKSYmIkZvcm1EYXRhIj09PW5bU3ltYm9sLnRvU3RyaW5nVGFnXSYmbltTeW1ib2wuaXRlcmF0b3JdKTtpZighbHQuaXNGdW5jdGlvbihvKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ2aXNpdG9yIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIHUoZSl7aWYobnVsbD09PWUpcmV0dXJuIiI7aWYobHQuaXNEYXRlKGUpKXJldHVybiBlLnRvSVNPU3RyaW5nKCk7aWYoIWMmJmx0LmlzQmxvYihlKSl0aHJvdyBuZXcgZHQoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIGx0LmlzQXJyYXlCdWZmZXIoZSl8fGx0LmlzVHlwZWRBcnJheShlKT9jJiYiZnVuY3Rpb24iPT10eXBlb2YgQmxvYj9uZXcgQmxvYihbZV0pOm1lLmZyb20oZSk6ZX1mdW5jdGlvbiBsKGUscixuKXt2YXIgbz1lO2lmKGUmJiFuJiYib2JqZWN0Ij09dHlwZW9mIGUpaWYobHQuZW5kc1dpdGgociwie30iKSlyPWk/cjpyLnNsaWNlKDAsLTIpLGU9SlNPTi5zdHJpbmdpZnkoZSk7ZWxzZSBpZihsdC5pc0FycmF5KGUpJiZmdW5jdGlvbihlKXtyZXR1cm4gbHQuaXNBcnJheShlKSYmIWUuc29tZShmdCl9KGUpfHxsdC5pc0ZpbGVMaXN0KGUpfHxsdC5lbmRzV2l0aChyLCJbXSIpJiYobz1sdC50b0FycmF5KGUpKSlyZXR1cm4gcj1wdChyKSxvLmZvckVhY2goKGZ1bmN0aW9uKGUsbil7IWx0LmlzVW5kZWZpbmVkKGUpJiZudWxsIT09ZSYmdC5hcHBlbmQoITA9PT1hP2d0KFtyXSxuLHMpOm51bGw9PT1hP3I6cisiW10iLHUoZSkpfSkpLCExO3JldHVybiEhZnQoZSl8fCh0LmFwcGVuZChndChuLHIscyksdShlKSksITEpfXZhciBkPVtdLGg9T2JqZWN0LmFzc2lnbih2dCx7ZGVmYXVsdFZpc2l0b3I6bCxjb252ZXJ0VmFsdWU6dSxpc1Zpc2l0YWJsZTpmdH0pO2lmKCFsdC5pc09iamVjdChlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJkYXRhIG11c3QgYmUgYW4gb2JqZWN0Iik7cmV0dXJuIGZ1bmN0aW9uIGUocixuKXtpZighbHQuaXNVbmRlZmluZWQocikpe2lmKC0xIT09ZC5pbmRleE9mKHIpKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIituLmpvaW4oIi4iKSk7ZC5wdXNoKHIpLGx0LmZvckVhY2gociwoZnVuY3Rpb24ocixpKXshMD09PSghKGx0LmlzVW5kZWZpbmVkKHIpfHxudWxsPT09cikmJm8uY2FsbCh0LHIsbHQuaXNTdHJpbmcoaSk/aS50cmltKCk6aSxuLGgpKSYmZShyLG4/bi5jb25jYXQoaSk6W2ldKX0pKSxkLnBvcCgpfX0oZSksdH0sbXQ9eXQ7ZnVuY3Rpb24gd3QoZSl7dmFyIHQ9eyIhIjoiJTIxIiwiJyI6IiUyNyIsIigiOiIlMjgiLCIpIjoiJTI5IiwifiI6IiU3RSIsIiUyMCI6IisiLCIlMDAiOiJcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvWyEnXChcKX5dfCUyMHwlMDAvZywoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KSl9ZnVuY3Rpb24gX3QoZSx0KXt0aGlzLl9wYWlycz1bXSxlJiZtdChlLHRoaXMsdCl9dmFyIFN0PV90LnByb3RvdHlwZTtTdC5hcHBlbmQ9ZnVuY3Rpb24oZSx0KXt0aGlzLl9wYWlycy5wdXNoKFtlLHRdKX0sU3QudG9TdHJpbmc9ZnVuY3Rpb24oZSl7dmFyIHQ9ZT9mdW5jdGlvbih0KXtyZXR1cm4gZS5jYWxsKHRoaXMsdCx3dCl9Ond0O3JldHVybiB0aGlzLl9wYWlycy5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB0KGVbMF0pKyI9Iit0KGVbMV0pfSksIiIpLmpvaW4oIiYiKX07dmFyIGJ0PV90LEV0PXJlLGt0PWJ0O2Z1bmN0aW9uIFJ0KGUpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjAvZywiKyIpLnJlcGxhY2UoLyU1Qi9naSwiWyIpLnJlcGxhY2UoLyU1RC9naSwiXSIpfXZhciBUdD1mdW5jdGlvbihlLHQscil7aWYoIXQpcmV0dXJuIGU7dmFyIG49ZS5pbmRleE9mKCIjIik7LTEhPT1uJiYoZT1lLnNsaWNlKDAsbikpO3ZhciBpLG89ciYmci5lbmNvZGV8fFJ0LHM9ciYmci5zZXJpYWxpemU7cmV0dXJuKGk9cz9zKHQscik6RXQuaXNVUkxTZWFyY2hQYXJhbXModCk/dC50b1N0cmluZygpOm5ldyBrdCh0LHIpLnRvU3RyaW5nKG8pKSYmKGUrPSgtMT09PWUuaW5kZXhPZigiPyIpPyI/IjoiJiIpK2kpLGV9LEF0PXJlO2Z1bmN0aW9uIEN0KCl7dGhpcy5oYW5kbGVycz1bXX1DdC5wcm90b3R5cGUudXNlPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOiEhciYmci5zeW5jaHJvbm91cyxydW5XaGVuOnI/ci5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfSxDdC5wcm90b3R5cGUuZWplY3Q9ZnVuY3Rpb24oZSl7dGhpcy5oYW5kbGVyc1tlXSYmKHRoaXMuaGFuZGxlcnNbZV09bnVsbCl9LEN0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPVtdKX0sQ3QucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oZSl7QXQuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLChmdW5jdGlvbih0KXtudWxsIT09dCYmZSh0KX0pKX07dmFyIER0PUN0O2Z1bmN0aW9uIFB0KCl7dGhyb3cgbmV3IEVycm9yKCJzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gT3QoKXt0aHJvdyBuZXcgRXJyb3IoImNsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCIpfXZhciBJdD1QdCxVdD1PdDtmdW5jdGlvbiBMdChlKXtpZihJdD09PXNldFRpbWVvdXQpcmV0dXJuIHNldFRpbWVvdXQoZSwwKTtpZigoSXQ9PT1QdHx8IUl0KSYmc2V0VGltZW91dClyZXR1cm4gSXQ9c2V0VGltZW91dCxzZXRUaW1lb3V0KGUsMCk7dHJ5e3JldHVybiBJdChlLDApfWNhdGNoKHQpe3RyeXtyZXR1cm4gSXQuY2FsbChudWxsLGUsMCl9Y2F0Y2godCl7cmV0dXJuIEl0LmNhbGwodGhpcyxlLDApfX19ImZ1bmN0aW9uIj09dHlwZW9mIG5lLnNldFRpbWVvdXQmJihJdD1zZXRUaW1lb3V0KSwiZnVuY3Rpb24iPT10eXBlb2YgbmUuY2xlYXJUaW1lb3V0JiYoVXQ9Y2xlYXJUaW1lb3V0KTt2YXIgSHQsTXQ9W10sanQ9ITEsTnQ9LTE7ZnVuY3Rpb24geHQoKXtqdCYmSHQmJihqdD0hMSxIdC5sZW5ndGg/TXQ9SHQuY29uY2F0KE10KTpOdD0tMSxNdC5sZW5ndGgmJnF0KCkpfWZ1bmN0aW9uIHF0KCl7aWYoIWp0KXt2YXIgZT1MdCh4dCk7anQ9ITA7Zm9yKHZhciB0PU10Lmxlbmd0aDt0Oyl7Zm9yKEh0PU10LE10PVtdOysrTnQ8dDspSHQmJkh0W050XS5ydW4oKTtOdD0tMSx0PU10Lmxlbmd0aH1IdD1udWxsLGp0PSExLGZ1bmN0aW9uKGUpe2lmKFV0PT09Y2xlYXJUaW1lb3V0KXJldHVybiBjbGVhclRpbWVvdXQoZSk7aWYoKFV0PT09T3R8fCFVdCkmJmNsZWFyVGltZW91dClyZXR1cm4gVXQ9Y2xlYXJUaW1lb3V0LGNsZWFyVGltZW91dChlKTt0cnl7VXQoZSl9Y2F0Y2godCl7dHJ5e3JldHVybiBVdC5jYWxsKG51bGwsZSl9Y2F0Y2godCl7cmV0dXJuIFV0LmNhbGwodGhpcyxlKX19fShlKX19ZnVuY3Rpb24gQnQoZSx0KXt0aGlzLmZ1bj1lLHRoaXMuYXJyYXk9dH1CdC5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKCl7dGhpcy5mdW4uYXBwbHkobnVsbCx0aGlzLmFycmF5KX07ZnVuY3Rpb24gRnQoKXt9dmFyIEt0PUZ0LEp0PUZ0LFd0PUZ0LCR0PUZ0LHp0PUZ0LFZ0PUZ0LFl0PUZ0O3ZhciBHdD1uZS5wZXJmb3JtYW5jZXx8e30sWHQ9R3Qubm93fHxHdC5tb3pOb3d8fEd0Lm1zTm93fHxHdC5vTm93fHxHdC53ZWJraXROb3d8fGZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9O3ZhciBadD1uZXcgRGF0ZTt2YXIgUXQ9e25leHRUaWNrOmZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoLTEpO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSlmb3IodmFyIHI9MTtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXRbci0xXT1hcmd1bWVudHNbcl07TXQucHVzaChuZXcgQnQoZSx0KSksMSE9PU10Lmxlbmd0aHx8anR8fEx0KHF0KX0sdGl0bGU6ImJyb3dzZXIiLGJyb3dzZXI6ITAsZW52Ont9LGFyZ3Y6W10sdmVyc2lvbjoiIix2ZXJzaW9uczp7fSxvbjpLdCxhZGRMaXN0ZW5lcjpKdCxvbmNlOld0LG9mZjokdCxyZW1vdmVMaXN0ZW5lcjp6dCxyZW1vdmVBbGxMaXN0ZW5lcnM6VnQsZW1pdDpZdCxiaW5kaW5nOmZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcigicHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQiKX0sY3dkOmZ1bmN0aW9uKCl7cmV0dXJuIi8ifSxjaGRpcjpmdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoInByb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCIpfSx1bWFzazpmdW5jdGlvbigpe3JldHVybiAwfSxocnRpbWU6ZnVuY3Rpb24oZSl7dmFyIHQ9LjAwMSpYdC5jYWxsKEd0KSxyPU1hdGguZmxvb3IodCksbj1NYXRoLmZsb29yKHQlMSoxZTkpO3JldHVybiBlJiYoci09ZVswXSwobi09ZVsxXSk8MCYmKHItLSxuKz0xZTkpKSxbcixuXX0scGxhdGZvcm06ImJyb3dzZXIiLHJlbGVhc2U6e30sY29uZmlnOnt9LHVwdGltZTpmdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZS1adCkvMWUzfX0sZXI9UXQsdHI9cmUscnI9ZnVuY3Rpb24oZSx0KXt0ci5mb3JFYWNoKGUsKGZ1bmN0aW9uKHIsbil7biE9PXQmJm4udG9VcHBlckNhc2UoKT09PXQudG9VcHBlckNhc2UoKSYmKGVbdF09cixkZWxldGUgZVtuXSl9KSl9LG5yPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfSxpcj17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczoidW5kZWZpbmVkIiE9dHlwZW9mIFVSTFNlYXJjaFBhcmFtcz9VUkxTZWFyY2hQYXJhbXM6YnQsRm9ybURhdGE6Rm9ybURhdGEsQmxvYjpCbG9ifSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX0sb3I9cmUsc3I9eXQsYXI9aXIsY3I9cmU7dmFyIHVyPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSxyLG4saSl7dmFyIG89ZVtpKytdO2lmKCJfX3Byb3RvX18iPT09bylyZXR1cm4hMDt2YXIgcz1OdW1iZXIuaXNGaW5pdGUoK28pLGE9aT49ZS5sZW5ndGg7cmV0dXJuIG89IW8mJmNyLmlzQXJyYXkobik/bi5sZW5ndGg6byxhPyhjci5oYXNPd25Qcm9wZXJ0eShuLG8pP25bb109W25bb10scl06bltvXT1yLCFzKToobltvXSYmY3IuaXNPYmplY3QobltvXSl8fChuW29dPVtdKSx0KGUscixuW29dLGkpJiZjci5pc0FycmF5KG5bb10pJiYobltvXT1mdW5jdGlvbihlKXt2YXIgdCxyLG49e30saT1PYmplY3Qua2V5cyhlKSxvPWkubGVuZ3RoO2Zvcih0PTA7dDxvO3QrKyluW3I9aVt0XV09ZVtyXTtyZXR1cm4gbn0obltvXSkpLCFzKX1pZihjci5pc0Zvcm1EYXRhKGUpJiZjci5pc0Z1bmN0aW9uKGUuZW50cmllcykpe3ZhciByPXt9O3JldHVybiBjci5mb3JFYWNoRW50cnkoZSwoZnVuY3Rpb24oZSxuKXt0KGZ1bmN0aW9uKGUpe3JldHVybiBjci5tYXRjaEFsbCgvXHcrfFxbKFx3KildL2csZSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4iW10iPT09ZVswXT8iIjplWzFdfHxlWzBdfSkpfShlKSxuLHIsMCl9KSkscn1yZXR1cm4gbnVsbH0sbHI9Y3QsZHI9cmUsaHI9ZHIuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKT97d3JpdGU6ZnVuY3Rpb24oZSx0LHIsbixpLG8pe3ZhciBzPVtdO3MucHVzaChlKyI9IitlbmNvZGVVUklDb21wb25lbnQodCkpLGRyLmlzTnVtYmVyKHIpJiZzLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZShyKS50b0dNVFN0cmluZygpKSxkci5pc1N0cmluZyhuKSYmcy5wdXNoKCJwYXRoPSIrbiksZHIuaXNTdHJpbmcoaSkmJnMucHVzaCgiZG9tYWluPSIraSksITA9PT1vJiZzLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1zLmpvaW4oIjsgIil9LHJlYWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXHMqKSgiK2UrIik9KFteO10qKSIpKTtyZXR1cm4gdD9kZWNvZGVVUklDb21wb25lbnQodFszXSk6bnVsbH0scmVtb3ZlOmZ1bmN0aW9uKGUpe3RoaXMud3JpdGUoZSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZTpmdW5jdGlvbigpe30scmVhZDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxyZW1vdmU6ZnVuY3Rpb24oKXt9fSxmcj1mdW5jdGlvbihlKXtyZXR1cm4vXihbYS16XVthLXpcZCtcLS5dKjopP1wvXC8vaS50ZXN0KGUpfSxwcj1mdW5jdGlvbihlLHQpe3JldHVybiB0P2UucmVwbGFjZSgvXC8/XC8kLywiIikrIi8iK3QucmVwbGFjZSgvXlwvKy8sIiIpOmV9LGdyPWZ1bmN0aW9uKGUsdCxyKXt2YXIgbj0hZnIodCk7cmV0dXJuIGUmJihufHwhMT09PXIpP3ByKGUsdCk6dH0sdnI9cmUseXI9WyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSxtcj1yZSx3cj1tci5pc1N0YW5kYXJkQnJvd3NlckVudigpP2Z1bmN0aW9uKCl7dmFyIGUsdD0vKG1zaWV8dHJpZGVudCkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2Z1bmN0aW9uIG4oZSl7dmFyIG49ZTtyZXR1cm4gdCYmKHIuc2V0QXR0cmlidXRlKCJocmVmIixuKSxuPXIuaHJlZiksci5zZXRBdHRyaWJ1dGUoImhyZWYiLG4pLHtocmVmOnIuaHJlZixwcm90b2NvbDpyLnByb3RvY29sP3IucHJvdG9jb2wucmVwbGFjZSgvOiQvLCIiKToiIixob3N0OnIuaG9zdCxzZWFyY2g6ci5zZWFyY2g/ci5zZWFyY2gucmVwbGFjZSgvXlw/LywiIik6IiIsaGFzaDpyLmhhc2g/ci5oYXNoLnJlcGxhY2UoL14jLywiIik6IiIsaG9zdG5hbWU6ci5ob3N0bmFtZSxwb3J0OnIucG9ydCxwYXRobmFtZToiLyI9PT1yLnBhdGhuYW1lLmNoYXJBdCgwKT9yLnBhdGhuYW1lOiIvIityLnBhdGhuYW1lfX1yZXR1cm4gZT1uKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxmdW5jdGlvbih0KXt2YXIgcj1tci5pc1N0cmluZyh0KT9uKHQpOnQ7cmV0dXJuIHIucHJvdG9jb2w9PT1lLnByb3RvY29sJiZyLmhvc3Q9PT1lLmhvc3R9fSgpOmZ1bmN0aW9uKCl7cmV0dXJuITB9LF9yPWN0O2Z1bmN0aW9uIFNyKGUsdCxyKXtfci5jYWxsKHRoaXMsbnVsbD09ZT8iY2FuY2VsZWQiOmUsX3IuRVJSX0NBTkNFTEVELHQsciksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1yZS5pbmhlcml0cyhTcixfcix7X19DQU5DRUxfXzohMH0pO3ZhciBicj1TcixFcj1yZSxrcj1mdW5jdGlvbihlLHQscil7dmFyIG49ci5jb25maWcudmFsaWRhdGVTdGF0dXM7ci5zdGF0dXMmJm4mJiFuKHIuc3RhdHVzKT90KG5ldyBscigiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Iuc3RhdHVzLFtsci5FUlJfQkFEX1JFUVVFU1QsbHIuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihyLnN0YXR1cy8xMDApLTRdLHIuY29uZmlnLHIucmVxdWVzdCxyKSk6ZShyKX0sUnI9aHIsVHI9VHQsQXI9Z3IsQ3I9ZnVuY3Rpb24oZSl7dmFyIHQscixuLGk9e307cmV0dXJuIGU/KHZyLmZvckVhY2goZS5zcGxpdCgiXG4iKSwoZnVuY3Rpb24oZSl7aWYobj1lLmluZGV4T2YoIjoiKSx0PXZyLnRyaW0oZS5zbGljZSgwLG4pKS50b0xvd2VyQ2FzZSgpLHI9dnIudHJpbShlLnNsaWNlKG4rMSkpLHQpe2lmKGlbdF0mJnlyLmluZGV4T2YodCk+PTApcmV0dXJuO2lbdF09InNldC1jb29raWUiPT09dD8oaVt0XT9pW3RdOltdKS5jb25jYXQoW3JdKTppW3RdP2lbdF0rIiwgIityOnJ9fSkpLGkpOml9LERyPXdyLFByPW5yLE9yPWN0LElyPWJyLFVyPWZ1bmN0aW9uKGUpe3ZhciB0PS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKGUpO3JldHVybiB0JiZ0WzFdfHwiIn0sTHI9aXIsSHI9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0LHIpe3ZhciBuLGk9ZS5kYXRhLG89ZS5oZWFkZXJzLHM9ZS5yZXNwb25zZVR5cGUsYT1lLndpdGhYU1JGVG9rZW47ZnVuY3Rpb24gYygpe2UuY2FuY2VsVG9rZW4mJmUuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUobiksZS5zaWduYWwmJmUuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixuKX1Fci5pc0Zvcm1EYXRhKGkpJiZFci5pc1N0YW5kYXJkQnJvd3NlckVudigpJiZkZWxldGUgb1siQ29udGVudC1UeXBlIl07dmFyIHU9bmV3IFhNTEh0dHBSZXF1ZXN0O2lmKGUuYXV0aCl7dmFyIGw9ZS5hdXRoLnVzZXJuYW1lfHwiIixkPWUuYXV0aC5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoZS5hdXRoLnBhc3N3b3JkKSk6IiI7by5BdXRob3JpemF0aW9uPSJCYXNpYyAiK2J0b2EobCsiOiIrZCl9dmFyIGg9QXIoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpO2Z1bmN0aW9uIGYoKXtpZih1KXt2YXIgbj0iZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIHU/Q3IodS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk6bnVsbCxpPXtkYXRhOnMmJiJ0ZXh0IiE9PXMmJiJqc29uIiE9PXM/dS5yZXNwb25zZTp1LnJlc3BvbnNlVGV4dCxzdGF0dXM6dS5zdGF0dXMsc3RhdHVzVGV4dDp1LnN0YXR1c1RleHQsaGVhZGVyczpuLGNvbmZpZzplLHJlcXVlc3Q6dX07a3IoKGZ1bmN0aW9uKGUpe3QoZSksYygpfSksKGZ1bmN0aW9uKGUpe3IoZSksYygpfSksaSksdT1udWxsfX1pZih1Lm9wZW4oZS5tZXRob2QudG9VcHBlckNhc2UoKSxUcihoLGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplciksITApLHUudGltZW91dD1lLnRpbWVvdXQsIm9ubG9hZGVuZCJpbiB1P3Uub25sb2FkZW5kPWY6dS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXt1JiY0PT09dS5yZWFkeVN0YXRlJiYoMCE9PXUuc3RhdHVzfHx1LnJlc3BvbnNlVVJMJiYwPT09dS5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpKSYmc2V0VGltZW91dChmKX0sdS5vbmFib3J0PWZ1bmN0aW9uKCl7dSYmKHIobmV3IE9yKCJSZXF1ZXN0IGFib3J0ZWQiLE9yLkVDT05OQUJPUlRFRCxlLHUpKSx1PW51bGwpfSx1Lm9uZXJyb3I9ZnVuY3Rpb24oKXtyKG5ldyBPcigiTmV0d29yayBFcnJvciIsT3IuRVJSX05FVFdPUkssZSx1KSksdT1udWxsfSx1Lm9udGltZW91dD1mdW5jdGlvbigpe3ZhciB0PWUudGltZW91dD8idGltZW91dCBvZiAiK2UudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixuPWUudHJhbnNpdGlvbmFsfHxQcjtlLnRpbWVvdXRFcnJvck1lc3NhZ2UmJih0PWUudGltZW91dEVycm9yTWVzc2FnZSkscihuZXcgT3IodCxuLmNsYXJpZnlUaW1lb3V0RXJyb3I/T3IuRVRJTUVET1VUOk9yLkVDT05OQUJPUlRFRCxlLHUpKSx1PW51bGx9LEVyLmlzU3RhbmRhcmRCcm93c2VyRW52KCkmJihhJiZFci5pc0Z1bmN0aW9uKGEpJiYoYT1hKGUpKSxhfHwhMSE9PWEmJkRyKGgpKSl7dmFyIHA9ZS54c3JmSGVhZGVyTmFtZSYmZS54c3JmQ29va2llTmFtZSYmUnIucmVhZChlLnhzcmZDb29raWVOYW1lKTtwJiYob1tlLnhzcmZIZWFkZXJOYW1lXT1wKX0ic2V0UmVxdWVzdEhlYWRlciJpbiB1JiZFci5mb3JFYWNoKG8sKGZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09aSYmImNvbnRlbnQtdHlwZSI9PT10LnRvTG93ZXJDYXNlKCk/ZGVsZXRlIG9bdF06dS5zZXRSZXF1ZXN0SGVhZGVyKHQsZSl9KSksRXIuaXNVbmRlZmluZWQoZS53aXRoQ3JlZGVudGlhbHMpfHwodS53aXRoQ3JlZGVudGlhbHM9ISFlLndpdGhDcmVkZW50aWFscykscyYmImpzb24iIT09cyYmKHUucmVzcG9uc2VUeXBlPWUucmVzcG9uc2VUeXBlKSwiZnVuY3Rpb24iPT10eXBlb2YgZS5vbkRvd25sb2FkUHJvZ3Jlc3MmJnUuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGUub25Eb3dubG9hZFByb2dyZXNzKSwiZnVuY3Rpb24iPT10eXBlb2YgZS5vblVwbG9hZFByb2dyZXNzJiZ1LnVwbG9hZCYmdS51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGUub25VcGxvYWRQcm9ncmVzcyksKGUuY2FuY2VsVG9rZW58fGUuc2lnbmFsKSYmKG49ZnVuY3Rpb24odCl7dSYmKHIoIXR8fHQudHlwZT9uZXcgSXIobnVsbCxlLHUpOnQpLHUuYWJvcnQoKSx1PW51bGwpfSxlLmNhbmNlbFRva2VuJiZlLmNhbmNlbFRva2VuLnN1YnNjcmliZShuKSxlLnNpZ25hbCYmKGUuc2lnbmFsLmFib3J0ZWQ/bigpOmUuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixuKSkpLGl8fCExPT09aXx8MD09PWl8fCIiPT09aXx8KGk9bnVsbCk7dmFyIGc9VXIoaCk7ZyYmLTE9PT1Mci5wcm90b2NvbHMuaW5kZXhPZihnKT9yKG5ldyBPcigiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgIitnKyI6IixPci5FUlJfQkFEX1JFUVVFU1QsZSkpOnUuc2VuZChpKX0pKX0sTXI9cmUsanI9cnIsTnI9Y3QseHI9eXQscXI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gc3IoZSxuZXcgYXIuY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMsT2JqZWN0LmFzc2lnbih7dmlzaXRvcjpmdW5jdGlvbihlLHQscixuKXtyZXR1cm4gYXIuaXNOb2RlJiZvci5pc0J1ZmZlcihlKT8odGhpcy5hcHBlbmQodCxlLnRvU3RyaW5nKCJiYXNlNjQiKSksITEpOm4uZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sdCkpfSxCcj1pcixGcj11cixLcj17IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJ9O2Z1bmN0aW9uIEpyKGUsdCl7IU1yLmlzVW5kZWZpbmVkKGUpJiZNci5pc1VuZGVmaW5lZChlWyJDb250ZW50LVR5cGUiXSkmJihlWyJDb250ZW50LVR5cGUiXT10KX12YXIgV3IsJHI9e3RyYW5zaXRpb25hbDpucixhZGFwdGVyOigoInVuZGVmaW5lZCIhPXR5cGVvZiBYTUxIdHRwUmVxdWVzdHx8dm9pZCAwIT09ZXImJiJbb2JqZWN0IHByb2Nlc3NdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlcikpJiYoV3I9SHIpLFdyKSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihlLHQpe2pyKHQsIkFjY2VwdCIpLGpyKHQsIkNvbnRlbnQtVHlwZSIpO3ZhciByLG49dCYmdFsiQ29udGVudC1UeXBlIl18fCIiLGk9bi5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsbz1Nci5pc09iamVjdChlKTtpZihvJiZNci5pc0hUTUxGb3JtKGUpJiYoZT1uZXcgRm9ybURhdGEoZSkpLE1yLmlzRm9ybURhdGEoZSkpcmV0dXJuIGk/SlNPTi5zdHJpbmdpZnkoRnIoZSkpOmU7aWYoTXIuaXNBcnJheUJ1ZmZlcihlKXx8TXIuaXNCdWZmZXIoZSl8fE1yLmlzU3RyZWFtKGUpfHxNci5pc0ZpbGUoZSl8fE1yLmlzQmxvYihlKSlyZXR1cm4gZTtpZihNci5pc0FycmF5QnVmZmVyVmlldyhlKSlyZXR1cm4gZS5idWZmZXI7aWYoTXIuaXNVUkxTZWFyY2hQYXJhbXMoZSkpcmV0dXJuIEpyKHQsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiksZS50b1N0cmluZygpO2lmKG8pe2lmKC0xIT09bi5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSlyZXR1cm4gcXIoZSx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChyPU1yLmlzRmlsZUxpc3QoZSkpfHxuLmluZGV4T2YoIm11bHRpcGFydC9mb3JtLWRhdGEiKT4tMSl7dmFyIHM9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiB4cihyP3siZmlsZXNbXSI6ZX06ZSxzJiZuZXcgcyx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIG98fGk/KEpyKHQsImFwcGxpY2F0aW9uL2pzb24iKSxmdW5jdGlvbihlLHQscil7aWYoTXIuaXNTdHJpbmcoZSkpdHJ5e3JldHVybih0fHxKU09OLnBhcnNlKShlKSxNci50cmltKGUpfWNhdGNoKGUpe2lmKCJTeW50YXhFcnJvciIhPT1lLm5hbWUpdGhyb3cgZX1yZXR1cm4ocnx8SlNPTi5zdHJpbmdpZnkpKGUpfShlKSk6ZX1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbihlKXt2YXIgdD10aGlzLnRyYW5zaXRpb25hbHx8JHIudHJhbnNpdGlvbmFsLHI9dCYmdC5mb3JjZWRKU09OUGFyc2luZyxuPSJqc29uIj09PXRoaXMucmVzcG9uc2VUeXBlO2lmKGUmJk1yLmlzU3RyaW5nKGUpJiYociYmIXRoaXMucmVzcG9uc2VUeXBlfHxuKSl7dmFyIGk9ISh0JiZ0LnNpbGVudEpTT05QYXJzaW5nKSYmbjt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSl9Y2F0Y2goZSl7aWYoaSl7aWYoIlN5bnRheEVycm9yIj09PWUubmFtZSl0aHJvdyBOci5mcm9tKGUsTnIuRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk7dGhyb3cgZX19fXJldHVybiBlfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTpCci5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6QnIuY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiJ9fX07TXIuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiXSwoZnVuY3Rpb24oZSl7JHIuaGVhZGVyc1tlXT17fX0pKSxNci5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sKGZ1bmN0aW9uKGUpeyRyLmhlYWRlcnNbZV09TXIubWVyZ2UoS3IpfSkpO3ZhciB6cj0kcixWcj1yZSxZcj16cixHcj1mdW5jdGlvbihlKXtyZXR1cm4hKCFlfHwhZS5fX0NBTkNFTF9fKX0sWHI9cmUsWnI9ZnVuY3Rpb24oZSx0LHIsbil7dmFyIGk9dGhpc3x8WXI7cmV0dXJuIFZyLmZvckVhY2gobiwoZnVuY3Rpb24obil7ZT1uLmNhbGwoaSxlLHQscil9KSksZX0sUXI9R3IsZW49enIsdG49YnIscm49cnI7ZnVuY3Rpb24gbm4oZSl7aWYoZS5jYW5jZWxUb2tlbiYmZS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksZS5zaWduYWwmJmUuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IHRufXZhciBvbj1yZSxzbj1mdW5jdGlvbihlLHQpe3Q9dHx8e307dmFyIHI9e307ZnVuY3Rpb24gbihlLHQpe3JldHVybiBvbi5pc1BsYWluT2JqZWN0KGUpJiZvbi5pc1BsYWluT2JqZWN0KHQpP29uLm1lcmdlKGUsdCk6b24uaXNFbXB0eU9iamVjdCh0KT9vbi5tZXJnZSh7fSxlKTpvbi5pc1BsYWluT2JqZWN0KHQpP29uLm1lcmdlKHt9LHQpOm9uLmlzQXJyYXkodCk/dC5zbGljZSgpOnR9ZnVuY3Rpb24gaShyKXtyZXR1cm4gb24uaXNVbmRlZmluZWQodFtyXSk/b24uaXNVbmRlZmluZWQoZVtyXSk/dm9pZCAwOm4odm9pZCAwLGVbcl0pOm4oZVtyXSx0W3JdKX1mdW5jdGlvbiBvKGUpe2lmKCFvbi5pc1VuZGVmaW5lZCh0W2VdKSlyZXR1cm4gbih2b2lkIDAsdFtlXSl9ZnVuY3Rpb24gcyhyKXtyZXR1cm4gb24uaXNVbmRlZmluZWQodFtyXSk/b24uaXNVbmRlZmluZWQoZVtyXSk/dm9pZCAwOm4odm9pZCAwLGVbcl0pOm4odm9pZCAwLHRbcl0pfWZ1bmN0aW9uIGEocil7cmV0dXJuIHIgaW4gdD9uKGVbcl0sdFtyXSk6ciBpbiBlP24odm9pZCAwLGVbcl0pOnZvaWQgMH12YXIgYz17dXJsOm8sbWV0aG9kOm8sZGF0YTpvLGJhc2VVUkw6cyx0cmFuc2Zvcm1SZXF1ZXN0OnMsdHJhbnNmb3JtUmVzcG9uc2U6cyxwYXJhbXNTZXJpYWxpemVyOnMsdGltZW91dDpzLHRpbWVvdXRNZXNzYWdlOnMsd2l0aENyZWRlbnRpYWxzOnMsd2l0aFhTUkZUb2tlbjpzLGFkYXB0ZXI6cyxyZXNwb25zZVR5cGU6cyx4c3JmQ29va2llTmFtZTpzLHhzcmZIZWFkZXJOYW1lOnMsb25VcGxvYWRQcm9ncmVzczpzLG9uRG93bmxvYWRQcm9ncmVzczpzLGRlY29tcHJlc3M6cyxtYXhDb250ZW50TGVuZ3RoOnMsbWF4Qm9keUxlbmd0aDpzLGJlZm9yZVJlZGlyZWN0OnMsdHJhbnNwb3J0OnMsaHR0cEFnZW50OnMsaHR0cHNBZ2VudDpzLGNhbmNlbFRva2VuOnMsc29ja2V0UGF0aDpzLHJlc3BvbnNlRW5jb2Rpbmc6cyx2YWxpZGF0ZVN0YXR1czphfTtyZXR1cm4gb24uZm9yRWFjaChPYmplY3Qua2V5cyhlKS5jb25jYXQoT2JqZWN0LmtleXModCkpLChmdW5jdGlvbihlKXt2YXIgdD1jW2VdfHxpLG49dChlKTtvbi5pc1VuZGVmaW5lZChuKSYmdCE9PWF8fChyW2VdPW4pfSkpLHJ9LGFuPSIwLjMwLjAiLGNuPWFuLHVuPWN0LGxuPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXtsbltlXT1mdW5jdGlvbihyKXtyZXR1cm4gdHlwZW9mIHI9PT1lfHwiYSIrKHQ8MT8ibiAiOiIgIikrZX19KSk7dmFyIGRuPXt9O2xuLnRyYW5zaXRpb25hbD1mdW5jdGlvbihlLHQscil7ZnVuY3Rpb24gbihlLHQpe3JldHVybiJbQXhpb3MgdiIrY24rIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiAnIitlKyInIit0KyhyPyIuICIrcjoiIil9cmV0dXJuIGZ1bmN0aW9uKHIsaSxvKXtpZighMT09PWUpdGhyb3cgbmV3IHVuKG4oaSwiIGhhcyBiZWVuIHJlbW92ZWQiKyh0PyIgaW4gIit0OiIiKSksdW4uRVJSX0RFUFJFQ0FURUQpO3JldHVybiB0JiYhZG5baV0mJihkbltpXT0hMCxjb25zb2xlLndhcm4obihpLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2Iit0KyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLCFlfHxlKHIsaSxvKX19O3ZhciBobj17YXNzZXJ0T3B0aW9uczpmdW5jdGlvbihlLHQscil7aWYoIm9iamVjdCIhPXR5cGVvZiBlKXRocm93IG5ldyB1bigib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsdW4uRVJSX0JBRF9PUFRJT05fVkFMVUUpO2Zvcih2YXIgbj1PYmplY3Qua2V5cyhlKSxpPW4ubGVuZ3RoO2ktLSA+MDspe3ZhciBvPW5baV0scz10W29dO2lmKHMpe3ZhciBhPWVbb10sYz12b2lkIDA9PT1hfHxzKGEsbyxlKTtpZighMCE9PWMpdGhyb3cgbmV3IHVuKCJvcHRpb24gIitvKyIgbXVzdCBiZSAiK2MsdW4uRVJSX0JBRF9PUFRJT05fVkFMVUUpfWVsc2UgaWYoITAhPT1yKXRocm93IG5ldyB1bigiVW5rbm93biBvcHRpb24gIitvLHVuLkVSUl9CQURfT1BUSU9OKX19LHZhbGlkYXRvcnM6bG59LGZuPXJlLHBuPVR0LGduPUR0LHZuPWZ1bmN0aW9uKGUpe3JldHVybiBubihlKSxlLmhlYWRlcnM9ZS5oZWFkZXJzfHx7fSxlLmRhdGE9WnIuY2FsbChlLGUuZGF0YSxlLmhlYWRlcnMsbnVsbCxlLnRyYW5zZm9ybVJlcXVlc3QpLHJuKGUuaGVhZGVycywiQWNjZXB0Iikscm4oZS5oZWFkZXJzLCJDb250ZW50LVR5cGUiKSxlLmhlYWRlcnM9WHIubWVyZ2UoZS5oZWFkZXJzLmNvbW1vbnx8e30sZS5oZWFkZXJzW2UubWV0aG9kXXx8e30sZS5oZWFkZXJzKSxYci5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLChmdW5jdGlvbih0KXtkZWxldGUgZS5oZWFkZXJzW3RdfSkpLChlLmFkYXB0ZXJ8fGVuLmFkYXB0ZXIpKGUpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiBubihlKSx0LmRhdGE9WnIuY2FsbChlLHQuZGF0YSx0LmhlYWRlcnMsdC5zdGF0dXMsZS50cmFuc2Zvcm1SZXNwb25zZSksdH0pLChmdW5jdGlvbih0KXtyZXR1cm4gUXIodCl8fChubihlKSx0JiZ0LnJlc3BvbnNlJiYodC5yZXNwb25zZS5kYXRhPVpyLmNhbGwoZSx0LnJlc3BvbnNlLmRhdGEsdC5yZXNwb25zZS5oZWFkZXJzLHQucmVzcG9uc2Uuc3RhdHVzLGUudHJhbnNmb3JtUmVzcG9uc2UpKSksUHJvbWlzZS5yZWplY3QodCl9KSl9LHluPXNuLG1uPWdyLHduPWhuLF9uPXduLnZhbGlkYXRvcnM7ZnVuY3Rpb24gU24oZSl7dGhpcy5kZWZhdWx0cz1lLHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyBnbixyZXNwb25zZTpuZXcgZ259fVNuLnByb3RvdHlwZS5yZXF1ZXN0PWZ1bmN0aW9uKGUsdCl7InN0cmluZyI9PXR5cGVvZiBlPyh0PXR8fHt9KS51cmw9ZTp0PWV8fHt9LCh0PXluKHRoaXMuZGVmYXVsdHMsdCkpLm1ldGhvZD90Lm1ldGhvZD10Lm1ldGhvZC50b0xvd2VyQ2FzZSgpOnRoaXMuZGVmYXVsdHMubWV0aG9kP3QubWV0aG9kPXRoaXMuZGVmYXVsdHMubWV0aG9kLnRvTG93ZXJDYXNlKCk6dC5tZXRob2Q9ImdldCI7dmFyIHI9dC50cmFuc2l0aW9uYWw7dm9pZCAwIT09ciYmd24uYXNzZXJ0T3B0aW9ucyhyLHtzaWxlbnRKU09OUGFyc2luZzpfbi50cmFuc2l0aW9uYWwoX24uYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6X24udHJhbnNpdGlvbmFsKF9uLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6X24udHJhbnNpdGlvbmFsKF9uLmJvb2xlYW4pfSwhMSk7dmFyIG49dC5wYXJhbXNTZXJpYWxpemVyO251bGwhPW4mJihmbi5pc0Z1bmN0aW9uKG4pP3QucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOm59OnduLmFzc2VydE9wdGlvbnMobix7ZW5jb2RlOl9uLmZ1bmN0aW9uLHNlcmlhbGl6ZTpfbi5mdW5jdGlvbn0sITApKTt2YXIgaT1bXSxvPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ImZ1bmN0aW9uIj09dHlwZW9mIGUucnVuV2hlbiYmITE9PT1lLnJ1bldoZW4odCl8fChvPW8mJmUuc3luY2hyb25vdXMsaS51bnNoaWZ0KGUuZnVsZmlsbGVkLGUucmVqZWN0ZWQpKX0pKTt2YXIgcyxhPVtdO2lmKHRoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2EucHVzaChlLmZ1bGZpbGxlZCxlLnJlamVjdGVkKX0pKSwhbyl7dmFyIGM9W3ZuLHZvaWQgMF07Zm9yKEFycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGMsaSksYz1jLmNvbmNhdChhKSxzPVByb21pc2UucmVzb2x2ZSh0KTtjLmxlbmd0aDspcz1zLnRoZW4oYy5zaGlmdCgpLGMuc2hpZnQoKSk7cmV0dXJuIHN9Zm9yKHZhciB1PXQ7aS5sZW5ndGg7KXt2YXIgbD1pLnNoaWZ0KCksZD1pLnNoaWZ0KCk7dHJ5e3U9bCh1KX1jYXRjaChlKXtkKGUpO2JyZWFrfX10cnl7cz12bih1KX1jYXRjaChlKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoZSl9Zm9yKDthLmxlbmd0aDspcz1zLnRoZW4oYS5zaGlmdCgpLGEuc2hpZnQoKSk7cmV0dXJuIHN9LFNuLnByb3RvdHlwZS5nZXRVcmk9ZnVuY3Rpb24oZSl7ZT15bih0aGlzLmRlZmF1bHRzLGUpO3ZhciB0PW1uKGUuYmFzZVVSTCxlLnVybCxlLmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gcG4odCxlLnBhcmFtcyxlLnBhcmFtc1NlcmlhbGl6ZXIpfSxmbi5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSwoZnVuY3Rpb24oZSl7U24ucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMucmVxdWVzdCh5bihyfHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YToocnx8e30pLmRhdGF9KSl9fSkpLGZuLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSwoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0KXtyZXR1cm4gZnVuY3Rpb24ocixuLGkpe3JldHVybiB0aGlzLnJlcXVlc3QoeW4oaXx8e30se21ldGhvZDplLGhlYWRlcnM6dD97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6cixkYXRhOm59KSl9fVNuLnByb3RvdHlwZVtlXT10KCksU24ucHJvdG90eXBlW2UrIkZvcm0iXT10KCEwKX0pKTt2YXIgYm49U24sRW49YnI7ZnVuY3Rpb24ga24oZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO3ZhciB0O3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7dD1lfSkpO3ZhciByPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4oKGZ1bmN0aW9uKGUpe2lmKHIuX2xpc3RlbmVycyl7Zm9yKHZhciB0PXIuX2xpc3RlbmVycy5sZW5ndGg7dC0tID4wOylyLl9saXN0ZW5lcnNbdF0oZSk7ci5fbGlzdGVuZXJzPW51bGx9fSkpLHRoaXMucHJvbWlzZS50aGVuPWZ1bmN0aW9uKGUpe3ZhciB0LG49bmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe3Iuc3Vic2NyaWJlKGUpLHQ9ZX0pKS50aGVuKGUpO3JldHVybiBuLmNhbmNlbD1mdW5jdGlvbigpe3IudW5zdWJzY3JpYmUodCl9LG59LGUoKGZ1bmN0aW9uKGUsbixpKXtyLnJlYXNvbnx8KHIucmVhc29uPW5ldyBFbihlLG4saSksdChyLnJlYXNvbikpfSkpfWtuLnByb3RvdHlwZS50aHJvd0lmUmVxdWVzdGVkPWZ1bmN0aW9uKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259LGtuLnByb3RvdHlwZS5zdWJzY3JpYmU9ZnVuY3Rpb24oZSl7dGhpcy5yZWFzb24/ZSh0aGlzLnJlYXNvbik6dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKGUpOnRoaXMuX2xpc3RlbmVycz1bZV19LGtuLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbihlKXtpZih0aGlzLl9saXN0ZW5lcnMpe3ZhciB0PXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKGUpOy0xIT09dCYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZSh0LDEpfX0sa24uc291cmNlPWZ1bmN0aW9uKCl7dmFyIGUsdD1uZXcga24oKGZ1bmN0aW9uKHQpe2U9dH0pKTtyZXR1cm57dG9rZW46dCxjYW5jZWw6ZX19O3ZhciBSbj1rbixUbj1yZSxBbj1yZSxDbj1VLERuPWJuLFBuPXNuLE9uPXVyO3ZhciBJbj1mdW5jdGlvbiBlKHQpe3ZhciByPW5ldyBEbih0KSxuPUNuKERuLnByb3RvdHlwZS5yZXF1ZXN0LHIpO3JldHVybiBBbi5leHRlbmQobixEbi5wcm90b3R5cGUsciksQW4uZXh0ZW5kKG4sciksbi5jcmVhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIGUoUG4odCxyKSl9LG59KHpyKTtJbi5BeGlvcz1EbixJbi5DYW5jZWxlZEVycm9yPWJyLEluLkNhbmNlbFRva2VuPVJuLEluLmlzQ2FuY2VsPUdyLEluLlZFUlNJT049YW4sSW4udG9Gb3JtRGF0YT15dCxJbi5BeGlvc0Vycm9yPWN0LEluLkNhbmNlbD1Jbi5DYW5jZWxlZEVycm9yLEluLmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9LEluLnNwcmVhZD1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkobnVsbCx0KX19LEluLmlzQXhpb3NFcnJvcj1mdW5jdGlvbihlKXtyZXR1cm4gVG4uaXNPYmplY3QoZSkmJiEwPT09ZS5pc0F4aW9zRXJyb3J9LEluLmZvcm1Ub0pTT049ZnVuY3Rpb24oZSl7cmV0dXJuIE9uKEFuLmlzSFRNTEZvcm0oZSk/bmV3IEZvcm1EYXRhKGUpOmUpfSxJLmV4cG9ydHM9SW4sSS5leHBvcnRzLmRlZmF1bHQ9SW47dmFyIFVuLExuPUkuZXhwb3J0cztsZXQgSG49VW49Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmF0dGFjaFRva2VuPSgpPT5Qcm9taXNlLnJlc29sdmUoKSx0aGlzLnJlcXVlc3RTdGFydENhbGxiYWNrPSgpPT5udWxsLHRoaXMucmVxdWVzdFN1Y2Nlc3NDYWxsYmFjaz0oKT0+bnVsbCx0aGlzLnJlcXVlc3RFcnJvckNhbGxiYWNrPSgpPT5udWxsLHRoaXMucmVxdWVzdEZpbmlzaENhbGxiYWNrPSgpPT5udWxsLHRoaXMuaW5pdD10aGlzLmluaXQuYmluZCh0aGlzKSx0aGlzLnNldEh0dHBSZXF1ZXN0RXJyb3JDYWxsYmFjaz10aGlzLnNldEh0dHBSZXF1ZXN0RXJyb3JDYWxsYmFjay5iaW5kKHRoaXMpLHRoaXMuc2V0SHR0cFJlcXVlc3RGaW5pc2hDYWxsYmFjaz10aGlzLnNldEh0dHBSZXF1ZXN0RmluaXNoQ2FsbGJhY2suYmluZCh0aGlzKSx0aGlzLnNldEh0dHBSZXF1ZXN0U3RhcnRDYWxsYmFjaz10aGlzLnNldEh0dHBSZXF1ZXN0U3RhcnRDYWxsYmFjay5iaW5kKHRoaXMpLHRoaXMuc2V0SHR0cFJlcXVlc3RTdWNjZXNzQ2FsbGJhY2s9dGhpcy5zZXRIdHRwUmVxdWVzdFN1Y2Nlc3NDYWxsYmFjay5iaW5kKHRoaXMpfXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiB0aGlzLmF4aW9zSW5zdGFuY2V8fCh0aGlzLmF4aW9zSW5zdGFuY2U9TG4uY3JlYXRlKHt3aXRoQ3JlZGVudGlhbHM6ITB9KSx0aGlzLmNsaWVudEluc3RhbmNlfHwodGhpcy5jbGllbnRJbnN0YW5jZT1uZXcgVW4pLHRoaXMuYXhpb3NJbnN0YW5jZS5pbnRlcmNlcHRvcnMucmVxdWVzdC51c2UoKHQ9PmUodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4geWllbGQgdGhpcy5jbGllbnRJbnN0YW5jZS5yZXF1ZXN0SGFuZGxlcih0KX0pKSkpLHRoaXMuYXhpb3NJbnN0YW5jZS5pbnRlcmNlcHRvcnMucmVzcG9uc2UudXNlKChlPT50aGlzLmNsaWVudEluc3RhbmNlLnN1Y2Nlc3NIYW5kbGVyKGUpKSwoZT0+dGhpcy5jbGllbnRJbnN0YW5jZS5lcnJvckhhbmRsZXIoZSkpKSx0aGlzLmF4aW9zSW5zdGFuY2UuYWxsPUxuLmFsbCx0aGlzLmF4aW9zSW5zdGFuY2Uuc3ByZWFkPUxuLnNwcmVhZCx0aGlzLmF4aW9zSW5zdGFuY2UuaW5pdD10aGlzLmNsaWVudEluc3RhbmNlLmluaXQsdGhpcy5heGlvc0luc3RhbmNlLmVuYWJsZUhhbmRsZXI9dGhpcy5jbGllbnRJbnN0YW5jZS5lbmFibGVIYW5kbGVyLHRoaXMuYXhpb3NJbnN0YW5jZS5kaXNhYmxlSGFuZGxlcj10aGlzLmNsaWVudEluc3RhbmNlLmRpc2FibGVIYW5kbGVyLHRoaXMuYXhpb3NJbnN0YW5jZS5kaXNhYmxlSGFuZGxlcldpdGhUaW1lb3V0PXRoaXMuY2xpZW50SW5zdGFuY2UuZGlzYWJsZUhhbmRsZXJXaXRoVGltZW91dCx0aGlzLmF4aW9zSW5zdGFuY2Uuc2V0SHR0cFJlcXVlc3RTdGFydENhbGxiYWNrPXRoaXMuY2xpZW50SW5zdGFuY2Uuc2V0SHR0cFJlcXVlc3RTdGFydENhbGxiYWNrLHRoaXMuYXhpb3NJbnN0YW5jZS5zZXRIdHRwUmVxdWVzdFN1Y2Nlc3NDYWxsYmFjaz10aGlzLmNsaWVudEluc3RhbmNlLnNldEh0dHBSZXF1ZXN0U3VjY2Vzc0NhbGxiYWNrLHRoaXMuYXhpb3NJbnN0YW5jZS5zZXRIdHRwUmVxdWVzdEVycm9yQ2FsbGJhY2s9dGhpcy5jbGllbnRJbnN0YW5jZS5zZXRIdHRwUmVxdWVzdEVycm9yQ2FsbGJhY2ssdGhpcy5heGlvc0luc3RhbmNlLnNldEh0dHBSZXF1ZXN0RmluaXNoQ2FsbGJhY2s9dGhpcy5jbGllbnRJbnN0YW5jZS5zZXRIdHRwUmVxdWVzdEZpbmlzaENhbGxiYWNrKSx0aGlzLmF4aW9zSW5zdGFuY2V9cmVxdWVzdEhhbmRsZXIodCl7cmV0dXJuIGUodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtpZih5aWVsZCB0aGlzLmF0dGFjaFRva2VuKHQpLG51bGw9PXQ/dm9pZCAwOnQuc2hvdWxkRW5jb2RlVG9Gb3JtRGF0YSl7Y29uc3QgZT1udWxsPT10P3ZvaWQgMDp0LmRhdGEscj1uZXcgRm9ybURhdGE7T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgodD0+e3IuYXBwZW5kKHQsZVt0XSl9KSksdC5kYXRhPXJ9cmV0dXJuIHQuc3RhcnRUaW1lSW5Ncz0obmV3IERhdGUpLmdldFRpbWUoKSxVbi5pc0hhbmRsZXJFbmFibGVkJiZ0aGlzLnJlcXVlc3RTdGFydENhbGxiYWNrJiYiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5yZXF1ZXN0U3RhcnRDYWxsYmFjayYmdGhpcy5yZXF1ZXN0U3RhcnRDYWxsYmFjayh0KSx0fSkpfWVycm9ySGFuZGxlcihlKXt0aHJvdyBVbi5pc0hhbmRsZXJFbmFibGVkJiYodGhpcy5yZXF1ZXN0RXJyb3JDYWxsYmFjayYmImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMucmVxdWVzdEVycm9yQ2FsbGJhY2smJnRoaXMucmVxdWVzdEVycm9yQ2FsbGJhY2soZSksdGhpcy5yZXF1ZXN0RmluaXNoQ2FsbGJhY2smJiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnJlcXVlc3RGaW5pc2hDYWxsYmFjayYmdGhpcy5yZXF1ZXN0RmluaXNoQ2FsbGJhY2soKSksZX1zdWNjZXNzSGFuZGxlcihlKXtyZXR1cm4gVW4uaXNIYW5kbGVyRW5hYmxlZCYmKHRoaXMucmVxdWVzdFN1Y2Nlc3NDYWxsYmFjayYmImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMucmVxdWVzdFN1Y2Nlc3NDYWxsYmFjayYmdGhpcy5yZXF1ZXN0U3VjY2Vzc0NhbGxiYWNrKGUpLHRoaXMucmVxdWVzdEZpbmlzaENhbGxiYWNrJiYiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5yZXF1ZXN0RmluaXNoQ2FsbGJhY2smJnRoaXMucmVxdWVzdEZpbmlzaENhbGxiYWNrKCkpLGV9aW5pdCh0PSEwLHIpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7VW4uaXNIYW5kbGVyRW5hYmxlZD10LHRoaXMuYXR0YWNoVG9rZW49cn0pKX1lbmFibGVIYW5kbGVyKCl7VW4uaXNIYW5kbGVyRW5hYmxlZD0hMH1kaXNhYmxlSGFuZGxlcigpe1VuLmlzSGFuZGxlckVuYWJsZWQ9ITF9ZGlzYWJsZUhhbmRsZXJXaXRoVGltZW91dChlPVVuLkRFRkFVTFRfSEFORExFUl9ESVNBQkxFX1RJTUVPVVQpe1VuLmlzSGFuZGxlckVuYWJsZWQ9ITEsc2V0VGltZW91dCgoKCk9PntVbi5pc0hhbmRsZXJFbmFibGVkPSEwfSksZSl9c2V0SHR0cFJlcXVlc3RTdGFydENhbGxiYWNrKGUpe3RoaXMucmVxdWVzdFN0YXJ0Q2FsbGJhY2s9ZX1zZXRIdHRwUmVxdWVzdFN1Y2Nlc3NDYWxsYmFjayhlKXt0aGlzLnJlcXVlc3RTdWNjZXNzQ2FsbGJhY2s9ZX1zZXRIdHRwUmVxdWVzdEVycm9yQ2FsbGJhY2soZSl7dGhpcy5yZXF1ZXN0RXJyb3JDYWxsYmFjaz1lfXNldEh0dHBSZXF1ZXN0RmluaXNoQ2FsbGJhY2soZSl7dGhpcy5yZXF1ZXN0RmluaXNoQ2FsbGJhY2s9ZX19O0huLkRFRkFVTFRfSEFORExFUl9ESVNBQkxFX1RJTUVPVVQ9MWUzLEhuPVVuPWZ1bmN0aW9uKGUsdCxyLG4pe3ZhciBpLG89YXJndW1lbnRzLmxlbmd0aCxzPW88Mz90Om51bGw9PT1uP249T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpOm47aWYoIm9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiYiZnVuY3Rpb24iPT10eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSlzPVJlZmxlY3QuZGVjb3JhdGUoZSx0LHIsbik7ZWxzZSBmb3IodmFyIGE9ZS5sZW5ndGgtMTthPj0wO2EtLSkoaT1lW2FdKSYmKHM9KG88Mz9pKHMpOm8+Mz9pKHQscixzKTppKHQscikpfHxzKTtyZXR1cm4gbz4zJiZzJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLHMpLHN9KFtlPT57fV0sSG4pO2NsYXNzIE1ue2NvbnN0cnVjdG9yKCl7dGhpcy5fZGF0YT1uZXcgTWFwfXNldERhdGEodCxyKXtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3RoaXMuX2RhdGEuc2V0KHQscil9KSl9Z2V0RGF0YSh0KXt2YXIgcixuO3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIG51bGwhPT0obj1udWxsPT09KHI9dGhpcy5fZGF0YSl8fHZvaWQgMD09PXI/dm9pZCAwOnIuZ2V0KHQpKSYmdm9pZCAwIT09bj9uOiJ7fSJ9KSl9cmVtb3ZlRGF0YSh0KXtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3RoaXMuX2RhdGEuZGVsZXRlKHQpfSkpfX12YXIgam49e2V4cG9ydHM6e319LE5uPXt9LHhuPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh4biwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSkseG4uZGVmYXVsdD1mdW5jdGlvbihlKXt2YXIgdD1lLmxlbmd0aCxyPXQlNDtpZighcilyZXR1cm4gZTt2YXIgbj10LGk9NC1yLG89dCtpLHM9bWUuYWxsb2Mobyk7Zm9yKHMud3JpdGUoZSk7aS0tOylzLndyaXRlKCI9IixuKyspO3JldHVybiBzLnRvU3RyaW5nKCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShObiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHFuPXhuO2Z1bmN0aW9uIEJuKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PSJ1dGY4IiksbWUuaXNCdWZmZXIoZSk/S24oZS50b1N0cmluZygiYmFzZTY0IikpOktuKG1lLmZyb20oZSx0KS50b1N0cmluZygiYmFzZTY0IikpfWZ1bmN0aW9uIEZuKGUpe3JldHVybiBlPWUudG9TdHJpbmcoKSxxbi5kZWZhdWx0KGUpLnJlcGxhY2UoL1wtL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKX1mdW5jdGlvbiBLbihlKXtyZXR1cm4gZS5yZXBsYWNlKC89L2csIiIpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIil9dmFyIEpuLFduPUJuO1duLmVuY29kZT1CbixXbi5kZWNvZGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9InV0ZjgiKSxtZS5mcm9tKEZuKGUpLCJiYXNlNjQiKS50b1N0cmluZyh0KX0sV24udG9CYXNlNjQ9Rm4sV24uZnJvbUJhc2U2ND1LbixXbi50b0J1ZmZlcj1mdW5jdGlvbihlKXtyZXR1cm4gbWUuZnJvbShGbihlKSwiYmFzZTY0Iil9LE5uLmRlZmF1bHQ9V24sKEpuPWpuKS5leHBvcnRzPU5uLmRlZmF1bHQsSm4uZXhwb3J0cy5kZWZhdWx0PUpuLmV4cG9ydHM7dmFyICRuPWpuLmV4cG9ydHMsem49e2V4cG9ydHM6e319OyFmdW5jdGlvbihlKXshZnVuY3Rpb24odCxyKXt2YXIgbj17fTshZnVuY3Rpb24oZSl7ZS5fX2VzTW9kdWxlPSEwLGUuZGlnZXN0TGVuZ3RoPTMyLGUuYmxvY2tTaXplPTY0O3ZhciB0PW5ldyBVaW50MzJBcnJheShbMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSk7ZnVuY3Rpb24gcihlLHIsbixpLG8pe2Zvcih2YXIgcyxhLGMsdSxsLGQsaCxmLHAsZyx2LHksbTtvPj02NDspe2ZvcihzPXJbMF0sYT1yWzFdLGM9clsyXSx1PXJbM10sbD1yWzRdLGQ9cls1XSxoPXJbNl0sZj1yWzddLGc9MDtnPDE2O2crKyl2PWkrNCpnLGVbZ109KDI1NSZuW3ZdKTw8MjR8KDI1NSZuW3YrMV0pPDwxNnwoMjU1Jm5bdisyXSk8PDh8MjU1Jm5bdiszXTtmb3IoZz0xNjtnPDY0O2crKyl5PSgocD1lW2ctMl0pPj4+MTd8cDw8MTUpXihwPj4+MTl8cDw8MTMpXnA+Pj4xMCxtPSgocD1lW2ctMTVdKT4+Pjd8cDw8MjUpXihwPj4+MTh8cDw8MTQpXnA+Pj4zLGVbZ109KHkrZVtnLTddfDApKyhtK2VbZy0xNl18MCk7Zm9yKGc9MDtnPDY0O2crKyl5PSgoKGw+Pj42fGw8PDI2KV4obD4+PjExfGw8PDIxKV4obD4+PjI1fGw8PDcpKSsobCZkXn5sJmgpfDApKyhmKyh0W2ddK2VbZ118MCl8MCl8MCxtPSgocz4+PjJ8czw8MzApXihzPj4+MTN8czw8MTkpXihzPj4+MjJ8czw8MTApKSsocyZhXnMmY15hJmMpfDAsZj1oLGg9ZCxkPWwsbD11K3l8MCx1PWMsYz1hLGE9cyxzPXkrbXwwO3JbMF0rPXMsclsxXSs9YSxyWzJdKz1jLHJbM10rPXUscls0XSs9bCxyWzVdKz1kLHJbNl0rPWgscls3XSs9ZixpKz02NCxvLT02NH1yZXR1cm4gaX12YXIgbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLmRpZ2VzdExlbmd0aD1lLmRpZ2VzdExlbmd0aCx0aGlzLmJsb2NrU2l6ZT1lLmJsb2NrU2l6ZSx0aGlzLnN0YXRlPW5ldyBJbnQzMkFycmF5KDgpLHRoaXMudGVtcD1uZXcgSW50MzJBcnJheSg2NCksdGhpcy5idWZmZXI9bmV3IFVpbnQ4QXJyYXkoMTI4KSx0aGlzLmJ1ZmZlckxlbmd0aD0wLHRoaXMuYnl0ZXNIYXNoZWQ9MCx0aGlzLmZpbmlzaGVkPSExLHRoaXMucmVzZXQoKX1yZXR1cm4gdC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0ZVswXT0xNzc5MDMzNzAzLHRoaXMuc3RhdGVbMV09MzE0NDEzNDI3Nyx0aGlzLnN0YXRlWzJdPTEwMTM5MDQyNDIsdGhpcy5zdGF0ZVszXT0yNzczNDgwNzYyLHRoaXMuc3RhdGVbNF09MTM1OTg5MzExOSx0aGlzLnN0YXRlWzVdPTI2MDA4MjI5MjQsdGhpcy5zdGF0ZVs2XT01Mjg3MzQ2MzUsdGhpcy5zdGF0ZVs3XT0xNTQxNDU5MjI1LHRoaXMuYnVmZmVyTGVuZ3RoPTAsdGhpcy5ieXRlc0hhc2hlZD0wLHRoaXMuZmluaXNoZWQ9ITEsdGhpc30sdC5wcm90b3R5cGUuY2xlYW49ZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPHRoaXMuYnVmZmVyLmxlbmd0aDtlKyspdGhpcy5idWZmZXJbZV09MDtmb3IoZT0wO2U8dGhpcy50ZW1wLmxlbmd0aDtlKyspdGhpcy50ZW1wW2VdPTA7dGhpcy5yZXNldCgpfSx0LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSx0KXtpZih2b2lkIDA9PT10JiYodD1lLmxlbmd0aCksdGhpcy5maW5pc2hlZCl0aHJvdyBuZXcgRXJyb3IoIlNIQTI1NjogY2FuJ3QgdXBkYXRlIGJlY2F1c2UgaGFzaCB3YXMgZmluaXNoZWQuIik7dmFyIG49MDtpZih0aGlzLmJ5dGVzSGFzaGVkKz10LHRoaXMuYnVmZmVyTGVuZ3RoPjApe2Zvcig7dGhpcy5idWZmZXJMZW5ndGg8NjQmJnQ+MDspdGhpcy5idWZmZXJbdGhpcy5idWZmZXJMZW5ndGgrK109ZVtuKytdLHQtLTs2ND09PXRoaXMuYnVmZmVyTGVuZ3RoJiYocih0aGlzLnRlbXAsdGhpcy5zdGF0ZSx0aGlzLmJ1ZmZlciwwLDY0KSx0aGlzLmJ1ZmZlckxlbmd0aD0wKX1mb3IodD49NjQmJihuPXIodGhpcy50ZW1wLHRoaXMuc3RhdGUsZSxuLHQpLHQlPTY0KTt0PjA7KXRoaXMuYnVmZmVyW3RoaXMuYnVmZmVyTGVuZ3RoKytdPWVbbisrXSx0LS07cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmZpbmlzaD1mdW5jdGlvbihlKXtpZighdGhpcy5maW5pc2hlZCl7dmFyIHQ9dGhpcy5ieXRlc0hhc2hlZCxuPXRoaXMuYnVmZmVyTGVuZ3RoLGk9dC81MzY4NzA5MTJ8MCxvPXQ8PDMscz10JTY0PDU2PzY0OjEyODt0aGlzLmJ1ZmZlcltuXT0xMjg7Zm9yKHZhciBhPW4rMTthPHMtODthKyspdGhpcy5idWZmZXJbYV09MDt0aGlzLmJ1ZmZlcltzLThdPWk+Pj4yNCYyNTUsdGhpcy5idWZmZXJbcy03XT1pPj4+MTYmMjU1LHRoaXMuYnVmZmVyW3MtNl09aT4+PjgmMjU1LHRoaXMuYnVmZmVyW3MtNV09aT4+PjAmMjU1LHRoaXMuYnVmZmVyW3MtNF09bz4+PjI0JjI1NSx0aGlzLmJ1ZmZlcltzLTNdPW8+Pj4xNiYyNTUsdGhpcy5idWZmZXJbcy0yXT1vPj4+OCYyNTUsdGhpcy5idWZmZXJbcy0xXT1vPj4+MCYyNTUscih0aGlzLnRlbXAsdGhpcy5zdGF0ZSx0aGlzLmJ1ZmZlciwwLHMpLHRoaXMuZmluaXNoZWQ9ITB9Zm9yKGE9MDthPDg7YSsrKWVbNCphKzBdPXRoaXMuc3RhdGVbYV0+Pj4yNCYyNTUsZVs0KmErMV09dGhpcy5zdGF0ZVthXT4+PjE2JjI1NSxlWzQqYSsyXT10aGlzLnN0YXRlW2FdPj4+OCYyNTUsZVs0KmErM109dGhpcy5zdGF0ZVthXT4+PjAmMjU1O3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgVWludDhBcnJheSh0aGlzLmRpZ2VzdExlbmd0aCk7cmV0dXJuIHRoaXMuZmluaXNoKGUpLGV9LHQucHJvdG90eXBlLl9zYXZlU3RhdGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDx0aGlzLnN0YXRlLmxlbmd0aDt0KyspZVt0XT10aGlzLnN0YXRlW3RdfSx0LnByb3RvdHlwZS5fcmVzdG9yZVN0YXRlPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPTA7cjx0aGlzLnN0YXRlLmxlbmd0aDtyKyspdGhpcy5zdGF0ZVtyXT1lW3JdO3RoaXMuYnl0ZXNIYXNoZWQ9dCx0aGlzLmZpbmlzaGVkPSExLHRoaXMuYnVmZmVyTGVuZ3RoPTB9LHR9KCk7ZS5IYXNoPW47dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMuaW5uZXI9bmV3IG4sdGhpcy5vdXRlcj1uZXcgbix0aGlzLmJsb2NrU2l6ZT10aGlzLmlubmVyLmJsb2NrU2l6ZSx0aGlzLmRpZ2VzdExlbmd0aD10aGlzLmlubmVyLmRpZ2VzdExlbmd0aDt2YXIgdD1uZXcgVWludDhBcnJheSh0aGlzLmJsb2NrU2l6ZSk7aWYoZS5sZW5ndGg+dGhpcy5ibG9ja1NpemUpKG5ldyBuKS51cGRhdGUoZSkuZmluaXNoKHQpLmNsZWFuKCk7ZWxzZSBmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl0W3JdPWVbcl07Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl0W3JdXj01NDt0aGlzLmlubmVyLnVwZGF0ZSh0KTtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKXRbcl1ePTEwNjt0aGlzLm91dGVyLnVwZGF0ZSh0KSx0aGlzLmlzdGF0ZT1uZXcgVWludDMyQXJyYXkoOCksdGhpcy5vc3RhdGU9bmV3IFVpbnQzMkFycmF5KDgpLHRoaXMuaW5uZXIuX3NhdmVTdGF0ZSh0aGlzLmlzdGF0ZSksdGhpcy5vdXRlci5fc2F2ZVN0YXRlKHRoaXMub3N0YXRlKTtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKXRbcl09MH1yZXR1cm4gZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbm5lci5fcmVzdG9yZVN0YXRlKHRoaXMuaXN0YXRlLHRoaXMuaW5uZXIuYmxvY2tTaXplKSx0aGlzLm91dGVyLl9yZXN0b3JlU3RhdGUodGhpcy5vc3RhdGUsdGhpcy5vdXRlci5ibG9ja1NpemUpLHRoaXN9LGUucHJvdG90eXBlLmNsZWFuPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTx0aGlzLmlzdGF0ZS5sZW5ndGg7ZSsrKXRoaXMub3N0YXRlW2VdPXRoaXMuaXN0YXRlW2VdPTA7dGhpcy5pbm5lci5jbGVhbigpLHRoaXMub3V0ZXIuY2xlYW4oKX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmlubmVyLnVwZGF0ZShlKSx0aGlzfSxlLnByb3RvdHlwZS5maW5pc2g9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMub3V0ZXIuZmluaXNoZWQ/dGhpcy5vdXRlci5maW5pc2goZSk6KHRoaXMuaW5uZXIuZmluaXNoKGUpLHRoaXMub3V0ZXIudXBkYXRlKGUsdGhpcy5kaWdlc3RMZW5ndGgpLmZpbmlzaChlKSksdGhpc30sZS5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IFVpbnQ4QXJyYXkodGhpcy5kaWdlc3RMZW5ndGgpO3JldHVybiB0aGlzLmZpbmlzaChlKSxlfSxlfSgpO2Z1bmN0aW9uIG8oZSl7dmFyIHQ9KG5ldyBuKS51cGRhdGUoZSkscj10LmRpZ2VzdCgpO3JldHVybiB0LmNsZWFuKCkscn1mdW5jdGlvbiBzKGUsdCl7dmFyIHI9bmV3IGkoZSkudXBkYXRlKHQpLG49ci5kaWdlc3QoKTtyZXR1cm4gci5jbGVhbigpLG59ZnVuY3Rpb24gYShlLHQscixuKXt2YXIgaT1uWzBdO2lmKDA9PT1pKXRocm93IG5ldyBFcnJvcigiaGtkZjogY2Fubm90IGV4cGFuZCBtb3JlIik7dC5yZXNldCgpLGk+MSYmdC51cGRhdGUoZSksciYmdC51cGRhdGUociksdC51cGRhdGUobiksdC5maW5pc2goZSksblswXSsrfWUuSE1BQz1pLGUuaGFzaD1vLGUuZGVmYXVsdD1vLGUuaG1hYz1zO3ZhciBjPW5ldyBVaW50OEFycmF5KGUuZGlnZXN0TGVuZ3RoKTtmdW5jdGlvbiB1KGUsdCxyLG4pe3ZvaWQgMD09PXQmJih0PWMpLHZvaWQgMD09PW4mJihuPTMyKTtmb3IodmFyIG89bmV3IFVpbnQ4QXJyYXkoWzFdKSx1PXModCxlKSxsPW5ldyBpKHUpLGQ9bmV3IFVpbnQ4QXJyYXkobC5kaWdlc3RMZW5ndGgpLGg9ZC5sZW5ndGgsZj1uZXcgVWludDhBcnJheShuKSxwPTA7cDxuO3ArKyloPT09ZC5sZW5ndGgmJihhKGQsbCxyLG8pLGg9MCksZltwXT1kW2grK107cmV0dXJuIGwuY2xlYW4oKSxkLmZpbGwoMCksby5maWxsKDApLGZ9ZnVuY3Rpb24gbChlLHQscixuKXtmb3IodmFyIG89bmV3IGkoZSkscz1vLmRpZ2VzdExlbmd0aCxhPW5ldyBVaW50OEFycmF5KDQpLGM9bmV3IFVpbnQ4QXJyYXkocyksdT1uZXcgVWludDhBcnJheShzKSxsPW5ldyBVaW50OEFycmF5KG4pLGQ9MDtkKnM8bjtkKyspe3ZhciBoPWQrMTthWzBdPWg+Pj4yNCYyNTUsYVsxXT1oPj4+MTYmMjU1LGFbMl09aD4+PjgmMjU1LGFbM109aD4+PjAmMjU1LG8ucmVzZXQoKSxvLnVwZGF0ZSh0KSxvLnVwZGF0ZShhKSxvLmZpbmlzaCh1KTtmb3IodmFyIGY9MDtmPHM7ZisrKWNbZl09dVtmXTtmb3IoZj0yO2Y8PXI7ZisrKXtvLnJlc2V0KCksby51cGRhdGUodSkuZmluaXNoKHUpO2Zvcih2YXIgcD0wO3A8cztwKyspY1twXV49dVtwXX1mb3IoZj0wO2Y8cyYmZCpzK2Y8bjtmKyspbFtkKnMrZl09Y1tmXX1mb3IoZD0wO2Q8cztkKyspY1tkXT11W2RdPTA7Zm9yKGQ9MDtkPDQ7ZCsrKWFbZF09MDtyZXR1cm4gby5jbGVhbigpLGx9ZS5oa2RmPXUsZS5wYmtkZjI9bH0obik7dmFyIGk9bi5kZWZhdWx0O2Zvcih2YXIgbyBpbiBuKWlbb109bltvXTtlLmV4cG9ydHM9aX0oKX0oem4pO3ZhciBWbj1EKHpuLmV4cG9ydHMpLFluPWNyeXB0bztjb25zdCBHbj1lPT5lIGluc3RhbmNlb2YgQ3J5cHRvS2V5LFhuPW5ldyBUZXh0RW5jb2Rlcixabj1uZXcgVGV4dERlY29kZXI7Y29uc3QgUW49ZT0+e2xldCB0PWU7dCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkmJih0PVpuLmRlY29kZSh0KSksdD10LnJlcGxhY2UoLy0vZywiKyIpLnJlcGxhY2UoL18vZywiLyIpLnJlcGxhY2UoL1xzL2csIiIpO3RyeXtyZXR1cm4oZT0+e2NvbnN0IHQ9YXRvYihlKSxyPW5ldyBVaW50OEFycmF5KHQubGVuZ3RoKTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylyW2VdPXQuY2hhckNvZGVBdChlKTtyZXR1cm4gcn0pKHQpfWNhdGNoKGUpe3Rocm93IG5ldyBUeXBlRXJyb3IoIlRoZSBpbnB1dCB0byBiZSBkZWNvZGVkIGlzIG5vdCBjb3JyZWN0bHkgZW5jb2RlZC4iKX19O2NsYXNzIGVpIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSl7dmFyIHQ7c3VwZXIoZSksdGhpcy5jb2RlPSJFUlJfSk9TRV9HRU5FUklDIix0aGlzLm5hbWU9dGhpcy5jb25zdHJ1Y3Rvci5uYW1lLG51bGw9PT0odD1FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSl8fHZvaWQgMD09PXR8fHQuY2FsbChFcnJvcix0aGlzLHRoaXMuY29uc3RydWN0b3IpfXN0YXRpYyBnZXQgY29kZSgpe3JldHVybiJFUlJfSk9TRV9HRU5FUklDIn19Y2xhc3MgdGkgZXh0ZW5kcyBlaXtjb25zdHJ1Y3RvcihlLHQ9InVuc3BlY2lmaWVkIixyPSJ1bnNwZWNpZmllZCIpe3N1cGVyKGUpLHRoaXMuY29kZT0iRVJSX0pXVF9DTEFJTV9WQUxJREFUSU9OX0ZBSUxFRCIsdGhpcy5jbGFpbT10LHRoaXMucmVhc29uPXJ9c3RhdGljIGdldCBjb2RlKCl7cmV0dXJuIkVSUl9KV1RfQ0xBSU1fVkFMSURBVElPTl9GQUlMRUQifX1jbGFzcyByaSBleHRlbmRzIGVpe2NvbnN0cnVjdG9yKGUsdD0idW5zcGVjaWZpZWQiLHI9InVuc3BlY2lmaWVkIil7c3VwZXIoZSksdGhpcy5jb2RlPSJFUlJfSldUX0VYUElSRUQiLHRoaXMuY2xhaW09dCx0aGlzLnJlYXNvbj1yfXN0YXRpYyBnZXQgY29kZSgpe3JldHVybiJFUlJfSldUX0VYUElSRUQifX1jbGFzcyBuaSBleHRlbmRzIGVpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmNvZGU9IkVSUl9KT1NFX0FMR19OT1RfQUxMT1dFRCJ9c3RhdGljIGdldCBjb2RlKCl7cmV0dXJuIkVSUl9KT1NFX0FMR19OT1RfQUxMT1dFRCJ9fWNsYXNzIGlpIGV4dGVuZHMgZWl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY29kZT0iRVJSX0pPU0VfTk9UX1NVUFBPUlRFRCJ9c3RhdGljIGdldCBjb2RlKCl7cmV0dXJuIkVSUl9KT1NFX05PVF9TVVBQT1JURUQifX1jbGFzcyBvaSBleHRlbmRzIGVpe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmNvZGU9IkVSUl9KV1NfSU5WQUxJRCJ9c3RhdGljIGdldCBjb2RlKCl7cmV0dXJuIkVSUl9KV1NfSU5WQUxJRCJ9fWNsYXNzIHNpIGV4dGVuZHMgZWl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY29kZT0iRVJSX0pXVF9JTlZBTElEIn1zdGF0aWMgZ2V0IGNvZGUoKXtyZXR1cm4iRVJSX0pXVF9JTlZBTElEIn19Y2xhc3MgYWkgZXh0ZW5kcyBlaXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5jb2RlPSJFUlJfSldLU19JTlZBTElEIn1zdGF0aWMgZ2V0IGNvZGUoKXtyZXR1cm4iRVJSX0pXS1NfSU5WQUxJRCJ9fWNsYXNzIGNpIGV4dGVuZHMgZWl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY29kZT0iRVJSX0pXS1NfTk9fTUFUQ0hJTkdfS0VZIix0aGlzLm1lc3NhZ2U9Im5vIGFwcGxpY2FibGUga2V5IGZvdW5kIGluIHRoZSBKU09OIFdlYiBLZXkgU2V0In1zdGF0aWMgZ2V0IGNvZGUoKXtyZXR1cm4iRVJSX0pXS1NfTk9fTUFUQ0hJTkdfS0VZIn19Y2xhc3MgdWkgZXh0ZW5kcyBlaXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5jb2RlPSJFUlJfSldLU19NVUxUSVBMRV9NQVRDSElOR19LRVlTIix0aGlzLm1lc3NhZ2U9Im11bHRpcGxlIG1hdGNoaW5nIGtleXMgZm91bmQgaW4gdGhlIEpTT04gV2ViIEtleSBTZXQifXN0YXRpYyBnZXQgY29kZSgpe3JldHVybiJFUlJfSldLU19NVUxUSVBMRV9NQVRDSElOR19LRVlTIn19Y2xhc3MgbGkgZXh0ZW5kcyBlaXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5jb2RlPSJFUlJfSldTX1NJR05BVFVSRV9WRVJJRklDQVRJT05fRkFJTEVEIix0aGlzLm1lc3NhZ2U9InNpZ25hdHVyZSB2ZXJpZmljYXRpb24gZmFpbGVkIn1zdGF0aWMgZ2V0IGNvZGUoKXtyZXR1cm4iRVJSX0pXU19TSUdOQVRVUkVfVkVSSUZJQ0FUSU9OX0ZBSUxFRCJ9fWZ1bmN0aW9uIGRpKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIFdlYlNvY2tldFBhaXJ9ZnVuY3Rpb24gaGkoZSx0PSJhbGdvcml0aG0ubmFtZSIpe3JldHVybiBuZXcgVHlwZUVycm9yKGBDcnlwdG9LZXkgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG9wZXJhdGlvbiwgaXRzICR7dH0gbXVzdCBiZSAke2V9YCl9ZnVuY3Rpb24gZmkoZSx0KXtyZXR1cm4gZS5uYW1lPT09dH1mdW5jdGlvbiBwaShlKXtyZXR1cm4gcGFyc2VJbnQoZS5uYW1lLnNsaWNlKDQpLDEwKX1mdW5jdGlvbiBnaShlLHQsLi4ucil7c3dpdGNoKHQpe2Nhc2UiSFMyNTYiOmNhc2UiSFMzODQiOmNhc2UiSFM1MTIiOntpZighZmkoZS5hbGdvcml0aG0sIkhNQUMiKSl0aHJvdyBoaSgiSE1BQyIpO2NvbnN0IHI9cGFyc2VJbnQodC5zbGljZSgyKSwxMCk7aWYocGkoZS5hbGdvcml0aG0uaGFzaCkhPT1yKXRocm93IGhpKGBTSEEtJHtyfWAsImFsZ29yaXRobS5oYXNoIik7YnJlYWt9Y2FzZSJSUzI1NiI6Y2FzZSJSUzM4NCI6Y2FzZSJSUzUxMiI6e2lmKCFmaShlLmFsZ29yaXRobSwiUlNBU1NBLVBLQ1MxLXYxXzUiKSl0aHJvdyBoaSgiUlNBU1NBLVBLQ1MxLXYxXzUiKTtjb25zdCByPXBhcnNlSW50KHQuc2xpY2UoMiksMTApO2lmKHBpKGUuYWxnb3JpdGhtLmhhc2gpIT09cil0aHJvdyBoaShgU0hBLSR7cn1gLCJhbGdvcml0aG0uaGFzaCIpO2JyZWFrfWNhc2UiUFMyNTYiOmNhc2UiUFMzODQiOmNhc2UiUFM1MTIiOntpZighZmkoZS5hbGdvcml0aG0sIlJTQS1QU1MiKSl0aHJvdyBoaSgiUlNBLVBTUyIpO2NvbnN0IHI9cGFyc2VJbnQodC5zbGljZSgyKSwxMCk7aWYocGkoZS5hbGdvcml0aG0uaGFzaCkhPT1yKXRocm93IGhpKGBTSEEtJHtyfWAsImFsZ29yaXRobS5oYXNoIik7YnJlYWt9Y2FzZSBkaSgpJiYiRWREU0EiOmlmKCFmaShlLmFsZ29yaXRobSwiTk9ERS1FRDI1NTE5IikpdGhyb3cgaGkoIk5PREUtRUQyNTUxOSIpO2JyZWFrO2Nhc2UiRVMyNTYiOmNhc2UiRVMzODQiOmNhc2UiRVM1MTIiOntpZighZmkoZS5hbGdvcml0aG0sIkVDRFNBIikpdGhyb3cgaGkoIkVDRFNBIik7Y29uc3Qgcj1mdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSJFUzI1NiI6cmV0dXJuIlAtMjU2IjtjYXNlIkVTMzg0IjpyZXR1cm4iUC0zODQiO2Nhc2UiRVM1MTIiOnJldHVybiJQLTUyMSI7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInVucmVhY2hhYmxlIil9fSh0KTtpZihlLmFsZ29yaXRobS5uYW1lZEN1cnZlIT09cil0aHJvdyBoaShyLCJhbGdvcml0aG0ubmFtZWRDdXJ2ZSIpO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcigiQ3J5cHRvS2V5IGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGVyYXRpb24iKX0hZnVuY3Rpb24oZSx0KXtpZih0Lmxlbmd0aCYmIXQuc29tZSgodD0+ZS51c2FnZXMuaW5jbHVkZXModCkpKSl7bGV0IGU9IkNyeXB0b0tleSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3BlcmF0aW9uLCBpdHMgdXNhZ2VzIG11c3QgaW5jbHVkZSAiO2lmKHQubGVuZ3RoPjIpe2NvbnN0IHI9dC5wb3AoKTtlKz1gb25lIG9mICR7dC5qb2luKCIsICIpfSwgb3IgJHtyfS5gfWVsc2UgMj09PXQubGVuZ3RoP2UrPWBvbmUgb2YgJHt0WzBdfSBvciAke3RbMV19LmA6ZSs9YCR7dFswXX0uYDt0aHJvdyBuZXcgVHlwZUVycm9yKGUpfX0oZSxyKX12YXIgdmk9KGUsLi4udCk9PntsZXQgcj0iS2V5IG11c3QgYmUgIjtpZih0Lmxlbmd0aD4yKXtjb25zdCBlPXQucG9wKCk7cis9YG9uZSBvZiB0eXBlICR7dC5qb2luKCIsICIpfSwgb3IgJHtlfS5gfWVsc2UgMj09PXQubGVuZ3RoP3IrPWBvbmUgb2YgdHlwZSAke3RbMF19IG9yICR7dFsxXX0uYDpyKz1gb2YgdHlwZSAke3RbMF19LmA7cmV0dXJuIG51bGw9PWU/cis9YCBSZWNlaXZlZCAke2V9YDoiZnVuY3Rpb24iPT10eXBlb2YgZSYmZS5uYW1lP3IrPWAgUmVjZWl2ZWQgZnVuY3Rpb24gJHtlLm5hbWV9YDoib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPWUmJmUuY29uc3RydWN0b3ImJmUuY29uc3RydWN0b3IubmFtZSYmKHIrPWAgUmVjZWl2ZWQgYW4gaW5zdGFuY2Ugb2YgJHtlLmNvbnN0cnVjdG9yLm5hbWV9YCkscn0seWk9ZT0+R24oZSk7Y29uc3QgbWk9WyJDcnlwdG9LZXkiXTtmdW5jdGlvbiB3aShlKXtpZigib2JqZWN0IiE9dHlwZW9mKHQ9ZSl8fG51bGw9PT10fHwiW29iamVjdCBPYmplY3RdIiE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSlyZXR1cm4hMTt2YXIgdDtpZihudWxsPT09T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpKXJldHVybiEwO2xldCByPWU7Zm9yKDtudWxsIT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHIpOylyPU9iamVjdC5nZXRQcm90b3R5cGVPZihyKTtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09cn1jb25zdCBfaT1hc3luYyBlPT57dmFyIHQscjtjb25zdHthbGdvcml0aG06bixrZXlVc2FnZXM6aX09ZnVuY3Rpb24oZSl7bGV0IHQscjtzd2l0Y2goZS5rdHkpe2Nhc2Uib2N0Ijpzd2l0Y2goZS5hbGcpe2Nhc2UiSFMyNTYiOmNhc2UiSFMzODQiOmNhc2UiSFM1MTIiOnQ9e25hbWU6IkhNQUMiLGhhc2g6YFNIQS0ke2UuYWxnLnNsaWNlKC0zKX1gfSxyPVsic2lnbiIsInZlcmlmeSJdO2JyZWFrO2Nhc2UiQTEyOENCQy1IUzI1NiI6Y2FzZSJBMTkyQ0JDLUhTMzg0IjpjYXNlIkEyNTZDQkMtSFM1MTIiOnRocm93IG5ldyBpaShgJHtlLmFsZ30ga2V5cyBjYW5ub3QgYmUgaW1wb3J0ZWQgYXMgQ3J5cHRvS2V5IGluc3RhbmNlc2ApO2Nhc2UiQTEyOEdDTSI6Y2FzZSJBMTkyR0NNIjpjYXNlIkEyNTZHQ00iOmNhc2UiQTEyOEdDTUtXIjpjYXNlIkExOTJHQ01LVyI6Y2FzZSJBMjU2R0NNS1ciOnQ9e25hbWU6IkFFUy1HQ00ifSxyPVsiZW5jcnlwdCIsImRlY3J5cHQiXTticmVhaztjYXNlIkExMjhLVyI6Y2FzZSJBMTkyS1ciOmNhc2UiQTI1NktXIjp0PXtuYW1lOiJBRVMtS1cifSxyPVsid3JhcEtleSIsInVud3JhcEtleSJdO2JyZWFrO2Nhc2UiUEJFUzItSFMyNTYrQTEyOEtXIjpjYXNlIlBCRVMyLUhTMzg0K0ExOTJLVyI6Y2FzZSJQQkVTMi1IUzUxMitBMjU2S1ciOnQ9e25hbWU6IlBCS0RGMiJ9LHI9WyJkZXJpdmVCaXRzIl07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgaWkoJ0ludmFsaWQgb3IgdW5zdXBwb3J0ZWQgSldLICJhbGciIChBbGdvcml0aG0pIFBhcmFtZXRlciB2YWx1ZScpfWJyZWFrO2Nhc2UiUlNBIjpzd2l0Y2goZS5hbGcpe2Nhc2UiUFMyNTYiOmNhc2UiUFMzODQiOmNhc2UiUFM1MTIiOnQ9e25hbWU6IlJTQS1QU1MiLGhhc2g6YFNIQS0ke2UuYWxnLnNsaWNlKC0zKX1gfSxyPWUuZD9bInNpZ24iXTpbInZlcmlmeSJdO2JyZWFrO2Nhc2UiUlMyNTYiOmNhc2UiUlMzODQiOmNhc2UiUlM1MTIiOnQ9e25hbWU6IlJTQVNTQS1QS0NTMS12MV81IixoYXNoOmBTSEEtJHtlLmFsZy5zbGljZSgtMyl9YH0scj1lLmQ/WyJzaWduIl06WyJ2ZXJpZnkiXTticmVhaztjYXNlIlJTQS1PQUVQIjpjYXNlIlJTQS1PQUVQLTI1NiI6Y2FzZSJSU0EtT0FFUC0zODQiOmNhc2UiUlNBLU9BRVAtNTEyIjp0PXtuYW1lOiJSU0EtT0FFUCIsaGFzaDpgU0hBLSR7cGFyc2VJbnQoZS5hbGcuc2xpY2UoLTMpLDEwKXx8MX1gfSxyPWUuZD9bImRlY3J5cHQiLCJ1bndyYXBLZXkiXTpbImVuY3J5cHQiLCJ3cmFwS2V5Il07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgaWkoJ0ludmFsaWQgb3IgdW5zdXBwb3J0ZWQgSldLICJhbGciIChBbGdvcml0aG0pIFBhcmFtZXRlciB2YWx1ZScpfWJyZWFrO2Nhc2UiRUMiOnN3aXRjaChlLmFsZyl7Y2FzZSJFUzI1NiI6dD17bmFtZToiRUNEU0EiLG5hbWVkQ3VydmU6IlAtMjU2In0scj1lLmQ/WyJzaWduIl06WyJ2ZXJpZnkiXTticmVhaztjYXNlIkVTMzg0Ijp0PXtuYW1lOiJFQ0RTQSIsbmFtZWRDdXJ2ZToiUC0zODQifSxyPWUuZD9bInNpZ24iXTpbInZlcmlmeSJdO2JyZWFrO2Nhc2UiRVM1MTIiOnQ9e25hbWU6IkVDRFNBIixuYW1lZEN1cnZlOiJQLTUyMSJ9LHI9ZS5kP1sic2lnbiJdOlsidmVyaWZ5Il07YnJlYWs7Y2FzZSJFQ0RILUVTIjpjYXNlIkVDREgtRVMrQTEyOEtXIjpjYXNlIkVDREgtRVMrQTE5MktXIjpjYXNlIkVDREgtRVMrQTI1NktXIjp0PXtuYW1lOiJFQ0RIIixuYW1lZEN1cnZlOmUuY3J2fSxyPWUuZD9bImRlcml2ZUJpdHMiXTpbXTticmVhaztkZWZhdWx0OnRocm93IG5ldyBpaSgnSW52YWxpZCBvciB1bnN1cHBvcnRlZCBKV0sgImFsZyIgKEFsZ29yaXRobSkgUGFyYW1ldGVyIHZhbHVlJyl9YnJlYWs7Y2FzZSBkaSgpJiYiT0tQIjppZigiRWREU0EiIT09ZS5hbGcpdGhyb3cgbmV3IGlpKCdJbnZhbGlkIG9yIHVuc3VwcG9ydGVkIEpXSyAiYWxnIiAoQWxnb3JpdGhtKSBQYXJhbWV0ZXIgdmFsdWUnKTtpZigiRWQyNTUxOSIhPT1lLmNydil0aHJvdyBuZXcgaWkoJ0ludmFsaWQgb3IgdW5zdXBwb3J0ZWQgSldLICJjcnYiIChTdWJ0eXBlIG9mIEtleSBQYWlyKSBQYXJhbWV0ZXIgdmFsdWUnKTt0PXtuYW1lOiJOT0RFLUVEMjU1MTkiLG5hbWVkQ3VydmU6Ik5PREUtRUQyNTUxOSJ9LHI9ZS5kP1sic2lnbiJdOlsidmVyaWZ5Il07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgaWkoJ0ludmFsaWQgb3IgdW5zdXBwb3J0ZWQgSldLICJrdHkiIChLZXkgVHlwZSkgUGFyYW1ldGVyIHZhbHVlJyl9cmV0dXJue2FsZ29yaXRobTp0LGtleVVzYWdlczpyfX0oZSksbz1bbixudWxsIT09KHQ9ZS5leHQpJiZ2b2lkIDAhPT10JiZ0LG51bGwhPT0ocj1lLmtleV9vcHMpJiZ2b2lkIDAhPT1yP3I6aV07aWYoIlBCS0RGMiI9PT1uLm5hbWUpcmV0dXJuIFluLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsUW4oZS5rKSwuLi5vKTtjb25zdCBzPXsuLi5lfTtyZXR1cm4gZGVsZXRlIHMuYWxnLFluLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIscywuLi5vKX07Y29uc3QgU2k9KGUsdCxyKT0+e2Uuc3RhcnRzV2l0aCgiSFMiKXx8ImRpciI9PT1lfHxlLnN0YXJ0c1dpdGgoIlBCRVMyIil8fC9eQVxkezN9KD86R0NNKT9LVyQvLnRlc3QoZSk/KGU9PntpZighKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSl7aWYoIXlpKGUpKXRocm93IG5ldyBUeXBlRXJyb3IodmkoZSwuLi5taSwiVWludDhBcnJheSIpKTtpZigic2VjcmV0IiE9PWUudHlwZSl0aHJvdyBuZXcgVHlwZUVycm9yKGAke21pLmpvaW4oIiBvciAiKX0gaW5zdGFuY2VzIGZvciBzeW1tZXRyaWMgYWxnb3JpdGhtcyBtdXN0IGJlIG9mIHR5cGUgInNlY3JldCJgKX19KSh0KTooKGUsdCk9PntpZigheWkoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcih2aShlLC4uLm1pKSk7aWYoInNlY3JldCI9PT1lLnR5cGUpdGhyb3cgbmV3IFR5cGVFcnJvcihgJHttaS5qb2luKCIgb3IgIil9IGluc3RhbmNlcyBmb3IgYXN5bW1ldHJpYyBhbGdvcml0aG1zIG11c3Qgbm90IGJlIG9mIHR5cGUgInNlY3JldCJgKTtpZigic2lnbiI9PT10JiYicHVibGljIj09PWUudHlwZSl0aHJvdyBuZXcgVHlwZUVycm9yKGAke21pLmpvaW4oIiBvciAiKX0gaW5zdGFuY2VzIGZvciBhc3ltbWV0cmljIGFsZ29yaXRobSBzaWduaW5nIG11c3QgYmUgb2YgdHlwZSAicHJpdmF0ZSJgKTtpZigiZGVjcnlwdCI9PT10JiYicHVibGljIj09PWUudHlwZSl0aHJvdyBuZXcgVHlwZUVycm9yKGAke21pLmpvaW4oIiBvciAiKX0gaW5zdGFuY2VzIGZvciBhc3ltbWV0cmljIGFsZ29yaXRobSBkZWNyeXB0aW9uIG11c3QgYmUgb2YgdHlwZSAicHJpdmF0ZSJgKTtpZihlLmFsZ29yaXRobSYmInZlcmlmeSI9PT10JiYicHJpdmF0ZSI9PT1lLnR5cGUpdGhyb3cgbmV3IFR5cGVFcnJvcihgJHttaS5qb2luKCIgb3IgIil9IGluc3RhbmNlcyBmb3IgYXN5bW1ldHJpYyBhbGdvcml0aG0gdmVyaWZ5aW5nIG11c3QgYmUgb2YgdHlwZSAicHVibGljImApO2lmKGUuYWxnb3JpdGhtJiYiZW5jcnlwdCI9PT10JiYicHJpdmF0ZSI9PT1lLnR5cGUpdGhyb3cgbmV3IFR5cGVFcnJvcihgJHttaS5qb2luKCIgb3IgIil9IGluc3RhbmNlcyBmb3IgYXN5bW1ldHJpYyBhbGdvcml0aG0gZW5jcnlwdGlvbiBtdXN0IGJlIG9mIHR5cGUgInB1YmxpYyJgKX0pKHQscil9O2NvbnN0IGJpPWFzeW5jKGUsdCxyLG4pPT57Y29uc3QgaT1hd2FpdCBmdW5jdGlvbihlLHQscil7aWYoR24odCkpcmV0dXJuIGdpKHQsZSxyKSx0O2lmKHQgaW5zdGFuY2VvZiBVaW50OEFycmF5KXtpZighZS5zdGFydHNXaXRoKCJIUyIpKXRocm93IG5ldyBUeXBlRXJyb3IodmkodCwuLi5taSkpO3JldHVybiBZbi5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLHQse2hhc2g6YFNIQS0ke2Uuc2xpY2UoLTMpfWAsbmFtZToiSE1BQyJ9LCExLFtyXSl9dGhyb3cgbmV3IFR5cGVFcnJvcih2aSh0LC4uLm1pLCJVaW50OEFycmF5IikpfShlLHQsInZlcmlmeSIpOygoZSx0KT0+e2lmKGUuc3RhcnRzV2l0aCgiUlMiKXx8ZS5zdGFydHNXaXRoKCJQUyIpKXtjb25zdHttb2R1bHVzTGVuZ3RoOnJ9PXQuYWxnb3JpdGhtO2lmKCJudW1iZXIiIT10eXBlb2Ygcnx8cjwyMDQ4KXRocm93IG5ldyBUeXBlRXJyb3IoYCR7ZX0gcmVxdWlyZXMga2V5IG1vZHVsdXNMZW5ndGggdG8gYmUgMjA0OCBiaXRzIG9yIGxhcmdlcmApfX0pKGUsaSk7Y29uc3Qgbz1mdW5jdGlvbihlLHQpe2NvbnN0IHI9YFNIQS0ke2Uuc2xpY2UoLTMpfWA7c3dpdGNoKGUpe2Nhc2UiSFMyNTYiOmNhc2UiSFMzODQiOmNhc2UiSFM1MTIiOnJldHVybntoYXNoOnIsbmFtZToiSE1BQyJ9O2Nhc2UiUFMyNTYiOmNhc2UiUFMzODQiOmNhc2UiUFM1MTIiOnJldHVybntoYXNoOnIsbmFtZToiUlNBLVBTUyIsc2FsdExlbmd0aDplLnNsaWNlKC0zKT4+M307Y2FzZSJSUzI1NiI6Y2FzZSJSUzM4NCI6Y2FzZSJSUzUxMiI6cmV0dXJue2hhc2g6cixuYW1lOiJSU0FTU0EtUEtDUzEtdjFfNSJ9O2Nhc2UiRVMyNTYiOmNhc2UiRVMzODQiOmNhc2UiRVM1MTIiOnJldHVybntoYXNoOnIsbmFtZToiRUNEU0EiLG5hbWVkQ3VydmU6dC5uYW1lZEN1cnZlfTtjYXNlIGRpKCkmJiJFZERTQSI6Y29uc3R7bmFtZWRDdXJ2ZTpufT10O3JldHVybntuYW1lOm4sbmFtZWRDdXJ2ZTpufTtkZWZhdWx0OnRocm93IG5ldyBpaShgYWxnICR7ZX0gaXMgbm90IHN1cHBvcnRlZCBlaXRoZXIgYnkgSk9TRSBvciB5b3VyIGphdmFzY3JpcHQgcnVudGltZWApfX0oZSxpLmFsZ29yaXRobSk7dHJ5e3JldHVybiBhd2FpdCBZbi5zdWJ0bGUudmVyaWZ5KG8saSxyLG4pfWNhdGNoKGUpe3JldHVybiExfX07YXN5bmMgZnVuY3Rpb24gRWkoZSx0LHIpe3ZhciBuO2lmKCF3aShlKSl0aHJvdyBuZXcgb2koIkZsYXR0ZW5lZCBKV1MgbXVzdCBiZSBhbiBvYmplY3QiKTtpZih2b2lkIDA9PT1lLnByb3RlY3RlZCYmdm9pZCAwPT09ZS5oZWFkZXIpdGhyb3cgbmV3IG9pKCdGbGF0dGVuZWQgSldTIG11c3QgaGF2ZSBlaXRoZXIgb2YgdGhlICJwcm90ZWN0ZWQiIG9yICJoZWFkZXIiIG1lbWJlcnMnKTtpZih2b2lkIDAhPT1lLnByb3RlY3RlZCYmInN0cmluZyIhPXR5cGVvZiBlLnByb3RlY3RlZCl0aHJvdyBuZXcgb2koIkpXUyBQcm90ZWN0ZWQgSGVhZGVyIGluY29ycmVjdCB0eXBlIik7aWYodm9pZCAwPT09ZS5wYXlsb2FkKXRocm93IG5ldyBvaSgiSldTIFBheWxvYWQgbWlzc2luZyIpO2lmKCJzdHJpbmciIT10eXBlb2YgZS5zaWduYXR1cmUpdGhyb3cgbmV3IG9pKCJKV1MgU2lnbmF0dXJlIG1pc3Npbmcgb3IgaW5jb3JyZWN0IHR5cGUiKTtpZih2b2lkIDAhPT1lLmhlYWRlciYmIXdpKGUuaGVhZGVyKSl0aHJvdyBuZXcgb2koIkpXUyBVbnByb3RlY3RlZCBIZWFkZXIgaW5jb3JyZWN0IHR5cGUiKTtsZXQgaT17fTtpZihlLnByb3RlY3RlZCl7Y29uc3QgdD1RbihlLnByb3RlY3RlZCk7dHJ5e2k9SlNPTi5wYXJzZShabi5kZWNvZGUodCkpfWNhdGNoKGUpe3Rocm93IG5ldyBvaSgiSldTIFByb3RlY3RlZCBIZWFkZXIgaXMgaW52YWxpZCIpfX1pZighKCguLi5lKT0+e2NvbnN0IHQ9ZS5maWx0ZXIoQm9vbGVhbik7aWYoMD09PXQubGVuZ3RofHwxPT09dC5sZW5ndGgpcmV0dXJuITA7bGV0IHI7Zm9yKGNvbnN0IGUgb2YgdCl7Y29uc3QgdD1PYmplY3Qua2V5cyhlKTtpZihyJiYwIT09ci5zaXplKWZvcihjb25zdCBlIG9mIHQpe2lmKHIuaGFzKGUpKXJldHVybiExO3IuYWRkKGUpfWVsc2Ugcj1uZXcgU2V0KHQpfXJldHVybiEwfSkoaSxlLmhlYWRlcikpdGhyb3cgbmV3IG9pKCJKV1MgUHJvdGVjdGVkIGFuZCBKV1MgVW5wcm90ZWN0ZWQgSGVhZGVyIFBhcmFtZXRlciBuYW1lcyBtdXN0IGJlIGRpc2pvaW50Iik7Y29uc3Qgbz17Li4uaSwuLi5lLmhlYWRlcn0scz1mdW5jdGlvbihlLHQscixuLGkpe2lmKHZvaWQgMCE9PWkuY3JpdCYmdm9pZCAwPT09bi5jcml0KXRocm93IG5ldyBlKCciY3JpdCIgKENyaXRpY2FsKSBIZWFkZXIgUGFyYW1ldGVyIE1VU1QgYmUgaW50ZWdyaXR5IHByb3RlY3RlZCcpO2lmKCFufHx2b2lkIDA9PT1uLmNyaXQpcmV0dXJuIG5ldyBTZXQ7aWYoIUFycmF5LmlzQXJyYXkobi5jcml0KXx8MD09PW4uY3JpdC5sZW5ndGh8fG4uY3JpdC5zb21lKChlPT4ic3RyaW5nIiE9dHlwZW9mIGV8fDA9PT1lLmxlbmd0aCkpKXRocm93IG5ldyBlKCciY3JpdCIgKENyaXRpY2FsKSBIZWFkZXIgUGFyYW1ldGVyIE1VU1QgYmUgYW4gYXJyYXkgb2Ygbm9uLWVtcHR5IHN0cmluZ3Mgd2hlbiBwcmVzZW50Jyk7bGV0IG87bz12b2lkIDAhPT1yP25ldyBNYXAoWy4uLk9iamVjdC5lbnRyaWVzKHIpLC4uLnQuZW50cmllcygpXSk6dDtmb3IoY29uc3QgdCBvZiBuLmNyaXQpe2lmKCFvLmhhcyh0KSl0aHJvdyBuZXcgaWkoYEV4dGVuc2lvbiBIZWFkZXIgUGFyYW1ldGVyICIke3R9IiBpcyBub3QgcmVjb2duaXplZGApO2lmKHZvaWQgMD09PWlbdF0pdGhyb3cgbmV3IGUoYEV4dGVuc2lvbiBIZWFkZXIgUGFyYW1ldGVyICIke3R9IiBpcyBtaXNzaW5nYCk7aWYoby5nZXQodCkmJnZvaWQgMD09PW5bdF0pdGhyb3cgbmV3IGUoYEV4dGVuc2lvbiBIZWFkZXIgUGFyYW1ldGVyICIke3R9IiBNVVNUIGJlIGludGVncml0eSBwcm90ZWN0ZWRgKX1yZXR1cm4gbmV3IFNldChuLmNyaXQpfShvaSxuZXcgTWFwKFtbImI2NCIsITBdXSksbnVsbD09cj92b2lkIDA6ci5jcml0LGksbyk7bGV0IGE9ITA7aWYocy5oYXMoImI2NCIpJiYoYT1pLmI2NCwiYm9vbGVhbiIhPXR5cGVvZiBhKSl0aHJvdyBuZXcgb2koJ1RoZSAiYjY0IiAoYmFzZTY0dXJsLWVuY29kZSBwYXlsb2FkKSBIZWFkZXIgUGFyYW1ldGVyIG11c3QgYmUgYSBib29sZWFuJyk7Y29uc3R7YWxnOmN9PW87aWYoInN0cmluZyIhPXR5cGVvZiBjfHwhYyl0aHJvdyBuZXcgb2koJ0pXUyAiYWxnIiAoQWxnb3JpdGhtKSBIZWFkZXIgUGFyYW1ldGVyIG1pc3Npbmcgb3IgaW52YWxpZCcpO2NvbnN0IHU9ciYmKChlLHQpPT57aWYodm9pZCAwIT09dCYmKCFBcnJheS5pc0FycmF5KHQpfHx0LnNvbWUoKGU9PiJzdHJpbmciIT10eXBlb2YgZSkpKSl0aHJvdyBuZXcgVHlwZUVycm9yKGAiJHtlfSIgb3B0aW9uIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5nc2ApO2lmKHQpcmV0dXJuIG5ldyBTZXQodCl9KSgiYWxnb3JpdGhtcyIsci5hbGdvcml0aG1zKTtpZih1JiYhdS5oYXMoYykpdGhyb3cgbmV3IG5pKCciYWxnIiAoQWxnb3JpdGhtKSBIZWFkZXIgUGFyYW1ldGVyIG5vdCBhbGxvd2VkJyk7aWYoYSl7aWYoInN0cmluZyIhPXR5cGVvZiBlLnBheWxvYWQpdGhyb3cgbmV3IG9pKCJKV1MgUGF5bG9hZCBtdXN0IGJlIGEgc3RyaW5nIil9ZWxzZSBpZigic3RyaW5nIiE9dHlwZW9mIGUucGF5bG9hZCYmIShlLnBheWxvYWQgaW5zdGFuY2VvZiBVaW50OEFycmF5KSl0aHJvdyBuZXcgb2koIkpXUyBQYXlsb2FkIG11c3QgYmUgYSBzdHJpbmcgb3IgYW4gVWludDhBcnJheSBpbnN0YW5jZSIpO2xldCBsPSExOyJmdW5jdGlvbiI9PXR5cGVvZiB0JiYodD1hd2FpdCB0KGksZSksbD0hMCksU2koYyx0LCJ2ZXJpZnkiKTtjb25zdCBkPWZ1bmN0aW9uKC4uLmUpe2NvbnN0IHQ9ZS5yZWR1Y2UoKChlLHtsZW5ndGg6dH0pPT5lK3QpLDApLHI9bmV3IFVpbnQ4QXJyYXkodCk7bGV0IG49MDtyZXR1cm4gZS5mb3JFYWNoKChlPT57ci5zZXQoZSxuKSxuKz1lLmxlbmd0aH0pKSxyfShYbi5lbmNvZGUobnVsbCE9PShuPWUucHJvdGVjdGVkKSYmdm9pZCAwIT09bj9uOiIiKSxYbi5lbmNvZGUoIi4iKSwic3RyaW5nIj09dHlwZW9mIGUucGF5bG9hZD9Ybi5lbmNvZGUoZS5wYXlsb2FkKTplLnBheWxvYWQpLGg9UW4oZS5zaWduYXR1cmUpO2lmKCFhd2FpdCBiaShjLHQsaCxkKSl0aHJvdyBuZXcgbGk7bGV0IGY7Zj1hP1FuKGUucGF5bG9hZCk6InN0cmluZyI9PXR5cGVvZiBlLnBheWxvYWQ/WG4uZW5jb2RlKGUucGF5bG9hZCk6ZS5wYXlsb2FkO2NvbnN0IHA9e3BheWxvYWQ6Zn07cmV0dXJuIHZvaWQgMCE9PWUucHJvdGVjdGVkJiYocC5wcm90ZWN0ZWRIZWFkZXI9aSksdm9pZCAwIT09ZS5oZWFkZXImJihwLnVucHJvdGVjdGVkSGVhZGVyPWUuaGVhZGVyKSxsP3suLi5wLGtleTp0fTpwfWNvbnN0IGtpPTg2NDAwLFJpPS9eKFxkK3xcZCtcLlxkKykgPyhzZWNvbmRzP3xzZWNzP3xzfG1pbnV0ZXM/fG1pbnM/fG18aG91cnM/fGhycz98aHxkYXlzP3xkfHdlZWtzP3x3fHllYXJzP3x5cnM/fHkpJC9pO3ZhciBUaT1lPT57Y29uc3QgdD1SaS5leGVjKGUpO2lmKCF0KXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgdGltZSBwZXJpb2QgZm9ybWF0Iik7Y29uc3Qgcj1wYXJzZUZsb2F0KHRbMV0pO3N3aXRjaCh0WzJdLnRvTG93ZXJDYXNlKCkpe2Nhc2Uic2VjIjpjYXNlInNlY3MiOmNhc2Uic2Vjb25kIjpjYXNlInNlY29uZHMiOmNhc2UicyI6cmV0dXJuIE1hdGgucm91bmQocik7Y2FzZSJtaW51dGUiOmNhc2UibWludXRlcyI6Y2FzZSJtaW4iOmNhc2UibWlucyI6Y2FzZSJtIjpyZXR1cm4gTWF0aC5yb3VuZCg2MCpyKTtjYXNlImhvdXIiOmNhc2UiaG91cnMiOmNhc2UiaHIiOmNhc2UiaHJzIjpjYXNlImgiOnJldHVybiBNYXRoLnJvdW5kKDM2MDAqcik7Y2FzZSJkYXkiOmNhc2UiZGF5cyI6Y2FzZSJkIjpyZXR1cm4gTWF0aC5yb3VuZChyKmtpKTtjYXNlIndlZWsiOmNhc2Uid2Vla3MiOmNhc2UidyI6cmV0dXJuIE1hdGgucm91bmQoNjA0ODAwKnIpO2RlZmF1bHQ6cmV0dXJuIE1hdGgucm91bmQoMzE1NTc2MDAqcil9fTtjb25zdCBBaT1lPT5lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXmFwcGxpY2F0aW9uXC8vLCIiKTt2YXIgQ2k9KGUsdCxyPXt9KT0+e2NvbnN0e3R5cDpufT1yO2lmKG4mJigic3RyaW5nIiE9dHlwZW9mIGUudHlwfHxBaShlLnR5cCkhPT1BaShuKSkpdGhyb3cgbmV3IHRpKCd1bmV4cGVjdGVkICJ0eXAiIEpXVCBoZWFkZXIgdmFsdWUnLCJ0eXAiLCJjaGVja19mYWlsZWQiKTtsZXQgaTt0cnl7aT1KU09OLnBhcnNlKFpuLmRlY29kZSh0KSl9Y2F0Y2goZSl7fWlmKCF3aShpKSl0aHJvdyBuZXcgc2koIkpXVCBDbGFpbXMgU2V0IG11c3QgYmUgYSB0b3AtbGV2ZWwgSlNPTiBvYmplY3QiKTtjb25zdHtpc3N1ZXI6b309cjtpZihvJiYhKEFycmF5LmlzQXJyYXkobyk/bzpbb10pLmluY2x1ZGVzKGkuaXNzKSl0aHJvdyBuZXcgdGkoJ3VuZXhwZWN0ZWQgImlzcyIgY2xhaW0gdmFsdWUnLCJpc3MiLCJjaGVja19mYWlsZWQiKTtjb25zdHtzdWJqZWN0OnN9PXI7aWYocyYmaS5zdWIhPT1zKXRocm93IG5ldyB0aSgndW5leHBlY3RlZCAic3ViIiBjbGFpbSB2YWx1ZScsInN1YiIsImNoZWNrX2ZhaWxlZCIpO2NvbnN0e2F1ZGllbmNlOmF9PXI7aWYoYSYmKGM9aS5hdWQsdT0ic3RyaW5nIj09dHlwZW9mIGE/W2FdOmEsISgic3RyaW5nIj09dHlwZW9mIGM/dS5pbmNsdWRlcyhjKTpBcnJheS5pc0FycmF5KGMpJiZ1LnNvbWUoU2V0LnByb3RvdHlwZS5oYXMuYmluZChuZXcgU2V0KGMpKSkpKSl0aHJvdyBuZXcgdGkoJ3VuZXhwZWN0ZWQgImF1ZCIgY2xhaW0gdmFsdWUnLCJhdWQiLCJjaGVja19mYWlsZWQiKTt2YXIgYyx1O2xldCBsO3N3aXRjaCh0eXBlb2Ygci5jbG9ja1RvbGVyYW5jZSl7Y2FzZSJzdHJpbmciOmw9VGkoci5jbG9ja1RvbGVyYW5jZSk7YnJlYWs7Y2FzZSJudW1iZXIiOmw9ci5jbG9ja1RvbGVyYW5jZTticmVhaztjYXNlInVuZGVmaW5lZCI6bD0wO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBjbG9ja1RvbGVyYW5jZSBvcHRpb24gdHlwZSIpfWNvbnN0e2N1cnJlbnREYXRlOmR9PXIsaD0oZj1kfHxuZXcgRGF0ZSxNYXRoLmZsb29yKGYuZ2V0VGltZSgpLzFlMykpO3ZhciBmO2lmKCh2b2lkIDAhPT1pLmlhdHx8ci5tYXhUb2tlbkFnZSkmJiJudW1iZXIiIT10eXBlb2YgaS5pYXQpdGhyb3cgbmV3IHRpKCciaWF0IiBjbGFpbSBtdXN0IGJlIGEgbnVtYmVyJywiaWF0IiwiaW52YWxpZCIpO2lmKHZvaWQgMCE9PWkubmJmKXtpZigibnVtYmVyIiE9dHlwZW9mIGkubmJmKXRocm93IG5ldyB0aSgnIm5iZiIgY2xhaW0gbXVzdCBiZSBhIG51bWJlcicsIm5iZiIsImludmFsaWQiKTtpZihpLm5iZj5oK2wpdGhyb3cgbmV3IHRpKCcibmJmIiBjbGFpbSB0aW1lc3RhbXAgY2hlY2sgZmFpbGVkJywibmJmIiwiY2hlY2tfZmFpbGVkIil9aWYodm9pZCAwIT09aS5leHApe2lmKCJudW1iZXIiIT10eXBlb2YgaS5leHApdGhyb3cgbmV3IHRpKCciZXhwIiBjbGFpbSBtdXN0IGJlIGEgbnVtYmVyJywiZXhwIiwiaW52YWxpZCIpO2lmKGkuZXhwPD1oLWwpdGhyb3cgbmV3IHJpKCciZXhwIiBjbGFpbSB0aW1lc3RhbXAgY2hlY2sgZmFpbGVkJywiZXhwIiwiY2hlY2tfZmFpbGVkIil9aWYoci5tYXhUb2tlbkFnZSl7Y29uc3QgZT1oLWkuaWF0O2lmKGUtbD4oIm51bWJlciI9PXR5cGVvZiByLm1heFRva2VuQWdlP3IubWF4VG9rZW5BZ2U6VGkoci5tYXhUb2tlbkFnZSkpKXRocm93IG5ldyByaSgnImlhdCIgY2xhaW0gdGltZXN0YW1wIGNoZWNrIGZhaWxlZCAodG9vIGZhciBpbiB0aGUgcGFzdCknLCJpYXQiLCJjaGVja19mYWlsZWQiKTtpZihlPDAtbCl0aHJvdyBuZXcgdGkoJyJpYXQiIGNsYWltIHRpbWVzdGFtcCBjaGVjayBmYWlsZWQgKGl0IHNob3VsZCBiZSBpbiB0aGUgcGFzdCknLCJpYXQiLCJjaGVja19mYWlsZWQiKX1yZXR1cm4gaX07YXN5bmMgZnVuY3Rpb24gRGkoZSx0LHIpe3ZhciBuO2NvbnN0IGk9YXdhaXQgYXN5bmMgZnVuY3Rpb24oZSx0LHIpe2lmKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5JiYoZT1abi5kZWNvZGUoZSkpLCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBuZXcgb2koIkNvbXBhY3QgSldTIG11c3QgYmUgYSBzdHJpbmcgb3IgVWludDhBcnJheSIpO2NvbnN0ezA6biwxOmksMjpvLGxlbmd0aDpzfT1lLnNwbGl0KCIuIik7aWYoMyE9PXMpdGhyb3cgbmV3IG9pKCJJbnZhbGlkIENvbXBhY3QgSldTIik7Y29uc3QgYT1hd2FpdCBFaSh7cGF5bG9hZDppLHByb3RlY3RlZDpuLHNpZ25hdHVyZTpvfSx0LHIpLGM9e3BheWxvYWQ6YS5wYXlsb2FkLHByb3RlY3RlZEhlYWRlcjphLnByb3RlY3RlZEhlYWRlcn07cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/ey4uLmMsa2V5OmEua2V5fTpjfShlLHQscik7aWYoKG51bGw9PT0obj1pLnByb3RlY3RlZEhlYWRlci5jcml0KXx8dm9pZCAwPT09bj92b2lkIDA6bi5pbmNsdWRlcygiYjY0IikpJiYhMT09PWkucHJvdGVjdGVkSGVhZGVyLmI2NCl0aHJvdyBuZXcgc2koIkpXVHMgTVVTVCBOT1QgdXNlIHVuZW5jb2RlZCBwYXlsb2FkIik7Y29uc3Qgbz17cGF5bG9hZDpDaShpLnByb3RlY3RlZEhlYWRlcixpLnBheWxvYWQscikscHJvdGVjdGVkSGVhZGVyOmkucHJvdGVjdGVkSGVhZGVyfTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD97Li4ubyxrZXk6aS5rZXl9Om99ZnVuY3Rpb24gUGkoZSl7cmV0dXJuIHdpKGUpfWNsYXNzIE9pe2NvbnN0cnVjdG9yKGUpe2lmKHRoaXMuX2NhY2hlZD1uZXcgV2Vha01hcCwhZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJvYmplY3QiPT10eXBlb2YgZSYmQXJyYXkuaXNBcnJheShlLmtleXMpJiZlLmtleXMuZXZlcnkoUGkpfShlKSl0aHJvdyBuZXcgYWkoIkpTT04gV2ViIEtleSBTZXQgbWFsZm9ybWVkIik7dmFyIHQ7dGhpcy5fandrcz0odD1lLCJmdW5jdGlvbiI9PXR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmU/c3RydWN0dXJlZENsb25lKHQpOkpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodCkpKX1hc3luYyBnZXRLZXkoZSx0KXtjb25zdHthbGc6cixraWQ6bn09ey4uLmUsLi4udC5oZWFkZXJ9LGk9ZnVuY3Rpb24oZSl7c3dpdGNoKCJzdHJpbmciPT10eXBlb2YgZSYmZS5zbGljZSgwLDIpKXtjYXNlIlJTIjpjYXNlIlBTIjpyZXR1cm4iUlNBIjtjYXNlIkVTIjpyZXR1cm4iRUMiO2Nhc2UiRWQiOnJldHVybiJPS1AiO2RlZmF1bHQ6dGhyb3cgbmV3IGlpKCdVbnN1cHBvcnRlZCAiYWxnIiB2YWx1ZSBmb3IgYSBKU09OIFdlYiBLZXkgU2V0Jyl9fShyKSxvPXRoaXMuX2p3a3Mua2V5cy5maWx0ZXIoKGU9PntsZXQgdD1pPT09ZS5rdHk7aWYodCYmInN0cmluZyI9PXR5cGVvZiBuJiYodD1uPT09ZS5raWQpLHQmJiJzdHJpbmciPT10eXBlb2YgZS5hbGcmJih0PXI9PT1lLmFsZyksdCYmInN0cmluZyI9PXR5cGVvZiBlLnVzZSYmKHQ9InNpZyI9PT1lLnVzZSksdCYmQXJyYXkuaXNBcnJheShlLmtleV9vcHMpJiYodD1lLmtleV9vcHMuaW5jbHVkZXMoInZlcmlmeSIpKSx0JiYiRWREU0EiPT09ciYmKHQ9IkVkMjU1MTkiPT09ZS5jcnZ8fCJFZDQ0OCI9PT1lLmNydiksdClzd2l0Y2gocil7Y2FzZSJFUzI1NiI6dD0iUC0yNTYiPT09ZS5jcnY7YnJlYWs7Y2FzZSJFUzI1NksiOnQ9InNlY3AyNTZrMSI9PT1lLmNydjticmVhaztjYXNlIkVTMzg0Ijp0PSJQLTM4NCI9PT1lLmNydjticmVhaztjYXNlIkVTNTEyIjp0PSJQLTUyMSI9PT1lLmNydn1yZXR1cm4gdH0pKSx7MDpzLGxlbmd0aDphfT1vO2lmKDA9PT1hKXRocm93IG5ldyBjaTtpZigxIT09YSl0aHJvdyBuZXcgdWk7Y29uc3QgYz10aGlzLl9jYWNoZWQuZ2V0KHMpfHx0aGlzLl9jYWNoZWQuc2V0KHMse30pLmdldChzKTtpZih2b2lkIDA9PT1jW3JdKXtjb25zdCBlPWF3YWl0IGFzeW5jIGZ1bmN0aW9uKGUsdCxyKXtpZighd2koZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSldLIG11c3QgYmUgYW4gb2JqZWN0Iik7aWYodHx8KHQ9ZS5hbGcpLCJzdHJpbmciIT10eXBlb2YgdHx8IXQpdGhyb3cgbmV3IFR5cGVFcnJvcignImFsZyIgYXJndW1lbnQgaXMgcmVxdWlyZWQgd2hlbiAiandrLmFsZyIgaXMgbm90IHByZXNlbnQnKTtzd2l0Y2goZS5rdHkpe2Nhc2Uib2N0IjppZigic3RyaW5nIiE9dHlwZW9mIGUua3x8IWUuayl0aHJvdyBuZXcgVHlwZUVycm9yKCdtaXNzaW5nICJrIiAoS2V5IFZhbHVlKSBQYXJhbWV0ZXIgdmFsdWUnKTtyZXR1cm4gbnVsbCE9cnx8KHI9ITAhPT1lLmV4dCkscj9faSh7Li4uZSxhbGc6dCxleHQ6ITF9KTpRbihlLmspO2Nhc2UiUlNBIjppZih2b2lkIDAhPT1lLm90aCl0aHJvdyBuZXcgaWkoJ1JTQSBKV0sgIm90aCIgKE90aGVyIFByaW1lcyBJbmZvKSBQYXJhbWV0ZXIgdmFsdWUgaXMgbm90IHN1cHBvcnRlZCcpO2Nhc2UiRUMiOmNhc2UiT0tQIjpyZXR1cm4gX2koey4uLmUsYWxnOnR9KTtkZWZhdWx0OnRocm93IG5ldyBpaSgnVW5zdXBwb3J0ZWQgImt0eSIgKEtleSBUeXBlKSBQYXJhbWV0ZXIgdmFsdWUnKX19KHsuLi5zLGV4dDohMH0scik7aWYoZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fCJwdWJsaWMiIT09ZS50eXBlKXRocm93IG5ldyBhaSgiSlNPTiBXZWIgS2V5IFNldCBtZW1iZXJzIG11c3QgYmUgcHVibGljIGtleXMiKTtjW3JdPWV9cmV0dXJuIGNbcl19fXZhciBJaT17ZXhwb3J0czp7fX0sVWk9e2V4cG9ydHM6e319LExpPVAobnQpOwovKiEgc2FmZS1idWZmZXIuIE1JVCBMaWNlbnNlLiBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmcvb3BlbnNvdXJjZT4gKi8KIWZ1bmN0aW9uKGUsdCl7dmFyIHI9TGksbj1yLkJ1ZmZlcjtmdW5jdGlvbiBpKGUsdCl7Zm9yKHZhciByIGluIGUpdFtyXT1lW3JdfWZ1bmN0aW9uIG8oZSx0LHIpe3JldHVybiBuKGUsdCxyKX1uLmZyb20mJm4uYWxsb2MmJm4uYWxsb2NVbnNhZmUmJm4uYWxsb2NVbnNhZmVTbG93P2UuZXhwb3J0cz1yOihpKHIsdCksdC5CdWZmZXI9byksby5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSksaShuLG8pLG8uZnJvbT1mdW5jdGlvbihlLHQscil7aWYoIm51bWJlciI9PXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyIik7cmV0dXJuIG4oZSx0LHIpfSxvLmFsbG9jPWZ1bmN0aW9uKGUsdCxyKXtpZigibnVtYmVyIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciBpPW4oZSk7cmV0dXJuIHZvaWQgMCE9PXQ/InN0cmluZyI9PXR5cGVvZiByP2kuZmlsbCh0LHIpOmkuZmlsbCh0KTppLmZpbGwoMCksaX0sby5hbGxvY1Vuc2FmZT1mdW5jdGlvbihlKXtpZigibnVtYmVyIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBuKGUpfSxvLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihlKXtpZigibnVtYmVyIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiByLlNsb3dCdWZmZXIoZSl9fShVaSxVaS5leHBvcnRzKTt2YXIgSGk9NjU1MzYsTWk9NDI5NDk2NzI5NTt2YXIgamk9VWkuZXhwb3J0cy5CdWZmZXIsTmk9Qy5jcnlwdG98fEMubXNDcnlwdG87TmkmJk5pLmdldFJhbmRvbVZhbHVlcz9JaS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7aWYoZT5NaSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigicmVxdWVzdGVkIHRvbyBtYW55IHJhbmRvbSBieXRlcyIpO3ZhciByPWppLmFsbG9jVW5zYWZlKGUpO2lmKGU+MClpZihlPkhpKWZvcih2YXIgbj0wO248ZTtuKz1IaSlOaS5nZXRSYW5kb21WYWx1ZXMoci5zbGljZShuLG4rSGkpKTtlbHNlIE5pLmdldFJhbmRvbVZhbHVlcyhyKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdClyZXR1cm4gZXIubmV4dFRpY2soKGZ1bmN0aW9uKCl7dChudWxsLHIpfSkpO3JldHVybiByfTpJaS5leHBvcnRzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJTZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyLlxuVXNlIENocm9tZSwgRmlyZWZveCBvciBJbnRlcm5ldCBFeHBsb3JlciAxMSIpfTt2YXIgeGk9SWkuZXhwb3J0cztjbGFzcyBxaXtiYXNlNjRVUkxFbmNvZGUoZSl7cmV0dXJuICRuLmVuY29kZShlKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0vZywiIil9YmFzZTY0VVJMRGVjb2RlKGUpe3JldHVybiAkbi5kZWNvZGUoZSkudG9TdHJpbmcoKX1oYXNoU2hhMjU2KGUpe3JldHVybiBtZS5mcm9tKFZuKChuZXcgVGV4dEVuY29kZXIpLmVuY29kZShlKSkpfWdlbmVyYXRlUmFuZG9tQnl0ZXMoZSl7cmV0dXJuIHhpKGUpfXZlcmlmeUp3dChlLHQscixuLGksbyxzLGEpe2NvbnN0IHU9e2FsZ29yaXRobXM6cixhdWRpZW5jZTpuLGNsb2NrVG9sZXJhbmNlOnMsc3ViamVjdDpvfTtyZXR1cm4obnVsbD09YXx8YSkmJih1Lmlzc3Vlcj1pKSxEaShlLChsPXtrZXlzOlt0XX0sT2kucHJvdG90eXBlLmdldEtleS5iaW5kKG5ldyBPaShsKSkpLHUpLnRoZW4oKCgpPT5Qcm9taXNlLnJlc29sdmUoITApKSkuY2F0Y2goKGU9Pnt2YXIgdDtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IGMoIlNQQS1DUllQVE8tVVRJTFMtVkotSVYwMSIsbnVsbCE9PSh0PW51bGw9PWU/dm9pZCAwOmUucmVhc29uKSYmdm9pZCAwIT09dD90OkpTT04uc3RyaW5naWZ5KGUpLGAke251bGw9PWU/dm9pZCAwOmUuY29kZX0gJHtudWxsPT1lP3ZvaWQgMDplLmNsYWltfWApKX0pKTt2YXIgbH19KHQ9Pntjb25zdCByPXNlbGY7bGV0IG47ci5vbm1lc3NhZ2U9KHtkYXRhOnIscG9ydHM6YX0pPT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt2YXIgdSxsLGQsaCxmLHA7Y29uc3QgeT1hWzBdO2lmKHIudHlwZT09PXZ8fG4pc3dpdGNoKHIudHlwZSl7Y2FzZSB2OnRyeXtjb25zdCBhPU9iamVjdC5hc3NpZ24oe30sci5kYXRhKTtuPXlpZWxkKCh0LHIpPT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCBuPW5ldyBNbixpPW5ldyBxaSxvPW5ldyBnO3lpZWxkIG8uaW5pdGlhbGl6ZSh0LG4saSk7Y29uc3Qgcz1uZXcgQShvKSxhPXIobyxzKSxjPW8uZ2V0RGF0YUxheWVyKCksdT1Ibi5nZXRJbnN0YW5jZSgpO3JldHVybihudWxsPT11P3ZvaWQgMDp1LmluaXQpJiYoeWllbGQgdS5pbml0KCEwLCh0PT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt5aWVsZCBhLmF0dGFjaFRva2VuVG9SZXF1ZXN0Q29uZmlnKHQpfSkpKSkpLHtkaXNhYmxlSHR0cEhhbmRsZXI6KCk9PnthLmRpc2FibGVIdHRwSGFuZGxlcih1KX0sZW5hYmxlSHR0cEhhbmRsZXI6KCk9PnthLmVuYWJsZUh0dHBIYW5kbGVyKHUpfSxnZXRBY2Nlc3NUb2tlbjooKT0+YS5nZXRBY2Nlc3NUb2tlbigpLGdldEF1dGhvcml6YXRpb25VUkw6dD0+ZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIG8uZ2V0QXV0aG9yaXphdGlvblVSTCh0KS50aGVuKCh0PT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt2YXIgZTtjb25zdCByPW51bGwhPT0oZT1uZXcgVVJMKHQpLnNlYXJjaFBhcmFtcy5nZXQoInN0YXRlIikpJiZ2b2lkIDAhPT1lP2U6IiIsbj15aWVsZCBvLmdldFBLQ0VDb2RlKHIpO3JldHVybnthdXRob3JpemF0aW9uVVJMOnQscGtjZTpufX0pKSkpLmNhdGNoKChlPT5Qcm9taXNlLnJlamVjdChlKSkpfSkpLGdldEJhc2ljVXNlckluZm86KCk9PmUodm9pZCAwLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiBhLmdldEJhc2ljVXNlckluZm8oKX0pKSxnZXRDb25maWdEYXRhOigpPT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gYy5nZXRDb25maWdEYXRhKCl9KSksZ2V0Q3J5cHRvSGVscGVyOigpPT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gYS5nZXRDcnlwdG9IZWxwZXIoKX0pKSxnZXREZWNvZGVkSURQSURUb2tlbjooKT0+ZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIGEuZ2V0RGVjb2RlZElEUElEVG9rZW4oKX0pKSxnZXREZWNvZGVkSURUb2tlbjooKT0+ZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIGEuZ2V0RGVjb2RlZElEVG9rZW4oKX0pKSxnZXRJRFRva2VuOigpPT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gYS5nZXRJRFRva2VuKCl9KSksZ2V0T0lEQ1NlcnZpY2VFbmRwb2ludHM6KCk9PmUodm9pZCAwLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiBhLmdldE9JRENTZXJ2aWNlRW5kcG9pbnRzKCl9KSksZ2V0U2lnbk91dFVSTDooKT0+ZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHlpZWxkIG8uZ2V0U2lnbk91dFVSTCgpfSkpLGh0dHBSZXF1ZXN0OnQ9PmUodm9pZCAwLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZCBhLmh0dHBSZXF1ZXN0KHUsdCl9KSksaHR0cFJlcXVlc3RBbGw6dD0+ZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHlpZWxkIGEuaHR0cFJlcXVlc3RBbGwodCx1KX0pKSxpc0F1dGhlbnRpY2F0ZWQ6KCk9PmEuaXNBdXRoZW50aWNhdGVkKCkscmVmcmVzaEFjY2Vzc1Rva2VuOigpPT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt0cnl7cmV0dXJuIHlpZWxkIGEucmVmcmVzaEFjY2Vzc1Rva2VuKCl9Y2F0Y2goZSl7cmV0dXJuIFByb21pc2UucmVqZWN0KGUpfX0pKSxyZXF1ZXN0QWNjZXNzVG9rZW46KHQscixuLGkpPT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4geWllbGQgYS5yZXF1ZXN0QWNjZXNzVG9rZW4odCxyLHZvaWQgMCxuLGkpfSkpLHJlcXVlc3RDdXN0b21HcmFudDp0PT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4geWllbGQgYS5yZXF1ZXN0Q3VzdG9tR3JhbnQodCl9KSkscmV2b2tlQWNjZXNzVG9rZW46KCk9PmUodm9pZCAwLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IGU9eWllbGQgcy5nZXRSZWZyZXNoVGltZW91dFRpbWVyKCk7cmV0dXJuIG8ucmV2b2tlQWNjZXNzVG9rZW4oKS50aGVuKCgoKT0+KHMuY2xlYXJSZWZyZXNoVG9rZW5UaW1lb3V0KGUpLFByb21pc2UucmVzb2x2ZSghMCkpKSkuY2F0Y2goKGU9PlByb21pc2UucmVqZWN0KGUpKSl9KSksc2V0SHR0cFJlcXVlc3RGaW5pc2hDYWxsYmFjazplPT57KG51bGw9PXU/dm9pZCAwOnUuc2V0SHR0cFJlcXVlc3RGaW5pc2hDYWxsYmFjaykmJnUuc2V0SHR0cFJlcXVlc3RGaW5pc2hDYWxsYmFjayhlKX0sc2V0SHR0cFJlcXVlc3RTdGFydENhbGxiYWNrOmU9PnsobnVsbD09dT92b2lkIDA6dS5zZXRIdHRwUmVxdWVzdFN0YXJ0Q2FsbGJhY2spJiZ1LnNldEh0dHBSZXF1ZXN0U3RhcnRDYWxsYmFjayhlKX0sc2V0SHR0cFJlcXVlc3RTdWNjZXNzQ2FsbGJhY2s6ZT0+eyhudWxsPT11P3ZvaWQgMDp1LnNldEh0dHBSZXF1ZXN0U3VjY2Vzc0NhbGxiYWNrKSYmdS5zZXRIdHRwUmVxdWVzdFN1Y2Nlc3NDYWxsYmFjayhlKX0sc2V0U2Vzc2lvblN0YXRlOnQ9PmUodm9pZCAwLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIGMuc2V0U2Vzc2lvbkRhdGFQYXJhbWV0ZXIoInNlc3Npb25fc3RhdGUiLHQpfSkpLHNpZ25PdXQ6KCk9PmUodm9pZCAwLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiBzLmNsZWFyUmVmcmVzaFRva2VuVGltZW91dCgpLHlpZWxkIG8uZ2V0U2lnbk91dFVSTCgpfSkpLHN0YXJ0QXV0b1JlZnJlc2hUb2tlbjooKT0+ZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cy5jbGVhclJlZnJlc2hUb2tlblRpbWVvdXQoKSxzLnJlZnJlc2hBY2Nlc3NUb2tlbkF1dG9tYXRpY2FsbHkoYSl9KSksdXBkYXRlQ29uZmlnOnQ9PmUodm9pZCAwLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIG8udXBkYXRlQ29uZmlnKHQpfSkpfX0pKSkoYSx0KSxuLnNldEh0dHBSZXF1ZXN0RmluaXNoQ2FsbGJhY2socyksbi5zZXRIdHRwUmVxdWVzdFN0YXJ0Q2FsbGJhY2soaSksbi5zZXRIdHRwUmVxdWVzdFN1Y2Nlc3NDYWxsYmFjayhvKSx5LnBvc3RNZXNzYWdlKGsuZ2VuZXJhdGVTdWNjZXNzTWVzc2FnZSgpKX1jYXRjaChlKXt5LnBvc3RNZXNzYWdlKGsuZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKSl9YnJlYWs7Y2FzZSJnZXRfYXV0aF91cmwiOm4uZ2V0QXV0aG9yaXphdGlvblVSTChudWxsPT1yP3ZvaWQgMDpyLmRhdGEpLnRoZW4oKGU9Pnt5LnBvc3RNZXNzYWdlKGsuZ2VuZXJhdGVTdWNjZXNzTWVzc2FnZShlKSl9KSkuY2F0Y2goKGU9Pnt5LnBvc3RNZXNzYWdlKGsuZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKSl9KSk7YnJlYWs7Y2FzZSJyZXF1ZXN0X2dldF90b2tlbiI6bi5yZXF1ZXN0QWNjZXNzVG9rZW4obnVsbD09PSh1PW51bGw9PXI/dm9pZCAwOnIuZGF0YSl8fHZvaWQgMD09PXU/dm9pZCAwOnUuY29kZSxudWxsPT09KGw9bnVsbD09cj92b2lkIDA6ci5kYXRhKXx8dm9pZCAwPT09bD92b2lkIDA6bC5zZXNzaW9uU3RhdGUsbnVsbD09PShkPW51bGw9PXI/dm9pZCAwOnIuZGF0YSl8fHZvaWQgMD09PWQ/dm9pZCAwOmQucGtjZSxudWxsPT09KGg9bnVsbD09cj92b2lkIDA6ci5kYXRhKXx8dm9pZCAwPT09aD92b2lkIDA6aC5zdGF0ZSkudGhlbigoZT0+e3kucG9zdE1lc3NhZ2Uoay5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKGUpKX0pKS5jYXRjaCgoZT0+e3kucG9zdE1lc3NhZ2Uoay5nZW5lcmF0ZUZhaWx1cmVNZXNzYWdlKGUpKX0pKTticmVhaztjYXNlImh0dHAtcmVxdWVzdCI6e2NvbnN0IGU9ci5kYXRhLHQ9bnVsbD09ZT92b2lkIDA6ZS5kYXRhO2lmKCEwPT09KG51bGw9PT0ocD1udWxsPT09KGY9ci5kYXRhKXx8dm9pZCAwPT09Zj92b2lkIDA6Zi5kYXRhKXx8dm9pZCAwPT09cD92b2lkIDA6cC5mb3JtRGF0YSkpe2NvbnN0IHI9bmV3IEZvcm1EYXRhO2Zvcihjb25zdCBlIGluIHQpImZvcm1EYXRhIiE9PWUmJnIuYXBwZW5kKGUsdFtlXSk7ZS5kYXRhPXJ9bi5odHRwUmVxdWVzdChlKS50aGVuKChlPT57eS5wb3N0TWVzc2FnZShrLmdlbmVyYXRlU3VjY2Vzc01lc3NhZ2UoZSkpfSkpLmNhdGNoKChlPT57eS5wb3N0TWVzc2FnZShrLmdlbmVyYXRlRmFpbHVyZU1lc3NhZ2UoZSkpfSkpO2JyZWFrfWNhc2UiaHR0cC1yZXF1ZXN0LWFsbCI6bi5odHRwUmVxdWVzdEFsbChyLmRhdGEpLnRoZW4oKGU9Pnt5LnBvc3RNZXNzYWdlKGsuZ2VuZXJhdGVTdWNjZXNzTWVzc2FnZShlKSl9KSkuY2F0Y2goKGU9Pnt5LnBvc3RNZXNzYWdlKGsuZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKSl9KSk7YnJlYWs7Y2FzZSJzaWduLW91dCI6dHJ5e3kucG9zdE1lc3NhZ2Uoay5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKHlpZWxkIG4uc2lnbk91dCgpKSl9Y2F0Y2goZSl7eS5wb3N0TWVzc2FnZShrLmdlbmVyYXRlRmFpbHVyZU1lc3NhZ2UoZSkpfWJyZWFrO2Nhc2UicmVxdWVzdC1jdXN0b20tZ3JhbnQiOm4ucmVxdWVzdEN1c3RvbUdyYW50KHIuZGF0YSkudGhlbigoZT0+e3kucG9zdE1lc3NhZ2Uoay5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKGUpKX0pKS5jYXRjaCgoZT0+e3kucG9zdE1lc3NhZ2Uoay5nZW5lcmF0ZUZhaWx1cmVNZXNzYWdlKGUpKX0pKTticmVhaztjYXNlInJldm9rZS1hY2Nlc3MtdG9rZW4iOm4ucmV2b2tlQWNjZXNzVG9rZW4oKS50aGVuKChlPT57eS5wb3N0TWVzc2FnZShrLmdlbmVyYXRlU3VjY2Vzc01lc3NhZ2UoZSkpfSkpLmNhdGNoKChlPT57eS5wb3N0TWVzc2FnZShrLmdlbmVyYXRlRmFpbHVyZU1lc3NhZ2UoZSkpfSkpO2JyZWFrO2Nhc2UiZ2V0LW9pZGMtc2VydmljZS1lbmRwb2ludHMiOnRyeXt5LnBvc3RNZXNzYWdlKGsuZ2VuZXJhdGVTdWNjZXNzTWVzc2FnZSh5aWVsZCBuLmdldE9JRENTZXJ2aWNlRW5kcG9pbnRzKCkpKX1jYXRjaChlKXt5LnBvc3RNZXNzYWdlKGsuZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKSl9YnJlYWs7Y2FzZSJnZXQtYmFzaWMtdXNlci1pbmZvIjp0cnl7eS5wb3N0TWVzc2FnZShrLmdlbmVyYXRlU3VjY2Vzc01lc3NhZ2UoeWllbGQgbi5nZXRCYXNpY1VzZXJJbmZvKCkpKX1jYXRjaChlKXt5LnBvc3RNZXNzYWdlKGsuZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKSl9YnJlYWs7Y2FzZSJnZXQtZGVjb2RlZC1pZC10b2tlbiI6dHJ5e3kucG9zdE1lc3NhZ2Uoay5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKHlpZWxkIG4uZ2V0RGVjb2RlZElEVG9rZW4oKSkpfWNhdGNoKGUpe3kucG9zdE1lc3NhZ2Uoay5nZW5lcmF0ZUZhaWx1cmVNZXNzYWdlKGUpKX1icmVhaztjYXNlImdldC1jcnlwdG8taGVscGVyIjp0cnl7eS5wb3N0TWVzc2FnZShrLmdlbmVyYXRlU3VjY2Vzc01lc3NhZ2UoeWllbGQgbi5nZXRDcnlwdG9IZWxwZXIoKSkpfWNhdGNoKGUpe3kucG9zdE1lc3NhZ2Uoay5nZW5lcmF0ZUZhaWx1cmVNZXNzYWdlKGUpKX1icmVhaztjYXNlImdldF9pZF90b2tlbiI6dHJ5e3kucG9zdE1lc3NhZ2Uoay5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKHlpZWxkIG4uZ2V0SURUb2tlbigpKSl9Y2F0Y2goZSl7eS5wb3N0TWVzc2FnZShrLmdlbmVyYXRlRmFpbHVyZU1lc3NhZ2UoZSkpfWJyZWFrO2Nhc2UiZW5hYmxlX2h0dHBfaGFuZGxlciI6bi5lbmFibGVIdHRwSGFuZGxlcigpLHkucG9zdE1lc3NhZ2Uoay5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKCkpO2JyZWFrO2Nhc2UiZGlzYWJsZV9odHRwX2hhbmRsZXIiOm4uZGlzYWJsZUh0dHBIYW5kbGVyKCkseS5wb3N0TWVzc2FnZShrLmdlbmVyYXRlU3VjY2Vzc01lc3NhZ2UoKSk7YnJlYWs7Y2FzZSJpc19hdXRoZW50aWNhdGVkIjp0cnl7eS5wb3N0TWVzc2FnZShrLmdlbmVyYXRlU3VjY2Vzc01lc3NhZ2UoeWllbGQgbi5pc0F1dGhlbnRpY2F0ZWQoKSkpfWNhdGNoKGUpe3kucG9zdE1lc3NhZ2Uoay5nZW5lcmF0ZUZhaWx1cmVNZXNzYWdlKGUpKX1icmVhaztjYXNlImdldF9zaWduX291dF91cmwiOnRyeXt5LnBvc3RNZXNzYWdlKGsuZ2VuZXJhdGVTdWNjZXNzTWVzc2FnZSh5aWVsZCBuLmdldFNpZ25PdXRVUkwoKSkpfWNhdGNoKGUpe3kucG9zdE1lc3NhZ2Uoay5nZW5lcmF0ZUZhaWx1cmVNZXNzYWdlKGUpKX1icmVhaztjYXNlInJlZnJlc2hfYWNjZXNzLXRva2VuIjp0cnl7eS5wb3N0TWVzc2FnZShrLmdlbmVyYXRlU3VjY2Vzc01lc3NhZ2UoeWllbGQgbi5yZWZyZXNoQWNjZXNzVG9rZW4oKSkpfWNhdGNoKGUpe3kucG9zdE1lc3NhZ2Uoay5nZW5lcmF0ZUZhaWx1cmVNZXNzYWdlKGUpKX1icmVhaztjYXNlInN0YXJ0X2F1dG9fcmVmcmVzaF90b2tlbiI6dHJ5e3kucG9zdE1lc3NhZ2Uoay5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKG4uc3RhcnRBdXRvUmVmcmVzaFRva2VuKCkpKX1jYXRjaChlKXt5LnBvc3RNZXNzYWdlKGsuZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKSl9YnJlYWs7Y2FzZSJzZXRfc2Vzc2lvbl9zdGF0ZSI6dHJ5e3kucG9zdE1lc3NhZ2Uoay5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKHlpZWxkIG4uc2V0U2Vzc2lvblN0YXRlKG51bGw9PXI/dm9pZCAwOnIuZGF0YSkpKX1jYXRjaChlKXt5LnBvc3RNZXNzYWdlKGsuZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKSl9YnJlYWs7Y2FzZSJ1cGRhdGVfY29uZmlnIjp0cnl7eS5wb3N0TWVzc2FnZShrLmdlbmVyYXRlU3VjY2Vzc01lc3NhZ2UoeWllbGQgbi51cGRhdGVDb25maWcobnVsbD09cj92b2lkIDA6ci5kYXRhKSkpfWNhdGNoKGUpe3kucG9zdE1lc3NhZ2Uoay5nZW5lcmF0ZUZhaWx1cmVNZXNzYWdlKGUpKX1icmVhaztjYXNlImdldF9jb25maWdfZGF0YSI6dHJ5e3kucG9zdE1lc3NhZ2Uoay5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKHlpZWxkIG4uZ2V0Q29uZmlnRGF0YSgpKSl9Y2F0Y2goZSl7eS5wb3N0TWVzc2FnZShrLmdlbmVyYXRlRmFpbHVyZU1lc3NhZ2UoZSkpfWJyZWFrO2RlZmF1bHQ6bnVsbD09eXx8eS5wb3N0TWVzc2FnZShrLmdlbmVyYXRlRmFpbHVyZU1lc3NhZ2UobmV3IGMoIlNQQS1DTElFTlRfV09SS0VSLU9OTVNHLUlWMDIiLCJUaGUgbWVzc2FnZSB0eXBlIGlzIGludmFsaWQuIixgVGhlIG1lc3NhZ2UgdHlwZSBwcm92aWRlZCwgJHtyLnR5cGV9LCBpcyBpbnZhbGlkLmApKSl9ZWxzZSB5LnBvc3RNZXNzYWdlKGsuZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShuZXcgYygiU1BBLUNMSUVOVF9XT1JLRVItT05NU0ctTkYwMSIsIlRoZSB3ZWIgd29ya2VyIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZCB5ZXQuIiwiVGhlIGluaXRpYWxpemUgbWV0aG9kIG5lZWRzIHRvIGJlIGNhbGxlZCBiZWZvcmUgdGhlIHNwZWNpZmllZCBvcGVyYXRpb24gY2FuIGJlIGNhcnJpZWQgb3V0LiIpKSl9KSk7Y29uc3QgaT0oKT0+e3IucG9zdE1lc3NhZ2Uoe3R5cGU6InJlcXVlc3Qtc3RhcnQifSl9LG89ZT0+e3IucG9zdE1lc3NhZ2Uoe2RhdGE6SlNPTi5zdHJpbmdpZnkobnVsbCE9ZT9lOiIiKSx0eXBlOiJyZXF1ZXN0LXN1Y2Nlc3MifSl9LHM9KCk9PntyLnBvc3RNZXNzYWdlKHt0eXBlOiJyZXF1ZXN0LWZpbmlzaCJ9KX19KSgoKGUsdCk9Pm5ldyBUKGUsdCkpKTtyZXR1cm57fX0oKTsKCg=="),i=r.indexOf("\n",10)+1,o=r.substring(i)+"",a=new Blob([o],{type:"application/javascript"});return URL.createObjectURL(a)}(),new Worker(K,t)};const L="token_request_config";var H;!function(t){t.SignIn="sign-in",t.SignOut="sign-out",t.Initialize="initialize",t.HttpRequestStart="http-request-start",t.HttpRequestFinish="http-request-finish",t.HttpRequestError="http-request-error",t.HttpRequestSuccess="http-request-success",t.RevokeAccessToken="revoke-access-token",t.CustomGrant="custom-grant",t.SignOutFailed="sign-out-failed"}(H||(H={}));const J="Y2hlY2tTZXNzaW9u";var U;!function(t){t.LocalStorage="localStorage",t.SessionStorage="sessionStorage",t.WebWorker="webWorker",t.BrowserMemory="browserMemory"}(U||(U={}));class x{constructor(){}static generateSuccessMessage(t){return{blob:(null==t?void 0:t.data)instanceof Blob?null==t?void 0:t.data:null,data:JSON.stringify(null!=t?t:""),success:!0}}static generateFailureMessage(t){return(null==t?void 0:t.toJSON)&&delete t.toJSON,{error:JSON.stringify(null!=t?t:""),success:!1}}}class T{constructor(){}static removeAuthorizationCode(){const t=location.href;history.pushState({},document.title,t.replace(/\?code=.*$/,""))}static getPKCE(t){var e;return null!==(e=sessionStorage.getItem(t))&&void 0!==e?e:""}static setPKCE(t,e){sessionStorage.setItem(t,e)}static setSignOutURL(t,e,n){sessionStorage.setItem(`${g}-instance_${n}-${e}`,t)}static getSignOutURL(t,e){var n;return null!==(n=sessionStorage.getItem(`${g}-instance_${e}-${t}`))&&void 0!==n?n:""}static removePKCE(t){sessionStorage.removeItem(t)}static canContinueSignIn(t,e){return!(t&&!T.hasErrorInURL()&&!T.hasAuthSearchParamsInURL()&&!e)}static isInitializedSilentSignIn(){return T.isSilentStatePresentInURL()}static wasSignInCalled(){return!(!T.hasErrorInURL()&&!T.hasAuthSearchParamsInURL()||this.isSilentStatePresentInURL())}static wasSilentSignInCalled(){const t=sessionStorage.getItem("initialized-silent-sign-in"),e=t?JSON.parse(t):null;return Boolean(e)}static isSignOutSuccessful(){return e(this,void 0,void 0,(function*(){if(N.isSignOutSuccessful(window.location.href)){const t=window.location.href.split("?")[0];return history.pushState({},document.title,t),yield N.clearUserSessionData(),!0}return!1}))}static didSignOutFail(){if(N.didSignOutFail(window.location.href)){const t=new URL(window.location.href),e=t.searchParams.get("error"),n=t.searchParams.get("error_description"),r=window.location.href.split("?")[0];return history.pushState({},document.title,r),{description:null!=n?n:"",error:null!=e?e:""}}return!1}static isSilentStatePresentInURL(){var t;const e=new URL(window.location.href).searchParams.get("state");return null!==(t=null==e?void 0:e.includes("sign-in-silently"))&&void 0!==t&&t}static hasAuthSearchParamsInURL(t=window.location.search){return/[?&]code=[^&]+/.test(t)}static hasErrorInURL(t=window.location.href){const e=new URL(t);return!!e.searchParams.get("error")&&e.searchParams.get("state")!==y}static canSendPromptNoneRequest(){const t=sessionStorage.getItem("promptNoneRequestSent");return!(t&&JSON.parse(t))}static setPromptNoneRequestSent(t){sessionStorage.setItem("promptNoneRequestSent",JSON.stringify(t))}static waitTillPageRedirect(t){return e(this,void 0,void 0,(function*(){const e=null!=t?t:3e3;yield new Promise((t=>setTimeout(t,1e3*e)))}))}}T.until=(t,e=500)=>{const n=r=>t()?r():setTimeout((()=>n(r)),e);return new Promise(n)};class w{constructor(t,e){this._authenticationClient=t,this._dataLayer=this._authenticationClient.getDataLayer(),this._spaHelper=e,this._instanceID=this._authenticationClient.getInstanceID(),this._isTokenRefreshing=!1}enableHttpHandler(t){(null==t?void 0:t.enableHandler)&&t.enableHandler()}disableHttpHandler(t){(null==t?void 0:t.disableHandler)&&t.disableHandler()}initializeSessionManger(t,e,n,r,i){var o,a,l;i.initialize(t.clientID,null!==(o=e.checkSessionIframe)&&void 0!==o?o:"",n,null!==(a=t.checkSessionInterval)&&void 0!==a?a:3,null!==(l=t.sessionRefreshInterval)&&void 0!==l?l:300,t.signInRedirectURL,r)}requestCustomGrant(t,n){var r,i,o;return e(this,void 0,void 0,(function*(){let a=!0,l=!1;if(null==t?void 0:t.tokenEndpoint){a=!1;for(const e of[...null!==(i=null===(r=yield this._dataLayer.getConfigData())||void 0===r?void 0:r.resourceServerURLs)&&void 0!==i?i:[],t.baseUrl])if(e&&(null===(o=t.tokenEndpoint)||void 0===o?void 0:o.startsWith(e))){l=!0;break}}return t.shouldReplayAfterRefresh&&this._dataLayer.setTemporaryDataParameter("custom_grant_config",JSON.stringify(t)),a||l?this._authenticationClient.requestCustomGrant(t).then((r=>e(this,void 0,void 0,(function*(){return n&&"function"==typeof n&&n(t),t.returnsSession?(this._spaHelper.refreshAccessTokenAutomatically(this),this._authenticationClient.getBasicUserInfo()):r})))).catch((t=>Promise.reject(t))):Promise.reject(new G("SPA-MAIN_THREAD_CLIENT-RCG-IV01","Request to the provided endpoint is prohibited.","Requests can only be sent to resource servers specified by the `resourceServerURLs` attribute while initializing the SDK. The specified token endpoint in this request cannot be found among the `resourceServerURLs`"))}))}getCustomGrantConfigData(){return e(this,void 0,void 0,(function*(){const t=yield this._dataLayer.getTemporaryDataParameter("custom_grant_config");return t?JSON.parse(t):null}))}refreshAccessToken(t){return e(this,void 0,void 0,(function*(){try{yield this._authenticationClient.refreshAccessToken();const e=yield this.getCustomGrantConfigData();return e&&(yield this.requestCustomGrant(e,t)),this._spaHelper.refreshAccessTokenAutomatically(this),this._authenticationClient.getBasicUserInfo()}catch(t){const e={type:"refresh-access-token-error"};return window.postMessage(e),Promise.reject(t)}}))}retryFailedRequests(t){return e(this,void 0,void 0,(function*(){const e=t.httpClient,n=t.requestConfig,r=t.isHttpHandlerEnabled,i=t.httpErrorCallback,o=t.httpFinishCallback;yield T.until((()=>!this._isTokenRefreshing));try{const t=yield e.request(n);return Promise.resolve(t)}catch(e){return r&&("function"==typeof i&&(yield i(e)),"function"==typeof o&&o()),Promise.reject(e)}}))}httpRequest(t,n,r,i,o,a){var l,c;return e(this,void 0,void 0,(function*(){let s=!1;const u=yield this._dataLayer.getConfigData();for(const t of[...null!==(l=yield null==u?void 0:u.resourceServerURLs)&&void 0!==l?l:[],u.baseUrl])if(t&&(null===(c=null==n?void 0:n.url)||void 0===c?void 0:c.startsWith(t))){s=!0;break}return s?t.request(n).then((t=>Promise.resolve(t))).catch((l=>e(this,void 0,void 0,(function*(){var e,c,s;if(401===(null===(e=null==l?void 0:l.response)||void 0===e?void 0:e.status)||!(null==l?void 0:l.response)){if(this._isTokenRefreshing)return this.retryFailedRequests({enableRetrievingSignOutURLFromSession:a,httpClient:t,httpErrorCallback:i,httpFinishCallback:o,isHttpHandlerEnabled:r,requestConfig:n});let u;this._isTokenRefreshing=!0;try{u=yield this.refreshAccessToken(a),this._isTokenRefreshing=!1}catch(e){throw this._isTokenRefreshing=!1,r&&("function"==typeof i&&(yield i(Object.assign(Object.assign({},l),{code:"Access token is invalid"}))),"function"==typeof o&&o()),new G("SPA-AUTH_HELPER-HR-SE01",null!==(c=null==e?void 0:e.name)&&void 0!==c?c:"Refresh token request failed.",null!==(s=null==e?void 0:e.message)&&void 0!==s?s:"An error occurred while trying to refresh the access token following a 401 response from the server.")}if(u)try{const e=yield t.request(n);return Promise.resolve(e)}catch(e){return r&&("function"==typeof i&&(yield i(e)),"function"==typeof o&&o()),Promise.reject(e)}}return r&&("function"==typeof i&&(yield i(l)),"function"==typeof o&&o()),Promise.reject(l)})))):Promise.reject(new G("SPA-AUTH_HELPER-HR-IV02","Request to the provided endpoint is prohibited.","Requests can only be sent to resource servers specified by the `resourceServerURLs` attribute while initializing the SDK. The specified endpoint in this request cannot be found among the `resourceServerURLs`"))}))}httpRequestAll(t,n,r,i,o){var a,l,c;return e(this,void 0,void 0,(function*(){let s=!0;const u=yield this._dataLayer.getConfigData();for(const e of t){let t=!1;for(const n of[...null!==(l=null===(a=yield u)||void 0===a?void 0:a.resourceServerURLs)&&void 0!==l?l:[],u.baseUrl])if(n&&(null===(c=e.url)||void 0===c?void 0:c.startsWith(n))){t=!0;break}if(!t){s=!1;break}}const d=[];if(s)return t.forEach((t=>{d.push(n.request(t))})),(null==n?void 0:n.all)&&n.all(d).then((t=>Promise.resolve(t))).catch((t=>e(this,void 0,void 0,(function*(){var a,l,c;if(401===(null===(a=null==t?void 0:t.response)||void 0===a?void 0:a.status)||!(null==t?void 0:t.response)){let a;try{a=yield this._authenticationClient.refreshAccessToken()}catch(e){throw r&&("function"==typeof i&&(yield i(Object.assign(Object.assign({},t),{code:"Access token is invalid"}))),"function"==typeof o&&o()),new G("SPA-AUTH_HELPER-HRA-SE01",null!==(l=null==e?void 0:e.name)&&void 0!==l?l:"Refresh token request failed.",null!==(c=null==e?void 0:e.message)&&void 0!==c?c:"An error occurred while trying to refresh the access token following a 401 response from the server.")}if(a)return n.all&&n.all(d).then((t=>Promise.resolve(t))).catch((t=>e(this,void 0,void 0,(function*(){return r&&("function"==typeof i&&(yield i(t)),"function"==typeof o&&o()),Promise.reject(t)}))))}return r&&("function"==typeof i&&(yield i(t)),"function"==typeof o&&o()),Promise.reject(t)}))));throw new G("SPA-AUTH_HELPER-HRA-IV02","Request to the provided endpoint is prohibited.","Requests can only be sent to resource servers specified by the `resourceServerURLs` attribute while initializing the SDK. The specified endpoint in this request cannot be found among the `resourceServerURLs`")}))}requestAccessToken(t,n,r,i,o,a){return e(this,void 0,void 0,(function*(){const l=yield this._dataLayer.getConfigData();if(l.storage===U.BrowserMemory&&l.enablePKCE&&n){const t=T.getPKCE(X.extractPKCEKeyFromStateParam(n));yield this._authenticationClient.setPKCECode(X.extractPKCEKeyFromStateParam(n),t)}else l.storage===U.WebWorker&&i&&(yield this._authenticationClient.setPKCECode(i,null!=o?o:""));return t?this._authenticationClient.requestAccessToken(t,null!=n?n:"",null!=o?o:"",void 0,a).then((()=>e(this,void 0,void 0,(function*(){return l.storage!==U.WebWorker?(T.setSignOutURL(yield this._authenticationClient.getSignOutURL(),l.clientID,this._instanceID),this._spaHelper&&(this._spaHelper.clearRefreshTokenTimeout(),this._spaHelper.refreshAccessTokenAutomatically(this)),r&&"function"==typeof r&&l.enableOIDCSessionManagement&&r()):this._spaHelper&&this._spaHelper.refreshAccessTokenAutomatically(this),this._authenticationClient.getBasicUserInfo()})))).catch((t=>Promise.reject(t))):Promise.reject(new G("SPA-AUTH_HELPER-RAT1-NF01","No authorization code.","No authorization code was found."))}))}trySignInSilently(t,n,r,i,o){var a;return e(this,void 0,void 0,(function*(){if(T.isInitializedSilentSignIn())return yield r.receivePromptNoneResponse(),Promise.resolve({allowedScopes:"",displayName:"",email:"",sessionState:"",sub:"",tenantDomain:"",username:""});const l=document.getElementById("rpIFrame"),c=null===(a=null==l?void 0:l.contentDocument)||void 0===a?void 0:a.getElementById("promptNoneIFrame");try{const e=yield t(i);c.src=e}catch(t){return Promise.reject(t)}return new Promise(((t,r)=>{const i=setTimeout((()=>{t(!1)}),1e4),a=l=>e(this,void 0,void 0,(function*(){var e,c,s,u;const d=l.data;"check_session_signed_out"==(null==d?void 0:d.type)&&(window.removeEventListener("message",a),clearTimeout(i),t(!1)),"check_session_signed_in"==(null==d?void 0:d.type)&&(null===(e=null==d?void 0:d.data)||void 0===e?void 0:e.code)&&n(null===(c=null==d?void 0:d.data)||void 0===c?void 0:c.code,null===(s=null==d?void 0:d.data)||void 0===s?void 0:s.sessionState,null===(u=null==d?void 0:d.data)||void 0===u?void 0:u.state,o).then((e=>{window.removeEventListener("message",a),t(e)})).catch((t=>{window.removeEventListener("message",a),r(t)})).finally((()=>{clearTimeout(i)}))}));window.addEventListener("message",a)}))}))}handleSignIn(t,n,r){return e(this,void 0,void 0,(function*(){const e=yield this._dataLayer.getConfigData();if(yield t())return Promise.resolve({allowedScopes:"",displayName:"",email:"",sessionState:"",sub:"",tenantDomain:"",username:""});if(e.storage!==U.WebWorker&&(yield this._authenticationClient.isAuthenticated()))return this._spaHelper.clearRefreshTokenTimeout(),this._spaHelper.refreshAccessTokenAutomatically(this),e.enableOIDCSessionManagement&&n(),Promise.resolve(yield this._authenticationClient.getBasicUserInfo());const i=new URL(window.location.href).searchParams.get("error"),o=new URL(window.location.href).searchParams.get("error_description");if(i){const t=new URL(window.location.href);throw t.searchParams.delete("error"),t.searchParams.delete("error_description"),history.pushState(null,document.title,t.toString()),new G("SPA-AUTH_HELPER-SI-SE01",i,null!=o?o:"")}if(e.storage===U.WebWorker&&r){const t=yield r();if(t)return t}}))}attachTokenToRequestConfig(t){return e(this,void 0,void 0,(function*(){const e=Object.assign({attachToken:!0},t);e.attachToken&&(e.shouldAttachIDPAccessToken?t.headers=Object.assign(Object.assign({},t.headers),{Authorization:`Bearer ${yield this.getIDPAccessToken()}`}):t.headers=Object.assign(Object.assign({},t.headers),{Authorization:`Bearer ${yield this.getAccessToken()}`}))}))}getBasicUserInfo(){return e(this,void 0,void 0,(function*(){return this._authenticationClient.getBasicUserInfo()}))}getDecodedIDToken(){return e(this,void 0,void 0,(function*(){return this._authenticationClient.getDecodedIDToken()}))}getDecodedIDPIDToken(){return e(this,void 0,void 0,(function*(){return this._authenticationClient.getDecodedIDToken()}))}getCryptoHelper(){return e(this,void 0,void 0,(function*(){return this._authenticationClient.getCryptoHelper()}))}getIDToken(){return e(this,void 0,void 0,(function*(){return this._authenticationClient.getIDToken()}))}getOIDCServiceEndpoints(){return e(this,void 0,void 0,(function*(){return this._authenticationClient.getOIDCServiceEndpoints()}))}getAccessToken(){return e(this,void 0,void 0,(function*(){return this._authenticationClient.getAccessToken()}))}getIDPAccessToken(){var t;return e(this,void 0,void 0,(function*(){return null===(t=yield this._dataLayer.getSessionData())||void 0===t?void 0:t.access_token}))}getDataLayer(){return this._dataLayer}isAuthenticated(){return e(this,void 0,void 0,(function*(){return this._authenticationClient.isAuthenticated()}))}}class A{constructor(t){this._authenticationClient=t,this._dataLayer=this._authenticationClient.getDataLayer()}refreshAccessTokenAutomatically(t){var n,r;return e(this,void 0,void 0,(function*(){if(null===(r=null===(n=yield this._dataLayer.getConfigData())||void 0===n?void 0:n.periodicTokenRefresh)||void 0===r||!r)return;const i=yield this._dataLayer.getSessionData();if(i.refresh_token){const n=parseInt(i.expires_in),r=setTimeout((()=>e(this,void 0,void 0,(function*(){yield t.refreshAccessToken()}))),1e3*(n<=10?n:n-10));yield this._dataLayer.setTemporaryDataParameter(d,JSON.stringify(r))}}))}getRefreshTimeoutTimer(){return e(this,void 0,void 0,(function*(){return(yield this._dataLayer.getTemporaryDataParameter(d))?JSON.parse(yield this._dataLayer.getTemporaryDataParameter(d)):-1}))}clearRefreshTokenTimeout(t){return e(this,void 0,void 0,(function*(){if(t)return void clearTimeout(t);const e=yield this.getRefreshTimeoutTimer();-1!==e&&clearTimeout(e)}))}}const F=(()=>{let t,n,r,i,o,a,l,c,s,u,d;const h=(e,l,c,s,u,h,b)=>{t=e,n=l,r=c,i=s,o=h,a=u,d=b,i>-1&&p(),a>-1&&(u=setInterval((()=>{g()}),1e3*a))},p=()=>e(void 0,void 0,void 0,(function*(){var a;if(!n||!t||!o)return;const l="opIFrame",s=document.getElementById("rpIFrame");(null===(a=null==s?void 0:s.contentDocument)||void 0===a?void 0:a.getElementById(l)).src=n+"?client_id="+t+"&redirect_uri="+o,c=setInterval((function(){var i;return e(this,void 0,void 0,(function*(){const e=yield r();if(Boolean(t)&&Boolean(e)){const r=`${t} ${e}`,o=document.getElementById("rpIFrame"),a=(null===(i=null==o?void 0:o.contentDocument)||void 0===i?void 0:i.getElementById(l)).contentWindow;null==a||a.postMessage(r,n)}}))}),1e3*i),m()})),b=()=>{clearInterval(c),clearInterval(void 0)},m=()=>{null===window||void 0===window||window.addEventListener("message",(function(t){var r;return e(this,void 0,void 0,(function*(){!n||(null==n?void 0:n.indexOf(t.origin))<0||"set_session_state_from_iframe"===(null===(r=null==t?void 0:t.data)||void 0===r?void 0:r.type)||"unchanged"===t.data||("error"===t.data?window.location.href=yield l():"changed"===t.data&&g())}))}),!1)},g=()=>e(void 0,void 0,void 0,(function*(){var t;const e=document.getElementById("rpIFrame"),n=null===(t=null==e?void 0:e.contentDocument)||void 0===t?void 0:t.getElementById("promptNoneIFrame");if(T.canSendPromptNoneRequest()){T.setPromptNoneRequestSent(!0);const t=e=>{var n,r,i;"set_session_state_from_iframe"===(null===(n=null==e?void 0:e.data)||void 0===n?void 0:n.type)&&(u(null!==(i=null===(r=null==e?void 0:e.data)||void 0===r?void 0:r.data)&&void 0!==i?i:""),null===window||void 0===window||window.removeEventListener("message",t))};s!==U.BrowserMemory&&s!==U.WebWorker||null===window||void 0===window||window.addEventListener("message",t);const e=yield d({prompt:"none",response_mode:"query",state:J});n.src=e}})),y=t=>e(void 0,void 0,void 0,(function*(){var e,n;const r=new URL(window.location.href).searchParams.get("state"),i=new URL(window.location.href).searchParams.get(Z),o=window.parent.parent;if(null!==r&&(r.includes(J)||r.includes("sign-in-silently"))){const a=new URL(window.location.href).searchParams.get("code");if(null!==a&&0!==a.length){if(r.includes("sign-in-silently")){const t={data:{code:a,sessionState:null!=i?i:"",state:r},type:"check_session_signed_in"};return sessionStorage.setItem("initialized-silent-sign-in","false"),o.postMessage(t,o.origin),T.setPromptNoneRequestSent(!1),window.location.href="about:blank",yield T.waitTillPageRedirect(),!0}const l=new URL(window.location.href).searchParams.get("session_state");if(s===U.LocalStorage||s===U.SessionStorage)t&&(yield t(l));else{const t={data:null!=l?l:"",type:"set_session_state_from_iframe"};null===(n=null===(e=null===window||void 0===window?void 0:window.parent)||void 0===e?void 0:e.parent)||void 0===n||n.postMessage(t)}return T.setPromptNoneRequestSent(!1),window.location.href="about:blank",yield T.waitTillPageRedirect(),!0}{if(r.includes("sign-in-silently")){const t={type:"check_session_signed_out"};return window.parent.parent.postMessage(t,o.origin),T.setPromptNoneRequestSent(!1),window.location.href="about:blank",yield T.waitTillPageRedirect(),!0}T.setPromptNoneRequestSent(!1);const t=yield l();return yield N.clearUserSessionData(),o.location.href=t,window.location.href="about:blank",yield T.waitTillPageRedirect(),!0}}return!1}));return(t,n,r)=>e(void 0,void 0,void 0,(function*(){var e;let i=document.createElement("iframe");i.setAttribute("id","rpIFrame"),i.style.display="none";let o=!1;for(i.onload=()=>{var t,e,n,r;i=document.getElementById("rpIFrame");const a=null==i?void 0:i.contentDocument,l=null==a?void 0:a.createElement("iframe");l&&(l.setAttribute("id","opIFrame"),l.style.display="none");const c=null==a?void 0:a.createElement("iframe");c&&(c.setAttribute("id","promptNoneIFrame"),c.style.display="none"),l&&(null===(e=null===(t=null==i?void 0:i.contentDocument)||void 0===t?void 0:t.body)||void 0===e||e.appendChild(l)),c&&(null===(r=null===(n=null==i?void 0:i.contentDocument)||void 0===n?void 0:n.body)||void 0===r||r.appendChild(c)),o=!0},null===(e=null===document||void 0===document?void 0:document.body)||void 0===e||e.appendChild(i),l=t,s=n,u=r;!1===o;)yield new Promise((t=>setTimeout(t,1)));return{initialize:h,receivePromptNoneResponse:y,reset:b}}))})();var B,z="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==r.g?r.g:"undefined"!=typeof self?self:{},P={exports:{}},M=function(t,e){return function(){return t.apply(e,arguments)}},E=M,j=Object.prototype.toString,Q=(B=Object.create(null),function(t){var e=j.call(t);return B[e]||(B[e]=e.slice(8,-1).toLowerCase())});function O(t){return t=t.toLowerCase(),function(e){return Q(e)===t}}function D(t){return Array.isArray(t)}function _(t){return void 0===t}var q=O("ArrayBuffer");function $(t){return"number"==typeof t}function tt(t){return null!==t&&"object"==typeof t}function et(t){if("object"!==Q(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype}var nt=O("Date"),rt=O("File"),it=O("Blob"),ot=O("FileList");function at(t){return"[object Function]"===j.call(t)}var lt=O("URLSearchParams");function ct(t,e){if(null!=t)if("object"!=typeof t&&(t=[t]),D(t))for(var n=0,r=t.length;n<r;n++)e.call(null,t[n],n,t);else for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.call(null,t[i],i,t)}var st,ut,dt=(st="undefined"!=typeof Uint8Array&&Object.getPrototypeOf(Uint8Array),function(t){return st&&t instanceof st}),ht=O("HTMLFormElement"),pt=(ut=Object.prototype.hasOwnProperty,function(t,e){return ut.call(t,e)}),bt={isArray:D,isArrayBuffer:q,isBuffer:function(t){return null!==t&&!_(t)&&null!==t.constructor&&!_(t.constructor)&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)},isFormData:function(t){var e="[object FormData]";return t&&("function"==typeof FormData&&t instanceof FormData||j.call(t)===e||at(t.toString)&&t.toString()===e)},isArrayBufferView:function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&q(t.buffer)},isString:function(t){return"string"==typeof t},isNumber:$,isObject:tt,isPlainObject:et,isEmptyObject:function(t){return t&&0===Object.keys(t).length&&Object.getPrototypeOf(t)===Object.prototype},isUndefined:_,isDate:nt,isFile:rt,isBlob:it,isFunction:at,isStream:function(t){return tt(t)&&at(t.pipe)},isURLSearchParams:lt,isStandardBrowserEnv:function(){var t;return("undefined"==typeof navigator||"ReactNative"!==(t=navigator.product)&&"NativeScript"!==t&&"NS"!==t)&&"undefined"!=typeof window&&"undefined"!=typeof document},forEach:ct,merge:function t(){var e={};function n(n,r){et(e[r])&&et(n)?e[r]=t(e[r],n):et(n)?e[r]=t({},n):D(n)?e[r]=n.slice():e[r]=n}for(var r=0,i=arguments.length;r<i;r++)ct(arguments[r],n);return e},extend:function(t,e,n){return ct(e,(function(e,r){t[r]=n&&"function"==typeof e?E(e,n):e})),t},trim:function(t){return t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t},inherits:function(t,e,n,r){t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,n&&Object.assign(t.prototype,n)},toFlatObject:function(t,e,n,r){var i,o,a,l={};if(e=e||{},null==t)return e;do{for(o=(i=Object.getOwnPropertyNames(t)).length;o-- >0;)a=i[o],r&&!r(a,t,e)||l[a]||(e[a]=t[a],l[a]=!0);t=!1!==n&&Object.getPrototypeOf(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},kindOf:Q,kindOfTest:O,endsWith:function(t,e,n){t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n},toArray:function(t){if(!t)return null;if(D(t))return t;var e=t.length;if(!$(e))return null;for(var n=new Array(e);e-- >0;)n[e]=t[e];return n},isTypedArray:dt,isFileList:ot,forEachEntry:function(t,e){for(var n,r=(t&&t[Symbol.iterator]).call(t);(n=r.next())&&!n.done;){var i=n.value;e.call(t,i[0],i[1])}},matchAll:function(t,e){for(var n,r=[];null!==(n=t.exec(e));)r.push(n);return r},isHTMLForm:ht,hasOwnProperty:pt},mt=void 0!==r.g?r.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},Zt=[],gt=[],yt="undefined"!=typeof Uint8Array?Uint8Array:Array,ft=!1;function It(){ft=!0;for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e=0,n=t.length;e<n;++e)Zt[e]=t[e],gt[t.charCodeAt(e)]=e;gt["-".charCodeAt(0)]=62,gt["_".charCodeAt(0)]=63}function vt(t,e,n){for(var r,i,o=[],a=e;a<n;a+=3)r=(t[a]<<16)+(t[a+1]<<8)+t[a+2],o.push(Zt[(i=r)>>18&63]+Zt[i>>12&63]+Zt[i>>6&63]+Zt[63&i]);return o.join("")}function Gt(t){var e;ft||It();for(var n=t.length,r=n%3,i="",o=[],a=16383,l=0,c=n-r;l<c;l+=a)o.push(vt(t,l,l+a>c?c:l+a));return 1===r?(e=t[n-1],i+=Zt[e>>2],i+=Zt[e<<4&63],i+="=="):2===r&&(e=(t[n-2]<<8)+t[n-1],i+=Zt[e>>10],i+=Zt[e>>4&63],i+=Zt[e<<2&63],i+="="),o.push(i),o.join("")}function Xt(t,e,n,r,i){var o,a,l=8*i-r-1,c=(1<<l)-1,s=c>>1,u=-7,d=n?i-1:0,h=n?-1:1,p=t[e+d];for(d+=h,o=p&(1<<-u)-1,p>>=-u,u+=l;u>0;o=256*o+t[e+d],d+=h,u-=8);for(a=o&(1<<-u)-1,o>>=-u,u+=r;u>0;a=256*a+t[e+d],d+=h,u-=8);if(0===o)o=1-s;else{if(o===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),o-=s}return(p?-1:1)*a*Math.pow(2,o-r)}function Vt(t,e,n,r,i,o){var a,l,c,s=8*o-i-1,u=(1<<s)-1,d=u>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:o-1,b=r?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(l=isNaN(e)?1:0,a=u):(a=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-a))<1&&(a--,c*=2),(e+=a+d>=1?h/c:h*Math.pow(2,1-d))*c>=2&&(a++,c/=2),a+d>=u?(l=0,a=u):a+d>=1?(l=(e*c-1)*Math.pow(2,i),a+=d):(l=e*Math.pow(2,d-1)*Math.pow(2,i),a=0));i>=8;t[n+p]=255&l,p+=b,l/=256,i-=8);for(a=a<<i|l,s+=i;s>0;t[n+p]=255&a,p+=b,a/=256,s-=8);t[n+p-b]|=128*m}var Wt={}.toString,St=Array.isArray||function(t){return"[object Array]"==Wt.call(t)};Nt.TYPED_ARRAY_SUPPORT=void 0===mt.TYPED_ARRAY_SUPPORT||mt.TYPED_ARRAY_SUPPORT;var Rt=Ct();function Ct(){return Nt.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Yt(t,e){if(Ct()<e)throw new RangeError("Invalid typed array length");return Nt.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e)).__proto__=Nt.prototype:(null===t&&(t=new Nt(e)),t.length=e),t}function Nt(t,e,n){if(!(Nt.TYPED_ARRAY_SUPPORT||this instanceof Nt))return new Nt(t,e,n);if("number"==typeof t){if("string"==typeof e)throw new Error("If encoding is specified then the first argument must be a string");return Lt(this,t)}return Kt(this,t,e,n)}function Kt(t,e,n,r){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?function(t,e,n,r){if(e.byteLength,n<0||e.byteLength<n)throw new RangeError("'offset' is out of bounds");if(e.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return e=void 0===n&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,n):new Uint8Array(e,n,r),Nt.TYPED_ARRAY_SUPPORT?(t=e).__proto__=Nt.prototype:t=Ht(t,e),t}(t,e,n,r):"string"==typeof e?function(t,e,n){if("string"==typeof n&&""!==n||(n="utf8"),!Nt.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|xt(e,n),i=(t=Yt(t,r)).write(e,n);return i!==r&&(t=t.slice(0,i)),t}(t,e,n):function(t,e){if(Ut(e)){var n=0|Jt(e.length);return 0===(t=Yt(t,n)).length||e.copy(t,0,0,n),t}if(e){if("undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return"number"!=typeof e.length||(r=e.length)!=r?Yt(t,0):Ht(t,e);if("Buffer"===e.type&&St(e.data))return Ht(t,e.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(t,e)}function kt(t){if("number"!=typeof t)throw new TypeError('"size" argument must be a number');if(t<0)throw new RangeError('"size" argument must not be negative')}function Lt(t,e){if(kt(e),t=Yt(t,e<0?0:0|Jt(e)),!Nt.TYPED_ARRAY_SUPPORT)for(var n=0;n<e;++n)t[n]=0;return t}function Ht(t,e){var n=e.length<0?0:0|Jt(e.length);t=Yt(t,n);for(var r=0;r<n;r+=1)t[r]=255&e[r];return t}function Jt(t){if(t>=Ct())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Ct().toString(16)+" bytes");return 0|t}function Ut(t){return!(null==t||!t._isBuffer)}function xt(t,e){if(Ut(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var n=t.length;if(0===n)return 0;for(var r=!1;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return se(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return ue(t).length;default:if(r)return se(t).length;e=(""+e).toLowerCase(),r=!0}}function Tt(t,e,n){var r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return qt(this,e,n);case"utf8":case"utf-8":return Ot(this,e,n);case"ascii":return Dt(this,e,n);case"latin1":case"binary":return _t(this,e,n);case"base64":return Qt(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return $t(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function wt(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function At(t,e,n,r,i){if(0===t.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(i)return-1;n=t.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof e&&(e=Nt.from(e,r)),Ut(e))return 0===e.length?-1:Ft(t,e,n,r,i);if("number"==typeof e)return e&=255,Nt.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):Ft(t,[e],n,r,i);throw new TypeError("val must be string, number or Buffer")}function Ft(t,e,n,r,i){var o,a=1,l=t.length,c=e.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;a=2,l/=2,c/=2,n/=2}function s(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(i){var u=-1;for(o=n;o<l;o++)if(s(t,o)===s(e,-1===u?0:o-u)){if(-1===u&&(u=o),o-u+1===c)return u*a}else-1!==u&&(o-=o-u),u=-1}else for(n+c>l&&(n=l-c),o=n;o>=0;o--){for(var d=!0,h=0;h<c;h++)if(s(t,o+h)!==s(e,h)){d=!1;break}if(d)return o}return-1}function Bt(t,e,n,r){n=Number(n)||0;var i=t.length-n;r?(r=Number(r))>i&&(r=i):r=i;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var a=0;a<r;++a){var l=parseInt(e.substr(2*a,2),16);if(isNaN(l))return a;t[n+a]=l}return a}function zt(t,e,n,r){return de(se(e,t.length-n),t,n,r)}function Pt(t,e,n,r){return de(function(t){for(var e=[],n=0;n<t.length;++n)e.push(255&t.charCodeAt(n));return e}(e),t,n,r)}function Mt(t,e,n,r){return Pt(t,e,n,r)}function Et(t,e,n,r){return de(ue(e),t,n,r)}function jt(t,e,n,r){return de(function(t,e){for(var n,r,i,o=[],a=0;a<t.length&&!((e-=2)<0);++a)r=(n=t.charCodeAt(a))>>8,i=n%256,o.push(i),o.push(r);return o}(e,t.length-n),t,n,r)}function Qt(t,e,n){return 0===e&&n===t.length?Gt(t):Gt(t.slice(e,n))}function Ot(t,e,n){n=Math.min(t.length,n);for(var r=[],i=e;i<n;){var o,a,l,c,s=t[i],u=null,d=s>239?4:s>223?3:s>191?2:1;if(i+d<=n)switch(d){case 1:s<128&&(u=s);break;case 2:128==(192&(o=t[i+1]))&&(c=(31&s)<<6|63&o)>127&&(u=c);break;case 3:o=t[i+1],a=t[i+2],128==(192&o)&&128==(192&a)&&(c=(15&s)<<12|(63&o)<<6|63&a)>2047&&(c<55296||c>57343)&&(u=c);break;case 4:o=t[i+1],a=t[i+2],l=t[i+3],128==(192&o)&&128==(192&a)&&128==(192&l)&&(c=(15&s)<<18|(63&o)<<12|(63&a)<<6|63&l)>65535&&c<1114112&&(u=c)}null===u?(u=65533,d=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),i+=d}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);for(var n="",r=0;r<e;)n+=String.fromCharCode.apply(String,t.slice(r,r+=4096));return n}(r)}function Dt(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;i<n;++i)r+=String.fromCharCode(127&t[i]);return r}function _t(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;i<n;++i)r+=String.fromCharCode(t[i]);return r}function qt(t,e,n){var r=t.length;(!e||e<0)&&(e=0),(!n||n<0||n>r)&&(n=r);for(var i="",o=e;o<n;++o)i+=ce(t[o]);return i}function $t(t,e,n){for(var r=t.slice(e,n),i="",o=0;o<r.length;o+=2)i+=String.fromCharCode(r[o]+256*r[o+1]);return i}function te(t,e,n){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>n)throw new RangeError("Trying to access beyond buffer length")}function ee(t,e,n,r,i,o){if(!Ut(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||e<o)throw new RangeError('"value" argument is out of bounds');if(n+r>t.length)throw new RangeError("Index out of range")}function ne(t,e,n,r){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-n,2);i<o;++i)t[n+i]=(e&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function re(t,e,n,r){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-n,4);i<o;++i)t[n+i]=e>>>8*(r?i:3-i)&255}function ie(t,e,n,r,i,o){if(n+r>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function oe(t,e,n,r,i){return i||ie(t,0,n,4),Vt(t,e,n,r,23,4),n+4}function ae(t,e,n,r,i){return i||ie(t,0,n,8),Vt(t,e,n,r,52,8),n+8}Nt.poolSize=8192,Nt._augment=function(t){return t.__proto__=Nt.prototype,t},Nt.from=function(t,e,n){return Kt(null,t,e,n)},Nt.TYPED_ARRAY_SUPPORT&&(Nt.prototype.__proto__=Uint8Array.prototype,Nt.__proto__=Uint8Array),Nt.alloc=function(t,e,n){return function(t,e,n,r){return kt(e),e<=0?Yt(t,e):void 0!==n?"string"==typeof r?Yt(t,e).fill(n,r):Yt(t,e).fill(n):Yt(t,e)}(null,t,e,n)},Nt.allocUnsafe=function(t){return Lt(null,t)},Nt.allocUnsafeSlow=function(t){return Lt(null,t)},Nt.isBuffer=he,Nt.compare=function(t,e){if(!Ut(t)||!Ut(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var n=t.length,r=e.length,i=0,o=Math.min(n,r);i<o;++i)if(t[i]!==e[i]){n=t[i],r=e[i];break}return n<r?-1:r<n?1:0},Nt.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Nt.concat=function(t,e){if(!St(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return Nt.alloc(0);var n;if(void 0===e)for(e=0,n=0;n<t.length;++n)e+=t[n].length;var r=Nt.allocUnsafe(e),i=0;for(n=0;n<t.length;++n){var o=t[n];if(!Ut(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,i),i+=o.length}return r},Nt.byteLength=xt,Nt.prototype._isBuffer=!0,Nt.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;e<t;e+=2)wt(this,e,e+1);return this},Nt.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var e=0;e<t;e+=4)wt(this,e,e+3),wt(this,e+1,e+2);return this},Nt.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var e=0;e<t;e+=8)wt(this,e,e+7),wt(this,e+1,e+6),wt(this,e+2,e+5),wt(this,e+3,e+4);return this},Nt.prototype.toString=function(){var t=0|this.length;return 0===t?"":0===arguments.length?Ot(this,0,t):Tt.apply(this,arguments)},Nt.prototype.equals=function(t){if(!Ut(t))throw new TypeError("Argument must be a Buffer");return this===t||0===Nt.compare(this,t)},Nt.prototype.inspect=function(){var t="";return this.length>0&&(t=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(t+=" ... ")),"<Buffer "+t+">"},Nt.prototype.compare=function(t,e,n,r,i){if(!Ut(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),e<0||n>t.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&e>=n)return 0;if(r>=i)return-1;if(e>=n)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(r>>>=0),a=(n>>>=0)-(e>>>=0),l=Math.min(o,a),c=this.slice(r,i),s=t.slice(e,n),u=0;u<l;++u)if(c[u]!==s[u]){o=c[u],a=s[u];break}return o<a?-1:a<o?1:0},Nt.prototype.includes=function(t,e,n){return-1!==this.indexOf(t,e,n)},Nt.prototype.indexOf=function(t,e,n){return At(this,t,e,n,!0)},Nt.prototype.lastIndexOf=function(t,e,n){return At(this,t,e,n,!1)},Nt.prototype.write=function(t,e,n,r){if(void 0===e)r="utf8",n=this.length,e=0;else if(void 0===n&&"string"==typeof e)r=e,n=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-e;if((void 0===n||n>i)&&(n=i),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return Bt(this,t,e,n);case"utf8":case"utf-8":return zt(this,t,e,n);case"ascii":return Pt(this,t,e,n);case"latin1":case"binary":return Mt(this,t,e,n);case"base64":return Et(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return jt(this,t,e,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},Nt.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},Nt.prototype.slice=function(t,e){var n,r=this.length;if((t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t),Nt.TYPED_ARRAY_SUPPORT)(n=this.subarray(t,e)).__proto__=Nt.prototype;else{var i=e-t;n=new Nt(i,void 0);for(var o=0;o<i;++o)n[o]=this[o+t]}return n},Nt.prototype.readUIntLE=function(t,e,n){t|=0,e|=0,n||te(t,e,this.length);for(var r=this[t],i=1,o=0;++o<e&&(i*=256);)r+=this[t+o]*i;return r},Nt.prototype.readUIntBE=function(t,e,n){t|=0,e|=0,n||te(t,e,this.length);for(var r=this[t+--e],i=1;e>0&&(i*=256);)r+=this[t+--e]*i;return r},Nt.prototype.readUInt8=function(t,e){return e||te(t,1,this.length),this[t]},Nt.prototype.readUInt16LE=function(t,e){return e||te(t,2,this.length),this[t]|this[t+1]<<8},Nt.prototype.readUInt16BE=function(t,e){return e||te(t,2,this.length),this[t]<<8|this[t+1]},Nt.prototype.readUInt32LE=function(t,e){return e||te(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},Nt.prototype.readUInt32BE=function(t,e){return e||te(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},Nt.prototype.readIntLE=function(t,e,n){t|=0,e|=0,n||te(t,e,this.length);for(var r=this[t],i=1,o=0;++o<e&&(i*=256);)r+=this[t+o]*i;return r>=(i*=128)&&(r-=Math.pow(2,8*e)),r},Nt.prototype.readIntBE=function(t,e,n){t|=0,e|=0,n||te(t,e,this.length);for(var r=e,i=1,o=this[t+--r];r>0&&(i*=256);)o+=this[t+--r]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},Nt.prototype.readInt8=function(t,e){return e||te(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},Nt.prototype.readInt16LE=function(t,e){e||te(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},Nt.prototype.readInt16BE=function(t,e){e||te(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},Nt.prototype.readInt32LE=function(t,e){return e||te(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},Nt.prototype.readInt32BE=function(t,e){return e||te(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},Nt.prototype.readFloatLE=function(t,e){return e||te(t,4,this.length),Xt(this,t,!0,23,4)},Nt.prototype.readFloatBE=function(t,e){return e||te(t,4,this.length),Xt(this,t,!1,23,4)},Nt.prototype.readDoubleLE=function(t,e){return e||te(t,8,this.length),Xt(this,t,!0,52,8)},Nt.prototype.readDoubleBE=function(t,e){return e||te(t,8,this.length),Xt(this,t,!1,52,8)},Nt.prototype.writeUIntLE=function(t,e,n,r){t=+t,e|=0,n|=0,r||ee(this,t,e,n,Math.pow(2,8*n)-1,0);var i=1,o=0;for(this[e]=255&t;++o<n&&(i*=256);)this[e+o]=t/i&255;return e+n},Nt.prototype.writeUIntBE=function(t,e,n,r){t=+t,e|=0,n|=0,r||ee(this,t,e,n,Math.pow(2,8*n)-1,0);var i=n-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+n},Nt.prototype.writeUInt8=function(t,e,n){return t=+t,e|=0,n||ee(this,t,e,1,255,0),Nt.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},Nt.prototype.writeUInt16LE=function(t,e,n){return t=+t,e|=0,n||ee(this,t,e,2,65535,0),Nt.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):ne(this,t,e,!0),e+2},Nt.prototype.writeUInt16BE=function(t,e,n){return t=+t,e|=0,n||ee(this,t,e,2,65535,0),Nt.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):ne(this,t,e,!1),e+2},Nt.prototype.writeUInt32LE=function(t,e,n){return t=+t,e|=0,n||ee(this,t,e,4,4294967295,0),Nt.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):re(this,t,e,!0),e+4},Nt.prototype.writeUInt32BE=function(t,e,n){return t=+t,e|=0,n||ee(this,t,e,4,4294967295,0),Nt.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):re(this,t,e,!1),e+4},Nt.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e|=0,!r){var i=Math.pow(2,8*n-1);ee(this,t,e,n,i-1,-i)}var o=0,a=1,l=0;for(this[e]=255&t;++o<n&&(a*=256);)t<0&&0===l&&0!==this[e+o-1]&&(l=1),this[e+o]=(t/a>>0)-l&255;return e+n},Nt.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e|=0,!r){var i=Math.pow(2,8*n-1);ee(this,t,e,n,i-1,-i)}var o=n-1,a=1,l=0;for(this[e+o]=255&t;--o>=0&&(a*=256);)t<0&&0===l&&0!==this[e+o+1]&&(l=1),this[e+o]=(t/a>>0)-l&255;return e+n},Nt.prototype.writeInt8=function(t,e,n){return t=+t,e|=0,n||ee(this,t,e,1,127,-128),Nt.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},Nt.prototype.writeInt16LE=function(t,e,n){return t=+t,e|=0,n||ee(this,t,e,2,32767,-32768),Nt.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):ne(this,t,e,!0),e+2},Nt.prototype.writeInt16BE=function(t,e,n){return t=+t,e|=0,n||ee(this,t,e,2,32767,-32768),Nt.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):ne(this,t,e,!1),e+2},Nt.prototype.writeInt32LE=function(t,e,n){return t=+t,e|=0,n||ee(this,t,e,4,2147483647,-2147483648),Nt.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):re(this,t,e,!0),e+4},Nt.prototype.writeInt32BE=function(t,e,n){return t=+t,e|=0,n||ee(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),Nt.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):re(this,t,e,!1),e+4},Nt.prototype.writeFloatLE=function(t,e,n){return oe(this,t,e,!0,n)},Nt.prototype.writeFloatBE=function(t,e,n){return oe(this,t,e,!1,n)},Nt.prototype.writeDoubleLE=function(t,e,n){return ae(this,t,e,!0,n)},Nt.prototype.writeDoubleBE=function(t,e,n){return ae(this,t,e,!1,n)},Nt.prototype.copy=function(t,e,n,r){if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e<r-n&&(r=t.length-e+n);var i,o=r-n;if(this===t&&n<e&&e<r)for(i=o-1;i>=0;--i)t[i+e]=this[i+n];else if(o<1e3||!Nt.TYPED_ARRAY_SUPPORT)for(i=0;i<o;++i)t[i+e]=this[i+n];else Uint8Array.prototype.set.call(t,this.subarray(n,n+o),e);return o},Nt.prototype.fill=function(t,e,n,r){if("string"==typeof t){if("string"==typeof e?(r=e,e=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===t.length){var i=t.charCodeAt(0);i<256&&(t=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!Nt.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof t&&(t&=255);if(e<0||this.length<e||this.length<n)throw new RangeError("Out of range index");if(n<=e)return this;var o;if(e>>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(o=e;o<n;++o)this[o]=t;else{var a=Ut(t)?t:se(new Nt(t,r).toString()),l=a.length;for(o=0;o<n-e;++o)this[o+e]=a[o%l]}return this};var le=/[^+\/0-9A-Za-z-_]/g;function ce(t){return t<16?"0"+t.toString(16):t.toString(16)}function se(t,e){var n;e=e||1/0;for(var r=t.length,i=null,o=[],a=0;a<r;++a){if((n=t.charCodeAt(a))>55295&&n<57344){if(!i){if(n>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(e-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(e-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((e-=1)<0)break;o.push(n)}else if(n<2048){if((e-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function ue(t){return function(t){var e,n,r,i,o,a;ft||It();var l=t.length;if(l%4>0)throw new Error("Invalid string. Length must be a multiple of 4");o="="===t[l-2]?2:"="===t[l-1]?1:0,a=new yt(3*l/4-o),r=o>0?l-4:l;var c=0;for(e=0,n=0;e<r;e+=4,n+=3)i=gt[t.charCodeAt(e)]<<18|gt[t.charCodeAt(e+1)]<<12|gt[t.charCodeAt(e+2)]<<6|gt[t.charCodeAt(e+3)],a[c++]=i>>16&255,a[c++]=i>>8&255,a[c++]=255&i;return 2===o?(i=gt[t.charCodeAt(e)]<<2|gt[t.charCodeAt(e+1)]>>4,a[c++]=255&i):1===o&&(i=gt[t.charCodeAt(e)]<<10|gt[t.charCodeAt(e+1)]<<4|gt[t.charCodeAt(e+2)]>>2,a[c++]=i>>8&255,a[c++]=255&i),a}(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(le,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function de(t,e,n,r){for(var i=0;i<r&&!(i+n>=e.length||i>=t.length);++i)e[i+n]=t[i];return i}function he(t){return null!=t&&(!!t._isBuffer||pe(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&&pe(t.slice(0,0))}(t))}function pe(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}var be=Object.freeze({__proto__:null,Buffer:Nt,INSPECT_MAX_BYTES:50,SlowBuffer:function(t){return+t!=t&&(t=0),Nt.alloc(+t)},isBuffer:he,kMaxLength:Rt}),me=bt;function Ze(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i)}me.inherits(Ze,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var ge=Ze.prototype,ye={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(t){ye[t]={value:t}})),Object.defineProperties(Ze,ye),Object.defineProperty(ge,"isAxiosError",{value:!0}),Ze.from=function(t,e,n,r,i,o){var a=Object.create(ge);return me.toFlatObject(t,a,(function(t){return t!==Error.prototype})),Ze.call(a,t.message,e,n,r,i),a.cause=t,a.name=t.name,o&&Object.assign(a,o),a};var fe=Ze,Ie="object"==typeof self?self.FormData:window.FormData,ve=bt,Ge=fe,Xe=Ie;function Ve(t){return ve.isPlainObject(t)||ve.isArray(t)}function We(t){return ve.endsWith(t,"[]")?t.slice(0,-2):t}function Se(t,e,n){return t?t.concat(e).map((function(t,e){return t=We(t),!n&&e?"["+t+"]":t})).join(n?".":""):e}var Re=ve.toFlatObject(ve,{},null,(function(t){return/^is[A-Z]/.test(t)})),Ce=function(t,e,n){if(!ve.isObject(t))throw new TypeError("target must be an object");e=e||new(Xe||FormData);var r,i=(n=ve.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!ve.isUndefined(e[t])}))).metaTokens,o=n.visitor||u,a=n.dots,l=n.indexes,c=(n.Blob||"undefined"!=typeof Blob&&Blob)&&(r=e)&&ve.isFunction(r.append)&&"FormData"===r[Symbol.toStringTag]&&r[Symbol.iterator];if(!ve.isFunction(o))throw new TypeError("visitor must be a function");function s(t){if(null===t)return"";if(ve.isDate(t))return t.toISOString();if(!c&&ve.isBlob(t))throw new Ge("Blob is not supported. Use a Buffer instead.");return ve.isArrayBuffer(t)||ve.isTypedArray(t)?c&&"function"==typeof Blob?new Blob([t]):Nt.from(t):t}function u(t,n,r){var o=t;if(t&&!r&&"object"==typeof t)if(ve.endsWith(n,"{}"))n=i?n:n.slice(0,-2),t=JSON.stringify(t);else if(ve.isArray(t)&&function(t){return ve.isArray(t)&&!t.some(Ve)}(t)||ve.isFileList(t)||ve.endsWith(n,"[]")&&(o=ve.toArray(t)))return n=We(n),o.forEach((function(t,r){!ve.isUndefined(t)&&null!==t&&e.append(!0===l?Se([n],r,a):null===l?n:n+"[]",s(t))})),!1;return!!Ve(t)||(e.append(Se(r,n,a),s(t)),!1)}var d=[],h=Object.assign(Re,{defaultVisitor:u,convertValue:s,isVisitable:Ve});if(!ve.isObject(t))throw new TypeError("data must be an object");return function t(n,r){if(!ve.isUndefined(n)){if(-1!==d.indexOf(n))throw Error("Circular reference detected in "+r.join("."));d.push(n),ve.forEach(n,(function(n,i){!0===(!(ve.isUndefined(n)||null===n)&&o.call(e,n,ve.isString(i)?i.trim():i,r,h))&&t(n,r?r.concat(i):[i])})),d.pop()}}(t),e},Ye=Ce;function Ne(t){var e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'\(\)~]|%20|%00/g,(function(t){return e[t]}))}function Ke(t,e){this._pairs=[],t&&Ye(t,this,e)}var ke=Ke.prototype;ke.append=function(t,e){this._pairs.push([t,e])},ke.toString=function(t){var e=t?function(e){return t.call(this,e,Ne)}:Ne;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};var Le=Ke,He=bt,Je=Le;function Ue(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var xe=function(t,e,n){if(!e)return t;var r=t.indexOf("#");-1!==r&&(t=t.slice(0,r));var i,o=n&&n.encode||Ue,a=n&&n.serialize;return(i=a?a(e,n):He.isURLSearchParams(e)?e.toString():new Je(e,n).toString(o))&&(t+=(-1===t.indexOf("?")?"?":"&")+i),t},Te=bt;function we(){this.handlers=[]}we.prototype.use=function(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1},we.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},we.prototype.clear=function(){this.handlers&&(this.handlers=[])},we.prototype.forEach=function(t){Te.forEach(this.handlers,(function(e){null!==e&&t(e)}))};var Ae=we;function Fe(){throw new Error("setTimeout has not been defined")}function Be(){throw new Error("clearTimeout has not been defined")}var ze=Fe,Pe=Be;function Me(t){if(ze===setTimeout)return setTimeout(t,0);if((ze===Fe||!ze)&&setTimeout)return ze=setTimeout,setTimeout(t,0);try{return ze(t,0)}catch(e){try{return ze.call(null,t,0)}catch(e){return ze.call(this,t,0)}}}"function"==typeof mt.setTimeout&&(ze=setTimeout),"function"==typeof mt.clearTimeout&&(Pe=clearTimeout);var Ee,je=[],Qe=!1,Oe=-1;function De(){Qe&&Ee&&(Qe=!1,Ee.length?je=Ee.concat(je):Oe=-1,je.length&&_e())}function _e(){if(!Qe){var t=Me(De);Qe=!0;for(var e=je.length;e;){for(Ee=je,je=[];++Oe<e;)Ee&&Ee[Oe].run();Oe=-1,e=je.length}Ee=null,Qe=!1,function(t){if(Pe===clearTimeout)return clearTimeout(t);if((Pe===Be||!Pe)&&clearTimeout)return Pe=clearTimeout,clearTimeout(t);try{Pe(t)}catch(e){try{return Pe.call(null,t)}catch(e){return Pe.call(this,t)}}}(t)}}function qe(t,e){this.fun=t,this.array=e}function $e(){}qe.prototype.run=function(){this.fun.apply(null,this.array)};var tn=$e,en=$e,nn=$e,rn=$e,on=$e,an=$e,ln=$e,cn=mt.performance||{},sn=cn.now||cn.mozNow||cn.msNow||cn.oNow||cn.webkitNow||function(){return(new Date).getTime()},un=new Date,dn={nextTick:function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];je.push(new qe(t,e)),1!==je.length||Qe||Me(_e)},title:"browser",browser:!0,env:{},argv:[],version:"",versions:{},on:tn,addListener:en,once:nn,off:rn,removeListener:on,removeAllListeners:an,emit:ln,binding:function(t){throw new Error("process.binding is not supported")},cwd:function(){return"/"},chdir:function(t){throw new Error("process.chdir is not supported")},umask:function(){return 0},hrtime:function(t){var e=.001*sn.call(cn),n=Math.floor(e),r=Math.floor(e%1*1e9);return t&&(n-=t[0],(r-=t[1])<0&&(n--,r+=1e9)),[n,r]},platform:"browser",release:{},config:{},uptime:function(){return(new Date-un)/1e3}},hn=dn,pn=bt,bn=function(t,e){pn.forEach(t,(function(n,r){r!==e&&r.toUpperCase()===e.toUpperCase()&&(t[e]=n,delete t[r])}))},mn={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Zn={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Le,FormData,Blob},protocols:["http","https","file","blob","url","data"]},gn=bt,yn=Ce,fn=Zn,In=bt,vn=function(t){function e(t,n,r,i){var o=t[i++];if("__proto__"===o)return!0;var a=Number.isFinite(+o),l=i>=t.length;return o=!o&&In.isArray(r)?r.length:o,l?(In.hasOwnProperty(r,o)?r[o]=[r[o],n]:r[o]=n,!a):(r[o]&&In.isObject(r[o])||(r[o]=[]),e(t,n,r[o],i)&&In.isArray(r[o])&&(r[o]=function(t){var e,n,r={},i=Object.keys(t),o=i.length;for(e=0;e<o;e++)r[n=i[e]]=t[n];return r}(r[o])),!a)}if(In.isFormData(t)&&In.isFunction(t.entries)){var n={};return In.forEachEntry(t,(function(t,r){e(function(t){return In.matchAll(/\w+|\[(\w*)]/g,t).map((function(t){return"[]"===t[0]?"":t[1]||t[0]}))}(t),r,n,0)})),n}return null},Gn=fe,Xn=bt,Vn=Xn.isStandardBrowserEnv()?{write:function(t,e,n,r,i,o){var a=[];a.push(t+"="+encodeURIComponent(e)),Xn.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),Xn.isString(r)&&a.push("path="+r),Xn.isString(i)&&a.push("domain="+i),!0===o&&a.push("secure"),document.cookie=a.join("; ")},read:function(t){var e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}},Wn=function(t,e,n){var r=!function(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}(e);return t&&(r||!1===n)?function(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}(t,e):e},Sn=bt,Rn=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"],Cn=bt,Yn=Cn.isStandardBrowserEnv()?function(){var t,e=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function r(t){var r=t;return e&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return t=r(window.location.href),function(e){var n=Cn.isString(e)?r(e):e;return n.protocol===t.protocol&&n.host===t.host}}():function(){return!0},Nn=fe;function Kn(t,e,n){Nn.call(this,null==t?"canceled":t,Nn.ERR_CANCELED,e,n),this.name="CanceledError"}bt.inherits(Kn,Nn,{__CANCEL__:!0});var kn=Kn,Ln=bt,Hn=Vn,Jn=xe,Un=Wn,xn=Yn,Tn=mn,wn=fe,An=kn,Fn=Zn,Bn=bt,zn=bn,Pn=fe,Mn=Ce,En=Zn,jn=vn,Qn={"Content-Type":"application/x-www-form-urlencoded"};function On(t,e){!Bn.isUndefined(t)&&Bn.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}var Dn,_n={transitional:mn,adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==hn&&"[object process]"===Object.prototype.toString.call(hn))&&(Dn=function(t){return new Promise((function(e,n){var r,i=t.data,o=t.headers,a=t.responseType,l=t.withXSRFToken;function c(){t.cancelToken&&t.cancelToken.unsubscribe(r),t.signal&&t.signal.removeEventListener("abort",r)}Ln.isFormData(i)&&Ln.isStandardBrowserEnv()&&delete o["Content-Type"];var s=new XMLHttpRequest;if(t.auth){var u=t.auth.username||"",d=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";o.Authorization="Basic "+btoa(u+":"+d)}var h=Un(t.baseURL,t.url,t.allowAbsoluteUrls);function p(){if(s){var r="getAllResponseHeaders"in s?function(t){var e,n,r,i={};return t?(Sn.forEach(t.split("\n"),(function(t){if(r=t.indexOf(":"),e=Sn.trim(t.slice(0,r)).toLowerCase(),n=Sn.trim(t.slice(r+1)),e){if(i[e]&&Rn.indexOf(e)>=0)return;i[e]="set-cookie"===e?(i[e]?i[e]:[]).concat([n]):i[e]?i[e]+", "+n:n}})),i):i}(s.getAllResponseHeaders()):null;(function(t,e,n){var r=n.config.validateStatus;n.status&&r&&!r(n.status)?e(new Gn("Request failed with status code "+n.status,[Gn.ERR_BAD_REQUEST,Gn.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):t(n)})((function(t){e(t),c()}),(function(t){n(t),c()}),{data:a&&"text"!==a&&"json"!==a?s.response:s.responseText,status:s.status,statusText:s.statusText,headers:r,config:t,request:s}),s=null}}if(s.open(t.method.toUpperCase(),Jn(h,t.params,t.paramsSerializer),!0),s.timeout=t.timeout,"onloadend"in s?s.onloadend=p:s.onreadystatechange=function(){s&&4===s.readyState&&(0!==s.status||s.responseURL&&0===s.responseURL.indexOf("file:"))&&setTimeout(p)},s.onabort=function(){s&&(n(new wn("Request aborted",wn.ECONNABORTED,t,s)),s=null)},s.onerror=function(){n(new wn("Network Error",wn.ERR_NETWORK,t,s)),s=null},s.ontimeout=function(){var e=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded",r=t.transitional||Tn;t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),n(new wn(e,r.clarifyTimeoutError?wn.ETIMEDOUT:wn.ECONNABORTED,t,s)),s=null},Ln.isStandardBrowserEnv()&&(l&&Ln.isFunction(l)&&(l=l(t)),l||!1!==l&&xn(h))){var b=t.xsrfHeaderName&&t.xsrfCookieName&&Hn.read(t.xsrfCookieName);b&&(o[t.xsrfHeaderName]=b)}"setRequestHeader"in s&&Ln.forEach(o,(function(t,e){void 0===i&&"content-type"===e.toLowerCase()?delete o[e]:s.setRequestHeader(e,t)})),Ln.isUndefined(t.withCredentials)||(s.withCredentials=!!t.withCredentials),a&&"json"!==a&&(s.responseType=t.responseType),"function"==typeof t.onDownloadProgress&&s.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&s.upload&&s.upload.addEventListener("progress",t.onUploadProgress),(t.cancelToken||t.signal)&&(r=function(e){s&&(n(!e||e.type?new An(null,t,s):e),s.abort(),s=null)},t.cancelToken&&t.cancelToken.subscribe(r),t.signal&&(t.signal.aborted?r():t.signal.addEventListener("abort",r))),i||!1===i||0===i||""===i||(i=null);var m=function(t){var e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}(h);m&&-1===Fn.protocols.indexOf(m)?n(new wn("Unsupported protocol "+m+":",wn.ERR_BAD_REQUEST,t)):s.send(i)}))}),Dn),transformRequest:[function(t,e){zn(e,"Accept"),zn(e,"Content-Type");var n,r=e&&e["Content-Type"]||"",i=r.indexOf("application/json")>-1,o=Bn.isObject(t);if(o&&Bn.isHTMLForm(t)&&(t=new FormData(t)),Bn.isFormData(t))return i?JSON.stringify(jn(t)):t;if(Bn.isArrayBuffer(t)||Bn.isBuffer(t)||Bn.isStream(t)||Bn.isFile(t)||Bn.isBlob(t))return t;if(Bn.isArrayBufferView(t))return t.buffer;if(Bn.isURLSearchParams(t))return On(e,"application/x-www-form-urlencoded;charset=utf-8"),t.toString();if(o){if(-1!==r.indexOf("application/x-www-form-urlencoded"))return function(t,e){return yn(t,new fn.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,r){return fn.isNode&&gn.isBuffer(t)?(this.append(e,t.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((n=Bn.isFileList(t))||r.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return Mn(n?{"files[]":t}:t,a&&new a,this.formSerializer)}}return o||i?(On(e,"application/json"),function(t,e,n){if(Bn.isString(t))try{return(0,JSON.parse)(t),Bn.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){var e=this.transitional||_n.transitional,n=e&&e.forcedJSONParsing,r="json"===this.responseType;if(t&&Bn.isString(t)&&(n&&!this.responseType||r)){var i=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t)}catch(t){if(i){if("SyntaxError"===t.name)throw Pn.from(t,Pn.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:En.classes.FormData,Blob:En.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};Bn.forEach(["delete","get","head"],(function(t){_n.headers[t]={}})),Bn.forEach(["post","put","patch"],(function(t){_n.headers[t]=Bn.merge(Qn)}));var qn=_n,$n=bt,tr=qn,er=function(t){return!(!t||!t.__CANCEL__)},nr=bt,rr=function(t,e,n,r){var i=this||tr;return $n.forEach(r,(function(r){t=r.call(i,t,e,n)})),t},ir=er,or=qn,ar=kn,lr=bn;function cr(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new ar}var sr=bt,ur=function(t,e){e=e||{};var n={};function r(t,e){return sr.isPlainObject(t)&&sr.isPlainObject(e)?sr.merge(t,e):sr.isEmptyObject(e)?sr.merge({},t):sr.isPlainObject(e)?sr.merge({},e):sr.isArray(e)?e.slice():e}function i(n){return sr.isUndefined(e[n])?sr.isUndefined(t[n])?void 0:r(void 0,t[n]):r(t[n],e[n])}function o(t){if(!sr.isUndefined(e[t]))return r(void 0,e[t])}function a(n){return sr.isUndefined(e[n])?sr.isUndefined(t[n])?void 0:r(void 0,t[n]):r(void 0,e[n])}function l(n){return n in e?r(t[n],e[n]):n in t?r(void 0,t[n]):void 0}var c={url:o,method:o,data:o,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l};return sr.forEach(Object.keys(t).concat(Object.keys(e)),(function(t){var e=c[t]||i,r=e(t);sr.isUndefined(r)&&e!==l||(n[t]=r)})),n},dr="0.30.0",hr=dr,pr=fe,br={};["object","boolean","number","function","string","symbol"].forEach((function(t,e){br[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}}));var mr={};br.transitional=function(t,e,n){function r(t,e){return"[Axios v"+hr+"] Transitional option '"+t+"'"+e+(n?". "+n:"")}return function(n,i,o){if(!1===t)throw new pr(r(i," has been removed"+(e?" in "+e:"")),pr.ERR_DEPRECATED);return e&&!mr[i]&&(mr[i]=!0,console.warn(r(i," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,i,o)}};var Zr={assertOptions:function(t,e,n){if("object"!=typeof t)throw new pr("options must be an object",pr.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(t),i=r.length;i-- >0;){var o=r[i],a=e[o];if(a){var l=t[o],c=void 0===l||a(l,o,t);if(!0!==c)throw new pr("option "+o+" must be "+c,pr.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new pr("Unknown option "+o,pr.ERR_BAD_OPTION)}},validators:br},gr=bt,yr=xe,fr=Ae,Ir=function(t){return cr(t),t.headers=t.headers||{},t.data=rr.call(t,t.data,t.headers,null,t.transformRequest),lr(t.headers,"Accept"),lr(t.headers,"Content-Type"),t.headers=nr.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),nr.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete t.headers[e]})),(t.adapter||or.adapter)(t).then((function(e){return cr(t),e.data=rr.call(t,e.data,e.headers,e.status,t.transformResponse),e}),(function(e){return ir(e)||(cr(t),e&&e.response&&(e.response.data=rr.call(t,e.response.data,e.response.headers,e.response.status,t.transformResponse))),Promise.reject(e)}))},vr=ur,Gr=Wn,Xr=Zr,Vr=Xr.validators;function Wr(t){this.defaults=t,this.interceptors={request:new fr,response:new fr}}Wr.prototype.request=function(t,e){"string"==typeof t?(e=e||{}).url=t:e=t||{},(e=vr(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var n=e.transitional;void 0!==n&&Xr.assertOptions(n,{silentJSONParsing:Vr.transitional(Vr.boolean),forcedJSONParsing:Vr.transitional(Vr.boolean),clarifyTimeoutError:Vr.transitional(Vr.boolean)},!1);var r=e.paramsSerializer;null!=r&&(gr.isFunction(r)?e.paramsSerializer={serialize:r}:Xr.assertOptions(r,{encode:Vr.function,serialize:Vr.function},!0));var i=[],o=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(o=o&&t.synchronous,i.unshift(t.fulfilled,t.rejected))}));var a,l=[];if(this.interceptors.response.forEach((function(t){l.push(t.fulfilled,t.rejected)})),!o){var c=[Ir,void 0];for(Array.prototype.unshift.apply(c,i),c=c.concat(l),a=Promise.resolve(e);c.length;)a=a.then(c.shift(),c.shift());return a}for(var s=e;i.length;){var u=i.shift(),d=i.shift();try{s=u(s)}catch(t){d(t);break}}try{a=Ir(s)}catch(t){return Promise.reject(t)}for(;l.length;)a=a.then(l.shift(),l.shift());return a},Wr.prototype.getUri=function(t){t=vr(this.defaults,t);var e=Gr(t.baseURL,t.url,t.allowAbsoluteUrls);return yr(e,t.params,t.paramsSerializer)},gr.forEach(["delete","get","head","options"],(function(t){Wr.prototype[t]=function(e,n){return this.request(vr(n||{},{method:t,url:e,data:(n||{}).data}))}})),gr.forEach(["post","put","patch"],(function(t){function e(e){return function(n,r,i){return this.request(vr(i||{},{method:t,headers:e?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}Wr.prototype[t]=e(),Wr.prototype[t+"Form"]=e(!0)}));var Sr=Wr,Rr=kn;function Cr(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var e;this.promise=new Promise((function(t){e=t}));var n=this;this.promise.then((function(t){if(n._listeners){for(var e=n._listeners.length;e-- >0;)n._listeners[e](t);n._listeners=null}})),this.promise.then=function(t){var e,r=new Promise((function(t){n.subscribe(t),e=t})).then(t);return r.cancel=function(){n.unsubscribe(e)},r},t((function(t,r,i){n.reason||(n.reason=new Rr(t,r,i),e(n.reason))}))}Cr.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},Cr.prototype.subscribe=function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]},Cr.prototype.unsubscribe=function(t){if(this._listeners){var e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}},Cr.source=function(){var t;return{token:new Cr((function(e){t=e})),cancel:t}};var Yr=Cr,Nr=bt,Kr=bt,kr=M,Lr=Sr,Hr=ur,Jr=vn,Ur=function t(e){var n=new Lr(e),r=kr(Lr.prototype.request,n);return Kr.extend(r,Lr.prototype,n),Kr.extend(r,n),r.create=function(n){return t(Hr(e,n))},r}(qn);Ur.Axios=Lr,Ur.CanceledError=kn,Ur.CancelToken=Yr,Ur.isCancel=er,Ur.VERSION=dr,Ur.toFormData=Ce,Ur.AxiosError=fe,Ur.Cancel=Ur.CanceledError,Ur.all=function(t){return Promise.all(t)},Ur.spread=function(t){return function(e){return t.apply(null,e)}},Ur.isAxiosError=function(t){return Nr.isObject(t)&&!0===t.isAxiosError},Ur.formToJSON=function(t){return Jr(Kr.isHTMLForm(t)?new FormData(t):t)},P.exports=Ur,P.exports.default=Ur;var xr,Tr=P.exports;let wr=xr=class{constructor(){this.attachToken=()=>Promise.resolve(),this.requestStartCallback=()=>null,this.requestSuccessCallback=()=>null,this.requestErrorCallback=()=>null,this.requestFinishCallback=()=>null,this.init=this.init.bind(this),this.setHttpRequestErrorCallback=this.setHttpRequestErrorCallback.bind(this),this.setHttpRequestFinishCallback=this.setHttpRequestFinishCallback.bind(this),this.setHttpRequestStartCallback=this.setHttpRequestStartCallback.bind(this),this.setHttpRequestSuccessCallback=this.setHttpRequestSuccessCallback.bind(this)}static getInstance(){return this.axiosInstance||(this.axiosInstance=Tr.create({withCredentials:!0}),this.clientInstance||(this.clientInstance=new xr),this.axiosInstance.interceptors.request.use((t=>e(this,void 0,void 0,(function*(){return yield this.clientInstance.requestHandler(t)})))),this.axiosInstance.interceptors.response.use((t=>this.clientInstance.successHandler(t)),(t=>this.clientInstance.errorHandler(t))),this.axiosInstance.all=Tr.all,this.axiosInstance.spread=Tr.spread,this.axiosInstance.init=this.clientInstance.init,this.axiosInstance.enableHandler=this.clientInstance.enableHandler,this.axiosInstance.disableHandler=this.clientInstance.disableHandler,this.axiosInstance.disableHandlerWithTimeout=this.clientInstance.disableHandlerWithTimeout,this.axiosInstance.setHttpRequestStartCallback=this.clientInstance.setHttpRequestStartCallback,this.axiosInstance.setHttpRequestSuccessCallback=this.clientInstance.setHttpRequestSuccessCallback,this.axiosInstance.setHttpRequestErrorCallback=this.clientInstance.setHttpRequestErrorCallback,this.axiosInstance.setHttpRequestFinishCallback=this.clientInstance.setHttpRequestFinishCallback),this.axiosInstance}requestHandler(t){return e(this,void 0,void 0,(function*(){if(yield this.attachToken(t),null==t?void 0:t.shouldEncodeToFormData){const e=null==t?void 0:t.data,n=new FormData;Object.keys(e).forEach((t=>{n.append(t,e[t])})),t.data=n}return t.startTimeInMs=(new Date).getTime(),xr.isHandlerEnabled&&this.requestStartCallback&&"function"==typeof this.requestStartCallback&&this.requestStartCallback(t),t}))}errorHandler(t){throw xr.isHandlerEnabled&&(this.requestErrorCallback&&"function"==typeof this.requestErrorCallback&&this.requestErrorCallback(t),this.requestFinishCallback&&"function"==typeof this.requestFinishCallback&&this.requestFinishCallback()),t}successHandler(t){return xr.isHandlerEnabled&&(this.requestSuccessCallback&&"function"==typeof this.requestSuccessCallback&&this.requestSuccessCallback(t),this.requestFinishCallback&&"function"==typeof this.requestFinishCallback&&this.requestFinishCallback()),t}init(t=!0,n){return e(this,void 0,void 0,(function*(){xr.isHandlerEnabled=t,this.attachToken=n}))}enableHandler(){xr.isHandlerEnabled=!0}disableHandler(){xr.isHandlerEnabled=!1}disableHandlerWithTimeout(t=xr.DEFAULT_HANDLER_DISABLE_TIMEOUT){xr.isHandlerEnabled=!1,setTimeout((()=>{xr.isHandlerEnabled=!0}),t)}setHttpRequestStartCallback(t){this.requestStartCallback=t}setHttpRequestSuccessCallback(t){this.requestSuccessCallback=t}setHttpRequestErrorCallback(t){this.requestErrorCallback=t}setHttpRequestFinishCallback(t){this.requestFinishCallback=t}};wr.DEFAULT_HANDLER_DISABLE_TIMEOUT=1e3,wr=xr=function(t,e,n,r){var i,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,r);else for(var l=t.length-1;l>=0;l--)(i=t[l])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a}([t=>{}],wr);class Ar{setData(t,n){return e(this,void 0,void 0,(function*(){localStorage.setItem(t,n)}))}getData(t){var n;return e(this,void 0,void 0,(function*(){return null!==(n=localStorage.getItem(t))&&void 0!==n?n:"{}"}))}removeData(t){return e(this,void 0,void 0,(function*(){localStorage.removeItem(t)}))}}class Fr{constructor(){this._data=new Map}setData(t,n){return e(this,void 0,void 0,(function*(){this._data.set(t,n)}))}getData(t){var n,r;return e(this,void 0,void 0,(function*(){return null!==(r=null===(n=this._data)||void 0===n?void 0:n.get(t))&&void 0!==r?r:"{}"}))}removeData(t){return e(this,void 0,void 0,(function*(){this._data.delete(t)}))}}class Br{setData(t,n){return e(this,void 0,void 0,(function*(){sessionStorage.setItem(t,n)}))}getData(t){var n;return e(this,void 0,void 0,(function*(){return null!==(n=sessionStorage.getItem(t))&&void 0!==n?n:"{}"}))}removeData(t){return e(this,void 0,void 0,(function*(){sessionStorage.removeItem(t)}))}}var zr={exports:{}},Pr={},Mr={};Object.defineProperty(Mr,"__esModule",{value:!0}),Mr.default=function(t){var e=t.length,n=e%4;if(!n)return t;var r=e,i=4-n,o=e+i,a=Nt.alloc(o);for(a.write(t);i--;)a.write("=",r++);return a.toString()},Object.defineProperty(Pr,"__esModule",{value:!0});var Er=Mr;function jr(t,e){return void 0===e&&(e="utf8"),Nt.isBuffer(t)?Or(t.toString("base64")):Or(Nt.from(t,e).toString("base64"))}function Qr(t){return t=t.toString(),Er.default(t).replace(/\-/g,"+").replace(/_/g,"/")}function Or(t){return t.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}var Dr,_r=jr;_r.encode=jr,_r.decode=function(t,e){return void 0===e&&(e="utf8"),Nt.from(Qr(t),"base64").toString(e)},_r.toBase64=Qr,_r.fromBase64=Or,_r.toBuffer=function(t){return Nt.from(Qr(t),"base64")},Pr.default=_r,(Dr=zr).exports=Pr.default,Dr.exports.default=Dr.exports;var qr=zr.exports,$r={exports:{}};!function(t){!function(e,n){var r={};!function(t){t.__esModule=!0,t.digestLength=32,t.blockSize=64;var e=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function n(t,n,r,i,o){for(var a,l,c,s,u,d,h,p,b,m,Z,g,y;o>=64;){for(a=n[0],l=n[1],c=n[2],s=n[3],u=n[4],d=n[5],h=n[6],p=n[7],m=0;m<16;m++)Z=i+4*m,t[m]=(255&r[Z])<<24|(255&r[Z+1])<<16|(255&r[Z+2])<<8|255&r[Z+3];for(m=16;m<64;m++)g=((b=t[m-2])>>>17|b<<15)^(b>>>19|b<<13)^b>>>10,y=((b=t[m-15])>>>7|b<<25)^(b>>>18|b<<14)^b>>>3,t[m]=(g+t[m-7]|0)+(y+t[m-16]|0);for(m=0;m<64;m++)g=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&d^~u&h)|0)+(p+(e[m]+t[m]|0)|0)|0,y=((a>>>2|a<<30)^(a>>>13|a<<19)^(a>>>22|a<<10))+(a&l^a&c^l&c)|0,p=h,h=d,d=u,u=s+g|0,s=c,c=l,l=a,a=g+y|0;n[0]+=a,n[1]+=l,n[2]+=c,n[3]+=s,n[4]+=u,n[5]+=d,n[6]+=h,n[7]+=p,i+=64,o-=64}return i}var r=function(){function e(){this.digestLength=t.digestLength,this.blockSize=t.blockSize,this.state=new Int32Array(8),this.temp=new Int32Array(64),this.buffer=new Uint8Array(128),this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this.reset()}return e.prototype.reset=function(){return this.state[0]=1779033703,this.state[1]=3144134277,this.state[2]=1013904242,this.state[3]=2773480762,this.state[4]=1359893119,this.state[5]=2600822924,this.state[6]=528734635,this.state[7]=1541459225,this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this},e.prototype.clean=function(){for(var t=0;t<this.buffer.length;t++)this.buffer[t]=0;for(t=0;t<this.temp.length;t++)this.temp[t]=0;this.reset()},e.prototype.update=function(t,e){if(void 0===e&&(e=t.length),this.finished)throw new Error("SHA256: can't update because hash was finished.");var r=0;if(this.bytesHashed+=e,this.bufferLength>0){for(;this.bufferLength<64&&e>0;)this.buffer[this.bufferLength++]=t[r++],e--;64===this.bufferLength&&(n(this.temp,this.state,this.buffer,0,64),this.bufferLength=0)}for(e>=64&&(r=n(this.temp,this.state,t,r,e),e%=64);e>0;)this.buffer[this.bufferLength++]=t[r++],e--;return this},e.prototype.finish=function(t){if(!this.finished){var e=this.bytesHashed,r=this.bufferLength,i=e/536870912|0,o=e<<3,a=e%64<56?64:128;this.buffer[r]=128;for(var l=r+1;l<a-8;l++)this.buffer[l]=0;this.buffer[a-8]=i>>>24&255,this.buffer[a-7]=i>>>16&255,this.buffer[a-6]=i>>>8&255,this.buffer[a-5]=i>>>0&255,this.buffer[a-4]=o>>>24&255,this.buffer[a-3]=o>>>16&255,this.buffer[a-2]=o>>>8&255,this.buffer[a-1]=o>>>0&255,n(this.temp,this.state,this.buffer,0,a),this.finished=!0}for(l=0;l<8;l++)t[4*l+0]=this.state[l]>>>24&255,t[4*l+1]=this.state[l]>>>16&255,t[4*l+2]=this.state[l]>>>8&255,t[4*l+3]=this.state[l]>>>0&255;return this},e.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},e.prototype._saveState=function(t){for(var e=0;e<this.state.length;e++)t[e]=this.state[e]},e.prototype._restoreState=function(t,e){for(var n=0;n<this.state.length;n++)this.state[n]=t[n];this.bytesHashed=e,this.finished=!1,this.bufferLength=0},e}();t.Hash=r;var i=function(){function t(t){this.inner=new r,this.outer=new r,this.blockSize=this.inner.blockSize,this.digestLength=this.inner.digestLength;var e=new Uint8Array(this.blockSize);if(t.length>this.blockSize)(new r).update(t).finish(e).clean();else for(var n=0;n<t.length;n++)e[n]=t[n];for(n=0;n<e.length;n++)e[n]^=54;for(this.inner.update(e),n=0;n<e.length;n++)e[n]^=106;for(this.outer.update(e),this.istate=new Uint32Array(8),this.ostate=new Uint32Array(8),this.inner._saveState(this.istate),this.outer._saveState(this.ostate),n=0;n<e.length;n++)e[n]=0}return t.prototype.reset=function(){return this.inner._restoreState(this.istate,this.inner.blockSize),this.outer._restoreState(this.ostate,this.outer.blockSize),this},t.prototype.clean=function(){for(var t=0;t<this.istate.length;t++)this.ostate[t]=this.istate[t]=0;this.inner.clean(),this.outer.clean()},t.prototype.update=function(t){return this.inner.update(t),this},t.prototype.finish=function(t){return this.outer.finished?this.outer.finish(t):(this.inner.finish(t),this.outer.update(t,this.digestLength).finish(t)),this},t.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},t}();function o(t){var e=(new r).update(t),n=e.digest();return e.clean(),n}function a(t,e){var n=new i(t).update(e),r=n.digest();return n.clean(),r}function l(t,e,n,r){var i=r[0];if(0===i)throw new Error("hkdf: cannot expand more");e.reset(),i>1&&e.update(t),n&&e.update(n),e.update(r),e.finish(t),r[0]++}t.HMAC=i,t.hash=o,t.default=o,t.hmac=a;var c=new Uint8Array(t.digestLength);t.hkdf=function(t,e,n,r){void 0===e&&(e=c),void 0===r&&(r=32);for(var o=new Uint8Array([1]),s=a(e,t),u=new i(s),d=new Uint8Array(u.digestLength),h=d.length,p=new Uint8Array(r),b=0;b<r;b++)h===d.length&&(l(d,u,n,o),h=0),p[b]=d[h++];return u.clean(),d.fill(0),o.fill(0),p},t.pbkdf2=function(t,e,n,r){for(var o=new i(t),a=o.digestLength,l=new Uint8Array(4),c=new Uint8Array(a),s=new Uint8Array(a),u=new Uint8Array(r),d=0;d*a<r;d++){var h=d+1;l[0]=h>>>24&255,l[1]=h>>>16&255,l[2]=h>>>8&255,l[3]=h>>>0&255,o.reset(),o.update(e),o.update(l),o.finish(s);for(var p=0;p<a;p++)c[p]=s[p];for(p=2;p<=n;p++){o.reset(),o.update(s).finish(s);for(var b=0;b<a;b++)c[b]^=s[b]}for(p=0;p<a&&d*a+p<r;p++)u[d*a+p]=c[p]}for(d=0;d<a;d++)c[d]=s[d]=0;for(d=0;d<4;d++)l[d]=0;return o.clean(),u}}(r);var i=r.default;for(var o in r)i[o]=r[o];t.exports=i}()}($r);var ti=function(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}($r.exports),ei=crypto;const ni=t=>t instanceof CryptoKey,ri=new TextEncoder,ii=new TextDecoder,oi=t=>{let e=t;e instanceof Uint8Array&&(e=ii.decode(e)),e=e.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"");try{return(t=>{const e=atob(t),n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t);return n})(e)}catch(t){throw new TypeError("The input to be decoded is not correctly encoded.")}};class ai extends Error{constructor(t){var e;super(t),this.code="ERR_JOSE_GENERIC",this.name=this.constructor.name,null===(e=Error.captureStackTrace)||void 0===e||e.call(Error,this,this.constructor)}static get code(){return"ERR_JOSE_GENERIC"}}class li extends ai{constructor(t,e="unspecified",n="unspecified"){super(t),this.code="ERR_JWT_CLAIM_VALIDATION_FAILED",this.claim=e,this.reason=n}static get code(){return"ERR_JWT_CLAIM_VALIDATION_FAILED"}}class ci extends ai{constructor(t,e="unspecified",n="unspecified"){super(t),this.code="ERR_JWT_EXPIRED",this.claim=e,this.reason=n}static get code(){return"ERR_JWT_EXPIRED"}}class si extends ai{constructor(){super(...arguments),this.code="ERR_JOSE_ALG_NOT_ALLOWED"}static get code(){return"ERR_JOSE_ALG_NOT_ALLOWED"}}class ui extends ai{constructor(){super(...arguments),this.code="ERR_JOSE_NOT_SUPPORTED"}static get code(){return"ERR_JOSE_NOT_SUPPORTED"}}class di extends ai{constructor(){super(...arguments),this.code="ERR_JWS_INVALID"}static get code(){return"ERR_JWS_INVALID"}}class hi extends ai{constructor(){super(...arguments),this.code="ERR_JWT_INVALID"}static get code(){return"ERR_JWT_INVALID"}}class pi extends ai{constructor(){super(...arguments),this.code="ERR_JWKS_INVALID"}static get code(){return"ERR_JWKS_INVALID"}}class bi extends ai{constructor(){super(...arguments),this.code="ERR_JWKS_NO_MATCHING_KEY",this.message="no applicable key found in the JSON Web Key Set"}static get code(){return"ERR_JWKS_NO_MATCHING_KEY"}}class mi extends ai{constructor(){super(...arguments),this.code="ERR_JWKS_MULTIPLE_MATCHING_KEYS",this.message="multiple matching keys found in the JSON Web Key Set"}static get code(){return"ERR_JWKS_MULTIPLE_MATCHING_KEYS"}}class Zi extends ai{constructor(){super(...arguments),this.code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED",this.message="signature verification failed"}static get code(){return"ERR_JWS_SIGNATURE_VERIFICATION_FAILED"}}function gi(){return"function"==typeof WebSocketPair}function yi(t,e="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${e} must be ${t}`)}function fi(t,e){return t.name===e}function Ii(t){return parseInt(t.name.slice(4),10)}var vi=(t,...e)=>{let n="Key must be ";if(e.length>2){const t=e.pop();n+=`one of type ${e.join(", ")}, or ${t}.`}else 2===e.length?n+=`one of type ${e[0]} or ${e[1]}.`:n+=`of type ${e[0]}.`;return null==t?n+=` Received ${t}`:"function"==typeof t&&t.name?n+=` Received function ${t.name}`:"object"==typeof t&&null!=t&&t.constructor&&t.constructor.name&&(n+=` Received an instance of ${t.constructor.name}`),n},Gi=t=>ni(t);const Xi=["CryptoKey"];function Vi(t){if("object"!=typeof(e=t)||null===e||"[object Object]"!==Object.prototype.toString.call(t))return!1;var e;if(null===Object.getPrototypeOf(t))return!0;let n=t;for(;null!==Object.getPrototypeOf(n);)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(t)===n}const Wi=async t=>{var e,n;const{algorithm:r,keyUsages:i}=function(t){let e,n;switch(t.kty){case"oct":switch(t.alg){case"HS256":case"HS384":case"HS512":e={name:"HMAC",hash:`SHA-${t.alg.slice(-3)}`},n=["sign","verify"];break;case"A128CBC-HS256":case"A192CBC-HS384":case"A256CBC-HS512":throw new ui(`${t.alg} keys cannot be imported as CryptoKey instances`);case"A128GCM":case"A192GCM":case"A256GCM":case"A128GCMKW":case"A192GCMKW":case"A256GCMKW":e={name:"AES-GCM"},n=["encrypt","decrypt"];break;case"A128KW":case"A192KW":case"A256KW":e={name:"AES-KW"},n=["wrapKey","unwrapKey"];break;case"PBES2-HS256+A128KW":case"PBES2-HS384+A192KW":case"PBES2-HS512+A256KW":e={name:"PBKDF2"},n=["deriveBits"];break;default:throw new ui('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"RSA":switch(t.alg){case"PS256":case"PS384":case"PS512":e={name:"RSA-PSS",hash:`SHA-${t.alg.slice(-3)}`},n=t.d?["sign"]:["verify"];break;case"RS256":case"RS384":case"RS512":e={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${t.alg.slice(-3)}`},n=t.d?["sign"]:["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":e={name:"RSA-OAEP",hash:`SHA-${parseInt(t.alg.slice(-3),10)||1}`},n=t.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new ui('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"EC":switch(t.alg){case"ES256":e={name:"ECDSA",namedCurve:"P-256"},n=t.d?["sign"]:["verify"];break;case"ES384":e={name:"ECDSA",namedCurve:"P-384"},n=t.d?["sign"]:["verify"];break;case"ES512":e={name:"ECDSA",namedCurve:"P-521"},n=t.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":e={name:"ECDH",namedCurve:t.crv},n=t.d?["deriveBits"]:[];break;default:throw new ui('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case gi()&&"OKP":if("EdDSA"!==t.alg)throw new ui('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');if("Ed25519"!==t.crv)throw new ui('Invalid or unsupported JWK "crv" (Subtype of Key Pair) Parameter value');e={name:"NODE-ED25519",namedCurve:"NODE-ED25519"},n=t.d?["sign"]:["verify"];break;default:throw new ui('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:e,keyUsages:n}}(t),o=[r,null!==(e=t.ext)&&void 0!==e&&e,null!==(n=t.key_ops)&&void 0!==n?n:i];if("PBKDF2"===r.name)return ei.subtle.importKey("raw",oi(t.k),...o);const a={...t};return delete a.alg,ei.subtle.importKey("jwk",a,...o)};async function Si(t,e,n){var r;if(!Vi(t))throw new di("Flattened JWS must be an object");if(void 0===t.protected&&void 0===t.header)throw new di('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==t.protected&&"string"!=typeof t.protected)throw new di("JWS Protected Header incorrect type");if(void 0===t.payload)throw new di("JWS Payload missing");if("string"!=typeof t.signature)throw new di("JWS Signature missing or incorrect type");if(void 0!==t.header&&!Vi(t.header))throw new di("JWS Unprotected Header incorrect type");let i={};if(t.protected){const e=oi(t.protected);try{i=JSON.parse(ii.decode(e))}catch(t){throw new di("JWS Protected Header is invalid")}}if(!((...t)=>{const e=t.filter(Boolean);if(0===e.length||1===e.length)return!0;let n;for(const t of e){const e=Object.keys(t);if(n&&0!==n.size)for(const t of e){if(n.has(t))return!1;n.add(t)}else n=new Set(e)}return!0})(i,t.header))throw new di("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const o={...i,...t.header},a=function(t,e,n,r,i){if(void 0!==i.crit&&void 0===r.crit)throw new t('"crit" (Critical) Header Parameter MUST be integrity protected');if(!r||void 0===r.crit)return new Set;if(!Array.isArray(r.crit)||0===r.crit.length||r.crit.some((t=>"string"!=typeof t||0===t.length)))throw new t('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let o;o=void 0!==n?new Map([...Object.entries(n),...e.entries()]):e;for(const e of r.crit){if(!o.has(e))throw new ui(`Extension Header Parameter "${e}" is not recognized`);if(void 0===i[e])throw new t(`Extension Header Parameter "${e}" is missing`);if(o.get(e)&&void 0===r[e])throw new t(`Extension Header Parameter "${e}" MUST be integrity protected`)}return new Set(r.crit)}(di,new Map([["b64",!0]]),null==n?void 0:n.crit,i,o);let l=!0;if(a.has("b64")&&(l=i.b64,"boolean"!=typeof l))throw new di('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:c}=o;if("string"!=typeof c||!c)throw new di('JWS "alg" (Algorithm) Header Parameter missing or invalid');const s=n&&((t,e)=>{if(void 0!==e&&(!Array.isArray(e)||e.some((t=>"string"!=typeof t))))throw new TypeError('"algorithms" option must be an array of strings');if(e)return new Set(e)})(0,n.algorithms);if(s&&!s.has(c))throw new si('"alg" (Algorithm) Header Parameter not allowed');if(l){if("string"!=typeof t.payload)throw new di("JWS Payload must be a string")}else if("string"!=typeof t.payload&&!(t.payload instanceof Uint8Array))throw new di("JWS Payload must be a string or an Uint8Array instance");let u=!1;"function"==typeof e&&(e=await e(i,t),u=!0),((t,e,n)=>{t.startsWith("HS")||"dir"===t||t.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(t)?(t=>{if(!(t instanceof Uint8Array)){if(!Gi(t))throw new TypeError(vi(t,...Xi,"Uint8Array"));if("secret"!==t.type)throw new TypeError(`${Xi.join(" or ")} instances for symmetric algorithms must be of type "secret"`)}})(e):((t,e)=>{if(!Gi(t))throw new TypeError(vi(t,...Xi));if("secret"===t.type)throw new TypeError(`${Xi.join(" or ")} instances for asymmetric algorithms must not be of type "secret"`);if(t.algorithm&&"private"===t.type)throw new TypeError(`${Xi.join(" or ")} instances for asymmetric algorithm verifying must be of type "public"`);t.algorithm})(e)})(c,e);const d=function(...t){const e=t.reduce(((t,{length:e})=>t+e),0),n=new Uint8Array(e);let r=0;return t.forEach((t=>{n.set(t,r),r+=t.length})),n}(ri.encode(null!==(r=t.protected)&&void 0!==r?r:""),ri.encode("."),"string"==typeof t.payload?ri.encode(t.payload):t.payload),h=oi(t.signature);if(!await(async(t,e,n,r)=>{const i=await function(t,e,n){if(ni(e))return function(t,e,...n){switch(e){case"HS256":case"HS384":case"HS512":{if(!fi(t.algorithm,"HMAC"))throw yi("HMAC");const n=parseInt(e.slice(2),10);if(Ii(t.algorithm.hash)!==n)throw yi(`SHA-${n}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!fi(t.algorithm,"RSASSA-PKCS1-v1_5"))throw yi("RSASSA-PKCS1-v1_5");const n=parseInt(e.slice(2),10);if(Ii(t.algorithm.hash)!==n)throw yi(`SHA-${n}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!fi(t.algorithm,"RSA-PSS"))throw yi("RSA-PSS");const n=parseInt(e.slice(2),10);if(Ii(t.algorithm.hash)!==n)throw yi(`SHA-${n}`,"algorithm.hash");break}case gi()&&"EdDSA":if(!fi(t.algorithm,"NODE-ED25519"))throw yi("NODE-ED25519");break;case"ES256":case"ES384":case"ES512":{if(!fi(t.algorithm,"ECDSA"))throw yi("ECDSA");const n=function(t){switch(t){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}(e);if(t.algorithm.namedCurve!==n)throw yi(n,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}!function(t,e){if(e.length&&!e.some((e=>t.usages.includes(e)))){let t="CryptoKey does not support this operation, its usages must include ";if(e.length>2){const n=e.pop();t+=`one of ${e.join(", ")}, or ${n}.`}else 2===e.length?t+=`one of ${e[0]} or ${e[1]}.`:t+=`${e[0]}.`;throw new TypeError(t)}}(t,n)}(e,t,n),e;if(e instanceof Uint8Array){if(!t.startsWith("HS"))throw new TypeError(vi(e,...Xi));return ei.subtle.importKey("raw",e,{hash:`SHA-${t.slice(-3)}`,name:"HMAC"},!1,[n])}throw new TypeError(vi(e,...Xi,"Uint8Array"))}(t,e,"verify");((t,e)=>{if(t.startsWith("RS")||t.startsWith("PS")){const{modulusLength:n}=e.algorithm;if("number"!=typeof n||n<2048)throw new TypeError(`${t} requires key modulusLength to be 2048 bits or larger`)}})(t,i);const o=function(t,e){const n=`SHA-${t.slice(-3)}`;switch(t){case"HS256":case"HS384":case"HS512":return{hash:n,name:"HMAC"};case"PS256":case"PS384":case"PS512":return{hash:n,name:"RSA-PSS",saltLength:t.slice(-3)>>3};case"RS256":case"RS384":case"RS512":return{hash:n,name:"RSASSA-PKCS1-v1_5"};case"ES256":case"ES384":case"ES512":return{hash:n,name:"ECDSA",namedCurve:e.namedCurve};case gi()&&"EdDSA":const{namedCurve:r}=e;return{name:r,namedCurve:r};default:throw new ui(`alg ${t} is not supported either by JOSE or your javascript runtime`)}}(t,i.algorithm);try{return await ei.subtle.verify(o,i,n,r)}catch(t){return!1}})(c,e,h,d))throw new Zi;let p;p=l?oi(t.payload):"string"==typeof t.payload?ri.encode(t.payload):t.payload;const b={payload:p};return void 0!==t.protected&&(b.protectedHeader=i),void 0!==t.header&&(b.unprotectedHeader=t.header),u?{...b,key:e}:b}const Ri=/^(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)$/i;var Ci=t=>{const e=Ri.exec(t);if(!e)throw new TypeError("Invalid time period format");const n=parseFloat(e[1]);switch(e[2].toLowerCase()){case"sec":case"secs":case"second":case"seconds":case"s":return Math.round(n);case"minute":case"minutes":case"min":case"mins":case"m":return Math.round(60*n);case"hour":case"hours":case"hr":case"hrs":case"h":return Math.round(3600*n);case"day":case"days":case"d":return Math.round(86400*n);case"week":case"weeks":case"w":return Math.round(604800*n);default:return Math.round(31557600*n)}};const Yi=t=>t.toLowerCase().replace(/^application\//,"");var Ni=(t,e,n={})=>{const{typ:r}=n;if(r&&("string"!=typeof t.typ||Yi(t.typ)!==Yi(r)))throw new li('unexpected "typ" JWT header value',"typ","check_failed");let i;try{i=JSON.parse(ii.decode(e))}catch(t){}if(!Vi(i))throw new hi("JWT Claims Set must be a top-level JSON object");const{issuer:o}=n;if(o&&!(Array.isArray(o)?o:[o]).includes(i.iss))throw new li('unexpected "iss" claim value',"iss","check_failed");const{subject:a}=n;if(a&&i.sub!==a)throw new li('unexpected "sub" claim value',"sub","check_failed");const{audience:l}=n;if(l&&(s="string"==typeof l?[l]:l,!("string"==typeof(c=i.aud)?s.includes(c):Array.isArray(c)&&s.some(Set.prototype.has.bind(new Set(c))))))throw new li('unexpected "aud" claim value',"aud","check_failed");var c,s;let u;switch(typeof n.clockTolerance){case"string":u=Ci(n.clockTolerance);break;case"number":u=n.clockTolerance;break;case"undefined":u=0;break;default:throw new TypeError("Invalid clockTolerance option type")}const{currentDate:d}=n,h=(p=d||new Date,Math.floor(p.getTime()/1e3));var p;if((void 0!==i.iat||n.maxTokenAge)&&"number"!=typeof i.iat)throw new li('"iat" claim must be a number',"iat","invalid");if(void 0!==i.nbf){if("number"!=typeof i.nbf)throw new li('"nbf" claim must be a number',"nbf","invalid");if(i.nbf>h+u)throw new li('"nbf" claim timestamp check failed',"nbf","check_failed")}if(void 0!==i.exp){if("number"!=typeof i.exp)throw new li('"exp" claim must be a number',"exp","invalid");if(i.exp<=h-u)throw new ci('"exp" claim timestamp check failed',"exp","check_failed")}if(n.maxTokenAge){const t=h-i.iat;if(t-u>("number"==typeof n.maxTokenAge?n.maxTokenAge:Ci(n.maxTokenAge)))throw new ci('"iat" claim timestamp check failed (too far in the past)',"iat","check_failed");if(t<0-u)throw new li('"iat" claim timestamp check failed (it should be in the past)',"iat","check_failed")}return i};function Ki(t){return Vi(t)}class ki{constructor(t){if(this._cached=new WeakMap,!function(t){return t&&"object"==typeof t&&Array.isArray(t.keys)&&t.keys.every(Ki)}(t))throw new pi("JSON Web Key Set malformed");var e;this._jwks=(e=t,"function"==typeof structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e)))}async getKey(t,e){const{alg:n,kid:r}={...t,...e.header},i=function(t){switch("string"==typeof t&&t.slice(0,2)){case"RS":case"PS":return"RSA";case"ES":return"EC";case"Ed":return"OKP";default:throw new ui('Unsupported "alg" value for a JSON Web Key Set')}}(n),o=this._jwks.keys.filter((t=>{let e=i===t.kty;if(e&&"string"==typeof r&&(e=r===t.kid),e&&"string"==typeof t.alg&&(e=n===t.alg),e&&"string"==typeof t.use&&(e="sig"===t.use),e&&Array.isArray(t.key_ops)&&(e=t.key_ops.includes("verify")),e&&"EdDSA"===n&&(e="Ed25519"===t.crv||"Ed448"===t.crv),e)switch(n){case"ES256":e="P-256"===t.crv;break;case"ES256K":e="secp256k1"===t.crv;break;case"ES384":e="P-384"===t.crv;break;case"ES512":e="P-521"===t.crv}return e})),{0:a,length:l}=o;if(0===l)throw new bi;if(1!==l)throw new mi;const c=this._cached.get(a)||this._cached.set(a,{}).get(a);if(void 0===c[n]){const t=await async function(t,e,n){if(!Vi(t))throw new TypeError("JWK must be an object");if(e||(e=t.alg),"string"!=typeof e||!e)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');switch(t.kty){case"oct":if("string"!=typeof t.k||!t.k)throw new TypeError('missing "k" (Key Value) Parameter value');return null!=n||(n=!0!==t.ext),n?Wi({...t,alg:e,ext:!1}):oi(t.k);case"RSA":if(void 0!==t.oth)throw new ui('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');case"EC":case"OKP":return Wi({...t,alg:e});default:throw new ui('Unsupported "kty" (Key Type) Parameter value')}}({...a,ext:!0},n);if(t instanceof Uint8Array||"public"!==t.type)throw new pi("JSON Web Key Set members must be public keys");c[n]=t}return c[n]}}var Li={exports:{}},Hi={exports:{}},Ji=function(t){if(t.__esModule)return t;var e=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(t).forEach((function(n){var r=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,r.get?r:{enumerable:!0,get:function(){return t[n]}})})),e}(be);!function(t,e){var n=Ji,r=n.Buffer;function i(t,e){for(var n in t)e[n]=t[n]}function o(t,e,n){return r(t,e,n)}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?t.exports=n:(i(n,e),e.Buffer=o),o.prototype=Object.create(r.prototype),i(r,o),o.from=function(t,e,n){if("number"==typeof t)throw new TypeError("Argument must not be a number");return r(t,e,n)},o.alloc=function(t,e,n){if("number"!=typeof t)throw new TypeError("Argument must be a number");var i=r(t);return void 0!==e?"string"==typeof n?i.fill(e,n):i.fill(e):i.fill(0),i},o.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return r(t)},o.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}}(Hi,Hi.exports);var Ui=Hi.exports.Buffer,xi=z.crypto||z.msCrypto;xi&&xi.getRandomValues?Li.exports=function(t,e){if(t>4294967295)throw new RangeError("requested too many random bytes");var n=Ui.allocUnsafe(t);if(t>0)if(t>65536)for(var r=0;r<t;r+=65536)xi.getRandomValues(n.slice(r,r+65536));else xi.getRandomValues(n);return"function"==typeof e?hn.nextTick((function(){e(null,n)})):n}:Li.exports=function(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")};var Ti=Li.exports;class wi{base64URLEncode(t){return qr.encode(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}base64URLDecode(t){return qr.decode(t).toString()}hashSha256(t){return Nt.from(ti((new TextEncoder).encode(t)))}generateRandomBytes(t){return Ti(t)}verifyJwt(t,e,n,r,i,o,a,l){const c={algorithms:n,audience:r,clockTolerance:a,subject:o};return(null==l||l)&&(c.issuer=i),async function(t,e,n){var r;const i=await async function(t,e,n){if(t instanceof Uint8Array&&(t=ii.decode(t)),"string"!=typeof t)throw new di("Compact JWS must be a string or Uint8Array");const{0:r,1:i,2:o,length:a}=t.split(".");if(3!==a)throw new di("Invalid Compact JWS");const l=await Si({payload:i,protected:r,signature:o},e,n),c={payload:l.payload,protectedHeader:l.protectedHeader};return"function"==typeof e?{...c,key:l.key}:c}(t,e,n);if((null===(r=i.protectedHeader.crit)||void 0===r?void 0:r.includes("b64"))&&!1===i.protectedHeader.b64)throw new hi("JWTs MUST NOT use unencoded payload");const o={payload:Ni(i.protectedHeader,i.payload,n),protectedHeader:i.protectedHeader};return"function"==typeof e?{...o,key:i.key}:o}(t,(s={keys:[e]},ki.prototype.getKey.bind(new ki(s))),c).then((()=>Promise.resolve(!0))).catch((t=>{var e;return Promise.reject(new G("SPA-CRYPTO-UTILS-VJ-IV01",null!==(e=null==t?void 0:t.reason)&&void 0!==e?e:JSON.stringify(t),`${null==t?void 0:t.code} ${null==t?void 0:t.claim}`))}));var s}}const Ai=(n,r,i)=>e(void 0,void 0,void 0,(function*(){var o;const a=(t=>{switch(t){case U.LocalStorage:return new Ar;case U.SessionStorage:return new Br;case U.BrowserMemory:return new Fr;default:return new Br}})(r.storage),l=new wi,c=new N;yield c.initialize(r,a,l,n);const s=new A(c),u=c.getDataLayer(),d=yield F((()=>e(void 0,void 0,void 0,(function*(){return c.getSignOutURL()}))),null!==(o=r.storage)&&void 0!==o?o:U.SessionStorage,(t=>u.setSessionDataParameter(Z,null!=t?t:""))),h=i(c,s);let p=!1;const b=wr.getInstance();let g,y,I=!0;(null==b?void 0:b.init)&&(yield b.init(!0,(t=>e(void 0,void 0,void 0,(function*(){yield h.attachTokenToRequestConfig(t)})))));const v=()=>e(void 0,void 0,void 0,(function*(){const t=yield c.getOIDCServiceEndpoints(),n=yield u.getConfigData();h.initializeSessionManger(n,t,(()=>e(void 0,void 0,void 0,(function*(){return(yield c.getBasicUserInfo()).sessionState}))),(t=>e(void 0,void 0,void 0,(function*(){return c.getAuthorizationURL(t)}))),d)})),G=()=>e(void 0,void 0,void 0,(function*(){return yield d.receivePromptNoneResponse((t=>e(void 0,void 0,void 0,(function*(){yield u.setSessionDataParameter(Z,null!=t?t:"")}))))})),V=t=>{t.preventSignOutURLUpdate&&(p=!0)},W=(t,n,r,i)=>e(void 0,void 0,void 0,(function*(){return yield h.requestAccessToken(t,n,v,void 0,r,i)})),S=(t={})=>e(void 0,void 0,void 0,(function*(){const e=yield u.getConfigData(),n=yield c.getAuthorizationURL(Object.assign({prompt:"none",state:"sign-in-silently"},t)),r=new URL(n);r.searchParams.set("response_mode","query");const i=r.toString();if(e.storage===U.BrowserMemory&&e.enablePKCE){const t=r.searchParams.get(f);T.setPKCE(X.extractPKCEKeyFromStateParam(null!=t?t:""),yield c.getPKCECode(null!=t?t:""))}return i}));return{disableHttpHandler:()=>(h.disableHttpHandler(b),I=!1,!0),enableHttpHandler:()=>(h.enableHttpHandler(b),I=!0,!0),getAccessToken:()=>e(void 0,void 0,void 0,(function*(){return h.getAccessToken()})),getBasicUserInfo:()=>e(void 0,void 0,void 0,(function*(){return h.getBasicUserInfo()})),getConfigData:()=>e(void 0,void 0,void 0,(function*(){return yield u.getConfigData()})),getCryptoHelper:()=>e(void 0,void 0,void 0,(function*(){return h.getCryptoHelper()})),getDataLayer:()=>e(void 0,void 0,void 0,(function*(){return h.getDataLayer()})),getDecodedIDToken:()=>e(void 0,void 0,void 0,(function*(){return h.getDecodedIDToken()})),getHttpClient:()=>b,getIDToken:()=>e(void 0,void 0,void 0,(function*(){return h.getIDToken()})),getOIDCServiceEndpoints:()=>e(void 0,void 0,void 0,(function*(){return h.getOIDCServiceEndpoints()})),httpRequest:t=>e(void 0,void 0,void 0,(function*(){return yield h.httpRequest(b,t,I,g,y)})),httpRequestAll:t=>e(void 0,void 0,void 0,(function*(){return yield h.httpRequestAll(t,b,I,g,y)})),isAuthenticated:()=>e(void 0,void 0,void 0,(function*(){return h.isAuthenticated()})),isSessionActive:()=>e(void 0,void 0,void 0,(function*(){return"true"===(yield u.getSessionStatus())})),refreshAccessToken:()=>e(void 0,void 0,void 0,(function*(){try{return yield h.refreshAccessToken(V)}catch(t){return Promise.reject(t)}})),requestCustomGrant:t=>e(void 0,void 0,void 0,(function*(){return yield h.requestCustomGrant(t,V)})),revokeAccessToken:()=>e(void 0,void 0,void 0,(function*(){const t=yield s.getRefreshTimeoutTimer();return c.revokeAccessToken().then((()=>(d.reset(),s.clearRefreshTokenTimeout(t),Promise.resolve(!0)))).catch((t=>Promise.reject(t)))})),setHttpRequestErrorCallback:t=>{g=t},setHttpRequestFinishCallback:t=>{(null==b?void 0:b.setHttpRequestFinishCallback)&&b.setHttpRequestFinishCallback(t)},setHttpRequestStartCallback:t=>{(null==b?void 0:b.setHttpRequestStartCallback)&&b.setHttpRequestStartCallback(t)},setHttpRequestSuccessCallback:t=>{(null==b?void 0:b.setHttpRequestSuccessCallback)&&b.setHttpRequestSuccessCallback(t)},signIn:(n,i,o,a,l)=>e(void 0,void 0,void 0,(function*(){var s,d,p;const b=yield h.handleSignIn(G,v,void 0);if(b)return b;{let h,b,g,y={params:{}};if((null==r?void 0:r.responseMode)===t.formPost&&i?(h=i,b=null!=o?o:"",g=null!=a?a:""):(h=null!==(s=new URL(window.location.href).searchParams.get(m))&&void 0!==s?s:"",b=null!==(d=new URL(window.location.href).searchParams.get(Z))&&void 0!==d?d:"",g=null!==(p=new URL(window.location.href).searchParams.get(f))&&void 0!==p?p:"",T.removeAuthorizationCode()),h&&g){e(void 0,void 0,void 0,(function*(){yield u.setSessionStatus("true")}));const t=yield u.getTemporaryDataParameter("token_request_config");return t&&"string"==typeof t&&(y=JSON.parse(t)),W(h,b,g,y)}return c.getAuthorizationURL(n).then((t=>e(void 0,void 0,void 0,(function*(){if(r.storage===U.BrowserMemory&&r.enablePKCE){const t=X.extractPKCEKeyFromStateParam(g);T.setPKCE(t,yield c.getPKCECode(g))}return l&&u.setTemporaryDataParameter("token_request_config",JSON.stringify(l)),location.href=t,yield T.waitTillPageRedirect(),Promise.resolve({allowedScopes:"",displayName:"",email:"",sessionState:"",sub:"",tenantDomain:"",username:""})}))))}})),signOut:()=>e(void 0,void 0,void 0,(function*(){return(yield c.isAuthenticated())&&!p?location.href=yield c.getSignOutURL():location.href=T.getSignOutURL(r.clientID,n),s.clearRefreshTokenTimeout(),yield u.removeOIDCProviderMetaData(),yield u.removeTemporaryData(),yield u.removeSessionData(),yield u.removeSessionStatus(),yield T.waitTillPageRedirect(),!0})),trySignInSilently:(t,n)=>e(void 0,void 0,void 0,(function*(){return yield h.trySignInSilently(S,W,d,t,n)})),updateConfig:t=>e(void 0,void 0,void 0,(function*(){const e=yield u.getConfigData(),n=!(e&&e.endpoints&&e.endpoints.checkSessionIframe&&t&&t.endpoints&&t.endpoints.checkSessionIframe&&e.endpoints.checkSessionIframe===t.endpoints.checkSessionIframe),r=Object.assign(Object.assign({},e),t);yield c.updateConfig(r),r.enableOIDCSessionManagement&&n&&(d.reset(),v())}))}})),Fi=(n,r,i,o)=>e(void 0,void 0,void 0,(function*(){var a;let l;const c=null!==(a=null==r?void 0:r.requestTimeout)&&void 0!==a?a:6e4;let s=!0,u=!1;const d=(t=>{switch(t){case U.LocalStorage:return new Ar;case U.SessionStorage:return new Br;case U.BrowserMemory:return new Fr;default:return new Br}})(r.storage),h=new wi,p=new N;yield p.initialize(r,d,h,n);const b=new A(p),g=yield F((()=>e(void 0,void 0,void 0,(function*(){const t={type:"sign-out"};try{return yield v(t)}catch(t){return T.getSignOutURL(r.clientID,n)}}))),r.storage,(t=>V(t))),y=o(p,b),I=new i,v=t=>{const e=new MessageChannel;return I.postMessage(t,[e.port2]),new Promise(((t,n)=>{const r=setTimeout((()=>{n(new G("SPA-WEB_WORKER_CLIENT-COM-TO01","Operation timed out.","No response was received from the web worker for "+c/1e3+" since dispatching the request"))}),c);return e.port1.onmessage=({data:i})=>{if(clearTimeout(r),e.port1.close(),e.port2.close(),null==i?void 0:i.success){const e=(null==i?void 0:i.data)?JSON.parse(null==i?void 0:i.data):null;(null==i?void 0:i.blob)&&(e.data=null==i?void 0:i.blob),t(e)}else n(i.error?JSON.parse(i.error):null)}}))},V=t=>v({data:t,type:"set_session_state"}),W=()=>v({type:"start_auto_refresh_token"}),S=()=>e(void 0,void 0,void 0,(function*(){const t=yield L(),n=yield H();y.initializeSessionManger(n,t,(()=>e(void 0,void 0,void 0,(function*(){return(yield J()).sessionState}))),(t=>e(void 0,void 0,void 0,(function*(){return(yield C(t)).authorizationURL}))),g)})),R=(t={})=>e(void 0,void 0,void 0,(function*(){var e;const n=yield H(),r={data:Object.assign({prompt:"none",state:"sign-in-silently"},t),type:"get_auth_url"},i=yield v(r),o=X.extractPKCEKeyFromStateParam(null!==(e=new URL(i.authorizationURL).searchParams.get(f))&&void 0!==e?e:"");i.pkce&&n.enablePKCE&&T.setPKCE(o,i.pkce);const a=i.authorizationURL,l=new URL(a);return l.searchParams.set("response_mode","query"),l.toString()})),C=t=>e(void 0,void 0,void 0,(function*(){const n=yield H();return v({data:t,type:"get_auth_url"}).then((t=>e(void 0,void 0,void 0,(function*(){var e;if(t.pkce&&n.enablePKCE){const n=X.extractPKCEKeyFromStateParam(null!==(e=new URL(t.authorizationURL).searchParams.get(f))&&void 0!==e?e:"");T.setPKCE(n,t.pkce)}return Promise.resolve(t)}))))})),Y=(t,r,i,o)=>e(void 0,void 0,void 0,(function*(){const e=yield H(),a=X.extractPKCEKeyFromStateParam(i),l={data:{code:t,pkce:e.enablePKCE?T.getPKCE(a):void 0,sessionState:r,state:i,tokenRequestConfig:o},type:"request_get_token"};return e.enablePKCE&&T.removePKCE(a),v(l).then((t=>v({type:"get_sign_out_url"}).then((r=>(T.setSignOutURL(r,e.clientID,n),e.enableOIDCSessionManagement&&S(),W(),Promise.resolve(t)))).catch((t=>Promise.reject(t))))).catch((t=>Promise.reject(t)))})),K=()=>e(void 0,void 0,void 0,(function*(){return yield g.receivePromptNoneResponse((t=>e(void 0,void 0,void 0,(function*(){return V(t)}))))})),k=()=>e(void 0,void 0,void 0,(function*(){if(yield x())return yield W(),r.enableOIDCSessionManagement&&S(),J()})),L=()=>v({type:"get-oidc-service-endpoints"}).then((t=>Promise.resolve(t))).catch((t=>Promise.reject(t))),H=()=>v({type:"get_config_data"}).then((t=>Promise.resolve(t))).catch((t=>Promise.reject(t))),J=()=>v({type:"get-basic-user-info"}).then((t=>Promise.resolve(t))).catch((t=>Promise.reject(t))),x=()=>v({type:"is_authenticated"}).then((t=>Promise.resolve(t))).catch((t=>Promise.reject(t)));return{disableHttpHandler:()=>v({type:"disable_http_handler"}).then((()=>(s=!1,Promise.resolve(!0)))).catch((t=>Promise.reject(t))),enableHttpHandler:()=>v({type:"enable_http_handler"}).then((()=>(s=!0,Promise.resolve(!0)))).catch((t=>Promise.reject(t))),getBasicUserInfo:J,getConfigData:H,getCryptoHelper:()=>v({type:"get-crypto-helper"}).then((t=>Promise.resolve(t))).catch((t=>Promise.reject(t))),getDecodedIDPIDToken:()=>v({type:"get-decoded-idp-id-token"}).then((t=>Promise.resolve(t))).catch((t=>Promise.reject(t))),getDecodedIDToken:()=>v({type:"get-decoded-id-token"}).then((t=>Promise.resolve(t))).catch((t=>Promise.reject(t))),getIDToken:()=>v({type:"get_id_token"}).then((t=>Promise.resolve(t))).catch((t=>Promise.reject(t))),getOIDCServiceEndpoints:L,httpRequest:t=>((null==t?void 0:t.data)&&(null==t?void 0:t.data)instanceof FormData&&(t.data=Object.assign(Object.assign({},Object.fromEntries(null==t?void 0:t.data.entries())),{formData:!0})),v({data:t,type:"http-request"}).then((t=>Promise.resolve(t))).catch((t=>e(void 0,void 0,void 0,(function*(){return s&&("function"==typeof l.requestErrorCallback&&(yield l.requestErrorCallback(t)),"function"==typeof l.requestFinishCallback&&l.requestFinishCallback()),Promise.reject(t)}))))),httpRequestAll:t=>v({data:t,type:"http-request-all"}).then((t=>Promise.resolve(t))).catch((t=>e(void 0,void 0,void 0,(function*(){return s&&("function"==typeof l.requestErrorCallback&&(yield l.requestErrorCallback(t)),"function"==typeof l.requestFinishCallback&&l.requestFinishCallback()),Promise.reject(t)})))),initialize:()=>(l||(l={requestErrorCallback:()=>Promise.resolve(),requestFinishCallback:()=>null,requestStartCallback:()=>null,requestSuccessCallback:()=>null}),I.onmessage=({data:t})=>{switch(t.type){case"request-finish":(null==l?void 0:l.requestFinishCallback)&&(null==l||l.requestFinishCallback());break;case"request-start":(null==l?void 0:l.requestStartCallback)&&(null==l||l.requestStartCallback());break;case"request-success":(null==l?void 0:l.requestSuccessCallback)&&(null==l||l.requestSuccessCallback(t.data?JSON.parse(t.data):null))}},v({data:r,type:"init"}).then((()=>Promise.resolve(!0))).catch((t=>Promise.reject(t)))),isAuthenticated:x,refreshAccessToken:()=>v({type:"refresh_access-token"}),requestCustomGrant:t=>v({data:t,type:"request-custom-grant"}).then((e=>(t.preventSignOutURLUpdate&&(u=!0),Promise.resolve(e)))).catch((t=>Promise.reject(t))),revokeAccessToken:()=>v({type:"revoke-access-token"}).then((t=>(g.reset(),Promise.resolve(t)))).catch((t=>Promise.reject(t))),setHttpRequestErrorCallback:t=>{t&&"function"==typeof t&&(l.requestErrorCallback=t)},setHttpRequestFinishCallback:t=>{t&&"function"==typeof t&&(l.requestFinishCallback=t)},setHttpRequestStartCallback:t=>{t&&"function"==typeof t&&(l.requestStartCallback=t)},setHttpRequestSuccessCallback:t=>{t&&"function"==typeof t&&(l.requestSuccessCallback=t)},signIn:(n,i,o,a,l)=>e(void 0,void 0,void 0,(function*(){var c,s,u;const d=yield y.handleSignIn(K,S,k);if(d)return d;{let d,h,p;return(null==r?void 0:r.responseMode)===t.formPost&&i?(d=i,h=null!=o?o:"",p=null!=a?a:""):(d=null!==(c=new URL(window.location.href).searchParams.get(m))&&void 0!==c?c:"",h=null!==(s=new URL(window.location.href).searchParams.get(Z))&&void 0!==s?s:"",p=null!==(u=new URL(window.location.href).searchParams.get(f))&&void 0!==u?u:"",T.removeAuthorizationCode()),d&&p?Y(d,h,p,l):C(n).then((t=>e(void 0,void 0,void 0,(function*(){return location.href=t.authorizationURL,yield T.waitTillPageRedirect(),Promise.resolve({allowedScopes:"",displayName:"",email:"",sessionState:"",sub:"",tenantDomain:"",username:""})})))).catch((t=>Promise.reject(t)))}})),signOut:()=>new Promise(((t,i)=>{if(!u)return v({type:"sign-out"}).then((n=>e(void 0,void 0,void 0,(function*(){return window.location.href=n,yield T.waitTillPageRedirect(),t(!0)})))).catch((t=>i(t)));window.location.href=T.getSignOutURL(r.clientID,n),T.waitTillPageRedirect().then((()=>Promise.resolve(!0)))})),trySignInSilently:(t,n)=>e(void 0,void 0,void 0,(function*(){return yield y.trySignInSilently(R,Y,g,t,n)})),updateConfig:t=>e(void 0,void 0,void 0,(function*(){const e=yield H(),n=!(e&&e.endpoints&&e.endpoints.checkSessionIframe&&t&&t.endpoints&&t.endpoints.checkSessionIframe&&e.endpoints.checkSessionIframe===t.endpoints.checkSessionIframe),r=Object.assign(Object.assign({},e),t),i={data:r,type:"update_config"};yield v(i),r.enableOIDCSessionManagement&&n&&(g.reset(),S())}))}})),Bi={autoLogoutOnTokenRefreshError:!0,checkSessionInterval:3,clientHost:origin,enableOIDCSessionManagement:!1,periodicTokenRefresh:!1,sessionRefreshInterval:300,storage:U.SessionStorage};class zi{constructor(t){this._authHelper=w,this._worker=k,this._initialized=!1,this._startedInitialize=!1,this._onSignInCallback=()=>null,this._onSignOutCallback=()=>null,this._onSignOutFailedCallback=()=>null,this._onEndUserSession=()=>null,this._onInitialize=()=>null,this._onCustomGrant=new Map,this._instanceID=t}instantiateAuthHelper(t){this._authHelper=t||w}instantiateWorker(t){this._worker=t||k}_isInitialized(){return e(this,void 0,void 0,(function*(){if(!this._startedInitialize)return!1;let t=0;for(;!this._initialized;)1e4===t&&console.warn("It is taking longer than usual for the object to be initialized"),yield new Promise((t=>setTimeout(t,1))),t++;return!0}))}_validateMethod(t=!0){return e(this,void 0,void 0,(function*(){return(yield this._isInitialized())?!(t&&!(yield this.isAuthenticated()))||Promise.reject(new G("SPA-AUTH_CLIENT-VM-IV02","The user is not authenticated.","The user must be authenticated first.")):Promise.reject(new G("SPA-AUTH_CLIENT-VM-NF01","The SDK is not initialized.","The SDK must be initialized first."))}))}static getInstance(t){var e,n;return t&&(null===(e=this._instances)||void 0===e?void 0:e.get(t))?this._instances.get(t):!t&&(null===(n=this._instances)||void 0===n?void 0:n.get(0))?this._instances.get(0):t?(this._instances.set(t,new zi(t)),this._instances.get(t)):(this._instances.set(0,new zi(0)),this._instances.get(0))}initialize(t,n,r){var i,o,a,l;return e(this,void 0,void 0,(function*(){this._storage=null!==(i=t.storage)&&void 0!==i?i:U.SessionStorage,this._initialized=!1,this._startedInitialize=!0,n&&this.instantiateAuthHelper(n),r&&this.instantiateWorker(r);const e=yield null===(o=this._client)||void 0===o?void 0:o.getConfigData();if(this._storage!==U.WebWorker){const n=t,r=Object.assign({},Bi),i=Object.assign(Object.assign({},r),n);return this._client&&(!this._client||e&&0!==(null===(a=Object.keys(e))||void 0===a?void 0:a.length))||(this._client=yield Ai(this._instanceID,i,((t,e)=>new this._authHelper(t,e)))),this._initialized=!0,this._onInitialize&&this._onInitialize(!0),i.autoLogoutOnTokenRefreshError?(window.addEventListener("message",(t=>{var e;"refresh-access-token-error"===(null===(e=null==t?void 0:t.data)||void 0===e?void 0:e.type)&&this.signOut()})),Promise.resolve(!0)):Promise.resolve(!0)}if(!this._client||this._client&&(!e||0===(null===(l=Object.keys(e))||void 0===l?void 0:l.length))){const e=t;return this._client=yield Fi(this._instanceID,Object.assign(Object.assign({},Bi),e),this._worker,((t,e)=>new this._authHelper(t,e))),this._client.initialize().then((()=>(this._onInitialize&&this._onInitialize(!0),this._initialized=!0,Promise.resolve(!0)))).catch((t=>Promise.reject(t)))}return Promise.resolve(!0)}))}getBasicUserInfo(){var t;return e(this,void 0,void 0,(function*(){return yield this._validateMethod(),null===(t=this._client)||void 0===t?void 0:t.getBasicUserInfo()}))}signIn(t,n,r,i,o){var a;return e(this,void 0,void 0,(function*(){if(yield this._isInitialized(),T.canContinueSignIn(Boolean(null==t?void 0:t.callOnlyOnRedirect),n))return null==t||delete t.callOnlyOnRedirect,null===(a=this._client)||void 0===a?void 0:a.signIn(t,n,r,i,o).then((t=>(this._onSignInCallback&&(t.allowedScopes||t.displayName||t.email||t.username)&&this._onSignInCallback(t),t)))}))}trySignInSilently(t,n){var r;return e(this,void 0,void 0,(function*(){if(yield this._isInitialized(),!T.wasSignInCalled())return null===(r=this._client)||void 0===r?void 0:r.trySignInSilently(t,n).then((t=>{if(this._onSignInCallback&&t){const e=t;(e.allowedScopes||e.displayName||e.email||e.username)&&this._onSignInCallback(e)}return t}))}))}signOut(){var t,n;return e(this,void 0,void 0,(function*(){return yield this._validateMethod(!1),null!==(n=yield null===(t=this._client)||void 0===t?void 0:t.signOut())&&void 0!==n&&n}))}httpRequest(t){var n;return e(this,void 0,void 0,(function*(){return yield this._validateMethod(!1),null===(n=this._client)||void 0===n?void 0:n.httpRequest(t)}))}httpRequestAll(t){var n;return e(this,void 0,void 0,(function*(){return yield this._validateMethod(!1),null===(n=this._client)||void 0===n?void 0:n.httpRequestAll(t)}))}requestCustomGrant(t){var n,r;return e(this,void 0,void 0,(function*(){if(t.signInRequired,yield this._validateMethod(),!t.id)return Promise.reject(new G("SPA-AUTH_CLIENT-RCG-NF01","The custom grant request id not found.","The id attribute of the custom grant config object passed as an argument should have a value."));const e=yield null===(n=this._client)||void 0===n?void 0:n.requestCustomGrant(t),i=this._onCustomGrant.get(t.id);return i&&i(null===(r=this._onCustomGrant)||void 0===r?void 0:r.get(t.id)),e}))}revokeAccessToken(){var t;return e(this,void 0,void 0,(function*(){yield this._validateMethod();const e=yield null===(t=this._client)||void 0===t?void 0:t.revokeAccessToken();return this._onEndUserSession&&(yield this._onEndUserSession(e)),e}))}getOIDCServiceEndpoints(){var t;return e(this,void 0,void 0,(function*(){return yield this._isInitialized(),null===(t=this._client)||void 0===t?void 0:t.getOIDCServiceEndpoints()}))}getHttpClient(){if(this._client){if(this._storage!==U.WebWorker)return this._client.getHttpClient();throw new G("SPA-AUTH_CLIENT-GHC-IV01","Http client cannot be returned.","The http client cannot be returned when the storage type is set to webWorker.")}throw new G("SPA-AUTH_CLIENT-GHC-NF02","The SDK is not initialized.","The SDK has not been initialized yet. Initialize the SDK using the initialize method before calling this method.")}getDecodedIDToken(){var t;return e(this,void 0,void 0,(function*(){return yield this._validateMethod(),null===(t=this._client)||void 0===t?void 0:t.getDecodedIDToken()}))}getCryptoHelper(){var t;return e(this,void 0,void 0,(function*(){return yield this._validateMethod(),null===(t=this._client)||void 0===t?void 0:t.getCryptoHelper()}))}getIDToken(){var t;return e(this,void 0,void 0,(function*(){return yield this._validateMethod(),null===(t=this._client)||void 0===t?void 0:t.getIDToken()}))}getAccessToken(){return e(this,void 0,void 0,(function*(){return yield this._validateMethod(),this._storage&&[(U.WebWorker,U.BrowserMemory)].includes(this._storage)?Promise.reject(new G("SPA-AUTH_CLIENT-GAT-IV01","The access token cannot be returned.","The access token cannot be returned when the storage type is set to webWorker or browserMemory.")):this._client.getAccessToken()}))}getIDPAccessToken(){return e(this,void 0,void 0,(function*(){return yield this._validateMethod(),this._storage&&[(U.WebWorker,U.BrowserMemory)].includes(this._storage)?Promise.reject(new G("SPA-AUTH_CLIENT-GIAT-IV01","The access token cannot be returned.","The access token cannot be returned when the storage type is set to webWorker or browserMemory.")):this._client.getAccessToken()}))}getDataLayer(){return e(this,void 0,void 0,(function*(){return yield this._validateMethod(),this._storage&&[(U.WebWorker,U.BrowserMemory)].includes(this._storage)?Promise.reject(new G("SPA-AUTH_CLIENT-GDL-IV01","The data layer cannot be returned.","The data layer cannot be returned when the storage type is set to webWorker or browserMemory.")):this._client.getDataLayer()}))}getConfigData(){var t;return e(this,void 0,void 0,(function*(){return null===(t=this._client)||void 0===t?void 0:t.getConfigData()}))}refreshAccessToken(){var t;return e(this,void 0,void 0,(function*(){return yield this._validateMethod(!1),null===(t=this._client)||void 0===t?void 0:t.refreshAccessToken()}))}isAuthenticated(){var t;return e(this,void 0,void 0,(function*(){return yield this._isInitialized(),null===(t=this._client)||void 0===t?void 0:t.isAuthenticated()}))}isSessionActive(){return e(this,void 0,void 0,(function*(){if(yield this._isInitialized(),this._storage&&[(U.WebWorker,U.BrowserMemory)].includes(this._storage))return Promise.reject(new G("SPA-AUTH_CLIENT-ISA-IV01","The active session cannot be returned.","The active session cannot be returned when the storage type is set to webWorker or browserMemory."));const t=this._client;return null==t?void 0:t.isSessionActive()}))}on(t,n,r){var i,o,a,l;return e(this,void 0,void 0,(function*(){if(yield this._isInitialized(),!n||"function"!=typeof n)throw new G("SPA-AUTH_CLIENT-ON-IV02","Invalid callback function.","The provided callback function is invalid.");switch(t){case H.SignIn:this._onSignInCallback=n;break;case H.SignOut:this._onSignOutCallback=n,(yield T.isSignOutSuccessful())&&this._onSignOutCallback();break;case H.RevokeAccessToken:this._onEndUserSession=n;break;case H.Initialize:this._onInitialize=n;break;case H.HttpRequestError:null===(i=this._client)||void 0===i||i.setHttpRequestErrorCallback(n);break;case H.HttpRequestFinish:null===(o=this._client)||void 0===o||o.setHttpRequestFinishCallback(n);break;case H.HttpRequestStart:null===(a=this._client)||void 0===a||a.setHttpRequestStartCallback(n);break;case H.HttpRequestSuccess:null===(l=this._client)||void 0===l||l.setHttpRequestSuccessCallback(n);break;case H.CustomGrant:r&&this._onCustomGrant.set(r,n);break;case H.SignOutFailed:{this._onSignOutFailedCallback=n;const t=T.didSignOutFail();t&&this._onSignOutFailedCallback(t);break}default:throw new G("SPA-AUTH_CLIENT-ON-IV01","Invalid hook.","The provided hook is invalid.")}}))}enableHttpHandler(){var t;return e(this,void 0,void 0,(function*(){return yield this._isInitialized(),null===(t=this._client)||void 0===t?void 0:t.enableHttpHandler()}))}disableHttpHandler(){var t;return e(this,void 0,void 0,(function*(){return yield this._isInitialized(),null===(t=this._client)||void 0===t?void 0:t.disableHttpHandler()}))}updateConfig(t){return e(this,void 0,void 0,(function*(){if(yield this._isInitialized(),this._storage===U.WebWorker){const e=this._client;yield e.updateConfig(t)}else{const e=this._client;yield e.updateConfig(t)}}))}}zi._instances=new Map;class Pi extends Worker{constructor(){super(...arguments),this.onmessage=()=>null}}const Mi=t=>{const n=self;let r;n.onmessage=({data:n,ports:l})=>e(void 0,void 0,void 0,(function*(){var c,s,u,d,h,p;const b=l[0];if("init"===n.type||r)switch(n.type){case"init":try{const l=Object.assign({},n.data);r=yield((t,n)=>e(void 0,void 0,void 0,(function*(){const r=new Fr,i=new wi,o=new N;yield o.initialize(t,r,i);const a=new A(o),l=n(o,a),c=o.getDataLayer(),s=wr.getInstance();return(null==s?void 0:s.init)&&(yield s.init(!0,(t=>e(void 0,void 0,void 0,(function*(){yield l.attachTokenToRequestConfig(t)}))))),{disableHttpHandler:()=>{l.disableHttpHandler(s)},enableHttpHandler:()=>{l.enableHttpHandler(s)},getAccessToken:()=>l.getAccessToken(),getAuthorizationURL:t=>e(void 0,void 0,void 0,(function*(){return o.getAuthorizationURL(t).then((t=>e(void 0,void 0,void 0,(function*(){var e;const n=null!==(e=new URL(t).searchParams.get(f))&&void 0!==e?e:"",r=yield o.getPKCECode(n);return{authorizationURL:t,pkce:r}})))).catch((t=>Promise.reject(t)))})),getBasicUserInfo:()=>e(void 0,void 0,void 0,(function*(){return l.getBasicUserInfo()})),getConfigData:()=>e(void 0,void 0,void 0,(function*(){return c.getConfigData()})),getCryptoHelper:()=>e(void 0,void 0,void 0,(function*(){return l.getCryptoHelper()})),getDecodedIDPIDToken:()=>e(void 0,void 0,void 0,(function*(){return l.getDecodedIDPIDToken()})),getDecodedIDToken:()=>e(void 0,void 0,void 0,(function*(){return l.getDecodedIDToken()})),getIDToken:()=>e(void 0,void 0,void 0,(function*(){return l.getIDToken()})),getOIDCServiceEndpoints:()=>e(void 0,void 0,void 0,(function*(){return l.getOIDCServiceEndpoints()})),getSignOutURL:()=>e(void 0,void 0,void 0,(function*(){return yield o.getSignOutURL()})),httpRequest:t=>e(void 0,void 0,void 0,(function*(){return yield l.httpRequest(s,t)})),httpRequestAll:t=>e(void 0,void 0,void 0,(function*(){return yield l.httpRequestAll(t,s)})),isAuthenticated:()=>l.isAuthenticated(),refreshAccessToken:()=>e(void 0,void 0,void 0,(function*(){try{return yield l.refreshAccessToken()}catch(t){return Promise.reject(t)}})),requestAccessToken:(t,n,r,i)=>e(void 0,void 0,void 0,(function*(){return yield l.requestAccessToken(t,n,void 0,r,i)})),requestCustomGrant:t=>e(void 0,void 0,void 0,(function*(){return yield l.requestCustomGrant(t)})),revokeAccessToken:()=>e(void 0,void 0,void 0,(function*(){const t=yield a.getRefreshTimeoutTimer();return o.revokeAccessToken().then((()=>(a.clearRefreshTokenTimeout(t),Promise.resolve(!0)))).catch((t=>Promise.reject(t)))})),setHttpRequestFinishCallback:t=>{(null==s?void 0:s.setHttpRequestFinishCallback)&&s.setHttpRequestFinishCallback(t)},setHttpRequestStartCallback:t=>{(null==s?void 0:s.setHttpRequestStartCallback)&&s.setHttpRequestStartCallback(t)},setHttpRequestSuccessCallback:t=>{(null==s?void 0:s.setHttpRequestSuccessCallback)&&s.setHttpRequestSuccessCallback(t)},setSessionState:t=>e(void 0,void 0,void 0,(function*(){yield c.setSessionDataParameter(Z,t)})),signOut:()=>e(void 0,void 0,void 0,(function*(){return a.clearRefreshTokenTimeout(),yield o.getSignOutURL()})),startAutoRefreshToken:()=>e(void 0,void 0,void 0,(function*(){a.clearRefreshTokenTimeout(),a.refreshAccessTokenAutomatically(l)})),updateConfig:t=>e(void 0,void 0,void 0,(function*(){yield o.updateConfig(t)}))}})))(l,t),r.setHttpRequestFinishCallback(a),r.setHttpRequestStartCallback(i),r.setHttpRequestSuccessCallback(o),b.postMessage(x.generateSuccessMessage())}catch(t){b.postMessage(x.generateFailureMessage(t))}break;case"get_auth_url":r.getAuthorizationURL(null==n?void 0:n.data).then((t=>{b.postMessage(x.generateSuccessMessage(t))})).catch((t=>{b.postMessage(x.generateFailureMessage(t))}));break;case"request_get_token":r.requestAccessToken(null===(c=null==n?void 0:n.data)||void 0===c?void 0:c.code,null===(s=null==n?void 0:n.data)||void 0===s?void 0:s.sessionState,null===(u=null==n?void 0:n.data)||void 0===u?void 0:u.pkce,null===(d=null==n?void 0:n.data)||void 0===d?void 0:d.state).then((t=>{b.postMessage(x.generateSuccessMessage(t))})).catch((t=>{b.postMessage(x.generateFailureMessage(t))}));break;case"http-request":{const t=n.data,e=null==t?void 0:t.data;if(!0===(null===(p=null===(h=n.data)||void 0===h?void 0:h.data)||void 0===p?void 0:p.formData)){const n=new FormData;for(const t in e)"formData"!==t&&n.append(t,e[t]);t.data=n}r.httpRequest(t).then((t=>{b.postMessage(x.generateSuccessMessage(t))})).catch((t=>{b.postMessage(x.generateFailureMessage(t))}));break}case"http-request-all":r.httpRequestAll(n.data).then((t=>{b.postMessage(x.generateSuccessMessage(t))})).catch((t=>{b.postMessage(x.generateFailureMessage(t))}));break;case"sign-out":try{b.postMessage(x.generateSuccessMessage(yield r.signOut()))}catch(t){b.postMessage(x.generateFailureMessage(t))}break;case"request-custom-grant":r.requestCustomGrant(n.data).then((t=>{b.postMessage(x.generateSuccessMessage(t))})).catch((t=>{b.postMessage(x.generateFailureMessage(t))}));break;case"revoke-access-token":r.revokeAccessToken().then((t=>{b.postMessage(x.generateSuccessMessage(t))})).catch((t=>{b.postMessage(x.generateFailureMessage(t))}));break;case"get-oidc-service-endpoints":try{b.postMessage(x.generateSuccessMessage(yield r.getOIDCServiceEndpoints()))}catch(t){b.postMessage(x.generateFailureMessage(t))}break;case"get-basic-user-info":try{b.postMessage(x.generateSuccessMessage(yield r.getBasicUserInfo()))}catch(t){b.postMessage(x.generateFailureMessage(t))}break;case"get-decoded-id-token":try{b.postMessage(x.generateSuccessMessage(yield r.getDecodedIDToken()))}catch(t){b.postMessage(x.generateFailureMessage(t))}break;case"get-crypto-helper":try{b.postMessage(x.generateSuccessMessage(yield r.getCryptoHelper()))}catch(t){b.postMessage(x.generateFailureMessage(t))}break;case"get_id_token":try{b.postMessage(x.generateSuccessMessage(yield r.getIDToken()))}catch(t){b.postMessage(x.generateFailureMessage(t))}break;case"enable_http_handler":r.enableHttpHandler(),b.postMessage(x.generateSuccessMessage());break;case"disable_http_handler":r.disableHttpHandler(),b.postMessage(x.generateSuccessMessage());break;case"is_authenticated":try{b.postMessage(x.generateSuccessMessage(yield r.isAuthenticated()))}catch(t){b.postMessage(x.generateFailureMessage(t))}break;case"get_sign_out_url":try{b.postMessage(x.generateSuccessMessage(yield r.getSignOutURL()))}catch(t){b.postMessage(x.generateFailureMessage(t))}break;case"refresh_access-token":try{b.postMessage(x.generateSuccessMessage(yield r.refreshAccessToken()))}catch(t){b.postMessage(x.generateFailureMessage(t))}break;case"start_auto_refresh_token":try{b.postMessage(x.generateSuccessMessage(r.startAutoRefreshToken()))}catch(t){b.postMessage(x.generateFailureMessage(t))}break;case"set_session_state":try{b.postMessage(x.generateSuccessMessage(yield r.setSessionState(null==n?void 0:n.data)))}catch(t){b.postMessage(x.generateFailureMessage(t))}break;case"update_config":try{b.postMessage(x.generateSuccessMessage(yield r.updateConfig(null==n?void 0:n.data)))}catch(t){b.postMessage(x.generateFailureMessage(t))}break;case"get_config_data":try{b.postMessage(x.generateSuccessMessage(yield r.getConfigData()))}catch(t){b.postMessage(x.generateFailureMessage(t))}break;default:null==b||b.postMessage(x.generateFailureMessage(new G("SPA-CLIENT_WORKER-ONMSG-IV02","The message type is invalid.",`The message type provided, ${n.type}, is invalid.`)))}else b.postMessage(x.generateFailureMessage(new G("SPA-CLIENT_WORKER-ONMSG-NF01","The web worker has not been initialized yet.","The initialize method needs to be called before the specified operation can be carried out.")))}));const i=()=>{n.postMessage({type:"request-start"})},o=t=>{n.postMessage({data:JSON.stringify(null!=t?t:""),type:"request-success"})},a=()=>{n.postMessage({type:"request-finish"})}};var Ei=Tr.AxiosError,ji=r(48947),Qi=r.n(ji);function Oi(t){return Oi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Oi(t)}function Di(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function _i(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Di(Object(n),!0).forEach((function(e){no(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Di(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function qi(){qi=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,r=Object.defineProperty||function(t,e,n){t[e]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,n){return t[e]=n}}function s(t,e,n,i){var o=e&&e.prototype instanceof h?e:h,a=Object.create(o.prototype),l=new W(i||[]);return r(a,"_invoke",{value:v(t,n,l)}),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=s;var d={};function h(){}function p(){}function b(){}var m={};c(m,o,(function(){return this}));var Z=Object.getPrototypeOf,g=Z&&Z(Z(S([])));g&&g!==e&&n.call(g,o)&&(m=g);var y=b.prototype=h.prototype=Object.create(m);function f(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function I(t,e){function i(r,o,a,l){var c=u(t[r],t,o);if("throw"!==c.type){var s=c.arg,d=s.value;return d&&"object"==Oi(d)&&n.call(d,"__await")?e.resolve(d.__await).then((function(t){i("next",t,a,l)}),(function(t){i("throw",t,a,l)})):e.resolve(d).then((function(t){s.value=t,a(s)}),(function(t){return i("throw",t,a,l)}))}l(c.arg)}var o;r(this,"_invoke",{value:function(t,n){function r(){return new e((function(e,r){i(t,n,e,r)}))}return o=o?o.then(r,r):r()}})}function v(t,e,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return{value:void 0,done:!0}}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var l=G(a,n);if(l){if(l===d)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=u(t,e,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===d)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}function G(t,e){var n=e.method,r=t.iterator[n];if(void 0===r)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=void 0,G(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var i=u(r,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,d;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function X(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 V(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function W(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(X,this),this.reset(!0)}function S(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:R}}function R(){return{value:void 0,done:!0}}return p.prototype=b,r(y,"constructor",{value:b,configurable:!0}),r(b,"constructor",{value:p,configurable:!0}),p.displayName=c(b,l,"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,b):(t.__proto__=b,c(t,l,"GeneratorFunction")),t.prototype=Object.create(y),t},t.awrap=function(t){return{__await:t}},f(I.prototype),c(I.prototype,a,(function(){return this})),t.AsyncIterator=I,t.async=function(e,n,r,i,o){void 0===o&&(o=Promise);var a=new I(s(e,n,r,i),o);return t.isGeneratorFunction(n)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},f(y),c(y,l,"Generator"),c(y,o,(function(){return this})),c(y,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),n=[];for(var r in e)n.push(r);return n.reverse(),function t(){for(;n.length;){var r=n.pop();if(r in e)return t.value=r,t.done=!1,t}return t.done=!0,t}},t.values=S,W.prototype={constructor:W,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(V),!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 r(n,r){return a.type="throw",a.arg=t,e.next=n,r&&(e.method="next",e.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var l=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(l&&c){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(l){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=t,a.arg=e,o?(this.method="next",this.next=o.finallyLoc,d):this.complete(a)},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),d},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),V(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;V(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:S(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},t}function $i(t,e,n,r,i,o,a){try{var l=t[o](a),c=l.value}catch(t){return void n(t)}l.done?e(c):Promise.resolve(c).then(r,i)}function to(t){return function(){var e=this,n=arguments;return new Promise((function(r,i){var o=t.apply(e,n);function a(t){$i(o,r,i,a,l,"next",t)}function l(t){$i(o,r,i,a,l,"throw",t)}a(void 0)}))}}function eo(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,ro(r.key),r)}}function no(t,e,n){return(e=ro(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function ro(t){var e=function(t,e){if("object"!==Oi(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!==Oi(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"===Oi(e)?e:String(e)}var io=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),no(this,"_authState",t.DEFAULT_STATE),no(this,"_client",void 0),this._client=null!=e?e:zi.getInstance(),this.getState=this.getState.bind(this),this.init=this.init.bind(this),this.signIn=this.signIn.bind(this),this.signOut=this.signOut.bind(this),this.updateState=this.updateState.bind(this)}var e,n,r,i,o,a,l,c,s,u,d,h,p,b,m,Z,g,y,f,I,v,G,X;return e=t,n=[{key:"getState",value:function(){return this._authState}},{key:"init",value:(X=to(qi().mark((function t(e){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this._client.initialize(e);case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t,this)}))),function(t){return X.apply(this,arguments)})},{key:"getConfigData",value:(G=to(qi().mark((function t(){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this._client.getConfigData();case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t,this)}))),function(){return G.apply(this,arguments)})},{key:"signIn",value:(v=to(qi().mark((function t(e,n,r,i,o,a,l,c){var s=this;return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.signIn(r,i,o,a,c).then(function(){var t=to(qi().mark((function t(r){var i;return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,s._client.isAuthenticated();case 4:if(!t.sent){t.next=9;break}i={allowedScopes:r.allowedScopes,displayName:r.displayName,email:r.email,isAuthenticated:!0,isLoading:!1,isSigningOut:!1,sub:r.sub,username:r.username},s.updateState(i),e(_i(_i({},n),i)),l&&l(r);case 9:return t.abrupt("return",r);case 10:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()).catch((function(t){return Promise.reject(t)})));case 1:case"end":return t.stop()}}),t,this)}))),function(t,e,n,r,i,o,a,l){return v.apply(this,arguments)})},{key:"signOut",value:function(t,e,n){return this._client.signOut().then((function(t){return n&&n(t),t})).catch((function(t){return Promise.reject(t)}))}},{key:"updateState",value:function(t){this._authState=_i(_i({},this._authState),t)}},{key:"getBasicUserInfo",value:(I=to(qi().mark((function t(){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.getBasicUserInfo());case 1:case"end":return t.stop()}}),t,this)}))),function(){return I.apply(this,arguments)})},{key:"httpRequest",value:(f=to(qi().mark((function t(e){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.httpRequest(e));case 1:case"end":return t.stop()}}),t,this)}))),function(t){return f.apply(this,arguments)})},{key:"httpRequestAll",value:(y=to(qi().mark((function t(e){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.httpRequestAll(e));case 1:case"end":return t.stop()}}),t,this)}))),function(t){return y.apply(this,arguments)})},{key:"requestCustomGrant",value:function(t,e,n){var r=this;return this._client.requestCustomGrant(t).then((function(i){if(i)return t.returnsSession&&(r.updateState(_i(_i(_i({},r.getState()),i),{},{isAuthenticated:!0,isLoading:!1})),n(_i(_i({},i),{},{isAuthenticated:!0,isLoading:!1}))),e&&e(i),i})).catch((function(t){return Promise.reject(t)}))}},{key:"revokeAccessToken",value:(g=to(qi().mark((function e(n){var r=this;return qi().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this._client.revokeAccessToken().then((function(){return r.updateState(_i(_i({},t.DEFAULT_STATE),{},{isLoading:!1})),n(t.DEFAULT_STATE),!0})).catch((function(t){return Promise.reject(t)})));case 1:case"end":return e.stop()}}),e,this)}))),function(t){return g.apply(this,arguments)})},{key:"getOIDCServiceEndpoints",value:(Z=to(qi().mark((function t(){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.getOIDCServiceEndpoints());case 1:case"end":return t.stop()}}),t,this)}))),function(){return Z.apply(this,arguments)})},{key:"getHttpClient",value:(m=to(qi().mark((function t(){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.getHttpClient());case 1:case"end":return t.stop()}}),t,this)}))),function(){return m.apply(this,arguments)})},{key:"getDecodedIDToken",value:(b=to(qi().mark((function t(){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.getDecodedIDToken());case 1:case"end":return t.stop()}}),t,this)}))),function(){return b.apply(this,arguments)})},{key:"getDecodedIDPIDToken",value:(p=to(qi().mark((function t(){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.getDecodedIDToken());case 1:case"end":return t.stop()}}),t,this)}))),function(){return p.apply(this,arguments)})},{key:"getIDToken",value:(h=to(qi().mark((function t(){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.getIDToken());case 1:case"end":return t.stop()}}),t,this)}))),function(){return h.apply(this,arguments)})},{key:"getAccessToken",value:(d=to(qi().mark((function t(){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.getAccessToken());case 1:case"end":return t.stop()}}),t,this)}))),function(){return d.apply(this,arguments)})},{key:"getIDPAccessToken",value:(u=to(qi().mark((function t(){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.getIDPAccessToken());case 1:case"end":return t.stop()}}),t,this)}))),function(){return u.apply(this,arguments)})},{key:"refreshAccessToken",value:(s=to(qi().mark((function t(){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.refreshAccessToken());case 1:case"end":return t.stop()}}),t,this)}))),function(){return s.apply(this,arguments)})},{key:"isAuthenticated",value:(c=to(qi().mark((function t(){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.isAuthenticated());case 1:case"end":return t.stop()}}),t,this)}))),function(){return c.apply(this,arguments)})},{key:"isSessionActive",value:(l=to(qi().mark((function t(){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.isSessionActive());case 1:case"end":return t.stop()}}),t,this)}))),function(){return l.apply(this,arguments)})},{key:"enableHttpHandler",value:(a=to(qi().mark((function t(){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.enableHttpHandler());case 1:case"end":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:"disableHttpHandler",value:(o=to(qi().mark((function t(){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.disableHttpHandler());case 1:case"end":return t.stop()}}),t,this)}))),function(){return o.apply(this,arguments)})},{key:"updateConfig",value:(i=to(qi().mark((function t(e){return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.updateConfig(e));case 1:case"end":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:"on",value:function(t,e,n){return t===H.CustomGrant?this._client.on(t,e,n):this._client.on(t,e)}},{key:"trySignInSilently",value:(r=to(qi().mark((function t(e,n,r,i){var o=this;return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.trySignInSilently(r,i).then(function(){var t=to(qi().mark((function t(r){var i,a;return qi().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r){t.next=4;break}return o.updateState(_i(_i({},o.getState()),{},{isLoading:!1})),n(_i(_i({},e),{},{isLoading:!1})),t.abrupt("return",!1);case 4:return t.next=6,o._client.isAuthenticated();case 6:if(!t.sent){t.next=11;break}a={allowedScopes:(i=r).allowedScopes,displayName:i.displayName,email:i.email,isAuthenticated:!0,isLoading:!1,isSigningOut:!1,sub:i.sub,username:i.username},o.updateState(a),n(_i(_i({},e),a));case 11:return t.abrupt("return",r);case 12:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()).catch((function(t){return Promise.reject(t)})));case 1:case"end":return t.stop()}}),t,this)}))),function(t,e,n,i){return r.apply(this,arguments)})}],n&&eo(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();no(io,"DEFAULT_STATE",void 0),io.DEFAULT_STATE={allowedScopes:"",displayName:"",email:"",isAuthenticated:!1,isLoading:!0,sub:"",username:""};const oo=io;function ao(t){return ao="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ao(t)}function lo(){lo=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,r=Object.defineProperty||function(t,e,n){t[e]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,n){return t[e]=n}}function s(t,e,n,i){var o=e&&e.prototype instanceof h?e:h,a=Object.create(o.prototype),l=new W(i||[]);return r(a,"_invoke",{value:v(t,n,l)}),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=s;var d={};function h(){}function p(){}function b(){}var m={};c(m,o,(function(){return this}));var Z=Object.getPrototypeOf,g=Z&&Z(Z(S([])));g&&g!==e&&n.call(g,o)&&(m=g);var y=b.prototype=h.prototype=Object.create(m);function f(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function I(t,e){function i(r,o,a,l){var c=u(t[r],t,o);if("throw"!==c.type){var s=c.arg,d=s.value;return d&&"object"==ao(d)&&n.call(d,"__await")?e.resolve(d.__await).then((function(t){i("next",t,a,l)}),(function(t){i("throw",t,a,l)})):e.resolve(d).then((function(t){s.value=t,a(s)}),(function(t){return i("throw",t,a,l)}))}l(c.arg)}var o;r(this,"_invoke",{value:function(t,n){function r(){return new e((function(e,r){i(t,n,e,r)}))}return o=o?o.then(r,r):r()}})}function v(t,e,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return{value:void 0,done:!0}}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var l=G(a,n);if(l){if(l===d)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=u(t,e,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===d)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}function G(t,e){var n=e.method,r=t.iterator[n];if(void 0===r)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=void 0,G(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var i=u(r,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,d;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function X(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 V(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function W(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(X,this),this.reset(!0)}function S(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:R}}function R(){return{value:void 0,done:!0}}return p.prototype=b,r(y,"constructor",{value:b,configurable:!0}),r(b,"constructor",{value:p,configurable:!0}),p.displayName=c(b,l,"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,b):(t.__proto__=b,c(t,l,"GeneratorFunction")),t.prototype=Object.create(y),t},t.awrap=function(t){return{__await:t}},f(I.prototype),c(I.prototype,a,(function(){return this})),t.AsyncIterator=I,t.async=function(e,n,r,i,o){void 0===o&&(o=Promise);var a=new I(s(e,n,r,i),o);return t.isGeneratorFunction(n)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},f(y),c(y,l,"Generator"),c(y,o,(function(){return this})),c(y,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),n=[];for(var r in e)n.push(r);return n.reverse(),function t(){for(;n.length;){var r=n.pop();if(r in e)return t.value=r,t.done=!1,t}return t.done=!0,t}},t.values=S,W.prototype={constructor:W,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(V),!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 r(n,r){return a.type="throw",a.arg=t,e.next=n,r&&(e.method="next",e.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var l=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(l&&c){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(l){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=t,a.arg=e,o?(this.method="next",this.next=o.finallyLoc,d):this.complete(a)},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),d},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),V(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;V(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:S(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},t}function co(t,e,n,r,i,o,a){try{var l=t[o](a),c=l.value}catch(t){return void n(t)}l.done?e(c):Promise.resolve(c).then(r,i)}function so(t){return function(){var e=this,n=arguments;return new Promise((function(r,i){var o=t.apply(e,n);function a(t){co(o,r,i,a,l,"next",t)}function l(t){co(o,r,i,a,l,"throw",t)}a(void 0)}))}}function uo(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function ho(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?uo(Object(n),!0).forEach((function(e){po(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):uo(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function po(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==ao(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!==ao(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"===ao(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function bo(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,l=[],c=!0,s=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==e);c=!0);}catch(t){s=!0,i=t}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw i}}return l}}(t,e)||function(t,e){if(t){if("string"==typeof t)return mo(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mo(t,e):void 0}}(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 mo(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var Zo={disableAutoSignIn:!0,disableTrySignInSilently:!0},go=(0,ji.createContext)(null),yo=function(t){var e=t.children,n=t.config,r=t.fallback,i=t.getAuthParams,o=t.onSignOut,a=t.plugin,l=(0,ji.useMemo)((function(){return new oo(a)}),[a]),c=bo((0,ji.useState)(l.getState()),2),s=c[0],u=c[1],d=bo((0,ji.useState)(!1),2),h=d[0],p=d[1],b=(0,ji.useMemo)((function(){return ho(ho({},Zo),n)}),[n]),m=function(){var t=so(lo().mark((function t(e,n,r,i,o,a){var c;return lo().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,l.getConfigData();case 2:if((c=t.sent)&&0!==Object.keys(c).length){t.next=6;break}return t.next=6,l.init(b);case 6:return t.prev=6,I(null),t.next=10,l.signIn(u,s,e,n,r,i,o,a);case 10:return t.abrupt("return",t.sent);case 13:return t.prev=13,t.t0=t.catch(6),t.abrupt("return",Promise.reject(t.t0));case 16:case"end":return t.stop()}}),t,null,[[6,13]])})));return function(e,n,r,i,o,a){return t.apply(this,arguments)}}(),Z=function(t,e,n){return t===H.CustomGrant?l.on(t,e,n):l.on(t,e)},g=function(t,e){return l.trySignInSilently(s,u,t,e)},y=bo((0,ji.useState)(),2),f=y[0],I=y[1],v=(0,ji.useRef)(!1);(0,ji.useEffect)((function(){s.isAuthenticated||so(lo().mark((function t(){return lo().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.t0=p,t.next=3,l.init(b);case 3:t.t1=t.sent,(0,t.t0)(t.t1),G();case 6:case"end":return t.stop()}}),t)})))()}),[b]),(0,ji.useEffect)((function(){v.current||(v.current=!0,so(lo().mark((function t(){var e,n,r,a,c,d,h;return lo().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=!1,t.next=3,Z(H.SignOut,(function(){e=!0,o&&o()}));case 3:if(!s.isAuthenticated){t.next=5;break}return t.abrupt("return");case 5:if(b.skipRedirectCallback){t.next=22;break}if(r=null,!i||"function"!=typeof i){t.next=11;break}return t.next=10,i();case 10:r=t.sent;case 11:if(a=new URL(location.href),!(T.hasAuthSearchParamsInURL()&&new URL(a.origin+a.pathname).toString()===new URL(null==b?void 0:b.signInRedirectURL).toString()||null!==(n=r)&&void 0!==n&&n.authorizationCode||a.searchParams.get("error"))){t.next=22;break}return t.prev=13,t.next=16,m({callOnlyOnRedirect:!0},null===(c=r)||void 0===c?void 0:c.authorizationCode,null===(d=r)||void 0===d?void 0:d.sessionState,null===(h=r)||void 0===h?void 0:h.state);case 16:I(null),t.next=22;break;case 19:t.prev=19,t.t0=t.catch(13),t.t0&&Object.prototype.hasOwnProperty.call(t.t0,"code")&&I(t.t0);case 22:if(!l.getState().isAuthenticated){t.next=24;break}return t.abrupt("return");case 24:if(t.t1=!b.disableAutoSignIn,!t.t1){t.next=29;break}return t.next=28,l.isSessionActive();case 28:t.t1=t.sent;case 29:if(!t.t1){t.next=31;break}m();case 31:if(!b.disableTrySignInSilently&&!e){t.next=34;break}return u(ho(ho({},s),{},{isLoading:!1})),t.abrupt("return");case 34:return t.next=36,g().then((function(){I(null)})).catch((function(t){t&&Object.prototype.hasOwnProperty.call(t,"code")&&I(t)}));case 36:case"end":return t.stop()}}),t,null,[[13,19]])})))())}),[b]);var G=function(){var t=so(lo().mark((function t(){var e,n,r;return lo().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,l.isAuthenticated();case 2:if(!(e=t.sent)){t.next=14;break}return t.next=6,l.getBasicUserInfo();case 6:if(!(n=t.sent)){t.next=12;break}return r={allowedScopes:n.allowedScopes,displayName:n.displayName,email:n.email,isAuthenticated:!0,isLoading:!1,isSigningOut:!1,sub:n.sub,username:n.username},l.updateState(r),u(ho(ho({},s),r)),t.abrupt("return");case 12:l.updateState(ho(ho({},s),{},{isAuthenticated:e,isLoading:!1})),u(ho(ho({},s),{},{isAuthenticated:e,isLoading:!1}));case 14:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();return Qi().createElement(go.Provider,{value:{disableHttpHandler:function(){return l.disableHttpHandler()},enableHttpHandler:function(){return l.enableHttpHandler()},error:f,getAccessToken:function(){return l.getAccessToken()},getBasicUserInfo:function(){return l.getBasicUserInfo()},getDecodedIDPIDToken:function(){return l.getDecodedIDPIDToken()},getDecodedIDToken:function(){return l.getDecodedIDToken()},getHttpClient:function(){return l.getHttpClient()},getIDToken:function(){return l.getIDToken()},getOIDCServiceEndpoints:function(){return l.getOIDCServiceEndpoints()},httpRequest:function(t){return l.httpRequest(t)},httpRequestAll:function(t){return l.httpRequestAll(t)},isAuthenticated:function(){return l.isAuthenticated()},on:Z,refreshAccessToken:function(){return l.refreshAccessToken()},requestCustomGrant:function(t,e){return l.requestCustomGrant(t,e,u)},revokeAccessToken:function(){return l.revokeAccessToken(u)},signIn:m,signOut:function(t){return l.signOut(u,s,t)},state:s,trySignInSilently:g,updateConfig:function(t){return l.updateConfig(t)}}},h?e:null!=r?r:null)},fo=function(){return(0,ji.useContext)(go)},Io=function(t){var e=t.fallback,n=t.children,r=fo().state.isAuthenticated;return Qi().createElement(Qi().Fragment,null," ",r?n:null!=e?e:null," ")};function vo(t){return vo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vo(t)}function Go(){Go=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,r=Object.defineProperty||function(t,e,n){t[e]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,n){return t[e]=n}}function s(t,e,n,i){var o=e&&e.prototype instanceof h?e:h,a=Object.create(o.prototype),l=new W(i||[]);return r(a,"_invoke",{value:v(t,n,l)}),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=s;var d={};function h(){}function p(){}function b(){}var m={};c(m,o,(function(){return this}));var Z=Object.getPrototypeOf,g=Z&&Z(Z(S([])));g&&g!==e&&n.call(g,o)&&(m=g);var y=b.prototype=h.prototype=Object.create(m);function f(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function I(t,e){function i(r,o,a,l){var c=u(t[r],t,o);if("throw"!==c.type){var s=c.arg,d=s.value;return d&&"object"==vo(d)&&n.call(d,"__await")?e.resolve(d.__await).then((function(t){i("next",t,a,l)}),(function(t){i("throw",t,a,l)})):e.resolve(d).then((function(t){s.value=t,a(s)}),(function(t){return i("throw",t,a,l)}))}l(c.arg)}var o;r(this,"_invoke",{value:function(t,n){function r(){return new e((function(e,r){i(t,n,e,r)}))}return o=o?o.then(r,r):r()}})}function v(t,e,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return{value:void 0,done:!0}}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var l=G(a,n);if(l){if(l===d)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=u(t,e,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===d)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}function G(t,e){var n=e.method,r=t.iterator[n];if(void 0===r)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=void 0,G(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var i=u(r,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,d;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function X(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 V(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function W(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(X,this),this.reset(!0)}function S(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:R}}function R(){return{value:void 0,done:!0}}return p.prototype=b,r(y,"constructor",{value:b,configurable:!0}),r(b,"constructor",{value:p,configurable:!0}),p.displayName=c(b,l,"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,b):(t.__proto__=b,c(t,l,"GeneratorFunction")),t.prototype=Object.create(y),t},t.awrap=function(t){return{__await:t}},f(I.prototype),c(I.prototype,a,(function(){return this})),t.AsyncIterator=I,t.async=function(e,n,r,i,o){void 0===o&&(o=Promise);var a=new I(s(e,n,r,i),o);return t.isGeneratorFunction(n)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},f(y),c(y,l,"Generator"),c(y,o,(function(){return this})),c(y,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),n=[];for(var r in e)n.push(r);return n.reverse(),function t(){for(;n.length;){var r=n.pop();if(r in e)return t.value=r,t.done=!1,t}return t.done=!0,t}},t.values=S,W.prototype={constructor:W,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(V),!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 r(n,r){return a.type="throw",a.arg=t,e.next=n,r&&(e.method="next",e.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var l=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(l&&c){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(l){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=t,a.arg=e,o?(this.method="next",this.next=o.finallyLoc,d):this.complete(a)},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),d},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),V(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;V(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:S(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},t}function Xo(t,e,n,r,i,o,a){try{var l=t[o](a),c=l.value}catch(t){return void n(t)}l.done?e(c):Promise.resolve(c).then(r,i)}var Vo=function(t){var e=t.children,n=t.fallback,r=t.onSignIn,i=t.overrideSignIn,o=fo(),a=o.state,l=a.isAuthenticated,c=a.isLoading,s=o.signIn;return(0,ji.useEffect)((function(){l||c||function(t){return function(){var e=this,n=arguments;return new Promise((function(r,i){var o=t.apply(e,n);function a(t){Xo(o,r,i,a,l,"next",t)}function l(t){Xo(o,r,i,a,l,"throw",t)}a(void 0)}))}}(Go().mark((function t(){return Go().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!i||"function"!=typeof i){t.next=5;break}return t.next=3,i();case 3:t.next=7;break;case 5:return t.next=7,s();case 7:case"end":return t.stop()}}),t)})))(),l&&r&&"function"==typeof r&&r()}),[l,c]),Qi().createElement(Io,{fallback:n},Qi().createElement(ji.Suspense,{fallback:n},e))}})(),i})()));
|
|
2
|
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.AsgardeoAuth=e(require("react")):t.AsgardeoAuth=e(t.React)}(this,(t=>(()=>{var e={19662:(t,e,n)=>{var r=n(60614),i=n(66330),o=TypeError;t.exports=function(t){if(r(t))return t;throw o(i(t)+" is not a function")}},39483:(t,e,n)=>{var r=n(4411),i=n(66330),o=TypeError;t.exports=function(t){if(r(t))return t;throw o(i(t)+" is not a constructor")}},96077:(t,e,n)=>{var r=n(60614),i=String,o=TypeError;t.exports=function(t){if("object"==typeof t||r(t))return t;throw o("Can't set "+i(t)+" as a prototype")}},51223:(t,e,n)=>{var r=n(5112),i=n(70030),o=n(3070).f,l=r("unscopables"),a=Array.prototype;null==a[l]&&o(a,l,{configurable:!0,value:i(null)}),t.exports=function(t){a[l][t]=!0}},31530:(t,e,n)=>{"use strict";var r=n(28710).charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},25787:(t,e,n)=>{var r=n(47976),i=TypeError;t.exports=function(t,e){if(r(e,t))return t;throw i("Incorrect invocation")}},19670:(t,e,n)=>{var r=n(70111),i=String,o=TypeError;t.exports=function(t){if(r(t))return t;throw o(i(t)+" is not an object")}},23013:t=>{t.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},7556:(t,e,n)=>{var r=n(47293);t.exports=r((function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}}))},90260:(t,e,n)=>{"use strict";var r,i,o,l=n(23013),a=n(19781),c=n(17854),s=n(60614),u=n(70111),d=n(92597),h=n(70648),p=n(66330),b=n(68880),Z=n(98052),m=n(3070).f,g=n(47976),y=n(79518),f=n(27674),I=n(5112),G=n(69711),X=n(29909),v=X.enforce,V=X.get,W=c.Int8Array,R=W&&W.prototype,S=c.Uint8ClampedArray,C=S&&S.prototype,Y=W&&y(W),K=R&&y(R),N=Object.prototype,k=c.TypeError,J=I("toStringTag"),T=G("TYPED_ARRAY_TAG"),L="TypedArrayConstructor",x=l&&!!f&&"Opera"!==h(c.opera),U=!1,H={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},w={BigInt64Array:8,BigUint64Array:8},F=function(t){var e=y(t);if(u(e)){var n=V(e);return n&&d(n,L)?n[L]:F(e)}},A=function(t){if(!u(t))return!1;var e=h(t);return d(H,e)||d(w,e)};for(r in H)(o=(i=c[r])&&i.prototype)?v(o)[L]=i:x=!1;for(r in w)(o=(i=c[r])&&i.prototype)&&(v(o)[L]=i);if((!x||!s(Y)||Y===Function.prototype)&&(Y=function(){throw k("Incorrect invocation")},x))for(r in H)c[r]&&f(c[r],Y);if((!x||!K||K===N)&&(K=Y.prototype,x))for(r in H)c[r]&&f(c[r].prototype,K);if(x&&y(C)!==K&&f(C,K),a&&!d(K,J))for(r in U=!0,m(K,J,{get:function(){return u(this)?this[T]:void 0}}),H)c[r]&&b(c[r],T,r);t.exports={NATIVE_ARRAY_BUFFER_VIEWS:x,TYPED_ARRAY_TAG:U&&T,aTypedArray:function(t){if(A(t))return t;throw k("Target is not a typed array")},aTypedArrayConstructor:function(t){if(s(t)&&(!f||g(Y,t)))return t;throw k(p(t)+" is not a typed array constructor")},exportTypedArrayMethod:function(t,e,n,r){if(a){if(n)for(var i in H){var o=c[i];if(o&&d(o.prototype,t))try{delete o.prototype[t]}catch(n){try{o.prototype[t]=e}catch(t){}}}K[t]&&!n||Z(K,t,n?e:x&&R[t]||e,r)}},exportTypedArrayStaticMethod:function(t,e,n){var r,i;if(a){if(f){if(n)for(r in H)if((i=c[r])&&d(i,t))try{delete i[t]}catch(t){}if(Y[t]&&!n)return;try{return Z(Y,t,n?e:x&&Y[t]||e)}catch(t){}}for(r in H)!(i=c[r])||i[t]&&!n||Z(i,t,e)}},getTypedArrayConstructor:F,isView:function(t){if(!u(t))return!1;var e=h(t);return"DataView"===e||d(H,e)||d(w,e)},isTypedArray:A,TypedArray:Y,TypedArrayPrototype:K}},13331:(t,e,n)=>{"use strict";var r=n(17854),i=n(1702),o=n(19781),l=n(23013),a=n(76530),c=n(68880),s=n(89190),u=n(47293),d=n(25787),h=n(19303),p=n(17466),b=n(57067),Z=n(11179),m=n(79518),g=n(27674),y=n(8006).f,f=n(3070).f,I=n(21285),G=n(41589),X=n(58003),v=n(29909),V=a.PROPER,W=a.CONFIGURABLE,R=v.get,S=v.set,C="ArrayBuffer",Y="DataView",K="prototype",N="Wrong index",k=r[C],J=k,T=J&&J[K],L=r[Y],x=L&&L[K],U=Object.prototype,H=r.Array,w=r.RangeError,F=i(I),A=i([].reverse),B=Z.pack,z=Z.unpack,P=function(t){return[255&t]},j=function(t){return[255&t,t>>8&255]},E=function(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]},M=function(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]},Q=function(t){return B(t,23,4)},O=function(t){return B(t,52,8)},D=function(t,e){f(t[K],e,{get:function(){return R(this)[e]}})},_=function(t,e,n,r){var i=b(n),o=R(t);if(i+e>o.byteLength)throw w(N);var l=R(o.buffer).bytes,a=i+o.byteOffset,c=G(l,a,a+e);return r?c:A(c)},q=function(t,e,n,r,i,o){var l=b(n),a=R(t);if(l+e>a.byteLength)throw w(N);for(var c=R(a.buffer).bytes,s=l+a.byteOffset,u=r(+i),d=0;d<e;d++)c[s+d]=u[o?d:e-d-1]};if(l){var $=V&&k.name!==C;if(u((function(){k(1)}))&&u((function(){new k(-1)}))&&!u((function(){return new k,new k(1.5),new k(NaN),1!=k.length||$&&!W})))$&&W&&c(k,"name",C);else{(J=function(t){return d(this,T),new k(b(t))})[K]=T;for(var tt,et=y(k),nt=0;et.length>nt;)(tt=et[nt++])in J||c(J,tt,k[tt]);T.constructor=J}g&&m(x)!==U&&g(x,U);var rt=new L(new J(2)),it=i(x.setInt8);rt.setInt8(0,2147483648),rt.setInt8(1,2147483649),!rt.getInt8(0)&&rt.getInt8(1)||s(x,{setInt8:function(t,e){it(this,t,e<<24>>24)},setUint8:function(t,e){it(this,t,e<<24>>24)}},{unsafe:!0})}else T=(J=function(t){d(this,T);var e=b(t);S(this,{bytes:F(H(e),0),byteLength:e}),o||(this.byteLength=e)})[K],x=(L=function(t,e,n){d(this,x),d(t,T);var r=R(t).byteLength,i=h(e);if(i<0||i>r)throw w("Wrong offset");if(i+(n=void 0===n?r-i:p(n))>r)throw w("Wrong length");S(this,{buffer:t,byteLength:n,byteOffset:i}),o||(this.buffer=t,this.byteLength=n,this.byteOffset=i)})[K],o&&(D(J,"byteLength"),D(L,"buffer"),D(L,"byteLength"),D(L,"byteOffset")),s(x,{getInt8:function(t){return _(this,1,t)[0]<<24>>24},getUint8:function(t){return _(this,1,t)[0]},getInt16:function(t){var e=_(this,2,t,arguments.length>1?arguments[1]:void 0);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=_(this,2,t,arguments.length>1?arguments[1]:void 0);return e[1]<<8|e[0]},getInt32:function(t){return M(_(this,4,t,arguments.length>1?arguments[1]:void 0))},getUint32:function(t){return M(_(this,4,t,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(t){return z(_(this,4,t,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(t){return z(_(this,8,t,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(t,e){q(this,1,t,P,e)},setUint8:function(t,e){q(this,1,t,P,e)},setInt16:function(t,e){q(this,2,t,j,e,arguments.length>2?arguments[2]:void 0)},setUint16:function(t,e){q(this,2,t,j,e,arguments.length>2?arguments[2]:void 0)},setInt32:function(t,e){q(this,4,t,E,e,arguments.length>2?arguments[2]:void 0)},setUint32:function(t,e){q(this,4,t,E,e,arguments.length>2?arguments[2]:void 0)},setFloat32:function(t,e){q(this,4,t,Q,e,arguments.length>2?arguments[2]:void 0)},setFloat64:function(t,e){q(this,8,t,O,e,arguments.length>2?arguments[2]:void 0)}});X(J,C),X(L,Y),t.exports={ArrayBuffer:J,DataView:L}},1048:(t,e,n)=>{"use strict";var r=n(47908),i=n(51400),o=n(26244),l=n(85117),a=Math.min;t.exports=[].copyWithin||function(t,e){var n=r(this),c=o(n),s=i(t,c),u=i(e,c),d=arguments.length>2?arguments[2]:void 0,h=a((void 0===d?c:i(d,c))-u,c-s),p=1;for(u<s&&s<u+h&&(p=-1,u+=h-1,s+=h-1);h-- >0;)u in n?n[s]=n[u]:l(n,s),s+=p,u+=p;return n}},21285:(t,e,n)=>{"use strict";var r=n(47908),i=n(51400),o=n(26244);t.exports=function(t){for(var e=r(this),n=o(e),l=arguments.length,a=i(l>1?arguments[1]:void 0,n),c=l>2?arguments[2]:void 0,s=void 0===c?n:i(c,n);s>a;)e[a++]=t;return e}},18533:(t,e,n)=>{"use strict";var r=n(42092).forEach,i=n(9341)("forEach");t.exports=i?[].forEach:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}},97745:(t,e,n)=>{var r=n(26244);t.exports=function(t,e){for(var n=0,i=r(e),o=new t(i);i>n;)o[n]=e[n++];return o}},48457:(t,e,n)=>{"use strict";var r=n(49974),i=n(46916),o=n(47908),l=n(53411),a=n(97659),c=n(4411),s=n(26244),u=n(86135),d=n(18554),h=n(71246),p=Array;t.exports=function(t){var e=o(t),n=c(this),b=arguments.length,Z=b>1?arguments[1]:void 0,m=void 0!==Z;m&&(Z=r(Z,b>2?arguments[2]:void 0));var g,y,f,I,G,X,v=h(e),V=0;if(!v||this===p&&a(v))for(g=s(e),y=n?new this(g):p(g);g>V;V++)X=m?Z(e[V],V):e[V],u(y,V,X);else for(G=(I=d(e,v)).next,y=n?new this:[];!(f=i(G,I)).done;V++)X=m?l(I,Z,[f.value,V],!0):f.value,u(y,V,X);return y.length=V,y}},41318:(t,e,n)=>{var r=n(45656),i=n(51400),o=n(26244),l=function(t){return function(e,n,l){var a,c=r(e),s=o(c),u=i(l,s);if(t&&n!=n){for(;s>u;)if((a=c[u++])!=a)return!0}else for(;s>u;u++)if((t||u in c)&&c[u]===n)return t||u||0;return!t&&-1}};t.exports={includes:l(!0),indexOf:l(!1)}},42092:(t,e,n)=>{var r=n(49974),i=n(1702),o=n(68361),l=n(47908),a=n(26244),c=n(65417),s=i([].push),u=function(t){var e=1==t,n=2==t,i=3==t,u=4==t,d=6==t,h=7==t,p=5==t||d;return function(b,Z,m,g){for(var y,f,I=l(b),G=o(I),X=r(Z,m),v=a(G),V=0,W=g||c,R=e?W(b,v):n||h?W(b,0):void 0;v>V;V++)if((p||V in G)&&(f=X(y=G[V],V,I),t))if(e)R[V]=f;else if(f)switch(t){case 3:return!0;case 5:return y;case 6:return V;case 2:s(R,y)}else switch(t){case 4:return!1;case 7:s(R,y)}return d?-1:i||u?u:R}};t.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterReject:u(7)}},86583:(t,e,n)=>{"use strict";var r=n(22104),i=n(45656),o=n(19303),l=n(26244),a=n(9341),c=Math.min,s=[].lastIndexOf,u=!!s&&1/[1].lastIndexOf(1,-0)<0,d=a("lastIndexOf"),h=u||!d;t.exports=h?function(t){if(u)return r(s,this,arguments)||0;var e=i(this),n=l(e),a=n-1;for(arguments.length>1&&(a=c(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:s},81194:(t,e,n)=>{var r=n(47293),i=n(5112),o=n(7392),l=i("species");t.exports=function(t){return o>=51||!r((function(){var e=[];return(e.constructor={})[l]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},9341:(t,e,n)=>{"use strict";var r=n(47293);t.exports=function(t,e){var n=[][t];return!!n&&r((function(){n.call(null,e||function(){return 1},1)}))}},53671:(t,e,n)=>{var r=n(19662),i=n(47908),o=n(68361),l=n(26244),a=TypeError,c=function(t){return function(e,n,c,s){r(n);var u=i(e),d=o(u),h=l(u),p=t?h-1:0,b=t?-1:1;if(c<2)for(;;){if(p in d){s=d[p],p+=b;break}if(p+=b,t?p<0:h<=p)throw a("Reduce of empty array with no initial value")}for(;t?p>=0:h>p;p+=b)p in d&&(s=n(s,d[p],p,u));return s}};t.exports={left:c(!1),right:c(!0)}},83658:(t,e,n)=>{"use strict";var r=n(19781),i=n(43157),o=TypeError,l=Object.getOwnPropertyDescriptor,a=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=a?function(t,e){if(i(t)&&!l(t,"length").writable)throw o("Cannot set read only .length");return t.length=e}:function(t,e){return t.length=e}},41589:(t,e,n)=>{var r=n(51400),i=n(26244),o=n(86135),l=Array,a=Math.max;t.exports=function(t,e,n){for(var c=i(t),s=r(e,c),u=r(void 0===n?c:n,c),d=l(a(u-s,0)),h=0;s<u;s++,h++)o(d,h,t[s]);return d.length=h,d}},50206:(t,e,n)=>{var r=n(1702);t.exports=r([].slice)},94362:(t,e,n)=>{var r=n(41589),i=Math.floor,o=function(t,e){var n=t.length,c=i(n/2);return n<8?l(t,e):a(t,o(r(t,0,c),e),o(r(t,c),e),e)},l=function(t,e){for(var n,r,i=t.length,o=1;o<i;){for(r=o,n=t[o];r&&e(t[r-1],n)>0;)t[r]=t[--r];r!==o++&&(t[r]=n)}return t},a=function(t,e,n,r){for(var i=e.length,o=n.length,l=0,a=0;l<i||a<o;)t[l+a]=l<i&&a<o?r(e[l],n[a])<=0?e[l++]:n[a++]:l<i?e[l++]:n[a++];return t};t.exports=o},77475:(t,e,n)=>{var r=n(43157),i=n(4411),o=n(70111),l=n(5112)("species"),a=Array;t.exports=function(t){var e;return r(t)&&(e=t.constructor,(i(e)&&(e===a||r(e.prototype))||o(e)&&null===(e=e[l]))&&(e=void 0)),void 0===e?a:e}},65417:(t,e,n)=>{var r=n(77475);t.exports=function(t,e){return new(r(t))(0===e?0:e)}},60956:(t,e,n)=>{"use strict";var r=n(35005),i=n(1702),o=n(19662),l=n(68554),a=n(26244),c=n(47908),s=n(65417),u=r("Map"),d=u.prototype,h=i(d.forEach),p=i(d.has),b=i(d.set),Z=i([].push);t.exports=function(t){var e,n,r,i=c(this),d=a(i),m=s(i,0),g=new u,y=l(t)?function(t){return t}:o(t);for(e=0;e<d;e++)r=y(n=i[e]),p(g,r)||b(g,r,n);return h(g,(function(t){Z(m,t)})),m}},28091:(t,e,n)=>{"use strict";var r=n(46916),i=n(19670),o=n(70030),l=n(58173),a=n(89190),c=n(29909),s=n(35005),u=n(66462),d=n(76178),h=s("Promise"),p="AsyncFromSyncIterator",b=c.set,Z=c.getterFor(p),m=function(t,e,n){var r=t.done;h.resolve(t.value).then((function(t){e(d(t,r))}),n)},g=function(t){t.type=p,b(this,t)};g.prototype=a(o(u),{next:function(){var t=Z(this);return new h((function(e,n){var o=i(r(t.next,t.iterator));m(o,e,n)}))},return:function(){var t=Z(this).iterator;return new h((function(e,n){var o=l(t,"return");if(void 0===o)return e(d(void 0,!0));var a=i(r(o,t));m(a,e,n)}))}}),t.exports=g},21753:(t,e,n)=>{var r=n(46916),i=n(35005),o=n(58173);t.exports=function(t,e,n,l){try{var a=o(t,"return");if(a)return i("Promise").resolve(r(a,t)).then((function(){e(n)}),(function(t){l(t)}))}catch(t){return l(t)}e(n)}},45348:(t,e,n)=>{"use strict";var r=n(46916),i=n(12534),o=n(19670),l=n(70030),a=n(68880),c=n(89190),s=n(5112),u=n(29909),d=n(35005),h=n(58173),p=n(66462),b=n(76178),Z=n(99212),m=d("Promise"),g="AsyncIteratorHelper",y="WrapForValidAsyncIterator",f=u.set,I=s("toStringTag"),G=function(t){var e=!t,n=t?y:g,s=u.getterFor(n),d=function(t){var n=i((function(){return s(t)})),r=n.error,o=n.value;return r||e&&o.done?{exit:!0,value:r?m.reject(o):m.resolve(b(void 0,!0))}:{exit:!1,value:o}},f=function(t,n){var r=function(){var r=n();if(e){t.awaiting=r;var i=function(){t.awaiting===r&&(t.awaiting=null)};r.then(i,i)}return r};return t.awaiting?t.awaiting=t.awaiting.then(r,r):r()},G=c(l(p),{next:function(){var t=d(this),e=t.exit,n=t.value;return e?n:f(n,(function(){var t=i((function(){return o(n.nextHandler(m))})),e=t.error,r=t.value;return e&&(n.done=!0),e?m.reject(r):m.resolve(r)}))},return:function(){var e=d(this),n=e.exit,l=e.value;return n?l:f(l,(function(){l.done=!0;var e,n,a=l.iterator,c=i((function(){if(l.inner)try{Z(l.inner.iterator,"return")}catch(t){return Z(a,"throw",t)}return h(a,"return")}));return e=n=c.value,c.error?m.reject(n):void 0===e?m.resolve(b(void 0,!0)):(n=(c=i((function(){return r(e,a)}))).value,c.error?m.reject(n):t?m.resolve(n):m.resolve(n).then((function(t){return o(t),b(void 0,!0)})))}))}});return e&&a(G,I,"Async Iterator Helper"),G},X=G(!1),v=G(!0);t.exports=function(t,e){var n=e?y:g,r=function(e,r){r?(r.iterator=e.iterator,r.next=e.next):r=e,r.type=n,r.nextHandler=t,r.counter=0,r.done=!1,r.awaiting=null,f(this,r)};return r.prototype=e?v:X,r}},47520:(t,e,n)=>{"use strict";var r=n(46916),i=n(19670),o=n(24942),l=n(45348),a=n(76178),c=l((function(t){var e=this,n=e.iterator;return t.resolve(i(r(e.next,n))).then((function(t){return i(t).done?(e.done=!0,a(void 0,!0)):a([e.index++,t.value],!1)})).then(null,(function(t){throw e.done=!0,t}))}));t.exports=function(){return new c(o(this),{index:0})}},12269:(t,e,n)=>{"use strict";var r=n(46916),i=n(19662),o=n(19670),l=n(70111),a=n(7207),c=n(35005),s=n(24942),u=n(21753),d=function(t){var e=0==t,n=1==t,d=2==t,h=3==t;return function(t,p,b){var Z=s(t),m=c("Promise"),g=Z.iterator,y=Z.next,f=0,I=void 0!==p;return!I&&e||i(p),new m((function(t,i){var c=function(t){u(g,i,t,i)},s=function(){try{if(I)try{a(f)}catch(t){c(t)}m.resolve(o(r(y,g))).then((function(r){try{if(o(r).done)e?(b.length=f,t(b)):t(!h&&(d||void 0));else{var a=r.value;try{if(I){var Z=p(a,f),y=function(r){if(n)s();else if(d)r?s():u(g,t,!1,i);else if(e)try{b[f++]=r,s()}catch(t){c(t)}else r?u(g,t,h||a,i):s()};l(Z)?m.resolve(Z).then(y,c):y(Z)}else b[f++]=a,s()}catch(t){c(t)}}}catch(t){i(t)}}),i)}catch(t){i(t)}};s()}))}};t.exports={toArray:d(0),forEach:d(1),every:d(2),some:d(3),find:d(4)}},66462:(t,e,n)=>{var r,i,o=n(17854),l=n(5465),a=n(60614),c=n(70030),s=n(79518),u=n(98052),d=n(5112),h=n(31913),p="USE_FUNCTION_CONSTRUCTOR",b=d("asyncIterator"),Z=o.AsyncIterator,m=l.AsyncIteratorPrototype;if(m)r=m;else if(a(Z))r=Z.prototype;else if(l[p]||o[p])try{i=s(s(s(Function("return async function*(){}()")()))),s(i)===Object.prototype&&(r=i)}catch(t){}r?h&&(r=c(r)):r={},a(r[b])||u(r,b,(function(){return this})),t.exports=r},86221:(t,e,n)=>{var r=n(46916),i=n(45348);t.exports=i((function(){return r(this.next,this.iterator)}),!0)},53411:(t,e,n)=>{var r=n(19670),i=n(99212);t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(e){i(t,"throw",e)}}},17072:(t,e,n)=>{var r=n(5112)("iterator"),i=!1;try{var o=0,l={next:function(){return{done:!!o++}},return:function(){i=!0}};l[r]=function(){return this},Array.from(l,(function(){throw 2}))}catch(t){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var o={};o[r]=function(){return{next:function(){return{done:n=!0}}}},t(o)}catch(t){}return n}},84326:(t,e,n)=>{var r=n(1702),i=r({}.toString),o=r("".slice);t.exports=function(t){return o(i(t),8,-1)}},70648:(t,e,n)=>{var r=n(51694),i=n(60614),o=n(84326),l=n(5112)("toStringTag"),a=Object,c="Arguments"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=a(t),l))?n:c?o(e):"Object"==(r=o(e))&&i(e.callee)?"Arguments":r}},31501:(t,e,n)=>{"use strict";var r=n(46916),i=n(19662),o=n(19670);t.exports=function(){for(var t=o(this),e=i(t.add),n=0,l=arguments.length;n<l;n++)r(e,t,arguments[n]);return t}},34092:(t,e,n)=>{"use strict";var r=n(46916),i=n(19662),o=n(19670);t.exports=function(){for(var t,e=o(this),n=i(e.delete),l=!0,a=0,c=arguments.length;a<c;a++)t=r(n,e,arguments[a]),l=l&&t;return!!l}},27296:(t,e,n)=>{"use strict";var r=n(49974),i=n(46916),o=n(19662),l=n(39483),a=n(68554),c=n(20408),s=[].push;t.exports=function(t){var e,n,u,d,h=arguments.length,p=h>1?arguments[1]:void 0;return l(this),(e=void 0!==p)&&o(p),a(t)?new this:(n=[],e?(u=0,d=r(p,h>2?arguments[2]:void 0),c(t,(function(t){i(s,n,d(t,u++))}))):c(t,s,{that:n}),new this(n))}},82044:(t,e,n)=>{"use strict";var r=n(50206);t.exports=function(){return new this(r(arguments))}},95631:(t,e,n)=>{"use strict";var r=n(3070).f,i=n(70030),o=n(89190),l=n(49974),a=n(25787),c=n(68554),s=n(20408),u=n(51656),d=n(76178),h=n(96340),p=n(19781),b=n(62423).fastKey,Z=n(29909),m=Z.set,g=Z.getterFor;t.exports={getConstructor:function(t,e,n,u){var d=t((function(t,r){a(t,h),m(t,{type:e,index:i(null),first:void 0,last:void 0,size:0}),p||(t.size=0),c(r)||s(r,t[u],{that:t,AS_ENTRIES:n})})),h=d.prototype,Z=g(e),y=function(t,e,n){var r,i,o=Z(t),l=f(t,e);return l?l.value=n:(o.last=l={index:i=b(e,!0),key:e,value:n,previous:r=o.last,next:void 0,removed:!1},o.first||(o.first=l),r&&(r.next=l),p?o.size++:t.size++,"F"!==i&&(o.index[i]=l)),t},f=function(t,e){var n,r=Z(t),i=b(e);if("F"!==i)return r.index[i];for(n=r.first;n;n=n.next)if(n.key==e)return n};return o(h,{clear:function(){for(var t=Z(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,p?t.size=0:this.size=0},delete:function(t){var e=this,n=Z(e),r=f(e,t);if(r){var i=r.next,o=r.previous;delete n.index[r.index],r.removed=!0,o&&(o.next=i),i&&(i.previous=o),n.first==r&&(n.first=i),n.last==r&&(n.last=o),p?n.size--:e.size--}return!!r},forEach:function(t){for(var e,n=Z(this),r=l(t,arguments.length>1?arguments[1]:void 0);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!f(this,t)}}),o(h,n?{get:function(t){var e=f(this,t);return e&&e.value},set:function(t,e){return y(this,0===t?0:t,e)}}:{add:function(t){return y(this,t=0===t?0:t,t)}}),p&&r(h,"size",{get:function(){return Z(this).size}}),d},setStrong:function(t,e,n){var r=e+" Iterator",i=g(e),o=g(r);u(t,e,(function(t,e){m(this,{type:r,target:t,state:i(t),kind:e,last:void 0})}),(function(){for(var t=o(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?d("keys"==e?n.key:"values"==e?n.value:[n.key,n.value],!1):(t.target=void 0,d(void 0,!0))}),n?"entries":"values",!n,!0),h(e)}}},29320:(t,e,n)=>{"use strict";var r=n(1702),i=n(89190),o=n(62423).getWeakData,l=n(25787),a=n(19670),c=n(68554),s=n(70111),u=n(20408),d=n(42092),h=n(92597),p=n(29909),b=p.set,Z=p.getterFor,m=d.find,g=d.findIndex,y=r([].splice),f=0,I=function(t){return t.frozen||(t.frozen=new G)},G=function(){this.entries=[]},X=function(t,e){return m(t.entries,(function(t){return t[0]===e}))};G.prototype={get:function(t){var e=X(this,t);if(e)return e[1]},has:function(t){return!!X(this,t)},set:function(t,e){var n=X(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=g(this.entries,(function(e){return e[0]===t}));return~e&&y(this.entries,e,1),!!~e}},t.exports={getConstructor:function(t,e,n,r){var d=t((function(t,i){l(t,p),b(t,{type:e,id:f++,frozen:void 0}),c(i)||u(i,t[r],{that:t,AS_ENTRIES:n})})),p=d.prototype,m=Z(e),g=function(t,e,n){var r=m(t),i=o(a(e),!0);return!0===i?I(r).set(e,n):i[r.id]=n,t};return i(p,{delete:function(t){var e=m(this);if(!s(t))return!1;var n=o(t);return!0===n?I(e).delete(t):n&&h(n,e.id)&&delete n[e.id]},has:function(t){var e=m(this);if(!s(t))return!1;var n=o(t);return!0===n?I(e).has(t):n&&h(n,e.id)}}),i(p,n?{get:function(t){var e=m(this);if(s(t)){var n=o(t);return!0===n?I(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return g(this,t,e)}}:{add:function(t){return g(this,t,!0)}}),d}}},77710:(t,e,n)=>{"use strict";var r=n(82109),i=n(17854),o=n(1702),l=n(54705),a=n(98052),c=n(62423),s=n(20408),u=n(25787),d=n(60614),h=n(68554),p=n(70111),b=n(47293),Z=n(17072),m=n(58003),g=n(79587);t.exports=function(t,e,n){var y=-1!==t.indexOf("Map"),f=-1!==t.indexOf("Weak"),I=y?"set":"add",G=i[t],X=G&&G.prototype,v=G,V={},W=function(t){var e=o(X[t]);a(X,t,"add"==t?function(t){return e(this,0===t?0:t),this}:"delete"==t?function(t){return!(f&&!p(t))&&e(this,0===t?0:t)}:"get"==t?function(t){return f&&!p(t)?void 0:e(this,0===t?0:t)}:"has"==t?function(t){return!(f&&!p(t))&&e(this,0===t?0:t)}:function(t,n){return e(this,0===t?0:t,n),this})};if(l(t,!d(G)||!(f||X.forEach&&!b((function(){(new G).entries().next()})))))v=n.getConstructor(e,t,y,I),c.enable();else if(l(t,!0)){var R=new v,S=R[I](f?{}:-0,1)!=R,C=b((function(){R.has(1)})),Y=Z((function(t){new G(t)})),K=!f&&b((function(){for(var t=new G,e=5;e--;)t[I](e,e);return!t.has(-0)}));Y||((v=e((function(t,e){u(t,X);var n=g(new G,t,v);return h(e)||s(e,n[I],{that:n,AS_ENTRIES:y}),n}))).prototype=X,X.constructor=v),(C||K)&&(W("delete"),W("has"),y&&W("get")),(K||S)&&W(I),f&&X.clear&&delete X.clear}return V[t]=v,r({global:!0,constructor:!0,forced:v!=G},V),m(v,t),f||n.setStrong(v,t,y),v}},10313:(t,e,n)=>{n(51532),n(4129);var r=n(35005),i=n(70030),o=n(70111),l=Object,a=TypeError,c=r("Map"),s=r("WeakMap"),u=function(){this.object=null,this.symbol=null,this.primitives=null,this.objectsByIndex=i(null)};u.prototype.get=function(t,e){return this[t]||(this[t]=e())},u.prototype.next=function(t,e,n){var r=n?this.objectsByIndex[t]||(this.objectsByIndex[t]=new s):this.primitives||(this.primitives=new c),i=r.get(e);return i||r.set(e,i=new u),i};var d=new u;t.exports=function(){var t,e,n=d,r=arguments.length;for(t=0;t<r;t++)o(e=arguments[t])&&(n=n.next(t,e,!0));if(this===l&&n===d)throw a("Composite keys must contain a non-primitive component");for(t=0;t<r;t++)o(e=arguments[t])||(n=n.next(t,e,!1));return n}},99920:(t,e,n)=>{var r=n(92597),i=n(53887),o=n(31236),l=n(3070);t.exports=function(t,e,n){for(var a=i(e),c=l.f,s=o.f,u=0;u<a.length;u++){var d=a[u];r(t,d)||n&&r(n,d)||c(t,d,s(e,d))}}},84964:(t,e,n)=>{var r=n(5112)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,"/./"[t](e)}catch(t){}}return!1}},49920:(t,e,n)=>{var r=n(47293);t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},14230:(t,e,n)=>{var r=n(1702),i=n(84488),o=n(41340),l=/"/g,a=r("".replace);t.exports=function(t,e,n,r){var c=o(i(t)),s="<"+e;return""!==n&&(s+=" "+n+'="'+a(o(r),l,""")+'"'),s+">"+c+"</"+e+">"}},76178:t=>{t.exports=function(t,e){return{value:t,done:e}}},68880:(t,e,n)=>{var r=n(19781),i=n(3070),o=n(79114);t.exports=r?function(t,e,n){return i.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},79114:t=>{t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},86135:(t,e,n)=>{"use strict";var r=n(34948),i=n(3070),o=n(79114);t.exports=function(t,e,n){var l=r(e);l in t?i.f(t,l,o(0,n)):t[l]=n}},85573:(t,e,n)=>{"use strict";var r=n(1702),i=n(47293),o=n(76650).start,l=RangeError,a=isFinite,c=Math.abs,s=Date.prototype,u=s.toISOString,d=r(s.getTime),h=r(s.getUTCDate),p=r(s.getUTCFullYear),b=r(s.getUTCHours),Z=r(s.getUTCMilliseconds),m=r(s.getUTCMinutes),g=r(s.getUTCMonth),y=r(s.getUTCSeconds);t.exports=i((function(){return"0385-07-25T07:06:39.999Z"!=u.call(new Date(-50000000000001))}))||!i((function(){u.call(new Date(NaN))}))?function(){if(!a(d(this)))throw l("Invalid time value");var t=this,e=p(t),n=Z(t),r=e<0?"-":e>9999?"+":"";return r+o(c(e),r?6:4,0)+"-"+o(g(t)+1,2,0)+"-"+o(h(t),2,0)+"T"+o(b(t),2,0)+":"+o(m(t),2,0)+":"+o(y(t),2,0)+"."+o(n,3,0)+"Z"}:u},38709:(t,e,n)=>{"use strict";var r=n(19670),i=n(92140),o=TypeError;t.exports=function(t){if(r(this),"string"===t||"default"===t)t="string";else if("number"!==t)throw o("Incorrect hint");return i(this,t)}},47045:(t,e,n)=>{var r=n(56339),i=n(3070);t.exports=function(t,e,n){return n.get&&r(n.get,e,{getter:!0}),n.set&&r(n.set,e,{setter:!0}),i.f(t,e,n)}},98052:(t,e,n)=>{var r=n(60614),i=n(3070),o=n(56339),l=n(13072);t.exports=function(t,e,n,a){a||(a={});var c=a.enumerable,s=void 0!==a.name?a.name:e;if(r(n)&&o(n,s,a),a.global)c?t[e]=n:l(e,n);else{try{a.unsafe?t[e]&&(c=!0):delete t[e]}catch(t){}c?t[e]=n:i.f(t,e,{value:n,enumerable:!1,configurable:!a.nonConfigurable,writable:!a.nonWritable})}return t}},89190:(t,e,n)=>{var r=n(98052);t.exports=function(t,e,n){for(var i in e)r(t,i,e[i],n);return t}},13072:(t,e,n)=>{var r=n(17854),i=Object.defineProperty;t.exports=function(t,e){try{i(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},85117:(t,e,n)=>{"use strict";var r=n(66330),i=TypeError;t.exports=function(t,e){if(!delete t[e])throw i("Cannot delete property "+r(e)+" of "+r(t))}},19781:(t,e,n)=>{var r=n(47293);t.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},4154:t=>{var e="object"==typeof document&&document.all,n=void 0===e&&void 0!==e;t.exports={all:e,IS_HTMLDDA:n}},80317:(t,e,n)=>{var r=n(17854),i=n(70111),o=r.document,l=i(o)&&i(o.createElement);t.exports=function(t){return l?o.createElement(t):{}}},7207:t=>{var e=TypeError;t.exports=function(t){if(t>9007199254740991)throw e("Maximum allowed index exceeded");return t}},48324:t=>{t.exports={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}},98509:(t,e,n)=>{var r=n(80317)("span").classList,i=r&&r.constructor&&r.constructor.prototype;t.exports=i===Object.prototype?void 0:i},68886:(t,e,n)=>{var r=n(88113).match(/firefox\/(\d+)/i);t.exports=!!r&&+r[1]},7871:(t,e,n)=>{var r=n(83823),i=n(35268);t.exports=!r&&!i&&"object"==typeof window&&"object"==typeof document},83823:t=>{t.exports="object"==typeof Deno&&Deno&&"object"==typeof Deno.version},30256:(t,e,n)=>{var r=n(88113);t.exports=/MSIE|Trident/.test(r)},71528:(t,e,n)=>{var r=n(88113),i=n(17854);t.exports=/ipad|iphone|ipod/i.test(r)&&void 0!==i.Pebble},6833:(t,e,n)=>{var r=n(88113);t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(r)},35268:(t,e,n)=>{var r=n(84326),i=n(17854);t.exports="process"==r(i.process)},71036:(t,e,n)=>{var r=n(88113);t.exports=/web0s(?!.*chrome)/i.test(r)},88113:(t,e,n)=>{var r=n(35005);t.exports=r("navigator","userAgent")||""},7392:(t,e,n)=>{var r,i,o=n(17854),l=n(88113),a=o.process,c=o.Deno,s=a&&a.versions||c&&c.version,u=s&&s.v8;u&&(i=(r=u.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!i&&l&&(!(r=l.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=l.match(/Chrome\/(\d+)/))&&(i=+r[1]),t.exports=i},98008:(t,e,n)=>{var r=n(88113).match(/AppleWebKit\/(\d+)\./);t.exports=!!r&&+r[1]},80748:t=>{t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},11060:(t,e,n)=>{var r=n(1702),i=Error,o=r("".replace),l=String(i("zxcasd").stack),a=/\n\s*at [^:]*:[^\n]*/,c=a.test(l);t.exports=function(t,e){if(c&&"string"==typeof t&&!i.prepareStackTrace)for(;e--;)t=o(t,a,"");return t}},22914:(t,e,n)=>{var r=n(47293),i=n(79114);t.exports=!r((function(){var t=Error("a");return!("stack"in t)||(Object.defineProperty(t,"stack",i(1,7)),7!==t.stack)}))},82109:(t,e,n)=>{var r=n(17854),i=n(31236).f,o=n(68880),l=n(98052),a=n(13072),c=n(99920),s=n(54705);t.exports=function(t,e){var n,u,d,h,p,b=t.target,Z=t.global,m=t.stat;if(n=Z?r:m?r[b]||a(b,{}):(r[b]||{}).prototype)for(u in e){if(h=e[u],d=t.dontCallGetSet?(p=i(n,u))&&p.value:n[u],!s(Z?u:b+(m?".":"#")+u,t.forced)&&void 0!==d){if(typeof h==typeof d)continue;c(h,d)}(t.sham||d&&d.sham)&&o(h,"sham",!0),l(n,u,h,t)}}},47293:t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},27007:(t,e,n)=>{"use strict";n(74916);var r=n(21470),i=n(98052),o=n(22261),l=n(47293),a=n(5112),c=n(68880),s=a("species"),u=RegExp.prototype;t.exports=function(t,e,n,d){var h=a(t),p=!l((function(){var e={};return e[h]=function(){return 7},7!=""[t](e)})),b=p&&!l((function(){var e=!1,n=/a/;return"split"===t&&((n={}).constructor={},n.constructor[s]=function(){return n},n.flags="",n[h]=/./[h]),n.exec=function(){return e=!0,null},n[h](""),!e}));if(!p||!b||n){var Z=r(/./[h]),m=e(h,""[t],(function(t,e,n,i,l){var a=r(t),c=e.exec;return c===o||c===u.exec?p&&!l?{done:!0,value:Z(e,n,i)}:{done:!0,value:a(n,e,i)}:{done:!1}}));i(String.prototype,t,m[0]),i(u,h,m[1])}d&&c(u[h],"sham",!0)}},6790:(t,e,n)=>{"use strict";var r=n(43157),i=n(26244),o=n(7207),l=n(49974),a=function(t,e,n,c,s,u,d,h){for(var p,b,Z=s,m=0,g=!!d&&l(d,h);m<c;)m in n&&(p=g?g(n[m],m,e):n[m],u>0&&r(p)?(b=i(p),Z=a(t,e,p,b,Z,u-1)-1):(o(Z+1),t[Z]=p),Z++),m++;return Z};t.exports=a},76677:(t,e,n)=>{var r=n(47293);t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},22104:(t,e,n)=>{var r=n(34374),i=Function.prototype,o=i.apply,l=i.call;t.exports="object"==typeof Reflect&&Reflect.apply||(r?l.bind(o):function(){return l.apply(o,arguments)})},49974:(t,e,n)=>{var r=n(21470),i=n(19662),o=n(34374),l=r(r.bind);t.exports=function(t,e){return i(t),void 0===e?t:o?l(t,e):function(){return t.apply(e,arguments)}}},34374:(t,e,n)=>{var r=n(47293);t.exports=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},27065:(t,e,n)=>{"use strict";var r=n(1702),i=n(19662),o=n(70111),l=n(92597),a=n(50206),c=n(34374),s=Function,u=r([].concat),d=r([].join),h={},p=function(t,e,n){if(!l(h,e)){for(var r=[],i=0;i<e;i++)r[i]="a["+i+"]";h[e]=s("C,a","return new C("+d(r,",")+")")}return h[e](t,n)};t.exports=c?s.bind:function(t){var e=i(this),n=e.prototype,r=a(arguments,1),l=function(){var n=u(r,a(arguments));return this instanceof l?p(e,n.length,n):e.apply(t,n)};return o(n)&&(l.prototype=n),l}},46916:(t,e,n)=>{var r=n(34374),i=Function.prototype.call;t.exports=r?i.bind(i):function(){return i.apply(i,arguments)}},76530:(t,e,n)=>{var r=n(19781),i=n(92597),o=Function.prototype,l=r&&Object.getOwnPropertyDescriptor,a=i(o,"name"),c=a&&"something"===function(){}.name,s=a&&(!r||r&&l(o,"name").configurable);t.exports={EXISTS:a,PROPER:c,CONFIGURABLE:s}},21470:(t,e,n)=>{var r=n(84326),i=n(1702);t.exports=function(t){if("Function"===r(t))return i(t)}},1702:(t,e,n)=>{var r=n(34374),i=Function.prototype,o=i.call,l=r&&i.bind.bind(o,o);t.exports=r?l:function(t){return function(){return o.apply(t,arguments)}}},62617:(t,e,n)=>{var r=n(46916),i=n(60614),o=n(47908),l=n(24942),a=n(71246),c=n(58173),s=n(5112),u=n(28091),d=s("asyncIterator");t.exports=function(t){var e,n=o(t),s=!0,h=c(n,d);return i(h)||(h=a(n),s=!1),i(h)?e=r(h,n):(e=n,s=!0),l(s?e:new u(l(e)))}},35005:(t,e,n)=>{var r=n(17854),i=n(60614),o=function(t){return i(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?o(r[t]):r[t]&&r[t][e]}},24942:(t,e,n)=>{var r=n(19662),i=n(19670);t.exports=function(t){return{iterator:t,next:r(i(t).next)}}},72897:(t,e,n)=>{var r=n(46916),i=n(60614),o=n(47908),l=n(24942),a=n(71246);t.exports=function(t){var e=o(t),n=a(e);return l(i(n)?r(n,e):e)}},71246:(t,e,n)=>{var r=n(70648),i=n(58173),o=n(68554),l=n(97497),a=n(5112)("iterator");t.exports=function(t){if(!o(t))return i(t,a)||i(t,"@@iterator")||l[r(t)]}},18554:(t,e,n)=>{var r=n(46916),i=n(19662),o=n(19670),l=n(66330),a=n(71246),c=TypeError;t.exports=function(t,e){var n=arguments.length<2?a(t):e;if(i(n))return o(r(n,t));throw c(l(t)+" is not iterable")}},54647:(t,e,n)=>{var r=n(46916);t.exports=function(t){return r(Map.prototype.entries,t)}},58173:(t,e,n)=>{var r=n(19662),i=n(68554);t.exports=function(t,e){var n=t[e];return i(n)?void 0:r(n)}},96767:(t,e,n)=>{var r=n(46916);t.exports=function(t){return r(Set.prototype.values,t)}},10647:(t,e,n)=>{var r=n(1702),i=n(47908),o=Math.floor,l=r("".charAt),a=r("".replace),c=r("".slice),s=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,u=/\$([$&'`]|\d{1,2})/g;t.exports=function(t,e,n,r,d,h){var p=n+t.length,b=r.length,Z=u;return void 0!==d&&(d=i(d),Z=s),a(h,Z,(function(i,a){var s;switch(l(a,0)){case"$":return"$";case"&":return t;case"`":return c(e,0,n);case"'":return c(e,p);case"<":s=d[c(a,1,-1)];break;default:var u=+a;if(0===u)return i;if(u>b){var h=o(u/10);return 0===h?i:h<=b?void 0===r[h-1]?l(a,1):r[h-1]+l(a,1):i}s=r[u-1]}return void 0===s?"":s}))}},17854:(t,e,n)=>{var r=function(t){return t&&t.Math==Math&&t};t.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},92597:(t,e,n)=>{var r=n(1702),i=n(47908),o=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return o(i(t),e)}},3501:t=>{t.exports={}},842:(t,e,n)=>{var r=n(17854);t.exports=function(t,e){var n=r.console;n&&n.error&&(1==arguments.length?n.error(t):n.error(t,e))}},60490:(t,e,n)=>{var r=n(35005);t.exports=r("document","documentElement")},64664:(t,e,n)=>{var r=n(19781),i=n(47293),o=n(80317);t.exports=!r&&!i((function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},11179:t=>{var e=Array,n=Math.abs,r=Math.pow,i=Math.floor,o=Math.log,l=Math.LN2;t.exports={pack:function(t,a,c){var s,u,d,h=e(c),p=8*c-a-1,b=(1<<p)-1,Z=b>>1,m=23===a?r(2,-24)-r(2,-77):0,g=t<0||0===t&&1/t<0?1:0,y=0;for((t=n(t))!=t||t===1/0?(u=t!=t?1:0,s=b):(s=i(o(t)/l),t*(d=r(2,-s))<1&&(s--,d*=2),(t+=s+Z>=1?m/d:m*r(2,1-Z))*d>=2&&(s++,d/=2),s+Z>=b?(u=0,s=b):s+Z>=1?(u=(t*d-1)*r(2,a),s+=Z):(u=t*r(2,Z-1)*r(2,a),s=0));a>=8;)h[y++]=255&u,u/=256,a-=8;for(s=s<<a|u,p+=a;p>0;)h[y++]=255&s,s/=256,p-=8;return h[--y]|=128*g,h},unpack:function(t,e){var n,i=t.length,o=8*i-e-1,l=(1<<o)-1,a=l>>1,c=o-7,s=i-1,u=t[s--],d=127&u;for(u>>=7;c>0;)d=256*d+t[s--],c-=8;for(n=d&(1<<-c)-1,d>>=-c,c+=e;c>0;)n=256*n+t[s--],c-=8;if(0===d)d=1-a;else{if(d===l)return n?NaN:u?-1/0:1/0;n+=r(2,e),d-=a}return(u?-1:1)*n*r(2,d-e)}}},68361:(t,e,n)=>{var r=n(1702),i=n(47293),o=n(84326),l=Object,a=r("".split);t.exports=i((function(){return!l("z").propertyIsEnumerable(0)}))?function(t){return"String"==o(t)?a(t,""):l(t)}:l},79587:(t,e,n)=>{var r=n(60614),i=n(70111),o=n(27674);t.exports=function(t,e,n){var l,a;return o&&r(l=e.constructor)&&l!==n&&i(a=l.prototype)&&a!==n.prototype&&o(t,a),t}},42788:(t,e,n)=>{var r=n(1702),i=n(60614),o=n(5465),l=r(Function.toString);i(o.inspectSource)||(o.inspectSource=function(t){return l(t)}),t.exports=o.inspectSource},58340:(t,e,n)=>{var r=n(70111),i=n(68880);t.exports=function(t,e){r(e)&&"cause"in e&&i(t,"cause",e.cause)}},62423:(t,e,n)=>{var r=n(82109),i=n(1702),o=n(3501),l=n(70111),a=n(92597),c=n(3070).f,s=n(8006),u=n(1156),d=n(52050),h=n(69711),p=n(76677),b=!1,Z=h("meta"),m=0,g=function(t){c(t,Z,{value:{objectID:"O"+m++,weakData:{}}})},y=t.exports={enable:function(){y.enable=function(){},b=!0;var t=s.f,e=i([].splice),n={};n[Z]=1,t(n).length&&(s.f=function(n){for(var r=t(n),i=0,o=r.length;i<o;i++)if(r[i]===Z){e(r,i,1);break}return r},r({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:u.f}))},fastKey:function(t,e){if(!l(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!a(t,Z)){if(!d(t))return"F";if(!e)return"E";g(t)}return t[Z].objectID},getWeakData:function(t,e){if(!a(t,Z)){if(!d(t))return!0;if(!e)return!1;g(t)}return t[Z].weakData},onFreeze:function(t){return p&&b&&d(t)&&!a(t,Z)&&g(t),t}};o[Z]=!0},29909:(t,e,n)=>{var r,i,o,l=n(94811),a=n(17854),c=n(70111),s=n(68880),u=n(92597),d=n(5465),h=n(6200),p=n(3501),b="Object already initialized",Z=a.TypeError,m=a.WeakMap;if(l||d.state){var g=d.state||(d.state=new m);g.get=g.get,g.has=g.has,g.set=g.set,r=function(t,e){if(g.has(t))throw Z(b);return e.facade=t,g.set(t,e),e},i=function(t){return g.get(t)||{}},o=function(t){return g.has(t)}}else{var y=h("state");p[y]=!0,r=function(t,e){if(u(t,y))throw Z(b);return e.facade=t,s(t,y,e),e},i=function(t){return u(t,y)?t[y]:{}},o=function(t){return u(t,y)}}t.exports={set:r,get:i,has:o,enforce:function(t){return o(t)?i(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=i(e)).type!==t)throw Z("Incompatible receiver, "+t+" required");return n}}}},97659:(t,e,n)=>{var r=n(5112),i=n(97497),o=r("iterator"),l=Array.prototype;t.exports=function(t){return void 0!==t&&(i.Array===t||l[o]===t)}},43157:(t,e,n)=>{var r=n(84326);t.exports=Array.isArray||function(t){return"Array"==r(t)}},44067:(t,e,n)=>{var r=n(70648),i=n(1702)("".slice);t.exports=function(t){return"Big"===i(r(t),0,3)}},60614:(t,e,n)=>{var r=n(4154),i=r.all;t.exports=r.IS_HTMLDDA?function(t){return"function"==typeof t||t===i}:function(t){return"function"==typeof t}},4411:(t,e,n)=>{var r=n(1702),i=n(47293),o=n(60614),l=n(70648),a=n(35005),c=n(42788),s=function(){},u=[],d=a("Reflect","construct"),h=/^\s*(?:class|function)\b/,p=r(h.exec),b=!h.exec(s),Z=function(t){if(!o(t))return!1;try{return d(s,u,t),!0}catch(t){return!1}},m=function(t){if(!o(t))return!1;switch(l(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return b||!!p(h,c(t))}catch(t){return!0}};m.sham=!0,t.exports=!d||i((function(){var t;return Z(Z.call)||!Z(Object)||!Z((function(){t=!0}))||t}))?m:Z},45032:(t,e,n)=>{var r=n(92597);t.exports=function(t){return void 0!==t&&(r(t,"value")||r(t,"writable"))}},54705:(t,e,n)=>{var r=n(47293),i=n(60614),o=/#|\.prototype\./,l=function(t,e){var n=c[a(t)];return n==u||n!=s&&(i(e)?r(e):!!e)},a=l.normalize=function(t){return String(t).replace(o,".").toLowerCase()},c=l.data={},s=l.NATIVE="N",u=l.POLYFILL="P";t.exports=l},55988:(t,e,n)=>{var r=n(70111),i=Math.floor;t.exports=Number.isInteger||function(t){return!r(t)&&isFinite(t)&&i(t)===t}},68554:t=>{t.exports=function(t){return null==t}},70111:(t,e,n)=>{var r=n(60614),i=n(4154),o=i.all;t.exports=i.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:r(t)||t===o}:function(t){return"object"==typeof t?null!==t:r(t)}},31913:t=>{t.exports=!1},47850:(t,e,n)=>{var r=n(70111),i=n(84326),o=n(5112)("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[o])?!!e:"RegExp"==i(t))}},52190:(t,e,n)=>{var r=n(35005),i=n(60614),o=n(47976),l=n(43307),a=Object;t.exports=l?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return i(e)&&o(e.prototype,a(t))}},20408:(t,e,n)=>{var r=n(49974),i=n(46916),o=n(19670),l=n(66330),a=n(97659),c=n(26244),s=n(47976),u=n(18554),d=n(71246),h=n(99212),p=TypeError,b=function(t,e){this.stopped=t,this.result=e},Z=b.prototype;t.exports=function(t,e,n){var m,g,y,f,I,G,X,v=n&&n.that,V=!(!n||!n.AS_ENTRIES),W=!(!n||!n.IS_RECORD),R=!(!n||!n.IS_ITERATOR),S=!(!n||!n.INTERRUPTED),C=r(e,v),Y=function(t){return m&&h(m,"normal",t),new b(!0,t)},K=function(t){return V?(o(t),S?C(t[0],t[1],Y):C(t[0],t[1])):S?C(t,Y):C(t)};if(W)m=t.iterator;else if(R)m=t;else{if(!(g=d(t)))throw p(l(t)+" is not iterable");if(a(g)){for(y=0,f=c(t);f>y;y++)if((I=K(t[y]))&&s(Z,I))return I;return new b(!1)}m=u(t,g)}for(G=W?t.next:m.next;!(X=i(G,m)).done;){try{I=K(X.value)}catch(t){h(m,"throw",t)}if("object"==typeof I&&I&&s(Z,I))return I}return new b(!1)}},99212:(t,e,n)=>{var r=n(46916),i=n(19670),o=n(58173);t.exports=function(t,e,n){var l,a;i(t);try{if(!(l=o(t,"return"))){if("throw"===e)throw n;return n}l=r(l,t)}catch(t){a=!0,l=t}if("throw"===e)throw n;if(a)throw l;return i(l),n}},63061:(t,e,n)=>{"use strict";var r=n(13383).IteratorPrototype,i=n(70030),o=n(79114),l=n(58003),a=n(97497),c=function(){return this};t.exports=function(t,e,n,s){var u=e+" Iterator";return t.prototype=i(r,{next:o(+!s,n)}),l(t,u,!1,!0),a[u]=c,t}},54956:(t,e,n)=>{"use strict";var r=n(46916),i=n(70030),o=n(68880),l=n(89190),a=n(5112),c=n(29909),s=n(58173),u=n(13383).IteratorPrototype,d=n(76178),h=n(99212),p="IteratorHelper",b="WrapForValidIterator",Z=c.set,m=a("toStringTag"),g=function(t){var e=t?b:p,n=c.getterFor(e),a=l(i(u),{next:function(){var e=n(this);if(t)return e.nextHandler();try{var r=e.done?void 0:e.nextHandler();return d(r,e.done)}catch(t){throw e.done=!0,t}},return:function(){var e=n(this),i=e.iterator;if(e.done=!0,t){var o=s(i,"return");return o?r(o,i):d(void 0,!0)}if(e.inner)try{h(e.inner.iterator,"return")}catch(t){return h(i,"throw",t)}return h(i,"return"),d(void 0,!0)}});return t||o(a,m,"Iterator Helper"),a},y=g(!1),f=g(!0);t.exports=function(t,e){var n=e?b:p,r=function(e,r){r?(r.iterator=e.iterator,r.next=e.next):r=e,r.type=n,r.nextHandler=t,r.counter=0,r.done=!1,Z(this,r)};return r.prototype=e?f:y,r}},51656:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(31913),l=n(76530),a=n(60614),c=n(63061),s=n(79518),u=n(27674),d=n(58003),h=n(68880),p=n(98052),b=n(5112),Z=n(97497),m=n(13383),g=l.PROPER,y=l.CONFIGURABLE,f=m.IteratorPrototype,I=m.BUGGY_SAFARI_ITERATORS,G=b("iterator"),X="keys",v="values",V="entries",W=function(){return this};t.exports=function(t,e,n,l,b,m,R){c(n,e,l);var S,C,Y,K=function(t){if(t===b&&L)return L;if(!I&&t in J)return J[t];switch(t){case X:case v:case V:return function(){return new n(this,t)}}return function(){return new n(this)}},N=e+" Iterator",k=!1,J=t.prototype,T=J[G]||J["@@iterator"]||b&&J[b],L=!I&&T||K(b),x="Array"==e&&J.entries||T;if(x&&(S=s(x.call(new t)))!==Object.prototype&&S.next&&(o||s(S)===f||(u?u(S,f):a(S[G])||p(S,G,W)),d(S,N,!0,!0),o&&(Z[N]=W)),g&&b==v&&T&&T.name!==v&&(!o&&y?h(J,"name",v):(k=!0,L=function(){return i(T,this)})),b)if(C={values:K(v),keys:m?L:K(X),entries:K(V)},R)for(Y in C)(I||k||!(Y in J))&&p(J,Y,C[Y]);else r({target:e,proto:!0,forced:I||k},C);return o&&!R||J[G]===L||p(J,G,L,{name:b}),Z[e]=L,C}},14323:(t,e,n)=>{"use strict";var r=n(46916),i=n(19670),o=n(24942),l=n(54956)((function(){var t=i(r(this.next,this.iterator));if(!(this.done=!!t.done))return[this.index++,t.value]}));t.exports=function(){return new l(o(this),{index:0})}},13383:(t,e,n)=>{"use strict";var r,i,o,l=n(47293),a=n(60614),c=n(70111),s=n(70030),u=n(79518),d=n(98052),h=n(5112),p=n(31913),b=h("iterator"),Z=!1;[].keys&&("next"in(o=[].keys())?(i=u(u(o)))!==Object.prototype&&(r=i):Z=!0),!c(r)||l((function(){var t={};return r[b].call(t)!==t}))?r={}:p&&(r=s(r)),a(r[b])||d(r,b,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:Z}},97497:t=>{t.exports={}},26244:(t,e,n)=>{var r=n(17466);t.exports=function(t){return r(t.length)}},56339:(t,e,n)=>{var r=n(47293),i=n(60614),o=n(92597),l=n(19781),a=n(76530).CONFIGURABLE,c=n(42788),s=n(29909),u=s.enforce,d=s.get,h=Object.defineProperty,p=l&&!r((function(){return 8!==h((function(){}),"length",{value:8}).length})),b=String(String).split("String"),Z=t.exports=function(t,e,n){"Symbol("===String(e).slice(0,7)&&(e="["+String(e).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!o(t,"name")||a&&t.name!==e)&&(l?h(t,"name",{value:e,configurable:!0}):t.name=e),p&&n&&o(n,"arity")&&t.length!==n.arity&&h(t,"length",{value:n.arity});try{n&&o(n,"constructor")&&n.constructor?l&&h(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=u(t);return o(r,"source")||(r.source=b.join("string"==typeof e?e:"")),t};Function.prototype.toString=Z((function(){return i(this)&&d(this).source||c(this)}),"toString")},8154:(t,e,n)=>{"use strict";var r=n(46916),i=n(19662),o=n(60614),l=n(19670),a=TypeError;t.exports=function(t,e){var n,c=l(this),s=i(c.get),u=i(c.has),d=i(c.set),h=arguments.length>2?arguments[2]:void 0;if(!o(e)&&!o(h))throw a("At least one callback required");return r(u,c,t)?(n=r(s,c,t),o(e)&&(n=e(n),r(d,c,t,n))):o(h)&&(n=h(),r(d,c,t,n)),n}},66736:t=>{var e=Math.expm1,n=Math.exp;t.exports=!e||e(10)>22025.465794806718||e(10)<22025.465794806718||-2e-17!=e(-2e-17)?function(t){var e=+t;return 0==e?e:e>-1e-6&&e<1e-6?e+e*e/2:n(e)-1}:e},26130:(t,e,n)=>{var r=n(64310),i=Math.abs,o=Math.pow,l=o(2,-52),a=o(2,-23),c=o(2,127)*(2-a),s=o(2,-126);t.exports=Math.fround||function(t){var e,n,o=+t,u=i(o),d=r(o);return u<s?d*function(t){return t+1/l-1/l}(u/s/a)*s*a:(n=(e=(1+a/l)*u)-(e-u))>c||n!=n?d*(1/0):d*n}},20403:t=>{var e=Math.log,n=Math.LOG10E;t.exports=Math.log10||function(t){return e(t)*n}},26513:t=>{var e=Math.log;t.exports=Math.log1p||function(t){var n=+t;return n>-1e-8&&n<1e-8?n-n*n/2:e(1+n)}},47103:t=>{t.exports=Math.scale||function(t,e,n,r,i){var o=+t,l=+e,a=+n,c=+r,s=+i;return o!=o||l!=l||a!=a||c!=c||s!=s?NaN:o===1/0||o===-1/0?o:(o-l)*(s-c)/(a-l)+c}},64310:t=>{t.exports=Math.sign||function(t){var e=+t;return 0==e||e!=e?e:e<0?-1:1}},74758:t=>{var e=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(t){var r=+t;return(r>0?n:e)(r)}},95948:(t,e,n)=>{var r,i,o,l,a,c,s,u,d=n(17854),h=n(49974),p=n(31236).f,b=n(20261).set,Z=n(6833),m=n(71528),g=n(71036),y=n(35268),f=d.MutationObserver||d.WebKitMutationObserver,I=d.document,G=d.process,X=d.Promise,v=p(d,"queueMicrotask"),V=v&&v.value;V||(r=function(){var t,e;for(y&&(t=G.domain)&&t.exit();i;){e=i.fn,i=i.next;try{e()}catch(t){throw i?l():o=void 0,t}}o=void 0,t&&t.enter()},Z||y||g||!f||!I?!m&&X&&X.resolve?((s=X.resolve(void 0)).constructor=X,u=h(s.then,s),l=function(){u(r)}):y?l=function(){G.nextTick(r)}:(b=h(b,d),l=function(){b(r)}):(a=!0,c=I.createTextNode(""),new f(r).observe(c,{characterData:!0}),l=function(){c.data=a=!a})),t.exports=V||function(t){var e={fn:t,next:void 0};o&&(o.next=e),i||(i=e,l()),o=e}},78523:(t,e,n)=>{"use strict";var r=n(19662),i=TypeError,o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw i("Bad Promise constructor");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},56277:(t,e,n)=>{var r=n(41340);t.exports=function(t,e){return void 0===t?arguments.length<2?"":e:r(t)}},66336:t=>{var e=RangeError;t.exports=function(t){if(t==t)return t;throw e("NaN is not allowed")}},3929:(t,e,n)=>{var r=n(47850),i=TypeError;t.exports=function(t){if(r(t))throw i("The method doesn't accept regular expressions");return t}},77023:(t,e,n)=>{var r=n(17854).isFinite;t.exports=Number.isFinite||function(t){return"number"==typeof t&&r(t)}},2814:(t,e,n)=>{var r=n(17854),i=n(47293),o=n(1702),l=n(41340),a=n(53111).trim,c=n(81361),s=o("".charAt),u=r.parseFloat,d=r.Symbol,h=d&&d.iterator,p=1/u(c+"-0")!=-1/0||h&&!i((function(){u(Object(h))}));t.exports=p?function(t){var e=a(l(t)),n=u(e);return 0===n&&"-"==s(e,0)?-0:n}:u},83009:(t,e,n)=>{var r=n(17854),i=n(47293),o=n(1702),l=n(41340),a=n(53111).trim,c=n(81361),s=r.parseInt,u=r.Symbol,d=u&&u.iterator,h=/^[+-]?0x/i,p=o(h.exec),b=8!==s(c+"08")||22!==s(c+"0x16")||d&&!i((function(){s(Object(d))}));t.exports=b?function(t,e){var n=a(l(t));return s(n,e>>>0||(p(h,n)?16:10))}:s},21574:(t,e,n)=>{"use strict";var r=n(19781),i=n(1702),o=n(46916),l=n(47293),a=n(81956),c=n(25181),s=n(55296),u=n(47908),d=n(68361),h=Object.assign,p=Object.defineProperty,b=i([].concat);t.exports=!h||l((function(){if(r&&1!==h({b:1},h(p({},"a",{enumerable:!0,get:function(){p(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(),i="abcdefghijklmnopqrst";return t[n]=7,i.split("").forEach((function(t){e[t]=t})),7!=h({},t)[n]||a(h({},e)).join("")!=i}))?function(t,e){for(var n=u(t),i=arguments.length,l=1,h=c.f,p=s.f;i>l;)for(var Z,m=d(arguments[l++]),g=h?b(a(m),h(m)):a(m),y=g.length,f=0;y>f;)Z=g[f++],r&&!o(p,m,Z)||(n[Z]=m[Z]);return n}:h},70030:(t,e,n)=>{var r,i=n(19670),o=n(36048),l=n(80748),a=n(3501),c=n(60490),s=n(80317),u=n(6200),d="prototype",h="script",p=u("IE_PROTO"),b=function(){},Z=function(t){return"<"+h+">"+t+"</"+h+">"},m=function(t){t.write(Z("")),t.close();var e=t.parentWindow.Object;return t=null,e},g=function(){try{r=new ActiveXObject("htmlfile")}catch(t){}var t,e,n;g="undefined"!=typeof document?document.domain&&r?m(r):(e=s("iframe"),n="java"+h+":",e.style.display="none",c.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(Z("document.F=Object")),t.close(),t.F):m(r);for(var i=l.length;i--;)delete g[d][l[i]];return g()};a[p]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(b[d]=i(t),n=new b,b[d]=null,n[p]=t):n=g(),void 0===e?n:o.f(n,e)}},36048:(t,e,n)=>{var r=n(19781),i=n(3353),o=n(3070),l=n(19670),a=n(45656),c=n(81956);e.f=r&&!i?Object.defineProperties:function(t,e){l(t);for(var n,r=a(e),i=c(e),s=i.length,u=0;s>u;)o.f(t,n=i[u++],r[n]);return t}},3070:(t,e,n)=>{var r=n(19781),i=n(64664),o=n(3353),l=n(19670),a=n(34948),c=TypeError,s=Object.defineProperty,u=Object.getOwnPropertyDescriptor,d="enumerable",h="configurable",p="writable";e.f=r?o?function(t,e,n){if(l(t),e=a(e),l(n),"function"==typeof t&&"prototype"===e&&"value"in n&&p in n&&!n[p]){var r=u(t,e);r&&r[p]&&(t[e]=n.value,n={configurable:h in n?n[h]:r[h],enumerable:d in n?n[d]:r[d],writable:!1})}return s(t,e,n)}:s:function(t,e,n){if(l(t),e=a(e),l(n),i)try{return s(t,e,n)}catch(t){}if("get"in n||"set"in n)throw c("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},31236:(t,e,n)=>{var r=n(19781),i=n(46916),o=n(55296),l=n(79114),a=n(45656),c=n(34948),s=n(92597),u=n(64664),d=Object.getOwnPropertyDescriptor;e.f=r?d:function(t,e){if(t=a(t),e=c(e),u)try{return d(t,e)}catch(t){}if(s(t,e))return l(!i(o.f,t,e),t[e])}},1156:(t,e,n)=>{var r=n(84326),i=n(45656),o=n(8006).f,l=n(41589),a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return a&&"Window"==r(t)?function(t){try{return o(t)}catch(t){return l(a)}}(t):o(i(t))}},8006:(t,e,n)=>{var r=n(16324),i=n(80748).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},25181:(t,e)=>{e.f=Object.getOwnPropertySymbols},79518:(t,e,n)=>{var r=n(92597),i=n(60614),o=n(47908),l=n(6200),a=n(49920),c=l("IE_PROTO"),s=Object,u=s.prototype;t.exports=a?s.getPrototypeOf:function(t){var e=o(t);if(r(e,c))return e[c];var n=e.constructor;return i(n)&&e instanceof n?n.prototype:e instanceof s?u:null}},52050:(t,e,n)=>{var r=n(47293),i=n(70111),o=n(84326),l=n(7556),a=Object.isExtensible,c=r((function(){a(1)}));t.exports=c||l?function(t){return!!i(t)&&(!l||"ArrayBuffer"!=o(t))&&(!a||a(t))}:a},47976:(t,e,n)=>{var r=n(1702);t.exports=r({}.isPrototypeOf)},60996:(t,e,n)=>{"use strict";var r=n(29909),i=n(63061),o=n(76178),l=n(92597),a=n(81956),c=n(47908),s="Object Iterator",u=r.set,d=r.getterFor(s);t.exports=i((function(t,e){var n=c(t);u(this,{type:s,mode:e,object:n,keys:a(n),index:0})}),"Object",(function(){for(var t=d(this),e=t.keys;;){if(null===e||t.index>=e.length)return t.object=t.keys=null,o(void 0,!0);var n=e[t.index++],r=t.object;if(l(r,n)){switch(t.mode){case"keys":return o(n,!1);case"values":return o(r[n],!1)}return o([n,r[n]],!1)}}}))},16324:(t,e,n)=>{var r=n(1702),i=n(92597),o=n(45656),l=n(41318).indexOf,a=n(3501),c=r([].push);t.exports=function(t,e){var n,r=o(t),s=0,u=[];for(n in r)!i(a,n)&&i(r,n)&&c(u,n);for(;e.length>s;)i(r,n=e[s++])&&(~l(u,n)||c(u,n));return u}},81956:(t,e,n)=>{var r=n(16324),i=n(80748);t.exports=Object.keys||function(t){return r(t,i)}},55296:(t,e)=>{"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,i=r&&!n.call({1:2},1);e.f=i?function(t){var e=r(this,t);return!!e&&e.enumerable}:n},69026:(t,e,n)=>{"use strict";var r=n(31913),i=n(17854),o=n(47293),l=n(98008);t.exports=r||!o((function(){if(!(l&&l<535)){var t=Math.random();__defineSetter__.call(null,t,(function(){})),delete i[t]}}))},27674:(t,e,n)=>{var r=n(1702),i=n(19670),o=n(96077);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=r(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(n,[]),e=n instanceof Array}catch(t){}return function(n,r){return i(n),o(r),e?t(n,r):n.__proto__=r,n}}():void 0)},44699:(t,e,n)=>{var r=n(19781),i=n(1702),o=n(81956),l=n(45656),a=i(n(55296).f),c=i([].push),s=function(t){return function(e){for(var n,i=l(e),s=o(i),u=s.length,d=0,h=[];u>d;)n=s[d++],r&&!a(i,n)||c(h,t?[n,i[n]]:i[n]);return h}};t.exports={entries:s(!0),values:s(!1)}},90288:(t,e,n)=>{"use strict";var r=n(51694),i=n(70648);t.exports=r?{}.toString:function(){return"[object "+i(this)+"]"}},90515:(t,e,n)=>{var r=n(17854),i=n(60614),o=n(5112)("observable"),l=r.Observable,a=l&&l.prototype;t.exports=!(i(l)&&i(l.from)&&i(l.of)&&i(a.subscribe)&&i(a[o]))},92140:(t,e,n)=>{var r=n(46916),i=n(60614),o=n(70111),l=TypeError;t.exports=function(t,e){var n,a;if("string"===e&&i(n=t.toString)&&!o(a=r(n,t)))return a;if(i(n=t.valueOf)&&!o(a=r(n,t)))return a;if("string"!==e&&i(n=t.toString)&&!o(a=r(n,t)))return a;throw l("Can't convert object to primitive value")}},53887:(t,e,n)=>{var r=n(35005),i=n(1702),o=n(8006),l=n(25181),a=n(19670),c=i([].concat);t.exports=r("Reflect","ownKeys")||function(t){var e=o.f(a(t)),n=l.f;return n?c(e,n(t)):e}},40857:(t,e,n)=>{var r=n(17854);t.exports=r},12534:t=>{t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},63702:(t,e,n)=>{var r=n(17854),i=n(2492),o=n(60614),l=n(54705),a=n(42788),c=n(5112),s=n(7871),u=n(83823),d=n(31913),h=n(7392),p=i&&i.prototype,b=c("species"),Z=!1,m=o(r.PromiseRejectionEvent),g=l("Promise",(function(){var t=a(i),e=t!==String(i);if(!e&&66===h)return!0;if(d&&(!p.catch||!p.finally))return!0;if(!h||h<51||!/native code/.test(t)){var n=new i((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))};if((n.constructor={})[b]=r,!(Z=n.then((function(){}))instanceof r))return!0}return!e&&(s||u)&&!m}));t.exports={CONSTRUCTOR:g,REJECTION_EVENT:m,SUBCLASSING:Z}},2492:(t,e,n)=>{var r=n(17854);t.exports=r.Promise},69478:(t,e,n)=>{var r=n(19670),i=n(70111),o=n(78523);t.exports=function(t,e){if(r(t),i(e)&&e.constructor===t)return e;var n=o.f(t);return(0,n.resolve)(e),n.promise}},80612:(t,e,n)=>{var r=n(2492),i=n(17072),o=n(63702).CONSTRUCTOR;t.exports=o||!i((function(t){r.all(t).then(void 0,(function(){}))}))},2626:(t,e,n)=>{var r=n(3070).f;t.exports=function(t,e,n){n in t||r(t,n,{configurable:!0,get:function(){return e[n]},set:function(t){e[n]=t}})}},18572:t=>{var e=function(){this.head=null,this.tail=null};e.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}},t.exports=e},38845:(t,e,n)=>{n(51532),n(4129);var r=n(35005),i=n(1702),o=n(72309),l=r("Map"),a=r("WeakMap"),c=i([].push),s=o("metadata"),u=s.store||(s.store=new a),d=function(t,e,n){var r=u.get(t);if(!r){if(!n)return;u.set(t,r=new l)}var i=r.get(e);if(!i){if(!n)return;r.set(e,i=new l)}return i};t.exports={store:u,getMap:d,has:function(t,e,n){var r=d(e,n,!1);return void 0!==r&&r.has(t)},get:function(t,e,n){var r=d(e,n,!1);return void 0===r?void 0:r.get(t)},set:function(t,e,n,r){d(n,r,!0).set(t,e)},keys:function(t,e){var n=d(t,e,!1),r=[];return n&&n.forEach((function(t,e){c(r,e)})),r},toKey:function(t){return void 0===t||"symbol"==typeof t?t:String(t)}}},97651:(t,e,n)=>{var r=n(46916),i=n(19670),o=n(60614),l=n(84326),a=n(22261),c=TypeError;t.exports=function(t,e){var n=t.exec;if(o(n)){var s=r(n,t,e);return null!==s&&i(s),s}if("RegExp"===l(t))return r(a,t,e);throw c("RegExp#exec called on incompatible receiver")}},22261:(t,e,n)=>{"use strict";var r,i,o=n(46916),l=n(1702),a=n(41340),c=n(67066),s=n(52999),u=n(72309),d=n(70030),h=n(29909).get,p=n(9441),b=n(38173),Z=u("native-string-replace",String.prototype.replace),m=RegExp.prototype.exec,g=m,y=l("".charAt),f=l("".indexOf),I=l("".replace),G=l("".slice),X=(i=/b*/g,o(m,r=/a/,"a"),o(m,i,"a"),0!==r.lastIndex||0!==i.lastIndex),v=s.BROKEN_CARET,V=void 0!==/()??/.exec("")[1];(X||V||v||p||b)&&(g=function(t){var e,n,r,i,l,s,u,p=this,b=h(p),W=a(t),R=b.raw;if(R)return R.lastIndex=p.lastIndex,e=o(g,R,W),p.lastIndex=R.lastIndex,e;var S=b.groups,C=v&&p.sticky,Y=o(c,p),K=p.source,N=0,k=W;if(C&&(Y=I(Y,"y",""),-1===f(Y,"g")&&(Y+="g"),k=G(W,p.lastIndex),p.lastIndex>0&&(!p.multiline||p.multiline&&"\n"!==y(W,p.lastIndex-1))&&(K="(?: "+K+")",k=" "+k,N++),n=new RegExp("^(?:"+K+")",Y)),V&&(n=new RegExp("^"+K+"$(?!\\s)",Y)),X&&(r=p.lastIndex),i=o(m,C?n:p,k),C?i?(i.input=G(i.input,N),i[0]=G(i[0],N),i.index=p.lastIndex,p.lastIndex+=i[0].length):p.lastIndex=0:X&&i&&(p.lastIndex=p.global?i.index+i[0].length:r),V&&i&&i.length>1&&o(Z,i[0],n,(function(){for(l=1;l<arguments.length-2;l++)void 0===arguments[l]&&(i[l]=void 0)})),i&&S)for(i.groups=s=d(null),l=0;l<S.length;l++)s[(u=S[l])[0]]=i[u[1]];return i}),t.exports=g},67066:(t,e,n)=>{"use strict";var r=n(19670);t.exports=function(){var t=r(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}},34706:(t,e,n)=>{var r=n(46916),i=n(92597),o=n(47976),l=n(67066),a=RegExp.prototype;t.exports=function(t){var e=t.flags;return void 0!==e||"flags"in a||i(t,"flags")||!o(a,t)?e:r(l,t)}},52999:(t,e,n)=>{var r=n(47293),i=n(17854).RegExp,o=r((function(){var t=i("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),l=o||r((function(){return!i("a","y").sticky})),a=o||r((function(){var t=i("^r","gy");return t.lastIndex=2,null!=t.exec("str")}));t.exports={BROKEN_CARET:a,MISSED_STICKY:l,UNSUPPORTED_Y:o}},9441:(t,e,n)=>{var r=n(47293),i=n(17854).RegExp;t.exports=r((function(){var t=i(".","s");return!(t.dotAll&&t.exec("\n")&&"s"===t.flags)}))},38173:(t,e,n)=>{var r=n(47293),i=n(17854).RegExp;t.exports=r((function(){var t=i("(?<a>b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$<a>c")}))},84488:(t,e,n)=>{var r=n(68554),i=TypeError;t.exports=function(t){if(r(t))throw i("Can't call method on "+t);return t}},46465:t=>{t.exports=function(t,e){return t===e||t!=t&&e!=e}},81150:t=>{t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},17152:(t,e,n)=>{var r=n(17854),i=n(22104),o=n(60614),l=n(88113),a=n(50206),c=n(48053),s=/MSIE .\./.test(l),u=r.Function,d=function(t){return s?function(e,n){var r=c(arguments.length,1)>2,l=o(e)?e:u(e),s=r?a(arguments,2):void 0;return t(r?function(){i(l,this,s)}:l,n)}:t};t.exports={setTimeout:d(r.setTimeout),setInterval:d(r.setInterval)}},96340:(t,e,n)=>{"use strict";var r=n(35005),i=n(3070),o=n(5112),l=n(19781),a=o("species");t.exports=function(t){var e=r(t),n=i.f;l&&e&&!e[a]&&n(e,a,{configurable:!0,get:function(){return this}})}},58003:(t,e,n)=>{var r=n(3070).f,i=n(92597),o=n(5112)("toStringTag");t.exports=function(t,e,n){t&&!n&&(t=t.prototype),t&&!i(t,o)&&r(t,o,{configurable:!0,value:e})}},6200:(t,e,n)=>{var r=n(72309),i=n(69711),o=r("keys");t.exports=function(t){return o[t]||(o[t]=i(t))}},5465:(t,e,n)=>{var r=n(17854),i=n(13072),o="__core-js_shared__",l=r[o]||i(o,{});t.exports=l},72309:(t,e,n)=>{var r=n(31913),i=n(5465);(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.26.1",mode:r?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.26.1/LICENSE",source:"https://github.com/zloirock/core-js"})},36707:(t,e,n)=>{var r=n(19670),i=n(39483),o=n(68554),l=n(5112)("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||o(n=r(a)[l])?e:i(n)}},43429:(t,e,n)=>{var r=n(47293);t.exports=function(t){return r((function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}))}},28710:(t,e,n)=>{var r=n(1702),i=n(19303),o=n(41340),l=n(84488),a=r("".charAt),c=r("".charCodeAt),s=r("".slice),u=function(t){return function(e,n){var r,u,d=o(l(e)),h=i(n),p=d.length;return h<0||h>=p?t?"":void 0:(r=c(d,h))<55296||r>56319||h+1===p||(u=c(d,h+1))<56320||u>57343?t?a(d,h):r:t?s(d,h,h+2):u-56320+(r-55296<<10)+65536}};t.exports={codeAt:u(!1),charAt:u(!0)}},54986:(t,e,n)=>{var r=n(88113);t.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(r)},76650:(t,e,n)=>{var r=n(1702),i=n(17466),o=n(41340),l=n(38415),a=n(84488),c=r(l),s=r("".slice),u=Math.ceil,d=function(t){return function(e,n,r){var l,d,h=o(a(e)),p=i(n),b=h.length,Z=void 0===r?" ":o(r);return p<=b||""==Z?h:((d=c(Z,u((l=p-b)/Z.length))).length>l&&(d=s(d,0,l)),t?h+d:d+h)}};t.exports={start:d(!1),end:d(!0)}},33197:(t,e,n)=>{"use strict";var r=n(1702),i=2147483647,o=/[^\0-\u007E]/,l=/[.\u3002\uFF0E\uFF61]/g,a="Overflow: input needs wider integers to process",c=RangeError,s=r(l.exec),u=Math.floor,d=String.fromCharCode,h=r("".charCodeAt),p=r([].join),b=r([].push),Z=r("".replace),m=r("".split),g=r("".toLowerCase),y=function(t){return t+22+75*(t<26)},f=function(t,e,n){var r=0;for(t=n?u(t/700):t>>1,t+=u(t/e);t>455;)t=u(t/35),r+=36;return u(r+36*t/(t+38))},I=function(t){var e=[];t=function(t){for(var e=[],n=0,r=t.length;n<r;){var i=h(t,n++);if(i>=55296&&i<=56319&&n<r){var o=h(t,n++);56320==(64512&o)?b(e,((1023&i)<<10)+(1023&o)+65536):(b(e,i),n--)}else b(e,i)}return e}(t);var n,r,o=t.length,l=128,s=0,Z=72;for(n=0;n<t.length;n++)(r=t[n])<128&&b(e,d(r));var m=e.length,g=m;for(m&&b(e,"-");g<o;){var I=i;for(n=0;n<t.length;n++)(r=t[n])>=l&&r<I&&(I=r);var G=g+1;if(I-l>u((i-s)/G))throw c(a);for(s+=(I-l)*G,l=I,n=0;n<t.length;n++){if((r=t[n])<l&&++s>i)throw c(a);if(r==l){for(var X=s,v=36;;){var V=v<=Z?1:v>=Z+26?26:v-Z;if(X<V)break;var W=X-V,R=36-V;b(e,d(y(V+W%R))),X=u(W/R),v+=36}b(e,d(y(X))),Z=f(s,G,g==m),s=0,g++}}s++,l++}return p(e,"")};t.exports=function(t){var e,n,r=[],i=m(Z(g(t),l,"."),".");for(e=0;e<i.length;e++)n=i[e],b(r,s(o,n)?"xn--"+I(n):n);return p(r,".")}},38415:(t,e,n)=>{"use strict";var r=n(19303),i=n(41340),o=n(84488),l=RangeError;t.exports=function(t){var e=i(o(this)),n="",a=r(t);if(a<0||a==1/0)throw l("Wrong number of repetitions");for(;a>0;(a>>>=1)&&(e+=e))1&a&&(n+=e);return n}},10365:(t,e,n)=>{"use strict";var r=n(53111).end,i=n(76091);t.exports=i("trimEnd")?function(){return r(this)}:"".trimEnd},76091:(t,e,n)=>{var r=n(76530).PROPER,i=n(47293),o=n(81361);t.exports=function(t){return i((function(){return!!o[t]()||"
"!=="
"[t]()||r&&o[t].name!==t}))}},33217:(t,e,n)=>{"use strict";var r=n(53111).start,i=n(76091);t.exports=i("trimStart")?function(){return r(this)}:"".trimStart},53111:(t,e,n)=>{var r=n(1702),i=n(84488),o=n(41340),l=n(81361),a=r("".replace),c="["+l+"]",s=RegExp("^"+c+c+"*"),u=RegExp(c+c+"*$"),d=function(t){return function(e){var n=o(i(e));return 1&t&&(n=a(n,s,"")),2&t&&(n=a(n,u,"")),n}};t.exports={start:d(1),end:d(2),trim:d(3)}},36293:(t,e,n)=>{var r=n(7392),i=n(47293);t.exports=!!Object.getOwnPropertySymbols&&!i((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},56532:(t,e,n)=>{var r=n(46916),i=n(35005),o=n(5112),l=n(98052);t.exports=function(){var t=i("Symbol"),e=t&&t.prototype,n=e&&e.valueOf,a=o("toPrimitive");e&&!e[a]&&l(e,a,(function(t){return r(n,this)}),{arity:1})}},2015:(t,e,n)=>{var r=n(36293);t.exports=r&&!!Symbol.for&&!!Symbol.keyFor},20261:(t,e,n)=>{var r,i,o,l,a=n(17854),c=n(22104),s=n(49974),u=n(60614),d=n(92597),h=n(47293),p=n(60490),b=n(50206),Z=n(80317),m=n(48053),g=n(6833),y=n(35268),f=a.setImmediate,I=a.clearImmediate,G=a.process,X=a.Dispatch,v=a.Function,V=a.MessageChannel,W=a.String,R=0,S={},C="onreadystatechange";try{r=a.location}catch(t){}var Y=function(t){if(d(S,t)){var e=S[t];delete S[t],e()}},K=function(t){return function(){Y(t)}},N=function(t){Y(t.data)},k=function(t){a.postMessage(W(t),r.protocol+"//"+r.host)};f&&I||(f=function(t){m(arguments.length,1);var e=u(t)?t:v(t),n=b(arguments,1);return S[++R]=function(){c(e,void 0,n)},i(R),R},I=function(t){delete S[t]},y?i=function(t){G.nextTick(K(t))}:X&&X.now?i=function(t){X.now(K(t))}:V&&!g?(l=(o=new V).port2,o.port1.onmessage=N,i=s(l.postMessage,l)):a.addEventListener&&u(a.postMessage)&&!a.importScripts&&r&&"file:"!==r.protocol&&!h(k)?(i=k,a.addEventListener("message",N,!1)):i=C in Z("script")?function(t){p.appendChild(Z("script"))[C]=function(){p.removeChild(this),Y(t)}}:function(t){setTimeout(K(t),0)}),t.exports={set:f,clear:I}},50863:(t,e,n)=>{var r=n(1702);t.exports=r(1..valueOf)},51400:(t,e,n)=>{var r=n(19303),i=Math.max,o=Math.min;t.exports=function(t,e){var n=r(t);return n<0?i(n+e,0):o(n,e)}},64599:(t,e,n)=>{var r=n(57593),i=TypeError;t.exports=function(t){var e=r(t,"number");if("number"==typeof e)throw i("Can't convert number to bigint");return BigInt(e)}},57067:(t,e,n)=>{var r=n(19303),i=n(17466),o=RangeError;t.exports=function(t){if(void 0===t)return 0;var e=r(t),n=i(e);if(e!==n)throw o("Wrong length or index");return n}},45656:(t,e,n)=>{var r=n(68361),i=n(84488);t.exports=function(t){return r(i(t))}},19303:(t,e,n)=>{var r=n(74758);t.exports=function(t){var e=+t;return e!=e||0===e?0:r(e)}},17466:(t,e,n)=>{var r=n(19303),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},47908:(t,e,n)=>{var r=n(84488),i=Object;t.exports=function(t){return i(r(t))}},84590:(t,e,n)=>{var r=n(73002),i=RangeError;t.exports=function(t,e){var n=r(t);if(n%e)throw i("Wrong offset");return n}},73002:(t,e,n)=>{var r=n(19303),i=RangeError;t.exports=function(t){var e=r(t);if(e<0)throw i("The argument can't be less than 0");return e}},57593:(t,e,n)=>{var r=n(46916),i=n(70111),o=n(52190),l=n(58173),a=n(92140),c=n(5112),s=TypeError,u=c("toPrimitive");t.exports=function(t,e){if(!i(t)||o(t))return t;var n,c=l(t,u);if(c){if(void 0===e&&(e="default"),n=r(c,t,e),!i(n)||o(n))return n;throw s("Can't convert object to primitive value")}return void 0===e&&(e="number"),a(t,e)}},34948:(t,e,n)=>{var r=n(57593),i=n(52190);t.exports=function(t){var e=r(t,"string");return i(e)?e:e+""}},51694:(t,e,n)=>{var r={};r[n(5112)("toStringTag")]="z",t.exports="[object z]"===String(r)},41340:(t,e,n)=>{var r=n(70648),i=String;t.exports=function(t){if("Symbol"===r(t))throw TypeError("Cannot convert a Symbol value to a string");return i(t)}},66330:t=>{var e=String;t.exports=function(t){try{return e(t)}catch(t){return"Object"}}},19843:(t,e,n)=>{"use strict";var r=n(82109),i=n(17854),o=n(46916),l=n(19781),a=n(63832),c=n(90260),s=n(13331),u=n(25787),d=n(79114),h=n(68880),p=n(55988),b=n(17466),Z=n(57067),m=n(84590),g=n(34948),y=n(92597),f=n(70648),I=n(70111),G=n(52190),X=n(70030),v=n(47976),V=n(27674),W=n(8006).f,R=n(97321),S=n(42092).forEach,C=n(96340),Y=n(3070),K=n(31236),N=n(29909),k=n(79587),J=N.get,T=N.set,L=N.enforce,x=Y.f,U=K.f,H=Math.round,w=i.RangeError,F=s.ArrayBuffer,A=F.prototype,B=s.DataView,z=c.NATIVE_ARRAY_BUFFER_VIEWS,P=c.TYPED_ARRAY_TAG,j=c.TypedArray,E=c.TypedArrayPrototype,M=c.aTypedArrayConstructor,Q=c.isTypedArray,O="BYTES_PER_ELEMENT",D="Wrong length",_=function(t,e){M(t);for(var n=0,r=e.length,i=new t(r);r>n;)i[n]=e[n++];return i},q=function(t,e){x(t,e,{get:function(){return J(this)[e]}})},$=function(t){var e;return v(A,t)||"ArrayBuffer"==(e=f(t))||"SharedArrayBuffer"==e},tt=function(t,e){return Q(t)&&!G(e)&&e in t&&p(+e)&&e>=0},et=function(t,e){return e=g(e),tt(t,e)?d(2,t[e]):U(t,e)},nt=function(t,e,n){return e=g(e),!(tt(t,e)&&I(n)&&y(n,"value"))||y(n,"get")||y(n,"set")||n.configurable||y(n,"writable")&&!n.writable||y(n,"enumerable")&&!n.enumerable?x(t,e,n):(t[e]=n.value,t)};l?(z||(K.f=et,Y.f=nt,q(E,"buffer"),q(E,"byteOffset"),q(E,"byteLength"),q(E,"length")),r({target:"Object",stat:!0,forced:!z},{getOwnPropertyDescriptor:et,defineProperty:nt}),t.exports=function(t,e,n){var l=t.match(/\d+$/)[0]/8,c=t+(n?"Clamped":"")+"Array",s="get"+t,d="set"+t,p=i[c],g=p,y=g&&g.prototype,f={},G=function(t,e){x(t,e,{get:function(){return function(t,e){var n=J(t);return n.view[s](e*l+n.byteOffset,!0)}(this,e)},set:function(t){return function(t,e,r){var i=J(t);n&&(r=(r=H(r))<0?0:r>255?255:255&r),i.view[d](e*l+i.byteOffset,r,!0)}(this,e,t)},enumerable:!0})};z?a&&(g=e((function(t,e,n,r){return u(t,y),k(I(e)?$(e)?void 0!==r?new p(e,m(n,l),r):void 0!==n?new p(e,m(n,l)):new p(e):Q(e)?_(g,e):o(R,g,e):new p(Z(e)),t,g)})),V&&V(g,j),S(W(p),(function(t){t in g||h(g,t,p[t])})),g.prototype=y):(g=e((function(t,e,n,r){u(t,y);var i,a,c,s=0,d=0;if(I(e)){if(!$(e))return Q(e)?_(g,e):o(R,g,e);i=e,d=m(n,l);var h=e.byteLength;if(void 0===r){if(h%l)throw w(D);if((a=h-d)<0)throw w(D)}else if((a=b(r)*l)+d>h)throw w(D);c=a/l}else c=Z(e),i=new F(a=c*l);for(T(t,{buffer:i,byteOffset:d,byteLength:a,length:c,view:new B(i)});s<c;)G(t,s++)})),V&&V(g,j),y=g.prototype=X(E)),y.constructor!==g&&h(y,"constructor",g),L(y).TypedArrayConstructor=g,P&&h(y,P,c);var v=g!=p;f[c]=g,r({global:!0,constructor:!0,forced:v,sham:!z},f),O in g||h(g,O,l),O in y||h(y,O,l),C(c)}):t.exports=function(){}},63832:(t,e,n)=>{var r=n(17854),i=n(47293),o=n(17072),l=n(90260).NATIVE_ARRAY_BUFFER_VIEWS,a=r.ArrayBuffer,c=r.Int8Array;t.exports=!l||!i((function(){c(1)}))||!i((function(){new c(-1)}))||!o((function(t){new c,new c(null),new c(1.5),new c(t)}),!0)||i((function(){return 1!==new c(new a(2),1,void 0).length}))},43074:(t,e,n)=>{var r=n(97745),i=n(66304);t.exports=function(t,e){return r(i(t),e)}},97321:(t,e,n)=>{var r=n(49974),i=n(46916),o=n(39483),l=n(47908),a=n(26244),c=n(18554),s=n(71246),u=n(97659),d=n(44067),h=n(90260).aTypedArrayConstructor,p=n(64599);t.exports=function(t){var e,n,b,Z,m,g,y,f,I=o(this),G=l(t),X=arguments.length,v=X>1?arguments[1]:void 0,V=void 0!==v,W=s(G);if(W&&!u(W))for(f=(y=c(G,W)).next,G=[];!(g=i(f,y)).done;)G.push(g.value);for(V&&X>2&&(v=r(v,arguments[2])),n=a(G),b=new(h(I))(n),Z=d(b),e=0;n>e;e++)m=V?v(G[e],e):G[e],b[e]=Z?p(m):+m;return b}},66304:(t,e,n)=>{var r=n(90260),i=n(36707),o=r.aTypedArrayConstructor,l=r.getTypedArrayConstructor;t.exports=function(t){return o(i(t,l(t)))}},69711:(t,e,n)=>{var r=n(1702),i=0,o=Math.random(),l=r(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+l(++i+o,36)}},85143:(t,e,n)=>{var r=n(47293),i=n(5112),o=n(31913),l=i("iterator");t.exports=!r((function(){var t=new URL("b?a=1&b=2&c=3","http://a"),e=t.searchParams,n="";return t.pathname="c%20d",e.forEach((function(t,r){e.delete("b"),n+=r+t})),o&&!t.toJSON||!e.sort||"http://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[l]||"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"!==n||"x"!==new URL("http://x",void 0).host}))},43307:(t,e,n)=>{var r=n(36293);t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},3353:(t,e,n)=>{var r=n(19781),i=n(47293);t.exports=r&&i((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},48053:t=>{var e=TypeError;t.exports=function(t,n){if(t<n)throw e("Not enough arguments");return t}},94811:(t,e,n)=>{var r=n(17854),i=n(60614),o=r.WeakMap;t.exports=i(o)&&/native code/.test(String(o))},26800:(t,e,n)=>{var r=n(40857),i=n(92597),o=n(6061),l=n(3070).f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});i(e,t)||l(e,t,{value:o.f(t)})}},6061:(t,e,n)=>{var r=n(5112);e.f=r},5112:(t,e,n)=>{var r=n(17854),i=n(72309),o=n(92597),l=n(69711),a=n(36293),c=n(43307),s=i("wks"),u=r.Symbol,d=u&&u.for,h=c?u:u&&u.withoutSetter||l;t.exports=function(t){if(!o(s,t)||!a&&"string"!=typeof s[t]){var e="Symbol."+t;a&&o(u,t)?s[t]=u[t]:s[t]=c&&d?d(e):h(e)}return s[t]}},81361:t=>{t.exports="\t\n\v\f\r \u2028\u2029\ufeff"},56967:(t,e,n)=>{"use strict";var r=n(82109),i=n(47976),o=n(79518),l=n(27674),a=n(99920),c=n(70030),s=n(68880),u=n(79114),d=n(11060),h=n(58340),p=n(20408),b=n(56277),Z=n(5112),m=n(22914),g=Z("toStringTag"),y=Error,f=[].push,I=function(t,e){var n,r=arguments.length>2?arguments[2]:void 0,a=i(G,this);l?n=l(y(),a?o(this):G):(n=a?this:c(G),s(n,g,"Error")),void 0!==e&&s(n,"message",b(e)),m&&s(n,"stack",d(n.stack,1)),h(n,r);var u=[];return p(t,f,{that:u}),s(n,"errors",u),n};l?l(I,y):a(I,y,{name:!0});var G=I.prototype=c(y.prototype,{constructor:u(1,I),message:u(1,""),name:u(1,"AggregateError")});r({global:!0,constructor:!0,arity:2},{AggregateError:I})},9170:(t,e,n)=>{n(56967)},18264:(t,e,n)=>{"use strict";var r=n(82109),i=n(17854),o=n(13331),l=n(96340),a="ArrayBuffer",c=o[a];r({global:!0,constructor:!0,forced:i[a]!==c},{ArrayBuffer:c}),l(a)},76938:(t,e,n)=>{var r=n(82109),i=n(90260);r({target:"ArrayBuffer",stat:!0,forced:!i.NATIVE_ARRAY_BUFFER_VIEWS},{isView:i.isView})},39575:(t,e,n)=>{"use strict";var r=n(82109),i=n(21470),o=n(47293),l=n(13331),a=n(19670),c=n(51400),s=n(17466),u=n(36707),d=l.ArrayBuffer,h=l.DataView,p=h.prototype,b=i(d.prototype.slice),Z=i(p.getUint8),m=i(p.setUint8);r({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:o((function(){return!new d(2).slice(1,void 0).byteLength}))},{slice:function(t,e){if(b&&void 0===e)return b(a(this),t);for(var n=a(this).byteLength,r=c(t,n),i=c(void 0===e?n:e,n),o=new(u(this,d))(s(i-r)),l=new h(this),p=new h(o),g=0;r<i;)m(p,g++,Z(l,r++));return o}})},92222:(t,e,n)=>{"use strict";var r=n(82109),i=n(47293),o=n(43157),l=n(70111),a=n(47908),c=n(26244),s=n(7207),u=n(86135),d=n(65417),h=n(81194),p=n(5112),b=n(7392),Z=p("isConcatSpreadable"),m=b>=51||!i((function(){var t=[];return t[Z]=!1,t.concat()[0]!==t})),g=h("concat"),y=function(t){if(!l(t))return!1;var e=t[Z];return void 0!==e?!!e:o(t)};r({target:"Array",proto:!0,arity:1,forced:!m||!g},{concat:function(t){var e,n,r,i,o,l=a(this),h=d(l,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(y(o=-1===e?l:arguments[e]))for(i=c(o),s(p+i),n=0;n<i;n++,p++)n in o&&u(h,p,o[n]);else s(p+1),u(h,p++,o);return h.length=p,h}})},50545:(t,e,n)=>{var r=n(82109),i=n(1048),o=n(51223);r({target:"Array",proto:!0},{copyWithin:i}),o("copyWithin")},26541:(t,e,n)=>{"use strict";var r=n(82109),i=n(42092).every;r({target:"Array",proto:!0,forced:!n(9341)("every")},{every:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},43290:(t,e,n)=>{var r=n(82109),i=n(21285),o=n(51223);r({target:"Array",proto:!0},{fill:i}),o("fill")},57327:(t,e,n)=>{"use strict";var r=n(82109),i=n(42092).filter;r({target:"Array",proto:!0,forced:!n(81194)("filter")},{filter:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},34553:(t,e,n)=>{"use strict";var r=n(82109),i=n(42092).findIndex,o=n(51223),l="findIndex",a=!0;l in[]&&Array(1)[l]((function(){a=!1})),r({target:"Array",proto:!0,forced:a},{findIndex:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),o(l)},69826:(t,e,n)=>{"use strict";var r=n(82109),i=n(42092).find,o=n(51223),l="find",a=!0;l in[]&&Array(1)[l]((function(){a=!1})),r({target:"Array",proto:!0,forced:a},{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),o(l)},86535:(t,e,n)=>{"use strict";var r=n(82109),i=n(6790),o=n(19662),l=n(47908),a=n(26244),c=n(65417);r({target:"Array",proto:!0},{flatMap:function(t){var e,n=l(this),r=a(n);return o(t),(e=c(n,0)).length=i(e,n,n,r,0,1,t,arguments.length>1?arguments[1]:void 0),e}})},84944:(t,e,n)=>{"use strict";var r=n(82109),i=n(6790),o=n(47908),l=n(26244),a=n(19303),c=n(65417);r({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=o(this),n=l(e),r=c(e,0);return r.length=i(r,e,e,n,0,void 0===t?1:a(t)),r}})},89554:(t,e,n)=>{"use strict";var r=n(82109),i=n(18533);r({target:"Array",proto:!0,forced:[].forEach!=i},{forEach:i})},91038:(t,e,n)=>{var r=n(82109),i=n(48457);r({target:"Array",stat:!0,forced:!n(17072)((function(t){Array.from(t)}))},{from:i})},26699:(t,e,n)=>{"use strict";var r=n(82109),i=n(41318).includes,o=n(47293),l=n(51223);r({target:"Array",proto:!0,forced:o((function(){return!Array(1).includes()}))},{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),l("includes")},82772:(t,e,n)=>{"use strict";var r=n(82109),i=n(21470),o=n(41318).indexOf,l=n(9341),a=i([].indexOf),c=!!a&&1/a([1],1,-0)<0,s=l("indexOf");r({target:"Array",proto:!0,forced:c||!s},{indexOf:function(t){var e=arguments.length>1?arguments[1]:void 0;return c?a(this,t,e)||0:o(this,t,e)}})},79753:(t,e,n)=>{n(82109)({target:"Array",stat:!0},{isArray:n(43157)})},66992:(t,e,n)=>{"use strict";var r=n(45656),i=n(51223),o=n(97497),l=n(29909),a=n(3070).f,c=n(51656),s=n(76178),u=n(31913),d=n(19781),h="Array Iterator",p=l.set,b=l.getterFor(h);t.exports=c(Array,"Array",(function(t,e){p(this,{type:h,target:r(t),index:0,kind:e})}),(function(){var t=b(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,s(void 0,!0)):s("keys"==n?r:"values"==n?e[r]:[r,e[r]],!1)}),"values");var Z=o.Arguments=o.Array;if(i("keys"),i("values"),i("entries"),!u&&d&&"values"!==Z.name)try{a(Z,"name",{value:"values"})}catch(t){}},69600:(t,e,n)=>{"use strict";var r=n(82109),i=n(1702),o=n(68361),l=n(45656),a=n(9341),c=i([].join),s=o!=Object,u=a("join",",");r({target:"Array",proto:!0,forced:s||!u},{join:function(t){return c(l(this),void 0===t?",":t)}})},94986:(t,e,n)=>{var r=n(82109),i=n(86583);r({target:"Array",proto:!0,forced:i!==[].lastIndexOf},{lastIndexOf:i})},21249:(t,e,n)=>{"use strict";var r=n(82109),i=n(42092).map;r({target:"Array",proto:!0,forced:!n(81194)("map")},{map:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},26572:(t,e,n)=>{"use strict";var r=n(82109),i=n(47293),o=n(4411),l=n(86135),a=Array;r({target:"Array",stat:!0,forced:i((function(){function t(){}return!(a.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,n=new(o(this)?this:a)(e);e>t;)l(n,t,arguments[t++]);return n.length=e,n}})},96644:(t,e,n)=>{"use strict";var r=n(82109),i=n(53671).right,o=n(9341),l=n(7392),a=n(35268);r({target:"Array",proto:!0,forced:!o("reduceRight")||!a&&l>79&&l<83},{reduceRight:function(t){return i(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},85827:(t,e,n)=>{"use strict";var r=n(82109),i=n(53671).left,o=n(9341),l=n(7392),a=n(35268);r({target:"Array",proto:!0,forced:!o("reduce")||!a&&l>79&&l<83},{reduce:function(t){var e=arguments.length;return i(this,t,e,e>1?arguments[1]:void 0)}})},65069:(t,e,n)=>{"use strict";var r=n(82109),i=n(1702),o=n(43157),l=i([].reverse),a=[1,2];r({target:"Array",proto:!0,forced:String(a)===String(a.reverse())},{reverse:function(){return o(this)&&(this.length=this.length),l(this)}})},47042:(t,e,n)=>{"use strict";var r=n(82109),i=n(43157),o=n(4411),l=n(70111),a=n(51400),c=n(26244),s=n(45656),u=n(86135),d=n(5112),h=n(81194),p=n(50206),b=h("slice"),Z=d("species"),m=Array,g=Math.max;r({target:"Array",proto:!0,forced:!b},{slice:function(t,e){var n,r,d,h=s(this),b=c(h),y=a(t,b),f=a(void 0===e?b:e,b);if(i(h)&&(n=h.constructor,(o(n)&&(n===m||i(n.prototype))||l(n)&&null===(n=n[Z]))&&(n=void 0),n===m||void 0===n))return p(h,y,f);for(r=new(void 0===n?m:n)(g(f-y,0)),d=0;y<f;y++,d++)y in h&&u(r,d,h[y]);return r.length=d,r}})},5212:(t,e,n)=>{"use strict";var r=n(82109),i=n(42092).some;r({target:"Array",proto:!0,forced:!n(9341)("some")},{some:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},2707:(t,e,n)=>{"use strict";var r=n(82109),i=n(1702),o=n(19662),l=n(47908),a=n(26244),c=n(85117),s=n(41340),u=n(47293),d=n(94362),h=n(9341),p=n(68886),b=n(30256),Z=n(7392),m=n(98008),g=[],y=i(g.sort),f=i(g.push),I=u((function(){g.sort(void 0)})),G=u((function(){g.sort(null)})),X=h("sort"),v=!u((function(){if(Z)return Z<70;if(!(p&&p>3)){if(b)return!0;if(m)return m<603;var t,e,n,r,i="";for(t=65;t<76;t++){switch(e=String.fromCharCode(t),t){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)g.push({k:e+r,v:n})}for(g.sort((function(t,e){return e.v-t.v})),r=0;r<g.length;r++)e=g[r].k.charAt(0),i.charAt(i.length-1)!==e&&(i+=e);return"DGBEFHACIJK"!==i}}));r({target:"Array",proto:!0,forced:I||!G||!X||!v},{sort:function(t){void 0!==t&&o(t);var e=l(this);if(v)return void 0===t?y(e):y(e,t);var n,r,i=[],u=a(e);for(r=0;r<u;r++)r in e&&f(i,e[r]);for(d(i,function(t){return function(e,n){return void 0===n?-1:void 0===e?1:void 0!==t?+t(e,n)||0:s(e)>s(n)?1:-1}}(t)),n=a(i),r=0;r<n;)e[r]=i[r++];for(;r<u;)c(e,r++);return e}})},38706:(t,e,n)=>{n(96340)("Array")},40561:(t,e,n)=>{"use strict";var r=n(82109),i=n(47908),o=n(51400),l=n(19303),a=n(26244),c=n(83658),s=n(7207),u=n(65417),d=n(86135),h=n(85117),p=n(81194)("splice"),b=Math.max,Z=Math.min;r({target:"Array",proto:!0,forced:!p},{splice:function(t,e){var n,r,p,m,g,y,f=i(this),I=a(f),G=o(t,I),X=arguments.length;for(0===X?n=r=0:1===X?(n=0,r=I-G):(n=X-2,r=Z(b(l(e),0),I-G)),s(I+n-r),p=u(f,r),m=0;m<r;m++)(g=G+m)in f&&d(p,m,f[g]);if(p.length=r,n<r){for(m=G;m<I-r;m++)y=m+n,(g=m+r)in f?f[y]=f[g]:h(f,y);for(m=I;m>I-r+n;m--)h(f,m-1)}else if(n>r)for(m=I-r;m>G;m--)y=m+n-1,(g=m+r-1)in f?f[y]=f[g]:h(f,y);for(m=0;m<n;m++)f[m+G]=arguments[m+2];return c(f,I-r+n),p}})},99244:(t,e,n)=>{n(51223)("flatMap")},33792:(t,e,n)=>{n(51223)("flat")},3690:(t,e,n)=>{var r=n(82109),i=n(13331);r({global:!0,constructor:!0,forced:!n(23013)},{DataView:i.DataView})},16716:(t,e,n)=>{n(3690)},3843:(t,e,n)=>{var r=n(82109),i=n(1702),o=Date,l=i(o.prototype.getTime);r({target:"Date",stat:!0},{now:function(){return l(new o)}})},28733:(t,e,n)=>{var r=n(82109),i=n(85573);r({target:"Date",proto:!0,forced:Date.prototype.toISOString!==i},{toISOString:i})},5735:(t,e,n)=>{"use strict";var r=n(82109),i=n(47293),o=n(47908),l=n(57593);r({target:"Date",proto:!0,arity:1,forced:i((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=o(this),n=l(e,"number");return"number"!=typeof n||isFinite(n)?e.toISOString():null}})},96078:(t,e,n)=>{var r=n(92597),i=n(98052),o=n(38709),l=n(5112)("toPrimitive"),a=Date.prototype;r(a,l)||i(a,l,o)},83710:(t,e,n)=>{var r=n(1702),i=n(98052),o=Date.prototype,l="Invalid Date",a="toString",c=r(o[a]),s=r(o.getTime);String(new Date(NaN))!=l&&i(o,a,(function(){var t=s(this);return t==t?c(this):l}))},24812:(t,e,n)=>{var r=n(82109),i=n(27065);r({target:"Function",proto:!0,forced:Function.bind!==i},{bind:i})},4855:(t,e,n)=>{"use strict";var r=n(60614),i=n(70111),o=n(3070),l=n(79518),a=n(5112),c=n(56339),s=a("hasInstance"),u=Function.prototype;s in u||o.f(u,s,{value:c((function(t){if(!r(this)||!i(t))return!1;var e=this.prototype;if(!i(e))return t instanceof this;for(;t=l(t);)if(e===t)return!0;return!1}),s)})},68309:(t,e,n)=>{var r=n(19781),i=n(76530).EXISTS,o=n(1702),l=n(3070).f,a=Function.prototype,c=o(a.toString),s=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,u=o(s.exec);r&&!i&&l(a,"name",{configurable:!0,get:function(){try{return u(s,c(this))[1]}catch(t){return""}}})},35837:(t,e,n)=>{var r=n(82109),i=n(17854);r({global:!0,forced:i.globalThis!==i},{globalThis:i})},38862:(t,e,n)=>{var r=n(82109),i=n(35005),o=n(22104),l=n(46916),a=n(1702),c=n(47293),s=n(43157),u=n(60614),d=n(70111),h=n(52190),p=n(50206),b=n(36293),Z=i("JSON","stringify"),m=a(/./.exec),g=a("".charAt),y=a("".charCodeAt),f=a("".replace),I=a(1..toString),G=/[\uD800-\uDFFF]/g,X=/^[\uD800-\uDBFF]$/,v=/^[\uDC00-\uDFFF]$/,V=!b||c((function(){var t=i("Symbol")();return"[null]"!=Z([t])||"{}"!=Z({a:t})||"{}"!=Z(Object(t))})),W=c((function(){return'"\\udf06\\ud834"'!==Z("\udf06\ud834")||'"\\udead"'!==Z("\udead")})),R=function(t,e){var n=p(arguments),r=e;if((d(e)||void 0!==t)&&!h(t))return s(e)||(e=function(t,e){if(u(r)&&(e=l(r,this,t,e)),!h(e))return e}),n[1]=e,o(Z,null,n)},S=function(t,e,n){var r=g(n,e-1),i=g(n,e+1);return m(X,t)&&!m(v,i)||m(v,t)&&!m(X,r)?"\\u"+I(y(t,0),16):t};Z&&r({target:"JSON",stat:!0,arity:3,forced:V||W},{stringify:function(t,e,n){var r=p(arguments),i=o(V?R:Z,null,r);return W&&"string"==typeof i?f(i,G,S):i}})},73706:(t,e,n)=>{var r=n(17854);n(58003)(r.JSON,"JSON",!0)},69098:(t,e,n)=>{"use strict";n(77710)("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),n(95631))},51532:(t,e,n)=>{n(69098)},99752:(t,e,n)=>{var r=n(82109),i=n(26513),o=Math.acosh,l=Math.log,a=Math.sqrt,c=Math.LN2;r({target:"Math",stat:!0,forced:!o||710!=Math.floor(o(Number.MAX_VALUE))||o(1/0)!=1/0},{acosh:function(t){var e=+t;return e<1?NaN:e>94906265.62425156?l(e)+c:i(e-1+a(e-1)*a(e+1))}})},82376:(t,e,n)=>{var r=n(82109),i=Math.asinh,o=Math.log,l=Math.sqrt;r({target:"Math",stat:!0,forced:!(i&&1/i(0)>0)},{asinh:function t(e){var n=+e;return isFinite(n)&&0!=n?n<0?-t(-n):o(n+l(n*n+1)):n}})},73181:(t,e,n)=>{var r=n(82109),i=Math.atanh,o=Math.log;r({target:"Math",stat:!0,forced:!(i&&1/i(-0)<0)},{atanh:function(t){var e=+t;return 0==e?e:o((1+e)/(1-e))/2}})},23484:(t,e,n)=>{var r=n(82109),i=n(64310),o=Math.abs,l=Math.pow;r({target:"Math",stat:!0},{cbrt:function(t){var e=+t;return i(e)*l(o(e),1/3)}})},2388:(t,e,n)=>{var r=n(82109),i=Math.floor,o=Math.log,l=Math.LOG2E;r({target:"Math",stat:!0},{clz32:function(t){var e=t>>>0;return e?31-i(o(e+.5)*l):32}})},88621:(t,e,n)=>{var r=n(82109),i=n(66736),o=Math.cosh,l=Math.abs,a=Math.E;r({target:"Math",stat:!0,forced:!o||o(710)===1/0},{cosh:function(t){var e=i(l(t)-1)+1;return(e+1/(e*a*a))*(a/2)}})},60403:(t,e,n)=>{var r=n(82109),i=n(66736);r({target:"Math",stat:!0,forced:i!=Math.expm1},{expm1:i})},84755:(t,e,n)=>{n(82109)({target:"Math",stat:!0},{fround:n(26130)})},25438:(t,e,n)=>{var r=n(82109),i=Math.hypot,o=Math.abs,l=Math.sqrt;r({target:"Math",stat:!0,arity:2,forced:!!i&&i(1/0,NaN)!==1/0},{hypot:function(t,e){for(var n,r,i=0,a=0,c=arguments.length,s=0;a<c;)s<(n=o(arguments[a++]))?(i=i*(r=s/n)*r+1,s=n):i+=n>0?(r=n/s)*r:n;return s===1/0?1/0:s*l(i)}})},90332:(t,e,n)=>{var r=n(82109),i=n(47293),o=Math.imul;r({target:"Math",stat:!0,forced:i((function(){return-5!=o(4294967295,5)||2!=o.length}))},{imul:function(t,e){var n=65535,r=+t,i=+e,o=n&r,l=n&i;return 0|o*l+((n&r>>>16)*l+o*(n&i>>>16)<<16>>>0)}})},40658:(t,e,n)=>{n(82109)({target:"Math",stat:!0},{log10:n(20403)})},40197:(t,e,n)=>{n(82109)({target:"Math",stat:!0},{log1p:n(26513)})},44914:(t,e,n)=>{var r=n(82109),i=Math.log,o=Math.LN2;r({target:"Math",stat:!0},{log2:function(t){return i(t)/o}})},52420:(t,e,n)=>{n(82109)({target:"Math",stat:!0},{sign:n(64310)})},60160:(t,e,n)=>{var r=n(82109),i=n(47293),o=n(66736),l=Math.abs,a=Math.exp,c=Math.E;r({target:"Math",stat:!0,forced:i((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){var e=+t;return l(e)<1?(o(e)-o(-e))/2:(a(e-1)-a(-e-1))*(c/2)}})},60970:(t,e,n)=>{var r=n(82109),i=n(66736),o=Math.exp;r({target:"Math",stat:!0},{tanh:function(t){var e=+t,n=i(e),r=i(-e);return n==1/0?1:r==1/0?-1:(n-r)/(o(e)+o(-e))}})},10408:(t,e,n)=>{n(58003)(Math,"Math",!0)},73689:(t,e,n)=>{n(82109)({target:"Math",stat:!0},{trunc:n(74758)})},9653:(t,e,n)=>{"use strict";var r=n(19781),i=n(17854),o=n(1702),l=n(54705),a=n(98052),c=n(92597),s=n(79587),u=n(47976),d=n(52190),h=n(57593),p=n(47293),b=n(8006).f,Z=n(31236).f,m=n(3070).f,g=n(50863),y=n(53111).trim,f="Number",I=i[f],G=I.prototype,X=i.TypeError,v=o("".slice),V=o("".charCodeAt),W=function(t){var e=h(t,"number");return"bigint"==typeof e?e:R(e)},R=function(t){var e,n,r,i,o,l,a,c,s=h(t,"number");if(d(s))throw X("Cannot convert a Symbol value to a number");if("string"==typeof s&&s.length>2)if(s=y(s),43===(e=V(s,0))||45===e){if(88===(n=V(s,2))||120===n)return NaN}else if(48===e){switch(V(s,1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+s}for(l=(o=v(s,2)).length,a=0;a<l;a++)if((c=V(o,a))<48||c>i)return NaN;return parseInt(o,r)}return+s};if(l(f,!I(" 0o1")||!I("0b1")||I("+0x1"))){for(var S,C=function(t){var e=arguments.length<1?0:I(W(t)),n=this;return u(G,n)&&p((function(){g(n)}))?s(Object(e),n,C):e},Y=r?b(I):"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(","),K=0;Y.length>K;K++)c(I,S=Y[K])&&!c(C,S)&&m(C,S,Z(I,S));C.prototype=G,G.constructor=C,a(i,f,C,{constructor:!0})}},93299:(t,e,n)=>{n(82109)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})},35192:(t,e,n)=>{n(82109)({target:"Number",stat:!0},{isFinite:n(77023)})},33161:(t,e,n)=>{n(82109)({target:"Number",stat:!0},{isInteger:n(55988)})},44048:(t,e,n)=>{n(82109)({target:"Number",stat:!0},{isNaN:function(t){return t!=t}})},78285:(t,e,n)=>{var r=n(82109),i=n(55988),o=Math.abs;r({target:"Number",stat:!0},{isSafeInteger:function(t){return i(t)&&o(t)<=9007199254740991}})},44363:(t,e,n)=>{n(82109)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})},55994:(t,e,n)=>{n(82109)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})},61874:(t,e,n)=>{var r=n(82109),i=n(2814);r({target:"Number",stat:!0,forced:Number.parseFloat!=i},{parseFloat:i})},9494:(t,e,n)=>{var r=n(82109),i=n(83009);r({target:"Number",stat:!0,forced:Number.parseInt!=i},{parseInt:i})},56977:(t,e,n)=>{"use strict";var r=n(82109),i=n(1702),o=n(19303),l=n(50863),a=n(38415),c=n(47293),s=RangeError,u=String,d=Math.floor,h=i(a),p=i("".slice),b=i(1..toFixed),Z=function(t,e,n){return 0===e?n:e%2==1?Z(t,e-1,n*t):Z(t*t,e/2,n)},m=function(t,e,n){for(var r=-1,i=n;++r<6;)i+=e*t[r],t[r]=i%1e7,i=d(i/1e7)},g=function(t,e){for(var n=6,r=0;--n>=0;)r+=t[n],t[n]=d(r/e),r=r%e*1e7},y=function(t){for(var e=6,n="";--e>=0;)if(""!==n||0===e||0!==t[e]){var r=u(t[e]);n=""===n?r:n+h("0",7-r.length)+r}return n};r({target:"Number",proto:!0,forced:c((function(){return"0.000"!==b(8e-5,3)||"1"!==b(.9,0)||"1.25"!==b(1.255,2)||"1000000000000000128"!==b(0xde0b6b3a7640080,0)}))||!c((function(){b({})}))},{toFixed:function(t){var e,n,r,i,a=l(this),c=o(t),d=[0,0,0,0,0,0],b="",f="0";if(c<0||c>20)throw s("Incorrect fraction digits");if(a!=a)return"NaN";if(a<=-1e21||a>=1e21)return u(a);if(a<0&&(b="-",a=-a),a>1e-21)if(n=(e=function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}(a*Z(2,69,1))-69)<0?a*Z(2,-e,1):a/Z(2,e,1),n*=4503599627370496,(e=52-e)>0){for(m(d,0,n),r=c;r>=7;)m(d,1e7,0),r-=7;for(m(d,Z(10,r,1),0),r=e-1;r>=23;)g(d,1<<23),r-=23;g(d,1<<r),m(d,1,1),g(d,2),f=y(d)}else m(d,0,n),m(d,1<<-e,0),f=y(d)+h("0",c);return c>0?b+((i=f.length)<=c?"0."+h("0",c-i)+f:p(f,0,i-c)+"."+p(f,i-c)):b+f}})},55147:(t,e,n)=>{"use strict";var r=n(82109),i=n(1702),o=n(47293),l=n(50863),a=i(1..toPrecision);r({target:"Number",proto:!0,forced:o((function(){return"1"!==a(1,void 0)}))||!o((function(){a({})}))},{toPrecision:function(t){return void 0===t?a(l(this)):a(l(this),t)}})},19601:(t,e,n)=>{var r=n(82109),i=n(21574);r({target:"Object",stat:!0,arity:2,forced:Object.assign!==i},{assign:i})},78011:(t,e,n)=>{n(82109)({target:"Object",stat:!0,sham:!n(19781)},{create:n(70030)})},59595:(t,e,n)=>{"use strict";var r=n(82109),i=n(19781),o=n(69026),l=n(19662),a=n(47908),c=n(3070);i&&r({target:"Object",proto:!0,forced:o},{__defineGetter__:function(t,e){c.f(a(this),t,{get:l(e),enumerable:!0,configurable:!0})}})},33321:(t,e,n)=>{var r=n(82109),i=n(19781),o=n(36048).f;r({target:"Object",stat:!0,forced:Object.defineProperties!==o,sham:!i},{defineProperties:o})},69070:(t,e,n)=>{var r=n(82109),i=n(19781),o=n(3070).f;r({target:"Object",stat:!0,forced:Object.defineProperty!==o,sham:!i},{defineProperty:o})},35500:(t,e,n)=>{"use strict";var r=n(82109),i=n(19781),o=n(69026),l=n(19662),a=n(47908),c=n(3070);i&&r({target:"Object",proto:!0,forced:o},{__defineSetter__:function(t,e){c.f(a(this),t,{set:l(e),enumerable:!0,configurable:!0})}})},69720:(t,e,n)=>{var r=n(82109),i=n(44699).entries;r({target:"Object",stat:!0},{entries:function(t){return i(t)}})},43371:(t,e,n)=>{var r=n(82109),i=n(76677),o=n(47293),l=n(70111),a=n(62423).onFreeze,c=Object.freeze;r({target:"Object",stat:!0,forced:o((function(){c(1)})),sham:!i},{freeze:function(t){return c&&l(t)?c(a(t)):t}})},38559:(t,e,n)=>{var r=n(82109),i=n(20408),o=n(86135);r({target:"Object",stat:!0},{fromEntries:function(t){var e={};return i(t,(function(t,n){o(e,t,n)}),{AS_ENTRIES:!0}),e}})},38880:(t,e,n)=>{var r=n(82109),i=n(47293),o=n(45656),l=n(31236).f,a=n(19781),c=i((function(){l(1)}));r({target:"Object",stat:!0,forced:!a||c,sham:!a},{getOwnPropertyDescriptor:function(t,e){return l(o(t),e)}})},49337:(t,e,n)=>{var r=n(82109),i=n(19781),o=n(53887),l=n(45656),a=n(31236),c=n(86135);r({target:"Object",stat:!0,sham:!i},{getOwnPropertyDescriptors:function(t){for(var e,n,r=l(t),i=a.f,s=o(r),u={},d=0;s.length>d;)void 0!==(n=i(r,e=s[d++]))&&c(u,e,n);return u}})},36210:(t,e,n)=>{var r=n(82109),i=n(47293),o=n(1156).f;r({target:"Object",stat:!0,forced:i((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:o})},29660:(t,e,n)=>{var r=n(82109),i=n(36293),o=n(47293),l=n(25181),a=n(47908);r({target:"Object",stat:!0,forced:!i||o((function(){l.f(1)}))},{getOwnPropertySymbols:function(t){var e=l.f;return e?e(a(t)):[]}})},30489:(t,e,n)=>{var r=n(82109),i=n(47293),o=n(47908),l=n(79518),a=n(49920);r({target:"Object",stat:!0,forced:i((function(){l(1)})),sham:!a},{getPrototypeOf:function(t){return l(o(t))}})},41825:(t,e,n)=>{var r=n(82109),i=n(52050);r({target:"Object",stat:!0,forced:Object.isExtensible!==i},{isExtensible:i})},98410:(t,e,n)=>{var r=n(82109),i=n(47293),o=n(70111),l=n(84326),a=n(7556),c=Object.isFrozen;r({target:"Object",stat:!0,forced:i((function(){c(1)}))||a},{isFrozen:function(t){return!o(t)||!(!a||"ArrayBuffer"!=l(t))||!!c&&c(t)}})},72200:(t,e,n)=>{var r=n(82109),i=n(47293),o=n(70111),l=n(84326),a=n(7556),c=Object.isSealed;r({target:"Object",stat:!0,forced:i((function(){c(1)}))||a},{isSealed:function(t){return!o(t)||!(!a||"ArrayBuffer"!=l(t))||!!c&&c(t)}})},43304:(t,e,n)=>{n(82109)({target:"Object",stat:!0},{is:n(81150)})},47941:(t,e,n)=>{var r=n(82109),i=n(47908),o=n(81956);r({target:"Object",stat:!0,forced:n(47293)((function(){o(1)}))},{keys:function(t){return o(i(t))}})},94869:(t,e,n)=>{"use strict";var r=n(82109),i=n(19781),o=n(69026),l=n(47908),a=n(34948),c=n(79518),s=n(31236).f;i&&r({target:"Object",proto:!0,forced:o},{__lookupGetter__:function(t){var e,n=l(this),r=a(t);do{if(e=s(n,r))return e.get}while(n=c(n))}})},33952:(t,e,n)=>{"use strict";var r=n(82109),i=n(19781),o=n(69026),l=n(47908),a=n(34948),c=n(79518),s=n(31236).f;i&&r({target:"Object",proto:!0,forced:o},{__lookupSetter__:function(t){var e,n=l(this),r=a(t);do{if(e=s(n,r))return e.set}while(n=c(n))}})},57227:(t,e,n)=>{var r=n(82109),i=n(70111),o=n(62423).onFreeze,l=n(76677),a=n(47293),c=Object.preventExtensions;r({target:"Object",stat:!0,forced:a((function(){c(1)})),sham:!l},{preventExtensions:function(t){return c&&i(t)?c(o(t)):t}})},60514:(t,e,n)=>{var r=n(82109),i=n(70111),o=n(62423).onFreeze,l=n(76677),a=n(47293),c=Object.seal;r({target:"Object",stat:!0,forced:a((function(){c(1)})),sham:!l},{seal:function(t){return c&&i(t)?c(o(t)):t}})},68304:(t,e,n)=>{n(82109)({target:"Object",stat:!0},{setPrototypeOf:n(27674)})},41539:(t,e,n)=>{var r=n(51694),i=n(98052),o=n(90288);r||i(Object.prototype,"toString",o,{unsafe:!0})},26833:(t,e,n)=>{var r=n(82109),i=n(44699).values;r({target:"Object",stat:!0},{values:function(t){return i(t)}})},54678:(t,e,n)=>{var r=n(82109),i=n(2814);r({global:!0,forced:parseFloat!=i},{parseFloat:i})},91058:(t,e,n)=>{var r=n(82109),i=n(83009);r({global:!0,forced:parseInt!=i},{parseInt:i})},17922:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),l=n(78523),a=n(12534),c=n(20408);r({target:"Promise",stat:!0},{allSettled:function(t){var e=this,n=l.f(e),r=n.resolve,s=n.reject,u=a((function(){var n=o(e.resolve),l=[],a=0,s=1;c(t,(function(t){var o=a++,c=!1;s++,i(n,e,t).then((function(t){c||(c=!0,l[o]={status:"fulfilled",value:t},--s||r(l))}),(function(t){c||(c=!0,l[o]={status:"rejected",reason:t},--s||r(l))}))})),--s||r(l)}));return u.error&&s(u.value),n.promise}})},70821:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),l=n(78523),a=n(12534),c=n(20408);r({target:"Promise",stat:!0,forced:n(80612)},{all:function(t){var e=this,n=l.f(e),r=n.resolve,s=n.reject,u=a((function(){var n=o(e.resolve),l=[],a=0,u=1;c(t,(function(t){var o=a++,c=!1;u++,i(n,e,t).then((function(t){c||(c=!0,l[o]=t,--u||r(l))}),s)})),--u||r(l)}));return u.error&&s(u.value),n.promise}})},34668:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),l=n(35005),a=n(78523),c=n(12534),s=n(20408),u="No one promise resolved";r({target:"Promise",stat:!0},{any:function(t){var e=this,n=l("AggregateError"),r=a.f(e),d=r.resolve,h=r.reject,p=c((function(){var r=o(e.resolve),l=[],a=0,c=1,p=!1;s(t,(function(t){var o=a++,s=!1;c++,i(r,e,t).then((function(t){s||p||(p=!0,d(t))}),(function(t){s||p||(s=!0,l[o]=t,--c||h(new n(l,u)))}))})),--c||h(new n(l,u))}));return p.error&&h(p.value),r.promise}})},94164:(t,e,n)=>{"use strict";var r=n(82109),i=n(31913),o=n(63702).CONSTRUCTOR,l=n(2492),a=n(35005),c=n(60614),s=n(98052),u=l&&l.prototype;if(r({target:"Promise",proto:!0,forced:o,real:!0},{catch:function(t){return this.then(void 0,t)}}),!i&&c(l)){var d=a("Promise").prototype.catch;u.catch!==d&&s(u,"catch",d,{unsafe:!0})}},43401:(t,e,n)=>{"use strict";var r,i,o,l=n(82109),a=n(31913),c=n(35268),s=n(17854),u=n(46916),d=n(98052),h=n(27674),p=n(58003),b=n(96340),Z=n(19662),m=n(60614),g=n(70111),y=n(25787),f=n(36707),I=n(20261).set,G=n(95948),X=n(842),v=n(12534),V=n(18572),W=n(29909),R=n(2492),S=n(63702),C=n(78523),Y="Promise",K=S.CONSTRUCTOR,N=S.REJECTION_EVENT,k=S.SUBCLASSING,J=W.getterFor(Y),T=W.set,L=R&&R.prototype,x=R,U=L,H=s.TypeError,w=s.document,F=s.process,A=C.f,B=A,z=!!(w&&w.createEvent&&s.dispatchEvent),P="unhandledrejection",j=function(t){var e;return!(!g(t)||!m(e=t.then))&&e},E=function(t,e){var n,r,i,o=e.value,l=1==e.state,a=l?t.ok:t.fail,c=t.resolve,s=t.reject,d=t.domain;try{a?(l||(2===e.rejection&&_(e),e.rejection=1),!0===a?n=o:(d&&d.enter(),n=a(o),d&&(d.exit(),i=!0)),n===t.promise?s(H("Promise-chain cycle")):(r=j(n))?u(r,n,c,s):c(n)):s(o)}catch(t){d&&!i&&d.exit(),s(t)}},M=function(t,e){t.notified||(t.notified=!0,G((function(){for(var n,r=t.reactions;n=r.get();)E(n,t);t.notified=!1,e&&!t.rejection&&O(t)})))},Q=function(t,e,n){var r,i;z?((r=w.createEvent("Event")).promise=e,r.reason=n,r.initEvent(t,!1,!0),s.dispatchEvent(r)):r={promise:e,reason:n},!N&&(i=s["on"+t])?i(r):t===P&&X("Unhandled promise rejection",n)},O=function(t){u(I,s,(function(){var e,n=t.facade,r=t.value;if(D(t)&&(e=v((function(){c?F.emit("unhandledRejection",r,n):Q(P,n,r)})),t.rejection=c||D(t)?2:1,e.error))throw e.value}))},D=function(t){return 1!==t.rejection&&!t.parent},_=function(t){u(I,s,(function(){var e=t.facade;c?F.emit("rejectionHandled",e):Q("rejectionhandled",e,t.value)}))},q=function(t,e,n){return function(r){t(e,r,n)}},$=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=2,M(t,!0))},tt=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw H("Promise can't be resolved itself");var r=j(e);r?G((function(){var n={done:!1};try{u(r,e,q(tt,n,t),q($,n,t))}catch(e){$(n,e,t)}})):(t.value=e,t.state=1,M(t,!1))}catch(e){$({done:!1},e,t)}}};if(K&&(U=(x=function(t){y(this,U),Z(t),u(r,this);var e=J(this);try{t(q(tt,e),q($,e))}catch(t){$(e,t)}}).prototype,(r=function(t){T(this,{type:Y,done:!1,notified:!1,parent:!1,reactions:new V,rejection:!1,state:0,value:void 0})}).prototype=d(U,"then",(function(t,e){var n=J(this),r=A(f(this,x));return n.parent=!0,r.ok=!m(t)||t,r.fail=m(e)&&e,r.domain=c?F.domain:void 0,0==n.state?n.reactions.add(r):G((function(){E(r,n)})),r.promise})),i=function(){var t=new r,e=J(t);this.promise=t,this.resolve=q(tt,e),this.reject=q($,e)},C.f=A=function(t){return t===x||void 0===t?new i(t):B(t)},!a&&m(R)&&L!==Object.prototype)){o=L.then,k||d(L,"then",(function(t,e){var n=this;return new x((function(t,e){u(o,n,t,e)})).then(t,e)}),{unsafe:!0});try{delete L.constructor}catch(t){}h&&h(L,U)}l({global:!0,constructor:!0,wrap:!0,forced:K},{Promise:x}),p(x,Y,!1,!0),b(Y)},17727:(t,e,n)=>{"use strict";var r=n(82109),i=n(31913),o=n(2492),l=n(47293),a=n(35005),c=n(60614),s=n(36707),u=n(69478),d=n(98052),h=o&&o.prototype;if(r({target:"Promise",proto:!0,real:!0,forced:!!o&&l((function(){h.finally.call({then:function(){}},(function(){}))}))},{finally:function(t){var e=s(this,a("Promise")),n=c(t);return this.then(n?function(n){return u(e,t()).then((function(){return n}))}:t,n?function(n){return u(e,t()).then((function(){throw n}))}:t)}}),!i&&c(o)){var p=a("Promise").prototype.finally;h.finally!==p&&d(h,"finally",p,{unsafe:!0})}},88674:(t,e,n)=>{n(43401),n(70821),n(94164),n(6027),n(60683),n(96294)},6027:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),l=n(78523),a=n(12534),c=n(20408);r({target:"Promise",stat:!0,forced:n(80612)},{race:function(t){var e=this,n=l.f(e),r=n.reject,s=a((function(){var l=o(e.resolve);c(t,(function(t){i(l,e,t).then(n.resolve,r)}))}));return s.error&&r(s.value),n.promise}})},60683:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(78523);r({target:"Promise",stat:!0,forced:n(63702).CONSTRUCTOR},{reject:function(t){var e=o.f(this);return i(e.reject,void 0,t),e.promise}})},96294:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(31913),l=n(2492),a=n(63702).CONSTRUCTOR,c=n(69478),s=i("Promise"),u=o&&!a;r({target:"Promise",stat:!0,forced:o||a},{resolve:function(t){return c(u&&this===s?l:this,t)}})},36535:(t,e,n)=>{var r=n(82109),i=n(22104),o=n(19662),l=n(19670);r({target:"Reflect",stat:!0,forced:!n(47293)((function(){Reflect.apply((function(){}))}))},{apply:function(t,e,n){return i(o(t),e,l(n))}})},12419:(t,e,n)=>{var r=n(82109),i=n(35005),o=n(22104),l=n(27065),a=n(39483),c=n(19670),s=n(70111),u=n(70030),d=n(47293),h=i("Reflect","construct"),p=Object.prototype,b=[].push,Z=d((function(){function t(){}return!(h((function(){}),[],t)instanceof t)})),m=!d((function(){h((function(){}))})),g=Z||m;r({target:"Reflect",stat:!0,forced:g,sham:g},{construct:function(t,e){a(t),c(e);var n=arguments.length<3?t:a(arguments[2]);if(m&&!Z)return h(t,e,n);if(t==n){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var r=[null];return o(b,r,e),new(o(l,t,r))}var i=n.prototype,d=u(s(i)?i:p),g=o(t,d,e);return s(g)?g:d}})},69596:(t,e,n)=>{var r=n(82109),i=n(19781),o=n(19670),l=n(34948),a=n(3070);r({target:"Reflect",stat:!0,forced:n(47293)((function(){Reflect.defineProperty(a.f({},1,{value:1}),1,{value:2})})),sham:!i},{defineProperty:function(t,e,n){o(t);var r=l(e);o(n);try{return a.f(t,r,n),!0}catch(t){return!1}}})},52586:(t,e,n)=>{var r=n(82109),i=n(19670),o=n(31236).f;r({target:"Reflect",stat:!0},{deleteProperty:function(t,e){var n=o(i(t),e);return!(n&&!n.configurable)&&delete t[e]}})},95683:(t,e,n)=>{var r=n(82109),i=n(19781),o=n(19670),l=n(31236);r({target:"Reflect",stat:!0,sham:!i},{getOwnPropertyDescriptor:function(t,e){return l.f(o(t),e)}})},39361:(t,e,n)=>{var r=n(82109),i=n(19670),o=n(79518);r({target:"Reflect",stat:!0,sham:!n(49920)},{getPrototypeOf:function(t){return o(i(t))}})},74819:(t,e,n)=>{var r=n(82109),i=n(46916),o=n(70111),l=n(19670),a=n(45032),c=n(31236),s=n(79518);r({target:"Reflect",stat:!0},{get:function t(e,n){var r,u,d=arguments.length<3?e:arguments[2];return l(e)===d?e[n]:(r=c.f(e,n))?a(r)?r.value:void 0===r.get?void 0:i(r.get,d):o(u=s(e))?t(u,n,d):void 0}})},51037:(t,e,n)=>{n(82109)({target:"Reflect",stat:!0},{has:function(t,e){return e in t}})},5898:(t,e,n)=>{var r=n(82109),i=n(19670),o=n(52050);r({target:"Reflect",stat:!0},{isExtensible:function(t){return i(t),o(t)}})},67556:(t,e,n)=>{n(82109)({target:"Reflect",stat:!0},{ownKeys:n(53887)})},14361:(t,e,n)=>{var r=n(82109),i=n(35005),o=n(19670);r({target:"Reflect",stat:!0,sham:!n(76677)},{preventExtensions:function(t){o(t);try{var e=i("Object","preventExtensions");return e&&e(t),!0}catch(t){return!1}}})},39532:(t,e,n)=>{var r=n(82109),i=n(19670),o=n(96077),l=n(27674);l&&r({target:"Reflect",stat:!0},{setPrototypeOf:function(t,e){i(t),o(e);try{return l(t,e),!0}catch(t){return!1}}})},83593:(t,e,n)=>{var r=n(82109),i=n(46916),o=n(19670),l=n(70111),a=n(45032),c=n(47293),s=n(3070),u=n(31236),d=n(79518),h=n(79114);r({target:"Reflect",stat:!0,forced:c((function(){var t=function(){},e=s.f(new t,"a",{configurable:!0});return!1!==Reflect.set(t.prototype,"a",1,e)}))},{set:function t(e,n,r){var c,p,b,Z=arguments.length<4?e:arguments[3],m=u.f(o(e),n);if(!m){if(l(p=d(e)))return t(p,n,r,Z);m=h(0)}if(a(m)){if(!1===m.writable||!l(Z))return!1;if(c=u.f(Z,n)){if(c.get||c.set||!1===c.writable)return!1;c.value=r,s.f(Z,n,c)}else s.f(Z,n,h(0,r))}else{if(void 0===(b=m.set))return!1;i(b,Z,r)}return!0}})},24603:(t,e,n)=>{var r=n(19781),i=n(17854),o=n(1702),l=n(54705),a=n(79587),c=n(68880),s=n(8006).f,u=n(47976),d=n(47850),h=n(41340),p=n(34706),b=n(52999),Z=n(2626),m=n(98052),g=n(47293),y=n(92597),f=n(29909).enforce,I=n(96340),G=n(5112),X=n(9441),v=n(38173),V=G("match"),W=i.RegExp,R=W.prototype,S=i.SyntaxError,C=o(R.exec),Y=o("".charAt),K=o("".replace),N=o("".indexOf),k=o("".slice),J=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,T=/a/g,L=/a/g,x=new W(T)!==T,U=b.MISSED_STICKY,H=b.UNSUPPORTED_Y;if(l("RegExp",r&&(!x||U||X||v||g((function(){return L[V]=!1,W(T)!=T||W(L)==L||"/a/i"!=W(T,"i")}))))){for(var w=function(t,e){var n,r,i,o,l,s,b=u(R,this),Z=d(t),m=void 0===e,g=[],I=t;if(!b&&Z&&m&&t.constructor===w)return t;if((Z||u(R,t))&&(t=t.source,m&&(e=p(I))),t=void 0===t?"":h(t),e=void 0===e?"":h(e),I=t,X&&"dotAll"in T&&(r=!!e&&N(e,"s")>-1)&&(e=K(e,/s/g,"")),n=e,U&&"sticky"in T&&(i=!!e&&N(e,"y")>-1)&&H&&(e=K(e,/y/g,"")),v&&(o=function(t){for(var e,n=t.length,r=0,i="",o=[],l={},a=!1,c=!1,s=0,u="";r<=n;r++){if("\\"===(e=Y(t,r)))e+=Y(t,++r);else if("]"===e)a=!1;else if(!a)switch(!0){case"["===e:a=!0;break;case"("===e:C(J,k(t,r+1))&&(r+=2,c=!0),i+=e,s++;continue;case">"===e&&c:if(""===u||y(l,u))throw new S("Invalid capture group name");l[u]=!0,o[o.length]=[u,s],c=!1,u="";continue}c?u+=e:i+=e}return[i,o]}(t),t=o[0],g=o[1]),l=a(W(t,e),b?this:R,w),(r||i||g.length)&&(s=f(l),r&&(s.dotAll=!0,s.raw=w(function(t){for(var e,n=t.length,r=0,i="",o=!1;r<=n;r++)"\\"!==(e=Y(t,r))?o||"."!==e?("["===e?o=!0:"]"===e&&(o=!1),i+=e):i+="[\\s\\S]":i+=e+Y(t,++r);return i}(t),n)),i&&(s.sticky=!0),g.length&&(s.groups=g)),t!==I)try{c(l,"source",""===I?"(?:)":I)}catch(t){}return l},F=s(W),A=0;F.length>A;)Z(w,W,F[A++]);R.constructor=w,w.prototype=R,m(i,"RegExp",w,{constructor:!0})}I("RegExp")},74916:(t,e,n)=>{"use strict";var r=n(82109),i=n(22261);r({target:"RegExp",proto:!0,forced:/./.exec!==i},{exec:i})},92087:(t,e,n)=>{var r=n(17854),i=n(19781),o=n(47045),l=n(67066),a=n(47293),c=r.RegExp,s=c.prototype;i&&a((function(){var t=!0;try{c(".","d")}catch(e){t=!1}var e={},n="",r=t?"dgimsy":"gimsy",i=function(t,r){Object.defineProperty(e,t,{get:function(){return n+=r,!0}})},o={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var l in t&&(o.hasIndices="d"),o)i(l,o[l]);return Object.getOwnPropertyDescriptor(s,"flags").get.call(e)!==r||n!==r}))&&o(s,"flags",{configurable:!0,get:l})},88386:(t,e,n)=>{var r=n(19781),i=n(52999).MISSED_STICKY,o=n(84326),l=n(47045),a=n(29909).get,c=RegExp.prototype,s=TypeError;r&&i&&l(c,"sticky",{configurable:!0,get:function(){if(this!==c){if("RegExp"===o(this))return!!a(this).sticky;throw s("Incompatible receiver, RegExp required")}}})},77601:(t,e,n)=>{"use strict";n(74916);var r,i,o=n(82109),l=n(46916),a=n(60614),c=n(19670),s=n(41340),u=(r=!1,(i=/[ac]/).exec=function(){return r=!0,/./.exec.apply(this,arguments)},!0===i.test("abc")&&r),d=/./.test;o({target:"RegExp",proto:!0,forced:!u},{test:function(t){var e=c(this),n=s(t),r=e.exec;if(!a(r))return l(d,e,n);var i=l(r,e,n);return null!==i&&(c(i),!0)}})},39714:(t,e,n)=>{"use strict";var r=n(76530).PROPER,i=n(98052),o=n(19670),l=n(41340),a=n(47293),c=n(34706),s="toString",u=RegExp.prototype[s],d=a((function(){return"/a/b"!=u.call({source:"a",flags:"b"})})),h=r&&u.name!=s;(d||h)&&i(RegExp.prototype,s,(function(){var t=o(this);return"/"+l(t.source)+"/"+l(c(t))}),{unsafe:!0})},37227:(t,e,n)=>{"use strict";n(77710)("Set",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),n(95631))},70189:(t,e,n)=>{n(37227)},15218:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("anchor")},{anchor:function(t){return i(this,"a","name",t)}})},74475:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("big")},{big:function(){return i(this,"big","","")}})},57929:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("blink")},{blink:function(){return i(this,"blink","","")}})},50915:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("bold")},{bold:function(){return i(this,"b","","")}})},79841:(t,e,n)=>{"use strict";var r=n(82109),i=n(28710).codeAt;r({target:"String",proto:!0},{codePointAt:function(t){return i(this,t)}})},27852:(t,e,n)=>{"use strict";var r,i=n(82109),o=n(21470),l=n(31236).f,a=n(17466),c=n(41340),s=n(3929),u=n(84488),d=n(84964),h=n(31913),p=o("".endsWith),b=o("".slice),Z=Math.min,m=d("endsWith");i({target:"String",proto:!0,forced:!(!h&&!m&&(r=l(String.prototype,"endsWith"),r&&!r.writable)||m)},{endsWith:function(t){var e=c(u(this));s(t);var n=arguments.length>1?arguments[1]:void 0,r=e.length,i=void 0===n?r:Z(a(n),r),o=c(t);return p?p(e,o,i):b(e,i-o.length,i)===o}})},29253:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("fixed")},{fixed:function(){return i(this,"tt","","")}})},42125:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("fontcolor")},{fontcolor:function(t){return i(this,"font","color",t)}})},78830:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("fontsize")},{fontsize:function(t){return i(this,"font","size",t)}})},94953:(t,e,n)=>{var r=n(82109),i=n(1702),o=n(51400),l=RangeError,a=String.fromCharCode,c=String.fromCodePoint,s=i([].join);r({target:"String",stat:!0,arity:1,forced:!!c&&1!=c.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,i=0;r>i;){if(e=+arguments[i++],o(e,1114111)!==e)throw l(e+" is not a valid code point");n[i]=e<65536?a(e):a(55296+((e-=65536)>>10),e%1024+56320)}return s(n,"")}})},32023:(t,e,n)=>{"use strict";var r=n(82109),i=n(1702),o=n(3929),l=n(84488),a=n(41340),c=n(84964),s=i("".indexOf);r({target:"String",proto:!0,forced:!c("includes")},{includes:function(t){return!!~s(a(l(this)),a(o(t)),arguments.length>1?arguments[1]:void 0)}})},58734:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("italics")},{italics:function(){return i(this,"i","","")}})},78783:(t,e,n)=>{"use strict";var r=n(28710).charAt,i=n(41340),o=n(29909),l=n(51656),a=n(76178),c="String Iterator",s=o.set,u=o.getterFor(c);l(String,"String",(function(t){s(this,{type:c,string:i(t),index:0})}),(function(){var t,e=u(this),n=e.string,i=e.index;return i>=n.length?a(void 0,!0):(t=r(n,i),e.index+=t.length,a(t,!1))}))},29254:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("link")},{link:function(t){return i(this,"a","href",t)}})},76373:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(21470),l=n(63061),a=n(76178),c=n(84488),s=n(17466),u=n(41340),d=n(19670),h=n(68554),p=n(84326),b=n(47850),Z=n(34706),m=n(58173),g=n(98052),y=n(47293),f=n(5112),I=n(36707),G=n(31530),X=n(97651),v=n(29909),V=n(31913),W=f("matchAll"),R="RegExp String",S=R+" Iterator",C=v.set,Y=v.getterFor(S),K=RegExp.prototype,N=TypeError,k=o("".indexOf),J=o("".matchAll),T=!!J&&!y((function(){J("a",/./)})),L=l((function(t,e,n,r){C(this,{type:S,regexp:t,string:e,global:n,unicode:r,done:!1})}),R,(function(){var t=Y(this);if(t.done)return a(void 0,!0);var e=t.regexp,n=t.string,r=X(e,n);return null===r?(t.done=!0,a(void 0,!0)):t.global?(""===u(r[0])&&(e.lastIndex=G(n,s(e.lastIndex),t.unicode)),a(r,!1)):(t.done=!0,a(r,!1))})),x=function(t){var e,n,r,i=d(this),o=u(t),l=I(i,RegExp),a=u(Z(i));return e=new l(l===RegExp?i.source:i,a),n=!!~k(a,"g"),r=!!~k(a,"u"),e.lastIndex=s(i.lastIndex),new L(e,o,n,r)};r({target:"String",proto:!0,forced:T},{matchAll:function(t){var e,n,r,o,l=c(this);if(h(t)){if(T)return J(l,t)}else{if(b(t)&&(e=u(c(Z(t))),!~k(e,"g")))throw N("`.matchAll` does not allow non-global regexes");if(T)return J(l,t);if(void 0===(r=m(t,W))&&V&&"RegExp"==p(t)&&(r=x),r)return i(r,t,l)}return n=u(l),o=new RegExp(t,"g"),V?i(x,o,n):o[W](n)}}),V||W in K||g(K,W,x)},4723:(t,e,n)=>{"use strict";var r=n(46916),i=n(27007),o=n(19670),l=n(68554),a=n(17466),c=n(41340),s=n(84488),u=n(58173),d=n(31530),h=n(97651);i("match",(function(t,e,n){return[function(e){var n=s(this),i=l(e)?void 0:u(e,t);return i?r(i,e,n):new RegExp(e)[t](c(n))},function(t){var r=o(this),i=c(t),l=n(e,r,i);if(l.done)return l.value;if(!r.global)return h(r,i);var s=r.unicode;r.lastIndex=0;for(var u,p=[],b=0;null!==(u=h(r,i));){var Z=c(u[0]);p[b]=Z,""===Z&&(r.lastIndex=d(i,a(r.lastIndex),s)),b++}return 0===b?null:p}]}))},66528:(t,e,n)=>{"use strict";var r=n(82109),i=n(76650).end;r({target:"String",proto:!0,forced:n(54986)},{padEnd:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},83112:(t,e,n)=>{"use strict";var r=n(82109),i=n(76650).start;r({target:"String",proto:!0,forced:n(54986)},{padStart:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},38992:(t,e,n)=>{var r=n(82109),i=n(1702),o=n(45656),l=n(47908),a=n(41340),c=n(26244),s=i([].push),u=i([].join);r({target:"String",stat:!0},{raw:function(t){for(var e=o(l(t).raw),n=c(e),r=arguments.length,i=[],d=0;n>d;){if(s(i,a(e[d++])),d===n)return u(i,"");d<r&&s(i,a(arguments[d]))}}})},82481:(t,e,n)=>{n(82109)({target:"String",proto:!0},{repeat:n(38415)})},68757:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(1702),l=n(84488),a=n(60614),c=n(68554),s=n(47850),u=n(41340),d=n(58173),h=n(34706),p=n(10647),b=n(5112),Z=n(31913),m=b("replace"),g=TypeError,y=o("".indexOf),f=o("".replace),I=o("".slice),G=Math.max,X=function(t,e,n){return n>t.length?-1:""===e?n:y(t,e,n)};r({target:"String",proto:!0},{replaceAll:function(t,e){var n,r,o,b,v,V,W,R,S,C=l(this),Y=0,K=0,N="";if(!c(t)){if((n=s(t))&&(r=u(l(h(t))),!~y(r,"g")))throw g("`.replaceAll` does not allow non-global regexes");if(o=d(t,m))return i(o,t,C,e);if(Z&&n)return f(u(C),t,e)}for(b=u(C),v=u(t),(V=a(e))||(e=u(e)),W=v.length,R=G(1,W),Y=X(b,v,0);-1!==Y;)S=V?u(e(v,Y,b)):p(v,b,Y,[],void 0,e),N+=I(b,K,Y)+S,K=Y+W,Y=X(b,v,Y+R);return K<b.length&&(N+=I(b,K)),N}})},15306:(t,e,n)=>{"use strict";var r=n(22104),i=n(46916),o=n(1702),l=n(27007),a=n(47293),c=n(19670),s=n(60614),u=n(68554),d=n(19303),h=n(17466),p=n(41340),b=n(84488),Z=n(31530),m=n(58173),g=n(10647),y=n(97651),f=n(5112)("replace"),I=Math.max,G=Math.min,X=o([].concat),v=o([].push),V=o("".indexOf),W=o("".slice),R="$0"==="a".replace(/./,"$0"),S=!!/./[f]&&""===/./[f]("a","$0");l("replace",(function(t,e,n){var o=S?"$":"$0";return[function(t,n){var r=b(this),o=u(t)?void 0:m(t,f);return o?i(o,t,r,n):i(e,p(r),t,n)},function(t,i){var l=c(this),a=p(t);if("string"==typeof i&&-1===V(i,o)&&-1===V(i,"$<")){var u=n(e,l,a,i);if(u.done)return u.value}var b=s(i);b||(i=p(i));var m=l.global;if(m){var f=l.unicode;l.lastIndex=0}for(var R=[];;){var S=y(l,a);if(null===S)break;if(v(R,S),!m)break;""===p(S[0])&&(l.lastIndex=Z(a,h(l.lastIndex),f))}for(var C,Y="",K=0,N=0;N<R.length;N++){for(var k=p((S=R[N])[0]),J=I(G(d(S.index),a.length),0),T=[],L=1;L<S.length;L++)v(T,void 0===(C=S[L])?C:String(C));var x=S.groups;if(b){var U=X([k],T,J,a);void 0!==x&&v(U,x);var H=p(r(i,void 0,U))}else H=g(k,a,J,T,x,i);J>=K&&(Y+=W(a,K,J)+H,K=J+k.length)}return Y+W(a,K)}]}),!!a((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}))||!R||S)},64765:(t,e,n)=>{"use strict";var r=n(46916),i=n(27007),o=n(19670),l=n(68554),a=n(84488),c=n(81150),s=n(41340),u=n(58173),d=n(97651);i("search",(function(t,e,n){return[function(e){var n=a(this),i=l(e)?void 0:u(e,t);return i?r(i,e,n):new RegExp(e)[t](s(n))},function(t){var r=o(this),i=s(t),l=n(e,r,i);if(l.done)return l.value;var a=r.lastIndex;c(a,0)||(r.lastIndex=0);var u=d(r,i);return c(r.lastIndex,a)||(r.lastIndex=a),null===u?-1:u.index}]}))},37268:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("small")},{small:function(){return i(this,"small","","")}})},23123:(t,e,n)=>{"use strict";var r=n(22104),i=n(46916),o=n(1702),l=n(27007),a=n(19670),c=n(68554),s=n(47850),u=n(84488),d=n(36707),h=n(31530),p=n(17466),b=n(41340),Z=n(58173),m=n(41589),g=n(97651),y=n(22261),f=n(52999),I=n(47293),G=f.UNSUPPORTED_Y,X=4294967295,v=Math.min,V=[].push,W=o(/./.exec),R=o(V),S=o("".slice);l("split",(function(t,e,n){var o;return o="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var o=b(u(this)),l=void 0===n?X:n>>>0;if(0===l)return[];if(void 0===t)return[o];if(!s(t))return i(e,o,t,l);for(var a,c,d,h=[],p=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),Z=0,g=new RegExp(t.source,p+"g");(a=i(y,g,o))&&!((c=g.lastIndex)>Z&&(R(h,S(o,Z,a.index)),a.length>1&&a.index<o.length&&r(V,h,m(a,1)),d=a[0].length,Z=c,h.length>=l));)g.lastIndex===a.index&&g.lastIndex++;return Z===o.length?!d&&W(g,"")||R(h,""):R(h,S(o,Z)),h.length>l?m(h,0,l):h}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:i(e,this,t,n)}:e,[function(e,n){var r=u(this),l=c(e)?void 0:Z(e,t);return l?i(l,e,r,n):i(o,b(r),e,n)},function(t,r){var i=a(this),l=b(t),c=n(o,i,l,r,o!==e);if(c.done)return c.value;var s=d(i,RegExp),u=i.unicode,Z=(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(G?"g":"y"),m=new s(G?"^(?:"+i.source+")":i,Z),y=void 0===r?X:r>>>0;if(0===y)return[];if(0===l.length)return null===g(m,l)?[l]:[];for(var f=0,I=0,V=[];I<l.length;){m.lastIndex=G?0:I;var W,C=g(m,G?S(l,I):l);if(null===C||(W=v(p(m.lastIndex+(G?I:0)),l.length))===f)I=h(l,I,u);else{if(R(V,S(l,f,I)),V.length===y)return V;for(var Y=1;Y<=C.length-1;Y++)if(R(V,C[Y]),V.length===y)return V;I=f=W}}return R(V,S(l,f)),V}]}),!!I((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),G)},23157:(t,e,n)=>{"use strict";var r,i=n(82109),o=n(21470),l=n(31236).f,a=n(17466),c=n(41340),s=n(3929),u=n(84488),d=n(84964),h=n(31913),p=o("".startsWith),b=o("".slice),Z=Math.min,m=d("startsWith");i({target:"String",proto:!0,forced:!(!h&&!m&&(r=l(String.prototype,"startsWith"),r&&!r.writable)||m)},{startsWith:function(t){var e=c(u(this));s(t);var n=a(Z(arguments.length>1?arguments[1]:void 0,e.length)),r=c(t);return p?p(e,r,n):b(e,n,n+r.length)===r}})},7397:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("strike")},{strike:function(){return i(this,"strike","","")}})},60086:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("sub")},{sub:function(){return i(this,"sub","","")}})},80623:(t,e,n)=>{"use strict";var r=n(82109),i=n(14230);r({target:"String",proto:!0,forced:n(43429)("sup")},{sup:function(){return i(this,"sup","","")}})},48702:(t,e,n)=>{n(83462);var r=n(82109),i=n(10365);r({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==i},{trimEnd:i})},99967:(t,e,n)=>{var r=n(82109),i=n(33217);r({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==i},{trimLeft:i})},83462:(t,e,n)=>{var r=n(82109),i=n(10365);r({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==i},{trimRight:i})},55674:(t,e,n)=>{n(99967);var r=n(82109),i=n(33217);r({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==i},{trimStart:i})},73210:(t,e,n)=>{"use strict";var r=n(82109),i=n(53111).trim;r({target:"String",proto:!0,forced:n(76091)("trim")},{trim:function(){return i(this)}})},72443:(t,e,n)=>{n(26800)("asyncIterator")},4032:(t,e,n)=>{"use strict";var r=n(82109),i=n(17854),o=n(46916),l=n(1702),a=n(31913),c=n(19781),s=n(36293),u=n(47293),d=n(92597),h=n(47976),p=n(19670),b=n(45656),Z=n(34948),m=n(41340),g=n(79114),y=n(70030),f=n(81956),I=n(8006),G=n(1156),X=n(25181),v=n(31236),V=n(3070),W=n(36048),R=n(55296),S=n(98052),C=n(72309),Y=n(6200),K=n(3501),N=n(69711),k=n(5112),J=n(6061),T=n(26800),L=n(56532),x=n(58003),U=n(29909),H=n(42092).forEach,w=Y("hidden"),F="Symbol",A="prototype",B=U.set,z=U.getterFor(F),P=Object[A],j=i.Symbol,E=j&&j[A],M=i.TypeError,Q=i.QObject,O=v.f,D=V.f,_=G.f,q=R.f,$=l([].push),tt=C("symbols"),et=C("op-symbols"),nt=C("wks"),rt=!Q||!Q[A]||!Q[A].findChild,it=c&&u((function(){return 7!=y(D({},"a",{get:function(){return D(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=O(P,e);r&&delete P[e],D(t,e,n),r&&t!==P&&D(P,e,r)}:D,ot=function(t,e){var n=tt[t]=y(E);return B(n,{type:F,tag:t,description:e}),c||(n.description=e),n},lt=function(t,e,n){t===P&<(et,e,n),p(t);var r=Z(e);return p(n),d(tt,r)?(n.enumerable?(d(t,w)&&t[w][r]&&(t[w][r]=!1),n=y(n,{enumerable:g(0,!1)})):(d(t,w)||D(t,w,g(1,{})),t[w][r]=!0),it(t,r,n)):D(t,r,n)},at=function(t,e){p(t);var n=b(e),r=f(n).concat(dt(n));return H(r,(function(e){c&&!o(ct,n,e)||lt(t,e,n[e])})),t},ct=function(t){var e=Z(t),n=o(q,this,e);return!(this===P&&d(tt,e)&&!d(et,e))&&(!(n||!d(this,e)||!d(tt,e)||d(this,w)&&this[w][e])||n)},st=function(t,e){var n=b(t),r=Z(e);if(n!==P||!d(tt,r)||d(et,r)){var i=O(n,r);return!i||!d(tt,r)||d(n,w)&&n[w][r]||(i.enumerable=!0),i}},ut=function(t){var e=_(b(t)),n=[];return H(e,(function(t){d(tt,t)||d(K,t)||$(n,t)})),n},dt=function(t){var e=t===P,n=_(e?et:b(t)),r=[];return H(n,(function(t){!d(tt,t)||e&&!d(P,t)||$(r,tt[t])})),r};s||(S(E=(j=function(){if(h(E,this))throw M("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?m(arguments[0]):void 0,e=N(t),n=function(t){this===P&&o(n,et,t),d(this,w)&&d(this[w],e)&&(this[w][e]=!1),it(this,e,g(1,t))};return c&&rt&&it(P,e,{configurable:!0,set:n}),ot(e,t)})[A],"toString",(function(){return z(this).tag})),S(j,"withoutSetter",(function(t){return ot(N(t),t)})),R.f=ct,V.f=lt,W.f=at,v.f=st,I.f=G.f=ut,X.f=dt,J.f=function(t){return ot(k(t),t)},c&&(D(E,"description",{configurable:!0,get:function(){return z(this).description}}),a||S(P,"propertyIsEnumerable",ct,{unsafe:!0}))),r({global:!0,constructor:!0,wrap:!0,forced:!s,sham:!s},{Symbol:j}),H(f(nt),(function(t){T(t)})),r({target:F,stat:!0,forced:!s},{useSetter:function(){rt=!0},useSimple:function(){rt=!1}}),r({target:"Object",stat:!0,forced:!s,sham:!c},{create:function(t,e){return void 0===e?y(t):at(y(t),e)},defineProperty:lt,defineProperties:at,getOwnPropertyDescriptor:st}),r({target:"Object",stat:!0,forced:!s},{getOwnPropertyNames:ut}),L(),x(j,F),K[w]=!0},41817:(t,e,n)=>{"use strict";var r=n(82109),i=n(19781),o=n(17854),l=n(1702),a=n(92597),c=n(60614),s=n(47976),u=n(41340),d=n(3070).f,h=n(99920),p=o.Symbol,b=p&&p.prototype;if(i&&c(p)&&(!("description"in b)||void 0!==p().description)){var Z={},m=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:u(arguments[0]),e=s(b,this)?new p(t):void 0===t?p():p(t);return""===t&&(Z[e]=!0),e};h(m,p),m.prototype=b,b.constructor=m;var g="Symbol(test)"==String(p("test")),y=l(b.valueOf),f=l(b.toString),I=/^Symbol\((.*)\)[^)]+$/,G=l("".replace),X=l("".slice);d(b,"description",{configurable:!0,get:function(){var t=y(this);if(a(Z,t))return"";var e=f(t),n=g?X(e,7,-1):G(e,I,"$1");return""===n?void 0:n}}),r({global:!0,constructor:!0,forced:!0},{Symbol:m})}},40763:(t,e,n)=>{var r=n(82109),i=n(35005),o=n(92597),l=n(41340),a=n(72309),c=n(2015),s=a("string-to-symbol-registry"),u=a("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!c},{for:function(t){var e=l(t);if(o(s,e))return s[e];var n=i("Symbol")(e);return s[e]=n,u[n]=e,n}})},92401:(t,e,n)=>{n(26800)("hasInstance")},8722:(t,e,n)=>{n(26800)("isConcatSpreadable")},32165:(t,e,n)=>{n(26800)("iterator")},82526:(t,e,n)=>{n(4032),n(40763),n(26620),n(38862),n(29660)},26620:(t,e,n)=>{var r=n(82109),i=n(92597),o=n(52190),l=n(66330),a=n(72309),c=n(2015),s=a("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!c},{keyFor:function(t){if(!o(t))throw TypeError(l(t)+" is not a symbol");if(i(s,t))return s[t]}})},16066:(t,e,n)=>{n(26800)("matchAll")},69007:(t,e,n)=>{n(26800)("match")},83510:(t,e,n)=>{n(26800)("replace")},41840:(t,e,n)=>{n(26800)("search")},6982:(t,e,n)=>{n(26800)("species")},32159:(t,e,n)=>{n(26800)("split")},96649:(t,e,n)=>{var r=n(26800),i=n(56532);r("toPrimitive"),i()},39341:(t,e,n)=>{var r=n(35005),i=n(26800),o=n(58003);i("toStringTag"),o(r("Symbol"),"Symbol")},60543:(t,e,n)=>{n(26800)("unscopables")},92990:(t,e,n)=>{"use strict";var r=n(1702),i=n(90260),o=r(n(1048)),l=i.aTypedArray;(0,i.exportTypedArrayMethod)("copyWithin",(function(t,e){return o(l(this),t,e,arguments.length>2?arguments[2]:void 0)}))},18927:(t,e,n)=>{"use strict";var r=n(90260),i=n(42092).every,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("every",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},33105:(t,e,n)=>{"use strict";var r=n(90260),i=n(21285),o=n(64599),l=n(70648),a=n(46916),c=n(1702),s=n(47293),u=r.aTypedArray,d=r.exportTypedArrayMethod,h=c("".slice);d("fill",(function(t){var e=arguments.length;u(this);var n="Big"===h(l(this),0,3)?o(t):+t;return a(i,this,n,e>1?arguments[1]:void 0,e>2?arguments[2]:void 0)}),s((function(){var t=0;return new Int8Array(2).fill({valueOf:function(){return t++}}),1!==t})))},35035:(t,e,n)=>{"use strict";var r=n(90260),i=n(42092).filter,o=n(43074),l=r.aTypedArray;(0,r.exportTypedArrayMethod)("filter",(function(t){var e=i(l(this),t,arguments.length>1?arguments[1]:void 0);return o(this,e)}))},7174:(t,e,n)=>{"use strict";var r=n(90260),i=n(42092).findIndex,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("findIndex",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},74345:(t,e,n)=>{"use strict";var r=n(90260),i=n(42092).find,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("find",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},44197:(t,e,n)=>{n(19843)("Float32",(function(t){return function(e,n,r){return t(this,e,n,r)}}))},76495:(t,e,n)=>{n(19843)("Float64",(function(t){return function(e,n,r){return t(this,e,n,r)}}))},32846:(t,e,n)=>{"use strict";var r=n(90260),i=n(42092).forEach,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("forEach",(function(t){i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},98145:(t,e,n)=>{"use strict";var r=n(63832);(0,n(90260).exportTypedArrayStaticMethod)("from",n(97321),r)},44731:(t,e,n)=>{"use strict";var r=n(90260),i=n(41318).includes,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("includes",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},77209:(t,e,n)=>{"use strict";var r=n(90260),i=n(41318).indexOf,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("indexOf",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},35109:(t,e,n)=>{n(19843)("Int16",(function(t){return function(e,n,r){return t(this,e,n,r)}}))},65125:(t,e,n)=>{n(19843)("Int32",(function(t){return function(e,n,r){return t(this,e,n,r)}}))},87145:(t,e,n)=>{n(19843)("Int8",(function(t){return function(e,n,r){return t(this,e,n,r)}}))},96319:(t,e,n)=>{"use strict";var r=n(17854),i=n(47293),o=n(1702),l=n(90260),a=n(66992),c=n(5112)("iterator"),s=r.Uint8Array,u=o(a.values),d=o(a.keys),h=o(a.entries),p=l.aTypedArray,b=l.exportTypedArrayMethod,Z=s&&s.prototype,m=!i((function(){Z[c].call([1])})),g=!!Z&&Z.values&&Z[c]===Z.values&&"values"===Z.values.name,y=function(){return u(p(this))};b("entries",(function(){return h(p(this))}),m),b("keys",(function(){return d(p(this))}),m),b("values",y,m||!g,{name:"values"}),b(c,y,m||!g,{name:"values"})},58867:(t,e,n)=>{"use strict";var r=n(90260),i=n(1702),o=r.aTypedArray,l=r.exportTypedArrayMethod,a=i([].join);l("join",(function(t){return a(o(this),t)}))},37789:(t,e,n)=>{"use strict";var r=n(90260),i=n(22104),o=n(86583),l=r.aTypedArray;(0,r.exportTypedArrayMethod)("lastIndexOf",(function(t){var e=arguments.length;return i(o,l(this),e>1?[t,arguments[1]]:[t])}))},33739:(t,e,n)=>{"use strict";var r=n(90260),i=n(42092).map,o=n(66304),l=r.aTypedArray;(0,r.exportTypedArrayMethod)("map",(function(t){return i(l(this),t,arguments.length>1?arguments[1]:void 0,(function(t,e){return new(o(t))(e)}))}))},95206:(t,e,n)=>{"use strict";var r=n(90260),i=n(63832),o=r.aTypedArrayConstructor;(0,r.exportTypedArrayStaticMethod)("of",(function(){for(var t=0,e=arguments.length,n=new(o(this))(e);e>t;)n[t]=arguments[t++];return n}),i)},14483:(t,e,n)=>{"use strict";var r=n(90260),i=n(53671).right,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduceRight",(function(t){var e=arguments.length;return i(o(this),t,e,e>1?arguments[1]:void 0)}))},29368:(t,e,n)=>{"use strict";var r=n(90260),i=n(53671).left,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduce",(function(t){var e=arguments.length;return i(o(this),t,e,e>1?arguments[1]:void 0)}))},12056:(t,e,n)=>{"use strict";var r=n(90260),i=r.aTypedArray,o=r.exportTypedArrayMethod,l=Math.floor;o("reverse",(function(){for(var t,e=this,n=i(e).length,r=l(n/2),o=0;o<r;)t=e[o],e[o++]=e[--n],e[n]=t;return e}))},3462:(t,e,n)=>{"use strict";var r=n(17854),i=n(46916),o=n(90260),l=n(26244),a=n(84590),c=n(47908),s=n(47293),u=r.RangeError,d=r.Int8Array,h=d&&d.prototype,p=h&&h.set,b=o.aTypedArray,Z=o.exportTypedArrayMethod,m=!s((function(){var t=new Uint8ClampedArray(2);return i(p,t,{length:1,0:3},1),3!==t[1]})),g=m&&o.NATIVE_ARRAY_BUFFER_VIEWS&&s((function(){var t=new d(2);return t.set(1),t.set("2",1),0!==t[0]||2!==t[1]}));Z("set",(function(t){b(this);var e=a(arguments.length>1?arguments[1]:void 0,1),n=c(t);if(m)return i(p,this,n,e);var r=this.length,o=l(n),s=0;if(o+e>r)throw u("Wrong length");for(;s<o;)this[e+s]=n[s++]}),!m||g)},30678:(t,e,n)=>{"use strict";var r=n(90260),i=n(66304),o=n(47293),l=n(50206),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("slice",(function(t,e){for(var n=l(a(this),t,e),r=i(this),o=0,c=n.length,s=new r(c);c>o;)s[o]=n[o++];return s}),o((function(){new Int8Array(1).slice()})))},27462:(t,e,n)=>{"use strict";var r=n(90260),i=n(42092).some,o=r.aTypedArray;(0,r.exportTypedArrayMethod)("some",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},33824:(t,e,n)=>{"use strict";var r=n(17854),i=n(21470),o=n(47293),l=n(19662),a=n(94362),c=n(90260),s=n(68886),u=n(30256),d=n(7392),h=n(98008),p=c.aTypedArray,b=c.exportTypedArrayMethod,Z=r.Uint16Array,m=Z&&i(Z.prototype.sort),g=!(!m||o((function(){m(new Z(2),null)}))&&o((function(){m(new Z(2),{})}))),y=!!m&&!o((function(){if(d)return d<74;if(s)return s<67;if(u)return!0;if(h)return h<602;var t,e,n=new Z(516),r=Array(516);for(t=0;t<516;t++)e=t%4,n[t]=515-t,r[t]=t-2*e+3;for(m(n,(function(t,e){return(t/4|0)-(e/4|0)})),t=0;t<516;t++)if(n[t]!==r[t])return!0}));b("sort",(function(t){return void 0!==t&&l(t),y?m(this,t):a(p(this),function(t){return function(e,n){return void 0!==t?+t(e,n)||0:n!=n?-1:e!=e?1:0===e&&0===n?1/e>0&&1/n<0?1:-1:e>n}}(t))}),!y||g)},55021:(t,e,n)=>{"use strict";var r=n(90260),i=n(17466),o=n(51400),l=n(66304),a=r.aTypedArray;(0,r.exportTypedArrayMethod)("subarray",(function(t,e){var n=a(this),r=n.length,c=o(t,r);return new(l(n))(n.buffer,n.byteOffset+c*n.BYTES_PER_ELEMENT,i((void 0===e?r:o(e,r))-c))}))},12974:(t,e,n)=>{"use strict";var r=n(17854),i=n(22104),o=n(90260),l=n(47293),a=n(50206),c=r.Int8Array,s=o.aTypedArray,u=o.exportTypedArrayMethod,d=[].toLocaleString,h=!!c&&l((function(){d.call(new c(1))}));u("toLocaleString",(function(){return i(d,h?a(s(this)):s(this),a(arguments))}),l((function(){return[1,2].toLocaleString()!=new c([1,2]).toLocaleString()}))||!l((function(){c.prototype.toLocaleString.call([1,2])})))},15016:(t,e,n)=>{"use strict";var r=n(90260).exportTypedArrayMethod,i=n(47293),o=n(17854),l=n(1702),a=o.Uint8Array,c=a&&a.prototype||{},s=[].toString,u=l([].join);i((function(){s.call({})}))&&(s=function(){return u(this)});var d=c.toString!=s;r("toString",s,d)},8255:(t,e,n)=>{n(19843)("Uint16",(function(t){return function(e,n,r){return t(this,e,n,r)}}))},29135:(t,e,n)=>{n(19843)("Uint32",(function(t){return function(e,n,r){return t(this,e,n,r)}}))},82472:(t,e,n)=>{n(19843)("Uint8",(function(t){return function(e,n,r){return t(this,e,n,r)}}))},49743:(t,e,n)=>{n(19843)("Uint8",(function(t){return function(e,n,r){return t(this,e,n,r)}}),!0)},41202:(t,e,n)=>{"use strict";var r,i=n(17854),o=n(1702),l=n(89190),a=n(62423),c=n(77710),s=n(29320),u=n(70111),d=n(52050),h=n(29909).enforce,p=n(94811),b=!i.ActiveXObject&&"ActiveXObject"in i,Z=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},m=c("WeakMap",Z,s);if(p&&b){r=s.getConstructor(Z,"WeakMap",!0),a.enable();var g=m.prototype,y=o(g.delete),f=o(g.has),I=o(g.get),G=o(g.set);l(g,{delete:function(t){if(u(t)&&!d(t)){var e=h(this);return e.frozen||(e.frozen=new r),y(this,t)||e.frozen.delete(t)}return y(this,t)},has:function(t){if(u(t)&&!d(t)){var e=h(this);return e.frozen||(e.frozen=new r),f(this,t)||e.frozen.has(t)}return f(this,t)},get:function(t){if(u(t)&&!d(t)){var e=h(this);return e.frozen||(e.frozen=new r),f(this,t)?I(this,t):e.frozen.get(t)}return I(this,t)},set:function(t,e){if(u(t)&&!d(t)){var n=h(this);n.frozen||(n.frozen=new r),f(this,t)?G(this,t,e):n.frozen.set(t,e)}else G(this,t,e);return this}})}},4129:(t,e,n)=>{n(41202)},72098:(t,e,n)=>{"use strict";n(77710)("WeakSet",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),n(29320))},38478:(t,e,n)=>{n(72098)},8628:(t,e,n)=>{n(9170)},8e4:(t,e,n)=>{var r=n(82109),i=n(43157),o=Object.isFrozen,l=function(t,e){if(!o||!i(t)||!o(t))return!1;for(var n,r=0,l=t.length;r<l;)if(!("string"==typeof(n=t[r++])||e&&void 0===n))return!1;return 0!==l};r({target:"Array",stat:!0,sham:!0,forced:!0},{isTemplateObject:function(t){if(!l(t,!0))return!1;var e=t.raw;return e.length===t.length&&l(e,!1)}})},83475:(t,e,n)=>{"use strict";var r=n(19781),i=n(51223),o=n(47908),l=n(26244),a=n(47045);r&&(a(Array.prototype,"lastIndex",{configurable:!0,get:function(){var t=o(this),e=l(t);return 0==e?0:e-1}}),i("lastIndex"))},46273:(t,e,n)=>{"use strict";var r=n(19781),i=n(51223),o=n(47908),l=n(26244),a=n(47045);r&&(a(Array.prototype,"lastItem",{configurable:!0,get:function(){var t=o(this),e=l(t);return 0==e?void 0:t[e-1]},set:function(t){var e=o(this),n=l(e);return e[0==n?0:n-1]=t}}),i("lastItem"))},40787:(t,e,n)=>{n(82109)({target:"AsyncIterator",name:"indexed",proto:!0,real:!0,forced:!0},{asIndexedPairs:n(47520)})},66342:(t,e,n)=>{"use strict";var r=n(82109),i=n(25787),o=n(68880),l=n(92597),a=n(5112),c=n(66462),s=n(31913),u=a("toStringTag"),d=function(){i(this,c)};d.prototype=c,l(c,u)||o(c,u,"AsyncIterator"),!s&&l(c,"constructor")&&c.constructor!==Object||o(c,"constructor",d),r({global:!0,constructor:!0,forced:s},{AsyncIterator:d})},23647:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19670),l=n(24942),a=n(66336),c=n(73002),s=n(45348),u=n(76178),d=s((function(t){var e=this;return new t((function(n,r){var l=function(t){e.done=!0,r(t)},a=function(){try{t.resolve(o(i(e.next,e.iterator))).then((function(t){try{o(t).done?(e.done=!0,n(u(void 0,!0))):e.remaining?(e.remaining--,a()):n(u(t.value,!1))}catch(t){l(t)}}),l)}catch(t){l(t)}};a()}))}));r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{drop:function(t){return new d(l(this),{remaining:c(a(+t))})}})},68216:(t,e,n)=>{"use strict";var r=n(82109),i=n(12269).every;r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{every:function(t){return i(this,t)}})},88449:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),l=n(19670),a=n(70111),c=n(24942),s=n(45348),u=n(76178),d=n(21753),h=s((function(t){var e=this,n=e.iterator,r=e.filterer;return new t((function(o,c){var s=function(t){e.done=!0,c(t)},h=function(t){d(n,s,t,s)},p=function(){try{t.resolve(l(i(e.next,n))).then((function(n){try{if(l(n).done)e.done=!0,o(u(void 0,!0));else{var i=n.value;try{var c=r(i,e.counter++),d=function(t){t?o(u(i,!1)):p()};a(c)?t.resolve(c).then(d,h):d(c)}catch(t){h(t)}}}catch(t){s(t)}}),s)}catch(t){s(t)}};p()}))}));r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{filter:function(t){return new h(c(this),{filterer:o(t)})}})},31672:(t,e,n)=>{"use strict";var r=n(82109),i=n(12269).find;r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{find:function(t){return i(this,t)}})},74326:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),l=n(19670),a=n(70111),c=n(24942),s=n(45348),u=n(76178),d=n(62617),h=n(21753),p=s((function(t){var e=this,n=e.iterator,r=e.mapper;return new t((function(o,c){var s=function(t){e.done=!0,c(t)},p=function(t){h(n,s,t,s)},b=function(){try{t.resolve(l(i(e.next,n))).then((function(n){try{if(l(n).done)e.done=!0,o(u(void 0,!0));else{var i=n.value;try{var c=r(i,e.counter++),h=function(t){try{e.inner=d(t),Z()}catch(t){p(t)}};a(c)?t.resolve(c).then(h,p):h(c)}catch(t){p(t)}}}catch(t){s(t)}}),s)}catch(t){s(t)}},Z=function(){var n=e.inner;if(n)try{t.resolve(l(i(n.next,n.iterator))).then((function(t){try{l(t).done?(e.inner=null,b()):o(u(t.value,!1))}catch(t){p(t)}}),p)}catch(t){p(t)}else b()};Z()}))}));r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{flatMap:function(t){return new p(c(this),{mapper:o(t),inner:null})}})},15581:(t,e,n)=>{"use strict";var r=n(82109),i=n(12269).forEach;r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{forEach:function(t){return i(this,t)}})},78631:(t,e,n)=>{var r=n(82109),i=n(47976),o=n(62617),l=n(66462),a=n(86221);r({target:"AsyncIterator",stat:!0,forced:!0},{from:function(t){var e=o(t);return i(l,e.iterator)?e.iterator:new a(e)}})},57640:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),l=n(19670),a=n(70111),c=n(24942),s=n(45348),u=n(76178),d=n(21753),h=s((function(t){var e=this,n=e.iterator,r=e.mapper;return new t((function(o,c){var s=function(t){e.done=!0,c(t)},h=function(t){d(n,s,t,s)};t.resolve(l(i(e.next,n))).then((function(n){try{if(l(n).done)e.done=!0,o(u(void 0,!0));else{var i=n.value;try{var c=r(i,e.counter++),d=function(t){o(u(t,!1))};a(c)?t.resolve(c).then(d,h):d(c)}catch(t){h(t)}}}catch(t){s(t)}}),s)}))}));r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{map:function(t){return new h(c(this),{mapper:o(t)})}})},25387:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),l=n(19670),a=n(70111),c=n(35005),s=n(24942),u=n(21753),d=c("Promise"),h=TypeError;r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{reduce:function(t){var e=s(this),n=e.iterator,r=e.next,c=arguments.length<2,p=c?void 0:arguments[1],b=0;return o(t),new d((function(e,o){var s=function(t){u(n,o,t,o)},Z=function(){try{d.resolve(l(i(r,n))).then((function(n){try{if(l(n).done)c?o(h("Reduce of empty iterator with no initial value")):e(p);else{var r=n.value;if(c)c=!1,p=r,Z();else try{var i=t(p,r,b),u=function(t){p=t,Z()};a(i)?d.resolve(i).then(u,s):u(i)}catch(t){s(t)}}b++}catch(t){o(t)}}),o)}catch(t){o(t)}};Z()}))}})},64211:(t,e,n)=>{"use strict";var r=n(82109),i=n(12269).some;r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{some:function(t){return i(this,t)}})},12771:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19670),l=n(24942),a=n(66336),c=n(73002),s=n(45348),u=n(76178),d=s((function(t){var e,n=this,r=n.iterator;if(!n.remaining--){var l=u(void 0,!0);return n.done=!0,void 0!==(e=r.return)?t.resolve(i(e,r,void 0)).then((function(){return l})):l}return t.resolve(i(n.next,r)).then((function(t){return o(t).done?(n.done=!0,u(void 0,!0)):u(t.value,!1)})).then(null,(function(t){throw n.done=!0,t}))}));r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{take:function(t){return new d(l(this),{remaining:c(a(+t))})}})},62962:(t,e,n)=>{"use strict";var r=n(82109),i=n(12269).toArray;r({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{toArray:function(){return i(this,void 0,[])}})},51568:(t,e,n)=>{var r=n(82109),i=n(22104),o=n(10313),l=n(35005),a=n(70030),c=Object,s=function(){var t=l("Object","freeze");return t?t(a(null)):a(null)};r({global:!0,forced:!0},{compositeKey:function(){return i(o,c,arguments).get("object",s)}})},26349:(t,e,n)=>{var r=n(82109),i=n(10313),o=n(35005),l=n(22104);r({global:!0,forced:!0},{compositeSymbol:function(){return 1==arguments.length&&"string"==typeof arguments[0]?o("Symbol").for(arguments[0]):l(i,null,arguments).get("symbol",o("Symbol"))}})},85567:(t,e,n)=>{n(82109)({target:"Iterator",name:"indexed",proto:!0,real:!0,forced:!0},{asIndexedPairs:n(14323)})},2490:(t,e,n)=>{"use strict";var r=n(82109),i=n(17854),o=n(25787),l=n(60614),a=n(68880),c=n(47293),s=n(92597),u=n(5112),d=n(13383).IteratorPrototype,h=n(31913),p=u("toStringTag"),b=i.Iterator,Z=h||!l(b)||b.prototype!==d||!c((function(){b({})})),m=function(){o(this,d)};s(d,p)||a(d,p,"Iterator"),!Z&&s(d,"constructor")&&d.constructor!==Object||a(d,"constructor",m),m.prototype=d,r({global:!0,constructor:!0,forced:Z},{Iterator:m})},5332:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19670),l=n(24942),a=n(66336),c=n(73002),s=n(54956)((function(){for(var t,e=this.iterator,n=this.next;this.remaining;)if(this.remaining--,t=o(i(n,e)),this.done=!!t.done)return;if(t=o(i(n,e)),!(this.done=!!t.done))return t.value}));r({target:"Iterator",proto:!0,real:!0,forced:!0},{drop:function(t){return new s(l(this),{remaining:c(a(+t))})}})},79433:(t,e,n)=>{"use strict";var r=n(82109),i=n(20408),o=n(19662),l=n(24942);r({target:"Iterator",proto:!0,real:!0,forced:!0},{every:function(t){var e=l(this),n=0;return o(t),!i(e,(function(e,r){if(!t(e,n++))return r()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},59849:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),l=n(19670),a=n(24942),c=n(54956),s=n(53411),u=c((function(){for(var t,e,n=this.iterator,r=this.filterer,o=this.next;;){if(t=l(i(o,n)),this.done=!!t.done)return;if(e=t.value,s(n,r,[e,this.counter++],!0))return e}}));r({target:"Iterator",proto:!0,real:!0,forced:!0},{filter:function(t){return new u(a(this),{filterer:o(t)})}})},59461:(t,e,n)=>{"use strict";var r=n(82109),i=n(20408),o=n(19662),l=n(24942);r({target:"Iterator",proto:!0,real:!0,forced:!0},{find:function(t){var e=l(this),n=0;return o(t),i(e,(function(e,r){if(t(e,n++))return r(e)}),{IS_RECORD:!0,INTERRUPTED:!0}).result}})},82499:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),l=n(19670),a=n(24942),c=n(72897),s=n(54956),u=n(99212),d=s((function(){for(var t,e,n=this.iterator,r=this.mapper;;){if(e=this.inner)try{if(!(t=l(i(e.next,e.iterator))).done)return t.value;this.inner=null}catch(t){u(n,"throw",t)}if(t=l(i(this.next,n)),this.done=!!t.done)return;try{this.inner=c(r(t.value,this.counter++))}catch(t){u(n,"throw",t)}}}));r({target:"Iterator",proto:!0,real:!0,forced:!0},{flatMap:function(t){return new d(a(this),{mapper:o(t),inner:null})}})},34514:(t,e,n)=>{"use strict";var r=n(82109),i=n(20408),o=n(19662),l=n(24942);r({target:"Iterator",proto:!0,real:!0,forced:!0},{forEach:function(t){var e=l(this),n=0;o(t),i(e,(function(e){t(e,n++)}),{IS_RECORD:!0})}})},26877:(t,e,n)=>{var r=n(82109),i=n(46916),o=n(47976),l=n(13383).IteratorPrototype,a=n(54956),c=n(72897),s=a((function(){return i(this.next,this.iterator)}),!0);r({target:"Iterator",stat:!0,forced:!0},{from:function(t){var e=c(t);return o(l,e.iterator)?e.iterator:new s(e)}})},9924:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),l=n(19670),a=n(24942),c=n(54956),s=n(53411),u=c((function(){var t=this.iterator,e=l(i(this.next,t));if(!(this.done=!!e.done))return s(t,this.mapper,[e.value,this.counter++],!0)}));r({target:"Iterator",proto:!0,real:!0,forced:!0},{map:function(t){return new u(a(this),{mapper:o(t)})}})},72608:(t,e,n)=>{"use strict";var r=n(82109),i=n(20408),o=n(19662),l=n(24942),a=TypeError;r({target:"Iterator",proto:!0,real:!0,forced:!0},{reduce:function(t){var e=l(this);o(t);var n=arguments.length<2,r=n?void 0:arguments[1],c=0;if(i(e,(function(e){n?(n=!1,r=e):r=t(r,e,c),c++}),{IS_RECORD:!0}),n)throw a("Reduce of empty iterator with no initial value");return r}})},41874:(t,e,n)=>{"use strict";var r=n(82109),i=n(20408),o=n(19662),l=n(24942);r({target:"Iterator",proto:!0,real:!0,forced:!0},{some:function(t){var e=l(this),n=0;return o(t),i(e,(function(e,r){if(t(e,n++))return r()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},66043:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19670),l=n(24942),a=n(66336),c=n(73002),s=n(54956),u=n(99212),d=s((function(){var t=this.iterator;if(!this.remaining--)return this.done=!0,u(t,"normal",void 0);var e=o(i(this.next,t));return(this.done=!!e.done)?void 0:e.value}));r({target:"Iterator",proto:!0,real:!0,forced:!0},{take:function(t){return new d(l(this),{remaining:c(a(+t))})}})},23748:(t,e,n)=>{"use strict";var r=n(82109),i=n(20408),o=n(24942),l=[].push;r({target:"Iterator",proto:!0,real:!0,forced:!0},{toArray:function(){var t=[];return i(o(this),l,{that:t,IS_RECORD:!0}),t}})},10072:(t,e,n)=>{"use strict";n(82109)({target:"Map",proto:!0,real:!0,forced:!0},{deleteAll:n(34092)})},99137:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(49974),l=n(54647),a=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{every:function(t){var e=i(this),n=l(e),r=o(t,arguments.length>1?arguments[1]:void 0);return!a(n,(function(t,n,i){if(!r(n,t,e))return i()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},71957:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(49974),l=n(46916),a=n(19662),c=n(19670),s=n(36707),u=n(54647),d=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(t){var e=c(this),n=u(e),r=o(t,arguments.length>1?arguments[1]:void 0),h=new(s(e,i("Map"))),p=a(h.set);return d(n,(function(t,n){r(n,t,e)&&l(p,h,t,n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),h}})},103:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(49974),l=n(54647),a=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(t){var e=i(this),n=l(e),r=o(t,arguments.length>1?arguments[1]:void 0);return a(n,(function(t,n,i){if(r(n,t,e))return i(t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}})},96306:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(49974),l=n(54647),a=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{find:function(t){var e=i(this),n=l(e),r=o(t,arguments.length>1?arguments[1]:void 0);return a(n,(function(t,n,i){if(r(n,t,e))return i(n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}})},8582:(t,e,n)=>{n(82109)({target:"Map",stat:!0,forced:!0},{from:n(27296)})},90618:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(1702),l=n(19662),a=n(18554),c=n(20408),s=o([].push);r({target:"Map",stat:!0,forced:!0},{groupBy:function(t,e){l(e);var n=a(t),r=new this,o=l(r.has),u=l(r.get),d=l(r.set);return c(n,(function(t){var n=e(t);i(o,r,n)?s(i(u,r,n),t):i(d,r,n,[t])}),{IS_ITERATOR:!0}),r}})},74592:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(54647),l=n(46465),a=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(t){return a(o(i(this)),(function(e,n,r){if(l(n,t))return r()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},88440:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(20408),l=n(19662);r({target:"Map",stat:!0,forced:!0},{keyBy:function(t,e){var n=new this;l(e);var r=l(n.set);return o(t,(function(t){i(r,n,e(t),t)})),n}})},58276:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(54647),l=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(t){return l(o(i(this)),(function(e,n,r){if(n===t)return r(e)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}})},35082:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(49974),l=n(46916),a=n(19662),c=n(19670),s=n(36707),u=n(54647),d=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(t){var e=c(this),n=u(e),r=o(t,arguments.length>1?arguments[1]:void 0),h=new(s(e,i("Map"))),p=a(h.set);return d(n,(function(t,n){l(p,h,r(n,t,e),n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),h}})},12813:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(49974),l=n(46916),a=n(19662),c=n(19670),s=n(36707),u=n(54647),d=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(t){var e=c(this),n=u(e),r=o(t,arguments.length>1?arguments[1]:void 0),h=new(s(e,i("Map"))),p=a(h.set);return d(n,(function(t,n){l(p,h,t,r(n,t,e))}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),h}})},18222:(t,e,n)=>{"use strict";var r=n(82109),i=n(19662),o=n(19670),l=n(20408);r({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(t){for(var e=o(this),n=i(e.set),r=arguments.length,a=0;a<r;)l(arguments[a++],n,{that:e,AS_ENTRIES:!0});return e}})},24838:(t,e,n)=>{n(82109)({target:"Map",stat:!0,forced:!0},{of:n(82044)})},38563:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(19662),l=n(54647),a=n(20408),c=TypeError;r({target:"Map",proto:!0,real:!0,forced:!0},{reduce:function(t){var e=i(this),n=l(e),r=arguments.length<2,s=r?void 0:arguments[1];if(o(t),a(n,(function(n,i){r?(r=!1,s=i):s=t(s,i,n,e)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),r)throw c("Reduce of empty map with no initial value");return s}})},50336:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(49974),l=n(54647),a=n(20408);r({target:"Map",proto:!0,real:!0,forced:!0},{some:function(t){var e=i(this),n=l(e),r=o(t,arguments.length>1?arguments[1]:void 0);return a(n,(function(t,n,i){if(r(n,t,e))return i()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},74442:(t,e,n)=>{"use strict";n(82109)({target:"Map",proto:!0,real:!0,name:"upsert",forced:!0},{updateOrInsert:n(8154)})},7512:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19670),l=n(19662),a=TypeError;r({target:"Map",proto:!0,real:!0,forced:!0},{update:function(t,e){var n=o(this),r=l(n.get),c=l(n.has),s=l(n.set),u=arguments.length;l(e);var d=i(c,n,t);if(!d&&u<3)throw a("Updating absent value");var h=d?i(r,n,t):l(u>2?arguments[2]:void 0)(t,n);return i(s,n,t,e(h,t,n)),n}})},87713:(t,e,n)=>{"use strict";n(82109)({target:"Map",proto:!0,real:!0,forced:!0},{upsert:n(8154)})},46603:(t,e,n)=>{var r=n(82109),i=Math.min,o=Math.max;r({target:"Math",stat:!0,forced:!0},{clamp:function(t,e,n){return i(n,o(e,t))}})},70100:(t,e,n)=>{n(82109)({target:"Math",stat:!0,nonConfigurable:!0,nonWritable:!0},{DEG_PER_RAD:Math.PI/180})},10490:(t,e,n)=>{var r=n(82109),i=180/Math.PI;r({target:"Math",stat:!0,forced:!0},{degrees:function(t){return t*i}})},13187:(t,e,n)=>{var r=n(82109),i=n(47103),o=n(26130);r({target:"Math",stat:!0,forced:!0},{fscale:function(t,e,n,r,l){return o(i(t,e,n,r,l))}})},60092:(t,e,n)=>{n(82109)({target:"Math",stat:!0,forced:!0},{iaddh:function(t,e,n,r){var i=t>>>0,o=n>>>0;return(e>>>0)+(r>>>0)+((i&o|(i|o)&~(i+o>>>0))>>>31)|0}})},19041:(t,e,n)=>{n(82109)({target:"Math",stat:!0,forced:!0},{imulh:function(t,e){var n=65535,r=+t,i=+e,o=r&n,l=i&n,a=r>>16,c=i>>16,s=(a*l>>>0)+(o*l>>>16);return a*c+(s>>16)+((o*c>>>0)+(s&n)>>16)}})},30666:(t,e,n)=>{n(82109)({target:"Math",stat:!0,forced:!0},{isubh:function(t,e,n,r){var i=t>>>0,o=n>>>0;return(e>>>0)-(r>>>0)-((~i&o|~(i^o)&i-o>>>0)>>>31)|0}})},51638:(t,e,n)=>{n(82109)({target:"Math",stat:!0,nonConfigurable:!0,nonWritable:!0},{RAD_PER_DEG:180/Math.PI})},62975:(t,e,n)=>{var r=n(82109),i=Math.PI/180;r({target:"Math",stat:!0,forced:!0},{radians:function(t){return t*i}})},15728:(t,e,n)=>{n(82109)({target:"Math",stat:!0,forced:!0},{scale:n(47103)})},46056:(t,e,n)=>{var r=n(82109),i=n(19670),o=n(77023),l=n(63061),a=n(76178),c=n(29909),s="Seeded Random",u=s+" Generator",d=c.set,h=c.getterFor(u),p=TypeError,b=l((function(t){d(this,{type:u,seed:t%2147483647})}),s,(function(){var t=h(this),e=t.seed=(1103515245*t.seed+12345)%2147483647;return a((1073741823&e)/1073741823,!1)}));r({target:"Math",stat:!0,forced:!0},{seededPRNG:function(t){var e=i(t).seed;if(!o(e))throw p('Math.seededPRNG() argument should have a "seed" field with a finite value.');return new b(e)}})},44299:(t,e,n)=>{n(82109)({target:"Math",stat:!0,forced:!0},{signbit:function(t){var e=+t;return e==e&&0==e?1/e==-1/0:e<0}})},5162:(t,e,n)=>{n(82109)({target:"Math",stat:!0,forced:!0},{umulh:function(t,e){var n=65535,r=+t,i=+e,o=r&n,l=i&n,a=r>>>16,c=i>>>16,s=(a*l>>>0)+(o*l>>>16);return a*c+(s>>>16)+((o*c>>>0)+(s&n)>>>16)}})},50292:(t,e,n)=>{"use strict";var r=n(82109),i=n(1702),o=n(19303),l=n(83009),a="Invalid number representation",c=RangeError,s=SyntaxError,u=TypeError,d=/^[\da-z]+$/,h=i("".charAt),p=i(d.exec),b=i(1..toString),Z=i("".slice);r({target:"Number",stat:!0,forced:!0},{fromString:function(t,e){var n,r,i=1;if("string"!=typeof t)throw u(a);if(!t.length)throw s(a);if("-"==h(t,0)&&(i=-1,!(t=Z(t,1)).length))throw s(a);if((n=void 0===e?10:o(e))<2||n>36)throw c("Invalid radix");if(!p(d,t)||b(r=l(t,n),n)!==t)throw s(a);return i*r}})},99964:(t,e,n)=>{"use strict";var r=n(82109),i=n(60996);r({target:"Object",stat:!0,forced:!0},{iterateEntries:function(t){return new i(t,"entries")}})},75238:(t,e,n)=>{"use strict";var r=n(82109),i=n(60996);r({target:"Object",stat:!0,forced:!0},{iterateKeys:function(t){return new i(t,"keys")}})},4987:(t,e,n)=>{"use strict";var r=n(82109),i=n(60996);r({target:"Object",stat:!0,forced:!0},{iterateValues:function(t){return new i(t,"values")}})},39769:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19781),l=n(96340),a=n(19662),c=n(19670),s=n(25787),u=n(60614),d=n(68554),h=n(70111),p=n(58173),b=n(98052),Z=n(89190),m=n(47045),g=n(842),y=n(5112),f=n(29909),I=n(90515),G=y("observable"),X="Observable",v="Subscription",V="SubscriptionObserver",W=f.getterFor,R=f.set,S=W(X),C=W(v),Y=W(V),K=function(t){this.observer=c(t),this.cleanup=void 0,this.subscriptionObserver=void 0};K.prototype={type:v,clean:function(){var t=this.cleanup;if(t){this.cleanup=void 0;try{t()}catch(t){g(t)}}},close:function(){if(!o){var t=this.facade,e=this.subscriptionObserver;t.closed=!0,e&&(e.closed=!0)}this.observer=void 0},isClosed:function(){return void 0===this.observer}};var N=function(t,e){var n,r=R(this,new K(t));o||(this.closed=!1);try{(n=p(t,"start"))&&i(n,t,this)}catch(t){g(t)}if(!r.isClosed()){var l=r.subscriptionObserver=new k(r);try{var c=e(l),s=c;d(c)||(r.cleanup=u(c.unsubscribe)?function(){s.unsubscribe()}:a(c))}catch(t){return void l.error(t)}r.isClosed()&&r.clean()}};N.prototype=Z({},{unsubscribe:function(){var t=C(this);t.isClosed()||(t.close(),t.clean())}}),o&&m(N.prototype,"closed",{configurable:!0,get:function(){return C(this).isClosed()}});var k=function(t){R(this,{type:V,subscriptionState:t}),o||(this.closed=!1)};k.prototype=Z({},{next:function(t){var e=Y(this).subscriptionState;if(!e.isClosed()){var n=e.observer;try{var r=p(n,"next");r&&i(r,n,t)}catch(t){g(t)}}},error:function(t){var e=Y(this).subscriptionState;if(!e.isClosed()){var n=e.observer;e.close();try{var r=p(n,"error");r?i(r,n,t):g(t)}catch(t){g(t)}e.clean()}},complete:function(){var t=Y(this).subscriptionState;if(!t.isClosed()){var e=t.observer;t.close();try{var n=p(e,"complete");n&&i(n,e)}catch(t){g(t)}t.clean()}}}),o&&m(k.prototype,"closed",{configurable:!0,get:function(){return Y(this).subscriptionState.isClosed()}});var J=function(t){s(this,T),R(this,{type:X,subscriber:a(t)})},T=J.prototype;Z(T,{subscribe:function(t){var e=arguments.length;return new N(u(t)?{next:t,error:e>1?arguments[1]:void 0,complete:e>2?arguments[2]:void 0}:h(t)?t:{},S(this).subscriber)}}),b(T,G,(function(){return this})),r({global:!0,constructor:!0,forced:I},{Observable:J}),l(X)},93532:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(46916),l=n(19670),a=n(4411),c=n(18554),s=n(58173),u=n(20408),d=n(5112),h=n(90515),p=d("observable");r({target:"Observable",stat:!0,forced:h},{from:function(t){var e=a(this)?this:i("Observable"),n=s(l(t),p);if(n){var r=l(o(n,t));return r.constructor===e?r:new e((function(t){return r.subscribe(t)}))}var d=c(t);return new e((function(t){u(d,(function(e,n){if(t.next(e),t.closed)return n()}),{IS_ITERATOR:!0,INTERRUPTED:!0}),t.complete()}))}})},1025:(t,e,n)=>{n(39769),n(93532),n(88170)},88170:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(4411),l=n(90515),a=i("Array");r({target:"Observable",stat:!0,forced:l},{of:function(){for(var t=o(this)?this:i("Observable"),e=arguments.length,n=a(e),r=0;r<e;)n[r]=arguments[r++];return new t((function(t){for(var r=0;r<e;r++)if(t.next(n[r]),t.closed)return;t.complete()}))}})},96290:(t,e,n)=>{n(34668)},77479:(t,e,n)=>{"use strict";var r=n(82109),i=n(78523),o=n(12534);r({target:"Promise",stat:!0,forced:!0},{try:function(t){var e=i.f(this),n=o(t);return(n.error?e.reject:e.resolve)(n.value),e.promise}})},34582:(t,e,n)=>{var r=n(82109),i=n(38845),o=n(19670),l=i.toKey,a=i.set;r({target:"Reflect",stat:!0},{defineMetadata:function(t,e,n){var r=arguments.length<4?void 0:l(arguments[3]);a(t,e,o(n),r)}})},47896:(t,e,n)=>{var r=n(82109),i=n(38845),o=n(19670),l=i.toKey,a=i.getMap,c=i.store;r({target:"Reflect",stat:!0},{deleteMetadata:function(t,e){var n=arguments.length<3?void 0:l(arguments[2]),r=a(o(e),n,!1);if(void 0===r||!r.delete(t))return!1;if(r.size)return!0;var i=c.get(e);return i.delete(n),!!i.size||c.delete(e)}})},98558:(t,e,n)=>{var r=n(82109),i=n(1702),o=n(38845),l=n(19670),a=n(79518),c=i(n(60956)),s=i([].concat),u=o.keys,d=o.toKey,h=function(t,e){var n=u(t,e),r=a(t);if(null===r)return n;var i=h(r,e);return i.length?n.length?c(s(n,i)):i:n};r({target:"Reflect",stat:!0},{getMetadataKeys:function(t){var e=arguments.length<2?void 0:d(arguments[1]);return h(l(t),e)}})},12647:(t,e,n)=>{var r=n(82109),i=n(38845),o=n(19670),l=n(79518),a=i.has,c=i.get,s=i.toKey,u=function(t,e,n){if(a(t,e,n))return c(t,e,n);var r=l(e);return null!==r?u(t,r,n):void 0};r({target:"Reflect",stat:!0},{getMetadata:function(t,e){var n=arguments.length<3?void 0:s(arguments[2]);return u(t,o(e),n)}})},97507:(t,e,n)=>{var r=n(82109),i=n(38845),o=n(19670),l=i.keys,a=i.toKey;r({target:"Reflect",stat:!0},{getOwnMetadataKeys:function(t){var e=arguments.length<2?void 0:a(arguments[1]);return l(o(t),e)}})},84018:(t,e,n)=>{var r=n(82109),i=n(38845),o=n(19670),l=i.get,a=i.toKey;r({target:"Reflect",stat:!0},{getOwnMetadata:function(t,e){var n=arguments.length<3?void 0:a(arguments[2]);return l(t,o(e),n)}})},61605:(t,e,n)=>{var r=n(82109),i=n(38845),o=n(19670),l=n(79518),a=i.has,c=i.toKey,s=function(t,e,n){if(a(t,e,n))return!0;var r=l(e);return null!==r&&s(t,r,n)};r({target:"Reflect",stat:!0},{hasMetadata:function(t,e){var n=arguments.length<3?void 0:c(arguments[2]);return s(t,o(e),n)}})},49076:(t,e,n)=>{var r=n(82109),i=n(38845),o=n(19670),l=i.has,a=i.toKey;r({target:"Reflect",stat:!0},{hasOwnMetadata:function(t,e){var n=arguments.length<3?void 0:a(arguments[2]);return l(t,o(e),n)}})},34999:(t,e,n)=>{var r=n(82109),i=n(38845),o=n(19670),l=i.toKey,a=i.set;r({target:"Reflect",stat:!0},{metadata:function(t,e){return function(n,r){a(t,e,o(n),l(r))}}})},88921:(t,e,n)=>{"use strict";n(82109)({target:"Set",proto:!0,real:!0,forced:!0},{addAll:n(31501)})},96248:(t,e,n)=>{"use strict";n(82109)({target:"Set",proto:!0,real:!0,forced:!0},{deleteAll:n(34092)})},13599:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(46916),l=n(19662),a=n(19670),c=n(36707),s=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{difference:function(t){var e=a(this),n=new(c(e,i("Set")))(e),r=l(n.delete);return s(t,(function(t){o(r,n,t)})),n}})},11477:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(49974),l=n(96767),a=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{every:function(t){var e=i(this),n=l(e),r=o(t,arguments.length>1?arguments[1]:void 0);return!a(n,(function(t,n){if(!r(t,t,e))return n()}),{IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},64362:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(46916),l=n(19662),a=n(19670),c=n(49974),s=n(36707),u=n(96767),d=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{filter:function(t){var e=a(this),n=u(e),r=c(t,arguments.length>1?arguments[1]:void 0),h=new(s(e,i("Set"))),p=l(h.add);return d(n,(function(t){r(t,t,e)&&o(p,h,t)}),{IS_ITERATOR:!0}),h}})},15389:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(49974),l=n(96767),a=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{find:function(t){var e=i(this),n=l(e),r=o(t,arguments.length>1?arguments[1]:void 0);return a(n,(function(t,n){if(r(t,t,e))return n(t)}),{IS_ITERATOR:!0,INTERRUPTED:!0}).result}})},46006:(t,e,n)=>{n(82109)({target:"Set",stat:!0,forced:!0},{from:n(27296)})},90401:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(46916),l=n(19662),a=n(19670),c=n(36707),s=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{intersection:function(t){var e=a(this),n=new(c(e,i("Set"))),r=l(e.has),u=l(n.add);return s(t,(function(t){o(r,e,t)&&o(u,n,t)})),n}})},45164:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),l=n(19670),a=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{isDisjointFrom:function(t){var e=l(this),n=o(e.has);return!a(t,(function(t,r){if(!0===i(n,e,t))return r()}),{INTERRUPTED:!0}).stopped}})},91238:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(46916),l=n(19662),a=n(60614),c=n(19670),s=n(18554),u=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{isSubsetOf:function(t){var e=s(this),n=c(t),r=n.has;return a(r)||(n=new(i("Set"))(t),r=l(n.has)),!u(e,(function(t,e){if(!1===o(r,n,t))return e()}),{IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},54837:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916),o=n(19662),l=n(19670),a=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{isSupersetOf:function(t){var e=l(this),n=o(e.has);return!a(t,(function(t,r){if(!1===i(n,e,t))return r()}),{INTERRUPTED:!0}).stopped}})},87485:(t,e,n)=>{"use strict";var r=n(82109),i=n(1702),o=n(19670),l=n(41340),a=n(96767),c=n(20408),s=i([].join),u=[].push;r({target:"Set",proto:!0,real:!0,forced:!0},{join:function(t){var e=o(this),n=a(e),r=void 0===t?",":l(t),i=[];return c(n,u,{that:i,IS_ITERATOR:!0}),s(i,r)}})},56767:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(49974),l=n(46916),a=n(19662),c=n(19670),s=n(36707),u=n(96767),d=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{map:function(t){var e=c(this),n=u(e),r=o(t,arguments.length>1?arguments[1]:void 0),h=new(s(e,i("Set"))),p=a(h.add);return d(n,(function(t){l(p,h,r(t,t,e))}),{IS_ITERATOR:!0}),h}})},69916:(t,e,n)=>{n(82109)({target:"Set",stat:!0,forced:!0},{of:n(82044)})},76651:(t,e,n)=>{"use strict";var r=n(82109),i=n(19662),o=n(19670),l=n(96767),a=n(20408),c=TypeError;r({target:"Set",proto:!0,real:!0,forced:!0},{reduce:function(t){var e=o(this),n=l(e),r=arguments.length<2,s=r?void 0:arguments[1];if(i(t),a(n,(function(n){r?(r=!1,s=n):s=t(s,n,n,e)}),{IS_ITERATOR:!0}),r)throw c("Reduce of empty set with no initial value");return s}})},61437:(t,e,n)=>{"use strict";var r=n(82109),i=n(19670),o=n(49974),l=n(96767),a=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{some:function(t){var e=i(this),n=l(e),r=o(t,arguments.length>1?arguments[1]:void 0);return a(n,(function(t,n){if(r(t,t,e))return n()}),{IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}})},35285:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(46916),l=n(19662),a=n(19670),c=n(36707),s=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{symmetricDifference:function(t){var e=a(this),n=new(c(e,i("Set")))(e),r=l(n.delete),u=l(n.add);return s(t,(function(t){o(r,n,t)||o(u,n,t)})),n}})},39865:(t,e,n)=>{"use strict";var r=n(82109),i=n(35005),o=n(19662),l=n(19670),a=n(36707),c=n(20408);r({target:"Set",proto:!0,real:!0,forced:!0},{union:function(t){var e=l(this),n=new(a(e,i("Set")))(e);return c(t,o(n.add),{that:n}),n}})},86035:(t,e,n)=>{"use strict";var r=n(82109),i=n(28710).charAt,o=n(84488),l=n(19303),a=n(41340);r({target:"String",proto:!0,forced:!0},{at:function(t){var e=a(o(this)),n=e.length,r=l(t),c=r>=0?r:n+r;return c<0||c>=n?void 0:i(e,c)}})},67501:(t,e,n)=>{"use strict";var r=n(82109),i=n(63061),o=n(76178),l=n(84488),a=n(41340),c=n(29909),s=n(28710),u=s.codeAt,d=s.charAt,h="String Iterator",p=c.set,b=c.getterFor(h),Z=i((function(t){p(this,{type:h,string:t,index:0})}),"String",(function(){var t,e=b(this),n=e.string,r=e.index;return r>=n.length?o(void 0,!0):(t=d(n,r),e.index+=t.length,o({codePoint:u(t,0),position:r},!1))}));r({target:"String",proto:!0,forced:!0},{codePoints:function(){return new Z(a(l(this)))}})},27207:(t,e,n)=>{n(68757)},609:(t,e,n)=>{n(26800)("asyncDispose")},21568:(t,e,n)=>{n(26800)("dispose")},48824:(t,e,n)=>{n(26800)("observable")},44130:(t,e,n)=>{n(26800)("patternMatch")},35954:(t,e,n)=>{n(26800)("replaceAll")},78206:(t,e,n)=>{"use strict";n(82109)({target:"WeakMap",proto:!0,real:!0,forced:!0},{deleteAll:n(34092)})},76478:(t,e,n)=>{n(82109)({target:"WeakMap",stat:!0,forced:!0},{from:n(27296)})},79715:(t,e,n)=>{n(82109)({target:"WeakMap",stat:!0,forced:!0},{of:n(82044)})},5964:(t,e,n)=>{"use strict";n(82109)({target:"WeakMap",proto:!0,real:!0,forced:!0},{upsert:n(8154)})},43561:(t,e,n)=>{"use strict";n(82109)({target:"WeakSet",proto:!0,real:!0,forced:!0},{addAll:n(31501)})},32049:(t,e,n)=>{"use strict";n(82109)({target:"WeakSet",proto:!0,real:!0,forced:!0},{deleteAll:n(34092)})},86020:(t,e,n)=>{n(82109)({target:"WeakSet",stat:!0,forced:!0},{from:n(27296)})},56585:(t,e,n)=>{n(82109)({target:"WeakSet",stat:!0,forced:!0},{of:n(82044)})},11091:(t,e,n)=>{var r=n(82109),i=n(17854),o=n(20261).clear;r({global:!0,bind:!0,enumerable:!0,forced:i.clearImmediate!==o},{clearImmediate:o})},54747:(t,e,n)=>{var r=n(17854),i=n(48324),o=n(98509),l=n(18533),a=n(68880),c=function(t){if(t&&t.forEach!==l)try{a(t,"forEach",l)}catch(e){t.forEach=l}};for(var s in i)i[s]&&c(r[s]&&r[s].prototype);c(o)},33948:(t,e,n)=>{var r=n(17854),i=n(48324),o=n(98509),l=n(66992),a=n(68880),c=n(5112),s=c("iterator"),u=c("toStringTag"),d=l.values,h=function(t,e){if(t){if(t[s]!==d)try{a(t,s,d)}catch(e){t[s]=d}if(t[u]||a(t,u,e),i[e])for(var n in l)if(t[n]!==l[n])try{a(t,n,l[n])}catch(e){t[n]=l[n]}}};for(var p in i)h(r[p]&&r[p].prototype,p);h(o,"DOMTokenList")},84633:(t,e,n)=>{n(11091),n(12986)},85844:(t,e,n)=>{var r=n(82109),i=n(17854),o=n(95948),l=n(19662),a=n(48053),c=n(35268),s=i.process;r({global:!0,enumerable:!0,dontCallGetSet:!0},{queueMicrotask:function(t){a(arguments.length,1),l(t);var e=c&&s.domain;o(e?e.bind(t):t)}})},12986:(t,e,n)=>{var r=n(82109),i=n(17854),o=n(20261).set;r({global:!0,bind:!0,enumerable:!0,forced:i.setImmediate!==o},{setImmediate:o})},96815:(t,e,n)=>{var r=n(82109),i=n(17854),o=n(17152).setInterval;r({global:!0,bind:!0,forced:i.setInterval!==o},{setInterval:o})},88417:(t,e,n)=>{var r=n(82109),i=n(17854),o=n(17152).setTimeout;r({global:!0,bind:!0,forced:i.setTimeout!==o},{setTimeout:o})},32564:(t,e,n)=>{n(96815),n(88417)},65556:(t,e,n)=>{"use strict";n(66992);var r=n(82109),i=n(17854),o=n(46916),l=n(1702),a=n(19781),c=n(85143),s=n(98052),u=n(89190),d=n(58003),h=n(63061),p=n(29909),b=n(25787),Z=n(60614),m=n(92597),g=n(49974),y=n(70648),f=n(19670),I=n(70111),G=n(41340),X=n(70030),v=n(79114),V=n(18554),W=n(71246),R=n(48053),S=n(5112),C=n(94362),Y=S("iterator"),K="URLSearchParams",N=K+"Iterator",k=p.set,J=p.getterFor(K),T=p.getterFor(N),L=Object.getOwnPropertyDescriptor,x=function(t){if(!a)return i[t];var e=L(i,t);return e&&e.value},U=x("fetch"),H=x("Request"),w=x("Headers"),F=H&&H.prototype,A=w&&w.prototype,B=i.RegExp,z=i.TypeError,P=i.decodeURIComponent,j=i.encodeURIComponent,E=l("".charAt),M=l([].join),Q=l([].push),O=l("".replace),D=l([].shift),_=l([].splice),q=l("".split),$=l("".slice),tt=/\+/g,et=Array(4),nt=function(t){return et[t-1]||(et[t-1]=B("((?:%[\\da-f]{2}){"+t+"})","gi"))},rt=function(t){try{return P(t)}catch(e){return t}},it=function(t){var e=O(t,tt," "),n=4;try{return P(e)}catch(t){for(;n;)e=O(e,nt(n--),rt);return e}},ot=/[!'()~]|%20/g,lt={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},at=function(t){return lt[t]},ct=function(t){return O(j(t),ot,at)},st=h((function(t,e){k(this,{type:N,iterator:V(J(t).entries),kind:e})}),"Iterator",(function(){var t=T(this),e=t.kind,n=t.iterator.next(),r=n.value;return n.done||(n.value="keys"===e?r.key:"values"===e?r.value:[r.key,r.value]),n}),!0),ut=function(t){this.entries=[],this.url=null,void 0!==t&&(I(t)?this.parseObject(t):this.parseQuery("string"==typeof t?"?"===E(t,0)?$(t,1):t:G(t)))};ut.prototype={type:K,bindURL:function(t){this.url=t,this.update()},parseObject:function(t){var e,n,r,i,l,a,c,s=W(t);if(s)for(n=(e=V(t,s)).next;!(r=o(n,e)).done;){if(l=(i=V(f(r.value))).next,(a=o(l,i)).done||(c=o(l,i)).done||!o(l,i).done)throw z("Expected sequence with length 2");Q(this.entries,{key:G(a.value),value:G(c.value)})}else for(var u in t)m(t,u)&&Q(this.entries,{key:u,value:G(t[u])})},parseQuery:function(t){if(t)for(var e,n,r=q(t,"&"),i=0;i<r.length;)(e=r[i++]).length&&(n=q(e,"="),Q(this.entries,{key:it(D(n)),value:it(M(n,"="))}))},serialize:function(){for(var t,e=this.entries,n=[],r=0;r<e.length;)t=e[r++],Q(n,ct(t.key)+"="+ct(t.value));return M(n,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var dt=function(){b(this,ht);var t=arguments.length>0?arguments[0]:void 0;k(this,new ut(t))},ht=dt.prototype;if(u(ht,{append:function(t,e){R(arguments.length,2);var n=J(this);Q(n.entries,{key:G(t),value:G(e)}),n.updateURL()},delete:function(t){R(arguments.length,1);for(var e=J(this),n=e.entries,r=G(t),i=0;i<n.length;)n[i].key===r?_(n,i,1):i++;e.updateURL()},get:function(t){R(arguments.length,1);for(var e=J(this).entries,n=G(t),r=0;r<e.length;r++)if(e[r].key===n)return e[r].value;return null},getAll:function(t){R(arguments.length,1);for(var e=J(this).entries,n=G(t),r=[],i=0;i<e.length;i++)e[i].key===n&&Q(r,e[i].value);return r},has:function(t){R(arguments.length,1);for(var e=J(this).entries,n=G(t),r=0;r<e.length;)if(e[r++].key===n)return!0;return!1},set:function(t,e){R(arguments.length,1);for(var n,r=J(this),i=r.entries,o=!1,l=G(t),a=G(e),c=0;c<i.length;c++)(n=i[c]).key===l&&(o?_(i,c--,1):(o=!0,n.value=a));o||Q(i,{key:l,value:a}),r.updateURL()},sort:function(){var t=J(this);C(t.entries,(function(t,e){return t.key>e.key?1:-1})),t.updateURL()},forEach:function(t){for(var e,n=J(this).entries,r=g(t,arguments.length>1?arguments[1]:void 0),i=0;i<n.length;)r((e=n[i++]).value,e.key,this)},keys:function(){return new st(this,"keys")},values:function(){return new st(this,"values")},entries:function(){return new st(this,"entries")}},{enumerable:!0}),s(ht,Y,ht.entries,{name:"entries"}),s(ht,"toString",(function(){return J(this).serialize()}),{enumerable:!0}),d(dt,K),r({global:!0,constructor:!0,forced:!c},{URLSearchParams:dt}),!c&&Z(w)){var pt=l(A.has),bt=l(A.set),Zt=function(t){if(I(t)){var e,n=t.body;if(y(n)===K)return e=t.headers?new w(t.headers):new w,pt(e,"content-type")||bt(e,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),X(t,{body:v(0,G(n)),headers:v(0,e)})}return t};if(Z(U)&&r({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(t){return U(t,arguments.length>1?Zt(arguments[1]):{})}}),Z(H)){var mt=function(t){return b(this,F),new H(t,arguments.length>1?Zt(arguments[1]):{})};F.constructor=mt,mt.prototype=F,r({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:mt})}}t.exports={URLSearchParams:dt,getState:J}},41637:(t,e,n)=>{n(65556)},68789:(t,e,n)=>{"use strict";n(78783);var r,i=n(82109),o=n(19781),l=n(85143),a=n(17854),c=n(49974),s=n(1702),u=n(98052),d=n(47045),h=n(25787),p=n(92597),b=n(21574),Z=n(48457),m=n(41589),g=n(28710).codeAt,y=n(33197),f=n(41340),I=n(58003),G=n(48053),X=n(65556),v=n(29909),V=v.set,W=v.getterFor("URL"),R=X.URLSearchParams,S=X.getState,C=a.URL,Y=a.TypeError,K=a.parseInt,N=Math.floor,k=Math.pow,J=s("".charAt),T=s(/./.exec),L=s([].join),x=s(1..toString),U=s([].pop),H=s([].push),w=s("".replace),F=s([].shift),A=s("".split),B=s("".slice),z=s("".toLowerCase),P=s([].unshift),j="Invalid scheme",E="Invalid host",M="Invalid port",Q=/[a-z]/i,O=/[\d+-.a-z]/i,D=/\d/,_=/^0x/i,q=/^[0-7]+$/,$=/^\d+$/,tt=/^[\da-f]+$/i,et=/[\0\t\n\r #%/:<>?@[\\\]^|]/,nt=/[\0\t\n\r #/:<>?@[\\\]^|]/,rt=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,it=/[\t\n\r]/g,ot=function(t){var e,n,r,i;if("number"==typeof t){for(e=[],n=0;n<4;n++)P(e,t%256),t=N(t/256);return L(e,".")}if("object"==typeof t){for(e="",r=function(t){for(var e=null,n=1,r=null,i=0,o=0;o<8;o++)0!==t[o]?(i>n&&(e=r,n=i),r=null,i=0):(null===r&&(r=o),++i);return i>n&&(e=r,n=i),e}(t),n=0;n<8;n++)i&&0===t[n]||(i&&(i=!1),r===n?(e+=n?":":"::",i=!0):(e+=x(t[n],16),n<7&&(e+=":")));return"["+e+"]"}return t},lt={},at=b({},lt,{" ":1,'"':1,"<":1,">":1,"`":1}),ct=b({},at,{"#":1,"?":1,"{":1,"}":1}),st=b({},ct,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),ut=function(t,e){var n=g(t,0);return n>32&&n<127&&!p(e,t)?t:encodeURIComponent(t)},dt={ftp:21,file:null,http:80,https:443,ws:80,wss:443},ht=function(t,e){var n;return 2==t.length&&T(Q,J(t,0))&&(":"==(n=J(t,1))||!e&&"|"==n)},pt=function(t){var e;return t.length>1&&ht(B(t,0,2))&&(2==t.length||"/"===(e=J(t,2))||"\\"===e||"?"===e||"#"===e)},bt=function(t){return"."===t||"%2e"===z(t)},Zt={},mt={},gt={},yt={},ft={},It={},Gt={},Xt={},vt={},Vt={},Wt={},Rt={},St={},Ct={},Yt={},Kt={},Nt={},kt={},Jt={},Tt={},Lt={},xt=function(t,e,n){var r,i,o,l=f(t);if(e){if(i=this.parse(l))throw Y(i);this.searchParams=null}else{if(void 0!==n&&(r=new xt(n,!0)),i=this.parse(l,null,r))throw Y(i);(o=S(new R)).bindURL(this),this.searchParams=o}};xt.prototype={type:"URL",parse:function(t,e,n){var i,o,l,a,c,s=this,u=e||Zt,d=0,h="",b=!1,g=!1,y=!1;for(t=f(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=w(t,rt,"")),t=w(t,it,""),i=Z(t);d<=i.length;){switch(o=i[d],u){case Zt:if(!o||!T(Q,o)){if(e)return j;u=gt;continue}h+=z(o),u=mt;break;case mt:if(o&&(T(O,o)||"+"==o||"-"==o||"."==o))h+=z(o);else{if(":"!=o){if(e)return j;h="",u=gt,d=0;continue}if(e&&(s.isSpecial()!=p(dt,h)||"file"==h&&(s.includesCredentials()||null!==s.port)||"file"==s.scheme&&!s.host))return;if(s.scheme=h,e)return void(s.isSpecial()&&dt[s.scheme]==s.port&&(s.port=null));h="","file"==s.scheme?u=Ct:s.isSpecial()&&n&&n.scheme==s.scheme?u=yt:s.isSpecial()?u=Xt:"/"==i[d+1]?(u=ft,d++):(s.cannotBeABaseURL=!0,H(s.path,""),u=Jt)}break;case gt:if(!n||n.cannotBeABaseURL&&"#"!=o)return j;if(n.cannotBeABaseURL&&"#"==o){s.scheme=n.scheme,s.path=m(n.path),s.query=n.query,s.fragment="",s.cannotBeABaseURL=!0,u=Lt;break}u="file"==n.scheme?Ct:It;continue;case yt:if("/"!=o||"/"!=i[d+1]){u=It;continue}u=vt,d++;break;case ft:if("/"==o){u=Vt;break}u=kt;continue;case It:if(s.scheme=n.scheme,o==r)s.username=n.username,s.password=n.password,s.host=n.host,s.port=n.port,s.path=m(n.path),s.query=n.query;else if("/"==o||"\\"==o&&s.isSpecial())u=Gt;else if("?"==o)s.username=n.username,s.password=n.password,s.host=n.host,s.port=n.port,s.path=m(n.path),s.query="",u=Tt;else{if("#"!=o){s.username=n.username,s.password=n.password,s.host=n.host,s.port=n.port,s.path=m(n.path),s.path.length--,u=kt;continue}s.username=n.username,s.password=n.password,s.host=n.host,s.port=n.port,s.path=m(n.path),s.query=n.query,s.fragment="",u=Lt}break;case Gt:if(!s.isSpecial()||"/"!=o&&"\\"!=o){if("/"!=o){s.username=n.username,s.password=n.password,s.host=n.host,s.port=n.port,u=kt;continue}u=Vt}else u=vt;break;case Xt:if(u=vt,"/"!=o||"/"!=J(h,d+1))continue;d++;break;case vt:if("/"!=o&&"\\"!=o){u=Vt;continue}break;case Vt:if("@"==o){b&&(h="%40"+h),b=!0,l=Z(h);for(var I=0;I<l.length;I++){var G=l[I];if(":"!=G||y){var X=ut(G,st);y?s.password+=X:s.username+=X}else y=!0}h=""}else if(o==r||"/"==o||"?"==o||"#"==o||"\\"==o&&s.isSpecial()){if(b&&""==h)return"Invalid authority";d-=Z(h).length+1,h="",u=Wt}else h+=o;break;case Wt:case Rt:if(e&&"file"==s.scheme){u=Kt;continue}if(":"!=o||g){if(o==r||"/"==o||"?"==o||"#"==o||"\\"==o&&s.isSpecial()){if(s.isSpecial()&&""==h)return E;if(e&&""==h&&(s.includesCredentials()||null!==s.port))return;if(a=s.parseHost(h))return a;if(h="",u=Nt,e)return;continue}"["==o?g=!0:"]"==o&&(g=!1),h+=o}else{if(""==h)return E;if(a=s.parseHost(h))return a;if(h="",u=St,e==Rt)return}break;case St:if(!T(D,o)){if(o==r||"/"==o||"?"==o||"#"==o||"\\"==o&&s.isSpecial()||e){if(""!=h){var v=K(h,10);if(v>65535)return M;s.port=s.isSpecial()&&v===dt[s.scheme]?null:v,h=""}if(e)return;u=Nt;continue}return M}h+=o;break;case Ct:if(s.scheme="file","/"==o||"\\"==o)u=Yt;else{if(!n||"file"!=n.scheme){u=kt;continue}if(o==r)s.host=n.host,s.path=m(n.path),s.query=n.query;else if("?"==o)s.host=n.host,s.path=m(n.path),s.query="",u=Tt;else{if("#"!=o){pt(L(m(i,d),""))||(s.host=n.host,s.path=m(n.path),s.shortenPath()),u=kt;continue}s.host=n.host,s.path=m(n.path),s.query=n.query,s.fragment="",u=Lt}}break;case Yt:if("/"==o||"\\"==o){u=Kt;break}n&&"file"==n.scheme&&!pt(L(m(i,d),""))&&(ht(n.path[0],!0)?H(s.path,n.path[0]):s.host=n.host),u=kt;continue;case Kt:if(o==r||"/"==o||"\\"==o||"?"==o||"#"==o){if(!e&&ht(h))u=kt;else if(""==h){if(s.host="",e)return;u=Nt}else{if(a=s.parseHost(h))return a;if("localhost"==s.host&&(s.host=""),e)return;h="",u=Nt}continue}h+=o;break;case Nt:if(s.isSpecial()){if(u=kt,"/"!=o&&"\\"!=o)continue}else if(e||"?"!=o)if(e||"#"!=o){if(o!=r&&(u=kt,"/"!=o))continue}else s.fragment="",u=Lt;else s.query="",u=Tt;break;case kt:if(o==r||"/"==o||"\\"==o&&s.isSpecial()||!e&&("?"==o||"#"==o)){if(".."===(c=z(c=h))||"%2e."===c||".%2e"===c||"%2e%2e"===c?(s.shortenPath(),"/"==o||"\\"==o&&s.isSpecial()||H(s.path,"")):bt(h)?"/"==o||"\\"==o&&s.isSpecial()||H(s.path,""):("file"==s.scheme&&!s.path.length&&ht(h)&&(s.host&&(s.host=""),h=J(h,0)+":"),H(s.path,h)),h="","file"==s.scheme&&(o==r||"?"==o||"#"==o))for(;s.path.length>1&&""===s.path[0];)F(s.path);"?"==o?(s.query="",u=Tt):"#"==o&&(s.fragment="",u=Lt)}else h+=ut(o,ct);break;case Jt:"?"==o?(s.query="",u=Tt):"#"==o?(s.fragment="",u=Lt):o!=r&&(s.path[0]+=ut(o,lt));break;case Tt:e||"#"!=o?o!=r&&("'"==o&&s.isSpecial()?s.query+="%27":s.query+="#"==o?"%23":ut(o,lt)):(s.fragment="",u=Lt);break;case Lt:o!=r&&(s.fragment+=ut(o,at))}d++}},parseHost:function(t){var e,n,r;if("["==J(t,0)){if("]"!=J(t,t.length-1))return E;if(e=function(t){var e,n,r,i,o,l,a,c=[0,0,0,0,0,0,0,0],s=0,u=null,d=0,h=function(){return J(t,d)};if(":"==h()){if(":"!=J(t,1))return;d+=2,u=++s}for(;h();){if(8==s)return;if(":"!=h()){for(e=n=0;n<4&&T(tt,h());)e=16*e+K(h(),16),d++,n++;if("."==h()){if(0==n)return;if(d-=n,s>6)return;for(r=0;h();){if(i=null,r>0){if(!("."==h()&&r<4))return;d++}if(!T(D,h()))return;for(;T(D,h());){if(o=K(h(),10),null===i)i=o;else{if(0==i)return;i=10*i+o}if(i>255)return;d++}c[s]=256*c[s]+i,2!=++r&&4!=r||s++}if(4!=r)return;break}if(":"==h()){if(d++,!h())return}else if(h())return;c[s++]=e}else{if(null!==u)return;d++,u=++s}}if(null!==u)for(l=s-u,s=7;0!=s&&l>0;)a=c[s],c[s--]=c[u+l-1],c[u+--l]=a;else if(8!=s)return;return c}(B(t,1,-1)),!e)return E;this.host=e}else if(this.isSpecial()){if(t=y(t),T(et,t))return E;if(e=function(t){var e,n,r,i,o,l,a,c=A(t,".");if(c.length&&""==c[c.length-1]&&c.length--,(e=c.length)>4)return t;for(n=[],r=0;r<e;r++){if(""==(i=c[r]))return t;if(o=10,i.length>1&&"0"==J(i,0)&&(o=T(_,i)?16:8,i=B(i,8==o?1:2)),""===i)l=0;else{if(!T(10==o?$:8==o?q:tt,i))return t;l=K(i,o)}H(n,l)}for(r=0;r<e;r++)if(l=n[r],r==e-1){if(l>=k(256,5-e))return null}else if(l>255)return null;for(a=U(n),r=0;r<n.length;r++)a+=n[r]*k(256,3-r);return a}(t),null===e)return E;this.host=e}else{if(T(nt,t))return E;for(e="",n=Z(t),r=0;r<n.length;r++)e+=ut(n[r],lt);this.host=e}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||"file"==this.scheme},includesCredentials:function(){return""!=this.username||""!=this.password},isSpecial:function(){return p(dt,this.scheme)},shortenPath:function(){var t=this.path,e=t.length;!e||"file"==this.scheme&&1==e&&ht(t[0],!0)||t.length--},serialize:function(){var t=this,e=t.scheme,n=t.username,r=t.password,i=t.host,o=t.port,l=t.path,a=t.query,c=t.fragment,s=e+":";return null!==i?(s+="//",t.includesCredentials()&&(s+=n+(r?":"+r:"")+"@"),s+=ot(i),null!==o&&(s+=":"+o)):"file"==e&&(s+="//"),s+=t.cannotBeABaseURL?l[0]:l.length?"/"+L(l,"/"):"",null!==a&&(s+="?"+a),null!==c&&(s+="#"+c),s},setHref:function(t){var e=this.parse(t);if(e)throw Y(e);this.searchParams.update()},getOrigin:function(){var t=this.scheme,e=this.port;if("blob"==t)try{return new Ut(t.path[0]).origin}catch(t){return"null"}return"file"!=t&&this.isSpecial()?t+"://"+ot(this.host)+(null!==e?":"+e:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(t){this.parse(f(t)+":",Zt)},getUsername:function(){return this.username},setUsername:function(t){var e=Z(f(t));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var n=0;n<e.length;n++)this.username+=ut(e[n],st)}},getPassword:function(){return this.password},setPassword:function(t){var e=Z(f(t));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var n=0;n<e.length;n++)this.password+=ut(e[n],st)}},getHost:function(){var t=this.host,e=this.port;return null===t?"":null===e?ot(t):ot(t)+":"+e},setHost:function(t){this.cannotBeABaseURL||this.parse(t,Wt)},getHostname:function(){var t=this.host;return null===t?"":ot(t)},setHostname:function(t){this.cannotBeABaseURL||this.parse(t,Rt)},getPort:function(){var t=this.port;return null===t?"":f(t)},setPort:function(t){this.cannotHaveUsernamePasswordPort()||(""==(t=f(t))?this.port=null:this.parse(t,St))},getPathname:function(){var t=this.path;return this.cannotBeABaseURL?t[0]:t.length?"/"+L(t,"/"):""},setPathname:function(t){this.cannotBeABaseURL||(this.path=[],this.parse(t,Nt))},getSearch:function(){var t=this.query;return t?"?"+t:""},setSearch:function(t){""==(t=f(t))?this.query=null:("?"==J(t,0)&&(t=B(t,1)),this.query="",this.parse(t,Tt)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var t=this.fragment;return t?"#"+t:""},setHash:function(t){""!=(t=f(t))?("#"==J(t,0)&&(t=B(t,1)),this.fragment="",this.parse(t,Lt)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var Ut=function(t){var e=h(this,Ht),n=G(arguments.length,1)>1?arguments[1]:void 0,r=V(e,new xt(t,!1,n));o||(e.href=r.serialize(),e.origin=r.getOrigin(),e.protocol=r.getProtocol(),e.username=r.getUsername(),e.password=r.getPassword(),e.host=r.getHost(),e.hostname=r.getHostname(),e.port=r.getPort(),e.pathname=r.getPathname(),e.search=r.getSearch(),e.searchParams=r.getSearchParams(),e.hash=r.getHash())},Ht=Ut.prototype,wt=function(t,e){return{get:function(){return W(this)[t]()},set:e&&function(t){return W(this)[e](t)},configurable:!0,enumerable:!0}};if(o&&(d(Ht,"href",wt("serialize","setHref")),d(Ht,"origin",wt("getOrigin")),d(Ht,"protocol",wt("getProtocol","setProtocol")),d(Ht,"username",wt("getUsername","setUsername")),d(Ht,"password",wt("getPassword","setPassword")),d(Ht,"host",wt("getHost","setHost")),d(Ht,"hostname",wt("getHostname","setHostname")),d(Ht,"port",wt("getPort","setPort")),d(Ht,"pathname",wt("getPathname","setPathname")),d(Ht,"search",wt("getSearch","setSearch")),d(Ht,"searchParams",wt("getSearchParams")),d(Ht,"hash",wt("getHash","setHash"))),u(Ht,"toJSON",(function(){return W(this).serialize()}),{enumerable:!0}),u(Ht,"toString",(function(){return W(this).serialize()}),{enumerable:!0}),C){var Ft=C.createObjectURL,At=C.revokeObjectURL;Ft&&u(Ut,"createObjectURL",c(Ft,C)),At&&u(Ut,"revokeObjectURL",c(At,C))}I(Ut,"URL"),i({global:!0,constructor:!0,forced:!l,sham:!o},{URL:Ut})},60285:(t,e,n)=>{n(68789)},83753:(t,e,n)=>{"use strict";var r=n(82109),i=n(46916);r({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return i(URL.prototype.toString,this)}})},86248:t=>{var e=function(t){"use strict";var e,n=Object.prototype,r=n.hasOwnProperty,i=Object.defineProperty||function(t,e,n){t[e]=n.value},o="function"==typeof Symbol?Symbol:{},l=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function s(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,n){return t[e]=n}}function u(t,e,n,r){var o=e&&e.prototype instanceof m?e:m,l=Object.create(o.prototype),a=new Y(r||[]);return i(l,"_invoke",{value:W(t,n,a)}),l}function d(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=u;var h="suspendedStart",p="executing",b="completed",Z={};function m(){}function g(){}function y(){}var f={};s(f,l,(function(){return this}));var I=Object.getPrototypeOf,G=I&&I(I(K([])));G&&G!==n&&r.call(G,l)&&(f=G);var X=y.prototype=m.prototype=Object.create(f);function v(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function V(t,e){function n(i,o,l,a){var c=d(t[i],t,o);if("throw"!==c.type){var s=c.arg,u=s.value;return u&&"object"==typeof u&&r.call(u,"__await")?e.resolve(u.__await).then((function(t){n("next",t,l,a)}),(function(t){n("throw",t,l,a)})):e.resolve(u).then((function(t){s.value=t,l(s)}),(function(t){return n("throw",t,l,a)}))}a(c.arg)}var o;i(this,"_invoke",{value:function(t,r){function i(){return new e((function(e,i){n(t,r,e,i)}))}return o=o?o.then(i,i):i()}})}function W(t,e,n){var r=h;return function(i,o){if(r===p)throw new Error("Generator is already running");if(r===b){if("throw"===i)throw o;return N()}for(n.method=i,n.arg=o;;){var l=n.delegate;if(l){var a=R(l,n);if(a){if(a===Z)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===h)throw r=b,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var c=d(t,e,n);if("normal"===c.type){if(r=n.done?b:"suspendedYield",c.arg===Z)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r=b,n.method="throw",n.arg=c.arg)}}}function R(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,R(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),Z;var o=d(i,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,Z;var l=o.arg;return l?l.done?(n[t.resultName]=l.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,Z):l:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,Z)}function S(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 C(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function Y(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(S,this),this.reset(!0)}function K(t){if(t){var n=t[l];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,o=function n(){for(;++i<t.length;)if(r.call(t,i))return n.value=t[i],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}return{next:N}}function N(){return{value:e,done:!0}}return g.prototype=y,i(X,"constructor",{value:y,configurable:!0}),i(y,"constructor",{value:g,configurable:!0}),g.displayName=s(y,c,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===g||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,y):(t.__proto__=y,s(t,c,"GeneratorFunction")),t.prototype=Object.create(X),t},t.awrap=function(t){return{__await:t}},v(V.prototype),s(V.prototype,a,(function(){return this})),t.AsyncIterator=V,t.async=function(e,n,r,i,o){void 0===o&&(o=Promise);var l=new V(u(e,n,r,i),o);return t.isGeneratorFunction(n)?l:l.next().then((function(t){return t.done?t.value:l.next()}))},v(X),s(X,c,"Generator"),s(X,l,(function(){return this})),s(X,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),n=[];for(var r in e)n.push(r);return n.reverse(),function t(){for(;n.length;){var r=n.pop();if(r in e)return t.value=r,t.done=!1,t}return t.done=!0,t}},t.values=K,Y.prototype={constructor:Y,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(C),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},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 n=this;function i(r,i){return a.type="throw",a.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var l=this.tryEntries[o],a=l.completion;if("root"===l.tryLoc)return i("end");if(l.tryLoc<=this.prev){var c=r.call(l,"catchLoc"),s=r.call(l,"finallyLoc");if(c&&s){if(this.prev<l.catchLoc)return i(l.catchLoc,!0);if(this.prev<l.finallyLoc)return i(l.finallyLoc)}else if(c){if(this.prev<l.catchLoc)return i(l.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<l.finallyLoc)return i(l.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var l=o?o.completion:{};return l.type=t,l.arg=e,o?(this.method="next",this.next=o.finallyLoc,Z):this.complete(l)},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),Z},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),C(n),Z}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;C(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:K(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),Z}},t}(t.exports);try{regeneratorRuntime=e}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=e:Function("r","regeneratorRuntime = r")(e)}},48947:e=>{"use strict";e.exports=t}},n={};function r(t){var i=n[t];if(void 0!==i)return i.exports;var o=n[t]={exports:{}};return e[t](o,o.exports,r),o.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};return(()=>{"use strict";var t;function e(t,e,n,r){return new(n||(n=Promise))((function(i,o){function l(t){try{c(r.next(t))}catch(t){o(t)}}function a(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(l,a)}c((r=r.apply(t,e||[])).next())}))}function n(t,e,n,r){return new(n||(n=Promise))((function(i,o){function l(t){try{c(r.next(t))}catch(t){o(t)}}function a(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(l,a)}c((r=r.apply(t,e||[])).next())}))}r.r(i),r.d(i,{ASGARDEO_SESSION_ACTIVE:()=>S,AUTHORIZATION_CODE:()=>Z,AsgardeoAuthClient:()=>K,AsgardeoAuthException:()=>X,AsgardeoSPAClient:()=>Oi,AuthProvider:()=>vo,AuthenticatedComponent:()=>Wo,AuthenticationHelper:()=>w,AuthenticationUtils:()=>v,CLIENT_ID_TAG:()=>c,CLIENT_SECRET_TAG:()=>s,CryptoHelper:()=>W,DataLayer:()=>C,Hooks:()=>T,HttpError:()=>Cr,MainThreadClient:()=>Ei,OIDC_SCOPE:()=>I,PKCE_CODE_VERIFIER:()=>h,PKCE_SEPARATOR:()=>p,REFRESH_TOKEN_TIMER:()=>d,ResponseMode:()=>t,SCOPE_TAG:()=>a,SESSION_STATE:()=>m,SIGN_OUT_SUCCESS_PARAM:()=>y,SIGN_OUT_URL:()=>g,SPAHelper:()=>F,SPAUtils:()=>H,STATE:()=>f,SUPPORTED_SIGNATURE_ALGORITHMS:()=>b,SecureApp:()=>Yo,Storage:()=>x,Stores:()=>u,TOKEN_REQUEST_CONFIG_KEY:()=>J,TOKEN_TAG:()=>o,USERNAME_TAG:()=>l,WebWorkerClass:()=>Di,WebWorkerClient:()=>Mi,useAuthContext:()=>Vo,workerReceiver:()=>_i}),r(82526),r(41817),r(72443),r(92401),r(8722),r(32165),r(69007),r(16066),r(83510),r(41840),r(6982),r(32159),r(96649),r(39341),r(60543),r(92222),r(50545),r(26541),r(43290),r(57327),r(69826),r(34553),r(84944),r(86535),r(89554),r(91038),r(26699),r(82772),r(79753),r(66992),r(69600),r(94986),r(21249),r(26572),r(85827),r(96644),r(65069),r(47042),r(5212),r(2707),r(38706),r(40561),r(33792),r(99244),r(18264),r(76938),r(39575),r(16716),r(3843),r(28733),r(5735),r(96078),r(83710),r(24812),r(4855),r(68309),r(35837),r(38862),r(73706),r(51532),r(99752),r(82376),r(73181),r(23484),r(2388),r(88621),r(60403),r(84755),r(25438),r(90332),r(40658),r(40197),r(44914),r(52420),r(60160),r(60970),r(10408),r(73689),r(9653),r(93299),r(35192),r(33161),r(44048),r(78285),r(44363),r(55994),r(61874),r(9494),r(56977),r(55147),r(19601),r(78011),r(59595),r(33321),r(69070),r(35500),r(69720),r(43371),r(38559),r(38880),r(49337),r(36210),r(30489),r(43304),r(41825),r(98410),r(72200),r(47941),r(94869),r(33952),r(57227),r(60514),r(68304),r(41539),r(26833),r(54678),r(91058),r(88674),r(17922),r(17727),r(36535),r(12419),r(69596),r(52586),r(74819),r(95683),r(39361),r(51037),r(5898),r(67556),r(14361),r(83593),r(39532),r(24603),r(74916),r(92087),r(88386),r(77601),r(39714),r(70189),r(79841),r(27852),r(94953),r(32023),r(78783),r(4723),r(76373),r(66528),r(83112),r(38992),r(82481),r(15306),r(64765),r(23123),r(23157),r(73210),r(48702),r(55674),r(15218),r(74475),r(57929),r(50915),r(29253),r(42125),r(78830),r(58734),r(29254),r(37268),r(7397),r(60086),r(80623),r(44197),r(76495),r(87145),r(35109),r(65125),r(82472),r(49743),r(8255),r(29135),r(92990),r(18927),r(33105),r(35035),r(74345),r(7174),r(32846),r(98145),r(44731),r(77209),r(96319),r(58867),r(37789),r(33739),r(95206),r(29368),r(14483),r(12056),r(3462),r(30678),r(27462),r(33824),r(55021),r(12974),r(15016),r(4129),r(38478),r(8628),r(8e4),r(83475),r(46273),r(66342),r(40787),r(23647),r(68216),r(88449),r(31672),r(74326),r(15581),r(78631),r(57640),r(25387),r(64211),r(12771),r(62962),r(51568),r(26349),r(2490),r(85567),r(5332),r(79433),r(59849),r(59461),r(82499),r(34514),r(26877),r(9924),r(72608),r(41874),r(66043),r(23748),r(10072),r(99137),r(71957),r(96306),r(103),r(8582),r(90618),r(74592),r(88440),r(58276),r(35082),r(12813),r(18222),r(24838),r(38563),r(50336),r(7512),r(74442),r(87713),r(46603),r(70100),r(10490),r(13187),r(60092),r(19041),r(30666),r(51638),r(62975),r(15728),r(46056),r(44299),r(5162),r(50292),r(99964),r(75238),r(4987),r(1025),r(96290),r(77479),r(34582),r(47896),r(12647),r(98558),r(84018),r(97507),r(61605),r(49076),r(34999),r(88921),r(96248),r(13599),r(11477),r(64362),r(15389),r(46006),r(90401),r(45164),r(91238),r(54837),r(87485),r(56767),r(69916),r(76651),r(61437),r(35285),r(39865),r(86035),r(67501),r(27207),r(609),r(21568),r(48824),r(44130),r(35954),r(78206),r(76478),r(79715),r(5964),r(43561),r(32049),r(86020),r(56585),r(54747),r(33948),r(84633),r(85844),r(32564),r(60285),r(83753),r(41637),r(86248),function(t){t.formPost="form_post",t.query="query",t.direct="direct"}(t||(t={}));const o="{{token}}",l="{{username}}",a="{{scope}}",c="{{clientID}}",s="{{clientSecret}}";var u;!function(t){t.ConfigData="config_data",t.OIDCProviderMetaData="oidc_provider_meta_data",t.SessionData="session_data",t.TemporaryData="temporary_data"}(u||(u={}));const d="refresh_token_timer",h="pkce_code_verifier",p="#",b=["RS256","RS512","RS384","PS256"],Z="code",m="session_state",g="sign_out_url",y="sign_out_success",f="state",I="openid";var G;!function(t){t.Include="include",t.SameOrigin="same-origin",t.Omit="omit"}(G||(G={}));class X{constructor(t,e,n){this.message=n,this.name=e,this.code=t,Object.setPrototypeOf(this,new.target.prototype)}}class v{constructor(){}static filterClaimsFromIDTokenPayload(t){const e=Object.assign({},t);null==e||delete e.iss,null==e||delete e.aud,null==e||delete e.exp,null==e||delete e.iat,null==e||delete e.acr,null==e||delete e.amr,null==e||delete e.azp,null==e||delete e.auth_time,null==e||delete e.nonce,null==e||delete e.c_hash,null==e||delete e.at_hash,null==e||delete e.nbf,null==e||delete e.isk,null==e||delete e.sid;const n={};return Object.entries(e).forEach((([t,e])=>{const r=t.split("_").map(((t,e)=>0===e?t:[t[0].toUpperCase(),...t.slice(1)].join(""))).join("");n[r]=e})),n}static getTokenRequestHeaders(){return{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded"}}static generateStateParamForRequestCorrelation(t,e){const n=parseInt(t.split("#")[1]);return e?`${e}_request_${n}`:`request_${n}`}static extractPKCEKeyFromStateParam(t){return`pkce_code_verifier#${parseInt(t.split("request_")[1])}`}}v.getTenantDomainFromIdTokenPayload=(t,e="@")=>{const n=t.sub.split(e);return n.length>2?n[n.length-1]:""};class V{constructor(t,e){this._dataLayer=t,this._config=()=>n(this,void 0,void 0,(function*(){return yield this._dataLayer.getConfigData()})),this._oidcProviderMetaData=()=>n(this,void 0,void 0,(function*(){return yield this._dataLayer.getOIDCProviderMetaData()})),this._cryptoHelper=e}resolveEndpoints(t){return n(this,void 0,void 0,(function*(){const e={},n=yield this._config();return n.endpoints&&Object.keys(n.endpoints).forEach((t=>{const r=t.replace(/[A-Z]/g,(t=>`_${t.toLowerCase()}`));e[r]=(null==n?void 0:n.endpoints)?n.endpoints[t]:""})),Object.assign(Object.assign({},t),e)}))}resolveEndpointsExplicitly(){return n(this,void 0,void 0,(function*(){const t={},e=yield this._config();if(!e.endpoints||!["authorization_endpoint","end_session_endpoint","jwks_uri","check_session_iframe","revocation_endpoint","token_endpoint","issuer","userinfo_endpoint"].every((t=>!!e.endpoints&&Object.keys(e.endpoints).some((e=>e.replace(/[A-Z]/g,(t=>`_${t.toLowerCase()}`))===t)))))throw new X("JS-AUTH_HELPER-REE-NF01","Required endpoints missing","Some or all of the required endpoints are missing in the object passed to the `endpoints` attribute of the`AuthConfig` object.");return e.endpoints&&Object.keys(e.endpoints).forEach((n=>{const r=n.replace(/[A-Z]/g,(t=>`_${t.toLowerCase()}`));t[r]=(null==e?void 0:e.endpoints)?e.endpoints[n]:""})),Object.assign({},t)}))}resolveEndpointsByBaseURL(){return n(this,void 0,void 0,(function*(){const t={},e=yield this._config(),n=e.baseUrl;if(!n)throw new X("JS-AUTH_HELPER_REBO-NF01","Base URL not defined.","Base URL is not defined in AuthClient config.");e.endpoints&&Object.keys(e.endpoints).forEach((n=>{const r=n.replace(/[A-Z]/g,(t=>`_${t.toLowerCase()}`));t[r]=(null==e?void 0:e.endpoints)?e.endpoints[n]:""}));const r={authorization_endpoint:`${n}/oauth2/authorize`,end_session_endpoint:`${n}/oidc/logout`,issuer:`${n}/oauth2/token`,jwks_uri:`${n}/oauth2/jwks`,check_session_iframe:`${n}/oidc/checksession`,revocation_endpoint:`${n}/oauth2/revoke`,token_endpoint:`${n}/oauth2/token`,userinfo_endpoint:`${n}/oauth2/userinfo`};return Object.assign(Object.assign({},r),t)}))}validateIdToken(t){var e;return n(this,void 0,void 0,(function*(){const n=(yield this._dataLayer.getOIDCProviderMetaData()).jwks_uri,r=yield this._config();if(!n||0===n.trim().length)throw new X("JS_AUTH_HELPER-VIT-NF01","JWKS endpoint not found.","No JWKS endpoint was found in the OIDC provider meta data returned by the well-known endpoint or the JWKS endpoint passed to the SDK is empty.");let i;try{i=yield fetch(n,{credentials:r.sendCookiesInRequests?G.Include:G.SameOrigin})}catch(n){throw new X("JS-AUTH_HELPER-VIT-NE02","Request to jwks endpoint failed.",null!=n?n:"The request sent to get the jwks from the server failed.")}if(200!==i.status||!i.ok)throw new X("JS-AUTH_HELPER-VIT-HE03",`Invalid response status received for jwks request (${i.statusText}).`,yield i.json());const o=(yield this._oidcProviderMetaData()).issuer,{keys:l}=yield i.json(),a=yield this._cryptoHelper.getJWKForTheIdToken(t.split(".")[0],l);return this._cryptoHelper.isValidIdToken(t,a,(yield this._config()).clientID,null!=o?o:"",this._cryptoHelper.decodeIDToken(t).sub,(yield this._config()).clockTolerance,null===(e=(yield this._config()).validateIDTokenIssuer)||void 0===e||e)}))}getAuthenticatedUserInfo(t){var e,n,r,i;const o=this._cryptoHelper.decodeIDToken(t),l=v.getTenantDomainFromIdTokenPayload(o),a=null!==(e=null==o?void 0:o.username)&&void 0!==e?e:"",c=null!==(n=o.given_name)&&void 0!==n?n:"",s=null!==(r=o.family_name)&&void 0!==r?r:"",u=c&&s?`${c} ${s}`:c||s||"",d=null!==(i=o.preferred_username)&&void 0!==i?i:u;return Object.assign({displayName:d,tenantDomain:l,username:a},v.filterClaimsFromIDTokenPayload(o))}replaceCustomGrantTemplateTags(t,e){var r;return n(this,void 0,void 0,(function*(){let n="openid";const i=yield this._config(),o=yield this._dataLayer.getSessionData(e);return i.scope&&i.scope.length>0&&(i.scope.includes("openid")||i.scope.push("openid"),n=i.scope.join(" ")),t.replace("{{token}}",o.access_token).replace("{{username}}",this.getAuthenticatedUserInfo(o.id_token).username).replace("{{scope}}",n).replace("{{clientID}}",i.clientID).replace("{{clientSecret}}",null!==(r=i.clientSecret)&&void 0!==r?r:"")}))}clearUserSessionData(t){return n(this,void 0,void 0,(function*(){yield this._dataLayer.removeTemporaryData(t),yield this._dataLayer.removeSessionData(t)}))}handleTokenResponse(t,e){return n(this,void 0,void 0,(function*(){if(200!==t.status||!t.ok)throw new X("JS-AUTH_HELPER-HTR-NE01",`Invalid response status received for token request (${t.statusText}).`,yield t.json());const r=yield t.json();if(r.created_at=(new Date).getTime(),(yield this._config()).validateIDToken)return this.validateIdToken(r.id_token).then((()=>n(this,void 0,void 0,(function*(){yield this._dataLayer.setSessionData(r,e);const t={accessToken:r.access_token,createdAt:r.created_at,expiresIn:r.expires_in,idToken:r.id_token,refreshToken:r.refresh_token,scope:r.scope,tokenType:r.token_type};return Promise.resolve(t)}))));{const t={accessToken:r.access_token,createdAt:r.created_at,expiresIn:r.expires_in,idToken:r.id_token,refreshToken:r.refresh_token,scope:r.scope,tokenType:r.token_type};return yield this._dataLayer.setSessionData(r,e),Promise.resolve(t)}}))}generatePKCEKey(t){var e;return n(this,void 0,void 0,(function*(){const n=yield this._dataLayer.getTemporaryData(t),r=[];Object.keys(n).forEach((t=>{t.startsWith("pkce_code_verifier")&&r.push(t)}));const i=r.sort().pop();return`pkce_code_verifier#${parseInt(null!==(e=null==i?void 0:i.split("#")[1])&&void 0!==e?e:"-1")+1}`}))}}class W{constructor(t){this._cryptoUtils=t}getCodeVerifier(){return this._cryptoUtils.base64URLEncode(this._cryptoUtils.generateRandomBytes(32))}getCodeChallenge(t){return this._cryptoUtils.base64URLEncode(this._cryptoUtils.hashSha256(t))}getJWKForTheIdToken(t,e){const n=JSON.parse(this._cryptoUtils.base64URLDecode(t));for(const t of e)if(n.kid===t.kid)return t;throw new X("JS-CRYPTO_UTIL-GJFTIT-IV01","kid not found.","Failed to find the 'kid' specified in the id_token. 'kid' found in the header : "+n.kid+", Expected values: "+e.map((t=>t.kid)).join(", "))}isValidIdToken(t,e,n,r,i,o,l){return this._cryptoUtils.verifyJwt(t,e,b,n,r,i,o,l).then((t=>t?Promise.resolve(!0):Promise.reject(new X("JS-CRYPTO_HELPER-IVIT-IV01","Invalid ID token.","ID token validation returned false"))))}decodeIDToken(t){try{const e=this._cryptoUtils.base64URLDecode(t.split(".")[1]);return JSON.parse(e)}catch(t){throw new X("JS-CRYPTO_UTIL-DIT-IV01","Decoding ID token failed.",t)}}}class R{constructor(t,e){this._cryptoUtils=e,this._cryptoHelper=new W(e),this._authenticationHelper=new V(t,this._cryptoHelper),this._dataLayer=t,this._config=()=>n(this,void 0,void 0,(function*(){return yield this._dataLayer.getConfigData()})),this._oidcProviderMetaData=()=>n(this,void 0,void 0,(function*(){return yield this._dataLayer.getOIDCProviderMetaData()}))}getAuthorizationURLParams(t,e){var r,i,o;return n(this,void 0,void 0,(function*(){const n=yield this._config(),l=new Map;l.set("response_type","code"),l.set("client_id",n.clientID),n.clientSecret&&n.clientSecret.trim().length>0&&l.set("client_secret",n.clientSecret);let a="openid";n.scope&&n.scope.length>0&&(n.scope.includes("openid")||n.scope.push("openid"),a=n.scope.join(" ")),l.set("scope",a),l.set("redirect_uri",n.signInRedirectURL),n.responseMode&&l.set("response_mode",n.responseMode);const c=yield this._authenticationHelper.generatePKCEKey(e);if(n.enablePKCE){const t=null===(r=this._cryptoHelper)||void 0===r?void 0:r.getCodeVerifier(),n=null===(i=this._cryptoHelper)||void 0===i?void 0:i.getCodeChallenge(t);yield this._dataLayer.setTemporaryDataParameter(c,t,e),l.set("code_challenge_method","S256"),l.set("code_challenge",n)}n.prompt&&l.set("prompt",n.prompt);const s=t;if(s)for(const[t,e]of Object.entries(s))""!=t&&""!=e&&"state"!==t&&l.set(t,e.toString());return l.set("state",v.generateStateParamForRequestCorrelation(c,s?null===(o=s.state)||void 0===o?void 0:o.toString():"")),l}))}getAuthorizationURL(t,e){return n(this,void 0,void 0,(function*(){const n=yield this._dataLayer.getOIDCProviderMetaDataParameter("authorization_endpoint");if(!n||0===n.trim().length)throw new X("JS-AUTH_CORE-GAU-NF01","No authorization endpoint found.","No authorization endpoint was found in the OIDC provider meta data from the well-known endpoint or the authorization endpoint passed to the SDK is empty.");const r=new URL(n),i=yield this.getAuthorizationURLParams(t,e);for(const[t,e]of i.entries())r.searchParams.append(t,e);return r.toString()}))}requestAccessToken(t,e,r,i,o){return n(this,void 0,void 0,(function*(){const n=(yield this._oidcProviderMetaData()).token_endpoint,l=yield this._config();if(!n||0===n.trim().length)throw new X("JS-AUTH_CORE-RAT1-NF01","Token endpoint not found.","No token endpoint was found in the OIDC provider meta data returned by the well-known endpoint or the token endpoint passed to the SDK is empty.");e&&(yield this._dataLayer.setSessionDataParameter("session_state",e,i));const a=new URLSearchParams;a.set("client_id",l.clientID),l.clientSecret&&l.clientSecret.trim().length>0&&a.set("client_secret",l.clientSecret);const c=t;let s;a.set("code",c),a.set("grant_type","authorization_code"),a.set("redirect_uri",l.signInRedirectURL),(null==o?void 0:o.params)&&Object.entries(o.params).forEach((([t,e])=>{a.append(t,e)})),l.enablePKCE&&(a.set("code_verifier",`${yield this._dataLayer.getTemporaryDataParameter(v.extractPKCEKeyFromStateParam(r),i)}`),yield this._dataLayer.removeTemporaryDataParameter(v.extractPKCEKeyFromStateParam(r),i));try{s=yield fetch(n,{body:a,credentials:l.sendCookiesInRequests?G.Include:G.SameOrigin,headers:new Headers(v.getTokenRequestHeaders()),method:"POST"})}catch(n){throw new X("JS-AUTH_CORE-RAT1-NE02","Requesting access token failed",null!=n?n:"The request to get the access token from the server failed.")}if(!s.ok)throw new X("JS-AUTH_CORE-RAT1-HE03",`Requesting access token failed with ${s.statusText}`,yield s.json());return yield this._authenticationHelper.handleTokenResponse(s,i)}))}refreshAccessToken(t){return n(this,void 0,void 0,(function*(){const e=(yield this._oidcProviderMetaData()).token_endpoint,n=yield this._config(),r=yield this._dataLayer.getSessionData(t);if(!r.refresh_token)throw new X("JS-AUTH_CORE-RAT2-NF01","No refresh token found.","There was no refresh token found. Asgardeo doesn't return a refresh token if the refresh token grant is not enabled.");if(!e||0===e.trim().length)throw new X("JS-AUTH_CORE-RAT2-NF02","No refresh token endpoint found.","No refresh token endpoint was in the OIDC provider meta data returned by the well-known endpoint or the refresh token endpoint passed to the SDK is empty.");const i=[];let o;i.push(`client_id=${n.clientID}`),i.push(`refresh_token=${r.refresh_token}`),i.push("grant_type=refresh_token"),n.clientSecret&&n.clientSecret.trim().length>0&&i.push(`client_secret=${n.clientSecret}`);try{o=yield fetch(e,{body:i.join("&"),credentials:n.sendCookiesInRequests?G.Include:G.SameOrigin,headers:new Headers(v.getTokenRequestHeaders()),method:"POST"})}catch(e){throw new X("JS-AUTH_CORE-RAT2-NR03","Refresh access token request failed.",null!=e?e:"The request to refresh the access token failed.")}if(!o.ok)throw new X("JS-AUTH_CORE-RAT2-HE04",`Refreshing access token failed with ${o.statusText}`,yield o.json());return this._authenticationHelper.handleTokenResponse(o,t)}))}revokeAccessToken(t){return n(this,void 0,void 0,(function*(){const e=(yield this._oidcProviderMetaData()).revocation_endpoint,n=yield this._config();if(!e||0===e.trim().length)throw new X("JS-AUTH_CORE-RAT3-NF01","No revoke access token endpoint found.","No revoke access token endpoint was found in the OIDC provider meta data returned by the well-known endpoint or the revoke access token endpoint passed to the SDK is empty.");const r=[];let i;r.push(`client_id=${n.clientID}`),r.push(`token=${(yield this._dataLayer.getSessionData(t)).access_token}`),r.push("token_type_hint=access_token");try{i=yield fetch(e,{body:r.join("&"),credentials:n.sendCookiesInRequests?G.Include:G.SameOrigin,headers:new Headers(v.getTokenRequestHeaders()),method:"POST"})}catch(e){throw new X("JS-AUTH_CORE-RAT3-NE02","The request to revoke access token failed.",null!=e?e:"The request sent to revoke the access token failed.")}if(200!==i.status||!i.ok)throw new X("JS-AUTH_CORE-RAT3-HE03",`Invalid response status received for revoke access token request (${i.statusText}).`,yield i.json());return this._authenticationHelper.clearUserSessionData(t),Promise.resolve(i)}))}requestCustomGrant(t,e){return n(this,void 0,void 0,(function*(){const r=yield this._oidcProviderMetaData(),i=yield this._config();let o;if(o=t.tokenEndpoint&&0!==t.tokenEndpoint.trim().length?t.tokenEndpoint:r.token_endpoint,!o||0===o.trim().length)throw new X("JS-AUTH_CORE-RCG-NF01","Token endpoint not found.","No token endpoint was found in the OIDC provider meta data returned by the well-known endpoint or the token endpoint passed to the SDK is empty.");const l=yield Promise.all(Object.entries(t.data).map((([t,r])=>n(this,void 0,void 0,(function*(){const n=yield this._authenticationHelper.replaceCustomGrantTemplateTags(r,e);return`${t}=${n}`})))));let a=Object.assign({},v.getTokenRequestHeaders());t.attachToken&&(a=Object.assign(Object.assign({},a),{Authorization:`Bearer ${(yield this._dataLayer.getSessionData(e)).access_token}`}));const c={body:l.join("&"),credentials:i.sendCookiesInRequests?G.Include:G.SameOrigin,headers:new Headers(a),method:"POST"};let s;try{s=yield fetch(o,c)}catch(t){throw new X("JS-AUTH_CORE-RCG-NE02","The custom grant request failed.",null!=t?t:"The request sent to get the custom grant failed.")}if(200!==s.status||!s.ok)throw new X("JS-AUTH_CORE-RCG-HE03",`Invalid response status received for the custom grant request. (${s.statusText})`,yield s.json());return t.returnsSession?this._authenticationHelper.handleTokenResponse(s,e):Promise.resolve(yield s.json())}))}getBasicUserInfo(t){return n(this,void 0,void 0,(function*(){const e=yield this._dataLayer.getSessionData(t),n=this._authenticationHelper.getAuthenticatedUserInfo(null==e?void 0:e.id_token);let r={allowedScopes:e.scope,sessionState:e.session_state};return Object.keys(n).forEach((t=>{void 0!==n[t]&&""!==n[t]&&null!==n[t]||delete n[t]})),r=Object.assign(Object.assign({},r),n),r}))}getDecodedIDToken(t){return n(this,void 0,void 0,(function*(){const e=(yield this._dataLayer.getSessionData(t)).id_token;return this._cryptoHelper.decodeIDToken(e)}))}getCryptoHelper(){return n(this,void 0,void 0,(function*(){return this._cryptoHelper}))}getIDToken(t){return n(this,void 0,void 0,(function*(){return(yield this._dataLayer.getSessionData(t)).id_token}))}getOIDCProviderMetaData(t){return n(this,void 0,void 0,(function*(){const e=yield this._config();if(!t&&(yield this._dataLayer.getTemporaryDataParameter("op_config_initiated")))return Promise.resolve();const n=e.wellKnownEndpoint;if(n){let t;try{if(t=yield fetch(n),200!==t.status||!t.ok)throw new Error}catch(e){throw new X("JS-AUTH_CORE-GOPMD-HE01","Invalid well-known response","The well known endpoint response has been failed with an error.")}return yield this._dataLayer.setOIDCProviderMetaData(yield this._authenticationHelper.resolveEndpoints(yield t.json())),yield this._dataLayer.setTemporaryDataParameter("op_config_initiated",!0),Promise.resolve()}if(e.baseUrl){try{yield this._dataLayer.setOIDCProviderMetaData(yield this._authenticationHelper.resolveEndpointsByBaseURL())}catch(e){throw new X("JS-AUTH_CORE-GOPMD-IV02","Resolving endpoints failed.",null!=e?e:"Resolving endpoints by base url failed.")}return yield this._dataLayer.setTemporaryDataParameter("op_config_initiated",!0),Promise.resolve()}return yield this._dataLayer.setOIDCProviderMetaData(yield this._authenticationHelper.resolveEndpointsExplicitly()),yield this._dataLayer.setTemporaryDataParameter("op_config_initiated",!0),Promise.resolve()}))}getOIDCServiceEndpoints(){var t,e,r,i,o,l,a,c,s,u;return n(this,void 0,void 0,(function*(){const n=yield this._oidcProviderMetaData();return{authorizationEndpoint:null!==(t=n.authorization_endpoint)&&void 0!==t?t:"",checkSessionIframe:null!==(e=n.check_session_iframe)&&void 0!==e?e:"",endSessionEndpoint:null!==(r=n.end_session_endpoint)&&void 0!==r?r:"",introspectionEndpoint:null!==(i=n.introspection_endpoint)&&void 0!==i?i:"",issuer:null!==(o=n.issuer)&&void 0!==o?o:"",jwksUri:null!==(l=n.jwks_uri)&&void 0!==l?l:"",registrationEndpoint:null!==(a=n.registration_endpoint)&&void 0!==a?a:"",revocationEndpoint:null!==(c=n.revocation_endpoint)&&void 0!==c?c:"",tokenEndpoint:null!==(s=n.token_endpoint)&&void 0!==s?s:"",userinfoEndpoint:null!==(u=n.userinfo_endpoint)&&void 0!==u?u:""}}))}getSignOutURL(t){var e,r,i;return n(this,void 0,void 0,(function*(){const n=null===(e=yield this._oidcProviderMetaData())||void 0===e?void 0:e.end_session_endpoint,o=yield this._config();if(!n||0===n.trim().length)throw new X("JS-AUTH_CORE-GSOU-NF01","Sign-out endpoint not found.","No sign-out endpoint was found in the OIDC provider meta data returned by the well-known endpoint or the sign-out endpoint passed to the SDK is empty.");const l=null!==(r=null==o?void 0:o.signOutRedirectURL)&&void 0!==r?r:null==o?void 0:o.signInRedirectURL;if(!l||0===l.trim().length)throw new X("JS-AUTH_CORE-GSOU-NF03","No sign-out redirect URL found.","The sign-out redirect URL cannot be found or the URL passed to the SDK is empty. No sign-in redirect URL has been found either. ");const a=new URLSearchParams;if(a.set("post_logout_redirect_uri",l),o.sendIdTokenInLogoutRequest){const e=null===(i=yield this._dataLayer.getSessionData(t))||void 0===i?void 0:i.id_token;if(!e||0===e.trim().length)throw new X("JS-AUTH_CORE-GSOU-NF02","ID token not found.","No ID token could be found. Either the session information is lost or you have not signed in.");a.set("id_token_hint",e)}else a.set("client_id",o.clientID);return a.set("state","sign_out_success"),`${n}?${a.toString()}`}))}clearUserSessionData(t){return n(this,void 0,void 0,(function*(){yield this._authenticationHelper.clearUserSessionData(t)}))}getAccessToken(t){var e;return n(this,void 0,void 0,(function*(){return null===(e=yield this._dataLayer.getSessionData(t))||void 0===e?void 0:e.access_token}))}getCreatedAt(t){var e;return n(this,void 0,void 0,(function*(){return null===(e=yield this._dataLayer.getSessionData(t))||void 0===e?void 0:e.created_at}))}getExpiresIn(t){var e;return n(this,void 0,void 0,(function*(){return null===(e=yield this._dataLayer.getSessionData(t))||void 0===e?void 0:e.expires_in}))}isAuthenticated(t){return n(this,void 0,void 0,(function*(){const e=Boolean(yield this.getAccessToken(t)),n=yield this.getCreatedAt(t),r=yield this.getExpiresIn(t);if(!r)return!1;const i=1e3*parseInt(r),o=(new Date).getTime();return e&&n+i>o}))}getPKCECode(t,e){return n(this,void 0,void 0,(function*(){return yield this._dataLayer.getTemporaryDataParameter(v.extractPKCEKeyFromStateParam(t),e)}))}setPKCECode(t,e,r){return n(this,void 0,void 0,(function*(){return yield this._dataLayer.setTemporaryDataParameter(v.extractPKCEKeyFromStateParam(e),t,r)}))}updateConfig(t){return n(this,void 0,void 0,(function*(){yield this._dataLayer.setConfigData(t),yield this.getOIDCProviderMetaData(!0)}))}}const S="asgardeo-session-active";class C{constructor(t,e){this._id=t,this._store=e}setDataInBulk(t,e){var r;return n(this,void 0,void 0,(function*(){const n=null!==(r=yield this._store.getData(t))&&void 0!==r?r:null,i=n&&JSON.parse(n),o=Object.assign(Object.assign({},i),e),l=JSON.stringify(o);yield this._store.setData(t,l)}))}setValue(t,e,r){var i;return n(this,void 0,void 0,(function*(){const n=null!==(i=yield this._store.getData(t))&&void 0!==i?i:null,o=n&&JSON.parse(n),l=Object.assign(Object.assign({},o),{[e]:r}),a=JSON.stringify(l);yield this._store.setData(t,a)}))}removeValue(t,e){var r;return n(this,void 0,void 0,(function*(){const n=null!==(r=yield this._store.getData(t))&&void 0!==r?r:null,i=n&&JSON.parse(n),o=Object.assign({},i);delete o[e];const l=JSON.stringify(o);yield this._store.setData(t,l)}))}_resolveKey(t,e){return e?`${t}-${this._id}-${e}`:`${t}-${this._id}`}isLocalStorageAvailable(){try{const t="__ASGARDEO_AUTH_CORE_LOCAL_STORAGE_TEST__";return localStorage.setItem(t,t),localStorage.removeItem(t),!0}catch(t){return!1}}setConfigData(t){return n(this,void 0,void 0,(function*(){yield this.setDataInBulk(this._resolveKey(u.ConfigData),t)}))}setOIDCProviderMetaData(t){return n(this,void 0,void 0,(function*(){this.setDataInBulk(this._resolveKey(u.OIDCProviderMetaData),t)}))}setTemporaryData(t,e){return n(this,void 0,void 0,(function*(){this.setDataInBulk(this._resolveKey(u.TemporaryData,e),t)}))}setSessionData(t,e){return n(this,void 0,void 0,(function*(){this.setDataInBulk(this._resolveKey(u.SessionData,e),t)}))}setCustomData(t,e,r){return n(this,void 0,void 0,(function*(){this.setDataInBulk(this._resolveKey(t,r),e)}))}getConfigData(){var t;return n(this,void 0,void 0,(function*(){return JSON.parse(null!==(t=yield this._store.getData(this._resolveKey(u.ConfigData)))&&void 0!==t?t:null)}))}getOIDCProviderMetaData(){var t;return n(this,void 0,void 0,(function*(){return JSON.parse(null!==(t=yield this._store.getData(this._resolveKey(u.OIDCProviderMetaData)))&&void 0!==t?t:null)}))}getTemporaryData(t){var e;return n(this,void 0,void 0,(function*(){return JSON.parse(null!==(e=yield this._store.getData(this._resolveKey(u.TemporaryData,t)))&&void 0!==e?e:null)}))}getSessionData(t){var e;return n(this,void 0,void 0,(function*(){return JSON.parse(null!==(e=yield this._store.getData(this._resolveKey(u.SessionData,t)))&&void 0!==e?e:null)}))}getCustomData(t,e){var r;return n(this,void 0,void 0,(function*(){return JSON.parse(null!==(r=yield this._store.getData(this._resolveKey(t,e)))&&void 0!==r?r:null)}))}setSessionStatus(t){this.isLocalStorageAvailable()&&localStorage.setItem("asgardeo-session-active",t)}getSessionStatus(){var t;return this.isLocalStorageAvailable()&&null!==(t=localStorage.getItem("asgardeo-session-active"))&&void 0!==t?t:""}removeSessionStatus(){this.isLocalStorageAvailable()&&localStorage.removeItem("asgardeo-session-active")}removeConfigData(){return n(this,void 0,void 0,(function*(){yield this._store.removeData(this._resolveKey(u.ConfigData))}))}removeOIDCProviderMetaData(){return n(this,void 0,void 0,(function*(){yield this._store.removeData(this._resolveKey(u.OIDCProviderMetaData))}))}removeTemporaryData(t){return n(this,void 0,void 0,(function*(){yield this._store.removeData(this._resolveKey(u.TemporaryData,t))}))}removeSessionData(t){return n(this,void 0,void 0,(function*(){yield this._store.removeData(this._resolveKey(u.SessionData,t))}))}getConfigDataParameter(t){return n(this,void 0,void 0,(function*(){const e=yield this._store.getData(this._resolveKey(u.ConfigData));return e&&JSON.parse(e)[t]}))}getOIDCProviderMetaDataParameter(t){return n(this,void 0,void 0,(function*(){const e=yield this._store.getData(this._resolveKey(u.OIDCProviderMetaData));return e&&JSON.parse(e)[t]}))}getTemporaryDataParameter(t,e){return n(this,void 0,void 0,(function*(){const n=yield this._store.getData(this._resolveKey(u.TemporaryData,e));return n&&JSON.parse(n)[t]}))}getSessionDataParameter(t,e){return n(this,void 0,void 0,(function*(){const n=yield this._store.getData(this._resolveKey(u.SessionData,e));return n&&JSON.parse(n)[t]}))}setConfigDataParameter(t,e){return n(this,void 0,void 0,(function*(){yield this.setValue(this._resolveKey(u.ConfigData),t,e)}))}setOIDCProviderMetaDataParameter(t,e){return n(this,void 0,void 0,(function*(){yield this.setValue(this._resolveKey(u.OIDCProviderMetaData),t,e)}))}setTemporaryDataParameter(t,e,r){return n(this,void 0,void 0,(function*(){yield this.setValue(this._resolveKey(u.TemporaryData,r),t,e)}))}setSessionDataParameter(t,e,r){return n(this,void 0,void 0,(function*(){yield this.setValue(this._resolveKey(u.SessionData,r),t,e)}))}removeConfigDataParameter(t){return n(this,void 0,void 0,(function*(){yield this.removeValue(this._resolveKey(u.ConfigData),t)}))}removeOIDCProviderMetaDataParameter(t){return n(this,void 0,void 0,(function*(){yield this.removeValue(this._resolveKey(u.OIDCProviderMetaData),t)}))}removeTemporaryDataParameter(t,e){return n(this,void 0,void 0,(function*(){yield this.removeValue(this._resolveKey(u.TemporaryData,e),t)}))}removeSessionDataParameter(t,e){return n(this,void 0,void 0,(function*(){yield this.removeValue(this._resolveKey(u.SessionData,e),t)}))}}const Y={clockTolerance:300,enablePKCE:!0,responseMode:t.query,scope:["openid"],sendCookiesInRequests:!0,validateIDToken:!0,validateIDTokenIssuer:!0};class K{constructor(){}initialize(t,e,r,i){var o,l,a;return n(this,void 0,void 0,(function*(){const n=t.clientID;K._instanceID?K._instanceID+=1:K._instanceID=0,i&&(K._instanceID=i),this._dataLayer=new C(n?`instance_${K._instanceID}-${n}`:`instance_${K._instanceID}`,e),this._authenticationCore=new R(this._dataLayer,r),K._authenticationCore=new R(this._dataLayer,r),yield this._dataLayer.setConfigData(Object.assign(Object.assign(Object.assign({},Y),t),{scope:[...null!==(o=Y.scope)&&void 0!==o?o:[],...null!==(a=null===(l=t.scope)||void 0===l?void 0:l.filter((t=>{var e;return!(null===(e=null==Y?void 0:Y.scope)||void 0===e?void 0:e.includes(t))})))&&void 0!==a?a:[]]}))}))}getDataLayer(){return this._dataLayer}getInstanceID(){return K._instanceID}getAuthorizationURLParams(t,e){return n(this,void 0,void 0,(function*(){const n=Object.assign({},t);return null==n||delete n.forceInit,(yield this._dataLayer.getTemporaryDataParameter("op_config_initiated"))?this._authenticationCore.getAuthorizationURLParams(n,e):this._authenticationCore.getOIDCProviderMetaData(null==t?void 0:t.forceInit).then((()=>this._authenticationCore.getAuthorizationURLParams(n,e)))}))}getAuthorizationURL(t,e){return n(this,void 0,void 0,(function*(){const n=Object.assign({},t);return null==n||delete n.forceInit,(yield this._dataLayer.getTemporaryDataParameter("op_config_initiated"))?this._authenticationCore.getAuthorizationURL(n,e):this._authenticationCore.getOIDCProviderMetaData(null==t?void 0:t.forceInit).then((()=>this._authenticationCore.getAuthorizationURL(n,e)))}))}requestAccessToken(t,e,r,i,o){return n(this,void 0,void 0,(function*(){return(yield this._dataLayer.getTemporaryDataParameter("op_config_initiated"))?this._authenticationCore.requestAccessToken(t,e,r,i,o):this._authenticationCore.getOIDCProviderMetaData(!1).then((()=>this._authenticationCore.requestAccessToken(t,e,r,i,o)))}))}getSignOutURL(t){return n(this,void 0,void 0,(function*(){return this._authenticationCore.getSignOutURL(t)}))}getOIDCServiceEndpoints(){return n(this,void 0,void 0,(function*(){return this._authenticationCore.getOIDCServiceEndpoints()}))}getDecodedIDToken(t){return n(this,void 0,void 0,(function*(){return this._authenticationCore.getDecodedIDToken(t)}))}getIDToken(t){return n(this,void 0,void 0,(function*(){return this._authenticationCore.getIDToken(t)}))}getBasicUserInfo(t){return n(this,void 0,void 0,(function*(){return this._authenticationCore.getBasicUserInfo(t)}))}getCryptoHelper(){return n(this,void 0,void 0,(function*(){return this._authenticationCore.getCryptoHelper()}))}revokeAccessToken(t){return this._authenticationCore.revokeAccessToken(t)}refreshAccessToken(t){return this._authenticationCore.refreshAccessToken(t)}getAccessToken(t){return n(this,void 0,void 0,(function*(){return this._authenticationCore.getAccessToken(t)}))}requestCustomGrant(t,e){return this._authenticationCore.requestCustomGrant(t,e)}isAuthenticated(t){return n(this,void 0,void 0,(function*(){return this._authenticationCore.isAuthenticated(t)}))}getPKCECode(t,e){return n(this,void 0,void 0,(function*(){return this._authenticationCore.getPKCECode(t,e)}))}setPKCECode(t,e,r){return n(this,void 0,void 0,(function*(){yield this._authenticationCore.setPKCECode(t,e,r)}))}static isSignOutSuccessful(t){const e=new URL(t),n=e.searchParams.get("state"),r=Boolean(e.searchParams.get("error"));return!!n&&"sign_out_success"===n&&!r}static didSignOutFail(t){const e=new URL(t),n=e.searchParams.get("state"),r=Boolean(e.searchParams.get("error"));return!!n&&"sign_out_success"===n&&r}updateConfig(t){return n(this,void 0,void 0,(function*(){yield this._authenticationCore.updateConfig(t)}))}static clearUserSessionData(t){return n(this,void 0,void 0,(function*(){yield this._authenticationCore.clearUserSessionData(t)}))}}var N,k=function(t){return N=N||function(t,e,n){var r=function(t,e){var n=atob(t);return n}("Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwp2YXIgd29ya2VyX2NvZGU9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZShlLHQsbixyKXtyZXR1cm4gbmV3KG58fChuPVByb21pc2UpKSgoZnVuY3Rpb24oaSxvKXtmdW5jdGlvbiBzKGUpe3RyeXtjKHIubmV4dChlKSl9Y2F0Y2goZSl7byhlKX19ZnVuY3Rpb24gYShlKXt0cnl7YyhyLnRocm93KGUpKX1jYXRjaChlKXtvKGUpfX1mdW5jdGlvbiBjKGUpe3ZhciB0O2UuZG9uZT9pKGUudmFsdWUpOih0PWUudmFsdWUsdCBpbnN0YW5jZW9mIG4/dDpuZXcgbigoZnVuY3Rpb24oZSl7ZSh0KX0pKSkudGhlbihzLGEpfWMoKHI9ci5hcHBseShlLHR8fFtdKSkubmV4dCgpKX0pKX1mdW5jdGlvbiB0KGUsdCxuLHIpe3JldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKChmdW5jdGlvbihpLG8pe2Z1bmN0aW9uIHMoZSl7dHJ5e2Moci5uZXh0KGUpKX1jYXRjaChlKXtvKGUpfX1mdW5jdGlvbiBhKGUpe3RyeXtjKHIudGhyb3coZSkpfWNhdGNoKGUpe28oZSl9fWZ1bmN0aW9uIGMoZSl7dmFyIHQ7ZS5kb25lP2koZS52YWx1ZSk6KHQ9ZS52YWx1ZSx0IGluc3RhbmNlb2Ygbj90Om5ldyBuKChmdW5jdGlvbihlKXtlKHQpfSkpKS50aGVuKHMsYSl9Yygocj1yLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSkpfXZhciBuOyFmdW5jdGlvbihlKXtlLmZvcm1Qb3N0PSJmb3JtX3Bvc3QiLGUucXVlcnk9InF1ZXJ5IixlLmRpcmVjdD0iZGlyZWN0In0obnx8KG49e30pKTt2YXIgcjshZnVuY3Rpb24oZSl7ZS5Db25maWdEYXRhPSJjb25maWdfZGF0YSIsZS5PSURDUHJvdmlkZXJNZXRhRGF0YT0ib2lkY19wcm92aWRlcl9tZXRhX2RhdGEiLGUuU2Vzc2lvbkRhdGE9InNlc3Npb25fZGF0YSIsZS5UZW1wb3JhcnlEYXRhPSJ0ZW1wb3JhcnlfZGF0YSJ9KHJ8fChyPXt9KSk7Y29uc3QgaT0icmVmcmVzaF90b2tlbl90aW1lciIsbz1bIlJTMjU2IiwiUlM1MTIiLCJSUzM4NCIsIlBTMjU2Il0scz0ic2lnbl9vdXRfdXJsIjt2YXIgYTshZnVuY3Rpb24oZSl7ZS5JbmNsdWRlPSJpbmNsdWRlIixlLlNhbWVPcmlnaW49InNhbWUtb3JpZ2luIixlLk9taXQ9Im9taXQifShhfHwoYT17fSkpO2NsYXNzIGN7Y29uc3RydWN0b3IoZSx0LG4pe3RoaXMubWVzc2FnZT1uLHRoaXMubmFtZT10LHRoaXMuY29kZT1lLE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLG5ldy50YXJnZXQucHJvdG90eXBlKX19Y2xhc3MgdXtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZmlsdGVyQ2xhaW1zRnJvbUlEVG9rZW5QYXlsb2FkKGUpe2NvbnN0IHQ9T2JqZWN0LmFzc2lnbih7fSxlKTtudWxsPT10fHxkZWxldGUgdC5pc3MsbnVsbD09dHx8ZGVsZXRlIHQuYXVkLG51bGw9PXR8fGRlbGV0ZSB0LmV4cCxudWxsPT10fHxkZWxldGUgdC5pYXQsbnVsbD09dHx8ZGVsZXRlIHQuYWNyLG51bGw9PXR8fGRlbGV0ZSB0LmFtcixudWxsPT10fHxkZWxldGUgdC5henAsbnVsbD09dHx8ZGVsZXRlIHQuYXV0aF90aW1lLG51bGw9PXR8fGRlbGV0ZSB0Lm5vbmNlLG51bGw9PXR8fGRlbGV0ZSB0LmNfaGFzaCxudWxsPT10fHxkZWxldGUgdC5hdF9oYXNoLG51bGw9PXR8fGRlbGV0ZSB0Lm5iZixudWxsPT10fHxkZWxldGUgdC5pc2ssbnVsbD09dHx8ZGVsZXRlIHQuc2lkO2NvbnN0IG49e307cmV0dXJuIE9iamVjdC5lbnRyaWVzKHQpLmZvckVhY2goKChbZSx0XSk9Pntjb25zdCByPWUuc3BsaXQoIl8iKS5tYXAoKChlLHQpPT4wPT09dD9lOltlWzBdLnRvVXBwZXJDYXNlKCksLi4uZS5zbGljZSgxKV0uam9pbigiIikpKS5qb2luKCIiKTtuW3JdPXR9KSksbn1zdGF0aWMgZ2V0VG9rZW5SZXF1ZXN0SGVhZGVycygpe3JldHVybntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLCJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifX1zdGF0aWMgZ2VuZXJhdGVTdGF0ZVBhcmFtRm9yUmVxdWVzdENvcnJlbGF0aW9uKGUsdCl7Y29uc3Qgbj1wYXJzZUludChlLnNwbGl0KCIjIilbMV0pO3JldHVybiB0P2Ake3R9X3JlcXVlc3RfJHtufWA6YHJlcXVlc3RfJHtufWB9c3RhdGljIGV4dHJhY3RQS0NFS2V5RnJvbVN0YXRlUGFyYW0oZSl7cmV0dXJuYHBrY2VfY29kZV92ZXJpZmllciMke3BhcnNlSW50KGUuc3BsaXQoInJlcXVlc3RfIilbMV0pfWB9fXUuZ2V0VGVuYW50RG9tYWluRnJvbUlkVG9rZW5QYXlsb2FkPShlLHQ9IkAiKT0+e2NvbnN0IG49ZS5zdWIuc3BsaXQodCk7cmV0dXJuIG4ubGVuZ3RoPjI/bltuLmxlbmd0aC0xXToiIn07Y2xhc3MgbHtjb25zdHJ1Y3RvcihlLG4pe3RoaXMuX2RhdGFMYXllcj1lLHRoaXMuX2NvbmZpZz0oKT0+dCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0Q29uZmlnRGF0YSgpfSkpLHRoaXMuX29pZGNQcm92aWRlck1ldGFEYXRhPSgpPT50KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHlpZWxkIHRoaXMuX2RhdGFMYXllci5nZXRPSURDUHJvdmlkZXJNZXRhRGF0YSgpfSkpLHRoaXMuX2NyeXB0b0hlbHBlcj1ufXJlc29sdmVFbmRwb2ludHMoZSl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCB0PXt9LG49eWllbGQgdGhpcy5fY29uZmlnKCk7cmV0dXJuIG4uZW5kcG9pbnRzJiZPYmplY3Qua2V5cyhuLmVuZHBvaW50cykuZm9yRWFjaCgoZT0+e2NvbnN0IHI9ZS5yZXBsYWNlKC9bQS1aXS9nLChlPT5gXyR7ZS50b0xvd2VyQ2FzZSgpfWApKTt0W3JdPShudWxsPT1uP3ZvaWQgMDpuLmVuZHBvaW50cyk/bi5lbmRwb2ludHNbZV06IiJ9KSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHQpfSkpfXJlc29sdmVFbmRwb2ludHNFeHBsaWNpdGx5KCl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCBlPXt9LHQ9eWllbGQgdGhpcy5fY29uZmlnKCk7aWYoIXQuZW5kcG9pbnRzfHwhWyJhdXRob3JpemF0aW9uX2VuZHBvaW50IiwiZW5kX3Nlc3Npb25fZW5kcG9pbnQiLCJqd2tzX3VyaSIsImNoZWNrX3Nlc3Npb25faWZyYW1lIiwicmV2b2NhdGlvbl9lbmRwb2ludCIsInRva2VuX2VuZHBvaW50IiwiaXNzdWVyIiwidXNlcmluZm9fZW5kcG9pbnQiXS5ldmVyeSgoZT0+ISF0LmVuZHBvaW50cyYmT2JqZWN0LmtleXModC5lbmRwb2ludHMpLnNvbWUoKHQ9PnQucmVwbGFjZSgvW0EtWl0vZywoZT0+YF8ke2UudG9Mb3dlckNhc2UoKX1gKSk9PT1lKSkpKSl0aHJvdyBuZXcgYygiSlMtQVVUSF9IRUxQRVItUkVFLU5GMDEiLCJSZXF1aXJlZCBlbmRwb2ludHMgbWlzc2luZyIsIlNvbWUgb3IgYWxsIG9mIHRoZSByZXF1aXJlZCBlbmRwb2ludHMgYXJlIG1pc3NpbmcgaW4gdGhlIG9iamVjdCBwYXNzZWQgdG8gdGhlIGBlbmRwb2ludHNgIGF0dHJpYnV0ZSBvZiB0aGVgQXV0aENvbmZpZ2Agb2JqZWN0LiIpO3JldHVybiB0LmVuZHBvaW50cyYmT2JqZWN0LmtleXModC5lbmRwb2ludHMpLmZvckVhY2goKG49Pntjb25zdCByPW4ucmVwbGFjZSgvW0EtWl0vZywoZT0+YF8ke2UudG9Mb3dlckNhc2UoKX1gKSk7ZVtyXT0obnVsbD09dD92b2lkIDA6dC5lbmRwb2ludHMpP3QuZW5kcG9pbnRzW25dOiIifSkpLE9iamVjdC5hc3NpZ24oe30sZSl9KSl9cmVzb2x2ZUVuZHBvaW50c0J5QmFzZVVSTCgpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgZT17fSx0PXlpZWxkIHRoaXMuX2NvbmZpZygpLG49dC5iYXNlVXJsO2lmKCFuKXRocm93IG5ldyBjKCJKUy1BVVRIX0hFTFBFUl9SRUJPLU5GMDEiLCJCYXNlIFVSTCBub3QgZGVmaW5lZC4iLCJCYXNlIFVSTCBpcyBub3QgZGVmaW5lZCBpbiBBdXRoQ2xpZW50IGNvbmZpZy4iKTt0LmVuZHBvaW50cyYmT2JqZWN0LmtleXModC5lbmRwb2ludHMpLmZvckVhY2goKG49Pntjb25zdCByPW4ucmVwbGFjZSgvW0EtWl0vZywoZT0+YF8ke2UudG9Mb3dlckNhc2UoKX1gKSk7ZVtyXT0obnVsbD09dD92b2lkIDA6dC5lbmRwb2ludHMpP3QuZW5kcG9pbnRzW25dOiIifSkpO2NvbnN0IHI9e2F1dGhvcml6YXRpb25fZW5kcG9pbnQ6YCR7bn0vb2F1dGgyL2F1dGhvcml6ZWAsZW5kX3Nlc3Npb25fZW5kcG9pbnQ6YCR7bn0vb2lkYy9sb2dvdXRgLGlzc3VlcjpgJHtufS9vYXV0aDIvdG9rZW5gLGp3a3NfdXJpOmAke259L29hdXRoMi9qd2tzYCxjaGVja19zZXNzaW9uX2lmcmFtZTpgJHtufS9vaWRjL2NoZWNrc2Vzc2lvbmAscmV2b2NhdGlvbl9lbmRwb2ludDpgJHtufS9vYXV0aDIvcmV2b2tlYCx0b2tlbl9lbmRwb2ludDpgJHtufS9vYXV0aDIvdG9rZW5gLHVzZXJpbmZvX2VuZHBvaW50OmAke259L29hdXRoMi91c2VyaW5mb2B9O3JldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sciksZSl9KSl9dmFsaWRhdGVJZFRva2VuKGUpe3ZhciBuO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD0oeWllbGQgdGhpcy5fZGF0YUxheWVyLmdldE9JRENQcm92aWRlck1ldGFEYXRhKCkpLmp3a3NfdXJpLHI9eWllbGQgdGhpcy5fY29uZmlnKCk7aWYoIXR8fDA9PT10LnRyaW0oKS5sZW5ndGgpdGhyb3cgbmV3IGMoIkpTX0FVVEhfSEVMUEVSLVZJVC1ORjAxIiwiSldLUyBlbmRwb2ludCBub3QgZm91bmQuIiwiTm8gSldLUyBlbmRwb2ludCB3YXMgZm91bmQgaW4gdGhlIE9JREMgcHJvdmlkZXIgbWV0YSBkYXRhIHJldHVybmVkIGJ5IHRoZSB3ZWxsLWtub3duIGVuZHBvaW50IG9yIHRoZSBKV0tTIGVuZHBvaW50IHBhc3NlZCB0byB0aGUgU0RLIGlzIGVtcHR5LiIpO2xldCBpO3RyeXtpPXlpZWxkIGZldGNoKHQse2NyZWRlbnRpYWxzOnIuc2VuZENvb2tpZXNJblJlcXVlc3RzP2EuSW5jbHVkZTphLlNhbWVPcmlnaW59KX1jYXRjaCh0KXt0aHJvdyBuZXcgYygiSlMtQVVUSF9IRUxQRVItVklULU5FMDIiLCJSZXF1ZXN0IHRvIGp3a3MgZW5kcG9pbnQgZmFpbGVkLiIsbnVsbCE9dD90OiJUaGUgcmVxdWVzdCBzZW50IHRvIGdldCB0aGUgandrcyBmcm9tIHRoZSBzZXJ2ZXIgZmFpbGVkLiIpfWlmKDIwMCE9PWkuc3RhdHVzfHwhaS5vayl0aHJvdyBuZXcgYygiSlMtQVVUSF9IRUxQRVItVklULUhFMDMiLGBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cyByZWNlaXZlZCBmb3IgandrcyByZXF1ZXN0ICgke2kuc3RhdHVzVGV4dH0pLmAseWllbGQgaS5qc29uKCkpO2NvbnN0IG89KHlpZWxkIHRoaXMuX29pZGNQcm92aWRlck1ldGFEYXRhKCkpLmlzc3Vlcix7a2V5czpzfT15aWVsZCBpLmpzb24oKSx1PXlpZWxkIHRoaXMuX2NyeXB0b0hlbHBlci5nZXRKV0tGb3JUaGVJZFRva2VuKGUuc3BsaXQoIi4iKVswXSxzKTtyZXR1cm4gdGhpcy5fY3J5cHRvSGVscGVyLmlzVmFsaWRJZFRva2VuKGUsdSwoeWllbGQgdGhpcy5fY29uZmlnKCkpLmNsaWVudElELG51bGwhPW8/bzoiIix0aGlzLl9jcnlwdG9IZWxwZXIuZGVjb2RlSURUb2tlbihlKS5zdWIsKHlpZWxkIHRoaXMuX2NvbmZpZygpKS5jbG9ja1RvbGVyYW5jZSxudWxsPT09KG49KHlpZWxkIHRoaXMuX2NvbmZpZygpKS52YWxpZGF0ZUlEVG9rZW5Jc3N1ZXIpfHx2b2lkIDA9PT1ufHxuKX0pKX1nZXRBdXRoZW50aWNhdGVkVXNlckluZm8oZSl7dmFyIHQsbixyLGk7Y29uc3Qgbz10aGlzLl9jcnlwdG9IZWxwZXIuZGVjb2RlSURUb2tlbihlKSxzPXUuZ2V0VGVuYW50RG9tYWluRnJvbUlkVG9rZW5QYXlsb2FkKG8pLGE9bnVsbCE9PSh0PW51bGw9PW8/dm9pZCAwOm8udXNlcm5hbWUpJiZ2b2lkIDAhPT10P3Q6IiIsYz1udWxsIT09KG49by5naXZlbl9uYW1lKSYmdm9pZCAwIT09bj9uOiIiLGw9bnVsbCE9PShyPW8uZmFtaWx5X25hbWUpJiZ2b2lkIDAhPT1yP3I6IiIsZD1jJiZsP2Ake2N9ICR7bH1gOmN8fGx8fCIiLGg9bnVsbCE9PShpPW8ucHJlZmVycmVkX3VzZXJuYW1lKSYmdm9pZCAwIT09aT9pOmQ7cmV0dXJuIE9iamVjdC5hc3NpZ24oe2Rpc3BsYXlOYW1lOmgsdGVuYW50RG9tYWluOnMsdXNlcm5hbWU6YX0sdS5maWx0ZXJDbGFpbXNGcm9tSURUb2tlblBheWxvYWQobykpfXJlcGxhY2VDdXN0b21HcmFudFRlbXBsYXRlVGFncyhlLG4pe3ZhciByO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7bGV0IHQ9Im9wZW5pZCI7Y29uc3QgaT15aWVsZCB0aGlzLl9jb25maWcoKSxvPXlpZWxkIHRoaXMuX2RhdGFMYXllci5nZXRTZXNzaW9uRGF0YShuKTtyZXR1cm4gaS5zY29wZSYmaS5zY29wZS5sZW5ndGg+MCYmKGkuc2NvcGUuaW5jbHVkZXMoIm9wZW5pZCIpfHxpLnNjb3BlLnB1c2goIm9wZW5pZCIpLHQ9aS5zY29wZS5qb2luKCIgIikpLGUucmVwbGFjZSgie3t0b2tlbn19IixvLmFjY2Vzc190b2tlbikucmVwbGFjZSgie3t1c2VybmFtZX19Iix0aGlzLmdldEF1dGhlbnRpY2F0ZWRVc2VySW5mbyhvLmlkX3Rva2VuKS51c2VybmFtZSkucmVwbGFjZSgie3tzY29wZX19Iix0KS5yZXBsYWNlKCJ7e2NsaWVudElEfX0iLGkuY2xpZW50SUQpLnJlcGxhY2UoInt7Y2xpZW50U2VjcmV0fX0iLG51bGwhPT0ocj1pLmNsaWVudFNlY3JldCkmJnZvaWQgMCE9PXI/cjoiIil9KSl9Y2xlYXJVc2VyU2Vzc2lvbkRhdGEoZSl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt5aWVsZCB0aGlzLl9kYXRhTGF5ZXIucmVtb3ZlVGVtcG9yYXJ5RGF0YShlKSx5aWVsZCB0aGlzLl9kYXRhTGF5ZXIucmVtb3ZlU2Vzc2lvbkRhdGEoZSl9KSl9aGFuZGxlVG9rZW5SZXNwb25zZShlLG4pe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7aWYoMjAwIT09ZS5zdGF0dXN8fCFlLm9rKXRocm93IG5ldyBjKCJKUy1BVVRIX0hFTFBFUi1IVFItTkUwMSIsYEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzIHJlY2VpdmVkIGZvciB0b2tlbiByZXF1ZXN0ICgke2Uuc3RhdHVzVGV4dH0pLmAseWllbGQgZS5qc29uKCkpO2NvbnN0IHI9eWllbGQgZS5qc29uKCk7aWYoci5jcmVhdGVkX2F0PShuZXcgRGF0ZSkuZ2V0VGltZSgpLCh5aWVsZCB0aGlzLl9jb25maWcoKSkudmFsaWRhdGVJRFRva2VuKXJldHVybiB0aGlzLnZhbGlkYXRlSWRUb2tlbihyLmlkX3Rva2VuKS50aGVuKCgoKT0+dCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMuX2RhdGFMYXllci5zZXRTZXNzaW9uRGF0YShyLG4pO2NvbnN0IGU9e2FjY2Vzc1Rva2VuOnIuYWNjZXNzX3Rva2VuLGNyZWF0ZWRBdDpyLmNyZWF0ZWRfYXQsZXhwaXJlc0luOnIuZXhwaXJlc19pbixpZFRva2VuOnIuaWRfdG9rZW4scmVmcmVzaFRva2VuOnIucmVmcmVzaF90b2tlbixzY29wZTpyLnNjb3BlLHRva2VuVHlwZTpyLnRva2VuX3R5cGV9O3JldHVybiBQcm9taXNlLnJlc29sdmUoZSl9KSkpKTt7Y29uc3QgZT17YWNjZXNzVG9rZW46ci5hY2Nlc3NfdG9rZW4sY3JlYXRlZEF0OnIuY3JlYXRlZF9hdCxleHBpcmVzSW46ci5leHBpcmVzX2luLGlkVG9rZW46ci5pZF90b2tlbixyZWZyZXNoVG9rZW46ci5yZWZyZXNoX3Rva2VuLHNjb3BlOnIuc2NvcGUsdG9rZW5UeXBlOnIudG9rZW5fdHlwZX07cmV0dXJuIHlpZWxkIHRoaXMuX2RhdGFMYXllci5zZXRTZXNzaW9uRGF0YShyLG4pLFByb21pc2UucmVzb2x2ZShlKX19KSl9Z2VuZXJhdGVQS0NFS2V5KGUpe3ZhciBuO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD15aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0VGVtcG9yYXJ5RGF0YShlKSxyPVtdO09iamVjdC5rZXlzKHQpLmZvckVhY2goKGU9PntlLnN0YXJ0c1dpdGgoInBrY2VfY29kZV92ZXJpZmllciIpJiZyLnB1c2goZSl9KSk7Y29uc3QgaT1yLnNvcnQoKS5wb3AoKTtyZXR1cm5gcGtjZV9jb2RlX3ZlcmlmaWVyIyR7cGFyc2VJbnQobnVsbCE9PShuPW51bGw9PWk/dm9pZCAwOmkuc3BsaXQoIiMiKVsxXSkmJnZvaWQgMCE9PW4/bjoiLTEiKSsxfWB9KSl9fWNsYXNzIGR7Y29uc3RydWN0b3IoZSl7dGhpcy5fY3J5cHRvVXRpbHM9ZX1nZXRDb2RlVmVyaWZpZXIoKXtyZXR1cm4gdGhpcy5fY3J5cHRvVXRpbHMuYmFzZTY0VVJMRW5jb2RlKHRoaXMuX2NyeXB0b1V0aWxzLmdlbmVyYXRlUmFuZG9tQnl0ZXMoMzIpKX1nZXRDb2RlQ2hhbGxlbmdlKGUpe3JldHVybiB0aGlzLl9jcnlwdG9VdGlscy5iYXNlNjRVUkxFbmNvZGUodGhpcy5fY3J5cHRvVXRpbHMuaGFzaFNoYTI1NihlKSl9Z2V0SldLRm9yVGhlSWRUb2tlbihlLHQpe2NvbnN0IG49SlNPTi5wYXJzZSh0aGlzLl9jcnlwdG9VdGlscy5iYXNlNjRVUkxEZWNvZGUoZSkpO2Zvcihjb25zdCBlIG9mIHQpaWYobi5raWQ9PT1lLmtpZClyZXR1cm4gZTt0aHJvdyBuZXcgYygiSlMtQ1JZUFRPX1VUSUwtR0pGVElULUlWMDEiLCJraWQgbm90IGZvdW5kLiIsIkZhaWxlZCB0byBmaW5kIHRoZSAna2lkJyBzcGVjaWZpZWQgaW4gdGhlIGlkX3Rva2VuLiAna2lkJyBmb3VuZCBpbiB0aGUgaGVhZGVyIDogIituLmtpZCsiLCBFeHBlY3RlZCB2YWx1ZXM6ICIrdC5tYXAoKGU9PmUua2lkKSkuam9pbigiLCAiKSl9aXNWYWxpZElkVG9rZW4oZSx0LG4scixpLHMsYSl7cmV0dXJuIHRoaXMuX2NyeXB0b1V0aWxzLnZlcmlmeUp3dChlLHQsbyxuLHIsaSxzLGEpLnRoZW4oKGU9PmU/UHJvbWlzZS5yZXNvbHZlKCEwKTpQcm9taXNlLnJlamVjdChuZXcgYygiSlMtQ1JZUFRPX0hFTFBFUi1JVklULUlWMDEiLCJJbnZhbGlkIElEIHRva2VuLiIsIklEIHRva2VuIHZhbGlkYXRpb24gcmV0dXJuZWQgZmFsc2UiKSkpKX1kZWNvZGVJRFRva2VuKGUpe3RyeXtjb25zdCB0PXRoaXMuX2NyeXB0b1V0aWxzLmJhc2U2NFVSTERlY29kZShlLnNwbGl0KCIuIilbMV0pO3JldHVybiBKU09OLnBhcnNlKHQpfWNhdGNoKGUpe3Rocm93IG5ldyBjKCJKUy1DUllQVE9fVVRJTC1ESVQtSVYwMSIsIkRlY29kaW5nIElEIHRva2VuIGZhaWxlZC4iLGUpfX19Y2xhc3MgaHtjb25zdHJ1Y3RvcihlLG4pe3RoaXMuX2NyeXB0b1V0aWxzPW4sdGhpcy5fY3J5cHRvSGVscGVyPW5ldyBkKG4pLHRoaXMuX2F1dGhlbnRpY2F0aW9uSGVscGVyPW5ldyBsKGUsdGhpcy5fY3J5cHRvSGVscGVyKSx0aGlzLl9kYXRhTGF5ZXI9ZSx0aGlzLl9jb25maWc9KCk9PnQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4geWllbGQgdGhpcy5fZGF0YUxheWVyLmdldENvbmZpZ0RhdGEoKX0pKSx0aGlzLl9vaWRjUHJvdmlkZXJNZXRhRGF0YT0oKT0+dCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0T0lEQ1Byb3ZpZGVyTWV0YURhdGEoKX0pKX1nZXRBdXRob3JpemF0aW9uVVJMUGFyYW1zKGUsbil7dmFyIHIsaSxvO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD15aWVsZCB0aGlzLl9jb25maWcoKSxzPW5ldyBNYXA7cy5zZXQoInJlc3BvbnNlX3R5cGUiLCJjb2RlIikscy5zZXQoImNsaWVudF9pZCIsdC5jbGllbnRJRCksdC5jbGllbnRTZWNyZXQmJnQuY2xpZW50U2VjcmV0LnRyaW0oKS5sZW5ndGg+MCYmcy5zZXQoImNsaWVudF9zZWNyZXQiLHQuY2xpZW50U2VjcmV0KTtsZXQgYT0ib3BlbmlkIjt0LnNjb3BlJiZ0LnNjb3BlLmxlbmd0aD4wJiYodC5zY29wZS5pbmNsdWRlcygib3BlbmlkIil8fHQuc2NvcGUucHVzaCgib3BlbmlkIiksYT10LnNjb3BlLmpvaW4oIiAiKSkscy5zZXQoInNjb3BlIixhKSxzLnNldCgicmVkaXJlY3RfdXJpIix0LnNpZ25JblJlZGlyZWN0VVJMKSx0LnJlc3BvbnNlTW9kZSYmcy5zZXQoInJlc3BvbnNlX21vZGUiLHQucmVzcG9uc2VNb2RlKTtjb25zdCBjPXlpZWxkIHRoaXMuX2F1dGhlbnRpY2F0aW9uSGVscGVyLmdlbmVyYXRlUEtDRUtleShuKTtpZih0LmVuYWJsZVBLQ0Upe2NvbnN0IGU9bnVsbD09PShyPXRoaXMuX2NyeXB0b0hlbHBlcil8fHZvaWQgMD09PXI/dm9pZCAwOnIuZ2V0Q29kZVZlcmlmaWVyKCksdD1udWxsPT09KGk9dGhpcy5fY3J5cHRvSGVscGVyKXx8dm9pZCAwPT09aT92b2lkIDA6aS5nZXRDb2RlQ2hhbGxlbmdlKGUpO3lpZWxkIHRoaXMuX2RhdGFMYXllci5zZXRUZW1wb3JhcnlEYXRhUGFyYW1ldGVyKGMsZSxuKSxzLnNldCgiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIiwiUzI1NiIpLHMuc2V0KCJjb2RlX2NoYWxsZW5nZSIsdCl9dC5wcm9tcHQmJnMuc2V0KCJwcm9tcHQiLHQucHJvbXB0KTtjb25zdCBsPWU7aWYobClmb3IoY29uc3RbZSx0XW9mIE9iamVjdC5lbnRyaWVzKGwpKSIiIT1lJiYiIiE9dCYmInN0YXRlIiE9PWUmJnMuc2V0KGUsdC50b1N0cmluZygpKTtyZXR1cm4gcy5zZXQoInN0YXRlIix1LmdlbmVyYXRlU3RhdGVQYXJhbUZvclJlcXVlc3RDb3JyZWxhdGlvbihjLGw/bnVsbD09PShvPWwuc3RhdGUpfHx2b2lkIDA9PT1vP3ZvaWQgMDpvLnRvU3RyaW5nKCk6IiIpKSxzfSkpfWdldEF1dGhvcml6YXRpb25VUkwoZSxuKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9eWllbGQgdGhpcy5fZGF0YUxheWVyLmdldE9JRENQcm92aWRlck1ldGFEYXRhUGFyYW1ldGVyKCJhdXRob3JpemF0aW9uX2VuZHBvaW50Iik7aWYoIXR8fDA9PT10LnRyaW0oKS5sZW5ndGgpdGhyb3cgbmV3IGMoIkpTLUFVVEhfQ09SRS1HQVUtTkYwMSIsIk5vIGF1dGhvcml6YXRpb24gZW5kcG9pbnQgZm91bmQuIiwiTm8gYXV0aG9yaXphdGlvbiBlbmRwb2ludCB3YXMgZm91bmQgaW4gdGhlIE9JREMgcHJvdmlkZXIgbWV0YSBkYXRhIGZyb20gdGhlIHdlbGwta25vd24gZW5kcG9pbnQgb3IgdGhlIGF1dGhvcml6YXRpb24gZW5kcG9pbnQgcGFzc2VkIHRvIHRoZSBTREsgaXMgZW1wdHkuIik7Y29uc3Qgcj1uZXcgVVJMKHQpLGk9eWllbGQgdGhpcy5nZXRBdXRob3JpemF0aW9uVVJMUGFyYW1zKGUsbik7Zm9yKGNvbnN0W2UsdF1vZiBpLmVudHJpZXMoKSlyLnNlYXJjaFBhcmFtcy5hcHBlbmQoZSx0KTtyZXR1cm4gci50b1N0cmluZygpfSkpfXJlcXVlc3RBY2Nlc3NUb2tlbihlLG4scixpLG8pe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD0oeWllbGQgdGhpcy5fb2lkY1Byb3ZpZGVyTWV0YURhdGEoKSkudG9rZW5fZW5kcG9pbnQscz15aWVsZCB0aGlzLl9jb25maWcoKTtpZighdHx8MD09PXQudHJpbSgpLmxlbmd0aCl0aHJvdyBuZXcgYygiSlMtQVVUSF9DT1JFLVJBVDEtTkYwMSIsIlRva2VuIGVuZHBvaW50IG5vdCBmb3VuZC4iLCJObyB0b2tlbiBlbmRwb2ludCB3YXMgZm91bmQgaW4gdGhlIE9JREMgcHJvdmlkZXIgbWV0YSBkYXRhIHJldHVybmVkIGJ5IHRoZSB3ZWxsLWtub3duIGVuZHBvaW50IG9yIHRoZSB0b2tlbiBlbmRwb2ludCBwYXNzZWQgdG8gdGhlIFNESyBpcyBlbXB0eS4iKTtuJiYoeWllbGQgdGhpcy5fZGF0YUxheWVyLnNldFNlc3Npb25EYXRhUGFyYW1ldGVyKCJzZXNzaW9uX3N0YXRlIixuLGkpKTtjb25zdCBsPW5ldyBVUkxTZWFyY2hQYXJhbXM7bC5zZXQoImNsaWVudF9pZCIscy5jbGllbnRJRCkscy5jbGllbnRTZWNyZXQmJnMuY2xpZW50U2VjcmV0LnRyaW0oKS5sZW5ndGg+MCYmbC5zZXQoImNsaWVudF9zZWNyZXQiLHMuY2xpZW50U2VjcmV0KTtjb25zdCBkPWU7bGV0IGg7bC5zZXQoImNvZGUiLGQpLGwuc2V0KCJncmFudF90eXBlIiwiYXV0aG9yaXphdGlvbl9jb2RlIiksbC5zZXQoInJlZGlyZWN0X3VyaSIscy5zaWduSW5SZWRpcmVjdFVSTCksKG51bGw9PW8/dm9pZCAwOm8ucGFyYW1zKSYmT2JqZWN0LmVudHJpZXMoby5wYXJhbXMpLmZvckVhY2goKChbZSx0XSk9PntsLmFwcGVuZChlLHQpfSkpLHMuZW5hYmxlUEtDRSYmKGwuc2V0KCJjb2RlX3ZlcmlmaWVyIixgJHt5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0VGVtcG9yYXJ5RGF0YVBhcmFtZXRlcih1LmV4dHJhY3RQS0NFS2V5RnJvbVN0YXRlUGFyYW0ociksaSl9YCkseWllbGQgdGhpcy5fZGF0YUxheWVyLnJlbW92ZVRlbXBvcmFyeURhdGFQYXJhbWV0ZXIodS5leHRyYWN0UEtDRUtleUZyb21TdGF0ZVBhcmFtKHIpLGkpKTt0cnl7aD15aWVsZCBmZXRjaCh0LHtib2R5OmwsY3JlZGVudGlhbHM6cy5zZW5kQ29va2llc0luUmVxdWVzdHM/YS5JbmNsdWRlOmEuU2FtZU9yaWdpbixoZWFkZXJzOm5ldyBIZWFkZXJzKHUuZ2V0VG9rZW5SZXF1ZXN0SGVhZGVycygpKSxtZXRob2Q6IlBPU1QifSl9Y2F0Y2godCl7dGhyb3cgbmV3IGMoIkpTLUFVVEhfQ09SRS1SQVQxLU5FMDIiLCJSZXF1ZXN0aW5nIGFjY2VzcyB0b2tlbiBmYWlsZWQiLG51bGwhPXQ/dDoiVGhlIHJlcXVlc3QgdG8gZ2V0IHRoZSBhY2Nlc3MgdG9rZW4gZnJvbSB0aGUgc2VydmVyIGZhaWxlZC4iKX1pZighaC5vayl0aHJvdyBuZXcgYygiSlMtQVVUSF9DT1JFLVJBVDEtSEUwMyIsYFJlcXVlc3RpbmcgYWNjZXNzIHRva2VuIGZhaWxlZCB3aXRoICR7aC5zdGF0dXNUZXh0fWAseWllbGQgaC5qc29uKCkpO3JldHVybiB5aWVsZCB0aGlzLl9hdXRoZW50aWNhdGlvbkhlbHBlci5oYW5kbGVUb2tlblJlc3BvbnNlKGgsaSl9KSl9cmVmcmVzaEFjY2Vzc1Rva2VuKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD0oeWllbGQgdGhpcy5fb2lkY1Byb3ZpZGVyTWV0YURhdGEoKSkudG9rZW5fZW5kcG9pbnQsbj15aWVsZCB0aGlzLl9jb25maWcoKSxyPXlpZWxkIHRoaXMuX2RhdGFMYXllci5nZXRTZXNzaW9uRGF0YShlKTtpZighci5yZWZyZXNoX3Rva2VuKXRocm93IG5ldyBjKCJKUy1BVVRIX0NPUkUtUkFUMi1ORjAxIiwiTm8gcmVmcmVzaCB0b2tlbiBmb3VuZC4iLCJUaGVyZSB3YXMgbm8gcmVmcmVzaCB0b2tlbiBmb3VuZC4gQXNnYXJkZW8gZG9lc24ndCByZXR1cm4gYSByZWZyZXNoIHRva2VuIGlmIHRoZSByZWZyZXNoIHRva2VuIGdyYW50IGlzIG5vdCBlbmFibGVkLiIpO2lmKCF0fHwwPT09dC50cmltKCkubGVuZ3RoKXRocm93IG5ldyBjKCJKUy1BVVRIX0NPUkUtUkFUMi1ORjAyIiwiTm8gcmVmcmVzaCB0b2tlbiBlbmRwb2ludCBmb3VuZC4iLCJObyByZWZyZXNoIHRva2VuIGVuZHBvaW50IHdhcyBpbiB0aGUgT0lEQyBwcm92aWRlciBtZXRhIGRhdGEgcmV0dXJuZWQgYnkgdGhlIHdlbGwta25vd24gZW5kcG9pbnQgb3IgdGhlIHJlZnJlc2ggdG9rZW4gZW5kcG9pbnQgcGFzc2VkIHRvIHRoZSBTREsgaXMgZW1wdHkuIik7Y29uc3QgaT1bXTtsZXQgbztpLnB1c2goYGNsaWVudF9pZD0ke24uY2xpZW50SUR9YCksaS5wdXNoKGByZWZyZXNoX3Rva2VuPSR7ci5yZWZyZXNoX3Rva2VufWApLGkucHVzaCgiZ3JhbnRfdHlwZT1yZWZyZXNoX3Rva2VuIiksbi5jbGllbnRTZWNyZXQmJm4uY2xpZW50U2VjcmV0LnRyaW0oKS5sZW5ndGg+MCYmaS5wdXNoKGBjbGllbnRfc2VjcmV0PSR7bi5jbGllbnRTZWNyZXR9YCk7dHJ5e289eWllbGQgZmV0Y2godCx7Ym9keTppLmpvaW4oIiYiKSxjcmVkZW50aWFsczpuLnNlbmRDb29raWVzSW5SZXF1ZXN0cz9hLkluY2x1ZGU6YS5TYW1lT3JpZ2luLGhlYWRlcnM6bmV3IEhlYWRlcnModS5nZXRUb2tlblJlcXVlc3RIZWFkZXJzKCkpLG1ldGhvZDoiUE9TVCJ9KX1jYXRjaCh0KXt0aHJvdyBuZXcgYygiSlMtQVVUSF9DT1JFLVJBVDItTlIwMyIsIlJlZnJlc2ggYWNjZXNzIHRva2VuIHJlcXVlc3QgZmFpbGVkLiIsbnVsbCE9dD90OiJUaGUgcmVxdWVzdCB0byByZWZyZXNoIHRoZSBhY2Nlc3MgdG9rZW4gZmFpbGVkLiIpfWlmKCFvLm9rKXRocm93IG5ldyBjKCJKUy1BVVRIX0NPUkUtUkFUMi1IRTA0IixgUmVmcmVzaGluZyBhY2Nlc3MgdG9rZW4gZmFpbGVkIHdpdGggJHtvLnN0YXR1c1RleHR9YCx5aWVsZCBvLmpzb24oKSk7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uSGVscGVyLmhhbmRsZVRva2VuUmVzcG9uc2UobyxlKX0pKX1yZXZva2VBY2Nlc3NUb2tlbihlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9KHlpZWxkIHRoaXMuX29pZGNQcm92aWRlck1ldGFEYXRhKCkpLnJldm9jYXRpb25fZW5kcG9pbnQsbj15aWVsZCB0aGlzLl9jb25maWcoKTtpZighdHx8MD09PXQudHJpbSgpLmxlbmd0aCl0aHJvdyBuZXcgYygiSlMtQVVUSF9DT1JFLVJBVDMtTkYwMSIsIk5vIHJldm9rZSBhY2Nlc3MgdG9rZW4gZW5kcG9pbnQgZm91bmQuIiwiTm8gcmV2b2tlIGFjY2VzcyB0b2tlbiBlbmRwb2ludCB3YXMgZm91bmQgaW4gdGhlIE9JREMgcHJvdmlkZXIgbWV0YSBkYXRhIHJldHVybmVkIGJ5IHRoZSB3ZWxsLWtub3duIGVuZHBvaW50IG9yIHRoZSByZXZva2UgYWNjZXNzIHRva2VuIGVuZHBvaW50IHBhc3NlZCB0byB0aGUgU0RLIGlzIGVtcHR5LiIpO2NvbnN0IHI9W107bGV0IGk7ci5wdXNoKGBjbGllbnRfaWQ9JHtuLmNsaWVudElEfWApLHIucHVzaChgdG9rZW49JHsoeWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFNlc3Npb25EYXRhKGUpKS5hY2Nlc3NfdG9rZW59YCksci5wdXNoKCJ0b2tlbl90eXBlX2hpbnQ9YWNjZXNzX3Rva2VuIik7dHJ5e2k9eWllbGQgZmV0Y2godCx7Ym9keTpyLmpvaW4oIiYiKSxjcmVkZW50aWFsczpuLnNlbmRDb29raWVzSW5SZXF1ZXN0cz9hLkluY2x1ZGU6YS5TYW1lT3JpZ2luLGhlYWRlcnM6bmV3IEhlYWRlcnModS5nZXRUb2tlblJlcXVlc3RIZWFkZXJzKCkpLG1ldGhvZDoiUE9TVCJ9KX1jYXRjaCh0KXt0aHJvdyBuZXcgYygiSlMtQVVUSF9DT1JFLVJBVDMtTkUwMiIsIlRoZSByZXF1ZXN0IHRvIHJldm9rZSBhY2Nlc3MgdG9rZW4gZmFpbGVkLiIsbnVsbCE9dD90OiJUaGUgcmVxdWVzdCBzZW50IHRvIHJldm9rZSB0aGUgYWNjZXNzIHRva2VuIGZhaWxlZC4iKX1pZigyMDAhPT1pLnN0YXR1c3x8IWkub2spdGhyb3cgbmV3IGMoIkpTLUFVVEhfQ09SRS1SQVQzLUhFMDMiLGBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cyByZWNlaXZlZCBmb3IgcmV2b2tlIGFjY2VzcyB0b2tlbiByZXF1ZXN0ICgke2kuc3RhdHVzVGV4dH0pLmAseWllbGQgaS5qc29uKCkpO3JldHVybiB0aGlzLl9hdXRoZW50aWNhdGlvbkhlbHBlci5jbGVhclVzZXJTZXNzaW9uRGF0YShlKSxQcm9taXNlLnJlc29sdmUoaSl9KSl9cmVxdWVzdEN1c3RvbUdyYW50KGUsbil7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCByPXlpZWxkIHRoaXMuX29pZGNQcm92aWRlck1ldGFEYXRhKCksaT15aWVsZCB0aGlzLl9jb25maWcoKTtsZXQgbztpZihvPWUudG9rZW5FbmRwb2ludCYmMCE9PWUudG9rZW5FbmRwb2ludC50cmltKCkubGVuZ3RoP2UudG9rZW5FbmRwb2ludDpyLnRva2VuX2VuZHBvaW50LCFvfHwwPT09by50cmltKCkubGVuZ3RoKXRocm93IG5ldyBjKCJKUy1BVVRIX0NPUkUtUkNHLU5GMDEiLCJUb2tlbiBlbmRwb2ludCBub3QgZm91bmQuIiwiTm8gdG9rZW4gZW5kcG9pbnQgd2FzIGZvdW5kIGluIHRoZSBPSURDIHByb3ZpZGVyIG1ldGEgZGF0YSByZXR1cm5lZCBieSB0aGUgd2VsbC1rbm93biBlbmRwb2ludCBvciB0aGUgdG9rZW4gZW5kcG9pbnQgcGFzc2VkIHRvIHRoZSBTREsgaXMgZW1wdHkuIik7Y29uc3Qgcz15aWVsZCBQcm9taXNlLmFsbChPYmplY3QuZW50cmllcyhlLmRhdGEpLm1hcCgoKFtlLHJdKT0+dCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9eWllbGQgdGhpcy5fYXV0aGVudGljYXRpb25IZWxwZXIucmVwbGFjZUN1c3RvbUdyYW50VGVtcGxhdGVUYWdzKHIsbik7cmV0dXJuYCR7ZX09JHt0fWB9KSkpKSk7bGV0IGw9T2JqZWN0LmFzc2lnbih7fSx1LmdldFRva2VuUmVxdWVzdEhlYWRlcnMoKSk7ZS5hdHRhY2hUb2tlbiYmKGw9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGwpLHtBdXRob3JpemF0aW9uOmBCZWFyZXIgJHsoeWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFNlc3Npb25EYXRhKG4pKS5hY2Nlc3NfdG9rZW59YH0pKTtjb25zdCBkPXtib2R5OnMuam9pbigiJiIpLGNyZWRlbnRpYWxzOmkuc2VuZENvb2tpZXNJblJlcXVlc3RzP2EuSW5jbHVkZTphLlNhbWVPcmlnaW4saGVhZGVyczpuZXcgSGVhZGVycyhsKSxtZXRob2Q6IlBPU1QifTtsZXQgaDt0cnl7aD15aWVsZCBmZXRjaChvLGQpfWNhdGNoKGUpe3Rocm93IG5ldyBjKCJKUy1BVVRIX0NPUkUtUkNHLU5FMDIiLCJUaGUgY3VzdG9tIGdyYW50IHJlcXVlc3QgZmFpbGVkLiIsbnVsbCE9ZT9lOiJUaGUgcmVxdWVzdCBzZW50IHRvIGdldCB0aGUgY3VzdG9tIGdyYW50IGZhaWxlZC4iKX1pZigyMDAhPT1oLnN0YXR1c3x8IWgub2spdGhyb3cgbmV3IGMoIkpTLUFVVEhfQ09SRS1SQ0ctSEUwMyIsYEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzIHJlY2VpdmVkIGZvciB0aGUgY3VzdG9tIGdyYW50IHJlcXVlc3QuICgke2guc3RhdHVzVGV4dH0pYCx5aWVsZCBoLmpzb24oKSk7cmV0dXJuIGUucmV0dXJuc1Nlc3Npb24/dGhpcy5fYXV0aGVudGljYXRpb25IZWxwZXIuaGFuZGxlVG9rZW5SZXNwb25zZShoLG4pOlByb21pc2UucmVzb2x2ZSh5aWVsZCBoLmpzb24oKSl9KSl9Z2V0QmFzaWNVc2VySW5mbyhlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9eWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFNlc3Npb25EYXRhKGUpLG49dGhpcy5fYXV0aGVudGljYXRpb25IZWxwZXIuZ2V0QXV0aGVudGljYXRlZFVzZXJJbmZvKG51bGw9PXQ/dm9pZCAwOnQuaWRfdG9rZW4pO2xldCByPXthbGxvd2VkU2NvcGVzOnQuc2NvcGUsc2Vzc2lvblN0YXRlOnQuc2Vzc2lvbl9zdGF0ZX07cmV0dXJuIE9iamVjdC5rZXlzKG4pLmZvckVhY2goKGU9Pnt2b2lkIDAhPT1uW2VdJiYiIiE9PW5bZV0mJm51bGwhPT1uW2VdfHxkZWxldGUgbltlXX0pKSxyPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyKSxuKSxyfSkpfWdldERlY29kZWRJRFRva2VuKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD0oeWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFNlc3Npb25EYXRhKGUpKS5pZF90b2tlbjtyZXR1cm4gdGhpcy5fY3J5cHRvSGVscGVyLmRlY29kZUlEVG9rZW4odCl9KSl9Z2V0Q3J5cHRvSGVscGVyKCl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5fY3J5cHRvSGVscGVyfSkpfWdldElEVG9rZW4oZSl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4oeWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFNlc3Npb25EYXRhKGUpKS5pZF90b2tlbn0pKX1nZXRPSURDUHJvdmlkZXJNZXRhRGF0YShlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9eWllbGQgdGhpcy5fY29uZmlnKCk7aWYoIWUmJih5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0VGVtcG9yYXJ5RGF0YVBhcmFtZXRlcigib3BfY29uZmlnX2luaXRpYXRlZCIpKSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7Y29uc3Qgbj10LndlbGxLbm93bkVuZHBvaW50O2lmKG4pe2xldCBlO3RyeXtpZihlPXlpZWxkIGZldGNoKG4pLDIwMCE9PWUuc3RhdHVzfHwhZS5vayl0aHJvdyBuZXcgRXJyb3J9Y2F0Y2godCl7dGhyb3cgbmV3IGMoIkpTLUFVVEhfQ09SRS1HT1BNRC1IRTAxIiwiSW52YWxpZCB3ZWxsLWtub3duIHJlc3BvbnNlIiwiVGhlIHdlbGwga25vd24gZW5kcG9pbnQgcmVzcG9uc2UgaGFzIGJlZW4gZmFpbGVkIHdpdGggYW4gZXJyb3IuIil9cmV0dXJuIHlpZWxkIHRoaXMuX2RhdGFMYXllci5zZXRPSURDUHJvdmlkZXJNZXRhRGF0YSh5aWVsZCB0aGlzLl9hdXRoZW50aWNhdGlvbkhlbHBlci5yZXNvbHZlRW5kcG9pbnRzKHlpZWxkIGUuanNvbigpKSkseWllbGQgdGhpcy5fZGF0YUxheWVyLnNldFRlbXBvcmFyeURhdGFQYXJhbWV0ZXIoIm9wX2NvbmZpZ19pbml0aWF0ZWQiLCEwKSxQcm9taXNlLnJlc29sdmUoKX1pZih0LmJhc2VVcmwpe3RyeXt5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuc2V0T0lEQ1Byb3ZpZGVyTWV0YURhdGEoeWllbGQgdGhpcy5fYXV0aGVudGljYXRpb25IZWxwZXIucmVzb2x2ZUVuZHBvaW50c0J5QmFzZVVSTCgpKX1jYXRjaCh0KXt0aHJvdyBuZXcgYygiSlMtQVVUSF9DT1JFLUdPUE1ELUlWMDIiLCJSZXNvbHZpbmcgZW5kcG9pbnRzIGZhaWxlZC4iLG51bGwhPXQ/dDoiUmVzb2x2aW5nIGVuZHBvaW50cyBieSBiYXNlIHVybCBmYWlsZWQuIil9cmV0dXJuIHlpZWxkIHRoaXMuX2RhdGFMYXllci5zZXRUZW1wb3JhcnlEYXRhUGFyYW1ldGVyKCJvcF9jb25maWdfaW5pdGlhdGVkIiwhMCksUHJvbWlzZS5yZXNvbHZlKCl9cmV0dXJuIHlpZWxkIHRoaXMuX2RhdGFMYXllci5zZXRPSURDUHJvdmlkZXJNZXRhRGF0YSh5aWVsZCB0aGlzLl9hdXRoZW50aWNhdGlvbkhlbHBlci5yZXNvbHZlRW5kcG9pbnRzRXhwbGljaXRseSgpKSx5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuc2V0VGVtcG9yYXJ5RGF0YVBhcmFtZXRlcigib3BfY29uZmlnX2luaXRpYXRlZCIsITApLFByb21pc2UucmVzb2x2ZSgpfSkpfWdldE9JRENTZXJ2aWNlRW5kcG9pbnRzKCl7dmFyIGUsbixyLGksbyxzLGEsYyx1LGw7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCB0PXlpZWxkIHRoaXMuX29pZGNQcm92aWRlck1ldGFEYXRhKCk7cmV0dXJue2F1dGhvcml6YXRpb25FbmRwb2ludDpudWxsIT09KGU9dC5hdXRob3JpemF0aW9uX2VuZHBvaW50KSYmdm9pZCAwIT09ZT9lOiIiLGNoZWNrU2Vzc2lvbklmcmFtZTpudWxsIT09KG49dC5jaGVja19zZXNzaW9uX2lmcmFtZSkmJnZvaWQgMCE9PW4/bjoiIixlbmRTZXNzaW9uRW5kcG9pbnQ6bnVsbCE9PShyPXQuZW5kX3Nlc3Npb25fZW5kcG9pbnQpJiZ2b2lkIDAhPT1yP3I6IiIsaW50cm9zcGVjdGlvbkVuZHBvaW50Om51bGwhPT0oaT10LmludHJvc3BlY3Rpb25fZW5kcG9pbnQpJiZ2b2lkIDAhPT1pP2k6IiIsaXNzdWVyOm51bGwhPT0obz10Lmlzc3VlcikmJnZvaWQgMCE9PW8/bzoiIixqd2tzVXJpOm51bGwhPT0ocz10Lmp3a3NfdXJpKSYmdm9pZCAwIT09cz9zOiIiLHJlZ2lzdHJhdGlvbkVuZHBvaW50Om51bGwhPT0oYT10LnJlZ2lzdHJhdGlvbl9lbmRwb2ludCkmJnZvaWQgMCE9PWE/YToiIixyZXZvY2F0aW9uRW5kcG9pbnQ6bnVsbCE9PShjPXQucmV2b2NhdGlvbl9lbmRwb2ludCkmJnZvaWQgMCE9PWM/YzoiIix0b2tlbkVuZHBvaW50Om51bGwhPT0odT10LnRva2VuX2VuZHBvaW50KSYmdm9pZCAwIT09dT91OiIiLHVzZXJpbmZvRW5kcG9pbnQ6bnVsbCE9PShsPXQudXNlcmluZm9fZW5kcG9pbnQpJiZ2b2lkIDAhPT1sP2w6IiJ9fSkpfWdldFNpZ25PdXRVUkwoZSl7dmFyIG4scixpO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD1udWxsPT09KG49eWllbGQgdGhpcy5fb2lkY1Byb3ZpZGVyTWV0YURhdGEoKSl8fHZvaWQgMD09PW4/dm9pZCAwOm4uZW5kX3Nlc3Npb25fZW5kcG9pbnQsbz15aWVsZCB0aGlzLl9jb25maWcoKTtpZighdHx8MD09PXQudHJpbSgpLmxlbmd0aCl0aHJvdyBuZXcgYygiSlMtQVVUSF9DT1JFLUdTT1UtTkYwMSIsIlNpZ24tb3V0IGVuZHBvaW50IG5vdCBmb3VuZC4iLCJObyBzaWduLW91dCBlbmRwb2ludCB3YXMgZm91bmQgaW4gdGhlIE9JREMgcHJvdmlkZXIgbWV0YSBkYXRhIHJldHVybmVkIGJ5IHRoZSB3ZWxsLWtub3duIGVuZHBvaW50IG9yIHRoZSBzaWduLW91dCBlbmRwb2ludCBwYXNzZWQgdG8gdGhlIFNESyBpcyBlbXB0eS4iKTtjb25zdCBzPW51bGwhPT0ocj1udWxsPT1vP3ZvaWQgMDpvLnNpZ25PdXRSZWRpcmVjdFVSTCkmJnZvaWQgMCE9PXI/cjpudWxsPT1vP3ZvaWQgMDpvLnNpZ25JblJlZGlyZWN0VVJMO2lmKCFzfHwwPT09cy50cmltKCkubGVuZ3RoKXRocm93IG5ldyBjKCJKUy1BVVRIX0NPUkUtR1NPVS1ORjAzIiwiTm8gc2lnbi1vdXQgcmVkaXJlY3QgVVJMIGZvdW5kLiIsIlRoZSBzaWduLW91dCByZWRpcmVjdCBVUkwgY2Fubm90IGJlIGZvdW5kIG9yIHRoZSBVUkwgcGFzc2VkIHRvIHRoZSBTREsgaXMgZW1wdHkuIE5vIHNpZ24taW4gcmVkaXJlY3QgVVJMIGhhcyBiZWVuIGZvdW5kIGVpdGhlci4gIik7Y29uc3QgYT1uZXcgVVJMU2VhcmNoUGFyYW1zO2lmKGEuc2V0KCJwb3N0X2xvZ291dF9yZWRpcmVjdF91cmkiLHMpLG8uc2VuZElkVG9rZW5JbkxvZ291dFJlcXVlc3Qpe2NvbnN0IHQ9bnVsbD09PShpPXlpZWxkIHRoaXMuX2RhdGFMYXllci5nZXRTZXNzaW9uRGF0YShlKSl8fHZvaWQgMD09PWk/dm9pZCAwOmkuaWRfdG9rZW47aWYoIXR8fDA9PT10LnRyaW0oKS5sZW5ndGgpdGhyb3cgbmV3IGMoIkpTLUFVVEhfQ09SRS1HU09VLU5GMDIiLCJJRCB0b2tlbiBub3QgZm91bmQuIiwiTm8gSUQgdG9rZW4gY291bGQgYmUgZm91bmQuIEVpdGhlciB0aGUgc2Vzc2lvbiBpbmZvcm1hdGlvbiBpcyBsb3N0IG9yIHlvdSBoYXZlIG5vdCBzaWduZWQgaW4uIik7YS5zZXQoImlkX3Rva2VuX2hpbnQiLHQpfWVsc2UgYS5zZXQoImNsaWVudF9pZCIsby5jbGllbnRJRCk7cmV0dXJuIGEuc2V0KCJzdGF0ZSIsInNpZ25fb3V0X3N1Y2Nlc3MiKSxgJHt0fT8ke2EudG9TdHJpbmcoKX1gfSkpfWNsZWFyVXNlclNlc3Npb25EYXRhKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7eWllbGQgdGhpcy5fYXV0aGVudGljYXRpb25IZWxwZXIuY2xlYXJVc2VyU2Vzc2lvbkRhdGEoZSl9KSl9Z2V0QWNjZXNzVG9rZW4oZSl7dmFyIG47cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gbnVsbD09PShuPXlpZWxkIHRoaXMuX2RhdGFMYXllci5nZXRTZXNzaW9uRGF0YShlKSl8fHZvaWQgMD09PW4/dm9pZCAwOm4uYWNjZXNzX3Rva2VufSkpfWdldENyZWF0ZWRBdChlKXt2YXIgbjtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiBudWxsPT09KG49eWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFNlc3Npb25EYXRhKGUpKXx8dm9pZCAwPT09bj92b2lkIDA6bi5jcmVhdGVkX2F0fSkpfWdldEV4cGlyZXNJbihlKXt2YXIgbjtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiBudWxsPT09KG49eWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFNlc3Npb25EYXRhKGUpKXx8dm9pZCAwPT09bj92b2lkIDA6bi5leHBpcmVzX2lufSkpfWlzQXV0aGVudGljYXRlZChlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9Qm9vbGVhbih5aWVsZCB0aGlzLmdldEFjY2Vzc1Rva2VuKGUpKSxuPXlpZWxkIHRoaXMuZ2V0Q3JlYXRlZEF0KGUpLHI9eWllbGQgdGhpcy5nZXRFeHBpcmVzSW4oZSk7aWYoIXIpcmV0dXJuITE7Y29uc3QgaT0xZTMqcGFyc2VJbnQociksbz0obmV3IERhdGUpLmdldFRpbWUoKTtyZXR1cm4gdCYmbitpPm99KSl9Z2V0UEtDRUNvZGUoZSxuKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0VGVtcG9yYXJ5RGF0YVBhcmFtZXRlcih1LmV4dHJhY3RQS0NFS2V5RnJvbVN0YXRlUGFyYW0oZSksbil9KSl9c2V0UEtDRUNvZGUoZSxuLHIpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHlpZWxkIHRoaXMuX2RhdGFMYXllci5zZXRUZW1wb3JhcnlEYXRhUGFyYW1ldGVyKHUuZXh0cmFjdFBLQ0VLZXlGcm9tU3RhdGVQYXJhbShuKSxlLHIpfSkpfXVwZGF0ZUNvbmZpZyhlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMuX2RhdGFMYXllci5zZXRDb25maWdEYXRhKGUpLHlpZWxkIHRoaXMuZ2V0T0lEQ1Byb3ZpZGVyTWV0YURhdGEoITApfSkpfX1jbGFzcyBme2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5faWQ9ZSx0aGlzLl9zdG9yZT10fXNldERhdGFJbkJ1bGsoZSxuKXt2YXIgcjtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9bnVsbCE9PShyPXlpZWxkIHRoaXMuX3N0b3JlLmdldERhdGEoZSkpJiZ2b2lkIDAhPT1yP3I6bnVsbCxpPXQmJkpTT04ucGFyc2UodCksbz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saSksbikscz1KU09OLnN0cmluZ2lmeShvKTt5aWVsZCB0aGlzLl9zdG9yZS5zZXREYXRhKGUscyl9KSl9c2V0VmFsdWUoZSxuLHIpe3ZhciBpO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD1udWxsIT09KGk9eWllbGQgdGhpcy5fc3RvcmUuZ2V0RGF0YShlKSkmJnZvaWQgMCE9PWk/aTpudWxsLG89dCYmSlNPTi5wYXJzZSh0KSxzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxvKSx7W25dOnJ9KSxhPUpTT04uc3RyaW5naWZ5KHMpO3lpZWxkIHRoaXMuX3N0b3JlLnNldERhdGEoZSxhKX0pKX1yZW1vdmVWYWx1ZShlLG4pe3ZhciByO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD1udWxsIT09KHI9eWllbGQgdGhpcy5fc3RvcmUuZ2V0RGF0YShlKSkmJnZvaWQgMCE9PXI/cjpudWxsLGk9dCYmSlNPTi5wYXJzZSh0KSxvPU9iamVjdC5hc3NpZ24oe30saSk7ZGVsZXRlIG9bbl07Y29uc3Qgcz1KU09OLnN0cmluZ2lmeShvKTt5aWVsZCB0aGlzLl9zdG9yZS5zZXREYXRhKGUscyl9KSl9X3Jlc29sdmVLZXkoZSx0KXtyZXR1cm4gdD9gJHtlfS0ke3RoaXMuX2lkfS0ke3R9YDpgJHtlfS0ke3RoaXMuX2lkfWB9aXNMb2NhbFN0b3JhZ2VBdmFpbGFibGUoKXt0cnl7Y29uc3QgZT0iX19BU0dBUkRFT19BVVRIX0NPUkVfTE9DQUxfU1RPUkFHRV9URVNUX18iO3JldHVybiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLGUpLGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGUpLCEwfWNhdGNoKGUpe3JldHVybiExfX1zZXRDb25maWdEYXRhKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7eWllbGQgdGhpcy5zZXREYXRhSW5CdWxrKHRoaXMuX3Jlc29sdmVLZXkoci5Db25maWdEYXRhKSxlKX0pKX1zZXRPSURDUHJvdmlkZXJNZXRhRGF0YShlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3RoaXMuc2V0RGF0YUluQnVsayh0aGlzLl9yZXNvbHZlS2V5KHIuT0lEQ1Byb3ZpZGVyTWV0YURhdGEpLGUpfSkpfXNldFRlbXBvcmFyeURhdGEoZSxuKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3RoaXMuc2V0RGF0YUluQnVsayh0aGlzLl9yZXNvbHZlS2V5KHIuVGVtcG9yYXJ5RGF0YSxuKSxlKX0pKX1zZXRTZXNzaW9uRGF0YShlLG4pe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7dGhpcy5zZXREYXRhSW5CdWxrKHRoaXMuX3Jlc29sdmVLZXkoci5TZXNzaW9uRGF0YSxuKSxlKX0pKX1zZXRDdXN0b21EYXRhKGUsbixyKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3RoaXMuc2V0RGF0YUluQnVsayh0aGlzLl9yZXNvbHZlS2V5KGUsciksbil9KSl9Z2V0Q29uZmlnRGF0YSgpe3ZhciBlO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIEpTT04ucGFyc2UobnVsbCE9PShlPXlpZWxkIHRoaXMuX3N0b3JlLmdldERhdGEodGhpcy5fcmVzb2x2ZUtleShyLkNvbmZpZ0RhdGEpKSkmJnZvaWQgMCE9PWU/ZTpudWxsKX0pKX1nZXRPSURDUHJvdmlkZXJNZXRhRGF0YSgpe3ZhciBlO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIEpTT04ucGFyc2UobnVsbCE9PShlPXlpZWxkIHRoaXMuX3N0b3JlLmdldERhdGEodGhpcy5fcmVzb2x2ZUtleShyLk9JRENQcm92aWRlck1ldGFEYXRhKSkpJiZ2b2lkIDAhPT1lP2U6bnVsbCl9KSl9Z2V0VGVtcG9yYXJ5RGF0YShlKXt2YXIgbjtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiBKU09OLnBhcnNlKG51bGwhPT0obj15aWVsZCB0aGlzLl9zdG9yZS5nZXREYXRhKHRoaXMuX3Jlc29sdmVLZXkoci5UZW1wb3JhcnlEYXRhLGUpKSkmJnZvaWQgMCE9PW4/bjpudWxsKX0pKX1nZXRTZXNzaW9uRGF0YShlKXt2YXIgbjtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiBKU09OLnBhcnNlKG51bGwhPT0obj15aWVsZCB0aGlzLl9zdG9yZS5nZXREYXRhKHRoaXMuX3Jlc29sdmVLZXkoci5TZXNzaW9uRGF0YSxlKSkpJiZ2b2lkIDAhPT1uP246bnVsbCl9KSl9Z2V0Q3VzdG9tRGF0YShlLG4pe3ZhciByO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIEpTT04ucGFyc2UobnVsbCE9PShyPXlpZWxkIHRoaXMuX3N0b3JlLmdldERhdGEodGhpcy5fcmVzb2x2ZUtleShlLG4pKSkmJnZvaWQgMCE9PXI/cjpudWxsKX0pKX1zZXRTZXNzaW9uU3RhdHVzKGUpe3RoaXMuaXNMb2NhbFN0b3JhZ2VBdmFpbGFibGUoKSYmbG9jYWxTdG9yYWdlLnNldEl0ZW0oImFzZ2FyZGVvLXNlc3Npb24tYWN0aXZlIixlKX1nZXRTZXNzaW9uU3RhdHVzKCl7dmFyIGU7cmV0dXJuIHRoaXMuaXNMb2NhbFN0b3JhZ2VBdmFpbGFibGUoKSYmbnVsbCE9PShlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJhc2dhcmRlby1zZXNzaW9uLWFjdGl2ZSIpKSYmdm9pZCAwIT09ZT9lOiIifXJlbW92ZVNlc3Npb25TdGF0dXMoKXt0aGlzLmlzTG9jYWxTdG9yYWdlQXZhaWxhYmxlKCkmJmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJhc2dhcmRlby1zZXNzaW9uLWFjdGl2ZSIpfXJlbW92ZUNvbmZpZ0RhdGEoKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMuX3N0b3JlLnJlbW92ZURhdGEodGhpcy5fcmVzb2x2ZUtleShyLkNvbmZpZ0RhdGEpKX0pKX1yZW1vdmVPSURDUHJvdmlkZXJNZXRhRGF0YSgpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7eWllbGQgdGhpcy5fc3RvcmUucmVtb3ZlRGF0YSh0aGlzLl9yZXNvbHZlS2V5KHIuT0lEQ1Byb3ZpZGVyTWV0YURhdGEpKX0pKX1yZW1vdmVUZW1wb3JhcnlEYXRhKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7eWllbGQgdGhpcy5fc3RvcmUucmVtb3ZlRGF0YSh0aGlzLl9yZXNvbHZlS2V5KHIuVGVtcG9yYXJ5RGF0YSxlKSl9KSl9cmVtb3ZlU2Vzc2lvbkRhdGEoZSl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt5aWVsZCB0aGlzLl9zdG9yZS5yZW1vdmVEYXRhKHRoaXMuX3Jlc29sdmVLZXkoci5TZXNzaW9uRGF0YSxlKSl9KSl9Z2V0Q29uZmlnRGF0YVBhcmFtZXRlcihlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9eWllbGQgdGhpcy5fc3RvcmUuZ2V0RGF0YSh0aGlzLl9yZXNvbHZlS2V5KHIuQ29uZmlnRGF0YSkpO3JldHVybiB0JiZKU09OLnBhcnNlKHQpW2VdfSkpfWdldE9JRENQcm92aWRlck1ldGFEYXRhUGFyYW1ldGVyKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD15aWVsZCB0aGlzLl9zdG9yZS5nZXREYXRhKHRoaXMuX3Jlc29sdmVLZXkoci5PSURDUHJvdmlkZXJNZXRhRGF0YSkpO3JldHVybiB0JiZKU09OLnBhcnNlKHQpW2VdfSkpfWdldFRlbXBvcmFyeURhdGFQYXJhbWV0ZXIoZSxuKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9eWllbGQgdGhpcy5fc3RvcmUuZ2V0RGF0YSh0aGlzLl9yZXNvbHZlS2V5KHIuVGVtcG9yYXJ5RGF0YSxuKSk7cmV0dXJuIHQmJkpTT04ucGFyc2UodClbZV19KSl9Z2V0U2Vzc2lvbkRhdGFQYXJhbWV0ZXIoZSxuKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9eWllbGQgdGhpcy5fc3RvcmUuZ2V0RGF0YSh0aGlzLl9yZXNvbHZlS2V5KHIuU2Vzc2lvbkRhdGEsbikpO3JldHVybiB0JiZKU09OLnBhcnNlKHQpW2VdfSkpfXNldENvbmZpZ0RhdGFQYXJhbWV0ZXIoZSxuKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMuc2V0VmFsdWUodGhpcy5fcmVzb2x2ZUtleShyLkNvbmZpZ0RhdGEpLGUsbil9KSl9c2V0T0lEQ1Byb3ZpZGVyTWV0YURhdGFQYXJhbWV0ZXIoZSxuKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMuc2V0VmFsdWUodGhpcy5fcmVzb2x2ZUtleShyLk9JRENQcm92aWRlck1ldGFEYXRhKSxlLG4pfSkpfXNldFRlbXBvcmFyeURhdGFQYXJhbWV0ZXIoZSxuLGkpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7eWllbGQgdGhpcy5zZXRWYWx1ZSh0aGlzLl9yZXNvbHZlS2V5KHIuVGVtcG9yYXJ5RGF0YSxpKSxlLG4pfSkpfXNldFNlc3Npb25EYXRhUGFyYW1ldGVyKGUsbixpKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMuc2V0VmFsdWUodGhpcy5fcmVzb2x2ZUtleShyLlNlc3Npb25EYXRhLGkpLGUsbil9KSl9cmVtb3ZlQ29uZmlnRGF0YVBhcmFtZXRlcihlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMucmVtb3ZlVmFsdWUodGhpcy5fcmVzb2x2ZUtleShyLkNvbmZpZ0RhdGEpLGUpfSkpfXJlbW92ZU9JRENQcm92aWRlck1ldGFEYXRhUGFyYW1ldGVyKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7eWllbGQgdGhpcy5yZW1vdmVWYWx1ZSh0aGlzLl9yZXNvbHZlS2V5KHIuT0lEQ1Byb3ZpZGVyTWV0YURhdGEpLGUpfSkpfXJlbW92ZVRlbXBvcmFyeURhdGFQYXJhbWV0ZXIoZSxuKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMucmVtb3ZlVmFsdWUodGhpcy5fcmVzb2x2ZUtleShyLlRlbXBvcmFyeURhdGEsbiksZSl9KSl9cmVtb3ZlU2Vzc2lvbkRhdGFQYXJhbWV0ZXIoZSxuKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMucmVtb3ZlVmFsdWUodGhpcy5fcmVzb2x2ZUtleShyLlNlc3Npb25EYXRhLG4pLGUpfSkpfX1jb25zdCBwPXtjbG9ja1RvbGVyYW5jZTozMDAsZW5hYmxlUEtDRTohMCxyZXNwb25zZU1vZGU6bi5xdWVyeSxzY29wZTpbIm9wZW5pZCJdLHNlbmRDb29raWVzSW5SZXF1ZXN0czohMCx2YWxpZGF0ZUlEVG9rZW46ITAsdmFsaWRhdGVJRFRva2VuSXNzdWVyOiEwfTtjbGFzcyBnewovKioKICAgICAgICAgKiBUaGlzIGlzIHRoZSBjb25zdHJ1Y3RvciBtZXRob2QgdGhhdCByZXR1cm5zIGFuIGluc3RhbmNlIG9mIHRoZSAuCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gc3RvcmUgLSBUaGUgc3RvcmUgb2JqZWN0LgogICAgICAgICAqCiAgICAgICAgICogQGV4YW1wbGUKICAgICAgICAgKiBgYGAKICAgICAgICAgKiBjb25zdCBfc3RvcmU6IFN0b3JlID0gbmV3IERhdGFTdG9yZSgpOwogICAgICAgICAqIGNvbnN0IGF1dGggPSBuZXcgQXNnYXJkZW9BdXRoQ2xpZW50PEN1c3RvbUNsaWVudENvbmZpZz4oX3N0b3JlKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjY29uc3RydWN0b3J9CiAgICAgICAgICoKICAgICAgICAgKiBAcHJlc2VydmUKICAgICAgICAgKi8KY29uc3RydWN0b3IoKXt9Ci8qKgogICAgICAgICAqCiAgICAgICAgICogVGhpcyBtZXRob2QgaW5pdGlhbGl6ZXMgdGhlIFNESyB3aXRoIHRoZSBjb25maWcgZGF0YS4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSBjb25maWcgLSBUaGUgY29uZmlnIG9iamVjdCB0byBpbml0aWFsaXplIHdpdGguCiAgICAgICAgICoKICAgICAgICAgKiBAZXhhbXBsZQogICAgICAgICAqIGNvbnN0IGNvbmZpZyA9IFx7CiAgICAgICAgICogICAgIHNpZ25JblJlZGlyZWN0VVJMOiAiaHR0cDovL2xvY2FsaG9zdDozMDAwL3NpZ24taW4iLAogICAgICAgICAqICAgICBjbGllbnRJRDogImNsaWVudCBJRCIsCiAgICAgICAgICogICAgIGJhc2VVcmw6ICJodHRwczovL2xvY2FsaG9zdDo5NDQzIgogICAgICAgICAqIFx9CiAgICAgICAgICoKICAgICAgICAgKiBhd2FpdCBhdXRoLmluaXRpYWxpemUoY29uZmlnKTsKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjaW5pdGlhbGl6ZX0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2luaXRpYWxpemUoZSxuLHIsaSl7dmFyIG8scyxhO3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgdD1lLmNsaWVudElEO2cuX2luc3RhbmNlSUQ/Zy5faW5zdGFuY2VJRCs9MTpnLl9pbnN0YW5jZUlEPTAsaSYmKGcuX2luc3RhbmNlSUQ9aSksdGhpcy5fZGF0YUxheWVyPW5ldyBmKHQ/YGluc3RhbmNlXyR7Zy5faW5zdGFuY2VJRH0tJHt0fWA6YGluc3RhbmNlXyR7Zy5faW5zdGFuY2VJRH1gLG4pLHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZT1uZXcgaCh0aGlzLl9kYXRhTGF5ZXIsciksZy5fYXV0aGVudGljYXRpb25Db3JlPW5ldyBoKHRoaXMuX2RhdGFMYXllcixyKSx5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuc2V0Q29uZmlnRGF0YShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxwKSxlKSx7c2NvcGU6Wy4uLm51bGwhPT0obz1wLnNjb3BlKSYmdm9pZCAwIT09bz9vOltdLC4uLm51bGwhPT0oYT1udWxsPT09KHM9ZS5zY29wZSl8fHZvaWQgMD09PXM/dm9pZCAwOnMuZmlsdGVyKChlPT57dmFyIHQ7cmV0dXJuIShudWxsPT09KHQ9bnVsbD09cD92b2lkIDA6cC5zY29wZSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuaW5jbHVkZXMoZSkpfSkpKSYmdm9pZCAwIT09YT9hOltdXX0pKX0pKX0KLyoqCiAgICAgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgYERhdGFMYXllcmAgb2JqZWN0IHRoYXQgYWxsb3dzIHlvdSB0byBhY2Nlc3MgYXV0aGVudGljYXRpb24gZGF0YS4KICAgICAgICAgKgogICAgICAgICAqIEByZXR1cm5zIC0gVGhlIGBEYXRhTGF5ZXJgIG9iamVjdC4KICAgICAgICAgKgogICAgICAgICAqIEBleGFtcGxlCiAgICAgICAgICogYGBgCiAgICAgICAgICogY29uc3QgZGF0YSA9IGF1dGguZ2V0RGF0YUxheWVyKCk7CiAgICAgICAgICogYGBgCiAgICAgICAgICoKICAgICAgICAgKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2FzZ2FyZGVvL2FzZ2FyZGVvLWF1dGgtanMtc2RrL3RyZWUvbWFzdGVyI2dldERhdGFMYXllcn0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2dldERhdGFMYXllcigpe3JldHVybiB0aGlzLl9kYXRhTGF5ZXJ9Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGBpbnN0YW5jZUlEYCB2YXJpYWJsZSBvZiB0aGUgZ2l2ZW4gaW5zdGFuY2UuCiAgICAgICAgICoKICAgICAgICAgKiBAcmV0dXJucyAtIFRoZSBgaW5zdGFuY2VJRGAgbnVtYmVyLgogICAgICAgICAqCiAgICAgICAgICogQGV4YW1wbGUKICAgICAgICAgKiBgYGAKICAgICAgICAgKiBjb25zdCBpbnN0YW5jZUlkID0gYXV0aC5nZXRJbnN0YW5jZUlEKCk7CiAgICAgICAgICogYGBgCiAgICAgICAgICoKICAgICAgICAgKiBAcHJlc2VydmUKICAgICAgICAgKi9nZXRJbnN0YW5jZUlEKCl7cmV0dXJuIGcuX2luc3RhbmNlSUR9Ci8qKgogICAgICAgKiBUaGlzIGlzIGFuIGFzeW5jIG1ldGhvZCB0aGF0IHJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgYXV0aG9yaXphdGlvbiBVUkwgcGFyYW1ldGVycy4KICAgICAgICoKICAgICAgICogQHBhcmFtIGNvbmZpZyAtIChPcHRpb25hbCkgQSBjb25maWcgb2JqZWN0IHRvIGZvcmNlIGluaXRpYWxpemF0aW9uIGFuZCBwYXNzCiAgICAgICAqIGN1c3RvbSBwYXRoIHBhcmFtZXRlcnMgc3VjaCBhcyB0aGUgYGZpZHBgIHBhcmFtZXRlci4KICAgICAgICogQHBhcmFtIHVzZXJJRCAtIChPcHRpb25hbCkgQSB1bmlxdWUgSUQgb2YgdGhlIHVzZXIgdG8gYmUgYXV0aGVudGljYXRlZC4gVGhpcyBpcyB1c2VmdWwgaW4gbXVsdGktdXNlcgogICAgICAgKiBzY2VuYXJpb3Mgd2hlcmUgZWFjaCB1c2VyIHNob3VsZCBiZSB1bmlxdWVseSBpZGVudGlmaWVkLgogICAgICAgKgogICAgICAgKiBAcmV0dXJucyAtIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGF1dGhvcml6YXRpb24gVVJMIHBhcmFtZXRlcnMuCiAgICAgICAqCiAgICAgICAqIEBleGFtcGxlCiAgICAgICAqIGBgYAogICAgICAgKiBhdXRoLmdldEF1dGhvcml6YXRpb25VUkxQYXJhbXMoKS50aGVuKChwYXJhbXMpPT57CiAgICAgICAqICAvLyBjb25zb2xlLmxvZyhwYXJhbXMpOwogICAgICAgKiB9KS5jYXRjaCgoZXJyb3IpPT57CiAgICAgICAqICAvLyBjb25zb2xlLmVycm9yKGVycm9yKTsKICAgICAgICogfSk7CiAgICAgICAqIGBgYAogICAgICAgKgogICAgICAgKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2FzZ2FyZGVvL2FzZ2FyZGVvLWF1dGgtanMtc2RrL3RyZWUvbWFzdGVyI2dldEF1dGhvcml6YXRpb25VUkxQYXJhbXN9CiAgICAgICAqCiAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgKi9nZXRBdXRob3JpemF0aW9uVVJMUGFyYW1zKGUsbil7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCB0PU9iamVjdC5hc3NpZ24oe30sZSk7cmV0dXJuIG51bGw9PXR8fGRlbGV0ZSB0LmZvcmNlSW5pdCwoeWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFRlbXBvcmFyeURhdGFQYXJhbWV0ZXIoIm9wX2NvbmZpZ19pbml0aWF0ZWQiKSk/dGhpcy5fYXV0aGVudGljYXRpb25Db3JlLmdldEF1dGhvcml6YXRpb25VUkxQYXJhbXModCxuKTp0aGlzLl9hdXRoZW50aWNhdGlvbkNvcmUuZ2V0T0lEQ1Byb3ZpZGVyTWV0YURhdGEobnVsbD09ZT92b2lkIDA6ZS5mb3JjZUluaXQpLnRoZW4oKCgpPT50aGlzLl9hdXRoZW50aWNhdGlvbkNvcmUuZ2V0QXV0aG9yaXphdGlvblVSTFBhcmFtcyh0LG4pKSl9KSl9Ci8qKgogICAgICAgICAqIFRoaXMgaXMgYW4gYXN5bmMgbWV0aG9kIHRoYXQgcmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBhdXRob3JpemF0aW9uIFVSTC4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSBjb25maWcgLSAoT3B0aW9uYWwpIEEgY29uZmlnIG9iamVjdCB0byBmb3JjZSBpbml0aWFsaXphdGlvbiBhbmQgcGFzcwogICAgICAgICAqIGN1c3RvbSBwYXRoIHBhcmFtZXRlcnMgc3VjaCBhcyB0aGUgZmlkcCBwYXJhbWV0ZXIuCiAgICAgICAgICogQHBhcmFtIHVzZXJJRCAtIChPcHRpb25hbCkgQSB1bmlxdWUgSUQgb2YgdGhlIHVzZXIgdG8gYmUgYXV0aGVudGljYXRlZC4gVGhpcyBpcyB1c2VmdWwgaW4gbXVsdGktdXNlcgogICAgICAgICAqIHNjZW5hcmlvcyB3aGVyZSBlYWNoIHVzZXIgc2hvdWxkIGJlIHVuaXF1ZWx5IGlkZW50aWZpZWQuCiAgICAgICAgICoKICAgICAgICAgKiBAcmV0dXJucyAtIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGF1dGhvcml6YXRpb24gVVJMLgogICAgICAgICAqCiAgICAgICAgICogQGV4YW1wbGUKICAgICAgICAgKiBgYGAKICAgICAgICAgKiBhdXRoLmdldEF1dGhvcml6YXRpb25VUkwoKS50aGVuKCh1cmwpPT57CiAgICAgICAgICogIC8vIGNvbnNvbGUubG9nKHVybCk7CiAgICAgICAgICogfSkuY2F0Y2goKGVycm9yKT0+ewogICAgICAgICAqICAvLyBjb25zb2xlLmVycm9yKGVycm9yKTsKICAgICAgICAgKiB9KTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjZ2V0QXV0aG9yaXphdGlvblVSTH0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2dldEF1dGhvcml6YXRpb25VUkwoZSxuKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IHQ9T2JqZWN0LmFzc2lnbih7fSxlKTtyZXR1cm4gbnVsbD09dHx8ZGVsZXRlIHQuZm9yY2VJbml0LCh5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0VGVtcG9yYXJ5RGF0YVBhcmFtZXRlcigib3BfY29uZmlnX2luaXRpYXRlZCIpKT90aGlzLl9hdXRoZW50aWNhdGlvbkNvcmUuZ2V0QXV0aG9yaXphdGlvblVSTCh0LG4pOnRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5nZXRPSURDUHJvdmlkZXJNZXRhRGF0YShudWxsPT1lP3ZvaWQgMDplLmZvcmNlSW5pdCkudGhlbigoKCk9PnRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5nZXRBdXRob3JpemF0aW9uVVJMKHQsbikpKX0pKX0KLyoqCiAgICAgICAgICogVGhpcyBpcyBhbiBhc3luYyBtZXRob2QgdGhhdCBzZW5kcyBhIHJlcXVlc3QgdG8gb2J0YWluIHRoZSBhY2Nlc3MgdG9rZW4gYW5kIHJldHVybnMgYSBQcm9taXNlCiAgICAgICAgICogdGhhdCByZXNvbHZlcyB3aXRoIHRoZSB0b2tlbiBhbmQgb3RoZXIgcmVsZXZhbnQgZGF0YS4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSBhdXRob3JpemF0aW9uQ29kZSAtIFRoZSBhdXRob3JpemF0aW9uIGNvZGUuCiAgICAgICAgICogQHBhcmFtIHNlc3Npb25TdGF0ZSAtIFRoZSBzZXNzaW9uIHN0YXRlLgogICAgICAgICAqIEBwYXJhbSB1c2VySUQgLSAoT3B0aW9uYWwpIEEgdW5pcXVlIElEIG9mIHRoZSB1c2VyIHRvIGJlIGF1dGhlbnRpY2F0ZWQuIFRoaXMgaXMgdXNlZnVsIGluIG11bHRpLXVzZXIKICAgICAgICAgKiBzY2VuYXJpb3Mgd2hlcmUgZWFjaCB1c2VyIHNob3VsZCBiZSB1bmlxdWVseSBpZGVudGlmaWVkLgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSB0b2tlbiByZXNwb25zZS4KICAgICAgICAgKgogICAgICAgICAqIEBleGFtcGxlCiAgICAgICAgICogYGBgCiAgICAgICAgICogYXV0aC5yZXF1ZXN0QWNjZXNzVG9rZW4oYXV0aENvZGUsIHNlc3Npb25TdGF0ZSkudGhlbigodG9rZW4pPT57CiAgICAgICAgICogIC8vIGNvbnNvbGUubG9nKHRva2VuKTsKICAgICAgICAgKiB9KS5jYXRjaCgoZXJyb3IpPT57CiAgICAgICAgICogIC8vIGNvbnNvbGUuZXJyb3IoZXJyb3IpOwogICAgICAgICAqIH0pOwogICAgICAgICAqIGBgYAogICAgICAgICAqCiAgICAgICAgICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2dhcmRlby9hc2dhcmRlby1hdXRoLWpzLXNkay90cmVlL21hc3RlciNyZXF1ZXN0QWNjZXNzVG9rZW59CiAgICAgICAgICoKICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL3JlcXVlc3RBY2Nlc3NUb2tlbihlLG4scixpLG8pe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuKHlpZWxkIHRoaXMuX2RhdGFMYXllci5nZXRUZW1wb3JhcnlEYXRhUGFyYW1ldGVyKCJvcF9jb25maWdfaW5pdGlhdGVkIikpP3RoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5yZXF1ZXN0QWNjZXNzVG9rZW4oZSxuLHIsaSxvKTp0aGlzLl9hdXRoZW50aWNhdGlvbkNvcmUuZ2V0T0lEQ1Byb3ZpZGVyTWV0YURhdGEoITEpLnRoZW4oKCgpPT50aGlzLl9hdXRoZW50aWNhdGlvbkNvcmUucmVxdWVzdEFjY2Vzc1Rva2VuKGUsbixyLGksbykpKX0pKX0KLyoqCiAgICAgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgc2lnbi1vdXQgVVJMLgogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtIHVzZXJJRCAtIChPcHRpb25hbCkgQSB1bmlxdWUgSUQgb2YgdGhlIHVzZXIgdG8gYmUgYXV0aGVudGljYXRlZC4gVGhpcyBpcyB1c2VmdWwgaW4gbXVsdGktdXNlcgogICAgICAgICAqIHNjZW5hcmlvcyB3aGVyZSBlYWNoIHVzZXIgc2hvdWxkIGJlIHVuaXF1ZWx5IGlkZW50aWZpZWQuCiAgICAgICAgICoKICAgICAgICAgKiAqKlRoaXMgZG9lc24ndCBjbGVhciB0aGUgYXV0aGVudGljYXRpb24gZGF0YS4qKgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBzaWduLW91dCBVUkwuCiAgICAgICAgICoKICAgICAgICAgKiBAZXhhbXBsZQogICAgICAgICAqIGBgYAogICAgICAgICAqIGNvbnN0IHNpZ25PdXRVcmwgPSBhd2FpdCBhdXRoLmdldFNpZ25PdXRVUkwoKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjZ2V0U2lnbk91dFVSTH0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2dldFNpZ25PdXRVUkwoZSl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25Db3JlLmdldFNpZ25PdXRVUkwoZSl9KSl9Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgT0lEQyBzZXJ2aWNlIGVuZHBvaW50cyB0aGF0IGFyZSBmZXRjaGVkIGZyb20gdGhlIGAud2VsbC1rbm93bmAgZW5kcG9pbnQuCiAgICAgICAgICoKICAgICAgICAgKiBAcmV0dXJucyAtIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIE9JREMgc2VydmljZSBlbmRwb2ludHMuCiAgICAgICAgICoKICAgICAgICAgKiBAZXhhbXBsZQogICAgICAgICAqIGBgYAogICAgICAgICAqIGNvbnN0IGVuZHBvaW50cyA9IGF3YWl0IGF1dGguZ2V0T0lEQ1NlcnZpY2VFbmRwb2ludHMoKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjZ2V0T0lEQ1NlcnZpY2VFbmRwb2ludHN9CiAgICAgICAgICoKICAgICAgICAgKiBAcHJlc2VydmUKICAgICAgICAgKi9nZXRPSURDU2VydmljZUVuZHBvaW50cygpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5nZXRPSURDU2VydmljZUVuZHBvaW50cygpfSkpfQovKioKICAgICAgICAgKiBUaGlzIG1ldGhvZCBkZWNvZGVzIHRoZSBwYXlsb2FkIG9mIHRoZSBJRCB0b2tlbiBhbmQgcmV0dXJucyBpdC4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSB1c2VySUQgLSAoT3B0aW9uYWwpIEEgdW5pcXVlIElEIG9mIHRoZSB1c2VyIHRvIGJlIGF1dGhlbnRpY2F0ZWQuIFRoaXMgaXMgdXNlZnVsIGluIG11bHRpLXVzZXIKICAgICAgICAgKiBzY2VuYXJpb3Mgd2hlcmUgZWFjaCB1c2VyIHNob3VsZCBiZSB1bmlxdWVseSBpZGVudGlmaWVkLgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBkZWNvZGVkIElEIHRva2VuIHBheWxvYWQuCiAgICAgICAgICoKICAgICAgICAgKiBAZXhhbXBsZQogICAgICAgICAqIGBgYAogICAgICAgICAqIGNvbnN0IGRlY29kZWRJZFRva2VuID0gYXdhaXQgYXV0aC5nZXREZWNvZGVkSURUb2tlbigpOwogICAgICAgICAqIGBgYAogICAgICAgICAqCiAgICAgICAgICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2dhcmRlby9hc2dhcmRlby1hdXRoLWpzLXNkay90cmVlL21hc3RlciNnZXREZWNvZGVkSURUb2tlbn0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2dldERlY29kZWRJRFRva2VuKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5nZXREZWNvZGVkSURUb2tlbihlKX0pKX0KLyoqCiAgICAgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgSUQgdG9rZW4uCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gdXNlcklEIC0gKE9wdGlvbmFsKSBBIHVuaXF1ZSBJRCBvZiB0aGUgdXNlciB0byBiZSBhdXRoZW50aWNhdGVkLiBUaGlzIGlzIHVzZWZ1bCBpbiBtdWx0aS11c2VyCiAgICAgICAgICogc2NlbmFyaW9zIHdoZXJlIGVhY2ggdXNlciBzaG91bGQgYmUgdW5pcXVlbHkgaWRlbnRpZmllZC4KICAgICAgICAgKgogICAgICAgICAqIEByZXR1cm5zIC0gQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgSUQgdG9rZW4uCiAgICAgICAgICoKICAgICAgICAgKiBAZXhhbXBsZQogICAgICAgICAqIGBgYAogICAgICAgICAqIGNvbnN0IGlkVG9rZW4gPSBhd2FpdCBhdXRoLmdldElEVG9rZW4oKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjZ2V0SURUb2tlbn0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2dldElEVG9rZW4oZSl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25Db3JlLmdldElEVG9rZW4oZSl9KSl9Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGJhc2ljIHVzZXIgaW5mb3JtYXRpb24gb2J0YWluZWQgZnJvbSB0aGUgSUQgdG9rZW4uCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gdXNlcklEIC0gKE9wdGlvbmFsKSBBIHVuaXF1ZSBJRCBvZiB0aGUgdXNlciB0byBiZSBhdXRoZW50aWNhdGVkLiBUaGlzIGlzIHVzZWZ1bCBpbiBtdWx0aS11c2VyCiAgICAgICAgICogc2NlbmFyaW9zIHdoZXJlIGVhY2ggdXNlciBzaG91bGQgYmUgdW5pcXVlbHkgaWRlbnRpZmllZC4KICAgICAgICAgKgogICAgICAgICAqIEByZXR1cm5zIC0gQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgYmFzaWMgdXNlciBpbmZvcm1hdGlvbi4KICAgICAgICAgKgogICAgICAgICAqIEBleGFtcGxlCiAgICAgICAgICogYGBgCiAgICAgICAgICogY29uc3QgdXNlckluZm8gPSBhd2FpdCBhdXRoLmdldEJhc2ljVXNlckluZm8oKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjZ2V0QmFzaWNVc2VySW5mb30KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2dldEJhc2ljVXNlckluZm8oZSl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25Db3JlLmdldEJhc2ljVXNlckluZm8oZSl9KSl9Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGNyeXB0byBoZWxwZXIgb2JqZWN0LgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGEgQ3J5cHRvSGVscGVyIG9iamVjdC4KICAgICAgICAgKgogICAgICAgICAqIEBleGFtcGxlCiAgICAgICAgICogYGBgCiAgICAgICAgICogY29uc3QgY3J5cHRvSGVscGVyID0gYXdhaXQgYXV0aC5DcnlwdG9IZWxwZXIoKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjZ2V0Q3J5cHRvSGVscGVyfQogICAgICAgICAqCiAgICAgICAgICogQHByZXNlcnZlCiAgICAgICAgICovZ2V0Q3J5cHRvSGVscGVyKCl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25Db3JlLmdldENyeXB0b0hlbHBlcigpfSkpfQovKioKICAgICAgICAgKiBUaGlzIG1ldGhvZCByZXZva2VzIHRoZSBhY2Nlc3MgdG9rZW4uCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gdXNlcklEIC0gKE9wdGlvbmFsKSBBIHVuaXF1ZSBJRCBvZiB0aGUgdXNlciB0byBiZSBhdXRoZW50aWNhdGVkLiBUaGlzIGlzIHVzZWZ1bCBpbiBtdWx0aS11c2VyCiAgICAgICAgICogc2NlbmFyaW9zIHdoZXJlIGVhY2ggdXNlciBzaG91bGQgYmUgdW5pcXVlbHkgaWRlbnRpZmllZC4KICAgICAgICAgKgogICAgICAgICAqICoqVGhpcyBtZXRob2QgYWxzbyBjbGVhcnMgdGhlIGF1dGhlbnRpY2F0aW9uIGRhdGEuKioKICAgICAgICAgKgogICAgICAgICAqIEByZXR1cm5zIC0gQSBQcm9taXNlIHRoYXQgcmV0dXJucyB0aGUgcmVzcG9uc2Ugb2YgdGhlIHJldm9rZS1hY2Nlc3MtdG9rZW4gcmVxdWVzdC4KICAgICAgICAgKgogICAgICAgICAqIEBleGFtcGxlCiAgICAgICAgICogYGBgCiAgICAgICAgICogYXV0aC5yZXZva2VBY2Nlc3NUb2tlbigpLnRoZW4oKHJlc3BvbnNlKT0+ewogICAgICAgICAqICAvLyBjb25zb2xlLmxvZyhyZXNwb25zZSk7CiAgICAgICAgICogfSkuY2F0Y2goKGVycm9yKT0+ewogICAgICAgICAqICAvLyBjb25zb2xlLmVycm9yKGVycm9yKTsKICAgICAgICAgKiB9KTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjcmV2b2tlQWNjZXNzVG9rZW59CiAgICAgICAgICoKICAgICAgICAgKiBAcHJlc2VydmUKICAgICAgICAgKi9yZXZva2VBY2Nlc3NUb2tlbihlKXtyZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25Db3JlLnJldm9rZUFjY2Vzc1Rva2VuKGUpfQovKioKICAgICAgICAgKiBUaGlzIG1ldGhvZCByZWZyZXNoZXMgdGhlIGFjY2VzcyB0b2tlbiBhbmQgcmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBuZXcgYWNjZXNzCiAgICAgICAgICogdG9rZW4gYW5kIG90aGVyIHJlbGV2YW50IGRhdGEuCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gdXNlcklEIC0gKE9wdGlvbmFsKSBBIHVuaXF1ZSBJRCBvZiB0aGUgdXNlciB0byBiZSBhdXRoZW50aWNhdGVkLiBUaGlzIGlzIHVzZWZ1bCBpbiBtdWx0aS11c2VyCiAgICAgICAgICogc2NlbmFyaW9zIHdoZXJlIGVhY2ggdXNlciBzaG91bGQgYmUgdW5pcXVlbHkgaWRlbnRpZmllZC4KICAgICAgICAgKgogICAgICAgICAqIEByZXR1cm5zIC0gQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgdG9rZW4gcmVzcG9uc2UuCiAgICAgICAgICoKICAgICAgICAgKiBAZXhhbXBsZQogICAgICAgICAqIGBgYAogICAgICAgICAqIGF1dGgucmVmcmVzaEFjY2Vzc1Rva2VuKCkudGhlbigocmVzcG9uc2UpPT57CiAgICAgICAgICogIC8vIGNvbnNvbGUubG9nKHJlc3BvbnNlKTsKICAgICAgICAgKiB9KS5jYXRjaCgoZXJyb3IpPT57CiAgICAgICAgICogIC8vIGNvbnNvbGUuZXJyb3IoZXJyb3IpOwogICAgICAgICAqIH0pOwogICAgICAgICAqIGBgYAogICAgICAgICAqCiAgICAgICAgICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2dhcmRlby9hc2dhcmRlby1hdXRoLWpzLXNkay90cmVlL21hc3RlciNyZWZyZXNoQWNjZXNzVG9rZW59CiAgICAgICAgICoKICAgICAgICAgKiBAcHJlc2VydmUKICAgICAgICAgKi9yZWZyZXNoQWNjZXNzVG9rZW4oZSl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5yZWZyZXNoQWNjZXNzVG9rZW4oZSl9Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGFjY2VzcyB0b2tlbi4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSB1c2VySUQgLSAoT3B0aW9uYWwpIEEgdW5pcXVlIElEIG9mIHRoZSB1c2VyIHRvIGJlIGF1dGhlbnRpY2F0ZWQuIFRoaXMgaXMgdXNlZnVsIGluIG11bHRpLXVzZXIKICAgICAgICAgKiBzY2VuYXJpb3Mgd2hlcmUgZWFjaCB1c2VyIHNob3VsZCBiZSB1bmlxdWVseSBpZGVudGlmaWVkLgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBhY2Nlc3MgdG9rZW4uCiAgICAgICAgICoKICAgICAgICAgKiBAZXhhbXBsZQogICAgICAgICAqIGBgYAogICAgICAgICAqIGNvbnN0IGFjY2Vzc1Rva2VuID0gYXdhaXQgYXV0aC5nZXRBY2Nlc3NUb2tlbigpOwogICAgICAgICAqIGBgYAogICAgICAgICAqCiAgICAgICAgICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2dhcmRlby9hc2dhcmRlby1hdXRoLWpzLXNkay90cmVlL21hc3RlciNnZXRBY2Nlc3NUb2tlbn0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2dldEFjY2Vzc1Rva2VuKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5nZXRBY2Nlc3NUb2tlbihlKX0pKX0KLyoqCiAgICAgICAgICogVGhpcyBtZXRob2Qgc2VuZHMgYSBjdXN0b20tZ3JhbnQgcmVxdWVzdCBhbmQgcmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSByZXNwb25zZQogICAgICAgICAqIGRlcGVuZGluZyBvbiB0aGUgY29uZmlnIHBhc3NlZC4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSBjb25maWcgLSBBIGNvbmZpZyBvYmplY3QgY29udGFpbmluZyB0aGUgY3VzdG9tIGdyYW50IGNvbmZpZ3VyYXRpb25zLgogICAgICAgICAqIEBwYXJhbSB1c2VySUQgLSAoT3B0aW9uYWwpIEEgdW5pcXVlIElEIG9mIHRoZSB1c2VyIHRvIGJlIGF1dGhlbnRpY2F0ZWQuIFRoaXMgaXMgdXNlZnVsIGluIG11bHRpLXVzZXIKICAgICAgICAgKiBzY2VuYXJpb3Mgd2hlcmUgZWFjaCB1c2VyIHNob3VsZCBiZSB1bmlxdWVseSBpZGVudGlmaWVkLgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSByZXNwb25zZSBkZXBlbmRpbmcKICAgICAgICAgKiBvbiB5b3VyIGNvbmZpZ3VyYXRpb25zLgogICAgICAgICAqCiAgICAgICAgICogQGV4YW1wbGUKICAgICAgICAgKiBgYGAKICAgICAgICAgKiBjb25zdCBjb25maWcgPSB7CiAgICAgICAgICogICBhdHRhY2hUb2tlbjogZmFsc2UsCiAgICAgICAgICogICBkYXRhOiB7CiAgICAgICAgICogICAgICAgY2xpZW50X2lkOiAie3tjbGllbnRJRH19IiwKICAgICAgICAgKiAgICAgICBncmFudF90eXBlOiAiYWNjb3VudF9zd2l0Y2giLAogICAgICAgICAqICAgICAgIHNjb3BlOiAie3tzY29wZX19IiwKICAgICAgICAgKiAgICAgICB0b2tlbjogInt7dG9rZW59fSIsCiAgICAgICAgICogICB9LAogICAgICAgICAqICAgaWQ6ICJhY2NvdW50LXN3aXRjaCIsCiAgICAgICAgICogICByZXR1cm5SZXNwb25zZTogdHJ1ZSwKICAgICAgICAgKiAgIHJldHVybnNTZXNzaW9uOiB0cnVlLAogICAgICAgICAqICAgc2lnbkluUmVxdWlyZWQ6IHRydWUKICAgICAgICAgKiB9CiAgICAgICAgICoKICAgICAgICAgKiBhdXRoLnJlcXVlc3RDdXN0b21HcmFudChjb25maWcpLnRoZW4oKHJlc3BvbnNlKT0+ewogICAgICAgICAqICAvLyBjb25zb2xlLmxvZyhyZXNwb25zZSk7CiAgICAgICAgICogfSkuY2F0Y2goKGVycm9yKT0+ewogICAgICAgICAqICAvLyBjb25zb2xlLmVycm9yKGVycm9yKTsKICAgICAgICAgKiB9KTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjcmVxdWVzdEN1c3RvbUdyYW50fQogICAgICAgICAqCiAgICAgICAgICogQHByZXNlcnZlCiAgICAgICAgICovcmVxdWVzdEN1c3RvbUdyYW50KGUsdCl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5yZXF1ZXN0Q3VzdG9tR3JhbnQoZSx0KX0KLyoqCiAgICAgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyBpZiB0aGUgdXNlciBpcyBhdXRoZW50aWNhdGVkIG9yIG5vdC4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSB1c2VySUQgLSAoT3B0aW9uYWwpIEEgdW5pcXVlIElEIG9mIHRoZSB1c2VyIHRvIGJlIGF1dGhlbnRpY2F0ZWQuIFRoaXMgaXMgdXNlZnVsIGluIG11bHRpLXVzZXIKICAgICAgICAgKiBzY2VuYXJpb3Mgd2hlcmUgZWFjaCB1c2VyIHNob3VsZCBiZSB1bmlxdWVseSBpZGVudGlmaWVkLgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGB0cnVlYCBpZiB0aGUgdXNlciBpcyBhdXRoZW50aWNhdGVkLCBgZmFsc2VgIG90aGVyd2lzZS4KICAgICAgICAgKgogICAgICAgICAqIEBleGFtcGxlCiAgICAgICAgICogYGBgCiAgICAgICAgICogYXdhaXQgYXV0aC5pc0F1dGhlbnRpY2F0ZWQoKTsKICAgICAgICAgKiBgYGAKICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjaXNBdXRoZW50aWNhdGVkfQogICAgICAgICAqCiAgICAgICAgICogQHByZXNlcnZlCiAgICAgICAgICovaXNBdXRoZW50aWNhdGVkKGUpe3JldHVybiB0KHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5pc0F1dGhlbnRpY2F0ZWQoZSl9KSl9Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIFBLQ0UgY29kZSBnZW5lcmF0ZWQgZHVyaW5nIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBVUkwuCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gdXNlcklEIC0gKE9wdGlvbmFsKSBBIHVuaXF1ZSBJRCBvZiB0aGUgdXNlciB0byBiZSBhdXRoZW50aWNhdGVkLiBUaGlzIGlzIHVzZWZ1bCBpbiBtdWx0aS11c2VyCiAgICAgICAgICogc2NlbmFyaW9zIHdoZXJlIGVhY2ggdXNlciBzaG91bGQgYmUgdW5pcXVlbHkgaWRlbnRpZmllZC4KICAgICAgICAgKiBAcGFyYW0gc3RhdGUgLSBUaGUgc3RhdGUgcGFyYW1ldGVyIHRoYXQgd2FzIHBhc3NlZCBpbiB0aGUgYXV0aGVudGljYXRpb24gVVJMLgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBQS0NFIGNvZGUuCiAgICAgICAgICoKICAgICAgICAgKiBAZXhhbXBsZQogICAgICAgICAqIGBgYAogICAgICAgICAqIGNvbnN0IHBrY2UgPSBhd2FpdCBnZXRQS0NFQ29kZSgpOwogICAgICAgICAqIGBgYAogICAgICAgICAqCiAgICAgICAgICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2dhcmRlby9hc2dhcmRlby1hdXRoLWpzLXNkay90cmVlL21hc3RlciNnZXRQS0NFQ29kZX0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL2dldFBLQ0VDb2RlKGUsbil7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25Db3JlLmdldFBLQ0VDb2RlKGUsbil9KSl9Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHNldHMgdGhlIFBLQ0UgY29kZSB0byB0aGUgZGF0YSBzdG9yZS4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSBwa2NlIC0gVGhlIFBLQ0UgY29kZS4KICAgICAgICAgKiBAcGFyYW0gc3RhdGUgLSBUaGUgc3RhdGUgcGFyYW1ldGVyIHRoYXQgd2FzIHBhc3NlZCBpbiB0aGUgYXV0aGVudGljYXRpb24gVVJMLgogICAgICAgICAqIEBwYXJhbSB1c2VySUQgLSAoT3B0aW9uYWwpIEEgdW5pcXVlIElEIG9mIHRoZSB1c2VyIHRvIGJlIGF1dGhlbnRpY2F0ZWQuIFRoaXMgaXMgdXNlZnVsIGluIG11bHRpLXVzZXIKICAgICAgICAgKiBzY2VuYXJpb3Mgd2hlcmUgZWFjaCB1c2VyIHNob3VsZCBiZSB1bmlxdWVseSBpZGVudGlmaWVkLgogICAgICAgICAqCiAgICAgICAgICogQGV4YW1wbGUKICAgICAgICAgKiBgYGAKICAgICAgICAgKiBhd2FpdCBhdXRoLnNldFBLQ0VDb2RlKCJwa2NlX2NvZGUiKQogICAgICAgICAqIGBgYAogICAgICAgICAqCiAgICAgICAgICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2dhcmRlby9hc2dhcmRlby1hdXRoLWpzLXNkay90cmVlL21hc3RlciNzZXRQS0NFQ29kZX0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL3NldFBLQ0VDb2RlKGUsbixyKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5zZXRQS0NFQ29kZShlLG4scil9KSl9Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgaWYgdGhlIHNpZ24tb3V0IGlzIHN1Y2Nlc3NmdWwgb3Igbm90LgogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtIHNpZ25PdXRSZWRpcmVjdFVybCAtIFRoZSBVUkwgdG8gd2hpY2ggdGhlIHVzZXIgaGFzIGJlZW4gcmVkaXJlY3RlZCB0byBhZnRlciBzaWduaW5nLW91dC4KICAgICAgICAgKgogICAgICAgICAqICoqVGhlIHNlcnZlciBhcHBlbmRzIHBhdGggcGFyYW1ldGVycyB0byB0aGUgYHNpZ25PdXRSZWRpcmVjdFVSTGAgYW5kIHRoZXNlIHBhdGggcGFyYW1ldGVycwogICAgICAgICAqICBhcmUgcmVxdWlyZWQgZm9yIHRoaXMgbWV0aG9kIHRvIGZ1bmN0aW9uLioqCiAgICAgICAgICoKICAgICAgICAgKiBAcmV0dXJucyAtIGB0cnVlYCBpZiBzdWNjZXNzZnVsLCBgZmFsc2VgIG90aGVyd2lzZS4KICAgICAgICAgKgogICAgICAgICAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vYXNnYXJkZW8vYXNnYXJkZW8tYXV0aC1qcy1zZGsvdHJlZS9tYXN0ZXIjaXNTaWduT3V0U3VjY2Vzc2Z1bH0KICAgICAgICAgKgogICAgICAgICAqIEBwcmVzZXJ2ZQogICAgICAgICAqL3N0YXRpYyBpc1NpZ25PdXRTdWNjZXNzZnVsKGUpe2NvbnN0IHQ9bmV3IFVSTChlKSxuPXQuc2VhcmNoUGFyYW1zLmdldCgic3RhdGUiKSxyPUJvb2xlYW4odC5zZWFyY2hQYXJhbXMuZ2V0KCJlcnJvciIpKTtyZXR1cm4hIW4mJiJzaWduX291dF9zdWNjZXNzIj09PW4mJiFyfQovKioKICAgICAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGlmIHRoZSBzaWduLW91dCBoYXMgZmFpbGVkIG9yIG5vdC4KICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSBzaWduT3V0UmVkaXJlY3RVcmwgLSBUaGUgVVJMIHRvIHdoaWNoIHRoZSB1c2VyIGhhcyBiZWVuIHJlZGlyZWN0ZWQgdG8gYWZ0ZXIgc2lnbmluZy1vdXQuCiAgICAgICAgICoKICAgICAgICAgKiAqKlRoZSBzZXJ2ZXIgYXBwZW5kcyBwYXRoIHBhcmFtZXRlcnMgdG8gdGhlIGBzaWduT3V0UmVkaXJlY3RVUkxgIGFuZCB0aGVzZSBwYXRoIHBhcmFtZXRlcnMKICAgICAgICAgKiAgYXJlIHJlcXVpcmVkIGZvciB0aGlzIG1ldGhvZCB0byBmdW5jdGlvbi4qKgogICAgICAgICAqCiAgICAgICAgICogQHJldHVybnMgLSBgdHJ1ZWAgaWYgc3VjY2Vzc2Z1bCwgYGZhbHNlYCBvdGhlcndpc2UuCiAgICAgICAgICoKICAgICAgICAgKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2FzZ2FyZGVvL2FzZ2FyZGVvLWF1dGgtanMtc2RrL3RyZWUvbWFzdGVyI2RpZFNpZ25PdXRGYWlsfQogICAgICAgICAqCiAgICAgICAgICogQHByZXNlcnZlCiAgICAgICAgICovc3RhdGljIGRpZFNpZ25PdXRGYWlsKGUpe2NvbnN0IHQ9bmV3IFVSTChlKSxuPXQuc2VhcmNoUGFyYW1zLmdldCgic3RhdGUiKSxyPUJvb2xlYW4odC5zZWFyY2hQYXJhbXMuZ2V0KCJlcnJvciIpKTtyZXR1cm4hIW4mJiJzaWduX291dF9zdWNjZXNzIj09PW4mJnJ9Ci8qKgogICAgICAgICAqIFRoaXMgbWV0aG9kIHVwZGF0ZXMgdGhlIGNvbmZpZ3VyYXRpb24gdGhhdCB3YXMgcGFzc2VkIGludG8gdGhlIGNvbnN0cnVjdG9yIHdoZW4gaW5zdGFudGlhdGluZyB0aGlzIGNsYXNzLgogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtIGNvbmZpZyAtIEEgY29uZmlnIG9iamVjdCB0byB1cGRhdGUgdGhlIFNESyBjb25maWd1cmF0aW9ucyB3aXRoLgogICAgICAgICAqCiAgICAgICAgICogQGV4YW1wbGUKICAgICAgICAgKiBgYGAKICAgICAgICAgKiBjb25zdCBjb25maWcgPSB7CiAgICAgICAgICogICAgIHNpZ25JblJlZGlyZWN0VVJMOiAiaHR0cDovL2xvY2FsaG9zdDozMDAwL3NpZ24taW4iLAogICAgICAgICAqICAgICBjbGllbnRJRDogImNsaWVudCBJRCIsCiAgICAgICAgICogICAgIGJhc2VVcmw6ICJodHRwczovL2xvY2FsaG9zdDo5NDQzIgogICAgICAgICAqIH0KICAgICAgICAgKgogICAgICAgICAqIGF3YWl0IGF1dGgudXBkYXRlQ29uZmlnKGNvbmZpZyk7CiAgICAgICAgICogYGBgCiAgICAgICAgICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2dhcmRlby9hc2dhcmRlby1hdXRoLWpzLXNkay90cmVlL21hc3RlciN1cGRhdGVDb25maWd9CiAgICAgICAgICoKICAgICAgICAgKiBAcHJlc2VydmUKICAgICAgICAgKi91cGRhdGVDb25maWcoZSl7cmV0dXJuIHQodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt5aWVsZCB0aGlzLl9hdXRoZW50aWNhdGlvbkNvcmUudXBkYXRlQ29uZmlnKGUpfSkpfXN0YXRpYyBjbGVhclVzZXJTZXNzaW9uRGF0YShlKXtyZXR1cm4gdCh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ29yZS5jbGVhclVzZXJTZXNzaW9uRGF0YShlKX0pKX19Y29uc3QgeT0iaW5pdCI7dmFyIHY7IWZ1bmN0aW9uKGUpe2UuU2lnbkluPSJzaWduLWluIixlLlNpZ25PdXQ9InNpZ24tb3V0IixlLkluaXRpYWxpemU9ImluaXRpYWxpemUiLGUuSHR0cFJlcXVlc3RTdGFydD0iaHR0cC1yZXF1ZXN0LXN0YXJ0IixlLkh0dHBSZXF1ZXN0RmluaXNoPSJodHRwLXJlcXVlc3QtZmluaXNoIixlLkh0dHBSZXF1ZXN0RXJyb3I9Imh0dHAtcmVxdWVzdC1lcnJvciIsZS5IdHRwUmVxdWVzdFN1Y2Nlc3M9Imh0dHAtcmVxdWVzdC1zdWNjZXNzIixlLlJldm9rZUFjY2Vzc1Rva2VuPSJyZXZva2UtYWNjZXNzLXRva2VuIixlLkN1c3RvbUdyYW50PSJjdXN0b20tZ3JhbnQiLGUuU2lnbk91dEZhaWxlZD0ic2lnbi1vdXQtZmFpbGVkIn0odnx8KHY9e30pKTtjb25zdCBtPSJwcm9tcHROb25lUmVxdWVzdFNlbnQiLHc9ImVycm9yIixiPSJlcnJvcl9kZXNjcmlwdGlvbiIsXz0iY3VzdG9tX2dyYW50X2NvbmZpZyIsUz0iQWNjZXNzIHRva2VuIGlzIGludmFsaWQiO3ZhciBFOyFmdW5jdGlvbihlKXtlLkxvY2FsU3RvcmFnZT0ibG9jYWxTdG9yYWdlIixlLlNlc3Npb25TdG9yYWdlPSJzZXNzaW9uU3RvcmFnZSIsZS5XZWJXb3JrZXI9IndlYldvcmtlciIsZS5Ccm93c2VyTWVtb3J5PSJicm93c2VyTWVtb3J5In0oRXx8KEU9e30pKTtjbGFzcyBSe2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKGUpe3JldHVybntibG9iOihudWxsPT1lP3ZvaWQgMDplLmRhdGEpaW5zdGFuY2VvZiBCbG9iP251bGw9PWU/dm9pZCAwOmUuZGF0YTpudWxsLGRhdGE6SlNPTi5zdHJpbmdpZnkobnVsbCE9ZT9lOiIiKSxzdWNjZXNzOiEwfX1zdGF0aWMgZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKXtyZXR1cm4obnVsbD09ZT92b2lkIDA6ZS50b0pTT04pJiZkZWxldGUgZS50b0pTT04se2Vycm9yOkpTT04uc3RyaW5naWZ5KG51bGwhPWU/ZToiIiksc3VjY2VzczohMX19fWNsYXNzIFR7Y29uc3RydWN0b3IoKXt9c3RhdGljIHJlbW92ZUF1dGhvcml6YXRpb25Db2RlKCl7Y29uc3QgZT1sb2NhdGlvbi5ocmVmO2hpc3RvcnkucHVzaFN0YXRlKHt9LGRvY3VtZW50LnRpdGxlLGUucmVwbGFjZSgvXD9jb2RlPS4qJC8sIiIpKX1zdGF0aWMgZ2V0UEtDRShlKXt2YXIgdDtyZXR1cm4gbnVsbCE9PSh0PXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZSkpJiZ2b2lkIDAhPT10P3Q6IiJ9c3RhdGljIHNldFBLQ0UoZSx0KXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGUsdCl9c3RhdGljIHNldFNpZ25PdXRVUkwoZSx0LG4pe3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oYCR7c30taW5zdGFuY2VfJHtufS0ke3R9YCxlKX1zdGF0aWMgZ2V0U2lnbk91dFVSTChlLHQpe3ZhciBuO3JldHVybiBudWxsIT09KG49c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShgJHtzfS1pbnN0YW5jZV8ke3R9LSR7ZX1gKSkmJnZvaWQgMCE9PW4/bjoiIn1zdGF0aWMgcmVtb3ZlUEtDRShlKXtzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGUpfXN0YXRpYyBjYW5Db250aW51ZVNpZ25JbihlLHQpe3JldHVybiEoZSYmIVQuaGFzRXJyb3JJblVSTCgpJiYhVC5oYXNBdXRoU2VhcmNoUGFyYW1zSW5VUkwoKSYmIXQpfXN0YXRpYyBpc0luaXRpYWxpemVkU2lsZW50U2lnbkluKCl7cmV0dXJuIFQuaXNTaWxlbnRTdGF0ZVByZXNlbnRJblVSTCgpfXN0YXRpYyB3YXNTaWduSW5DYWxsZWQoKXtyZXR1cm4hKCFULmhhc0Vycm9ySW5VUkwoKSYmIVQuaGFzQXV0aFNlYXJjaFBhcmFtc0luVVJMKCl8fHRoaXMuaXNTaWxlbnRTdGF0ZVByZXNlbnRJblVSTCgpKX1zdGF0aWMgd2FzU2lsZW50U2lnbkluQ2FsbGVkKCl7Y29uc3QgZT1zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJpbml0aWFsaXplZC1zaWxlbnQtc2lnbi1pbiIpLHQ9ZT9KU09OLnBhcnNlKGUpOm51bGw7cmV0dXJuIEJvb2xlYW4odCl9c3RhdGljIGlzU2lnbk91dFN1Y2Nlc3NmdWwoKXtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2lmKGcuaXNTaWduT3V0U3VjY2Vzc2Z1bCh3aW5kb3cubG9jYXRpb24uaHJlZikpe2NvbnN0IGU9d2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoIj8iKVswXTtyZXR1cm4gaGlzdG9yeS5wdXNoU3RhdGUoe30sZG9jdW1lbnQudGl0bGUsZSkseWllbGQgZy5jbGVhclVzZXJTZXNzaW9uRGF0YSgpLCEwfXJldHVybiExfSkpfXN0YXRpYyBkaWRTaWduT3V0RmFpbCgpe2lmKGcuZGlkU2lnbk91dEZhaWwod2luZG93LmxvY2F0aW9uLmhyZWYpKXtjb25zdCBlPW5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpLHQ9ZS5zZWFyY2hQYXJhbXMuZ2V0KHcpLG49ZS5zZWFyY2hQYXJhbXMuZ2V0KGIpLHI9d2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoIj8iKVswXTtyZXR1cm4gaGlzdG9yeS5wdXNoU3RhdGUoe30sZG9jdW1lbnQudGl0bGUscikse2Rlc2NyaXB0aW9uOm51bGwhPW4/bjoiIixlcnJvcjpudWxsIT10P3Q6IiJ9fXJldHVybiExfXN0YXRpYyBpc1NpbGVudFN0YXRlUHJlc2VudEluVVJMKCl7dmFyIGU7Y29uc3QgdD1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5zZWFyY2hQYXJhbXMuZ2V0KCJzdGF0ZSIpO3JldHVybiBudWxsIT09KGU9bnVsbD09dD92b2lkIDA6dC5pbmNsdWRlcygic2lnbi1pbi1zaWxlbnRseSIpKSYmdm9pZCAwIT09ZSYmZX1zdGF0aWMgaGFzQXV0aFNlYXJjaFBhcmFtc0luVVJMKGU9d2luZG93LmxvY2F0aW9uLnNlYXJjaCl7cmV0dXJuL1s/Jl1jb2RlPVteJl0rLy50ZXN0KGUpfXN0YXRpYyBoYXNFcnJvckluVVJMKGU9d2luZG93LmxvY2F0aW9uLmhyZWYpe2NvbnN0IHQ9bmV3IFVSTChlKTtyZXR1cm4hIXQuc2VhcmNoUGFyYW1zLmdldCh3KSYmInNpZ25fb3V0X3N1Y2Nlc3MiIT09dC5zZWFyY2hQYXJhbXMuZ2V0KCJzdGF0ZSIpfXN0YXRpYyBjYW5TZW5kUHJvbXB0Tm9uZVJlcXVlc3QoKXtjb25zdCBlPXNlc3Npb25TdG9yYWdlLmdldEl0ZW0obSk7cmV0dXJuIShlP0pTT04ucGFyc2UoZSk6bnVsbCl9c3RhdGljIHNldFByb21wdE5vbmVSZXF1ZXN0U2VudChlKXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKG0sSlNPTi5zdHJpbmdpZnkoZSkpfXN0YXRpYyB3YWl0VGlsbFBhZ2VSZWRpcmVjdCh0KXtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IGU9bnVsbCE9dD90OjNlMzt5aWVsZCBuZXcgUHJvbWlzZSgodD0+c2V0VGltZW91dCh0LDFlMyplKSkpfSkpfX1ULnVudGlsPShlLHQ9NTAwKT0+e2NvbnN0IG49cj0+ZSgpP3IoKTpzZXRUaW1lb3V0KCgoKT0+bihyKSksdCk7cmV0dXJuIG5ldyBQcm9taXNlKG4pfTtjbGFzcyBre2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQ9ZSx0aGlzLl9kYXRhTGF5ZXI9dGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQuZ2V0RGF0YUxheWVyKCksdGhpcy5fc3BhSGVscGVyPXQsdGhpcy5faW5zdGFuY2VJRD10aGlzLl9hdXRoZW50aWNhdGlvbkNsaWVudC5nZXRJbnN0YW5jZUlEKCksdGhpcy5faXNUb2tlblJlZnJlc2hpbmc9ITF9ZW5hYmxlSHR0cEhhbmRsZXIoZSl7KG51bGw9PWU/dm9pZCAwOmUuZW5hYmxlSGFuZGxlcikmJmUuZW5hYmxlSGFuZGxlcigpfWRpc2FibGVIdHRwSGFuZGxlcihlKXsobnVsbD09ZT92b2lkIDA6ZS5kaXNhYmxlSGFuZGxlcikmJmUuZGlzYWJsZUhhbmRsZXIoKX1pbml0aWFsaXplU2Vzc2lvbk1hbmdlcihlLHQsbixyLGkpe3ZhciBvLHMsYTtpLmluaXRpYWxpemUoZS5jbGllbnRJRCxudWxsIT09KG89dC5jaGVja1Nlc3Npb25JZnJhbWUpJiZ2b2lkIDAhPT1vP286IiIsbixudWxsIT09KHM9ZS5jaGVja1Nlc3Npb25JbnRlcnZhbCkmJnZvaWQgMCE9PXM/czozLG51bGwhPT0oYT1lLnNlc3Npb25SZWZyZXNoSW50ZXJ2YWwpJiZ2b2lkIDAhPT1hP2E6MzAwLGUuc2lnbkluUmVkaXJlY3RVUkwscil9cmVxdWVzdEN1c3RvbUdyYW50KHQsbil7dmFyIHIsaSxvO3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7bGV0IHM9ITAsYT0hMTtpZihudWxsPT10P3ZvaWQgMDp0LnRva2VuRW5kcG9pbnQpe3M9ITE7Zm9yKGNvbnN0IGUgb2ZbLi4ubnVsbCE9PShpPW51bGw9PT0ocj15aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0Q29uZmlnRGF0YSgpKXx8dm9pZCAwPT09cj92b2lkIDA6ci5yZXNvdXJjZVNlcnZlclVSTHMpJiZ2b2lkIDAhPT1pP2k6W10sdC5iYXNlVXJsXSlpZihlJiYobnVsbD09PShvPXQudG9rZW5FbmRwb2ludCl8fHZvaWQgMD09PW8/dm9pZCAwOm8uc3RhcnRzV2l0aChlKSkpe2E9ITA7YnJlYWt9fXJldHVybiB0LnNob3VsZFJlcGxheUFmdGVyUmVmcmVzaCYmdGhpcy5fZGF0YUxheWVyLnNldFRlbXBvcmFyeURhdGFQYXJhbWV0ZXIoXyxKU09OLnN0cmluZ2lmeSh0KSksc3x8YT90aGlzLl9hdXRoZW50aWNhdGlvbkNsaWVudC5yZXF1ZXN0Q3VzdG9tR3JhbnQodCkudGhlbigocj0+ZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiBuJiYiZnVuY3Rpb24iPT10eXBlb2YgbiYmbih0KSx0LnJldHVybnNTZXNzaW9uPyh0aGlzLl9zcGFIZWxwZXIucmVmcmVzaEFjY2Vzc1Rva2VuQXV0b21hdGljYWxseSh0aGlzKSx0aGlzLl9hdXRoZW50aWNhdGlvbkNsaWVudC5nZXRCYXNpY1VzZXJJbmZvKCkpOnJ9KSkpKS5jYXRjaCgoZT0+UHJvbWlzZS5yZWplY3QoZSkpKTpQcm9taXNlLnJlamVjdChuZXcgYygiU1BBLU1BSU5fVEhSRUFEX0NMSUVOVC1SQ0ctSVYwMSIsIlJlcXVlc3QgdG8gdGhlIHByb3ZpZGVkIGVuZHBvaW50IGlzIHByb2hpYml0ZWQuIiwiUmVxdWVzdHMgY2FuIG9ubHkgYmUgc2VudCB0byByZXNvdXJjZSBzZXJ2ZXJzIHNwZWNpZmllZCBieSB0aGUgYHJlc291cmNlU2VydmVyVVJMc2AgYXR0cmlidXRlIHdoaWxlIGluaXRpYWxpemluZyB0aGUgU0RLLiBUaGUgc3BlY2lmaWVkIHRva2VuIGVuZHBvaW50IGluIHRoaXMgcmVxdWVzdCBjYW5ub3QgYmUgZm91bmQgYW1vbmcgdGhlIGByZXNvdXJjZVNlcnZlclVSTHNgIikpfSkpfWdldEN1c3RvbUdyYW50Q29uZmlnRGF0YSgpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgZT15aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0VGVtcG9yYXJ5RGF0YVBhcmFtZXRlcihfKTtyZXR1cm4gZT9KU09OLnBhcnNlKGUpOm51bGx9KSl9cmVmcmVzaEFjY2Vzc1Rva2VuKHQpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7dHJ5e3lpZWxkIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ2xpZW50LnJlZnJlc2hBY2Nlc3NUb2tlbigpO2NvbnN0IGU9eWllbGQgdGhpcy5nZXRDdXN0b21HcmFudENvbmZpZ0RhdGEoKTtyZXR1cm4gZSYmKHlpZWxkIHRoaXMucmVxdWVzdEN1c3RvbUdyYW50KGUsdCkpLHRoaXMuX3NwYUhlbHBlci5yZWZyZXNoQWNjZXNzVG9rZW5BdXRvbWF0aWNhbGx5KHRoaXMpLHRoaXMuX2F1dGhlbnRpY2F0aW9uQ2xpZW50LmdldEJhc2ljVXNlckluZm8oKX1jYXRjaChlKXtjb25zdCB0PXt0eXBlOiJyZWZyZXNoLWFjY2Vzcy10b2tlbi1lcnJvciJ9O3JldHVybiB3aW5kb3cucG9zdE1lc3NhZ2UodCksUHJvbWlzZS5yZWplY3QoZSl9fSkpfXJldHJ5RmFpbGVkUmVxdWVzdHModCl7cmV0dXJuIGUodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCBlPXQuaHR0cENsaWVudCxuPXQucmVxdWVzdENvbmZpZyxyPXQuaXNIdHRwSGFuZGxlckVuYWJsZWQsaT10Lmh0dHBFcnJvckNhbGxiYWNrLG89dC5odHRwRmluaXNoQ2FsbGJhY2s7eWllbGQgVC51bnRpbCgoKCk9PiF0aGlzLl9pc1Rva2VuUmVmcmVzaGluZykpO3RyeXtjb25zdCB0PXlpZWxkIGUucmVxdWVzdChuKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHQpfWNhdGNoKGUpe3JldHVybiByJiYoImZ1bmN0aW9uIj09dHlwZW9mIGkmJih5aWVsZCBpKGUpKSwiZnVuY3Rpb24iPT10eXBlb2YgbyYmbygpKSxQcm9taXNlLnJlamVjdChlKX19KSl9aHR0cFJlcXVlc3QodCxuLHIsaSxvLHMpe3ZhciBhLHU7cmV0dXJuIGUodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtsZXQgbD0hMTtjb25zdCBkPXlpZWxkIHRoaXMuX2RhdGFMYXllci5nZXRDb25maWdEYXRhKCk7Zm9yKGNvbnN0IGUgb2ZbLi4ubnVsbCE9PShhPXlpZWxkIG51bGw9PWQ/dm9pZCAwOmQucmVzb3VyY2VTZXJ2ZXJVUkxzKSYmdm9pZCAwIT09YT9hOltdLGQuYmFzZVVybF0paWYoZSYmKG51bGw9PT0odT1udWxsPT1uP3ZvaWQgMDpuLnVybCl8fHZvaWQgMD09PXU/dm9pZCAwOnUuc3RhcnRzV2l0aChlKSkpe2w9ITA7YnJlYWt9cmV0dXJuIGw/dC5yZXF1ZXN0KG4pLnRoZW4oKGU9PlByb21pc2UucmVzb2x2ZShlKSkpLmNhdGNoKChhPT5lKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7dmFyIGUsdSxsO2lmKDQwMT09PShudWxsPT09KGU9bnVsbD09YT92b2lkIDA6YS5yZXNwb25zZSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuc3RhdHVzKXx8IShudWxsPT1hP3ZvaWQgMDphLnJlc3BvbnNlKSl7aWYodGhpcy5faXNUb2tlblJlZnJlc2hpbmcpcmV0dXJuIHRoaXMucmV0cnlGYWlsZWRSZXF1ZXN0cyh7ZW5hYmxlUmV0cmlldmluZ1NpZ25PdXRVUkxGcm9tU2Vzc2lvbjpzLGh0dHBDbGllbnQ6dCxodHRwRXJyb3JDYWxsYmFjazppLGh0dHBGaW5pc2hDYWxsYmFjazpvLGlzSHR0cEhhbmRsZXJFbmFibGVkOnIscmVxdWVzdENvbmZpZzpufSk7bGV0IGU7dGhpcy5faXNUb2tlblJlZnJlc2hpbmc9ITA7dHJ5e2U9eWllbGQgdGhpcy5yZWZyZXNoQWNjZXNzVG9rZW4ocyksdGhpcy5faXNUb2tlblJlZnJlc2hpbmc9ITF9Y2F0Y2goZSl7dGhyb3cgdGhpcy5faXNUb2tlblJlZnJlc2hpbmc9ITEsciYmKCJmdW5jdGlvbiI9PXR5cGVvZiBpJiYoeWllbGQgaShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYSkse2NvZGU6U30pKSksImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8oKSksbmV3IGMoIlNQQS1BVVRIX0hFTFBFUi1IUi1TRTAxIixudWxsIT09KHU9bnVsbD09ZT92b2lkIDA6ZS5uYW1lKSYmdm9pZCAwIT09dT91OiJSZWZyZXNoIHRva2VuIHJlcXVlc3QgZmFpbGVkLiIsbnVsbCE9PShsPW51bGw9PWU/dm9pZCAwOmUubWVzc2FnZSkmJnZvaWQgMCE9PWw/bDoiQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgdHJ5aW5nIHRvIHJlZnJlc2ggdGhlIGFjY2VzcyB0b2tlbiBmb2xsb3dpbmcgYSA0MDEgcmVzcG9uc2UgZnJvbSB0aGUgc2VydmVyLiIpfWlmKGUpdHJ5e2NvbnN0IGU9eWllbGQgdC5yZXF1ZXN0KG4pO3JldHVybiBQcm9taXNlLnJlc29sdmUoZSl9Y2F0Y2goZSl7cmV0dXJuIHImJigiZnVuY3Rpb24iPT10eXBlb2YgaSYmKHlpZWxkIGkoZSkpLCJmdW5jdGlvbiI9PXR5cGVvZiBvJiZvKCkpLFByb21pc2UucmVqZWN0KGUpfX1yZXR1cm4gciYmKCJmdW5jdGlvbiI9PXR5cGVvZiBpJiYoeWllbGQgaShhKSksImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8oKSksUHJvbWlzZS5yZWplY3QoYSl9KSkpKTpQcm9taXNlLnJlamVjdChuZXcgYygiU1BBLUFVVEhfSEVMUEVSLUhSLUlWMDIiLCJSZXF1ZXN0IHRvIHRoZSBwcm92aWRlZCBlbmRwb2ludCBpcyBwcm9oaWJpdGVkLiIsIlJlcXVlc3RzIGNhbiBvbmx5IGJlIHNlbnQgdG8gcmVzb3VyY2Ugc2VydmVycyBzcGVjaWZpZWQgYnkgdGhlIGByZXNvdXJjZVNlcnZlclVSTHNgIGF0dHJpYnV0ZSB3aGlsZSBpbml0aWFsaXppbmcgdGhlIFNESy4gVGhlIHNwZWNpZmllZCBlbmRwb2ludCBpbiB0aGlzIHJlcXVlc3QgY2Fubm90IGJlIGZvdW5kIGFtb25nIHRoZSBgcmVzb3VyY2VTZXJ2ZXJVUkxzYCIpKX0pKX1odHRwUmVxdWVzdEFsbCh0LG4scixpLG8pe3ZhciBzLGEsdTtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2xldCBsPSEwO2NvbnN0IGQ9eWllbGQgdGhpcy5fZGF0YUxheWVyLmdldENvbmZpZ0RhdGEoKTtmb3IoY29uc3QgZSBvZiB0KXtsZXQgdD0hMTtmb3IoY29uc3QgbiBvZlsuLi5udWxsIT09KGE9bnVsbD09PShzPXlpZWxkIGQpfHx2b2lkIDA9PT1zP3ZvaWQgMDpzLnJlc291cmNlU2VydmVyVVJMcykmJnZvaWQgMCE9PWE/YTpbXSxkLmJhc2VVcmxdKWlmKG4mJihudWxsPT09KHU9ZS51cmwpfHx2b2lkIDA9PT11P3ZvaWQgMDp1LnN0YXJ0c1dpdGgobikpKXt0PSEwO2JyZWFrfWlmKCF0KXtsPSExO2JyZWFrfX1jb25zdCBoPVtdO2lmKGwpcmV0dXJuIHQuZm9yRWFjaCgoZT0+e2gucHVzaChuLnJlcXVlc3QoZSkpfSkpLChudWxsPT1uP3ZvaWQgMDpuLmFsbCkmJm4uYWxsKGgpLnRoZW4oKGU9PlByb21pc2UucmVzb2x2ZShlKSkpLmNhdGNoKCh0PT5lKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7dmFyIHMsYSx1O2lmKDQwMT09PShudWxsPT09KHM9bnVsbD09dD92b2lkIDA6dC5yZXNwb25zZSl8fHZvaWQgMD09PXM/dm9pZCAwOnMuc3RhdHVzKXx8IShudWxsPT10P3ZvaWQgMDp0LnJlc3BvbnNlKSl7bGV0IHM7dHJ5e3M9eWllbGQgdGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQucmVmcmVzaEFjY2Vzc1Rva2VuKCl9Y2F0Y2goZSl7dGhyb3cgciYmKCJmdW5jdGlvbiI9PXR5cGVvZiBpJiYoeWllbGQgaShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdCkse2NvZGU6U30pKSksImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8oKSksbmV3IGMoIlNQQS1BVVRIX0hFTFBFUi1IUkEtU0UwMSIsbnVsbCE9PShhPW51bGw9PWU/dm9pZCAwOmUubmFtZSkmJnZvaWQgMCE9PWE/YToiUmVmcmVzaCB0b2tlbiByZXF1ZXN0IGZhaWxlZC4iLG51bGwhPT0odT1udWxsPT1lP3ZvaWQgMDplLm1lc3NhZ2UpJiZ2b2lkIDAhPT11P3U6IkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHRyeWluZyB0byByZWZyZXNoIHRoZSBhY2Nlc3MgdG9rZW4gZm9sbG93aW5nIGEgNDAxIHJlc3BvbnNlIGZyb20gdGhlIHNlcnZlci4iKX1pZihzKXJldHVybiBuLmFsbCYmbi5hbGwoaCkudGhlbigoZT0+UHJvbWlzZS5yZXNvbHZlKGUpKSkuY2F0Y2goKHQ9PmUodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gciYmKCJmdW5jdGlvbiI9PXR5cGVvZiBpJiYoeWllbGQgaSh0KSksImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8oKSksUHJvbWlzZS5yZWplY3QodCl9KSkpKX1yZXR1cm4gciYmKCJmdW5jdGlvbiI9PXR5cGVvZiBpJiYoeWllbGQgaSh0KSksImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8oKSksUHJvbWlzZS5yZWplY3QodCl9KSkpKTt0aHJvdyBuZXcgYygiU1BBLUFVVEhfSEVMUEVSLUhSQS1JVjAyIiwiUmVxdWVzdCB0byB0aGUgcHJvdmlkZWQgZW5kcG9pbnQgaXMgcHJvaGliaXRlZC4iLCJSZXF1ZXN0cyBjYW4gb25seSBiZSBzZW50IHRvIHJlc291cmNlIHNlcnZlcnMgc3BlY2lmaWVkIGJ5IHRoZSBgcmVzb3VyY2VTZXJ2ZXJVUkxzYCBhdHRyaWJ1dGUgd2hpbGUgaW5pdGlhbGl6aW5nIHRoZSBTREsuIFRoZSBzcGVjaWZpZWQgZW5kcG9pbnQgaW4gdGhpcyByZXF1ZXN0IGNhbm5vdCBiZSBmb3VuZCBhbW9uZyB0aGUgYHJlc291cmNlU2VydmVyVVJMc2AiKX0pKX1yZXF1ZXN0QWNjZXNzVG9rZW4odCxuLHIsaSxvLHMpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgYT15aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0Q29uZmlnRGF0YSgpO2lmKGEuc3RvcmFnZT09PUUuQnJvd3Nlck1lbW9yeSYmYS5lbmFibGVQS0NFJiZuKXtjb25zdCBlPVQuZ2V0UEtDRSh1LmV4dHJhY3RQS0NFS2V5RnJvbVN0YXRlUGFyYW0obikpO3lpZWxkIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ2xpZW50LnNldFBLQ0VDb2RlKHUuZXh0cmFjdFBLQ0VLZXlGcm9tU3RhdGVQYXJhbShuKSxlKX1lbHNlIGEuc3RvcmFnZT09PUUuV2ViV29ya2VyJiZpJiYoeWllbGQgdGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQuc2V0UEtDRUNvZGUoaSxudWxsIT1vP286IiIpKTtyZXR1cm4gdD90aGlzLl9hdXRoZW50aWNhdGlvbkNsaWVudC5yZXF1ZXN0QWNjZXNzVG9rZW4odCxudWxsIT1uP246IiIsbnVsbCE9bz9vOiIiLHZvaWQgMCxzKS50aGVuKCgoKT0+ZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiBhLnN0b3JhZ2UhPT1FLldlYldvcmtlcj8oVC5zZXRTaWduT3V0VVJMKHlpZWxkIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ2xpZW50LmdldFNpZ25PdXRVUkwoKSxhLmNsaWVudElELHRoaXMuX2luc3RhbmNlSUQpLHRoaXMuX3NwYUhlbHBlciYmKHRoaXMuX3NwYUhlbHBlci5jbGVhclJlZnJlc2hUb2tlblRpbWVvdXQoKSx0aGlzLl9zcGFIZWxwZXIucmVmcmVzaEFjY2Vzc1Rva2VuQXV0b21hdGljYWxseSh0aGlzKSksciYmImZ1bmN0aW9uIj09dHlwZW9mIHImJmEuZW5hYmxlT0lEQ1Nlc3Npb25NYW5hZ2VtZW50JiZyKCkpOnRoaXMuX3NwYUhlbHBlciYmdGhpcy5fc3BhSGVscGVyLnJlZnJlc2hBY2Nlc3NUb2tlbkF1dG9tYXRpY2FsbHkodGhpcyksdGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQuZ2V0QmFzaWNVc2VySW5mbygpfSkpKSkuY2F0Y2goKGU9PlByb21pc2UucmVqZWN0KGUpKSk6UHJvbWlzZS5yZWplY3QobmV3IGMoIlNQQS1BVVRIX0hFTFBFUi1SQVQxLU5GMDEiLCJObyBhdXRob3JpemF0aW9uIGNvZGUuIiwiTm8gYXV0aG9yaXphdGlvbiBjb2RlIHdhcyBmb3VuZC4iKSl9KSl9dHJ5U2lnbkluU2lsZW50bHkodCxuLHIsaSxvKXt2YXIgcztyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2lmKFQuaXNJbml0aWFsaXplZFNpbGVudFNpZ25JbigpKXJldHVybiB5aWVsZCByLnJlY2VpdmVQcm9tcHROb25lUmVzcG9uc2UoKSxQcm9taXNlLnJlc29sdmUoe2FsbG93ZWRTY29wZXM6IiIsZGlzcGxheU5hbWU6IiIsZW1haWw6IiIsc2Vzc2lvblN0YXRlOiIiLHN1YjoiIix0ZW5hbnREb21haW46IiIsdXNlcm5hbWU6IiJ9KTtjb25zdCBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJycElGcmFtZSIpLGM9bnVsbD09PShzPW51bGw9PWE/dm9pZCAwOmEuY29udGVudERvY3VtZW50KXx8dm9pZCAwPT09cz92b2lkIDA6cy5nZXRFbGVtZW50QnlJZCgicHJvbXB0Tm9uZUlGcmFtZSIpO3RyeXtjb25zdCBlPXlpZWxkIHQoaSk7Yy5zcmM9ZX1jYXRjaChlKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoZSl9cmV0dXJuIG5ldyBQcm9taXNlKCgodCxyKT0+e2NvbnN0IGk9c2V0VGltZW91dCgoKCk9Pnt0KCExKX0pLDFlNCkscz1hPT5lKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7dmFyIGUsYyx1LGw7Y29uc3QgZD1hLmRhdGE7ImNoZWNrX3Nlc3Npb25fc2lnbmVkX291dCI9PShudWxsPT1kP3ZvaWQgMDpkLnR5cGUpJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHMpLGNsZWFyVGltZW91dChpKSx0KCExKSksImNoZWNrX3Nlc3Npb25fc2lnbmVkX2luIj09KG51bGw9PWQ/dm9pZCAwOmQudHlwZSkmJihudWxsPT09KGU9bnVsbD09ZD92b2lkIDA6ZC5kYXRhKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jb2RlKSYmbihudWxsPT09KGM9bnVsbD09ZD92b2lkIDA6ZC5kYXRhKXx8dm9pZCAwPT09Yz92b2lkIDA6Yy5jb2RlLG51bGw9PT0odT1udWxsPT1kP3ZvaWQgMDpkLmRhdGEpfHx2b2lkIDA9PT11P3ZvaWQgMDp1LnNlc3Npb25TdGF0ZSxudWxsPT09KGw9bnVsbD09ZD92b2lkIDA6ZC5kYXRhKXx8dm9pZCAwPT09bD92b2lkIDA6bC5zdGF0ZSxvKS50aGVuKChlPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHMpLHQoZSl9KSkuY2F0Y2goKGU9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIscykscihlKX0pKS5maW5hbGx5KCgoKT0+e2NsZWFyVGltZW91dChpKX0pKX0pKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIscyl9KSl9KSl9aGFuZGxlU2lnbkluKHQsbixyKXtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IGU9eWllbGQgdGhpcy5fZGF0YUxheWVyLmdldENvbmZpZ0RhdGEoKTtpZih5aWVsZCB0KCkpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7YWxsb3dlZFNjb3BlczoiIixkaXNwbGF5TmFtZToiIixlbWFpbDoiIixzZXNzaW9uU3RhdGU6IiIsc3ViOiIiLHRlbmFudERvbWFpbjoiIix1c2VybmFtZToiIn0pO2lmKGUuc3RvcmFnZSE9PUUuV2ViV29ya2VyJiYoeWllbGQgdGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQuaXNBdXRoZW50aWNhdGVkKCkpKXJldHVybiB0aGlzLl9zcGFIZWxwZXIuY2xlYXJSZWZyZXNoVG9rZW5UaW1lb3V0KCksdGhpcy5fc3BhSGVscGVyLnJlZnJlc2hBY2Nlc3NUb2tlbkF1dG9tYXRpY2FsbHkodGhpcyksZS5lbmFibGVPSURDU2Vzc2lvbk1hbmFnZW1lbnQmJm4oKSxQcm9taXNlLnJlc29sdmUoeWllbGQgdGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQuZ2V0QmFzaWNVc2VySW5mbygpKTtjb25zdCBpPW5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpLnNlYXJjaFBhcmFtcy5nZXQodyksbz1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5zZWFyY2hQYXJhbXMuZ2V0KGIpO2lmKGkpe2NvbnN0IGU9bmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7dGhyb3cgZS5zZWFyY2hQYXJhbXMuZGVsZXRlKHcpLGUuc2VhcmNoUGFyYW1zLmRlbGV0ZShiKSxoaXN0b3J5LnB1c2hTdGF0ZShudWxsLGRvY3VtZW50LnRpdGxlLGUudG9TdHJpbmcoKSksbmV3IGMoIlNQQS1BVVRIX0hFTFBFUi1TSS1TRTAxIixpLG51bGwhPW8/bzoiIil9aWYoZS5zdG9yYWdlPT09RS5XZWJXb3JrZXImJnIpe2NvbnN0IGU9eWllbGQgcigpO2lmKGUpcmV0dXJuIGV9fSkpfWF0dGFjaFRva2VuVG9SZXF1ZXN0Q29uZmlnKHQpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7Y29uc3QgZT1PYmplY3QuYXNzaWduKHthdHRhY2hUb2tlbjohMH0sdCk7ZS5hdHRhY2hUb2tlbiYmKGUuc2hvdWxkQXR0YWNoSURQQWNjZXNzVG9rZW4/dC5oZWFkZXJzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0LmhlYWRlcnMpLHtBdXRob3JpemF0aW9uOmBCZWFyZXIgJHt5aWVsZCB0aGlzLmdldElEUEFjY2Vzc1Rva2VuKCl9YH0pOnQuaGVhZGVycz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdC5oZWFkZXJzKSx7QXV0aG9yaXphdGlvbjpgQmVhcmVyICR7eWllbGQgdGhpcy5nZXRBY2Nlc3NUb2tlbigpfWB9KSl9KSl9Z2V0QmFzaWNVc2VySW5mbygpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ2xpZW50LmdldEJhc2ljVXNlckluZm8oKX0pKX1nZXREZWNvZGVkSURUb2tlbigpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ2xpZW50LmdldERlY29kZWRJRFRva2VuKCl9KSl9Z2V0RGVjb2RlZElEUElEVG9rZW4oKXtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLl9hdXRoZW50aWNhdGlvbkNsaWVudC5nZXREZWNvZGVkSURUb2tlbigpfSkpfWdldENyeXB0b0hlbHBlcigpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uQ2xpZW50LmdldENyeXB0b0hlbHBlcigpfSkpfWdldElEVG9rZW4oKXtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLl9hdXRoZW50aWNhdGlvbkNsaWVudC5nZXRJRFRva2VuKCl9KSl9Z2V0T0lEQ1NlcnZpY2VFbmRwb2ludHMoKXtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLl9hdXRoZW50aWNhdGlvbkNsaWVudC5nZXRPSURDU2VydmljZUVuZHBvaW50cygpfSkpfWdldEFjY2Vzc1Rva2VuKCl7cmV0dXJuIGUodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQuZ2V0QWNjZXNzVG9rZW4oKX0pKX1nZXRJRFBBY2Nlc3NUb2tlbigpe3ZhciB0O3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIG51bGw9PT0odD15aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0U2Vzc2lvbkRhdGEoKSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuYWNjZXNzX3Rva2VufSkpfWdldERhdGFMYXllcigpe3JldHVybiB0aGlzLl9kYXRhTGF5ZXJ9aXNBdXRoZW50aWNhdGVkKCl7cmV0dXJuIGUodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQuaXNBdXRoZW50aWNhdGVkKCl9KSl9fWNsYXNzIEF7Y29uc3RydWN0b3IoZSl7dGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQ9ZSx0aGlzLl9kYXRhTGF5ZXI9dGhpcy5fYXV0aGVudGljYXRpb25DbGllbnQuZ2V0RGF0YUxheWVyKCl9cmVmcmVzaEFjY2Vzc1Rva2VuQXV0b21hdGljYWxseSh0KXt2YXIgbixyO3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7aWYoIShudWxsIT09KHI9bnVsbD09PShuPXlpZWxkIHRoaXMuX2RhdGFMYXllci5nZXRDb25maWdEYXRhKCkpfHx2b2lkIDA9PT1uP3ZvaWQgMDpuLnBlcmlvZGljVG9rZW5SZWZyZXNoKSYmdm9pZCAwIT09ciYmcikpcmV0dXJuO2NvbnN0IG89eWllbGQgdGhpcy5fZGF0YUxheWVyLmdldFNlc3Npb25EYXRhKCk7aWYoby5yZWZyZXNoX3Rva2VuKXtjb25zdCBuPXBhcnNlSW50KG8uZXhwaXJlc19pbikscj1zZXRUaW1lb3V0KCgoKT0+ZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIHQucmVmcmVzaEFjY2Vzc1Rva2VuKCl9KSkpLDFlMyoobjw9MTA/bjpuLTEwKSk7eWllbGQgdGhpcy5fZGF0YUxheWVyLnNldFRlbXBvcmFyeURhdGFQYXJhbWV0ZXIoaSxKU09OLnN0cmluZ2lmeShyKSl9fSkpfWdldFJlZnJlc2hUaW1lb3V0VGltZXIoKXtyZXR1cm4gZSh0aGlzLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybih5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0VGVtcG9yYXJ5RGF0YVBhcmFtZXRlcihpKSk/SlNPTi5wYXJzZSh5aWVsZCB0aGlzLl9kYXRhTGF5ZXIuZ2V0VGVtcG9yYXJ5RGF0YVBhcmFtZXRlcihpKSk6LTF9KSl9Y2xlYXJSZWZyZXNoVG9rZW5UaW1lb3V0KHQpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7aWYodClyZXR1cm4gdm9pZCBjbGVhclRpbWVvdXQodCk7Y29uc3QgZT15aWVsZCB0aGlzLmdldFJlZnJlc2hUaW1lb3V0VGltZXIoKTstMSE9PWUmJmNsZWFyVGltZW91dChlKX0pKX19dmFyIEM9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fTtmdW5jdGlvbiBPKCl7dGhyb3cgbmV3IEVycm9yKCJzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gRCgpe3Rocm93IG5ldyBFcnJvcigiY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9dmFyIFA9TyxJPUQ7ZnVuY3Rpb24gVShlKXtpZihQPT09c2V0VGltZW91dClyZXR1cm4gc2V0VGltZW91dChlLDApO2lmKChQPT09T3x8IVApJiZzZXRUaW1lb3V0KXJldHVybiBQPXNldFRpbWVvdXQsc2V0VGltZW91dChlLDApO3RyeXtyZXR1cm4gUChlLDApfWNhdGNoKHQpe3RyeXtyZXR1cm4gUC5jYWxsKG51bGwsZSwwKX1jYXRjaCh0KXtyZXR1cm4gUC5jYWxsKHRoaXMsZSwwKX19fSJmdW5jdGlvbiI9PXR5cGVvZiBDLnNldFRpbWVvdXQmJihQPXNldFRpbWVvdXQpLCJmdW5jdGlvbiI9PXR5cGVvZiBDLmNsZWFyVGltZW91dCYmKEk9Y2xlYXJUaW1lb3V0KTt2YXIgTCxIPVtdLE09ITEsTj0tMTtmdW5jdGlvbiBqKCl7TSYmTCYmKE09ITEsTC5sZW5ndGg/SD1MLmNvbmNhdChIKTpOPS0xLEgubGVuZ3RoJiZ4KCkpfWZ1bmN0aW9uIHgoKXtpZighTSl7dmFyIGU9VShqKTtNPSEwO2Zvcih2YXIgdD1ILmxlbmd0aDt0Oyl7Zm9yKEw9SCxIPVtdOysrTjx0OylMJiZMW05dLnJ1bigpO049LTEsdD1ILmxlbmd0aH1MPW51bGwsTT0hMSxmdW5jdGlvbihlKXtpZihJPT09Y2xlYXJUaW1lb3V0KXJldHVybiBjbGVhclRpbWVvdXQoZSk7aWYoKEk9PT1EfHwhSSkmJmNsZWFyVGltZW91dClyZXR1cm4gST1jbGVhclRpbWVvdXQsY2xlYXJUaW1lb3V0KGUpO3RyeXtJKGUpfWNhdGNoKHQpe3RyeXtyZXR1cm4gSS5jYWxsKG51bGwsZSl9Y2F0Y2godCl7cmV0dXJuIEkuY2FsbCh0aGlzLGUpfX19KGUpfX1mdW5jdGlvbiBxKGUsdCl7dGhpcy5mdW49ZSx0aGlzLmFycmF5PXR9cS5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKCl7dGhpcy5mdW4uYXBwbHkobnVsbCx0aGlzLmFycmF5KX07ZnVuY3Rpb24gQigpe312YXIgRj1CLEs9QixKPUIsVz1CLCQ9Qix6PUIsVj1CO3ZhciBZPUMucGVyZm9ybWFuY2V8fHt9LEc9WS5ub3d8fFkubW96Tm93fHxZLm1zTm93fHxZLm9Ob3d8fFkud2Via2l0Tm93fHxmdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfTt2YXIgWD1uZXcgRGF0ZTt2YXIgWj17bmV4dFRpY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSk7aWYoYXJndW1lbnRzLmxlbmd0aD4xKWZvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuLTFdPWFyZ3VtZW50c1tuXTtILnB1c2gobmV3IHEoZSx0KSksMSE9PUgubGVuZ3RofHxNfHxVKHgpfSx0aXRsZToiYnJvd3NlciIsYnJvd3NlcjohMCxlbnY6e30sYXJndjpbXSx2ZXJzaW9uOiIiLHZlcnNpb25zOnt9LG9uOkYsYWRkTGlzdGVuZXI6SyxvbmNlOkosb2ZmOlcscmVtb3ZlTGlzdGVuZXI6JCxyZW1vdmVBbGxMaXN0ZW5lcnM6eixlbWl0OlYsYmluZGluZzpmdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoInByb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkIil9LGN3ZDpmdW5jdGlvbigpe3JldHVybiIvIn0sY2hkaXI6ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQiKX0sdW1hc2s6ZnVuY3Rpb24oKXtyZXR1cm4gMH0saHJ0aW1lOmZ1bmN0aW9uKGUpe3ZhciB0PS4wMDEqRy5jYWxsKFkpLG49TWF0aC5mbG9vcih0KSxyPU1hdGguZmxvb3IodCUxKjFlOSk7cmV0dXJuIGUmJihuLT1lWzBdLChyLT1lWzFdKTwwJiYobi0tLHIrPTFlOSkpLFtuLHJdfSxwbGF0Zm9ybToiYnJvd3NlciIscmVsZWFzZTp7fSxjb25maWc6e30sdXB0aW1lOmZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlLVgpLzFlM319LFE9WjtmdW5jdGlvbiBlZShlLHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KHQsYXJndW1lbnRzKX19Y29uc3R7dG9TdHJpbmc6dGV9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOm5lfT1PYmplY3Qse2l0ZXJhdG9yOnJlLHRvU3RyaW5nVGFnOmllfT1TeW1ib2wsb2U9KHNlPU9iamVjdC5jcmVhdGUobnVsbCksZT0+e2NvbnN0IHQ9dGUuY2FsbChlKTtyZXR1cm4gc2VbdF18fChzZVt0XT10LnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSk7dmFyIHNlO2NvbnN0IGFlPWU9PihlPWUudG9Mb3dlckNhc2UoKSx0PT5vZSh0KT09PWUpLGNlPWU9PnQ9PnR5cGVvZiB0PT09ZSx7aXNBcnJheTp1ZX09QXJyYXksbGU9Y2UoInVuZGVmaW5lZCIpO2Z1bmN0aW9uIGRlKGUpe3JldHVybiBudWxsIT09ZSYmIWxlKGUpJiZudWxsIT09ZS5jb25zdHJ1Y3RvciYmIWxlKGUuY29uc3RydWN0b3IpJiZwZShlLmNvbnN0cnVjdG9yLmlzQnVmZmVyKSYmZS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihlKX1jb25zdCBoZT1hZSgiQXJyYXlCdWZmZXIiKTtjb25zdCBmZT1jZSgic3RyaW5nIikscGU9Y2UoImZ1bmN0aW9uIiksZ2U9Y2UoIm51bWJlciIpLHllPWU9Pm51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGUsdmU9ZT0+e2lmKCJvYmplY3QiIT09b2UoZSkpcmV0dXJuITE7Y29uc3QgdD1uZShlKTtyZXR1cm4hKG51bGwhPT10JiZ0IT09T2JqZWN0LnByb3RvdHlwZSYmbnVsbCE9PU9iamVjdC5nZXRQcm90b3R5cGVPZih0KXx8aWUgaW4gZXx8cmUgaW4gZSl9LG1lPWFlKCJEYXRlIiksd2U9YWUoIkZpbGUiKSxiZT1hZSgiQmxvYiIpLF9lPWFlKCJGaWxlTGlzdCIpO2NvbnN0IFNlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp2b2lkIDAhPT1DP0M6e30sRWU9dm9pZCAwIT09U2UuRm9ybURhdGE/U2UuRm9ybURhdGE6dm9pZCAwLFJlPWFlKCJVUkxTZWFyY2hQYXJhbXMiKSxbVGUsa2UsQWUsQ2VdPVsiUmVhZGFibGVTdHJlYW0iLCJSZXF1ZXN0IiwiUmVzcG9uc2UiLCJIZWFkZXJzIl0ubWFwKGFlKTtmdW5jdGlvbiBPZShlLHQse2FsbE93bktleXM6bj0hMX09e30pe2lmKG51bGw9PWUpcmV0dXJuO2xldCByLGk7aWYoIm9iamVjdCIhPXR5cGVvZiBlJiYoZT1bZV0pLHVlKGUpKWZvcihyPTAsaT1lLmxlbmd0aDtyPGk7cisrKXQuY2FsbChudWxsLGVbcl0scixlKTtlbHNle2lmKGRlKGUpKXJldHVybjtjb25zdCBpPW4/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSk6T2JqZWN0LmtleXMoZSksbz1pLmxlbmd0aDtsZXQgcztmb3Iocj0wO3I8bztyKyspcz1pW3JdLHQuY2FsbChudWxsLGVbc10scyxlKX19ZnVuY3Rpb24gRGUoZSx0KXtpZihkZShlKSlyZXR1cm4gbnVsbDt0PXQudG9Mb3dlckNhc2UoKTtjb25zdCBuPU9iamVjdC5rZXlzKGUpO2xldCByLGk9bi5sZW5ndGg7Zm9yKDtpLS0gPjA7KWlmKHI9bltpXSx0PT09ci50b0xvd2VyQ2FzZSgpKXJldHVybiByO3JldHVybiBudWxsfWNvbnN0IFBlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzpDLEllPWU9PiFsZShlKSYmZSE9PVBlO2NvbnN0IFVlPShMZT0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXkmJm5lKFVpbnQ4QXJyYXkpLGU9PkxlJiZlIGluc3RhbmNlb2YgTGUpO3ZhciBMZTtjb25zdCBIZT1hZSgiSFRNTEZvcm1FbGVtZW50IiksTWU9KCh7aGFzT3duUHJvcGVydHk6ZX0pPT4odCxuKT0+ZS5jYWxsKHQsbikpKE9iamVjdC5wcm90b3R5cGUpLE5lPWFlKCJSZWdFeHAiKSxqZT0oZSx0KT0+e2NvbnN0IG49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoZSkscj17fTtPZShuLCgobixpKT0+e2xldCBvOyExIT09KG89dChuLGksZSkpJiYocltpXT1vfHxuKX0pKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHIpfTtjb25zdCB4ZT1hZSgiQXN5bmNGdW5jdGlvbiIpLHFlPShCZT0iZnVuY3Rpb24iPT10eXBlb2Ygc2V0SW1tZWRpYXRlLEZlPXBlKFBlLnBvc3RNZXNzYWdlKSxCZT9zZXRJbW1lZGlhdGU6RmU/KEtlPWBheGlvc0Ake01hdGgucmFuZG9tKCl9YCxKZT1bXSxQZS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoKHtzb3VyY2U6ZSxkYXRhOnR9KT0+e2U9PT1QZSYmdD09PUtlJiZKZS5sZW5ndGgmJkplLnNoaWZ0KCkoKX0pLCExKSxlPT57SmUucHVzaChlKSxQZS5wb3N0TWVzc2FnZShLZSwiKiIpfSk6ZT0+c2V0VGltZW91dChlKSk7dmFyIEJlLEZlLEtlLEplO2NvbnN0IFdlPSJ1bmRlZmluZWQiIT10eXBlb2YgcXVldWVNaWNyb3Rhc2s/cXVldWVNaWNyb3Rhc2suYmluZChQZSk6dm9pZCAwIT09USYmUS5uZXh0VGlja3x8cWU7dmFyICRlPXtpc0FycmF5OnVlLGlzQXJyYXlCdWZmZXI6aGUsaXNCdWZmZXI6ZGUsaXNGb3JtRGF0YTplPT57bGV0IHQ7cmV0dXJuIGUmJihFZSYmZSBpbnN0YW5jZW9mIEVlfHxwZShlLmFwcGVuZCkmJigiZm9ybWRhdGEiPT09KHQ9b2UoZSkpfHwib2JqZWN0Ij09PXQmJnBlKGUudG9TdHJpbmcpJiYiW29iamVjdCBGb3JtRGF0YV0iPT09ZS50b1N0cmluZygpKSl9LGlzQXJyYXlCdWZmZXJWaWV3OmZ1bmN0aW9uKGUpe2xldCB0O3JldHVybiB0PSJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJkFycmF5QnVmZmVyLmlzVmlldz9BcnJheUJ1ZmZlci5pc1ZpZXcoZSk6ZSYmZS5idWZmZXImJmhlKGUuYnVmZmVyKSx0fSxpc1N0cmluZzpmZSxpc051bWJlcjpnZSxpc0Jvb2xlYW46ZT0+ITA9PT1lfHwhMT09PWUsaXNPYmplY3Q6eWUsaXNQbGFpbk9iamVjdDp2ZSxpc0VtcHR5T2JqZWN0OmU9PntpZigheWUoZSl8fGRlKGUpKXJldHVybiExO3RyeXtyZXR1cm4gMD09PU9iamVjdC5rZXlzKGUpLmxlbmd0aCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaChlKXtyZXR1cm4hMX19LGlzUmVhZGFibGVTdHJlYW06VGUsaXNSZXF1ZXN0OmtlLGlzUmVzcG9uc2U6QWUsaXNIZWFkZXJzOkNlLGlzVW5kZWZpbmVkOmxlLGlzRGF0ZTptZSxpc0ZpbGU6d2UsaXNSZWFjdE5hdGl2ZUJsb2I6ZT0+ISghZXx8dm9pZCAwPT09ZS51cmkpLGlzUmVhY3ROYXRpdmU6ZT0+ZSYmdm9pZCAwIT09ZS5nZXRQYXJ0cyxpc0Jsb2I6YmUsaXNSZWdFeHA6TmUsaXNGdW5jdGlvbjpwZSxpc1N0cmVhbTplPT55ZShlKSYmcGUoZS5waXBlKSxpc1VSTFNlYXJjaFBhcmFtczpSZSxpc1R5cGVkQXJyYXk6VWUsaXNGaWxlTGlzdDpfZSxmb3JFYWNoOk9lLG1lcmdlOmZ1bmN0aW9uIGUoKXtjb25zdHtjYXNlbGVzczp0LHNraXBVbmRlZmluZWQ6bn09SWUodGhpcykmJnRoaXN8fHt9LHI9e30saT0oaSxvKT0+e2lmKCJfX3Byb3RvX18iPT09b3x8ImNvbnN0cnVjdG9yIj09PW98fCJwcm90b3R5cGUiPT09bylyZXR1cm47Y29uc3Qgcz10JiZEZShyLG8pfHxvO3ZlKHJbc10pJiZ2ZShpKT9yW3NdPWUocltzXSxpKTp2ZShpKT9yW3NdPWUoe30saSk6dWUoaSk/cltzXT1pLnNsaWNlKCk6biYmbGUoaSl8fChyW3NdPWkpfTtmb3IobGV0IGU9MCx0PWFyZ3VtZW50cy5sZW5ndGg7ZTx0O2UrKylhcmd1bWVudHNbZV0mJk9lKGFyZ3VtZW50c1tlXSxpKTtyZXR1cm4gcn0sZXh0ZW5kOihlLHQsbix7YWxsT3duS2V5czpyfT17fSk9PihPZSh0LCgodCxyKT0+e24mJnBlKHQpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIse3ZhbHVlOmVlKHQsbiksd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KTpPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHt2YWx1ZTp0LHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSl9KSx7YWxsT3duS2V5czpyfSksZSksdHJpbTplPT5lLnRyaW0/ZS50cmltKCk6ZS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIiksc3RyaXBCT006ZT0+KDY1Mjc5PT09ZS5jaGFyQ29kZUF0KDApJiYoZT1lLnNsaWNlKDEpKSxlKSxpbmhlcml0czooZSx0LG4scik9PntlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY29uc3RydWN0b3IiLHt2YWx1ZTplLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInN1cGVyIix7dmFsdWU6dC5wcm90b3R5cGV9KSxuJiZPYmplY3QuYXNzaWduKGUucHJvdG90eXBlLG4pfSx0b0ZsYXRPYmplY3Q6KGUsdCxuLHIpPT57bGV0IGksbyxzO2NvbnN0IGE9e307aWYodD10fHx7fSxudWxsPT1lKXJldHVybiB0O2Rve2ZvcihpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUpLG89aS5sZW5ndGg7by0tID4wOylzPWlbb10sciYmIXIocyxlLHQpfHxhW3NdfHwodFtzXT1lW3NdLGFbc109ITApO2U9ITEhPT1uJiZuZShlKX13aGlsZShlJiYoIW58fG4oZSx0KSkmJmUhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gdH0sa2luZE9mOm9lLGtpbmRPZlRlc3Q6YWUsZW5kc1dpdGg6KGUsdCxuKT0+e2U9U3RyaW5nKGUpLCh2b2lkIDA9PT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpLG4tPXQubGVuZ3RoO2NvbnN0IHI9ZS5pbmRleE9mKHQsbik7cmV0dXJuLTEhPT1yJiZyPT09bn0sdG9BcnJheTplPT57aWYoIWUpcmV0dXJuIG51bGw7aWYodWUoZSkpcmV0dXJuIGU7bGV0IHQ9ZS5sZW5ndGg7aWYoIWdlKHQpKXJldHVybiBudWxsO2NvbnN0IG49bmV3IEFycmF5KHQpO2Zvcig7dC0tID4wOyluW3RdPWVbdF07cmV0dXJuIG59LGZvckVhY2hFbnRyeTooZSx0KT0+e2NvbnN0IG49KGUmJmVbcmVdKS5jYWxsKGUpO2xldCByO2Zvcig7KHI9bi5uZXh0KCkpJiYhci5kb25lOyl7Y29uc3Qgbj1yLnZhbHVlO3QuY2FsbChlLG5bMF0sblsxXSl9fSxtYXRjaEFsbDooZSx0KT0+e2xldCBuO2NvbnN0IHI9W107Zm9yKDtudWxsIT09KG49ZS5leGVjKHQpKTspci5wdXNoKG4pO3JldHVybiByfSxpc0hUTUxGb3JtOkhlLGhhc093blByb3BlcnR5Ok1lLGhhc093blByb3A6TWUscmVkdWNlRGVzY3JpcHRvcnM6amUsZnJlZXplTWV0aG9kczplPT57amUoZSwoKHQsbik9PntpZihwZShlKSYmLTEhPT1bImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluZGV4T2YobikpcmV0dXJuITE7Y29uc3Qgcj1lW25dO3BlKHIpJiYodC5lbnVtZXJhYmxlPSExLCJ3cml0YWJsZSJpbiB0P3Qud3JpdGFibGU9ITE6dC5zZXR8fCh0LnNldD0oKT0+e3Rocm93IEVycm9yKCJDYW4gbm90IHJld3JpdGUgcmVhZC1vbmx5IG1ldGhvZCAnIituKyInIil9KSl9KSl9LHRvT2JqZWN0U2V0OihlLHQpPT57Y29uc3Qgbj17fSxyPWU9PntlLmZvckVhY2goKGU9PntuW2VdPSEwfSkpfTtyZXR1cm4gdWUoZSk/cihlKTpyKFN0cmluZyhlKS5zcGxpdCh0KSksbn0sdG9DYW1lbENhc2U6ZT0+ZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csKGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdC50b1VwcGVyQ2FzZSgpK259KSksbm9vcDooKT0+e30sdG9GaW5pdGVOdW1iZXI6KGUsdCk9Pm51bGwhPWUmJk51bWJlci5pc0Zpbml0ZShlPStlKT9lOnQsZmluZEtleTpEZSxnbG9iYWw6UGUsaXNDb250ZXh0RGVmaW5lZDpJZSxpc1NwZWNDb21wbGlhbnRGb3JtOmZ1bmN0aW9uKGUpe3JldHVybiEhKGUmJnBlKGUuYXBwZW5kKSYmIkZvcm1EYXRhIj09PWVbaWVdJiZlW3JlXSl9LHRvSlNPTk9iamVjdDplPT57Y29uc3QgdD1uZXcgQXJyYXkoMTApLG49KGUscik9PntpZih5ZShlKSl7aWYodC5pbmRleE9mKGUpPj0wKXJldHVybjtpZihkZShlKSlyZXR1cm4gZTtpZighKCJ0b0pTT04iaW4gZSkpe3Rbcl09ZTtjb25zdCBpPXVlKGUpP1tdOnt9O3JldHVybiBPZShlLCgoZSx0KT0+e2NvbnN0IG89bihlLHIrMSk7IWxlKG8pJiYoaVt0XT1vKX0pKSx0W3JdPXZvaWQgMCxpfX1yZXR1cm4gZX07cmV0dXJuIG4oZSwwKX0saXNBc3luY0ZuOnhlLGlzVGhlbmFibGU6ZT0+ZSYmKHllKGUpfHxwZShlKSkmJnBlKGUudGhlbikmJnBlKGUuY2F0Y2gpLHNldEltbWVkaWF0ZTpxZSxhc2FwOldlLGlzSXRlcmFibGU6ZT0+bnVsbCE9ZSYmcGUoZVtyZV0pfSx6ZT1bXSxWZT1bXSxZZT0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXk/VWludDhBcnJheTpBcnJheSxHZT0hMTtmdW5jdGlvbiBYZSgpe0dlPSEwO2Zvcih2YXIgZT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIsdD0wLG49ZS5sZW5ndGg7dDxuOysrdCl6ZVt0XT1lW3RdLFZlW2UuY2hhckNvZGVBdCh0KV09dDtWZVsiLSIuY2hhckNvZGVBdCgwKV09NjIsVmVbIl8iLmNoYXJDb2RlQXQoMCldPTYzfWZ1bmN0aW9uIFplKGUsdCxuKXtmb3IodmFyIHIsaSxvPVtdLHM9dDtzPG47cys9MylyPShlW3NdPDwxNikrKGVbcysxXTw8OCkrZVtzKzJdLG8ucHVzaCh6ZVsoaT1yKT4+MTgmNjNdK3plW2k+PjEyJjYzXSt6ZVtpPj42JjYzXSt6ZVs2MyZpXSk7cmV0dXJuIG8uam9pbigiIil9ZnVuY3Rpb24gUWUoZSl7dmFyIHQ7R2V8fFhlKCk7Zm9yKHZhciBuPWUubGVuZ3RoLHI9biUzLGk9IiIsbz1bXSxzPTE2MzgzLGE9MCxjPW4tcjthPGM7YSs9cylvLnB1c2goWmUoZSxhLGErcz5jP2M6YStzKSk7cmV0dXJuIDE9PT1yPyh0PWVbbi0xXSxpKz16ZVt0Pj4yXSxpKz16ZVt0PDw0JjYzXSxpKz0iPT0iKToyPT09ciYmKHQ9KGVbbi0yXTw8OCkrZVtuLTFdLGkrPXplW3Q+PjEwXSxpKz16ZVt0Pj40JjYzXSxpKz16ZVt0PDwyJjYzXSxpKz0iPSIpLG8ucHVzaChpKSxvLmpvaW4oIiIpfWZ1bmN0aW9uIGV0KGUsdCxuLHIsaSl7dmFyIG8scyxhPTgqaS1yLTEsYz0oMTw8YSktMSx1PWM+PjEsbD0tNyxkPW4/aS0xOjAsaD1uPy0xOjEsZj1lW3QrZF07Zm9yKGQrPWgsbz1mJigxPDwtbCktMSxmPj49LWwsbCs9YTtsPjA7bz0yNTYqbytlW3QrZF0sZCs9aCxsLT04KTtmb3Iocz1vJigxPDwtbCktMSxvPj49LWwsbCs9cjtsPjA7cz0yNTYqcytlW3QrZF0sZCs9aCxsLT04KTtpZigwPT09bylvPTEtdTtlbHNle2lmKG89PT1jKXJldHVybiBzP05hTjoxLzAqKGY/LTE6MSk7cys9TWF0aC5wb3coMixyKSxvLT11fXJldHVybihmPy0xOjEpKnMqTWF0aC5wb3coMixvLXIpfWZ1bmN0aW9uIHR0KGUsdCxuLHIsaSxvKXt2YXIgcyxhLGMsdT04Km8taS0xLGw9KDE8PHUpLTEsZD1sPj4xLGg9MjM9PT1pP01hdGgucG93KDIsLTI0KS1NYXRoLnBvdygyLC03Nyk6MCxmPXI/MDpvLTEscD1yPzE6LTEsZz10PDB8fDA9PT10JiYxL3Q8MD8xOjA7Zm9yKHQ9TWF0aC5hYnModCksaXNOYU4odCl8fHQ9PT0xLzA/KGE9aXNOYU4odCk/MTowLHM9bCk6KHM9TWF0aC5mbG9vcihNYXRoLmxvZyh0KS9NYXRoLkxOMiksdCooYz1NYXRoLnBvdygyLC1zKSk8MSYmKHMtLSxjKj0yKSwodCs9cytkPj0xP2gvYzpoKk1hdGgucG93KDIsMS1kKSkqYz49MiYmKHMrKyxjLz0yKSxzK2Q+PWw/KGE9MCxzPWwpOnMrZD49MT8oYT0odCpjLTEpKk1hdGgucG93KDIsaSkscys9ZCk6KGE9dCpNYXRoLnBvdygyLGQtMSkqTWF0aC5wb3coMixpKSxzPTApKTtpPj04O2VbbitmXT0yNTUmYSxmKz1wLGEvPTI1NixpLT04KTtmb3Iocz1zPDxpfGEsdSs9aTt1PjA7ZVtuK2ZdPTI1NSZzLGYrPXAscy89MjU2LHUtPTgpO2VbbitmLXBdfD0xMjgqZ312YXIgbnQ9e30udG9TdHJpbmcscnQ9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09bnQuY2FsbChlKX07YXQuVFlQRURfQVJSQVlfU1VQUE9SVD12b2lkIDA9PT1DLlRZUEVEX0FSUkFZX1NVUFBPUlR8fEMuVFlQRURfQVJSQVlfU1VQUE9SVDt2YXIgaXQ9b3QoKTtmdW5jdGlvbiBvdCgpe3JldHVybiBhdC5UWVBFRF9BUlJBWV9TVVBQT1JUPzIxNDc0ODM2NDc6MTA3Mzc0MTgyM31mdW5jdGlvbiBzdChlLHQpe2lmKG90KCk8dCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0eXBlZCBhcnJheSBsZW5ndGgiKTtyZXR1cm4gYXQuVFlQRURfQVJSQVlfU1VQUE9SVD8oZT1uZXcgVWludDhBcnJheSh0KSkuX19wcm90b19fPWF0LnByb3RvdHlwZToobnVsbD09PWUmJihlPW5ldyBhdCh0KSksZS5sZW5ndGg9dCksZX1mdW5jdGlvbiBhdChlLHQsbil7aWYoIShhdC5UWVBFRF9BUlJBWV9TVVBQT1JUfHx0aGlzIGluc3RhbmNlb2YgYXQpKXJldHVybiBuZXcgYXQoZSx0LG4pO2lmKCJudW1iZXIiPT10eXBlb2YgZSl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiSWYgZW5jb2RpbmcgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmciKTtyZXR1cm4gbHQodGhpcyxlKX1yZXR1cm4gY3QodGhpcyxlLHQsbil9ZnVuY3Rpb24gY3QoZSx0LG4scil7aWYoIm51bWJlciI9PXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXInKTtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZ0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/ZnVuY3Rpb24oZSx0LG4scil7aWYodC5ieXRlTGVuZ3RoLG48MHx8dC5ieXRlTGVuZ3RoPG4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIidvZmZzZXQnIGlzIG91dCBvZiBib3VuZHMiKTtpZih0LmJ5dGVMZW5ndGg8bisocnx8MCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIidsZW5ndGgnIGlzIG91dCBvZiBib3VuZHMiKTt0PXZvaWQgMD09PW4mJnZvaWQgMD09PXI/bmV3IFVpbnQ4QXJyYXkodCk6dm9pZCAwPT09cj9uZXcgVWludDhBcnJheSh0LG4pOm5ldyBVaW50OEFycmF5KHQsbixyKTthdC5UWVBFRF9BUlJBWV9TVVBQT1JUPyhlPXQpLl9fcHJvdG9fXz1hdC5wcm90b3R5cGU6ZT1kdChlLHQpO3JldHVybiBlfShlLHQsbixyKToic3RyaW5nIj09dHlwZW9mIHQ/ZnVuY3Rpb24oZSx0LG4peyJzdHJpbmciPT10eXBlb2YgbiYmIiIhPT1ufHwobj0idXRmOCIpO2lmKCFhdC5pc0VuY29kaW5nKG4pKXRocm93IG5ldyBUeXBlRXJyb3IoJyJlbmNvZGluZyIgbXVzdCBiZSBhIHZhbGlkIHN0cmluZyBlbmNvZGluZycpO3ZhciByPTB8cHQodCxuKSxpPShlPXN0KGUscikpLndyaXRlKHQsbik7aSE9PXImJihlPWUuc2xpY2UoMCxpKSk7cmV0dXJuIGV9KGUsdCxuKTpmdW5jdGlvbihlLHQpe2lmKGZ0KHQpKXt2YXIgbj0wfGh0KHQubGVuZ3RoKTtyZXR1cm4gMD09PShlPXN0KGUsbikpLmxlbmd0aHx8dC5jb3B5KGUsMCwwLG4pLGV9aWYodCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmdC5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcnx8Imxlbmd0aCJpbiB0KXJldHVybiJudW1iZXIiIT10eXBlb2YgdC5sZW5ndGh8fChyPXQubGVuZ3RoKSE9cj9zdChlLDApOmR0KGUsdCk7aWYoIkJ1ZmZlciI9PT10LnR5cGUmJnJ0KHQuZGF0YSkpcmV0dXJuIGR0KGUsdC5kYXRhKX12YXIgcjt0aHJvdyBuZXcgVHlwZUVycm9yKCJGaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgYXJyYXktbGlrZSBvYmplY3QuIil9KGUsdCl9ZnVuY3Rpb24gdXQoZSl7aWYoIm51bWJlciIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoJyJzaXplIiBhcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyJyk7aWYoZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCcic2l6ZSIgYXJndW1lbnQgbXVzdCBub3QgYmUgbmVnYXRpdmUnKX1mdW5jdGlvbiBsdChlLHQpe2lmKHV0KHQpLGU9c3QoZSx0PDA/MDowfGh0KHQpKSwhYXQuVFlQRURfQVJSQVlfU1VQUE9SVClmb3IodmFyIG49MDtuPHQ7KytuKWVbbl09MDtyZXR1cm4gZX1mdW5jdGlvbiBkdChlLHQpe3ZhciBuPXQubGVuZ3RoPDA/MDowfGh0KHQubGVuZ3RoKTtlPXN0KGUsbik7Zm9yKHZhciByPTA7cjxuO3IrPTEpZVtyXT0yNTUmdFtyXTtyZXR1cm4gZX1mdW5jdGlvbiBodChlKXtpZihlPj1vdCgpKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtIHNpemU6IDB4IitvdCgpLnRvU3RyaW5nKDE2KSsiIGJ5dGVzIik7cmV0dXJuIDB8ZX1mdW5jdGlvbiBmdChlKXtyZXR1cm4hKG51bGw9PWV8fCFlLl9pc0J1ZmZlcil9ZnVuY3Rpb24gcHQoZSx0KXtpZihmdChlKSlyZXR1cm4gZS5sZW5ndGg7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmImZ1bmN0aW9uIj09dHlwZW9mIEFycmF5QnVmZmVyLmlzVmlldyYmKEFycmF5QnVmZmVyLmlzVmlldyhlKXx8ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSlyZXR1cm4gZS5ieXRlTGVuZ3RoOyJzdHJpbmciIT10eXBlb2YgZSYmKGU9IiIrZSk7dmFyIG49ZS5sZW5ndGg7aWYoMD09PW4pcmV0dXJuIDA7Zm9yKHZhciByPSExOzspc3dpdGNoKHQpe2Nhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIG47Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlIHZvaWQgMDpyZXR1cm4gQnQoZSkubGVuZ3RoO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gMipuO2Nhc2UiaGV4IjpyZXR1cm4gbj4+PjE7Y2FzZSJiYXNlNjQiOnJldHVybiBGdChlKS5sZW5ndGg7ZGVmYXVsdDppZihyKXJldHVybiBCdChlKS5sZW5ndGg7dD0oIiIrdCkudG9Mb3dlckNhc2UoKSxyPSEwfX1mdW5jdGlvbiBndChlLHQsbil7dmFyIHI9ITE7aWYoKHZvaWQgMD09PXR8fHQ8MCkmJih0PTApLHQ+dGhpcy5sZW5ndGgpcmV0dXJuIiI7aWYoKHZvaWQgMD09PW58fG4+dGhpcy5sZW5ndGgpJiYobj10aGlzLmxlbmd0aCksbjw9MClyZXR1cm4iIjtpZigobj4+Pj0wKTw9KHQ+Pj49MCkpcmV0dXJuIiI7Zm9yKGV8fChlPSJ1dGY4Iik7Oylzd2l0Y2goZSl7Y2FzZSJoZXgiOnJldHVybiBEdCh0aGlzLHQsbik7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4ga3QodGhpcyx0LG4pO2Nhc2UiYXNjaWkiOnJldHVybiBDdCh0aGlzLHQsbik7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gT3QodGhpcyx0LG4pO2Nhc2UiYmFzZTY0IjpyZXR1cm4gVHQodGhpcyx0LG4pO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gUHQodGhpcyx0LG4pO2RlZmF1bHQ6aWYocil0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK2UpO2U9KGUrIiIpLnRvTG93ZXJDYXNlKCkscj0hMH19ZnVuY3Rpb24geXQoZSx0LG4pe3ZhciByPWVbdF07ZVt0XT1lW25dLGVbbl09cn1mdW5jdGlvbiB2dChlLHQsbixyLGkpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm4tMTtpZigic3RyaW5nIj09dHlwZW9mIG4/KHI9bixuPTApOm4+MjE0NzQ4MzY0Nz9uPTIxNDc0ODM2NDc6bjwtMjE0NzQ4MzY0OCYmKG49LTIxNDc0ODM2NDgpLG49K24saXNOYU4obikmJihuPWk/MDplLmxlbmd0aC0xKSxuPDAmJihuPWUubGVuZ3RoK24pLG4+PWUubGVuZ3RoKXtpZihpKXJldHVybi0xO249ZS5sZW5ndGgtMX1lbHNlIGlmKG48MCl7aWYoIWkpcmV0dXJuLTE7bj0wfWlmKCJzdHJpbmciPT10eXBlb2YgdCYmKHQ9YXQuZnJvbSh0LHIpKSxmdCh0KSlyZXR1cm4gMD09PXQubGVuZ3RoPy0xOm10KGUsdCxuLHIsaSk7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0Jj0yNTUsYXQuVFlQRURfQVJSQVlfU1VQUE9SVCYmImZ1bmN0aW9uIj09dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/aT9VaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoZSx0LG4pOlVpbnQ4QXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoZSx0LG4pOm10KGUsW3RdLG4scixpKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJ2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXIiKX1mdW5jdGlvbiBtdChlLHQsbixyLGkpe3ZhciBvLHM9MSxhPWUubGVuZ3RoLGM9dC5sZW5ndGg7aWYodm9pZCAwIT09ciYmKCJ1Y3MyIj09PShyPVN0cmluZyhyKS50b0xvd2VyQ2FzZSgpKXx8InVjcy0yIj09PXJ8fCJ1dGYxNmxlIj09PXJ8fCJ1dGYtMTZsZSI9PT1yKSl7aWYoZS5sZW5ndGg8Mnx8dC5sZW5ndGg8MilyZXR1cm4tMTtzPTIsYS89MixjLz0yLG4vPTJ9ZnVuY3Rpb24gdShlLHQpe3JldHVybiAxPT09cz9lW3RdOmUucmVhZFVJbnQxNkJFKHQqcyl9aWYoaSl7dmFyIGw9LTE7Zm9yKG89bjtvPGE7bysrKWlmKHUoZSxvKT09PXUodCwtMT09PWw/MDpvLWwpKXtpZigtMT09PWwmJihsPW8pLG8tbCsxPT09YylyZXR1cm4gbCpzfWVsc2UtMSE9PWwmJihvLT1vLWwpLGw9LTF9ZWxzZSBmb3IobitjPmEmJihuPWEtYyksbz1uO28+PTA7by0tKXtmb3IodmFyIGQ9ITAsaD0wO2g8YztoKyspaWYodShlLG8raCkhPT11KHQsaCkpe2Q9ITE7YnJlYWt9aWYoZClyZXR1cm4gb31yZXR1cm4tMX1mdW5jdGlvbiB3dChlLHQsbixyKXtuPU51bWJlcihuKXx8MDt2YXIgaT1lLmxlbmd0aC1uO3I/KHI9TnVtYmVyKHIpKT5pJiYocj1pKTpyPWk7dmFyIG89dC5sZW5ndGg7aWYobyUyIT0wKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgaGV4IHN0cmluZyIpO3I+by8yJiYocj1vLzIpO2Zvcih2YXIgcz0wO3M8cjsrK3Mpe3ZhciBhPXBhcnNlSW50KHQuc3Vic3RyKDIqcywyKSwxNik7aWYoaXNOYU4oYSkpcmV0dXJuIHM7ZVtuK3NdPWF9cmV0dXJuIHN9ZnVuY3Rpb24gYnQoZSx0LG4scil7cmV0dXJuIEt0KEJ0KHQsZS5sZW5ndGgtbiksZSxuLHIpfWZ1bmN0aW9uIF90KGUsdCxuLHIpe3JldHVybiBLdChmdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj0wO248ZS5sZW5ndGg7KytuKXQucHVzaCgyNTUmZS5jaGFyQ29kZUF0KG4pKTtyZXR1cm4gdH0odCksZSxuLHIpfWZ1bmN0aW9uIFN0KGUsdCxuLHIpe3JldHVybiBfdChlLHQsbixyKX1mdW5jdGlvbiBFdChlLHQsbixyKXtyZXR1cm4gS3QoRnQodCksZSxuLHIpfWZ1bmN0aW9uIFJ0KGUsdCxuLHIpe3JldHVybiBLdChmdW5jdGlvbihlLHQpe2Zvcih2YXIgbixyLGksbz1bXSxzPTA7czxlLmxlbmd0aCYmISgodC09Mik8MCk7KytzKXI9KG49ZS5jaGFyQ29kZUF0KHMpKT4+OCxpPW4lMjU2LG8ucHVzaChpKSxvLnB1c2gocik7cmV0dXJuIG99KHQsZS5sZW5ndGgtbiksZSxuLHIpfWZ1bmN0aW9uIFR0KGUsdCxuKXtyZXR1cm4gMD09PXQmJm49PT1lLmxlbmd0aD9RZShlKTpRZShlLnNsaWNlKHQsbikpfWZ1bmN0aW9uIGt0KGUsdCxuKXtuPU1hdGgubWluKGUubGVuZ3RoLG4pO2Zvcih2YXIgcj1bXSxpPXQ7aTxuOyl7dmFyIG8scyxhLGMsdT1lW2ldLGw9bnVsbCxkPXU+MjM5PzQ6dT4yMjM/Mzp1PjE5MT8yOjE7aWYoaStkPD1uKXN3aXRjaChkKXtjYXNlIDE6dTwxMjgmJihsPXUpO2JyZWFrO2Nhc2UgMjoxMjg9PSgxOTImKG89ZVtpKzFdKSkmJihjPSgzMSZ1KTw8Nnw2MyZvKT4xMjcmJihsPWMpO2JyZWFrO2Nhc2UgMzpvPWVbaSsxXSxzPWVbaSsyXSwxMjg9PSgxOTImbykmJjEyOD09KDE5MiZzKSYmKGM9KDE1JnUpPDwxMnwoNjMmbyk8PDZ8NjMmcyk+MjA0NyYmKGM8NTUyOTZ8fGM+NTczNDMpJiYobD1jKTticmVhaztjYXNlIDQ6bz1lW2krMV0scz1lW2krMl0sYT1lW2krM10sMTI4PT0oMTkyJm8pJiYxMjg9PSgxOTImcykmJjEyOD09KDE5MiZhKSYmKGM9KDE1JnUpPDwxOHwoNjMmbyk8PDEyfCg2MyZzKTw8Nnw2MyZhKT42NTUzNSYmYzwxMTE0MTEyJiYobD1jKX1udWxsPT09bD8obD02NTUzMyxkPTEpOmw+NjU1MzUmJihsLT02NTUzNixyLnB1c2gobD4+PjEwJjEwMjN8NTUyOTYpLGw9NTYzMjB8MTAyMyZsKSxyLnB1c2gobCksaSs9ZH1yZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9ZS5sZW5ndGg7aWYodDw9QXQpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLGUpO3ZhciBuPSIiLHI9MDtmb3IoO3I8dDspbis9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsZS5zbGljZShyLHIrPUF0KSk7cmV0dXJuIG59KHIpfWF0LnBvb2xTaXplPTgxOTIsYXQuX2F1Z21lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuX19wcm90b19fPWF0LnByb3RvdHlwZSxlfSxhdC5mcm9tPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gY3QobnVsbCxlLHQsbil9LGF0LlRZUEVEX0FSUkFZX1NVUFBPUlQmJihhdC5wcm90b3R5cGUuX19wcm90b19fPVVpbnQ4QXJyYXkucHJvdG90eXBlLGF0Ll9fcHJvdG9fXz1VaW50OEFycmF5KSxhdC5hbGxvYz1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB1dCh0KSx0PD0wP3N0KGUsdCk6dm9pZCAwIT09bj8ic3RyaW5nIj09dHlwZW9mIHI/c3QoZSx0KS5maWxsKG4scik6c3QoZSx0KS5maWxsKG4pOnN0KGUsdCl9KG51bGwsZSx0LG4pfSxhdC5hbGxvY1Vuc2FmZT1mdW5jdGlvbihlKXtyZXR1cm4gbHQobnVsbCxlKX0sYXQuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKGUpe3JldHVybiBsdChudWxsLGUpfSxhdC5pc0J1ZmZlcj1KdCxhdC5jb21wYXJlPWZ1bmN0aW9uKGUsdCl7aWYoIWZ0KGUpfHwhZnQodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnRzIG11c3QgYmUgQnVmZmVycyIpO2lmKGU9PT10KXJldHVybiAwO2Zvcih2YXIgbj1lLmxlbmd0aCxyPXQubGVuZ3RoLGk9MCxvPU1hdGgubWluKG4scik7aTxvOysraSlpZihlW2ldIT09dFtpXSl7bj1lW2ldLHI9dFtpXTticmVha31yZXR1cm4gbjxyPy0xOnI8bj8xOjB9LGF0LmlzRW5jb2Rpbmc9ZnVuY3Rpb24oZSl7c3dpdGNoKFN0cmluZyhlKS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19LGF0LmNvbmNhdD1mdW5jdGlvbihlLHQpe2lmKCFydChlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7aWYoMD09PWUubGVuZ3RoKXJldHVybiBhdC5hbGxvYygwKTt2YXIgbjtpZih2b2lkIDA9PT10KWZvcih0PTAsbj0wO248ZS5sZW5ndGg7KytuKXQrPWVbbl0ubGVuZ3RoO3ZhciByPWF0LmFsbG9jVW5zYWZlKHQpLGk9MDtmb3Iobj0wO248ZS5sZW5ndGg7KytuKXt2YXIgbz1lW25dO2lmKCFmdChvKSl0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7by5jb3B5KHIsaSksaSs9by5sZW5ndGh9cmV0dXJuIHJ9LGF0LmJ5dGVMZW5ndGg9cHQsYXQucHJvdG90eXBlLl9pc0J1ZmZlcj0hMCxhdC5wcm90b3R5cGUuc3dhcDE2PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5sZW5ndGg7aWYoZSUyIT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0cyIpO2Zvcih2YXIgdD0wO3Q8ZTt0Kz0yKXl0KHRoaXMsdCx0KzEpO3JldHVybiB0aGlzfSxhdC5wcm90b3R5cGUuc3dhcDMyPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5sZW5ndGg7aWYoZSU0IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzItYml0cyIpO2Zvcih2YXIgdD0wO3Q8ZTt0Kz00KXl0KHRoaXMsdCx0KzMpLHl0KHRoaXMsdCsxLHQrMik7cmV0dXJuIHRoaXN9LGF0LnByb3RvdHlwZS5zd2FwNjQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmxlbmd0aDtpZihlJTghPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA2NC1iaXRzIik7Zm9yKHZhciB0PTA7dDxlO3QrPTgpeXQodGhpcyx0LHQrNykseXQodGhpcyx0KzEsdCs2KSx5dCh0aGlzLHQrMix0KzUpLHl0KHRoaXMsdCszLHQrNCk7cmV0dXJuIHRoaXN9LGF0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciBlPTB8dGhpcy5sZW5ndGg7cmV0dXJuIDA9PT1lPyIiOjA9PT1hcmd1bWVudHMubGVuZ3RoP2t0KHRoaXMsMCxlKTpndC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGF0LnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24oZSl7aWYoIWZ0KGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIiKTtyZXR1cm4gdGhpcz09PWV8fDA9PT1hdC5jb21wYXJlKHRoaXMsZSl9LGF0LnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7dmFyIGU9IiI7cmV0dXJuIHRoaXMubGVuZ3RoPjAmJihlPXRoaXMudG9TdHJpbmcoImhleCIsMCw1MCkubWF0Y2goLy57Mn0vZykuam9pbigiICIpLHRoaXMubGVuZ3RoPjUwJiYoZSs9IiAuLi4gIikpLCI8QnVmZmVyICIrZSsiPiJ9LGF0LnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKGUsdCxuLHIsaSl7aWYoIWZ0KGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIiKTtpZih2b2lkIDA9PT10JiYodD0wKSx2b2lkIDA9PT1uJiYobj1lP2UubGVuZ3RoOjApLHZvaWQgMD09PXImJihyPTApLHZvaWQgMD09PWkmJihpPXRoaXMubGVuZ3RoKSx0PDB8fG4+ZS5sZW5ndGh8fHI8MHx8aT50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIHJhbmdlIGluZGV4Iik7aWYocj49aSYmdD49bilyZXR1cm4gMDtpZihyPj1pKXJldHVybi0xO2lmKHQ+PW4pcmV0dXJuIDE7aWYodGhpcz09PWUpcmV0dXJuIDA7Zm9yKHZhciBvPShpPj4+PTApLShyPj4+PTApLHM9KG4+Pj49MCktKHQ+Pj49MCksYT1NYXRoLm1pbihvLHMpLGM9dGhpcy5zbGljZShyLGkpLHU9ZS5zbGljZSh0LG4pLGw9MDtsPGE7KytsKWlmKGNbbF0hPT11W2xdKXtvPWNbbF0scz11W2xdO2JyZWFrfXJldHVybiBvPHM/LTE6czxvPzE6MH0sYXQucHJvdG90eXBlLmluY2x1ZGVzPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4tMSE9PXRoaXMuaW5kZXhPZihlLHQsbil9LGF0LnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdnQodGhpcyxlLHQsbiwhMCl9LGF0LnByb3RvdHlwZS5sYXN0SW5kZXhPZj1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHZ0KHRoaXMsZSx0LG4sITEpfSxhdC5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oZSx0LG4scil7aWYodm9pZCAwPT09dClyPSJ1dGY4IixuPXRoaXMubGVuZ3RoLHQ9MDtlbHNlIGlmKHZvaWQgMD09PW4mJiJzdHJpbmciPT10eXBlb2YgdClyPXQsbj10aGlzLmxlbmd0aCx0PTA7ZWxzZXtpZighaXNGaW5pdGUodCkpdGhyb3cgbmV3IEVycm9yKCJCdWZmZXIud3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0WywgbGVuZ3RoXSkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIpO3R8PTAsaXNGaW5pdGUobik/KG58PTAsdm9pZCAwPT09ciYmKHI9InV0ZjgiKSk6KHI9bixuPXZvaWQgMCl9dmFyIGk9dGhpcy5sZW5ndGgtdDtpZigodm9pZCAwPT09bnx8bj5pKSYmKG49aSksZS5sZW5ndGg+MCYmKG48MHx8dDwwKXx8dD50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXR0ZW1wdCB0byB3cml0ZSBvdXRzaWRlIGJ1ZmZlciBib3VuZHMiKTtyfHwocj0idXRmOCIpO2Zvcih2YXIgbz0hMTs7KXN3aXRjaChyKXtjYXNlImhleCI6cmV0dXJuIHd0KHRoaXMsZSx0LG4pO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIGJ0KHRoaXMsZSx0LG4pO2Nhc2UiYXNjaWkiOnJldHVybiBfdCh0aGlzLGUsdCxuKTtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBTdCh0aGlzLGUsdCxuKTtjYXNlImJhc2U2NCI6cmV0dXJuIEV0KHRoaXMsZSx0LG4pO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gUnQodGhpcyxlLHQsbik7ZGVmYXVsdDppZihvKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrcik7cj0oIiIrcikudG9Mb3dlckNhc2UoKSxvPSEwfX0sYXQucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJCdWZmZXIiLGRhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyfHx0aGlzLDApfX07dmFyIEF0PTQwOTY7ZnVuY3Rpb24gQ3QoZSx0LG4pe3ZhciByPSIiO249TWF0aC5taW4oZS5sZW5ndGgsbik7Zm9yKHZhciBpPXQ7aTxuOysraSlyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDEyNyZlW2ldKTtyZXR1cm4gcn1mdW5jdGlvbiBPdChlLHQsbil7dmFyIHI9IiI7bj1NYXRoLm1pbihlLmxlbmd0aCxuKTtmb3IodmFyIGk9dDtpPG47KytpKXIrPVN0cmluZy5mcm9tQ2hhckNvZGUoZVtpXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gRHQoZSx0LG4pe3ZhciByPWUubGVuZ3RoOyghdHx8dDwwKSYmKHQ9MCksKCFufHxuPDB8fG4+cikmJihuPXIpO2Zvcih2YXIgaT0iIixvPXQ7bzxuOysrbylpKz1xdChlW29dKTtyZXR1cm4gaX1mdW5jdGlvbiBQdChlLHQsbil7Zm9yKHZhciByPWUuc2xpY2UodCxuKSxpPSIiLG89MDtvPHIubGVuZ3RoO28rPTIpaSs9U3RyaW5nLmZyb21DaGFyQ29kZShyW29dKzI1NipyW28rMV0pO3JldHVybiBpfWZ1bmN0aW9uIEl0KGUsdCxuKXtpZihlJTEhPTB8fGU8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib2Zmc2V0IGlzIG5vdCB1aW50Iik7aWYoZSt0Pm4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgiKX1mdW5jdGlvbiBVdChlLHQsbixyLGksbyl7aWYoIWZ0KGUpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWZmZXIiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UnKTtpZih0Pml8fHQ8byl0aHJvdyBuZXcgUmFuZ2VFcnJvcignInZhbHVlIiBhcmd1bWVudCBpcyBvdXQgb2YgYm91bmRzJyk7aWYobityPmUubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBMdChlLHQsbixyKXt0PDAmJih0PTY1NTM1K3QrMSk7Zm9yKHZhciBpPTAsbz1NYXRoLm1pbihlLmxlbmd0aC1uLDIpO2k8bzsrK2kpZVtuK2ldPSh0JjI1NTw8OCoocj9pOjEtaSkpPj4+OCoocj9pOjEtaSl9ZnVuY3Rpb24gSHQoZSx0LG4scil7dDwwJiYodD00Mjk0OTY3Mjk1K3QrMSk7Zm9yKHZhciBpPTAsbz1NYXRoLm1pbihlLmxlbmd0aC1uLDQpO2k8bzsrK2kpZVtuK2ldPXQ+Pj44KihyP2k6My1pKSYyNTV9ZnVuY3Rpb24gTXQoZSx0LG4scixpLG8pe2lmKG4rcj5lLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYobjwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBOdChlLHQsbixyLGkpe3JldHVybiBpfHxNdChlLDAsbiw0KSx0dChlLHQsbixyLDIzLDQpLG4rNH1mdW5jdGlvbiBqdChlLHQsbixyLGkpe3JldHVybiBpfHxNdChlLDAsbiw4KSx0dChlLHQsbixyLDUyLDgpLG4rOH1hdC5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24oZSx0KXt2YXIgbixyPXRoaXMubGVuZ3RoO2lmKChlPX5+ZSk8MD8oZSs9cik8MCYmKGU9MCk6ZT5yJiYoZT1yKSwodD12b2lkIDA9PT10P3I6fn50KTwwPyh0Kz1yKTwwJiYodD0wKTp0PnImJih0PXIpLHQ8ZSYmKHQ9ZSksYXQuVFlQRURfQVJSQVlfU1VQUE9SVCkobj10aGlzLnN1YmFycmF5KGUsdCkpLl9fcHJvdG9fXz1hdC5wcm90b3R5cGU7ZWxzZXt2YXIgaT10LWU7bj1uZXcgYXQoaSx2b2lkIDApO2Zvcih2YXIgbz0wO288aTsrK28pbltvXT10aGlzW28rZV19cmV0dXJuIG59LGF0LnByb3RvdHlwZS5yZWFkVUludExFPWZ1bmN0aW9uKGUsdCxuKXtlfD0wLHR8PTAsbnx8SXQoZSx0LHRoaXMubGVuZ3RoKTtmb3IodmFyIHI9dGhpc1tlXSxpPTEsbz0wOysrbzx0JiYoaSo9MjU2KTspcis9dGhpc1tlK29dKmk7cmV0dXJuIHJ9LGF0LnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uKGUsdCxuKXtlfD0wLHR8PTAsbnx8SXQoZSx0LHRoaXMubGVuZ3RoKTtmb3IodmFyIHI9dGhpc1tlKy0tdF0saT0xO3Q+MCYmKGkqPTI1Nik7KXIrPXRoaXNbZSstLXRdKmk7cmV0dXJuIHJ9LGF0LnByb3RvdHlwZS5yZWFkVUludDg9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8SXQoZSwxLHRoaXMubGVuZ3RoKSx0aGlzW2VdfSxhdC5wcm90b3R5cGUucmVhZFVJbnQxNkxFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fEl0KGUsMix0aGlzLmxlbmd0aCksdGhpc1tlXXx0aGlzW2UrMV08PDh9LGF0LnByb3RvdHlwZS5yZWFkVUludDE2QkU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8SXQoZSwyLHRoaXMubGVuZ3RoKSx0aGlzW2VdPDw4fHRoaXNbZSsxXX0sYXQucHJvdG90eXBlLnJlYWRVSW50MzJMRT1mdW5jdGlvbihlLHQpe3JldHVybiB0fHxJdChlLDQsdGhpcy5sZW5ndGgpLCh0aGlzW2VdfHRoaXNbZSsxXTw8OHx0aGlzW2UrMl08PDE2KSsxNjc3NzIxNip0aGlzW2UrM119LGF0LnByb3RvdHlwZS5yZWFkVUludDMyQkU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8SXQoZSw0LHRoaXMubGVuZ3RoKSwxNjc3NzIxNip0aGlzW2VdKyh0aGlzW2UrMV08PDE2fHRoaXNbZSsyXTw8OHx0aGlzW2UrM10pfSxhdC5wcm90b3R5cGUucmVhZEludExFPWZ1bmN0aW9uKGUsdCxuKXtlfD0wLHR8PTAsbnx8SXQoZSx0LHRoaXMubGVuZ3RoKTtmb3IodmFyIHI9dGhpc1tlXSxpPTEsbz0wOysrbzx0JiYoaSo9MjU2KTspcis9dGhpc1tlK29dKmk7cmV0dXJuIHI+PShpKj0xMjgpJiYoci09TWF0aC5wb3coMiw4KnQpKSxyfSxhdC5wcm90b3R5cGUucmVhZEludEJFPWZ1bmN0aW9uKGUsdCxuKXtlfD0wLHR8PTAsbnx8SXQoZSx0LHRoaXMubGVuZ3RoKTtmb3IodmFyIHI9dCxpPTEsbz10aGlzW2UrLS1yXTtyPjAmJihpKj0yNTYpOylvKz10aGlzW2UrLS1yXSppO3JldHVybiBvPj0oaSo9MTI4KSYmKG8tPU1hdGgucG93KDIsOCp0KSksb30sYXQucHJvdG90eXBlLnJlYWRJbnQ4PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fEl0KGUsMSx0aGlzLmxlbmd0aCksMTI4JnRoaXNbZV0/LTEqKDI1NS10aGlzW2VdKzEpOnRoaXNbZV19LGF0LnByb3RvdHlwZS5yZWFkSW50MTZMRT1mdW5jdGlvbihlLHQpe3R8fEl0KGUsMix0aGlzLmxlbmd0aCk7dmFyIG49dGhpc1tlXXx0aGlzW2UrMV08PDg7cmV0dXJuIDMyNzY4Jm4/NDI5NDkwMTc2MHxuOm59LGF0LnByb3RvdHlwZS5yZWFkSW50MTZCRT1mdW5jdGlvbihlLHQpe3R8fEl0KGUsMix0aGlzLmxlbmd0aCk7dmFyIG49dGhpc1tlKzFdfHRoaXNbZV08PDg7cmV0dXJuIDMyNzY4Jm4/NDI5NDkwMTc2MHxuOm59LGF0LnByb3RvdHlwZS5yZWFkSW50MzJMRT1mdW5jdGlvbihlLHQpe3JldHVybiB0fHxJdChlLDQsdGhpcy5sZW5ndGgpLHRoaXNbZV18dGhpc1tlKzFdPDw4fHRoaXNbZSsyXTw8MTZ8dGhpc1tlKzNdPDwyNH0sYXQucHJvdG90eXBlLnJlYWRJbnQzMkJFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR8fEl0KGUsNCx0aGlzLmxlbmd0aCksdGhpc1tlXTw8MjR8dGhpc1tlKzFdPDwxNnx0aGlzW2UrMl08PDh8dGhpc1tlKzNdfSxhdC5wcm90b3R5cGUucmVhZEZsb2F0TEU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdHx8SXQoZSw0LHRoaXMubGVuZ3RoKSxldCh0aGlzLGUsITAsMjMsNCl9LGF0LnByb3RvdHlwZS5yZWFkRmxvYXRCRT1mdW5jdGlvbihlLHQpe3JldHVybiB0fHxJdChlLDQsdGhpcy5sZW5ndGgpLGV0KHRoaXMsZSwhMSwyMyw0KX0sYXQucHJvdG90eXBlLnJlYWREb3VibGVMRT1mdW5jdGlvbihlLHQpe3JldHVybiB0fHxJdChlLDgsdGhpcy5sZW5ndGgpLGV0KHRoaXMsZSwhMCw1Miw4KX0sYXQucHJvdG90eXBlLnJlYWREb3VibGVCRT1mdW5jdGlvbihlLHQpe3JldHVybiB0fHxJdChlLDgsdGhpcy5sZW5ndGgpLGV0KHRoaXMsZSwhMSw1Miw4KX0sYXQucHJvdG90eXBlLndyaXRlVUludExFPWZ1bmN0aW9uKGUsdCxuLHIpeyhlPStlLHR8PTAsbnw9MCxyKXx8VXQodGhpcyxlLHQsbixNYXRoLnBvdygyLDgqbiktMSwwKTt2YXIgaT0xLG89MDtmb3IodGhpc1t0XT0yNTUmZTsrK288biYmKGkqPTI1Nik7KXRoaXNbdCtvXT1lL2kmMjU1O3JldHVybiB0K259LGF0LnByb3RvdHlwZS53cml0ZVVJbnRCRT1mdW5jdGlvbihlLHQsbixyKXsoZT0rZSx0fD0wLG58PTAscil8fFV0KHRoaXMsZSx0LG4sTWF0aC5wb3coMiw4Km4pLTEsMCk7dmFyIGk9bi0xLG89MTtmb3IodGhpc1t0K2ldPTI1NSZlOy0taT49MCYmKG8qPTI1Nik7KXRoaXNbdCtpXT1lL28mMjU1O3JldHVybiB0K259LGF0LnByb3RvdHlwZS53cml0ZVVJbnQ4PWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZT0rZSx0fD0wLG58fFV0KHRoaXMsZSx0LDEsMjU1LDApLGF0LlRZUEVEX0FSUkFZX1NVUFBPUlR8fChlPU1hdGguZmxvb3IoZSkpLHRoaXNbdF09MjU1JmUsdCsxfSxhdC5wcm90b3R5cGUud3JpdGVVSW50MTZMRT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGU9K2UsdHw9MCxufHxVdCh0aGlzLGUsdCwyLDY1NTM1LDApLGF0LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbdF09MjU1JmUsdGhpc1t0KzFdPWU+Pj44KTpMdCh0aGlzLGUsdCwhMCksdCsyfSxhdC5wcm90b3R5cGUud3JpdGVVSW50MTZCRT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGU9K2UsdHw9MCxufHxVdCh0aGlzLGUsdCwyLDY1NTM1LDApLGF0LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbdF09ZT4+PjgsdGhpc1t0KzFdPTI1NSZlKTpMdCh0aGlzLGUsdCwhMSksdCsyfSxhdC5wcm90b3R5cGUud3JpdGVVSW50MzJMRT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGU9K2UsdHw9MCxufHxVdCh0aGlzLGUsdCw0LDQyOTQ5NjcyOTUsMCksYXQuVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1t0KzNdPWU+Pj4yNCx0aGlzW3QrMl09ZT4+PjE2LHRoaXNbdCsxXT1lPj4+OCx0aGlzW3RdPTI1NSZlKTpIdCh0aGlzLGUsdCwhMCksdCs0fSxhdC5wcm90b3R5cGUud3JpdGVVSW50MzJCRT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGU9K2UsdHw9MCxufHxVdCh0aGlzLGUsdCw0LDQyOTQ5NjcyOTUsMCksYXQuVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1t0XT1lPj4+MjQsdGhpc1t0KzFdPWU+Pj4xNix0aGlzW3QrMl09ZT4+PjgsdGhpc1t0KzNdPTI1NSZlKTpIdCh0aGlzLGUsdCwhMSksdCs0fSxhdC5wcm90b3R5cGUud3JpdGVJbnRMRT1mdW5jdGlvbihlLHQsbixyKXtpZihlPStlLHR8PTAsIXIpe3ZhciBpPU1hdGgucG93KDIsOCpuLTEpO1V0KHRoaXMsZSx0LG4saS0xLC1pKX12YXIgbz0wLHM9MSxhPTA7Zm9yKHRoaXNbdF09MjU1JmU7KytvPG4mJihzKj0yNTYpOyllPDAmJjA9PT1hJiYwIT09dGhpc1t0K28tMV0mJihhPTEpLHRoaXNbdCtvXT0oZS9zPj4wKS1hJjI1NTtyZXR1cm4gdCtufSxhdC5wcm90b3R5cGUud3JpdGVJbnRCRT1mdW5jdGlvbihlLHQsbixyKXtpZihlPStlLHR8PTAsIXIpe3ZhciBpPU1hdGgucG93KDIsOCpuLTEpO1V0KHRoaXMsZSx0LG4saS0xLC1pKX12YXIgbz1uLTEscz0xLGE9MDtmb3IodGhpc1t0K29dPTI1NSZlOy0tbz49MCYmKHMqPTI1Nik7KWU8MCYmMD09PWEmJjAhPT10aGlzW3QrbysxXSYmKGE9MSksdGhpc1t0K29dPShlL3M+PjApLWEmMjU1O3JldHVybiB0K259LGF0LnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlPStlLHR8PTAsbnx8VXQodGhpcyxlLHQsMSwxMjcsLTEyOCksYXQuVFlQRURfQVJSQVlfU1VQUE9SVHx8KGU9TWF0aC5mbG9vcihlKSksZTwwJiYoZT0yNTUrZSsxKSx0aGlzW3RdPTI1NSZlLHQrMX0sYXQucHJvdG90eXBlLndyaXRlSW50MTZMRT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGU9K2UsdHw9MCxufHxVdCh0aGlzLGUsdCwyLDMyNzY3LC0zMjc2OCksYXQuVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1t0XT0yNTUmZSx0aGlzW3QrMV09ZT4+PjgpOkx0KHRoaXMsZSx0LCEwKSx0KzJ9LGF0LnByb3RvdHlwZS53cml0ZUludDE2QkU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlPStlLHR8PTAsbnx8VXQodGhpcyxlLHQsMiwzMjc2NywtMzI3NjgpLGF0LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbdF09ZT4+PjgsdGhpc1t0KzFdPTI1NSZlKTpMdCh0aGlzLGUsdCwhMSksdCsyfSxhdC5wcm90b3R5cGUud3JpdGVJbnQzMkxFPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZT0rZSx0fD0wLG58fFV0KHRoaXMsZSx0LDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksYXQuVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1t0XT0yNTUmZSx0aGlzW3QrMV09ZT4+PjgsdGhpc1t0KzJdPWU+Pj4xNix0aGlzW3QrM109ZT4+PjI0KTpIdCh0aGlzLGUsdCwhMCksdCs0fSxhdC5wcm90b3R5cGUud3JpdGVJbnQzMkJFPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZT0rZSx0fD0wLG58fFV0KHRoaXMsZSx0LDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksZTwwJiYoZT00Mjk0OTY3Mjk1K2UrMSksYXQuVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1t0XT1lPj4+MjQsdGhpc1t0KzFdPWU+Pj4xNix0aGlzW3QrMl09ZT4+PjgsdGhpc1t0KzNdPTI1NSZlKTpIdCh0aGlzLGUsdCwhMSksdCs0fSxhdC5wcm90b3R5cGUud3JpdGVGbG9hdExFPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gTnQodGhpcyxlLHQsITAsbil9LGF0LnByb3RvdHlwZS53cml0ZUZsb2F0QkU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBOdCh0aGlzLGUsdCwhMSxuKX0sYXQucHJvdG90eXBlLndyaXRlRG91YmxlTEU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBqdCh0aGlzLGUsdCwhMCxuKX0sYXQucHJvdG90eXBlLndyaXRlRG91YmxlQkU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBqdCh0aGlzLGUsdCwhMSxuKX0sYXQucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oZSx0LG4scil7aWYobnx8KG49MCkscnx8MD09PXJ8fChyPXRoaXMubGVuZ3RoKSx0Pj1lLmxlbmd0aCYmKHQ9ZS5sZW5ndGgpLHR8fCh0PTApLHI+MCYmcjxuJiYocj1uKSxyPT09bilyZXR1cm4gMDtpZigwPT09ZS5sZW5ndGh8fDA9PT10aGlzLmxlbmd0aClyZXR1cm4gMDtpZih0PDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoInRhcmdldFN0YXJ0IG91dCBvZiBib3VuZHMiKTtpZihuPDB8fG4+PXRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJzb3VyY2VTdGFydCBvdXQgb2YgYm91bmRzIik7aWYocjwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcyIpO3I+dGhpcy5sZW5ndGgmJihyPXRoaXMubGVuZ3RoKSxlLmxlbmd0aC10PHItbiYmKHI9ZS5sZW5ndGgtdCtuKTt2YXIgaSxvPXItbjtpZih0aGlzPT09ZSYmbjx0JiZ0PHIpZm9yKGk9by0xO2k+PTA7LS1pKWVbaSt0XT10aGlzW2krbl07ZWxzZSBpZihvPDFlM3x8IWF0LlRZUEVEX0FSUkFZX1NVUFBPUlQpZm9yKGk9MDtpPG87KytpKWVbaSt0XT10aGlzW2krbl07ZWxzZSBVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbChlLHRoaXMuc3ViYXJyYXkobixuK28pLHQpO3JldHVybiBvfSxhdC5wcm90b3R5cGUuZmlsbD1mdW5jdGlvbihlLHQsbixyKXtpZigic3RyaW5nIj09dHlwZW9mIGUpe2lmKCJzdHJpbmciPT10eXBlb2YgdD8ocj10LHQ9MCxuPXRoaXMubGVuZ3RoKToic3RyaW5nIj09dHlwZW9mIG4mJihyPW4sbj10aGlzLmxlbmd0aCksMT09PWUubGVuZ3RoKXt2YXIgaT1lLmNoYXJDb2RlQXQoMCk7aTwyNTYmJihlPWkpfWlmKHZvaWQgMCE9PXImJiJzdHJpbmciIT10eXBlb2Ygcil0aHJvdyBuZXcgVHlwZUVycm9yKCJlbmNvZGluZyBtdXN0IGJlIGEgc3RyaW5nIik7aWYoInN0cmluZyI9PXR5cGVvZiByJiYhYXQuaXNFbmNvZGluZyhyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3IpfWVsc2UibnVtYmVyIj09dHlwZW9mIGUmJihlJj0yNTUpO2lmKHQ8MHx8dGhpcy5sZW5ndGg8dHx8dGhpcy5sZW5ndGg8bil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiT3V0IG9mIHJhbmdlIGluZGV4Iik7aWYobjw9dClyZXR1cm4gdGhpczt2YXIgbztpZih0Pj4+PTAsbj12b2lkIDA9PT1uP3RoaXMubGVuZ3RoOm4+Pj4wLGV8fChlPTApLCJudW1iZXIiPT10eXBlb2YgZSlmb3Iobz10O288bjsrK28pdGhpc1tvXT1lO2Vsc2V7dmFyIHM9ZnQoZSk/ZTpCdChuZXcgYXQoZSxyKS50b1N0cmluZygpKSxhPXMubGVuZ3RoO2ZvcihvPTA7bzxuLXQ7KytvKXRoaXNbbyt0XT1zW28lYV19cmV0dXJuIHRoaXN9O3ZhciB4dD0vW14rXC8wLTlBLVphLXotX10vZztmdW5jdGlvbiBxdChlKXtyZXR1cm4gZTwxNj8iMCIrZS50b1N0cmluZygxNik6ZS50b1N0cmluZygxNil9ZnVuY3Rpb24gQnQoZSx0KXt2YXIgbjt0PXR8fDEvMDtmb3IodmFyIHI9ZS5sZW5ndGgsaT1udWxsLG89W10scz0wO3M8cjsrK3Mpe2lmKChuPWUuY2hhckNvZGVBdChzKSk+NTUyOTUmJm48NTczNDQpe2lmKCFpKXtpZihuPjU2MzE5KXsodC09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9aWYocysxPT09cil7KHQtPTMpPi0xJiZvLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfWk9bjtjb250aW51ZX1pZihuPDU2MzIwKXsodC09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSksaT1uO2NvbnRpbnVlfW49NjU1MzYrKGktNTUyOTY8PDEwfG4tNTYzMjApfWVsc2UgaSYmKHQtPTMpPi0xJiZvLnB1c2goMjM5LDE5MSwxODkpO2lmKGk9bnVsbCxuPDEyOCl7aWYoKHQtPTEpPDApYnJlYWs7by5wdXNoKG4pfWVsc2UgaWYobjwyMDQ4KXtpZigodC09Mik8MClicmVhaztvLnB1c2gobj4+NnwxOTIsNjMmbnwxMjgpfWVsc2UgaWYobjw2NTUzNil7aWYoKHQtPTMpPDApYnJlYWs7by5wdXNoKG4+PjEyfDIyNCxuPj42JjYzfDEyOCw2MyZufDEyOCl9ZWxzZXtpZighKG48MTExNDExMikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNvZGUgcG9pbnQiKTtpZigodC09NCk8MClicmVhaztvLnB1c2gobj4+MTh8MjQwLG4+PjEyJjYzfDEyOCxuPj42JjYzfDEyOCw2MyZufDEyOCl9fXJldHVybiBvfWZ1bmN0aW9uIEZ0KGUpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgdCxuLHIsaSxvLHM7R2V8fFhlKCk7dmFyIGE9ZS5sZW5ndGg7aWYoYSU0PjApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHN0cmluZy4gTGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0Iik7bz0iPSI9PT1lW2EtMl0/MjoiPSI9PT1lW2EtMV0/MTowLHM9bmV3IFllKDMqYS80LW8pLHI9bz4wP2EtNDphO3ZhciBjPTA7Zm9yKHQ9MCxuPTA7dDxyO3QrPTQsbis9MylpPVZlW2UuY2hhckNvZGVBdCh0KV08PDE4fFZlW2UuY2hhckNvZGVBdCh0KzEpXTw8MTJ8VmVbZS5jaGFyQ29kZUF0KHQrMildPDw2fFZlW2UuY2hhckNvZGVBdCh0KzMpXSxzW2MrK109aT4+MTYmMjU1LHNbYysrXT1pPj44JjI1NSxzW2MrK109MjU1Jmk7cmV0dXJuIDI9PT1vPyhpPVZlW2UuY2hhckNvZGVBdCh0KV08PDJ8VmVbZS5jaGFyQ29kZUF0KHQrMSldPj40LHNbYysrXT0yNTUmaSk6MT09PW8mJihpPVZlW2UuY2hhckNvZGVBdCh0KV08PDEwfFZlW2UuY2hhckNvZGVBdCh0KzEpXTw8NHxWZVtlLmNoYXJDb2RlQXQodCsyKV0+PjIsc1tjKytdPWk+PjgmMjU1LHNbYysrXT0yNTUmaSksc30oZnVuY3Rpb24oZSl7aWYoKGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGUudHJpbT9lLnRyaW0oKTplLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX0oZSkucmVwbGFjZSh4dCwiIikpLmxlbmd0aDwyKXJldHVybiIiO2Zvcig7ZS5sZW5ndGglNCE9MDspZSs9Ij0iO3JldHVybiBlfShlKSl9ZnVuY3Rpb24gS3QoZSx0LG4scil7Zm9yKHZhciBpPTA7aTxyJiYhKGkrbj49dC5sZW5ndGh8fGk+PWUubGVuZ3RoKTsrK2kpdFtpK25dPWVbaV07cmV0dXJuIGl9ZnVuY3Rpb24gSnQoZSl7cmV0dXJuIG51bGwhPWUmJighIWUuX2lzQnVmZmVyfHxXdChlKXx8ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUucmVhZEZsb2F0TEUmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLnNsaWNlJiZXdChlLnNsaWNlKDAsMCkpfShlKSl9ZnVuY3Rpb24gV3QoZSl7cmV0dXJuISFlLmNvbnN0cnVjdG9yJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5jb25zdHJ1Y3Rvci5pc0J1ZmZlciYmZS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihlKX12YXIgJHQ9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsQnVmZmVyOmF0LElOU1BFQ1RfTUFYX0JZVEVTOjUwLFNsb3dCdWZmZXI6ZnVuY3Rpb24oZSl7cmV0dXJuK2UhPWUmJihlPTApLGF0LmFsbG9jKCtlKX0saXNCdWZmZXI6SnQsa01heExlbmd0aDppdH0pO2NsYXNzIHp0IGV4dGVuZHMgRXJyb3J7c3RhdGljIGZyb20oZSx0LG4scixpLG8pe2NvbnN0IHM9bmV3IHp0KGUubWVzc2FnZSx0fHxlLmNvZGUsbixyLGkpO3JldHVybiBzLmNhdXNlPWUscy5uYW1lPWUubmFtZSxudWxsIT1lLnN0YXR1cyYmbnVsbD09cy5zdGF0dXMmJihzLnN0YXR1cz1lLnN0YXR1cyksbyYmT2JqZWN0LmFzc2lnbihzLG8pLHN9Y29uc3RydWN0b3IoZSx0LG4scixpKXtzdXBlcihlKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywibWVzc2FnZSIse3ZhbHVlOmUsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLHRoaXMuaXNBeGlvc0Vycm9yPSEwLHQmJih0aGlzLmNvZGU9dCksbiYmKHRoaXMuY29uZmlnPW4pLHImJih0aGlzLnJlcXVlc3Q9ciksaSYmKHRoaXMucmVzcG9uc2U9aSx0aGlzLnN0YXR1cz1pLnN0YXR1cyl9dG9KU09OKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOiRlLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19enQuRVJSX0JBRF9PUFRJT05fVkFMVUU9IkVSUl9CQURfT1BUSU9OX1ZBTFVFIix6dC5FUlJfQkFEX09QVElPTj0iRVJSX0JBRF9PUFRJT04iLHp0LkVDT05OQUJPUlRFRD0iRUNPTk5BQk9SVEVEIix6dC5FVElNRURPVVQ9IkVUSU1FRE9VVCIsenQuRVJSX05FVFdPUks9IkVSUl9ORVRXT1JLIix6dC5FUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTPSJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIix6dC5FUlJfREVQUkVDQVRFRD0iRVJSX0RFUFJFQ0FURUQiLHp0LkVSUl9CQURfUkVTUE9OU0U9IkVSUl9CQURfUkVTUE9OU0UiLHp0LkVSUl9CQURfUkVRVUVTVD0iRVJSX0JBRF9SRVFVRVNUIix6dC5FUlJfQ0FOQ0VMRUQ9IkVSUl9DQU5DRUxFRCIsenQuRVJSX05PVF9TVVBQT1JUPSJFUlJfTk9UX1NVUFBPUlQiLHp0LkVSUl9JTlZBTElEX1VSTD0iRVJSX0lOVkFMSURfVVJMIjt2YXIgVnQ9enQ7ZnVuY3Rpb24gWXQoZSl7cmV0dXJuICRlLmlzUGxhaW5PYmplY3QoZSl8fCRlLmlzQXJyYXkoZSl9ZnVuY3Rpb24gR3QoZSl7cmV0dXJuICRlLmVuZHNXaXRoKGUsIltdIik/ZS5zbGljZSgwLC0yKTplfWZ1bmN0aW9uIFh0KGUsdCxuKXtyZXR1cm4gZT9lLmNvbmNhdCh0KS5tYXAoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9R3QoZSksIW4mJnQ/IlsiK2UrIl0iOmV9KSkuam9pbihuPyIuIjoiIik6dH1jb25zdCBadD0kZS50b0ZsYXRPYmplY3QoJGUse30sbnVsbCwoZnVuY3Rpb24oZSl7cmV0dXJuL15pc1tBLVpdLy50ZXN0KGUpfSkpO2Z1bmN0aW9uIFF0KGUsdCxuKXtpZighJGUuaXNPYmplY3QoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7dD10fHxuZXcgRm9ybURhdGE7Y29uc3Qgcj0obj0kZS50b0ZsYXRPYmplY3Qobix7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLChmdW5jdGlvbihlLHQpe3JldHVybiEkZS5pc1VuZGVmaW5lZCh0W2VdKX0pKSkubWV0YVRva2VucyxpPW4udmlzaXRvcnx8dSxvPW4uZG90cyxzPW4uaW5kZXhlcyxhPShuLkJsb2J8fCJ1bmRlZmluZWQiIT10eXBlb2YgQmxvYiYmQmxvYikmJiRlLmlzU3BlY0NvbXBsaWFudEZvcm0odCk7aWYoISRlLmlzRnVuY3Rpb24oaSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBjKGUpe2lmKG51bGw9PT1lKXJldHVybiIiO2lmKCRlLmlzRGF0ZShlKSlyZXR1cm4gZS50b0lTT1N0cmluZygpO2lmKCRlLmlzQm9vbGVhbihlKSlyZXR1cm4gZS50b1N0cmluZygpO2lmKCFhJiYkZS5pc0Jsb2IoZSkpdGhyb3cgbmV3IFZ0KCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIpO3JldHVybiAkZS5pc0FycmF5QnVmZmVyKGUpfHwkZS5pc1R5cGVkQXJyYXkoZSk/YSYmImZ1bmN0aW9uIj09dHlwZW9mIEJsb2I/bmV3IEJsb2IoW2VdKTphdC5mcm9tKGUpOmV9ZnVuY3Rpb24gdShlLG4saSl7bGV0IGE9ZTtpZigkZS5pc1JlYWN0TmF0aXZlKHQpJiYkZS5pc1JlYWN0TmF0aXZlQmxvYihlKSlyZXR1cm4gdC5hcHBlbmQoWHQoaSxuLG8pLGMoZSkpLCExO2lmKGUmJiFpJiYib2JqZWN0Ij09dHlwZW9mIGUpaWYoJGUuZW5kc1dpdGgobiwie30iKSluPXI/bjpuLnNsaWNlKDAsLTIpLGU9SlNPTi5zdHJpbmdpZnkoZSk7ZWxzZSBpZigkZS5pc0FycmF5KGUpJiZmdW5jdGlvbihlKXtyZXR1cm4gJGUuaXNBcnJheShlKSYmIWUuc29tZShZdCl9KGUpfHwoJGUuaXNGaWxlTGlzdChlKXx8JGUuZW5kc1dpdGgobiwiW10iKSkmJihhPSRlLnRvQXJyYXkoZSkpKXJldHVybiBuPUd0KG4pLGEuZm9yRWFjaCgoZnVuY3Rpb24oZSxyKXshJGUuaXNVbmRlZmluZWQoZSkmJm51bGwhPT1lJiZ0LmFwcGVuZCghMD09PXM/WHQoW25dLHIsbyk6bnVsbD09PXM/bjpuKyJbXSIsYyhlKSl9KSksITE7cmV0dXJuISFZdChlKXx8KHQuYXBwZW5kKFh0KGksbixvKSxjKGUpKSwhMSl9Y29uc3QgbD1bXSxkPU9iamVjdC5hc3NpZ24oWnQse2RlZmF1bHRWaXNpdG9yOnUsY29udmVydFZhbHVlOmMsaXNWaXNpdGFibGU6WXR9KTtpZighJGUuaXNPYmplY3QoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBmdW5jdGlvbiBlKG4scil7aWYoISRlLmlzVW5kZWZpbmVkKG4pKXtpZigtMSE9PWwuaW5kZXhPZihuKSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrci5qb2luKCIuIikpO2wucHVzaChuKSwkZS5mb3JFYWNoKG4sKGZ1bmN0aW9uKG4sbyl7ITA9PT0oISgkZS5pc1VuZGVmaW5lZChuKXx8bnVsbD09PW4pJiZpLmNhbGwodCxuLCRlLmlzU3RyaW5nKG8pP28udHJpbSgpOm8scixkKSkmJmUobixyP3IuY29uY2F0KG8pOltvXSl9KSksbC5wb3AoKX19KGUpLHR9ZnVuY3Rpb24gZW4oZSl7Y29uc3QgdD17IiEiOiIlMjEiLCInIjoiJTI3IiwiKCI6IiUyOCIsIikiOiIlMjkiLCJ+IjoiJTdFIiwiJTIwIjoiKyIsIiUwMCI6IlwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChlKS5yZXBsYWNlKC9bIScoKX5dfCUyMHwlMDAvZywoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KSl9ZnVuY3Rpb24gdG4oZSx0KXt0aGlzLl9wYWlycz1bXSxlJiZRdChlLHRoaXMsdCl9Y29uc3Qgbm49dG4ucHJvdG90eXBlO2Z1bmN0aW9uIHJuKGUpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjAvZywiKyIpfWZ1bmN0aW9uIG9uKGUsdCxuKXtpZighdClyZXR1cm4gZTtjb25zdCByPW4mJm4uZW5jb2RlfHxybixpPSRlLmlzRnVuY3Rpb24obik/e3NlcmlhbGl6ZTpufTpuLG89aSYmaS5zZXJpYWxpemU7bGV0IHM7aWYocz1vP28odCxpKTokZS5pc1VSTFNlYXJjaFBhcmFtcyh0KT90LnRvU3RyaW5nKCk6bmV3IHRuKHQsaSkudG9TdHJpbmcocikscyl7Y29uc3QgdD1lLmluZGV4T2YoIiMiKTstMSE9PXQmJihlPWUuc2xpY2UoMCx0KSksZSs9KC0xPT09ZS5pbmRleE9mKCI/Iik/Ij8iOiImIikrc31yZXR1cm4gZX1ubi5hcHBlbmQ9ZnVuY3Rpb24oZSx0KXt0aGlzLl9wYWlycy5wdXNoKFtlLHRdKX0sbm4udG9TdHJpbmc9ZnVuY3Rpb24oZSl7Y29uc3QgdD1lP2Z1bmN0aW9uKHQpe3JldHVybiBlLmNhbGwodGhpcyx0LGVuKX06ZW47cmV0dXJuIHRoaXMuX3BhaXJzLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQoZVswXSkrIj0iK3QoZVsxXSl9KSwiIikuam9pbigiJiIpfTt2YXIgc249Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmhhbmRsZXJzPVtdfXVzZShlLHQsbil7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOmUscmVqZWN0ZWQ6dCxzeW5jaHJvbm91czohIW4mJm4uc3luY2hyb25vdXMscnVuV2hlbjpuP24ucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX1lamVjdChlKXt0aGlzLmhhbmRsZXJzW2VdJiYodGhpcy5oYW5kbGVyc1tlXT1udWxsKX1jbGVhcigpe3RoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPVtdKX1mb3JFYWNoKGUpeyRlLmZvckVhY2godGhpcy5oYW5kbGVycywoZnVuY3Rpb24odCl7bnVsbCE9PXQmJmUodCl9KSl9fSxhbj17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMSxsZWdhY3lJbnRlcmNlcHRvclJlcVJlc09yZGVyaW5nOiEwfSxjbj17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczoidW5kZWZpbmVkIiE9dHlwZW9mIFVSTFNlYXJjaFBhcmFtcz9VUkxTZWFyY2hQYXJhbXM6dG4sRm9ybURhdGE6InVuZGVmaW5lZCIhPXR5cGVvZiBGb3JtRGF0YT9Gb3JtRGF0YTpudWxsLEJsb2I6InVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iP0Jsb2I6bnVsbH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O2NvbnN0IHVuPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50LGxuPSJvYmplY3QiPT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3J8fHZvaWQgMCxkbj11biYmKCFsbnx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZihsbi5wcm9kdWN0KTwwKSxobj0idW5kZWZpbmVkIiE9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHMsZm49dW4mJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIHBuPXsuLi5PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxoYXNCcm93c2VyRW52OnVuLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjpobixoYXNTdGFuZGFyZEJyb3dzZXJFbnY6ZG4sbmF2aWdhdG9yOmxuLG9yaWdpbjpmbn0pLC4uLmNufTtmdW5jdGlvbiBnbihlKXtmdW5jdGlvbiB0KGUsbixyLGkpe2xldCBvPWVbaSsrXTtpZigiX19wcm90b19fIj09PW8pcmV0dXJuITA7Y29uc3Qgcz1OdW1iZXIuaXNGaW5pdGUoK28pLGE9aT49ZS5sZW5ndGg7aWYobz0hbyYmJGUuaXNBcnJheShyKT9yLmxlbmd0aDpvLGEpcmV0dXJuICRlLmhhc093blByb3AocixvKT9yW29dPVtyW29dLG5dOnJbb109biwhcztyW29dJiYkZS5pc09iamVjdChyW29dKXx8KHJbb109W10pO3JldHVybiB0KGUsbixyW29dLGkpJiYkZS5pc0FycmF5KHJbb10pJiYocltvXT1mdW5jdGlvbihlKXtjb25zdCB0PXt9LG49T2JqZWN0LmtleXMoZSk7bGV0IHI7Y29uc3QgaT1uLmxlbmd0aDtsZXQgbztmb3Iocj0wO3I8aTtyKyspbz1uW3JdLHRbb109ZVtvXTtyZXR1cm4gdH0ocltvXSkpLCFzfWlmKCRlLmlzRm9ybURhdGEoZSkmJiRlLmlzRnVuY3Rpb24oZS5lbnRyaWVzKSl7Y29uc3Qgbj17fTtyZXR1cm4gJGUuZm9yRWFjaEVudHJ5KGUsKChlLHIpPT57dChmdW5jdGlvbihlKXtyZXR1cm4gJGUubWF0Y2hBbGwoL1x3K3xcWyhcdyopXS9nLGUpLm1hcCgoZT0+IltdIj09PWVbMF0/IiI6ZVsxXXx8ZVswXSkpfShlKSxyLG4sMCl9KSksbn1yZXR1cm4gbnVsbH1jb25zdCB5bj17dHJhbnNpdGlvbmFsOmFuLGFkYXB0ZXI6WyJ4aHIiLCJodHRwIiwiZmV0Y2giXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihlLHQpe2NvbnN0IG49dC5nZXRDb250ZW50VHlwZSgpfHwiIixyPW4uaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLGk9JGUuaXNPYmplY3QoZSk7aSYmJGUuaXNIVE1MRm9ybShlKSYmKGU9bmV3IEZvcm1EYXRhKGUpKTtpZigkZS5pc0Zvcm1EYXRhKGUpKXJldHVybiByP0pTT04uc3RyaW5naWZ5KGduKGUpKTplO2lmKCRlLmlzQXJyYXlCdWZmZXIoZSl8fCRlLmlzQnVmZmVyKGUpfHwkZS5pc1N0cmVhbShlKXx8JGUuaXNGaWxlKGUpfHwkZS5pc0Jsb2IoZSl8fCRlLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYoJGUuaXNBcnJheUJ1ZmZlclZpZXcoZSkpcmV0dXJuIGUuYnVmZmVyO2lmKCRlLmlzVVJMU2VhcmNoUGFyYW1zKGUpKXJldHVybiB0LnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLGUudG9TdHJpbmcoKTtsZXQgbztpZihpKXtpZihuLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBmdW5jdGlvbihlLHQpe3JldHVybiBRdChlLG5ldyBwbi5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyx7dmlzaXRvcjpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gcG4uaXNOb2RlJiYkZS5pc0J1ZmZlcihlKT8odGhpcy5hcHBlbmQodCxlLnRvU3RyaW5nKCJiYXNlNjQiKSksITEpOnIuZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwuLi50fSl9KGUsdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtpZigobz0kZS5pc0ZpbGVMaXN0KGUpKXx8bi5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2NvbnN0IHQ9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiBRdChvP3siZmlsZXNbXSI6ZX06ZSx0JiZuZXcgdCx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIGl8fHI/KHQuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxmdW5jdGlvbihlLHQsbil7aWYoJGUuaXNTdHJpbmcoZSkpdHJ5e3JldHVybih0fHxKU09OLnBhcnNlKShlKSwkZS50cmltKGUpfWNhdGNoKGUpe2lmKCJTeW50YXhFcnJvciIhPT1lLm5hbWUpdGhyb3cgZX1yZXR1cm4obnx8SlNPTi5zdHJpbmdpZnkpKGUpfShlKSk6ZX1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbihlKXtjb25zdCB0PXRoaXMudHJhbnNpdGlvbmFsfHx5bi50cmFuc2l0aW9uYWwsbj10JiZ0LmZvcmNlZEpTT05QYXJzaW5nLHI9Impzb24iPT09dGhpcy5yZXNwb25zZVR5cGU7aWYoJGUuaXNSZXNwb25zZShlKXx8JGUuaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihlJiYkZS5pc1N0cmluZyhlKSYmKG4mJiF0aGlzLnJlc3BvbnNlVHlwZXx8cikpe2NvbnN0IG49ISh0JiZ0LnNpbGVudEpTT05QYXJzaW5nKSYmcjt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSx0aGlzLnBhcnNlUmV2aXZlcil9Y2F0Y2goZSl7aWYobil7aWYoIlN5bnRheEVycm9yIj09PWUubmFtZSl0aHJvdyBWdC5mcm9tKGUsVnQuRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk7dGhyb3cgZX19fXJldHVybiBlfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTpwbi5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6cG4uY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19OyRlLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIl0sKGU9Pnt5bi5oZWFkZXJzW2VdPXt9fSkpO3ZhciB2bj15bjtjb25zdCBtbj0kZS50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKTtjb25zdCB3bj1TeW1ib2woImludGVybmFscyIpO2Z1bmN0aW9uIGJuKGUpe3JldHVybiBlJiZTdHJpbmcoZSkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gX24oZSl7cmV0dXJuITE9PT1lfHxudWxsPT1lP2U6JGUuaXNBcnJheShlKT9lLm1hcChfbik6U3RyaW5nKGUpfWZ1bmN0aW9uIFNuKGUsdCxuLHIsaSl7cmV0dXJuICRlLmlzRnVuY3Rpb24ocik/ci5jYWxsKHRoaXMsdCxuKTooaSYmKHQ9biksJGUuaXNTdHJpbmcodCk/JGUuaXNTdHJpbmcocik/LTEhPT10LmluZGV4T2Yocik6JGUuaXNSZWdFeHAocik/ci50ZXN0KHQpOnZvaWQgMDp2b2lkIDApfWNsYXNzIEVue2NvbnN0cnVjdG9yKGUpe2UmJnRoaXMuc2V0KGUpfXNldChlLHQsbil7Y29uc3Qgcj10aGlzO2Z1bmN0aW9uIGkoZSx0LG4pe2NvbnN0IGk9Ym4odCk7aWYoIWkpdGhyb3cgbmV3IEVycm9yKCJoZWFkZXIgbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyIpO2NvbnN0IG89JGUuZmluZEtleShyLGkpOyghb3x8dm9pZCAwPT09cltvXXx8ITA9PT1ufHx2b2lkIDA9PT1uJiYhMSE9PXJbb10pJiYocltvfHx0XT1fbihlKSl9Y29uc3Qgbz0oZSx0KT0+JGUuZm9yRWFjaChlLCgoZSxuKT0+aShlLG4sdCkpKTtpZigkZS5pc1BsYWluT2JqZWN0KGUpfHxlIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3RvcilvKGUsdCk7ZWxzZSBpZigkZS5pc1N0cmluZyhlKSYmKGU9ZS50cmltKCkpJiYhL15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChlLnRyaW0oKSkpbygoZT0+e2NvbnN0IHQ9e307bGV0IG4scixpO3JldHVybiBlJiZlLnNwbGl0KCJcbiIpLmZvckVhY2goKGZ1bmN0aW9uKGUpe2k9ZS5pbmRleE9mKCI6Iiksbj1lLnN1YnN0cmluZygwLGkpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLHI9ZS5zdWJzdHJpbmcoaSsxKS50cmltKCksIW58fHRbbl0mJm1uW25dfHwoInNldC1jb29raWUiPT09bj90W25dP3Rbbl0ucHVzaChyKTp0W25dPVtyXTp0W25dPXRbbl0/dFtuXSsiLCAiK3I6cil9KSksdH0pKGUpLHQpO2Vsc2UgaWYoJGUuaXNPYmplY3QoZSkmJiRlLmlzSXRlcmFibGUoZSkpe2xldCBuLHIsaT17fTtmb3IoY29uc3QgdCBvZiBlKXtpZighJGUuaXNBcnJheSh0KSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7aVtyPXRbMF1dPShuPWlbcl0pPyRlLmlzQXJyYXkobik/Wy4uLm4sdFsxXV06W24sdFsxXV06dFsxXX1vKGksdCl9ZWxzZSBudWxsIT1lJiZpKHQsZSxuKTtyZXR1cm4gdGhpc31nZXQoZSx0KXtpZihlPWJuKGUpKXtjb25zdCBuPSRlLmZpbmRLZXkodGhpcyxlKTtpZihuKXtjb25zdCBlPXRoaXNbbl07aWYoIXQpcmV0dXJuIGU7aWYoITA9PT10KXJldHVybiBmdW5jdGlvbihlKXtjb25zdCB0PU9iamVjdC5jcmVhdGUobnVsbCksbj0vKFteXHMsOz1dKylccyooPzo9XHMqKFteLDtdKykpPy9nO2xldCByO2Zvcig7cj1uLmV4ZWMoZSk7KXRbclsxXV09clsyXTtyZXR1cm4gdH0oZSk7aWYoJGUuaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMsZSxuKTtpZigkZS5pc1JlZ0V4cCh0KSlyZXR1cm4gdC5leGVjKGUpO3Rocm93IG5ldyBUeXBlRXJyb3IoInBhcnNlciBtdXN0IGJlIGJvb2xlYW58cmVnZXhwfGZ1bmN0aW9uIil9fX1oYXMoZSx0KXtpZihlPWJuKGUpKXtjb25zdCBuPSRlLmZpbmRLZXkodGhpcyxlKTtyZXR1cm4hKCFufHx2b2lkIDA9PT10aGlzW25dfHx0JiYhU24oMCx0aGlzW25dLG4sdCkpfXJldHVybiExfWRlbGV0ZShlLHQpe2NvbnN0IG49dGhpcztsZXQgcj0hMTtmdW5jdGlvbiBpKGUpe2lmKGU9Ym4oZSkpe2NvbnN0IGk9JGUuZmluZEtleShuLGUpOyFpfHx0JiYhU24oMCxuW2ldLGksdCl8fChkZWxldGUgbltpXSxyPSEwKX19cmV0dXJuICRlLmlzQXJyYXkoZSk/ZS5mb3JFYWNoKGkpOmkoZSkscn1jbGVhcihlKXtjb25zdCB0PU9iamVjdC5rZXlzKHRoaXMpO2xldCBuPXQubGVuZ3RoLHI9ITE7Zm9yKDtuLS07KXtjb25zdCBpPXRbbl07ZSYmIVNuKDAsdGhpc1tpXSxpLGUsITApfHwoZGVsZXRlIHRoaXNbaV0scj0hMCl9cmV0dXJuIHJ9bm9ybWFsaXplKGUpe2NvbnN0IHQ9dGhpcyxuPXt9O3JldHVybiAkZS5mb3JFYWNoKHRoaXMsKChyLGkpPT57Y29uc3Qgbz0kZS5maW5kS2V5KG4saSk7aWYobylyZXR1cm4gdFtvXT1fbihyKSx2b2lkIGRlbGV0ZSB0W2ldO2NvbnN0IHM9ZT9mdW5jdGlvbihlKXtyZXR1cm4gZS50cmltKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxkXSkoXHcqKS9nLCgoZSx0LG4pPT50LnRvVXBwZXJDYXNlKCkrbikpfShpKTpTdHJpbmcoaSkudHJpbSgpO3MhPT1pJiZkZWxldGUgdFtpXSx0W3NdPV9uKHIpLG5bc109ITB9KSksdGhpc31jb25jYXQoLi4uZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4uZSl9dG9KU09OKGUpe2NvbnN0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gJGUuZm9yRWFjaCh0aGlzLCgobixyKT0+e251bGwhPW4mJiExIT09biYmKHRbcl09ZSYmJGUuaXNBcnJheShuKT9uLmpvaW4oIiwgIik6bil9KSksdH1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKCgoW2UsdF0pPT5lKyI6ICIrdCkpLmpvaW4oIlxuIil9Z2V0U2V0Q29va2llKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXQtY29va2llIil8fFtdfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLnQpe2NvbnN0IG49bmV3IHRoaXMoZSk7cmV0dXJuIHQuZm9yRWFjaCgoZT0+bi5zZXQoZSkpKSxufXN0YXRpYyBhY2Nlc3NvcihlKXtjb25zdCB0PSh0aGlzW3duXT10aGlzW3duXT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLG49dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gcihlKXtjb25zdCByPWJuKGUpO3Rbcl18fCghZnVuY3Rpb24oZSx0KXtjb25zdCBuPSRlLnRvQ2FtZWxDYXNlKCIgIit0KTtbImdldCIsInNldCIsImhhcyJdLmZvckVhY2goKHI9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyK24se3ZhbHVlOmZ1bmN0aW9uKGUsbixpKXtyZXR1cm4gdGhpc1tyXS5jYWxsKHRoaXMsdCxlLG4saSl9LGNvbmZpZ3VyYWJsZTohMH0pfSkpfShuLGUpLHRbcl09ITApfXJldHVybiAkZS5pc0FycmF5KGUpP2UuZm9yRWFjaChyKTpyKGUpLHRoaXN9fUVuLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKSwkZS5yZWR1Y2VEZXNjcmlwdG9ycyhFbi5wcm90b3R5cGUsKCh7dmFsdWU6ZX0sdCk9PntsZXQgbj10WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKTtyZXR1cm57Z2V0OigpPT5lLHNldChlKXt0aGlzW25dPWV9fX0pKSwkZS5mcmVlemVNZXRob2RzKEVuKTt2YXIgUm49RW47ZnVuY3Rpb24gVG4oZSx0KXtjb25zdCBuPXRoaXN8fHZuLHI9dHx8bixpPVJuLmZyb20oci5oZWFkZXJzKTtsZXQgbz1yLmRhdGE7cmV0dXJuICRlLmZvckVhY2goZSwoZnVuY3Rpb24oZSl7bz1lLmNhbGwobixvLGkubm9ybWFsaXplKCksdD90LnN0YXR1czp2b2lkIDApfSkpLGkubm9ybWFsaXplKCksb31mdW5jdGlvbiBrbihlKXtyZXR1cm4hKCFlfHwhZS5fX0NBTkNFTF9fKX12YXIgQW49Y2xhc3MgZXh0ZW5kcyBWdHtjb25zdHJ1Y3RvcihlLHQsbil7c3VwZXIobnVsbD09ZT8iY2FuY2VsZWQiOmUsVnQuRVJSX0NBTkNFTEVELHQsbiksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIix0aGlzLl9fQ0FOQ0VMX189ITB9fTtmdW5jdGlvbiBDbihlLHQsbil7Y29uc3Qgcj1uLmNvbmZpZy52YWxpZGF0ZVN0YXR1cztuLnN0YXR1cyYmciYmIXIobi5zdGF0dXMpP3QobmV3IFZ0KCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrbi5zdGF0dXMsW1Z0LkVSUl9CQURfUkVRVUVTVCxWdC5FUlJfQkFEX1JFU1BPTlNFXVtNYXRoLmZsb29yKG4uc3RhdHVzLzEwMCktNF0sbi5jb25maWcsbi5yZXF1ZXN0LG4pKTplKG4pfWNvbnN0IE9uPShlLHQsbj0zKT0+e2xldCByPTA7Y29uc3QgaT1mdW5jdGlvbihlLHQpe2U9ZXx8MTA7Y29uc3Qgbj1uZXcgQXJyYXkoZSkscj1uZXcgQXJyYXkoZSk7bGV0IGksbz0wLHM9MDtyZXR1cm4gdD12b2lkIDAhPT10P3Q6MWUzLGZ1bmN0aW9uKGEpe2NvbnN0IGM9RGF0ZS5ub3coKSx1PXJbc107aXx8KGk9YyksbltvXT1hLHJbb109YztsZXQgbD1zLGQ9MDtmb3IoO2whPT1vOylkKz1uW2wrK10sbCU9ZTtpZihvPShvKzEpJWUsbz09PXMmJihzPShzKzEpJWUpLGMtaTx0KXJldHVybjtjb25zdCBoPXUmJmMtdTtyZXR1cm4gaD9NYXRoLnJvdW5kKDFlMypkL2gpOnZvaWQgMH19KDUwLDI1MCk7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7bGV0IG4scixpPTAsbz0xZTMvdDtjb25zdCBzPSh0LG89RGF0ZS5ub3coKSk9PntpPW8sbj1udWxsLHImJihjbGVhclRpbWVvdXQocikscj1udWxsKSxlKC4uLnQpfTtyZXR1cm5bKC4uLmUpPT57Y29uc3QgdD1EYXRlLm5vdygpLGE9dC1pO2E+PW8/cyhlLHQpOihuPWUscnx8KHI9c2V0VGltZW91dCgoKCk9PntyPW51bGwscyhuKX0pLG8tYSkpKX0sKCk9Pm4mJnMobildfSgobj0+e2NvbnN0IG89bi5sb2FkZWQscz1uLmxlbmd0aENvbXB1dGFibGU/bi50b3RhbDp2b2lkIDAsYT1vLXIsYz1pKGEpO3I9bztlKHtsb2FkZWQ6byx0b3RhbDpzLHByb2dyZXNzOnM/by9zOnZvaWQgMCxieXRlczphLHJhdGU6Y3x8dm9pZCAwLGVzdGltYXRlZDpjJiZzJiZvPD1zPyhzLW8pL2M6dm9pZCAwLGV2ZW50Om4sbGVuZ3RoQ29tcHV0YWJsZTpudWxsIT1zLFt0PyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfSl9KSxuKX0sRG49KGUsdCk9Pntjb25zdCBuPW51bGwhPWU7cmV0dXJuW3I9PnRbMF0oe2xlbmd0aENvbXB1dGFibGU6bix0b3RhbDplLGxvYWRlZDpyfSksdFsxXV19LFBuPWU9PiguLi50KT0+JGUuYXNhcCgoKCk9PmUoLi4udCkpKTt2YXIgSW49cG4uaGFzU3RhbmRhcmRCcm93c2VyRW52PygoZSx0KT0+bj0+KG49bmV3IFVSTChuLHBuLm9yaWdpbiksZS5wcm90b2NvbD09PW4ucHJvdG9jb2wmJmUuaG9zdD09PW4uaG9zdCYmKHR8fGUucG9ydD09PW4ucG9ydCkpKShuZXcgVVJMKHBuLm9yaWdpbikscG4ubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KHBuLm5hdmlnYXRvci51c2VyQWdlbnQpKTooKT0+ITAsVW49cG4uaGFzU3RhbmRhcmRCcm93c2VyRW52P3t3cml0ZShlLHQsbixyLGksbyxzKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGRvY3VtZW50KXJldHVybjtjb25zdCBhPVtgJHtlfT0ke2VuY29kZVVSSUNvbXBvbmVudCh0KX1gXTskZS5pc051bWJlcihuKSYmYS5wdXNoKGBleHBpcmVzPSR7bmV3IERhdGUobikudG9VVENTdHJpbmcoKX1gKSwkZS5pc1N0cmluZyhyKSYmYS5wdXNoKGBwYXRoPSR7cn1gKSwkZS5pc1N0cmluZyhpKSYmYS5wdXNoKGBkb21haW49JHtpfWApLCEwPT09byYmYS5wdXNoKCJzZWN1cmUiKSwkZS5pc1N0cmluZyhzKSYmYS5wdXNoKGBTYW1lU2l0ZT0ke3N9YCksZG9jdW1lbnQuY29va2llPWEuam9pbigiOyAiKX0scmVhZChlKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGRvY3VtZW50KXJldHVybiBudWxsO2NvbnN0IHQ9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIig/Ol58OyApIitlKyI9KFteO10qKSIpKTtyZXR1cm4gdD9kZWNvZGVVUklDb21wb25lbnQodFsxXSk6bnVsbH0scmVtb3ZlKGUpe3RoaXMud3JpdGUoZSwiIixEYXRlLm5vdygpLTg2NGU1LCIvIil9fTp7d3JpdGUoKXt9LHJlYWQ6KCk9Pm51bGwscmVtb3ZlKCl7fX07ZnVuY3Rpb24gTG4oZSx0LG4pe2xldCByPSEoInN0cmluZyI9PXR5cGVvZihpPXQpJiYvXihbYS16XVthLXpcZCtcLS5dKjopP1wvXC8vaS50ZXN0KGkpKTt2YXIgaTtyZXR1cm4gZSYmKHJ8fDA9PW4pP2Z1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/ZS5yZXBsYWNlKC9cLz9cLyQvLCIiKSsiLyIrdC5yZXBsYWNlKC9eXC8rLywiIik6ZX0oZSx0KTp0fWNvbnN0IEhuPWU9PmUgaW5zdGFuY2VvZiBSbj97Li4uZX06ZTtmdW5jdGlvbiBNbihlLHQpe3Q9dHx8e307Y29uc3Qgbj17fTtmdW5jdGlvbiByKGUsdCxuLHIpe3JldHVybiAkZS5pc1BsYWluT2JqZWN0KGUpJiYkZS5pc1BsYWluT2JqZWN0KHQpPyRlLm1lcmdlLmNhbGwoe2Nhc2VsZXNzOnJ9LGUsdCk6JGUuaXNQbGFpbk9iamVjdCh0KT8kZS5tZXJnZSh7fSx0KTokZS5pc0FycmF5KHQpP3Quc2xpY2UoKTp0fWZ1bmN0aW9uIGkoZSx0LG4saSl7cmV0dXJuICRlLmlzVW5kZWZpbmVkKHQpPyRlLmlzVW5kZWZpbmVkKGUpP3ZvaWQgMDpyKHZvaWQgMCxlLDAsaSk6cihlLHQsMCxpKX1mdW5jdGlvbiBvKGUsdCl7aWYoISRlLmlzVW5kZWZpbmVkKHQpKXJldHVybiByKHZvaWQgMCx0KX1mdW5jdGlvbiBzKGUsdCl7cmV0dXJuICRlLmlzVW5kZWZpbmVkKHQpPyRlLmlzVW5kZWZpbmVkKGUpP3ZvaWQgMDpyKHZvaWQgMCxlKTpyKHZvaWQgMCx0KX1mdW5jdGlvbiBhKG4saSxvKXtyZXR1cm4gbyBpbiB0P3IobixpKTpvIGluIGU/cih2b2lkIDAsbik6dm9pZCAwfWNvbnN0IGM9e3VybDpvLG1ldGhvZDpvLGRhdGE6byxiYXNlVVJMOnMsdHJhbnNmb3JtUmVxdWVzdDpzLHRyYW5zZm9ybVJlc3BvbnNlOnMscGFyYW1zU2VyaWFsaXplcjpzLHRpbWVvdXQ6cyx0aW1lb3V0TWVzc2FnZTpzLHdpdGhDcmVkZW50aWFsczpzLHdpdGhYU1JGVG9rZW46cyxhZGFwdGVyOnMscmVzcG9uc2VUeXBlOnMseHNyZkNvb2tpZU5hbWU6cyx4c3JmSGVhZGVyTmFtZTpzLG9uVXBsb2FkUHJvZ3Jlc3M6cyxvbkRvd25sb2FkUHJvZ3Jlc3M6cyxkZWNvbXByZXNzOnMsbWF4Q29udGVudExlbmd0aDpzLG1heEJvZHlMZW5ndGg6cyxiZWZvcmVSZWRpcmVjdDpzLHRyYW5zcG9ydDpzLGh0dHBBZ2VudDpzLGh0dHBzQWdlbnQ6cyxjYW5jZWxUb2tlbjpzLHNvY2tldFBhdGg6cyxyZXNwb25zZUVuY29kaW5nOnMsdmFsaWRhdGVTdGF0dXM6YSxoZWFkZXJzOihlLHQsbik9PmkoSG4oZSksSG4odCksMCwhMCl9O3JldHVybiAkZS5mb3JFYWNoKE9iamVjdC5rZXlzKHsuLi5lLC4uLnR9KSwoZnVuY3Rpb24ocil7aWYoIl9fcHJvdG9fXyI9PT1yfHwiY29uc3RydWN0b3IiPT09cnx8InByb3RvdHlwZSI9PT1yKXJldHVybjtjb25zdCBvPSRlLmhhc093blByb3AoYyxyKT9jW3JdOmkscz1vKGVbcl0sdFtyXSxyKTskZS5pc1VuZGVmaW5lZChzKSYmbyE9PWF8fChuW3JdPXMpfSkpLG59dmFyIE5uPWU9Pntjb25zdCB0PU1uKHt9LGUpO2xldHtkYXRhOm4sd2l0aFhTUkZUb2tlbjpyLHhzcmZIZWFkZXJOYW1lOmkseHNyZkNvb2tpZU5hbWU6byxoZWFkZXJzOnMsYXV0aDphfT10O2lmKHQuaGVhZGVycz1zPVJuLmZyb20ocyksdC51cmw9b24oTG4odC5iYXNlVVJMLHQudXJsLHQuYWxsb3dBYnNvbHV0ZVVybHMpLGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplciksYSYmcy5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKGEudXNlcm5hbWV8fCIiKSsiOiIrKGEucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGEucGFzc3dvcmQpKToiIikpKSwkZS5pc0Zvcm1EYXRhKG4pKWlmKHBuLmhhc1N0YW5kYXJkQnJvd3NlckVudnx8cG4uaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KXMuc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKCRlLmlzRnVuY3Rpb24obi5nZXRIZWFkZXJzKSl7Y29uc3QgZT1uLmdldEhlYWRlcnMoKSx0PVsiY29udGVudC10eXBlIiwiY29udGVudC1sZW5ndGgiXTtPYmplY3QuZW50cmllcyhlKS5mb3JFYWNoKCgoW2Usbl0pPT57dC5pbmNsdWRlcyhlLnRvTG93ZXJDYXNlKCkpJiZzLnNldChlLG4pfSkpfWlmKHBuLmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKHImJiRlLmlzRnVuY3Rpb24ocikmJihyPXIodCkpLHJ8fCExIT09ciYmSW4odC51cmwpKSl7Y29uc3QgZT1pJiZvJiZVbi5yZWFkKG8pO2UmJnMuc2V0KGksZSl9cmV0dXJuIHR9O3ZhciBqbj0idW5kZWZpbmVkIiE9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0JiZmdW5jdGlvbihlKXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHQsbil7Y29uc3Qgcj1ObihlKTtsZXQgaT1yLmRhdGE7Y29uc3Qgbz1Sbi5mcm9tKHIuaGVhZGVycykubm9ybWFsaXplKCk7bGV0IHMsYSxjLHUsbCx7cmVzcG9uc2VUeXBlOmQsb25VcGxvYWRQcm9ncmVzczpoLG9uRG93bmxvYWRQcm9ncmVzczpmfT1yO2Z1bmN0aW9uIHAoKXt1JiZ1KCksbCYmbCgpLHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUocyksci5zaWduYWwmJnIuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixzKX1sZXQgZz1uZXcgWE1MSHR0cFJlcXVlc3Q7ZnVuY3Rpb24geSgpe2lmKCFnKXJldHVybjtjb25zdCByPVJuLmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBnJiZnLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKTtDbigoZnVuY3Rpb24oZSl7dChlKSxwKCl9KSwoZnVuY3Rpb24oZSl7bihlKSxwKCl9KSx7ZGF0YTpkJiYidGV4dCIhPT1kJiYianNvbiIhPT1kP2cucmVzcG9uc2U6Zy5yZXNwb25zZVRleHQsc3RhdHVzOmcuc3RhdHVzLHN0YXR1c1RleHQ6Zy5zdGF0dXNUZXh0LGhlYWRlcnM6cixjb25maWc6ZSxyZXF1ZXN0Omd9KSxnPW51bGx9Zy5vcGVuKHIubWV0aG9kLnRvVXBwZXJDYXNlKCksci51cmwsITApLGcudGltZW91dD1yLnRpbWVvdXQsIm9ubG9hZGVuZCJpbiBnP2cub25sb2FkZW5kPXk6Zy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtnJiY0PT09Zy5yZWFkeVN0YXRlJiYoMCE9PWcuc3RhdHVzfHxnLnJlc3BvbnNlVVJMJiYwPT09Zy5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpKSYmc2V0VGltZW91dCh5KX0sZy5vbmFib3J0PWZ1bmN0aW9uKCl7ZyYmKG4obmV3IFZ0KCJSZXF1ZXN0IGFib3J0ZWQiLFZ0LkVDT05OQUJPUlRFRCxlLGcpKSxnPW51bGwpfSxnLm9uZXJyb3I9ZnVuY3Rpb24odCl7Y29uc3Qgcj10JiZ0Lm1lc3NhZ2U/dC5tZXNzYWdlOiJOZXR3b3JrIEVycm9yIixpPW5ldyBWdChyLFZ0LkVSUl9ORVRXT1JLLGUsZyk7aS5ldmVudD10fHxudWxsLG4oaSksZz1udWxsfSxnLm9udGltZW91dD1mdW5jdGlvbigpe2xldCB0PXIudGltZW91dD8idGltZW91dCBvZiAiK3IudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIjtjb25zdCBpPXIudHJhbnNpdGlvbmFsfHxhbjtyLnRpbWVvdXRFcnJvck1lc3NhZ2UmJih0PXIudGltZW91dEVycm9yTWVzc2FnZSksbihuZXcgVnQodCxpLmNsYXJpZnlUaW1lb3V0RXJyb3I/VnQuRVRJTUVET1VUOlZ0LkVDT05OQUJPUlRFRCxlLGcpKSxnPW51bGx9LHZvaWQgMD09PWkmJm8uc2V0Q29udGVudFR5cGUobnVsbCksInNldFJlcXVlc3RIZWFkZXIiaW4gZyYmJGUuZm9yRWFjaChvLnRvSlNPTigpLChmdW5jdGlvbihlLHQpe2cuc2V0UmVxdWVzdEhlYWRlcih0LGUpfSkpLCRlLmlzVW5kZWZpbmVkKHIud2l0aENyZWRlbnRpYWxzKXx8KGcud2l0aENyZWRlbnRpYWxzPSEhci53aXRoQ3JlZGVudGlhbHMpLGQmJiJqc29uIiE9PWQmJihnLnJlc3BvbnNlVHlwZT1yLnJlc3BvbnNlVHlwZSksZiYmKFtjLGxdPU9uKGYsITApLGcuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGMpKSxoJiZnLnVwbG9hZCYmKFthLHVdPU9uKGgpLGcudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixhKSxnLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIix1KSksKHIuY2FuY2VsVG9rZW58fHIuc2lnbmFsKSYmKHM9dD0+e2cmJihuKCF0fHx0LnR5cGU/bmV3IEFuKG51bGwsZSxnKTp0KSxnLmFib3J0KCksZz1udWxsKX0sci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi5zdWJzY3JpYmUocyksci5zaWduYWwmJihyLnNpZ25hbC5hYm9ydGVkP3MoKTpyLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIscykpKTtjb25zdCB2PWZ1bmN0aW9uKGUpe2NvbnN0IHQ9L14oWy0rXHddezEsMjV9KSg6P1wvXC98OikvLmV4ZWMoZSk7cmV0dXJuIHQmJnRbMV18fCIifShyLnVybCk7diYmLTE9PT1wbi5wcm90b2NvbHMuaW5kZXhPZih2KT9uKG5ldyBWdCgiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgIit2KyI6IixWdC5FUlJfQkFEX1JFUVVFU1QsZSkpOmcuc2VuZChpfHxudWxsKX0pKX07dmFyIHhuPShlLHQpPT57Y29uc3R7bGVuZ3RoOm59PWU9ZT9lLmZpbHRlcihCb29sZWFuKTpbXTtpZih0fHxuKXtsZXQgbixyPW5ldyBBYm9ydENvbnRyb2xsZXI7Y29uc3QgaT1mdW5jdGlvbihlKXtpZighbil7bj0hMCxzKCk7Y29uc3QgdD1lIGluc3RhbmNlb2YgRXJyb3I/ZTp0aGlzLnJlYXNvbjtyLmFib3J0KHQgaW5zdGFuY2VvZiBWdD90Om5ldyBBbih0IGluc3RhbmNlb2YgRXJyb3I/dC5tZXNzYWdlOnQpKX19O2xldCBvPXQmJnNldFRpbWVvdXQoKCgpPT57bz1udWxsLGkobmV3IFZ0KGB0aW1lb3V0IG9mICR7dH1tcyBleGNlZWRlZGAsVnQuRVRJTUVET1VUKSl9KSx0KTtjb25zdCBzPSgpPT57ZSYmKG8mJmNsZWFyVGltZW91dChvKSxvPW51bGwsZS5mb3JFYWNoKChlPT57ZS51bnN1YnNjcmliZT9lLnVuc3Vic2NyaWJlKGkpOmUucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGkpfSkpLGU9bnVsbCl9O2UuZm9yRWFjaCgoZT0+ZS5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsaSkpKTtjb25zdHtzaWduYWw6YX09cjtyZXR1cm4gYS51bnN1YnNjcmliZT0oKT0+JGUuYXNhcChzKSxhfX07Y29uc3QgcW49ZnVuY3Rpb24qKGUsdCl7bGV0IG49ZS5ieXRlTGVuZ3RoO2lmKCF0fHxuPHQpcmV0dXJuIHZvaWQoeWllbGQgZSk7bGV0IHIsaT0wO2Zvcig7aTxuOylyPWkrdCx5aWVsZCBlLnNsaWNlKGksciksaT1yfSxCbj1hc3luYyBmdW5jdGlvbiooZSl7aWYoZVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pcmV0dXJuIHZvaWQoeWllbGQqZSk7Y29uc3QgdD1lLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2NvbnN0e2RvbmU6ZSx2YWx1ZTpufT1hd2FpdCB0LnJlYWQoKTtpZihlKWJyZWFrO3lpZWxkIG59fWZpbmFsbHl7YXdhaXQgdC5jYW5jZWwoKX19LEZuPShlLHQsbixyKT0+e2NvbnN0IGk9YXN5bmMgZnVuY3Rpb24qKGUsdCl7Zm9yIGF3YWl0KGNvbnN0IG4gb2YgQm4oZSkpeWllbGQqcW4obix0KX0oZSx0KTtsZXQgbyxzPTAsYT1lPT57b3x8KG89ITAsciYmcihlKSl9O3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe2FzeW5jIHB1bGwoZSl7dHJ5e2NvbnN0e2RvbmU6dCx2YWx1ZTpyfT1hd2FpdCBpLm5leHQoKTtpZih0KXJldHVybiBhKCksdm9pZCBlLmNsb3NlKCk7bGV0IG89ci5ieXRlTGVuZ3RoO2lmKG4pe2xldCBlPXMrPW87bihlKX1lLmVucXVldWUobmV3IFVpbnQ4QXJyYXkocikpfWNhdGNoKGUpe3Rocm93IGEoZSksZX19LGNhbmNlbDplPT4oYShlKSxpLnJldHVybigpKX0se2hpZ2hXYXRlck1hcms6Mn0pfSx7aXNGdW5jdGlvbjpLbn09JGUsSm49KCh7UmVxdWVzdDplLFJlc3BvbnNlOnR9KT0+KHtSZXF1ZXN0OmUsUmVzcG9uc2U6dH0pKSgkZS5nbG9iYWwpLHtSZWFkYWJsZVN0cmVhbTpXbixUZXh0RW5jb2Rlcjokbn09JGUuZ2xvYmFsLHpuPShlLC4uLnQpPT57dHJ5e3JldHVybiEhZSguLi50KX1jYXRjaChlKXtyZXR1cm4hMX19LFZuPWU9PntlPSRlLm1lcmdlLmNhbGwoe3NraXBVbmRlZmluZWQ6ITB9LEpuLGUpO2NvbnN0e2ZldGNoOnQsUmVxdWVzdDpuLFJlc3BvbnNlOnJ9PWUsaT10P0tuKHQpOiJmdW5jdGlvbiI9PXR5cGVvZiBmZXRjaCxvPUtuKG4pLHM9S24ocik7aWYoIWkpcmV0dXJuITE7Y29uc3QgYT1pJiZLbihXbiksYz1pJiYoImZ1bmN0aW9uIj09dHlwZW9mICRuPyhlPT50PT5lLmVuY29kZSh0KSkobmV3ICRuKTphc3luYyBlPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgbihlKS5hcnJheUJ1ZmZlcigpKSksdT1vJiZhJiZ6bigoKCk9PntsZXQgZT0hMTtjb25zdCB0PW5ldyBuKHBuLm9yaWdpbix7Ym9keTpuZXcgV24sbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIGU9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gZSYmIXR9KSksbD1zJiZhJiZ6bigoKCk9PiRlLmlzUmVhZGFibGVTdHJlYW0obmV3IHIoIiIpLmJvZHkpKSksZD17c3RyZWFtOmwmJihlPT5lLmJvZHkpfTtpJiZbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goKGU9PnshZFtlXSYmKGRbZV09KHQsbik9PntsZXQgcj10JiZ0W2VdO2lmKHIpcmV0dXJuIHIuY2FsbCh0KTt0aHJvdyBuZXcgVnQoYFJlc3BvbnNlIHR5cGUgJyR7ZX0nIGlzIG5vdCBzdXBwb3J0ZWRgLFZ0LkVSUl9OT1RfU1VQUE9SVCxuKX0pfSkpO2NvbnN0IGg9YXN5bmMoZSx0KT0+e2NvbnN0IHI9JGUudG9GaW5pdGVOdW1iZXIoZS5nZXRDb250ZW50TGVuZ3RoKCkpO3JldHVybiBudWxsPT1yPyhhc3luYyBlPT57aWYobnVsbD09ZSlyZXR1cm4gMDtpZigkZS5pc0Jsb2IoZSkpcmV0dXJuIGUuc2l6ZTtpZigkZS5pc1NwZWNDb21wbGlhbnRGb3JtKGUpKXtjb25zdCB0PW5ldyBuKHBuLm9yaWdpbix7bWV0aG9kOiJQT1NUIixib2R5OmV9KTtyZXR1cm4oYXdhaXQgdC5hcnJheUJ1ZmZlcigpKS5ieXRlTGVuZ3RofXJldHVybiAkZS5pc0FycmF5QnVmZmVyVmlldyhlKXx8JGUuaXNBcnJheUJ1ZmZlcihlKT9lLmJ5dGVMZW5ndGg6KCRlLmlzVVJMU2VhcmNoUGFyYW1zKGUpJiYoZSs9IiIpLCRlLmlzU3RyaW5nKGUpPyhhd2FpdCBjKGUpKS5ieXRlTGVuZ3RoOnZvaWQgMCl9KSh0KTpyfTtyZXR1cm4gYXN5bmMgZT0+e2xldHt1cmw6aSxtZXRob2Q6cyxkYXRhOmEsc2lnbmFsOmMsY2FuY2VsVG9rZW46Zix0aW1lb3V0OnAsb25Eb3dubG9hZFByb2dyZXNzOmcsb25VcGxvYWRQcm9ncmVzczp5LHJlc3BvbnNlVHlwZTp2LGhlYWRlcnM6bSx3aXRoQ3JlZGVudGlhbHM6dz0ic2FtZS1vcmlnaW4iLGZldGNoT3B0aW9uczpifT1ObihlKSxfPXR8fGZldGNoO3Y9dj8odisiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IFM9eG4oW2MsZiYmZi50b0Fib3J0U2lnbmFsKCldLHApLEU9bnVsbDtjb25zdCBSPVMmJlMudW5zdWJzY3JpYmUmJigoKT0+e1MudW5zdWJzY3JpYmUoKX0pO2xldCBUO3RyeXtpZih5JiZ1JiYiZ2V0IiE9PXMmJiJoZWFkIiE9PXMmJjAhPT0oVD1hd2FpdCBoKG0sYSkpKXtsZXQgZSx0PW5ldyBuKGkse21ldGhvZDoiUE9TVCIsYm9keTphLGR1cGxleDoiaGFsZiJ9KTtpZigkZS5pc0Zvcm1EYXRhKGEpJiYoZT10LmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJm0uc2V0Q29udGVudFR5cGUoZSksdC5ib2R5KXtjb25zdFtlLG5dPURuKFQsT24oUG4oeSkpKTthPUZuKHQuYm9keSw2NTUzNixlLG4pfX0kZS5pc1N0cmluZyh3KXx8KHc9dz8iaW5jbHVkZSI6Im9taXQiKTtjb25zdCB0PW8mJiJjcmVkZW50aWFscyJpbiBuLnByb3RvdHlwZSxjPXsuLi5iLHNpZ25hbDpTLG1ldGhvZDpzLnRvVXBwZXJDYXNlKCksaGVhZGVyczptLm5vcm1hbGl6ZSgpLnRvSlNPTigpLGJvZHk6YSxkdXBsZXg6ImhhbGYiLGNyZWRlbnRpYWxzOnQ/dzp2b2lkIDB9O0U9byYmbmV3IG4oaSxjKTtsZXQgZj1hd2FpdChvP18oRSxiKTpfKGksYykpO2NvbnN0IHA9bCYmKCJzdHJlYW0iPT09dnx8InJlc3BvbnNlIj09PXYpO2lmKGwmJihnfHxwJiZSKSl7Y29uc3QgZT17fTtbInN0YXR1cyIsInN0YXR1c1RleHQiLCJoZWFkZXJzIl0uZm9yRWFjaCgodD0+e2VbdF09Zlt0XX0pKTtjb25zdCB0PSRlLnRvRmluaXRlTnVtYmVyKGYuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtuLGldPWcmJkRuKHQsT24oUG4oZyksITApKXx8W107Zj1uZXcgcihGbihmLmJvZHksNjU1MzYsbiwoKCk9PntpJiZpKCksUiYmUigpfSkpLGUpfXY9dnx8InRleHQiO2xldCBrPWF3YWl0IGRbJGUuZmluZEtleShkLHYpfHwidGV4dCJdKGYsZSk7cmV0dXJuIXAmJlImJlIoKSxhd2FpdCBuZXcgUHJvbWlzZSgoKHQsbik9PntDbih0LG4se2RhdGE6ayxoZWFkZXJzOlJuLmZyb20oZi5oZWFkZXJzKSxzdGF0dXM6Zi5zdGF0dXMsc3RhdHVzVGV4dDpmLnN0YXR1c1RleHQsY29uZmlnOmUscmVxdWVzdDpFfSl9KSl9Y2F0Y2godCl7aWYoUiYmUigpLHQmJiJUeXBlRXJyb3IiPT09dC5uYW1lJiYvTG9hZCBmYWlsZWR8ZmV0Y2gvaS50ZXN0KHQubWVzc2FnZSkpdGhyb3cgT2JqZWN0LmFzc2lnbihuZXcgVnQoIk5ldHdvcmsgRXJyb3IiLFZ0LkVSUl9ORVRXT1JLLGUsRSx0JiZ0LnJlc3BvbnNlKSx7Y2F1c2U6dC5jYXVzZXx8dH0pO3Rocm93IFZ0LmZyb20odCx0JiZ0LmNvZGUsZSxFLHQmJnQucmVzcG9uc2UpfX19LFluPW5ldyBNYXAsR249ZT0+e2xldCB0PWUmJmUuZW52fHx7fTtjb25zdHtmZXRjaDpuLFJlcXVlc3Q6cixSZXNwb25zZTppfT10LG89W3IsaSxuXTtsZXQgcyxhLGM9by5sZW5ndGgsdT1Zbjtmb3IoO2MtLTspcz1vW2NdLGE9dS5nZXQocyksdm9pZCAwPT09YSYmdS5zZXQocyxhPWM/bmV3IE1hcDpWbih0KSksdT1hO3JldHVybiBhfTtHbigpO2NvbnN0IFhuPXtodHRwOm51bGwseGhyOmpuLGZldGNoOntnZXQ6R259fTskZS5mb3JFYWNoKFhuLCgoZSx0KT0+e2lmKGUpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwibmFtZSIse3ZhbHVlOnR9KX1jYXRjaChlKXt9T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImFkYXB0ZXJOYW1lIix7dmFsdWU6dH0pfX0pKTtjb25zdCBabj1lPT5gLSAke2V9YCxRbj1lPT4kZS5pc0Z1bmN0aW9uKGUpfHxudWxsPT09ZXx8ITE9PT1lO3ZhciBlcj17Z2V0QWRhcHRlcjpmdW5jdGlvbihlLHQpe2U9JGUuaXNBcnJheShlKT9lOltlXTtjb25zdHtsZW5ndGg6bn09ZTtsZXQgcixpO2NvbnN0IG89e307Zm9yKGxldCBzPTA7czxuO3MrKyl7bGV0IG47aWYocj1lW3NdLGk9ciwhUW4ocikmJihpPVhuWyhuPVN0cmluZyhyKSkudG9Mb3dlckNhc2UoKV0sdm9pZCAwPT09aSkpdGhyb3cgbmV3IFZ0KGBVbmtub3duIGFkYXB0ZXIgJyR7bn0nYCk7aWYoaSYmKCRlLmlzRnVuY3Rpb24oaSl8fChpPWkuZ2V0KHQpKSkpYnJlYWs7b1tufHwiIyIrc109aX1pZighaSl7Y29uc3QgZT1PYmplY3QuZW50cmllcyhvKS5tYXAoKChbZSx0XSk9PmBhZGFwdGVyICR7ZX0gYCsoITE9PT10PyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpKTtsZXQgdD1uP2UubGVuZ3RoPjE/InNpbmNlIDpcbiIrZS5tYXAoWm4pLmpvaW4oIlxuIik6IiAiK1puKGVbMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IFZ0KCJUaGVyZSBpcyBubyBzdWl0YWJsZSBhZGFwdGVyIHRvIGRpc3BhdGNoIHRoZSByZXF1ZXN0ICIrdCwiRVJSX05PVF9TVVBQT1JUIil9cmV0dXJuIGl9LGFkYXB0ZXJzOlhufTtmdW5jdGlvbiB0cihlKXtpZihlLmNhbmNlbFRva2VuJiZlLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxlLnNpZ25hbCYmZS5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgQW4obnVsbCxlKX1mdW5jdGlvbiBucihlKXt0cihlKSxlLmhlYWRlcnM9Um4uZnJvbShlLmhlYWRlcnMpLGUuZGF0YT1Ubi5jYWxsKGUsZS50cmFuc2Zvcm1SZXF1ZXN0KSwtMSE9PVsicG9zdCIsInB1dCIsInBhdGNoIl0uaW5kZXhPZihlLm1ldGhvZCkmJmUuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSk7cmV0dXJuIGVyLmdldEFkYXB0ZXIoZS5hZGFwdGVyfHx2bi5hZGFwdGVyLGUpKGUpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0cihlKSx0LmRhdGE9VG4uY2FsbChlLGUudHJhbnNmb3JtUmVzcG9uc2UsdCksdC5oZWFkZXJzPVJuLmZyb20odC5oZWFkZXJzKSx0fSksKGZ1bmN0aW9uKHQpe3JldHVybiBrbih0KXx8KHRyKGUpLHQmJnQucmVzcG9uc2UmJih0LnJlc3BvbnNlLmRhdGE9VG4uY2FsbChlLGUudHJhbnNmb3JtUmVzcG9uc2UsdC5yZXNwb25zZSksdC5yZXNwb25zZS5oZWFkZXJzPVJuLmZyb20odC5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KHQpfSkpfWNvbnN0IHJyPSIxLjEzLjYiLGlyPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoKGUsdCk9PntpcltlXT1mdW5jdGlvbihuKXtyZXR1cm4gdHlwZW9mIG49PT1lfHwiYSIrKHQ8MT8ibiAiOiIgIikrZX19KSk7Y29uc3Qgb3I9e307aXIudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKGUsdCxuKXtmdW5jdGlvbiByKGUsdCl7cmV0dXJuIltBeGlvcyB2MS4xMy42XSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK2UrIiciK3QrKG4/Ii4gIituOiIiKX1yZXR1cm4obixpLG8pPT57aWYoITE9PT1lKXRocm93IG5ldyBWdChyKGksIiBoYXMgYmVlbiByZW1vdmVkIisodD8iIGluICIrdDoiIikpLFZ0LkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gdCYmIW9yW2ldJiYob3JbaV09ITAsY29uc29sZS53YXJuKHIoaSwiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrdCsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSwhZXx8ZShuLGksbyl9fSxpci5zcGVsbGluZz1mdW5jdGlvbihlKXtyZXR1cm4odCxuKT0+KGNvbnNvbGUud2FybihgJHtufSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke2V9YCksITApfTt2YXIgc3I9e2Fzc2VydE9wdGlvbnM6ZnVuY3Rpb24oZSx0LG4pe2lmKCJvYmplY3QiIT10eXBlb2YgZSl0aHJvdyBuZXcgVnQoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiLFZ0LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb25zdCByPU9iamVjdC5rZXlzKGUpO2xldCBpPXIubGVuZ3RoO2Zvcig7aS0tID4wOyl7Y29uc3Qgbz1yW2ldLHM9dFtvXTtpZihzKXtjb25zdCB0PWVbb10sbj12b2lkIDA9PT10fHxzKHQsbyxlKTtpZighMCE9PW4pdGhyb3cgbmV3IFZ0KCJvcHRpb24gIitvKyIgbXVzdCBiZSAiK24sVnQuRVJSX0JBRF9PUFRJT05fVkFMVUUpfWVsc2UgaWYoITAhPT1uKXRocm93IG5ldyBWdCgiVW5rbm93biBvcHRpb24gIitvLFZ0LkVSUl9CQURfT1BUSU9OKX19LHZhbGlkYXRvcnM6aXJ9O2NvbnN0IGFyPXNyLnZhbGlkYXRvcnM7Y2xhc3MgY3J7Y29uc3RydWN0b3IoZSl7dGhpcy5kZWZhdWx0cz1lfHx7fSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgc24scmVzcG9uc2U6bmV3IHNufX1hc3luYyByZXF1ZXN0KGUsdCl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KGUsdCl9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIEVycm9yKXtsZXQgdD17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0KTp0PW5ldyBFcnJvcjtjb25zdCBuPXQuc3RhY2s/dC5zdGFjay5yZXBsYWNlKC9eLitcbi8sIiIpOiIiO3RyeXtlLnN0YWNrP24mJiFTdHJpbmcoZS5zdGFjaykuZW5kc1dpdGgobi5yZXBsYWNlKC9eLitcbi4rXG4vLCIiKSkmJihlLnN0YWNrKz0iXG4iK24pOmUuc3RhY2s9bn1jYXRjaChlKXt9fXRocm93IGV9fV9yZXF1ZXN0KGUsdCl7InN0cmluZyI9PXR5cGVvZiBlPyh0PXR8fHt9KS51cmw9ZTp0PWV8fHt9LHQ9TW4odGhpcy5kZWZhdWx0cyx0KTtjb25zdHt0cmFuc2l0aW9uYWw6bixwYXJhbXNTZXJpYWxpemVyOnIsaGVhZGVyczppfT10O3ZvaWQgMCE9PW4mJnNyLmFzc2VydE9wdGlvbnMobix7c2lsZW50SlNPTlBhcnNpbmc6YXIudHJhbnNpdGlvbmFsKGFyLmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOmFyLnRyYW5zaXRpb25hbChhci5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOmFyLnRyYW5zaXRpb25hbChhci5ib29sZWFuKSxsZWdhY3lJbnRlcmNlcHRvclJlcVJlc09yZGVyaW5nOmFyLnRyYW5zaXRpb25hbChhci5ib29sZWFuKX0sITEpLG51bGwhPXImJigkZS5pc0Z1bmN0aW9uKHIpP3QucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOnJ9OnNyLmFzc2VydE9wdGlvbnMocix7ZW5jb2RlOmFyLmZ1bmN0aW9uLHNlcmlhbGl6ZTphci5mdW5jdGlvbn0sITApKSx2b2lkIDAhPT10LmFsbG93QWJzb2x1dGVVcmxzfHwodm9pZCAwIT09dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscz90LmFsbG93QWJzb2x1dGVVcmxzPXRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHM6dC5hbGxvd0Fic29sdXRlVXJscz0hMCksc3IuYXNzZXJ0T3B0aW9ucyh0LHtiYXNlVXJsOmFyLnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjphci5zcGVsbGluZygid2l0aFhTUkZUb2tlbiIpfSwhMCksdC5tZXRob2Q9KHQubWV0aG9kfHx0aGlzLmRlZmF1bHRzLm1ldGhvZHx8ImdldCIpLnRvTG93ZXJDYXNlKCk7bGV0IG89aSYmJGUubWVyZ2UoaS5jb21tb24saVt0Lm1ldGhvZF0pO2kmJiRlLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sKGU9PntkZWxldGUgaVtlXX0pKSx0LmhlYWRlcnM9Um4uY29uY2F0KG8saSk7Y29uc3Qgcz1bXTtsZXQgYT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goKGZ1bmN0aW9uKGUpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLnJ1bldoZW4mJiExPT09ZS5ydW5XaGVuKHQpKXJldHVybjthPWEmJmUuc3luY2hyb25vdXM7Y29uc3Qgbj10LnRyYW5zaXRpb25hbHx8YW47biYmbi5sZWdhY3lJbnRlcmNlcHRvclJlcVJlc09yZGVyaW5nP3MudW5zaGlmdChlLmZ1bGZpbGxlZCxlLnJlamVjdGVkKTpzLnB1c2goZS5mdWxmaWxsZWQsZS5yZWplY3RlZCl9KSk7Y29uc3QgYz1bXTtsZXQgdTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKChmdW5jdGlvbihlKXtjLnB1c2goZS5mdWxmaWxsZWQsZS5yZWplY3RlZCl9KSk7bGV0IGwsZD0wO2lmKCFhKXtjb25zdCBlPVtuci5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKGUudW5zaGlmdCguLi5zKSxlLnB1c2goLi4uYyksbD1lLmxlbmd0aCx1PVByb21pc2UucmVzb2x2ZSh0KTtkPGw7KXU9dS50aGVuKGVbZCsrXSxlW2QrK10pO3JldHVybiB1fWw9cy5sZW5ndGg7bGV0IGg9dDtmb3IoO2Q8bDspe2NvbnN0IGU9c1tkKytdLHQ9c1tkKytdO3RyeXtoPWUoaCl9Y2F0Y2goZSl7dC5jYWxsKHRoaXMsZSk7YnJlYWt9fXRyeXt1PW5yLmNhbGwodGhpcyxoKX1jYXRjaChlKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoZSl9Zm9yKGQ9MCxsPWMubGVuZ3RoO2Q8bDspdT11LnRoZW4oY1tkKytdLGNbZCsrXSk7cmV0dXJuIHV9Z2V0VXJpKGUpe3JldHVybiBvbihMbigoZT1Nbih0aGlzLmRlZmF1bHRzLGUpKS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpLGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplcil9fSRlLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLChmdW5jdGlvbihlKXtjci5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxuKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KE1uKG58fHt9LHttZXRob2Q6ZSx1cmw6dCxkYXRhOihufHx7fSkuZGF0YX0pKX19KSksJGUuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLChmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQpe3JldHVybiBmdW5jdGlvbihuLHIsaSl7cmV0dXJuIHRoaXMucmVxdWVzdChNbihpfHx7fSx7bWV0aG9kOmUsaGVhZGVyczp0P3siQ29udGVudC1UeXBlIjoibXVsdGlwYXJ0L2Zvcm0tZGF0YSJ9Ont9LHVybDpuLGRhdGE6cn0pKX19Y3IucHJvdG90eXBlW2VdPXQoKSxjci5wcm90b3R5cGVbZSsiRm9ybSJdPXQoITApfSkpO3ZhciB1cj1jcjtjbGFzcyBscntjb25zdHJ1Y3RvcihlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IHQ7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKChmdW5jdGlvbihlKXt0PWV9KSk7Y29uc3Qgbj10aGlzO3RoaXMucHJvbWlzZS50aGVuKChlPT57aWYoIW4uX2xpc3RlbmVycylyZXR1cm47bGV0IHQ9bi5fbGlzdGVuZXJzLmxlbmd0aDtmb3IoO3QtLSA+MDspbi5fbGlzdGVuZXJzW3RdKGUpO24uX2xpc3RlbmVycz1udWxsfSkpLHRoaXMucHJvbWlzZS50aGVuPWU9PntsZXQgdDtjb25zdCByPW5ldyBQcm9taXNlKChlPT57bi5zdWJzY3JpYmUoZSksdD1lfSkpLnRoZW4oZSk7cmV0dXJuIHIuY2FuY2VsPWZ1bmN0aW9uKCl7bi51bnN1YnNjcmliZSh0KX0scn0sZSgoZnVuY3Rpb24oZSxyLGkpe24ucmVhc29ufHwobi5yZWFzb249bmV3IEFuKGUscixpKSx0KG4ucmVhc29uKSl9KSl9dGhyb3dJZlJlcXVlc3RlZCgpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufXN1YnNjcmliZShlKXt0aGlzLnJlYXNvbj9lKHRoaXMucmVhc29uKTp0aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2goZSk6dGhpcy5fbGlzdGVuZXJzPVtlXX11bnN1YnNjcmliZShlKXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtjb25zdCB0PXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKGUpOy0xIT09dCYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZSh0LDEpfXRvQWJvcnRTaWduYWwoKXtjb25zdCBlPW5ldyBBYm9ydENvbnRyb2xsZXIsdD10PT57ZS5hYm9ydCh0KX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKHQpLGUuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKHQpLGUuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgZTtjb25zdCB0PW5ldyBscigoZnVuY3Rpb24odCl7ZT10fSkpO3JldHVybnt0b2tlbjp0LGNhbmNlbDplfX19dmFyIGRyPWxyO2NvbnN0IGhyPXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExLFdlYlNlcnZlcklzRG93bjo1MjEsQ29ubmVjdGlvblRpbWVkT3V0OjUyMixPcmlnaW5Jc1VucmVhY2hhYmxlOjUyMyxUaW1lb3V0T2NjdXJyZWQ6NTI0LFNzbEhhbmRzaGFrZUZhaWxlZDo1MjUsSW52YWxpZFNzbENlcnRpZmljYXRlOjUyNn07T2JqZWN0LmVudHJpZXMoaHIpLmZvckVhY2goKChbZSx0XSk9Pntoclt0XT1lfSkpO3ZhciBmcj1ocjtjb25zdCBwcj1mdW5jdGlvbiBlKHQpe2NvbnN0IG49bmV3IHVyKHQpLHI9ZWUodXIucHJvdG90eXBlLnJlcXVlc3Qsbik7cmV0dXJuICRlLmV4dGVuZChyLHVyLnByb3RvdHlwZSxuLHthbGxPd25LZXlzOiEwfSksJGUuZXh0ZW5kKHIsbixudWxsLHthbGxPd25LZXlzOiEwfSksci5jcmVhdGU9ZnVuY3Rpb24obil7cmV0dXJuIGUoTW4odCxuKSl9LHJ9KHZuKTtwci5BeGlvcz11cixwci5DYW5jZWxlZEVycm9yPUFuLHByLkNhbmNlbFRva2VuPWRyLHByLmlzQ2FuY2VsPWtuLHByLlZFUlNJT049cnIscHIudG9Gb3JtRGF0YT1RdCxwci5BeGlvc0Vycm9yPVZ0LHByLkNhbmNlbD1wci5DYW5jZWxlZEVycm9yLHByLmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9LHByLnNwcmVhZD1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkobnVsbCx0KX19LHByLmlzQXhpb3NFcnJvcj1mdW5jdGlvbihlKXtyZXR1cm4gJGUuaXNPYmplY3QoZSkmJiEwPT09ZS5pc0F4aW9zRXJyb3J9LHByLm1lcmdlQ29uZmlnPU1uLHByLkF4aW9zSGVhZGVycz1Sbixwci5mb3JtVG9KU09OPWU9PmduKCRlLmlzSFRNTEZvcm0oZSk/bmV3IEZvcm1EYXRhKGUpOmUpLHByLmdldEFkYXB0ZXI9ZXIuZ2V0QWRhcHRlcixwci5IdHRwU3RhdHVzQ29kZT1mcixwci5kZWZhdWx0PXByO3ZhciBncix5cj1wcjtsZXQgdnI9Z3I9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmF0dGFjaFRva2VuPSgpPT5Qcm9taXNlLnJlc29sdmUoKSx0aGlzLnJlcXVlc3RTdGFydENhbGxiYWNrPSgpPT5udWxsLHRoaXMucmVxdWVzdFN1Y2Nlc3NDYWxsYmFjaz0oKT0+bnVsbCx0aGlzLnJlcXVlc3RFcnJvckNhbGxiYWNrPSgpPT5udWxsLHRoaXMucmVxdWVzdEZpbmlzaENhbGxiYWNrPSgpPT5udWxsLHRoaXMuaW5pdD10aGlzLmluaXQuYmluZCh0aGlzKSx0aGlzLnNldEh0dHBSZXF1ZXN0RXJyb3JDYWxsYmFjaz10aGlzLnNldEh0dHBSZXF1ZXN0RXJyb3JDYWxsYmFjay5iaW5kKHRoaXMpLHRoaXMuc2V0SHR0cFJlcXVlc3RGaW5pc2hDYWxsYmFjaz10aGlzLnNldEh0dHBSZXF1ZXN0RmluaXNoQ2FsbGJhY2suYmluZCh0aGlzKSx0aGlzLnNldEh0dHBSZXF1ZXN0U3RhcnRDYWxsYmFjaz10aGlzLnNldEh0dHBSZXF1ZXN0U3RhcnRDYWxsYmFjay5iaW5kKHRoaXMpLHRoaXMuc2V0SHR0cFJlcXVlc3RTdWNjZXNzQ2FsbGJhY2s9dGhpcy5zZXRIdHRwUmVxdWVzdFN1Y2Nlc3NDYWxsYmFjay5iaW5kKHRoaXMpfXN0YXRpYyBnZXRJbnN0YW5jZSgpe3JldHVybiB0aGlzLmF4aW9zSW5zdGFuY2V8fCh0aGlzLmF4aW9zSW5zdGFuY2U9eXIuY3JlYXRlKHt3aXRoQ3JlZGVudGlhbHM6ITB9KSx0aGlzLmNsaWVudEluc3RhbmNlfHwodGhpcy5jbGllbnRJbnN0YW5jZT1uZXcgZ3IpLHRoaXMuYXhpb3NJbnN0YW5jZS5pbnRlcmNlcHRvcnMucmVxdWVzdC51c2UoKHQ9PmUodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4geWllbGQgdGhpcy5jbGllbnRJbnN0YW5jZS5yZXF1ZXN0SGFuZGxlcih0KX0pKSkpLHRoaXMuYXhpb3NJbnN0YW5jZS5pbnRlcmNlcHRvcnMucmVzcG9uc2UudXNlKChlPT50aGlzLmNsaWVudEluc3RhbmNlLnN1Y2Nlc3NIYW5kbGVyKGUpKSwoZT0+dGhpcy5jbGllbnRJbnN0YW5jZS5lcnJvckhhbmRsZXIoZSkpKSx0aGlzLmF4aW9zSW5zdGFuY2UuYWxsPXlyLmFsbCx0aGlzLmF4aW9zSW5zdGFuY2Uuc3ByZWFkPXlyLnNwcmVhZCx0aGlzLmF4aW9zSW5zdGFuY2UuaW5pdD10aGlzLmNsaWVudEluc3RhbmNlLmluaXQsdGhpcy5heGlvc0luc3RhbmNlLmVuYWJsZUhhbmRsZXI9dGhpcy5jbGllbnRJbnN0YW5jZS5lbmFibGVIYW5kbGVyLHRoaXMuYXhpb3NJbnN0YW5jZS5kaXNhYmxlSGFuZGxlcj10aGlzLmNsaWVudEluc3RhbmNlLmRpc2FibGVIYW5kbGVyLHRoaXMuYXhpb3NJbnN0YW5jZS5kaXNhYmxlSGFuZGxlcldpdGhUaW1lb3V0PXRoaXMuY2xpZW50SW5zdGFuY2UuZGlzYWJsZUhhbmRsZXJXaXRoVGltZW91dCx0aGlzLmF4aW9zSW5zdGFuY2Uuc2V0SHR0cFJlcXVlc3RTdGFydENhbGxiYWNrPXRoaXMuY2xpZW50SW5zdGFuY2Uuc2V0SHR0cFJlcXVlc3RTdGFydENhbGxiYWNrLHRoaXMuYXhpb3NJbnN0YW5jZS5zZXRIdHRwUmVxdWVzdFN1Y2Nlc3NDYWxsYmFjaz10aGlzLmNsaWVudEluc3RhbmNlLnNldEh0dHBSZXF1ZXN0U3VjY2Vzc0NhbGxiYWNrLHRoaXMuYXhpb3NJbnN0YW5jZS5zZXRIdHRwUmVxdWVzdEVycm9yQ2FsbGJhY2s9dGhpcy5jbGllbnRJbnN0YW5jZS5zZXRIdHRwUmVxdWVzdEVycm9yQ2FsbGJhY2ssdGhpcy5heGlvc0luc3RhbmNlLnNldEh0dHBSZXF1ZXN0RmluaXNoQ2FsbGJhY2s9dGhpcy5jbGllbnRJbnN0YW5jZS5zZXRIdHRwUmVxdWVzdEZpbmlzaENhbGxiYWNrKSx0aGlzLmF4aW9zSW5zdGFuY2V9cmVxdWVzdEhhbmRsZXIodCl7cmV0dXJuIGUodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtpZih5aWVsZCB0aGlzLmF0dGFjaFRva2VuKHQpLG51bGw9PXQ/dm9pZCAwOnQuc2hvdWxkRW5jb2RlVG9Gb3JtRGF0YSl7Y29uc3QgZT1udWxsPT10P3ZvaWQgMDp0LmRhdGEsbj1uZXcgRm9ybURhdGE7T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgodD0+e24uYXBwZW5kKHQsZVt0XSl9KSksdC5kYXRhPW59cmV0dXJuIHQuc3RhcnRUaW1lSW5Ncz0obmV3IERhdGUpLmdldFRpbWUoKSxnci5pc0hhbmRsZXJFbmFibGVkJiZ0aGlzLnJlcXVlc3RTdGFydENhbGxiYWNrJiYiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5yZXF1ZXN0U3RhcnRDYWxsYmFjayYmdGhpcy5yZXF1ZXN0U3RhcnRDYWxsYmFjayh0KSx0fSkpfWVycm9ySGFuZGxlcihlKXt0aHJvdyBnci5pc0hhbmRsZXJFbmFibGVkJiYodGhpcy5yZXF1ZXN0RXJyb3JDYWxsYmFjayYmImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMucmVxdWVzdEVycm9yQ2FsbGJhY2smJnRoaXMucmVxdWVzdEVycm9yQ2FsbGJhY2soZSksdGhpcy5yZXF1ZXN0RmluaXNoQ2FsbGJhY2smJiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnJlcXVlc3RGaW5pc2hDYWxsYmFjayYmdGhpcy5yZXF1ZXN0RmluaXNoQ2FsbGJhY2soKSksZX1zdWNjZXNzSGFuZGxlcihlKXt2YXIgdCxuO3JldHVybiJzdHJlYW0iPT09KG51bGw9PT0obj1udWxsPT09KHQ9ZSl8fHZvaWQgMD09PXQ/dm9pZCAwOnQuY29uZmlnKXx8dm9pZCAwPT09bj92b2lkIDA6bi5yZXNwb25zZVR5cGUpfHxnci5pc0hhbmRsZXJFbmFibGVkJiYodGhpcy5yZXF1ZXN0U3VjY2Vzc0NhbGxiYWNrJiYiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5yZXF1ZXN0U3VjY2Vzc0NhbGxiYWNrJiZ0aGlzLnJlcXVlc3RTdWNjZXNzQ2FsbGJhY2soZSksdGhpcy5yZXF1ZXN0RmluaXNoQ2FsbGJhY2smJiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnJlcXVlc3RGaW5pc2hDYWxsYmFjayYmdGhpcy5yZXF1ZXN0RmluaXNoQ2FsbGJhY2soKSksZX1pbml0KHQ9ITAsbil7cmV0dXJuIGUodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtnci5pc0hhbmRsZXJFbmFibGVkPXQsdGhpcy5hdHRhY2hUb2tlbj1ufSkpfWVuYWJsZUhhbmRsZXIoKXtnci5pc0hhbmRsZXJFbmFibGVkPSEwfWRpc2FibGVIYW5kbGVyKCl7Z3IuaXNIYW5kbGVyRW5hYmxlZD0hMX1kaXNhYmxlSGFuZGxlcldpdGhUaW1lb3V0KGU9Z3IuREVGQVVMVF9IQU5ETEVSX0RJU0FCTEVfVElNRU9VVCl7Z3IuaXNIYW5kbGVyRW5hYmxlZD0hMSxzZXRUaW1lb3V0KCgoKT0+e2dyLmlzSGFuZGxlckVuYWJsZWQ9ITB9KSxlKX1zZXRIdHRwUmVxdWVzdFN0YXJ0Q2FsbGJhY2soZSl7dGhpcy5yZXF1ZXN0U3RhcnRDYWxsYmFjaz1lfXNldEh0dHBSZXF1ZXN0U3VjY2Vzc0NhbGxiYWNrKGUpe3RoaXMucmVxdWVzdFN1Y2Nlc3NDYWxsYmFjaz1lfXNldEh0dHBSZXF1ZXN0RXJyb3JDYWxsYmFjayhlKXt0aGlzLnJlcXVlc3RFcnJvckNhbGxiYWNrPWV9c2V0SHR0cFJlcXVlc3RGaW5pc2hDYWxsYmFjayhlKXt0aGlzLnJlcXVlc3RGaW5pc2hDYWxsYmFjaz1lfX07dnIuREVGQVVMVF9IQU5ETEVSX0RJU0FCTEVfVElNRU9VVD0xZTMsdnI9Z3I9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGksbz1hcmd1bWVudHMubGVuZ3RoLHM9bzwzP3Q6bnVsbD09PXI/cj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik6cjtpZigib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJiJmdW5jdGlvbiI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKXM9UmVmbGVjdC5kZWNvcmF0ZShlLHQsbixyKTtlbHNlIGZvcih2YXIgYT1lLmxlbmd0aC0xO2E+PTA7YS0tKShpPWVbYV0pJiYocz0obzwzP2kocyk6bz4zP2kodCxuLHMpOmkodCxuKSl8fHMpO3JldHVybiBvPjMmJnMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LG4scyksc30oW2U9Pnt9XSx2cik7Y2xhc3MgbXJ7Y29uc3RydWN0b3IoKXt0aGlzLl9kYXRhPW5ldyBNYXB9c2V0RGF0YSh0LG4pe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7dGhpcy5fZGF0YS5zZXQodCxuKX0pKX1nZXREYXRhKHQpe3ZhciBuLHI7cmV0dXJuIGUodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gbnVsbCE9PShyPW51bGw9PT0obj10aGlzLl9kYXRhKXx8dm9pZCAwPT09bj92b2lkIDA6bi5nZXQodCkpJiZ2b2lkIDAhPT1yP3I6Int9In0pKX1yZW1vdmVEYXRhKHQpe3JldHVybiBlKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7dGhpcy5fZGF0YS5kZWxldGUodCl9KSl9fXZhciB3cj0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM/Z2xvYmFsVGhpczoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnt9O2Z1bmN0aW9uIGJyKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLCJkZWZhdWx0Iik/ZS5kZWZhdWx0OmV9ZnVuY3Rpb24gX3IoZSl7aWYoZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxuKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxuLHIuZ2V0P3I6e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGVbbl19fSl9KSksdH12YXIgU3I9e2V4cG9ydHM6e319LEVyPXt9LFJyPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShSciwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUnIuZGVmYXVsdD1mdW5jdGlvbihlKXt2YXIgdD1lLmxlbmd0aCxuPXQlNDtpZighbilyZXR1cm4gZTt2YXIgcj10LGk9NC1uLG89dCtpLHM9YXQuYWxsb2Mobyk7Zm9yKHMud3JpdGUoZSk7aS0tOylzLndyaXRlKCI9IixyKyspO3JldHVybiBzLnRvU3RyaW5nKCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFciwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIFRyPVJyO2Z1bmN0aW9uIGtyKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PSJ1dGY4IiksYXQuaXNCdWZmZXIoZSk/Q3IoZS50b1N0cmluZygiYmFzZTY0IikpOkNyKGF0LmZyb20oZSx0KS50b1N0cmluZygiYmFzZTY0IikpfWZ1bmN0aW9uIEFyKGUpe3JldHVybiBlPWUudG9TdHJpbmcoKSxUci5kZWZhdWx0KGUpLnJlcGxhY2UoL1wtL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKX1mdW5jdGlvbiBDcihlKXtyZXR1cm4gZS5yZXBsYWNlKC89L2csIiIpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIil9dmFyIE9yLERyPWtyO0RyLmVuY29kZT1rcixEci5kZWNvZGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9InV0ZjgiKSxhdC5mcm9tKEFyKGUpLCJiYXNlNjQiKS50b1N0cmluZyh0KX0sRHIudG9CYXNlNjQ9QXIsRHIuZnJvbUJhc2U2ND1DcixEci50b0J1ZmZlcj1mdW5jdGlvbihlKXtyZXR1cm4gYXQuZnJvbShBcihlKSwiYmFzZTY0Iil9LEVyLmRlZmF1bHQ9RHIsKE9yPVNyKS5leHBvcnRzPUVyLmRlZmF1bHQsT3IuZXhwb3J0cy5kZWZhdWx0PU9yLmV4cG9ydHM7dmFyIFByPVNyLmV4cG9ydHMsSXI9e2V4cG9ydHM6e319OyFmdW5jdGlvbihlKXshZnVuY3Rpb24odCxuKXt2YXIgcj17fTshZnVuY3Rpb24oZSl7ZS5fX2VzTW9kdWxlPSEwLGUuZGlnZXN0TGVuZ3RoPTMyLGUuYmxvY2tTaXplPTY0O3ZhciB0PW5ldyBVaW50MzJBcnJheShbMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSk7ZnVuY3Rpb24gbihlLG4scixpLG8pe2Zvcih2YXIgcyxhLGMsdSxsLGQsaCxmLHAsZyx5LHYsbTtvPj02NDspe2ZvcihzPW5bMF0sYT1uWzFdLGM9blsyXSx1PW5bM10sbD1uWzRdLGQ9bls1XSxoPW5bNl0sZj1uWzddLGc9MDtnPDE2O2crKyl5PWkrNCpnLGVbZ109KDI1NSZyW3ldKTw8MjR8KDI1NSZyW3krMV0pPDwxNnwoMjU1JnJbeSsyXSk8PDh8MjU1JnJbeSszXTtmb3IoZz0xNjtnPDY0O2crKyl2PSgocD1lW2ctMl0pPj4+MTd8cDw8MTUpXihwPj4+MTl8cDw8MTMpXnA+Pj4xMCxtPSgocD1lW2ctMTVdKT4+Pjd8cDw8MjUpXihwPj4+MTh8cDw8MTQpXnA+Pj4zLGVbZ109KHYrZVtnLTddfDApKyhtK2VbZy0xNl18MCk7Zm9yKGc9MDtnPDY0O2crKyl2PSgoKGw+Pj42fGw8PDI2KV4obD4+PjExfGw8PDIxKV4obD4+PjI1fGw8PDcpKSsobCZkXn5sJmgpfDApKyhmKyh0W2ddK2VbZ118MCl8MCl8MCxtPSgocz4+PjJ8czw8MzApXihzPj4+MTN8czw8MTkpXihzPj4+MjJ8czw8MTApKSsocyZhXnMmY15hJmMpfDAsZj1oLGg9ZCxkPWwsbD11K3Z8MCx1PWMsYz1hLGE9cyxzPXYrbXwwO25bMF0rPXMsblsxXSs9YSxuWzJdKz1jLG5bM10rPXUsbls0XSs9bCxuWzVdKz1kLG5bNl0rPWgsbls3XSs9ZixpKz02NCxvLT02NH1yZXR1cm4gaX12YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt0aGlzLmRpZ2VzdExlbmd0aD1lLmRpZ2VzdExlbmd0aCx0aGlzLmJsb2NrU2l6ZT1lLmJsb2NrU2l6ZSx0aGlzLnN0YXRlPW5ldyBJbnQzMkFycmF5KDgpLHRoaXMudGVtcD1uZXcgSW50MzJBcnJheSg2NCksdGhpcy5idWZmZXI9bmV3IFVpbnQ4QXJyYXkoMTI4KSx0aGlzLmJ1ZmZlckxlbmd0aD0wLHRoaXMuYnl0ZXNIYXNoZWQ9MCx0aGlzLmZpbmlzaGVkPSExLHRoaXMucmVzZXQoKX1yZXR1cm4gdC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0ZVswXT0xNzc5MDMzNzAzLHRoaXMuc3RhdGVbMV09MzE0NDEzNDI3Nyx0aGlzLnN0YXRlWzJdPTEwMTM5MDQyNDIsdGhpcy5zdGF0ZVszXT0yNzczNDgwNzYyLHRoaXMuc3RhdGVbNF09MTM1OTg5MzExOSx0aGlzLnN0YXRlWzVdPTI2MDA4MjI5MjQsdGhpcy5zdGF0ZVs2XT01Mjg3MzQ2MzUsdGhpcy5zdGF0ZVs3XT0xNTQxNDU5MjI1LHRoaXMuYnVmZmVyTGVuZ3RoPTAsdGhpcy5ieXRlc0hhc2hlZD0wLHRoaXMuZmluaXNoZWQ9ITEsdGhpc30sdC5wcm90b3R5cGUuY2xlYW49ZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPHRoaXMuYnVmZmVyLmxlbmd0aDtlKyspdGhpcy5idWZmZXJbZV09MDtmb3IoZT0wO2U8dGhpcy50ZW1wLmxlbmd0aDtlKyspdGhpcy50ZW1wW2VdPTA7dGhpcy5yZXNldCgpfSx0LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSx0KXtpZih2b2lkIDA9PT10JiYodD1lLmxlbmd0aCksdGhpcy5maW5pc2hlZCl0aHJvdyBuZXcgRXJyb3IoIlNIQTI1NjogY2FuJ3QgdXBkYXRlIGJlY2F1c2UgaGFzaCB3YXMgZmluaXNoZWQuIik7dmFyIHI9MDtpZih0aGlzLmJ5dGVzSGFzaGVkKz10LHRoaXMuYnVmZmVyTGVuZ3RoPjApe2Zvcig7dGhpcy5idWZmZXJMZW5ndGg8NjQmJnQ+MDspdGhpcy5idWZmZXJbdGhpcy5idWZmZXJMZW5ndGgrK109ZVtyKytdLHQtLTs2ND09PXRoaXMuYnVmZmVyTGVuZ3RoJiYobih0aGlzLnRlbXAsdGhpcy5zdGF0ZSx0aGlzLmJ1ZmZlciwwLDY0KSx0aGlzLmJ1ZmZlckxlbmd0aD0wKX1mb3IodD49NjQmJihyPW4odGhpcy50ZW1wLHRoaXMuc3RhdGUsZSxyLHQpLHQlPTY0KTt0PjA7KXRoaXMuYnVmZmVyW3RoaXMuYnVmZmVyTGVuZ3RoKytdPWVbcisrXSx0LS07cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLmZpbmlzaD1mdW5jdGlvbihlKXtpZighdGhpcy5maW5pc2hlZCl7dmFyIHQ9dGhpcy5ieXRlc0hhc2hlZCxyPXRoaXMuYnVmZmVyTGVuZ3RoLGk9dC81MzY4NzA5MTJ8MCxvPXQ8PDMscz10JTY0PDU2PzY0OjEyODt0aGlzLmJ1ZmZlcltyXT0xMjg7Zm9yKHZhciBhPXIrMTthPHMtODthKyspdGhpcy5idWZmZXJbYV09MDt0aGlzLmJ1ZmZlcltzLThdPWk+Pj4yNCYyNTUsdGhpcy5idWZmZXJbcy03XT1pPj4+MTYmMjU1LHRoaXMuYnVmZmVyW3MtNl09aT4+PjgmMjU1LHRoaXMuYnVmZmVyW3MtNV09aT4+PjAmMjU1LHRoaXMuYnVmZmVyW3MtNF09bz4+PjI0JjI1NSx0aGlzLmJ1ZmZlcltzLTNdPW8+Pj4xNiYyNTUsdGhpcy5idWZmZXJbcy0yXT1vPj4+OCYyNTUsdGhpcy5idWZmZXJbcy0xXT1vPj4+MCYyNTUsbih0aGlzLnRlbXAsdGhpcy5zdGF0ZSx0aGlzLmJ1ZmZlciwwLHMpLHRoaXMuZmluaXNoZWQ9ITB9Zm9yKGE9MDthPDg7YSsrKWVbNCphKzBdPXRoaXMuc3RhdGVbYV0+Pj4yNCYyNTUsZVs0KmErMV09dGhpcy5zdGF0ZVthXT4+PjE2JjI1NSxlWzQqYSsyXT10aGlzLnN0YXRlW2FdPj4+OCYyNTUsZVs0KmErM109dGhpcy5zdGF0ZVthXT4+PjAmMjU1O3JldHVybiB0aGlzfSx0LnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgVWludDhBcnJheSh0aGlzLmRpZ2VzdExlbmd0aCk7cmV0dXJuIHRoaXMuZmluaXNoKGUpLGV9LHQucHJvdG90eXBlLl9zYXZlU3RhdGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDx0aGlzLnN0YXRlLmxlbmd0aDt0KyspZVt0XT10aGlzLnN0YXRlW3RdfSx0LnByb3RvdHlwZS5fcmVzdG9yZVN0YXRlPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTA7bjx0aGlzLnN0YXRlLmxlbmd0aDtuKyspdGhpcy5zdGF0ZVtuXT1lW25dO3RoaXMuYnl0ZXNIYXNoZWQ9dCx0aGlzLmZpbmlzaGVkPSExLHRoaXMuYnVmZmVyTGVuZ3RoPTB9LHR9KCk7ZS5IYXNoPXI7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMuaW5uZXI9bmV3IHIsdGhpcy5vdXRlcj1uZXcgcix0aGlzLmJsb2NrU2l6ZT10aGlzLmlubmVyLmJsb2NrU2l6ZSx0aGlzLmRpZ2VzdExlbmd0aD10aGlzLmlubmVyLmRpZ2VzdExlbmd0aDt2YXIgdD1uZXcgVWludDhBcnJheSh0aGlzLmJsb2NrU2l6ZSk7aWYoZS5sZW5ndGg+dGhpcy5ibG9ja1NpemUpKG5ldyByKS51cGRhdGUoZSkuZmluaXNoKHQpLmNsZWFuKCk7ZWxzZSBmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl0W25dPWVbbl07Zm9yKG49MDtuPHQubGVuZ3RoO24rKyl0W25dXj01NDt0aGlzLmlubmVyLnVwZGF0ZSh0KTtmb3Iobj0wO248dC5sZW5ndGg7bisrKXRbbl1ePTEwNjt0aGlzLm91dGVyLnVwZGF0ZSh0KSx0aGlzLmlzdGF0ZT1uZXcgVWludDMyQXJyYXkoOCksdGhpcy5vc3RhdGU9bmV3IFVpbnQzMkFycmF5KDgpLHRoaXMuaW5uZXIuX3NhdmVTdGF0ZSh0aGlzLmlzdGF0ZSksdGhpcy5vdXRlci5fc2F2ZVN0YXRlKHRoaXMub3N0YXRlKTtmb3Iobj0wO248dC5sZW5ndGg7bisrKXRbbl09MH1yZXR1cm4gZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbm5lci5fcmVzdG9yZVN0YXRlKHRoaXMuaXN0YXRlLHRoaXMuaW5uZXIuYmxvY2tTaXplKSx0aGlzLm91dGVyLl9yZXN0b3JlU3RhdGUodGhpcy5vc3RhdGUsdGhpcy5vdXRlci5ibG9ja1NpemUpLHRoaXN9LGUucHJvdG90eXBlLmNsZWFuPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTx0aGlzLmlzdGF0ZS5sZW5ndGg7ZSsrKXRoaXMub3N0YXRlW2VdPXRoaXMuaXN0YXRlW2VdPTA7dGhpcy5pbm5lci5jbGVhbigpLHRoaXMub3V0ZXIuY2xlYW4oKX0sZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmlubmVyLnVwZGF0ZShlKSx0aGlzfSxlLnByb3RvdHlwZS5maW5pc2g9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMub3V0ZXIuZmluaXNoZWQ/dGhpcy5vdXRlci5maW5pc2goZSk6KHRoaXMuaW5uZXIuZmluaXNoKGUpLHRoaXMub3V0ZXIudXBkYXRlKGUsdGhpcy5kaWdlc3RMZW5ndGgpLmZpbmlzaChlKSksdGhpc30sZS5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IFVpbnQ4QXJyYXkodGhpcy5kaWdlc3RMZW5ndGgpO3JldHVybiB0aGlzLmZpbmlzaChlKSxlfSxlfSgpO2Z1bmN0aW9uIG8oZSl7dmFyIHQ9KG5ldyByKS51cGRhdGUoZSksbj10LmRpZ2VzdCgpO3JldHVybiB0LmNsZWFuKCksbn1mdW5jdGlvbiBzKGUsdCl7dmFyIG49bmV3IGkoZSkudXBkYXRlKHQpLHI9bi5kaWdlc3QoKTtyZXR1cm4gbi5jbGVhbigpLHJ9ZnVuY3Rpb24gYShlLHQsbixyKXt2YXIgaT1yWzBdO2lmKDA9PT1pKXRocm93IG5ldyBFcnJvcigiaGtkZjogY2Fubm90IGV4cGFuZCBtb3JlIik7dC5yZXNldCgpLGk+MSYmdC51cGRhdGUoZSksbiYmdC51cGRhdGUobiksdC51cGRhdGUociksdC5maW5pc2goZSksclswXSsrfWUuSE1BQz1pLGUuaGFzaD1vLGUuZGVmYXVsdD1vLGUuaG1hYz1zO3ZhciBjPW5ldyBVaW50OEFycmF5KGUuZGlnZXN0TGVuZ3RoKTtmdW5jdGlvbiB1KGUsdCxuLHIpe3ZvaWQgMD09PXQmJih0PWMpLHZvaWQgMD09PXImJihyPTMyKTtmb3IodmFyIG89bmV3IFVpbnQ4QXJyYXkoWzFdKSx1PXModCxlKSxsPW5ldyBpKHUpLGQ9bmV3IFVpbnQ4QXJyYXkobC5kaWdlc3RMZW5ndGgpLGg9ZC5sZW5ndGgsZj1uZXcgVWludDhBcnJheShyKSxwPTA7cDxyO3ArKyloPT09ZC5sZW5ndGgmJihhKGQsbCxuLG8pLGg9MCksZltwXT1kW2grK107cmV0dXJuIGwuY2xlYW4oKSxkLmZpbGwoMCksby5maWxsKDApLGZ9ZnVuY3Rpb24gbChlLHQsbixyKXtmb3IodmFyIG89bmV3IGkoZSkscz1vLmRpZ2VzdExlbmd0aCxhPW5ldyBVaW50OEFycmF5KDQpLGM9bmV3IFVpbnQ4QXJyYXkocyksdT1uZXcgVWludDhBcnJheShzKSxsPW5ldyBVaW50OEFycmF5KHIpLGQ9MDtkKnM8cjtkKyspe3ZhciBoPWQrMTthWzBdPWg+Pj4yNCYyNTUsYVsxXT1oPj4+MTYmMjU1LGFbMl09aD4+PjgmMjU1LGFbM109aD4+PjAmMjU1LG8ucmVzZXQoKSxvLnVwZGF0ZSh0KSxvLnVwZGF0ZShhKSxvLmZpbmlzaCh1KTtmb3IodmFyIGY9MDtmPHM7ZisrKWNbZl09dVtmXTtmb3IoZj0yO2Y8PW47ZisrKXtvLnJlc2V0KCksby51cGRhdGUodSkuZmluaXNoKHUpO2Zvcih2YXIgcD0wO3A8cztwKyspY1twXV49dVtwXX1mb3IoZj0wO2Y8cyYmZCpzK2Y8cjtmKyspbFtkKnMrZl09Y1tmXX1mb3IoZD0wO2Q8cztkKyspY1tkXT11W2RdPTA7Zm9yKGQ9MDtkPDQ7ZCsrKWFbZF09MDtyZXR1cm4gby5jbGVhbigpLGx9ZS5oa2RmPXUsZS5wYmtkZjI9bH0ocik7dmFyIGk9ci5kZWZhdWx0O2Zvcih2YXIgbyBpbiByKWlbb109cltvXTtlLmV4cG9ydHM9aX0oKX0oSXIpO3ZhciBVcj1icihJci5leHBvcnRzKSxMcj1jcnlwdG87Y29uc3QgSHI9ZT0+ZSBpbnN0YW5jZW9mIENyeXB0b0tleSxNcj1uZXcgVGV4dEVuY29kZXIsTnI9bmV3IFRleHREZWNvZGVyO2NvbnN0IGpyPWU9PntsZXQgdD1lO3QgaW5zdGFuY2VvZiBVaW50OEFycmF5JiYodD1Oci5kZWNvZGUodCkpLHQ9dC5yZXBsYWNlKC8tL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKS5yZXBsYWNlKC9ccy9nLCIiKTt0cnl7cmV0dXJuKGU9Pntjb25zdCB0PWF0b2IoZSksbj1uZXcgVWludDhBcnJheSh0Lmxlbmd0aCk7Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspbltlXT10LmNoYXJDb2RlQXQoZSk7cmV0dXJuIG59KSh0KX1jYXRjaChlKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgaW5wdXQgdG8gYmUgZGVjb2RlZCBpcyBub3QgY29ycmVjdGx5IGVuY29kZWQuIil9fTtjbGFzcyB4ciBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGUpe3ZhciB0O3N1cGVyKGUpLHRoaXMuY29kZT0iRVJSX0pPU0VfR0VORVJJQyIsdGhpcy5uYW1lPXRoaXMuY29uc3RydWN0b3IubmFtZSxudWxsPT09KHQ9RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpfHx2b2lkIDA9PT10fHx0LmNhbGwoRXJyb3IsdGhpcyx0aGlzLmNvbnN0cnVjdG9yKX1zdGF0aWMgZ2V0IGNvZGUoKXtyZXR1cm4iRVJSX0pPU0VfR0VORVJJQyJ9fWNsYXNzIHFyIGV4dGVuZHMgeHJ7Y29uc3RydWN0b3IoZSx0PSJ1bnNwZWNpZmllZCIsbj0idW5zcGVjaWZpZWQiKXtzdXBlcihlKSx0aGlzLmNvZGU9IkVSUl9KV1RfQ0xBSU1fVkFMSURBVElPTl9GQUlMRUQiLHRoaXMuY2xhaW09dCx0aGlzLnJlYXNvbj1ufXN0YXRpYyBnZXQgY29kZSgpe3JldHVybiJFUlJfSldUX0NMQUlNX1ZBTElEQVRJT05fRkFJTEVEIn19Y2xhc3MgQnIgZXh0ZW5kcyB4cntjb25zdHJ1Y3RvcihlLHQ9InVuc3BlY2lmaWVkIixuPSJ1bnNwZWNpZmllZCIpe3N1cGVyKGUpLHRoaXMuY29kZT0iRVJSX0pXVF9FWFBJUkVEIix0aGlzLmNsYWltPXQsdGhpcy5yZWFzb249bn1zdGF0aWMgZ2V0IGNvZGUoKXtyZXR1cm4iRVJSX0pXVF9FWFBJUkVEIn19Y2xhc3MgRnIgZXh0ZW5kcyB4cntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5jb2RlPSJFUlJfSk9TRV9BTEdfTk9UX0FMTE9XRUQifXN0YXRpYyBnZXQgY29kZSgpe3JldHVybiJFUlJfSk9TRV9BTEdfTk9UX0FMTE9XRUQifX1jbGFzcyBLciBleHRlbmRzIHhye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmNvZGU9IkVSUl9KT1NFX05PVF9TVVBQT1JURUQifXN0YXRpYyBnZXQgY29kZSgpe3JldHVybiJFUlJfSk9TRV9OT1RfU1VQUE9SVEVEIn19Y2xhc3MgSnIgZXh0ZW5kcyB4cntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5jb2RlPSJFUlJfSldTX0lOVkFMSUQifXN0YXRpYyBnZXQgY29kZSgpe3JldHVybiJFUlJfSldTX0lOVkFMSUQifX1jbGFzcyBXciBleHRlbmRzIHhye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmNvZGU9IkVSUl9KV1RfSU5WQUxJRCJ9c3RhdGljIGdldCBjb2RlKCl7cmV0dXJuIkVSUl9KV1RfSU5WQUxJRCJ9fWNsYXNzICRyIGV4dGVuZHMgeHJ7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY29kZT0iRVJSX0pXS1NfSU5WQUxJRCJ9c3RhdGljIGdldCBjb2RlKCl7cmV0dXJuIkVSUl9KV0tTX0lOVkFMSUQifX1jbGFzcyB6ciBleHRlbmRzIHhye2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmNvZGU9IkVSUl9KV0tTX05PX01BVENISU5HX0tFWSIsdGhpcy5tZXNzYWdlPSJubyBhcHBsaWNhYmxlIGtleSBmb3VuZCBpbiB0aGUgSlNPTiBXZWIgS2V5IFNldCJ9c3RhdGljIGdldCBjb2RlKCl7cmV0dXJuIkVSUl9KV0tTX05PX01BVENISU5HX0tFWSJ9fWNsYXNzIFZyIGV4dGVuZHMgeHJ7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY29kZT0iRVJSX0pXS1NfTVVMVElQTEVfTUFUQ0hJTkdfS0VZUyIsdGhpcy5tZXNzYWdlPSJtdWx0aXBsZSBtYXRjaGluZyBrZXlzIGZvdW5kIGluIHRoZSBKU09OIFdlYiBLZXkgU2V0In1zdGF0aWMgZ2V0IGNvZGUoKXtyZXR1cm4iRVJSX0pXS1NfTVVMVElQTEVfTUFUQ0hJTkdfS0VZUyJ9fWNsYXNzIFlyIGV4dGVuZHMgeHJ7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY29kZT0iRVJSX0pXU19TSUdOQVRVUkVfVkVSSUZJQ0FUSU9OX0ZBSUxFRCIsdGhpcy5tZXNzYWdlPSJzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGZhaWxlZCJ9c3RhdGljIGdldCBjb2RlKCl7cmV0dXJuIkVSUl9KV1NfU0lHTkFUVVJFX1ZFUklGSUNBVElPTl9GQUlMRUQifX1mdW5jdGlvbiBHcigpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBXZWJTb2NrZXRQYWlyfWZ1bmN0aW9uIFhyKGUsdD0iYWxnb3JpdGhtLm5hbWUiKXtyZXR1cm4gbmV3IFR5cGVFcnJvcihgQ3J5cHRvS2V5IGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGVyYXRpb24sIGl0cyAke3R9IG11c3QgYmUgJHtlfWApfWZ1bmN0aW9uIFpyKGUsdCl7cmV0dXJuIGUubmFtZT09PXR9ZnVuY3Rpb24gUXIoZSl7cmV0dXJuIHBhcnNlSW50KGUubmFtZS5zbGljZSg0KSwxMCl9ZnVuY3Rpb24gZWkoZSx0LC4uLm4pe3N3aXRjaCh0KXtjYXNlIkhTMjU2IjpjYXNlIkhTMzg0IjpjYXNlIkhTNTEyIjp7aWYoIVpyKGUuYWxnb3JpdGhtLCJITUFDIikpdGhyb3cgWHIoIkhNQUMiKTtjb25zdCBuPXBhcnNlSW50KHQuc2xpY2UoMiksMTApO2lmKFFyKGUuYWxnb3JpdGhtLmhhc2gpIT09bil0aHJvdyBYcihgU0hBLSR7bn1gLCJhbGdvcml0aG0uaGFzaCIpO2JyZWFrfWNhc2UiUlMyNTYiOmNhc2UiUlMzODQiOmNhc2UiUlM1MTIiOntpZighWnIoZS5hbGdvcml0aG0sIlJTQVNTQS1QS0NTMS12MV81IikpdGhyb3cgWHIoIlJTQVNTQS1QS0NTMS12MV81Iik7Y29uc3Qgbj1wYXJzZUludCh0LnNsaWNlKDIpLDEwKTtpZihRcihlLmFsZ29yaXRobS5oYXNoKSE9PW4pdGhyb3cgWHIoYFNIQS0ke259YCwiYWxnb3JpdGhtLmhhc2giKTticmVha31jYXNlIlBTMjU2IjpjYXNlIlBTMzg0IjpjYXNlIlBTNTEyIjp7aWYoIVpyKGUuYWxnb3JpdGhtLCJSU0EtUFNTIikpdGhyb3cgWHIoIlJTQS1QU1MiKTtjb25zdCBuPXBhcnNlSW50KHQuc2xpY2UoMiksMTApO2lmKFFyKGUuYWxnb3JpdGhtLmhhc2gpIT09bil0aHJvdyBYcihgU0hBLSR7bn1gLCJhbGdvcml0aG0uaGFzaCIpO2JyZWFrfWNhc2UgR3IoKSYmIkVkRFNBIjppZighWnIoZS5hbGdvcml0aG0sIk5PREUtRUQyNTUxOSIpKXRocm93IFhyKCJOT0RFLUVEMjU1MTkiKTticmVhaztjYXNlIkVTMjU2IjpjYXNlIkVTMzg0IjpjYXNlIkVTNTEyIjp7aWYoIVpyKGUuYWxnb3JpdGhtLCJFQ0RTQSIpKXRocm93IFhyKCJFQ0RTQSIpO2NvbnN0IG49ZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2UiRVMyNTYiOnJldHVybiJQLTI1NiI7Y2FzZSJFUzM4NCI6cmV0dXJuIlAtMzg0IjtjYXNlIkVTNTEyIjpyZXR1cm4iUC01MjEiO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bnJlYWNoYWJsZSIpfX0odCk7aWYoZS5hbGdvcml0aG0ubmFtZWRDdXJ2ZSE9PW4pdGhyb3cgWHIobiwiYWxnb3JpdGhtLm5hbWVkQ3VydmUiKTticmVha31kZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoIkNyeXB0b0tleSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3BlcmF0aW9uIil9IWZ1bmN0aW9uKGUsdCl7aWYodC5sZW5ndGgmJiF0LnNvbWUoKHQ9PmUudXNhZ2VzLmluY2x1ZGVzKHQpKSkpe2xldCBlPSJDcnlwdG9LZXkgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG9wZXJhdGlvbiwgaXRzIHVzYWdlcyBtdXN0IGluY2x1ZGUgIjtpZih0Lmxlbmd0aD4yKXtjb25zdCBuPXQucG9wKCk7ZSs9YG9uZSBvZiAke3Quam9pbigiLCAiKX0sIG9yICR7bn0uYH1lbHNlIDI9PT10Lmxlbmd0aD9lKz1gb25lIG9mICR7dFswXX0gb3IgJHt0WzFdfS5gOmUrPWAke3RbMF19LmA7dGhyb3cgbmV3IFR5cGVFcnJvcihlKX19KGUsbil9dmFyIHRpPShlLC4uLnQpPT57bGV0IG49IktleSBtdXN0IGJlICI7aWYodC5sZW5ndGg+Mil7Y29uc3QgZT10LnBvcCgpO24rPWBvbmUgb2YgdHlwZSAke3Quam9pbigiLCAiKX0sIG9yICR7ZX0uYH1lbHNlIDI9PT10Lmxlbmd0aD9uKz1gb25lIG9mIHR5cGUgJHt0WzBdfSBvciAke3RbMV19LmA6bis9YG9mIHR5cGUgJHt0WzBdfS5gO3JldHVybiBudWxsPT1lP24rPWAgUmVjZWl2ZWQgJHtlfWA6ImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUubmFtZT9uKz1gIFJlY2VpdmVkIGZ1bmN0aW9uICR7ZS5uYW1lfWA6Im9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT1lJiZlLmNvbnN0cnVjdG9yJiZlLmNvbnN0cnVjdG9yLm5hbWUmJihuKz1gIFJlY2VpdmVkIGFuIGluc3RhbmNlIG9mICR7ZS5jb25zdHJ1Y3Rvci5uYW1lfWApLG59LG5pPWU9PkhyKGUpO2NvbnN0IHJpPVsiQ3J5cHRvS2V5Il07ZnVuY3Rpb24gaWkoZSl7aWYoIm9iamVjdCIhPXR5cGVvZih0PWUpfHxudWxsPT09dHx8IltvYmplY3QgT2JqZWN0XSIhPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkpcmV0dXJuITE7dmFyIHQ7aWYobnVsbD09PU9iamVjdC5nZXRQcm90b3R5cGVPZihlKSlyZXR1cm4hMDtsZXQgbj1lO2Zvcig7bnVsbCE9PU9iamVjdC5nZXRQcm90b3R5cGVPZihuKTspbj1PYmplY3QuZ2V0UHJvdG90eXBlT2Yobik7cmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PW59Y29uc3Qgb2k9YXN5bmMgZT0+e3ZhciB0LG47Y29uc3R7YWxnb3JpdGhtOnIsa2V5VXNhZ2VzOml9PWZ1bmN0aW9uKGUpe2xldCB0LG47c3dpdGNoKGUua3R5KXtjYXNlIm9jdCI6c3dpdGNoKGUuYWxnKXtjYXNlIkhTMjU2IjpjYXNlIkhTMzg0IjpjYXNlIkhTNTEyIjp0PXtuYW1lOiJITUFDIixoYXNoOmBTSEEtJHtlLmFsZy5zbGljZSgtMyl9YH0sbj1bInNpZ24iLCJ2ZXJpZnkiXTticmVhaztjYXNlIkExMjhDQkMtSFMyNTYiOmNhc2UiQTE5MkNCQy1IUzM4NCI6Y2FzZSJBMjU2Q0JDLUhTNTEyIjp0aHJvdyBuZXcgS3IoYCR7ZS5hbGd9IGtleXMgY2Fubm90IGJlIGltcG9ydGVkIGFzIENyeXB0b0tleSBpbnN0YW5jZXNgKTtjYXNlIkExMjhHQ00iOmNhc2UiQTE5MkdDTSI6Y2FzZSJBMjU2R0NNIjpjYXNlIkExMjhHQ01LVyI6Y2FzZSJBMTkyR0NNS1ciOmNhc2UiQTI1NkdDTUtXIjp0PXtuYW1lOiJBRVMtR0NNIn0sbj1bImVuY3J5cHQiLCJkZWNyeXB0Il07YnJlYWs7Y2FzZSJBMTI4S1ciOmNhc2UiQTE5MktXIjpjYXNlIkEyNTZLVyI6dD17bmFtZToiQUVTLUtXIn0sbj1bIndyYXBLZXkiLCJ1bndyYXBLZXkiXTticmVhaztjYXNlIlBCRVMyLUhTMjU2K0ExMjhLVyI6Y2FzZSJQQkVTMi1IUzM4NCtBMTkyS1ciOmNhc2UiUEJFUzItSFM1MTIrQTI1NktXIjp0PXtuYW1lOiJQQktERjIifSxuPVsiZGVyaXZlQml0cyJdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEtyKCdJbnZhbGlkIG9yIHVuc3VwcG9ydGVkIEpXSyAiYWxnIiAoQWxnb3JpdGhtKSBQYXJhbWV0ZXIgdmFsdWUnKX1icmVhaztjYXNlIlJTQSI6c3dpdGNoKGUuYWxnKXtjYXNlIlBTMjU2IjpjYXNlIlBTMzg0IjpjYXNlIlBTNTEyIjp0PXtuYW1lOiJSU0EtUFNTIixoYXNoOmBTSEEtJHtlLmFsZy5zbGljZSgtMyl9YH0sbj1lLmQ/WyJzaWduIl06WyJ2ZXJpZnkiXTticmVhaztjYXNlIlJTMjU2IjpjYXNlIlJTMzg0IjpjYXNlIlJTNTEyIjp0PXtuYW1lOiJSU0FTU0EtUEtDUzEtdjFfNSIsaGFzaDpgU0hBLSR7ZS5hbGcuc2xpY2UoLTMpfWB9LG49ZS5kP1sic2lnbiJdOlsidmVyaWZ5Il07YnJlYWs7Y2FzZSJSU0EtT0FFUCI6Y2FzZSJSU0EtT0FFUC0yNTYiOmNhc2UiUlNBLU9BRVAtMzg0IjpjYXNlIlJTQS1PQUVQLTUxMiI6dD17bmFtZToiUlNBLU9BRVAiLGhhc2g6YFNIQS0ke3BhcnNlSW50KGUuYWxnLnNsaWNlKC0zKSwxMCl8fDF9YH0sbj1lLmQ/WyJkZWNyeXB0IiwidW53cmFwS2V5Il06WyJlbmNyeXB0Iiwid3JhcEtleSJdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEtyKCdJbnZhbGlkIG9yIHVuc3VwcG9ydGVkIEpXSyAiYWxnIiAoQWxnb3JpdGhtKSBQYXJhbWV0ZXIgdmFsdWUnKX1icmVhaztjYXNlIkVDIjpzd2l0Y2goZS5hbGcpe2Nhc2UiRVMyNTYiOnQ9e25hbWU6IkVDRFNBIixuYW1lZEN1cnZlOiJQLTI1NiJ9LG49ZS5kP1sic2lnbiJdOlsidmVyaWZ5Il07YnJlYWs7Y2FzZSJFUzM4NCI6dD17bmFtZToiRUNEU0EiLG5hbWVkQ3VydmU6IlAtMzg0In0sbj1lLmQ/WyJzaWduIl06WyJ2ZXJpZnkiXTticmVhaztjYXNlIkVTNTEyIjp0PXtuYW1lOiJFQ0RTQSIsbmFtZWRDdXJ2ZToiUC01MjEifSxuPWUuZD9bInNpZ24iXTpbInZlcmlmeSJdO2JyZWFrO2Nhc2UiRUNESC1FUyI6Y2FzZSJFQ0RILUVTK0ExMjhLVyI6Y2FzZSJFQ0RILUVTK0ExOTJLVyI6Y2FzZSJFQ0RILUVTK0EyNTZLVyI6dD17bmFtZToiRUNESCIsbmFtZWRDdXJ2ZTplLmNydn0sbj1lLmQ/WyJkZXJpdmVCaXRzIl06W107YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgS3IoJ0ludmFsaWQgb3IgdW5zdXBwb3J0ZWQgSldLICJhbGciIChBbGdvcml0aG0pIFBhcmFtZXRlciB2YWx1ZScpfWJyZWFrO2Nhc2UgR3IoKSYmIk9LUCI6aWYoIkVkRFNBIiE9PWUuYWxnKXRocm93IG5ldyBLcignSW52YWxpZCBvciB1bnN1cHBvcnRlZCBKV0sgImFsZyIgKEFsZ29yaXRobSkgUGFyYW1ldGVyIHZhbHVlJyk7aWYoIkVkMjU1MTkiIT09ZS5jcnYpdGhyb3cgbmV3IEtyKCdJbnZhbGlkIG9yIHVuc3VwcG9ydGVkIEpXSyAiY3J2IiAoU3VidHlwZSBvZiBLZXkgUGFpcikgUGFyYW1ldGVyIHZhbHVlJyk7dD17bmFtZToiTk9ERS1FRDI1NTE5IixuYW1lZEN1cnZlOiJOT0RFLUVEMjU1MTkifSxuPWUuZD9bInNpZ24iXTpbInZlcmlmeSJdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEtyKCdJbnZhbGlkIG9yIHVuc3VwcG9ydGVkIEpXSyAia3R5IiAoS2V5IFR5cGUpIFBhcmFtZXRlciB2YWx1ZScpfXJldHVybnthbGdvcml0aG06dCxrZXlVc2FnZXM6bn19KGUpLG89W3IsbnVsbCE9PSh0PWUuZXh0KSYmdm9pZCAwIT09dCYmdCxudWxsIT09KG49ZS5rZXlfb3BzKSYmdm9pZCAwIT09bj9uOmldO2lmKCJQQktERjIiPT09ci5uYW1lKXJldHVybiBMci5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLGpyKGUuayksLi4ubyk7Y29uc3Qgcz17Li4uZX07cmV0dXJuIGRlbGV0ZSBzLmFsZyxMci5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLHMsLi4ubyl9O2NvbnN0IHNpPShlLHQsbik9PntlLnN0YXJ0c1dpdGgoIkhTIil8fCJkaXIiPT09ZXx8ZS5zdGFydHNXaXRoKCJQQkVTMiIpfHwvXkFcZHszfSg/OkdDTSk/S1ckLy50ZXN0KGUpPyhlPT57aWYoIShlIGluc3RhbmNlb2YgVWludDhBcnJheSkpe2lmKCFuaShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKHRpKGUsLi4ucmksIlVpbnQ4QXJyYXkiKSk7aWYoInNlY3JldCIhPT1lLnR5cGUpdGhyb3cgbmV3IFR5cGVFcnJvcihgJHtyaS5qb2luKCIgb3IgIil9IGluc3RhbmNlcyBmb3Igc3ltbWV0cmljIGFsZ29yaXRobXMgbXVzdCBiZSBvZiB0eXBlICJzZWNyZXQiYCl9fSkodCk6KChlLHQpPT57aWYoIW5pKGUpKXRocm93IG5ldyBUeXBlRXJyb3IodGkoZSwuLi5yaSkpO2lmKCJzZWNyZXQiPT09ZS50eXBlKXRocm93IG5ldyBUeXBlRXJyb3IoYCR7cmkuam9pbigiIG9yICIpfSBpbnN0YW5jZXMgZm9yIGFzeW1tZXRyaWMgYWxnb3JpdGhtcyBtdXN0IG5vdCBiZSBvZiB0eXBlICJzZWNyZXQiYCk7aWYoInNpZ24iPT09dCYmInB1YmxpYyI9PT1lLnR5cGUpdGhyb3cgbmV3IFR5cGVFcnJvcihgJHtyaS5qb2luKCIgb3IgIil9IGluc3RhbmNlcyBmb3IgYXN5bW1ldHJpYyBhbGdvcml0aG0gc2lnbmluZyBtdXN0IGJlIG9mIHR5cGUgInByaXZhdGUiYCk7aWYoImRlY3J5cHQiPT09dCYmInB1YmxpYyI9PT1lLnR5cGUpdGhyb3cgbmV3IFR5cGVFcnJvcihgJHtyaS5qb2luKCIgb3IgIil9IGluc3RhbmNlcyBmb3IgYXN5bW1ldHJpYyBhbGdvcml0aG0gZGVjcnlwdGlvbiBtdXN0IGJlIG9mIHR5cGUgInByaXZhdGUiYCk7aWYoZS5hbGdvcml0aG0mJiJ2ZXJpZnkiPT09dCYmInByaXZhdGUiPT09ZS50eXBlKXRocm93IG5ldyBUeXBlRXJyb3IoYCR7cmkuam9pbigiIG9yICIpfSBpbnN0YW5jZXMgZm9yIGFzeW1tZXRyaWMgYWxnb3JpdGhtIHZlcmlmeWluZyBtdXN0IGJlIG9mIHR5cGUgInB1YmxpYyJgKTtpZihlLmFsZ29yaXRobSYmImVuY3J5cHQiPT09dCYmInByaXZhdGUiPT09ZS50eXBlKXRocm93IG5ldyBUeXBlRXJyb3IoYCR7cmkuam9pbigiIG9yICIpfSBpbnN0YW5jZXMgZm9yIGFzeW1tZXRyaWMgYWxnb3JpdGhtIGVuY3J5cHRpb24gbXVzdCBiZSBvZiB0eXBlICJwdWJsaWMiYCl9KSh0LG4pfTtjb25zdCBhaT1hc3luYyhlLHQsbixyKT0+e2NvbnN0IGk9YXdhaXQgZnVuY3Rpb24oZSx0LG4pe2lmKEhyKHQpKXJldHVybiBlaSh0LGUsbiksdDtpZih0IGluc3RhbmNlb2YgVWludDhBcnJheSl7aWYoIWUuc3RhcnRzV2l0aCgiSFMiKSl0aHJvdyBuZXcgVHlwZUVycm9yKHRpKHQsLi4ucmkpKTtyZXR1cm4gTHIuc3VidGxlLmltcG9ydEtleSgicmF3Iix0LHtoYXNoOmBTSEEtJHtlLnNsaWNlKC0zKX1gLG5hbWU6IkhNQUMifSwhMSxbbl0pfXRocm93IG5ldyBUeXBlRXJyb3IodGkodCwuLi5yaSwiVWludDhBcnJheSIpKX0oZSx0LCJ2ZXJpZnkiKTsoKGUsdCk9PntpZihlLnN0YXJ0c1dpdGgoIlJTIil8fGUuc3RhcnRzV2l0aCgiUFMiKSl7Y29uc3R7bW9kdWx1c0xlbmd0aDpufT10LmFsZ29yaXRobTtpZigibnVtYmVyIiE9dHlwZW9mIG58fG48MjA0OCl0aHJvdyBuZXcgVHlwZUVycm9yKGAke2V9IHJlcXVpcmVzIGtleSBtb2R1bHVzTGVuZ3RoIHRvIGJlIDIwNDggYml0cyBvciBsYXJnZXJgKX19KShlLGkpO2NvbnN0IG89ZnVuY3Rpb24oZSx0KXtjb25zdCBuPWBTSEEtJHtlLnNsaWNlKC0zKX1gO3N3aXRjaChlKXtjYXNlIkhTMjU2IjpjYXNlIkhTMzg0IjpjYXNlIkhTNTEyIjpyZXR1cm57aGFzaDpuLG5hbWU6IkhNQUMifTtjYXNlIlBTMjU2IjpjYXNlIlBTMzg0IjpjYXNlIlBTNTEyIjpyZXR1cm57aGFzaDpuLG5hbWU6IlJTQS1QU1MiLHNhbHRMZW5ndGg6ZS5zbGljZSgtMyk+PjN9O2Nhc2UiUlMyNTYiOmNhc2UiUlMzODQiOmNhc2UiUlM1MTIiOnJldHVybntoYXNoOm4sbmFtZToiUlNBU1NBLVBLQ1MxLXYxXzUifTtjYXNlIkVTMjU2IjpjYXNlIkVTMzg0IjpjYXNlIkVTNTEyIjpyZXR1cm57aGFzaDpuLG5hbWU6IkVDRFNBIixuYW1lZEN1cnZlOnQubmFtZWRDdXJ2ZX07Y2FzZSBHcigpJiYiRWREU0EiOmNvbnN0e25hbWVkQ3VydmU6cn09dDtyZXR1cm57bmFtZTpyLG5hbWVkQ3VydmU6cn07ZGVmYXVsdDp0aHJvdyBuZXcgS3IoYGFsZyAke2V9IGlzIG5vdCBzdXBwb3J0ZWQgZWl0aGVyIGJ5IEpPU0Ugb3IgeW91ciBqYXZhc2NyaXB0IHJ1bnRpbWVgKX19KGUsaS5hbGdvcml0aG0pO3RyeXtyZXR1cm4gYXdhaXQgTHIuc3VidGxlLnZlcmlmeShvLGksbixyKX1jYXRjaChlKXtyZXR1cm4hMX19O2FzeW5jIGZ1bmN0aW9uIGNpKGUsdCxuKXt2YXIgcjtpZighaWkoZSkpdGhyb3cgbmV3IEpyKCJGbGF0dGVuZWQgSldTIG11c3QgYmUgYW4gb2JqZWN0Iik7aWYodm9pZCAwPT09ZS5wcm90ZWN0ZWQmJnZvaWQgMD09PWUuaGVhZGVyKXRocm93IG5ldyBKcignRmxhdHRlbmVkIEpXUyBtdXN0IGhhdmUgZWl0aGVyIG9mIHRoZSAicHJvdGVjdGVkIiBvciAiaGVhZGVyIiBtZW1iZXJzJyk7aWYodm9pZCAwIT09ZS5wcm90ZWN0ZWQmJiJzdHJpbmciIT10eXBlb2YgZS5wcm90ZWN0ZWQpdGhyb3cgbmV3IEpyKCJKV1MgUHJvdGVjdGVkIEhlYWRlciBpbmNvcnJlY3QgdHlwZSIpO2lmKHZvaWQgMD09PWUucGF5bG9hZCl0aHJvdyBuZXcgSnIoIkpXUyBQYXlsb2FkIG1pc3NpbmciKTtpZigic3RyaW5nIiE9dHlwZW9mIGUuc2lnbmF0dXJlKXRocm93IG5ldyBKcigiSldTIFNpZ25hdHVyZSBtaXNzaW5nIG9yIGluY29ycmVjdCB0eXBlIik7aWYodm9pZCAwIT09ZS5oZWFkZXImJiFpaShlLmhlYWRlcikpdGhyb3cgbmV3IEpyKCJKV1MgVW5wcm90ZWN0ZWQgSGVhZGVyIGluY29ycmVjdCB0eXBlIik7bGV0IGk9e307aWYoZS5wcm90ZWN0ZWQpe2NvbnN0IHQ9anIoZS5wcm90ZWN0ZWQpO3RyeXtpPUpTT04ucGFyc2UoTnIuZGVjb2RlKHQpKX1jYXRjaChlKXt0aHJvdyBuZXcgSnIoIkpXUyBQcm90ZWN0ZWQgSGVhZGVyIGlzIGludmFsaWQiKX19aWYoISgoLi4uZSk9Pntjb25zdCB0PWUuZmlsdGVyKEJvb2xlYW4pO2lmKDA9PT10Lmxlbmd0aHx8MT09PXQubGVuZ3RoKXJldHVybiEwO2xldCBuO2Zvcihjb25zdCBlIG9mIHQpe2NvbnN0IHQ9T2JqZWN0LmtleXMoZSk7aWYobiYmMCE9PW4uc2l6ZSlmb3IoY29uc3QgZSBvZiB0KXtpZihuLmhhcyhlKSlyZXR1cm4hMTtuLmFkZChlKX1lbHNlIG49bmV3IFNldCh0KX1yZXR1cm4hMH0pKGksZS5oZWFkZXIpKXRocm93IG5ldyBKcigiSldTIFByb3RlY3RlZCBhbmQgSldTIFVucHJvdGVjdGVkIEhlYWRlciBQYXJhbWV0ZXIgbmFtZXMgbXVzdCBiZSBkaXNqb2ludCIpO2NvbnN0IG89ey4uLmksLi4uZS5oZWFkZXJ9LHM9ZnVuY3Rpb24oZSx0LG4scixpKXtpZih2b2lkIDAhPT1pLmNyaXQmJnZvaWQgMD09PXIuY3JpdCl0aHJvdyBuZXcgZSgnImNyaXQiIChDcml0aWNhbCkgSGVhZGVyIFBhcmFtZXRlciBNVVNUIGJlIGludGVncml0eSBwcm90ZWN0ZWQnKTtpZighcnx8dm9pZCAwPT09ci5jcml0KXJldHVybiBuZXcgU2V0O2lmKCFBcnJheS5pc0FycmF5KHIuY3JpdCl8fDA9PT1yLmNyaXQubGVuZ3RofHxyLmNyaXQuc29tZSgoZT0+InN0cmluZyIhPXR5cGVvZiBlfHwwPT09ZS5sZW5ndGgpKSl0aHJvdyBuZXcgZSgnImNyaXQiIChDcml0aWNhbCkgSGVhZGVyIFBhcmFtZXRlciBNVVNUIGJlIGFuIGFycmF5IG9mIG5vbi1lbXB0eSBzdHJpbmdzIHdoZW4gcHJlc2VudCcpO2xldCBvO289dm9pZCAwIT09bj9uZXcgTWFwKFsuLi5PYmplY3QuZW50cmllcyhuKSwuLi50LmVudHJpZXMoKV0pOnQ7Zm9yKGNvbnN0IHQgb2Ygci5jcml0KXtpZighby5oYXModCkpdGhyb3cgbmV3IEtyKGBFeHRlbnNpb24gSGVhZGVyIFBhcmFtZXRlciAiJHt0fSIgaXMgbm90IHJlY29nbml6ZWRgKTtpZih2b2lkIDA9PT1pW3RdKXRocm93IG5ldyBlKGBFeHRlbnNpb24gSGVhZGVyIFBhcmFtZXRlciAiJHt0fSIgaXMgbWlzc2luZ2ApO2lmKG8uZ2V0KHQpJiZ2b2lkIDA9PT1yW3RdKXRocm93IG5ldyBlKGBFeHRlbnNpb24gSGVhZGVyIFBhcmFtZXRlciAiJHt0fSIgTVVTVCBiZSBpbnRlZ3JpdHkgcHJvdGVjdGVkYCl9cmV0dXJuIG5ldyBTZXQoci5jcml0KX0oSnIsbmV3IE1hcChbWyJiNjQiLCEwXV0pLG51bGw9PW4/dm9pZCAwOm4uY3JpdCxpLG8pO2xldCBhPSEwO2lmKHMuaGFzKCJiNjQiKSYmKGE9aS5iNjQsImJvb2xlYW4iIT10eXBlb2YgYSkpdGhyb3cgbmV3IEpyKCdUaGUgImI2NCIgKGJhc2U2NHVybC1lbmNvZGUgcGF5bG9hZCkgSGVhZGVyIFBhcmFtZXRlciBtdXN0IGJlIGEgYm9vbGVhbicpO2NvbnN0e2FsZzpjfT1vO2lmKCJzdHJpbmciIT10eXBlb2YgY3x8IWMpdGhyb3cgbmV3IEpyKCdKV1MgImFsZyIgKEFsZ29yaXRobSkgSGVhZGVyIFBhcmFtZXRlciBtaXNzaW5nIG9yIGludmFsaWQnKTtjb25zdCB1PW4mJigoZSx0KT0+e2lmKHZvaWQgMCE9PXQmJighQXJyYXkuaXNBcnJheSh0KXx8dC5zb21lKChlPT4ic3RyaW5nIiE9dHlwZW9mIGUpKSkpdGhyb3cgbmV3IFR5cGVFcnJvcihgIiR7ZX0iIG9wdGlvbiBtdXN0IGJlIGFuIGFycmF5IG9mIHN0cmluZ3NgKTtpZih0KXJldHVybiBuZXcgU2V0KHQpfSkoImFsZ29yaXRobXMiLG4uYWxnb3JpdGhtcyk7aWYodSYmIXUuaGFzKGMpKXRocm93IG5ldyBGcignImFsZyIgKEFsZ29yaXRobSkgSGVhZGVyIFBhcmFtZXRlciBub3QgYWxsb3dlZCcpO2lmKGEpe2lmKCJzdHJpbmciIT10eXBlb2YgZS5wYXlsb2FkKXRocm93IG5ldyBKcigiSldTIFBheWxvYWQgbXVzdCBiZSBhIHN0cmluZyIpfWVsc2UgaWYoInN0cmluZyIhPXR5cGVvZiBlLnBheWxvYWQmJiEoZS5wYXlsb2FkIGluc3RhbmNlb2YgVWludDhBcnJheSkpdGhyb3cgbmV3IEpyKCJKV1MgUGF5bG9hZCBtdXN0IGJlIGEgc3RyaW5nIG9yIGFuIFVpbnQ4QXJyYXkgaW5zdGFuY2UiKTtsZXQgbD0hMTsiZnVuY3Rpb24iPT10eXBlb2YgdCYmKHQ9YXdhaXQgdChpLGUpLGw9ITApLHNpKGMsdCwidmVyaWZ5Iik7Y29uc3QgZD1mdW5jdGlvbiguLi5lKXtjb25zdCB0PWUucmVkdWNlKCgoZSx7bGVuZ3RoOnR9KT0+ZSt0KSwwKSxuPW5ldyBVaW50OEFycmF5KHQpO2xldCByPTA7cmV0dXJuIGUuZm9yRWFjaCgoZT0+e24uc2V0KGUscikscis9ZS5sZW5ndGh9KSksbn0oTXIuZW5jb2RlKG51bGwhPT0ocj1lLnByb3RlY3RlZCkmJnZvaWQgMCE9PXI/cjoiIiksTXIuZW5jb2RlKCIuIiksInN0cmluZyI9PXR5cGVvZiBlLnBheWxvYWQ/TXIuZW5jb2RlKGUucGF5bG9hZCk6ZS5wYXlsb2FkKSxoPWpyKGUuc2lnbmF0dXJlKTtpZighYXdhaXQgYWkoYyx0LGgsZCkpdGhyb3cgbmV3IFlyO2xldCBmO2Y9YT9qcihlLnBheWxvYWQpOiJzdHJpbmciPT10eXBlb2YgZS5wYXlsb2FkP01yLmVuY29kZShlLnBheWxvYWQpOmUucGF5bG9hZDtjb25zdCBwPXtwYXlsb2FkOmZ9O3JldHVybiB2b2lkIDAhPT1lLnByb3RlY3RlZCYmKHAucHJvdGVjdGVkSGVhZGVyPWkpLHZvaWQgMCE9PWUuaGVhZGVyJiYocC51bnByb3RlY3RlZEhlYWRlcj1lLmhlYWRlciksbD97Li4ucCxrZXk6dH06cH1jb25zdCB1aT04NjQwMCxsaT0vXihcZCt8XGQrXC5cZCspID8oc2Vjb25kcz98c2Vjcz98c3xtaW51dGVzP3xtaW5zP3xtfGhvdXJzP3xocnM/fGh8ZGF5cz98ZHx3ZWVrcz98d3x5ZWFycz98eXJzP3x5KSQvaTt2YXIgZGk9ZT0+e2NvbnN0IHQ9bGkuZXhlYyhlKTtpZighdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIHRpbWUgcGVyaW9kIGZvcm1hdCIpO2NvbnN0IG49cGFyc2VGbG9hdCh0WzFdKTtzd2l0Y2godFsyXS50b0xvd2VyQ2FzZSgpKXtjYXNlInNlYyI6Y2FzZSJzZWNzIjpjYXNlInNlY29uZCI6Y2FzZSJzZWNvbmRzIjpjYXNlInMiOnJldHVybiBNYXRoLnJvdW5kKG4pO2Nhc2UibWludXRlIjpjYXNlIm1pbnV0ZXMiOmNhc2UibWluIjpjYXNlIm1pbnMiOmNhc2UibSI6cmV0dXJuIE1hdGgucm91bmQoNjAqbik7Y2FzZSJob3VyIjpjYXNlImhvdXJzIjpjYXNlImhyIjpjYXNlImhycyI6Y2FzZSJoIjpyZXR1cm4gTWF0aC5yb3VuZCgzNjAwKm4pO2Nhc2UiZGF5IjpjYXNlImRheXMiOmNhc2UiZCI6cmV0dXJuIE1hdGgucm91bmQobip1aSk7Y2FzZSJ3ZWVrIjpjYXNlIndlZWtzIjpjYXNlInciOnJldHVybiBNYXRoLnJvdW5kKDYwNDgwMCpuKTtkZWZhdWx0OnJldHVybiBNYXRoLnJvdW5kKDMxNTU3NjAwKm4pfX07Y29uc3QgaGk9ZT0+ZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL15hcHBsaWNhdGlvblwvLywiIik7dmFyIGZpPShlLHQsbj17fSk9Pntjb25zdHt0eXA6cn09bjtpZihyJiYoInN0cmluZyIhPXR5cGVvZiBlLnR5cHx8aGkoZS50eXApIT09aGkocikpKXRocm93IG5ldyBxcigndW5leHBlY3RlZCAidHlwIiBKV1QgaGVhZGVyIHZhbHVlJywidHlwIiwiY2hlY2tfZmFpbGVkIik7bGV0IGk7dHJ5e2k9SlNPTi5wYXJzZShOci5kZWNvZGUodCkpfWNhdGNoKGUpe31pZighaWkoaSkpdGhyb3cgbmV3IFdyKCJKV1QgQ2xhaW1zIFNldCBtdXN0IGJlIGEgdG9wLWxldmVsIEpTT04gb2JqZWN0Iik7Y29uc3R7aXNzdWVyOm99PW47aWYobyYmIShBcnJheS5pc0FycmF5KG8pP286W29dKS5pbmNsdWRlcyhpLmlzcykpdGhyb3cgbmV3IHFyKCd1bmV4cGVjdGVkICJpc3MiIGNsYWltIHZhbHVlJywiaXNzIiwiY2hlY2tfZmFpbGVkIik7Y29uc3R7c3ViamVjdDpzfT1uO2lmKHMmJmkuc3ViIT09cyl0aHJvdyBuZXcgcXIoJ3VuZXhwZWN0ZWQgInN1YiIgY2xhaW0gdmFsdWUnLCJzdWIiLCJjaGVja19mYWlsZWQiKTtjb25zdHthdWRpZW5jZTphfT1uO2lmKGEmJihjPWkuYXVkLHU9InN0cmluZyI9PXR5cGVvZiBhP1thXTphLCEoInN0cmluZyI9PXR5cGVvZiBjP3UuaW5jbHVkZXMoYyk6QXJyYXkuaXNBcnJheShjKSYmdS5zb21lKFNldC5wcm90b3R5cGUuaGFzLmJpbmQobmV3IFNldChjKSkpKSkpdGhyb3cgbmV3IHFyKCd1bmV4cGVjdGVkICJhdWQiIGNsYWltIHZhbHVlJywiYXVkIiwiY2hlY2tfZmFpbGVkIik7dmFyIGMsdTtsZXQgbDtzd2l0Y2godHlwZW9mIG4uY2xvY2tUb2xlcmFuY2Upe2Nhc2Uic3RyaW5nIjpsPWRpKG4uY2xvY2tUb2xlcmFuY2UpO2JyZWFrO2Nhc2UibnVtYmVyIjpsPW4uY2xvY2tUb2xlcmFuY2U7YnJlYWs7Y2FzZSJ1bmRlZmluZWQiOmw9MDticmVhaztkZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgY2xvY2tUb2xlcmFuY2Ugb3B0aW9uIHR5cGUiKX1jb25zdHtjdXJyZW50RGF0ZTpkfT1uLGg9KGY9ZHx8bmV3IERhdGUsTWF0aC5mbG9vcihmLmdldFRpbWUoKS8xZTMpKTt2YXIgZjtpZigodm9pZCAwIT09aS5pYXR8fG4ubWF4VG9rZW5BZ2UpJiYibnVtYmVyIiE9dHlwZW9mIGkuaWF0KXRocm93IG5ldyBxcignImlhdCIgY2xhaW0gbXVzdCBiZSBhIG51bWJlcicsImlhdCIsImludmFsaWQiKTtpZih2b2lkIDAhPT1pLm5iZil7aWYoIm51bWJlciIhPXR5cGVvZiBpLm5iZil0aHJvdyBuZXcgcXIoJyJuYmYiIGNsYWltIG11c3QgYmUgYSBudW1iZXInLCJuYmYiLCJpbnZhbGlkIik7aWYoaS5uYmY+aCtsKXRocm93IG5ldyBxcignIm5iZiIgY2xhaW0gdGltZXN0YW1wIGNoZWNrIGZhaWxlZCcsIm5iZiIsImNoZWNrX2ZhaWxlZCIpfWlmKHZvaWQgMCE9PWkuZXhwKXtpZigibnVtYmVyIiE9dHlwZW9mIGkuZXhwKXRocm93IG5ldyBxcignImV4cCIgY2xhaW0gbXVzdCBiZSBhIG51bWJlcicsImV4cCIsImludmFsaWQiKTtpZihpLmV4cDw9aC1sKXRocm93IG5ldyBCcignImV4cCIgY2xhaW0gdGltZXN0YW1wIGNoZWNrIGZhaWxlZCcsImV4cCIsImNoZWNrX2ZhaWxlZCIpfWlmKG4ubWF4VG9rZW5BZ2Upe2NvbnN0IGU9aC1pLmlhdDtpZihlLWw+KCJudW1iZXIiPT10eXBlb2Ygbi5tYXhUb2tlbkFnZT9uLm1heFRva2VuQWdlOmRpKG4ubWF4VG9rZW5BZ2UpKSl0aHJvdyBuZXcgQnIoJyJpYXQiIGNsYWltIHRpbWVzdGFtcCBjaGVjayBmYWlsZWQgKHRvbyBmYXIgaW4gdGhlIHBhc3QpJywiaWF0IiwiY2hlY2tfZmFpbGVkIik7aWYoZTwwLWwpdGhyb3cgbmV3IHFyKCciaWF0IiBjbGFpbSB0aW1lc3RhbXAgY2hlY2sgZmFpbGVkIChpdCBzaG91bGQgYmUgaW4gdGhlIHBhc3QpJywiaWF0IiwiY2hlY2tfZmFpbGVkIil9cmV0dXJuIGl9O2FzeW5jIGZ1bmN0aW9uIHBpKGUsdCxuKXt2YXIgcjtjb25zdCBpPWF3YWl0IGFzeW5jIGZ1bmN0aW9uKGUsdCxuKXtpZihlIGluc3RhbmNlb2YgVWludDhBcnJheSYmKGU9TnIuZGVjb2RlKGUpKSwic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEpyKCJDb21wYWN0IEpXUyBtdXN0IGJlIGEgc3RyaW5nIG9yIFVpbnQ4QXJyYXkiKTtjb25zdHswOnIsMTppLDI6byxsZW5ndGg6c309ZS5zcGxpdCgiLiIpO2lmKDMhPT1zKXRocm93IG5ldyBKcigiSW52YWxpZCBDb21wYWN0IEpXUyIpO2NvbnN0IGE9YXdhaXQgY2koe3BheWxvYWQ6aSxwcm90ZWN0ZWQ6cixzaWduYXR1cmU6b30sdCxuKSxjPXtwYXlsb2FkOmEucGF5bG9hZCxwcm90ZWN0ZWRIZWFkZXI6YS5wcm90ZWN0ZWRIZWFkZXJ9O3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P3suLi5jLGtleTphLmtleX06Y30oZSx0LG4pO2lmKChudWxsPT09KHI9aS5wcm90ZWN0ZWRIZWFkZXIuY3JpdCl8fHZvaWQgMD09PXI/dm9pZCAwOnIuaW5jbHVkZXMoImI2NCIpKSYmITE9PT1pLnByb3RlY3RlZEhlYWRlci5iNjQpdGhyb3cgbmV3IFdyKCJKV1RzIE1VU1QgTk9UIHVzZSB1bmVuY29kZWQgcGF5bG9hZCIpO2NvbnN0IG89e3BheWxvYWQ6ZmkoaS5wcm90ZWN0ZWRIZWFkZXIsaS5wYXlsb2FkLG4pLHByb3RlY3RlZEhlYWRlcjppLnByb3RlY3RlZEhlYWRlcn07cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/ey4uLm8sa2V5Omkua2V5fTpvfWZ1bmN0aW9uIGdpKGUpe3JldHVybiBpaShlKX1jbGFzcyB5aXtjb25zdHJ1Y3RvcihlKXtpZih0aGlzLl9jYWNoZWQ9bmV3IFdlYWtNYXAsIWZ1bmN0aW9uKGUpe3JldHVybiBlJiYib2JqZWN0Ij09dHlwZW9mIGUmJkFycmF5LmlzQXJyYXkoZS5rZXlzKSYmZS5rZXlzLmV2ZXJ5KGdpKX0oZSkpdGhyb3cgbmV3ICRyKCJKU09OIFdlYiBLZXkgU2V0IG1hbGZvcm1lZCIpO3ZhciB0O3RoaXMuX2p3a3M9KHQ9ZSwiZnVuY3Rpb24iPT10eXBlb2Ygc3RydWN0dXJlZENsb25lP3N0cnVjdHVyZWRDbG9uZSh0KTpKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQpKSl9YXN5bmMgZ2V0S2V5KGUsdCl7Y29uc3R7YWxnOm4sa2lkOnJ9PXsuLi5lLC4uLnQuaGVhZGVyfSxpPWZ1bmN0aW9uKGUpe3N3aXRjaCgic3RyaW5nIj09dHlwZW9mIGUmJmUuc2xpY2UoMCwyKSl7Y2FzZSJSUyI6Y2FzZSJQUyI6cmV0dXJuIlJTQSI7Y2FzZSJFUyI6cmV0dXJuIkVDIjtjYXNlIkVkIjpyZXR1cm4iT0tQIjtkZWZhdWx0OnRocm93IG5ldyBLcignVW5zdXBwb3J0ZWQgImFsZyIgdmFsdWUgZm9yIGEgSlNPTiBXZWIgS2V5IFNldCcpfX0obiksbz10aGlzLl9qd2tzLmtleXMuZmlsdGVyKChlPT57bGV0IHQ9aT09PWUua3R5O2lmKHQmJiJzdHJpbmciPT10eXBlb2YgciYmKHQ9cj09PWUua2lkKSx0JiYic3RyaW5nIj09dHlwZW9mIGUuYWxnJiYodD1uPT09ZS5hbGcpLHQmJiJzdHJpbmciPT10eXBlb2YgZS51c2UmJih0PSJzaWciPT09ZS51c2UpLHQmJkFycmF5LmlzQXJyYXkoZS5rZXlfb3BzKSYmKHQ9ZS5rZXlfb3BzLmluY2x1ZGVzKCJ2ZXJpZnkiKSksdCYmIkVkRFNBIj09PW4mJih0PSJFZDI1NTE5Ij09PWUuY3J2fHwiRWQ0NDgiPT09ZS5jcnYpLHQpc3dpdGNoKG4pe2Nhc2UiRVMyNTYiOnQ9IlAtMjU2Ij09PWUuY3J2O2JyZWFrO2Nhc2UiRVMyNTZLIjp0PSJzZWNwMjU2azEiPT09ZS5jcnY7YnJlYWs7Y2FzZSJFUzM4NCI6dD0iUC0zODQiPT09ZS5jcnY7YnJlYWs7Y2FzZSJFUzUxMiI6dD0iUC01MjEiPT09ZS5jcnZ9cmV0dXJuIHR9KSksezA6cyxsZW5ndGg6YX09bztpZigwPT09YSl0aHJvdyBuZXcgenI7aWYoMSE9PWEpdGhyb3cgbmV3IFZyO2NvbnN0IGM9dGhpcy5fY2FjaGVkLmdldChzKXx8dGhpcy5fY2FjaGVkLnNldChzLHt9KS5nZXQocyk7aWYodm9pZCAwPT09Y1tuXSl7Y29uc3QgZT1hd2FpdCBhc3luYyBmdW5jdGlvbihlLHQsbil7aWYoIWlpKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkpXSyBtdXN0IGJlIGFuIG9iamVjdCIpO2lmKHR8fCh0PWUuYWxnKSwic3RyaW5nIiE9dHlwZW9mIHR8fCF0KXRocm93IG5ldyBUeXBlRXJyb3IoJyJhbGciIGFyZ3VtZW50IGlzIHJlcXVpcmVkIHdoZW4gImp3ay5hbGciIGlzIG5vdCBwcmVzZW50Jyk7c3dpdGNoKGUua3R5KXtjYXNlIm9jdCI6aWYoInN0cmluZyIhPXR5cGVvZiBlLmt8fCFlLmspdGhyb3cgbmV3IFR5cGVFcnJvcignbWlzc2luZyAiayIgKEtleSBWYWx1ZSkgUGFyYW1ldGVyIHZhbHVlJyk7cmV0dXJuIG51bGwhPW58fChuPSEwIT09ZS5leHQpLG4/b2koey4uLmUsYWxnOnQsZXh0OiExfSk6anIoZS5rKTtjYXNlIlJTQSI6aWYodm9pZCAwIT09ZS5vdGgpdGhyb3cgbmV3IEtyKCdSU0EgSldLICJvdGgiIChPdGhlciBQcmltZXMgSW5mbykgUGFyYW1ldGVyIHZhbHVlIGlzIG5vdCBzdXBwb3J0ZWQnKTtjYXNlIkVDIjpjYXNlIk9LUCI6cmV0dXJuIG9pKHsuLi5lLGFsZzp0fSk7ZGVmYXVsdDp0aHJvdyBuZXcgS3IoJ1Vuc3VwcG9ydGVkICJrdHkiIChLZXkgVHlwZSkgUGFyYW1ldGVyIHZhbHVlJyl9fSh7Li4ucyxleHQ6ITB9LG4pO2lmKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5fHwicHVibGljIiE9PWUudHlwZSl0aHJvdyBuZXcgJHIoIkpTT04gV2ViIEtleSBTZXQgbWVtYmVycyBtdXN0IGJlIHB1YmxpYyBrZXlzIik7Y1tuXT1lfXJldHVybiBjW25dfX12YXIgdmk9e2V4cG9ydHM6e319LG1pPXtleHBvcnRzOnt9fSx3aT1fcigkdCk7Ci8qISBzYWZlLWJ1ZmZlci4gTUlUIExpY2Vuc2UuIEZlcm9zcyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZy9vcGVuc291cmNlPiAqLwohZnVuY3Rpb24oZSx0KXt2YXIgbj13aSxyPW4uQnVmZmVyO2Z1bmN0aW9uIGkoZSx0KXtmb3IodmFyIG4gaW4gZSl0W25dPWVbbl19ZnVuY3Rpb24gbyhlLHQsbil7cmV0dXJuIHIoZSx0LG4pfXIuZnJvbSYmci5hbGxvYyYmci5hbGxvY1Vuc2FmZSYmci5hbGxvY1Vuc2FmZVNsb3c/ZS5leHBvcnRzPW46KGkobix0KSx0LkJ1ZmZlcj1vKSxvLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHIucHJvdG90eXBlKSxpKHIsbyksby5mcm9tPWZ1bmN0aW9uKGUsdCxuKXtpZigibnVtYmVyIj09dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gcihlLHQsbil9LG8uYWxsb2M9ZnVuY3Rpb24oZSx0LG4pe2lmKCJudW1iZXIiIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7dmFyIGk9cihlKTtyZXR1cm4gdm9pZCAwIT09dD8ic3RyaW5nIj09dHlwZW9mIG4/aS5maWxsKHQsbik6aS5maWxsKHQpOmkuZmlsbCgwKSxpfSxvLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKGUpe2lmKCJudW1iZXIiIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIHIoZSl9LG8uYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKGUpe2lmKCJudW1iZXIiIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIG4uU2xvd0J1ZmZlcihlKX19KG1pLG1pLmV4cG9ydHMpO3ZhciBiaT02NTUzNixfaT00Mjk0OTY3Mjk1O3ZhciBTaT1taS5leHBvcnRzLkJ1ZmZlcixFaT13ci5jcnlwdG98fHdyLm1zQ3J5cHRvO0VpJiZFaS5nZXRSYW5kb21WYWx1ZXM/dmkuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKGU+X2kpdGhyb3cgbmV3IFJhbmdlRXJyb3IoInJlcXVlc3RlZCB0b28gbWFueSByYW5kb20gYnl0ZXMiKTt2YXIgbj1TaS5hbGxvY1Vuc2FmZShlKTtpZihlPjApaWYoZT5iaSlmb3IodmFyIHI9MDtyPGU7cis9YmkpRWkuZ2V0UmFuZG9tVmFsdWVzKG4uc2xpY2UocixyK2JpKSk7ZWxzZSBFaS5nZXRSYW5kb21WYWx1ZXMobik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQpcmV0dXJuIFEubmV4dFRpY2soKGZ1bmN0aW9uKCl7dChudWxsLG4pfSkpO3JldHVybiBufTp2aS5leHBvcnRzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJTZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyLlxuVXNlIENocm9tZSwgRmlyZWZveCBvciBJbnRlcm5ldCBFeHBsb3JlciAxMSIpfTt2YXIgUmk9dmkuZXhwb3J0cztjbGFzcyBUaXtiYXNlNjRVUkxFbmNvZGUoZSl7cmV0dXJuIFByLmVuY29kZShlKS5yZXBsYWNlKC9cKy9nLCItIikucmVwbGFjZSgvXC8vZywiXyIpLnJlcGxhY2UoLz0vZywiIil9YmFzZTY0VVJMRGVjb2RlKGUpe3JldHVybiBQci5kZWNvZGUoZSkudG9TdHJpbmcoKX1oYXNoU2hhMjU2KGUpe3JldHVybiBhdC5mcm9tKFVyKChuZXcgVGV4dEVuY29kZXIpLmVuY29kZShlKSkpfWdlbmVyYXRlUmFuZG9tQnl0ZXMoZSl7cmV0dXJuIFJpKGUpfXZlcmlmeUp3dChlLHQsbixyLGksbyxzLGEpe2NvbnN0IHU9e2FsZ29yaXRobXM6bixhdWRpZW5jZTpyLGNsb2NrVG9sZXJhbmNlOnMsc3ViamVjdDpvfTtyZXR1cm4obnVsbD09YXx8YSkmJih1Lmlzc3Vlcj1pKSxwaShlLChsPXtrZXlzOlt0XX0seWkucHJvdG90eXBlLmdldEtleS5iaW5kKG5ldyB5aShsKSkpLHUpLnRoZW4oKCgpPT5Qcm9taXNlLnJlc29sdmUoITApKSkuY2F0Y2goKGU9Pnt2YXIgdDtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IGMoIlNQQS1DUllQVE8tVVRJTFMtVkotSVYwMSIsbnVsbCE9PSh0PW51bGw9PWU/dm9pZCAwOmUucmVhc29uKSYmdm9pZCAwIT09dD90OkpTT04uc3RyaW5naWZ5KGUpLGAke251bGw9PWU/dm9pZCAwOmUuY29kZX0gJHtudWxsPT1lP3ZvaWQgMDplLmNsYWltfWApKX0pKTt2YXIgbH19KHQ9Pntjb25zdCBuPXNlbGY7bGV0IHI7bi5vbm1lc3NhZ2U9KHtkYXRhOm4scG9ydHM6YX0pPT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt2YXIgdSxsLGQsaCxmLHA7Y29uc3Qgdj1hWzBdO2lmKG4udHlwZT09PXl8fHIpc3dpdGNoKG4udHlwZSl7Y2FzZSB5OnRyeXtjb25zdCBhPU9iamVjdC5hc3NpZ24oe30sbi5kYXRhKTtyPXlpZWxkKCh0LG4pPT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtjb25zdCByPW5ldyBtcixpPW5ldyBUaSxvPW5ldyBnO3lpZWxkIG8uaW5pdGlhbGl6ZSh0LHIsaSk7Y29uc3Qgcz1uZXcgQShvKSxhPW4obyxzKSxjPW8uZ2V0RGF0YUxheWVyKCksdT12ci5nZXRJbnN0YW5jZSgpO3JldHVybihudWxsPT11P3ZvaWQgMDp1LmluaXQpJiYoeWllbGQgdS5pbml0KCEwLCh0PT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt5aWVsZCBhLmF0dGFjaFRva2VuVG9SZXF1ZXN0Q29uZmlnKHQpfSkpKSkpLHtkaXNhYmxlSHR0cEhhbmRsZXI6KCk9PnthLmRpc2FibGVIdHRwSGFuZGxlcih1KX0sZW5hYmxlSHR0cEhhbmRsZXI6KCk9PnthLmVuYWJsZUh0dHBIYW5kbGVyKHUpfSxnZXRBY2Nlc3NUb2tlbjooKT0+YS5nZXRBY2Nlc3NUb2tlbigpLGdldEF1dGhvcml6YXRpb25VUkw6dD0+ZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIG8uZ2V0QXV0aG9yaXphdGlvblVSTCh0KS50aGVuKCh0PT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt2YXIgZTtjb25zdCBuPW51bGwhPT0oZT1uZXcgVVJMKHQpLnNlYXJjaFBhcmFtcy5nZXQoInN0YXRlIikpJiZ2b2lkIDAhPT1lP2U6IiIscj15aWVsZCBvLmdldFBLQ0VDb2RlKG4pO3JldHVybnthdXRob3JpemF0aW9uVVJMOnQscGtjZTpyfX0pKSkpLmNhdGNoKChlPT5Qcm9taXNlLnJlamVjdChlKSkpfSkpLGdldEJhc2ljVXNlckluZm86KCk9PmUodm9pZCAwLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiBhLmdldEJhc2ljVXNlckluZm8oKX0pKSxnZXRDb25maWdEYXRhOigpPT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gYy5nZXRDb25maWdEYXRhKCl9KSksZ2V0Q3J5cHRvSGVscGVyOigpPT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gYS5nZXRDcnlwdG9IZWxwZXIoKX0pKSxnZXREZWNvZGVkSURQSURUb2tlbjooKT0+ZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIGEuZ2V0RGVjb2RlZElEUElEVG9rZW4oKX0pKSxnZXREZWNvZGVkSURUb2tlbjooKT0+ZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIGEuZ2V0RGVjb2RlZElEVG9rZW4oKX0pKSxnZXRJRFRva2VuOigpPT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4gYS5nZXRJRFRva2VuKCl9KSksZ2V0T0lEQ1NlcnZpY2VFbmRwb2ludHM6KCk9PmUodm9pZCAwLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiBhLmdldE9JRENTZXJ2aWNlRW5kcG9pbnRzKCl9KSksZ2V0U2lnbk91dFVSTDooKT0+ZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHlpZWxkIG8uZ2V0U2lnbk91dFVSTCgpfSkpLGh0dHBSZXF1ZXN0OnQ9PmUodm9pZCAwLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZCBhLmh0dHBSZXF1ZXN0KHUsdCl9KSksaHR0cFJlcXVlc3RBbGw6dD0+ZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cmV0dXJuIHlpZWxkIGEuaHR0cFJlcXVlc3RBbGwodCx1KX0pKSxpc0F1dGhlbnRpY2F0ZWQ6KCk9PmEuaXNBdXRoZW50aWNhdGVkKCkscmVmcmVzaEFjY2Vzc1Rva2VuOigpPT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXt0cnl7cmV0dXJuIHlpZWxkIGEucmVmcmVzaEFjY2Vzc1Rva2VuKCl9Y2F0Y2goZSl7cmV0dXJuIFByb21pc2UucmVqZWN0KGUpfX0pKSxyZXF1ZXN0QWNjZXNzVG9rZW46KHQsbixyLGkpPT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4geWllbGQgYS5yZXF1ZXN0QWNjZXNzVG9rZW4odCxuLHZvaWQgMCxyLGkpfSkpLHJlcXVlc3RDdXN0b21HcmFudDp0PT5lKHZvaWQgMCx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbiooKXtyZXR1cm4geWllbGQgYS5yZXF1ZXN0Q3VzdG9tR3JhbnQodCl9KSkscmV2b2tlQWNjZXNzVG9rZW46KCk9PmUodm9pZCAwLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe2NvbnN0IGU9eWllbGQgcy5nZXRSZWZyZXNoVGltZW91dFRpbWVyKCk7cmV0dXJuIG8ucmV2b2tlQWNjZXNzVG9rZW4oKS50aGVuKCgoKT0+KHMuY2xlYXJSZWZyZXNoVG9rZW5UaW1lb3V0KGUpLFByb21pc2UucmVzb2x2ZSghMCkpKSkuY2F0Y2goKGU9PlByb21pc2UucmVqZWN0KGUpKSl9KSksc2V0SHR0cFJlcXVlc3RGaW5pc2hDYWxsYmFjazplPT57KG51bGw9PXU/dm9pZCAwOnUuc2V0SHR0cFJlcXVlc3RGaW5pc2hDYWxsYmFjaykmJnUuc2V0SHR0cFJlcXVlc3RGaW5pc2hDYWxsYmFjayhlKX0sc2V0SHR0cFJlcXVlc3RTdGFydENhbGxiYWNrOmU9PnsobnVsbD09dT92b2lkIDA6dS5zZXRIdHRwUmVxdWVzdFN0YXJ0Q2FsbGJhY2spJiZ1LnNldEh0dHBSZXF1ZXN0U3RhcnRDYWxsYmFjayhlKX0sc2V0SHR0cFJlcXVlc3RTdWNjZXNzQ2FsbGJhY2s6ZT0+eyhudWxsPT11P3ZvaWQgMDp1LnNldEh0dHBSZXF1ZXN0U3VjY2Vzc0NhbGxiYWNrKSYmdS5zZXRIdHRwUmVxdWVzdFN1Y2Nlc3NDYWxsYmFjayhlKX0sc2V0U2Vzc2lvblN0YXRlOnQ9PmUodm9pZCAwLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIGMuc2V0U2Vzc2lvbkRhdGFQYXJhbWV0ZXIoInNlc3Npb25fc3RhdGUiLHQpfSkpLHNpZ25PdXQ6KCk9PmUodm9pZCAwLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3JldHVybiBzLmNsZWFyUmVmcmVzaFRva2VuVGltZW91dCgpLHlpZWxkIG8uZ2V0U2lnbk91dFVSTCgpfSkpLHN0YXJ0QXV0b1JlZnJlc2hUb2tlbjooKT0+ZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24qKCl7cy5jbGVhclJlZnJlc2hUb2tlblRpbWVvdXQoKSxzLnJlZnJlc2hBY2Nlc3NUb2tlbkF1dG9tYXRpY2FsbHkoYSl9KSksdXBkYXRlQ29uZmlnOnQ9PmUodm9pZCAwLHZvaWQgMCx2b2lkIDAsKGZ1bmN0aW9uKigpe3lpZWxkIG8udXBkYXRlQ29uZmlnKHQpfSkpfX0pKSkoYSx0KSxyLnNldEh0dHBSZXF1ZXN0RmluaXNoQ2FsbGJhY2socyksci5zZXRIdHRwUmVxdWVzdFN0YXJ0Q2FsbGJhY2soaSksci5zZXRIdHRwUmVxdWVzdFN1Y2Nlc3NDYWxsYmFjayhvKSx2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVTdWNjZXNzTWVzc2FnZSgpKX1jYXRjaChlKXt2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKSl9YnJlYWs7Y2FzZSJnZXRfYXV0aF91cmwiOnIuZ2V0QXV0aG9yaXphdGlvblVSTChudWxsPT1uP3ZvaWQgMDpuLmRhdGEpLnRoZW4oKGU9Pnt2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVTdWNjZXNzTWVzc2FnZShlKSl9KSkuY2F0Y2goKGU9Pnt2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKSl9KSk7YnJlYWs7Y2FzZSJyZXF1ZXN0X2dldF90b2tlbiI6ci5yZXF1ZXN0QWNjZXNzVG9rZW4obnVsbD09PSh1PW51bGw9PW4/dm9pZCAwOm4uZGF0YSl8fHZvaWQgMD09PXU/dm9pZCAwOnUuY29kZSxudWxsPT09KGw9bnVsbD09bj92b2lkIDA6bi5kYXRhKXx8dm9pZCAwPT09bD92b2lkIDA6bC5zZXNzaW9uU3RhdGUsbnVsbD09PShkPW51bGw9PW4/dm9pZCAwOm4uZGF0YSl8fHZvaWQgMD09PWQ/dm9pZCAwOmQucGtjZSxudWxsPT09KGg9bnVsbD09bj92b2lkIDA6bi5kYXRhKXx8dm9pZCAwPT09aD92b2lkIDA6aC5zdGF0ZSkudGhlbigoZT0+e3YucG9zdE1lc3NhZ2UoUi5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKGUpKX0pKS5jYXRjaCgoZT0+e3YucG9zdE1lc3NhZ2UoUi5nZW5lcmF0ZUZhaWx1cmVNZXNzYWdlKGUpKX0pKTticmVhaztjYXNlImh0dHAtcmVxdWVzdCI6e2NvbnN0IGU9bi5kYXRhLHQ9bnVsbD09ZT92b2lkIDA6ZS5kYXRhO2lmKCEwPT09KG51bGw9PT0ocD1udWxsPT09KGY9bi5kYXRhKXx8dm9pZCAwPT09Zj92b2lkIDA6Zi5kYXRhKXx8dm9pZCAwPT09cD92b2lkIDA6cC5mb3JtRGF0YSkpe2NvbnN0IG49bmV3IEZvcm1EYXRhO2Zvcihjb25zdCBlIGluIHQpImZvcm1EYXRhIiE9PWUmJm4uYXBwZW5kKGUsdFtlXSk7ZS5kYXRhPW59ci5odHRwUmVxdWVzdChlKS50aGVuKChlPT57di5wb3N0TWVzc2FnZShSLmdlbmVyYXRlU3VjY2Vzc01lc3NhZ2UoZSkpfSkpLmNhdGNoKChlPT57di5wb3N0TWVzc2FnZShSLmdlbmVyYXRlRmFpbHVyZU1lc3NhZ2UoZSkpfSkpO2JyZWFrfWNhc2UiaHR0cC1zdHJlYW0tcmVxdWVzdCI6e2NvbnN0IGU9bi5kYXRhO2UuYWRhcHRlcj0iZmV0Y2giLGUucmVzcG9uc2VUeXBlPSJzdHJlYW0iLHIuaHR0cFJlcXVlc3QoZSkudGhlbigoZT0+e3ZhciB0O2NvbnN0IG49bnVsbD09PSh0PWUpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmRhdGE7biBpbnN0YW5jZW9mIFJlYWRhYmxlU3RyZWFtP3YucG9zdE1lc3NhZ2Uoe2RhdGE6bixzdWNjZXNzOiEwfSxbbl0pOnYucG9zdE1lc3NhZ2UoUi5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKGUpKX0pKS5jYXRjaCgoZT0+e3YucG9zdE1lc3NhZ2UoUi5nZW5lcmF0ZUZhaWx1cmVNZXNzYWdlKGUpKX0pKTticmVha31jYXNlImh0dHAtcmVxdWVzdC1hbGwiOnIuaHR0cFJlcXVlc3RBbGwobi5kYXRhKS50aGVuKChlPT57di5wb3N0TWVzc2FnZShSLmdlbmVyYXRlU3VjY2Vzc01lc3NhZ2UoZSkpfSkpLmNhdGNoKChlPT57di5wb3N0TWVzc2FnZShSLmdlbmVyYXRlRmFpbHVyZU1lc3NhZ2UoZSkpfSkpO2JyZWFrO2Nhc2Uic2lnbi1vdXQiOnRyeXt2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVTdWNjZXNzTWVzc2FnZSh5aWVsZCByLnNpZ25PdXQoKSkpfWNhdGNoKGUpe3YucG9zdE1lc3NhZ2UoUi5nZW5lcmF0ZUZhaWx1cmVNZXNzYWdlKGUpKX1icmVhaztjYXNlInJlcXVlc3QtY3VzdG9tLWdyYW50IjpyLnJlcXVlc3RDdXN0b21HcmFudChuLmRhdGEpLnRoZW4oKGU9Pnt2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVTdWNjZXNzTWVzc2FnZShlKSl9KSkuY2F0Y2goKGU9Pnt2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKSl9KSk7YnJlYWs7Y2FzZSJyZXZva2UtYWNjZXNzLXRva2VuIjpyLnJldm9rZUFjY2Vzc1Rva2VuKCkudGhlbigoZT0+e3YucG9zdE1lc3NhZ2UoUi5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKGUpKX0pKS5jYXRjaCgoZT0+e3YucG9zdE1lc3NhZ2UoUi5nZW5lcmF0ZUZhaWx1cmVNZXNzYWdlKGUpKX0pKTticmVhaztjYXNlImdldC1vaWRjLXNlcnZpY2UtZW5kcG9pbnRzIjp0cnl7di5wb3N0TWVzc2FnZShSLmdlbmVyYXRlU3VjY2Vzc01lc3NhZ2UoeWllbGQgci5nZXRPSURDU2VydmljZUVuZHBvaW50cygpKSl9Y2F0Y2goZSl7di5wb3N0TWVzc2FnZShSLmdlbmVyYXRlRmFpbHVyZU1lc3NhZ2UoZSkpfWJyZWFrO2Nhc2UiZ2V0LWJhc2ljLXVzZXItaW5mbyI6dHJ5e3YucG9zdE1lc3NhZ2UoUi5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKHlpZWxkIHIuZ2V0QmFzaWNVc2VySW5mbygpKSl9Y2F0Y2goZSl7di5wb3N0TWVzc2FnZShSLmdlbmVyYXRlRmFpbHVyZU1lc3NhZ2UoZSkpfWJyZWFrO2Nhc2UiZ2V0LWRlY29kZWQtaWQtdG9rZW4iOnRyeXt2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVTdWNjZXNzTWVzc2FnZSh5aWVsZCByLmdldERlY29kZWRJRFRva2VuKCkpKX1jYXRjaChlKXt2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKSl9YnJlYWs7Y2FzZSJnZXQtY3J5cHRvLWhlbHBlciI6dHJ5e3YucG9zdE1lc3NhZ2UoUi5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKHlpZWxkIHIuZ2V0Q3J5cHRvSGVscGVyKCkpKX1jYXRjaChlKXt2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKSl9YnJlYWs7Y2FzZSJnZXRfaWRfdG9rZW4iOnRyeXt2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVTdWNjZXNzTWVzc2FnZSh5aWVsZCByLmdldElEVG9rZW4oKSkpfWNhdGNoKGUpe3YucG9zdE1lc3NhZ2UoUi5nZW5lcmF0ZUZhaWx1cmVNZXNzYWdlKGUpKX1icmVhaztjYXNlImVuYWJsZV9odHRwX2hhbmRsZXIiOnIuZW5hYmxlSHR0cEhhbmRsZXIoKSx2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVTdWNjZXNzTWVzc2FnZSgpKTticmVhaztjYXNlImRpc2FibGVfaHR0cF9oYW5kbGVyIjpyLmRpc2FibGVIdHRwSGFuZGxlcigpLHYucG9zdE1lc3NhZ2UoUi5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKCkpO2JyZWFrO2Nhc2UiaXNfYXV0aGVudGljYXRlZCI6dHJ5e3YucG9zdE1lc3NhZ2UoUi5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKHlpZWxkIHIuaXNBdXRoZW50aWNhdGVkKCkpKX1jYXRjaChlKXt2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKSl9YnJlYWs7Y2FzZSJnZXRfc2lnbl9vdXRfdXJsIjp0cnl7di5wb3N0TWVzc2FnZShSLmdlbmVyYXRlU3VjY2Vzc01lc3NhZ2UoeWllbGQgci5nZXRTaWduT3V0VVJMKCkpKX1jYXRjaChlKXt2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKSl9YnJlYWs7Y2FzZSJyZWZyZXNoX2FjY2Vzcy10b2tlbiI6dHJ5e3YucG9zdE1lc3NhZ2UoUi5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKHlpZWxkIHIucmVmcmVzaEFjY2Vzc1Rva2VuKCkpKX1jYXRjaChlKXt2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKSl9YnJlYWs7Y2FzZSJzdGFydF9hdXRvX3JlZnJlc2hfdG9rZW4iOnRyeXt2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVTdWNjZXNzTWVzc2FnZShyLnN0YXJ0QXV0b1JlZnJlc2hUb2tlbigpKSl9Y2F0Y2goZSl7di5wb3N0TWVzc2FnZShSLmdlbmVyYXRlRmFpbHVyZU1lc3NhZ2UoZSkpfWJyZWFrO2Nhc2Uic2V0X3Nlc3Npb25fc3RhdGUiOnRyeXt2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVTdWNjZXNzTWVzc2FnZSh5aWVsZCByLnNldFNlc3Npb25TdGF0ZShudWxsPT1uP3ZvaWQgMDpuLmRhdGEpKSl9Y2F0Y2goZSl7di5wb3N0TWVzc2FnZShSLmdlbmVyYXRlRmFpbHVyZU1lc3NhZ2UoZSkpfWJyZWFrO2Nhc2UidXBkYXRlX2NvbmZpZyI6dHJ5e3YucG9zdE1lc3NhZ2UoUi5nZW5lcmF0ZVN1Y2Nlc3NNZXNzYWdlKHlpZWxkIHIudXBkYXRlQ29uZmlnKG51bGw9PW4/dm9pZCAwOm4uZGF0YSkpKX1jYXRjaChlKXt2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZShlKSl9YnJlYWs7Y2FzZSJnZXRfY29uZmlnX2RhdGEiOnRyeXt2LnBvc3RNZXNzYWdlKFIuZ2VuZXJhdGVTdWNjZXNzTWVzc2FnZSh5aWVsZCByLmdldENvbmZpZ0RhdGEoKSkpfWNhdGNoKGUpe3YucG9zdE1lc3NhZ2UoUi5nZW5lcmF0ZUZhaWx1cmVNZXNzYWdlKGUpKX1icmVhaztkZWZhdWx0Om51bGw9PXZ8fHYucG9zdE1lc3NhZ2UoUi5nZW5lcmF0ZUZhaWx1cmVNZXNzYWdlKG5ldyBjKCJTUEEtQ0xJRU5UX1dPUktFUi1PTk1TRy1JVjAyIiwiVGhlIG1lc3NhZ2UgdHlwZSBpcyBpbnZhbGlkLiIsYFRoZSBtZXNzYWdlIHR5cGUgcHJvdmlkZWQsICR7bi50eXBlfSwgaXMgaW52YWxpZC5gKSkpfWVsc2Ugdi5wb3N0TWVzc2FnZShSLmdlbmVyYXRlRmFpbHVyZU1lc3NhZ2UobmV3IGMoIlNQQS1DTElFTlRfV09SS0VSLU9OTVNHLU5GMDEiLCJUaGUgd2ViIHdvcmtlciBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgeWV0LiIsIlRoZSBpbml0aWFsaXplIG1ldGhvZCBuZWVkcyB0byBiZSBjYWxsZWQgYmVmb3JlIHRoZSBzcGVjaWZpZWQgb3BlcmF0aW9uIGNhbiBiZSBjYXJyaWVkIG91dC4iKSkpfSkpO2NvbnN0IGk9KCk9PntuLnBvc3RNZXNzYWdlKHt0eXBlOiJyZXF1ZXN0LXN0YXJ0In0pfSxvPWU9Pnt2YXIgdDsobnVsbD09PSh0PWUpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmRhdGEpaW5zdGFuY2VvZiBSZWFkYWJsZVN0cmVhbXx8bi5wb3N0TWVzc2FnZSh7ZGF0YTpKU09OLnN0cmluZ2lmeShudWxsIT1lP2U6IiIpLHR5cGU6InJlcXVlc3Qtc3VjY2VzcyJ9KX0scz0oKT0+e24ucG9zdE1lc3NhZ2Uoe3R5cGU6InJlcXVlc3QtZmluaXNoIn0pfX0pKCgoZSx0KT0+bmV3IGsoZSx0KSkpO3JldHVybnt9fSgpOwoK"),i=r.indexOf("\n",10)+1,o=r.substring(i)+"",l=new Blob([o],{type:"application/javascript"});return URL.createObjectURL(l)}(),new Worker(N,t)};const J="token_request_config";var T;!function(t){t.SignIn="sign-in",t.SignOut="sign-out",t.Initialize="initialize",t.HttpRequestStart="http-request-start",t.HttpRequestFinish="http-request-finish",t.HttpRequestError="http-request-error",t.HttpRequestSuccess="http-request-success",t.RevokeAccessToken="revoke-access-token",t.CustomGrant="custom-grant",t.SignOutFailed="sign-out-failed"}(T||(T={}));const L="Y2hlY2tTZXNzaW9u";var x;!function(t){t.LocalStorage="localStorage",t.SessionStorage="sessionStorage",t.WebWorker="webWorker",t.BrowserMemory="browserMemory"}(x||(x={}));class U{constructor(){}static generateSuccessMessage(t){return{blob:(null==t?void 0:t.data)instanceof Blob?null==t?void 0:t.data:null,data:JSON.stringify(null!=t?t:""),success:!0}}static generateFailureMessage(t){return(null==t?void 0:t.toJSON)&&delete t.toJSON,{error:JSON.stringify(null!=t?t:""),success:!1}}}class H{constructor(){}static removeAuthorizationCode(){const t=location.href;history.pushState({},document.title,t.replace(/\?code=.*$/,""))}static getPKCE(t){var e;return null!==(e=sessionStorage.getItem(t))&&void 0!==e?e:""}static setPKCE(t,e){sessionStorage.setItem(t,e)}static setSignOutURL(t,e,n){sessionStorage.setItem(`${g}-instance_${n}-${e}`,t)}static getSignOutURL(t,e){var n;return null!==(n=sessionStorage.getItem(`${g}-instance_${e}-${t}`))&&void 0!==n?n:""}static removePKCE(t){sessionStorage.removeItem(t)}static canContinueSignIn(t,e){return!(t&&!H.hasErrorInURL()&&!H.hasAuthSearchParamsInURL()&&!e)}static isInitializedSilentSignIn(){return H.isSilentStatePresentInURL()}static wasSignInCalled(){return!(!H.hasErrorInURL()&&!H.hasAuthSearchParamsInURL()||this.isSilentStatePresentInURL())}static wasSilentSignInCalled(){const t=sessionStorage.getItem("initialized-silent-sign-in"),e=t?JSON.parse(t):null;return Boolean(e)}static isSignOutSuccessful(){return e(this,void 0,void 0,(function*(){if(K.isSignOutSuccessful(window.location.href)){const t=window.location.href.split("?")[0];return history.pushState({},document.title,t),yield K.clearUserSessionData(),!0}return!1}))}static didSignOutFail(){if(K.didSignOutFail(window.location.href)){const t=new URL(window.location.href),e=t.searchParams.get("error"),n=t.searchParams.get("error_description"),r=window.location.href.split("?")[0];return history.pushState({},document.title,r),{description:null!=n?n:"",error:null!=e?e:""}}return!1}static isSilentStatePresentInURL(){var t;const e=new URL(window.location.href).searchParams.get("state");return null!==(t=null==e?void 0:e.includes("sign-in-silently"))&&void 0!==t&&t}static hasAuthSearchParamsInURL(t=window.location.search){return/[?&]code=[^&]+/.test(t)}static hasErrorInURL(t=window.location.href){const e=new URL(t);return!!e.searchParams.get("error")&&e.searchParams.get("state")!==y}static canSendPromptNoneRequest(){const t=sessionStorage.getItem("promptNoneRequestSent");return!(t&&JSON.parse(t))}static setPromptNoneRequestSent(t){sessionStorage.setItem("promptNoneRequestSent",JSON.stringify(t))}static waitTillPageRedirect(t){return e(this,void 0,void 0,(function*(){const e=null!=t?t:3e3;yield new Promise((t=>setTimeout(t,1e3*e)))}))}}H.until=(t,e=500)=>{const n=r=>t()?r():setTimeout((()=>n(r)),e);return new Promise(n)};class w{constructor(t,e){this._authenticationClient=t,this._dataLayer=this._authenticationClient.getDataLayer(),this._spaHelper=e,this._instanceID=this._authenticationClient.getInstanceID(),this._isTokenRefreshing=!1}enableHttpHandler(t){(null==t?void 0:t.enableHandler)&&t.enableHandler()}disableHttpHandler(t){(null==t?void 0:t.disableHandler)&&t.disableHandler()}initializeSessionManger(t,e,n,r,i){var o,l,a;i.initialize(t.clientID,null!==(o=e.checkSessionIframe)&&void 0!==o?o:"",n,null!==(l=t.checkSessionInterval)&&void 0!==l?l:3,null!==(a=t.sessionRefreshInterval)&&void 0!==a?a:300,t.signInRedirectURL,r)}requestCustomGrant(t,n){var r,i,o;return e(this,void 0,void 0,(function*(){let l=!0,a=!1;if(null==t?void 0:t.tokenEndpoint){l=!1;for(const e of[...null!==(i=null===(r=yield this._dataLayer.getConfigData())||void 0===r?void 0:r.resourceServerURLs)&&void 0!==i?i:[],t.baseUrl])if(e&&(null===(o=t.tokenEndpoint)||void 0===o?void 0:o.startsWith(e))){a=!0;break}}return t.shouldReplayAfterRefresh&&this._dataLayer.setTemporaryDataParameter("custom_grant_config",JSON.stringify(t)),l||a?this._authenticationClient.requestCustomGrant(t).then((r=>e(this,void 0,void 0,(function*(){return n&&"function"==typeof n&&n(t),t.returnsSession?(this._spaHelper.refreshAccessTokenAutomatically(this),this._authenticationClient.getBasicUserInfo()):r})))).catch((t=>Promise.reject(t))):Promise.reject(new X("SPA-MAIN_THREAD_CLIENT-RCG-IV01","Request to the provided endpoint is prohibited.","Requests can only be sent to resource servers specified by the `resourceServerURLs` attribute while initializing the SDK. The specified token endpoint in this request cannot be found among the `resourceServerURLs`"))}))}getCustomGrantConfigData(){return e(this,void 0,void 0,(function*(){const t=yield this._dataLayer.getTemporaryDataParameter("custom_grant_config");return t?JSON.parse(t):null}))}refreshAccessToken(t){return e(this,void 0,void 0,(function*(){try{yield this._authenticationClient.refreshAccessToken();const e=yield this.getCustomGrantConfigData();return e&&(yield this.requestCustomGrant(e,t)),this._spaHelper.refreshAccessTokenAutomatically(this),this._authenticationClient.getBasicUserInfo()}catch(t){const e={type:"refresh-access-token-error"};return window.postMessage(e),Promise.reject(t)}}))}retryFailedRequests(t){return e(this,void 0,void 0,(function*(){const e=t.httpClient,n=t.requestConfig,r=t.isHttpHandlerEnabled,i=t.httpErrorCallback,o=t.httpFinishCallback;yield H.until((()=>!this._isTokenRefreshing));try{const t=yield e.request(n);return Promise.resolve(t)}catch(e){return r&&("function"==typeof i&&(yield i(e)),"function"==typeof o&&o()),Promise.reject(e)}}))}httpRequest(t,n,r,i,o,l){var a,c;return e(this,void 0,void 0,(function*(){let s=!1;const u=yield this._dataLayer.getConfigData();for(const t of[...null!==(a=yield null==u?void 0:u.resourceServerURLs)&&void 0!==a?a:[],u.baseUrl])if(t&&(null===(c=null==n?void 0:n.url)||void 0===c?void 0:c.startsWith(t))){s=!0;break}return s?t.request(n).then((t=>Promise.resolve(t))).catch((a=>e(this,void 0,void 0,(function*(){var e,c,s;if(401===(null===(e=null==a?void 0:a.response)||void 0===e?void 0:e.status)||!(null==a?void 0:a.response)){if(this._isTokenRefreshing)return this.retryFailedRequests({enableRetrievingSignOutURLFromSession:l,httpClient:t,httpErrorCallback:i,httpFinishCallback:o,isHttpHandlerEnabled:r,requestConfig:n});let u;this._isTokenRefreshing=!0;try{u=yield this.refreshAccessToken(l),this._isTokenRefreshing=!1}catch(e){throw this._isTokenRefreshing=!1,r&&("function"==typeof i&&(yield i(Object.assign(Object.assign({},a),{code:"Access token is invalid"}))),"function"==typeof o&&o()),new X("SPA-AUTH_HELPER-HR-SE01",null!==(c=null==e?void 0:e.name)&&void 0!==c?c:"Refresh token request failed.",null!==(s=null==e?void 0:e.message)&&void 0!==s?s:"An error occurred while trying to refresh the access token following a 401 response from the server.")}if(u)try{const e=yield t.request(n);return Promise.resolve(e)}catch(e){return r&&("function"==typeof i&&(yield i(e)),"function"==typeof o&&o()),Promise.reject(e)}}return r&&("function"==typeof i&&(yield i(a)),"function"==typeof o&&o()),Promise.reject(a)})))):Promise.reject(new X("SPA-AUTH_HELPER-HR-IV02","Request to the provided endpoint is prohibited.","Requests can only be sent to resource servers specified by the `resourceServerURLs` attribute while initializing the SDK. The specified endpoint in this request cannot be found among the `resourceServerURLs`"))}))}httpRequestAll(t,n,r,i,o){var l,a,c;return e(this,void 0,void 0,(function*(){let s=!0;const u=yield this._dataLayer.getConfigData();for(const e of t){let t=!1;for(const n of[...null!==(a=null===(l=yield u)||void 0===l?void 0:l.resourceServerURLs)&&void 0!==a?a:[],u.baseUrl])if(n&&(null===(c=e.url)||void 0===c?void 0:c.startsWith(n))){t=!0;break}if(!t){s=!1;break}}const d=[];if(s)return t.forEach((t=>{d.push(n.request(t))})),(null==n?void 0:n.all)&&n.all(d).then((t=>Promise.resolve(t))).catch((t=>e(this,void 0,void 0,(function*(){var l,a,c;if(401===(null===(l=null==t?void 0:t.response)||void 0===l?void 0:l.status)||!(null==t?void 0:t.response)){let l;try{l=yield this._authenticationClient.refreshAccessToken()}catch(e){throw r&&("function"==typeof i&&(yield i(Object.assign(Object.assign({},t),{code:"Access token is invalid"}))),"function"==typeof o&&o()),new X("SPA-AUTH_HELPER-HRA-SE01",null!==(a=null==e?void 0:e.name)&&void 0!==a?a:"Refresh token request failed.",null!==(c=null==e?void 0:e.message)&&void 0!==c?c:"An error occurred while trying to refresh the access token following a 401 response from the server.")}if(l)return n.all&&n.all(d).then((t=>Promise.resolve(t))).catch((t=>e(this,void 0,void 0,(function*(){return r&&("function"==typeof i&&(yield i(t)),"function"==typeof o&&o()),Promise.reject(t)}))))}return r&&("function"==typeof i&&(yield i(t)),"function"==typeof o&&o()),Promise.reject(t)}))));throw new X("SPA-AUTH_HELPER-HRA-IV02","Request to the provided endpoint is prohibited.","Requests can only be sent to resource servers specified by the `resourceServerURLs` attribute while initializing the SDK. The specified endpoint in this request cannot be found among the `resourceServerURLs`")}))}requestAccessToken(t,n,r,i,o,l){return e(this,void 0,void 0,(function*(){const a=yield this._dataLayer.getConfigData();if(a.storage===x.BrowserMemory&&a.enablePKCE&&n){const t=H.getPKCE(v.extractPKCEKeyFromStateParam(n));yield this._authenticationClient.setPKCECode(v.extractPKCEKeyFromStateParam(n),t)}else a.storage===x.WebWorker&&i&&(yield this._authenticationClient.setPKCECode(i,null!=o?o:""));return t?this._authenticationClient.requestAccessToken(t,null!=n?n:"",null!=o?o:"",void 0,l).then((()=>e(this,void 0,void 0,(function*(){return a.storage!==x.WebWorker?(H.setSignOutURL(yield this._authenticationClient.getSignOutURL(),a.clientID,this._instanceID),this._spaHelper&&(this._spaHelper.clearRefreshTokenTimeout(),this._spaHelper.refreshAccessTokenAutomatically(this)),r&&"function"==typeof r&&a.enableOIDCSessionManagement&&r()):this._spaHelper&&this._spaHelper.refreshAccessTokenAutomatically(this),this._authenticationClient.getBasicUserInfo()})))).catch((t=>Promise.reject(t))):Promise.reject(new X("SPA-AUTH_HELPER-RAT1-NF01","No authorization code.","No authorization code was found."))}))}trySignInSilently(t,n,r,i,o){var l;return e(this,void 0,void 0,(function*(){if(H.isInitializedSilentSignIn())return yield r.receivePromptNoneResponse(),Promise.resolve({allowedScopes:"",displayName:"",email:"",sessionState:"",sub:"",tenantDomain:"",username:""});const a=document.getElementById("rpIFrame"),c=null===(l=null==a?void 0:a.contentDocument)||void 0===l?void 0:l.getElementById("promptNoneIFrame");try{const e=yield t(i);c.src=e}catch(t){return Promise.reject(t)}return new Promise(((t,r)=>{const i=setTimeout((()=>{t(!1)}),1e4),l=a=>e(this,void 0,void 0,(function*(){var e,c,s,u;const d=a.data;"check_session_signed_out"==(null==d?void 0:d.type)&&(window.removeEventListener("message",l),clearTimeout(i),t(!1)),"check_session_signed_in"==(null==d?void 0:d.type)&&(null===(e=null==d?void 0:d.data)||void 0===e?void 0:e.code)&&n(null===(c=null==d?void 0:d.data)||void 0===c?void 0:c.code,null===(s=null==d?void 0:d.data)||void 0===s?void 0:s.sessionState,null===(u=null==d?void 0:d.data)||void 0===u?void 0:u.state,o).then((e=>{window.removeEventListener("message",l),t(e)})).catch((t=>{window.removeEventListener("message",l),r(t)})).finally((()=>{clearTimeout(i)}))}));window.addEventListener("message",l)}))}))}handleSignIn(t,n,r){return e(this,void 0,void 0,(function*(){const e=yield this._dataLayer.getConfigData();if(yield t())return Promise.resolve({allowedScopes:"",displayName:"",email:"",sessionState:"",sub:"",tenantDomain:"",username:""});if(e.storage!==x.WebWorker&&(yield this._authenticationClient.isAuthenticated()))return this._spaHelper.clearRefreshTokenTimeout(),this._spaHelper.refreshAccessTokenAutomatically(this),e.enableOIDCSessionManagement&&n(),Promise.resolve(yield this._authenticationClient.getBasicUserInfo());const i=new URL(window.location.href).searchParams.get("error"),o=new URL(window.location.href).searchParams.get("error_description");if(i){const t=new URL(window.location.href);throw t.searchParams.delete("error"),t.searchParams.delete("error_description"),history.pushState(null,document.title,t.toString()),new X("SPA-AUTH_HELPER-SI-SE01",i,null!=o?o:"")}if(e.storage===x.WebWorker&&r){const t=yield r();if(t)return t}}))}attachTokenToRequestConfig(t){return e(this,void 0,void 0,(function*(){const e=Object.assign({attachToken:!0},t);e.attachToken&&(e.shouldAttachIDPAccessToken?t.headers=Object.assign(Object.assign({},t.headers),{Authorization:`Bearer ${yield this.getIDPAccessToken()}`}):t.headers=Object.assign(Object.assign({},t.headers),{Authorization:`Bearer ${yield this.getAccessToken()}`}))}))}getBasicUserInfo(){return e(this,void 0,void 0,(function*(){return this._authenticationClient.getBasicUserInfo()}))}getDecodedIDToken(){return e(this,void 0,void 0,(function*(){return this._authenticationClient.getDecodedIDToken()}))}getDecodedIDPIDToken(){return e(this,void 0,void 0,(function*(){return this._authenticationClient.getDecodedIDToken()}))}getCryptoHelper(){return e(this,void 0,void 0,(function*(){return this._authenticationClient.getCryptoHelper()}))}getIDToken(){return e(this,void 0,void 0,(function*(){return this._authenticationClient.getIDToken()}))}getOIDCServiceEndpoints(){return e(this,void 0,void 0,(function*(){return this._authenticationClient.getOIDCServiceEndpoints()}))}getAccessToken(){return e(this,void 0,void 0,(function*(){return this._authenticationClient.getAccessToken()}))}getIDPAccessToken(){var t;return e(this,void 0,void 0,(function*(){return null===(t=yield this._dataLayer.getSessionData())||void 0===t?void 0:t.access_token}))}getDataLayer(){return this._dataLayer}isAuthenticated(){return e(this,void 0,void 0,(function*(){return this._authenticationClient.isAuthenticated()}))}}class F{constructor(t){this._authenticationClient=t,this._dataLayer=this._authenticationClient.getDataLayer()}refreshAccessTokenAutomatically(t){var n,r;return e(this,void 0,void 0,(function*(){if(null===(r=null===(n=yield this._dataLayer.getConfigData())||void 0===n?void 0:n.periodicTokenRefresh)||void 0===r||!r)return;const i=yield this._dataLayer.getSessionData();if(i.refresh_token){const n=parseInt(i.expires_in),r=setTimeout((()=>e(this,void 0,void 0,(function*(){yield t.refreshAccessToken()}))),1e3*(n<=10?n:n-10));yield this._dataLayer.setTemporaryDataParameter(d,JSON.stringify(r))}}))}getRefreshTimeoutTimer(){return e(this,void 0,void 0,(function*(){return(yield this._dataLayer.getTemporaryDataParameter(d))?JSON.parse(yield this._dataLayer.getTemporaryDataParameter(d)):-1}))}clearRefreshTokenTimeout(t){return e(this,void 0,void 0,(function*(){if(t)return void clearTimeout(t);const e=yield this.getRefreshTimeoutTimer();-1!==e&&clearTimeout(e)}))}}const A=(()=>{let t,n,r,i,o,l,a,c,s,u,d;const h=(e,a,c,s,u,h,b)=>{t=e,n=a,r=c,i=s,o=h,l=u,d=b,i>-1&&p(),l>-1&&(u=setInterval((()=>{g()}),1e3*l))},p=()=>e(void 0,void 0,void 0,(function*(){var l;if(!n||!t||!o)return;const a="opIFrame",s=document.getElementById("rpIFrame");(null===(l=null==s?void 0:s.contentDocument)||void 0===l?void 0:l.getElementById(a)).src=n+"?client_id="+t+"&redirect_uri="+o,c=setInterval((function(){var i;return e(this,void 0,void 0,(function*(){const e=yield r();if(Boolean(t)&&Boolean(e)){const r=`${t} ${e}`,o=document.getElementById("rpIFrame"),l=(null===(i=null==o?void 0:o.contentDocument)||void 0===i?void 0:i.getElementById(a)).contentWindow;null==l||l.postMessage(r,n)}}))}),1e3*i),Z()})),b=()=>{clearInterval(c),clearInterval(void 0)},Z=()=>{null===window||void 0===window||window.addEventListener("message",(function(t){var r;return e(this,void 0,void 0,(function*(){!n||(null==n?void 0:n.indexOf(t.origin))<0||"set_session_state_from_iframe"===(null===(r=null==t?void 0:t.data)||void 0===r?void 0:r.type)||"unchanged"===t.data||("error"===t.data?window.location.href=yield a():"changed"===t.data&&g())}))}),!1)},g=()=>e(void 0,void 0,void 0,(function*(){var t;const e=document.getElementById("rpIFrame"),n=null===(t=null==e?void 0:e.contentDocument)||void 0===t?void 0:t.getElementById("promptNoneIFrame");if(H.canSendPromptNoneRequest()){H.setPromptNoneRequestSent(!0);const t=e=>{var n,r,i;"set_session_state_from_iframe"===(null===(n=null==e?void 0:e.data)||void 0===n?void 0:n.type)&&(u(null!==(i=null===(r=null==e?void 0:e.data)||void 0===r?void 0:r.data)&&void 0!==i?i:""),null===window||void 0===window||window.removeEventListener("message",t))};s!==x.BrowserMemory&&s!==x.WebWorker||null===window||void 0===window||window.addEventListener("message",t);const e=yield d({prompt:"none",response_mode:"query",state:L});n.src=e}})),y=t=>e(void 0,void 0,void 0,(function*(){var e,n;const r=new URL(window.location.href).searchParams.get("state"),i=new URL(window.location.href).searchParams.get(m),o=window.parent.parent;if(null!==r&&(r.includes(L)||r.includes("sign-in-silently"))){const l=new URL(window.location.href).searchParams.get("code");if(null!==l&&0!==l.length){if(r.includes("sign-in-silently")){const t={data:{code:l,sessionState:null!=i?i:"",state:r},type:"check_session_signed_in"};return sessionStorage.setItem("initialized-silent-sign-in","false"),o.postMessage(t,o.origin),H.setPromptNoneRequestSent(!1),window.location.href="about:blank",yield H.waitTillPageRedirect(),!0}const a=new URL(window.location.href).searchParams.get("session_state");if(s===x.LocalStorage||s===x.SessionStorage)t&&(yield t(a));else{const t={data:null!=a?a:"",type:"set_session_state_from_iframe"};null===(n=null===(e=null===window||void 0===window?void 0:window.parent)||void 0===e?void 0:e.parent)||void 0===n||n.postMessage(t)}return H.setPromptNoneRequestSent(!1),window.location.href="about:blank",yield H.waitTillPageRedirect(),!0}{if(r.includes("sign-in-silently")){const t={type:"check_session_signed_out"};return window.parent.parent.postMessage(t,o.origin),H.setPromptNoneRequestSent(!1),window.location.href="about:blank",yield H.waitTillPageRedirect(),!0}H.setPromptNoneRequestSent(!1);const t=yield a();return yield K.clearUserSessionData(),o.location.href=t,window.location.href="about:blank",yield H.waitTillPageRedirect(),!0}}return!1}));return(t,n,r)=>e(void 0,void 0,void 0,(function*(){var e;let i=document.createElement("iframe");i.setAttribute("id","rpIFrame"),i.style.display="none";let o=!1;for(i.onload=()=>{var t,e,n,r;i=document.getElementById("rpIFrame");const l=null==i?void 0:i.contentDocument,a=null==l?void 0:l.createElement("iframe");a&&(a.setAttribute("id","opIFrame"),a.style.display="none");const c=null==l?void 0:l.createElement("iframe");c&&(c.setAttribute("id","promptNoneIFrame"),c.style.display="none"),a&&(null===(e=null===(t=null==i?void 0:i.contentDocument)||void 0===t?void 0:t.body)||void 0===e||e.appendChild(a)),c&&(null===(r=null===(n=null==i?void 0:i.contentDocument)||void 0===n?void 0:n.body)||void 0===r||r.appendChild(c)),o=!0},null===(e=null===document||void 0===document?void 0:document.body)||void 0===e||e.appendChild(i),a=t,s=n,u=r;!1===o;)yield new Promise((t=>setTimeout(t,1)));return{initialize:h,receivePromptNoneResponse:y,reset:b}}))})();var B=void 0!==r.g?r.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function z(){throw new Error("setTimeout has not been defined")}function P(){throw new Error("clearTimeout has not been defined")}var j=z,E=P;function M(t){if(j===setTimeout)return setTimeout(t,0);if((j===z||!j)&&setTimeout)return j=setTimeout,setTimeout(t,0);try{return j(t,0)}catch(e){try{return j.call(null,t,0)}catch(e){return j.call(this,t,0)}}}"function"==typeof B.setTimeout&&(j=setTimeout),"function"==typeof B.clearTimeout&&(E=clearTimeout);var Q,O=[],D=!1,_=-1;function q(){D&&Q&&(D=!1,Q.length?O=Q.concat(O):_=-1,O.length&&$())}function $(){if(!D){var t=M(q);D=!0;for(var e=O.length;e;){for(Q=O,O=[];++_<e;)Q&&Q[_].run();_=-1,e=O.length}Q=null,D=!1,function(t){if(E===clearTimeout)return clearTimeout(t);if((E===P||!E)&&clearTimeout)return E=clearTimeout,clearTimeout(t);try{E(t)}catch(e){try{return E.call(null,t)}catch(e){return E.call(this,t)}}}(t)}}function tt(t,e){this.fun=t,this.array=e}function et(){}tt.prototype.run=function(){this.fun.apply(null,this.array)};var nt=et,rt=et,it=et,ot=et,lt=et,at=et,ct=et,st=B.performance||{},ut=st.now||st.mozNow||st.msNow||st.oNow||st.webkitNow||function(){return(new Date).getTime()},dt=new Date,ht={nextTick:function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];O.push(new tt(t,e)),1!==O.length||D||M($)},title:"browser",browser:!0,env:{},argv:[],version:"",versions:{},on:nt,addListener:rt,once:it,off:ot,removeListener:lt,removeAllListeners:at,emit:ct,binding:function(t){throw new Error("process.binding is not supported")},cwd:function(){return"/"},chdir:function(t){throw new Error("process.chdir is not supported")},umask:function(){return 0},hrtime:function(t){var e=.001*ut.call(st),n=Math.floor(e),r=Math.floor(e%1*1e9);return t&&(n-=t[0],(r-=t[1])<0&&(n--,r+=1e9)),[n,r]},platform:"browser",release:{},config:{},uptime:function(){return(new Date-dt)/1e3}},pt=ht;function bt(t,e){return function(){return t.apply(e,arguments)}}const{toString:Zt}=Object.prototype,{getPrototypeOf:mt}=Object,{iterator:gt,toStringTag:yt}=Symbol,ft=(It=Object.create(null),t=>{const e=Zt.call(t);return It[e]||(It[e]=e.slice(8,-1).toLowerCase())});var It;const Gt=t=>(t=t.toLowerCase(),e=>ft(e)===t),Xt=t=>e=>typeof e===t,{isArray:vt}=Array,Vt=Xt("undefined");function Wt(t){return null!==t&&!Vt(t)&&null!==t.constructor&&!Vt(t.constructor)&&Ct(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const Rt=Gt("ArrayBuffer"),St=Xt("string"),Ct=Xt("function"),Yt=Xt("number"),Kt=t=>null!==t&&"object"==typeof t,Nt=t=>{if("object"!==ft(t))return!1;const e=mt(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||yt in t||gt in t)},kt=Gt("Date"),Jt=Gt("File"),Tt=Gt("Blob"),Lt=Gt("FileList"),xt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==B?B:{},Ut=void 0!==xt.FormData?xt.FormData:void 0,Ht=Gt("URLSearchParams"),[wt,Ft,At,Bt]=["ReadableStream","Request","Response","Headers"].map(Gt);function zt(t,e,{allOwnKeys:n=!1}={}){if(null==t)return;let r,i;if("object"!=typeof t&&(t=[t]),vt(t))for(r=0,i=t.length;r<i;r++)e.call(null,t[r],r,t);else{if(Wt(t))return;const i=n?Object.getOwnPropertyNames(t):Object.keys(t),o=i.length;let l;for(r=0;r<o;r++)l=i[r],e.call(null,t[l],l,t)}}function Pt(t,e){if(Wt(t))return null;e=e.toLowerCase();const n=Object.keys(t);let r,i=n.length;for(;i-- >0;)if(r=n[i],e===r.toLowerCase())return r;return null}const jt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:B,Et=t=>!Vt(t)&&t!==jt,Mt=(Qt="undefined"!=typeof Uint8Array&&mt(Uint8Array),t=>Qt&&t instanceof Qt);var Qt;const Ot=Gt("HTMLFormElement"),Dt=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),_t=Gt("RegExp"),qt=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),r={};zt(n,((n,i)=>{let o;!1!==(o=e(n,i,t))&&(r[i]=o||n)})),Object.defineProperties(t,r)},$t=Gt("AsyncFunction"),te=(ee="function"==typeof setImmediate,ne=Ct(jt.postMessage),ee?setImmediate:ne?(re=`axios@${Math.random()}`,ie=[],jt.addEventListener("message",(({source:t,data:e})=>{t===jt&&e===re&&ie.length&&ie.shift()()}),!1),t=>{ie.push(t),jt.postMessage(re,"*")}):t=>setTimeout(t));var ee,ne,re,ie;const oe="undefined"!=typeof queueMicrotask?queueMicrotask.bind(jt):void 0!==pt&&pt.nextTick||te;var le={isArray:vt,isArrayBuffer:Rt,isBuffer:Wt,isFormData:t=>{let e;return t&&(Ut&&t instanceof Ut||Ct(t.append)&&("formdata"===(e=ft(t))||"object"===e&&Ct(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function(t){let e;return e="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&Rt(t.buffer),e},isString:St,isNumber:Yt,isBoolean:t=>!0===t||!1===t,isObject:Kt,isPlainObject:Nt,isEmptyObject:t=>{if(!Kt(t)||Wt(t))return!1;try{return 0===Object.keys(t).length&&Object.getPrototypeOf(t)===Object.prototype}catch(t){return!1}},isReadableStream:wt,isRequest:Ft,isResponse:At,isHeaders:Bt,isUndefined:Vt,isDate:kt,isFile:Jt,isReactNativeBlob:t=>!(!t||void 0===t.uri),isReactNative:t=>t&&void 0!==t.getParts,isBlob:Tt,isRegExp:_t,isFunction:Ct,isStream:t=>Kt(t)&&Ct(t.pipe),isURLSearchParams:Ht,isTypedArray:Mt,isFileList:Lt,forEach:zt,merge:function t(){const{caseless:e,skipUndefined:n}=Et(this)&&this||{},r={},i=(i,o)=>{if("__proto__"===o||"constructor"===o||"prototype"===o)return;const l=e&&Pt(r,o)||o;Nt(r[l])&&Nt(i)?r[l]=t(r[l],i):Nt(i)?r[l]=t({},i):vt(i)?r[l]=i.slice():n&&Vt(i)||(r[l]=i)};for(let t=0,e=arguments.length;t<e;t++)arguments[t]&&zt(arguments[t],i);return r},extend:(t,e,n,{allOwnKeys:r}={})=>(zt(e,((e,r)=>{n&&Ct(e)?Object.defineProperty(t,r,{value:bt(e,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,r,{value:e,writable:!0,enumerable:!0,configurable:!0})}),{allOwnKeys:r}),t),trim:t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:t=>(65279===t.charCodeAt(0)&&(t=t.slice(1)),t),inherits:(t,e,n,r)=>{t.prototype=Object.create(e.prototype,r),Object.defineProperty(t.prototype,"constructor",{value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},toFlatObject:(t,e,n,r)=>{let i,o,l;const a={};if(e=e||{},null==t)return e;do{for(i=Object.getOwnPropertyNames(t),o=i.length;o-- >0;)l=i[o],r&&!r(l,t,e)||a[l]||(e[l]=t[l],a[l]=!0);t=!1!==n&&mt(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},kindOf:ft,kindOfTest:Gt,endsWith:(t,e,n)=>{t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;const r=t.indexOf(e,n);return-1!==r&&r===n},toArray:t=>{if(!t)return null;if(vt(t))return t;let e=t.length;if(!Yt(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},forEachEntry:(t,e)=>{const n=(t&&t[gt]).call(t);let r;for(;(r=n.next())&&!r.done;){const n=r.value;e.call(t,n[0],n[1])}},matchAll:(t,e)=>{let n;const r=[];for(;null!==(n=t.exec(e));)r.push(n);return r},isHTMLForm:Ot,hasOwnProperty:Dt,hasOwnProp:Dt,reduceDescriptors:qt,freezeMethods:t=>{qt(t,((e,n)=>{if(Ct(t)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=t[n];Ct(r)&&(e.enumerable=!1,"writable"in e?e.writable=!1:e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(t,e)=>{const n={},r=t=>{t.forEach((t=>{n[t]=!0}))};return vt(t)?r(t):r(String(t).split(e)),n},toCamelCase:t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,n){return e.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(t,e)=>null!=t&&Number.isFinite(t=+t)?t:e,findKey:Pt,global:jt,isContextDefined:Et,isSpecCompliantForm:function(t){return!!(t&&Ct(t.append)&&"FormData"===t[yt]&&t[gt])},toJSONObject:t=>{const e=new Array(10),n=(t,r)=>{if(Kt(t)){if(e.indexOf(t)>=0)return;if(Wt(t))return t;if(!("toJSON"in t)){e[r]=t;const i=vt(t)?[]:{};return zt(t,((t,e)=>{const o=n(t,r+1);!Vt(o)&&(i[e]=o)})),e[r]=void 0,i}}return t};return n(t,0)},isAsyncFn:$t,isThenable:t=>t&&(Kt(t)||Ct(t))&&Ct(t.then)&&Ct(t.catch),setImmediate:te,asap:oe,isIterable:t=>null!=t&&Ct(t[gt])},ae=[],ce=[],se="undefined"!=typeof Uint8Array?Uint8Array:Array,ue=!1;function de(){ue=!0;for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e=0,n=t.length;e<n;++e)ae[e]=t[e],ce[t.charCodeAt(e)]=e;ce["-".charCodeAt(0)]=62,ce["_".charCodeAt(0)]=63}function he(t,e,n){for(var r,i,o=[],l=e;l<n;l+=3)r=(t[l]<<16)+(t[l+1]<<8)+t[l+2],o.push(ae[(i=r)>>18&63]+ae[i>>12&63]+ae[i>>6&63]+ae[63&i]);return o.join("")}function pe(t){var e;ue||de();for(var n=t.length,r=n%3,i="",o=[],l=16383,a=0,c=n-r;a<c;a+=l)o.push(he(t,a,a+l>c?c:a+l));return 1===r?(e=t[n-1],i+=ae[e>>2],i+=ae[e<<4&63],i+="=="):2===r&&(e=(t[n-2]<<8)+t[n-1],i+=ae[e>>10],i+=ae[e>>4&63],i+=ae[e<<2&63],i+="="),o.push(i),o.join("")}function be(t,e,n,r,i){var o,l,a=8*i-r-1,c=(1<<a)-1,s=c>>1,u=-7,d=n?i-1:0,h=n?-1:1,p=t[e+d];for(d+=h,o=p&(1<<-u)-1,p>>=-u,u+=a;u>0;o=256*o+t[e+d],d+=h,u-=8);for(l=o&(1<<-u)-1,o>>=-u,u+=r;u>0;l=256*l+t[e+d],d+=h,u-=8);if(0===o)o=1-s;else{if(o===c)return l?NaN:1/0*(p?-1:1);l+=Math.pow(2,r),o-=s}return(p?-1:1)*l*Math.pow(2,o-r)}function Ze(t,e,n,r,i,o){var l,a,c,s=8*o-i-1,u=(1<<s)-1,d=u>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:o-1,b=r?1:-1,Z=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,l=u):(l=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-l))<1&&(l--,c*=2),(e+=l+d>=1?h/c:h*Math.pow(2,1-d))*c>=2&&(l++,c/=2),l+d>=u?(a=0,l=u):l+d>=1?(a=(e*c-1)*Math.pow(2,i),l+=d):(a=e*Math.pow(2,d-1)*Math.pow(2,i),l=0));i>=8;t[n+p]=255&a,p+=b,a/=256,i-=8);for(l=l<<i|a,s+=i;s>0;t[n+p]=255&l,p+=b,l/=256,s-=8);t[n+p-b]|=128*Z}var me={}.toString,ge=Array.isArray||function(t){return"[object Array]"==me.call(t)};Ge.TYPED_ARRAY_SUPPORT=void 0===B.TYPED_ARRAY_SUPPORT||B.TYPED_ARRAY_SUPPORT;var ye=fe();function fe(){return Ge.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Ie(t,e){if(fe()<e)throw new RangeError("Invalid typed array length");return Ge.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e)).__proto__=Ge.prototype:(null===t&&(t=new Ge(e)),t.length=e),t}function Ge(t,e,n){if(!(Ge.TYPED_ARRAY_SUPPORT||this instanceof Ge))return new Ge(t,e,n);if("number"==typeof t){if("string"==typeof e)throw new Error("If encoding is specified then the first argument must be a string");return Ve(this,t)}return Xe(this,t,e,n)}function Xe(t,e,n,r){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?function(t,e,n,r){if(e.byteLength,n<0||e.byteLength<n)throw new RangeError("'offset' is out of bounds");if(e.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return e=void 0===n&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,n):new Uint8Array(e,n,r),Ge.TYPED_ARRAY_SUPPORT?(t=e).__proto__=Ge.prototype:t=We(t,e),t}(t,e,n,r):"string"==typeof e?function(t,e,n){if("string"==typeof n&&""!==n||(n="utf8"),!Ge.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|Ce(e,n),i=(t=Ie(t,r)).write(e,n);return i!==r&&(t=t.slice(0,i)),t}(t,e,n):function(t,e){if(Se(e)){var n=0|Re(e.length);return 0===(t=Ie(t,n)).length||e.copy(t,0,0,n),t}if(e){if("undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return"number"!=typeof e.length||(r=e.length)!=r?Ie(t,0):We(t,e);if("Buffer"===e.type&&ge(e.data))return We(t,e.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(t,e)}function ve(t){if("number"!=typeof t)throw new TypeError('"size" argument must be a number');if(t<0)throw new RangeError('"size" argument must not be negative')}function Ve(t,e){if(ve(e),t=Ie(t,e<0?0:0|Re(e)),!Ge.TYPED_ARRAY_SUPPORT)for(var n=0;n<e;++n)t[n]=0;return t}function We(t,e){var n=e.length<0?0:0|Re(e.length);t=Ie(t,n);for(var r=0;r<n;r+=1)t[r]=255&e[r];return t}function Re(t){if(t>=fe())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+fe().toString(16)+" bytes");return 0|t}function Se(t){return!(null==t||!t._isBuffer)}function Ce(t,e){if(Se(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var n=t.length;if(0===n)return 0;for(var r=!1;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return tn(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return en(t).length;default:if(r)return tn(t).length;e=(""+e).toLowerCase(),r=!0}}function Ye(t,e,n){var r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return ze(this,e,n);case"utf8":case"utf-8":return Fe(this,e,n);case"ascii":return Ae(this,e,n);case"latin1":case"binary":return Be(this,e,n);case"base64":return we(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Pe(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function Ke(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function Ne(t,e,n,r,i){if(0===t.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(i)return-1;n=t.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof e&&(e=Ge.from(e,r)),Se(e))return 0===e.length?-1:ke(t,e,n,r,i);if("number"==typeof e)return e&=255,Ge.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):ke(t,[e],n,r,i);throw new TypeError("val must be string, number or Buffer")}function ke(t,e,n,r,i){var o,l=1,a=t.length,c=e.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;l=2,a/=2,c/=2,n/=2}function s(t,e){return 1===l?t[e]:t.readUInt16BE(e*l)}if(i){var u=-1;for(o=n;o<a;o++)if(s(t,o)===s(e,-1===u?0:o-u)){if(-1===u&&(u=o),o-u+1===c)return u*l}else-1!==u&&(o-=o-u),u=-1}else for(n+c>a&&(n=a-c),o=n;o>=0;o--){for(var d=!0,h=0;h<c;h++)if(s(t,o+h)!==s(e,h)){d=!1;break}if(d)return o}return-1}function Je(t,e,n,r){n=Number(n)||0;var i=t.length-n;r?(r=Number(r))>i&&(r=i):r=i;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var l=0;l<r;++l){var a=parseInt(e.substr(2*l,2),16);if(isNaN(a))return l;t[n+l]=a}return l}function Te(t,e,n,r){return nn(tn(e,t.length-n),t,n,r)}function Le(t,e,n,r){return nn(function(t){for(var e=[],n=0;n<t.length;++n)e.push(255&t.charCodeAt(n));return e}(e),t,n,r)}function xe(t,e,n,r){return Le(t,e,n,r)}function Ue(t,e,n,r){return nn(en(e),t,n,r)}function He(t,e,n,r){return nn(function(t,e){for(var n,r,i,o=[],l=0;l<t.length&&!((e-=2)<0);++l)r=(n=t.charCodeAt(l))>>8,i=n%256,o.push(i),o.push(r);return o}(e,t.length-n),t,n,r)}function we(t,e,n){return 0===e&&n===t.length?pe(t):pe(t.slice(e,n))}function Fe(t,e,n){n=Math.min(t.length,n);for(var r=[],i=e;i<n;){var o,l,a,c,s=t[i],u=null,d=s>239?4:s>223?3:s>191?2:1;if(i+d<=n)switch(d){case 1:s<128&&(u=s);break;case 2:128==(192&(o=t[i+1]))&&(c=(31&s)<<6|63&o)>127&&(u=c);break;case 3:o=t[i+1],l=t[i+2],128==(192&o)&&128==(192&l)&&(c=(15&s)<<12|(63&o)<<6|63&l)>2047&&(c<55296||c>57343)&&(u=c);break;case 4:o=t[i+1],l=t[i+2],a=t[i+3],128==(192&o)&&128==(192&l)&&128==(192&a)&&(c=(15&s)<<18|(63&o)<<12|(63&l)<<6|63&a)>65535&&c<1114112&&(u=c)}null===u?(u=65533,d=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),i+=d}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);for(var n="",r=0;r<e;)n+=String.fromCharCode.apply(String,t.slice(r,r+=4096));return n}(r)}function Ae(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;i<n;++i)r+=String.fromCharCode(127&t[i]);return r}function Be(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;i<n;++i)r+=String.fromCharCode(t[i]);return r}function ze(t,e,n){var r=t.length;(!e||e<0)&&(e=0),(!n||n<0||n>r)&&(n=r);for(var i="",o=e;o<n;++o)i+=$e(t[o]);return i}function Pe(t,e,n){for(var r=t.slice(e,n),i="",o=0;o<r.length;o+=2)i+=String.fromCharCode(r[o]+256*r[o+1]);return i}function je(t,e,n){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>n)throw new RangeError("Trying to access beyond buffer length")}function Ee(t,e,n,r,i,o){if(!Se(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||e<o)throw new RangeError('"value" argument is out of bounds');if(n+r>t.length)throw new RangeError("Index out of range")}function Me(t,e,n,r){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-n,2);i<o;++i)t[n+i]=(e&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function Qe(t,e,n,r){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-n,4);i<o;++i)t[n+i]=e>>>8*(r?i:3-i)&255}function Oe(t,e,n,r,i,o){if(n+r>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function De(t,e,n,r,i){return i||Oe(t,0,n,4),Ze(t,e,n,r,23,4),n+4}function _e(t,e,n,r,i){return i||Oe(t,0,n,8),Ze(t,e,n,r,52,8),n+8}Ge.poolSize=8192,Ge._augment=function(t){return t.__proto__=Ge.prototype,t},Ge.from=function(t,e,n){return Xe(null,t,e,n)},Ge.TYPED_ARRAY_SUPPORT&&(Ge.prototype.__proto__=Uint8Array.prototype,Ge.__proto__=Uint8Array),Ge.alloc=function(t,e,n){return function(t,e,n,r){return ve(e),e<=0?Ie(t,e):void 0!==n?"string"==typeof r?Ie(t,e).fill(n,r):Ie(t,e).fill(n):Ie(t,e)}(null,t,e,n)},Ge.allocUnsafe=function(t){return Ve(null,t)},Ge.allocUnsafeSlow=function(t){return Ve(null,t)},Ge.isBuffer=rn,Ge.compare=function(t,e){if(!Se(t)||!Se(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var n=t.length,r=e.length,i=0,o=Math.min(n,r);i<o;++i)if(t[i]!==e[i]){n=t[i],r=e[i];break}return n<r?-1:r<n?1:0},Ge.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Ge.concat=function(t,e){if(!ge(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return Ge.alloc(0);var n;if(void 0===e)for(e=0,n=0;n<t.length;++n)e+=t[n].length;var r=Ge.allocUnsafe(e),i=0;for(n=0;n<t.length;++n){var o=t[n];if(!Se(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,i),i+=o.length}return r},Ge.byteLength=Ce,Ge.prototype._isBuffer=!0,Ge.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;e<t;e+=2)Ke(this,e,e+1);return this},Ge.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var e=0;e<t;e+=4)Ke(this,e,e+3),Ke(this,e+1,e+2);return this},Ge.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var e=0;e<t;e+=8)Ke(this,e,e+7),Ke(this,e+1,e+6),Ke(this,e+2,e+5),Ke(this,e+3,e+4);return this},Ge.prototype.toString=function(){var t=0|this.length;return 0===t?"":0===arguments.length?Fe(this,0,t):Ye.apply(this,arguments)},Ge.prototype.equals=function(t){if(!Se(t))throw new TypeError("Argument must be a Buffer");return this===t||0===Ge.compare(this,t)},Ge.prototype.inspect=function(){var t="";return this.length>0&&(t=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(t+=" ... ")),"<Buffer "+t+">"},Ge.prototype.compare=function(t,e,n,r,i){if(!Se(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),e<0||n>t.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&e>=n)return 0;if(r>=i)return-1;if(e>=n)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(r>>>=0),l=(n>>>=0)-(e>>>=0),a=Math.min(o,l),c=this.slice(r,i),s=t.slice(e,n),u=0;u<a;++u)if(c[u]!==s[u]){o=c[u],l=s[u];break}return o<l?-1:l<o?1:0},Ge.prototype.includes=function(t,e,n){return-1!==this.indexOf(t,e,n)},Ge.prototype.indexOf=function(t,e,n){return Ne(this,t,e,n,!0)},Ge.prototype.lastIndexOf=function(t,e,n){return Ne(this,t,e,n,!1)},Ge.prototype.write=function(t,e,n,r){if(void 0===e)r="utf8",n=this.length,e=0;else if(void 0===n&&"string"==typeof e)r=e,n=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-e;if((void 0===n||n>i)&&(n=i),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return Je(this,t,e,n);case"utf8":case"utf-8":return Te(this,t,e,n);case"ascii":return Le(this,t,e,n);case"latin1":case"binary":return xe(this,t,e,n);case"base64":return Ue(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return He(this,t,e,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},Ge.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},Ge.prototype.slice=function(t,e){var n,r=this.length;if((t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t),Ge.TYPED_ARRAY_SUPPORT)(n=this.subarray(t,e)).__proto__=Ge.prototype;else{var i=e-t;n=new Ge(i,void 0);for(var o=0;o<i;++o)n[o]=this[o+t]}return n},Ge.prototype.readUIntLE=function(t,e,n){t|=0,e|=0,n||je(t,e,this.length);for(var r=this[t],i=1,o=0;++o<e&&(i*=256);)r+=this[t+o]*i;return r},Ge.prototype.readUIntBE=function(t,e,n){t|=0,e|=0,n||je(t,e,this.length);for(var r=this[t+--e],i=1;e>0&&(i*=256);)r+=this[t+--e]*i;return r},Ge.prototype.readUInt8=function(t,e){return e||je(t,1,this.length),this[t]},Ge.prototype.readUInt16LE=function(t,e){return e||je(t,2,this.length),this[t]|this[t+1]<<8},Ge.prototype.readUInt16BE=function(t,e){return e||je(t,2,this.length),this[t]<<8|this[t+1]},Ge.prototype.readUInt32LE=function(t,e){return e||je(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},Ge.prototype.readUInt32BE=function(t,e){return e||je(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},Ge.prototype.readIntLE=function(t,e,n){t|=0,e|=0,n||je(t,e,this.length);for(var r=this[t],i=1,o=0;++o<e&&(i*=256);)r+=this[t+o]*i;return r>=(i*=128)&&(r-=Math.pow(2,8*e)),r},Ge.prototype.readIntBE=function(t,e,n){t|=0,e|=0,n||je(t,e,this.length);for(var r=e,i=1,o=this[t+--r];r>0&&(i*=256);)o+=this[t+--r]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},Ge.prototype.readInt8=function(t,e){return e||je(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},Ge.prototype.readInt16LE=function(t,e){e||je(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},Ge.prototype.readInt16BE=function(t,e){e||je(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},Ge.prototype.readInt32LE=function(t,e){return e||je(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},Ge.prototype.readInt32BE=function(t,e){return e||je(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},Ge.prototype.readFloatLE=function(t,e){return e||je(t,4,this.length),be(this,t,!0,23,4)},Ge.prototype.readFloatBE=function(t,e){return e||je(t,4,this.length),be(this,t,!1,23,4)},Ge.prototype.readDoubleLE=function(t,e){return e||je(t,8,this.length),be(this,t,!0,52,8)},Ge.prototype.readDoubleBE=function(t,e){return e||je(t,8,this.length),be(this,t,!1,52,8)},Ge.prototype.writeUIntLE=function(t,e,n,r){t=+t,e|=0,n|=0,r||Ee(this,t,e,n,Math.pow(2,8*n)-1,0);var i=1,o=0;for(this[e]=255&t;++o<n&&(i*=256);)this[e+o]=t/i&255;return e+n},Ge.prototype.writeUIntBE=function(t,e,n,r){t=+t,e|=0,n|=0,r||Ee(this,t,e,n,Math.pow(2,8*n)-1,0);var i=n-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+n},Ge.prototype.writeUInt8=function(t,e,n){return t=+t,e|=0,n||Ee(this,t,e,1,255,0),Ge.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},Ge.prototype.writeUInt16LE=function(t,e,n){return t=+t,e|=0,n||Ee(this,t,e,2,65535,0),Ge.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):Me(this,t,e,!0),e+2},Ge.prototype.writeUInt16BE=function(t,e,n){return t=+t,e|=0,n||Ee(this,t,e,2,65535,0),Ge.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):Me(this,t,e,!1),e+2},Ge.prototype.writeUInt32LE=function(t,e,n){return t=+t,e|=0,n||Ee(this,t,e,4,4294967295,0),Ge.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):Qe(this,t,e,!0),e+4},Ge.prototype.writeUInt32BE=function(t,e,n){return t=+t,e|=0,n||Ee(this,t,e,4,4294967295,0),Ge.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):Qe(this,t,e,!1),e+4},Ge.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e|=0,!r){var i=Math.pow(2,8*n-1);Ee(this,t,e,n,i-1,-i)}var o=0,l=1,a=0;for(this[e]=255&t;++o<n&&(l*=256);)t<0&&0===a&&0!==this[e+o-1]&&(a=1),this[e+o]=(t/l>>0)-a&255;return e+n},Ge.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e|=0,!r){var i=Math.pow(2,8*n-1);Ee(this,t,e,n,i-1,-i)}var o=n-1,l=1,a=0;for(this[e+o]=255&t;--o>=0&&(l*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/l>>0)-a&255;return e+n},Ge.prototype.writeInt8=function(t,e,n){return t=+t,e|=0,n||Ee(this,t,e,1,127,-128),Ge.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},Ge.prototype.writeInt16LE=function(t,e,n){return t=+t,e|=0,n||Ee(this,t,e,2,32767,-32768),Ge.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):Me(this,t,e,!0),e+2},Ge.prototype.writeInt16BE=function(t,e,n){return t=+t,e|=0,n||Ee(this,t,e,2,32767,-32768),Ge.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):Me(this,t,e,!1),e+2},Ge.prototype.writeInt32LE=function(t,e,n){return t=+t,e|=0,n||Ee(this,t,e,4,2147483647,-2147483648),Ge.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):Qe(this,t,e,!0),e+4},Ge.prototype.writeInt32BE=function(t,e,n){return t=+t,e|=0,n||Ee(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),Ge.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):Qe(this,t,e,!1),e+4},Ge.prototype.writeFloatLE=function(t,e,n){return De(this,t,e,!0,n)},Ge.prototype.writeFloatBE=function(t,e,n){return De(this,t,e,!1,n)},Ge.prototype.writeDoubleLE=function(t,e,n){return _e(this,t,e,!0,n)},Ge.prototype.writeDoubleBE=function(t,e,n){return _e(this,t,e,!1,n)},Ge.prototype.copy=function(t,e,n,r){if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e<r-n&&(r=t.length-e+n);var i,o=r-n;if(this===t&&n<e&&e<r)for(i=o-1;i>=0;--i)t[i+e]=this[i+n];else if(o<1e3||!Ge.TYPED_ARRAY_SUPPORT)for(i=0;i<o;++i)t[i+e]=this[i+n];else Uint8Array.prototype.set.call(t,this.subarray(n,n+o),e);return o},Ge.prototype.fill=function(t,e,n,r){if("string"==typeof t){if("string"==typeof e?(r=e,e=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===t.length){var i=t.charCodeAt(0);i<256&&(t=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!Ge.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof t&&(t&=255);if(e<0||this.length<e||this.length<n)throw new RangeError("Out of range index");if(n<=e)return this;var o;if(e>>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(o=e;o<n;++o)this[o]=t;else{var l=Se(t)?t:tn(new Ge(t,r).toString()),a=l.length;for(o=0;o<n-e;++o)this[o+e]=l[o%a]}return this};var qe=/[^+\/0-9A-Za-z-_]/g;function $e(t){return t<16?"0"+t.toString(16):t.toString(16)}function tn(t,e){var n;e=e||1/0;for(var r=t.length,i=null,o=[],l=0;l<r;++l){if((n=t.charCodeAt(l))>55295&&n<57344){if(!i){if(n>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(l+1===r){(e-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(e-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((e-=1)<0)break;o.push(n)}else if(n<2048){if((e-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function en(t){return function(t){var e,n,r,i,o,l;ue||de();var a=t.length;if(a%4>0)throw new Error("Invalid string. Length must be a multiple of 4");o="="===t[a-2]?2:"="===t[a-1]?1:0,l=new se(3*a/4-o),r=o>0?a-4:a;var c=0;for(e=0,n=0;e<r;e+=4,n+=3)i=ce[t.charCodeAt(e)]<<18|ce[t.charCodeAt(e+1)]<<12|ce[t.charCodeAt(e+2)]<<6|ce[t.charCodeAt(e+3)],l[c++]=i>>16&255,l[c++]=i>>8&255,l[c++]=255&i;return 2===o?(i=ce[t.charCodeAt(e)]<<2|ce[t.charCodeAt(e+1)]>>4,l[c++]=255&i):1===o&&(i=ce[t.charCodeAt(e)]<<10|ce[t.charCodeAt(e+1)]<<4|ce[t.charCodeAt(e+2)]>>2,l[c++]=i>>8&255,l[c++]=255&i),l}(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(qe,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function nn(t,e,n,r){for(var i=0;i<r&&!(i+n>=e.length||i>=t.length);++i)e[i+n]=t[i];return i}function rn(t){return null!=t&&(!!t._isBuffer||on(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&&on(t.slice(0,0))}(t))}function on(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}var ln=Object.freeze({__proto__:null,Buffer:Ge,INSPECT_MAX_BYTES:50,SlowBuffer:function(t){return+t!=t&&(t=0),Ge.alloc(+t)},isBuffer:rn,kMaxLength:ye});class an extends Error{static from(t,e,n,r,i,o){const l=new an(t.message,e||t.code,n,r,i);return l.cause=t,l.name=t.name,null!=t.status&&null==l.status&&(l.status=t.status),o&&Object.assign(l,o),l}constructor(t,e,n,r,i){super(t),Object.defineProperty(this,"message",{value:t,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status)}toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:le.toJSONObject(this.config),code:this.code,status:this.status}}}an.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",an.ERR_BAD_OPTION="ERR_BAD_OPTION",an.ECONNABORTED="ECONNABORTED",an.ETIMEDOUT="ETIMEDOUT",an.ERR_NETWORK="ERR_NETWORK",an.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",an.ERR_DEPRECATED="ERR_DEPRECATED",an.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",an.ERR_BAD_REQUEST="ERR_BAD_REQUEST",an.ERR_CANCELED="ERR_CANCELED",an.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",an.ERR_INVALID_URL="ERR_INVALID_URL";var cn=an;function sn(t){return le.isPlainObject(t)||le.isArray(t)}function un(t){return le.endsWith(t,"[]")?t.slice(0,-2):t}function dn(t,e,n){return t?t.concat(e).map((function(t,e){return t=un(t),!n&&e?"["+t+"]":t})).join(n?".":""):e}const hn=le.toFlatObject(le,{},null,(function(t){return/^is[A-Z]/.test(t)}));function pn(t,e,n){if(!le.isObject(t))throw new TypeError("target must be an object");e=e||new FormData;const r=(n=le.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!le.isUndefined(e[t])}))).metaTokens,i=n.visitor||s,o=n.dots,l=n.indexes,a=(n.Blob||"undefined"!=typeof Blob&&Blob)&&le.isSpecCompliantForm(e);if(!le.isFunction(i))throw new TypeError("visitor must be a function");function c(t){if(null===t)return"";if(le.isDate(t))return t.toISOString();if(le.isBoolean(t))return t.toString();if(!a&&le.isBlob(t))throw new cn("Blob is not supported. Use a Buffer instead.");return le.isArrayBuffer(t)||le.isTypedArray(t)?a&&"function"==typeof Blob?new Blob([t]):Ge.from(t):t}function s(t,n,i){let a=t;if(le.isReactNative(e)&&le.isReactNativeBlob(t))return e.append(dn(i,n,o),c(t)),!1;if(t&&!i&&"object"==typeof t)if(le.endsWith(n,"{}"))n=r?n:n.slice(0,-2),t=JSON.stringify(t);else if(le.isArray(t)&&function(t){return le.isArray(t)&&!t.some(sn)}(t)||(le.isFileList(t)||le.endsWith(n,"[]"))&&(a=le.toArray(t)))return n=un(n),a.forEach((function(t,r){!le.isUndefined(t)&&null!==t&&e.append(!0===l?dn([n],r,o):null===l?n:n+"[]",c(t))})),!1;return!!sn(t)||(e.append(dn(i,n,o),c(t)),!1)}const u=[],d=Object.assign(hn,{defaultVisitor:s,convertValue:c,isVisitable:sn});if(!le.isObject(t))throw new TypeError("data must be an object");return function t(n,r){if(!le.isUndefined(n)){if(-1!==u.indexOf(n))throw Error("Circular reference detected in "+r.join("."));u.push(n),le.forEach(n,(function(n,o){!0===(!(le.isUndefined(n)||null===n)&&i.call(e,n,le.isString(o)?o.trim():o,r,d))&&t(n,r?r.concat(o):[o])})),u.pop()}}(t),e}function bn(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function Zn(t,e){this._pairs=[],t&&pn(t,this,e)}const mn=Zn.prototype;function gn(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function yn(t,e,n){if(!e)return t;const r=n&&n.encode||gn,i=le.isFunction(n)?{serialize:n}:n,o=i&&i.serialize;let l;if(l=o?o(e,i):le.isURLSearchParams(e)?e.toString():new Zn(e,i).toString(r),l){const e=t.indexOf("#");-1!==e&&(t=t.slice(0,e)),t+=(-1===t.indexOf("?")?"?":"&")+l}return t}mn.append=function(t,e){this._pairs.push([t,e])},mn.toString=function(t){const e=t?function(e){return t.call(this,e,bn)}:bn;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};var fn=class{constructor(){this.handlers=[]}use(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){le.forEach(this.handlers,(function(e){null!==e&&t(e)}))}},In={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},Gn={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Zn,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const Xn="undefined"!=typeof window&&"undefined"!=typeof document,vn="object"==typeof navigator&&navigator||void 0,Vn=Xn&&(!vn||["ReactNative","NativeScript","NS"].indexOf(vn.product)<0),Wn="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Rn=Xn&&window.location.href||"http://localhost";var Sn={...Object.freeze({__proto__:null,hasBrowserEnv:Xn,hasStandardBrowserWebWorkerEnv:Wn,hasStandardBrowserEnv:Vn,navigator:vn,origin:Rn}),...Gn};function Cn(t){function e(t,n,r,i){let o=t[i++];if("__proto__"===o)return!0;const l=Number.isFinite(+o),a=i>=t.length;return o=!o&&le.isArray(r)?r.length:o,a?(le.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!l):(r[o]&&le.isObject(r[o])||(r[o]=[]),e(t,n,r[o],i)&&le.isArray(r[o])&&(r[o]=function(t){const e={},n=Object.keys(t);let r;const i=n.length;let o;for(r=0;r<i;r++)o=n[r],e[o]=t[o];return e}(r[o])),!l)}if(le.isFormData(t)&&le.isFunction(t.entries)){const n={};return le.forEachEntry(t,((t,r)=>{e(function(t){return le.matchAll(/\w+|\[(\w*)]/g,t).map((t=>"[]"===t[0]?"":t[1]||t[0]))}(t),r,n,0)})),n}return null}const Yn={transitional:In,adapter:["xhr","http","fetch"],transformRequest:[function(t,e){const n=e.getContentType()||"",r=n.indexOf("application/json")>-1,i=le.isObject(t);if(i&&le.isHTMLForm(t)&&(t=new FormData(t)),le.isFormData(t))return r?JSON.stringify(Cn(t)):t;if(le.isArrayBuffer(t)||le.isBuffer(t)||le.isStream(t)||le.isFile(t)||le.isBlob(t)||le.isReadableStream(t))return t;if(le.isArrayBufferView(t))return t.buffer;if(le.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let o;if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(t,e){return pn(t,new Sn.classes.URLSearchParams,{visitor:function(t,e,n,r){return Sn.isNode&&le.isBuffer(t)?(this.append(e,t.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)},...e})}(t,this.formSerializer).toString();if((o=le.isFileList(t))||n.indexOf("multipart/form-data")>-1){const e=this.env&&this.env.FormData;return pn(o?{"files[]":t}:t,e&&new e,this.formSerializer)}}return i||r?(e.setContentType("application/json",!1),function(t,e,n){if(le.isString(t))try{return(0,JSON.parse)(t),le.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){const e=this.transitional||Yn.transitional,n=e&&e.forcedJSONParsing,r="json"===this.responseType;if(le.isResponse(t)||le.isReadableStream(t))return t;if(t&&le.isString(t)&&(n&&!this.responseType||r)){const n=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t,this.parseReviver)}catch(t){if(n){if("SyntaxError"===t.name)throw cn.from(t,cn.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Sn.classes.FormData,Blob:Sn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};le.forEach(["delete","get","head","post","put","patch"],(t=>{Yn.headers[t]={}}));var Kn=Yn;const Nn=le.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),kn=Symbol("internals");function Jn(t){return t&&String(t).trim().toLowerCase()}function Tn(t){return!1===t||null==t?t:le.isArray(t)?t.map(Tn):String(t)}function Ln(t,e,n,r,i){return le.isFunction(r)?r.call(this,e,n):(i&&(e=n),le.isString(e)?le.isString(r)?-1!==e.indexOf(r):le.isRegExp(r)?r.test(e):void 0:void 0)}class xn{constructor(t){t&&this.set(t)}set(t,e,n){const r=this;function i(t,e,n){const i=Jn(e);if(!i)throw new Error("header name must be a non-empty string");const o=le.findKey(r,i);(!o||void 0===r[o]||!0===n||void 0===n&&!1!==r[o])&&(r[o||e]=Tn(t))}const o=(t,e)=>le.forEach(t,((t,n)=>i(t,n,e)));if(le.isPlainObject(t)||t instanceof this.constructor)o(t,e);else if(le.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))o((t=>{const e={};let n,r,i;return t&&t.split("\n").forEach((function(t){i=t.indexOf(":"),n=t.substring(0,i).trim().toLowerCase(),r=t.substring(i+1).trim(),!n||e[n]&&Nn[n]||("set-cookie"===n?e[n]?e[n].push(r):e[n]=[r]:e[n]=e[n]?e[n]+", "+r:r)})),e})(t),e);else if(le.isObject(t)&&le.isIterable(t)){let n,r,i={};for(const e of t){if(!le.isArray(e))throw TypeError("Object iterator must return a key-value pair");i[r=e[0]]=(n=i[r])?le.isArray(n)?[...n,e[1]]:[n,e[1]]:e[1]}o(i,e)}else null!=t&&i(e,t,n);return this}get(t,e){if(t=Jn(t)){const n=le.findKey(this,t);if(n){const t=this[n];if(!e)return t;if(!0===e)return function(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(t);)e[r[1]]=r[2];return e}(t);if(le.isFunction(e))return e.call(this,t,n);if(le.isRegExp(e))return e.exec(t);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=Jn(t)){const n=le.findKey(this,t);return!(!n||void 0===this[n]||e&&!Ln(0,this[n],n,e))}return!1}delete(t,e){const n=this;let r=!1;function i(t){if(t=Jn(t)){const i=le.findKey(n,t);!i||e&&!Ln(0,n[i],i,e)||(delete n[i],r=!0)}}return le.isArray(t)?t.forEach(i):i(t),r}clear(t){const e=Object.keys(this);let n=e.length,r=!1;for(;n--;){const i=e[n];t&&!Ln(0,this[i],i,t,!0)||(delete this[i],r=!0)}return r}normalize(t){const e=this,n={};return le.forEach(this,((r,i)=>{const o=le.findKey(n,i);if(o)return e[o]=Tn(r),void delete e[i];const l=t?function(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((t,e,n)=>e.toUpperCase()+n))}(i):String(i).trim();l!==i&&delete e[i],e[l]=Tn(r),n[l]=!0})),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return le.forEach(this,((n,r)=>{null!=n&&!1!==n&&(e[r]=t&&le.isArray(n)?n.join(", "):n)})),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([t,e])=>t+": "+e)).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const n=new this(t);return e.forEach((t=>n.set(t))),n}static accessor(t){const e=(this[kn]=this[kn]={accessors:{}}).accessors,n=this.prototype;function r(t){const r=Jn(t);e[r]||(function(t,e){const n=le.toCamelCase(" "+e);["get","set","has"].forEach((r=>{Object.defineProperty(t,r+n,{value:function(t,n,i){return this[r].call(this,e,t,n,i)},configurable:!0})}))}(n,t),e[r]=!0)}return le.isArray(t)?t.forEach(r):r(t),this}}xn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),le.reduceDescriptors(xn.prototype,(({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(t){this[n]=t}}})),le.freezeMethods(xn);var Un=xn;function Hn(t,e){const n=this||Kn,r=e||n,i=Un.from(r.headers);let o=r.data;return le.forEach(t,(function(t){o=t.call(n,o,i.normalize(),e?e.status:void 0)})),i.normalize(),o}function wn(t){return!(!t||!t.__CANCEL__)}var Fn=class extends cn{constructor(t,e,n){super(null==t?"canceled":t,cn.ERR_CANCELED,e,n),this.name="CanceledError",this.__CANCEL__=!0}};function An(t,e,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?e(new cn("Request failed with status code "+n.status,[cn.ERR_BAD_REQUEST,cn.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):t(n)}const Bn=(t,e,n=3)=>{let r=0;const i=function(t,e){t=t||10;const n=new Array(t),r=new Array(t);let i,o=0,l=0;return e=void 0!==e?e:1e3,function(a){const c=Date.now(),s=r[l];i||(i=c),n[o]=a,r[o]=c;let u=l,d=0;for(;u!==o;)d+=n[u++],u%=t;if(o=(o+1)%t,o===l&&(l=(l+1)%t),c-i<e)return;const h=s&&c-s;return h?Math.round(1e3*d/h):void 0}}(50,250);return function(t,e){let n,r,i=0,o=1e3/e;const l=(e,o=Date.now())=>{i=o,n=null,r&&(clearTimeout(r),r=null),t(...e)};return[(...t)=>{const e=Date.now(),a=e-i;a>=o?l(t,e):(n=t,r||(r=setTimeout((()=>{r=null,l(n)}),o-a)))},()=>n&&l(n)]}((n=>{const o=n.loaded,l=n.lengthComputable?n.total:void 0,a=o-r,c=i(a);r=o,t({loaded:o,total:l,progress:l?o/l:void 0,bytes:a,rate:c||void 0,estimated:c&&l&&o<=l?(l-o)/c:void 0,event:n,lengthComputable:null!=l,[e?"download":"upload"]:!0})}),n)},zn=(t,e)=>{const n=null!=t;return[r=>e[0]({lengthComputable:n,total:t,loaded:r}),e[1]]},Pn=t=>(...e)=>le.asap((()=>t(...e)));var jn=Sn.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,Sn.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(Sn.origin),Sn.navigator&&/(msie|trident)/i.test(Sn.navigator.userAgent)):()=>!0,En=Sn.hasStandardBrowserEnv?{write(t,e,n,r,i,o,l){if("undefined"==typeof document)return;const a=[`${t}=${encodeURIComponent(e)}`];le.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),le.isString(r)&&a.push(`path=${r}`),le.isString(i)&&a.push(`domain=${i}`),!0===o&&a.push("secure"),le.isString(l)&&a.push(`SameSite=${l}`),document.cookie=a.join("; ")},read(t){if("undefined"==typeof document)return null;const e=document.cookie.match(new RegExp("(?:^|; )"+t+"=([^;]*)"));return e?decodeURIComponent(e[1]):null},remove(t){this.write(t,"",Date.now()-864e5,"/")}}:{write(){},read:()=>null,remove(){}};function Mn(t,e,n){let r=!function(t){return"string"==typeof t&&/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}(e);return t&&(r||0==n)?function(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}(t,e):e}const Qn=t=>t instanceof Un?{...t}:t;function On(t,e){e=e||{};const n={};function r(t,e,n,r){return le.isPlainObject(t)&&le.isPlainObject(e)?le.merge.call({caseless:r},t,e):le.isPlainObject(e)?le.merge({},e):le.isArray(e)?e.slice():e}function i(t,e,n,i){return le.isUndefined(e)?le.isUndefined(t)?void 0:r(void 0,t,0,i):r(t,e,0,i)}function o(t,e){if(!le.isUndefined(e))return r(void 0,e)}function l(t,e){return le.isUndefined(e)?le.isUndefined(t)?void 0:r(void 0,t):r(void 0,e)}function a(n,i,o){return o in e?r(n,i):o in t?r(void 0,n):void 0}const c={url:o,method:o,data:o,baseURL:l,transformRequest:l,transformResponse:l,paramsSerializer:l,timeout:l,timeoutMessage:l,withCredentials:l,withXSRFToken:l,adapter:l,responseType:l,xsrfCookieName:l,xsrfHeaderName:l,onUploadProgress:l,onDownloadProgress:l,decompress:l,maxContentLength:l,maxBodyLength:l,beforeRedirect:l,transport:l,httpAgent:l,httpsAgent:l,cancelToken:l,socketPath:l,responseEncoding:l,validateStatus:a,headers:(t,e,n)=>i(Qn(t),Qn(e),0,!0)};return le.forEach(Object.keys({...t,...e}),(function(r){if("__proto__"===r||"constructor"===r||"prototype"===r)return;const o=le.hasOwnProp(c,r)?c[r]:i,l=o(t[r],e[r],r);le.isUndefined(l)&&o!==a||(n[r]=l)})),n}var Dn=t=>{const e=On({},t);let{data:n,withXSRFToken:r,xsrfHeaderName:i,xsrfCookieName:o,headers:l,auth:a}=e;if(e.headers=l=Un.from(l),e.url=yn(Mn(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),a&&l.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),le.isFormData(n))if(Sn.hasStandardBrowserEnv||Sn.hasStandardBrowserWebWorkerEnv)l.setContentType(void 0);else if(le.isFunction(n.getHeaders)){const t=n.getHeaders(),e=["content-type","content-length"];Object.entries(t).forEach((([t,n])=>{e.includes(t.toLowerCase())&&l.set(t,n)}))}if(Sn.hasStandardBrowserEnv&&(r&&le.isFunction(r)&&(r=r(e)),r||!1!==r&&jn(e.url))){const t=i&&o&&En.read(o);t&&l.set(i,t)}return e},_n="undefined"!=typeof XMLHttpRequest&&function(t){return new Promise((function(e,n){const r=Dn(t);let i=r.data;const o=Un.from(r.headers).normalize();let l,a,c,s,u,{responseType:d,onUploadProgress:h,onDownloadProgress:p}=r;function b(){s&&s(),u&&u(),r.cancelToken&&r.cancelToken.unsubscribe(l),r.signal&&r.signal.removeEventListener("abort",l)}let Z=new XMLHttpRequest;function m(){if(!Z)return;const r=Un.from("getAllResponseHeaders"in Z&&Z.getAllResponseHeaders());An((function(t){e(t),b()}),(function(t){n(t),b()}),{data:d&&"text"!==d&&"json"!==d?Z.response:Z.responseText,status:Z.status,statusText:Z.statusText,headers:r,config:t,request:Z}),Z=null}Z.open(r.method.toUpperCase(),r.url,!0),Z.timeout=r.timeout,"onloadend"in Z?Z.onloadend=m:Z.onreadystatechange=function(){Z&&4===Z.readyState&&(0!==Z.status||Z.responseURL&&0===Z.responseURL.indexOf("file:"))&&setTimeout(m)},Z.onabort=function(){Z&&(n(new cn("Request aborted",cn.ECONNABORTED,t,Z)),Z=null)},Z.onerror=function(e){const r=e&&e.message?e.message:"Network Error",i=new cn(r,cn.ERR_NETWORK,t,Z);i.event=e||null,n(i),Z=null},Z.ontimeout=function(){let e=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const i=r.transitional||In;r.timeoutErrorMessage&&(e=r.timeoutErrorMessage),n(new cn(e,i.clarifyTimeoutError?cn.ETIMEDOUT:cn.ECONNABORTED,t,Z)),Z=null},void 0===i&&o.setContentType(null),"setRequestHeader"in Z&&le.forEach(o.toJSON(),(function(t,e){Z.setRequestHeader(e,t)})),le.isUndefined(r.withCredentials)||(Z.withCredentials=!!r.withCredentials),d&&"json"!==d&&(Z.responseType=r.responseType),p&&([c,u]=Bn(p,!0),Z.addEventListener("progress",c)),h&&Z.upload&&([a,s]=Bn(h),Z.upload.addEventListener("progress",a),Z.upload.addEventListener("loadend",s)),(r.cancelToken||r.signal)&&(l=e=>{Z&&(n(!e||e.type?new Fn(null,t,Z):e),Z.abort(),Z=null)},r.cancelToken&&r.cancelToken.subscribe(l),r.signal&&(r.signal.aborted?l():r.signal.addEventListener("abort",l)));const g=function(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}(r.url);g&&-1===Sn.protocols.indexOf(g)?n(new cn("Unsupported protocol "+g+":",cn.ERR_BAD_REQUEST,t)):Z.send(i||null)}))},qn=(t,e)=>{const{length:n}=t=t?t.filter(Boolean):[];if(e||n){let n,r=new AbortController;const i=function(t){if(!n){n=!0,l();const e=t instanceof Error?t:this.reason;r.abort(e instanceof cn?e:new Fn(e instanceof Error?e.message:e))}};let o=e&&setTimeout((()=>{o=null,i(new cn(`timeout of ${e}ms exceeded`,cn.ETIMEDOUT))}),e);const l=()=>{t&&(o&&clearTimeout(o),o=null,t.forEach((t=>{t.unsubscribe?t.unsubscribe(i):t.removeEventListener("abort",i)})),t=null)};t.forEach((t=>t.addEventListener("abort",i)));const{signal:a}=r;return a.unsubscribe=()=>le.asap(l),a}};const $n=function*(t,e){let n=t.byteLength;if(!e||n<e)return void(yield t);let r,i=0;for(;i<n;)r=i+e,yield t.slice(i,r),i=r},tr=(t,e,n,r)=>{const i=async function*(t,e){for await(const n of async function*(t){if(t[Symbol.asyncIterator])return void(yield*t);const e=t.getReader();try{for(;;){const{done:t,value:n}=await e.read();if(t)break;yield n}}finally{await e.cancel()}}(t))yield*$n(n,e)}(t,e);let o,l=0,a=t=>{o||(o=!0,r&&r(t))};return new ReadableStream({async pull(t){try{const{done:e,value:r}=await i.next();if(e)return a(),void t.close();let o=r.byteLength;if(n){let t=l+=o;n(t)}t.enqueue(new Uint8Array(r))}catch(t){throw a(t),t}},cancel:t=>(a(t),i.return())},{highWaterMark:2})},{isFunction:er}=le,nr=(({Request:t,Response:e})=>({Request:t,Response:e}))(le.global),{ReadableStream:rr,TextEncoder:ir}=le.global,or=(t,...e)=>{try{return!!t(...e)}catch(t){return!1}},lr=t=>{t=le.merge.call({skipUndefined:!0},nr,t);const{fetch:e,Request:n,Response:r}=t,i=e?er(e):"function"==typeof fetch,o=er(n),l=er(r);if(!i)return!1;const a=i&&er(rr),c=i&&("function"==typeof ir?(t=>e=>t.encode(e))(new ir):async t=>new Uint8Array(await new n(t).arrayBuffer())),s=o&&a&&or((()=>{let t=!1;const e=new n(Sn.origin,{body:new rr,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!e})),u=l&&a&&or((()=>le.isReadableStream(new r("").body))),d={stream:u&&(t=>t.body)};i&&["text","arrayBuffer","blob","formData","stream"].forEach((t=>{!d[t]&&(d[t]=(e,n)=>{let r=e&&e[t];if(r)return r.call(e);throw new cn(`Response type '${t}' is not supported`,cn.ERR_NOT_SUPPORT,n)})}));const h=async(t,e)=>{const r=le.toFiniteNumber(t.getContentLength());return null==r?(async t=>{if(null==t)return 0;if(le.isBlob(t))return t.size;if(le.isSpecCompliantForm(t)){const e=new n(Sn.origin,{method:"POST",body:t});return(await e.arrayBuffer()).byteLength}return le.isArrayBufferView(t)||le.isArrayBuffer(t)?t.byteLength:(le.isURLSearchParams(t)&&(t+=""),le.isString(t)?(await c(t)).byteLength:void 0)})(e):r};return async t=>{let{url:i,method:l,data:a,signal:c,cancelToken:p,timeout:b,onDownloadProgress:Z,onUploadProgress:m,responseType:g,headers:y,withCredentials:f="same-origin",fetchOptions:I}=Dn(t),G=e||fetch;g=g?(g+"").toLowerCase():"text";let X=qn([c,p&&p.toAbortSignal()],b),v=null;const V=X&&X.unsubscribe&&(()=>{X.unsubscribe()});let W;try{if(m&&s&&"get"!==l&&"head"!==l&&0!==(W=await h(y,a))){let t,e=new n(i,{method:"POST",body:a,duplex:"half"});if(le.isFormData(a)&&(t=e.headers.get("content-type"))&&y.setContentType(t),e.body){const[t,n]=zn(W,Bn(Pn(m)));a=tr(e.body,65536,t,n)}}le.isString(f)||(f=f?"include":"omit");const e=o&&"credentials"in n.prototype,c={...I,signal:X,method:l.toUpperCase(),headers:y.normalize().toJSON(),body:a,duplex:"half",credentials:e?f:void 0};v=o&&new n(i,c);let p=await(o?G(v,I):G(i,c));const b=u&&("stream"===g||"response"===g);if(u&&(Z||b&&V)){const t={};["status","statusText","headers"].forEach((e=>{t[e]=p[e]}));const e=le.toFiniteNumber(p.headers.get("content-length")),[n,i]=Z&&zn(e,Bn(Pn(Z),!0))||[];p=new r(tr(p.body,65536,n,(()=>{i&&i(),V&&V()})),t)}g=g||"text";let R=await d[le.findKey(d,g)||"text"](p,t);return!b&&V&&V(),await new Promise(((e,n)=>{An(e,n,{data:R,headers:Un.from(p.headers),status:p.status,statusText:p.statusText,config:t,request:v})}))}catch(e){if(V&&V(),e&&"TypeError"===e.name&&/Load failed|fetch/i.test(e.message))throw Object.assign(new cn("Network Error",cn.ERR_NETWORK,t,v,e&&e.response),{cause:e.cause||e});throw cn.from(e,e&&e.code,t,v,e&&e.response)}}},ar=new Map,cr=t=>{let e=t&&t.env||{};const{fetch:n,Request:r,Response:i}=e,o=[r,i,n];let l,a,c=o.length,s=ar;for(;c--;)l=o[c],a=s.get(l),void 0===a&&s.set(l,a=c?new Map:lr(e)),s=a;return a};cr();const sr={http:null,xhr:_n,fetch:{get:cr}};le.forEach(sr,((t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(t){}Object.defineProperty(t,"adapterName",{value:e})}}));const ur=t=>`- ${t}`,dr=t=>le.isFunction(t)||null===t||!1===t;var hr=function(t,e){t=le.isArray(t)?t:[t];const{length:n}=t;let r,i;const o={};for(let l=0;l<n;l++){let n;if(r=t[l],i=r,!dr(r)&&(i=sr[(n=String(r)).toLowerCase()],void 0===i))throw new cn(`Unknown adapter '${n}'`);if(i&&(le.isFunction(i)||(i=i.get(e))))break;o[n||"#"+l]=i}if(!i){const t=Object.entries(o).map((([t,e])=>`adapter ${t} `+(!1===e?"is not supported by the environment":"is not available in the build")));let e=n?t.length>1?"since :\n"+t.map(ur).join("\n"):" "+ur(t[0]):"as no adapter specified";throw new cn("There is no suitable adapter to dispatch the request "+e,"ERR_NOT_SUPPORT")}return i};function pr(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Fn(null,t)}function br(t){return pr(t),t.headers=Un.from(t.headers),t.data=Hn.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1),hr(t.adapter||Kn.adapter,t)(t).then((function(e){return pr(t),e.data=Hn.call(t,t.transformResponse,e),e.headers=Un.from(e.headers),e}),(function(e){return wn(e)||(pr(t),e&&e.response&&(e.response.data=Hn.call(t,t.transformResponse,e.response),e.response.headers=Un.from(e.response.headers))),Promise.reject(e)}))}const Zr={};["object","boolean","number","function","string","symbol"].forEach(((t,e)=>{Zr[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}}));const mr={};Zr.transitional=function(t,e,n){function r(t,e){return"[Axios v1.13.6] Transitional option '"+t+"'"+e+(n?". "+n:"")}return(n,i,o)=>{if(!1===t)throw new cn(r(i," has been removed"+(e?" in "+e:"")),cn.ERR_DEPRECATED);return e&&!mr[i]&&(mr[i]=!0,console.warn(r(i," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,i,o)}},Zr.spelling=function(t){return(e,n)=>(console.warn(`${n} is likely a misspelling of ${t}`),!0)};var gr={assertOptions:function(t,e,n){if("object"!=typeof t)throw new cn("options must be an object",cn.ERR_BAD_OPTION_VALUE);const r=Object.keys(t);let i=r.length;for(;i-- >0;){const o=r[i],l=e[o];if(l){const e=t[o],n=void 0===e||l(e,o,t);if(!0!==n)throw new cn("option "+o+" must be "+n,cn.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new cn("Unknown option "+o,cn.ERR_BAD_OPTION)}},validators:Zr};const yr=gr.validators;class fr{constructor(t){this.defaults=t||{},this.interceptors={request:new fn,response:new fn}}async request(t,e){try{return await this._request(t,e)}catch(t){if(t instanceof Error){let e={};Error.captureStackTrace?Error.captureStackTrace(e):e=new Error;const n=e.stack?e.stack.replace(/^.+\n/,""):"";try{t.stack?n&&!String(t.stack).endsWith(n.replace(/^.+\n.+\n/,""))&&(t.stack+="\n"+n):t.stack=n}catch(t){}}throw t}}_request(t,e){"string"==typeof t?(e=e||{}).url=t:e=t||{},e=On(this.defaults,e);const{transitional:n,paramsSerializer:r,headers:i}=e;void 0!==n&&gr.assertOptions(n,{silentJSONParsing:yr.transitional(yr.boolean),forcedJSONParsing:yr.transitional(yr.boolean),clarifyTimeoutError:yr.transitional(yr.boolean),legacyInterceptorReqResOrdering:yr.transitional(yr.boolean)},!1),null!=r&&(le.isFunction(r)?e.paramsSerializer={serialize:r}:gr.assertOptions(r,{encode:yr.function,serialize:yr.function},!0)),void 0!==e.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?e.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:e.allowAbsoluteUrls=!0),gr.assertOptions(e,{baseUrl:yr.spelling("baseURL"),withXsrfToken:yr.spelling("withXSRFToken")},!0),e.method=(e.method||this.defaults.method||"get").toLowerCase();let o=i&&le.merge(i.common,i[e.method]);i&&le.forEach(["delete","get","head","post","put","patch","common"],(t=>{delete i[t]})),e.headers=Un.concat(o,i);const l=[];let a=!0;this.interceptors.request.forEach((function(t){if("function"==typeof t.runWhen&&!1===t.runWhen(e))return;a=a&&t.synchronous;const n=e.transitional||In;n&&n.legacyInterceptorReqResOrdering?l.unshift(t.fulfilled,t.rejected):l.push(t.fulfilled,t.rejected)}));const c=[];let s;this.interceptors.response.forEach((function(t){c.push(t.fulfilled,t.rejected)}));let u,d=0;if(!a){const t=[br.bind(this),void 0];for(t.unshift(...l),t.push(...c),u=t.length,s=Promise.resolve(e);d<u;)s=s.then(t[d++],t[d++]);return s}u=l.length;let h=e;for(;d<u;){const e=l[d++],n=l[d++];try{h=e(h)}catch(t){n.call(this,t);break}}try{s=br.call(this,h)}catch(t){return Promise.reject(t)}for(d=0,u=c.length;d<u;)s=s.then(c[d++],c[d++]);return s}getUri(t){return yn(Mn((t=On(this.defaults,t)).baseURL,t.url,t.allowAbsoluteUrls),t.params,t.paramsSerializer)}}le.forEach(["delete","get","head","options"],(function(t){fr.prototype[t]=function(e,n){return this.request(On(n||{},{method:t,url:e,data:(n||{}).data}))}})),le.forEach(["post","put","patch"],(function(t){function e(e){return function(n,r,i){return this.request(On(i||{},{method:t,headers:e?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}fr.prototype[t]=e(),fr.prototype[t+"Form"]=e(!0)}));var Ir=fr;class Gr{constructor(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");let e;this.promise=new Promise((function(t){e=t}));const n=this;this.promise.then((t=>{if(!n._listeners)return;let e=n._listeners.length;for(;e-- >0;)n._listeners[e](t);n._listeners=null})),this.promise.then=t=>{let e;const r=new Promise((t=>{n.subscribe(t),e=t})).then(t);return r.cancel=function(){n.unsubscribe(e)},r},t((function(t,r,i){n.reason||(n.reason=new Fn(t,r,i),e(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}toAbortSignal(){const t=new AbortController,e=e=>{t.abort(e)};return this.subscribe(e),t.signal.unsubscribe=()=>this.unsubscribe(e),t.signal}static source(){let t;return{token:new Gr((function(e){t=e})),cancel:t}}}var Xr=Gr;const vr={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(vr).forEach((([t,e])=>{vr[e]=t}));var Vr=vr;const Wr=function t(e){const n=new Ir(e),r=bt(Ir.prototype.request,n);return le.extend(r,Ir.prototype,n,{allOwnKeys:!0}),le.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return t(On(e,n))},r}(Kn);Wr.Axios=Ir,Wr.CanceledError=Fn,Wr.CancelToken=Xr,Wr.isCancel=wn,Wr.VERSION="1.13.6",Wr.toFormData=pn,Wr.AxiosError=cn,Wr.Cancel=Wr.CanceledError,Wr.all=function(t){return Promise.all(t)},Wr.spread=function(t){return function(e){return t.apply(null,e)}},Wr.isAxiosError=function(t){return le.isObject(t)&&!0===t.isAxiosError},Wr.mergeConfig=On,Wr.AxiosHeaders=Un,Wr.formToJSON=t=>Cn(le.isHTMLForm(t)?new FormData(t):t),Wr.getAdapter=hr,Wr.HttpStatusCode=Vr,Wr.default=Wr;var Rr=Wr;const{Axios:Sr,AxiosError:Cr,CanceledError:Yr,isCancel:Kr,CancelToken:Nr,VERSION:kr,all:Jr,Cancel:Tr,isAxiosError:Lr,spread:xr,toFormData:Ur,AxiosHeaders:Hr,HttpStatusCode:wr,formToJSON:Fr,getAdapter:Ar,mergeConfig:Br}=Rr;var zr;let Pr=zr=class{constructor(){this.attachToken=()=>Promise.resolve(),this.requestStartCallback=()=>null,this.requestSuccessCallback=()=>null,this.requestErrorCallback=()=>null,this.requestFinishCallback=()=>null,this.init=this.init.bind(this),this.setHttpRequestErrorCallback=this.setHttpRequestErrorCallback.bind(this),this.setHttpRequestFinishCallback=this.setHttpRequestFinishCallback.bind(this),this.setHttpRequestStartCallback=this.setHttpRequestStartCallback.bind(this),this.setHttpRequestSuccessCallback=this.setHttpRequestSuccessCallback.bind(this)}static getInstance(){return this.axiosInstance||(this.axiosInstance=Rr.create({withCredentials:!0}),this.clientInstance||(this.clientInstance=new zr),this.axiosInstance.interceptors.request.use((t=>e(this,void 0,void 0,(function*(){return yield this.clientInstance.requestHandler(t)})))),this.axiosInstance.interceptors.response.use((t=>this.clientInstance.successHandler(t)),(t=>this.clientInstance.errorHandler(t))),this.axiosInstance.all=Rr.all,this.axiosInstance.spread=Rr.spread,this.axiosInstance.init=this.clientInstance.init,this.axiosInstance.enableHandler=this.clientInstance.enableHandler,this.axiosInstance.disableHandler=this.clientInstance.disableHandler,this.axiosInstance.disableHandlerWithTimeout=this.clientInstance.disableHandlerWithTimeout,this.axiosInstance.setHttpRequestStartCallback=this.clientInstance.setHttpRequestStartCallback,this.axiosInstance.setHttpRequestSuccessCallback=this.clientInstance.setHttpRequestSuccessCallback,this.axiosInstance.setHttpRequestErrorCallback=this.clientInstance.setHttpRequestErrorCallback,this.axiosInstance.setHttpRequestFinishCallback=this.clientInstance.setHttpRequestFinishCallback),this.axiosInstance}requestHandler(t){return e(this,void 0,void 0,(function*(){if(yield this.attachToken(t),null==t?void 0:t.shouldEncodeToFormData){const e=null==t?void 0:t.data,n=new FormData;Object.keys(e).forEach((t=>{n.append(t,e[t])})),t.data=n}return t.startTimeInMs=(new Date).getTime(),zr.isHandlerEnabled&&this.requestStartCallback&&"function"==typeof this.requestStartCallback&&this.requestStartCallback(t),t}))}errorHandler(t){throw zr.isHandlerEnabled&&(this.requestErrorCallback&&"function"==typeof this.requestErrorCallback&&this.requestErrorCallback(t),this.requestFinishCallback&&"function"==typeof this.requestFinishCallback&&this.requestFinishCallback()),t}successHandler(t){var e,n;return"stream"===(null===(n=null===(e=t)||void 0===e?void 0:e.config)||void 0===n?void 0:n.responseType)||zr.isHandlerEnabled&&(this.requestSuccessCallback&&"function"==typeof this.requestSuccessCallback&&this.requestSuccessCallback(t),this.requestFinishCallback&&"function"==typeof this.requestFinishCallback&&this.requestFinishCallback()),t}init(t=!0,n){return e(this,void 0,void 0,(function*(){zr.isHandlerEnabled=t,this.attachToken=n}))}enableHandler(){zr.isHandlerEnabled=!0}disableHandler(){zr.isHandlerEnabled=!1}disableHandlerWithTimeout(t=zr.DEFAULT_HANDLER_DISABLE_TIMEOUT){zr.isHandlerEnabled=!1,setTimeout((()=>{zr.isHandlerEnabled=!0}),t)}setHttpRequestStartCallback(t){this.requestStartCallback=t}setHttpRequestSuccessCallback(t){this.requestSuccessCallback=t}setHttpRequestErrorCallback(t){this.requestErrorCallback=t}setHttpRequestFinishCallback(t){this.requestFinishCallback=t}};Pr.DEFAULT_HANDLER_DISABLE_TIMEOUT=1e3,Pr=zr=function(t,e,n,r){var i,o=arguments.length,l=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(l=(o<3?i(l):o>3?i(e,n,l):i(e,n))||l);return o>3&&l&&Object.defineProperty(e,n,l),l}([t=>{}],Pr);class jr{setData(t,n){return e(this,void 0,void 0,(function*(){localStorage.setItem(t,n)}))}getData(t){var n;return e(this,void 0,void 0,(function*(){return null!==(n=localStorage.getItem(t))&&void 0!==n?n:"{}"}))}removeData(t){return e(this,void 0,void 0,(function*(){localStorage.removeItem(t)}))}}class Er{constructor(){this._data=new Map}setData(t,n){return e(this,void 0,void 0,(function*(){this._data.set(t,n)}))}getData(t){var n,r;return e(this,void 0,void 0,(function*(){return null!==(r=null===(n=this._data)||void 0===n?void 0:n.get(t))&&void 0!==r?r:"{}"}))}removeData(t){return e(this,void 0,void 0,(function*(){this._data.delete(t)}))}}class Mr{setData(t,n){return e(this,void 0,void 0,(function*(){sessionStorage.setItem(t,n)}))}getData(t){var n;return e(this,void 0,void 0,(function*(){return null!==(n=sessionStorage.getItem(t))&&void 0!==n?n:"{}"}))}removeData(t){return e(this,void 0,void 0,(function*(){sessionStorage.removeItem(t)}))}}var Qr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==r.g?r.g:"undefined"!=typeof self?self:{},Or={exports:{}},Dr={},_r={};Object.defineProperty(_r,"__esModule",{value:!0}),_r.default=function(t){var e=t.length,n=e%4;if(!n)return t;var r=e,i=4-n,o=e+i,l=Ge.alloc(o);for(l.write(t);i--;)l.write("=",r++);return l.toString()},Object.defineProperty(Dr,"__esModule",{value:!0});var qr=_r;function $r(t,e){return void 0===e&&(e="utf8"),Ge.isBuffer(t)?ei(t.toString("base64")):ei(Ge.from(t,e).toString("base64"))}function ti(t){return t=t.toString(),qr.default(t).replace(/\-/g,"+").replace(/_/g,"/")}function ei(t){return t.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}var ni,ri=$r;ri.encode=$r,ri.decode=function(t,e){return void 0===e&&(e="utf8"),Ge.from(ti(t),"base64").toString(e)},ri.toBase64=ti,ri.fromBase64=ei,ri.toBuffer=function(t){return Ge.from(ti(t),"base64")},Dr.default=ri,(ni=Or).exports=Dr.default,ni.exports.default=ni.exports;var ii=Or.exports,oi={exports:{}};!function(t){!function(e,n){var r={};!function(t){t.__esModule=!0,t.digestLength=32,t.blockSize=64;var e=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function n(t,n,r,i,o){for(var l,a,c,s,u,d,h,p,b,Z,m,g,y;o>=64;){for(l=n[0],a=n[1],c=n[2],s=n[3],u=n[4],d=n[5],h=n[6],p=n[7],Z=0;Z<16;Z++)m=i+4*Z,t[Z]=(255&r[m])<<24|(255&r[m+1])<<16|(255&r[m+2])<<8|255&r[m+3];for(Z=16;Z<64;Z++)g=((b=t[Z-2])>>>17|b<<15)^(b>>>19|b<<13)^b>>>10,y=((b=t[Z-15])>>>7|b<<25)^(b>>>18|b<<14)^b>>>3,t[Z]=(g+t[Z-7]|0)+(y+t[Z-16]|0);for(Z=0;Z<64;Z++)g=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&d^~u&h)|0)+(p+(e[Z]+t[Z]|0)|0)|0,y=((l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10))+(l&a^l&c^a&c)|0,p=h,h=d,d=u,u=s+g|0,s=c,c=a,a=l,l=g+y|0;n[0]+=l,n[1]+=a,n[2]+=c,n[3]+=s,n[4]+=u,n[5]+=d,n[6]+=h,n[7]+=p,i+=64,o-=64}return i}var r=function(){function e(){this.digestLength=t.digestLength,this.blockSize=t.blockSize,this.state=new Int32Array(8),this.temp=new Int32Array(64),this.buffer=new Uint8Array(128),this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this.reset()}return e.prototype.reset=function(){return this.state[0]=1779033703,this.state[1]=3144134277,this.state[2]=1013904242,this.state[3]=2773480762,this.state[4]=1359893119,this.state[5]=2600822924,this.state[6]=528734635,this.state[7]=1541459225,this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this},e.prototype.clean=function(){for(var t=0;t<this.buffer.length;t++)this.buffer[t]=0;for(t=0;t<this.temp.length;t++)this.temp[t]=0;this.reset()},e.prototype.update=function(t,e){if(void 0===e&&(e=t.length),this.finished)throw new Error("SHA256: can't update because hash was finished.");var r=0;if(this.bytesHashed+=e,this.bufferLength>0){for(;this.bufferLength<64&&e>0;)this.buffer[this.bufferLength++]=t[r++],e--;64===this.bufferLength&&(n(this.temp,this.state,this.buffer,0,64),this.bufferLength=0)}for(e>=64&&(r=n(this.temp,this.state,t,r,e),e%=64);e>0;)this.buffer[this.bufferLength++]=t[r++],e--;return this},e.prototype.finish=function(t){if(!this.finished){var e=this.bytesHashed,r=this.bufferLength,i=e/536870912|0,o=e<<3,l=e%64<56?64:128;this.buffer[r]=128;for(var a=r+1;a<l-8;a++)this.buffer[a]=0;this.buffer[l-8]=i>>>24&255,this.buffer[l-7]=i>>>16&255,this.buffer[l-6]=i>>>8&255,this.buffer[l-5]=i>>>0&255,this.buffer[l-4]=o>>>24&255,this.buffer[l-3]=o>>>16&255,this.buffer[l-2]=o>>>8&255,this.buffer[l-1]=o>>>0&255,n(this.temp,this.state,this.buffer,0,l),this.finished=!0}for(a=0;a<8;a++)t[4*a+0]=this.state[a]>>>24&255,t[4*a+1]=this.state[a]>>>16&255,t[4*a+2]=this.state[a]>>>8&255,t[4*a+3]=this.state[a]>>>0&255;return this},e.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},e.prototype._saveState=function(t){for(var e=0;e<this.state.length;e++)t[e]=this.state[e]},e.prototype._restoreState=function(t,e){for(var n=0;n<this.state.length;n++)this.state[n]=t[n];this.bytesHashed=e,this.finished=!1,this.bufferLength=0},e}();t.Hash=r;var i=function(){function t(t){this.inner=new r,this.outer=new r,this.blockSize=this.inner.blockSize,this.digestLength=this.inner.digestLength;var e=new Uint8Array(this.blockSize);if(t.length>this.blockSize)(new r).update(t).finish(e).clean();else for(var n=0;n<t.length;n++)e[n]=t[n];for(n=0;n<e.length;n++)e[n]^=54;for(this.inner.update(e),n=0;n<e.length;n++)e[n]^=106;for(this.outer.update(e),this.istate=new Uint32Array(8),this.ostate=new Uint32Array(8),this.inner._saveState(this.istate),this.outer._saveState(this.ostate),n=0;n<e.length;n++)e[n]=0}return t.prototype.reset=function(){return this.inner._restoreState(this.istate,this.inner.blockSize),this.outer._restoreState(this.ostate,this.outer.blockSize),this},t.prototype.clean=function(){for(var t=0;t<this.istate.length;t++)this.ostate[t]=this.istate[t]=0;this.inner.clean(),this.outer.clean()},t.prototype.update=function(t){return this.inner.update(t),this},t.prototype.finish=function(t){return this.outer.finished?this.outer.finish(t):(this.inner.finish(t),this.outer.update(t,this.digestLength).finish(t)),this},t.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},t}();function o(t){var e=(new r).update(t),n=e.digest();return e.clean(),n}function l(t,e){var n=new i(t).update(e),r=n.digest();return n.clean(),r}function a(t,e,n,r){var i=r[0];if(0===i)throw new Error("hkdf: cannot expand more");e.reset(),i>1&&e.update(t),n&&e.update(n),e.update(r),e.finish(t),r[0]++}t.HMAC=i,t.hash=o,t.default=o,t.hmac=l;var c=new Uint8Array(t.digestLength);t.hkdf=function(t,e,n,r){void 0===e&&(e=c),void 0===r&&(r=32);for(var o=new Uint8Array([1]),s=l(e,t),u=new i(s),d=new Uint8Array(u.digestLength),h=d.length,p=new Uint8Array(r),b=0;b<r;b++)h===d.length&&(a(d,u,n,o),h=0),p[b]=d[h++];return u.clean(),d.fill(0),o.fill(0),p},t.pbkdf2=function(t,e,n,r){for(var o=new i(t),l=o.digestLength,a=new Uint8Array(4),c=new Uint8Array(l),s=new Uint8Array(l),u=new Uint8Array(r),d=0;d*l<r;d++){var h=d+1;a[0]=h>>>24&255,a[1]=h>>>16&255,a[2]=h>>>8&255,a[3]=h>>>0&255,o.reset(),o.update(e),o.update(a),o.finish(s);for(var p=0;p<l;p++)c[p]=s[p];for(p=2;p<=n;p++){o.reset(),o.update(s).finish(s);for(var b=0;b<l;b++)c[b]^=s[b]}for(p=0;p<l&&d*l+p<r;p++)u[d*l+p]=c[p]}for(d=0;d<l;d++)c[d]=s[d]=0;for(d=0;d<4;d++)a[d]=0;return o.clean(),u}}(r);var i=r.default;for(var o in r)i[o]=r[o];t.exports=i}()}(oi);var li=function(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}(oi.exports),ai=crypto;const ci=t=>t instanceof CryptoKey,si=new TextEncoder,ui=new TextDecoder,di=t=>{let e=t;e instanceof Uint8Array&&(e=ui.decode(e)),e=e.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"");try{return(t=>{const e=atob(t),n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t);return n})(e)}catch(t){throw new TypeError("The input to be decoded is not correctly encoded.")}};class hi extends Error{constructor(t){var e;super(t),this.code="ERR_JOSE_GENERIC",this.name=this.constructor.name,null===(e=Error.captureStackTrace)||void 0===e||e.call(Error,this,this.constructor)}static get code(){return"ERR_JOSE_GENERIC"}}class pi extends hi{constructor(t,e="unspecified",n="unspecified"){super(t),this.code="ERR_JWT_CLAIM_VALIDATION_FAILED",this.claim=e,this.reason=n}static get code(){return"ERR_JWT_CLAIM_VALIDATION_FAILED"}}class bi extends hi{constructor(t,e="unspecified",n="unspecified"){super(t),this.code="ERR_JWT_EXPIRED",this.claim=e,this.reason=n}static get code(){return"ERR_JWT_EXPIRED"}}class Zi extends hi{constructor(){super(...arguments),this.code="ERR_JOSE_ALG_NOT_ALLOWED"}static get code(){return"ERR_JOSE_ALG_NOT_ALLOWED"}}class mi extends hi{constructor(){super(...arguments),this.code="ERR_JOSE_NOT_SUPPORTED"}static get code(){return"ERR_JOSE_NOT_SUPPORTED"}}class gi extends hi{constructor(){super(...arguments),this.code="ERR_JWS_INVALID"}static get code(){return"ERR_JWS_INVALID"}}class yi extends hi{constructor(){super(...arguments),this.code="ERR_JWT_INVALID"}static get code(){return"ERR_JWT_INVALID"}}class fi extends hi{constructor(){super(...arguments),this.code="ERR_JWKS_INVALID"}static get code(){return"ERR_JWKS_INVALID"}}class Ii extends hi{constructor(){super(...arguments),this.code="ERR_JWKS_NO_MATCHING_KEY",this.message="no applicable key found in the JSON Web Key Set"}static get code(){return"ERR_JWKS_NO_MATCHING_KEY"}}class Gi extends hi{constructor(){super(...arguments),this.code="ERR_JWKS_MULTIPLE_MATCHING_KEYS",this.message="multiple matching keys found in the JSON Web Key Set"}static get code(){return"ERR_JWKS_MULTIPLE_MATCHING_KEYS"}}class Xi extends hi{constructor(){super(...arguments),this.code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED",this.message="signature verification failed"}static get code(){return"ERR_JWS_SIGNATURE_VERIFICATION_FAILED"}}function vi(){return"function"==typeof WebSocketPair}function Vi(t,e="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${e} must be ${t}`)}function Wi(t,e){return t.name===e}function Ri(t){return parseInt(t.name.slice(4),10)}var Si=(t,...e)=>{let n="Key must be ";if(e.length>2){const t=e.pop();n+=`one of type ${e.join(", ")}, or ${t}.`}else 2===e.length?n+=`one of type ${e[0]} or ${e[1]}.`:n+=`of type ${e[0]}.`;return null==t?n+=` Received ${t}`:"function"==typeof t&&t.name?n+=` Received function ${t.name}`:"object"==typeof t&&null!=t&&t.constructor&&t.constructor.name&&(n+=` Received an instance of ${t.constructor.name}`),n},Ci=t=>ci(t);const Yi=["CryptoKey"];function Ki(t){if("object"!=typeof(e=t)||null===e||"[object Object]"!==Object.prototype.toString.call(t))return!1;var e;if(null===Object.getPrototypeOf(t))return!0;let n=t;for(;null!==Object.getPrototypeOf(n);)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(t)===n}const Ni=async t=>{var e,n;const{algorithm:r,keyUsages:i}=function(t){let e,n;switch(t.kty){case"oct":switch(t.alg){case"HS256":case"HS384":case"HS512":e={name:"HMAC",hash:`SHA-${t.alg.slice(-3)}`},n=["sign","verify"];break;case"A128CBC-HS256":case"A192CBC-HS384":case"A256CBC-HS512":throw new mi(`${t.alg} keys cannot be imported as CryptoKey instances`);case"A128GCM":case"A192GCM":case"A256GCM":case"A128GCMKW":case"A192GCMKW":case"A256GCMKW":e={name:"AES-GCM"},n=["encrypt","decrypt"];break;case"A128KW":case"A192KW":case"A256KW":e={name:"AES-KW"},n=["wrapKey","unwrapKey"];break;case"PBES2-HS256+A128KW":case"PBES2-HS384+A192KW":case"PBES2-HS512+A256KW":e={name:"PBKDF2"},n=["deriveBits"];break;default:throw new mi('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"RSA":switch(t.alg){case"PS256":case"PS384":case"PS512":e={name:"RSA-PSS",hash:`SHA-${t.alg.slice(-3)}`},n=t.d?["sign"]:["verify"];break;case"RS256":case"RS384":case"RS512":e={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${t.alg.slice(-3)}`},n=t.d?["sign"]:["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":e={name:"RSA-OAEP",hash:`SHA-${parseInt(t.alg.slice(-3),10)||1}`},n=t.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new mi('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case"EC":switch(t.alg){case"ES256":e={name:"ECDSA",namedCurve:"P-256"},n=t.d?["sign"]:["verify"];break;case"ES384":e={name:"ECDSA",namedCurve:"P-384"},n=t.d?["sign"]:["verify"];break;case"ES512":e={name:"ECDSA",namedCurve:"P-521"},n=t.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":e={name:"ECDH",namedCurve:t.crv},n=t.d?["deriveBits"]:[];break;default:throw new mi('Invalid or unsupported JWK "alg" (Algorithm) Parameter value')}break;case vi()&&"OKP":if("EdDSA"!==t.alg)throw new mi('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');if("Ed25519"!==t.crv)throw new mi('Invalid or unsupported JWK "crv" (Subtype of Key Pair) Parameter value');e={name:"NODE-ED25519",namedCurve:"NODE-ED25519"},n=t.d?["sign"]:["verify"];break;default:throw new mi('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:e,keyUsages:n}}(t),o=[r,null!==(e=t.ext)&&void 0!==e&&e,null!==(n=t.key_ops)&&void 0!==n?n:i];if("PBKDF2"===r.name)return ai.subtle.importKey("raw",di(t.k),...o);const l={...t};return delete l.alg,ai.subtle.importKey("jwk",l,...o)};async function ki(t,e,n){var r;if(!Ki(t))throw new gi("Flattened JWS must be an object");if(void 0===t.protected&&void 0===t.header)throw new gi('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==t.protected&&"string"!=typeof t.protected)throw new gi("JWS Protected Header incorrect type");if(void 0===t.payload)throw new gi("JWS Payload missing");if("string"!=typeof t.signature)throw new gi("JWS Signature missing or incorrect type");if(void 0!==t.header&&!Ki(t.header))throw new gi("JWS Unprotected Header incorrect type");let i={};if(t.protected){const e=di(t.protected);try{i=JSON.parse(ui.decode(e))}catch(t){throw new gi("JWS Protected Header is invalid")}}if(!((...t)=>{const e=t.filter(Boolean);if(0===e.length||1===e.length)return!0;let n;for(const t of e){const e=Object.keys(t);if(n&&0!==n.size)for(const t of e){if(n.has(t))return!1;n.add(t)}else n=new Set(e)}return!0})(i,t.header))throw new gi("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");const o={...i,...t.header},l=function(t,e,n,r,i){if(void 0!==i.crit&&void 0===r.crit)throw new t('"crit" (Critical) Header Parameter MUST be integrity protected');if(!r||void 0===r.crit)return new Set;if(!Array.isArray(r.crit)||0===r.crit.length||r.crit.some((t=>"string"!=typeof t||0===t.length)))throw new t('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let o;o=void 0!==n?new Map([...Object.entries(n),...e.entries()]):e;for(const e of r.crit){if(!o.has(e))throw new mi(`Extension Header Parameter "${e}" is not recognized`);if(void 0===i[e])throw new t(`Extension Header Parameter "${e}" is missing`);if(o.get(e)&&void 0===r[e])throw new t(`Extension Header Parameter "${e}" MUST be integrity protected`)}return new Set(r.crit)}(gi,new Map([["b64",!0]]),null==n?void 0:n.crit,i,o);let a=!0;if(l.has("b64")&&(a=i.b64,"boolean"!=typeof a))throw new gi('The "b64" (base64url-encode payload) Header Parameter must be a boolean');const{alg:c}=o;if("string"!=typeof c||!c)throw new gi('JWS "alg" (Algorithm) Header Parameter missing or invalid');const s=n&&((t,e)=>{if(void 0!==e&&(!Array.isArray(e)||e.some((t=>"string"!=typeof t))))throw new TypeError('"algorithms" option must be an array of strings');if(e)return new Set(e)})(0,n.algorithms);if(s&&!s.has(c))throw new Zi('"alg" (Algorithm) Header Parameter not allowed');if(a){if("string"!=typeof t.payload)throw new gi("JWS Payload must be a string")}else if("string"!=typeof t.payload&&!(t.payload instanceof Uint8Array))throw new gi("JWS Payload must be a string or an Uint8Array instance");let u=!1;"function"==typeof e&&(e=await e(i,t),u=!0),((t,e,n)=>{t.startsWith("HS")||"dir"===t||t.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(t)?(t=>{if(!(t instanceof Uint8Array)){if(!Ci(t))throw new TypeError(Si(t,...Yi,"Uint8Array"));if("secret"!==t.type)throw new TypeError(`${Yi.join(" or ")} instances for symmetric algorithms must be of type "secret"`)}})(e):((t,e)=>{if(!Ci(t))throw new TypeError(Si(t,...Yi));if("secret"===t.type)throw new TypeError(`${Yi.join(" or ")} instances for asymmetric algorithms must not be of type "secret"`);if(t.algorithm&&"private"===t.type)throw new TypeError(`${Yi.join(" or ")} instances for asymmetric algorithm verifying must be of type "public"`);t.algorithm})(e)})(c,e);const d=function(...t){const e=t.reduce(((t,{length:e})=>t+e),0),n=new Uint8Array(e);let r=0;return t.forEach((t=>{n.set(t,r),r+=t.length})),n}(si.encode(null!==(r=t.protected)&&void 0!==r?r:""),si.encode("."),"string"==typeof t.payload?si.encode(t.payload):t.payload),h=di(t.signature);if(!await(async(t,e,n,r)=>{const i=await function(t,e,n){if(ci(e))return function(t,e,...n){switch(e){case"HS256":case"HS384":case"HS512":{if(!Wi(t.algorithm,"HMAC"))throw Vi("HMAC");const n=parseInt(e.slice(2),10);if(Ri(t.algorithm.hash)!==n)throw Vi(`SHA-${n}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!Wi(t.algorithm,"RSASSA-PKCS1-v1_5"))throw Vi("RSASSA-PKCS1-v1_5");const n=parseInt(e.slice(2),10);if(Ri(t.algorithm.hash)!==n)throw Vi(`SHA-${n}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!Wi(t.algorithm,"RSA-PSS"))throw Vi("RSA-PSS");const n=parseInt(e.slice(2),10);if(Ri(t.algorithm.hash)!==n)throw Vi(`SHA-${n}`,"algorithm.hash");break}case vi()&&"EdDSA":if(!Wi(t.algorithm,"NODE-ED25519"))throw Vi("NODE-ED25519");break;case"ES256":case"ES384":case"ES512":{if(!Wi(t.algorithm,"ECDSA"))throw Vi("ECDSA");const n=function(t){switch(t){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}(e);if(t.algorithm.namedCurve!==n)throw Vi(n,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}!function(t,e){if(e.length&&!e.some((e=>t.usages.includes(e)))){let t="CryptoKey does not support this operation, its usages must include ";if(e.length>2){const n=e.pop();t+=`one of ${e.join(", ")}, or ${n}.`}else 2===e.length?t+=`one of ${e[0]} or ${e[1]}.`:t+=`${e[0]}.`;throw new TypeError(t)}}(t,n)}(e,t,n),e;if(e instanceof Uint8Array){if(!t.startsWith("HS"))throw new TypeError(Si(e,...Yi));return ai.subtle.importKey("raw",e,{hash:`SHA-${t.slice(-3)}`,name:"HMAC"},!1,[n])}throw new TypeError(Si(e,...Yi,"Uint8Array"))}(t,e,"verify");((t,e)=>{if(t.startsWith("RS")||t.startsWith("PS")){const{modulusLength:n}=e.algorithm;if("number"!=typeof n||n<2048)throw new TypeError(`${t} requires key modulusLength to be 2048 bits or larger`)}})(t,i);const o=function(t,e){const n=`SHA-${t.slice(-3)}`;switch(t){case"HS256":case"HS384":case"HS512":return{hash:n,name:"HMAC"};case"PS256":case"PS384":case"PS512":return{hash:n,name:"RSA-PSS",saltLength:t.slice(-3)>>3};case"RS256":case"RS384":case"RS512":return{hash:n,name:"RSASSA-PKCS1-v1_5"};case"ES256":case"ES384":case"ES512":return{hash:n,name:"ECDSA",namedCurve:e.namedCurve};case vi()&&"EdDSA":const{namedCurve:r}=e;return{name:r,namedCurve:r};default:throw new mi(`alg ${t} is not supported either by JOSE or your javascript runtime`)}}(t,i.algorithm);try{return await ai.subtle.verify(o,i,n,r)}catch(t){return!1}})(c,e,h,d))throw new Xi;let p;p=a?di(t.payload):"string"==typeof t.payload?si.encode(t.payload):t.payload;const b={payload:p};return void 0!==t.protected&&(b.protectedHeader=i),void 0!==t.header&&(b.unprotectedHeader=t.header),u?{...b,key:e}:b}const Ji=/^(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)$/i;var Ti=t=>{const e=Ji.exec(t);if(!e)throw new TypeError("Invalid time period format");const n=parseFloat(e[1]);switch(e[2].toLowerCase()){case"sec":case"secs":case"second":case"seconds":case"s":return Math.round(n);case"minute":case"minutes":case"min":case"mins":case"m":return Math.round(60*n);case"hour":case"hours":case"hr":case"hrs":case"h":return Math.round(3600*n);case"day":case"days":case"d":return Math.round(86400*n);case"week":case"weeks":case"w":return Math.round(604800*n);default:return Math.round(31557600*n)}};const Li=t=>t.toLowerCase().replace(/^application\//,"");var xi=(t,e,n={})=>{const{typ:r}=n;if(r&&("string"!=typeof t.typ||Li(t.typ)!==Li(r)))throw new pi('unexpected "typ" JWT header value',"typ","check_failed");let i;try{i=JSON.parse(ui.decode(e))}catch(t){}if(!Ki(i))throw new yi("JWT Claims Set must be a top-level JSON object");const{issuer:o}=n;if(o&&!(Array.isArray(o)?o:[o]).includes(i.iss))throw new pi('unexpected "iss" claim value',"iss","check_failed");const{subject:l}=n;if(l&&i.sub!==l)throw new pi('unexpected "sub" claim value',"sub","check_failed");const{audience:a}=n;if(a&&(s="string"==typeof a?[a]:a,!("string"==typeof(c=i.aud)?s.includes(c):Array.isArray(c)&&s.some(Set.prototype.has.bind(new Set(c))))))throw new pi('unexpected "aud" claim value',"aud","check_failed");var c,s;let u;switch(typeof n.clockTolerance){case"string":u=Ti(n.clockTolerance);break;case"number":u=n.clockTolerance;break;case"undefined":u=0;break;default:throw new TypeError("Invalid clockTolerance option type")}const{currentDate:d}=n,h=(p=d||new Date,Math.floor(p.getTime()/1e3));var p;if((void 0!==i.iat||n.maxTokenAge)&&"number"!=typeof i.iat)throw new pi('"iat" claim must be a number',"iat","invalid");if(void 0!==i.nbf){if("number"!=typeof i.nbf)throw new pi('"nbf" claim must be a number',"nbf","invalid");if(i.nbf>h+u)throw new pi('"nbf" claim timestamp check failed',"nbf","check_failed")}if(void 0!==i.exp){if("number"!=typeof i.exp)throw new pi('"exp" claim must be a number',"exp","invalid");if(i.exp<=h-u)throw new bi('"exp" claim timestamp check failed',"exp","check_failed")}if(n.maxTokenAge){const t=h-i.iat;if(t-u>("number"==typeof n.maxTokenAge?n.maxTokenAge:Ti(n.maxTokenAge)))throw new bi('"iat" claim timestamp check failed (too far in the past)',"iat","check_failed");if(t<0-u)throw new pi('"iat" claim timestamp check failed (it should be in the past)',"iat","check_failed")}return i};function Ui(t){return Ki(t)}class Hi{constructor(t){if(this._cached=new WeakMap,!function(t){return t&&"object"==typeof t&&Array.isArray(t.keys)&&t.keys.every(Ui)}(t))throw new fi("JSON Web Key Set malformed");var e;this._jwks=(e=t,"function"==typeof structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e)))}async getKey(t,e){const{alg:n,kid:r}={...t,...e.header},i=function(t){switch("string"==typeof t&&t.slice(0,2)){case"RS":case"PS":return"RSA";case"ES":return"EC";case"Ed":return"OKP";default:throw new mi('Unsupported "alg" value for a JSON Web Key Set')}}(n),o=this._jwks.keys.filter((t=>{let e=i===t.kty;if(e&&"string"==typeof r&&(e=r===t.kid),e&&"string"==typeof t.alg&&(e=n===t.alg),e&&"string"==typeof t.use&&(e="sig"===t.use),e&&Array.isArray(t.key_ops)&&(e=t.key_ops.includes("verify")),e&&"EdDSA"===n&&(e="Ed25519"===t.crv||"Ed448"===t.crv),e)switch(n){case"ES256":e="P-256"===t.crv;break;case"ES256K":e="secp256k1"===t.crv;break;case"ES384":e="P-384"===t.crv;break;case"ES512":e="P-521"===t.crv}return e})),{0:l,length:a}=o;if(0===a)throw new Ii;if(1!==a)throw new Gi;const c=this._cached.get(l)||this._cached.set(l,{}).get(l);if(void 0===c[n]){const t=await async function(t,e,n){if(!Ki(t))throw new TypeError("JWK must be an object");if(e||(e=t.alg),"string"!=typeof e||!e)throw new TypeError('"alg" argument is required when "jwk.alg" is not present');switch(t.kty){case"oct":if("string"!=typeof t.k||!t.k)throw new TypeError('missing "k" (Key Value) Parameter value');return null!=n||(n=!0!==t.ext),n?Ni({...t,alg:e,ext:!1}):di(t.k);case"RSA":if(void 0!==t.oth)throw new mi('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');case"EC":case"OKP":return Ni({...t,alg:e});default:throw new mi('Unsupported "kty" (Key Type) Parameter value')}}({...l,ext:!0},n);if(t instanceof Uint8Array||"public"!==t.type)throw new fi("JSON Web Key Set members must be public keys");c[n]=t}return c[n]}}var wi={exports:{}},Fi={exports:{}},Ai=function(t){if(t.__esModule)return t;var e=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(t).forEach((function(n){var r=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,r.get?r:{enumerable:!0,get:function(){return t[n]}})})),e}(ln);!function(t,e){var n=Ai,r=n.Buffer;function i(t,e){for(var n in t)e[n]=t[n]}function o(t,e,n){return r(t,e,n)}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?t.exports=n:(i(n,e),e.Buffer=o),o.prototype=Object.create(r.prototype),i(r,o),o.from=function(t,e,n){if("number"==typeof t)throw new TypeError("Argument must not be a number");return r(t,e,n)},o.alloc=function(t,e,n){if("number"!=typeof t)throw new TypeError("Argument must be a number");var i=r(t);return void 0!==e?"string"==typeof n?i.fill(e,n):i.fill(e):i.fill(0),i},o.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return r(t)},o.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}}(Fi,Fi.exports);var Bi=Fi.exports.Buffer,zi=Qr.crypto||Qr.msCrypto;zi&&zi.getRandomValues?wi.exports=function(t,e){if(t>4294967295)throw new RangeError("requested too many random bytes");var n=Bi.allocUnsafe(t);if(t>0)if(t>65536)for(var r=0;r<t;r+=65536)zi.getRandomValues(n.slice(r,r+65536));else zi.getRandomValues(n);return"function"==typeof e?pt.nextTick((function(){e(null,n)})):n}:wi.exports=function(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")};var Pi=wi.exports;class ji{base64URLEncode(t){return ii.encode(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}base64URLDecode(t){return ii.decode(t).toString()}hashSha256(t){return Ge.from(li((new TextEncoder).encode(t)))}generateRandomBytes(t){return Pi(t)}verifyJwt(t,e,n,r,i,o,l,a){const c={algorithms:n,audience:r,clockTolerance:l,subject:o};return(null==a||a)&&(c.issuer=i),async function(t,e,n){var r;const i=await async function(t,e,n){if(t instanceof Uint8Array&&(t=ui.decode(t)),"string"!=typeof t)throw new gi("Compact JWS must be a string or Uint8Array");const{0:r,1:i,2:o,length:l}=t.split(".");if(3!==l)throw new gi("Invalid Compact JWS");const a=await ki({payload:i,protected:r,signature:o},e,n),c={payload:a.payload,protectedHeader:a.protectedHeader};return"function"==typeof e?{...c,key:a.key}:c}(t,e,n);if((null===(r=i.protectedHeader.crit)||void 0===r?void 0:r.includes("b64"))&&!1===i.protectedHeader.b64)throw new yi("JWTs MUST NOT use unencoded payload");const o={payload:xi(i.protectedHeader,i.payload,n),protectedHeader:i.protectedHeader};return"function"==typeof e?{...o,key:i.key}:o}(t,(s={keys:[e]},Hi.prototype.getKey.bind(new Hi(s))),c).then((()=>Promise.resolve(!0))).catch((t=>{var e;return Promise.reject(new X("SPA-CRYPTO-UTILS-VJ-IV01",null!==(e=null==t?void 0:t.reason)&&void 0!==e?e:JSON.stringify(t),`${null==t?void 0:t.code} ${null==t?void 0:t.claim}`))}));var s}}const Ei=(n,r,i)=>e(void 0,void 0,void 0,(function*(){var o;const l=(t=>{switch(t){case x.LocalStorage:return new jr;case x.SessionStorage:return new Mr;case x.BrowserMemory:return new Er;default:return new Mr}})(r.storage),a=new ji,c=new K;yield c.initialize(r,l,a,n);const s=new F(c),u=c.getDataLayer(),d=yield A((()=>e(void 0,void 0,void 0,(function*(){return c.getSignOutURL()}))),null!==(o=r.storage)&&void 0!==o?o:x.SessionStorage,(t=>u.setSessionDataParameter(m,null!=t?t:""))),h=i(c,s);let p=!1;const b=Pr.getInstance();let g,y,I=!0;(null==b?void 0:b.init)&&(yield b.init(!0,(t=>e(void 0,void 0,void 0,(function*(){yield h.attachTokenToRequestConfig(t)})))));const G=()=>e(void 0,void 0,void 0,(function*(){const t=yield c.getOIDCServiceEndpoints(),n=yield u.getConfigData();h.initializeSessionManger(n,t,(()=>e(void 0,void 0,void 0,(function*(){return(yield c.getBasicUserInfo()).sessionState}))),(t=>e(void 0,void 0,void 0,(function*(){return c.getAuthorizationURL(t)}))),d)})),X=()=>e(void 0,void 0,void 0,(function*(){return yield d.receivePromptNoneResponse((t=>e(void 0,void 0,void 0,(function*(){yield u.setSessionDataParameter(m,null!=t?t:"")}))))})),V=t=>{t.preventSignOutURLUpdate&&(p=!0)},W=(t,n,r,i)=>e(void 0,void 0,void 0,(function*(){return yield h.requestAccessToken(t,n,G,void 0,r,i)})),R=(t={})=>e(void 0,void 0,void 0,(function*(){const e=yield u.getConfigData(),n=yield c.getAuthorizationURL(Object.assign({prompt:"none",state:"sign-in-silently"},t)),r=new URL(n);r.searchParams.set("response_mode","query");const i=r.toString();if(e.storage===x.BrowserMemory&&e.enablePKCE){const t=r.searchParams.get(f);H.setPKCE(v.extractPKCEKeyFromStateParam(null!=t?t:""),yield c.getPKCECode(null!=t?t:""))}return i}));return{disableHttpHandler:()=>(h.disableHttpHandler(b),I=!1,!0),enableHttpHandler:()=>(h.enableHttpHandler(b),I=!0,!0),getAccessToken:()=>e(void 0,void 0,void 0,(function*(){return h.getAccessToken()})),getBasicUserInfo:()=>e(void 0,void 0,void 0,(function*(){return h.getBasicUserInfo()})),getConfigData:()=>e(void 0,void 0,void 0,(function*(){return yield u.getConfigData()})),getCryptoHelper:()=>e(void 0,void 0,void 0,(function*(){return h.getCryptoHelper()})),getDataLayer:()=>e(void 0,void 0,void 0,(function*(){return h.getDataLayer()})),getDecodedIDToken:()=>e(void 0,void 0,void 0,(function*(){return h.getDecodedIDToken()})),getHttpClient:()=>b,getIDToken:()=>e(void 0,void 0,void 0,(function*(){return h.getIDToken()})),getOIDCServiceEndpoints:()=>e(void 0,void 0,void 0,(function*(){return h.getOIDCServiceEndpoints()})),httpRequest:t=>e(void 0,void 0,void 0,(function*(){return yield h.httpRequest(b,t,I,g,y)})),httpRequestAll:t=>e(void 0,void 0,void 0,(function*(){return yield h.httpRequestAll(t,b,I,g,y)})),isAuthenticated:()=>e(void 0,void 0,void 0,(function*(){return h.isAuthenticated()})),isSessionActive:()=>e(void 0,void 0,void 0,(function*(){return"true"===(yield u.getSessionStatus())})),refreshAccessToken:()=>e(void 0,void 0,void 0,(function*(){try{return yield h.refreshAccessToken(V)}catch(t){return Promise.reject(t)}})),requestCustomGrant:t=>e(void 0,void 0,void 0,(function*(){return yield h.requestCustomGrant(t,V)})),revokeAccessToken:()=>e(void 0,void 0,void 0,(function*(){const t=yield s.getRefreshTimeoutTimer();return c.revokeAccessToken().then((()=>(d.reset(),s.clearRefreshTokenTimeout(t),Promise.resolve(!0)))).catch((t=>Promise.reject(t)))})),setHttpRequestErrorCallback:t=>{g=t},setHttpRequestFinishCallback:t=>{(null==b?void 0:b.setHttpRequestFinishCallback)&&b.setHttpRequestFinishCallback(t)},setHttpRequestStartCallback:t=>{(null==b?void 0:b.setHttpRequestStartCallback)&&b.setHttpRequestStartCallback(t)},setHttpRequestSuccessCallback:t=>{(null==b?void 0:b.setHttpRequestSuccessCallback)&&b.setHttpRequestSuccessCallback(t)},signIn:(n,i,o,l,a)=>e(void 0,void 0,void 0,(function*(){var s,d,p;const b=yield h.handleSignIn(X,G,void 0);if(b)return b;{let h,b,g,y={params:{}};if((null==r?void 0:r.responseMode)===t.formPost&&i?(h=i,b=null!=o?o:"",g=null!=l?l:""):(h=null!==(s=new URL(window.location.href).searchParams.get(Z))&&void 0!==s?s:"",b=null!==(d=new URL(window.location.href).searchParams.get(m))&&void 0!==d?d:"",g=null!==(p=new URL(window.location.href).searchParams.get(f))&&void 0!==p?p:"",H.removeAuthorizationCode()),h&&g){e(void 0,void 0,void 0,(function*(){yield u.setSessionStatus("true")}));const t=yield u.getTemporaryDataParameter("token_request_config");return t&&"string"==typeof t&&(y=JSON.parse(t)),W(h,b,g,y)}return c.getAuthorizationURL(n).then((t=>e(void 0,void 0,void 0,(function*(){if(r.storage===x.BrowserMemory&&r.enablePKCE){const t=v.extractPKCEKeyFromStateParam(g);H.setPKCE(t,yield c.getPKCECode(g))}return a&&u.setTemporaryDataParameter("token_request_config",JSON.stringify(a)),location.href=t,yield H.waitTillPageRedirect(),Promise.resolve({allowedScopes:"",displayName:"",email:"",sessionState:"",sub:"",tenantDomain:"",username:""})}))))}})),signOut:()=>e(void 0,void 0,void 0,(function*(){return(yield c.isAuthenticated())&&!p?location.href=yield c.getSignOutURL():location.href=H.getSignOutURL(r.clientID,n),s.clearRefreshTokenTimeout(),yield u.removeOIDCProviderMetaData(),yield u.removeTemporaryData(),yield u.removeSessionData(),yield u.removeSessionStatus(),yield H.waitTillPageRedirect(),!0})),trySignInSilently:(t,n)=>e(void 0,void 0,void 0,(function*(){return yield h.trySignInSilently(R,W,d,t,n)})),updateConfig:t=>e(void 0,void 0,void 0,(function*(){const e=yield u.getConfigData(),n=!(e&&e.endpoints&&e.endpoints.checkSessionIframe&&t&&t.endpoints&&t.endpoints.checkSessionIframe&&e.endpoints.checkSessionIframe===t.endpoints.checkSessionIframe),r=Object.assign(Object.assign({},e),t);yield c.updateConfig(r),r.enableOIDCSessionManagement&&n&&(d.reset(),G())}))}})),Mi=(n,r,i,o)=>e(void 0,void 0,void 0,(function*(){var l;let a;const c=null!==(l=null==r?void 0:r.requestTimeout)&&void 0!==l?l:6e4;let s=!0,u=!1;const d=(t=>{switch(t){case x.LocalStorage:return new jr;case x.SessionStorage:return new Mr;case x.BrowserMemory:return new Er;default:return new Mr}})(r.storage),h=new ji,p=new K;yield p.initialize(r,d,h,n);const b=new F(p),g=yield A((()=>e(void 0,void 0,void 0,(function*(){const t={type:"sign-out"};try{return yield G(t)}catch(t){return H.getSignOutURL(r.clientID,n)}}))),r.storage,(t=>V(t))),y=o(p,b),I=new i,G=t=>{const e=new MessageChannel;return I.postMessage(t,[e.port2]),new Promise(((t,n)=>{const r=setTimeout((()=>{n(new X("SPA-WEB_WORKER_CLIENT-COM-TO01","Operation timed out.","No response was received from the web worker for "+c/1e3+" since dispatching the request"))}),c);return e.port1.onmessage=({data:i})=>{if(clearTimeout(r),e.port1.close(),e.port2.close(),null==i?void 0:i.success){const e=(null==i?void 0:i.data)?JSON.parse(null==i?void 0:i.data):null;(null==i?void 0:i.blob)&&(e.data=null==i?void 0:i.blob),t(e)}else n(i.error?JSON.parse(i.error):null)}}))},V=t=>G({data:t,type:"set_session_state"}),W=()=>G({type:"start_auto_refresh_token"}),R=()=>e(void 0,void 0,void 0,(function*(){const t=yield J(),n=yield T();y.initializeSessionManger(n,t,(()=>e(void 0,void 0,void 0,(function*(){return(yield L()).sessionState}))),(t=>e(void 0,void 0,void 0,(function*(){return(yield C(t)).authorizationURL}))),g)})),S=(t={})=>e(void 0,void 0,void 0,(function*(){var e;const n=yield T(),r={data:Object.assign({prompt:"none",state:"sign-in-silently"},t),type:"get_auth_url"},i=yield G(r),o=v.extractPKCEKeyFromStateParam(null!==(e=new URL(i.authorizationURL).searchParams.get(f))&&void 0!==e?e:"");i.pkce&&n.enablePKCE&&H.setPKCE(o,i.pkce);const l=i.authorizationURL,a=new URL(l);return a.searchParams.set("response_mode","query"),a.toString()})),C=t=>e(void 0,void 0,void 0,(function*(){const n=yield T();return G({data:t,type:"get_auth_url"}).then((t=>e(void 0,void 0,void 0,(function*(){var e;if(t.pkce&&n.enablePKCE){const n=v.extractPKCEKeyFromStateParam(null!==(e=new URL(t.authorizationURL).searchParams.get(f))&&void 0!==e?e:"");H.setPKCE(n,t.pkce)}return Promise.resolve(t)}))))})),Y=(t,r,i,o)=>e(void 0,void 0,void 0,(function*(){const e=yield T(),l=v.extractPKCEKeyFromStateParam(i),a={data:{code:t,pkce:e.enablePKCE?H.getPKCE(l):void 0,sessionState:r,state:i,tokenRequestConfig:o},type:"request_get_token"};return e.enablePKCE&&H.removePKCE(l),G(a).then((t=>G({type:"get_sign_out_url"}).then((r=>(H.setSignOutURL(r,e.clientID,n),e.enableOIDCSessionManagement&&R(),W(),Promise.resolve(t)))).catch((t=>Promise.reject(t))))).catch((t=>Promise.reject(t)))})),N=()=>e(void 0,void 0,void 0,(function*(){return yield g.receivePromptNoneResponse((t=>e(void 0,void 0,void 0,(function*(){return V(t)}))))})),k=()=>e(void 0,void 0,void 0,(function*(){if(yield U())return yield W(),r.enableOIDCSessionManagement&&R(),L()})),J=()=>G({type:"get-oidc-service-endpoints"}).then((t=>Promise.resolve(t))).catch((t=>Promise.reject(t))),T=()=>G({type:"get_config_data"}).then((t=>Promise.resolve(t))).catch((t=>Promise.reject(t))),L=()=>G({type:"get-basic-user-info"}).then((t=>Promise.resolve(t))).catch((t=>Promise.reject(t))),U=()=>G({type:"is_authenticated"}).then((t=>Promise.resolve(t))).catch((t=>Promise.reject(t)));return{disableHttpHandler:()=>G({type:"disable_http_handler"}).then((()=>(s=!1,Promise.resolve(!0)))).catch((t=>Promise.reject(t))),enableHttpHandler:()=>G({type:"enable_http_handler"}).then((()=>(s=!0,Promise.resolve(!0)))).catch((t=>Promise.reject(t))),getBasicUserInfo:L,getConfigData:T,getCryptoHelper:()=>G({type:"get-crypto-helper"}).then((t=>Promise.resolve(t))).catch((t=>Promise.reject(t))),getDecodedIDPIDToken:()=>G({type:"get-decoded-idp-id-token"}).then((t=>Promise.resolve(t))).catch((t=>Promise.reject(t))),getDecodedIDToken:()=>G({type:"get-decoded-id-token"}).then((t=>Promise.resolve(t))).catch((t=>Promise.reject(t))),getIDToken:()=>G({type:"get_id_token"}).then((t=>Promise.resolve(t))).catch((t=>Promise.reject(t))),getOIDCServiceEndpoints:J,httpRequest:t=>((null==t?void 0:t.data)&&(null==t?void 0:t.data)instanceof FormData&&(t.data=Object.assign(Object.assign({},Object.fromEntries(null==t?void 0:t.data.entries())),{formData:!0})),G({data:t,type:"http-request"}).then((t=>Promise.resolve(t))).catch((t=>e(void 0,void 0,void 0,(function*(){return s&&("function"==typeof a.requestErrorCallback&&(yield a.requestErrorCallback(t)),"function"==typeof a.requestFinishCallback&&a.requestFinishCallback()),Promise.reject(t)}))))),httpRequestAll:t=>G({data:t,type:"http-request-all"}).then((t=>Promise.resolve(t))).catch((t=>e(void 0,void 0,void 0,(function*(){return s&&("function"==typeof a.requestErrorCallback&&(yield a.requestErrorCallback(t)),"function"==typeof a.requestFinishCallback&&a.requestFinishCallback()),Promise.reject(t)})))),httpStreamRequest:t=>((null==t?void 0:t.data)&&(null==t?void 0:t.data)instanceof FormData&&(t.data=Object.assign(Object.assign({},Object.fromEntries(null==t?void 0:t.data.entries())),{formData:!0})),(t=>{const e=new MessageChannel;return I.postMessage(t,[e.port2]),new Promise(((t,n)=>{const r=setTimeout((()=>{n(new X("SPA-WEB_WORKER_CLIENT-COMS-TO01","Stream operation timed out.","No response was received from the web worker for "+c/1e3+" since dispatching the stream request"))}),c);return e.port1.onmessage=({data:i})=>{clearTimeout(r),e.port1.close(),e.port2.close(),(null==i?void 0:i.success)?t(null==i?void 0:i.data):n(i.error?JSON.parse(i.error):null)}}))})({data:t,type:"http-stream-request"})),initialize:()=>(a||(a={requestErrorCallback:()=>Promise.resolve(),requestFinishCallback:()=>null,requestStartCallback:()=>null,requestSuccessCallback:()=>null}),I.onmessage=({data:t})=>{switch(t.type){case"request-finish":(null==a?void 0:a.requestFinishCallback)&&(null==a||a.requestFinishCallback());break;case"request-start":(null==a?void 0:a.requestStartCallback)&&(null==a||a.requestStartCallback());break;case"request-success":(null==a?void 0:a.requestSuccessCallback)&&(null==a||a.requestSuccessCallback(t.data?JSON.parse(t.data):null))}},G({data:r,type:"init"}).then((()=>Promise.resolve(!0))).catch((t=>Promise.reject(t)))),isAuthenticated:U,refreshAccessToken:()=>G({type:"refresh_access-token"}),requestCustomGrant:t=>G({data:t,type:"request-custom-grant"}).then((e=>(t.preventSignOutURLUpdate&&(u=!0),Promise.resolve(e)))).catch((t=>Promise.reject(t))),revokeAccessToken:()=>G({type:"revoke-access-token"}).then((t=>(g.reset(),Promise.resolve(t)))).catch((t=>Promise.reject(t))),setHttpRequestErrorCallback:t=>{t&&"function"==typeof t&&(a.requestErrorCallback=t)},setHttpRequestFinishCallback:t=>{t&&"function"==typeof t&&(a.requestFinishCallback=t)},setHttpRequestStartCallback:t=>{t&&"function"==typeof t&&(a.requestStartCallback=t)},setHttpRequestSuccessCallback:t=>{t&&"function"==typeof t&&(a.requestSuccessCallback=t)},signIn:(n,i,o,l,a)=>e(void 0,void 0,void 0,(function*(){var c,s,u;const d=yield y.handleSignIn(N,R,k);if(d)return d;{let d,h,p;return(null==r?void 0:r.responseMode)===t.formPost&&i?(d=i,h=null!=o?o:"",p=null!=l?l:""):(d=null!==(c=new URL(window.location.href).searchParams.get(Z))&&void 0!==c?c:"",h=null!==(s=new URL(window.location.href).searchParams.get(m))&&void 0!==s?s:"",p=null!==(u=new URL(window.location.href).searchParams.get(f))&&void 0!==u?u:"",H.removeAuthorizationCode()),d&&p?Y(d,h,p,a):C(n).then((t=>e(void 0,void 0,void 0,(function*(){return location.href=t.authorizationURL,yield H.waitTillPageRedirect(),Promise.resolve({allowedScopes:"",displayName:"",email:"",sessionState:"",sub:"",tenantDomain:"",username:""})})))).catch((t=>Promise.reject(t)))}})),signOut:()=>new Promise(((t,i)=>{if(!u)return G({type:"sign-out"}).then((n=>e(void 0,void 0,void 0,(function*(){return window.location.href=n,yield H.waitTillPageRedirect(),t(!0)})))).catch((t=>i(t)));window.location.href=H.getSignOutURL(r.clientID,n),H.waitTillPageRedirect().then((()=>Promise.resolve(!0)))})),trySignInSilently:(t,n)=>e(void 0,void 0,void 0,(function*(){return yield y.trySignInSilently(S,Y,g,t,n)})),updateConfig:t=>e(void 0,void 0,void 0,(function*(){const e=yield T(),n=!(e&&e.endpoints&&e.endpoints.checkSessionIframe&&t&&t.endpoints&&t.endpoints.checkSessionIframe&&e.endpoints.checkSessionIframe===t.endpoints.checkSessionIframe),r=Object.assign(Object.assign({},e),t),i={data:r,type:"update_config"};yield G(i),r.enableOIDCSessionManagement&&n&&(g.reset(),R())}))}})),Qi={autoLogoutOnTokenRefreshError:!0,checkSessionInterval:3,clientHost:origin,enableOIDCSessionManagement:!1,periodicTokenRefresh:!1,sessionRefreshInterval:300,storage:x.SessionStorage};class Oi{constructor(t){this._authHelper=w,this._worker=k,this._initialized=!1,this._startedInitialize=!1,this._onSignInCallback=()=>null,this._onSignOutCallback=()=>null,this._onSignOutFailedCallback=()=>null,this._onEndUserSession=()=>null,this._onInitialize=()=>null,this._onCustomGrant=new Map,this._instanceID=t}instantiateAuthHelper(t){this._authHelper=t||w}instantiateWorker(t){this._worker=t||k}_isInitialized(){return e(this,void 0,void 0,(function*(){if(!this._startedInitialize)return!1;let t=0;for(;!this._initialized;)1e4===t&&console.warn("It is taking longer than usual for the object to be initialized"),yield new Promise((t=>setTimeout(t,1))),t++;return!0}))}_validateMethod(t=!0){return e(this,void 0,void 0,(function*(){return(yield this._isInitialized())?!(t&&!(yield this.isAuthenticated()))||Promise.reject(new X("SPA-AUTH_CLIENT-VM-IV02","The user is not authenticated.","The user must be authenticated first.")):Promise.reject(new X("SPA-AUTH_CLIENT-VM-NF01","The SDK is not initialized.","The SDK must be initialized first."))}))}static getInstance(t){var e,n;return t&&(null===(e=this._instances)||void 0===e?void 0:e.get(t))?this._instances.get(t):!t&&(null===(n=this._instances)||void 0===n?void 0:n.get(0))?this._instances.get(0):t?(this._instances.set(t,new Oi(t)),this._instances.get(t)):(this._instances.set(0,new Oi(0)),this._instances.get(0))}initialize(t,n,r){var i,o,l,a;return e(this,void 0,void 0,(function*(){this._storage=null!==(i=t.storage)&&void 0!==i?i:x.SessionStorage,this._initialized=!1,this._startedInitialize=!0,n&&this.instantiateAuthHelper(n),r&&this.instantiateWorker(r);const e=yield null===(o=this._client)||void 0===o?void 0:o.getConfigData();if(this._storage!==x.WebWorker){const n=t,r=Object.assign({},Qi),i=Object.assign(Object.assign({},r),n);return this._client&&(!this._client||e&&0!==(null===(l=Object.keys(e))||void 0===l?void 0:l.length))||(this._client=yield Ei(this._instanceID,i,((t,e)=>new this._authHelper(t,e)))),this._initialized=!0,this._onInitialize&&this._onInitialize(!0),i.autoLogoutOnTokenRefreshError?(window.addEventListener("message",(t=>{var e;"refresh-access-token-error"===(null===(e=null==t?void 0:t.data)||void 0===e?void 0:e.type)&&this.signOut()})),Promise.resolve(!0)):Promise.resolve(!0)}if(!this._client||this._client&&(!e||0===(null===(a=Object.keys(e))||void 0===a?void 0:a.length))){const e=t;return this._client=yield Mi(this._instanceID,Object.assign(Object.assign({},Qi),e),this._worker,((t,e)=>new this._authHelper(t,e))),this._client.initialize().then((()=>(this._onInitialize&&this._onInitialize(!0),this._initialized=!0,Promise.resolve(!0)))).catch((t=>Promise.reject(t)))}return Promise.resolve(!0)}))}getBasicUserInfo(){var t;return e(this,void 0,void 0,(function*(){return yield this._validateMethod(),null===(t=this._client)||void 0===t?void 0:t.getBasicUserInfo()}))}signIn(t,n,r,i,o){var l;return e(this,void 0,void 0,(function*(){if(yield this._isInitialized(),H.canContinueSignIn(Boolean(null==t?void 0:t.callOnlyOnRedirect),n))return null==t||delete t.callOnlyOnRedirect,null===(l=this._client)||void 0===l?void 0:l.signIn(t,n,r,i,o).then((t=>(this._onSignInCallback&&(t.allowedScopes||t.displayName||t.email||t.username)&&this._onSignInCallback(t),t)))}))}trySignInSilently(t,n){var r;return e(this,void 0,void 0,(function*(){if(yield this._isInitialized(),!H.wasSignInCalled())return null===(r=this._client)||void 0===r?void 0:r.trySignInSilently(t,n).then((t=>{if(this._onSignInCallback&&t){const e=t;(e.allowedScopes||e.displayName||e.email||e.username)&&this._onSignInCallback(e)}return t}))}))}signOut(){var t,n;return e(this,void 0,void 0,(function*(){return yield this._validateMethod(!1),null!==(n=yield null===(t=this._client)||void 0===t?void 0:t.signOut())&&void 0!==n&&n}))}httpRequest(t){var n;return e(this,void 0,void 0,(function*(){return yield this._validateMethod(!1),null===(n=this._client)||void 0===n?void 0:n.httpRequest(t)}))}httpRequestAll(t){var n;return e(this,void 0,void 0,(function*(){return yield this._validateMethod(!1),null===(n=this._client)||void 0===n?void 0:n.httpRequestAll(t)}))}httpStreamRequest(t){return e(this,void 0,void 0,(function*(){if(yield this._validateMethod(!1),this._storage!==x.WebWorker)throw new X("SPA-AUTH_CLIENT-HSR-IV01","Streaming is only supported with WebWorker storage.","The httpStreamRequest method requires storage type to be set to webWorker.");return this._client.httpStreamRequest(t)}))}requestCustomGrant(t){var n,r;return e(this,void 0,void 0,(function*(){if(t.signInRequired,yield this._validateMethod(),!t.id)return Promise.reject(new X("SPA-AUTH_CLIENT-RCG-NF01","The custom grant request id not found.","The id attribute of the custom grant config object passed as an argument should have a value."));const e=yield null===(n=this._client)||void 0===n?void 0:n.requestCustomGrant(t),i=this._onCustomGrant.get(t.id);return i&&i(null===(r=this._onCustomGrant)||void 0===r?void 0:r.get(t.id)),e}))}revokeAccessToken(){var t;return e(this,void 0,void 0,(function*(){yield this._validateMethod();const e=yield null===(t=this._client)||void 0===t?void 0:t.revokeAccessToken();return this._onEndUserSession&&(yield this._onEndUserSession(e)),e}))}getOIDCServiceEndpoints(){var t;return e(this,void 0,void 0,(function*(){return yield this._isInitialized(),null===(t=this._client)||void 0===t?void 0:t.getOIDCServiceEndpoints()}))}getHttpClient(){if(this._client){if(this._storage!==x.WebWorker)return this._client.getHttpClient();throw new X("SPA-AUTH_CLIENT-GHC-IV01","Http client cannot be returned.","The http client cannot be returned when the storage type is set to webWorker.")}throw new X("SPA-AUTH_CLIENT-GHC-NF02","The SDK is not initialized.","The SDK has not been initialized yet. Initialize the SDK using the initialize method before calling this method.")}getDecodedIDToken(){var t;return e(this,void 0,void 0,(function*(){return yield this._validateMethod(),null===(t=this._client)||void 0===t?void 0:t.getDecodedIDToken()}))}getCryptoHelper(){var t;return e(this,void 0,void 0,(function*(){return yield this._validateMethod(),null===(t=this._client)||void 0===t?void 0:t.getCryptoHelper()}))}getIDToken(){var t;return e(this,void 0,void 0,(function*(){return yield this._validateMethod(),null===(t=this._client)||void 0===t?void 0:t.getIDToken()}))}getAccessToken(){return e(this,void 0,void 0,(function*(){return yield this._validateMethod(),this._storage&&[(x.WebWorker,x.BrowserMemory)].includes(this._storage)?Promise.reject(new X("SPA-AUTH_CLIENT-GAT-IV01","The access token cannot be returned.","The access token cannot be returned when the storage type is set to webWorker or browserMemory.")):this._client.getAccessToken()}))}getIDPAccessToken(){return e(this,void 0,void 0,(function*(){return yield this._validateMethod(),this._storage&&[(x.WebWorker,x.BrowserMemory)].includes(this._storage)?Promise.reject(new X("SPA-AUTH_CLIENT-GIAT-IV01","The access token cannot be returned.","The access token cannot be returned when the storage type is set to webWorker or browserMemory.")):this._client.getAccessToken()}))}getDataLayer(){return e(this,void 0,void 0,(function*(){return yield this._validateMethod(),this._storage&&[(x.WebWorker,x.BrowserMemory)].includes(this._storage)?Promise.reject(new X("SPA-AUTH_CLIENT-GDL-IV01","The data layer cannot be returned.","The data layer cannot be returned when the storage type is set to webWorker or browserMemory.")):this._client.getDataLayer()}))}getConfigData(){var t;return e(this,void 0,void 0,(function*(){return null===(t=this._client)||void 0===t?void 0:t.getConfigData()}))}refreshAccessToken(){var t;return e(this,void 0,void 0,(function*(){return yield this._validateMethod(!1),null===(t=this._client)||void 0===t?void 0:t.refreshAccessToken()}))}isAuthenticated(){var t;return e(this,void 0,void 0,(function*(){return yield this._isInitialized(),null===(t=this._client)||void 0===t?void 0:t.isAuthenticated()}))}isSessionActive(){return e(this,void 0,void 0,(function*(){if(yield this._isInitialized(),this._storage&&[(x.WebWorker,x.BrowserMemory)].includes(this._storage))return Promise.reject(new X("SPA-AUTH_CLIENT-ISA-IV01","The active session cannot be returned.","The active session cannot be returned when the storage type is set to webWorker or browserMemory."));const t=this._client;return null==t?void 0:t.isSessionActive()}))}on(t,n,r){var i,o,l,a;return e(this,void 0,void 0,(function*(){if(yield this._isInitialized(),!n||"function"!=typeof n)throw new X("SPA-AUTH_CLIENT-ON-IV02","Invalid callback function.","The provided callback function is invalid.");switch(t){case T.SignIn:this._onSignInCallback=n;break;case T.SignOut:this._onSignOutCallback=n,(yield H.isSignOutSuccessful())&&this._onSignOutCallback();break;case T.RevokeAccessToken:this._onEndUserSession=n;break;case T.Initialize:this._onInitialize=n;break;case T.HttpRequestError:null===(i=this._client)||void 0===i||i.setHttpRequestErrorCallback(n);break;case T.HttpRequestFinish:null===(o=this._client)||void 0===o||o.setHttpRequestFinishCallback(n);break;case T.HttpRequestStart:null===(l=this._client)||void 0===l||l.setHttpRequestStartCallback(n);break;case T.HttpRequestSuccess:null===(a=this._client)||void 0===a||a.setHttpRequestSuccessCallback(n);break;case T.CustomGrant:r&&this._onCustomGrant.set(r,n);break;case T.SignOutFailed:{this._onSignOutFailedCallback=n;const t=H.didSignOutFail();t&&this._onSignOutFailedCallback(t);break}default:throw new X("SPA-AUTH_CLIENT-ON-IV01","Invalid hook.","The provided hook is invalid.")}}))}enableHttpHandler(){var t;return e(this,void 0,void 0,(function*(){return yield this._isInitialized(),null===(t=this._client)||void 0===t?void 0:t.enableHttpHandler()}))}disableHttpHandler(){var t;return e(this,void 0,void 0,(function*(){return yield this._isInitialized(),null===(t=this._client)||void 0===t?void 0:t.disableHttpHandler()}))}updateConfig(t){return e(this,void 0,void 0,(function*(){if(yield this._isInitialized(),this._storage===x.WebWorker){const e=this._client;yield e.updateConfig(t)}else{const e=this._client;yield e.updateConfig(t)}}))}}Oi._instances=new Map;class Di extends Worker{constructor(){super(...arguments),this.onmessage=()=>null}}const _i=t=>{const n=self;let r;n.onmessage=({data:n,ports:a})=>e(void 0,void 0,void 0,(function*(){var c,s,u,d,h,p;const b=a[0];if("init"===n.type||r)switch(n.type){case"init":try{const a=Object.assign({},n.data);r=yield((t,n)=>e(void 0,void 0,void 0,(function*(){const r=new Er,i=new ji,o=new K;yield o.initialize(t,r,i);const l=new F(o),a=n(o,l),c=o.getDataLayer(),s=Pr.getInstance();return(null==s?void 0:s.init)&&(yield s.init(!0,(t=>e(void 0,void 0,void 0,(function*(){yield a.attachTokenToRequestConfig(t)}))))),{disableHttpHandler:()=>{a.disableHttpHandler(s)},enableHttpHandler:()=>{a.enableHttpHandler(s)},getAccessToken:()=>a.getAccessToken(),getAuthorizationURL:t=>e(void 0,void 0,void 0,(function*(){return o.getAuthorizationURL(t).then((t=>e(void 0,void 0,void 0,(function*(){var e;const n=null!==(e=new URL(t).searchParams.get(f))&&void 0!==e?e:"",r=yield o.getPKCECode(n);return{authorizationURL:t,pkce:r}})))).catch((t=>Promise.reject(t)))})),getBasicUserInfo:()=>e(void 0,void 0,void 0,(function*(){return a.getBasicUserInfo()})),getConfigData:()=>e(void 0,void 0,void 0,(function*(){return c.getConfigData()})),getCryptoHelper:()=>e(void 0,void 0,void 0,(function*(){return a.getCryptoHelper()})),getDecodedIDPIDToken:()=>e(void 0,void 0,void 0,(function*(){return a.getDecodedIDPIDToken()})),getDecodedIDToken:()=>e(void 0,void 0,void 0,(function*(){return a.getDecodedIDToken()})),getIDToken:()=>e(void 0,void 0,void 0,(function*(){return a.getIDToken()})),getOIDCServiceEndpoints:()=>e(void 0,void 0,void 0,(function*(){return a.getOIDCServiceEndpoints()})),getSignOutURL:()=>e(void 0,void 0,void 0,(function*(){return yield o.getSignOutURL()})),httpRequest:t=>e(void 0,void 0,void 0,(function*(){return yield a.httpRequest(s,t)})),httpRequestAll:t=>e(void 0,void 0,void 0,(function*(){return yield a.httpRequestAll(t,s)})),isAuthenticated:()=>a.isAuthenticated(),refreshAccessToken:()=>e(void 0,void 0,void 0,(function*(){try{return yield a.refreshAccessToken()}catch(t){return Promise.reject(t)}})),requestAccessToken:(t,n,r,i)=>e(void 0,void 0,void 0,(function*(){return yield a.requestAccessToken(t,n,void 0,r,i)})),requestCustomGrant:t=>e(void 0,void 0,void 0,(function*(){return yield a.requestCustomGrant(t)})),revokeAccessToken:()=>e(void 0,void 0,void 0,(function*(){const t=yield l.getRefreshTimeoutTimer();return o.revokeAccessToken().then((()=>(l.clearRefreshTokenTimeout(t),Promise.resolve(!0)))).catch((t=>Promise.reject(t)))})),setHttpRequestFinishCallback:t=>{(null==s?void 0:s.setHttpRequestFinishCallback)&&s.setHttpRequestFinishCallback(t)},setHttpRequestStartCallback:t=>{(null==s?void 0:s.setHttpRequestStartCallback)&&s.setHttpRequestStartCallback(t)},setHttpRequestSuccessCallback:t=>{(null==s?void 0:s.setHttpRequestSuccessCallback)&&s.setHttpRequestSuccessCallback(t)},setSessionState:t=>e(void 0,void 0,void 0,(function*(){yield c.setSessionDataParameter(m,t)})),signOut:()=>e(void 0,void 0,void 0,(function*(){return l.clearRefreshTokenTimeout(),yield o.getSignOutURL()})),startAutoRefreshToken:()=>e(void 0,void 0,void 0,(function*(){l.clearRefreshTokenTimeout(),l.refreshAccessTokenAutomatically(a)})),updateConfig:t=>e(void 0,void 0,void 0,(function*(){yield o.updateConfig(t)}))}})))(a,t),r.setHttpRequestFinishCallback(l),r.setHttpRequestStartCallback(i),r.setHttpRequestSuccessCallback(o),b.postMessage(U.generateSuccessMessage())}catch(t){b.postMessage(U.generateFailureMessage(t))}break;case"get_auth_url":r.getAuthorizationURL(null==n?void 0:n.data).then((t=>{b.postMessage(U.generateSuccessMessage(t))})).catch((t=>{b.postMessage(U.generateFailureMessage(t))}));break;case"request_get_token":r.requestAccessToken(null===(c=null==n?void 0:n.data)||void 0===c?void 0:c.code,null===(s=null==n?void 0:n.data)||void 0===s?void 0:s.sessionState,null===(u=null==n?void 0:n.data)||void 0===u?void 0:u.pkce,null===(d=null==n?void 0:n.data)||void 0===d?void 0:d.state).then((t=>{b.postMessage(U.generateSuccessMessage(t))})).catch((t=>{b.postMessage(U.generateFailureMessage(t))}));break;case"http-request":{const t=n.data,e=null==t?void 0:t.data;if(!0===(null===(p=null===(h=n.data)||void 0===h?void 0:h.data)||void 0===p?void 0:p.formData)){const n=new FormData;for(const t in e)"formData"!==t&&n.append(t,e[t]);t.data=n}r.httpRequest(t).then((t=>{b.postMessage(U.generateSuccessMessage(t))})).catch((t=>{b.postMessage(U.generateFailureMessage(t))}));break}case"http-stream-request":{const t=n.data;t.adapter="fetch",t.responseType="stream",r.httpRequest(t).then((t=>{var e;const n=null===(e=t)||void 0===e?void 0:e.data;n instanceof ReadableStream?b.postMessage({data:n,success:!0},[n]):b.postMessage(U.generateSuccessMessage(t))})).catch((t=>{b.postMessage(U.generateFailureMessage(t))}));break}case"http-request-all":r.httpRequestAll(n.data).then((t=>{b.postMessage(U.generateSuccessMessage(t))})).catch((t=>{b.postMessage(U.generateFailureMessage(t))}));break;case"sign-out":try{b.postMessage(U.generateSuccessMessage(yield r.signOut()))}catch(t){b.postMessage(U.generateFailureMessage(t))}break;case"request-custom-grant":r.requestCustomGrant(n.data).then((t=>{b.postMessage(U.generateSuccessMessage(t))})).catch((t=>{b.postMessage(U.generateFailureMessage(t))}));break;case"revoke-access-token":r.revokeAccessToken().then((t=>{b.postMessage(U.generateSuccessMessage(t))})).catch((t=>{b.postMessage(U.generateFailureMessage(t))}));break;case"get-oidc-service-endpoints":try{b.postMessage(U.generateSuccessMessage(yield r.getOIDCServiceEndpoints()))}catch(t){b.postMessage(U.generateFailureMessage(t))}break;case"get-basic-user-info":try{b.postMessage(U.generateSuccessMessage(yield r.getBasicUserInfo()))}catch(t){b.postMessage(U.generateFailureMessage(t))}break;case"get-decoded-id-token":try{b.postMessage(U.generateSuccessMessage(yield r.getDecodedIDToken()))}catch(t){b.postMessage(U.generateFailureMessage(t))}break;case"get-crypto-helper":try{b.postMessage(U.generateSuccessMessage(yield r.getCryptoHelper()))}catch(t){b.postMessage(U.generateFailureMessage(t))}break;case"get_id_token":try{b.postMessage(U.generateSuccessMessage(yield r.getIDToken()))}catch(t){b.postMessage(U.generateFailureMessage(t))}break;case"enable_http_handler":r.enableHttpHandler(),b.postMessage(U.generateSuccessMessage());break;case"disable_http_handler":r.disableHttpHandler(),b.postMessage(U.generateSuccessMessage());break;case"is_authenticated":try{b.postMessage(U.generateSuccessMessage(yield r.isAuthenticated()))}catch(t){b.postMessage(U.generateFailureMessage(t))}break;case"get_sign_out_url":try{b.postMessage(U.generateSuccessMessage(yield r.getSignOutURL()))}catch(t){b.postMessage(U.generateFailureMessage(t))}break;case"refresh_access-token":try{b.postMessage(U.generateSuccessMessage(yield r.refreshAccessToken()))}catch(t){b.postMessage(U.generateFailureMessage(t))}break;case"start_auto_refresh_token":try{b.postMessage(U.generateSuccessMessage(r.startAutoRefreshToken()))}catch(t){b.postMessage(U.generateFailureMessage(t))}break;case"set_session_state":try{b.postMessage(U.generateSuccessMessage(yield r.setSessionState(null==n?void 0:n.data)))}catch(t){b.postMessage(U.generateFailureMessage(t))}break;case"update_config":try{b.postMessage(U.generateSuccessMessage(yield r.updateConfig(null==n?void 0:n.data)))}catch(t){b.postMessage(U.generateFailureMessage(t))}break;case"get_config_data":try{b.postMessage(U.generateSuccessMessage(yield r.getConfigData()))}catch(t){b.postMessage(U.generateFailureMessage(t))}break;default:null==b||b.postMessage(U.generateFailureMessage(new X("SPA-CLIENT_WORKER-ONMSG-IV02","The message type is invalid.",`The message type provided, ${n.type}, is invalid.`)))}else b.postMessage(U.generateFailureMessage(new X("SPA-CLIENT_WORKER-ONMSG-NF01","The web worker has not been initialized yet.","The initialize method needs to be called before the specified operation can be carried out.")))}));const i=()=>{n.postMessage({type:"request-start"})},o=t=>{var e;(null===(e=t)||void 0===e?void 0:e.data)instanceof ReadableStream||n.postMessage({data:JSON.stringify(null!=t?t:""),type:"request-success"})},l=()=>{n.postMessage({type:"request-finish"})}};var qi=r(48947),$i=r.n(qi);function to(t){return to="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},to(t)}function eo(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function no(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?eo(Object(n),!0).forEach((function(e){ao(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):eo(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function ro(){ro=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,r=Object.defineProperty||function(t,e,n){t[e]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",l=i.asyncIterator||"@@asyncIterator",a=i.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,n){return t[e]=n}}function s(t,e,n,i){var o=e&&e.prototype instanceof h?e:h,l=Object.create(o.prototype),a=new W(i||[]);return r(l,"_invoke",{value:G(t,n,a)}),l}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=s;var d={};function h(){}function p(){}function b(){}var Z={};c(Z,o,(function(){return this}));var m=Object.getPrototypeOf,g=m&&m(m(R([])));g&&g!==e&&n.call(g,o)&&(Z=g);var y=b.prototype=h.prototype=Object.create(Z);function f(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function I(t,e){function i(r,o,l,a){var c=u(t[r],t,o);if("throw"!==c.type){var s=c.arg,d=s.value;return d&&"object"==to(d)&&n.call(d,"__await")?e.resolve(d.__await).then((function(t){i("next",t,l,a)}),(function(t){i("throw",t,l,a)})):e.resolve(d).then((function(t){s.value=t,l(s)}),(function(t){return i("throw",t,l,a)}))}a(c.arg)}var o;r(this,"_invoke",{value:function(t,n){function r(){return new e((function(e,r){i(t,n,e,r)}))}return o=o?o.then(r,r):r()}})}function G(t,e,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return{value:void 0,done:!0}}for(n.method=i,n.arg=o;;){var l=n.delegate;if(l){var a=X(l,n);if(a){if(a===d)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=u(t,e,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===d)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}function X(t,e){var n=e.method,r=t.iterator[n];if(void 0===r)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=void 0,X(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var i=u(r,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,d;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function v(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 V(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function W(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(v,this),this.reset(!0)}function R(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return p.prototype=b,r(y,"constructor",{value:b,configurable:!0}),r(b,"constructor",{value:p,configurable:!0}),p.displayName=c(b,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,b):(t.__proto__=b,c(t,a,"GeneratorFunction")),t.prototype=Object.create(y),t},t.awrap=function(t){return{__await:t}},f(I.prototype),c(I.prototype,l,(function(){return this})),t.AsyncIterator=I,t.async=function(e,n,r,i,o){void 0===o&&(o=Promise);var l=new I(s(e,n,r,i),o);return t.isGeneratorFunction(n)?l:l.next().then((function(t){return t.done?t.value:l.next()}))},f(y),c(y,a,"Generator"),c(y,o,(function(){return this})),c(y,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),n=[];for(var r in e)n.push(r);return n.reverse(),function t(){for(;n.length;){var r=n.pop();if(r in e)return t.value=r,t.done=!1,t}return t.done=!0,t}},t.values=R,W.prototype={constructor:W,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(V),!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 r(n,r){return l.type="throw",l.arg=t,e.next=n,r&&(e.method="next",e.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],l=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var a=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(a&&c){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(a){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var l=o?o.completion:{};return l.type=t,l.arg=e,o?(this.method="next",this.next=o.finallyLoc,d):this.complete(l)},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),d},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),V(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;V(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:R(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},t}function io(t,e,n,r,i,o,l){try{var a=t[o](l),c=a.value}catch(t){return void n(t)}a.done?e(c):Promise.resolve(c).then(r,i)}function oo(t){return function(){var e=this,n=arguments;return new Promise((function(r,i){var o=t.apply(e,n);function l(t){io(o,r,i,l,a,"next",t)}function a(t){io(o,r,i,l,a,"throw",t)}l(void 0)}))}}function lo(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,co(r.key),r)}}function ao(t,e,n){return(e=co(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function co(t){var e=function(t,e){if("object"!==to(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!==to(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"===to(e)?e:String(e)}var so=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),ao(this,"_authState",t.DEFAULT_STATE),ao(this,"_client",void 0),this._client=null!=e?e:Oi.getInstance(),this.getState=this.getState.bind(this),this.init=this.init.bind(this),this.signIn=this.signIn.bind(this),this.signOut=this.signOut.bind(this),this.updateState=this.updateState.bind(this)}var e,n,r,i,o,l,a,c,s,u,d,h,p,b,Z,m,g,y,f,I,G,X,v,V;return e=t,n=[{key:"getState",value:function(){return this._authState}},{key:"init",value:(V=oo(ro().mark((function t(e){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this._client.initialize(e);case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t,this)}))),function(t){return V.apply(this,arguments)})},{key:"getConfigData",value:(v=oo(ro().mark((function t(){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this._client.getConfigData();case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t,this)}))),function(){return v.apply(this,arguments)})},{key:"signIn",value:(X=oo(ro().mark((function t(e,n,r,i,o,l,a,c){var s=this;return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.signIn(r,i,o,l,c).then(function(){var t=oo(ro().mark((function t(r){var i;return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,s._client.isAuthenticated();case 4:if(!t.sent){t.next=9;break}i={allowedScopes:r.allowedScopes,displayName:r.displayName,email:r.email,isAuthenticated:!0,isLoading:!1,isSigningOut:!1,sub:r.sub,username:r.username},s.updateState(i),e(no(no({},n),i)),a&&a(r);case 9:return t.abrupt("return",r);case 10:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()).catch((function(t){return Promise.reject(t)})));case 1:case"end":return t.stop()}}),t,this)}))),function(t,e,n,r,i,o,l,a){return X.apply(this,arguments)})},{key:"signOut",value:function(t,e,n){return this._client.signOut().then((function(t){return n&&n(t),t})).catch((function(t){return Promise.reject(t)}))}},{key:"updateState",value:function(t){this._authState=no(no({},this._authState),t)}},{key:"getBasicUserInfo",value:(G=oo(ro().mark((function t(){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.getBasicUserInfo());case 1:case"end":return t.stop()}}),t,this)}))),function(){return G.apply(this,arguments)})},{key:"httpRequest",value:(I=oo(ro().mark((function t(e){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.httpRequest(e));case 1:case"end":return t.stop()}}),t,this)}))),function(t){return I.apply(this,arguments)})},{key:"httpRequestAll",value:(f=oo(ro().mark((function t(e){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.httpRequestAll(e));case 1:case"end":return t.stop()}}),t,this)}))),function(t){return f.apply(this,arguments)})},{key:"httpStreamRequest",value:(y=oo(ro().mark((function t(e){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.httpStreamRequest(e));case 1:case"end":return t.stop()}}),t,this)}))),function(t){return y.apply(this,arguments)})},{key:"requestCustomGrant",value:function(t,e,n){var r=this;return this._client.requestCustomGrant(t).then((function(i){if(i)return t.returnsSession&&(r.updateState(no(no(no({},r.getState()),i),{},{isAuthenticated:!0,isLoading:!1})),n(no(no({},i),{},{isAuthenticated:!0,isLoading:!1}))),e&&e(i),i})).catch((function(t){return Promise.reject(t)}))}},{key:"revokeAccessToken",value:(g=oo(ro().mark((function e(n){var r=this;return ro().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this._client.revokeAccessToken().then((function(){return r.updateState(no(no({},t.DEFAULT_STATE),{},{isLoading:!1})),n(t.DEFAULT_STATE),!0})).catch((function(t){return Promise.reject(t)})));case 1:case"end":return e.stop()}}),e,this)}))),function(t){return g.apply(this,arguments)})},{key:"getOIDCServiceEndpoints",value:(m=oo(ro().mark((function t(){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.getOIDCServiceEndpoints());case 1:case"end":return t.stop()}}),t,this)}))),function(){return m.apply(this,arguments)})},{key:"getHttpClient",value:(Z=oo(ro().mark((function t(){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.getHttpClient());case 1:case"end":return t.stop()}}),t,this)}))),function(){return Z.apply(this,arguments)})},{key:"getDecodedIDToken",value:(b=oo(ro().mark((function t(){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.getDecodedIDToken());case 1:case"end":return t.stop()}}),t,this)}))),function(){return b.apply(this,arguments)})},{key:"getDecodedIDPIDToken",value:(p=oo(ro().mark((function t(){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.getDecodedIDToken());case 1:case"end":return t.stop()}}),t,this)}))),function(){return p.apply(this,arguments)})},{key:"getIDToken",value:(h=oo(ro().mark((function t(){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.getIDToken());case 1:case"end":return t.stop()}}),t,this)}))),function(){return h.apply(this,arguments)})},{key:"getAccessToken",value:(d=oo(ro().mark((function t(){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.getAccessToken());case 1:case"end":return t.stop()}}),t,this)}))),function(){return d.apply(this,arguments)})},{key:"getIDPAccessToken",value:(u=oo(ro().mark((function t(){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.getIDPAccessToken());case 1:case"end":return t.stop()}}),t,this)}))),function(){return u.apply(this,arguments)})},{key:"refreshAccessToken",value:(s=oo(ro().mark((function t(){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.refreshAccessToken());case 1:case"end":return t.stop()}}),t,this)}))),function(){return s.apply(this,arguments)})},{key:"isAuthenticated",value:(c=oo(ro().mark((function t(){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.isAuthenticated());case 1:case"end":return t.stop()}}),t,this)}))),function(){return c.apply(this,arguments)})},{key:"isSessionActive",value:(a=oo(ro().mark((function t(){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.isSessionActive());case 1:case"end":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:"enableHttpHandler",value:(l=oo(ro().mark((function t(){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.enableHttpHandler());case 1:case"end":return t.stop()}}),t,this)}))),function(){return l.apply(this,arguments)})},{key:"disableHttpHandler",value:(o=oo(ro().mark((function t(){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.disableHttpHandler());case 1:case"end":return t.stop()}}),t,this)}))),function(){return o.apply(this,arguments)})},{key:"updateConfig",value:(i=oo(ro().mark((function t(e){return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.updateConfig(e));case 1:case"end":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:"on",value:function(t,e,n){return t===T.CustomGrant?this._client.on(t,e,n):this._client.on(t,e)}},{key:"trySignInSilently",value:(r=oo(ro().mark((function t(e,n,r,i){var o=this;return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._client.trySignInSilently(r,i).then(function(){var t=oo(ro().mark((function t(r){var i,l;return ro().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r){t.next=4;break}return o.updateState(no(no({},o.getState()),{},{isLoading:!1})),n(no(no({},e),{},{isLoading:!1})),t.abrupt("return",!1);case 4:return t.next=6,o._client.isAuthenticated();case 6:if(!t.sent){t.next=11;break}l={allowedScopes:(i=r).allowedScopes,displayName:i.displayName,email:i.email,isAuthenticated:!0,isLoading:!1,isSigningOut:!1,sub:i.sub,username:i.username},o.updateState(l),n(no(no({},e),l));case 11:return t.abrupt("return",r);case 12:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()).catch((function(t){return Promise.reject(t)})));case 1:case"end":return t.stop()}}),t,this)}))),function(t,e,n,i){return r.apply(this,arguments)})}],n&&lo(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();ao(so,"DEFAULT_STATE",void 0),so.DEFAULT_STATE={allowedScopes:"",displayName:"",email:"",isAuthenticated:!1,isLoading:!0,sub:"",username:""};const uo=so;function ho(t){return ho="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ho(t)}function po(){po=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,r=Object.defineProperty||function(t,e,n){t[e]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",l=i.asyncIterator||"@@asyncIterator",a=i.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,n){return t[e]=n}}function s(t,e,n,i){var o=e&&e.prototype instanceof h?e:h,l=Object.create(o.prototype),a=new W(i||[]);return r(l,"_invoke",{value:G(t,n,a)}),l}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=s;var d={};function h(){}function p(){}function b(){}var Z={};c(Z,o,(function(){return this}));var m=Object.getPrototypeOf,g=m&&m(m(R([])));g&&g!==e&&n.call(g,o)&&(Z=g);var y=b.prototype=h.prototype=Object.create(Z);function f(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function I(t,e){function i(r,o,l,a){var c=u(t[r],t,o);if("throw"!==c.type){var s=c.arg,d=s.value;return d&&"object"==ho(d)&&n.call(d,"__await")?e.resolve(d.__await).then((function(t){i("next",t,l,a)}),(function(t){i("throw",t,l,a)})):e.resolve(d).then((function(t){s.value=t,l(s)}),(function(t){return i("throw",t,l,a)}))}a(c.arg)}var o;r(this,"_invoke",{value:function(t,n){function r(){return new e((function(e,r){i(t,n,e,r)}))}return o=o?o.then(r,r):r()}})}function G(t,e,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return{value:void 0,done:!0}}for(n.method=i,n.arg=o;;){var l=n.delegate;if(l){var a=X(l,n);if(a){if(a===d)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=u(t,e,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===d)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}function X(t,e){var n=e.method,r=t.iterator[n];if(void 0===r)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=void 0,X(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var i=u(r,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,d;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function v(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 V(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function W(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(v,this),this.reset(!0)}function R(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return p.prototype=b,r(y,"constructor",{value:b,configurable:!0}),r(b,"constructor",{value:p,configurable:!0}),p.displayName=c(b,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,b):(t.__proto__=b,c(t,a,"GeneratorFunction")),t.prototype=Object.create(y),t},t.awrap=function(t){return{__await:t}},f(I.prototype),c(I.prototype,l,(function(){return this})),t.AsyncIterator=I,t.async=function(e,n,r,i,o){void 0===o&&(o=Promise);var l=new I(s(e,n,r,i),o);return t.isGeneratorFunction(n)?l:l.next().then((function(t){return t.done?t.value:l.next()}))},f(y),c(y,a,"Generator"),c(y,o,(function(){return this})),c(y,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),n=[];for(var r in e)n.push(r);return n.reverse(),function t(){for(;n.length;){var r=n.pop();if(r in e)return t.value=r,t.done=!1,t}return t.done=!0,t}},t.values=R,W.prototype={constructor:W,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(V),!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 r(n,r){return l.type="throw",l.arg=t,e.next=n,r&&(e.method="next",e.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],l=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var a=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(a&&c){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(a){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var l=o?o.completion:{};return l.type=t,l.arg=e,o?(this.method="next",this.next=o.finallyLoc,d):this.complete(l)},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),d},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),V(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;V(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:R(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},t}function bo(t,e,n,r,i,o,l){try{var a=t[o](l),c=a.value}catch(t){return void n(t)}a.done?e(c):Promise.resolve(c).then(r,i)}function Zo(t){return function(){var e=this,n=arguments;return new Promise((function(r,i){var o=t.apply(e,n);function l(t){bo(o,r,i,l,a,"next",t)}function a(t){bo(o,r,i,l,a,"throw",t)}l(void 0)}))}}function mo(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function go(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?mo(Object(n),!0).forEach((function(e){yo(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):mo(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function yo(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==ho(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!==ho(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"===ho(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function fo(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,l,a=[],c=!0,s=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(a.push(r.value),a.length!==e);c=!0);}catch(t){s=!0,i=t}finally{try{if(!c&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw i}}return a}}(t,e)||function(t,e){if(t){if("string"==typeof t)return Io(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Io(t,e):void 0}}(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 Io(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var Go={disableAutoSignIn:!0,disableTrySignInSilently:!0},Xo=(0,qi.createContext)(null),vo=function(t){var e=t.children,n=t.config,r=t.fallback,i=t.getAuthParams,o=t.onSignOut,l=t.plugin,a=(0,qi.useMemo)((function(){return new uo(l)}),[l]),c=fo((0,qi.useState)(a.getState()),2),s=c[0],u=c[1],d=fo((0,qi.useState)(!1),2),h=d[0],p=d[1],b=(0,qi.useMemo)((function(){return go(go({},Go),n)}),[n]),Z=function(){var t=Zo(po().mark((function t(e,n,r,i,o,l){var c;return po().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,a.getConfigData();case 2:if((c=t.sent)&&0!==Object.keys(c).length){t.next=6;break}return t.next=6,a.init(b);case 6:return t.prev=6,I(null),t.next=10,a.signIn(u,s,e,n,r,i,o,l);case 10:return t.abrupt("return",t.sent);case 13:return t.prev=13,t.t0=t.catch(6),t.abrupt("return",Promise.reject(t.t0));case 16:case"end":return t.stop()}}),t,null,[[6,13]])})));return function(e,n,r,i,o,l){return t.apply(this,arguments)}}(),m=function(t,e,n){return t===T.CustomGrant?a.on(t,e,n):a.on(t,e)},g=function(t,e){return a.trySignInSilently(s,u,t,e)},y=fo((0,qi.useState)(),2),f=y[0],I=y[1],G=(0,qi.useRef)(!1);(0,qi.useEffect)((function(){s.isAuthenticated||Zo(po().mark((function t(){return po().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.t0=p,t.next=3,a.init(b);case 3:t.t1=t.sent,(0,t.t0)(t.t1),X();case 6:case"end":return t.stop()}}),t)})))()}),[b]),(0,qi.useEffect)((function(){G.current||(G.current=!0,Zo(po().mark((function t(){var e,n,r,l,c,d,h;return po().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=!1,t.next=3,m(T.SignOut,(function(){e=!0,o&&o()}));case 3:if(!s.isAuthenticated){t.next=5;break}return t.abrupt("return");case 5:if(b.skipRedirectCallback){t.next=22;break}if(r=null,!i||"function"!=typeof i){t.next=11;break}return t.next=10,i();case 10:r=t.sent;case 11:if(l=new URL(location.href),!(H.hasAuthSearchParamsInURL()&&new URL(l.origin+l.pathname).toString()===new URL(null==b?void 0:b.signInRedirectURL).toString()||null!==(n=r)&&void 0!==n&&n.authorizationCode||l.searchParams.get("error"))){t.next=22;break}return t.prev=13,t.next=16,Z({callOnlyOnRedirect:!0},null===(c=r)||void 0===c?void 0:c.authorizationCode,null===(d=r)||void 0===d?void 0:d.sessionState,null===(h=r)||void 0===h?void 0:h.state);case 16:I(null),t.next=22;break;case 19:t.prev=19,t.t0=t.catch(13),t.t0&&Object.prototype.hasOwnProperty.call(t.t0,"code")&&I(t.t0);case 22:if(!a.getState().isAuthenticated){t.next=24;break}return t.abrupt("return");case 24:if(t.t1=!b.disableAutoSignIn,!t.t1){t.next=29;break}return t.next=28,a.isSessionActive();case 28:t.t1=t.sent;case 29:if(!t.t1){t.next=31;break}Z();case 31:if(!b.disableTrySignInSilently&&!e){t.next=34;break}return u(go(go({},s),{},{isLoading:!1})),t.abrupt("return");case 34:return t.next=36,g().then((function(){I(null)})).catch((function(t){t&&Object.prototype.hasOwnProperty.call(t,"code")&&I(t)}));case 36:case"end":return t.stop()}}),t,null,[[13,19]])})))())}),[b]);var X=function(){var t=Zo(po().mark((function t(){var e,n,r;return po().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,a.isAuthenticated();case 2:if(!(e=t.sent)){t.next=14;break}return t.next=6,a.getBasicUserInfo();case 6:if(!(n=t.sent)){t.next=12;break}return r={allowedScopes:n.allowedScopes,displayName:n.displayName,email:n.email,isAuthenticated:!0,isLoading:!1,isSigningOut:!1,sub:n.sub,username:n.username},a.updateState(r),u(go(go({},s),r)),t.abrupt("return");case 12:a.updateState(go(go({},s),{},{isAuthenticated:e,isLoading:!1})),u(go(go({},s),{},{isAuthenticated:e,isLoading:!1}));case 14:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();return $i().createElement(Xo.Provider,{value:{disableHttpHandler:function(){return a.disableHttpHandler()},enableHttpHandler:function(){return a.enableHttpHandler()},error:f,getAccessToken:function(){return a.getAccessToken()},getBasicUserInfo:function(){return a.getBasicUserInfo()},getDecodedIDPIDToken:function(){return a.getDecodedIDPIDToken()},getDecodedIDToken:function(){return a.getDecodedIDToken()},getHttpClient:function(){return a.getHttpClient()},getIDToken:function(){return a.getIDToken()},getOIDCServiceEndpoints:function(){return a.getOIDCServiceEndpoints()},httpRequest:function(t){return a.httpRequest(t)},httpStreamRequest:function(t){return a.httpStreamRequest(t)},httpRequestAll:function(t){return a.httpRequestAll(t)},isAuthenticated:function(){return a.isAuthenticated()},on:m,refreshAccessToken:function(){return a.refreshAccessToken()},requestCustomGrant:function(t,e){return a.requestCustomGrant(t,e,u)},revokeAccessToken:function(){return a.revokeAccessToken(u)},signIn:Z,signOut:function(t){return a.signOut(u,s,t)},state:s,trySignInSilently:g,updateConfig:function(t){return a.updateConfig(t)}}},h?e:null!=r?r:null)},Vo=function(){return(0,qi.useContext)(Xo)},Wo=function(t){var e=t.fallback,n=t.children,r=Vo().state.isAuthenticated;return $i().createElement($i().Fragment,null," ",r?n:null!=e?e:null," ")};function Ro(t){return Ro="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ro(t)}function So(){So=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,r=Object.defineProperty||function(t,e,n){t[e]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",l=i.asyncIterator||"@@asyncIterator",a=i.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,n){return t[e]=n}}function s(t,e,n,i){var o=e&&e.prototype instanceof h?e:h,l=Object.create(o.prototype),a=new W(i||[]);return r(l,"_invoke",{value:G(t,n,a)}),l}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=s;var d={};function h(){}function p(){}function b(){}var Z={};c(Z,o,(function(){return this}));var m=Object.getPrototypeOf,g=m&&m(m(R([])));g&&g!==e&&n.call(g,o)&&(Z=g);var y=b.prototype=h.prototype=Object.create(Z);function f(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function I(t,e){function i(r,o,l,a){var c=u(t[r],t,o);if("throw"!==c.type){var s=c.arg,d=s.value;return d&&"object"==Ro(d)&&n.call(d,"__await")?e.resolve(d.__await).then((function(t){i("next",t,l,a)}),(function(t){i("throw",t,l,a)})):e.resolve(d).then((function(t){s.value=t,l(s)}),(function(t){return i("throw",t,l,a)}))}a(c.arg)}var o;r(this,"_invoke",{value:function(t,n){function r(){return new e((function(e,r){i(t,n,e,r)}))}return o=o?o.then(r,r):r()}})}function G(t,e,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return{value:void 0,done:!0}}for(n.method=i,n.arg=o;;){var l=n.delegate;if(l){var a=X(l,n);if(a){if(a===d)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=u(t,e,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===d)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}function X(t,e){var n=e.method,r=t.iterator[n];if(void 0===r)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=void 0,X(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var i=u(r,t.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,d;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function v(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 V(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function W(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(v,this),this.reset(!0)}function R(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:S}}function S(){return{value:void 0,done:!0}}return p.prototype=b,r(y,"constructor",{value:b,configurable:!0}),r(b,"constructor",{value:p,configurable:!0}),p.displayName=c(b,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,b):(t.__proto__=b,c(t,a,"GeneratorFunction")),t.prototype=Object.create(y),t},t.awrap=function(t){return{__await:t}},f(I.prototype),c(I.prototype,l,(function(){return this})),t.AsyncIterator=I,t.async=function(e,n,r,i,o){void 0===o&&(o=Promise);var l=new I(s(e,n,r,i),o);return t.isGeneratorFunction(n)?l:l.next().then((function(t){return t.done?t.value:l.next()}))},f(y),c(y,a,"Generator"),c(y,o,(function(){return this})),c(y,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),n=[];for(var r in e)n.push(r);return n.reverse(),function t(){for(;n.length;){var r=n.pop();if(r in e)return t.value=r,t.done=!1,t}return t.done=!0,t}},t.values=R,W.prototype={constructor:W,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(V),!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 r(n,r){return l.type="throw",l.arg=t,e.next=n,r&&(e.method="next",e.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],l=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var a=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(a&&c){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(a){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var l=o?o.completion:{};return l.type=t,l.arg=e,o?(this.method="next",this.next=o.finallyLoc,d):this.complete(l)},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),d},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),V(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;V(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:R(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},t}function Co(t,e,n,r,i,o,l){try{var a=t[o](l),c=a.value}catch(t){return void n(t)}a.done?e(c):Promise.resolve(c).then(r,i)}var Yo=function(t){var e=t.children,n=t.fallback,r=t.onSignIn,i=t.overrideSignIn,o=Vo(),l=o.state,a=l.isAuthenticated,c=l.isLoading,s=o.signIn;return(0,qi.useEffect)((function(){a||c||function(t){return function(){var e=this,n=arguments;return new Promise((function(r,i){var o=t.apply(e,n);function l(t){Co(o,r,i,l,a,"next",t)}function a(t){Co(o,r,i,l,a,"throw",t)}l(void 0)}))}}(So().mark((function t(){return So().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!i||"function"!=typeof i){t.next=5;break}return t.next=3,i();case 3:t.next=7;break;case 5:return t.next=7,s();case 7:case"end":return t.stop()}}),t)})))(),a&&r&&"function"==typeof r&&r()}),[a,c]),$i().createElement(Wo,{fallback:n},$i().createElement(qi.Suspense,{fallback:n},e))}})(),i})()));
|