p2party 0.7.7 → 0.7.9

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/lib/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var A=require("class-validator");function e(A){return`Minified Redux error #${A}; visit https://redux.js.org/Errors?code=${A} for the full message or use the non-minified dev environment for full errors. `}var I=(()=>"function"==typeof Symbol&&Symbol.observable||"@@observable")(),g=()=>Math.random().toString(36).substring(7).split("").join("."),t={INIT:`@@redux/INIT${g()}`,REPLACE:`@@redux/REPLACE${g()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${g()}`};function i(A){if("object"!=typeof A||null===A)return!1;let e=A;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(A)===e||null===Object.getPrototypeOf(A)}function o(A,g,n){if("function"!=typeof A)throw new Error(e(2));if("function"==typeof g&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error(e(0));if("function"==typeof g&&void 0===n&&(n=g,g=void 0),void 0!==n){if("function"!=typeof n)throw new Error(e(1));return n(o)(A,g)}let C=A,a=g,r=new Map,s=r,B=0,c=!1;function Q(){s===r&&(s=new Map,r.forEach((A,e)=>{s.set(e,A)}))}function E(){if(c)throw new Error(e(3));return a}function l(A){if("function"!=typeof A)throw new Error(e(4));if(c)throw new Error(e(5));let I=!0;Q();const g=B++;return s.set(g,A),function(){if(I){if(c)throw new Error(e(6));I=!1,Q(),s.delete(g),r=null}}}function w(A){if(!i(A))throw new Error(e(7));if(void 0===A.type)throw new Error(e(8));if("string"!=typeof A.type)throw new Error(e(17));if(c)throw new Error(e(9));try{c=!0,a=C(a,A)}finally{c=!1}return(r=s).forEach(A=>{A()}),A}w({type:t.INIT});return{dispatch:w,subscribe:l,getState:E,replaceReducer:function(A){if("function"!=typeof A)throw new Error(e(10));C=A,w({type:t.REPLACE})},[I]:function(){const A=l;return{subscribe(I){if("object"!=typeof I||null===I)throw new Error(e(11));function g(){const A=I;A.next&&A.next(E())}g();return{unsubscribe:A(g)}},[I](){return this}}}}}function n(A){const I=Object.keys(A),g={};for(let e=0;e<I.length;e++){const t=I[e];"function"==typeof A[t]&&(g[t]=A[t])}const i=Object.keys(g);let o;try{!function(A){Object.keys(A).forEach(I=>{const g=A[I];if(void 0===g(void 0,{type:t.INIT}))throw new Error(e(12));if(void 0===g(void 0,{type:t.PROBE_UNKNOWN_ACTION()}))throw new Error(e(13))})}(g)}catch(A){o=A}return function(A={},I){if(o)throw o;let t=!1;const n={};for(let o=0;o<i.length;o++){const C=i[o],a=g[C],r=A[C],s=a(r,I);if(void 0===s)throw I&&I.type,new Error(e(14));n[C]=s,t=t||s!==r}return t=t||i.length!==Object.keys(A).length,t?n:A}}function C(...A){return 0===A.length?A=>A:1===A.length?A[0]:A.reduce((A,e)=>(...I)=>A(e(...I)))}function a(A){return i(A)&&"type"in A&&"string"==typeof A.type}var r=Symbol.for("immer-nothing"),s=Symbol.for("immer-draftable"),B=Symbol.for("immer-state");function c(A,...e){throw new Error(`[Immer] minified error nr: ${A}. Full error at: https://bit.ly/3cXEKWf`)}var Q=Object.getPrototypeOf;function E(A){return!!A&&!!A[B]}function l(A){return!!A&&(d(A)||Array.isArray(A)||!!A[s]||!!A.constructor?.[s]||p(A)||m(A))}var w=Object.prototype.constructor.toString();function d(A){if(!A||"object"!=typeof A)return!1;const e=Q(A);if(null===e)return!0;const I=Object.hasOwnProperty.call(e,"constructor")&&e.constructor;return I===Object||"function"==typeof I&&Function.toString.call(I)===w}function f(A,e){0===h(A)?Reflect.ownKeys(A).forEach(I=>{e(I,A[I],A)}):A.forEach((I,g)=>e(g,I,A))}function h(A){const e=A[B];return e?e.type_:Array.isArray(A)?1:p(A)?2:m(A)?3:0}function u(A,e){return 2===h(A)?A.has(e):Object.prototype.hasOwnProperty.call(A,e)}function y(A,e){return 2===h(A)?A.get(e):A[e]}function D(A,e,I){const g=h(A);2===g?A.set(e,I):3===g?A.add(I):A[e]=I}function p(A){return A instanceof Map}function m(A){return A instanceof Set}function S(A){return A.copy_||A.base_}function k(A,e){if(p(A))return new Map(A);if(m(A))return new Set(A);if(Array.isArray(A))return Array.prototype.slice.call(A);const I=d(A);if(!0===e||"class_only"===e&&!I){const e=Object.getOwnPropertyDescriptors(A);delete e[B];let I=Reflect.ownKeys(e);for(let g=0;g<I.length;g++){const t=I[g],i=e[t];!1===i.writable&&(i.writable=!0,i.configurable=!0),(i.get||i.set)&&(e[t]={configurable:!0,writable:!0,enumerable:i.enumerable,value:A[t]})}return Object.create(Q(A),e)}{const e=Q(A);if(null!==e&&I)return{...A};const g=Object.create(e);return Object.assign(g,A)}}function M(A,e=!1){return K(A)||E(A)||!l(A)||(h(A)>1&&Object.defineProperties(A,{set:{value:F},add:{value:F},clear:{value:F},delete:{value:F}}),Object.freeze(A),e&&Object.values(A).forEach(A=>M(A,!0))),A}function F(){c(2)}function K(A){return Object.isFrozen(A)}var H,N={};function U(A){const e=N[A];return e||c(0),e}function G(){return H}function Y(A,e){e&&(U("Patches"),A.patches_=[],A.inversePatches_=[],A.patchListener_=e)}function P(A){v(A),A.drafts_.forEach(L),A.drafts_=null}function v(A){A===H&&(H=A.parent_)}function b(A){return H={drafts_:[],parent_:H,immer_:A,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function L(A){const e=A[B];0===e.type_||1===e.type_?e.revoke_():e.revoked_=!0}function J(A,e){e.unfinalizedDrafts_=e.drafts_.length;const I=e.drafts_[0];return void 0!==A&&A!==I?(I[B].modified_&&(P(e),c(4)),l(A)&&(A=R(e,A),e.parent_||q(e,A)),e.patches_&&U("Patches").generateReplacementPatches_(I[B].base_,A,e.patches_,e.inversePatches_)):A=R(e,I,[]),P(e),e.patches_&&e.patchListener_(e.patches_,e.inversePatches_),A!==r?A:void 0}function R(A,e,I){if(K(e))return e;const g=e[B];if(!g)return f(e,(t,i)=>x(A,g,e,t,i,I)),e;if(g.scope_!==A)return e;if(!g.modified_)return q(A,g.base_,!0),g.base_;if(!g.finalized_){g.finalized_=!0,g.scope_.unfinalizedDrafts_--;const e=g.copy_;let t=e,i=!1;3===g.type_&&(t=new Set(e),e.clear(),i=!0),f(t,(t,o)=>x(A,g,e,t,o,I,i)),q(A,e,!1),I&&A.patches_&&U("Patches").generatePatches_(g,I,A.patches_,A.inversePatches_)}return g.copy_}function x(A,e,I,g,t,i,o){if(E(t)){const o=R(A,t,i&&e&&3!==e.type_&&!u(e.assigned_,g)?i.concat(g):void 0);if(D(I,g,o),!E(o))return;A.canAutoFreeze_=!1}else o&&I.add(t);if(l(t)&&!K(t)){if(!A.immer_.autoFreeze_&&A.unfinalizedDrafts_<1)return;R(A,t),e&&e.scope_.parent_||"symbol"==typeof g||!(p(I)?I.has(g):Object.prototype.propertyIsEnumerable.call(I,g))||q(A,t)}}function q(A,e,I=!1){!A.parent_&&A.immer_.autoFreeze_&&A.canAutoFreeze_&&M(e,I)}var O={get(A,e){if(e===B)return A;const I=S(A);if(!u(I,e))return function(A,e,I){const g=z(e,I);return g?"value"in g?g.value:g.get?.call(A.draft_):void 0}(A,I,e);const g=I[e];return A.finalized_||!l(g)?g:g===T(A.base_,e)?(V(A),A.copy_[e]=W(g,A)):g},has:(A,e)=>e in S(A),ownKeys:A=>Reflect.ownKeys(S(A)),set(A,e,I){const g=z(S(A),e);if(g?.set)return g.set.call(A.draft_,I),!0;if(!A.modified_){const g=T(S(A),e),o=g?.[B];if(o&&o.base_===I)return A.copy_[e]=I,A.assigned_[e]=!1,!0;if(((t=I)===(i=g)?0!==t||1/t==1/i:t!=t&&i!=i)&&(void 0!==I||u(A.base_,e)))return!0;V(A),X(A)}var t,i;return A.copy_[e]===I&&(void 0!==I||e in A.copy_)||Number.isNaN(I)&&Number.isNaN(A.copy_[e])||(A.copy_[e]=I,A.assigned_[e]=!0),!0},deleteProperty:(A,e)=>(void 0!==T(A.base_,e)||e in A.base_?(A.assigned_[e]=!1,V(A),X(A)):delete A.assigned_[e],A.copy_&&delete A.copy_[e],!0),getOwnPropertyDescriptor(A,e){const I=S(A),g=Reflect.getOwnPropertyDescriptor(I,e);return g?{writable:!0,configurable:1!==A.type_||"length"!==e,enumerable:g.enumerable,value:I[e]}:g},defineProperty(){c(11)},getPrototypeOf:A=>Q(A.base_),setPrototypeOf(){c(12)}},j={};function T(A,e){const I=A[B];return(I?S(I):A)[e]}function z(A,e){if(!(e in A))return;let I=Q(A);for(;I;){const A=Object.getOwnPropertyDescriptor(I,e);if(A)return A;I=Q(I)}}function X(A){A.modified_||(A.modified_=!0,A.parent_&&X(A.parent_))}function V(A){A.copy_||(A.copy_=k(A.base_,A.scope_.immer_.useStrictShallowCopy_))}f(O,(A,e)=>{j[A]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}}),j.deleteProperty=function(A,e){return j.set.call(this,A,e,void 0)},j.set=function(A,e,I){return O.set.call(this,A[0],e,I,A[0])};function W(A,e){const I=p(A)?U("MapSet").proxyMap_(A,e):m(A)?U("MapSet").proxySet_(A,e):function(A,e){const I=Array.isArray(A),g={type_:I?1:0,scope_:e?e.scope_:G(),modified_:!1,finalized_:!1,assigned_:{},parent_:e,base_:A,draft_:null,copy_:null,revoke_:null,isManual_:!1};let t=g,i=O;I&&(t=[g],i=j);const{revoke:o,proxy:n}=Proxy.revocable(t,i);return g.draft_=n,g.revoke_=o,n}(A,e);return(e?e.scope_:G()).drafts_.push(I),I}function Z(A){if(!l(A)||K(A))return A;const e=A[B];let I;if(e){if(!e.modified_)return e.base_;e.finalized_=!0,I=k(A,e.scope_.immer_.useStrictShallowCopy_)}else I=k(A,!0);return f(I,(A,e)=>{D(I,A,Z(e))}),e&&(e.finalized_=!1),I}function _(){const A="replace",e="add",I="remove";function g(A){if(!l(A))return A;if(Array.isArray(A))return A.map(g);if(p(A))return new Map(Array.from(A.entries()).map(([A,e])=>[A,g(e)]));if(m(A))return new Set(Array.from(A).map(g));const e=Object.create(Q(A));for(const I in A)e[I]=g(A[I]);return u(A,s)&&(e[s]=A[s]),e}function t(A){return E(A)?g(A):A}var i,o;o={applyPatches_:function(t,i){return i.forEach(i=>{const{path:o,op:n}=i;let C=t;for(let A=0;A<o.length-1;A++){const e=h(C);let I=o[A];"string"!=typeof I&&"number"!=typeof I&&(I=""+I),0!==e&&1!==e||"__proto__"!==I&&"constructor"!==I||c(19),"function"==typeof C&&"prototype"===I&&c(19),C=y(C,I),"object"!=typeof C&&c(18,o.join("/"))}const a=h(C),r=g(i.value),s=o[o.length-1];switch(n){case A:switch(a){case 2:return C.set(s,r);case 3:c(16);default:return C[s]=r}case e:switch(a){case 1:return"-"===s?C.push(r):C.splice(s,0,r);case 2:return C.set(s,r);case 3:return C.add(r);default:return C[s]=r}case I:switch(a){case 1:return C.splice(s,1);case 2:return C.delete(s);case 3:return C.delete(i.value);default:return delete C[s]}default:c(17)}}),t},generatePatches_:function(g,i,o,n){switch(g.type_){case 0:case 2:return function(g,i,o,n){const{base_:C,copy_:a}=g;f(g.assigned_,(g,r)=>{const s=y(C,g),B=y(a,g),c=r?u(C,g)?A:e:I;if(s===B&&c===A)return;const Q=i.concat(g);o.push(c===I?{op:c,path:Q}:{op:c,path:Q,value:B}),n.push(c===e?{op:I,path:Q}:c===I?{op:e,path:Q,value:t(s)}:{op:A,path:Q,value:t(s)})})}(g,i,o,n);case 1:return function(g,i,o,n){let{base_:C,assigned_:a}=g,r=g.copy_;r.length<C.length&&([C,r]=[r,C],[o,n]=[n,o]);for(let e=0;e<C.length;e++)if(a[e]&&r[e]!==C[e]){const I=i.concat([e]);o.push({op:A,path:I,value:t(r[e])}),n.push({op:A,path:I,value:t(C[e])})}for(let A=C.length;A<r.length;A++){const I=i.concat([A]);o.push({op:e,path:I,value:t(r[A])})}for(let A=r.length-1;C.length<=A;--A){const e=i.concat([A]);n.push({op:I,path:e})}}(g,i,o,n);case 3:return function(A,g,t,i){let{base_:o,copy_:n}=A,C=0;o.forEach(A=>{if(!n.has(A)){const o=g.concat([C]);t.push({op:I,path:o,value:A}),i.unshift({op:e,path:o,value:A})}C++}),C=0,n.forEach(A=>{if(!o.has(A)){const o=g.concat([C]);t.push({op:e,path:o,value:A}),i.unshift({op:I,path:o,value:A})}C++})}(g,i,o,n)}},generateReplacementPatches_:function(e,I,g,t){g.push({op:A,path:[],value:I===r?void 0:I}),t.push({op:A,path:[],value:e})}},N[i="Patches"]||(N[i]=o)}var $=new class{constructor(A){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(A,e,I)=>{if("function"==typeof A&&"function"!=typeof e){const I=e;e=A;const g=this;return function(A=I,...t){return g.produce(A,A=>e.call(this,A,...t))}}let g;if("function"!=typeof e&&c(6),void 0!==I&&"function"!=typeof I&&c(7),l(A)){const t=b(this),i=W(A,void 0);let o=!0;try{g=e(i),o=!1}finally{o?P(t):v(t)}return Y(t,I),J(g,t)}if(!A||"object"!=typeof A){if(g=e(A),void 0===g&&(g=A),g===r&&(g=void 0),this.autoFreeze_&&M(g,!0),I){const e=[],t=[];U("Patches").generateReplacementPatches_(A,g,e,t),I(e,t)}return g}c(1)},this.produceWithPatches=(A,e)=>{if("function"==typeof A)return(e,...I)=>this.produceWithPatches(e,e=>A(e,...I));let I,g;return[this.produce(A,e,(A,e)=>{I=A,g=e}),I,g]},"boolean"==typeof A?.autoFreeze&&this.setAutoFreeze(A.autoFreeze),"boolean"==typeof A?.useStrictShallowCopy&&this.setUseStrictShallowCopy(A.useStrictShallowCopy)}createDraft(A){l(A)||c(8),E(A)&&(A=function(A){E(A)||c(10);return Z(A)}(A));const e=b(this),I=W(A,void 0);return I[B].isManual_=!0,v(e),I}finishDraft(A,e){const I=A&&A[B];I&&I.isManual_||c(9);const{scope_:g}=I;return Y(g,e),J(void 0,g)}setAutoFreeze(A){this.autoFreeze_=A}setUseStrictShallowCopy(A){this.useStrictShallowCopy_=A}applyPatches(A,e){let I;for(I=e.length-1;I>=0;I--){const g=e[I];if(0===g.path.length&&"replace"===g.op){A=g.value;break}}I>-1&&(e=e.slice(I+1));const g=U("Patches").applyPatches_;return E(A)?g(A,e):this.produce(A,A=>g(A,e))}},AA=$.produce,eA=$.produceWithPatches.bind($),IA=$.applyPatches.bind($);var gA=A=>Array.isArray(A)?A:[A];function tA(A){const e=Array.isArray(A[0])?A[0]:A;return function(A,e="expected all items to be functions, instead received the following types: "){if(!A.every(A=>"function"==typeof A)){const I=A.map(A=>"function"==typeof A?`function ${A.name||"unnamed"}()`:typeof A).join(", ");throw new TypeError(`${e}[${I}]`)}}(e,"createSelector expects all input-selectors to be functions, but received the following types: "),e}var iA="undefined"!=typeof WeakRef?WeakRef:class{constructor(A){this.value=A}deref(){return this.value}};function oA(){return{s:0,v:void 0,o:null,p:null}}function nA(A,e={}){let I={s:0,v:void 0,o:null,p:null};const{resultEqualityCheck:g}=e;let t,i=0;function o(){let e=I;const{length:o}=arguments;for(let A=0,I=o;A<I;A++){const I=arguments[A];if("function"==typeof I||"object"==typeof I&&null!==I){let A=e.o;null===A&&(e.o=A=new WeakMap);const g=A.get(I);void 0===g?(e=oA(),A.set(I,e)):e=g}else{let A=e.p;null===A&&(e.p=A=new Map);const g=A.get(I);void 0===g?(e=oA(),A.set(I,e)):e=g}}const n=e;let C;if(1===e.s)C=e.v;else if(C=A.apply(null,arguments),i++,g){const A=t?.deref?.()??t;null!=A&&g(A,C)&&(C=A,0!==i&&i--);t="object"==typeof C&&null!==C||"function"==typeof C?new iA(C):C}return n.s=1,n.v=C,C}return o.clearCache=()=>{I={s:0,v:void 0,o:null,p:null},o.resetResultsCount()},o.resultsCount=()=>i,o.resetResultsCount=()=>{i=0},o}function CA(A,...e){const I="function"==typeof A?{memoize:A,memoizeOptions:e}:A,g=(...A)=>{let e,g=0,t=0,i={},o=A.pop();"object"==typeof o&&(i=o,o=A.pop()),function(A,e="expected a function, instead received "+typeof A){if("function"!=typeof A)throw new TypeError(e)}(o,`createSelector expects an output function after the inputs, but received: [${typeof o}]`);const n={...I,...i},{memoize:C,memoizeOptions:a=[],argsMemoize:r=nA,argsMemoizeOptions:s=[]}=n,B=gA(a),c=gA(s),Q=tA(A),E=C(function(){return g++,o.apply(null,arguments)},...B),l=r(function(){t++;const A=function(A,e){const I=[],{length:g}=A;for(let t=0;t<g;t++)I.push(A[t].apply(null,e));return I}(Q,arguments);return e=E.apply(null,A),e},...c);return Object.assign(l,{resultFunc:o,memoizedResultFunc:E,dependencies:Q,dependencyRecomputations:()=>t,resetDependencyRecomputations:()=>{t=0},lastResult:()=>e,recomputations:()=>g,resetRecomputations:()=>{g=0},memoize:C,argsMemoize:r})};return Object.assign(g,{withTypes:()=>g}),g}var aA=CA(nA),rA=Object.assign((A,e=aA)=>{!function(A,e="expected an object, instead received "+typeof A){if("object"!=typeof A)throw new TypeError(e)}(A,"createStructuredSelector expects first argument to be an object where each property is a selector, instead received a "+typeof A);const I=Object.keys(A);return e(I.map(e=>A[e]),(...A)=>A.reduce((A,e,g)=>(A[I[g]]=e,A),{}))},{withTypes:()=>rA});function sA(A){return({dispatch:e,getState:I})=>g=>t=>"function"==typeof t?t(e,I,A):g(t)}var BA=sA(),cA=sA,QA="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?C:C.apply(null,arguments)};function EA(A,e){function I(...I){if(e){let g=e(...I);if(!g)throw new Error(Se(0));return{type:A,payload:g.payload,..."meta"in g&&{meta:g.meta},..."error"in g&&{error:g.error}}}return{type:A,payload:I[0]}}return I.toString=()=>`${A}`,I.type=A,I.match=e=>a(e)&&e.type===A,I}var lA=class A extends Array{constructor(...e){super(...e),Object.setPrototypeOf(this,A.prototype)}static get[Symbol.species](){return A}concat(...A){return super.concat.apply(this,A)}prepend(...e){return 1===e.length&&Array.isArray(e[0])?new A(...e[0].concat(this)):new A(...e.concat(this))}};function wA(A){return l(A)?AA(A,()=>{}):A}function dA(A,e,I){return A.has(e)?A.get(e):A.set(e,I(e)).get(e)}var fA="RTK_autoBatch",hA=()=>A=>({payload:A,meta:{[fA]:!0}}),uA=A=>e=>{setTimeout(e,A)},yA=A=>function(e){const{autoBatch:I=!0}=e??{};let g=new lA(A);return I&&g.push(((A={type:"raf"})=>e=>(...I)=>{const g=e(...I);let t=!0,i=!1,o=!1;const n=new Set,C="tick"===A.type?queueMicrotask:"raf"===A.type?"undefined"!=typeof window&&window.requestAnimationFrame?window.requestAnimationFrame:uA(10):"callback"===A.type?A.queueNotification:uA(A.timeout),a=()=>{o=!1,i&&(i=!1,n.forEach(A=>A()))};return Object.assign({},g,{subscribe(A){const e=g.subscribe(()=>t&&A());return n.add(A),()=>{e(),n.delete(A)}},dispatch(A){try{return t=!A?.meta?.[fA],i=!t,i&&(o||(o=!0,C(a))),g.dispatch(A)}finally{t=!0}}})})("object"==typeof I?I:void 0)),g};function DA(A){const e={},I=[];let g;const t={addCase(A,I){const g="string"==typeof A?A:A.type;if(!g)throw new Error(Se(28));if(g in e)throw new Error(Se(29));return e[g]=I,t},addAsyncThunk:(A,g)=>(g.pending&&(e[A.pending.type]=g.pending),g.rejected&&(e[A.rejected.type]=g.rejected),g.fulfilled&&(e[A.fulfilled.type]=g.fulfilled),g.settled&&I.push({matcher:A.settled,reducer:g.settled}),t),addMatcher:(A,e)=>(I.push({matcher:A,reducer:e}),t),addDefaultCase:A=>(g=A,t)};return A(t),[e,I,g]}var pA=(A,e)=>{return(I=A)&&"function"==typeof I.match?A.match(e):A(e);var I};function mA(...A){return e=>A.some(A=>pA(A,e))}function SA(...A){return e=>A.every(A=>pA(A,e))}function kA(A,e){if(!A||!A.meta)return!1;const I="string"==typeof A.meta.requestId,g=e.indexOf(A.meta.requestStatus)>-1;return I&&g}function MA(A){return"function"==typeof A[0]&&"pending"in A[0]&&"fulfilled"in A[0]&&"rejected"in A[0]}function FA(...A){return 0===A.length?A=>kA(A,["pending"]):MA(A)?mA(...A.map(A=>A.pending)):FA()(A[0])}function KA(...A){return 0===A.length?A=>kA(A,["rejected"]):MA(A)?mA(...A.map(A=>A.rejected)):KA()(A[0])}function HA(...A){const e=A=>A&&A.meta&&A.meta.rejectedWithValue;return 0===A.length||MA(A)?SA(KA(...A),e):HA()(A[0])}function NA(...A){return 0===A.length?A=>kA(A,["fulfilled"]):MA(A)?mA(...A.map(A=>A.fulfilled)):NA()(A[0])}function UA(...A){return 0===A.length?A=>kA(A,["pending","fulfilled","rejected"]):MA(A)?mA(...A.flatMap(A=>[A.pending,A.rejected,A.fulfilled])):UA()(A[0])}var GA=(A=21)=>{let e="",I=A;for(;I--;)e+="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"[64*Math.random()|0];return e},YA=["name","message","stack","code"],PA=class{constructor(A,e){this.payload=A,this.meta=e}_type},vA=class{constructor(A,e){this.payload=A,this.meta=e}_type},bA=A=>{if("object"==typeof A&&null!==A){const e={};for(const I of YA)"string"==typeof A[I]&&(e[I]=A[I]);return e}return{message:String(A)}},LA="External signal was aborted",JA=(()=>{function A(A,e,I){const g=EA(A+"/fulfilled",(A,e,I,g)=>({payload:A,meta:{...g||{},arg:I,requestId:e,requestStatus:"fulfilled"}})),t=EA(A+"/pending",(A,e,I)=>({payload:void 0,meta:{...I||{},arg:e,requestId:A,requestStatus:"pending"}})),i=EA(A+"/rejected",(A,e,g,t,i)=>({payload:t,error:(I&&I.serializeError||bA)(A||"Rejected"),meta:{...i||{},arg:g,requestId:e,rejectedWithValue:!!t,requestStatus:"rejected",aborted:"AbortError"===A?.name,condition:"ConditionError"===A?.name}}));return Object.assign(function(A,{signal:o}={}){return(n,C,a)=>{const r=I?.idGenerator?I.idGenerator(A):GA(),s=new AbortController;let B,c;function Q(A){c=A,s.abort()}o&&(o.aborted?Q(LA):o.addEventListener("abort",()=>Q(LA),{once:!0}));const E=async function(){let o;try{let i=I?.condition?.(A,{getState:C,extra:a});if(null!==(E=i)&&"object"==typeof E&&"function"==typeof E.then&&(i=await i),!1===i||s.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};const l=new Promise((A,e)=>{B=()=>{e({name:"AbortError",message:c||"Aborted"})},s.signal.addEventListener("abort",B)});n(t(r,A,I?.getPendingMeta?.({requestId:r,arg:A},{getState:C,extra:a}))),o=await Promise.race([l,Promise.resolve(e(A,{dispatch:n,getState:C,extra:a,requestId:r,signal:s.signal,abort:Q,rejectWithValue:(A,e)=>new PA(A,e),fulfillWithValue:(A,e)=>new vA(A,e)})).then(e=>{if(e instanceof PA)throw e;return e instanceof vA?g(e.payload,r,A,e.meta):g(e,r,A)})])}catch(e){o=e instanceof PA?i(null,r,A,e.payload,e.meta):i(e,r,A)}finally{B&&s.signal.removeEventListener("abort",B)}var E;return I&&!I.dispatchConditionRejection&&i.match(o)&&o.meta.condition||n(o),o}();return Object.assign(E,{abort:Q,requestId:r,arg:A,unwrap:()=>E.then(RA)})}},{pending:t,rejected:i,fulfilled:g,settled:mA(i,g),typePrefix:A})}return A.withTypes=()=>A,A})();function RA(A){if(A.meta&&A.meta.rejectedWithValue)throw A.payload;if(A.error)throw A.error;return A.payload}var xA=Symbol.for("rtk-slice-createasyncthunk");function qA(A,e){return`${A}/${e}`}function OA({creators:A}={}){const e=A?.asyncThunk?.[xA];return function(A){const{name:I,reducerPath:g=I}=A;if(!I)throw new Error(Se(11));const t=("function"==typeof A.reducers?A.reducers(function(){function A(A,e){return{_reducerDefinitionType:"asyncThunk",payloadCreator:A,...e}}return A.withTypes=()=>A,{reducer:A=>Object.assign({[A.name]:(...e)=>A(...e)}[A.name],{_reducerDefinitionType:"reducer"}),preparedReducer:(A,e)=>({_reducerDefinitionType:"reducerWithPrepare",prepare:A,reducer:e}),asyncThunk:A}}()):A.reducers)||{},i=Object.keys(t),o={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},n={addCase(A,e){const I="string"==typeof A?A:A.type;if(!I)throw new Error(Se(12));if(I in o.sliceCaseReducersByType)throw new Error(Se(13));return o.sliceCaseReducersByType[I]=e,n},addMatcher:(A,e)=>(o.sliceMatchers.push({matcher:A,reducer:e}),n),exposeAction:(A,e)=>(o.actionCreators[A]=e,n),exposeCaseReducer:(A,e)=>(o.sliceCaseReducersByName[A]=e,n)};function C(){const[e={},I=[],g]="function"==typeof A.extraReducers?DA(A.extraReducers):[A.extraReducers],t={...e,...o.sliceCaseReducersByType};return function(A,e){let I,[g,t,i]=DA(e);if("function"==typeof A)I=()=>wA(A());else{const e=wA(A);I=()=>e}function o(A=I(),e){let o=[g[e.type],...t.filter(({matcher:A})=>A(e)).map(({reducer:A})=>A)];return 0===o.filter(A=>!!A).length&&(o=[i]),o.reduce((A,I)=>{if(I){if(E(A)){const g=I(A,e);return void 0===g?A:g}if(l(A))return AA(A,A=>I(A,e));{const g=I(A,e);if(void 0===g){if(null===A)return A;throw Error("A case reducer on a non-draftable value must not return undefined")}return g}}return A},A)}return o.getInitialState=I,o}(A.initialState,A=>{for(let e in t)A.addCase(e,t[e]);for(let e of o.sliceMatchers)A.addMatcher(e.matcher,e.reducer);for(let e of I)A.addMatcher(e.matcher,e.reducer);g&&A.addDefaultCase(g)})}i.forEach(g=>{const i=t[g],o={reducerName:g,type:qA(I,g),createNotation:"function"==typeof A.reducers};!function(A){return"asyncThunk"===A._reducerDefinitionType}(i)?function({type:A,reducerName:e,createNotation:I},g,t){let i,o;if("reducer"in g){if(I&&!function(A){return"reducerWithPrepare"===A._reducerDefinitionType}(g))throw new Error(Se(17));i=g.reducer,o=g.prepare}else i=g;t.addCase(A,i).exposeCaseReducer(e,i).exposeAction(e,o?EA(A,o):EA(A))}(o,i,n):function({type:A,reducerName:e},I,g,t){if(!t)throw new Error(Se(18));const{payloadCreator:i,fulfilled:o,pending:n,rejected:C,settled:a,options:r}=I,s=t(A,i,r);g.exposeAction(e,s),o&&g.addCase(s.fulfilled,o);n&&g.addCase(s.pending,n);C&&g.addCase(s.rejected,C);a&&g.addMatcher(s.settled,a);g.exposeCaseReducer(e,{fulfilled:o||zA,pending:n||zA,rejected:C||zA,settled:a||zA})}(o,i,n,e)});const a=A=>A,r=new Map,s=new WeakMap;let B;function c(A,e){return B||(B=C()),B(A,e)}function Q(){return B||(B=C()),B.getInitialState()}function w(e,I=!1){function g(A){let t=A[e];return void 0===t&&I&&(t=dA(s,g,Q)),t}function t(e=a){const g=dA(r,I,()=>new WeakMap);return dA(g,e,()=>{const g={};for(const[t,i]of Object.entries(A.selectors??{}))g[t]=jA(i,e,()=>dA(s,e,Q),I);return g})}return{reducerPath:e,getSelectors:t,get selectors(){return t(g)},selectSlice:g}}const d={name:I,reducer:c,actions:o.actionCreators,caseReducers:o.sliceCaseReducersByName,getInitialState:Q,...w(g),injectInto(A,{reducerPath:e,...I}={}){const t=e??g;return A.inject({reducerPath:t,reducer:c},I),{...d,...w(t,!0)}}};return d}}function jA(A,e,I,g){function t(t,...i){let o=e(t);return void 0===o&&g&&(o=I()),A(o,...i)}return t.unwrapped=A,t}var TA=OA();function zA(){}var XA="listener",VA="completed",WA="cancelled",ZA=`task-${WA}`,_A=`task-${VA}`,$A=`${XA}-${WA}`,Ae=`${XA}-${VA}`,ee=class{constructor(A){this.code=A,this.message=`task ${WA} (reason: ${A})`}name="TaskAbortError";message},Ie=(A,e)=>{if("function"!=typeof A)throw new TypeError(Se(32))},ge=()=>{},te=(A,e=ge)=>(A.catch(e),A),ie=(A,e)=>(A.addEventListener("abort",e,{once:!0}),()=>A.removeEventListener("abort",e)),oe=(A,e)=>{const I=A.signal;I.aborted||("reason"in I||Object.defineProperty(I,"reason",{enumerable:!0,value:e,configurable:!0,writable:!0}),A.abort(e))},ne=A=>{if(A.aborted){const{reason:e}=A;throw new ee(e)}};function Ce(A,e){let I=ge;return new Promise((g,t)=>{const i=()=>t(new ee(A.reason));A.aborted?i():(I=ie(A,i),e.finally(()=>I()).then(g,t))}).finally(()=>{I=ge})}var ae=A=>e=>te(Ce(A,e).then(e=>(ne(A),e))),re=A=>{const e=ae(A);return A=>e(new Promise(e=>setTimeout(e,A)))},{assign:se}=Object,Be={},ce="listenerMiddleware",Qe=(A,e)=>(I,g)=>{Ie(I);const t=new AbortController;var i;i=t,ie(A,()=>oe(i,A.reason));const o=(async(A,e)=>{try{return await Promise.resolve(),{status:"ok",value:await A()}}catch(A){return{status:A instanceof ee?"cancelled":"rejected",error:A}}finally{e?.()}})(async()=>{ne(A),ne(t.signal);const e=await I({pause:ae(t.signal),delay:re(t.signal),signal:t.signal});return ne(t.signal),e},()=>oe(t,_A));return g?.autoJoin&&e.push(o.catch(ge)),{result:ae(A)(o),cancel(){oe(t,ZA)}}},Ee=(A,e)=>(I,g)=>te((async(I,g)=>{ne(e);let t=()=>{};const i=[new Promise((e,g)=>{let i=A({predicate:I,effect:(A,I)=>{I.unsubscribe(),e([A,I.getState(),I.getOriginalState()])}});t=()=>{i(),g()}})];null!=g&&i.push(new Promise(A=>setTimeout(A,g,null)));try{const A=await Ce(e,Promise.race(i));return ne(e),A}finally{t()}})(I,g)),le=A=>{let{type:e,actionCreator:I,matcher:g,predicate:t,effect:i}=A;if(e)t=EA(e).match;else if(I)e=I.type,t=I.match;else if(g)t=g;else if(!t)throw new Error(Se(21));return Ie(i),{predicate:t,type:e,effect:i}},we=se(A=>{const{type:e,predicate:I,effect:g}=le(A);return{id:GA(),effect:g,type:e,predicate:I,pending:new Set,unsubscribe:()=>{throw new Error(Se(22))}}},{withTypes:()=>we}),de=(A,e)=>{const{type:I,effect:g,predicate:t}=le(e);return Array.from(A.values()).find(A=>("string"==typeof I?A.type===I:A.predicate===t)&&A.effect===g)},fe=A=>{A.pending.forEach(A=>{oe(A,$A)})},he=(A,e,I)=>{try{A(e,I)}catch(A){setTimeout(()=>{throw A},0)}},ue=se(EA(`${ce}/add`),{withTypes:()=>ue}),ye=EA(`${ce}/removeAll`),De=se(EA(`${ce}/remove`),{withTypes:()=>De}),pe=(...A)=>{console.error(`${ce}/error`,...A)},me=(A={})=>{const e=new Map,{extra:I,onError:g=pe}=A;Ie(g);const t=A=>(A=>(A.unsubscribe=()=>e.delete(A.id),e.set(A.id,A),e=>{A.unsubscribe(),e?.cancelActive&&fe(A)}))(de(e,A)??we(A));se(t,{withTypes:()=>t});const i=A=>{const I=de(e,A);return I&&(I.unsubscribe(),A.cancelActive&&fe(I)),!!I};se(i,{withTypes:()=>i});const o=async(A,i,o,n)=>{const C=new AbortController,a=Ee(t,C.signal),r=[];try{A.pending.add(C),await Promise.resolve(A.effect(i,se({},o,{getOriginalState:n,condition:(A,e)=>a(A,e).then(Boolean),take:a,delay:re(C.signal),pause:ae(C.signal),extra:I,signal:C.signal,fork:Qe(C.signal,r),unsubscribe:A.unsubscribe,subscribe:()=>{e.set(A.id,A)},cancelActiveListeners:()=>{A.pending.forEach((A,e,I)=>{A!==C&&(oe(A,$A),I.delete(A))})},cancel:()=>{oe(C,$A),A.pending.delete(C)},throwIfCancelled:()=>{ne(C.signal)}})))}catch(A){A instanceof ee||he(g,A,{raisedBy:"effect"})}finally{await Promise.all(r),oe(C,Ae),A.pending.delete(C)}},n=(A=>()=>{A.forEach(fe),A.clear()})(e);return{middleware:A=>I=>C=>{if(!a(C))return I(C);if(ue.match(C))return t(C.payload);if(ye.match(C))return void n();if(De.match(C))return i(C.payload);let r=A.getState();const s=()=>{if(r===Be)throw new Error(Se(23));return r};let B;try{if(B=I(C),e.size>0){const I=A.getState(),t=Array.from(e.values());for(const e of t){let t=!1;try{t=e.predicate(C,I,r)}catch(A){t=!1,he(g,A,{raisedBy:"predicate"})}t&&o(e,C,A,s)}}}finally{r=Be}return B},startListening:t,stopListening:i,clearListeners:n}};function Se(A){return`Minified Redux Toolkit error #${A}; visit https://redux-toolkit.js.org/Errors?code=${A} for the full message or use the non-minified dev environment for full errors. `}const ke=TA({name:"commonState",initialState:{currentRoomUrl:""},reducers:{setCurrentRoomUrl:(A,e)=>{A.currentRoomUrl=e.payload}}}),{setCurrentRoomUrl:Me}=ke.actions;var Fe=ke.reducer;const Ke={peerId:localStorage.getItem("peerId")??"",challengeId:localStorage.getItem("challengeId")??"",publicKey:localStorage.getItem("publicKey")??"",secretKey:localStorage.getItem("secretKey")??"",challenge:localStorage.getItem("challenge")??"",signature:localStorage.getItem("signature")??""},He=TA({name:"keyPair",initialState:Ke,reducers:{setKeyPair:(A,e)=>{const{publicKey:I,secretKey:g}=e.payload;64===I.length&&128===g.length&&(A.publicKey=e.payload.publicKey,A.secretKey=e.payload.secretKey)},setReconnectData:(e,I)=>{const{peerId:g,challenge:t,signature:i,challengeId:o}=I.payload;A.isUUID(g,4)&&A.isUUID(o)&&A.isHexadecimal(t)&&A.isHexadecimal(i)&&64===t.length&&128===i.length&&(e.peerId=g,e.challenge=t,e.signature=i,e.challengeId=o)},setPeerData:(e,I)=>{const{peerId:g,challenge:t,signature:i}=I.payload;A.isUUID(g,4)&&A.isHexadecimal(t)&&A.isHexadecimal(i)&&64===t.length&&128===i.length&&(e.peerId=g,e.challenge=t,e.signature=i)},setChallengeId:(e,I)=>{const{challengeId:g}=I.payload;A.isUUID(g)&&(e.challengeId=g)},resetIdentity:(A,e)=>({peerId:"",challengeId:"",publicKey:"",secretKey:"",challenge:"",signature:""})}}),{setKeyPair:Ne,setReconnectData:Ue,setPeerData:Ge,setChallengeId:Ye,resetIdentity:Pe}=He.actions;var ve=He.reducer;const be=64*Uint8Array.BYTES_PER_ELEMENT,Le=64*Uint8Array.BYTES_PER_ELEMENT,Je=32*Uint8Array.BYTES_PER_ELEMENT,Re=32*Uint8Array.BYTES_PER_ELEMENT,xe=64*Uint8Array.BYTES_PER_ELEMENT,qe=16*Uint8Array.BYTES_PER_ELEMENT,Oe=32*Uint8Array.BYTES_PER_ELEMENT,je=32*Uint8Array.BYTES_PER_ELEMENT,Te=12*Uint8Array.BYTES_PER_ELEMENT,ze=12*Uint8Array.BYTES_PER_ELEMENT,Xe=16*Uint8Array.BYTES_PER_ELEMENT,Ve=A=>ze+A+qe,We=A=>A-ze-qe,Ze={iceServers:[{urls:["stun:stun.p2party.com:3478"]}],iceTransportPolicy:"all"},_e=TA({name:"rooms",initialState:[],reducers:{setRoom:(e,I)=>{const{url:g,id:t,canBeConnectionRelay:i,rtcConfig:o,onlyConnectWithKnownPeers:n}=I.payload;if(64===g.length&&A.isUUID(t)){const A=e.findIndex(A=>A.url===g||A.id===t);A>-1?(e[A].url=g,e[A].id=t,null!=i&&(e[A].canBeConnectionRelay=i),o&&(e[A].rtcConfig=o),e[A].onlyConnectWithKnownAddresses=null!=n?n:"true"===localStorage.getItem(g+"-onlyConnectWithKnownPeers")):e.push({url:g,id:t,connectingToPeers:!1,connectedToPeers:!1,canBeConnectionRelay:i??!0,onlyConnectWithKnownAddresses:n??"true"===localStorage.getItem(g+"-onlyConnectWithKnownPeers"),rtcConfig:o??Ze,peers:[],channels:[],messages:[]})}else if(64===g.length){const A=e.findIndex(A=>A.url===g);A>-1?(e[A].url=g,e[A].id="",null!=i&&(e[A].canBeConnectionRelay=i),o&&(e[A].rtcConfig=o),e[A].onlyConnectWithKnownAddresses=null!=n?n:"true"===localStorage.getItem(g+"-onlyConnectWithKnownPeers")):e.push({url:g,id:"",connectingToPeers:!1,connectedToPeers:!1,canBeConnectionRelay:i??!0,onlyConnectWithKnownAddresses:n??"true"===localStorage.getItem(g+"-onlyConnectWithKnownPeers"),rtcConfig:o??Ze,peers:[],channels:[],messages:[]})}},setConnectingToPeers:(A,e)=>{const{roomId:I,connectingToPeers:g}=e.payload,t=A.findIndex(A=>A.id===I);t>-1&&(A[t].connectingToPeers=g)},setConnectedToPeers:(A,e)=>{const{roomId:I,connectedToPeers:g}=e.payload,t=A.findIndex(A=>A.id===I);t>-1&&(A[t].connectingToPeers=!1,A[t].connectedToPeers=g)},setConnectionRelay:(A,e)=>{const{roomId:I,canBeConnectionRelay:g}=e.payload,t=A.findIndex(A=>A.id===I);t>-1&&(A[t].canBeConnectionRelay=g)},setPeer:(A,e)=>{const{roomId:I,peerId:g,peerPublicKey:t}=e.payload,i=A.findIndex(A=>A.id===I);if(i>-1){-1===A[i].peers.findIndex(A=>A.peerId===g)&&A[i].peers.push({peerId:g,peerPublicKey:t})}},deletePeer:(A,e)=>{const I=A.length;for(let g=0;g<I;g++){const I=A[g].peers.findIndex(A=>A.peerId===e.payload.peerId);I>-1&&A[g].peers.splice(I,1)}},setChannel:(A,e)=>{const{roomId:I,label:g,peerId:t}=e.payload,i=A.findIndex(A=>A.id===I);if(i>-1){const e=A[i].channels.findIndex(A=>A.label===g);if(e>-1){-1===A[i].channels[e].peerIds.findIndex(A=>A===t)&&A[i].channels[e].peerIds.push(t)}else A[i].channels.push({label:g,peerIds:[t]})}},deleteChannel:(A,e)=>{const{peerId:I,label:g}=e.payload,t=A.length;for(let e=0;e<t;e++)if(g&&!I){const I=A[e].channels.findIndex(A=>A.label===g);I>-1&&A[e].channels.splice(I,1)}else if(!g&&I){const g=A[e].channels.length;for(let t=0;t<g;t++){const g=A[e].channels[e].peerIds.findIndex(A=>A===I);g>-1&&(A[e].channels[t].peerIds.splice(g,1),0===A[e].channels[t].peerIds.length&&A[e].channels.splice(t,1))}}else if(I&&g){const t=A[e].channels.findIndex(A=>A.label===g&&A.peerIds.includes(I));if(t>-1){const g=A[e].channels[t].peerIds.findIndex(A=>A===I);A[e].channels[t].peerIds.splice(g,1),0===A[e].channels[t].peerIds.length&&A[e].channels.splice(t,1)}}},setIceServers:(A,e)=>{const{roomId:I,iceServers:g}=e.payload,t=A.findIndex(A=>A.id===I);if(t>-1){const e=g.length,I=A[t].rtcConfig.iceServers?.flatMap(A=>Array.isArray(A.urls)?A.urls:[A.urls])??[];for(let i=0;i<e;i++){const e=g[i].urls.length;let o=!1;for(let A=0;A<e;A++)if(!I.includes(g[i].urls[A])){o=!0;break}o&&A[t].rtcConfig.iceServers?.push(g[i])}}},setMessage:(e,I)=>{const{roomId:g,merkleRootHex:t,sha512Hex:i,filename:o,channelLabel:n,fromPeerId:C,messageType:a,chunkSize:r,totalSize:s,chunksCreated:B,totalChunks:c,timestamp:Q}=I.payload,E=e.findIndex(A=>A.id===g);if(E>-1){const I=e[E].messages.findLastIndex(A=>A.merkleRootHex===t||A.sha512Hex===i&&0===A.merkleRootHex.length);-1===I?n&&C&&A.isUUID(C)&&a&&s&&e[E].messages.push({merkleRootHex:t,sha512Hex:i,channelLabel:n,filename:o.length>0?o:"txt",messageType:a,fromPeerId:C,timestamp:Q??Date.now(),savedSize:r>0?r:0,totalSize:s,chunksCreated:B??0,totalChunks:c??0}):e[E].messages[I].timestamp!==Q&&e[E].messages[I].sha512Hex===i&&e[E].messages[I].savedSize===e[E].messages[I].totalSize?e[E].messages.push({merkleRootHex:t,sha512Hex:i,channelLabel:n,filename:o.length>0?o:"txt",messageType:a,fromPeerId:C,timestamp:Q??Date.now(),savedSize:r,totalSize:s,chunksCreated:B??0,totalChunks:c??0}):(t.length===2*be&&""===e[E].messages[I].merkleRootHex&&(e[E].messages[I].merkleRootHex=t),s>0&&e[E].messages[I].totalSize!==s&&(e[E].messages[I].totalSize=s),r>0&&e[E].messages[I].totalSize>=e[E].messages[I].savedSize+r&&(e[E].messages[I].savedSize+=r),B&&B<=e[E].messages[I].totalChunks&&(e[E].messages[I].chunksCreated=B+1))}},setMessageAllChunks:(e,I)=>{const{roomId:g,merkleRootHex:t,sha512Hex:i,channelLabel:o,filename:n,messageType:C,fromPeerId:a,timestamp:r,totalSize:s}=I.payload,B=e.findIndex(A=>A.id===g);if(B>-1){const I=e[B].messages.findLastIndex(A=>A.merkleRootHex===t);-1===I&&o&&a&&A.isUUID(a)&&C&&s||I>-1&&e[B].messages[I].timestamp<r?e[B].messages.push({merkleRootHex:t,sha512Hex:i,channelLabel:o,filename:n.length>0?n:"txt",messageType:C,fromPeerId:a,timestamp:r,savedSize:s,totalSize:s,chunksCreated:0,totalChunks:0}):I>-1&&e[B].messages[I].savedSize!==s&&(e[B].messages[I].savedSize=s)}},deleteMessage:(A,e)=>{const{merkleRootHex:I,hashHex:g}=e.payload;if(!I&&!g)return;if(I&&I.length!==2*be)return;if(g&&g.length!==2*be)return;const t=A.length;for(let e=0;e<t;e++)if(I){const g=A[e].messages.findIndex(A=>A.merkleRootHex===I);g>-1&&A[e].messages.splice(g,1)}else if(g){const I=A[e].messages.findLastIndex(A=>A.sha512Hex===g);I>-1&&A[e].messages.splice(I,1)}},setOnlyConnectWithKnownPeers:(A,e)=>{const{roomId:I,onlyConnectWithKnownPeers:g}=e.payload,t=A.findIndex(A=>A.id===I);t>-1&&(A[t].onlyConnectWithKnownAddresses=g)},deleteRoom:(A,e)=>{const I=A.findIndex(A=>A.url===e.payload||A.id===e.payload);if(I>-1){const e=A[I].url;A[I]={url:e,id:"",connectingToPeers:!1,connectedToPeers:!1,canBeConnectionRelay:!0,onlyConnectWithKnownAddresses:!1,rtcConfig:Ze,peers:[],channels:[],messages:[]}}}}}),{setRoom:$e,setConnectingToPeers:AI,setConnectedToPeers:eI,setConnectionRelay:II,setOnlyConnectWithKnownPeers:gI,setPeer:tI,setChannel:iI,setIceServers:oI,setMessage:nI,setMessageAllChunks:CI,deletePeer:aI,deleteChannel:rI,deleteMessage:sI,deleteRoom:BI}=_e.actions;var cI=_e.reducer;const QI="wss://signaling.p2party.com/ws",EI=TA({name:"signalingServer",initialState:{isEstablishingConnection:!1,isConnected:!1,serverUrl:QI},reducers:{startConnecting:(A,e)=>{A.isEstablishingConnection=!0,A.serverUrl=e.payload??QI},connectionEstablished:A=>{A.isConnected=!0,A.isEstablishingConnection=!1},disconnect:A=>{A.isConnected=!1,A.isEstablishingConnection=!1}}}),lI=EI.actions;var wI=EI.reducer,dI=class extends Error{issues;constructor(A){super(A[0].message),this.name="SchemaError",this.issues=A}};function fI(A){return{status:A,isUninitialized:"uninitialized"===A,isLoading:"pending"===A,isSuccess:"fulfilled"===A,isError:"rejected"===A}}var hI=i;function uI(A,e){if(A===e||!(hI(A)&&hI(e)||Array.isArray(A)&&Array.isArray(e)))return e;const I=Object.keys(e),g=Object.keys(A);let t=I.length===g.length;const i=Array.isArray(e)?[]:{};for(const g of I)i[g]=uI(A[g],e[g]),t&&(t=A[g]===i[g]);return t?A:i}function yI(A){let e=0;for(const I in A)e++;return e}var DI=A=>[].concat(...A);function pI(A){return null!=A}function mI(A,e,I){return A.has(e)?A.get(e):A.set(e,I(e)).get(e)}var SI=()=>new Map,kI=class{constructor(A,e=void 0){this.value=A,this.meta=e}},MI=EA("__rtkq/focused"),FI=EA("__rtkq/unfocused"),KI=EA("__rtkq/online"),HI=EA("__rtkq/offline");function NI(A){return"query"===A.type}function UI(A){return"infinitequery"===A.type}function GI(A){return NI(A)||UI(A)}function YI(A,e,I,g,t,i){return"function"==typeof A?A(e,I,g,t).filter(pI).map(PI).map(i):Array.isArray(A)?A.map(PI).map(i):[]}function PI(A){return"string"==typeof A?{type:A}:A}var vI=Symbol("forceQueryFn"),bI=A=>"function"==typeof A[vI];var LI=class extends dI{constructor(A,e,I,g){super(A),this.value=e,this.schemaName=I,this._bqMeta=g}},JI=(A,e)=>Array.isArray(A)?A.includes(e):!!A;async function RI(A,e,I,g){const t=await A["~standard"].validate(e);if(t.issues)throw new LI(t.issues,e,I,g);return t.value}function xI(A){return A}var qI=(A={})=>({...A,[fA]:!0});function OI(A,{pages:e,pageParams:I},g){const t=e.length-1;return A.getNextPageParam(e[t],e,I[t],I,g)}function jI(A,{pages:e,pageParams:I},g){return A.getPreviousPageParam?.(e[0],e,I[0],I,g)}function TI(A,e,I,g){return YI(I[A.meta.arg.endpointName][e],NA(A)?A.payload:void 0,HA(A)?A.payload:void 0,A.meta.arg.originalArgs,"baseQueryMeta"in A.meta?A.meta.baseQueryMeta:void 0,g)}function zI(A,e,I){const g=A[e];g&&I(g)}function XI(A){return("arg"in A?A.arg.fixedCacheKey:A.fixedCacheKey)??A.requestId}function VI(A,e,I){const g=A[XI(e)];g&&I(g)}var WI={};function ZI({reducerPath:A,queryThunk:e,mutationThunk:I,serializeQueryArgs:g,context:{endpointDefinitions:t,apiUid:i,extractRehydrationInfo:o,hasRehydrationInfo:C},assertTagType:a,config:r}){const s=EA(`${A}/resetApiState`);function Q(A,e,I,g){A[e.queryCacheKey]??={status:"uninitialized",endpointName:e.endpointName},zI(A,e.queryCacheKey,A=>{A.status="pending",A.requestId=I&&A.requestId?A.requestId:g.requestId,void 0!==e.originalArgs&&(A.originalArgs=e.originalArgs),A.startedTimeStamp=g.startedTimeStamp;UI(t[g.arg.endpointName])&&"direction"in e&&(A.direction=e.direction)})}function l(A,e,I,g){zI(A,e.arg.queryCacheKey,A=>{if(A.requestId!==e.requestId&&!g)return;const{merge:i}=t[e.arg.endpointName];if(A.status="fulfilled",i)if(void 0!==A.data){const{fulfilledTimeStamp:g,arg:t,baseQueryMeta:o,requestId:n}=e;let C=AA(A.data,A=>i(A,I,{arg:t.originalArgs,baseQueryMeta:o,fulfilledTimeStamp:g,requestId:n}));A.data=C}else A.data=I;else A.data=t[e.arg.endpointName].structuralSharing??1?uI(E(A.data)?(E(o=A.data)||c(15),o[B].base_):A.data,I):I;var o;delete A.error,A.fulfilledTimeStamp=e.fulfilledTimeStamp})}const w=TA({name:`${A}/queries`,initialState:WI,reducers:{removeQueryResult:{reducer(A,{payload:{queryCacheKey:e}}){delete A[e]},prepare:hA()},cacheEntriesUpserted:{reducer(A,e){for(const I of e.payload){const{queryDescription:g,value:t}=I;Q(A,g,!0,{arg:g,requestId:e.meta.requestId,startedTimeStamp:e.meta.timestamp}),l(A,{arg:g,requestId:e.meta.requestId,fulfilledTimeStamp:e.meta.timestamp,baseQueryMeta:{}},t,!0)}},prepare:A=>({payload:A.map(A=>{const{endpointName:e,arg:I,value:i}=A,o=t[e];return{queryDescription:{type:"query",endpointName:e,originalArgs:A.arg,queryCacheKey:g({queryArgs:I,endpointDefinition:o,endpointName:e})},value:i}}),meta:{[fA]:!0,requestId:GA(),timestamp:Date.now()}})},queryResultPatched:{reducer(A,{payload:{queryCacheKey:e,patches:I}}){zI(A,e,A=>{A.data=IA(A.data,I.concat())})},prepare:hA()}},extraReducers(A){A.addCase(e.pending,(A,{meta:e,meta:{arg:I}})=>{Q(A,I,bI(I),e)}).addCase(e.fulfilled,(A,{meta:e,payload:I})=>{l(A,e,I,bI(e.arg))}).addCase(e.rejected,(A,{meta:{condition:e,arg:I,requestId:g},error:t,payload:i})=>{zI(A,I.queryCacheKey,A=>{if(e);else{if(A.requestId!==g)return;A.status="rejected",A.error=i??t}})}).addMatcher(C,(A,e)=>{const{queries:I}=o(e);for(const[e,g]of Object.entries(I))"fulfilled"!==g?.status&&"rejected"!==g?.status||(A[e]=g)})}}),d=TA({name:`${A}/mutations`,initialState:WI,reducers:{removeMutationResult:{reducer(A,{payload:e}){const I=XI(e);I in A&&delete A[I]},prepare:hA()}},extraReducers(A){A.addCase(I.pending,(A,{meta:e,meta:{requestId:I,arg:g,startedTimeStamp:t}})=>{g.track&&(A[XI(e)]={requestId:I,status:"pending",endpointName:g.endpointName,startedTimeStamp:t})}).addCase(I.fulfilled,(A,{payload:e,meta:I})=>{I.arg.track&&VI(A,I,A=>{A.requestId===I.requestId&&(A.status="fulfilled",A.data=e,A.fulfilledTimeStamp=I.fulfilledTimeStamp)})}).addCase(I.rejected,(A,{payload:e,error:I,meta:g})=>{g.arg.track&&VI(A,g,A=>{A.requestId===g.requestId&&(A.status="rejected",A.error=e??I)})}).addMatcher(C,(A,e)=>{const{mutations:I}=o(e);for(const[e,g]of Object.entries(I))"fulfilled"!==g?.status&&"rejected"!==g?.status||e===g?.requestId||(A[e]=g)})}}),f=TA({name:`${A}/invalidation`,initialState:{tags:{},keys:{}},reducers:{updateProvidedBy:{reducer(A,e){for(const{queryCacheKey:I,providedTags:g}of e.payload){h(A,I);for(const{type:e,id:t}of g){const g=(A.tags[e]??={})[t||"__internal_without_id"]??=[];g.includes(I)||g.push(I)}A.keys[I]=g}},prepare:hA()}},extraReducers(A){A.addCase(w.actions.removeQueryResult,(A,{payload:{queryCacheKey:e}})=>{h(A,e)}).addMatcher(C,(A,e)=>{const{provided:I}=o(e);for(const[e,g]of Object.entries(I.tags??{}))for(const[t,i]of Object.entries(g)){const g=(A.tags[e]??={})[t||"__internal_without_id"]??=[];for(const e of i){g.includes(e)||g.push(e),A.keys[e]=I.keys[e]}}}).addMatcher(mA(NA(e),HA(e)),(A,e)=>{u(A,[e])}).addMatcher(w.actions.cacheEntriesUpserted.match,(A,e)=>{u(A,e.payload.map(({queryDescription:A,value:e})=>({type:"UNKNOWN",payload:e,meta:{requestStatus:"fulfilled",requestId:"UNKNOWN",arg:A}})))})}});function h(A,e){const I=A.keys[e]??[];for(const g of I){const I=g.type,t=g.id??"__internal_without_id",i=A.tags[I]?.[t];i&&(A.tags[I][t]=i.filter(A=>A!==e))}delete A.keys[e]}function u(A,e){const I=e.map(A=>{const e=TI(A,"providesTags",t,a),{queryCacheKey:I}=A.meta.arg;return{queryCacheKey:I,providedTags:e}});f.caseReducers.updateProvidedBy(A,f.actions.updateProvidedBy(I))}const y=TA({name:`${A}/subscriptions`,initialState:WI,reducers:{updateSubscriptionOptions(A,e){},unsubscribeQueryResult(A,e){},internal_getRTKQSubscriptions(){}}}),D=TA({name:`${A}/internalSubscriptions`,initialState:WI,reducers:{subscriptionsUpdated:{reducer:(A,e)=>IA(A,e.payload),prepare:hA()}}}),p=TA({name:`${A}/config`,initialState:{online:"undefined"==typeof navigator||void 0===navigator.onLine||navigator.onLine,focused:"undefined"==typeof document||"hidden"!==document.visibilityState,middlewareRegistered:!1,...r},reducers:{middlewareRegistered(A,{payload:e}){A.middlewareRegistered="conflict"!==A.middlewareRegistered&&i===e||"conflict"}},extraReducers:A=>{A.addCase(KI,A=>{A.online=!0}).addCase(HI,A=>{A.online=!1}).addCase(MI,A=>{A.focused=!0}).addCase(FI,A=>{A.focused=!1}).addMatcher(C,A=>({...A}))}}),m=n({queries:w.reducer,mutations:d.reducer,provided:f.reducer,subscriptions:D.reducer,config:p.reducer});return{reducer:(A,e)=>m(s.match(e)?void 0:A,e),actions:{...p.actions,...w.actions,...y.actions,...D.actions,...d.actions,...f.actions,resetApiState:s}}}var _I=Symbol.for("RTKQ/skipToken"),$I={status:"uninitialized"},Ag=AA($I,()=>{}),eg=AA($I,()=>{});var Ig=WeakMap?new WeakMap:void 0,gg=({endpointName:A,queryArgs:e})=>{let I="";const g=Ig?.get(e);if("string"==typeof g)I=g;else{const A=JSON.stringify(e,(A,e)=>e=i(e="bigint"==typeof e?{$bigint:e.toString()}:e)?Object.keys(e).sort().reduce((A,I)=>(A[I]=e[I],A),{}):e);i(e)&&Ig?.set(e,A),I=A}return`${A}(${I})`};function tg(...A){return function(e){const I=nA(A=>e.extractRehydrationInfo?.(A,{reducerPath:e.reducerPath??"api"})),g={reducerPath:"api",keepUnusedDataFor:60,refetchOnMountOrArgChange:!1,refetchOnFocus:!1,refetchOnReconnect:!1,invalidationBehavior:"delayed",...e,extractRehydrationInfo:I,serializeQueryArgs(A){let I=gg;if("serializeQueryArgs"in A.endpointDefinition){const e=A.endpointDefinition.serializeQueryArgs;I=A=>{const I=e(A);return"string"==typeof I?I:gg({...A,queryArgs:I})}}else e.serializeQueryArgs&&(I=e.serializeQueryArgs);return I(A)},tagTypes:[...e.tagTypes||[]]},t={endpointDefinitions:{},batch(A){A()},apiUid:GA(),extractRehydrationInfo:I,hasRehydrationInfo:nA(A=>null!=I(A))},i={injectEndpoints:function(A){const e=A.endpoints({query:A=>({...A,type:"query"}),mutation:A=>({...A,type:"mutation"}),infiniteQuery:A=>({...A,type:"infinitequery"})});for(const[I,g]of Object.entries(e))if(!0!==A.overrideExisting&&I in t.endpointDefinitions){if("throw"===A.overrideExisting)throw new Error(Se(39))}else{t.endpointDefinitions[I]=g;for(const A of o)A.injectEndpoint(I,g)}return i},enhanceEndpoints({addTagTypes:A,endpoints:e}){if(A)for(const e of A)g.tagTypes.includes(e)||g.tagTypes.push(e);if(e)for(const[A,I]of Object.entries(e))"function"==typeof I?I(t.endpointDefinitions[A]):Object.assign(t.endpointDefinitions[A]||{},I);return i}},o=A.map(A=>A.init(i,g,t));return i.injectEndpoints({endpoints:e.endpoints})}}function ig(A,...e){return Object.assign(A,...e)}var og=({api:A,queryThunk:e,internalState:I,mwApi:g})=>{const t=`${A.reducerPath}/subscriptions`;let i=null,o=null;const{updateSubscriptionOptions:n,unsubscribeQueryResult:C}=A.internalActions,a=()=>I.currentSubscriptions,r={getSubscriptions:a,getSubscriptionCount:A=>{const e=a().get(A);return e?.size??0},isRequestSubscribed:(A,e)=>{const I=a();return!!I?.get(A)?.get(e)}};function s(A){return JSON.parse(JSON.stringify(Object.fromEntries([...A].map(([A,e])=>[A,Object.fromEntries(e)]))))}return(g,a)=>{if(i||(i=s(I.currentSubscriptions)),A.util.resetApiState.match(g))return i={},I.currentSubscriptions.clear(),o=null,[!0,!1];if(A.internalActions.internal_getRTKQSubscriptions.match(g))return[!1,r];const B=((I,g)=>{if(n.match(g)){const{queryCacheKey:A,requestId:e,options:t}=g.payload,i=I.get(A);return i?.has(e)&&i.set(e,t),!0}if(C.match(g)){const{queryCacheKey:A,requestId:e}=g.payload,t=I.get(A);return t&&t.delete(e),!0}if(A.internalActions.removeQueryResult.match(g))return I.delete(g.payload.queryCacheKey),!0;if(e.pending.match(g)){const{meta:{arg:A,requestId:e}}=g,t=mI(I,A.queryCacheKey,SI);return A.subscribe&&t.set(e,A.subscriptionOptions??t.get(e)??{}),!0}let t=!1;if(e.rejected.match(g)){const{meta:{condition:A,arg:e,requestId:i}}=g;if(A&&e.subscribe){const A=mI(I,e.queryCacheKey,SI);A.set(i,e.subscriptionOptions??A.get(i)??{}),t=!0}}return t})(I.currentSubscriptions,g);let c=!0;if(B){o||(o=setTimeout(()=>{const e=s(I.currentSubscriptions),[,g]=eA(i,()=>e);a.next(A.internalActions.subscriptionsUpdated(g)),i=e,o=null},500));const n="string"==typeof g.type&&!!g.type.startsWith(t),C=e.rejected.match(g)&&g.meta.condition&&!!g.meta.arg.subscribe;c=!n&&!C}return[c,!1]}},ng=({reducerPath:A,api:e,queryThunk:I,context:g,internalState:t,selectors:{selectQueryEntry:i,selectConfig:o},getRunningQueryThunk:n,mwApi:C})=>{const{removeQueryResult:a,unsubscribeQueryResult:r,cacheEntriesUpserted:s}=e.internalActions,B=t.runningQueries.get(C.dispatch),c=mA(r.match,I.fulfilled,I.rejected,s.match);function Q(A){const e=t.currentSubscriptions.get(A);if(!e)return!1;return e.size>0||void 0!==B?.[A]}const E={};function l(A,e,I){const g=e.getState();for(const t of A){const A=i(g,t);A?.endpointName&&w(t,A.endpointName,e,I)}}function w(A,e,I,t){const o=g.endpointDefinitions[e],C=o?.keepUnusedDataFor??t.keepUnusedDataFor;if(C===1/0)return;const r=Math.max(0,Math.min(C,2147482.647));if(!Q(A)){const e=E[A];e&&clearTimeout(e),E[A]=setTimeout(()=>{if(!Q(A)){const e=i(I.getState(),A);if(e?.endpointName){const A=I.dispatch(n(e.endpointName,e.originalArgs));A?.abort()}I.dispatch(a({queryCacheKey:A}))}delete E[A]},1e3*r)}}return(A,I,t)=>{const i=I.getState(),n=o(i);if(c(A)){let e;if(s.match(A))e=A.payload.map(A=>A.queryDescription.queryCacheKey);else{const{queryCacheKey:I}=r.match(A)?A.payload:A.meta.arg;e=[I]}l(e,I,n)}if(e.util.resetApiState.match(A))for(const[A,e]of Object.entries(E))e&&clearTimeout(e),delete E[A];if(g.hasRehydrationInfo(A)){const{queries:e}=g.extractRehydrationInfo(A);l(Object.keys(e),I,n)}}},Cg=new Error("Promise never resolved before cacheEntryRemoved."),ag=({api:A,reducerPath:e,context:I,queryThunk:g,mutationThunk:t,internalState:i,selectors:{selectQueryEntry:o,selectApiState:n}})=>{const C=UA(g),a=UA(t),r=NA(g,t),s={};function B(A,e,I){const g=s[A];g?.valueResolved&&(g.valueResolved({data:e,meta:I}),delete g.valueResolved)}function c(A){const e=s[A];e&&(delete s[A],e.cacheEntryRemoved())}function Q(e,g,t,i,o){const n=I.endpointDefinitions[e],C=n?.onCacheEntryAdded;if(!C)return;const a={},r=new Promise(A=>{a.cacheEntryRemoved=A}),B=Promise.race([new Promise(A=>{a.valueResolved=A}),r.then(()=>{throw Cg})]);B.catch(()=>{}),s[t]=a;const c=A.endpoints[e].select(GI(n)?g:t),Q=i.dispatch((A,e,I)=>I),E={...i,getCacheEntry:()=>c(i.getState()),requestId:o,extra:Q,updateCachedData:GI(n)?I=>i.dispatch(A.util.updateQueryData(e,g,I)):void 0,cacheDataLoaded:B,cacheEntryRemoved:r},l=C(g,E);Promise.resolve(l).catch(A=>{if(A!==Cg)throw A})}return(I,i,n)=>{const E=function(e){if(C(e))return e.meta.arg.queryCacheKey;if(a(e))return e.meta.arg.fixedCacheKey??e.meta.requestId;return A.internalActions.removeQueryResult.match(e)?e.payload.queryCacheKey:A.internalActions.removeMutationResult.match(e)?XI(e.payload):""}(I);function l(A,e,I,g){const t=o(n,e),C=o(i.getState(),e);!t&&C&&Q(A,g,e,i,I)}if(g.pending.match(I))l(I.meta.arg.endpointName,E,I.meta.requestId,I.meta.arg.originalArgs);else if(A.internalActions.cacheEntriesUpserted.match(I))for(const{queryDescription:A,value:e}of I.payload){const{endpointName:g,originalArgs:t,queryCacheKey:i}=A;l(g,i,I.meta.requestId,t),B(i,e,{})}else if(t.pending.match(I)){i.getState()[e].mutations[E]&&Q(I.meta.arg.endpointName,I.meta.arg.originalArgs,E,i,I.meta.requestId)}else if(r(I))B(E,I.payload,I.meta.baseQueryMeta);else if(A.internalActions.removeQueryResult.match(I)||A.internalActions.removeMutationResult.match(I))c(E);else if(A.util.resetApiState.match(I))for(const A of Object.keys(s))c(A)}},rg=({api:A,context:{apiUid:e},reducerPath:I})=>(I,g)=>{A.util.resetApiState.match(I)&&g.dispatch(A.internalActions.middlewareRegistered(e))},sg=({reducerPath:A,context:e,context:{endpointDefinitions:I},mutationThunk:g,queryThunk:t,api:i,assertTagType:o,refetchQuery:n,internalState:C})=>{const{removeQueryResult:a}=i.internalActions,r=mA(NA(g),HA(g)),s=mA(NA(g,t),KA(g,t));let B=[];function c(I,g){const t=g.getState(),o=t[A];if(B.push(...I),"delayed"===o.config.invalidationBehavior&&function(A){const{queries:e,mutations:I}=A;for(const A of[e,I])for(const e in A)if("pending"===A[e]?.status)return!0;return!1}(o))return;const r=B;if(B=[],0===r.length)return;const s=i.util.selectInvalidatedBy(t,r);e.batch(()=>{const A=Array.from(s.values());for(const{queryCacheKey:e}of A){const A=o.queries[e],I=mI(C.currentSubscriptions,e,SI);A&&(0===I.size?g.dispatch(a({queryCacheKey:e})):"uninitialized"!==A.status&&g.dispatch(n(A)))}})}return(A,e)=>{r(A)?c(TI(A,"invalidatesTags",I,o),e):s(A)?c([],e):i.util.invalidateTags.match(A)&&c(YI(A.payload,void 0,void 0,void 0,void 0,o),e)}},Bg=({reducerPath:A,queryThunk:e,api:I,refetchQuery:g,internalState:t})=>{const{currentPolls:i,currentSubscriptions:o}=t,n=new Set;let C=null;function a(A,e){n.add(A),C||(C=setTimeout(()=>{for(const A of n)s({queryCacheKey:A},e);n.clear(),C=null},0))}function r({queryCacheKey:e},I){const t=I.getState()[A],n=t.queries[e],C=o.get(e);if(!n||"uninitialized"===n.status)return;const{lowestPollingInterval:a,skipPollingIfUnfocused:s}=c(C);if(!Number.isFinite(a))return;const B=i.get(e);B?.timeout&&(clearTimeout(B.timeout),B.timeout=void 0);const Q=Date.now()+a;i.set(e,{nextPollTimestamp:Q,pollingInterval:a,timeout:setTimeout(()=>{!t.config.focused&&s||I.dispatch(g(n)),r({queryCacheKey:e},I)},a)})}function s({queryCacheKey:e},I){const g=I.getState()[A].queries[e],t=o.get(e);if(!g||"uninitialized"===g.status)return;const{lowestPollingInterval:n}=c(t);if(!Number.isFinite(n))return void B(e);const C=i.get(e),a=Date.now()+n;(!C||a<C.nextPollTimestamp)&&r({queryCacheKey:e},I)}function B(A){const e=i.get(A);e?.timeout&&clearTimeout(e.timeout),i.delete(A)}function c(A=new Map){let e=!1,I=Number.POSITIVE_INFINITY;for(const g of A.values())g.pollingInterval&&(I=Math.min(g.pollingInterval,I),e=g.skipPollingIfUnfocused||e);return{lowestPollingInterval:I,skipPollingIfUnfocused:e}}return(A,g)=>{(I.internalActions.updateSubscriptionOptions.match(A)||I.internalActions.unsubscribeQueryResult.match(A))&&a(A.payload.queryCacheKey,g),(e.pending.match(A)||e.rejected.match(A)&&A.meta.condition)&&a(A.meta.arg.queryCacheKey,g),(e.fulfilled.match(A)||e.rejected.match(A)&&!A.meta.condition)&&r(A.meta.arg,g),I.util.resetApiState.match(A)&&(!function(){for(const A of i.keys())B(A)}(),C&&(clearTimeout(C),C=null),n.clear())}},cg=({api:A,context:e,queryThunk:I,mutationThunk:g})=>{const t=FA(I,g),i=KA(I,g),o=NA(I,g),n={};return(I,g)=>{if(t(I)){const{requestId:t,arg:{endpointName:i,originalArgs:o}}=I.meta,C=e.endpointDefinitions[i],a=C?.onQueryStarted;if(a){const e={},I=new Promise((A,I)=>{e.resolve=A,e.reject=I});I.catch(()=>{}),n[t]=e;const r=A.endpoints[i].select(GI(C)?o:t),s=g.dispatch((A,e,I)=>I),B={...g,getCacheEntry:()=>r(g.getState()),requestId:t,extra:s,updateCachedData:GI(C)?e=>g.dispatch(A.util.updateQueryData(i,o,e)):void 0,queryFulfilled:I};a(o,B)}}else if(o(I)){const{requestId:A,baseQueryMeta:e}=I.meta;n[A]?.resolve({data:I.payload,meta:e}),delete n[A]}else if(i(I)){const{requestId:A,rejectedWithValue:e,baseQueryMeta:g}=I.meta;n[A]?.reject({error:I.payload??I.error,isUnhandledError:!e,meta:g}),delete n[A]}}};function Qg(A){const{reducerPath:e,queryThunk:I,api:g,context:t,internalState:i}=A,{apiUid:o}=t,n={invalidateTags:EA(`${e}/invalidateTags`)},C=A=>A.type.startsWith(`${e}/`),r=[rg,ng,sg,Bg,ag,cg];return{middleware:I=>{let n=!1;const B={...A,internalState:i,refetchQuery:s,isThisApiSliceAction:C,mwApi:I},c=r.map(A=>A(B)),Q=og(B),E=(({reducerPath:A,context:e,api:I,refetchQuery:g,internalState:t})=>{const{removeQueryResult:i}=I.internalActions;function o(I,o){const n=I.getState()[A],C=n.queries,a=t.currentSubscriptions;e.batch(()=>{for(const A of a.keys()){const e=C[A],t=a.get(A);if(!t||!e)continue;const r=[...t.values()];(r.some(A=>!0===A[o])||r.every(A=>void 0===A[o])&&n.config[o])&&(0===t.size?I.dispatch(i({queryCacheKey:A})):"uninitialized"!==e.status&&I.dispatch(g(e)))}})}return(A,e)=>{MI.match(A)&&o(e,"refetchOnFocus"),KI.match(A)&&o(e,"refetchOnReconnect")}})(B);return A=>i=>{if(!a(i))return A(i);n||(n=!0,I.dispatch(g.internalActions.middlewareRegistered(o)));const r={...I,next:A},s=I.getState(),[B,l]=Q(i,r,s);let w;if(w=B?A(i):l,I.getState()[e]&&(E(i,r,s),C(i)||t.hasRehydrationInfo(i)))for(const A of c)A(i,r,s);return w}},actions:n};function s(e){return A.api.endpoints[e.endpointName].initiate(e.originalArgs,{subscribe:!1,forceRefetch:!0})}}var Eg=Symbol(),lg=tg((({createSelector:A=aA}={})=>({name:Eg,init(e,{baseQuery:I,tagTypes:g,reducerPath:t,serializeQueryArgs:i,keepUnusedDataFor:o,refetchOnMountOrArgChange:n,refetchOnFocus:C,refetchOnReconnect:a,invalidationBehavior:r,onSchemaFailure:s,catchSchemaFailure:B,skipSchemaValidation:c},Q){_();const E=A=>A;Object.assign(e,{reducerPath:t,endpoints:{},internalActions:{onOnline:KI,onOffline:HI,onFocus:MI,onFocusLost:FI},util:{}});const w=function({serializeQueryArgs:A,reducerPath:e,createSelector:I}){const g=A=>Ag,t=A=>eg;return{buildQuerySelector:function(A,e){return a(A,e,i)},buildInfiniteQuerySelector:function(A,e){const{infiniteQueryOptions:I}=e;return a(A,e,function(A){const e={...A,...fI(A.status)},{isLoading:g,isError:t,direction:i}=e,o="forward"===i,n="backward"===i;return{...e,hasNextPage:r(I,e.data,e.originalArgs),hasPreviousPage:s(I,e.data,e.originalArgs),isFetchingNextPage:g&&o,isFetchingPreviousPage:g&&n,isFetchNextPageError:t&&o,isFetchPreviousPageError:t&&n}})},buildMutationSelector:function(){return A=>{let e;return e="object"==typeof A?XI(A)??_I:A,I(e===_I?t:A=>o(A)?.mutations?.[e]??eg,i)}},selectInvalidatedBy:function(A,I){const g=A[e],t=new Set;for(const A of I.filter(pI).map(PI)){const e=g.provided.tags[A.type];if(!e)continue;let I=(void 0!==A.id?e[A.id]:DI(Object.values(e)))??[];for(const A of I)t.add(A)}return DI(Array.from(t.values()).map(A=>{const e=g.queries[A];return e?[{queryCacheKey:A,endpointName:e.endpointName,originalArgs:e.originalArgs}]:[]}))},selectCachedArgsForQuery:function(A,e){return Object.values(n(A)).filter(A=>A?.endpointName===e&&"uninitialized"!==A.status).map(A=>A.originalArgs)},selectApiState:o,selectQueries:n,selectMutations:function(A){return o(A)?.mutations},selectQueryEntry:C,selectConfig:function(A){return o(A)?.config}};function i(A){return{...A,...fI(A.status)}}function o(A){return A[e]}function n(A){return o(A)?.queries}function C(A,e){return n(A)?.[e]}function a(e,t,i){return o=>{if(o===_I)return I(g,i);const n=A({queryArgs:o,endpointDefinition:t,endpointName:e});return I(A=>C(A,n)??Ag,i)}}function r(A,e,I){return!!e&&null!=OI(A,e,I)}function s(A,e,I){return!(!e||!A.getPreviousPageParam)&&null!=jI(A,e,I)}}({serializeQueryArgs:i,reducerPath:t,createSelector:A}),{selectInvalidatedBy:d,selectCachedArgsForQuery:f,buildQuerySelector:h,buildInfiniteQuerySelector:u,buildMutationSelector:y}=w;ig(e.util,{selectInvalidatedBy:d,selectCachedArgsForQuery:f});const{queryThunk:D,infiniteQueryThunk:p,mutationThunk:m,patchQueryData:S,updateQueryData:k,upsertQueryData:M,prefetch:F,buildMatchThunkActions:K}=function({reducerPath:A,baseQuery:e,context:{endpointDefinitions:I},serializeQueryArgs:g,api:t,assertTagType:i,selectors:o,onSchemaFailure:n,catchSchemaFailure:C,skipSchemaValidation:a}){function r(A,e,I=0){const g=[e,...A];return I&&g.length>I?g.slice(0,-1):g}function s(A,e,I=0){const g=[...A,e];return I&&g.length>I?g.slice(1):g}const B=(A,e)=>A.query&&A[e]?A[e]:xI,c=async(A,{signal:g,abort:t,rejectWithValue:i,fulfillWithValue:c,dispatch:E,getState:l,extra:w})=>{const d=I[A.endpointName],{metaSchema:f,skipSchemaValidation:h=a}=d;try{let u=xI;const y={signal:g,abort:t,dispatch:E,getState:l,extra:w,endpoint:A.endpointName,type:A.type,forced:"query"===A.type?Q(A,l()):void 0,queryCacheKey:"query"===A.type?A.queryCacheKey:void 0},D="query"===A.type?A[vI]:void 0;let p;const m=async(e,I,g,t)=>{if(null==I&&e.pages.length)return Promise.resolve({data:e});const i={queryArg:A.originalArgs,pageParam:I},o=await S(i),n=t?r:s;return{data:{pages:n(e.pages,o.data,g),pageParams:n(e.pageParams,I,g)},meta:o.meta}};async function S(A){let I;const{extraOptions:g,argSchema:t,rawResponseSchema:i,responseSchema:o}=d;if(t&&!JI(h,"arg")&&(A=await RI(t,A,"argSchema",{})),D?I=D():d.query?(u=B(d,"transformResponse"),I=await e(d.query(A),y,g)):I=await d.queryFn(A,y,g,A=>e(A,y,g)),I.error)throw new kI(I.error,I.meta);let{data:n}=I;i&&!JI(h,"rawResponse")&&(n=await RI(i,I.data,"rawResponseSchema",I.meta));let C=await u(n,I.meta,A);return o&&!JI(h,"response")&&(C=await RI(o,C,"responseSchema",I.meta)),{...I,data:C}}if("query"===A.type&&"infiniteQueryOptions"in d){const{infiniteQueryOptions:k}=d,{maxPages:M=1/0}=k;let F;const K={pages:[],pageParams:[]},H=o.selectQueryEntry(l(),A.queryCacheKey)?.data,N=Q(A,l())&&!A.direction||!H?K:H;if("direction"in A&&A.direction&&N.pages.length){const U="backward"===A.direction,G=(U?jI:OI)(k,N,A.originalArgs);F=await m(N,G,M,U)}else{const{initialPageParam:Y=k.initialPageParam}=A,P=H?.pageParams??[],v=P[0]??Y,b=P.length;F=await m(N,v,M),D&&(F={data:F.data.pages[0]});for(let L=1;L<b;L++){const J=OI(k,F.data,A.originalArgs);F=await m(F.data,J,M)}}p=F}else p=await S(A.originalArgs);return f&&!JI(h,"meta")&&p.meta&&(p.meta=await RI(f,p.meta,"metaSchema",p.meta)),c(p.data,qI({fulfilledTimeStamp:Date.now(),baseQueryMeta:p.meta}))}catch(R){let x=R;if(x instanceof kI){let q=B(d,"transformErrorResponse");const{rawErrorResponseSchema:O,errorResponseSchema:j}=d;let{value:T,meta:z}=x;try{O&&!JI(h,"rawErrorResponse")&&(T=await RI(O,T,"rawErrorResponseSchema",z)),f&&!JI(h,"meta")&&(z=await RI(f,z,"metaSchema",z));let X=await q(T,z,A.originalArgs);return j&&!JI(h,"errorResponse")&&(X=await RI(j,X,"errorResponseSchema",z)),i(X,qI({baseQueryMeta:z}))}catch(V){x=V}}try{if(x instanceof LI){const W={endpoint:A.endpointName,arg:A.originalArgs,type:A.type,queryCacheKey:"query"===A.type?A.queryCacheKey:void 0};d.onSchemaFailure?.(x,W),n?.(x,W);const{catchSchemaFailure:Z=C}=d;if(Z)return i(Z(x,W),qI({baseQueryMeta:x._bqMeta}))}}catch(_){x=_}throw console.error(x),x}};function Q(A,e){const I=o.selectQueryEntry(e,A.queryCacheKey),g=o.selectConfig(e).refetchOnMountOrArgChange,t=I?.fulfilledTimeStamp,i=A.forceRefetch??(A.subscribe&&g);return!!i&&(!0===i||(Number(new Date)-Number(t))/1e3>=i)}const E=()=>JA(`${A}/executeQuery`,c,{getPendingMeta({arg:A}){const e=I[A.endpointName];return qI({startedTimeStamp:Date.now(),...UI(e)?{direction:A.direction}:{}})},condition(A,{getState:e}){const g=e(),t=o.selectQueryEntry(g,A.queryCacheKey),i=t?.fulfilledTimeStamp,n=A.originalArgs,C=t?.originalArgs,a=I[A.endpointName],r=A.direction;return!(!bI(A)&&("pending"===t?.status||!Q(A,g)&&(!NI(a)||!a?.forceRefetch?.({currentArg:n,previousArg:C,endpointState:t,state:g}))&&i&&!r))},dispatchConditionRejection:!0}),w=E(),d=E(),f=JA(`${A}/executeMutation`,c,{getPendingMeta:()=>qI({startedTimeStamp:Date.now()})});function h(A){return e=>e?.meta?.arg?.endpointName===A}return{queryThunk:w,mutationThunk:f,infiniteQueryThunk:d,prefetch:(A,e,I)=>(g,i)=>{const o=(A=>"force"in A)(I)&&I.force,n=(A=>"ifOlderThan"in A)(I)&&I.ifOlderThan,C=(I=!0)=>{const g={forceRefetch:I,isPrefetch:!0};return t.endpoints[A].initiate(e,g)},a=t.endpoints[A].select(e)(i());if(o)g(C());else if(n){const A=a?.fulfilledTimeStamp;if(!A)return void g(C());(Number(new Date)-Number(new Date(A)))/1e3>=n&&g(C())}else g(C(!1))},updateQueryData:(A,e,I,g=!0)=>(i,o)=>{const n=t.endpoints[A].select(e)(o()),C={patches:[],inversePatches:[],undo:()=>i(t.util.patchQueryData(A,e,C.inversePatches,g))};if("uninitialized"===n.status)return C;let a;if("data"in n)if(l(n.data)){const[A,e,g]=eA(n.data,I);C.patches.push(...e),C.inversePatches.push(...g),a=A}else a=I(n.data),C.patches.push({op:"replace",path:[],value:a}),C.inversePatches.push({op:"replace",path:[],value:n.data});return 0===C.patches.length||i(t.util.patchQueryData(A,e,C.patches,g)),C},upsertQueryData:(A,e,I)=>g=>g(t.endpoints[A].initiate(e,{subscribe:!1,forceRefetch:!0,[vI]:()=>({data:I})})),patchQueryData:(A,e,o,n)=>(C,a)=>{const r=I[A],s=g({queryArgs:e,endpointDefinition:r,endpointName:A});if(C(t.internalActions.queryResultPatched({queryCacheKey:s,patches:o})),!n)return;const B=t.endpoints[A].select(e)(a()),c=YI(r.providesTags,B.data,void 0,e,{},i);C(t.internalActions.updateProvidedBy([{queryCacheKey:s,providedTags:c}]))},buildMatchThunkActions:function(A,e){return{matchPending:SA(FA(A),h(e)),matchFulfilled:SA(NA(A),h(e)),matchRejected:SA(KA(A),h(e))}}}}({baseQuery:I,reducerPath:t,context:Q,api:e,serializeQueryArgs:i,assertTagType:E,selectors:w,onSchemaFailure:s,catchSchemaFailure:B,skipSchemaValidation:c}),{reducer:H,actions:N}=ZI({context:Q,queryThunk:D,mutationThunk:m,serializeQueryArgs:i,reducerPath:t,assertTagType:E,config:{refetchOnFocus:C,refetchOnReconnect:a,refetchOnMountOrArgChange:n,keepUnusedDataFor:o,reducerPath:t,invalidationBehavior:r}});ig(e.util,{patchQueryData:S,updateQueryData:k,upsertQueryData:M,prefetch:F,resetApiState:N.resetApiState,upsertQueryEntries:N.cacheEntriesUpserted}),ig(e.internalActions,N);const U={currentSubscriptions:new Map,currentPolls:new Map,runningQueries:new Map,runningMutations:new Map},{buildInitiateQuery:G,buildInitiateInfiniteQuery:Y,buildInitiateMutation:P,getRunningMutationThunk:v,getRunningMutationsThunk:b,getRunningQueriesThunk:L,getRunningQueryThunk:J}=function({serializeQueryArgs:A,queryThunk:e,infiniteQueryThunk:I,mutationThunk:g,api:t,context:i,internalState:o}){const{runningQueries:n,runningMutations:C}=o,{unsubscribeQueryResult:a,removeMutationResult:r,updateSubscriptionOptions:s}=t.internalActions;return{buildInitiateQuery:function(A,e){return B(A,e)},buildInitiateInfiniteQuery:function(A,e){return B(A,e)},buildInitiateMutation:function(A){return(e,{track:I=!0,fixedCacheKey:t}={})=>(i,o)=>{const n=g({type:"mutation",endpointName:A,originalArgs:e,track:I,fixedCacheKey:t}),a=i(n),{requestId:s,abort:B,unwrap:c}=a,Q=(E=A=>({error:A}),a.unwrap().then(A=>({data:A})).catch(E));var E;const l=Object.assign(Q,{arg:a.arg,requestId:s,abort:B,unwrap:c,reset:()=>{i(r({requestId:s,fixedCacheKey:t}))}}),w=C.get(i)||{};return C.set(i,w),w[s]=l,l.then(()=>{delete w[s],yI(w)||C.delete(i)}),t&&(w[t]=l,l.then(()=>{w[t]===l&&(delete w[t],yI(w)||C.delete(i))})),l}},getRunningQueryThunk:function(e,I){return g=>{const t=i.endpointDefinitions[e],o=A({queryArgs:I,endpointDefinition:t,endpointName:e});return n.get(g)?.[o]}},getRunningMutationThunk:function(A,e){return A=>C.get(A)?.[e]},getRunningQueriesThunk:function(){return A=>Object.values(n.get(A)||{}).filter(pI)},getRunningMutationsThunk:function(){return A=>Object.values(C.get(A)||{}).filter(pI)}};function B(g,i){const o=(C,{subscribe:r=!0,forceRefetch:B,subscriptionOptions:c,[vI]:Q,...E}={})=>(l,w)=>{const d=A({queryArgs:C,endpointDefinition:i,endpointName:g});let f;const h={...E,type:"query",subscribe:r,forceRefetch:B,subscriptionOptions:c,endpointName:g,originalArgs:C,queryCacheKey:d,[vI]:Q};if(NI(i))f=e(h);else{const{direction:A,initialPageParam:e}=E;f=I({...h,direction:A,initialPageParam:e})}const u=t.endpoints[g].select(C),y=l(f),D=u(w()),{requestId:p,abort:m}=y,S=D.requestId!==p,k=n.get(l)?.[d],M=()=>u(w()),F=Object.assign(Q?y.then(M):S&&!k?Promise.resolve(D):Promise.all([k,y]).then(M),{arg:C,requestId:p,subscriptionOptions:c,queryCacheKey:d,abort:m,async unwrap(){const A=await F;if(A.isError)throw A.error;return A.data},refetch:()=>l(o(C,{subscribe:!1,forceRefetch:!0})),unsubscribe(){r&&l(a({queryCacheKey:d,requestId:p}))},updateSubscriptionOptions(A){F.subscriptionOptions=A,l(s({endpointName:g,requestId:p,queryCacheKey:d,options:A}))}});if(!k&&!S&&!Q){const A=(H=l,N={},(K=n).has(H)?K.get(H):K.set(H,N).get(H));A[d]=F,F.then(()=>{delete A[d],yI(A)||n.delete(l)})}var K,H,N;return F};return o}}({queryThunk:D,mutationThunk:m,infiniteQueryThunk:p,api:e,serializeQueryArgs:i,context:Q,internalState:U});ig(e.util,{getRunningMutationThunk:v,getRunningMutationsThunk:b,getRunningQueryThunk:J,getRunningQueriesThunk:L});const{middleware:R,actions:x}=Qg({reducerPath:t,context:Q,queryThunk:D,mutationThunk:m,infiniteQueryThunk:p,api:e,assertTagType:E,selectors:w,getRunningQueryThunk:J,internalState:U});return ig(e.util,x),ig(e,{reducer:H,middleware:R}),{name:Eg,injectEndpoint(A,I){const g=e,t=g.endpoints[A]??={};NI(I)&&ig(t,{name:A,select:h(A,I),initiate:G(A,I)},K(D,A)),"mutation"===I.type&&ig(t,{name:A,select:y(),initiate:P(A)},K(m,A)),UI(I)&&ig(t,{name:A,select:u(A,I),initiate:Y(A,I)},K(D,A))}}}}))());const wg=new Blob(['const e=(e,t)=>t.some(t=>e instanceof t);let t,a;const n=new WeakMap,o=new WeakMap,r=new WeakMap;let s={get(e,t,a){if(e instanceof IDBTransaction){if("done"===t)return n.get(e);if("store"===t)return a.objectStoreNames[1]?void 0:a.objectStore(a.objectStoreNames[0])}return d(e[t])},set:(e,t,a)=>(e[t]=a,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function i(e){s=e(s)}function c(e){return(a||(a=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(l(this),t),d(this.request)}:function(...t){return d(e.apply(l(this),t))}}function u(a){return"function"==typeof a?c(a):(a instanceof IDBTransaction&&function(e){if(n.has(e))return;const t=new Promise((t,a)=>{const n=()=>{e.removeEventListener("complete",o),e.removeEventListener("error",r),e.removeEventListener("abort",r)},o=()=>{t(),n()},r=()=>{a(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",o),e.addEventListener("error",r),e.addEventListener("abort",r)});n.set(e,t)}(a),e(a,t||(t=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(a,s):a)}function d(e){if(e instanceof IDBRequest)return function(e){const t=new Promise((t,a)=>{const n=()=>{e.removeEventListener("success",o),e.removeEventListener("error",r)},o=()=>{t(d(e.result)),n()},r=()=>{a(e.error),n()};e.addEventListener("success",o),e.addEventListener("error",r)});return r.set(t,e),t}(e);if(o.has(e))return o.get(e);const t=u(e);return t!==e&&(o.set(e,t),r.set(t,e)),t}const l=e=>r.get(e);const w=["get","getKey","getAll","getAllKeys","count"],h=["put","add","delete","clear"],m=new Map;function g(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(m.get(t))return m.get(t);const a=t.replace(/FromIndex$/,""),n=t!==a,o=h.includes(a);if(!(a in(n?IDBIndex:IDBObjectStore).prototype)||!o&&!w.includes(a))return;const r=async function(e,...t){const r=this.transaction(e,o?"readwrite":"readonly");let s=r.store;return n&&(s=s.index(t.shift())),(await Promise.all([s[a](...t),o&&r.done]))[0]};return m.set(t,r),r}i(e=>({...e,get:(t,a,n)=>g(t,a)||e.get(t,a,n),has:(t,a)=>!!g(t,a)||e.has(t,a)}));const k=["continue","continuePrimaryKey","advance"],y={},b=new WeakMap,f=new WeakMap,I={get(e,t){if(!k.includes(t))return e[t];let a=y[t];return a||(a=y[t]=function(...e){b.set(this,f.get(this)[t](...e))}),a}};async function*x(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;const a=new Proxy(t,I);for(f.set(a,t),r.set(a,l(t));t;)yield a,t=await(b.get(a)||t.continue()),b.delete(a)}function p(t,a){return a===Symbol.asyncIterator&&e(t,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===a&&e(t,[IDBIndex,IDBObjectStore])}i(e=>({...e,get:(t,a,n)=>p(t,a)?x:e.get(t,a,n),has:(t,a)=>p(t,a)||e.has(t,a)}));const D=64*Uint8Array.BYTES_PER_ELEMENT,B="p2party";async function S(){return function(e,t,{blocked:a,upgrade:n,blocking:o,terminated:r}={}){const s=indexedDB.open(e,t),i=d(s);return n&&s.addEventListener("upgradeneeded",e=>{n(d(s.result),e.oldVersion,e.newVersion,d(s.transaction),e)}),a&&s.addEventListener("blocked",e=>a(e.oldVersion,e.newVersion,e)),i.then(e=>{r&&e.addEventListener("close",()=>r()),o&&e.addEventListener("versionchange",e=>o(e.oldVersion,e.newVersion,e))}).catch(()=>{}),i}(B,16,{upgrade(e,t,a,n){if(e.objectStoreNames.contains("addressBook")){const e=n.objectStore("addressBook");e.indexNames.contains("username")||e.createIndex("username","username",{unique:!1}),e.indexNames.contains("peerId")||e.createIndex("peerId","peerId",{unique:!0}),e.indexNames.contains("peerPublicKey")||e.createIndex("peerPublicKey","peerPublicKey",{unique:!0})}else{const t=e.createObjectStore("addressBook",{keyPath:["peerId"]});t.createIndex("username","username",{unique:!1}),t.createIndex("peerId","peerId",{unique:!0}),t.createIndex("peerPublicKey","peerPublicKey",{unique:!0})}if(e.objectStoreNames.contains("blacklist")){const e=n.objectStore("blacklist");e.indexNames.contains("username")||e.createIndex("username","username",{unique:!1}),e.indexNames.contains("peerId")||e.createIndex("peerId","peerId",{unique:!0}),e.indexNames.contains("peerPublicKey")||e.createIndex("peerPublicKey","peerPublicKey",{unique:!0})}else{const t=e.createObjectStore("blacklist",{keyPath:["peerId"]});t.createIndex("username","username",{unique:!1}),t.createIndex("peerId","peerId",{unique:!0}),t.createIndex("peerPublicKey","peerPublicKey",{unique:!0})}if(e.objectStoreNames.contains("uniqueRoom")){const e=n.objectStore("uniqueRoom");e.indexNames.contains("roomUrl")||e.createIndex("roomUrl","roomUrl",{unique:!0}),e.indexNames.contains("roomId")||e.createIndex("roomId","roomId",{unique:!0})}else{const t=e.createObjectStore("uniqueRoom",{keyPath:["roomId"]});t.createIndex("roomUrl","roomUrl",{unique:!0}),t.createIndex("roomId","roomId",{unique:!0})}if(e.objectStoreNames.contains("messageData")){const e=n.objectStore("messageData");e.indexNames.contains("roomId")||e.createIndex("roomId","roomId",{unique:!1}),e.indexNames.contains("hash")||e.createIndex("hash","hash",{unique:!1}),e.indexNames.contains("merkleRoot")||e.createIndex("merkleRoot","merkleRoot",{unique:!0}),e.indexNames.contains("fromPeerId")||e.createIndex("fromPeerId","fromPeerId",{unique:!1})}else{const t=e.createObjectStore("messageData",{keyPath:["timestamp","roomId","merkleRoot"]});t.createIndex("roomId","roomId",{unique:!1}),t.createIndex("hash","hash",{unique:!1}),t.createIndex("merkleRoot","merkleRoot",{unique:!0}),t.createIndex("fromPeerId","fromPeerId",{unique:!1})}if(e.objectStoreNames.contains("chunks")){const e=n.objectStore("chunks");e.indexNames.contains("merkleRoot")||e.createIndex("merkleRoot","merkleRoot",{unique:!1}),e.indexNames.contains("hash")||e.createIndex("hash","hash",{unique:!1})}else{const t=e.createObjectStore("chunks",{keyPath:["merkleRoot","chunkIndex"]});t.createIndex("merkleRoot","merkleRoot",{unique:!1}),t.createIndex("hash","hash",{unique:!1})}if(e.objectStoreNames.contains("newChunks")){const e=n.objectStore("newChunks");e.indexNames.contains("hash")||e.createIndex("hash","hash",{unique:!1}),e.indexNames.contains("merkleRoot")||e.createIndex("merkleRoot","merkleRoot",{unique:!1}),e.indexNames.contains("realChunkHash")||e.createIndex("realChunkHash","realChunkHash",{unique:!0})}else{const t=e.createObjectStore("newChunks",{keyPath:["hash","chunkIndex"]});t.createIndex("hash","hash",{unique:!1}),t.createIndex("merkleRoot","merkleRoot",{unique:!1}),t.createIndex("realChunkHash","realChunkHash",{unique:!0})}if(e.objectStoreNames.contains("sendQueue")){const e=n.objectStore("sendQueue");e.indexNames.contains("labelPeer")||e.createIndex("labelPeer",["label","toPeerId"],{unique:!1})}else{e.createObjectStore("sendQueue",{keyPath:["position","label","toPeerId"]}).createIndex("labelPeer",["label","toPeerId"],{unique:!1})}}})}async function R(){await function(e,{blocked:t}={}){const a=indexedDB.deleteDatabase(e);return t&&a.addEventListener("blocked",e=>t(e.oldVersion,e)),d(a).then(()=>{})}(B,{blocked(){console.error("DB deletion BLOCKED")}})}onmessage=async e=>{const t=e.data,{id:a,method:n}=t;try{let e;switch(n){case"getDBAddressBookEntry":e=await async function(e,t){if(!e&&!t)return;if(e&&e.length<10&&!t)return;if(t&&64!==t.length&&!e)return;const a=await S();try{const n=a.transaction("addressBook","readonly"),o=e?n.objectStore("addressBook").index("peerId"):n.objectStore("addressBook").index("peerPublicKey"),r=e?await o.get(e):await o.get(t);return await n.done,a.close(),r?{username:r.username,peerId:r.peerId,peerPublicKey:r.peerPublicKey}:void 0}catch(e){return void a.close()}}(...t.args);break;case"getAllDBAddressBookEntries":e=await async function(){try{const e=await S(),t=await e.getAll("addressBook");return e.close(),t}catch(e){return[]}}(...t.args);break;case"setDBAddressBookEntry":e=await async function(e,t,a){try{const n=await S(),o=n.transaction(["addressBook"],"readwrite"),r=o.objectStore("addressBook"),s=r.index("peerId"),i=r.index("peerPublicKey"),c=await s.get(t),u=await i.get(a);(!c&&!u||c&&!u||!c&&u)&&await r.put({username:e,peerId:t,peerPublicKey:a,dateAdded:Date.now()}),await o.done,n.close()}catch(e){console.error(e)}}(...t.args);break;case"deleteDBAddressBookEntry":e=await async function(e,t,a){const n=!e||0===e.length,o=!t||t.length<10,r=!a||64!==a.length;if(n&&o&&r)throw new Error("Cannot delete address book with no data");let s=t??"";try{const n=await S(),i=n.transaction("addressBook","readwrite"),c=i.objectStore("addressBook");if(o)if(r){const t=c.index("username"),a=await t.getKey(e);if(a){const n=await t.get(e);s=n?.peerId??"",await c.delete(a)}}else{const e=c.index("peerPublicKey"),t=await e.getKey(a);if(t){const n=await e.get(a);s=n?.peerId??"",await c.delete(t)}}else{const e=c.index("peerId"),a=await e.getKey(t);a&&await c.delete(a)}await i.done,n.close()}catch{}return s}(...t.args);break;case"getDBPeerIsBlacklisted":e=await async function(e,t){if(!e&&!t)return!1;if(e&&e.length<10&&!t)return!1;if(t&&64!==t.length&&!e)return!1;try{const a=await S(),n=a.transaction("blacklist","readonly"),o=e?n.objectStore("blacklist").index("peerId"):n.objectStore("blacklist").index("peerPublicKey"),r=e?await o.get(e):await o.get(t);return await n.done,a.close(),!!r}catch(e){return!1}}(...t.args);break;case"getAllDBBlacklisted":e=await async function(){const e=await S();try{const t=await e.getAll("blacklist");return e.close(),t}catch(t){return e.close(),[]}}(...t.args);break;case"setDBPeerInBlacklist":e=await async function(e,t){try{const a=await S(),n=a.transaction(["blacklist"],"readwrite"),o=n.objectStore("blacklist"),r=o.index("peerId"),s=o.index("peerPublicKey"),i=await r.get(e),c=await s.get(t);(!i&&!c||i&&!c||!i&&c)&&await o.put({peerId:e,peerPublicKey:t,dateAdded:Date.now()}),await n.done,a.close()}catch(e){console.error(e)}}(...t.args);break;case"deleteDBPeerFromBlacklist":e=await async function(e,t){const a=!e||e.length<10,n=!t||64!==t.length;if(a&&n)throw new Error("Cannot delete blacklisted with no data");try{const n=await S(),o=n.transaction("blacklist","readwrite"),r=o.objectStore("blacklist");if(a){const e=r.index("peerPublicKey"),a=await e.getKey(t);a&&await r.delete(a)}else{const t=r.index("peerId"),a=await t.getKey(e);a&&await r.delete(a)}await o.done,n.close()}catch(e){console.error(e)}}(...t.args);break;case"getAllDBUniqueRooms":e=await async function(){const e=await S();try{const t=await e.getAll("uniqueRoom");return e.close(),t}catch(t){return e.close(),[]}}(...t.args);break;case"setDBUniqueRoom":e=await async function(e,t){try{const a=await S(),n=a.transaction(["uniqueRoom"],"readwrite"),o=n.objectStore("uniqueRoom"),r=o.index("roomUrl"),s=o.index("roomId"),i=await r.get(e),c=await s.get(t);if(!i&&!c){const a=Date.now();await o.put({roomId:t,roomUrl:e,messageCount:0,lastMessageMerkleRoot:"",createdAt:a,updatedAt:a})}await n.done,a.close()}catch(e){console.error(e)}}(...t.args);break;case"getDBMessageData":e=await async function(e,t){try{const a=await S(),n=a.transaction(["messageData"],"readonly"),o=n.objectStore("messageData"),r=o.index("merkleRoot"),s=o.index("hash");if(e&&e.length===2*D){const o=await r.get(e);if(o)return await n.done,a.close(),o;if(t&&t.length===2*D){const e=await s.get(t);return await n.done,a.close(),e}return await n.done,void a.close()}if(t&&t.length===2*D){const e=await s.get(t);return await n.done,a.close(),e}return await n.done,void a.close()}catch(e){return void console.error(e)}}(...t.args);break;case"getDBRoomMessageData":e=await async function(e){const t=await S(),a=await t.getAllFromIndex("messageData","roomId",e);t.close();const n=a.length,o=[];for(let t=0;t<n;t++)o.push({roomId:e,merkleRoot:a[t].merkleRoot,hash:a[t].hash,fromPeerId:a[t].fromPeerId,filename:a[t].filename,messageType:a[t].messageType,savedSize:a[t].savedSize,totalSize:a[t].totalSize,channelLabel:a[t].channelLabel,timestamp:a[t].timestamp});return o}(...t.args);break;case"setDBRoomMessageData":e=await async function(e,t,a,n,o,r,s,i,c,u){try{const d=await S(),l=d.transaction(["messageData","uniqueRoom"],"readwrite"),w=l.objectStore("messageData"),h=await w.index("merkleRoot").get(t),m=h?.savedSize??0;try{await w.put({roomId:e,timestamp:u,merkleRoot:t,hash:a,fromPeerId:n,filename:i,messageType:s,savedSize:m<r?m+o:r,totalSize:r,channelLabel:c})}catch(e){throw await l.done,d.close(),e}const g=l.objectStore("uniqueRoom"),k=await g.index("roomId").get(e);if(k&&k.lastMessageMerkleRoot!==t)try{await g.put({...k,lastMessageMerkleRoot:t,messageCount:k.messageCount+1,updatedAt:u})}catch(e){throw await l.done,d.close(),e}await l.done,d.close()}catch(e){throw console.error(e),e}}(...t.args);break;case"getDBChunk":e=await async function(e,t){const a=await S(),n=await a.get("chunks",[e,t]);return a.close(),n?.data}(...t.args);break;case"existsDBChunk":e=await async function(e,t){const a=await S(),n=await a.count("chunks",[e,t]);return a.close(),n>0}(...t.args);break;case"getDBNewChunk":e=await async function(e,t){try{const a=await S(),n=t??-1;if(n>-1){const t=await a.get("newChunks",[e,n]);return a.close(),t}{const t=a.transaction("newChunks"),n=t.objectStore("newChunks").index("realChunkHash"),o=await n.get(e);return await t.done,a.close(),o}}catch(e){return void console.error(e)}}(...t.args);break;case"existsDBNewChunk":e=await async function(e,t){const a=await S(),n=await a.count("newChunks",[e,t]);return a.close(),n>0}(...t.args);break;case"getDBSendQueue":e=await async function(e,t,a){const n=await S();if(a){const o=await n.get("sendQueue",[a,e,t]);return n.close(),o?[o]:[]}const o=n.transaction("sendQueue","readonly").objectStore("sendQueue").index("labelPeer"),r=IDBKeyRange.only([e,t]),s=await o.getAll(r);return n.close(),s}(...t.args);break;case"getDBAllChunks":e=await async function(e,t){try{const a=await S(),n=a.transaction("chunks","readonly"),o=n.objectStore("chunks"),r=o.index("hash"),s=o.index("merkleRoot");if(e&&e.length===2*D){const t=await s.getAll(e);return 0===t.length?(await n.done,a.close(),[]):(await n.done,a.close(),t)}if(t&&t.length===2*D){const e=await r.getAll(t);return await n.done,a.close(),e}return await n.done,a.close(),[]}catch(e){return console.error(e),[]}}(...t.args);break;case"getDBAllChunksCount":e=await async function(e,t){try{const a=await S(),n=a.transaction(["chunks"],"readonly"),o=n.objectStore("chunks"),r=o.index("hash"),s=o.index("merkleRoot");if(t&&t.length===2*D){const o=await r.count(t);if(0===o){if(e&&e.length===2*D){const t=await s.count(e);return await n.done,a.close(),t}return await n.done,a.close(),0}return await n.done,a.close(),o}if(e&&e.length===2*D){const t=await s.count(e);return await n.done,a.close(),t}return await n.done,a.close(),0}catch(e){return 0}}(...t.args);break;case"setDBChunk":e=await async function(e){const t=await S();try{await t.add("chunks",e)}catch(e){}t.close()}(...t.args);break;case"getDBAllNewChunks":e=await async function(e,t){if(!e&&!t)return[];if(e?.length!==2*D&&t?.length!==2*D)return[];const a=await S();if((e?await a.countFromIndex("newChunks","hash",e):await a.countFromIndex("newChunks","merkleRoot",t))>0){const n=e?await a.getAllFromIndex("newChunks","hash",e):await a.getAllFromIndex("newChunks","merkleRoot",t);return a.close(),n}{const n=a.transaction("newChunks","readonly").objectStore("newChunks"),o=e?n.index("hash"):n.index("merkleRoot"),r=e?IDBKeyRange.only(e):IDBKeyRange.only(t),s=await o.getAll(r);return a.close(),s}}(...t.args);break;case"getDBAllNewChunksCount":e=await async function(e){const t=await S(),a=await t.countFromIndex("newChunks","hash",e);return t.close(),a}(...t.args);break;case"setDBNewChunk":e=await async function(e){const t=await S();await t.put("newChunks",e),t.close()}(...t.args);break;case"setDBSendQueue":e=await async function(e){const t=await S();await t.put("sendQueue",e),t.close()}(...t.args);break;case"countDBSendQueue":e=await async function(e,t){const a=await S(),n=a.transaction("sendQueue","readonly").objectStore("sendQueue").index("labelPeer"),o=IDBKeyRange.only([e,t]),r=await n.count(o);return a.close(),r}(...t.args);break;case"deleteDBChunk":e=await async function(e,t){try{const a=await S(),n=a.transaction("chunks","readwrite"),o=n.objectStore("chunks");if(t){const a=IDBKeyRange.only([e,t]);await o.delete(a)}else{const t=o.index("hash"),a=await t.getAllKeys(e),n=a.length;if(0===n){const t=o.index("merkleRoot"),a=await t.getAllKeys(e),n=a.length;for(let e=0;e<n;e++)await o.delete(a[e])}else for(let e=0;e<n;e++)await o.delete(a[e])}await n.done,a.close()}catch(e){}}(...t.args);break;case"deleteDBNewChunk":e=await async function(e,t,a,n){try{const o=await S(),r=o.transaction("newChunks","readwrite"),s=r.objectStore("newChunks");if(e){const t=s.index("merkleRoot"),a=await t.getAllKeys(e),n=a.length;for(let e=0;e<n;e++)await s.delete(a[e])}else if(a&&n)await s.delete([a,n]);else if(a){const e=s.index("hash"),t=await e.getAllKeys(a),n=t.length;for(let e=0;e<n;e++)await s.delete(t[e])}else if(t){const e=s.index("realChunkHash"),a=await e.getKey(t);a&&await s.delete(a)}await r.done,o.close()}catch(e){console.error(e)}}(...t.args);break;case"deleteDBMessageData":e=await async function(e){try{const t=await S(),a=t.transaction(["messageData","uniqueRoom"],"readwrite"),n=a.objectStore("messageData"),o=a.objectStore("uniqueRoom"),r=n.index("merkleRoot"),s=await r.getAllKeys(e),i=s.length;let c="";for(let e=0;e<i;e++){if(0===e||0===c.length){const t=await n.get(s[e]);c=t?.roomId??""}await n.delete(s[e])}if(c.length>0){const e=o.index("roomId"),t=await e.get(c);if(t){const e=n.index("roomId"),a=await e.getAllKeys(c),r=a.length,s=r>0?await n.get(a[r-1]):void 0;await o.put({...t,messageCount:t.messageCount>0?t.messageCount-1:0,updatedAt:s?.timestamp??Date.now(),lastMessageMerkleRoot:s?.merkleRoot??""})}}await a.done,t.close()}catch(e){}}(...t.args);break;case"deleteDBUniqueRoom":e=await async function(e){try{const t=await S(),a=t.transaction("uniqueRoom","readwrite"),n=a.objectStore("uniqueRoom"),o=n.index("roomId"),r=await o.getKey(e);r&&await n.delete(r),await a.done,t.close()}catch(e){}}(...t.args);break;case"deleteDBSendQueue":e=await async function(e,t,a){try{const n=await S();if(a)await n.delete("sendQueue",[a,e,t]);else{const a=IDBKeyRange.only([e,t]);await n.delete("sendQueue",a)}n.close()}catch(e){}}(...t.args);break;case"deleteDB":e=await R();break;default:return void postMessage({id:a,error:"Method not found"})}postMessage({id:a,result:e})}catch(e){postMessage({id:a,error:String(e)})}};\n//# sourceMappingURL=db.worker.js.map\n'],{type:"application/javascript"}),dg=new Worker(URL.createObjectURL(wg),{type:"module"});let fg=0;const hg=new Map;function ug(A,...e){return new Promise((I,g)=>{const t=++fg;hg.set(t,{resolve:I,reject:g}),dg.postMessage({id:t,method:A,args:e})})}dg.onmessage=A=>{const{id:e,result:I,error:g}=A.data,t=hg.get(e);t&&(hg.delete(e),g?t.reject(g):t.resolve(I))};const yg=(A,e)=>ug("getDBAddressBookEntry",A,e),Dg=(A,e)=>ug("getDBPeerIsBlacklisted",A,e),pg=()=>ug("getAllDBUniqueRooms"),mg=(A,e)=>ug("getDBMessageData",A,e),Sg=A=>ug("getDBRoomMessageData",A),kg=(A,e,I,g,t,i,o,n,C,a)=>ug("setDBRoomMessageData",A,e,I,g,t,i,o,n,C,a),Mg=(A,e)=>ug("getDBNewChunk",A,e),Fg=(A,e)=>ug("getDBSendQueue",A,e),Kg=(A,e)=>ug("getDBAllChunks",A,e),Hg=A=>ug("setDBChunk",A),Ng=A=>ug("setDBNewChunk",A),Ug=A=>ug("setDBSendQueue",A),Gg=(A,e)=>ug("deleteDBChunk",A,e),Yg=(A,e,I,g)=>ug("deleteDBNewChunk",A,e,I,g),Pg=(A,e,I)=>ug("deleteDBSendQueue",A,e,I),vg={Text:1,ImagePNG:2,ImageJPEG:3,ImageJPG:4,ImageGIF:5,ImageBMP:6,ImageTIFF:7,ImageSVG:8,ImageWEBP:9,ImageHEIC:10,DocumentPDF:11,DocumentDOC:12,DocumentDOCX:13,DocumentXLS:14,DocumentXLSX:15,DocumentPPT:16,DocumentPPTX:17,DocumentTXT:18,DocumentRTF:19,DocumentODT:20,AudioMP3:21,AudioWAV:22,AudioAAC:23,AudioFLAC:24,AudioOGG:25,AudioM4A:26,VideoMP4:27,VideoAVI:28,VideoMKV:29,VideoMOV:30,VideoWMV:31,VideoFLV:32,VideoWEBM:33,CompressedZIP:34,CompressedRAR:35,Compressed7Z:36,CompressedTAR:37,CompressedGZ:38,CodeHTML:39,CodeCSS:40,CodeJS:41,CodeJSX:42,CodeTS:43,CodeTSX:44,CodeJSON:45,CodeXML:46,CodePY:47,CodeJAVA:48,CodeC:49,CodeCPP:50,CodeCS:51,CodeRB:52,CodePHP:53,CodeSQL:54,EbookEPUB:55,EbookMOBI:56,EbookAZW:57,FontTTF:58,FontOTF:59,ImageICO:60,ExecutableEXE:61,ExecutableDMG:62,ExecutableAPK:63,Unknown:64},bg={Text:"Text",Image:"Image",Document:"Document",Audio:"Audio",Video:"Video",Compressed:"Compressed",Code:"Code",Ebook:"Ebook",Font:"Font",Executable:"Executable",Unknown:"Unknown"},Lg=A=>{switch(A){case vg.ImagePNG:return"png";case vg.ImageJPEG:return"jpeg";case vg.ImageJPG:return"jpg";case vg.ImageGIF:return"gif";case vg.ImageBMP:return"bmp";case vg.ImageTIFF:return"tiff";case vg.ImageSVG:return"svg";case vg.ImageWEBP:return"webp";case vg.ImageHEIC:return"heic";case vg.DocumentPDF:return"pdf";case vg.DocumentDOC:return"doc";case vg.DocumentDOCX:return"docx";case vg.DocumentXLS:return"xls";case vg.DocumentXLSX:return"xlsx";case vg.DocumentPPT:return"ppt";case vg.DocumentPPTX:return"pptx";case vg.DocumentTXT:return"txt";case vg.DocumentRTF:return"rtf";case vg.DocumentODT:return"odt";case vg.AudioMP3:return"mp3";case vg.AudioWAV:return"wav";case vg.AudioAAC:return"aac";case vg.AudioFLAC:return"flac";case vg.AudioOGG:return"ogg";case vg.AudioM4A:return"m4a";case vg.VideoMP4:return"mp4";case vg.VideoAVI:return"avi";case vg.VideoMKV:return"mkv";case vg.VideoMOV:return"mov";case vg.VideoWMV:return"wmv";case vg.VideoFLV:return"flv";case vg.VideoWEBM:return"webm";case vg.CompressedZIP:return"zip";case vg.CompressedRAR:return"rar";case vg.Compressed7Z:return"7z";case vg.CompressedTAR:return"tar";case vg.CompressedGZ:return"gz";case vg.CodeHTML:return"html";case vg.CodeCSS:return"css";case vg.CodeJS:return"js";case vg.CodeTS:return"ts";case vg.CodeJSX:return"jsx";case vg.CodeTSX:return"tsx";case vg.CodeJSON:return"json";case vg.CodeXML:return"xml";case vg.CodePY:return"py";case vg.CodeJAVA:return"java";case vg.CodeC:return"c";case vg.CodeCPP:return"cpp";case vg.CodeCS:return"cs";case vg.CodeRB:return"rb";case vg.CodePHP:return"php";case vg.CodeSQL:return"sql";case vg.EbookEPUB:return"epub";case vg.EbookMOBI:return"mobi";case vg.EbookAZW:return"azw";case vg.FontTTF:return"ttf";case vg.FontOTF:return"otf";case vg.ImageICO:return"ico";case vg.ExecutableEXE:return"exe";case vg.ExecutableDMG:return"dmg";case vg.ExecutableAPK:return"apk";default:return""}},Jg=A=>{switch(A){case vg.Text:return"text/plain";case vg.ImagePNG:return"image/png";case vg.ImageJPEG:case vg.ImageJPG:return"image/jpeg";case vg.ImageGIF:return"image/gif";case vg.ImageBMP:return"image/bmp";case vg.ImageTIFF:return"image/tiff";case vg.ImageSVG:return"image/svg+xml";case vg.ImageWEBP:return"image/webp";case vg.ImageHEIC:return"image/heic";case vg.ImageICO:return"image/vnd.microsoft.icon";case vg.DocumentPDF:return"application/pdf";case vg.DocumentDOC:return"application/msword";case vg.DocumentDOCX:return"application/vnd.openxmlformats-officedocument.wordprocessingml.document";case vg.DocumentXLS:return"application/vnd.ms-excel";case vg.DocumentXLSX:return"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";case vg.DocumentPPT:return"application/vnd.ms-powerpoint";case vg.DocumentPPTX:return"application/vnd.openxmlformats-officedocument.presentationml.presentation";case vg.DocumentTXT:return"text/plain";case vg.DocumentRTF:return"application/rtf";case vg.DocumentODT:return"application/vnd.oasis.opendocument.text";case vg.AudioMP3:return"audio/mpeg";case vg.AudioWAV:return"audio/wav";case vg.AudioAAC:return"audio/aac";case vg.AudioFLAC:return"audio/flac";case vg.AudioOGG:return"audio/ogg";case vg.AudioM4A:return"audio/mp4";case vg.VideoMP4:return"video/mp4";case vg.VideoAVI:return"video/x-msvideo";case vg.VideoMKV:return"video/x-matroska";case vg.VideoMOV:return"video/quicktime";case vg.VideoWMV:return"video/x-ms-wmv";case vg.VideoFLV:return"video/x-flv";case vg.VideoWEBM:return"video/webm";case vg.CompressedZIP:return"application/zip";case vg.CompressedRAR:return"application/vnd.rar";case vg.Compressed7Z:return"application/x-7z-compressed";case vg.CompressedTAR:return"application/x-tar";case vg.CompressedGZ:return"application/gzip";case vg.CodeHTML:return"text/html";case vg.CodeCSS:return"text/css";case vg.CodeJS:case vg.CodeJSX:return"application/javascript";case vg.CodeTS:case vg.CodeTSX:return"application/typescript";case vg.CodeJSON:return"application/json";case vg.CodeXML:return"application/xml";case vg.CodePY:return"text/x-python";case vg.CodeJAVA:return"text/x-java-source";case vg.CodeC:return"text/x-c";case vg.CodeCPP:return"text/x-c++";case vg.CodeCS:return"text/plain";case vg.CodeRB:return"text/x-ruby";case vg.CodePHP:return"application/x-httpd-php";case vg.CodeSQL:return"application/sql";case vg.EbookEPUB:return"application/epub+zip";case vg.EbookMOBI:return"application/x-mobipocket-ebook";case vg.EbookAZW:return"application/vnd.amazon.ebook";case vg.FontTTF:return"font/ttf";case vg.FontOTF:return"font/otf";case vg.ExecutableEXE:return"application/vnd.microsoft.portable-executable";case vg.ExecutableDMG:return"application/x-apple-diskimage";case vg.ExecutableAPK:return"application/vnd.android.package-archive";default:return"application/octet-stream"}},Rg=A=>{switch(A){case vg.Text:return bg.Text;case vg.ImagePNG:case vg.ImageJPEG:case vg.ImageJPG:case vg.ImageGIF:case vg.ImageBMP:case vg.ImageTIFF:case vg.ImageSVG:case vg.ImageWEBP:case vg.ImageHEIC:case vg.ImageICO:return bg.Image;case vg.DocumentPDF:case vg.DocumentDOC:case vg.DocumentDOCX:case vg.DocumentXLS:case vg.DocumentXLSX:case vg.DocumentPPT:case vg.DocumentPPTX:case vg.DocumentTXT:case vg.DocumentRTF:case vg.DocumentODT:return bg.Document;case vg.AudioMP3:case vg.AudioWAV:case vg.AudioAAC:case vg.AudioFLAC:case vg.AudioOGG:case vg.AudioM4A:return bg.Audio;case vg.VideoMP4:case vg.VideoAVI:case vg.VideoMKV:case vg.VideoMOV:case vg.VideoWMV:case vg.VideoFLV:case vg.VideoWEBM:return bg.Video;case vg.CompressedZIP:case vg.CompressedRAR:case vg.Compressed7Z:case vg.CompressedTAR:case vg.CompressedGZ:return bg.Compressed;case vg.CodeHTML:case vg.CodeCSS:case vg.CodeJS:case vg.CodeJSX:case vg.CodeTS:case vg.CodeTSX:case vg.CodeJSON:case vg.CodeXML:case vg.CodePY:case vg.CodeJAVA:case vg.CodeC:case vg.CodeCPP:case vg.CodeCS:case vg.CodeRB:case vg.CodePHP:case vg.CodeSQL:return bg.Code;case vg.EbookEPUB:case vg.EbookMOBI:case vg.EbookAZW:return bg.Ebook;case vg.FontTTF:case vg.FontOTF:return bg.Font;case vg.ExecutableEXE:case vg.ExecutableDMG:case vg.ExecutableAPK:return bg.Executable;default:return bg.Unknown}},xg=A=>new Promise(e=>{let I=0;const g=new Uint8Array(A.reduce((A,e)=>A+e.length,0));for(const e of A)g.set(e,I),I+=e.length;e(g)}),qg=A=>[...A].map(A=>A.toString(16).toLocaleLowerCase().padStart(2,"0")).join(""),Og=A=>{(A=A.replace(/^0x/,"")).length%2!=0&&(A="0"+A);const e=/[G-Z\s]/i.exec(A);if(e)throw new Error(`Found non-hex characters ${e[0]}`);const I=A.match(/[\dA-F]{2}/gi);if(!I)throw new Error("No hex characters in string");const g=I.map(A=>parseInt(A,16));return new Uint8Array(g)},jg=9+be+8+8+256+8+8+8,Tg=A=>{const e=new Uint8Array(jg);let I=0;new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.schemaVersion),!1),I+=8,e[I]=A.messageType,I+=1,e.set(A.hash,I),I+=be;new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.totalSize),!1),I+=8;new DataView(e.buffer,I,8).setBigInt64(0,BigInt(A.date.getTime()),!1),I+=8;const g=(new TextEncoder).encode(A.name),t=new Uint8Array(256);t.set(g.subarray(0,Math.min(256,g.length))),e.set(t,I),I+=256;new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.chunkStartIndex),!1),I+=8;new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.chunkEndIndex),!1),I+=8;return new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.chunkIndex),!1),I+=8,e},zg=A=>{if(A.length!==jg)throw new Error("Invalid metadata buffer totalSize");let e=0;const I=new DataView(A.buffer,A.byteOffset+e,8),g=Number(I.getBigUint64(0,!1));e+=8;const t=A[e];e+=1;const i=A.slice(e,e+be);e+=be;const o=new DataView(A.buffer,A.byteOffset+e,8),n=Number(o.getBigUint64(0,!1));e+=8;const C=new DataView(A.buffer,A.byteOffset+e,8),a=Number(C.getBigUint64(0,!1)),r=new Date(a);e+=8;const s=A.slice(e,e+256),B=(new TextDecoder).decode(s).replace(/\0+$/,"");e+=256;const c=new DataView(A.buffer,A.byteOffset+e,8),Q=Number(c.getBigUint64(0,!1));e+=8;const E=new DataView(A.buffer,A.byteOffset+e,8),l=Number(E.getBigUint64(0,!1));e+=8;const w=new DataView(A.buffer,A.byteOffset+e,8);return{schemaVersion:g,messageType:t,hash:i,totalSize:n,date:r,name:B,chunkStartIndex:Q,chunkEndIndex:l,chunkIndex:Number(w.getBigUint64(0,!1))}},Xg=4+48*(be+1),Vg=(A,e,I)=>{e=e??32,I=I??81920;const g=65536,t=Math.ceil(A/g);if(t>I)throw new Error(`Memory required is ${String(t*g)} bytes while declared maximum is ${String(I*g)} bytes`);return t<e?e:t};var Wg=()=>{const A=(Re+xe)*Uint8Array.BYTES_PER_ELEMENT,e=Vg(A);return new WebAssembly.Memory({initial:e,maximum:e})},Zg=()=>{const A=(Re+xe+Je)*Uint8Array.BYTES_PER_ELEMENT,e=Vg(A);return new WebAssembly.Memory({initial:e,maximum:e})},_g=A=>{const e=(A+Le+xe+be)*Uint8Array.BYTES_PER_ELEMENT,I=Vg(e);return new WebAssembly.Memory({initial:I,maximum:I})},$g=A=>{const e=(A+Le+Re)*Uint8Array.BYTES_PER_ELEMENT,I=Vg(e);return new WebAssembly.Memory({initial:I,maximum:I})},At=(A,e)=>{const I=Ve(A),g=(A+Re+e+I+ze+1*(A+qe)+2*Oe+2*je+Te)*Uint8Array.BYTES_PER_ELEMENT,t=Vg(g);return new WebAssembly.Memory({initial:t,maximum:t})},et=(A,e)=>{const I=We(A),g=(A+xe+e+I+2*Oe+Te+je)*Uint8Array.BYTES_PER_ELEMENT,t=Vg(g);return new WebAssembly.Memory({initial:t,maximum:t})},It=A=>{const e=Vg((2*A+3)*be);return new WebAssembly.Memory({initial:e,maximum:e})},gt=A=>{const e=Vg(A*be+A*(be+1)+3*be);return new WebAssembly.Memory({initial:e,maximum:e})},tt=A=>{const e=A*Uint8Array.BYTES_PER_ELEMENT+4*be,I=Vg(e);return new WebAssembly.Memory({initial:I,maximum:I})},it=A=>{const e=(78643200+A+Je+Xe)*Uint8Array.BYTES_PER_ELEMENT,I=Vg(e);return new WebAssembly.Memory({initial:I,maximum:I})},ot=()=>{const A=(Re+Le+Re)*Uint8Array.BYTES_PER_ELEMENT,e=65536-Re-Le,I=We(e),g=(e+xe+be+I+2*Oe+Te+je)*Uint8Array.BYTES_PER_ELEMENT,t=Xg*Uint8Array.BYTES_PER_ELEMENT+4*be,i=Vg(A+g+t);return new WebAssembly.Memory({initial:i,maximum:i})};function nt(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var Ct={exports:{}};!function(A){async function e(A={}){var e,I=A,g=[],t=(A,e)=>{throw e};e=self.location.href;var i,o,n="";try{n=new URL(".",e).href}catch{}o=A=>{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)},i=async A=>{var e=await fetch(A,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw new Error(e.status+" : "+e.url)},console.log.bind(console);var C,a,r,s,B,c=console.error.bind(console),Q=[],E=!1,l=!1,w=!1;function d(){var A=s.buffer;B=new Uint8Array(A),new BigInt64Array(A),new BigUint64Array(A)}var f,h=[];function u(A){c(A="Aborted("+A+")"),E=!0,A+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(A);throw r?.(e),e}async function y(A){return function(A){if(ArrayBuffer.isView(A))return A;if(o)return o(A);throw"both async and sync fetching of the wasm failed"}(A)}async function D(A,e,I){return async function(A,e){try{var I=await y(A);return await WebAssembly.instantiate(I,e)}catch(A){c(`failed to asynchronously prepare wasm: ${A}`),u(A)}}(e,I)}class p{name="ExitStatus";constructor(A){this.message=`Program terminated with exit(${A})`,this.status=A}}var m,S={},k=new Set([]),M={get(A,e){var I=S[e];return I||(I=S[e]=new WebAssembly.Global({value:"i32",mutable:!0})),k.has(e)||(I.required=!0),I}},F=A=>{for(var e,I,g=0,t=0,i=A.length,o=new Uint8Array((3*i>>2)-("="==A[i-2])-("="==A[i-1]));g<i;g+=4,t+=3)e=FA[A.charCodeAt(g+1)],I=FA[A.charCodeAt(g+2)],o[t]=FA[A.charCodeAt(g)]<<2|e>>4,o[t+1]=e<<4|I>>2,o[t+2]=I<<6|FA[A.charCodeAt(g+3)];return o},K=A=>{for(;A.length>0;)A.shift()(I)},H="undefined"!=typeof TextDecoder?new TextDecoder:void 0,N=(A,e=0,I,g)=>{var t=((A,e,I)=>{for(var g=e+I;A[e]&&!(e>=g);)++e;return e})(A,e,I);if(t-e>16&&A.buffer&&H)return H.decode(A.subarray(e,t));for(var i="";e<t;){var o=A[e++];if(128&o){var n=63&A[e++];if(192!=(224&o)){var C=63&A[e++];if((o=224==(240&o)?(15&o)<<12|n<<6|C:(7&o)<<18|n<<12|C<<6|63&A[e++])<65536)i+=String.fromCharCode(o);else{var a=o-65536;i+=String.fromCharCode(55296|a>>10,56320|1023&a)}}else i+=String.fromCharCode((31&o)<<6|n)}else i+=String.fromCharCode(o)}return i},U=A=>{var e=0,I=0;function g(){return A[e++]}function t(){for(var I=0,g=1;;){var t=A[e++];if(I+=(127&t)*g,g*=128,!(128&t))break}return I}function i(){var I=t();return N(A,(e+=I)-I,I)}function o(){for(var A=t(),e=[];A--;)e.push(i());return e}function n(A,e){if(A)throw new Error(e)}if(A instanceof WebAssembly.Module){var C=WebAssembly.Module.customSections(A,"dylink.0");n(0===C.length,"need dylink section"),I=(A=new Uint8Array(C[0])).length}else{n(!(1836278016==new Uint32Array(new Uint8Array(A.subarray(0,24)).buffer)[0]),"need to see wasm magic number"),n(0!==A[8],"need the dylink section to be first"),e=9;var a=t();I=e+a,n("dylink.0"!==i())}for(var r={neededDynlibs:[],tlsExports:new Set,weakImports:new Set,runtimePaths:[]};e<I;){var s=g(),B=t();if(1===s)r.memorySize=t(),r.memoryAlign=t(),r.tableSize=t(),r.tableAlign=t();else if(2===s)r.neededDynlibs=o();else if(3===s)for(var c=t();c--;){var Q=i();256&t()&&r.tlsExports.add(Q)}else if(4===s)for(c=t();c--;){i();Q=i();1==(3&t())&&r.weakImports.add(Q)}else 5===s?r.runtimePaths=o():e+=B}return r},G=(A,e,I)=>{var g={refcount:1/0,name:A,exports:I,global:!0};return Y.loadedLibsByName[A]=g,null!=e&&(Y.loadedLibsByHandle[e]=g),g},Y={loadedLibsByName:{},loadedLibsByHandle:{},init(){G("__main__",0,NA)}},P=562416,v=(A,e)=>Math.ceil(A/e)*e,b=A=>["__cpp_exception","__c_longjmp","__wasm_apply_data_relocs","__dso_handle","__tls_size","__tls_align","__set_stack_limits","_emscripten_tls_init","__wasm_init_tls","__wasm_call_ctors","__start_em_asm","__stop_em_asm","__start_em_js","__stop_em_js"].includes(A)||A.startsWith("__em_js__"),L=A=>{const e=A.length;return[e%128|128,e>>7,...A]},J={i:127,p:127,j:126,f:125,d:124,e:111},R=A=>L(Array.from(A,A=>J[A])),x=[],q=new WebAssembly.Table({initial:3,element:"anyfunc"}),O=A=>{var e=x[A];return e||(x[A]=e=q.get(A)),e},j=(A,e)=>{if(m)for(var I=A;I<A+e;I++){var g=O(I);g&&m.set(g,I)}},T=[],z=(A,e)=>{q.set(A,e),x[A]=q.get(A)},X=(A,e)=>{var I=(A=>(m||(m=new WeakMap,j(0,q.length)),m.get(A)||0))(A);if(I)return I;var g=T.length?T.pop():q.grow(1);try{z(g,A)}catch(I){if(!(I instanceof TypeError))throw I;var t=((A,e)=>{var I=Uint8Array.of(0,97,115,109,1,0,0,0,1,...L([1,96,...R(e.slice(1)),...R("v"===e[0]?"":e[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),g=new WebAssembly.Module(I);return new WebAssembly.Instance(g,{e:{f:A}}).exports.f})(A,e);z(g,t)}return m.set(A,g),g},V=(A,e,I)=>{var g={};for(var t in A){var i=A[t];"object"==typeof i&&(i=i.value),"number"==typeof i&&(i+=e),g[t]=i}return(A=>{for(var e in A)if(!b(e)){var I=A[e];S[e]||=new WebAssembly.Global({value:"i32",mutable:!0}),0==S[e].value&&("function"==typeof I?S[e].value=X(I):"number"==typeof I?S[e].value=I:c(`unhandled export type for '${e}': ${typeof I}`))}})(g),g},W=A=>{var e=NA[A];return!(!e||e.stub)},Z=(A,e=!1)=>{var I;return W(A)&&(I=NA[A]),{sym:I,name:A}},_=[],$=(A,e,I)=>A?N(B,A,e):"",AA=(A,e,I,g,t)=>{var i=U(A);function o(){var I,t=Math.pow(2,i.memoryAlign),o=i.memorySize?v((A=>{if(l)return mA(A,1);var e=P,I=e+v(A,16);return P=I,S.__heap_base.value=I,e})(i.memorySize+t),t):0,n=i.tableSize?q.length:0;i.tableSize&&q.grow(i.tableSize);var C=new Proxy({},{get(A,e){switch(e){case"__memory_base":return o;case"__table_base":return n}var t;if(e in NA&&!NA[e].stub)return NA[e];e in A||(A[e]=(...A)=>(t||=function(A){var e=Z(A).sym;return!e&&g&&(e=g[A]),e||(e=I[A]),e}(e),t(...A)));return A[e]}}),a={"GOT.mem":new Proxy({},M),"GOT.func":new Proxy({},M),env:C,wasi_snapshot_preview1:C};function r(A,g){function t(A,e){for(var I=[],g=0;g<16&&-1!=e.indexOf("$"+g);g++)I.push("$"+g);I=I.join(","),u("DYNAMIC_EXECUTION=0 was set, cannot eval")}if(j(n,i.tableSize),I=V(g.exports,o),e.allowUndefined||tA(),"__start_em_asm"in I)for(var C=I.__start_em_asm,a=I.__stop_em_asm;C<a;){t(0,$(C)),C=B.indexOf(0,C)+1}function r(A,e,I){var g=[];if("void"!=(e=e.slice(1,-1)))for(var t in e=e.split(",")){var i=e[t].split(" ").pop();g.push(i.replace("*",""))}u("DYNAMIC_EXECUTION=0 was set, cannot eval")}for(var s in I)if(s.startsWith("__em_js__")){C=I[s];var c=$(C).split("<::>");r(s.replace("__em_js__",""),c[0],c[1]),delete I[s]}var Q=I.__wasm_apply_data_relocs;Q&&(l?Q():h.push(Q));var E,w=I.__wasm_call_ctors;return w&&(l?w():(E=w,_.push(E))),I}if(e.loadAsync)return(async()=>{var e;return A instanceof WebAssembly.Module?e=new WebAssembly.Instance(A,a):({module:A,instance:e}=await WebAssembly.instantiate(A,a)),r(0,e)})();var s=A instanceof WebAssembly.Module?A:new WebAssembly.Module(A);return r(0,new WebAssembly.Instance(s,a))}return k=i.weakImports,(e={...e,rpath:{parentLibPath:I,paths:i.runtimePaths}}).loadAsync?i.neededDynlibs.reduce((A,I)=>A.then(()=>gA(I,e,g)),Promise.resolve()).then(o):(i.neededDynlibs.forEach(A=>gA(A,e,g)),o())},eA=(A,e)=>{for(var[I,g]of Object.entries(A)){const A=A=>{W(A)||(NA[A]=g)};A(I);const e="__main_argc_argv";"main"==I&&A(e),I==e&&A("main")}},IA=async A=>{var e=await i(A);return new Uint8Array(e)};function gA(A,e={global:!0,nodelete:!0},I,g){var t=Y.loadedLibsByName[A];if(t)return e.global&&(t.global||(t.global=!0,eA(t.exports))),e.nodelete&&t.refcount!==1/0&&(t.refcount=1/0),t.refcount++,!e.loadAsync||Promise.resolve(!0);function i(){var I=n+A;if(e.loadAsync)return IA(I);if(!o)throw new Error(`${I}: file not found, and synchronous loading of external files is not available`);return o(I)}function C(){return e.loadAsync?i().then(g=>AA(g,e,A,I)):AA(i(),e,A,I)}function a(A){t.global&&eA(A),t.exports=A}return(t=G(A,g,"loading")).refcount=e.nodelete?1/0:1,t.global=e.global,e.loadAsync?C().then(A=>(a(A),!0)):(a(C()),!0)}var tA=()=>{for(var[A,e]of Object.entries(S))if(0==e.value){var I=Z(A,!0).sym;if(!I&&!e.required)continue;if("function"==typeof I)e.value=X(I,I.sig);else{if("number"!=typeof I)throw new Error(`bad export type for '${A}': ${typeof I}`);e.value=I}}},iA=0,oA=null,nA=async()=>{if(Q.length){for(var A of(iA++,Q))await gA(A,{loadAsync:!0,global:!0,nodelete:!0,allowUndefined:!0});tA(),(()=>{if(0==--iA&&oA){var A=oA;oA=null,A()}})()}else tA()},CA=(A,e,I,g)=>u(`Assertion failed: ${$(A)}, at: `+[e?$(e):"unknown filename",I,g?$(g):"unknown function"]);CA.sig="vppip";var aA=new WebAssembly.Global({value:"i32",mutable:!1},4096),rA=new WebAssembly.Global({value:"i32",mutable:!0},562416),sA=new WebAssembly.Global({value:"i32",mutable:!1},1),BA=()=>u("");BA.sig="v";var cA=0,QA=()=>{cA=0};QA.sig="v";var EA={},lA=A=>{if(A instanceof p||"unwind"==A)return C;t(0,A)},wA=()=>cA>0,dA=A=>{C=A,wA()||(E=!0),t(0,new p(A))};dA.sig="vi";var fA=(A,e)=>{C=A,wA()||(DA(),w=!0),dA(A)};fA.sig="vi";var hA=A=>{if(!w&&!E)try{A(),(()=>{if(!w&&!wA())try{fA(C)}catch(A){lA(A)}})()}catch(A){lA(A)}},uA=()=>performance.now();uA.sig="d";var yA=(A,e)=>{if(EA[A]&&(clearTimeout(EA[A].id),delete EA[A]),!e)return 0;var I=setTimeout(()=>{delete EA[A],hA(()=>pA(A,uA()))},e);return EA[A]={id:I,timeout_ms:e},0};yA.sig="iid";var DA,pA,mA,SA,kA=A=>{var e=(A-s.buffer.byteLength+65535)/65536|0;try{return s.grow(e),d(),1}catch(A){}},MA=A=>{var e=B.length,I=2147483648;if((A>>>=0)>I)return!1;for(var g=1;g<=4;g*=2){var t=e+65536/g,i=Math.min(I,v(Math.max(A,t),65536));if(kA(i))return!0}return!1};MA.sig="ip";for(var FA=new Uint8Array(123),KA=25;KA>=0;--KA)FA[48+KA]=52+KA,FA[65+KA]=KA,FA[97+KA]=26+KA;FA[43]=62,FA[47]=63,function(){s=I.wasmMemory?I.wasmMemory:new WebAssembly.Memory({initial:32,maximum:32768});d()}();var HA,NA={__assert_fail:CA,__heap_base:P,__indirect_function_table:q,__memory_base:aA,__stack_pointer:rA,__table_base:sA,_abort_js:BA,_emscripten_runtime_keepalive_clear:QA,_setitimer_js:yA,emscripten_resize_heap:MA,memory:s,proc_exit:dA};return HA=await async function(){function A(A,e){HA=A.exports,HA=V(HA,4096);var g=U(e);return g.neededDynlibs&&(Q=g.neededDynlibs.concat(Q)),eA(HA),Y.init(),nA(),h.push(HA.__wasm_apply_data_relocs),function(A){I._argon2=A.argon2,I._malloc=A.malloc,I._free=A.free,I._encrypt_chachapoly_asymmetric=A.encrypt_chachapoly_asymmetric,I._decrypt_chachapoly_asymmetric=A.decrypt_chachapoly_asymmetric,I._keypair_from_seed=A.keypair_from_seed,I._keypair_from_secret_key=A.keypair_from_secret_key,I._sign=A.sign,I._verify=A.verify,I._get_merkle_root=A.get_merkle_root,I._get_merkle_proof=A.get_merkle_proof,I._get_merkle_root_from_proof=A.get_merkle_root_from_proof,I._verify_merkle_proof=A.verify_merkle_proof,I._receive_message=A.receive_message,DA=A.__funcs_on_exit,pA=A._emscripten_timeout,mA=A.calloc,SA=A.realloc,A._emscripten_stack_alloc,A.__wasm_apply_data_relocs}(HA),HA}var e={env:NA,wasi_snapshot_preview1:NA,"GOT.mem":new Proxy(NA,M),"GOT.func":new Proxy(NA,M)};f??=F("AGFzbQEAAAAAEQhkeWxpbmsuMAEG8IkCBAIAAXwSYAJ/fwBgA39/fwBgAABgAX8AYAJ/fwF/YAR/f39/AX9gAX8Bf2ADf39/AX9gA39/fgBgBH9/f38AYAR/f39+AGAFf39+f38AYAR/f35/AX9gB39/f39/f38Bf2ACf3wBf2ACf3wAYAV/f39/fwF/YAh/f39/f39/fwF/Aq0CDBZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxCXByb2NfZXhpdAADA2VudiNfZW1zY3JpcHRlbl9ydW50aW1lX2tlZXBhbGl2ZV9jbGVhcgACA2Vudg1fc2V0aXRpbWVyX2pzAA4DZW52FmVtc2NyaXB0ZW5fcmVzaXplX2hlYXAABgNlbnYJX2Fib3J0X2pzAAIDZW52DV9fYXNzZXJ0X2ZhaWwACQNlbnYPX19zdGFja19wb2ludGVyA38BA2Vudg1fX21lbW9yeV9iYXNlA38AA2VudgxfX3RhYmxlX2Jhc2UDfwAHR09ULm1lbQtfX2hlYXBfYmFzZQN/AQNlbnYGbWVtb3J5AgEggIACA2VudhlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAXAAAgNBQAABAwEABgAACAEACAABAAcGAAYJBAEIAQADAAkACgALAQEEAAICBQwNBwQEAgQDAw8EEAUFBwUFBAcCEQUGAgIHhgMVEV9fd2FzbV9jYWxsX2N0b3JzAEUGYXJnb24yAEIGbWFsbG9jAAsEZnJlZQAIHWVuY3J5cHRfY2hhY2hhcG9seV9hc3ltbWV0cmljAEEdZGVjcnlwdF9jaGFjaGFwb2x5X2FzeW1tZXRyaWMALhFrZXlwYWlyX2Zyb21fc2VlZAA/F2tleXBhaXJfZnJvbV9zZWNyZXRfa2V5AD4Ec2lnbgA9BnZlcmlmeQA8D2dldF9tZXJrbGVfcm9vdAA7EGdldF9tZXJrbGVfcHJvb2YAOhpnZXRfbWVya2xlX3Jvb3RfZnJvbV9wcm9vZgA5E3ZlcmlmeV9tZXJrbGVfcHJvb2YALA9yZWNlaXZlX21lc3NhZ2UAOA9fX2Z1bmNzX29uX2V4aXQAMhNfZW1zY3JpcHRlbl90aW1lb3V0ADYGY2FsbG9jADMHcmVhbGxvYwA3F19lbXNjcmlwdGVuX3N0YWNrX2FsbG9jAEMYX193YXNtX2FwcGx5X2RhdGFfcmVsb2NzAEQIAUAJCAEAIwILAjQ1DAEBCsrrBUDLBgIbfgd/IAAgASgCDCIdQQF0rCIHIB2sIhN+IAEoAhAiIKwiBiABKAIIIiFBAXSsIgt+fCABKAIUIh1BAXSsIgggASgCBCIiQQF0rCICfnwgASgCGCIfrCIJIAEoAgAiI0EBdKwiBX58IAEoAiAiHkETbKwiAyAerCIQfnwgASgCJCIeQSZsrCIEIAEoAhwiAUEBdKwiFH58IAIgBn4gCyATfnwgHawiESAFfnwgAyAUfnwgBCAJfnwgAiAHfiAhrCIOIA5+fCAFIAZ+fCABQSZsrCIPIAGsIhV+fCADIB9BAXSsfnwgBCAIfnwiF0KAgIAQfCIYQhqHfCIZQoCAgAh8IhpCGYd8IgogCkKAgIAQfCIMQoCAgOAPg30+AhggACAFIA5+IAIgIqwiDX58IB9BE2ysIgogCX58IAggD358IAMgIEEBdKwiFn58IAQgB358IAggCn4gBSANfnwgBiAPfnwgAyAHfnwgBCAOfnwgHUEmbKwgEX4gI6wiDSANfnwgCiAWfnwgByAPfnwgAyALfnwgAiAEfnwiCkKAgIAQfCINQhqHfCIbQoCAgAh8IhxCGYd8IhIgEkKAgIAQfCISQoCAgOAPg30+AgggACALIBF+IAYgB358IAIgCX58IAUgFX58IAQgEH58IAxCGod8IgwgDEKAgIAIfCIMQoCAgPAPg30+AhwgACAFIBN+IAIgDn58IAkgD358IAMgCH58IAQgBn58IBJCGod8IgMgA0KAgIAIfCIDQoCAgPAPg30+AgwgACAJIAt+IAYgBn58IAcgCH58IAIgFH58IAUgEH58IAQgHqwiBn58IAxCGYd8IgQgBEKAgIAQfCIEQoCAgOAPg30+AiAgACAZIBpCgICA8A+DfSAXIBhCgICAYIN9IANCGYd8IgNCgICAEHwiCEIaiHw+AhQgACADIAhCgICA4A+DfT4CECAAIAcgCX4gESAWfnwgCyAVfnwgAiAQfnwgBSAGfnwgBEIah3wiAiACQoCAgAh8IgJCgICA8A+DfT4CJCAAIBsgHEKAgIDwD4N9IAogDUKAgIBgg30gAkIZh0ITfnwiAkKAgIAQfCIFQhqIfD4CBCAAIAIgBUKAgIDgD4N9PgIAC50JAid+DH8gACACKAIEIiqsIgsgASgCFCIrQQF0rCIUfiACNAIAIgMgATQCGCIGfnwgAigCCCIsrCINIAE0AhAiB358IAIoAgwiLawiECABKAIMIi5BAXSsIhV+fCACKAIQIi+sIhEgATQCCCIIfnwgAigCFCIwrCIWIAEoAgQiMUEBdKwiF358IAIoAhgiMqwiICABNAIAIgl+fCACKAIcIjNBE2ysIgwgASgCJCI0QQF0rCIYfnwgAigCICI1QRNsrCIEIAE0AiAiCn58IAIoAiQiAkETbKwiBSABKAIcIgFBAXSsIhl+fCAHIAt+IAMgK6wiGn58IA0gLqwiG358IAggEH58IBEgMawiHH58IAkgFn58IDJBE2ysIg4gNKwiHX58IAogDH58IAQgAawiHn58IAUgBn58IAsgFX4gAyAHfnwgCCANfnwgECAXfnwgCSARfnwgMEETbKwiHyAYfnwgCiAOfnwgDCAZfnwgBCAGfnwgBSAUfnwiIkKAgIAQfCIjQhqHfCIkQoCAgAh8IiVCGYd8IhIgEkKAgIAQfCITQoCAgOAPg30+AhggACALIBd+IAMgCH58IAkgDX58IC1BE2ysIg8gGH58IAogL0ETbKwiEn58IBkgH358IAYgDn58IAwgFH58IAQgB358IAUgFX58IAkgC34gAyAcfnwgLEETbKwiISAdfnwgCiAPfnwgEiAefnwgBiAffnwgDiAafnwgByAMfnwgBCAbfnwgBSAIfnwgKkETbKwgGH4gAyAJfnwgCiAhfnwgDyAZfnwgBiASfnwgFCAffnwgByAOfnwgDCAVfnwgBCAIfnwgBSAXfnwiIUKAgIAQfCImQhqHfCInQoCAgAh8IihCGYd8Ig8gD0KAgIAQfCIpQoCAgOAPg30+AgggACAGIAt+IAMgHn58IA0gGn58IAcgEH58IBEgG358IAggFn58IBwgIH58IAkgM6wiD358IAQgHX58IAUgCn58IBNCGod8IhMgE0KAgIAIfCITQoCAgPAPg30+AhwgACAIIAt+IAMgG358IA0gHH58IAkgEH58IBIgHX58IAogH358IA4gHn58IAYgDH58IAQgGn58IAUgB358IClCGod8IgQgBEKAgIAIfCIEQoCAgPAPg30+AgwgACALIBl+IAMgCn58IAYgDX58IBAgFH58IAcgEX58IBUgFn58IAggIH58IA8gF358IAkg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IAAgA0EQdjoAEiAAIANBCHY6ABEgACAHIANBGXVqIgJBD3Y6ABUgACACQQd2OgAUIAAgA0EYdkEBcSACQQF0cjoAEyAAIAYgAkEadWoiA0ENdjoAGCAAIANBBXY6ABcgACADQQN0IAJBgICAHHFBF3ZyOgAWIAAgBSADQRl1aiICQQx2OgAbIAAgAkEEdjoAGiAAIAJBBHQgA0GAgIAPcUEVdnI6ABkgACABIAJBGnVqIgFBCnY6AB4gACABQQJ2OgAdIAAgAUGAgPAPcUESdjoAHyAAIAFBBnQgAkGAgMAfcUEUdnI6ABwL9AYCBn4DfyMAQdAFayIKJAACQCACUA0AIAAgACkDSCIDIAJCA4Z8IgQ3A0ggACAAKQNAIAMgBFatfDcDQCAAQdAAaiEJQoABIANCA4hC/wCDIgR9IgcgAlgEQEIAIQMgBEL/AIVCA1oEQCAHQvwBgyEFA0AgCSADIAR8p2ogASADp2otAAA6AAAgCSADQgGEIgggBHynaiABIAinai0AADoAACAJIANCAoQiCCAEfKdqIAEgCKdqLQAAOgAAIAkgA0IDhCIIIAR8p2ogASAIp2otAAA6AAAgA0IEfCIDIAVSDQALCyAHQgODIgVCAFIEQANAIAkgAyAEfKdqIAEgA6dqLQAAOgAAIANCAXwhAyAGQgF8IgYgBVINAAsLIAAgCSAKIApBgAVqIgsQGSABIAenaiEBIAIgB30iAkL/AFYEQANAIAAgASAKIAsQGSABQYABaiEBIAJCgAF9IgJC/wBWDQALCwJAIAJQDQBCACEGQgAhAyACQgRaBEAgAkL8AIMhBANAIAkgA6ciAGogACABai0AADoAACAJIABBAXIiC2ogASALai0AADoAACAJIABBAnIiC2ogASALai0AADoAACAJIABBA3IiAGogACABai0AADoAACADQgR8IgMgBFINAAsLIAJCA4MiAlANAANAIAkgA6ciAGogACABai0AADoAACADQgF8IQMgBkIBfCIGIAJSDQALCyAKIAo2AswFQQAhAANAIAooAswFIABqQQA6AAAgCigCzAUgAGpBADoAASAKKALMBSAAakEAOgACIAooAswFIABqQQA6AAMgAEEEciIBIAooAswFakEAOgAAIAooAswFIAFqQQA6AAEgCigCzAUgAWpBADoAAiAKKALMBSABakEAOgADIABBCGoiAEHABUcNAAsMAQtCACEDIAJCBFoEQCACQvz///8PgyEHA0AgCSADIAR8p2ogASADp2otAAA6AAAgCSADQgGEIgUgBHynaiABIAWnai0AADoAACAJIANCAoQiBSAEfKdqIAEgBadqLQAAOgAAIAkgA0IDhCIFIAR8p2ogASAFp2otAAA6AAAgA0IEfCIDIAdSDQALCyACQgODIgJQDQADQCAJIAMgBHynaiABIAOnai0AADoAACADQgF8IQMgBkIBfCIGIAJSDQALCyAKQdAFaiQAC54DAQt/IwBB4ARrIgMkACADIAApAiA3A8gBIAMgACkCGDcDwAEgAyAAKQIQNwO4ASADIAApAgg3A7ABIAMgACkCADcDqAEgAyAAKQIwNwPYASADIAApAjg3A+ABIAMgAEFAaykCADcD6AEgAyAAKQJINwPwASADIAApAig3A9ABIAMgACkCWDcDgAIgAyAAKQJgNwOIAiADIAApAmg3A5ACIAMgACkCcDcDmAIgAyAAKQJQNwP4ASAAQdAAaiEIIABBKGohCSADQdgAaiEEIANBMGohBiADQYABaiEFIANB+AFqIQsgA0HQAWohDANAIANBCGoiByADQagBaiINEBIgDSAHIAUQByAMIAYgBBAHIAsgBCAFEAcgCkEBaiIKIAFHDQALIAAgByAFEAcgCSAGIAQQByAIIAQgBRAHIABB+ABqIgEgByAGEAcgA0HAA2oiBCACEAogA0GgAmoiBSAAIAQQCSAAIAUgA0GYA2oiABAHIAkgA0HIAmoiAiADQfACaiIEEAcgCCAEIAAQByABIAUgAhAHIANB4ARqJAAL2woCAX4EfyMAQdAFayIDJAAgAEHQAGoiBSAAKQNIIgKnQQN2Qf8AcSIEaiEGAkAgBEHwAE8EQEGAASAEayIEBEAgBiMBQcAFaiAE/AoAAAsgACAFIAMgA0GABWoQGSAFQQBB8AD8CwAgACkDSCECDAELQfAAIARrIgRFDQAgBiMBQcAFaiAE/AoAAAsgACACPADPASAAIAJCCIg8AM4BIAAgAkIQiDwAzQEgACACQhiIPADMASAAIAJCIIg8AMsBIAAgAkIoiDwAygEgACACQjCIPADJASAAIAJCOIg8AMgBIAAgACkDQCICQiCIPADDASAAIAJCKIg8AMIBIAAgAkIwiDwAwQEgACACQjiIPADAASAAIAKnIgRBGHQgBEGA/gNxQQh0ciAEQQh2QYD+A3EgBEEYdnJyNgLEASAAIAUgAyADQYAFahAZIAEgACkDACICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISENwAAIAEgACkDCCICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISENwAIIAEgACkDECICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISENwAQIAEgACkDGCICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISENwAYIAEgACkDICICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISENwAgIAEgACkDKCICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISENwAoIAEgACkDMCICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISENwAwIAEgACkDOCICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISENwA4IAMgAzYCzAVBACEBA0AgAygCzAUgAWpBADoAACADKALMBSABakEAOgABIAMoAswFIAFqQQA6AAIgAygCzAUgAWpBADoAAyABQQRyIgUgAygCzAVqQQA6AAAgAygCzAUgBWpBADoAASADKALMBSAFakEAOgACIAMoAswFIAVqQQA6AAMgAUEIaiIBQcAFRw0ACyADIAA2AswFQQAhAQNAIAMoAswFIAFqQQA6AAAgAygCzAUgAWpBADoAASADKALMBSABakEAOgACIAMoAswFIAFqQQA6AAMgAUEEciIAIAMoAswFakEAOgAAIAMoAswFIABqQQA6AAEgAygCzAUgAGpBADoAAiADKALMBSAAakEAOgADIAFBCGoiAUHQAUcNAAsgA0HQBWokAAvNBAIGfgJ/AkAgACkDOCIEQgBSBEACQEIQIAR9IgMgAiACIANWGyIFUA0AIABBQGshCUIAIQMgBUIEWgRAIAVC/P///w+DIQcDQCAJIAMgBHynaiABIAOnai0AADoAACAJIANCAYQiCCAEfKdqIAEgCKdqLQAAOgAAIAkgA0IChCIIIAR8p2ogASAIp2otAAA6AAAgCSADQgOEIgggBHynaiABIAinai0AADoAACADQgR8IgMgB1INAAsLIAVCA4MiB1ANAANAIAkgAyAEfKdqIAEgA6dqLQAAOgAAIANCAXwhAyAGQgF8IgYgB1INAAsLIAAgBCAFfCIDNwM4IANCEFQNASAAIABBQGtCEBAcIABCADcDOCACIAV9IQIgASAFp2ohAQsgAkIQWgRAIAAgASACQnCDIgMQHCACQg+DIQIgASADp2ohAQsgAlANACACQgODIQUgAEFAayEKIAApAzghBEIAIQYCfkIAIAJCBFQNABogCiAEp2oiCSABLQAAOgAAIAkgAS0AAToAASAJIAEtAAI6AAIgCSABLQADOgADQgQgAkIMgyIHQgRRDQAaIAkgAS0ABDoABCAJIAEtAAU6AAUgCSABLQAGOgAGIAkgAS0ABzoAB0IIIAdCCFENABogCSABLQAIOgAIIAkgAS0ACToACSAJIAEtAAo6AAogCSABLQALOgALQgwLIQMgBUIAUgRAA0AgCiADIAR8p2ogASADp2otAAA6AAAgA0IBfCEDIAZCAXwiBiAFUg0ACwsgACACIAR8NwM4CwvZDgIcfh5/IwBBMGsiHiQAIAAgARAGIABB0ABqIAFBKGoQBiAAIAEoAlwiIkEBdKwiCCABKAJUIiNBAXSsIgJ+IAEoAlgiJKwiDSANfnwgASgCYCIlrCIHIAEoAlAiJkEBdKwiBX58IAEoAmwiH0EmbKwiDiAfrCIRfnwgASgCcCInQRNsrCIDIAEoAmgiIEEBdKx+fCABKAJ0IihBJmysIgQgASgCZCIhQQF0rCIJfnxCAYYiFUKAgIAQfCIWQhqHIAIgB34gJEEBdKwiCyAirCISfnwgIawiDyAFfnwgAyAfQQF0rCITfnwgBCAgrCIKfnxCAYZ8IhdCgICACHwiGEIZhyAIIBJ+IAcgC358IAIgCX58IAUgCn58IAMgJ6wiEH58IAQgE358QgGGfCIGIAZCgICAEHwiDEKAgIDgD4N9PgKQASAAICFBJmysIA9+ICasIgYgBn58ICBBE2ysIgYgJUEBdKwiFH58IAggDn58IAMgC358IAIgBH58QgGGIhlCgICAEHwiGkIahyAGIAl+IAUgI6wiG358IAcgDn58IAMgCH58IAQgDX58QgGGfCIcQoCAgAh8Ih1CGYcgBSANfiACIBt+fCAGIAp+fCAJIA5+fCADIBR+fCAEIAh+fEIBhnwiBiAGQoCAgBB8IgZCgICA4A+DfT4CgAEgACALIA9+IAcgCH58IAIgCn58IAUgEX58IAQgEH58QgGGIAxCGod8IgwgDEKAgIAIfCIMQoCAgPAPg30+ApQBIAAgBSASfiACIA1+fCAKIA5+fCADIAl+fCAEIAd+fEIBhiAGQhqHfCIDIANCgICACHwiA0KAgIDwD4N9PgKEASAAIAogC34gByAHfnwgCCAJfnwgAiATfnwgBSAQfnwgBCAorCIHfnxCAYYgDEIZh3wiBCAEQoCAgBB8IgRCgICA4A+DfT4CmAEgACAXIBhCgICA8A+DfSAVIBZCgICAYIN9IANCGYd8IgNCgICAEHwiCUIaiHw+AowBIAAgAyAJQoCAgOAPg30+AogBIAAgCCAKfiAPIBR+fCALIBF+fCACIBB+fCAFIAd+fEIBhiAEQhqHfCICIAJCgICACHwiAkKAgIDwD4N9PgKcASAAIBwgHUKAgIDwD4N9IBkgGkKAgIBgg30gAkIZh0ITfnwiAkKAgIAQfCIFQhqIfD4CfCAAIAIgBUKAgIDgD4N9PgJ4IAEoAighHyABKAIAISAgASgCLCEhIAEoAgQhIiABKAIwISMgASgCCCEkIAEoAjQhJSABKAIMISYgASgCOCEnIAEoAhAhKCABKAI8ISkgASgCFCEqIAEoAkAhKyABKAIYISwgASgCRCEtIAEoAhwhLiABKAJIIS8gASgCICEwIAAgASgCTCABKAIkajYCTCAAIC8gMGo2AkggACAtIC5qNgJEIAAgKyAsajYCQCAAICkgKmo2AjwgACAnIChqNgI4IAAgJSAmajYCNCAAICMgJGo2AjAgACAhICJqNgIsIAAgHyAgajYCKCAeIABBKGoQBiAAKAIAIQEgACgCUCEfIAAoAgQhICAAKAJUISEgACgCCCEiIAAoAlghIyAAKAIMISQgACgCXCElIAAoAhAhJiAAKAJgIScgACgCFCEoIAAoAmQhKSAAKAIYISogACgCaCErIAAoAhwhLCAAKAJsIS0gACgCICEuIAAoAnAhLyAAIAAoAnQiMCAAKAIkIjFrIjI2AnQgACAvIC5rIjM2AnAgACAtICxrIjQ2AmwgACArICprIjU2AmggACApIChrIjY2AmQgACAnICZrIjc2AmAgACAlICRrIjg2AlwgACAjICJrIjk2AlggACAhICBrIjo2AlQgACAfIAFrIjs2AlAgACAwIDFqIjA2AkwgACAuIC9qIi42AkggACAsIC1qIiw2AkQgACAqICtqIio2AkAgACAoIClqIig2AjwgACAmICdqIiY2AjggACAkICVqIiQ2AjQgACAiICNqIiI2AjAgACAgICFqIiA2AiwgACABIB9qIgE2AiggHigCACEfIB4oAgQhISAeKAIIISMgHigCDCElIB4oAhAhJyAeKAIUISkgHigCGCErIB4oAhwhLSAeKAIgIS8gACAeKAIkIDBrNgIkIAAgLyAuazYCICAAIC0gLGs2AhwgACArICprNgIYIAAgKSAoazYCFCAAICcgJms2AhAgACAlICRrNgIMIAAgIyAiazYCCCAAICEgIGs2AgQgACAfIAFrNgIAIAAoAnghASAAKAJ8IR8gACgCgAEhICAAKAKEASEhIAAoAogBISIgACgCjAEhIyAAKAKQASEkIAAoApQBISUgACgCmAEhJiAAIAAoApwBIDJrNgKcASAAICYgM2s2ApgBIAAgJSA0azYClAEgACAkIDVrNgKQASAAICMgNms2AowBIAAgIiA3azYCiAEgACAhIDhrNgKEASAAICAgOWs2AoABIAAgHyA6azYCfCAAIAEgO2s2AnggHkEwaiQAC/sGARN/IAEoAgAhDCAAKAIA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aiIBIAEpAzgiAiABKQMYIgV8IAVCAYZC/v///x+DIAJC/////w+DfnwiBSABKQN4hUIgiSIEIAEpA1giB3wgBEL/////D4MgB0IBhkL+////H4N+fCIHIAKFQiiJIgIgBXwgAkL/////D4MgBUIBhkL+////H4N+fCIFIASFQjCJIgQgASkDKCIDIAEpAwgiBnwgBkIBhkL+////H4MgA0L/////D4N+fCIGIAEpA2iFQiCJIgogASkDSCILfCAKQv////8PgyALQgGGQv7///8fg358IgsgA4VCKIkiAyAGfCADQv////8PgyAGQgGGQv7///8fg358IgYgCoVCMIkiCiALfCAKQv////8PgyALQgGGQv7///8fg358IgsgA4VCAYkiAyABKQMgIg4gASkDACIJfCAJQgGGQv7///8fgyAOQv////8Pg358IgkgASkDYIVCIIkiDyABKQNAIhJ8IA9C/////w+DIBJCAYZC/v///x+DfnwiEiAOhUIoiSIOIAl8IA5C/////w+DIAlCAYZC/v///x+DfnwiCXwgA0L/////D4MgCUIBhkL+////H4N+fCIIhUIgiSITIAEpAzAiECABKQMQIgx8IAxCAYZC/v///x+DIBBC/////w+DfnwiDCABKQNwhUIgiSIRIAEpA1AiDXwgEUL/////D4MgDUIBhkL+////H4N+fCINIBCFQiiJIhAgDHwgEEL/////D4MgDEIBhkL+////H4N+fCIMIBGFQjCJIhEgDXwgEUL/////D4MgDUIBhkL+////H4N+fCINfCATQv////8PgyANQgGGQv7///8fg358IhQgA4VCKIkiAyAIfCADQv////8PgyAIQgGGQv7///8fg358Igg3AwAgASAIIBOFQjCJIgg3A3ggASAIIBR8IAhC/////w+DIBRCAYZC/v///x+DfnwiCDcDUCABIAMgCIVCAYk3AyggASANIBCFQgGJIgMgBnwgA0L/////D4MgBkIBhkL+////H4N+fCIGIAkgD4VCMIkiCYVCIIkiDyAEIAd8IARC/////w+DIAdCAYZC/v///x+DfnwiBHwgD0L/////D4MgBEIBhkL+////H4N+fCIHIAOFQiiJIgMgBnwgA0L/////D4MgBkIBhkL+////H4N+fCIIIA+FQjCJIgY3A2AgASAINwMIIAEgBiAHfCAGQv////8PgyAHQgGGQv7///8fg358Igc3A1ggASADIAeFQgGJNwMwIAEgAiAEhUIBiSICIAx8IAJC/////w+DIAxCAYZC/v///x+DfnwiBCAKhUIgiSIHIAkgEnwgCUL/////D4MgEkIBhkL+////H4N+fCIDfCAHQv////8PgyADQgGGQv7///8fg358IgYgAoVCKIkiAiAEfCACQv////8PgyAEQgGGQv7///8fg358IgogB4VCMIkiBDcDaCABIAo3AxAgASAEIAZ8IARC/////w+DIAZCAYZC/v///x+DfnwiBDcDQCABIAIgBIVCAYk3AzggASAFIAMgDoVCAYkiAnwgBUIBhkL+////H4MgAkL/////D4N+fCIFIBGFQiCJIgQgC3wgBEL/////D4MgC0IBhkL+////H4N+fCIHIAKFQiiJIgIgBXwgAkL/////D4MgBUIBhkL+////H4N+fCIDIASFQjCJIgU3A3AgASADNwMYIAEgBSAHfCAFQv////8PgyAHQgGGQv7///8fg358IgU3A0ggASACIAWFQgGJNwMgIBdBAWoiF0EIRw0ACwNAIBhBgBhqIBZBBHRqIgEgASkDiAMiAiABKQOIASIFfCAFQgGGQv7///8fgyACQv////8Pg358IgUgASkDiAeFQiCJIgQgASkDiAUiB3wgBEL/////D4MgB0IBhkL+////H4N+fCIHIAKFQiiJIgIgBXwgAkL/////D4MgBUIBhkL+////H4N+fCIFIASFQjCJIgQgASkDiAIiAyABKQMIIgZ8IAZCAYZC/v///x+DIANC/////w+DfnwiBiABKQOIBoVCIIkiCiABKQOIBCILfCAKQv////8PgyALQgGGQv7///8fg358IgsgA4VCKIkiAyAGfCADQv////8PgyAGQgGGQv7///8fg358IgYgCoVCMIkiCiALfCAKQv////8PgyALQgGGQv7///8fg358IgsgA4VCAYkiAyABKQOAAiIOIAEpAwAiCXwgCUIBhkL+////H4MgDkL/////D4N+fCIJIAEpA4AGhUIgiSIPIAEpA4AEIhJ8IA9C/////w+DIBJCAYZC/v///x+DfnwiEiAOhUIoiSIOIAl8IA5C/////w+DIAlCAYZC/v///x+DfnwiCXwgA0L/////D4MgCUIBhkL+////H4N+fCIIhUIgiSITIAEpA4ADIhAgASkDgAEiDHwgDEIBhkL+////H4MgEEL/////D4N+fCIMIAEpA4AHhUIgiSIRIAEpA4AFIg18IBFC/////w+DIA1CAYZC/v///x+DfnwiDSAQhUIoiSIQIAx8IBBC/////w+DIAxCAYZC/v///x+DfnwiDCARhUIwiSIRIA18IBFC/////w+DIA1CAYZC/v///x+DfnwiDXwgE0L/////D4MgDUIBhkL+////H4N+fCIUIAOFQiiJIgMgCHwgA0L/////D4MgCEIBhkL+////H4N+fCIINwMAIAEgCCAThUIwiSIINwOIByABIAggFHwgCEL/////D4MgFEIBhkL+////H4N+fCIINwOABSABIAMgCIVCAYk3A4gCIAEgDSAQhUIBiSIDIAZ8IANC/////w+DIAZCAYZC/v///x+DfnwiBiAJIA+FQjCJIgmFQiCJIg8gBCAHfCAEQv////8PgyAHQgGGQv7///8fg358IgR8IA9C/////w+DIARCAYZC/v///x+DfnwiByADhUIoiSIDIAZ8IANC/////w+DIAZCAYZC/v///x+DfnwiCCAPhUIwiSIGNwOABiABIAg3AwggASAGIAd8IAZC/////w+DIAdCAYZC/v///x+DfnwiBzcDiAUgASADIAeFQgGJNwOAAyABIAIgBIVCAYkiAiAMfCACQv////8PgyAMQgGGQv7///8fg358IgQgCoVCIIkiByAJIBJ8IAlC/////w+DIBJCAYZC/v///x+DfnwiA3wgB0L/////D4MgA0IBhkL+////H4N+fCIGIAKFQiiJIgIgBHwgAkL/////D4MgBEIBhkL+////H4N+fCIKIAeFQjCJIgQ3A4gGIAEgCjcDgAEgASAEIAZ8IARC/////w+DIAZCAYZC/v///x+DfnwiBDcDgAQgASACIASFQgGJNwOIAyABIAUgAyAOhUIBiSICfCAFQgGGQv7///8fgyACQv////8Pg358IgUgEYVCIIkiBCALfCAEQv////8PgyALQgGGQv7///8fg358IgcgAoVCKIkiAiAFfCACQv////8PgyAFQgGGQv7///8fg358IgMgBIVCMIkiBTcDgAcgASADNwOIASABIAUgB3wgBUL/////D4MgB0IBhkL+////H4N+fCIFNwOIBCABIAIgBYVCAYk3A4ACIBZBAWoiFkEIRw0ACyAdIBhBgBBqQYAI/AoAAEEAIRYDQCAdIBZBA3QiAWoiFyAXKQMAIBhBgBhqIh4gAWopAwCFNwMAIB0gAUEIciIXaiIZIBkpAwAgFyAeaikDAIU3AwAgHSABQRByIhdqIhkgGSkDACAYQYAYaiAXaikDAIU3AwAgHSABQRhyIgFqIhcgFykDACAYQYAYaiABaikDAIU3AwAgFkEEaiIWQYABRw0ACwsgIUEBaiEWIBxBAWohHCAaQQFqIhogACgCFCIXSQ0ACwsgGEGAIGokAAuUBQIFfwJ+IwBB0ABrIgMkAAJAIAIEQEF/IQQgACkAUFAEQCAAKADgAiIFQYEBTwRAIAAgACkAQCIIQoABfDcAQCAAIAApAEggCEL/flatfDcASCAAIABB4ABqIgUQDCAAIAAoAOACQYABayIENgDgAiAEQYEBTw0DIAQEQCAFIABB4AFqIAT8CgAACyAAKADgAiEFCyAAIAApAEAiCCAFrXwiCTcAQCAAIAApAEggCCAJVq18NwBIIAAtAOQCBEAgAEJ/NwBYCyAAQn83AFAgAEHgAGohBkEAIQRBgAIgBWsiBwRAIAUgBmpBACAH/AsACyAAIAYQDCADIAApAAA3AwAgAyAAKQAINwMIIAMgACkAEDcDECADIAApABg3AxggAyAAKQAgNwMgIAMgACkAKDcDKCADIAApADA3AzAgAyAAKQA4NwM4IAIEQCABIAMgAvwKAAALIAMgADYCTANAIAMoAkwgBGpBADoAACADKAJMIARqQQA6AAEgAygCTCAEakEAOgACIAMoAkwgBGpBADoAAyAEQQRyIgAgAygCTGpBADoAACADKAJMIABqQQA6AAEgAygCTCAAakEAOgACIAMoAkwgAGpBADoAAyAEQQhqIgRBwABHDQALIAMgBjYCTEEAIQQDQCADKAJMIARqQQA6AAAgAygCTCAEakEAOgABIAMoAkwgBGpBADoAAiADKAJMIARqQQA6AAMgBEEEciIAIAMoAkxqQQA6AAAgAygCTCAAakEAOgABIAMoAkwgAGpBADoAAiADKAJMIABqQQA6AAMgBEEIaiIEQYACRw0AC0EAIQQLIANB0ABqJAAgBA8LECsACyMBIgBBs4ACaiAAQcb/AWpBsgIgAEGw/wFqEAUAC2wBAn8gAEEHakF4cSEBIwFB0IICaiICKAIAIgBFBEAgAiMDIgA2AgALAkAgAUEAIAAgAWoiASAATRtFBEAgAT8AQRB0TQ0BIAEQAw0BCyMBQeSEAmpBMDYCAEF/DwsjAUHQggJqIAE2AgAgAAvKCAEDfyMAQcABayICJAAgAkGQAWoiBCABEAYgAkHgAGoiAyAEEAYgAyADEAYgAyABIAMQByAEIAQgAxAHIAJBMGoiASAEEAYgAyADIAEQByABIAMQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiADIAEgAxAHIAEgAxAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgASADEAcgAiABEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgASACIAEQByABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiABIAEQBiADIAEgAxAHIAEgAxAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgARAGIAEgASADEAcgAiABEAZBASEBA0AgAiACEAYgAUEBaiIBQeQARw0ACyACQTBqIgEgAiABEAcgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgASABEAYgAkHgAGoiAyABIAMQByADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiAAIAMgAkGQAWoQByACQcABaiQAC6QWAR9/IwBBoAJrIgEkACABQcABaiICIABB0ABqEBcgAUGQAWoiBCAAIAIQByABQeAAaiIDIAQQDSABQQA6ADAgASABLQBgIAEtADByOgAwIAEgAS0AYSABLQAwcjoAMCABIAEtAGIgAS0AMHI6ADAgASABLQBjIAEtADByOgAwIAEgAS0AZCABLQAwcjoAMCABIAEtAGUgAS0AMHI6ADAgASABLQBmIAEtADByOgAwIAEgAS0AZyABLQAwcjoAMCABIAEtAGggAS0AMHI6ADAgASABLQBpIAEtADByOgAwIAEgAS0AaiABLQAwcjoAMCABIAEtAGsgAS0AMHI6ADAgASABLQBsIAEtADByOgAwIAEgAS0AbSABLQAwcjoAMCABIAEtAG4gAS0AMHI6ADAgASABLQBvIAEtADByOgAwIAEgAS0AcCABLQAwcjoAMCABIAEtAHEgAS0AMHI6ADAgASABLQByIAEtADByOgAwIAEgAS0AcyABLQAwcjoAMCABIAEtAHQgAS0AMHI6ADAgASABLQB1IAEtADByOgAwIAEgAS0AdiABLQAwcjoAMCABIAEtAHcgAS0AMHI6ADAgASABLQB4IAEtADByOgAwIAEgAS0AeSABLQAwcjoAMCABIAEtAHogAS0AMHI6ADAgASABLQB7IAEtADByOgAwIAEgAS0AfCABLQAwcjoAMCABIAEtAH0gAS0AMHI6ADAgASABLQB+IAEtADByOgAwIAEgAS0AfyABLQAwcjoAMCABLQAwIQwgAyAAQShqIAIQByABQTBqIgIgAxANIAFBADoAACABIAEtADAgAS0AAHI6AAAgASABLQAxIAEtAAByOgAAIAEgAS0AMiABLQAAcjoAACABIAEtADMgAS0AAHI6AAAgASABLQA0IAEtAAByOgAAIAEgAS0ANSABLQAAcjoAACABIAEtADYgAS0AAHI6AAAgASABLQA3IAEtAAByOgAAIAEgAS0AOCABLQAAcjoAACABIAEtADkgAS0AAHI6AAAgASABLQA6IAEtAAByOgAAIAEgAS0AOyABLQAAcjoAACABIAEtADwgAS0AAHI6AAAgASABLQA9IAEtAAByOgAAIAEgAS0APiABLQAAcjoAACABIAEtAD8gAS0AAHI6AAAgASABLQBAIAEtAAByOgAAIAEgAS0AQSABLQAAcjoAACABIAEtAEIgAS0AAHI6AAAgASABLQBDIAEtAAByOgAAIAEgAS0ARCABLQAAcjoAACABIAEtAEUgAS0AAHI6AAAgASABLQBGIAEtAAByOgAAIAEgAS0ARyABLQAAcjoAACABIAEtAEggAS0AAHI6AAAgASABLQBJIAEtAAByOgAAIAEgAS0ASiABLQAAcjoAACABIAEtAEsgAS0AAHI6AAAgASABLQBMIAEtAAByOgAAIAEgAS0ATSABLQAAcjoAACABIAEtAE4gAS0AAHI6AAAgASABLQBPIAEtAAByOgAAIAEtAAAhDSAAKAIAIQ4gACgCBCEPIAAoAgghECAAKAIMIREgACgCECESIAAoAhQhEyAAKAIYIRQgACgCHCEVIAAoAiAhFiAAKAIkIRcgAiADIwFB8AZqEAcgASgCkAEhAyABKAIwIQAgASgClAEhBSABKAI0IQIgASgCmAEhGCABKAI4IQQgASgCnAEhGSABKAI8IQYgASgCoAEhGiABKAJAIQcgASgCpAEhGyABKAJEIQggASgCqAEhHCABKAJIIQkgASgCrAEhHSABKAJMIQogASgCsAEhHiABKAJQIQsgASABKAJUIh8gASgCtAFrNgIkIAEgCyAeazYCICABIAogHWs2AhwgASAJIBxrNgIYIAEgCCAbazYCFCABIAcgGms2AhAgASAGIBlrNgIMIAEgBCAYazYCCCABIAIgBWs2AgQgASAAIANrNgIAIAFB8AFqIgUgARANIAFBADoAnwIgASABLQDwASABLQCfAnI6AJ8C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IABBAWohACACQQFrIgINAAsLQQAPCyADIARrC6MZAhN+BX8jAEGAEGsiGCQAIBhBgAhqIAFBgAj8CgAAQQAhAQNAIAFBA3QiFiAYQYAIaiIaaiIXIBcpAwAgACAWaikDAIU3AwAgGiAWQQhyIhdqIhkgGSkDACAAIBdqKQMAhTcDACAaIBZBEHIiF2oiGSAZKQMAIAAgF2opAwCFNwMAIBogFkEYciIWaiIXIBcpAwAgACAWaikDAIU3AwAgAUEEaiIBQYABRw0ACyAYIBpBgAj8CgAAQQAhAEEAIQEDQCAYIAFBA3QiFmoiFyAXKQMAIAIgFmopAwCFNwMAIBggFkEIciIXaiIZIBkpAwAgAiAXaikDAIU3AwAgGCAWQRByIhdqIhkgGSkDACACIBdqKQMAhTcDACAYIBZBGHIiFmoiFyAXKQMAIAIgFmopAwCFNwMAIAFBBGoiAUGAAUcNAAsDQCAYQYAIaiAAQQd0aiIBIAEpAzgiBSABKQMYIgd8IAdCAYZC/v///x+DIAVC/////w+DfnwiByABKQN4hUIgiSIEIAEpA1giBnwgBkIBhkL+////H4MgBEL/////D4N+fCIGIAWFQiiJIgUgB3wgBUL/////D4MgB0IBhkL+////H4N+fCIHIASFQjCJIgQgASkDKCIDIAEpAwgiCHwgCEIBhkL+////H4MgA0L/////D4N+fCIIIAEpA2iFQiCJIgsgASkDSCIMfCAMQgGGQv7///8fgyALQv////8Pg358IgwgA4VCKIkiAyAIfCADQv////8PgyAIQgGGQv7///8fg358IgggC4VCMIkiCyAMfCALQv////8PgyAMQgGGQv7///8fg358IgwgA4VCAYkiAyABKQMgIg8gASkDACIKfCAKQgGGQv7///8fgyAPQv////8Pg358IgogASkDYIVCIIkiECABKQNAIhN8IBNCAYZC/v///x+DIBBC/////w+DfnwiEyAPhUIoiSIPIAp8IA9C/////w+DIApCAYZC/v///x+DfnwiCnwgA0L/////D4MgCkIBhkL+////H4N+fCIJhUIgiSIUIAEpAzAiESABKQMQIg18IA1CAYZC/v///x+DIBFC/////w+DfnwiDSABKQNwhUIgiSISIAEpA1AiDnwgDkIBhkL+////H4MgEkL/////D4N+fCIOIBGFQiiJIhEgDXwgEUL/////D4MgDUIBhkL+////H4N+fCINIBKFQjCJIhIgDnwgEkL/////D4MgDkIBhkL+////H4N+fCIOfCAUQv////8PgyAOQgGGQv7///8fg358IhUgA4VCKIkiAyAJfCADQv////8PgyAJQgGGQv7///8fg358Igk3AwAgASAJIBSFQjCJIgk3A3ggASAJIBV8IAlC/////w+DIBVCAYZC/v///x+DfnwiCTcDUCABIAMgCYVCAYk3AyggASAEIAZ8IARC/////w+DIAZCAYZC/v///x+DfnwiBCAOIBGFQgGJIgYgCHwgBkL/////D4MgCEIBhkL+////H4N+fCIDIAogEIVCMIkiCIVCIIkiCnwgBEIBhkL+////H4MgCkL/////D4N+fCIQIAaFQiiJIgYgA3wgBkL/////D4MgA0IBhkL+////H4N+fCIJIAqFQjCJIgM3A2AgASAJNwMIIAEgAyAQfCADQv////8PgyAQQgGGQv7///8fg358IgM3A1ggASADIAaFQgGJNwMwIAEgBCAFhUIBiSIFIA18IAVC/////w+DIA1CAYZC/v///x+DfnwiBCALhUIgiSIGIAggE3wgCEL/////D4MgE0IBhkL+////H4N+fCIDfCAGQv////8PgyADQgGGQv7///8fg358IgggBYVCKIkiBSAEfCAFQv////8PgyAEQgGGQv7///8fg358IgsgBoVCMIkiBDcDaCABIAs3AxAgASAEIAh8IARC/////w+DIAhCAYZC/v///x+DfnwiBDcDQCABIAQgBYVCAYk3AzggASAHIAMgD4VCAYkiBXwgB0IBhkL+////H4MgBUL/////D4N+fCIHIBKFQiCJIgQgDHwgBEL/////D4MgDEIBhkL+////H4N+fCIGIAWFQiiJIgUgB3wgBUL/////D4MgB0IBhkL+////H4N+fCIDIASFQjCJIgc3A3AgASADNwMYIAEgBiAHfCAHQv////8PgyAGQgGGQv7///8fg358Igc3A0ggASAFIAeFQgGJNwMgIABBAWoiAEEIRw0AC0EAIQADQCAYQYAIaiAAQQR0aiIBIAEpA4gDIgUgASkDiAEiB3wgB0IBhkL+////H4MgBUL/////D4N+fCIHIAEpA4gHhUIgiSIEIAEpA4gFIgZ8IAZCAYZC/v///x+DIARC/////w+DfnwiBiAFhUIoiSIFIAd8IAVC/////w+DIAdCAYZC/v///x+DfnwiByAEhUIwiSIEIAEpA4gCIgMgASkDCCIIfCAIQgGGQv7///8fgyADQv////8Pg358IgggASkDiAaFQiCJIgsgASkDiAQiDHwgDEIBhkL+////H4MgC0L/////D4N+fCIMIAOFQiiJIgMgCHwgA0L/////D4MgCEIBhkL+////H4N+fCIIIAuFQjCJIgsgDHwgC0L/////D4MgDEIBhkL+////H4N+fCIMIAOFQgGJIgMgASkDgAIiDyABKQMAIgp8IApCAYZC/v///x+DIA9C/////w+DfnwiCiABKQOABoVCIIkiECABKQOABCITfCATQgGGQv7///8fgyAQQv////8Pg358IhMgD4VCKIkiDyAKfCAPQv////8PgyAKQgGGQv7///8fg358Igp8IANC/////w+DIApCAYZC/v///x+DfnwiCYVCIIkiFCABKQOAAyIRIAEpA4ABIg18IA1CAYZC/v///x+DIBFC/////w+DfnwiDSABKQOAB4VCIIkiEiABKQOABSIOfCAOQgGGQv7///8fgyASQv////8Pg358Ig4gEYVCKIkiESANfCARQv////8PgyANQgGGQv7///8fg358Ig0gEoVCMIkiEiAOfCASQv////8PgyAOQgGGQv7///8fg358Ig58IBRC/////w+DIA5CAYZC/v///x+DfnwiFSADhUIoiSIDIAl8IANC/////w+DIAlCAYZC/v///x+DfnwiCTcDACABIAkgFIVCMIkiCTcDiAcgASAJIBV8IAlC/////w+DIBVCAYZC/v///x+DfnwiCTcDgAUgASADIAmFQgGJNwOIAiABIAQgBnwgBEL/////D4MgBkIBhkL+////H4N+fCIEIA4gEYVCAYkiBiAIfCAGQv////8PgyAIQgGGQv7///8fg358IgMgCiAQhUIwiSIIhUIgiSIKfCAEQgGGQv7///8fgyAKQv////8Pg358IhAgBoVCKIkiBiADfCAGQv////8PgyADQgGGQv7///8fg358IgkgCoVCMIkiAzcDgAYgASAJNwMIIAEgAyAQfCADQv////8PgyAQQgGGQv7///8fg358IgM3A4gFIAEgAyAGhUIBiTcDgAMgASAEIAWFQgGJIgUgDXwgBUL/////D4MgDUIBhkL+////H4N+fCIEIAuFQiCJIgYgCCATfCAIQv////8PgyATQgGGQv7///8fg358IgN8IAZC/////w+DIANCAYZC/v///x+DfnwiCCAFhUIoiSIFIAR8IAVC/////w+DIARCAYZC/v///x+DfnwiCyAGhUIwiSIENwOIBiABIAs3A4ABIAEgBCAIfCAEQv////8PgyAIQgGGQv7///8fg358IgQ3A4AEIAEgBCAFhUIBiTcDiAMgASAHIAMgD4VCAYkiBXwgB0IBhkL+////H4MgBUL/////D4N+fCIHIBKFQiCJIgQgDHwgBEL/////D4MgDEIBhkL+////H4N+fCIGIAWFQiiJIgUgB3wgBUL/////D4MgB0IBhkL+////H4N+fCIDIASFQjCJIgc3A4AHIAEgAzcDiAEgASAGIAd8IAdC/////w+DIAZCAYZC/v///x+DfnwiBzcDiAQgASAFIAeFQgGJNwOAAiAAQQFqIgBBCEcNAAsgAiAYQYAI/AoAAEEAIQADQCACIABBA3QiAWoiFiAWKQMAIBhBgAhqIhkgAWopAwCFNwMAIAIgAUEIciIWaiIXIBcpAwAgFiAZaikDAIU3AwAgAiABQRByIhZqIhcgFykDACAYQYAIaiAWaikDAIU3AwAgAiABQRhyIgFqIhYgFikDACAYQYAIaiABaikDAIU3AwAgAEEEaiIAQYABRw0ACyAYQYAQaiQAC6IEAg5+Cn9BAEGAgIAIIAAtAFAbIRYgACgCBCIXQQVsrSEPIAAoAggiGEEFbK0hDSAAKAIMIhlBBWytIQsgACgCECIaQQVsrSEJIAA1AgAhCCAAKAIkIRIgACgCICETIAAoAhwhFCAAKAIYIRUgACgCFCERIBqtIRAgGa0hDiAYrSEMIBetIQoDQCABKAADQQJ2Qf///x9xIBVqrSIDIA5+IAEoAABB////H3EgEWqtIgQgEH58IAEoAAZBBHZB////H3EgFGqtIgUgDH58IAEoAAlBBnYgE2qtIgYgCn58IBIgFmogASgADEEIdmqtIgcgCH58IAMgDH4gBCAOfnwgBSAKfnwgBiAIfnwgByAJfnwgAyAKfiAEIAx+fCAFIAh+fCAGIAl+fCAHIAt+fCADIAh+IAQgCn58IAUgCX58IAYgC358IAcgDX58IAMgCX4gBCAIfnwgBSALfnwgBiANfnwgByAPfnwiA0IaiEL/////D4N8IgRCGohC/////w+DfCIFQhqIQv////8Pg3wiBkIaiEL/////D4N8IgdCGoinQQVsIAOnQf///x9xaiIRQRp2IASnQf///x9xaiEVIAWnQf///x9xIRQgBqdB////H3EhEyAHp0H///8fcSESIBFB////H3EhESABQRBqIQEgAkIQfSICQg9WDQALIAAgEjYCJCAAIBM2AiAgACAUNgIcIAAgFTYCGCAAIBE2AhQL1gkBHH8gASgCACEDIAEoAighBCABKAIEIQUgASgCLCEGIAEoAgghByABKAIwIQggASgCDCEJIAEoAjQhCiABKAIQIQsgASgCOCEMIAEoAhQhDSABKAI8IQ4gASgCGCEPIAEoAkAhECABKAIcIREgASgCRCESIAEoAiAhEyABKAJIIRQgACABKAIkIAEoAkxqNgIkIAAgEyAUajYCICAAIBEgEmo2AhwgACAPIBBqNgIYIAAgDSAOajYCFCAAIAsgDGo2AhAgACAJIApqNgIMIAAgByAIajYCCCAAIAUgBmo2AgQgACADIARqNgIAIAEoAgAhAyABKAIoIQQgASgCBCEFIAEoAiwhBiABKAIIIQcgASgCMCEIIAEoAgwhCSABKAI0IQogASgCECELIAEoAjghDCABKAIUIQ0gASgCPCEOIAEoAhghDyABKAJAIRAgASgCHCERIAEoAkQhEiABKAIgIRMgASgCSCEUIAAgASgCTCABKAIkazYCTCAAIBQgE2s2AkggACASIBFrNgJEIAAgECAPazYCQCAAIA4gDWs2AjwgACAMIAtrNgI4IAAgCiAJazYCNCAAIAggB2s2AjAgACAGIAVrNgIsIAAgBCADazYCKCAAQdAAaiAAIAIQByAAQShqIgMgAyACQShqEAcgAEH4AGogAkHQAGogAUH4AGoQByABKAJQIRMgASgCVCEUIAEoAlghFSABKAJcIRYgASgCYCEXIAEoAmQhGCABKAJoIRkgASgCbCEaIAEoAnAhGyABKAJ0IRwgACgCKCEBIAAoAlAhAiAAKAIsIQMgACgCVCEEIAAoAjAhBSAAKAJYIQYgACgCNCEHIAAoAlwhCCAAKAI4IQkgACgCYCEKIAAoAjwhCyAAKAJkIQwgACgCQCENIAAoAmghDiAAKAJEIQ8gACgCbCEQIAAoAkghESAAKAJwIRIgACAAKAJMIh0gACgCdCIeajYCTCAAIBEgEmo2AkggACAPIBBqNgJEIAAgDSAOajYCQCAAIAsgDGo2AjwgACAJIApqNgI4IAAgByAIajYCNCAAIAUgBmo2AjAgACADIARqNgIsIAAgASACajYCKCAAIB4gHWs2AiQgACASIBFrNgIgIAAgECAPazYCHCAAIA4gDWs2AhggACAMIAtrNgIUIAAgCiAJazYCECAAIAggB2s2AgwgACAGIAVrNgIIIAAgBCADazYCBCAAIAIgAWs2AgAgACAcQQF0IgEgACgCnAEiAms2ApwBIAAgG0EBdCIDIAAoApgBIgRrNgKYASAAIBpBAXQiBSAAKAKUASIGazYClAEgACAZQQF0IgcgACgCkAEiCGs2ApABIAAgGEEBdCIJIAAoAowBIgprNgKMASAAIBdBAXQiCyAAKAKIASIMazYCiAEgACAWQQF0Ig0gACgChAEiDms2AoQBIAAgFUEBdCIPIAAoAoABIhBrNgKAASAAIBRBAXQiESAAKAJ8IhJrNgJ8IAAgE0EBdCITIAAoAngiFGs2AnggACADIARqNgJwIAAgBSAGajYCbCAAIAcgCGo2AmggACAJIApqNgJkIAAgCyAMajYCYCAAIA0gDmo2AlwgACAPIBBqNgJYIAAgESASajYCVCAAIBMgFGo2AlAgACABIAJqNgJ0C/QEARl+IAE1AAAhBiABMQAfIQIgATEAHiEOIAExAB0hDyABMQAGIQcgATEABSEIIAExAAQhAyABMQAJIRAgATEACCERIAExAAchEiABMQAMIQkgATEACyEKIAExAAohCyABMQAPIQwgATEADiETIAExAA0hFCABMQAcIQQgATEAGyEVIAExABohFiABMQAZIQUgATEAGCEXIAExABchGCAAIAExABVCD4YgATEAFEIHhoQgATEAFkIXhoQgATUAECIZQoCAgAh8IhpCGYh8Ig0gDUKAgIAQfCINQoCAgOAPg30+AhggACAXQg2GIBhCBYaEIAVCFYaEIgUgDUIaiHwgBUKAgIAIfCIFQoCAgPADg30+AhwgACAVQgyGIBZCBIaEIARCFIaEIAVCGYh8IgQgBEKAgIAQfCIEQoCAgOAPg30+AiAgACAZIBpCgICA8A+DfSATQgqGIBRC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H3ZBAWsiBUH///8fcSICIApxciIKQRp0IAIgCXEgBCAGcXJyIgYgACgCKGoiCTYAACABIAYgCUutIBEgBCALcSACIAxxciIGQRR0IApBBnZyrXx8IhE+AAQgASAQIAQgCHEgAiANcXIiAkEOdCAGQQx2cq18IBFCIIh8IhA+AAggASAPIAUgDnEgBCAHcXJBCHQgAkESdnKtfCAQQiCIfD4ADCADIAA2AgxBACEAA0AgAygCDCAAakEAOgAAIAMoAgwgAGpBADoAASADKAIMIABqQQA6AAIgAygCDCAAakEAOgADIABBBHIiASADKAIMakEAOgAAIAMoAgwgAWpBADoAASADKAIMIAFqQQA6AAIgAygCDCABakEAOgADIABBCGoiAEHYAEcNAAsgA0EQaiQAC80CAQF/IwBB0ABrIgUkACACQgBSBEAgBUKy2ojLx66ZkOsANwIUIAVC5fDBi+aNmZAzNwIMIAUgBCgAADYCHCAFIAQoAAQ2AiAgBSAEKAAINgIkIAUgBCgADDYCKCAFIAQoABA2AiwgBSAEKAAUNgIwIAUgBCgAGDYCNCAEKAAcIQQgBUEBNgI8IAUgBDYCOCAFIAMoAAA2AkAgBSADKAAENgJEIAUgAygACDYCSCAFQQxqIgMgASAAIAIQIyAFIAM2AkxBACEEA0AgBSgCTCAEakEAOgAAIAUoAkwgBGpBADoAASAFKAJMIARqQQA6AAIgBSgCTCAEakEAOgADIARBBHIiACAFKAJMakEAOgAAIAUoAkwgAGpBADoAASAFKAJMIABqQQA6AAIgBSgCTCAAakEAOgADIARBCGoiBEHAAEcNAAsLIAVB0ABqJAAL/gIBAX8jAEHQAGsiAyQAIANCstqIy8eumZDrADcCFCADQuXwwYvmjZmQMzcCDCADIAIoAAA2AhwgAyACKAAENgIgIAMgAigACDYCJCADIAIoAAw2AiggAyACKAAQNgIsIAMgAigAFDYCMCADIAIoABg2AjQgAigAHCECIANBADYCPCADIAI2AjggAyABKAAANgJAIAMgASgABDYCRCADIAEoAAg2AkggAEIANwA4IABCADcAMCAAQgA3ACggAEIANwAgIABCADcAGCAAQgA3ABAgAEIANwAIIABCADcAACADQQxqIgEgACAAQsAAECMgAyABNgJMQQAhAANAIAMoAkwgAGpBADoAACADKAJMIABqQQA6AAEgAygCTCAAakEAOgACIAMoAkwgAGpBADoAAyAAQQRyIgEgAygCTGpBADoAACADKAJMIAFqQQA6AAEgAygCTCABakEAOgACIAMoAkwgAWpBADoAAyAAQQhqIgBBwABHDQALIANB0ABqJAALsgUBCX8jAEGAAWsiAyQAIwEiBUHkiAJqIgQtAAAhBiAAQgA3AgQgAEEBNgIAIABCADcCDCAAQgA3AhQgAEIANwIcIABCgICAgBA3AiQgAEEsakEAQcwA/AsAIAAgBUGwD2ogAUHAB2xqIgEgBC0AAEECdiACIAJBACAGQQJ2IAJBgAFxQQd2cyIFa3FBAXRrIgJBAXNB/wFxQQFrQR92cxATIAAgAUH4AGogBC0AAEECdiACQQJzQf8BcUEBa0EfdnMQEyAAIAFB8AFqIAQtAABBAnYgAkEDc0H/AXFBAWtBH3ZzEBMgACABQegCaiAELQAAQQJ2IAJBBHNB/wFxQQFrQR92cxATIAAgAUHgA2ogBC0AAEECdiACQQVzQf8BcUEBa0EfdnMQEyAAIAFB2ARqIAQtAABBAnYgAkEGc0H/AXFBAWtBH3ZzEBMgACABQdAFaiAELQAAQQJ2IAJBB3NB/wFxQQFrQR92cxATIAAgAUHIBmogBC0AAEECdiACQQhzQf8BcUEBa0EfdnMQEyADIAApAkg3AyggAyAAQUBrKQIANwMgIAMgACkCODcDGCADIAApAjA3AxAgAyAAKQIoNwMIIAMgACkCCDcDOCADQUBrIAApAhA3AwAgAyAAKQIYNwNIIAMgACkCIDcDUCADIAApAgA3AzAgACgCUCEBIAAoAlQhAiAAKAJYIQQgACgCXCEGIAAoAmAhByAAKAJkIQggACgCaCEJIAAoAmwhCiAAKAJwIQsgA0EAIAAoAnRrNgJ8IANBACALazYCeCADQQAgCms2AnQgA0EAIAlrNgJwIANBACAIazYCbCADQQAgB2s2AmggA0EAIAZrNgJkIANBACAEazYCYCADQQAgAms2AlwgA0EAIAFrNgJYIAAgA0EIaiAFEBMgA0GAAWokAAvLDwEXfyMAQdACayICJAAgAEEoaiIGIAEQHiAAQgA3AlQgAEEBNgJQIABCADcCXCAAQgA3AmQgAEIANwJsIABBADYCdCACQfABaiIFIAYQBiACQcABaiIEIAUjAUHABmoQB0F/IQcgAiACKALwAUEBayIINgLwASACIAIoAsABQQFqNgLAASACKAL0ASEJIAIoAvgBIQogAigC/AEhCyACKAKAAiEMIAIoAoQCIQ0gAigCiAIhDiACKAKMAiEPIAIoApACIRAgAigClAIhESACQZABaiIDIAQQBiADIAMgBBAHIAAgAxAGIAAgACAEEAcgACAAIAUQByAAIAAQKSAAIAAgAxAHIAAgACAFEAcgAkHgAGoiAyAAEAYgAyADIAQQByACIAIoAoQBIgQgEWs2AlQgAiACKAKAASIDIBBrNgJQIAIgAigCfCIFIA9rNgJMIAIgAigCeCISIA5rNgJIIAIgAigCdCITIA1rNgJEIAIgAigCcCIUIAxrNgJAIAIgAigCbCIVIAtrNgI8IAIgAigCaCIWIAprNgI4IAIgAigCZCIXIAlrNgI0IAIgAigCYCIYIAhrNgIwIAIgAkEwahANIAJBADoAoAIgAiACLQAAIAItAKACcjoAoAIgAiACLQABIAItAKACcjoAoAIgAiACLQACIAItAKACcjoAoAIgAiACLQADIAItAKACcjoAoAIgAiACLQAEIAItAKACcjoAoAIgAiACLQAFIAItAKACcjoAoAIgAiACLQAGIAItAKACcjoAoAIgAiACLQAHIAItAKACcjoAoAIgAiACLQAIIAItAKACcjoAoAIgAiACLQAJIAItAKACcjoAoAIgAiACLQAKIAItAKACcjoAoAIgAiACLQALIAItAKACcjoAoAIgAiACLQAMIAItAKACcjoAoAIgAiACLQANIAItAKACcjoAoAIgAiACLQAOIAItAKACcjoAoAIgAiACLQAPIAItAKACcjoAoAIgAiACLQAQIAItAKACcjoAoAIgAiACLQARIAItAKACcjoAoAIgAiACLQASIAItAKACcjoAoAIgAiACLQATIAItAKACcjoAoAIgAiACLQAUIAItAKACcjoAoAIgAiACLQAVIAItAKACcjoAoAIgAiACLQAWIAItAKACcjoAoAIgAiACLQAXIAItAKACcjoAoAIgAiACLQAYIAItAKACcjoAoAIgAiACLQAZIAItAKACcjoAoAIgAiACLQAaIAItAKACcjoAoAIgAiACLQAbIAItAKACcjoAoAIgAiACLQAcIAItAKACcjoAoAIgAiACLQAdIAItAKACcjoAoAIgAiACLQAeIAItAKACcjoAoAIgAiACLQAfIAItAKACcjoAoAICQCACLQCgAkEBa0GAAnFFBEAgAiAEIBFqNgIkIAIgAyAQajYCICACIAUgD2o2AhwgAiAOIBJqNgIYIAIgDSATajYCFCACIAwgFGo2AhAgAiALIBVqNgIMIAIgCiAWajYCCCACIAkgF2o2AgQgAiAIIBhqNgIAIAJBoAJqIAIQDSACQQA6AM8CIAIgAi0AoAIgAi0AzwJyOgDPAiACIAItAKECIAItAM8CcjoAzwIgAiACLQCiAiACLQDPAnI6AM8CIAIgAi0AowIgAi0AzwJyOgDPAiACIAItAKQCIAItAM8CcjoAzwIgAiACLQClAiACLQDPAnI6AM8CIAIgAi0ApgIgAi0AzwJyOgDPAiACIAItAKcCIAItAM8CcjoAzwIgAiACLQCoAiACLQDPAnI6AM8CIAIgAi0AqQIgAi0AzwJyOgDPAiACIAItAKoCIAItAM8CcjoAzwIgAiACLQCrAiACLQDPAnI6AM8CIAIgAi0ArAIgAi0AzwJyOgDPAiACIAItAK0CIAItAM8CcjoAzwIgAiACLQCuAiACLQDPAnI6AM8CIAIgAi0ArwIgAi0AzwJyOgDPAiACIAItALACIAItAM8CcjoAzwIgAiACLQCxAiACLQDPAnI6AM8CIAIgAi0AsgIgAi0AzwJyOgDPAiACIAItALMCIAItAM8CcjoAzwIgAiACLQC0AiACLQDPAnI6AM8CIAIgAi0AtQIgAi0AzwJyOgDPAiACIAItALYCIAItAM8CcjoAzwIgAiACLQC3AiACLQDPAnI6AM8CIAIgAi0AuAIgAi0AzwJyOgDPAiACIAItALkCIAItAM8CcjoAzwIgAiACLQC6AiACLQDPAnI6AM8CIAIgAi0AuwIgAi0AzwJyOgDPAiACIAItALwCIAItAM8CcjoAzwIgAiACLQC9AiACLQDPAnI6AM8CIAIgAi0AvgIgAi0AzwJyOgDPAiACIAItAL8CIAItAM8CcjoAzwIgAi0AzwJBAWtBgAJxRQ0BIAAgACMBQfAGahAHCyACQaACaiAAEA0gAi0AoAJBAXEgAS0AH0EHdkYEQCAAQQAgACgCJGs2AiQgAEEAIAAoAiBrNgIgIABBACAAKAIcazYCHCAAQQAgACgCGGs2AhggAEEAIAAoAhRrNgIUIABBACAAKAIQazYCECAAQQAgACgCDGs2AgwgAEEAIAAoAghrNgIIIABBACAAKAIEazYCBCAAQQAgACgCAGs2AgALIABB+ABqIAAgBhAHQQAhBwsgAkHQAmokACAHC64IAQN/IwBBkAFrIgMkACADQeAAaiIEIAEQBiADQTBqIgIgBBAGIAIgAhAGIAIgASACEAcgBCAEIAIQByAEIAQQBiAEIAIgBBAHIAIgBBAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAQgAiAEEAcgAiAEEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACIAQQByADIAIQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiADIAMQBiACIAMgAhAHIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAIgAhAGIAQgAiAEEAcgAiAEEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACEAYgAiACIAQQByADIAIQBkEBIQIDQCADIAMQBiACQQFqIgJB5ABHDQALIANBMGoiAiADIAIQByACIAIQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiACIAIQBiAC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ACgCjAEhCiAAKAKQASEJIAAoApQBIQYgACgCmAEhCCABQQAgACgCnAFrNgKcASABQQAgCGs2ApgBIAFBACAGazYClAEgAUEAIAlrNgKQASABQQAgCms2AowBIAFBACAEazYCiAEgAUEAIB9rNgKEASABQQAgB2s2AoABIAFBACALazYCfCABQQAgA2s2AnggAUHAAmoiAyABEAogAUGgAWoiACAeIAMQCSAgIAAgAUGYAmoiAxAHICBBKGogAUHIAWoiCyABQfABaiIHEAcgIEHQAGogByADEAcgIEH4AGogACALEAcgAUHgA2okACAgEBhBAWshCQsgBUHgCGokACAJC/wcAgp/A34jACIIIQsgCEHABGtBQHEiByQAQSAQCyIIRQRAIAskAEF/DwtBIBALIglFBEAgCBAIIAskAEF+DwsgAEEMayEQIAdCADcDyAEgByMBIgApAwg3A4gBIAcgACkDEDcDkAEgByAAKQMYNwOYASAHIAApAyA3A6ABIAcgACkDKDcDqAEgByAAKQMwNwOwASAHIAApAzg3A7gBIAdCADcDwAEgByAAKQMANwOAASAHQYABaiIAIANCIBAOIAAgB0EgaiIAEBAgByAHLQAgQfgBcToAICAHIActAD9BP3FBwAByOgA/IAkgBykDMDcAECAJIAcpAyg3AAggCSAHKQMgNwAAIAkgBykDODcAGCAHIAA2AoABQQAhAANAIAcoAoABIABqQQA6AAAgBygCgAEgAGpBADoAASAHKAKAASAAakEAOgACIAcoAoABIABqQQA6AAMgAEEEciIDIAcoAoABakEAOgAAIAcoAoABIANqQQA6AAEgBygCgAEgA2pBADoAAiAHKAKAASADakEAOgADIABBCGoiAEHAAEcNAAsgCCAJEDEEQCAIEAggCRAIIAskAEF8DwtBIBALIgwgAhAwBEAgDBAIIAgQCCAJEAggCyQAQXoPC0EgEAsiA0UEQCAMEAggCBAIIAkQCCALJABBeQ8LIANC27fv3r379u1bNwAAIANC27fv3r379u1bNwAYIANC27fv3r379u1bNwAQIANC27fv3r379u1bNwAIIAdB4ABqIgAgCSAMEC9FBEAgB0HAAWpBAEGlAvwLACAHIAcpA2g3A+gBIAcgBykDcDcD8AEgByAHKQN4NwP4ASAHQvnC+JuRo7Pw2wA3A7gBIAdC6/qG2r+19sEfNwOwASAHQp/Y+dnCkdqCm383A6gBIAdC0YWa7/rPlIfRADcDoAEgB0Lx7fT4paf9p6V/NwOYASAHQqvw0/Sv7ry3PDcDkAEgB0K7zqqm2NDrs7t/NwOIASAHQsiS95X/zPmE6gA3A4ABIAcgBykDYDcD4AEgByAHKALgA0EgaiICNgLgAyAHIAA2ArwEIAcoArwEQQA6AAAgBygCvARBADoAASAHKAK8BEEAOgACIAcoArwEQQA6AAMgBygCvARBADoABCAHKAK8BEEAOgAFIAcoArwEQQA6AAYgBygCvARBADoAByAHKAK8BEEAOgAIIAcoArwEQQA6AAkgBygCvARBADoACiAHKAK8BEEAOgALIAcoArwEQQA6AAwgBygCvARBADoADSAHKAK8BEEAOgAOIAcoArwEQQA6AA8gBygCvARBADoAECAHKAK8BEEAOgARIAcoArwEQQA6ABIgBygCvARBADoAEyAHKAK8BEEAOgAUIAcoArwEQQA6ABUgBygCvARBADoAFiAHKAK8BEEAOgAXIAcoArwEQQA6ABggBygCvARBADoAGSAHKAK8BEEAOgAaIAcoArwEQQA6ABsgBygCvARBADoAHCAHKAK8BEEAOgAdIAcoArwEQQA6AB4gBygCvARBADoAHyAHQeACaiEPIAdB4AFqIQ1CICERIAghAANAAkAgAiANaiEOIBFBgAIgAmsiCq0iElgNACAKBEAgDiAAIAr8CgAACyAHIAcoAuADIApqNgLgAyAHIAcpA8ABIhNCgAF8NwPAASAHIAcpA8gBIBNC/35WrXw3A8gBIAdBgAFqIA0QDCANIA9BgAH8CgAAIAcgBygC4ANBgAFrIgI2AuADIAAgCmohACARIBJ9IREMAQsLIBGnIgIEQCAOIAAgAvwKAAALIAcgBygC4AMgAmoiAjYC4ANCICERIAwhAANAAkAgAiANaiEOIBFBgAIgAmsiCq0iElgNACAKBEAgDiAAIAr8CgAACyAHIAcoAuADIApqNgLgAyAHIAcpA8ABIhNCgAF8NwPAASAHIAcpA8gBIBNC/35WrXw3A8gBIAdBgAFqIA0QDCANIA9BgAH8CgAAIAcgBygC4ANBgAFrIgI2AuADIAAgCmohACARIBJ9IREMAQsLIBGnIgIEQCAOIAAgAvwKAAALIAcgBygC4AMgAmo2AuADIAdBgAFqIgAgB0EgakHAABAVGiAHIAA2ArwEQQAhAANAIAcoArwEIABqQQA6AAAgBygCvAQgAGpBADoAASAHKAK8BCAAakEAOgACIAcoArwEIABqQQA6AAMgAEEEciICIAcoArwEakEAOgAAIAcoArwEIAJqQQA6AAEgBygCvAQgAmpBADoAAiAHKAK8BCACakEAOgADIABBCGoiAEGAA0cNAAsgAyAHLQBAOgAAIAMgBy0AQToAASADIActAEI6AAIgAyAHLQBDOgADIAMgBy0ARDoABCADIActAEU6AAUgAyAHLQBGOgAGIAMgBy0ARzoAByADIActAEg6AAggAyAHLQBJOgAJIAMgBy0ASjoACiADIActAEs6AAsgAyAHLQBMOgAMIAMgBy0ATToADSADIActAE46AA4gAyAHLQBPOgAPIAMgBy0AUDoAECADIActAFE6ABEgAyAHLQBSOgASIAMgBy0AUzoAEyADIActAFQ6ABQgAyAHLQBVOgAVIAMgBy0AVjoAFiADIActAFc6ABcgAyAHLQBYOgAYIAMgBy0AWToAGSADIActAFo6ABogAyAHLQBbOgAbIAMgBy0AXDoAHCADIActAF06AB0gAyAHLQBeOgAeIAMgBy0AXzoAHyAHIAdBIGo2ArwEQQAhAANAIAcoArwEIABqQQA6AAAgBygCvAQgAGpBADoAASAHKAK8BCAAakEAOgACIAcoArwEIABqQQA6AAMgAEEEciICIAcoArwEakEAOgAAIAcoArwEIAJqQQA6AAEgBygCvAQgAmpBADoAAiAHKAK8BCACakEAOgADIABBCGoiAEHAAEcNAAsgDBAIIAgQCCAJEAggAUEMaiEIIAStIRIjAEHwAmsiACQAAkACQCAQrSITQhBUDQAgAEEgaiICIAEgAxAmIABCADcCfCAAQQA2AoQBIABCADcCdCAAQQA6ALABIABCADcDmAEgACAAKAIwNgKIASAAIAApAjQ3AowBIAAgACgCPDYClAEgACAAKAIgQf///x9xNgJgIAAgACgAI0ECdkGD/v8fcTYCZCAAIAAoASZBBHZB/4H/H3E2AmggACAAKAApQQZ2Qf//wB9xNgJsIAAgACgCLEEIdkH//z9xNgJwIAAgAjYC7AJBACECA0AgACgC7AIgAmpBADoAACAAKALsAiACakEAOgABIAAoAuwCIAJqQQA6AAIgACgC7AIgAmpBADoAAyACQQRyIgQgACgC7AJqQQA6AAAgACgC7AIgBGpBADoAASAAKALsAiAEakEAOgACIAAoAuwCIARqQQA6AAMgAkEIaiICQcAARw0ACyAAQeAAaiICIAUgEhARIAIjAUHggAJqIgRCACASfUIPgxARIAIgCCATQhB9IhEQESACIARCACATfUIPgxARIAAgEjcDGCACIABBGGoiBEIIEBEgACARNwMYIAIgBEIIEBEgAiAAECQgACACNgLsAkEAIQIDQCAAKALsAiACakEAOgAAIAAoAuwCIAJqQQA6AAEgACgC7AIgAmpBADoAAiAAKALsAiACakEAOgADIAJBBHIiBCAAKALsAmpBADoAACAAKALsAiAEakEAOgABIAAoAuwCIARqQQA6AAIgACgC7AIgBGpBADoAAyACQQhqIgJBgAJHDQALIAAgADYC7AIgACAIIBOnakEQazYC6AIgAEEAOwHmAiAAIAAvAeYCIAAoAuwCLQAAIAAoAugCLQAAc3I7AeYCIAAgAC8B5gIgACgC7AItAAEgACgC6AItAAFzcjsB5gIgACAALwHmAiAAKALsAi0AAiAAKALoAi0AAnNyOwHmAiAAIAAvAeYCIAAoAuwCLQADIAAoAugCLQADc3I7AeYCIAAgAC8B5gIgACgC7AItAAQgACgC6AItAARzcjsB5gIgACAALwHmAiAAKALsAi0ABSAAKALoAi0ABXNyOwHmAiAAIAAvAeYCIAAoAuwCLQAGIAAoAugCLQAGc3I7AeYCIAAgAC8B5gIgACgC7AItAAcgACgC6AItAAdzcjsB5gIgACAALwHmAiAAKALsAi0ACCAAKALoAi0ACHNyOwHmAiAAIAAvAeYCIAAoAuwCLQAJIAAoAugCLQAJc3I7AeYCIAAgAC8B5gIgACgC7AItAAogACgC6AItAApzcjsB5gIgACAALwHmAiAAKALsAi0ACyAAKALoAi0AC3NyOwHmAiAAIAAvAeYCIAAoAuwCLQAMIAAoAugCLQAMc3I7AeYCIAAgAC8B5gIgACgC7AItAA0gACgC6AItAA1zcjsB5gIgACAALwHmAiAAKALsAi0ADiAAKALoAi0ADnNyOwHmAiAAIAAvAeYCIAAoAuwCLQAPIAAoAugCLQAPc3I7AeYCIAAgAC8B5gJBAWs7AeYCIAAjAUHmiAJqLwEAQQJ2IAAvAeYCQQ92czsB5gIgAC8B5gIgACAANgLsAiAAKALsAkEAOgAAIAAoAuwCQQA6AAEgACgC7AJBADoAAiAAKALsAkEAOgADIAAoAuwCQQA6AAQgACgC7AJBADoABSAAKALsAkEAOgAGIAAoAuwCQQA6AAcgACgC7AJBADoACCAAKALsAkEAOgAJIAAoAuwCQQA6AAogACgC7AJBADoACyAAKALsAkEAOgAMIAAoAuwCQQA6AA0gACgC7AJBADoADiAAKALsAkEAOgAPQQFrIQICQCAGBEAgAkUNASARpyIBRQ0CIAZBACAB/AsADAILQgAgESACGyERDAILIAYgCCARIAEgAxAlQQAhAgwBC0IAIRFBfyECCyAHIBE3A4ABIABB8AJqJAAgAxAIIAskAEF3QQAgAhsPCyAMEAggCBAIIAkQCCADEAggCyQAQXgLuyMCQX8NfiMAQYAFayIDJAAgA0EAOgAPA0AgAiAFai0AACIGIwFB8IACaiAFaiIELQDAAXMgDnIhDiAGIAQtAKABcyAJciEJIAYgBC0AgAFzIAxyIQwgBiAELQBgcyAIciEIIAYgBC0AQHMgC3IhCyAGIAQtACBzIAdyIQcgBiAELQAAcyAKciEKIAVBAWoiBUEfRw0AC0F/IQQgAi0AH0H/AHEiBiAHckH/AXFBAWsgBiAKckH/AXFBAWtyIAYgC3JB/wFxQQFrciAGQdcAcyAIckH/AXFBAWtyIAZB/wBzIgYgDHJB/wFxQQFrciAGIAlyQf8BcUEBa3IgBiAOckH/AXFBAWtyQYACcUUEQCADIAEpABg3A+gEIAMgASkAEDcD4AQgAyABKQAAIkQ3A9AEIAMgASkACDcD2AQgAyBEp0H4AXE6ANAEIAMgAy0A7wRBP3FBwAByOgDvBCADQaAEaiACEB4gA0IANwKEBCADQgA3AowEIANBADYClAQgA0IANwOgAyADQgA3A6gDIANCADcDsAMgAyADKQOwBDcD0AMgAyADKQO4BDcD2AMgAyADKQPABDcD4AMgA0IANwL0AyADQQE2AvADIANCADcC/AMgA0IANwOQAyADQgA3A5gDIAMgAykDoAQ3A8ADIAMgAykDqAQ3A8gDIANCADcC9AIgA0IANwL8AiADQQA2AoQDIANCADcC5AIgA0EBNgLgAiADQgA3AuwCQf4BIQJBACEGA0AgAygClAQhBCADKALkAyEFIAMoAtQDIQogAygChAQhByADKALYAyELIAMoAogEIQggAygC3AMhDCADKAKMBCEJIAMoAuADIQ4gAygCkAQhEiADKALQAyETIAMoAoAEIQ8gAygCzAMhFCADKAL8AyEQIAMoAsgDIRUgAygC+AMhESADKALEAyEWIAMoAvQDIRkgAygCtAMhDSADKAKEAyEeIANBACAGIANB0ARqIjAgAiIBQQN2ai0AACACQQdxdkEBcSIGc2siAiADKALAAyIsIAMoAvADIhdzcSItIBdzIhc2AvADIAMgGSAWIBlzIAJxIi5zIhk2AvQDIAMgESARIBVzIAJxIjFzIhE2AvgDIAMgECAQIBRzIAJxIjJzIhA2AvwDIAMgDyAPIBNzIAJxIjNzIg82AoAEIAMoApADIR8gAygC4AIhICADKAKUAyEhIAMoAuQCISIgAygCmAMhGCADKALoAiEjIAMoApwDISQgAygC7AIhJSADKAKgAyEmIAMoAvACISkgAygCpAMhGiADKAL0AiEnIAMoAqgDIRsgAygC+AIhKCADKAKsAyEcIAMoAvwCISogAygCsAMhHSADKAKAAyErIAMgDSANIB5zIAJxIjRzIg0gBCAEIAVzIAJxIjVzIgRqNgLUAiADIB0gHSArcyACcSI2cyIdIBIgDiAScyACcSI3cyISajYC0AIgAyAcIBwgKnMgAnEiOHMiHCAJIAkgDHMgAnEiOXMiCWo2AswCIAMgGyAbIChzIAJxIjpzIhsgCCAIIAtzIAJxIjtzIghqNgLIAiADIBogGiAncyACcSI8cyIaIAcgByAKcyACcSI9cyIHajYCxAIgAyAEIA1rNgKkAiADIBIgHWs2AqACIAMgCSAcazYCnAIgAyAIIBtrNgKYAiADIAcgGms2ApQCIAMgJiAmIClzIAJxIg1zIgQgD2o2AsACIAMgJCAkICVzIAJxIiZzIgcgEGo2ArwCIAMgGCAYICNzIAJxIiRzIgggEWo2ArgCIAMgISAhICJzIAJxIhhzIgkgGWo2ArQCIAMgHyAfICBzIAJxIiFzIgIgF2o2ArACIAMgDyAEazYCkAIgAyAQIAdrNgKMAiADIBEgCGs2AogCIAMgGSAJazYChAIgAyAXIAJrNgKAAiADQdABaiICIANBsAJqIj4QBiADQaABaiIEIANBgAJqIj8QBiADQfADaiIvIAIgBBAHIAMoAsABIQIgAygC8AEhFyADKAK8ASEEIAMoAuwBIR8gAygCuAEhByADKALoASEaIAMoArQBIQggAygC5AEhGyADKAKwASEJIAMoAuABIRwgAygCrAEhEiADKALcASEdIAMoAqgBIQ8gAygC2AEhQCADKAKkASEQIAMoAtQBIUEgAygCxAEhESADKAL0ASFCIAMoAqABIRkgAygC0AEhQyADIAUgNXMiBSAeIDRzIh5rNgJkIAMgDiA3cyIOICsgNnMiK2s2AmAgAyAMIDlzIgwgKiA4cyIqazYCXCADIAsgO3MiCyAoIDpzIihrNgJYIAMgCiA9cyIKICcgPHMiJ2s2AlQgAyATIDNzIhMgDSApcyINazYCUCADIBQgMnMiFCAlICZzIiVrNgJMIAMgFSAxcyIVICMgJHMiI2s2AkggAyAWIC5zIhYgGCAicyIiazYCRCADICwgLXMiGCAgICFzIiBrNgJAIAMgQyAZayIkNgJwIAMgQiARayImNgKUASADIEEgEGsiKTYCdCADIEAgD2siLDYCeCADIB0gEmsiHTYCfCADIBwgCWsiHDYCgAEgAyAbIAhrIhs2AoQBIAMgGiAHayIaNgKIASADIB8gBGsiLTYCjAEgAyAXIAJrIi42ApABIANBQGsiFyAXID4QByADIAUgHmo2AjQgAyAOICtqNgIwIAMgDCAqajYCLCADIAsgKGo2AiggAyAKICdqNgIkIAMgDSATajYCICADIBQgJWo2AhwgAyAVICNqNgIYIAMgFiAiajYCFCADIBggIGo2AhAgA0EQaiIFIAUgPxAHIAMoAhAhBSADKAJAIQogAygCFCELIAMoAkQhDCADKAIYIQ4gAygCSCETIAMoAhwhFCADKAJMIRUgAygCICEWIAMoAlAhDSADKAIkIR4gAygCVCEXIAMoAighHyADKAJYISAgAygCLCEhIAMoAlwhIiADKAIwIRggAygCYCEjIAMgAygCNCIlIAMoAmQiJ2o2AuQDIAMgGCAjajYC4AMgAyAhICJqNgLcAyADIB8gIGo2AtgDIAMgFyAeajYC1AMgAyANIBZqNgLQAyADIBQgFWo2AswDIAMgDiATajYCyAMgAyALIAxq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aiADIAUQByAEIBIQCiADIBYgBBAJIAJBgBlqIhkgAyABEAcgAkGoGWogBSAGEAcgAkHQGWogBiABEAcgAkH4GWogAyAFEAcgBCAZEAogAyAWIAQQCSACQeAXaiIbIAMgARAHIAJBiBhqIAUgBhAHIAJBsBhqIAYgARAHIAJB2BhqIAMgBRAHIAQgGxAKIAMgGCAEEAkgAkHAFmoiHCADIAEQByACQegWaiAFIAYQByACQZAXaiAGIAEQByACQbgXaiADIAUQByAHIAJBgBhqKQIANwMAIAkgAkH4F2opAgA3AwAgDCACQfAXaikCADcDACANIAJB6BdqKQIANwMAIA4gAkGQGGopAgA3AwAgDyACQZgYaikCADcDACAQIAJBoBhqKQIANwMAIBEgAkGoGGopAgA3AwAgAiACKQLgFzcDgB4gAiACKQKIGDcDqB4gEyACQdAYaikCADcDACAUIAJByBhqKQIANwMAIBUgAkHAGGopAgA3AwAgFyACQbgYaikCADcDACACIAIpArAYNwPQHiAEIAMQEiACQaAVaiIdIAQgChAHIAJByBVqIAsgCBAHIAJB8BVqIAggChAHIAJBmBZqIAQgCxAHIAcgAkHAFWopAgA3AwAgCSACQbgVaikCADcDACAMIAJBsBVqKQIANwMAIA0gAkGoFWopAgA3AwAgDiACQdAVaikCADcDACAPIAJB2BVqKQIANwMAIBAgAkHgFWopAgA3AwAgESACQegVaikCADcDACACIAIpAqAVNwOAHiACIAIpAsgVNwOoHiATIAJBkBZqKQIANwMAIBQgAkGIFmopAgA3AwAgFSACQYAWaikCADcDACAXIAJB+BVqKQIANwMAIAIgAikC8BU3A9AeIAQgAxASIAJBgBRqIhogBCAKEAcgAkGoFGogCyAIEAcgAkHQFGogCCAKEAcgAkH4FGogBCALEAcgBCAaEAogAyAZIAQQCSACQeASaiIaIAMgARAHIAJBiBNqIAUgBhAHIAJBsBNqIAYgARAHIAJB2BNqIAMgBRAHIAcgAkGgFGopAgA3AwAgCSACQZgUaikCADcDACAMIAJBkBRqKQIANwMAIA0gAkGIFGopAgA3AwAgDiACQbAUaikCADcDACAPIAJBuBRqKQIANwMAIBAgAkHAFGopAgA3AwAgESACQcgUaikCADcDACACIAIpAoAUNwOAHiACIAIpAqgUNwOoHiATIAJB8BRqKQIANwMAIBQgAkHoFGopAgA3AwAgFSACQeAUaikCADcDACAXIAJB2BRqKQIANwMAIAIgAikC0BQ3A9AeIAQgAxASIAJBwBFqIgcgBCAKEAcgAkHoEWogCyAIEAcgAkGQEmogCCAKEAcgAkG4EmogBCALEAcgBCAHEAogAyAdIAQQCSACQaAQaiIIIAMgARAHIAJByBBqIAUgBhAHIAJB8BBqIAYgARAHIAJBmBFqIAMgBRAHIAQgCBAKIAMgGCAEEAkgAkGAD2oiDCADIAEQByACQagPaiAFIAYQByACQdAPaiAGIAEQByACQfgPaiADIAUQByAEIAwQCiADIB0gBBAJIAJB4A1qIg8gAyABEAcgAkGIDmogBSAGEAcgAkGwDmogBiABEAcgAkHYDmogAyAFEAcgBCAPEAogAyASIAQQCSACQcAMaiIQIAMgARAHIAJB6AxqIAUgBhAHIAJBkA1qIAYgARAHIAJBuA1qIAMgBRAHIAQgEBAKIAMgEiAEEAkgAkGgC2oiEyADIAEQByACQcgLaiAFIAYQByACQfALaiAGIAEQByACQZgMaiADIAUQByAEIAwQCiADIAcgBBAJIAJBgApqIg0gAyABEAcgAkGoCmogBSAGEAcgAkHQCmogBiABEAcgAkH4CmogAyAFEAcgBCANEAogAyASIAQQCSACQeAIaiIOIAMgARAHIAJBiAlqIAUgBhAHIAJBsAlqIAYgARAHIAJB2AlqIAMgBRAHIAQgDhAKIAMgGiAEEAkgAkHAB2oiFCADIAEQByACQegHaiAFIAYQByACQZAIaiAGIAEQByACQbgIaiADIAUQByAEIA0QCiADIAcgBBAJIAJBoAZqIhUgAyABEAcgAkHIBmogBSAGEAcgAkHwBmogBiABEAcgAkGYB2ogAyAFEAcgBCAOEAogAyAIIAQQCSACQYAFaiIRIAMgARAHIAJBqAVqIAUgBhAHIAJB0AVqIAYgARAHIAJB+AVqIAMgBRAHIAQgERAKIAMgGSAEEAkgAkHgA2oiEiADIAEQByACQYgEaiAFIAYQByACQbAEaiAGIAEQByACQdgEaiADIAUQByAEIBIQCiADIBsgBBAJIAJBwAJqIgkgAyABEAcgAkHoAmogBSAGEAcgAkGQA2ogBiABEAcg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IAIoAnAhDyACKAKcASEQIAIoAnQhESACKAKgASESIAIoAnghEyACIAIoAnwiFCACKAKkASIVajYCpAIgAiASIBNqNgKgAiACIBAgEWo2ApwCIAIgDiAPajYCmAIgAiAMIA1qNgKUAiACIAogC2o2ApACIAIgCCAJajYCjAIgAiAGIAdqNgKIAiACIAQgBWo2AoQCIAIgASADajYCgAIgAiAVIBRrNgL0ASACIBIgE2s2AvABIAIgECARazYC7AEgAiAOIA9rNgLoASACIAwgDWs2AuQBIAIgCiALazYC4AEgAiAIIAlrNgLcASACIAYgB2s2AtgBIAIgBCAFazYC1AEgAiABIANrNgLQASACQdABaiIBIAEQFyACIAJBgAJqIAEQByAAIAIQDSACQbACaiQAQQALuwEBBH8jAUHciAJqKAIAIgEEQCMBQeCIAmooAgAhAANAIwFB4IgCaiAAQQFrIgI2AgAgAEEASgR/A0AjASIBQdyIAmooAgAiAyAAQQJ0aigCACEAIAMgAkECdGooAoQBIAARAwAgAUHgiAJqIgAgACgCACIAQQFrIgI2AgAgAEEASg0ACyMBQdyIAmooAgAFIAELKAIAIQFBICEAIwEiAkHgiAJqQSA2AgAgAkHciAJqIAE2AgAgAQ0ACwsLowMCAn8BfgJAAn9BACAARQ0AGiAArSABrX4iBKciAiAAIAFyQYCABEkNABpBfyACIARCIIinGwsiABALIgFFDQAgAUEEay0AAEEDcUUNAAJAIABFDQAgAUEAOgAAIAAgAWoiAkEBa0EAOgAAIABBA0kNACABQQA6AAIgAUEAOgABIAJBA2tBADoAACACQQJrQQA6AAAgAEEHSQ0AIAFBADoAAyACQQRrQQA6AAAgAEEJSQ0AIAFBACABa0EDcSICaiIDQQA2AgAgAyAAIAJrQXxxIgBqIgJBBGtBADYCACAAQQlJDQAgA0EANgIIIANBADYCBCACQQhrQQA2AgAgAkEMa0EANgIAIABBGUkNACADQQA2AhggA0EANgIUIANBADYCECADQQA2AgwgAkEQa0EANgIAIAJBFGtBADYCACACQRhrQQA2AgAgAkEca0EANgIAIAAgA0EEcUEYciIAayICQSBJDQAgACADaiEAA0AgAEIANwMYIABCADcDECAAQgA3AwggAEIANwMAIABBIGohACACQSBrIgJBH0sNAAsLCyABCw0AEAEgAEGAAWoQAAALBQAQKgALdQEBfyAARAAAAAAAAAAAEAIaAkAjAUHsiAJqKAIAQRtBGkEOIABBAUYbIABBAkYbIgBBAWt2QQFxBEAjAUHsiQJqIgIgAigCAEEBIABBAWt0cjYCAAwBCyMBQeCCAmogAEECdGooAgAiAgRAIAAgAhEDAAsLC4gMAQt/IABFBEAgARALDwsgAUFATwRAIwFB5IQCakEwNgIAQQAPCwJ/QRAgAUELakF4cSABQQtJGyEGIABBCGsiAygCBCIIQXhxIQQCQCAIQQNxRQRAIAZBgAJJDQEgBkEEaiAETQRAIAMhAiAEIAZrIwFBwIgCaigCCEEBdE0NAgtBAAwCCyADIARqIQcCQCAEIAZPBEAgBCAGayICQRBJDQEgAyAGIAhBAXFyQQJyNgIEIAMgBmoiBCACQQNyNgIEIAcgBygCBEEBcjYCBCAEIAIQIgwBCyAHKAIEIQUjAUHohAJqIgIoAhggB0YEQEEAIAYgAigCDCAEaiIETw0DGiADIAYgCEEBcXJBAnI2AgQgAyAGaiIFIAQgBmsiBEEBcjYCBCACIAQ2AgwgAiAFNgIYDAELIwFB6IQCaiICKAIUIAdGBEBBACAGIAIoAgggBGoiAksNAxoCQCACIAZrIgRBEE8EQCADIAYgCEEBcXJBAnI2AgQgAyAGaiIFIARBAXI2AgQgAiADaiICIAQ2AgAgAiACKAIEQX5xNgIEDAELIAMgCEEBcSACckECcjYCBCACIANqIgIgAigCBEEBcjYCBEEAIQRBACEFCyMBQeiEAmoiAiAFNgIUIAIgBDYCCAwBC0EAIQIgBUECcQ0BIAVBeHEgBGoiCyAGSQ0BIAsgBmshDCAHKAIMIQQCQCAFQf8BTQRAIAcoAggiAiAERgRAIwFB6IQCaiICIAIoAgBBfiAFQQN2d3E2AgAMAgsgAiAENgIMIAQgAjYCCAwBCyAHKAIYIQkCQCAEIAdHBEAgBygCCCICIAQ2AgwgBCACNgIIDAELAkAgBygCFCICBH8gB0EUagUgBygCECICRQ0BIAdBEGoLIQUDQCAFIQogAiIEQRRqIQUgAigCFCICDQAgBEEQaiEFIAQoAhAiAg0ACyAKQQA2AgAMAQtBACEECyAJRQ0AAkAjAUHohAJqIgIgBygCHCIFQQJ0aiIKKAKwAiAHRgRAIAogBDYCsAIgBA0BIAIgAigCBEF+IAV3cTYCBAwCCwJAIAcgCSgCEEYEQCAJIAQ2AhAMAQsgCSAENgIUCyAERQ0BCyAEIAk2AhggBygCECICBEAgBCACNgIQIAIgBDYCGAsgBygCFCICRQ0AIAQgAjYCFCACIAQ2AhgLIAxBD00EQCADIAhBAXEgC3JBAnI2AgQgAyALaiICIAIoAgRBAXI2AgQMAQsgAyAGIAhBAXFyQQJyNgIEIAMgBmoiAiAMQQNyNgIEIAMgC2oiBCAEKAIEQQFyNgIEIAIgDBAiCyADIQILIAILIgIEQCACQQhqDwsgARALIgRFBEBBAA8LIAQhAgJAQXxBeCAAIgNBBGsoAgAiBUEDcRsgBUF4cWoiBSABIAEgBUsbIgVBgARPBEAgBQRAIAIgAyAF/AoAAAsMAQsgAiAFaiEBAkAgAiADc0EDcUUEQAJAIAJBA3FFDQAgBUUNAANAIAIgAy0AADoAACADQQFqIQMgAkEBaiICQQNxRQ0BIAEgAksNAAsLIAFBfHEhBQJAIAFBwABJDQAgAiAFQUBqIgpLDQADQCACIAMoAgA2AgAgAiADKAIENgIEIAIgAygCCDYCCCACIAMoAgw2AgwgAiADKAIQNgIQIAIgAygCFDYCFCACIAMoAhg2AhggAiADKAIcNgIcIAIgAygCIDYCICACIAMoAiQ2AiQgAiADKAIoNgIoIAIgAygCLDYCLCACIAMoAjA2AjAgAiADKAI0NgI0IAIgAygCODYCOCACIAMoAjw2AjwgA0FAayEDIAJBQGsiAiAKTQ0ACwsgAiAFTw0BA0AgAiADKAIANgIAIANBBGohAyACQQRqIgIgBUkNAAsMAQsgAUEESQ0AIAVBBEkNACABQQRrIQUDQCACIAMtAAA6AAAgAiADLQABOgABIAIgAy0AAjoAAiACIAMtAAM6AAMgA0EEaiEDIAJBBGoiAiAFTQ0ACwsgASACSwRAA0AgAiADLQAAOgAAIANBAWohAyACQQFqIgIgAUcNAAsLCyAAEAggBAu3AgEBfyMAQdABayIFJAACQCABQSBqIAFCICADEC0EQEF/IQEMAQtBoP8DIAFB4ABqIAEgBEHAACACIAAQLgRAQX4hAQwBCyAAKADxAiIBQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZyciIEQcEAcEF9IQEgBEG0GEsNAA0AQcAAEAsiA0UEQEF8IQEMAQsgBUIANwNIIAUjASIBKQMINwMIIAUgASkDEDcDECAFIAEpAxg3AxggBSABKQMgNwMgIAUgASkDKDcDKCAFIAEpAzA3AzAgBSABKQM4NwM4IAVCADcDQCAFIAEpAwA3AwAgBSAAQaUbakLf4wMQDiAFIAMQECAEQf//A3FBwQBuIAMgAiAAQfUCahAsIQAgAxAIQXpBACAAGyEBCyAFQdABaiQAIAEL0QQBB38jAEHQAWsiBCQAIAMgASkAADcAACADIAEpADg3ADggAyABKQAwNwAwIAMgASkAKDcAKCADIAEpACA3ACAgAyABKQAYNwAYIAMgASkAEDcAECADIAEpAAg3AAgCfwJAIABBAUYEQEF/IAIgARAaDQIaIAMgASkAADcAACADIAEpADg3ADggAyABKQAwNwAwIAMgASkAKDcAKCADIAEpACA3ACAgAyABKQAYNwAYIAMgASkAEDcAECADIAEpAAg3AAgMAQtBf0GAARALIgVFDQEaAkAgAEUNACAFQUBrIQcgBEFAayEJA0ACQCACIAhBwQBsaiIKIQEgAyEGAkACQCAKQUBrLQAADgIBAAILIAMhASAKIQYLIAUgASkAADcAACAFIAEpADg3ADggBSABKQAwNwAwIAUgASkAKDcAKCAFIAEpACA3ACAgBSABKQAYNwAYIAUgASkAEDcAECAFIAEpAAg3AAggByAGKQA4NwA4IAcgBikAMDcAMCAHIAYpACg3ACggByAGKQAgNwAgIAcgBikAGDcAGCAHIAYpABA3ABAgByAGKQAINwAIIAcgBikAADcAACAJQgA3AwggCUIANwMAIAQjASIBKQM4NwM4IAQgASkDMDcDMCAEIAEpAyg3AyggBCABKQMgNwMgIAQgASkDGDcDGCAEIAEpAxA3AxAgBCABKQMINwMIIAQgASkDADcDACAEIAVCgAEQDiAEIAMQECAAIAhBAWoiCEcNAQwCCwsgBRAIQX4MAgsgBRAIC0EACyAEQdABaiQAC/QFAQx/IwBB0AFrIgYkAEF/IQgCQCAARQ0AA0AgASAEQQZ0aiACEBoEQCAEQQFqIgQgAEcNAQwCCwtBgAEQCyIHRQRAQX4hCAwBC0EAIQggAEEBRwRAIAdBQGshBSAGQUBrIQ4DQCAAQQFxIQ9BACEIQQAhCgNAIAcgASAKQQZ0aiICKQAANwAAIAcgAkE4aikAADcAOCAHIAJBMGopAAA3ADAgByACQShqKQAANwAoIAcgAkEgaikAADcAICAHIAJBGGopAAA3ABggByACQRBqKQAANwAQIAcgAkEIaikAADcACCAKQQFyIQwCQAJAAkAgD0UNACAAIAxHDQAgBSACKQAANwAAIAUgAikAODcAOCAFIAIpADA3ADAgBSACKQAoNwAoIAUgAikAIDcAICAFIAIpABg3ABggBSACKQAQNwAQIAUgAikACDcACEEAIQ0gBCAKRg0BDAILIAUgASAMQQZ0aiIJKQAANwAAIAUgCSkAODcAOCAFIAkpADA3ADAgBSAJKQAoNwAoIAUgCSkAIDcAICAFIAkpABg3ABggBSAJKQAQNwAQIAUgCSkACDcACCAEIApGIg1FIAQgDEdxDQEgCSACIA0bIQILIAMgC0HBAGxqIgQgAikAADcAACAEIAIpADg3ADggBCACKQAwNwAwIAQgAikAKDcAKCAEIAIpACA3ACAgBCACKQAYNwAYIAQgAikAEDcAECAEIAIpAAg3AAggBEFAayANOgAAIAtBAWohCyAIIQQLIA5CADcDACAOQgA3AwggBiMBIgIpAzg3AzggBiACKQMwNwMwIAYgAikDKDcDKCAGIAIpAyA3AyAgBiACKQMYNwMYIAYgAikDEDcDECAGIAIpAwg3AwggBiACKQMANwMAIAYgB0KAARAOIAYgASAIQQZ0ahAQIAhBAWohCCAKQQJqIgogAEkNAAsgALhEAAAAAAAA4D+im/wDIgBBAUsNAAsgC0HBAGwhCAsgBxAICyAGQdABaiQAIAgLtwYBB38jAEHQAWsiBCQAQYABEAsiBQR/IABBAk8EQCAFQUBrIQYgBEFAayEJA0BBACEHQQAhCAJAIABBAXFFBEADQCAFIAEgB0EGdGoiAykAADcAACAFIAMpADg3ADggBSADKQAwNwAwIAUgAykAKDcAKCAFIAMpACA3ACAgBSADKQAYNwAYIAUgAykAEDcAECAFIAMpAAg3AAggBiADKQB4NwA4IAYgAykAcDcAMCAGIAMpAGg3ACggBiADKQBgNwAgIAYgAykAWDcAGCAGIAMpAFA3ABAgBiADKQBINwAIIAYgAykAQDcAACAJQgA3AwggCUIANwMAIAQjASIDKQM4NwM4IAQgAykDMDcDMCAEIAMpAyg3AyggBCADKQMgNwMgIAQgAykDGDcDGCAEIAMpAxA3AxAgBCADKQMINwMIIAQgAykDADcDACAEIAVCgAEQDiAEIAEgCEEGdGoQECAIQQFqIQggB0ECaiIHIABJDQAMAgsACwNAIAUgASAHQQZ0aiIDKQAANwAAIAUgAykAODcAOCAFIAMpADA3ADAgBSADKQAoNwAoIAUgAykAIDcAICAFIAMpABg3ABggBSADKQAQNwAQIAUgAykACDcACCAGIANBwABBACAHQQFyIABHG2oiAykAODcAOCAGIAMpADA3ADAgBiADKQAoNwAoIAYgAykAIDcAICAGIAMpABg3ABggBiADKQAQNwAQIAYgAykACDcACCAGIAMpAAA3AAAgCUIANwMIIAlCADcDACAEIwEiAykDODcDOCAEIAMpAzA3AzAgBCADKQMoNwMoIAQgAykDIDcDICAEIAMpAxg3AxggBCADKQMQNwMQIAQgAykDCDcDCCAEIAMpAwA3AwAgBCAFQoABEA4gBCABIAhBBnRqEBAgCEEBaiEIIAdBAmoiByAASQ0ACwsgALhEAAAAAAAA4D+im/wDIgBBAUsNAAsLIAIgASkAADcAACACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggBRAIQQAFQX8LIARB0AFqJAALDQAgAyABIACtIAIQLQvzJgIFfzZ+IwBB4AVrIgQkACAEQgA3A4gCIAQjASIFKQMIIgo3A8gBIAQgBSkDECIJNwPQASAEIAUpAxgiCzcD2AEgBCAFKQMgIgw3A+ABIAQgBSkDKCIUNwPoASAEIAUpAzAiDTcD8AEgBCAFKQM4Ig43A/gBIARCADcDgAIgBCAFKQMAIg83A8ABIARCADcD2AMgBCAKNwOYAyAEIAk3A6ADIAQgCzcDqAMgBCAMNwOwAyAEQbgDaiIFIBQ3AwAgBCANNwPAAyAEIA43A8gDIARCADcD0AMgBCAPNwOQAyAEQZADaiIHIAJCIBAOIAcgBEGAAWoiCBAQIARBwAFqIgYgBEGgAWpCIBAOIAYgASAArSIQEA4gBiAEQUBrIgAQECACKQAoIREgAikAMCESIAIpACAhEyADQThqIAIpADg3AAAgA0EwaiASNwAAIANBKGogETcAACADIBM3ACAgABAfIAcgABAgIAQgBEHgA2oQFyAEQZAFaiIAIAcgBBAHIARB4ARqIgIgBSAEEAcgAyACEA0gBEHABWogABANIAMgAy0AHyAELQDABUEHdHM6AB8gBEIANwOIAiAEIAo3A8gBIAQgCTcD0AEgBCALNwPYASAEIAw3A+ABIAQgFDcD6AEgBCANNwPwASAEIA43A/gBIARCADcDgAIgBCAPNwPAASAGIANCwAAQDiAGIAEgEBAOIAYgBBAQIAQQHyAEIAQtAJ8BQT9xQcAAcjoAnwEgBCAELQCAAUH4AXE6AIABIAMgBDMAlQEgBDEAlwFCEIZCgID8AIOEIgogBCgCHEEHdq0iCX4gBCgAFyIAQRh2rSAEMQAbQgiGhCAEMQAcQhCGhEICiEL///8AgyILIAQoAJcBIgFBBXZB////AHGtIgx+fCAEMwAVIAQxABdCEIZCgID8AIOEIhQgBCgCnAFBB3atIg1+fCABQRh2rSAEMQCbAUIIhoQgBDEAnAFCEIaEQgKIQv///wCDIg4gAEEFdkH///8Aca0iD358IAwgD34gBCgAjwEiAEEYdq0gBDEAkwFCCIaEIAQxAJQBQhCGhEIDiCIQIAl+fCAKIAt+fCAEKAAPIgFBGHatIAQxABNCCIaEIAQxABRCEIaEQgOIIhEgDX58IA4gFH58IhJCgIBAfSITQhWIfCIWQoCAQH0iF0IViCANIA9+IAkgDH58IAsgDn58IhUgFUKAgEB9IhVCgICA/////wCDfXwiJkKY2hx+IAkgDn4gCyANfnwgFUIViHwiFSAVQoCAQH0iI0KAgID/////AIN9IidCk9gofnwgFiAXQoCAgH+DfSIoQuf2J358IBIgE0KAgIB/g30gCyAQfiAAQQZ2Qf///wBxrSISIAl+fCAMIBR+fCAKIA9+fCANIAFBBnZB////AHGtIhN+fCAOIBF+fCAEKAGKASIAQRh2rSAEMQCOAUIIhoQgBDEAjwFCEIaEQgGIQv///wCDIhYgCX4gCyASfnwgDyAQfnwgDCARfnwgCiAUfnwgBCgBCiIBQRh2rSAEMQAOQgiGhCAEMQAPQhCGhEIBiEL///8AgyIXIA1+fCAOIBN+fCIkQoCAQH0iIkIViHwiJUKAgEB9IhhCFYh8IilC04xDfnwgBCgAVyICQQV2Qf///wBxrSAEMwGAASAEMQCCAUIQhkKAgPwAg4QiFSAPfiAUIAQoAYIBIgVBBXZB////AHGtIhl+fCAENQCHAUIHiEL///8AgyIaIBN+fCAXIABBBHZB////AHGtIht+fCAFQRh2rSAEMQCGAUIIhoQgBDEAhwFCEIaEQgKIQv///wCDIhwgEX58IBIgBDUAB0IHiEL///8AgyIdfnwgFiABQQR2Qf///wBxrSIefnwgECAEKAECIgBBGHatIAQxAAZCCIaEIAQxAAdCEIaEQgKIQv///wCDIh9+fCAEMwEAIAQxAAJCEIZCgID8AIOEIiAgDH58IAogAEEFdkH///8Aca0iIX58fCAEMwBVIBQgFX4gESAZfnwgFyAafnwgGyAefnwgEyAcfnwgEiAffnwgFiAdfnwgECAhfnwgCiAgfnx8IAQxAFdCEIZCgID8AIN8IipCgIBAfSIrQhWIfCIsfCAsQoCAQH0iLEKAgIB/g30gKiAoQpjaHH4gJkKT2Ch+fCApQuf2J358IBEgFX4gEyAZfnwgGiAefnwgGyAdfnwgFyAcfnwgEiAhfnwgFiAffnwgECAgfnwgBCgATyIAQRh2rSAEMQBTQgiGhCAEMQBUQhCGhEIDiHwgAEEGdkH///8Aca0gEyAVfiAXIBl+fCAaIB1+fCAbIB9+fCAcIB5+fCASICB+fCAWICF+fHwiKkKAgEB9Ii5CFYh8Ii9CgIBAfSIwQhWIfHwgK0KAgIB/g30iK0KAgEB9IjFCFYd8IjJCgIBAfSIzQhWHICUgGEKAgIB/g30gJCAJIA1+IhhCgIBAfSI0QhWIIiVCg6FWfnwgIkKAgIB/g30gDyASfiAJIBt+fCALIBZ+fCAQIBR+fCAMIBN+fCAKIBF+fCANIB5+fCAOIBd+fCALIBt+IAkgGn58IBIgFH58IA8gFn58IBAgEX58IAwgF358IAogE358IA0gHX58IA4gHn58IiJCgIBAfSI1QhWIfCI2QoCAQH0iN0IViHwiOEKAgEB9IjlCFYd8IiRCg6FWfnwgCyAVfiAPIBl+fCARIBp+fCATIBt+fCAUIBx+fCASIB5+fCAWIBd+fCAQIB1+fCAMICF+fCAKIB9+fCAOICB+fCACQRh2rSAEMQBbQgiGhCAEMQBcQhCGhEICiEL///8Ag3wiLSAnQpjaHH4gGCA0QoCAgP////8Dg30gI0IViHwiI0KT2Ch+fCAmQuf2J358IChC04xDfnwgKULRqwh+fCAsQhWIfHwgLUKAgEB9IixCgICAf4N9Ihh8IBhCgIBAfSI0QoCAgH+DfSItIDIgOCA5QoCAgH+DfSAjQoOhVn4gJULRqwh+fCA2fCA3QoCAgH+DfSAiICVC04xDfnwgI0LRqwh+fCAnQoOhVn58IDVCgICAf4N9IA8gG34gCyAafnwgCSAcfnwgESASfnwgFCAWfnwgECATfnwgDCAefnwgCiAXfnwgDSAffnwgDiAdfnwgDyAafiAJIBl+fCAUIBt+fCALIBx+fCASIBN+fCARIBZ+fCAQIBd+fCAMIB1+fCAKIB5+fCANICF+fCAOIB9+fCIyQoCAQH0iNUIViHwiNkKAgEB9IjdCFYh8IjhCgIBAfSI5QhWHfCIYQoCAQH0iOkIVh3wiIkKDoVZ+ICRC0asIfnx8IDNCgICAf4N9ICsgIkLRqwh+ICRC04xDfnwgGCA6QoCAgH+DfSIYQoOhVn58IClCmNocfiAoQpPYKH58IC98ICogKUKT2Ch+fCAuQoCAgH+DfSAVIBd+IBkgHn58IBogH358IBsgIX58IBwgHX58IBYgIH58IAQoAUoiAEEYdq0gBDEATkIIhoQgBDEAT0IQhoRCAYhC////AIN8IABBBHZB////AHGtIBUgHn4gGSAdfnwgGiAhfnwgGyAgfnwgHCAffnx8IipCgIBAfSIrQhWIfCIuQoCAQH0iL0IViHwiM0KAgEB9IjpCFYd8IDBCgICAf4N9IjBCgIBAfSI7QhWHfHwgMUKAgIB/g30iMUKAgEB9IjxCFYd8Ij1CgIBAfSI+QhWHfCAtQoCAQH0iLUKAgIB/g30gPSA+QoCAgH+DfSAxIDxCgICAf4N9ICJC04xDfiAkQuf2J358IBhC0asIfnwgMHwgO0KAgIB/g30gOCA5QoCAgH+DfSAjQtOMQ34gJULn9id+fCAnQtGrCH58ICZCg6FWfnwgNnwgN0KAgIB/g30gI0Ln9id+ICVCmNocfnwgJ0LTjEN+fCAyfCAmQtGrCH58IChCg6FWfnwgNUKAgIB/g30gBCgCXEEHdq0gCSAVfiALIBl+fCAUIBp+fCARIBt+fCAPIBx+fCASIBd+fCATIBZ+fCAQIB5+fCAMIB9+fCAKIB1+fCANICB+fCAOICF+fHwgLEIViHwiC0KAgEB9IgxCFYh8IhRCgIBAfSINQhWHfCIJQoCAQH0iDkIVh3wiCkKDoVZ+fCAzICRCmNocfnwgOkKAgIB/g30gIkLn9id+fCAYQtOMQ358IApC0asIfnwgCSAOQoCAgH+DfSIJQoOhVn58Ig5CgIBAfSIPQhWHfCIQQoCAQH0iEUIVh3wgECARQoCAgH+DfSAOIA9CgICAf4N9ICRCk9gofiAufCAvQoCAgH+DfSAiQpjaHH58IBhC5/YnfnwgFCANQoCAgH+DfSAjQpjaHH4gJUKT2Ch+fCAnQuf2J358ICZC04xDfnwgKELRqwh+fCApQoOhVn58IAt8IAxCgICAf4N9IDRCFYd8IgxCgIBAfSIUQhWHfCILQoOhVn58IApC04xDfnwgCULRqwh+fCAqICtCgICAf4N9IBUgHX4gGSAffnwgGiAgfnwgHCAhfnwgBDUAR0IHiEL///8Ag3wgFSAffiAZICF+fCAcICB+fCAEKAFCIgBBGHatIAQxAEZCCIaEIAQxAEdCEIaEQgKIQv///wCDfCINQoCAQH0iDkIViHwiD0KAgEB9IhBCFYh8ICJCk9gofnwgGEKY2hx+fCALQtGrCH58IApC5/YnfnwgCULTjEN+fCIRQoCAQH0iEkIVh3wiE0KAgEB9IhZCFYd8IBMgDCAUQoCAgH+DfSAtQhWHfCIUQoCAQH0iF0IVhyIMQoOhVn58IBZCgICAf4N9IBEgDELRqwh+fCASQoCAgH+DfSAPIBBCgICAf4N9IBhCk9gofnwgC0LTjEN+fCAKQpjaHH58IAlC5/YnfnwgDSAAQQV2Qf///wBxrSAVICF+IBkgIH58fCAVICB+IAQzAUAgBDEAQkIQhkKAgPwAg4R8Ig9CgIBAfSIQQhWIfCIRQoCAQH0iEkIViHwgDkKAgIB/g30gC0Ln9id+fCAKQpPYKH58IAlCmNocfnwiCkKAgEB9Ig1CFYd8Ig5CgIBAfSITQhWHfCAOIAxC04xDfnwgE0KAgIB/g30gCiAMQuf2J358IA1CgICAf4N9IBEgEkKAgIB/g30gC0KY2hx+fCAJQpPYKH58IA8gEEKAgID///8Dg30gC0KT2Ch+fCIKQoCAQH0iCUIVh3wiC0KAgEB9Ig1CFYd8IAsgDEKY2hx+fCANQoCAgH+DfSAKIAlCgICAf4N9IAxCk9gofnwiCUIVh3wiDUIVh3wiDkIVh3wiD0IVh3wiEEIVh3wiEUIVh3wiEkIVh3wiE0IVh3wiFkIVh3wiFUIVh3wiGUIVhyAUIBdCgICAf4N9fCIMQhWHIgpCk9gofiAJQv///wCDfCILPAAgIAMgC0IIiDwAISADIApCmNocfiANQv///wCDfCALQhWHfCIJQguIPAAkIAMgCUIDiDwAIyADIAtCEIhCH4MgCUIFhoQ8ACIgAyAKQuf2J34gDkL///8Ag3wgCUIVh3wiC0IGiDwAJiADIAtCAoYgCUKAgOAAg0ITiIQ8ACUgAyAKQtOMQ34gD0L///8Ag3wgC0IVh3wiCUIJiDwAKSADIAlCAYg8ACggAyAJQgeGIAtCgID/AINCDoiEPAAnIAMgCkLRqwh+IBBC////AIN8IAlCFYd8IgtCDIg8ACwgAyALQgSIPAArIAMgC0IEhiAJQoCA+ACDQhGIhDwAKiADIApCg6FWfiARQv///wCDfCALQhWHfCIJQgeIPAAuIAMgCUIBhiALQoCAwACDQhSIhDwALSADIBJC////AIMgCUIVh3wiCkIKiDwAMSADIApCAog8ADAgAyAKQgaGIAlCgID+AINCD4iEPAAvIAMgE0L///8AgyAKQhWHfCIJQg2IPAA0IAMgCUIFiDwAMyADIBZC////AIMgCUIVh3wiCzwANSADIAlCA4YgCkKAgPAAg0ISiIQ8ADIgAyALQgiIPAA2IAMgFUL///8AgyALQhWHfCIKQguIPAA5IAMgCkIDiDwAOCADIAtCEIhCH4MgCkIFhoQ8ADcgAyAZQv///wCDIApCFYd8IglCBog8ADsgAyAJQgKGIApCgIDgAINCE4iEPAA6IAMgCUIVhyILIAxC////AIN8IgpCEYg8AD8gAyAKQgmIPAA+IAMgCkIHhiAJQoCA/wCDQg6IhDwAPCADIAunIAynakEBdq08AD0gBCAINgKQBUEAIQMDQCAEKAKQBSADakEAOgAAIAQoApAFIANqQQA6AAEgBCgCkAUgA2pBADoAAiAEKAKQBSADakEAOgADIANBBHIiACAEKAKQBWpBADoAACAEKAKQBSAAakEAOgABIAQoApAFIABqQQA6AAIgBCgCkAUgAGpBADoAAyADQQhqIgNBwABHDQALIAQgBEFAazYCkAVBACEDA0AgBCgCkAUgA2pBADoAACAEKAKQBSADakEAOgABIAQoApAFIANqQQA6AAIgBCgCkAUgA2pBADoAAyADQQRyIgAgBCgCkAVqQQA6AAAgBCgCkAUgAGpBADoAASAEKAKQBSAAakEAOgACIAQoApAFIABqQQA6AAMgA0EIaiIDQcAARw0ACyAEQeAFaiQAQQALLAAgACABKQAgNwAAIAAgASkAODcAGCAAIAEpADA3ABAgACABKQAoNwAIQQAL6gICBX8DfiMAQYADayIDJAAgA0IANwNIIAMjASIEKQMINwMIIAMgBCkDEDcDECADIAQpAxg3AxggAyAEKQMgNwMgIANBKGoiBSAEKQMoNwMAIAMgBCkDMDcDMCADIAQpAzg3AzggA0IANwNAIAMgBCkDADcDACADIAJCIBAOIAMgARAQIAEgAS0AAEH4AXE6AAAgASABLQAfQT9xQcAAcjoAHyADIAEQICADQbACaiIEIANB0ABqEBcgA0GAAmoiBiADIAQQByADQdABaiIHIAUgBBAHIAAgBxANIANB4AJqIAYQDSAAIAAtAB8gAy0A4AJBB3RzOgAfIAIpAAghCCACKQAQIQkgAikAACEKIAEgAikAGDcAGCABIAk3ABAgASAINwAIIAEgCjcAACAAKQAIIQggACkAECEJIAApAAAhCiABIAApABg3ADggASAJNwAwIAEgCDcAKCABIAo3ACAgA0GAA2okAEEACxEAIwFB5IQCakEAQYwF/AsAC88WAgp/A34jACIJIQ0gCUHABGtBQHEiCCQAQSAQCyILRQRAIA0kAEF/DwtBIBALIgpFBEAgCxAIIA0kAEF+DwsgCEIANwPIASAIIwEiCSkDCDcDiAEgCCAJKQMQNwOQASAIIAkpAxg3A5gBIAggCSkDIDcDoAEgCCAJKQMoNwOoASAIIAkpAzA3A7ABIAggCSkDODcDuAEgCEIANwPAASAIIAkpAwA3A4ABIAhBgAFqIgkgA0IgEA4gCSAIQSBqIgMQECAIIAgtACBB+AFxOgAgIAggCC0AP0E/cUHAAHI6AD8gCiAIKQMwNwAQIAogCCkDKDcACCAKIAgpAyA3AAAgCiAIKQM4NwAYIAggAzYCgAFBACEDA0AgCCgCgAEgA2pBADoAACAIKAKAASADakEAOgABIAgoAoABIANqQQA6AAIgCCgCgAEgA2pBADoAAyADQQRyIgkgCCgCgAFqQQA6AAAgCCgCgAEgCWpBADoAASAIKAKAASAJakEAOgACIAgoAoABIAlqQQA6AAMgA0EIaiIDQcAARw0ACyALIAoQMQRAIAsQCCAKEAggDSQAQXwPC0EgEAsiDkUEQCALEAggChAIIA0kAEF7DwsgDiACEDAEQCAOEAggCxAIIAoQCCANJABBeg8LQSAQCyIJRQRAIA4QCCALEAggChAIIA0kAEF5DwsgCULbt+/evfv27Vs3AAAgCULbt+/evfv27Vs3ABggCULbt+/evfv27Vs3ABAgCULbt+/evfv27Vs3AAggCEHgAGoiAyAKIA4QL0UEQCAIQcABakEAQaUC/AsAIAggCCkDaDcD6AEgCCAIKQNwNwPwASAIIAgpA3g3A/gBIAhC+cL4m5Gjs/DbADcDuAEgCELr+obav7X2wR83A7ABIAhCn9j52cKR2oKbfzcDqAEgCELRhZrv+s+Uh9EANwOgASAIQvHt9Pilp/2npX83A5gBIAhCq/DT9K/uvLc8NwOQASAIQrvOqqbY0Ouzu383A4gBIAhCyJL3lf/M+YTqADcDgAEgCCAIKQNgNwPgASAIIAgoAuADQSBqIgI2AuADIAggAzYCvAQgCCgCvARBADoAACAIKAK8BEEAOgABIAgoArwEQQA6AAIgCCgCvARBADoAAyAIKAK8BEEAOgAEIAgoArwEQQA6AAUgCCgCvARBADoABiAIKAK8BEEAOgAHIAgoArwEQQA6AAggCCgCvARBADoACSAIKAK8BEEAOgAKIAgoArwEQQA6AAsgCCgCvARBADoADCAIKAK8BEEAOgANIAgoArwEQQA6AA4gCCgCvARBADoADyAIKAK8BEEAOgAQIAgoArwEQQA6ABEgCCgCvARBADoAEiAIKAK8BEEAOgATIAgoArwEQQA6ABQgCCgCvARBADoAFSAIKAK8BEEAOgAWIAgoArwEQQA6ABcgCCgCvARBADoAGCAIKAK8BEEAOgAZIAgoArwEQQA6ABogCCgCvARBADoAGyAIKAK8BEEAOgAcIAgoArwEQQA6AB0gCCgCvARBADoAHiAIKAK8BEEAOgAfIAhB4AJqIREgCEHgAWohD0IgIRIgDiEDA0ACQCACIA9qIRAgEkGAAiACayIMrSITWA0AIAwEQCAQIAMgDPwKAAALIAggCCgC4AMgDGo2AuADIAggCCkDwAEiFEKAAXw3A8ABIAggCCkDyAEgFEL/flatfDcDyAEgCEGAAWogDxAMIA8gEUGAAfwKAAAgCCAIKALgA0GAAWsiAjYC4AMgAyAMaiEDIBIgE30hEgwBCwsgEqciAgRAIBAgAyAC/AoAAAsgCCAIKALgAyACaiICNgLgA0IgIRIgCyEDA0ACQCACIA9qIRAgEkGAAiACayIMrSITWA0AIAwEQCAQIAMgDPwKAAALIAggCCgC4AMgDGo2AuADIAggCCkDwAEiFEKAAXw3A8ABIAggCCkDyAEgFEL/flatfDcDyAEgCEGAAWogDxAMIA8gEUGAAfwKAAAgCCAIKALgA0GAAWsiAjYC4AMgAyAMaiEDIBIgE30hEgwBCwsgEqciAgRAIBAgAyAC/AoAAAsgCCAIKALgAyACajYC4AMgCEGAAWoiAiAIQSBqQcAAEBUaIAggAjYCvARBACEDA0AgCCgCvAQgA2pBADoAACAIKAK8BCADakEAOgABIAgoArwEIANqQQA6AAIgCCgCvAQgA2pBADoAAyADQQRyIgIgCCgCvARqQQA6AAAgCCgCvAQgAmpBADoAASAIKAK8BCACakEAOgACIAgoArwEIAJqQQA6AAMgA0EIaiIDQYADRw0ACyAJIAgtAEA6AAAgCSAILQBBOgABIAkgCC0AQjoAAiAJIAgtAEM6AAMgCSAILQBEOgAEIAkgCC0ARToABSAJIAgtAEY6AAYgCSAILQBHOgAHIAkgCC0ASDoACCAJIAgtAEk6AAkgCSAILQBKOgAKIAkgCC0ASzoACyAJIAgtAEw6AAwgCSAILQBNOgANIAkgCC0ATjoADiAJIAgtAE86AA8gCSAILQBQOgAQIAkgCC0AUToAESAJIAgtAFI6ABIgCSAILQBTOgATIAkgCC0AVDoAFCAJIAgtAFU6ABUgCSAILQBWOgAWIAkgCC0AVzoAFyAJIAgtAFg6ABggCSAILQBZOgAZIAkgCC0AWjoAGiAJIAgtAFs6ABsgCSAILQBcOgAcIAkgCC0AXToAHSAJIAgtAF46AB4gCSAILQBfOgAfIAggCEEgajYCvARBACEDA0AgCCgCvAQgA2pBADoAACAIKAK8BCADakEAOgABIAgoArwEIANqQQA6AAIgCCgCvAQgA2pBADoAAyADQQRyIgIgCCgCvARqQQA6AAAgCCgCvAQgAmpBADoAASAIKAK8BCACakEAOgACIAgoArwEIAJqQQA6AAMgA0EIaiIDQcAARw0ACyAOEAggCxAIIAoQCCAHQQxqIQMgBa0hEyMAQeACayICJAACQCAArSISQvD///8PVARAIAJBEGoiACAEIAkQJiACQgA3AmwgAkEANgJ0IAJCADcCZCACQQA6AKABIAJCADcDiAEgAiACKAIgNgJ4IAIgAikCJDcCfCACIAIoAiw2AoQBIAIgAigCEEH///8fcTYCUCACIAIoABNBAnZBg/7/H3E2AlQgAiACKAEWQQR2Qf+B/x9xNgJYIAIgAigAGUEGdkH//8AfcTYCXCACIAIoAhxBCHZB//8/cTYCYCACIAA2AghBACEAA0AgAigCCCAAakEAOgAAIAIoAgggAGpBADoAASACKAIIIABqQQA6AAIgAigCCCAAakEAOgADIABBBHIiBSACKAIIakEAOgAAIAIoAgggBWpBADoAASACKAIIIAVqQQA6AAIgAigCCCAFakEAOgADIABBCGoiAEHAAEcNAAsgAkHQAGoiACAGIBMQESAAIwFB4IACaiIFQgAgE31CD4MQESADIAEgEiAEIAkQJSAAIAMgEhARIAAgBUIAIBJ9Qg+DEBEgAiATNwMIIAAgAkEIaiIBQggQESACIBI3AwggACABQggQESAAIAMgEqdqECQgAiAANgLcAkEAIQADQCACKALcAiAAakEAOgAAIAIoAtwCIABqQQA6AAEgAigC3AIgAGpBADoAAiACKALcAiAAakEAOgADIABBBHIiASACKALcAmpBADoAACACKALcAiABakEAOgABIAIoAtwCIAFqQQA6AAIgAigC3AIgAWpBADoAAyAAQQhqIgBBgAJHDQALIAggEkIQfDcDgAEgAkHgAmokAAwBCxArAAsgCRAIIAcgBCgACDYACCAHIAQpAAA3AAAgDSQAQQAPCyAOEAggCxAIIAoQCCAJEAggDSQAQXgLiSQCC38DfiMAIgQhDSAEQYASa0FAcSIEJAAgASACRgRAIA0kAEF9DwtBIBALIgxFBEAgDSQAQXkPCwJAAkAgAEUNACACDQBBbiEADAELIANFBEBBbSEA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BCgCwAlBADoABiAEKALACUEAOgAHIARCADcDgAIgAEGACCACQcgAECEgCygCBCEAA0AgACAGQQN0IgJqIARBwAlqIgUgAmopAwA3AwAgACACQQhyIgNqIAMgBWopAwA3AwAgACACQRByIgNqIARBwAlqIANqKQMANwMAIAAgAkEYciICaiAEQcAJaiACaikDADcDACAGQQRqIgZBgAFHDQALIARBATYCgAIgBUGACCAEQcABakHIABAhIAsoAgRBgAhqIQBBACEGA0AgACAGQQN0IgJqIARBwAlqIgUgAmopAwA3AwAgACACQQhyIgNqIAMgBWopAwA3AwAgACACQRByIgNqIARBwAlqIANqKQMANwMAIAAgAkEYciICaiAEQcAJaiACaikDADcDACAGQQRqIgZBgAFHDQALIAQgBTYC/BFBACEAA0AgBCgC/BEgAGpBADoAACAEKAL8ESAAakEAOgABIAQoAvwRIABqQQA6AAIgBCgC/BEgAGpBADoAAyAAQQRyIgIgBCgC/BFqQQA6AAAgBCgC/BEgAmpBADoAASAEKAL8ESACakEAOgACIAQoAvwRIAJqQQA6AAMgAEEIaiIAQYAIRw0ACyAEIARBwAFqNgLACUEAIQADQCAEKALACSAAakEAOgAAIAQoAsAJIABqQQA6AAEgBCgCwAkgAGpBADoAAiAEKALACSAAakEAOgADIABBBHIiAiAEKALACWpBADoAACAEKALACSACakEAOgABIAQoAsAJIAJqQQA6AAIgBCgCwAkgAmpBADoAAyAAQQhqIgBByABHDQALQQAhACAEQcgJaiICQQA6AAAgBEEANgLMCSAEIAIpAgA3A4gBIARCADcDgAEgBEIANwLACSAEQZQBaiIDIARBgAFqEBQgAkEBOgAAIARBADYCzAkgBCACKQIANwN4IARBADYCxAkgBCAEKQLACTcDcCADIARB8ABqEBQgAkECOgAAIARBADYCzAkgBCACKQIANwNoIARBADYCxAkgBCAEKQLACTcDYCADIARB4ABqEBQgAkEDOgAAIARBADYCzAkgBCACKQIANwNYIARBADYCxAkgBCAEKQLACTcDUCADIARB0ABqEBQgAkEAOgAAIARBADYCzAkgBCACKQIANwNIIARCATcDQCAEQgE3AsAJIAMgBEFAaxAUIAJBAToAACAEQQA2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");var g=function(e){return A(e.instance,e.module)}(await D(0,f,e));return g}(),function A(e=g){iA>0||iA>0?oA=A:(I.calledRun=!0,E||(l=!0,K(h),HA.__wasm_call_ctors(),K(_),a?.(I)))}(),(()=>{var A=null,e=0;function g(){if(A&&l){var e=A;A=null,e.forEach(A=>onmessage(A))}}function t(){g(),A&&setTimeout(t,100)}onmessage=i=>{if(!l)return A||(A=[],setTimeout(t,100)),void A.push(i);g();var o=I["_"+i.data.funcName];if(!o)throw"invalid worker function to call: "+i.data.funcName;var n=i.data.data;n&&(n.byteLength||(n=new Uint8Array(n)),e=SA(e,n.length),B.set(n,e)),i.data.callbackId,n?o(e,n.length):o(0,0)}})(),l?I:new Promise((A,e)=>{a=A,r=e})}A.exports=e,A.exports.default=e}(Ct);var at=nt(Ct.exports);const rt=async(A,e,I,g)=>{if(A.length%be!==0)throw new Error("Hashes were not passed");const t=A.length/be;if(0===t)throw new Error("Cannot calculate Merkle proof of element of empty tree.");if(1===t){const A=new Uint8Array(be+1);if(A.set(e),g){const e=be+1,I=window.crypto.getRandomValues(new Uint8Array(g));let t=0;const i=4;return new DataView(I.buffer,t,i).setUint32(0,e,!1),t+=i,I.set(A,t),I}return A}const i=I?.wasmMemory??gt(t),o=I??await at({wasmMemory:i}),n=o._malloc(t*be),C=new Uint8Array(i.buffer,n,t*be);C.set(A);const a=o._malloc(be),r=new Uint8Array(i.buffer,a,be);r.set(e);const s=t*(be+1),B=o._malloc(s),c=new Uint8Array(i.buffer,B,s),Q=o._get_merkle_proof(t,C.byteOffset,r.byteOffset,c.byteOffset);switch(o._free(n),o._free(a),Q){case-1:throw o._free(B),new Error("Element not in tree.");case-2:throw o._free(B),new Error("Could not allocate memory for hash concatenation helper array.");case-3:throw o._free(B),new Error("Could not calculate hash.");default:if(Q>0){if(g&&g>=Q){const A=window.crypto.getRandomValues(new Uint8Array(g));let e=0;const I=4;return new DataView(A.buffer,e,I).setUint32(0,Q,!1),e+=I,A.set(c.slice(0,Q),e),o._free(B),A}{const A=Uint8Array.from([...c.slice(0,Q)]);return o._free(B),A}}throw o._free(B),new Error("An unexpected error occured")}},st=(A,e)=>new Promise((I,g)=>{try{A===e&&I(A);const g=e-A,t=Math.ceil(Math.log2(g)/8),i=Math.pow(Math.pow(2,8),t),o=Math.floor(i/g)*g;let n=new Uint8Array(t),C=o;for(;C>=o;){n=window.crypto.getRandomValues(n),C=0;for(let A=0;A<t;A++)C<<=8,C+=n[A];C<o&&(C%=g,I(A+C))}I(C)}catch(A){g(A)}}),Bt=async(A,e,I=!0,g=!0,t=!0)=>{if(e??=A,0===e&&A===e)return"";const i=e>A?await st(A,e):A,o=await((A,e=!0,I=!0,g=!0)=>new Promise((t,i)=>{try{let i="";e&&(i+="abcdefghijklmnopqrstuvwxyz"),I&&(i+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),g&&(i+="0123456789");let o="";const n=window.crypto.getRandomValues(new Uint8Array(A));for(let e=0;e<A;e++)o+=i[n[e]%i.length];t(o)}catch(A){i(A)}}))(i,I,g,t);return o},ct=async A=>{const e=A.length;if(e<2)return A;const I=[...A];for(let A=e-1;A>0;A--){const e=await st(0,A+1),g=I[A];I[A]=I[e],I[e]=g}return I},Qt=4+48*(be+1),Et=Re+Le+jg+Qt+ze+qe,lt=65536-Et,wt=[1],dt="CANCEL_SEND",ft=async(A,e,I,g,t=1,i=lt,o=.9,n=1)=>{const{keyPair:C}=e.getState();if(t<1)throw new Error("Need at least one chunk.");if(o<1e-4||o>1)throw new Error("Percentage of useful data in chunk should be in (0, 1].");if(!wt.includes(n))throw new Error("Unknown metadata version schema.");if(i>lt||i<=Et)throw new Error(`Chunk length needs to be between ${String(Et)} and ${String(lt)}`);let a=!1;window.addEventListener(dt,()=>{a=!0});const r=(A=>{if("string"==typeof A)return vg.Text;const e=A.name.split(".").pop()?.toLowerCase()??"";return{png:vg.ImagePNG,jpeg:vg.ImageJPEG,jpg:vg.ImageJPG,gif:vg.ImageGIF,bmp:vg.ImageBMP,tiff:vg.ImageTIFF,svg:vg.ImageSVG,webp:vg.ImageWEBP,heic:vg.ImageHEIC,pdf:vg.DocumentPDF,doc:vg.DocumentDOC,docx:vg.DocumentDOCX,xls:vg.DocumentXLS,xlsx:vg.DocumentXLSX,ppt:vg.DocumentPPT,pptx:vg.DocumentPPTX,txt:vg.DocumentTXT,rtf:vg.DocumentRTF,odt:vg.DocumentODT,mp3:vg.AudioMP3,wav:vg.AudioWAV,aac:vg.AudioAAC,flac:vg.AudioFLAC,ogg:vg.AudioOGG,m4a:vg.AudioM4A,mp4:vg.VideoMP4,avi:vg.VideoAVI,mkv:vg.VideoMKV,mov:vg.VideoMOV,wmv:vg.VideoWMV,flv:vg.VideoFLV,webm:vg.VideoWEBM,zip:vg.CompressedZIP,rar:vg.CompressedRAR,"7z":vg.Compressed7Z,tar:vg.CompressedTAR,gz:vg.CompressedGZ,html:vg.CodeHTML,css:vg.CodeCSS,js:vg.CodeJS,ts:vg.CodeTS,jsx:vg.CodeJSX,tsx:vg.CodeTSX,json:vg.CodeJSON,xml:vg.CodeXML,py:vg.CodePY,java:vg.CodeJAVA,c:vg.CodeC,cpp:vg.CodeCPP,cs:vg.CodeCS,rb:vg.CodeRB,php:vg.CodePHP,sql:vg.CodeSQL,epub:vg.EbookEPUB,mobi:vg.EbookMOBI,azw:vg.EbookAZW,ttf:vg.FontTTF,otf:vg.FontOTF,ico:vg.ImageICO,exe:vg.ExecutableEXE,dmg:vg.ExecutableDMG,apk:vg.ExecutableAPK}[e]||vg.Unknown})(A),s=r===vg.Text?await Bt(256):A.name.substring(0,255),B="string"==typeof A?(new TextEncoder).encode(A):A,c=await navigator.storage.estimate(),Q=(c.quota??10737418240)-(c.usage??65536),E="string"==typeof A?B.length:B.size;if(E>Q)throw new Error("Not enough space to save the file in the browser.");if(E<1)throw new Error("No data to split in chunks");const l=new Date,w=await window.crypto.subtle.digest("SHA-512",E<10485760?"string"==typeof A?B.buffer:await B.arrayBuffer():"string"==typeof A?B.subarray(0,10485760).buffer:await B.slice(0,10485760).arrayBuffer()),d=new Uint8Array(w),f=qg(d),h={schemaVersion:n,messageType:r,hash:d,name:s,totalSize:E,date:l};let u=0;const y=Math.max(t,Math.ceil(E/(i*o))),D=new Uint8Array(i),p=new Uint8Array(y*be);for(let t=0;t<y&&!a;t++){window.crypto.getRandomValues(D);const n=await st(0,Math.floor(i*(1-o))),a=E-u,c=Math.min(Math.max(a,0),Math.ceil(i*o));let Q=n+c;if(a>0){const e=B.slice(u,u+c);if("string"==typeof A)D.set(e,n);else{const A=await e.arrayBuffer();D.set(new Uint8Array(A),n)}u+=c}else{const A=Q+E+1,e=Number.MAX_SAFE_INTEGER-A;Q+=await st(A,e)}const w=await window.crypto.subtle.digest("SHA-512",D),d=new Uint8Array(w),m=qg(d);p.set(d,t*be);const S=Tg({...h,chunkStartIndex:n,chunkEndIndex:Q,chunkIndex:t});try{await Ng({hash:f,merkleRoot:"",chunkIndex:t,realChunkHash:m,data:D.buffer,metadata:S.buffer,merkleProof:(new Uint8Array).buffer})}catch{}e.dispatch(nI({roomId:g.id,merkleRootHex:"",sha512Hex:f,fromPeerId:C.peerId,chunkSize:0,totalSize:E,chunksCreated:t+1,totalChunks:y,messageType:r,filename:s,channelLabel:I,timestamp:l.getTime()}))}if(a)return await Yg(void 0,void 0,f),e.dispatch(sI({hashHex:f})),{merkleRoot:new Uint8Array,merkleRootHex:"",hash:new Uint8Array,hashHex:"",totalChunks:0,totalSize:0,messageType:0,chunkHashes:new Uint8Array};const m=gt(y),S=await at({wasmMemory:m}),k=await(async(A,e)=>{if(A.length%be!==0)throw new Error("Hashes were not passed");const I=A.length/be;if(0===I)throw new Error("Cannot calculate Merkle root of tree with no leaves.");if(1===I)return A;const g=e?.wasmMemory??It(I),t=e??await at({wasmMemory:g}),i=t._malloc(I*be),o=new Uint8Array(g.buffer,i,I*be);o.set(A);const n=t._malloc(be),C=new Uint8Array(g.buffer,n,be),a=t._get_merkle_root(I,o.byteOffset,C.byteOffset);switch(t._free(i),a){case 0:{const A=Uint8Array.from([...C]);return t._free(n),A}case-1:throw t._free(n),new Error("Could not allocate memory for hash concatenation helper array.");case-2:throw t._free(n),new Error("Could not calculate hash.");default:throw t._free(n),new Error("Unexpected error occured.")}})(p,S),M=qg(k);try{await kg(g.id,M,f,C.peerId,E,E,r,s,I,l.getTime())}catch(A){console.error(A)}return e.dispatch(nI({roomId:g.id,merkleRootHex:M,sha512Hex:f,fromPeerId:C.peerId,chunkSize:0,totalSize:E,chunksCreated:y,totalChunks:y,messageType:r,filename:s,channelLabel:I,timestamp:l.getTime()})),a?(await Yg(M),e.dispatch(sI({merkleRootHex:M})),{merkleRoot:new Uint8Array,merkleRootHex:"",hash:new Uint8Array,hashHex:"",totalChunks:0,totalSize:0,messageType:0,chunkHashes:new Uint8Array}):(window.removeEventListener(dt,()=>{}),{merkleRoot:k,merkleRootHex:M,hash:d,hashHex:f,totalSize:E,totalChunks:y,messageType:r,chunkHashes:p})},ht=async(A,e,I,g,t)=>{const i=A.length,o=g.length,n=t?.wasmMemory??At(i,o),C=t??await at({wasmMemory:n}),a=C._malloc(i*Uint8Array.BYTES_PER_ELEMENT),r=new Uint8Array(n.buffer,a,i*Uint8Array.BYTES_PER_ELEMENT);r.set(A);const s=C._malloc(Re),B=new Uint8Array(n.buffer,s,Re);B.set(e);const c=C._malloc(xe),Q=new Uint8Array(n.buffer,c,xe);Q.set(I);const E=C._malloc(ze),l=new Uint8Array(n.buffer,E,ze),w=window.crypto.getRandomValues(new Uint8Array(ze));l.set(w);const d=C._malloc(o*Uint8Array.BYTES_PER_ELEMENT),f=new Uint8Array(n.buffer,d,o*Uint8Array.BYTES_PER_ELEMENT);f.set(g);const h=Ve(i),u=C._malloc(h*Uint8Array.BYTES_PER_ELEMENT),y=new Uint8Array(n.buffer,u,h*Uint8Array.BYTES_PER_ELEMENT),D=C._encrypt_chachapoly_asymmetric(i,r.byteOffset,B.byteOffset,Q.byteOffset,l.byteOffset,o,f.byteOffset,y.byteOffset);switch(C._free(a),C._free(s),C._free(c),C._free(E),C._free(d),D){case 0:{const A=Uint8Array.from([...y]);return C._free(u),A}case-1:throw C._free(u),new Error("Could not allocate memory for the ephemeral x25519 public key array.");case-2:throw C._free(u),new Error("Could not allocate memory for the ephemeral x25519 secret key array.");case-3:throw C._free(u),new Error("Could not convert Ed25519 secret key to X25519.");case-4:throw C._free(u),new Error("Could not calculate x25519 public key from x25519 secret key.");case-5:throw C._free(u),new Error("Could not allocate memory for the receiver's ed25519 converted to x25519 public key array.");case-6:throw C._free(u),new Error("Could not convert Ed25519 public key to X25519.");case-7:throw C._free(u),new Error("Could not allocate memory for the shared secret.");case-8:throw C._free(u),new Error("Could not calculate the shared secret.");case-9:throw C._free(u),new Error("Could not encrypt.");default:throw C._free(u),new Error("An unexpected error occured.")}},ut=async(A,e,I,g,t)=>{const{keyPair:i,rooms:o}=g.getState(),n=Og(i.secretKey),C=o.findIndex(A=>A.id===e);if(C>-1){const a=o[C].peers,r=o[C].channels,s=t?r.findIndex(A=>A.label===t):0;if(-1===s)throw new Error("No channel with label "+t);const{merkleRoot:B,merkleRootHex:c,hashHex:Q,totalSize:E,totalChunks:l}=await ft(A,g,t,o[C]),w=r[s].peerIds.length;for(let A=0;A<w;A++){const o=r[s].peerIds[A],C=a.findIndex(A=>A.peerId===o);if(-1===C)continue;const w=a[C].peerPublicKey,d=Og(w),f=Array.from({length:l},(A,e)=>e),h=await ct(f);for(let A=0;A<l;A++){const C=h[A],a=await Mg(Q,C);if(!a)continue;const l=zg(new Uint8Array(a.data).slice(0,jg));l.chunkStartIndex<l.chunkEndIndex?g.dispatch(nI({roomId:e,merkleRootHex:c,sha512Hex:Q,fromPeerId:i.peerId,chunkSize:l.chunkEndIndex-l.chunkStartIndex,totalSize:E,messageType:l.messageType,filename:l.name,channelLabel:t??r[s].label})):await Gg(c,l.chunkIndex);const w=await ht(new Uint8Array(a.data),d,n,B,I),f=await xg([B,w]);g.dispatch(_t.endpoints.sendMessage.initiate({content:{type:"message",message:qg(f),roomId:e,fromPeerId:i.peerId,toPeerId:o,label:t}}))}}}},yt=async A=>{const e=A?.wasmMemory??Wg(),I=A??await at({wasmMemory:e}),g=I._malloc(Re),t=new Uint8Array(e.buffer,g,Re),i=I._malloc(xe),o=new Uint8Array(e.buffer,i,xe),n=I._malloc(Je),C=new Uint8Array(e.buffer,n,Je);window.crypto.getRandomValues(C);const a=I._keypair_from_seed(t.byteOffset,o.byteOffset,C.byteOffset);if(I._free(n),0===a){const A={publicKey:Uint8Array.from(t),secretKey:Uint8Array.from(o)};return I._free(g),I._free(i),A}throw I._free(g),I._free(i),new Error("An unexpected error occured.")},Dt=async(A,e,I)=>{const g=A.length,t=I?I.wasmMemory:_g(g),i=I??await at({wasmMemory:t}),o=i._malloc(g*Uint8Array.BYTES_PER_ELEMENT),n=new Uint8Array(t.buffer,o,g*Uint8Array.BYTES_PER_ELEMENT);n.set(A);const C=i._malloc(Le),a=new Uint8Array(t.buffer,C,Le),r=i._malloc(xe),s=new Uint8Array(t.buffer,r,xe);s.set(e),i._sign(g,n.byteOffset,s.byteOffset,a.byteOffset);const B=Uint8Array.from([...a]);return i._free(o),i._free(C),i._free(r),B},pt=(A,e)=>new Promise((I,g)=>{try{(A.length<=0||A.length>32)&&g(new Error("Label larger than 128 characters")),"string"==typeof e&&e.length!==2*be?g(new Error("Merkle root hex should be 128 bytes")):"string"!=typeof e&&e.length!==be&&g(new Error("Merkle root should be 64 bytes"));let t="";const i=(new TextEncoder).encode(A),o=new Uint8Array(32);o.set(i.subarray(0,Math.min(32,i.length))),t+=qg(o),t+="~",t+="string"==typeof e?e:qg(e),I(t)}catch(A){g(A)}}),mt=A=>new Promise((e,I)=>{try{const g=A.split("~"),t=g.length;2!==t&&t>1?I(new Error(`Channel message label needs to have ${String(2)} components.`)):1===t&&e({channelLabel:A,merkleRootHex:"",merkleRoot:new Uint8Array});const i=Og(g[0]);32!==i.length&&I(new Error("Channel label is not 128 bytes long."));const o=(new TextDecoder).decode(i).replace(/\0+$/,""),n=Og(g[1]);n.length!==be&&I(new Error("Merkle root has invalid length")),e({channelLabel:o,merkleRoot:n,merkleRootHex:g[1]})}catch(A){I(A)}}),St=async(A,e,I,g,t)=>{try{const i=t.filter(A=>A.label===e.label),o=qg(A),{channelLabel:n,merkleRootHex:C}=await mt(e.label),a=I.messages.findLastIndex(A=>A.merkleRootHex===C);if(a<0)return;const r=I.messages[a].sha512Hex;if(o===r){g.dispatch(CI({roomId:I.id,merkleRootHex:C,sha512Hex:r,fromPeerId:I.messages[a].fromPeerId,totalSize:I.messages[a].totalSize,messageType:I.messages[a].messageType,filename:I.messages[a].filename,channelLabel:n,timestamp:I.messages[a].timestamp}));const A=Og(r);await g.dispatch(qt.endpoints.disconnectFromChannelLabel.initiate({label:e.label,messageHash:A,alsoDeleteData:!1}))}else{const A=await Mg(o),e=A?.chunkIndex??-1;if(A&&e>-1){const A=I.messages.findLastIndex(A=>A.merkleRootHex===C),t=await((A,e)=>ug("getDBChunk",A,e))(C,e),a=t?.byteLength??0;t&&a>0&&A>-1?(I.messages[A].savedSize+a===I.messages[A].totalSize||I.messages[A].savedSize===I.messages[A].totalSize?g.dispatch(CI({roomId:I.id,merkleRootHex:C,sha512Hex:r,fromPeerId:I.messages[A].fromPeerId,totalSize:I.messages[A].totalSize,messageType:I.messages[A].messageType,filename:I.messages[A].filename,channelLabel:n,timestamp:I.messages[A].timestamp})):g.dispatch(nI({roomId:I.id,merkleRootHex:C,sha512Hex:r,fromPeerId:I.messages[A].fromPeerId,chunkSize:a,totalSize:I.messages[A].totalSize,messageType:I.messages[A].messageType,filename:I.messages[A].filename,channelLabel:n,timestamp:I.messages[A].timestamp})),1===i.length&&await Yg(void 0,o)):-1===A&&console.log("No message with hex "+r)}}}catch(A){throw console.error(A),A}},kt=async(A,e,I,g,t)=>{const i=new Uint8Array(A);if(i.length!==Mt)throw new Error(`Message size should be ${String(Mt)} bytes`);if(e.length!==be)throw new Error(`Merkle root size should be ${String(be)} bytes`);if(I.length!==Re)throw new Error(`Sender public key size should be ${String(Re)} bytes`);if(g.length!==xe)throw new Error(`Receiver secret key size should be ${String(xe)} bytes`);const o=t?.wasmMemory??ot(),n=t??await at({wasmMemory:o}),C=Mt-Re-Le-ze-qe,a=n._malloc(C),r=new Uint8Array(o.buffer,a,C),s=n._malloc(Mt),B=new Uint8Array(o.buffer,s,Mt);B.set(i);const c=n._malloc(be),Q=new Uint8Array(o.buffer,c,be);Q.set(e);const E=n._malloc(Re),l=new Uint8Array(o.buffer,E,Re);l.set(I);const w=n._malloc(xe),d=new Uint8Array(o.buffer,w,xe);d.set(g);const f=n._receive_message(r.byteOffset,B.byteOffset,Q.byteOffset,l.byteOffset,d.byteOffset);switch(n._free(s),n._free(c),n._free(E),n._free(w),f){case 0:{const A=zg(r.subarray(0,jg)),I=A.chunkEndIndex-A.chunkStartIndex>A.totalSize||A.chunkEndIndex-A.chunkStartIndex>Mt?0:A.chunkEndIndex-A.chunkStartIndex,g=await window.crypto.subtle.digest("SHA-512",r.subarray(jg+Qt)),t=new Uint8Array(g);if(0===I)return n._free(a),{date:A.date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:A.totalSize,messageType:A.messageType,filename:A.name,chunkHash:t,messageHash:A.hash};const i=qg(e),o=await(h=i,u=A.chunkIndex,ug("existsDBChunk",h,u)),C=await mg(i),s=null!=C&&C.savedSize===C.totalSize,B=!C||C.savedSize+I<=C.totalSize&&!o,c=s||I===A.totalSize||null!=C&&!o&&C.savedSize+I===C.totalSize;if(!B)return n._free(a),{date:A.date,chunkIndex:-1,chunkSize:I,receivedFullSize:c,messageAlreadyExists:null!=C,chunkAlreadyExists:o,savedSize:C?.savedSize??0,totalSize:A.totalSize,messageType:A.messageType,filename:A.name,chunkHash:t,messageHash:A.hash};const Q=Jg(A.messageType);try{if(!o){const e=new Uint8Array(A.chunkEndIndex-A.chunkStartIndex);e.set([...r.slice(jg+Qt+A.chunkStartIndex,jg+Qt+A.chunkEndIndex)]),await Hg({merkleRoot:i,hash:qg(A.hash),chunkIndex:A.chunkIndex,data:e.buffer,mimeType:Q})}return n._free(a),{date:A.date,chunkIndex:A.chunkIndex,chunkSize:I,receivedFullSize:c,messageAlreadyExists:null!=C,chunkAlreadyExists:o,savedSize:C?.savedSize??0,totalSize:A.totalSize,messageType:A.messageType,filename:A.name,chunkHash:t,messageHash:A.hash}}catch(e){return n._free(a),{date:A.date,chunkIndex:A.chunkIndex,chunkSize:0,receivedFullSize:null!=C&&c,messageAlreadyExists:null!=C,chunkAlreadyExists:o,savedSize:C?.savedSize??0,totalSize:0,messageType:A.messageType,filename:A.name,chunkHash:t,messageHash:A.hash}}}case-1:return n._free(a),console.error("Message signature is wrong"),{date:new Date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:0,messageType:vg.Text,filename:"",chunkHash:new Uint8Array,messageHash:new Uint8Array};case-2:return n._free(a),console.error("Could not decrypt message"),{date:new Date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:0,messageType:vg.Text,filename:"",chunkHash:new Uint8Array,messageHash:new Uint8Array};case-3:return n._free(a),console.error("Merkle proof length is wrong"),{date:new Date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:0,messageType:vg.Text,filename:"",chunkHash:new Uint8Array,messageHash:new Uint8Array};case-4:return n._free(a),console.error("Could not allocate memory for hash"),{date:new Date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:0,messageType:vg.Text,filename:"",chunkHash:new Uint8Array,messageHash:new Uint8Array};case-5:return n._free(a),console.error("Could not hash chunk"),{date:new Date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:0,messageType:vg.Text,filename:"",chunkHash:new Uint8Array,messageHash:new Uint8Array};case-6:return n._free(a),console.error("Could not verify Merkle proof"),{date:new Date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:0,messageType:vg.Text,filename:"",chunkHash:new Uint8Array,messageHash:new Uint8Array};default:return n._free(a),console.error("Unexpected error occured."),{date:new Date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:0,messageType:vg.Text,filename:"",chunkHash:new Uint8Array,messageHash:new Uint8Array}}var h,u},Mt=65536,Ft=2*Mt,Kt=({channel:A,epc:e,roomId:I,dataChannels:g,receiveMessageModule:t},i)=>new Promise(o=>{const{keyPair:n}=i.getState();if("string"==typeof A){const I=g.findIndex(I=>I.label===A&&I.withPeerId===e.withPeerId);I>-1&&"open"===g[I].readyState&&o(g[I])}const C="string"==typeof A?A:A.label,a="string"==typeof A?e.createDataChannel(A,{ordered:!1,protocol:"raw"}):A;a.binaryType="arraybuffer",a.bufferedAmountLowThreshold=Mt,a.onbufferedamountlow=async()=>{for(;"open"===a.readyState;){const A=await Fg(C,e.withPeerId);if(0===A.length)break;for(;A.length>0&&a.bufferedAmount<Ft&&"open"===a.readyState;){let I=await st(0,A.length);I===A.length&&(I=0);const[g]=A.splice(I,1);"open"===a.readyState&&(a.send(g.encryptedData),await Pg(C,e.withPeerId,g.position))}}};const r=a;r.withPeerId=e.withPeerId,r.roomIds=[I],r.onclose=async()=>{console.log(`Channel with label ${r.label} has closed.`),await i.dispatch(qt.endpoints.disconnectFromPeerChannelLabel.initiate({peerId:e.withPeerId,label:r.label})),"main"===r.label&&i.dispatch(AI({roomId:I,connectingToPeers:!0}))},r.onerror=async A=>{console.error(A),await i.dispatch(qt.endpoints.disconnectFromPeerChannelLabel.initiate({peerId:e.withPeerId,label:r.label})),i.dispatch(AI({roomId:I,connectingToPeers:!0}))},r.onmessage=async A=>{try{const{channelLabel:o,merkleRoot:a,merkleRootHex:s}=await mt(C),B=e.withPeerPublicKey,c=Og(B),Q=Og(n.secretKey),{rooms:E}=i.getState(),l=E.findIndex(A=>A.id===I);if(l>-1){const n=A.data;if(n.byteLength===be)await St(new Uint8Array(n),r,E[l],i,g);else if(n.byteLength===Mt){const{date:A,chunkSize:g,chunkIndex:C,receivedFullSize:B,chunkAlreadyExists:E,totalSize:l,messageType:w,filename:d,chunkHash:f,messageHash:h}=await kt(n,a,c,Q,t);l>0&&f.length===be&&"open"===r.readyState&&!E&&r.send(f.buffer);const u=qg(h);B?(await kg(I,s,u,e.withPeerId,l,l,w,d,o,A.getTime()),i.dispatch(CI({roomId:I,merkleRootHex:s,sha512Hex:u,fromPeerId:e.withPeerId,totalSize:l,messageType:w,filename:d,channelLabel:o,timestamp:A.getTime(),alsoSendFinishedMessage:!0}))):g>0&&C>-1&&!E&&(await kg(I,s,u,e.withPeerId,g,l,w,d,o,A.getTime()),i.dispatch(nI({roomId:I,merkleRootHex:s,sha512Hex:u,fromPeerId:e.withPeerId,chunkSize:g,totalSize:l,messageType:w,filename:d,channelLabel:o,timestamp:A.getTime()})))}else console.error("Unrecognized data size")}}catch(A){console.error(A)}},r.onopen=async()=>{try{console.log(`Channel with label "${r.label}" and client ${e.withPeerId} is open.`),g.push(r);const A=await mt(C);""===A.merkleRootHex&&A.channelLabel.length>0&&i.dispatch(iI({roomId:I,label:C,peerId:r.withPeerId}))}catch(A){console.error(A)}},o(r)}),Ht=async({peerId:e,peerPublicKey:I,roomId:g,peerConnections:t,rtcConfig:i},o)=>new Promise((n,C)=>{try{const{keyPair:a}=o.getState();i??=Ze,A.isUUID(e)||C(new Error("PeerId is not a valid uuidv4")),64!==I.length&&C(new Error("Peer public key is not a valid length"));const r=t.findIndex(A=>A.withPeerId===e);if(r>-1){-1===t[r].roomIds.findIndex(A=>A===g)&&t[r].roomIds.push(g),n(t[r])}const s=new RTCPeerConnection(i);s.withPeerId=e,s.withPeerPublicKey=I,s.makingOffer=!1,s.roomIds=[g],s.iceCandidates=[],s.onnegotiationneeded=async()=>{try{s.makingOffer=!0,await s.setLocalDescription(),s.localDescription&&(await o.dispatch(_t.endpoints.sendMessage.initiate({content:{type:"description",description:s.localDescription,fromPeerId:a.peerId,fromPeerPublicKey:a.publicKey,toPeerId:e,roomId:g}})),console.log(`Negotiation was needed with ${e} and you sent a description ${s.localDescription.type}.`))}catch(A){console.error(A)}finally{s.makingOffer=!1}},s.onicecandidate=async({candidate:A})=>{A&&""!==A.candidate&&await o.dispatch(_t.endpoints.sendMessage.initiate({content:{type:"candidate",candidate:A,fromPeerId:a.peerId,toPeerId:e,roomId:g}}))},s.onicecandidateerror=A=>{console.error(A)},s.oniceconnectionstatechange=async()=>{if("failed"===s.iceConnectionState){const{signalingServer:A}=o.getState();!A.isConnected&&!A.isEstablishingConnection&&A.serverUrl.length>0&&await o.dispatch(_t.endpoints.connectWebSocket.initiate(A.serverUrl)),s.restartIce()}console.log(`ICE candidate connection state with ${e} is ${s.iceConnectionState}.`)},s.onicegatheringstatechange=()=>{console.log(`ICE gathering state with ${e} is ${s.iceGatheringState}.`)},s.onsignalingstatechange=async()=>{console.log(`Signaling state with ${e} is ${s.signalingState}.`),"stable"===s.signalingState&&s.remoteDescription&&await(async A=>{for(;A.iceCandidates.length>0&&"stable"===A.signalingState&&A.remoteDescription;){const e=A.iceCandidates.shift();if(e){const I=new RTCIceCandidate(e);I.usernameFragment!==e.usernameFragment&&await A.addIceCandidate(I)}}})(s)},s.onconnectionstatechange=async()=>{if("closed"===s.connectionState||"failed"===s.connectionState||"disconnected"===s.connectionState){if(await o.dispatch(qt.endpoints.disconnectFromPeer.initiate({peerId:e})),console.error(`Connection with peer ${e} has ${s.connectionState}.`),"closed"===s.connectionState){const{signalingServer:A}=o.getState();A.isConnected&&await o.dispatch(_t.endpoints.sendMessage.initiate({content:{type:"peers",fromPeerId:a.peerId,roomId:g}}))}}else"connected"===s.connectionState&&(o.dispatch(tI({roomId:g,peerId:e,peerPublicKey:I})),console.log(`Connection status with peer ${e} is ${s.connectionState}.`))},n(s)}catch(A){C(A)}}),Nt=A=>new Promise(e=>{setTimeout(e,A)}),Ut=async(A,e,I,g,t,i,o,n,C)=>{let a=!1;const r=o.withPeerPublicKey,s=Og(r),{merkleRootHex:B}=await mt(A.label),c=Array.from({length:I},(A,e)=>e),Q=await ct(c);for(let o=0;o<I;o++){const I=Q[o],r=await yt(n),c=await Dt(r.publicKey,e,n),E=await Mg(i,I);if(!E)continue;const l=new Uint8Array(E.metadata),w=zg(l);if(w.chunkStartIndex>=0&&w.chunkEndIndex>w.chunkStartIndex&&w.chunkEndIndex-w.chunkStartIndex<=w.totalSize){const A=Jg(w.messageType);await Hg({merkleRoot:B,hash:i,chunkIndex:w.chunkIndex,data:E.data.slice(w.chunkStartIndex,w.chunkEndIndex),mimeType:A})}const d=new Uint8Array(Qt);if(0===E.merkleProof.byteLength){const A=await rt(g,Og(E.realChunkHash),C,Qt);d.set(A);try{await Ng({hash:i,merkleRoot:B,realChunkHash:E.realChunkHash,chunkIndex:I,data:E.data,metadata:E.metadata,merkleProof:d.buffer})}catch(A){console.warn(A)}}else if(d.set(new Uint8Array(E.merkleProof)),0===E.merkleRoot.length)try{await Ng({hash:i,merkleRoot:B,realChunkHash:E.realChunkHash,chunkIndex:I,data:E.data,metadata:E.metadata,merkleProof:E.merkleProof})}catch(A){console.warn(A)}const f=await xg([l,d,new Uint8Array(E.data)]),h=await ht(f,s,r.secretKey,t,n),u=await xg([r.publicKey,c,h]);if("open"===A.readyState&&A.bufferedAmount<Ft){const e=await st(1,10);await Nt(e),A.send(u.buffer)}else{if("closed"===A.readyState){console.log("Cannot send message because channel is "+A.readyState+" and bufferedAmount is "+A.bufferedAmount);break}a=!0;try{await Ug({position:I,label:A.label,toPeerId:A.withPeerId,encryptedData:u.buffer})}catch(A){console.error(A)}}}if(a)for(;"open"===A.readyState&&A.bufferedAmount<Ft;){const e=await Fg(A.label,o.withPeerId);for(;e.length>0&&A.bufferedAmount<Ft&&"open"===A.readyState;){let I=await st(0,e.length);I===e.length&&(I=0);const[g]=e.splice(I,1);if("open"===A.readyState){A.send(g.encryptedData);try{await Pg(A.label,o.withPeerId,g.position)}catch(A){console.error(A)}}}}},Gt=async({data:A,label:e,roomId:I,peerConnections:g,dataChannels:t,encryptionWasmMemory:i,merkleWasmMemory:o,receiveMessageWasmMemory:n,minChunks:C,chunkSize:a,percentageFilledChunk:r,metadataSchemaVersion:s},B)=>{const c=await at({wasmMemory:i}),Q=await at({wasmMemory:o}),E=await at({wasmMemory:n});return await(async(A,e,I,g,t,i,o,n,C,a=1,r=lt,s=.9,B=1)=>{try{const{rooms:c,keyPair:Q}=e.getState(),E=Og(Q.secretKey),l=c.findIndex(A=>A.id===g);if(l>-1){const Q=c[l].channels.findIndex(A=>A.label===I);if(-1===Q)throw new Error("No channel with label "+I);const{merkleRoot:w,merkleRootHex:d,hashHex:f,totalChunks:h,chunkHashes:u}=await ft(A,e,I,c[l],a,r,s,B);if(0===w.length||0===f.length||0===h||0===u.length)return;const y=await pt(I,d),D=c[l].channels[Q].peerIds.length,p=[];for(let A=0;A<D;A++){const I=t.findIndex(e=>e.withPeerId===c[l].channels[Q].peerIds[A]);if(-1===I)continue;const a=await Kt({channel:y,epc:t[I],roomId:g,dataChannels:i,receiveMessageModule:C},e);p.push(Ut(a,E,h,u,w,f,t[I],o,n))}await Promise.allSettled(p)}}catch(A){console.trace(A)}})(A,B,e,I,g,t,c,Q,E,C,a,r,s),{data:void 0}},Yt=async({alsoDeleteDB:A,peerConnections:e,dataChannels:I},g)=>{const t=I.length;for(let A=0;A<t;A++)"open"===I[A].readyState&&I[A].close();const i=e.length;for(let A=0;A<i;A++)await g.dispatch(qt.endpoints.disconnectFromPeer.initiate({peerId:e[A].withPeerId}));return A&&await ug("deleteDB"),{data:void 0}},Pt=async({roomId:A,deleteMessages:e,peerConnections:I,dataChannels:g},t)=>{const i=g.length;for(let e=0;e<i;e++){if(!g[e]||!g[e].roomIds.includes(A)||"open"!==g[e].readyState)continue;const I=g[e].roomIds.findIndex(e=>e===A);I>-1&&(g[e].roomIds.splice(I,1),0===g[e].roomIds.length&&g[e].close())}const o=I.length;for(let e=0;e<o;e++){if(!I[e]||!I[e].roomIds.includes(A)||"connected"!==I[e].connectionState)continue;const g=I[e].roomIds.findIndex(e=>e===A);g>-1&&(I[e].roomIds.splice(g,1),0===I[e].roomIds.length&&await t.dispatch(qt.endpoints.disconnectFromPeer.initiate({peerId:I[e].withPeerId})))}if(e){if((await pg()).findIndex(e=>e.roomId===A)>-1){await(A=>ug("deleteDBUniqueRoom",A))(A);const e=await Sg(A),I=e.length;for(let A=0;A<I;A++)t.dispatch(sI({merkleRootHex:e[A].merkleRoot}))}}return{data:void 0}},vt=[],bt=[],Lt=[],Jt=At(65536-be-ze-qe,be),Rt=tt(192*(be+1)),xt=ot(),qt=lg({reducerPath:"webrtcApi",baseQuery:async({peerId:A,peerPublicKey:e,roomId:I,initiator:g,rtcConfig:t,peerConnections:i,dataChannels:o,receiveMessageWasmMemory:n},C)=>{const{keyPair:a}=C.getState();if(A===a.peerId)throw new Error("Cannot create a connection with oneself.");const r=await at({wasmMemory:n});if(await Dg(A))return{data:void 0};const s=i.findIndex(e=>e.withPeerId===A);if(-1===s){const n=await Ht({peerId:A,peerPublicKey:e,roomId:I,peerConnections:i,rtcConfig:t},C);n.ondatachannel=async A=>{await Kt({channel:A.channel,epc:n,roomId:I,dataChannels:o,receiveMessageModule:r},C)},i.push(n),g&&await Kt({channel:"main",epc:n,roomId:I,dataChannels:o,receiveMessageModule:r},C)}else{const g=i[s];if("connected"===g.connectionState){g.roomIds.push(I),C.dispatch(tI({roomId:I,peerId:A,peerPublicKey:e}));const t=o.length;for(let e=0;e<t;e++)o[e].withPeerId===A&&o[e].roomIds.push(I);const{rooms:i}=C.getState(),n=i.length;for(let e=0;e<n;e++){const g=i[e].channels.findIndex(e=>e.peerIds.includes(A));g>-1&&C.dispatch(iI({roomId:I,label:i[e].channels[g].label,peerId:A}))}}}return{data:void 0}},endpoints:A=>({connectWithPeer:A.mutation({query:({peerId:A,peerPublicKey:e,roomId:I,initiator:g=!1,rtcConfig:t={iceServers:[{urls:["stun:stun.p2party.com:3478"]}]}})=>({peerId:A,peerPublicKey:e,roomId:I,initiator:g,rtcConfig:t,peerConnections:vt,dataChannels:Lt,receiveMessageWasmMemory:xt})}),setDescription:A.mutation({queryFn:(A,e,I)=>(async({peerId:A,peerPublicKey:e,roomId:I,description:g,rtcConfig:t,peerConnections:i,iceCandidates:o,dataChannels:n,receiveMessageWasmMemory:C},a)=>{const{keyPair:r}=a.getState(),s=await at({wasmMemory:C}),B=i.findIndex(e=>e.withPeerId===A),c=B>-1?i[B]:await Ht({peerId:A,peerPublicKey:e,roomId:I,peerConnections:i,rtcConfig:t},a);c.ondatachannel=async A=>{await Kt({channel:A.channel,epc:c,roomId:I,dataChannels:n,receiveMessageModule:s},a)};const Q=o.length,E=[];for(let e=0;e<Q;e++)o[e].withPeerId===A&&(E.push(e),c.iceCandidates.push(o[e]));const l=E.length;for(let A=0;A<l;A++)o.splice(E[A],1);-1===B&&i.push(c);const w="offer"===g.type&&(c.makingOffer||"stable"!==c.signalingState);if(!(r.peerId<c.withPeerId)&&w)return{data:void 0};if("closed"!==c.signalingState){if(await c.setRemoteDescription(g),"offer"===g.type){await c.setLocalDescription();const e=c.localDescription;e&&await a.dispatch(_t.endpoints.sendMessage.initiate({content:{type:"description",description:e,fromPeerId:r.peerId,fromPeerPublicKey:r.publicKey,toPeerId:A,roomId:I}}))}}else await a.dispatch(qt.endpoints.disconnectFromPeer.initiate({peerId:c.withPeerId})),await a.dispatch(_t.endpoints.sendMessage.initiate({content:{type:"peers",fromPeerId:r.peerId,roomId:I}}));return"connected"===c.connectionState&&B>-1&&await Kt({channel:"main",epc:c,roomId:I,dataChannels:n,receiveMessageModule:s},a),{data:void 0}})({...A,peerConnections:vt,iceCandidates:bt,dataChannels:Lt,receiveMessageWasmMemory:xt},e)}),setCandidate:A.mutation({queryFn:(A,e,I)=>(async({peerId:A,candidate:e,peerConnections:I,iceCandidates:g},t)=>{const{keyPair:i}=t.getState(),o=I.findIndex(e=>e.withPeerId===A);if(o>-1){const A=I[o],g=new RTCIceCandidate(e);if(A.remoteDescription&&"stable"===A.signalingState)try{await A.addIceCandidate(g)}catch(e){const I=A.makingOffer||"stable"!==A.signalingState;!(i.peerId<A.withPeerId)&&I||(await t.dispatch(qt.endpoints.disconnectFromPeer.initiate({peerId:A.withPeerId})),A.restartIce())}else A.iceCandidates.push(g)}else g.push({...e,withPeerId:A});return{data:void 0}})({...A,peerConnections:vt,iceCandidates:bt},e)}),openChannel:A.mutation({queryFn:(A,e,I)=>(async({roomId:A,channel:e,withPeers:I,peerConnections:g,dataChannels:t,receiveMessageWasmMemory:i},o)=>{const{keyPair:n}=o.getState(),C=await at({wasmMemory:i});if(I&&I.length>0){const i=I.length;for(let a=0;a<i;a++){if(n.peerId===I[a].peerId)continue;const i=g.findIndex(A=>A.withPeerId===I[a].peerId);if(i>-1){const I=g[i];await Kt({channel:e,epc:I,roomId:A,dataChannels:t,receiveMessageModule:C},o)}}}else{const I=g.length;for(let i=0;i<I;i++){const I=g[i];await Kt({channel:e,epc:I,roomId:A,dataChannels:t,receiveMessageModule:C},o)}}return{data:void 0}})({...A,peerConnections:vt,dataChannels:Lt,receiveMessageWasmMemory:xt},e)}),sendMessage:A.mutation({queryFn:(A,e,I)=>Gt({...A,peerConnections:vt,dataChannels:Lt,encryptionWasmMemory:Jt,merkleWasmMemory:Rt,receiveMessageWasmMemory:xt},e)}),disconnect:A.mutation({queryFn:(A,e,I)=>Yt({...A,peerConnections:vt,dataChannels:Lt},e)}),disconnectFromRoom:A.mutation({queryFn:(A,e,I)=>Pt({...A,peerConnections:vt,dataChannels:Lt},e)}),disconnectFromAllRooms:A.mutation({queryFn:(A,e,I)=>(async({deleteMessages:A,exceptionRoomIds:e,peerConnections:I,dataChannels:g},t)=>{let i,o=0;const n=g.length;for(i=0;i<n;i++)if(g[i]&&"open"===g[i].readyState)if(e&&e.length>0){const A=g[i].roomIds.length,I=[];for(o=0;o<A;o++)e.includes(g[i].roomIds[o])||I.push(o);const t=I.length;for(o=0;o<t;o++)g[i].roomIds.splice(I[o],1);0===g[i].roomIds.length&&g[i].close()}else g[i].close();const C=I.length;for(i=0;i<C;i++)if(I[i]&&"connected"===I[i].connectionState)if(e&&e.length>0){const A=I[i].roomIds.length,g=[];for(o=0;o<A;o++)e.includes(I[i].roomIds[o])||g.push(o);const n=g.length;for(o=0;o<n;o++)I[i].roomIds.splice(g[o],1);0===I[i].roomIds.length&&await t.dispatch(qt.endpoints.disconnectFromPeer.initiate({peerId:I[i].withPeerId}))}else await t.dispatch(qt.endpoints.disconnectFromPeer.initiate({peerId:I[i].withPeerId}));if(A){const{rooms:A}=t.getState(),I=A.length;for(i=0;i<I;i++){if(e&&e.includes(A[i].id))continue;const I=A[i].messages.length;for(o=0;o<I;o++)t.dispatch(sI({merkleRootHex:A[i].messages[o].merkleRootHex}))}}return{data:void 0}})({...A,peerConnections:vt,dataChannels:Lt},e)}),disconnectFromPeer:A.mutation({queryFn:(A,e,I)=>(({peerId:A,alsoDeleteData:e,peerConnections:I,dataChannels:g},t)=>{t.dispatch(aI({peerId:A}));const i=I.findIndex(e=>e.withPeerId===A);i>-1&&(I[i].ontrack=null,I[i].ondatachannel=null,I[i].onicecandidate=null,I[i].onicecandidateerror=null,I[i].onnegotiationneeded=null,I[i].onsignalingstatechange=null,I[i].onconnectionstatechange=null,I[i].onicegatheringstatechange=null,I[i].oniceconnectionstatechange=null,"failed"!==I[i].connectionState&&"connected"!==I[i].connectionState||I[i].close(),I.splice(i,1));const o=g.length;for(let e=0;e<o;e++)g[e].withPeerId===A&&"open"===g[e].readyState&&g[e].close();if(e){const{rooms:e}=t.getState(),I=e.length;for(let g=0;g<I;g++){const I=e[g].messages.length;for(let i=0;i<I;i++)e[g].messages[i].fromPeerId===A&&t.dispatch(sI({merkleRootHex:e[g].messages[i].merkleRootHex}))}}return{data:void 0}})({...A,peerConnections:vt,dataChannels:Lt},e)}),disconnectFromChannelLabel:A.mutation({queryFn:(A,e,I)=>(async({label:A,messageHash:e,alsoDeleteData:I,alsoSendFinishedMessage:g,dataChannels:t},i)=>{const o=t.length;if(0===o)return{data:void 0};for(let n=0;n<o;n++)if(t[n]&&t[n].label===A&&"open"===t[n].readyState&&(e&&g&&e.length===be&&t[n].send(e.buffer),t[n].close(),I)){const{merkleRootHex:e}=await mt(A);I&&i.dispatch(sI({merkleRootHex:e}))}return{data:void 0}})({...A,dataChannels:Lt},e)}),disconnectFromPeerChannelLabel:A.mutation({queryFn:(A,e,I)=>(async({peerId:A,label:e,peerConnections:I,dataChannels:g},t)=>{const i=g.findIndex(I=>I.label===e&&I.withPeerId===A);i>-1&&g[i]&&(g[i].onopen=null,g[i].onclose=null,g[i].onerror=null,g[i].onclosing=null,g[i].onmessage=null,g[i].onbufferedamountlow=null,"open"===g[i].readyState&&g[i].close(),g.splice(i,1),t.dispatch(rI({peerId:A,label:e})),await Pg(e,A));const{merkleRootHex:o}=await mt(e);o.length>0&&g.findIndex(A=>{const e=A.label.split("~");return 2===e.length&&e[1]===o})<0&&await Yg(o);const{rooms:n}=t.getState(),C=n.length;let a=!1;for(let e=0;e<C;e++){const I=n[e].channels.length;for(let g=0;g<I;g++)if(n[e].channels[g].peerIds.includes(A)){a=!0;break}if(a)break}if(!a){const e=I.findIndex(e=>e.withPeerId===A);e>-1&&("failed"===I[e].connectionState||"connected"===I[e].connectionState)&&await t.dispatch(qt.endpoints.disconnectFromPeer.initiate({peerId:I[e].withPeerId}))}return{data:void 0}})({...A,peerConnections:vt,dataChannels:Lt},e)})})}),Ot=At(65536-be-ze-qe,be),jt=async(e,I,g)=>{try{if("PING"===e.data)return void I.send("PONG");const t=JSON.parse(e.data);switch(t.type){case"ping":{const{keyPair:A}=g.getState();await g.dispatch(_t.endpoints.sendMessage.initiate({content:{type:"pong",fromPeerId:A.peerId}}));break}case"peerId":{const{keyPair:e}=g.getState(),I=t.peerId.length>0?t.peerId:"",i=t.challenge.length>0?t.challenge:"",o=A.isUUID(I)&&A.isHexadecimal(i)&&64===i.length&&0===e.challenge.length&&0===e.signature.length&&!t.challengeId&&!t.username&&!t.credential,n=A.isUUID(I)&&A.isUUID(e.peerId)&&e.peerId!==I&&A.isHexadecimal(i)&&64===i.length&&!t.challengeId&&!t.username&&!t.credential;o||n?await(async(A,e,I,g)=>{const t=Og(A.secretKey),i=Uint8Array.from(I.match(/.{1,2}/g).map(A=>parseInt(A,16))),o=await Dt(i,t),n=[...new Uint8Array(o)].map(A=>A.toString(16).padStart(2,"0")).join("");g.dispatch(Ge({peerId:e,challenge:I,signature:n}))})(e,I,i,g):g.dispatch(Ue({peerId:I,challenge:i,signature:t.signature??"",challengeId:t.challengeId??"",username:t.username??"",credential:t.credential??""}));break}case"roomId":g.dispatch($e({id:t.roomId,url:t.roomUrl}));break;case"challenge":g.dispatch(Ye(t));break;case"peerConnection":{if(await Dg(t.peer.id,t.peer.publicKey))break;const{keyPair:A,rooms:e}=g.getState(),I=e.findIndex(A=>A.id===t.roomId);if(I>-1&&e[I].onlyConnectWithKnownAddresses){if(!await yg(t.peer.id,t.peer.publicKey))break}await g.dispatch(_t.endpoints.sendMessage.initiate({content:{type:"peerConnection",roomId:t.roomId,fromPeerId:A.peerId,toPeerId:t.peer.id}}));break}case"peers":{const{keyPair:e,rooms:I,commonState:i}=g.getState(),o=64===i.currentRoomUrl.length?I.findIndex(A=>A.url===i.currentRoomUrl):-1;if(o>-1){const i=t.peers.length;if(0===i)break;const n=I[o].onlyConnectWithKnownAddresses;for(let C=0;C<i;C++){if(t.peers[C].publicKey===e.publicKey||t.peers[C].id===e.peerId||!A.isUUID(t.peers[C].id)||64!==t.peers[C].publicKey.length)continue;if(!await Dg(t.peers[C].id,t.peers[C].publicKey)){if(n){if(!await yg(t.peers[C].id,t.peers[C].publicKey))continue}await g.dispatch(qt.endpoints.connectWithPeer.initiate({roomId:t.roomId,peerId:t.peers[C].id,peerPublicKey:t.peers[C].publicKey,initiator:!0,rtcConfig:I[o].rtcConfig}))}}}break}case"description":await Dg(t.fromPeerId,t.fromPeerPublicKey)||await g.dispatch(qt.endpoints.setDescription.initiate({peerId:t.fromPeerId,peerPublicKey:t.fromPeerPublicKey,roomId:t.roomId,description:t.description}));break;case"candidate":await Dg(t.fromPeerId)||await g.dispatch(qt.endpoints.setCandidate.initiate({peerId:t.fromPeerId,candidate:t.candidate}));break;case"connection":{const{keyPair:e}=g.getState();if(A.isUUID(e.peerId)&&A.isHexadecimal(e.challenge)&&A.isHexadecimal(e.signature)&&128===e.signature.length&&64===e.challenge.length&&A.isUUID(t.fromPeerId)&&64===t.fromPeerPublicKey.length&&A.isUUID(t.roomId)){g.dispatch(tI({roomId:t.roomId,peerId:t.fromPeerId,peerPublicKey:t.fromPeerPublicKey}));const A=await at({wasmMemory:Ot}),I=t.labels.length;for(let i=0;i<I;i++){g.dispatch(iI({roomId:t.roomId,label:t.labels[i],peerId:t.fromPeerId}));const I=`Connected with ${e.peerId} on channel ${t.labels[i]}`;await ut(I,t.roomId,A,g,t.labels[i])}}break}case"error":console.error(t);break;default:console.error("Unknown message type "+JSON.stringify(t))}}catch(A){return}},Tt=At(65536-be-ze-qe,be),zt=(A,e,I=10,g=20)=>{let t=0;const i=setInterval(()=>{A.readyState===WebSocket.OPEN?(clearInterval(i),e()):(t+=1,console.log(`Waiting for connection... Attempt ${String(t)}`),t>=I&&(clearInterval(i),console.log("WebSocket failed to connect after multiple attempts, closing..."),A.removeEventListener("message",()=>{}),A.removeEventListener("open",()=>{}),A.removeEventListener("close",()=>{}),A.close()))},g)};let Xt=null;const Vt=(A,e)=>(Xt&&(Xt.removeEventListener("message",()=>{}),Xt.removeEventListener("open",()=>{}),Xt.removeEventListener("close",()=>{}),Xt.close(),Xt=null,console.log("WebSocket manually disconnected")),e.dispatch(lI.disconnect()),{data:void 0}),Wt=(e,I)=>{if(Xt&&Xt.readyState===WebSocket.OPEN){const{keyPair:g}=I.getState();return A.isUUID(g.peerId)&&A.isHexadecimal(g.challenge)&&A.isHexadecimal(g.signature)&&128===g.signature.length&&64===g.challenge.length&&zt(Xt,()=>{Xt.send(JSON.stringify(e.content))}),{data:void 0}}return console.warn("WebSocket is not open"),{data:void 0}},Zt=async({peerId:e,peerPublicKey:I,roomId:g},t)=>{if(Xt&&Xt.readyState===WebSocket.OPEN){const{keyPair:i}=t.getState();if(A.isUUID(i.peerId)&&A.isHexadecimal(i.challenge)&&A.isHexadecimal(i.signature)&&128===i.signature.length&&64===i.challenge.length&&A.isUUID(e)&&64===I.length&&A.isUUID(g)){t.dispatch(tI({roomId:g,peerId:e,peerPublicKey:I}));const A=[];t.dispatch(iI({roomId:g,label:"main",peerId:e})),A.push("main"),t.dispatch(iI({roomId:g,label:"signaling",peerId:e})),A.push("signaling"),zt(Xt,()=>{Xt.send(JSON.stringify({type:"connection",roomId:g,fromPeerId:i.peerId,toPeerId:e,labels:A}))});const o=A.length,n=await at({wasmMemory:Tt});for(let e=0;e<o;e++){const I=`Connected with ${i.peerId} on channel ${A[e]}`;await ut(I,g,n,t,A[e])}}return{data:void 0}}return console.warn("WebSocket is not open"),{data:void 0}},_t=lg({reducerPath:"signalingServerApi",baseQuery:async({signalingServerUrl:e},I)=>{const{signalingServer:g}=I.getState();if(Xt||g.isConnected||g.isEstablishingConnection)return console.log("WebSocket already connected"),{data:void 0};I.dispatch(lI.startConnecting(e));try{const{keyPair:g}=I.getState();let t=localStorage.getItem("publicKey")??"",i=localStorage.getItem("secretKey")??"";if(0===g.secretKey.length&&0===i.length){const A=await yt();t=qg(A.publicKey),i=qg(A.secretKey),I.dispatch(Ne({publicKey:t,secretKey:i}))}else if(0===g.secretKey.length)if(128===i.length&&64===t.length)I.dispatch(Ne({publicKey:t,secretKey:i}));else{const A=await yt();t=qg(A.publicKey),i=qg(A.secretKey),I.dispatch(Ne({publicKey:t,secretKey:i}))}else t=g.publicKey;const o=e+"?publickey="+t;return Xt=new WebSocket(o),Xt.binaryType="arraybuffer",await new Promise((e,t)=>{try{Xt.onopen=()=>{console.log("WebSocket connected to:",o),I.dispatch(lI.connectionEstablished());const{rooms:t,commonState:i}=I.getState(),n=64===i.currentRoomUrl.length?t.findIndex(A=>A.url===i.currentRoomUrl):-1;n>-1&&A.isUUID(g.peerId)&&A.isUUID(t[n].id)?I.dispatch(AI({roomId:t[n].id,connectingToPeers:!0})):A.isUUID(g.peerId)&&64===i.currentRoomUrl.length&&zt(Xt,()=>{Xt.send(JSON.stringify({type:"room",fromPeerId:g.peerId,roomUrl:i.currentRoomUrl}))}),e({data:void 0})},Xt.onerror=A=>{console.error("WebSocket error:",A),Xt&&(Xt.removeEventListener("message",()=>{}),Xt.removeEventListener("open",()=>{}),Xt.removeEventListener("close",()=>{}),Xt.close(),Xt=null),I.dispatch(lI.disconnect()),t({error:"WebSocket connection failed"})},Xt.onmessage=async A=>{await jt(A,Xt,I)},Xt.onclose=()=>{Xt&&(Xt.removeEventListener("message",()=>{}),Xt.removeEventListener("open",()=>{}),Xt.removeEventListener("close",()=>{}),Xt.close(),Xt=null),I.dispatch(lI.disconnect()),console.log("WebSocket disconnected"),e({data:void 0})}}catch(A){t(A)}return()=>{Xt&&(console.log("Cleaning up WebSocket connection..."),Xt.removeEventListener("message",()=>{}),Xt.removeEventListener("open",()=>{}),Xt.removeEventListener("close",()=>{}),Xt.close(),Xt=null)}})}catch(A){return Xt&&(Xt.removeEventListener("message",()=>{}),Xt.removeEventListener("open",()=>{}),Xt.removeEventListener("close",()=>{}),Xt.close(),Xt=null),I.dispatch(lI.disconnect()),console.error("Error during WebSocket setup:",A),{error:"WebSocket connection failed"}}},endpoints:A=>({connectWebSocket:A.mutation({query:(A="wss://signaling.p2party.com/ws")=>({signalingServerUrl:A})}),disconnectWebSocket:A.mutation({queryFn:Vt}),sendMessage:A.mutation({queryFn:Wt}),connectWithPeer:A.mutation({queryFn:Zt})})}),$t=me();$t.startListening({matcher:mA(AI,$e,iI,nI,CI,sI,BI),effect:async(e,I)=>{if(AI.match(e)){const{roomId:g,connectingToPeers:t}=e.payload;if(t){const{signalingServer:e,keyPair:t,rooms:i}=I.getState(),o=i.findIndex(A=>A.id===g);e.isConnected&&A.isUUID(t.peerId)&&o>-1&&A.isUUID(i[o].id)&&await I.dispatch(_t.endpoints.sendMessage.initiate({content:{type:"peers",fromPeerId:t.peerId,roomId:g}})),I.dispatch(AI({roomId:g,connectingToPeers:!1}))}}else if(iI.match(e));else if($e.match(e)){const{signalingServer:i,keyPair:o,rooms:n}=I.getState(),{url:C,id:a,onlyConnectWithKnownPeers:r}=e.payload;if(64===C.length&&null!=r&&localStorage.setItem(C+"-onlyConnectWithKnownPeers",String(r)),64===C.length&&A.isUUID(a)){await(g=C,t=a,ug("setDBUniqueRoom",g,t));const e=await Sg(a),r=e.length;for(let A=0;A<r;A++)I.dispatch(nI({roomId:e[A].roomId,merkleRootHex:e[A].merkleRoot,sha512Hex:e[A].hash,fromPeerId:e[A].fromPeerId,filename:e[A].filename,messageType:e[A].messageType,chunkSize:e[A].savedSize,totalSize:e[A].totalSize,channelLabel:e[A].channelLabel,timestamp:e[A].timestamp}));const s=n.findIndex(A=>A.id===a);i.isConnected&&A.isUUID(o.peerId)&&s>-1&&A.isUUID(n[s].id)&&await I.dispatch(_t.endpoints.sendMessage.initiate({content:{type:"peers",fromPeerId:o.peerId,roomId:n[s].id}}))}}else if(nI.match(e)){const{roomId:A,merkleRootHex:g,sha512Hex:t,chunkSize:i,totalSize:o}=e.payload,{rooms:n,keyPair:C}=I.getOriginalState(),a=n.findIndex(e=>e.id===A);if(a>-1){const A=n[a].messages.findLastIndex(A=>A.merkleRootHex===g&&A.fromPeerId!==C.peerId&&A.savedSize+i===o);if(A>-1){const e=await pt(n[a].messages[A].channelLabel,n[a].messages[A].merkleRootHex),g=Og(t);await I.dispatch(qt.endpoints.disconnectFromChannelLabel.initiate({label:e,messageHash:g,alsoDeleteData:!1,alsoSendFinishedMessage:!0}))}}}else if(CI.match(e)){const{roomId:A,merkleRootHex:g,sha512Hex:t,alsoSendFinishedMessage:i}=e.payload,{rooms:o,keyPair:n}=I.getState(),C=o.findIndex(e=>e.id===A);if(C>-1){const A=o[C].messages.findLastIndex(A=>A.merkleRootHex===g&&A.fromPeerId!==n.peerId);if(A>-1){const e=await pt(o[C].messages[A].channelLabel,o[C].messages[A].merkleRootHex),g=Og(t);await I.dispatch(qt.endpoints.disconnectFromChannelLabel.initiate({label:e,messageHash:g,alsoDeleteData:!1,alsoSendFinishedMessage:i}))}}}else if(sI.match(e)){const{merkleRootHex:A,hashHex:I}=e.payload;if(!A&&!I)return;if(A&&A.length!==2*be)return;if(I&&I.length!==2*be)return;A?(await Gg(A),await Yg(A),await(A=>ug("deleteDBMessageData",A))(A)):I&&await Yg(void 0,void 0,I)}else if(BI.match(e)){const A=e.payload;await I.dispatch(qt.endpoints.disconnectFromRoom.initiate({roomId:A,deleteMessages:!0}))}var g,t}});const Ai=me();Ai.startListening({matcher:mA(Ne,Ue,Ge,Ye,Pe),effect:async(e,I)=>{if(Ne.match(e)){const{publicKey:A,secretKey:I}=e.payload;64===A.length&&128===I.length&&(localStorage.setItem("publicKey",e.payload.publicKey),localStorage.setItem("secretKey",e.payload.secretKey))}else if(Ue.match(e)){const{peerId:g,challenge:t,signature:i,challengeId:o,username:n,credential:C}=e.payload;if(A.isUUID(g)&&A.isUUID(o)&&A.isHexadecimal(t)&&A.isHexadecimal(i)&&64===t.length&&128===i.length){localStorage.setItem("peerId",g),localStorage.setItem("challenge",t),localStorage.setItem("signature",i),localStorage.setItem("challengeId",o);const{keyPair:a,rooms:r,commonState:s}=I.getState(),B=64===s.currentRoomUrl.length?r.findIndex(A=>A.url===s.currentRoomUrl):-1;B>-1?(e.payload.username&&e.payload.credential&&I.dispatch(oI({roomId:r[B].id,iceServers:[{urls:["turn:turn.p2party.com:3478?transport=udp","turn:turn.p2party.com:3478?transport=tcp","turns:turn.p2party.com:443?transport=tcp"],username:n,credential:C}]})),A.isUUID(r[B].id)&&I.dispatch(AI({roomId:r[B].id,connectingToPeers:!0}))):A.isUUID(a.peerId)&&64===s.currentRoomUrl.length&&await I.dispatch(_t.endpoints.sendMessage.initiate({content:{type:"room",fromPeerId:a.peerId,roomUrl:s.currentRoomUrl}}))}}else if(Ge.match(e)){const{peerId:g,challenge:t,signature:i}=e.payload;A.isUUID(g)&&A.isHexadecimal(t)&&A.isHexadecimal(i)&&64===t.length&&128===i.length&&(localStorage.setItem("peerId",g),localStorage.setItem("challenge",t),localStorage.setItem("signature",i),await I.dispatch(_t.endpoints.sendMessage.initiate({content:{type:"challenge",fromPeerId:g,challenge:t,signature:i}})))}else if(Ye.match(e)){const{challengeId:g}=e.payload;if(A.isUUID(g)){localStorage.setItem("challengeId",g);const{keyPair:t,rooms:i,commonState:o}=I.getState(),n=64===o.currentRoomUrl.length?i.findIndex(A=>A.url===o.currentRoomUrl):-1;n>-1?e.payload.username&&e.payload.credential&&(I.dispatch(oI({roomId:i[n].id,iceServers:[{urls:["turn:turn.p2party.com:3478?transport=udp","turn:turn.p2party.com:3478?transport=tcp","turns:turn.p2party.com:443?transport=tcp"],username:e.payload.username,credential:e.payload.credential}]})),A.isUUID(i[n].id)?I.dispatch(AI({roomId:i[n].id,connectingToPeers:!0})):A.isUUID(t.peerId)&&64===o.currentRoomUrl.length&&await I.dispatch(_t.endpoints.sendMessage.initiate({content:{type:"room",fromPeerId:t.peerId,roomUrl:o.currentRoomUrl}}))):A.isUUID(t.peerId)&&64===o.currentRoomUrl.length&&await I.dispatch(_t.endpoints.sendMessage.initiate({content:{type:"room",fromPeerId:t.peerId,roomUrl:o.currentRoomUrl}}))}}else Pe.match(e)&&(localStorage.setItem("peerId",""),localStorage.setItem("challengeId",""),localStorage.setItem("publicKey",""),localStorage.setItem("secretKey",""),localStorage.setItem("challenge",""),localStorage.setItem("signature",""))}});const ei=function(A){const I=function(A){const{thunk:e=!0,immutableCheck:I=!0,serializableCheck:g=!0,actionCreatorCheck:t=!0}=A??{};let i=new lA;return e&&("boolean"==typeof e?i.push(BA):i.push(cA(e.extraArgument))),i},{reducer:g,middleware:t,devTools:a=!0,preloadedState:r,enhancers:s}=A||{};let B,c;if("function"==typeof g)B=g;else{if(!i(g))throw new Error(Se(1));B=n(g)}c="function"==typeof t?t(I):I();let Q=C;a&&(Q=QA({trace:!1,..."object"==typeof a&&a}));const E=function(...A){return I=>(g,t)=>{const i=I(g,t);let o=()=>{throw new Error(e(15))};const n={getState:i.getState,dispatch:(A,...e)=>o(A,...e)},a=A.map(A=>A(n));return o=C(...a)(i.dispatch),{...i,dispatch:o}}}(...c),l=yA(E);return o(B,r,Q(..."function"==typeof s?s(l):l()))}({reducer:{commonState:Fe,keyPair:ve,rooms:cI,signalingServer:wI,[_t.reducerPath]:_t.reducer,[qt.reducerPath]:qt.reducer},middleware:A=>A().concat([_t.middleware,qt.middleware,$t.middleware,Ai.middleware])}),Ii=ei.dispatch;var gi=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"];const ti=A=>A.normalize("NFKD"),ii=async A=>{try{return await(async A=>{const e=ti(A).split(" ");if(e.length%3!=0)throw new Error("Number of words in mnemonic must be multiple of three.");const I=e.map(A=>{const e=gi.indexOf(A);if(-1===e)throw new Error("Could not find word in wordlist.");return e.toString(2).padStart(11,"0")}).join(""),g=32*Math.floor(I.length/33),t=I.slice(0,g),i=I.slice(g),o=t.match(/(.{1,8})/g).map(A=>parseInt(A,2));if(o.length<16)throw new Error("Entropy length too small (less than 128 bits).");if(o.length>64)throw new Error("Entropy length too large (more than 512 bits).");const n=o.length/4,C=Uint8Array.from(o),a=await window.crypto.subtle.digest("SHA-512",C);if(new Uint8Array(a).reduce((A,e)=>A+e.toString(2).padStart(8,"0"),"").slice(0,n)!==i)throw new Error("Invalid checksum.");return!0})(A)}catch{return!1}},oi={store:ei,commonStateSelector:A=>A.commonState,signalingServerSelector:A=>A.signalingServer,roomSelector:A=>A.rooms,keyPairSelector:A=>A.keyPair,connect:async(e,I="wss://signaling.p2party.com/ws",g={iceServers:[{urls:["stun:stun.p2party.com:3478"]}],iceTransportPolicy:"all"})=>{if(64!==e.length)throw new Error("Invalid room url length");const{keyPair:t,signalingServer:i,rooms:o,commonState:n}=ei.getState(),C=o.findIndex(A=>A.url===e);-1===C&&Ii($e({url:e,id:"",rtcConfig:g})),n.currentRoomUrl!==e&&Ii(Me(e)),i.isConnected&&A.isUUID(t.peerId)?-1===C?await Ii(_t.endpoints.sendMessage.initiate({content:{type:"room",fromPeerId:t.peerId,roomUrl:e}})):Ii(AI({roomId:o[C].id,connectingToPeers:!0})):await Ii(_t.endpoints.connectWebSocket.initiate(I))},connectToSignalingServer:async(A,e="wss://signaling.p2party.com/ws")=>{if(64!==A.length)throw new Error("Invalid room url length");const{signalingServer:I,rooms:g,commonState:t}=ei.getState();-1===g.findIndex(e=>e.url===A)&&Ii($e({url:A,id:""})),t.currentRoomUrl!==A&&Ii(Me(A)),I.serverUrl===e&&(I.isConnected||I.isEstablishingConnection)||await Ii(_t.endpoints.connectWebSocket.initiate(e))},disconnectFromSignalingServer:async()=>{await Ii(_t.endpoints.disconnectWebSocket.initiate())},disconnectFromRoom:async(A,e=!1)=>{await Ii(qt.endpoints.disconnectFromRoom.initiate({roomId:A,deleteMessages:e}))},disconnectFromAllRooms:async(A=!1,e=[])=>{await Ii(qt.endpoints.disconnectFromAllRooms.initiate({deleteMessages:A,exceptionRoomIds:e}))},disconnectFromPeer:async A=>{await Ii(qt.endpoints.disconnectFromPeer.initiate({peerId:A}))},allowConnectionRelay:(A,e=!0)=>{const{rooms:I}=ei.getState(),g=I.findIndex(e=>e.id===A);g>-1&&Ii(II({roomId:I[g].id,canBeConnectionRelay:e}))},onlyAllowConnectionsFromAddressBook:async(A,e)=>{if(64===A.length){const{rooms:I}=ei.getState(),g=I.findIndex(e=>e.url===A);if(g>-1&&!I[g].onlyConnectWithKnownAddresses&&e&&I[g].peers.length>0){const A=I[g].peers.length;for(let e=0;e<A;e++){await yg(I[g].peers[e].peerId,I[g].peers[e].peerPublicKey)||await Ii(qt.endpoints.disconnectFromPeer.initiate({peerId:I[g].peers[e].peerId,alsoDeleteData:!1}))}}Ii($e({url:g>-1?I[g].url:A,id:g>-1?I[g].id:"",onlyConnectWithKnownPeers:e}))}},addPeerToAddressBook:(A,e,I)=>ug("setDBAddressBookEntry",A,e,I),getPeerAddressBookEntry:yg,getAllPeersInAddressBook:()=>ug("getAllDBAddressBookEntries"),getAllPeersInBlacklist:()=>ug("getAllDBBlacklisted"),deletePeerFromAddressBook:async(e,I,g)=>{const t=await((A,e,I)=>ug("deleteDBAddressBookEntry",A,e,I))(e,I,g);A.isUUID(t)&&await Ii(qt.endpoints.disconnectFromPeer.initiate({peerId:t,alsoDeleteData:!1}))},blacklistPeer:async(A,e)=>{await((A,e)=>ug("setDBPeerInBlacklist",A,e))(A,e),await Ii(qt.endpoints.disconnectFromPeer.initiate({peerId:A,alsoDeleteData:!0}))},getPeerIsBlacklisted:Dg,removePeerFromBlacklist:(A,e)=>ug("deleteDBPeerFromBlacklist",A,e),getAllExistingRooms:pg,openChannel:async(A,e,I)=>{await Ii(qt.endpoints.openChannel.initiate({roomId:A,channel:e,withPeers:I}))},sendMessage:async(A,e,I,g=.9,t=3,i=lt,o=1)=>{await Ii(qt.endpoints.sendMessage.initiate({data:A,label:e,roomId:I,minChunks:t,chunkSize:i,percentageFilledChunk:g,metadataSchemaVersion:o}))},readMessage:async(A,e)=>{if(!A&&!e)return{message:"No message",percentage:0,size:0,filename:"",mimeType:"text/plain",extension:"txt",category:bg.Text};try{const{keyPair:I,rooms:g}=ei.getState(),t=g.length;let i=-1,o=-1;for(let n=0;n<t;n++)if(o=g[n].messages.findLastIndex(g=>g.merkleRootHex===A||I.peerId===g.fromPeerId&&g.sha512Hex===e),o>-1){i=n;break}if(i>-1&&o>-1){const A=g[i].messages[o].messageType,e=Jg(A),t=Lg(A),n=Rg(A),C=g[i].messages[o].fromPeerId===I.peerId?100:Math.floor(g[i].messages[o].savedSize/g[i].messages[o].totalSize*100);if(100===C&&g[i].messages[o].fromPeerId!==I.peerId){const A=await pt(g[i].messages[o].channelLabel,g[i].messages[o].merkleRootHex);await ei.dispatch(qt.endpoints.disconnectFromChannelLabel.initiate({label:A,messageHash:Og(g[i].messages[o].sha512Hex),alsoDeleteData:!1,alsoSendFinishedMessage:!0}))}const a=100===C?await Kg(g[i].messages[o].merkleRootHex,g[i].messages[o].sha512Hex):[],r=a.length>0?a.sort((A,e)=>A.chunkIndex-e.chunkIndex).map(A=>A.data):[(new Uint8Array).buffer];try{const I=new Blob(r,{type:e});return A===vg.Text?{message:r.length>0?await I.text():"Incoming message...",percentage:C,size:g[i].messages[o].totalSize,filename:"",mimeType:e,extension:t,category:n}:{message:I,percentage:C,size:g[i].messages[o].totalSize,filename:g[i].messages[o].filename,mimeType:e,extension:t,category:n}}catch{return{message:"Invalid message",percentage:0,size:g[i].messages[o].totalSize,filename:g[i].messages[o].filename,mimeType:e,extension:t,category:n}}}else{const e=await mg(A);if(!e)return{message:"Irretrievable message",percentage:0,size:0,filename:"",mimeType:"text/plain",extension:"",category:bg.Text};{const A=e.messageType,g=Jg(A),t=Lg(A),i=Rg(A),o=Math.floor(e.savedSize/e.totalSize*100);if(100===o&&e.fromPeerId!==I.peerId){const A=await pt(e.channelLabel,e.merkleRoot);await ei.dispatch(qt.endpoints.disconnectFromChannelLabel.initiate({label:A,messageHash:Og(e.hash),alsoDeleteData:!1,alsoSendFinishedMessage:!0}))}const n=100===o?await Kg(e.merkleRoot):[],C=n.length>0?n.sort((A,e)=>A.chunkIndex-e.chunkIndex).map(A=>A.data):[(new Uint8Array).buffer];try{const I=new Blob(C,{type:g});return A===vg.Text?{message:await I.text(),percentage:o,size:e.totalSize,filename:"",mimeType:g,extension:t,category:i}:{message:I,percentage:o,size:e.totalSize,filename:e.filename,mimeType:g,extension:t,category:i}}catch{return{message:"Invalid message",percentage:0,size:e.totalSize,filename:e.filename,mimeType:g,extension:t,category:i}}}}}catch(A){return console.error(A),{message:"Irretrievable message",percentage:0,size:0,filename:"",mimeType:"text/plain",extension:"",category:bg.Text}}},cancelMessage:async(A,e,I)=>{if(!e&&!I)throw new Error("Need to provide either merkle root or hash");if(e&&"string"==typeof e&&e.length!==2*be)throw new Error("Invalid Merkle root length");if(e&&"string"!=typeof e&&e.length!==be)throw new Error("Invalid Merkle root length");if(I&&"string"==typeof I&&I.length!==2*be)throw new Error("Invalid hash length");if(I&&"string"!=typeof I&&I.length!==be)throw new Error("Invalid hash length");const g=new CustomEvent(dt);window.dispatchEvent(g);const t=e&&"string"==typeof e?e:e&&"string"!=typeof e?qg(e):"";let i=-1,o=-1;const{rooms:n}=ei.getState(),C=n.length;for(let A=0;A<C;A++)if(o=e?n[A].messages.findIndex(A=>A.merkleRootHex===t):-1,o>-1){i=A;break}if(i>-1&&o>-1&&n[i].messages[o].merkleRootHex.length===2*be){const e=await pt(A,n[i].messages[o].merkleRootHex);await ei.dispatch(qt.endpoints.disconnectFromChannelLabel.initiate({label:e,alsoDeleteData:!0})),ei.dispatch(sI({merkleRootHex:n[i].messages[o].merkleRootHex}))}},deleteMessage:async(A,e)=>{if(!A&&!e)throw new Error("Need to provide either merkle root or hash");if(A&&"string"==typeof A&&A.length!==2*be)throw new Error("Invalid Merkle root length");if(A&&"string"!=typeof A&&A.length!==be)throw new Error("Invalid Merkle root length");if(e&&"string"==typeof e&&e.length!==2*be)throw new Error("Invalid hash length");if(e&&"string"!=typeof e&&e.length!==be)throw new Error("Invalid hash length");const I=new CustomEvent(dt);window.dispatchEvent(I);const g=A&&"string"==typeof A?A:A&&"string"!=typeof A?qg(A):"",t=e&&"string"==typeof e?e:e&&"string"!=typeof e?qg(e):"";let i=-1,o=-1;const{rooms:n}=ei.getState(),C=n.length;for(let I=0;I<C;I++)if(o=A?n[I].messages.findIndex(A=>A.merkleRootHex===g):e?n[I].messages.findIndex(A=>A.sha512Hex===t):-1,o>-1){i=I;break}if(i>-1&&o>-1&&n[i].messages[o].merkleRootHex.length===2*be){const A=await pt(n[i].messages[o].channelLabel,n[i].messages[o].merkleRootHex);await ei.dispatch(qt.endpoints.disconnectFromChannelLabel.initiate({label:A,alsoDeleteData:!0})),ei.dispatch(sI({merkleRootHex:n[i].messages[o].merkleRootHex}))}},purgeIdentity:async()=>{Ii(Pe());const{rooms:A}=ei.getState(),e=A.length;for(let I=0;I<e;I++)await Ii(qt.endpoints.disconnectFromRoom.initiate({roomId:A[I].id}));await Ii(_t.endpoints.disconnectWebSocket.initiate())},purgeRoom:async A=>{const{rooms:e}=ei.getState(),I=e.findIndex(e=>e.url===A);I>-1&&Ii(BI(e[I].id)),await Ii(_t.endpoints.disconnectWebSocket.initiate())},purge:async()=>{Ii(Pe()),await Ii(_t.endpoints.disconnectWebSocket.initiate());const A=await pg(),e=A.length;for(let I=0;I<e;I++)Ii(BI(A[I].roomId))},generateRandomRoomUrl:async()=>{const A=await Bt(256),e=(new TextEncoder).encode(A),I=await window.crypto.subtle.digest("SHA-512",e),g=await window.crypto.subtle.digest("SHA-256",I),t=new Uint8Array(g);return qg(t)},encrypt:ht,decrypt:async(A,e,I,g,t)=>{const i=A.length,o=g.length,n=t?.wasmMemory??et(i,o),C=t??await at({wasmMemory:n}),a=We(i),r=C._malloc(i*Uint8Array.BYTES_PER_ELEMENT),s=new Uint8Array(n.buffer,r,i*Uint8Array.BYTES_PER_ELEMENT);s.set(A);const B=C._malloc(Re),c=new Uint8Array(n.buffer,B,Re);c.set(e);const Q=C._malloc(xe),E=new Uint8Array(n.buffer,Q,xe);E.set(I);const l=C._malloc(o*Uint8Array.BYTES_PER_ELEMENT),w=new Uint8Array(n.buffer,l,o*Uint8Array.BYTES_PER_ELEMENT);w.set(g);const d=C._malloc(a*Uint8Array.BYTES_PER_ELEMENT),f=new Uint8Array(n.buffer,d,a*Uint8Array.BYTES_PER_ELEMENT),h=C._decrypt_chachapoly_asymmetric(i,s.byteOffset,c.byteOffset,E.byteOffset,o,w.byteOffset,f.byteOffset);switch(C._free(r),C._free(B),C._free(Q),C._free(l),h){case 0:{const A=Uint8Array.from([...f]);return C._free(d),A}case-1:throw C._free(d),new Error("Could not allocate memory for the ed25519 converted to x25519 public key array.");case-2:throw C._free(d),new Error("Could not allocate memory for the ed25519 converted to x25519 secret key array.");case-3:throw C._free(d),new Error("Could not convert receiver ed25519 secret key to x25519.");case-4:throw C._free(d),new Error("Could not generate x25519 public key from x25519 secret key.");case-5:throw C._free(d),new Error("Could not allocate memory for the ed25519 converted to x25519 receiver public key.");case-6:throw C._free(d),new Error("Could not convert receiver ed25519 public key to x25519.");case-7:throw C._free(d),new Error("Could not allocate memory for the shared secret.");case-8:throw C._free(d),new Error("Could not calculate the shared secret.");case-9:throw C._free(d),new Error("Could not decrypt");default:throw C._free(d),new Error("Unsuccessful decryption attempt")}},sign:Dt,verify:async(A,e,I,g)=>{const t=A.length,i=g?g.wasmMemory:$g(t),o=g??await at({wasmMemory:i}),n=o._malloc(t*Uint8Array.BYTES_PER_ELEMENT),C=new Uint8Array(i.buffer,n,t*Uint8Array.BYTES_PER_ELEMENT);C.set(A);const a=o._malloc(Le),r=new Uint8Array(i.buffer,a,Le);r.set(e);const s=o._malloc(Re),B=new Uint8Array(i.buffer,s,Re);B.set(I);const c=o._verify(t,C.byteOffset,B.byteOffset,r.byteOffset);return o._free(n),o._free(a),o._free(s),0===c},newKeyPair:yt,generateMnemonic:async(A=128)=>{if(!gi)throw new Error("English wordlist could not be loaded.");if(A%32!=0)throw new TypeError("Mnemonic strength needs to be multiple of 32.");if(![128,160,192,224,256,288,320,352,384,416,448,480,512].includes(A))throw new Error("Wrong mnemonic strength");const e=window.crypto.getRandomValues(new Uint8Array(A/8)),I=e.reduce((A,e)=>A+e.toString(2).padStart(8,"0"),""),g=A/32,t=Uint8Array.from(e),i=await window.crypto.subtle.digest("SHA-512",t);return(I+new Uint8Array(i).reduce((A,e)=>A+e.toString(2).padStart(8,"0"),"").slice(0,g)).match(/(.{1,11})/g).map(A=>{const e=parseInt(A,2);return gi[e]}).join(" ")},keyPairFromMnemonic:async(A,e)=>{if(!await ii(A))throw new Error("Invalid mnemonic.");const I=new Uint8Array(Xe),g=new TextEncoder;g.encodeInto("password12345678",I);const t=new Uint8Array(Xe);if(e){const A=g.encode(e),I=await window.crypto.subtle.digest("SHA-512",A);t.set(new Uint8Array(I).slice(be-Xe,be))}else t.set(I);const i=await(async(A,e,I)=>{const g=ti(A),t=(new TextEncoder).encode(g).buffer,i=new Int8Array(t),o=i.length;e=e??window.crypto.getRandomValues(new Uint8Array(Xe));const n=I?.wasmMemory??it(o),C=(I=I??await at({wasmMemory:n}))._malloc(Je),a=new Uint8Array(n.buffer,C,Je),r=window.crypto.getRandomValues(new Uint8Array(Je));a.set(r);const s=I._malloc(o*Uint8Array.BYTES_PER_ELEMENT),B=new Int8Array(n.buffer,s,o*Uint8Array.BYTES_PER_ELEMENT);B.set(i);const c=I._malloc(Xe),Q=new Uint8Array(n.buffer,c,Xe);Q.set(e);const E=I._argon2(o,a.byteOffset,B.byteOffset,Q.byteOffset),l=Uint8Array.from(a);if(I._free(C),I._free(s),I._free(c),0===E)return l;throw new Error("Could not generate argon2id for mnemonic.")})(A,t);return await(async A=>{const e=Zg(),I=await at({wasmMemory:e}),g=I._malloc(Re),t=new Uint8Array(e.buffer,g,Re),i=I._malloc(xe),o=new Uint8Array(e.buffer,i,xe),n=I._malloc(Je),C=new Uint8Array(e.buffer,n,Je);C.set(A);const a=I._keypair_from_seed(t.byteOffset,o.byteOffset,C.byteOffset);if(I._free(n),0===a){const A={publicKey:Uint8Array.from(t),secretKey:Uint8Array.from(o)};return I._free(g),I._free(i),A}throw I._free(g),I._free(i),new Error("An unexpected error occured.")})(i)},MIN_CHUNKS:3,MIN_CHUNK_SIZE:Et+1,MAX_CHUNK_SIZE:lt,MIN_PERCENTAGE_FILLED_CHUNK:.1,MAX_PERCENTAGE_FILLED_CHUNK:1,ROOM_URL_LENGTH:64,MessageType:vg,MessageCategory:bg};"undefined"!=typeof window&&(window.p2party=oi),exports.default=oi,exports.p2party=oi;
1
+ "use strict";var A=require("class-validator");function e(A){return`Minified Redux error #${A}; visit https://redux.js.org/Errors?code=${A} for the full message or use the non-minified dev environment for full errors. `}var I=(()=>"function"==typeof Symbol&&Symbol.observable||"@@observable")(),g=()=>Math.random().toString(36).substring(7).split("").join("."),Q={INIT:`@@redux/INIT${g()}`,REPLACE:`@@redux/REPLACE${g()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${g()}`};function t(A){if("object"!=typeof A||null===A)return!1;let e=A;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(A)===e||null===Object.getPrototypeOf(A)}function B(A,g,i){if("function"!=typeof A)throw new Error(e(2));if("function"==typeof g&&"function"==typeof i||"function"==typeof i&&"function"==typeof arguments[3])throw new Error(e(0));if("function"==typeof g&&void 0===i&&(i=g,g=void 0),void 0!==i){if("function"!=typeof i)throw new Error(e(1));return i(B)(A,g)}let E=A,a=g,C=new Map,n=C,o=0,r=!1;function s(){n===C&&(n=new Map,C.forEach((A,e)=>{n.set(e,A)}))}function c(){if(r)throw new Error(e(3));return a}function h(A){if("function"!=typeof A)throw new Error(e(4));if(r)throw new Error(e(5));let I=!0;s();const g=o++;return n.set(g,A),function(){if(I){if(r)throw new Error(e(6));I=!1,s(),n.delete(g),C=null}}}function l(A){if(!t(A))throw new Error(e(7));if(void 0===A.type)throw new Error(e(8));if("string"!=typeof A.type)throw new Error(e(17));if(r)throw new Error(e(9));try{r=!0,a=E(a,A)}finally{r=!1}return(C=n).forEach(A=>{A()}),A}l({type:Q.INIT});return{dispatch:l,subscribe:h,getState:c,replaceReducer:function(A){if("function"!=typeof A)throw new Error(e(10));E=A,l({type:Q.REPLACE})},[I]:function(){const A=h;return{subscribe(I){if("object"!=typeof I||null===I)throw new Error(e(11));function g(){const A=I;A.next&&A.next(c())}g();return{unsubscribe:A(g)}},[I](){return this}}}}}function i(A){const I=Object.keys(A),g={};for(let e=0;e<I.length;e++){const Q=I[e];"function"==typeof A[Q]&&(g[Q]=A[Q])}const t=Object.keys(g);let B;try{!function(A){Object.keys(A).forEach(I=>{const g=A[I];if(void 0===g(void 0,{type:Q.INIT}))throw new Error(e(12));if(void 0===g(void 0,{type:Q.PROBE_UNKNOWN_ACTION()}))throw new Error(e(13))})}(g)}catch(A){B=A}return function(A={},I){if(B)throw B;let Q=!1;const i={};for(let B=0;B<t.length;B++){const E=t[B],a=g[E],C=A[E],n=a(C,I);if(void 0===n)throw I&&I.type,new Error(e(14));i[E]=n,Q=Q||n!==C}return Q=Q||t.length!==Object.keys(A).length,Q?i:A}}function E(...A){return 0===A.length?A=>A:1===A.length?A[0]:A.reduce((A,e)=>(...I)=>A(e(...I)))}function a(A){return t(A)&&"type"in A&&"string"==typeof A.type}var C=Symbol.for("immer-nothing"),n=Symbol.for("immer-draftable"),o=Symbol.for("immer-state");function r(A,...e){throw new Error(`[Immer] minified error nr: ${A}. Full error at: https://bit.ly/3cXEKWf`)}var s=Object.getPrototypeOf;function c(A){return!!A&&!!A[o]}function h(A){return!!A&&(d(A)||Array.isArray(A)||!!A[n]||!!A.constructor?.[n]||k(A)||p(A))}var l=Object.prototype.constructor.toString();function d(A){if(!A||"object"!=typeof A)return!1;const e=s(A);if(null===e)return!0;const I=Object.hasOwnProperty.call(e,"constructor")&&e.constructor;return I===Object||"function"==typeof I&&Function.toString.call(I)===l}function f(A,e){0===w(A)?Reflect.ownKeys(A).forEach(I=>{e(I,A[I],A)}):A.forEach((I,g)=>e(g,I,A))}function w(A){const e=A[o];return e?e.type_:Array.isArray(A)?1:k(A)?2:p(A)?3:0}function u(A,e){return 2===w(A)?A.has(e):Object.prototype.hasOwnProperty.call(A,e)}function y(A,e){return 2===w(A)?A.get(e):A[e]}function D(A,e,I){const g=w(A);2===g?A.set(e,I):3===g?A.add(I):A[e]=I}function k(A){return A instanceof Map}function p(A){return A instanceof Set}function m(A){return A.copy_||A.base_}function F(A,e){if(k(A))return new Map(A);if(p(A))return new Set(A);if(Array.isArray(A))return Array.prototype.slice.call(A);const I=d(A);if(!0===e||"class_only"===e&&!I){const e=Object.getOwnPropertyDescriptors(A);delete e[o];let I=Reflect.ownKeys(e);for(let g=0;g<I.length;g++){const Q=I[g],t=e[Q];!1===t.writable&&(t.writable=!0,t.configurable=!0),(t.get||t.set)&&(e[Q]={configurable:!0,writable:!0,enumerable:t.enumerable,value:A[Q]})}return Object.create(s(A),e)}{const e=s(A);if(null!==e&&I)return{...A};const g=Object.create(e);return Object.assign(g,A)}}function S(A,e=!1){return H(A)||c(A)||!h(A)||(w(A)>1&&Object.defineProperties(A,{set:{value:R},add:{value:R},clear:{value:R},delete:{value:R}}),Object.freeze(A),e&&Object.values(A).forEach(A=>S(A,!0))),A}function R(){r(2)}function H(A){return Object.isFrozen(A)}var G,U={};function M(A){const e=U[A];return e||r(0),e}function J(){return G}function b(A,e){e&&(M("Patches"),A.patches_=[],A.inversePatches_=[],A.patchListener_=e)}function v(A){P(A),A.drafts_.forEach(N),A.drafts_=null}function P(A){A===G&&(G=A.parent_)}function x(A){return G={drafts_:[],parent_:G,immer_:A,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function N(A){const e=A[o];0===e.type_||1===e.type_?e.revoke_():e.revoked_=!0}function q(A,e){e.unfinalizedDrafts_=e.drafts_.length;const I=e.drafts_[0];return void 0!==A&&A!==I?(I[o].modified_&&(v(e),r(4)),h(A)&&(A=K(e,A),e.parent_||L(e,A)),e.patches_&&M("Patches").generateReplacementPatches_(I[o].base_,A,e.patches_,e.inversePatches_)):A=K(e,I,[]),v(e),e.patches_&&e.patchListener_(e.patches_,e.inversePatches_),A!==C?A:void 0}function K(A,e,I){if(H(e))return e;const g=e[o];if(!g)return f(e,(Q,t)=>Y(A,g,e,Q,t,I)),e;if(g.scope_!==A)return e;if(!g.modified_)return L(A,g.base_,!0),g.base_;if(!g.finalized_){g.finalized_=!0,g.scope_.unfinalizedDrafts_--;const e=g.copy_;let Q=e,t=!1;3===g.type_&&(Q=new Set(e),e.clear(),t=!0),f(Q,(Q,B)=>Y(A,g,e,Q,B,I,t)),L(A,e,!1),I&&A.patches_&&M("Patches").generatePatches_(g,I,A.patches_,A.inversePatches_)}return g.copy_}function Y(A,e,I,g,Q,t,B){if(c(Q)){const B=K(A,Q,t&&e&&3!==e.type_&&!u(e.assigned_,g)?t.concat(g):void 0);if(D(I,g,B),!c(B))return;A.canAutoFreeze_=!1}else B&&I.add(Q);if(h(Q)&&!H(Q)){if(!A.immer_.autoFreeze_&&A.unfinalizedDrafts_<1)return;K(A,Q),e&&e.scope_.parent_||"symbol"==typeof g||!(k(I)?I.has(g):Object.prototype.propertyIsEnumerable.call(I,g))||L(A,Q)}}function L(A,e,I=!1){!A.parent_&&A.immer_.autoFreeze_&&A.canAutoFreeze_&&S(e,I)}var T={get(A,e){if(e===o)return A;const I=m(A);if(!u(I,e))return function(A,e,I){const g=X(e,I);return g?"value"in g?g.value:g.get?.call(A.draft_):void 0}(A,I,e);const g=I[e];return A.finalized_||!h(g)?g:g===O(A.base_,e)?(W(A),A.copy_[e]=z(g,A)):g},has:(A,e)=>e in m(A),ownKeys:A=>Reflect.ownKeys(m(A)),set(A,e,I){const g=X(m(A),e);if(g?.set)return g.set.call(A.draft_,I),!0;if(!A.modified_){const g=O(m(A),e),B=g?.[o];if(B&&B.base_===I)return A.copy_[e]=I,A.assigned_[e]=!1,!0;if(((Q=I)===(t=g)?0!==Q||1/Q==1/t:Q!=Q&&t!=t)&&(void 0!==I||u(A.base_,e)))return!0;W(A),j(A)}var Q,t;return A.copy_[e]===I&&(void 0!==I||e in A.copy_)||Number.isNaN(I)&&Number.isNaN(A.copy_[e])||(A.copy_[e]=I,A.assigned_[e]=!0),!0},deleteProperty:(A,e)=>(void 0!==O(A.base_,e)||e in A.base_?(A.assigned_[e]=!1,W(A),j(A)):delete A.assigned_[e],A.copy_&&delete A.copy_[e],!0),getOwnPropertyDescriptor(A,e){const I=m(A),g=Reflect.getOwnPropertyDescriptor(I,e);return g?{writable:!0,configurable:1!==A.type_||"length"!==e,enumerable:g.enumerable,value:I[e]}:g},defineProperty(){r(11)},getPrototypeOf:A=>s(A.base_),setPrototypeOf(){r(12)}},V={};function O(A,e){const I=A[o];return(I?m(I):A)[e]}function X(A,e){if(!(e in A))return;let I=s(A);for(;I;){const A=Object.getOwnPropertyDescriptor(I,e);if(A)return A;I=s(I)}}function j(A){A.modified_||(A.modified_=!0,A.parent_&&j(A.parent_))}function W(A){A.copy_||(A.copy_=F(A.base_,A.scope_.immer_.useStrictShallowCopy_))}f(T,(A,e)=>{V[A]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}}),V.deleteProperty=function(A,e){return V.set.call(this,A,e,void 0)},V.set=function(A,e,I){return T.set.call(this,A[0],e,I,A[0])};function z(A,e){const I=k(A)?M("MapSet").proxyMap_(A,e):p(A)?M("MapSet").proxySet_(A,e):function(A,e){const I=Array.isArray(A),g={type_:I?1:0,scope_:e?e.scope_:J(),modified_:!1,finalized_:!1,assigned_:{},parent_:e,base_:A,draft_:null,copy_:null,revoke_:null,isManual_:!1};let Q=g,t=T;I&&(Q=[g],t=V);const{revoke:B,proxy:i}=Proxy.revocable(Q,t);return g.draft_=i,g.revoke_=B,i}(A,e);return(e?e.scope_:J()).drafts_.push(I),I}function Z(A){if(!h(A)||H(A))return A;const e=A[o];let I;if(e){if(!e.modified_)return e.base_;e.finalized_=!0,I=F(A,e.scope_.immer_.useStrictShallowCopy_)}else I=F(A,!0);return f(I,(A,e)=>{D(I,A,Z(e))}),e&&(e.finalized_=!1),I}function _(){const A="replace",e="add",I="remove";function g(A){if(!h(A))return A;if(Array.isArray(A))return A.map(g);if(k(A))return new Map(Array.from(A.entries()).map(([A,e])=>[A,g(e)]));if(p(A))return new Set(Array.from(A).map(g));const e=Object.create(s(A));for(const I in A)e[I]=g(A[I]);return u(A,n)&&(e[n]=A[n]),e}function Q(A){return c(A)?g(A):A}var t,B;B={applyPatches_:function(Q,t){return t.forEach(t=>{const{path:B,op:i}=t;let E=Q;for(let A=0;A<B.length-1;A++){const e=w(E);let I=B[A];"string"!=typeof I&&"number"!=typeof I&&(I=""+I),0!==e&&1!==e||"__proto__"!==I&&"constructor"!==I||r(19),"function"==typeof E&&"prototype"===I&&r(19),E=y(E,I),"object"!=typeof E&&r(18,B.join("/"))}const a=w(E),C=g(t.value),n=B[B.length-1];switch(i){case A:switch(a){case 2:return E.set(n,C);case 3:r(16);default:return E[n]=C}case e:switch(a){case 1:return"-"===n?E.push(C):E.splice(n,0,C);case 2:return E.set(n,C);case 3:return E.add(C);default:return E[n]=C}case I:switch(a){case 1:return E.splice(n,1);case 2:return E.delete(n);case 3:return E.delete(t.value);default:return delete E[n]}default:r(17)}}),Q},generatePatches_:function(g,t,B,i){switch(g.type_){case 0:case 2:return function(g,t,B,i){const{base_:E,copy_:a}=g;f(g.assigned_,(g,C)=>{const n=y(E,g),o=y(a,g),r=C?u(E,g)?A:e:I;if(n===o&&r===A)return;const s=t.concat(g);B.push(r===I?{op:r,path:s}:{op:r,path:s,value:o}),i.push(r===e?{op:I,path:s}:r===I?{op:e,path:s,value:Q(n)}:{op:A,path:s,value:Q(n)})})}(g,t,B,i);case 1:return function(g,t,B,i){let{base_:E,assigned_:a}=g,C=g.copy_;C.length<E.length&&([E,C]=[C,E],[B,i]=[i,B]);for(let e=0;e<E.length;e++)if(a[e]&&C[e]!==E[e]){const I=t.concat([e]);B.push({op:A,path:I,value:Q(C[e])}),i.push({op:A,path:I,value:Q(E[e])})}for(let A=E.length;A<C.length;A++){const I=t.concat([A]);B.push({op:e,path:I,value:Q(C[A])})}for(let A=C.length-1;E.length<=A;--A){const e=t.concat([A]);i.push({op:I,path:e})}}(g,t,B,i);case 3:return function(A,g,Q,t){let{base_:B,copy_:i}=A,E=0;B.forEach(A=>{if(!i.has(A)){const B=g.concat([E]);Q.push({op:I,path:B,value:A}),t.unshift({op:e,path:B,value:A})}E++}),E=0,i.forEach(A=>{if(!B.has(A)){const B=g.concat([E]);Q.push({op:e,path:B,value:A}),t.unshift({op:I,path:B,value:A})}E++})}(g,t,B,i)}},generateReplacementPatches_:function(e,I,g,Q){g.push({op:A,path:[],value:I===C?void 0:I}),Q.push({op:A,path:[],value:e})}},U[t="Patches"]||(U[t]=B)}var $=new class{constructor(A){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(A,e,I)=>{if("function"==typeof A&&"function"!=typeof e){const I=e;e=A;const g=this;return function(A=I,...Q){return g.produce(A,A=>e.call(this,A,...Q))}}let g;if("function"!=typeof e&&r(6),void 0!==I&&"function"!=typeof I&&r(7),h(A)){const Q=x(this),t=z(A,void 0);let B=!0;try{g=e(t),B=!1}finally{B?v(Q):P(Q)}return b(Q,I),q(g,Q)}if(!A||"object"!=typeof A){if(g=e(A),void 0===g&&(g=A),g===C&&(g=void 0),this.autoFreeze_&&S(g,!0),I){const e=[],Q=[];M("Patches").generateReplacementPatches_(A,g,e,Q),I(e,Q)}return g}r(1)},this.produceWithPatches=(A,e)=>{if("function"==typeof A)return(e,...I)=>this.produceWithPatches(e,e=>A(e,...I));let I,g;return[this.produce(A,e,(A,e)=>{I=A,g=e}),I,g]},"boolean"==typeof A?.autoFreeze&&this.setAutoFreeze(A.autoFreeze),"boolean"==typeof A?.useStrictShallowCopy&&this.setUseStrictShallowCopy(A.useStrictShallowCopy)}createDraft(A){h(A)||r(8),c(A)&&(A=function(A){c(A)||r(10);return Z(A)}(A));const e=x(this),I=z(A,void 0);return I[o].isManual_=!0,P(e),I}finishDraft(A,e){const I=A&&A[o];I&&I.isManual_||r(9);const{scope_:g}=I;return b(g,e),q(void 0,g)}setAutoFreeze(A){this.autoFreeze_=A}setUseStrictShallowCopy(A){this.useStrictShallowCopy_=A}applyPatches(A,e){let I;for(I=e.length-1;I>=0;I--){const g=e[I];if(0===g.path.length&&"replace"===g.op){A=g.value;break}}I>-1&&(e=e.slice(I+1));const g=M("Patches").applyPatches_;return c(A)?g(A,e):this.produce(A,A=>g(A,e))}},AA=$.produce,eA=$.produceWithPatches.bind($),IA=$.applyPatches.bind($);var gA=A=>Array.isArray(A)?A:[A];function QA(A){const e=Array.isArray(A[0])?A[0]:A;return function(A,e="expected all items to be functions, instead received the following types: "){if(!A.every(A=>"function"==typeof A)){const I=A.map(A=>"function"==typeof A?`function ${A.name||"unnamed"}()`:typeof A).join(", ");throw new TypeError(`${e}[${I}]`)}}(e,"createSelector expects all input-selectors to be functions, but received the following types: "),e}var tA="undefined"!=typeof WeakRef?WeakRef:class{constructor(A){this.value=A}deref(){return this.value}};function BA(){return{s:0,v:void 0,o:null,p:null}}function iA(A,e={}){let I={s:0,v:void 0,o:null,p:null};const{resultEqualityCheck:g}=e;let Q,t=0;function B(){let e=I;const{length:B}=arguments;for(let A=0,I=B;A<I;A++){const I=arguments[A];if("function"==typeof I||"object"==typeof I&&null!==I){let A=e.o;null===A&&(e.o=A=new WeakMap);const g=A.get(I);void 0===g?(e=BA(),A.set(I,e)):e=g}else{let A=e.p;null===A&&(e.p=A=new Map);const g=A.get(I);void 0===g?(e=BA(),A.set(I,e)):e=g}}const i=e;let E;if(1===e.s)E=e.v;else if(E=A.apply(null,arguments),t++,g){const A=Q?.deref?.()??Q;null!=A&&g(A,E)&&(E=A,0!==t&&t--);Q="object"==typeof E&&null!==E||"function"==typeof E?new tA(E):E}return i.s=1,i.v=E,E}return B.clearCache=()=>{I={s:0,v:void 0,o:null,p:null},B.resetResultsCount()},B.resultsCount=()=>t,B.resetResultsCount=()=>{t=0},B}function EA(A,...e){const I="function"==typeof A?{memoize:A,memoizeOptions:e}:A,g=(...A)=>{let e,g=0,Q=0,t={},B=A.pop();"object"==typeof B&&(t=B,B=A.pop()),function(A,e="expected a function, instead received "+typeof A){if("function"!=typeof A)throw new TypeError(e)}(B,`createSelector expects an output function after the inputs, but received: [${typeof B}]`);const i={...I,...t},{memoize:E,memoizeOptions:a=[],argsMemoize:C=iA,argsMemoizeOptions:n=[]}=i,o=gA(a),r=gA(n),s=QA(A),c=E(function(){return g++,B.apply(null,arguments)},...o),h=C(function(){Q++;const A=function(A,e){const I=[],{length:g}=A;for(let Q=0;Q<g;Q++)I.push(A[Q].apply(null,e));return I}(s,arguments);return e=c.apply(null,A),e},...r);return Object.assign(h,{resultFunc:B,memoizedResultFunc:c,dependencies:s,dependencyRecomputations:()=>Q,resetDependencyRecomputations:()=>{Q=0},lastResult:()=>e,recomputations:()=>g,resetRecomputations:()=>{g=0},memoize:E,argsMemoize:C})};return Object.assign(g,{withTypes:()=>g}),g}var aA=EA(iA),CA=Object.assign((A,e=aA)=>{!function(A,e="expected an object, instead received "+typeof A){if("object"!=typeof A)throw new TypeError(e)}(A,"createStructuredSelector expects first argument to be an object where each property is a selector, instead received a "+typeof A);const I=Object.keys(A);return e(I.map(e=>A[e]),(...A)=>A.reduce((A,e,g)=>(A[I[g]]=e,A),{}))},{withTypes:()=>CA});function nA(A){return({dispatch:e,getState:I})=>g=>Q=>"function"==typeof Q?Q(e,I,A):g(Q)}var oA=nA(),rA=nA,sA="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"==typeof arguments[0]?E:E.apply(null,arguments)};function cA(A,e){function I(...I){if(e){let g=e(...I);if(!g)throw new Error(me(0));return{type:A,payload:g.payload,..."meta"in g&&{meta:g.meta},..."error"in g&&{error:g.error}}}return{type:A,payload:I[0]}}return I.toString=()=>`${A}`,I.type=A,I.match=e=>a(e)&&e.type===A,I}var hA=class A extends Array{constructor(...e){super(...e),Object.setPrototypeOf(this,A.prototype)}static get[Symbol.species](){return A}concat(...A){return super.concat.apply(this,A)}prepend(...e){return 1===e.length&&Array.isArray(e[0])?new A(...e[0].concat(this)):new A(...e.concat(this))}};function lA(A){return h(A)?AA(A,()=>{}):A}function dA(A,e,I){return A.has(e)?A.get(e):A.set(e,I(e)).get(e)}var fA="RTK_autoBatch",wA=()=>A=>({payload:A,meta:{[fA]:!0}}),uA=A=>e=>{setTimeout(e,A)},yA=A=>function(e){const{autoBatch:I=!0}=e??{};let g=new hA(A);return I&&g.push(((A={type:"raf"})=>e=>(...I)=>{const g=e(...I);let Q=!0,t=!1,B=!1;const i=new Set,E="tick"===A.type?queueMicrotask:"raf"===A.type?"undefined"!=typeof window&&window.requestAnimationFrame?window.requestAnimationFrame:uA(10):"callback"===A.type?A.queueNotification:uA(A.timeout),a=()=>{B=!1,t&&(t=!1,i.forEach(A=>A()))};return Object.assign({},g,{subscribe(A){const e=g.subscribe(()=>Q&&A());return i.add(A),()=>{e(),i.delete(A)}},dispatch(A){try{return Q=!A?.meta?.[fA],t=!Q,t&&(B||(B=!0,E(a))),g.dispatch(A)}finally{Q=!0}}})})("object"==typeof I?I:void 0)),g};function DA(A){const e={},I=[];let g;const Q={addCase(A,I){const g="string"==typeof A?A:A.type;if(!g)throw new Error(me(28));if(g in e)throw new Error(me(29));return e[g]=I,Q},addAsyncThunk:(A,g)=>(g.pending&&(e[A.pending.type]=g.pending),g.rejected&&(e[A.rejected.type]=g.rejected),g.fulfilled&&(e[A.fulfilled.type]=g.fulfilled),g.settled&&I.push({matcher:A.settled,reducer:g.settled}),Q),addMatcher:(A,e)=>(I.push({matcher:A,reducer:e}),Q),addDefaultCase:A=>(g=A,Q)};return A(Q),[e,I,g]}var kA=(A,e)=>{return(I=A)&&"function"==typeof I.match?A.match(e):A(e);var I};function pA(...A){return e=>A.some(A=>kA(A,e))}function mA(...A){return e=>A.every(A=>kA(A,e))}function FA(A,e){if(!A||!A.meta)return!1;const I="string"==typeof A.meta.requestId,g=e.indexOf(A.meta.requestStatus)>-1;return I&&g}function SA(A){return"function"==typeof A[0]&&"pending"in A[0]&&"fulfilled"in A[0]&&"rejected"in A[0]}function RA(...A){return 0===A.length?A=>FA(A,["pending"]):SA(A)?pA(...A.map(A=>A.pending)):RA()(A[0])}function HA(...A){return 0===A.length?A=>FA(A,["rejected"]):SA(A)?pA(...A.map(A=>A.rejected)):HA()(A[0])}function GA(...A){const e=A=>A&&A.meta&&A.meta.rejectedWithValue;return 0===A.length||SA(A)?mA(HA(...A),e):GA()(A[0])}function UA(...A){return 0===A.length?A=>FA(A,["fulfilled"]):SA(A)?pA(...A.map(A=>A.fulfilled)):UA()(A[0])}function MA(...A){return 0===A.length?A=>FA(A,["pending","fulfilled","rejected"]):SA(A)?pA(...A.flatMap(A=>[A.pending,A.rejected,A.fulfilled])):MA()(A[0])}var JA=(A=21)=>{let e="",I=A;for(;I--;)e+="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"[64*Math.random()|0];return e},bA=["name","message","stack","code"],vA=class{constructor(A,e){this.payload=A,this.meta=e}_type},PA=class{constructor(A,e){this.payload=A,this.meta=e}_type},xA=A=>{if("object"==typeof A&&null!==A){const e={};for(const I of bA)"string"==typeof A[I]&&(e[I]=A[I]);return e}return{message:String(A)}},NA="External signal was aborted",qA=(()=>{function A(A,e,I){const g=cA(A+"/fulfilled",(A,e,I,g)=>({payload:A,meta:{...g||{},arg:I,requestId:e,requestStatus:"fulfilled"}})),Q=cA(A+"/pending",(A,e,I)=>({payload:void 0,meta:{...I||{},arg:e,requestId:A,requestStatus:"pending"}})),t=cA(A+"/rejected",(A,e,g,Q,t)=>({payload:Q,error:(I&&I.serializeError||xA)(A||"Rejected"),meta:{...t||{},arg:g,requestId:e,rejectedWithValue:!!Q,requestStatus:"rejected",aborted:"AbortError"===A?.name,condition:"ConditionError"===A?.name}}));return Object.assign(function(A,{signal:B}={}){return(i,E,a)=>{const C=I?.idGenerator?I.idGenerator(A):JA(),n=new AbortController;let o,r;function s(A){r=A,n.abort()}B&&(B.aborted?s(NA):B.addEventListener("abort",()=>s(NA),{once:!0}));const c=async function(){let B;try{let t=I?.condition?.(A,{getState:E,extra:a});if(null!==(c=t)&&"object"==typeof c&&"function"==typeof c.then&&(t=await t),!1===t||n.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};const h=new Promise((A,e)=>{o=()=>{e({name:"AbortError",message:r||"Aborted"})},n.signal.addEventListener("abort",o)});i(Q(C,A,I?.getPendingMeta?.({requestId:C,arg:A},{getState:E,extra:a}))),B=await Promise.race([h,Promise.resolve(e(A,{dispatch:i,getState:E,extra:a,requestId:C,signal:n.signal,abort:s,rejectWithValue:(A,e)=>new vA(A,e),fulfillWithValue:(A,e)=>new PA(A,e)})).then(e=>{if(e instanceof vA)throw e;return e instanceof PA?g(e.payload,C,A,e.meta):g(e,C,A)})])}catch(e){B=e instanceof vA?t(null,C,A,e.payload,e.meta):t(e,C,A)}finally{o&&n.signal.removeEventListener("abort",o)}var c;return I&&!I.dispatchConditionRejection&&t.match(B)&&B.meta.condition||i(B),B}();return Object.assign(c,{abort:s,requestId:C,arg:A,unwrap:()=>c.then(KA)})}},{pending:Q,rejected:t,fulfilled:g,settled:pA(t,g),typePrefix:A})}return A.withTypes=()=>A,A})();function KA(A){if(A.meta&&A.meta.rejectedWithValue)throw A.payload;if(A.error)throw A.error;return A.payload}var YA=Symbol.for("rtk-slice-createasyncthunk");function LA(A,e){return`${A}/${e}`}function TA({creators:A}={}){const e=A?.asyncThunk?.[YA];return function(A){const{name:I,reducerPath:g=I}=A;if(!I)throw new Error(me(11));const Q=("function"==typeof A.reducers?A.reducers(function(){function A(A,e){return{_reducerDefinitionType:"asyncThunk",payloadCreator:A,...e}}return A.withTypes=()=>A,{reducer:A=>Object.assign({[A.name]:(...e)=>A(...e)}[A.name],{_reducerDefinitionType:"reducer"}),preparedReducer:(A,e)=>({_reducerDefinitionType:"reducerWithPrepare",prepare:A,reducer:e}),asyncThunk:A}}()):A.reducers)||{},t=Object.keys(Q),B={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},i={addCase(A,e){const I="string"==typeof A?A:A.type;if(!I)throw new Error(me(12));if(I in B.sliceCaseReducersByType)throw new Error(me(13));return B.sliceCaseReducersByType[I]=e,i},addMatcher:(A,e)=>(B.sliceMatchers.push({matcher:A,reducer:e}),i),exposeAction:(A,e)=>(B.actionCreators[A]=e,i),exposeCaseReducer:(A,e)=>(B.sliceCaseReducersByName[A]=e,i)};function E(){const[e={},I=[],g]="function"==typeof A.extraReducers?DA(A.extraReducers):[A.extraReducers],Q={...e,...B.sliceCaseReducersByType};return function(A,e){let I,[g,Q,t]=DA(e);if("function"==typeof A)I=()=>lA(A());else{const e=lA(A);I=()=>e}function B(A=I(),e){let B=[g[e.type],...Q.filter(({matcher:A})=>A(e)).map(({reducer:A})=>A)];return 0===B.filter(A=>!!A).length&&(B=[t]),B.reduce((A,I)=>{if(I){if(c(A)){const g=I(A,e);return void 0===g?A:g}if(h(A))return AA(A,A=>I(A,e));{const g=I(A,e);if(void 0===g){if(null===A)return A;throw Error("A case reducer on a non-draftable value must not return undefined")}return g}}return A},A)}return B.getInitialState=I,B}(A.initialState,A=>{for(let e in Q)A.addCase(e,Q[e]);for(let e of B.sliceMatchers)A.addMatcher(e.matcher,e.reducer);for(let e of I)A.addMatcher(e.matcher,e.reducer);g&&A.addDefaultCase(g)})}t.forEach(g=>{const t=Q[g],B={reducerName:g,type:LA(I,g),createNotation:"function"==typeof A.reducers};!function(A){return"asyncThunk"===A._reducerDefinitionType}(t)?function({type:A,reducerName:e,createNotation:I},g,Q){let t,B;if("reducer"in g){if(I&&!function(A){return"reducerWithPrepare"===A._reducerDefinitionType}(g))throw new Error(me(17));t=g.reducer,B=g.prepare}else t=g;Q.addCase(A,t).exposeCaseReducer(e,t).exposeAction(e,B?cA(A,B):cA(A))}(B,t,i):function({type:A,reducerName:e},I,g,Q){if(!Q)throw new Error(me(18));const{payloadCreator:t,fulfilled:B,pending:i,rejected:E,settled:a,options:C}=I,n=Q(A,t,C);g.exposeAction(e,n),B&&g.addCase(n.fulfilled,B);i&&g.addCase(n.pending,i);E&&g.addCase(n.rejected,E);a&&g.addMatcher(n.settled,a);g.exposeCaseReducer(e,{fulfilled:B||XA,pending:i||XA,rejected:E||XA,settled:a||XA})}(B,t,i,e)});const a=A=>A,C=new Map,n=new WeakMap;let o;function r(A,e){return o||(o=E()),o(A,e)}function s(){return o||(o=E()),o.getInitialState()}function l(e,I=!1){function g(A){let Q=A[e];return void 0===Q&&I&&(Q=dA(n,g,s)),Q}function Q(e=a){const g=dA(C,I,()=>new WeakMap);return dA(g,e,()=>{const g={};for(const[Q,t]of Object.entries(A.selectors??{}))g[Q]=VA(t,e,()=>dA(n,e,s),I);return g})}return{reducerPath:e,getSelectors:Q,get selectors(){return Q(g)},selectSlice:g}}const d={name:I,reducer:r,actions:B.actionCreators,caseReducers:B.sliceCaseReducersByName,getInitialState:s,...l(g),injectInto(A,{reducerPath:e,...I}={}){const Q=e??g;return A.inject({reducerPath:Q,reducer:r},I),{...d,...l(Q,!0)}}};return d}}function VA(A,e,I,g){function Q(Q,...t){let B=e(Q);return void 0===B&&g&&(B=I()),A(B,...t)}return Q.unwrapped=A,Q}var OA=TA();function XA(){}var jA="listener",WA="completed",zA="cancelled",ZA=`task-${zA}`,_A=`task-${WA}`,$A=`${jA}-${zA}`,Ae=`${jA}-${WA}`,ee=class{constructor(A){this.code=A,this.message=`task ${zA} (reason: ${A})`}name="TaskAbortError";message},Ie=(A,e)=>{if("function"!=typeof A)throw new TypeError(me(32))},ge=()=>{},Qe=(A,e=ge)=>(A.catch(e),A),te=(A,e)=>(A.addEventListener("abort",e,{once:!0}),()=>A.removeEventListener("abort",e)),Be=(A,e)=>{const I=A.signal;I.aborted||("reason"in I||Object.defineProperty(I,"reason",{enumerable:!0,value:e,configurable:!0,writable:!0}),A.abort(e))},ie=A=>{if(A.aborted){const{reason:e}=A;throw new ee(e)}};function Ee(A,e){let I=ge;return new Promise((g,Q)=>{const t=()=>Q(new ee(A.reason));A.aborted?t():(I=te(A,t),e.finally(()=>I()).then(g,Q))}).finally(()=>{I=ge})}var ae=A=>e=>Qe(Ee(A,e).then(e=>(ie(A),e))),Ce=A=>{const e=ae(A);return A=>e(new Promise(e=>setTimeout(e,A)))},{assign:ne}=Object,oe={},re="listenerMiddleware",se=(A,e)=>(I,g)=>{Ie(I);const Q=new AbortController;var t;t=Q,te(A,()=>Be(t,A.reason));const B=(async(A,e)=>{try{return await Promise.resolve(),{status:"ok",value:await A()}}catch(A){return{status:A instanceof ee?"cancelled":"rejected",error:A}}finally{e?.()}})(async()=>{ie(A),ie(Q.signal);const e=await I({pause:ae(Q.signal),delay:Ce(Q.signal),signal:Q.signal});return ie(Q.signal),e},()=>Be(Q,_A));return g?.autoJoin&&e.push(B.catch(ge)),{result:ae(A)(B),cancel(){Be(Q,ZA)}}},ce=(A,e)=>(I,g)=>Qe((async(I,g)=>{ie(e);let Q=()=>{};const t=[new Promise((e,g)=>{let t=A({predicate:I,effect:(A,I)=>{I.unsubscribe(),e([A,I.getState(),I.getOriginalState()])}});Q=()=>{t(),g()}})];null!=g&&t.push(new Promise(A=>setTimeout(A,g,null)));try{const A=await Ee(e,Promise.race(t));return ie(e),A}finally{Q()}})(I,g)),he=A=>{let{type:e,actionCreator:I,matcher:g,predicate:Q,effect:t}=A;if(e)Q=cA(e).match;else if(I)e=I.type,Q=I.match;else if(g)Q=g;else if(!Q)throw new Error(me(21));return Ie(t),{predicate:Q,type:e,effect:t}},le=ne(A=>{const{type:e,predicate:I,effect:g}=he(A);return{id:JA(),effect:g,type:e,predicate:I,pending:new Set,unsubscribe:()=>{throw new Error(me(22))}}},{withTypes:()=>le}),de=(A,e)=>{const{type:I,effect:g,predicate:Q}=he(e);return Array.from(A.values()).find(A=>("string"==typeof I?A.type===I:A.predicate===Q)&&A.effect===g)},fe=A=>{A.pending.forEach(A=>{Be(A,$A)})},we=(A,e,I)=>{try{A(e,I)}catch(A){setTimeout(()=>{throw A},0)}},ue=ne(cA(`${re}/add`),{withTypes:()=>ue}),ye=cA(`${re}/removeAll`),De=ne(cA(`${re}/remove`),{withTypes:()=>De}),ke=(...A)=>{console.error(`${re}/error`,...A)},pe=(A={})=>{const e=new Map,{extra:I,onError:g=ke}=A;Ie(g);const Q=A=>(A=>(A.unsubscribe=()=>e.delete(A.id),e.set(A.id,A),e=>{A.unsubscribe(),e?.cancelActive&&fe(A)}))(de(e,A)??le(A));ne(Q,{withTypes:()=>Q});const t=A=>{const I=de(e,A);return I&&(I.unsubscribe(),A.cancelActive&&fe(I)),!!I};ne(t,{withTypes:()=>t});const B=async(A,t,B,i)=>{const E=new AbortController,a=ce(Q,E.signal),C=[];try{A.pending.add(E),await Promise.resolve(A.effect(t,ne({},B,{getOriginalState:i,condition:(A,e)=>a(A,e).then(Boolean),take:a,delay:Ce(E.signal),pause:ae(E.signal),extra:I,signal:E.signal,fork:se(E.signal,C),unsubscribe:A.unsubscribe,subscribe:()=>{e.set(A.id,A)},cancelActiveListeners:()=>{A.pending.forEach((A,e,I)=>{A!==E&&(Be(A,$A),I.delete(A))})},cancel:()=>{Be(E,$A),A.pending.delete(E)},throwIfCancelled:()=>{ie(E.signal)}})))}catch(A){A instanceof ee||we(g,A,{raisedBy:"effect"})}finally{await Promise.all(C),Be(E,Ae),A.pending.delete(E)}},i=(A=>()=>{A.forEach(fe),A.clear()})(e);return{middleware:A=>I=>E=>{if(!a(E))return I(E);if(ue.match(E))return Q(E.payload);if(ye.match(E))return void i();if(De.match(E))return t(E.payload);let C=A.getState();const n=()=>{if(C===oe)throw new Error(me(23));return C};let o;try{if(o=I(E),e.size>0){const I=A.getState(),Q=Array.from(e.values());for(const e of Q){let Q=!1;try{Q=e.predicate(E,I,C)}catch(A){Q=!1,we(g,A,{raisedBy:"predicate"})}Q&&B(e,E,A,n)}}}finally{C=oe}return o},startListening:Q,stopListening:t,clearListeners:i}};function me(A){return`Minified Redux Toolkit error #${A}; visit https://redux-toolkit.js.org/Errors?code=${A} for the full message or use the non-minified dev environment for full errors. `}const Fe=OA({name:"commonState",initialState:{currentRoomUrl:""},reducers:{setCurrentRoomUrl:(A,e)=>{A.currentRoomUrl=e.payload}}}),{setCurrentRoomUrl:Se}=Fe.actions;var Re=Fe.reducer;const He={peerId:localStorage.getItem("peerId")??"",challengeId:localStorage.getItem("challengeId")??"",publicKey:localStorage.getItem("publicKey")??"",secretKey:localStorage.getItem("secretKey")??"",challenge:localStorage.getItem("challenge")??"",signature:localStorage.getItem("signature")??""},Ge=OA({name:"keyPair",initialState:He,reducers:{setKeyPair:(A,e)=>{const{publicKey:I,secretKey:g}=e.payload;64===I.length&&128===g.length&&(A.publicKey=e.payload.publicKey,A.secretKey=e.payload.secretKey)},setReconnectData:(e,I)=>{const{peerId:g,challenge:Q,signature:t,challengeId:B}=I.payload;A.isUUID(g,4)&&A.isUUID(B)&&A.isHexadecimal(Q)&&A.isHexadecimal(t)&&64===Q.length&&128===t.length&&(e.peerId=g,e.challenge=Q,e.signature=t,e.challengeId=B)},setPeerData:(e,I)=>{const{peerId:g,challenge:Q,signature:t}=I.payload;A.isUUID(g,4)&&A.isHexadecimal(Q)&&A.isHexadecimal(t)&&64===Q.length&&128===t.length&&(e.peerId=g,e.challenge=Q,e.signature=t)},setChallengeId:(e,I)=>{const{challengeId:g}=I.payload;A.isUUID(g)&&(e.challengeId=g)},resetIdentity:(A,e)=>({peerId:"",challengeId:"",publicKey:"",secretKey:"",challenge:"",signature:""})}}),{setKeyPair:Ue,setReconnectData:Me,setPeerData:Je,setChallengeId:be,resetIdentity:ve}=Ge.actions;var Pe=Ge.reducer;const xe=64*Uint8Array.BYTES_PER_ELEMENT,Ne=64*Uint8Array.BYTES_PER_ELEMENT,qe=32*Uint8Array.BYTES_PER_ELEMENT,Ke=32*Uint8Array.BYTES_PER_ELEMENT,Ye=64*Uint8Array.BYTES_PER_ELEMENT,Le=16*Uint8Array.BYTES_PER_ELEMENT,Te=32*Uint8Array.BYTES_PER_ELEMENT,Ve=32*Uint8Array.BYTES_PER_ELEMENT,Oe=12*Uint8Array.BYTES_PER_ELEMENT,Xe=12*Uint8Array.BYTES_PER_ELEMENT,je=16*Uint8Array.BYTES_PER_ELEMENT,We=A=>Xe+A+Le,ze=A=>A-Xe-Le,Ze={iceServers:[{urls:["stun:stun.p2party.com:3478"]}],iceTransportPolicy:"all"},_e=OA({name:"rooms",initialState:[],reducers:{setRoom:(e,I)=>{const{url:g,id:Q,canBeConnectionRelay:t,rtcConfig:B,onlyConnectWithKnownPeers:i}=I.payload;if(64===g.length&&A.isUUID(Q)){const A=e.findIndex(A=>A.url===g||A.id===Q);A>-1?(e[A].url=g,e[A].id=Q,null!=t&&(e[A].canBeConnectionRelay=t),B&&(e[A].rtcConfig=B),e[A].onlyConnectWithKnownAddresses=null!=i?i:"true"===localStorage.getItem(g+"-onlyConnectWithKnownPeers")):e.push({url:g,id:Q,connectingToPeers:!1,connectedToPeers:!1,canBeConnectionRelay:t??!0,onlyConnectWithKnownAddresses:i??"true"===localStorage.getItem(g+"-onlyConnectWithKnownPeers"),rtcConfig:B??Ze,peers:[],channels:[],messages:[]})}else if(64===g.length){const A=e.findIndex(A=>A.url===g);A>-1?(e[A].url=g,e[A].id="",null!=t&&(e[A].canBeConnectionRelay=t),B&&(e[A].rtcConfig=B),e[A].onlyConnectWithKnownAddresses=null!=i?i:"true"===localStorage.getItem(g+"-onlyConnectWithKnownPeers")):e.push({url:g,id:"",connectingToPeers:!1,connectedToPeers:!1,canBeConnectionRelay:t??!0,onlyConnectWithKnownAddresses:i??"true"===localStorage.getItem(g+"-onlyConnectWithKnownPeers"),rtcConfig:B??Ze,peers:[],channels:[],messages:[]})}},setConnectingToPeers:(A,e)=>{const{roomId:I,connectingToPeers:g}=e.payload,Q=A.findIndex(A=>A.id===I);Q>-1&&(A[Q].connectingToPeers=g)},setConnectedToPeers:(A,e)=>{const{roomId:I,connectedToPeers:g}=e.payload,Q=A.findIndex(A=>A.id===I);Q>-1&&(A[Q].connectingToPeers=!1,A[Q].connectedToPeers=g)},setConnectionRelay:(A,e)=>{const{roomId:I,canBeConnectionRelay:g}=e.payload,Q=A.findIndex(A=>A.id===I);Q>-1&&(A[Q].canBeConnectionRelay=g)},setPeer:(A,e)=>{const{roomId:I,peerId:g,peerPublicKey:Q}=e.payload,t=A.findIndex(A=>A.id===I);if(t>-1){-1===A[t].peers.findIndex(A=>A.peerId===g)&&A[t].peers.push({peerId:g,peerPublicKey:Q})}},deletePeer:(A,e)=>{const I=A.length;for(let g=0;g<I;g++){const I=A[g].peers.findIndex(A=>A.peerId===e.payload.peerId);I>-1&&A[g].peers.splice(I,1)}},setChannel:(A,e)=>{const{roomId:I,label:g,peerId:Q}=e.payload,t=A.findIndex(A=>A.id===I);if(t>-1){const e=A[t].channels.findIndex(A=>A.label===g);if(e>-1){-1===A[t].channels[e].peerIds.findIndex(A=>A===Q)&&A[t].channels[e].peerIds.push(Q)}else A[t].channels.push({label:g,peerIds:[Q]})}},deleteChannel:(A,e)=>{const{peerId:I,label:g}=e.payload,Q=A.length;for(let e=0;e<Q;e++)if(g&&!I){const I=A[e].channels.findIndex(A=>A.label===g);I>-1&&A[e].channels.splice(I,1)}else if(!g&&I){const g=A[e].channels.length;for(let Q=0;Q<g;Q++){const g=A[e].channels[e].peerIds.findIndex(A=>A===I);g>-1&&(A[e].channels[Q].peerIds.splice(g,1),0===A[e].channels[Q].peerIds.length&&A[e].channels.splice(Q,1))}}else if(I&&g){const Q=A[e].channels.findIndex(A=>A.label===g&&A.peerIds.includes(I));if(Q>-1){const g=A[e].channels[Q].peerIds.findIndex(A=>A===I);A[e].channels[Q].peerIds.splice(g,1),0===A[e].channels[Q].peerIds.length&&A[e].channels.splice(Q,1)}}},setIceServers:(A,e)=>{const{roomId:I,iceServers:g}=e.payload,Q=A.findIndex(A=>A.id===I);if(Q>-1){const e=g.length,I=A[Q].rtcConfig.iceServers?.flatMap(A=>Array.isArray(A.urls)?A.urls:[A.urls])??[];for(let t=0;t<e;t++){const e=g[t].urls.length;let B=!1;for(let A=0;A<e;A++)if(!I.includes(g[t].urls[A])){B=!0;break}B&&A[Q].rtcConfig.iceServers?.push(g[t])}}},setMessage:(e,I)=>{const{roomId:g,merkleRootHex:Q,sha512Hex:t,filename:B,channelLabel:i,fromPeerId:E,messageType:a,chunkSize:C,totalSize:n,chunksCreated:o,totalChunks:r,timestamp:s}=I.payload,c=e.findIndex(A=>A.id===g);if(c>-1){const I=e[c].messages.findLastIndex(A=>A.merkleRootHex===Q||A.sha512Hex===t&&0===A.merkleRootHex.length);-1===I?i&&E&&A.isUUID(E)&&a&&n&&e[c].messages.push({merkleRootHex:Q,sha512Hex:t,channelLabel:i,filename:B.length>0?B:"txt",messageType:a,fromPeerId:E,timestamp:s??Date.now(),savedSize:C>0?C:0,totalSize:n,chunksCreated:o??0,totalChunks:r??0}):e[c].messages[I].timestamp!==s&&e[c].messages[I].sha512Hex===t&&e[c].messages[I].savedSize===e[c].messages[I].totalSize?e[c].messages.push({merkleRootHex:Q,sha512Hex:t,channelLabel:i,filename:B.length>0?B:"txt",messageType:a,fromPeerId:E,timestamp:s??Date.now(),savedSize:C,totalSize:n,chunksCreated:o??0,totalChunks:r??0}):(Q.length===2*xe&&""===e[c].messages[I].merkleRootHex&&(e[c].messages[I].merkleRootHex=Q),n>0&&e[c].messages[I].totalSize!==n&&(e[c].messages[I].totalSize=n),C>0&&e[c].messages[I].totalSize>=e[c].messages[I].savedSize+C&&(e[c].messages[I].savedSize+=C),o&&o<=e[c].messages[I].totalChunks&&(e[c].messages[I].chunksCreated=o+1))}},setMessageAllChunks:(e,I)=>{const{roomId:g,merkleRootHex:Q,sha512Hex:t,channelLabel:B,filename:i,messageType:E,fromPeerId:a,timestamp:C,totalSize:n}=I.payload,o=e.findIndex(A=>A.id===g);if(o>-1){const I=e[o].messages.findLastIndex(A=>A.merkleRootHex===Q);-1===I&&B&&a&&A.isUUID(a)&&E&&n||I>-1&&e[o].messages[I].timestamp<C?e[o].messages.push({merkleRootHex:Q,sha512Hex:t,channelLabel:B,filename:i.length>0?i:"txt",messageType:E,fromPeerId:a,timestamp:C,savedSize:n,totalSize:n,chunksCreated:0,totalChunks:0}):I>-1&&e[o].messages[I].savedSize!==n&&(e[o].messages[I].savedSize=n)}},deleteMessage:(A,e)=>{const{merkleRootHex:I,hashHex:g}=e.payload;if(!I&&!g)return;if(I&&I.length!==2*xe)return;if(g&&g.length!==2*xe)return;const Q=A.length;for(let e=0;e<Q;e++)if(I){const g=A[e].messages.findIndex(A=>A.merkleRootHex===I);g>-1&&A[e].messages.splice(g,1)}else if(g){const I=A[e].messages.findLastIndex(A=>A.sha512Hex===g);I>-1&&A[e].messages.splice(I,1)}},setOnlyConnectWithKnownPeers:(A,e)=>{const{roomId:I,onlyConnectWithKnownPeers:g}=e.payload,Q=A.findIndex(A=>A.id===I);Q>-1&&(A[Q].onlyConnectWithKnownAddresses=g)},deleteRoom:(A,e)=>{const I=A.findIndex(A=>A.url===e.payload||A.id===e.payload);if(I>-1){const e=A[I].url;A[I]={url:e,id:"",connectingToPeers:!1,connectedToPeers:!1,canBeConnectionRelay:!0,onlyConnectWithKnownAddresses:!1,rtcConfig:Ze,peers:[],channels:[],messages:[]}}}}}),{setRoom:$e,setConnectingToPeers:AI,setConnectedToPeers:eI,setConnectionRelay:II,setOnlyConnectWithKnownPeers:gI,setPeer:QI,setChannel:tI,setIceServers:BI,setMessage:iI,setMessageAllChunks:EI,deletePeer:aI,deleteChannel:CI,deleteMessage:nI,deleteRoom:oI}=_e.actions;var rI=_e.reducer;const sI="wss://signaling.p2party.com/ws",cI=OA({name:"signalingServer",initialState:{isEstablishingConnection:!1,isConnected:!1,serverUrl:sI},reducers:{startConnecting:(A,e)=>{A.isEstablishingConnection=!0,A.serverUrl=e.payload??sI},connectionEstablished:A=>{A.isConnected=!0,A.isEstablishingConnection=!1},disconnect:A=>{A.isConnected=!1,A.isEstablishingConnection=!1}}}),hI=cI.actions;var lI=cI.reducer,dI=class extends Error{issues;constructor(A){super(A[0].message),this.name="SchemaError",this.issues=A}};function fI(A){return{status:A,isUninitialized:"uninitialized"===A,isLoading:"pending"===A,isSuccess:"fulfilled"===A,isError:"rejected"===A}}var wI=t;function uI(A,e){if(A===e||!(wI(A)&&wI(e)||Array.isArray(A)&&Array.isArray(e)))return e;const I=Object.keys(e),g=Object.keys(A);let Q=I.length===g.length;const t=Array.isArray(e)?[]:{};for(const g of I)t[g]=uI(A[g],e[g]),Q&&(Q=A[g]===t[g]);return Q?A:t}function yI(A){let e=0;for(const I in A)e++;return e}var DI=A=>[].concat(...A);function kI(A){return null!=A}function pI(A,e,I){return A.has(e)?A.get(e):A.set(e,I(e)).get(e)}var mI=()=>new Map,FI=class{constructor(A,e=void 0){this.value=A,this.meta=e}},SI=cA("__rtkq/focused"),RI=cA("__rtkq/unfocused"),HI=cA("__rtkq/online"),GI=cA("__rtkq/offline");function UI(A){return"query"===A.type}function MI(A){return"infinitequery"===A.type}function JI(A){return UI(A)||MI(A)}function bI(A,e,I,g,Q,t){return"function"==typeof A?A(e,I,g,Q).filter(kI).map(vI).map(t):Array.isArray(A)?A.map(vI).map(t):[]}function vI(A){return"string"==typeof A?{type:A}:A}var PI=Symbol("forceQueryFn"),xI=A=>"function"==typeof A[PI];var NI=class extends dI{constructor(A,e,I,g){super(A),this.value=e,this.schemaName=I,this._bqMeta=g}},qI=(A,e)=>Array.isArray(A)?A.includes(e):!!A;async function KI(A,e,I,g){const Q=await A["~standard"].validate(e);if(Q.issues)throw new NI(Q.issues,e,I,g);return Q.value}function YI(A){return A}var LI=(A={})=>({...A,[fA]:!0});function TI(A,{pages:e,pageParams:I},g){const Q=e.length-1;return A.getNextPageParam(e[Q],e,I[Q],I,g)}function VI(A,{pages:e,pageParams:I},g){return A.getPreviousPageParam?.(e[0],e,I[0],I,g)}function OI(A,e,I,g){return bI(I[A.meta.arg.endpointName][e],UA(A)?A.payload:void 0,GA(A)?A.payload:void 0,A.meta.arg.originalArgs,"baseQueryMeta"in A.meta?A.meta.baseQueryMeta:void 0,g)}function XI(A,e,I){const g=A[e];g&&I(g)}function jI(A){return("arg"in A?A.arg.fixedCacheKey:A.fixedCacheKey)??A.requestId}function WI(A,e,I){const g=A[jI(e)];g&&I(g)}var zI={};function ZI({reducerPath:A,queryThunk:e,mutationThunk:I,serializeQueryArgs:g,context:{endpointDefinitions:Q,apiUid:t,extractRehydrationInfo:B,hasRehydrationInfo:E},assertTagType:a,config:C}){const n=cA(`${A}/resetApiState`);function s(A,e,I,g){A[e.queryCacheKey]??={status:"uninitialized",endpointName:e.endpointName},XI(A,e.queryCacheKey,A=>{A.status="pending",A.requestId=I&&A.requestId?A.requestId:g.requestId,void 0!==e.originalArgs&&(A.originalArgs=e.originalArgs),A.startedTimeStamp=g.startedTimeStamp;MI(Q[g.arg.endpointName])&&"direction"in e&&(A.direction=e.direction)})}function h(A,e,I,g){XI(A,e.arg.queryCacheKey,A=>{if(A.requestId!==e.requestId&&!g)return;const{merge:t}=Q[e.arg.endpointName];if(A.status="fulfilled",t)if(void 0!==A.data){const{fulfilledTimeStamp:g,arg:Q,baseQueryMeta:B,requestId:i}=e;let E=AA(A.data,A=>t(A,I,{arg:Q.originalArgs,baseQueryMeta:B,fulfilledTimeStamp:g,requestId:i}));A.data=E}else A.data=I;else A.data=Q[e.arg.endpointName].structuralSharing??1?uI(c(A.data)?(c(B=A.data)||r(15),B[o].base_):A.data,I):I;var B;delete A.error,A.fulfilledTimeStamp=e.fulfilledTimeStamp})}const l=OA({name:`${A}/queries`,initialState:zI,reducers:{removeQueryResult:{reducer(A,{payload:{queryCacheKey:e}}){delete A[e]},prepare:wA()},cacheEntriesUpserted:{reducer(A,e){for(const I of e.payload){const{queryDescription:g,value:Q}=I;s(A,g,!0,{arg:g,requestId:e.meta.requestId,startedTimeStamp:e.meta.timestamp}),h(A,{arg:g,requestId:e.meta.requestId,fulfilledTimeStamp:e.meta.timestamp,baseQueryMeta:{}},Q,!0)}},prepare:A=>({payload:A.map(A=>{const{endpointName:e,arg:I,value:t}=A,B=Q[e];return{queryDescription:{type:"query",endpointName:e,originalArgs:A.arg,queryCacheKey:g({queryArgs:I,endpointDefinition:B,endpointName:e})},value:t}}),meta:{[fA]:!0,requestId:JA(),timestamp:Date.now()}})},queryResultPatched:{reducer(A,{payload:{queryCacheKey:e,patches:I}}){XI(A,e,A=>{A.data=IA(A.data,I.concat())})},prepare:wA()}},extraReducers(A){A.addCase(e.pending,(A,{meta:e,meta:{arg:I}})=>{s(A,I,xI(I),e)}).addCase(e.fulfilled,(A,{meta:e,payload:I})=>{h(A,e,I,xI(e.arg))}).addCase(e.rejected,(A,{meta:{condition:e,arg:I,requestId:g},error:Q,payload:t})=>{XI(A,I.queryCacheKey,A=>{if(e);else{if(A.requestId!==g)return;A.status="rejected",A.error=t??Q}})}).addMatcher(E,(A,e)=>{const{queries:I}=B(e);for(const[e,g]of Object.entries(I))"fulfilled"!==g?.status&&"rejected"!==g?.status||(A[e]=g)})}}),d=OA({name:`${A}/mutations`,initialState:zI,reducers:{removeMutationResult:{reducer(A,{payload:e}){const I=jI(e);I in A&&delete A[I]},prepare:wA()}},extraReducers(A){A.addCase(I.pending,(A,{meta:e,meta:{requestId:I,arg:g,startedTimeStamp:Q}})=>{g.track&&(A[jI(e)]={requestId:I,status:"pending",endpointName:g.endpointName,startedTimeStamp:Q})}).addCase(I.fulfilled,(A,{payload:e,meta:I})=>{I.arg.track&&WI(A,I,A=>{A.requestId===I.requestId&&(A.status="fulfilled",A.data=e,A.fulfilledTimeStamp=I.fulfilledTimeStamp)})}).addCase(I.rejected,(A,{payload:e,error:I,meta:g})=>{g.arg.track&&WI(A,g,A=>{A.requestId===g.requestId&&(A.status="rejected",A.error=e??I)})}).addMatcher(E,(A,e)=>{const{mutations:I}=B(e);for(const[e,g]of Object.entries(I))"fulfilled"!==g?.status&&"rejected"!==g?.status||e===g?.requestId||(A[e]=g)})}}),f=OA({name:`${A}/invalidation`,initialState:{tags:{},keys:{}},reducers:{updateProvidedBy:{reducer(A,e){for(const{queryCacheKey:I,providedTags:g}of e.payload){w(A,I);for(const{type:e,id:Q}of g){const g=(A.tags[e]??={})[Q||"__internal_without_id"]??=[];g.includes(I)||g.push(I)}A.keys[I]=g}},prepare:wA()}},extraReducers(A){A.addCase(l.actions.removeQueryResult,(A,{payload:{queryCacheKey:e}})=>{w(A,e)}).addMatcher(E,(A,e)=>{const{provided:I}=B(e);for(const[e,g]of Object.entries(I.tags??{}))for(const[Q,t]of Object.entries(g)){const g=(A.tags[e]??={})[Q||"__internal_without_id"]??=[];for(const e of t){g.includes(e)||g.push(e),A.keys[e]=I.keys[e]}}}).addMatcher(pA(UA(e),GA(e)),(A,e)=>{u(A,[e])}).addMatcher(l.actions.cacheEntriesUpserted.match,(A,e)=>{u(A,e.payload.map(({queryDescription:A,value:e})=>({type:"UNKNOWN",payload:e,meta:{requestStatus:"fulfilled",requestId:"UNKNOWN",arg:A}})))})}});function w(A,e){const I=A.keys[e]??[];for(const g of I){const I=g.type,Q=g.id??"__internal_without_id",t=A.tags[I]?.[Q];t&&(A.tags[I][Q]=t.filter(A=>A!==e))}delete A.keys[e]}function u(A,e){const I=e.map(A=>{const e=OI(A,"providesTags",Q,a),{queryCacheKey:I}=A.meta.arg;return{queryCacheKey:I,providedTags:e}});f.caseReducers.updateProvidedBy(A,f.actions.updateProvidedBy(I))}const y=OA({name:`${A}/subscriptions`,initialState:zI,reducers:{updateSubscriptionOptions(A,e){},unsubscribeQueryResult(A,e){},internal_getRTKQSubscriptions(){}}}),D=OA({name:`${A}/internalSubscriptions`,initialState:zI,reducers:{subscriptionsUpdated:{reducer:(A,e)=>IA(A,e.payload),prepare:wA()}}}),k=OA({name:`${A}/config`,initialState:{online:"undefined"==typeof navigator||void 0===navigator.onLine||navigator.onLine,focused:"undefined"==typeof document||"hidden"!==document.visibilityState,middlewareRegistered:!1,...C},reducers:{middlewareRegistered(A,{payload:e}){A.middlewareRegistered="conflict"!==A.middlewareRegistered&&t===e||"conflict"}},extraReducers:A=>{A.addCase(HI,A=>{A.online=!0}).addCase(GI,A=>{A.online=!1}).addCase(SI,A=>{A.focused=!0}).addCase(RI,A=>{A.focused=!1}).addMatcher(E,A=>({...A}))}}),p=i({queries:l.reducer,mutations:d.reducer,provided:f.reducer,subscriptions:D.reducer,config:k.reducer});return{reducer:(A,e)=>p(n.match(e)?void 0:A,e),actions:{...k.actions,...l.actions,...y.actions,...D.actions,...d.actions,...f.actions,resetApiState:n}}}var _I=Symbol.for("RTKQ/skipToken"),$I={status:"uninitialized"},Ag=AA($I,()=>{}),eg=AA($I,()=>{});var Ig=WeakMap?new WeakMap:void 0,gg=({endpointName:A,queryArgs:e})=>{let I="";const g=Ig?.get(e);if("string"==typeof g)I=g;else{const A=JSON.stringify(e,(A,e)=>e=t(e="bigint"==typeof e?{$bigint:e.toString()}:e)?Object.keys(e).sort().reduce((A,I)=>(A[I]=e[I],A),{}):e);t(e)&&Ig?.set(e,A),I=A}return`${A}(${I})`};function Qg(...A){return function(e){const I=iA(A=>e.extractRehydrationInfo?.(A,{reducerPath:e.reducerPath??"api"})),g={reducerPath:"api",keepUnusedDataFor:60,refetchOnMountOrArgChange:!1,refetchOnFocus:!1,refetchOnReconnect:!1,invalidationBehavior:"delayed",...e,extractRehydrationInfo:I,serializeQueryArgs(A){let I=gg;if("serializeQueryArgs"in A.endpointDefinition){const e=A.endpointDefinition.serializeQueryArgs;I=A=>{const I=e(A);return"string"==typeof I?I:gg({...A,queryArgs:I})}}else e.serializeQueryArgs&&(I=e.serializeQueryArgs);return I(A)},tagTypes:[...e.tagTypes||[]]},Q={endpointDefinitions:{},batch(A){A()},apiUid:JA(),extractRehydrationInfo:I,hasRehydrationInfo:iA(A=>null!=I(A))},t={injectEndpoints:function(A){const e=A.endpoints({query:A=>({...A,type:"query"}),mutation:A=>({...A,type:"mutation"}),infiniteQuery:A=>({...A,type:"infinitequery"})});for(const[I,g]of Object.entries(e))if(!0!==A.overrideExisting&&I in Q.endpointDefinitions){if("throw"===A.overrideExisting)throw new Error(me(39))}else{Q.endpointDefinitions[I]=g;for(const A of B)A.injectEndpoint(I,g)}return t},enhanceEndpoints({addTagTypes:A,endpoints:e}){if(A)for(const e of A)g.tagTypes.includes(e)||g.tagTypes.push(e);if(e)for(const[A,I]of Object.entries(e))"function"==typeof I?I(Q.endpointDefinitions[A]):Object.assign(Q.endpointDefinitions[A]||{},I);return t}},B=A.map(A=>A.init(t,g,Q));return t.injectEndpoints({endpoints:e.endpoints})}}function tg(A,...e){return Object.assign(A,...e)}var Bg=({api:A,queryThunk:e,internalState:I,mwApi:g})=>{const Q=`${A.reducerPath}/subscriptions`;let t=null,B=null;const{updateSubscriptionOptions:i,unsubscribeQueryResult:E}=A.internalActions,a=()=>I.currentSubscriptions,C={getSubscriptions:a,getSubscriptionCount:A=>{const e=a().get(A);return e?.size??0},isRequestSubscribed:(A,e)=>{const I=a();return!!I?.get(A)?.get(e)}};function n(A){return JSON.parse(JSON.stringify(Object.fromEntries([...A].map(([A,e])=>[A,Object.fromEntries(e)]))))}return(g,a)=>{if(t||(t=n(I.currentSubscriptions)),A.util.resetApiState.match(g))return t={},I.currentSubscriptions.clear(),B=null,[!0,!1];if(A.internalActions.internal_getRTKQSubscriptions.match(g))return[!1,C];const o=((I,g)=>{if(i.match(g)){const{queryCacheKey:A,requestId:e,options:Q}=g.payload,t=I.get(A);return t?.has(e)&&t.set(e,Q),!0}if(E.match(g)){const{queryCacheKey:A,requestId:e}=g.payload,Q=I.get(A);return Q&&Q.delete(e),!0}if(A.internalActions.removeQueryResult.match(g))return I.delete(g.payload.queryCacheKey),!0;if(e.pending.match(g)){const{meta:{arg:A,requestId:e}}=g,Q=pI(I,A.queryCacheKey,mI);return A.subscribe&&Q.set(e,A.subscriptionOptions??Q.get(e)??{}),!0}let Q=!1;if(e.rejected.match(g)){const{meta:{condition:A,arg:e,requestId:t}}=g;if(A&&e.subscribe){const A=pI(I,e.queryCacheKey,mI);A.set(t,e.subscriptionOptions??A.get(t)??{}),Q=!0}}return Q})(I.currentSubscriptions,g);let r=!0;if(o){B||(B=setTimeout(()=>{const e=n(I.currentSubscriptions),[,g]=eA(t,()=>e);a.next(A.internalActions.subscriptionsUpdated(g)),t=e,B=null},500));const i="string"==typeof g.type&&!!g.type.startsWith(Q),E=e.rejected.match(g)&&g.meta.condition&&!!g.meta.arg.subscribe;r=!i&&!E}return[r,!1]}},ig=({reducerPath:A,api:e,queryThunk:I,context:g,internalState:Q,selectors:{selectQueryEntry:t,selectConfig:B},getRunningQueryThunk:i,mwApi:E})=>{const{removeQueryResult:a,unsubscribeQueryResult:C,cacheEntriesUpserted:n}=e.internalActions,o=Q.runningQueries.get(E.dispatch),r=pA(C.match,I.fulfilled,I.rejected,n.match);function s(A){const e=Q.currentSubscriptions.get(A);if(!e)return!1;return e.size>0||void 0!==o?.[A]}const c={};function h(A,e,I){const g=e.getState();for(const Q of A){const A=t(g,Q);A?.endpointName&&l(Q,A.endpointName,e,I)}}function l(A,e,I,Q){const B=g.endpointDefinitions[e],E=B?.keepUnusedDataFor??Q.keepUnusedDataFor;if(E===1/0)return;const C=Math.max(0,Math.min(E,2147482.647));if(!s(A)){const e=c[A];e&&clearTimeout(e),c[A]=setTimeout(()=>{if(!s(A)){const e=t(I.getState(),A);if(e?.endpointName){const A=I.dispatch(i(e.endpointName,e.originalArgs));A?.abort()}I.dispatch(a({queryCacheKey:A}))}delete c[A]},1e3*C)}}return(A,I,Q)=>{const t=I.getState(),i=B(t);if(r(A)){let e;if(n.match(A))e=A.payload.map(A=>A.queryDescription.queryCacheKey);else{const{queryCacheKey:I}=C.match(A)?A.payload:A.meta.arg;e=[I]}h(e,I,i)}if(e.util.resetApiState.match(A))for(const[A,e]of Object.entries(c))e&&clearTimeout(e),delete c[A];if(g.hasRehydrationInfo(A)){const{queries:e}=g.extractRehydrationInfo(A);h(Object.keys(e),I,i)}}},Eg=new Error("Promise never resolved before cacheEntryRemoved."),ag=({api:A,reducerPath:e,context:I,queryThunk:g,mutationThunk:Q,internalState:t,selectors:{selectQueryEntry:B,selectApiState:i}})=>{const E=MA(g),a=MA(Q),C=UA(g,Q),n={};function o(A,e,I){const g=n[A];g?.valueResolved&&(g.valueResolved({data:e,meta:I}),delete g.valueResolved)}function r(A){const e=n[A];e&&(delete n[A],e.cacheEntryRemoved())}function s(e,g,Q,t,B){const i=I.endpointDefinitions[e],E=i?.onCacheEntryAdded;if(!E)return;const a={},C=new Promise(A=>{a.cacheEntryRemoved=A}),o=Promise.race([new Promise(A=>{a.valueResolved=A}),C.then(()=>{throw Eg})]);o.catch(()=>{}),n[Q]=a;const r=A.endpoints[e].select(JI(i)?g:Q),s=t.dispatch((A,e,I)=>I),c={...t,getCacheEntry:()=>r(t.getState()),requestId:B,extra:s,updateCachedData:JI(i)?I=>t.dispatch(A.util.updateQueryData(e,g,I)):void 0,cacheDataLoaded:o,cacheEntryRemoved:C},h=E(g,c);Promise.resolve(h).catch(A=>{if(A!==Eg)throw A})}return(I,t,i)=>{const c=function(e){if(E(e))return e.meta.arg.queryCacheKey;if(a(e))return e.meta.arg.fixedCacheKey??e.meta.requestId;return A.internalActions.removeQueryResult.match(e)?e.payload.queryCacheKey:A.internalActions.removeMutationResult.match(e)?jI(e.payload):""}(I);function h(A,e,I,g){const Q=B(i,e),E=B(t.getState(),e);!Q&&E&&s(A,g,e,t,I)}if(g.pending.match(I))h(I.meta.arg.endpointName,c,I.meta.requestId,I.meta.arg.originalArgs);else if(A.internalActions.cacheEntriesUpserted.match(I))for(const{queryDescription:A,value:e}of I.payload){const{endpointName:g,originalArgs:Q,queryCacheKey:t}=A;h(g,t,I.meta.requestId,Q),o(t,e,{})}else if(Q.pending.match(I)){t.getState()[e].mutations[c]&&s(I.meta.arg.endpointName,I.meta.arg.originalArgs,c,t,I.meta.requestId)}else if(C(I))o(c,I.payload,I.meta.baseQueryMeta);else if(A.internalActions.removeQueryResult.match(I)||A.internalActions.removeMutationResult.match(I))r(c);else if(A.util.resetApiState.match(I))for(const A of Object.keys(n))r(A)}},Cg=({api:A,context:{apiUid:e},reducerPath:I})=>(I,g)=>{A.util.resetApiState.match(I)&&g.dispatch(A.internalActions.middlewareRegistered(e))},ng=({reducerPath:A,context:e,context:{endpointDefinitions:I},mutationThunk:g,queryThunk:Q,api:t,assertTagType:B,refetchQuery:i,internalState:E})=>{const{removeQueryResult:a}=t.internalActions,C=pA(UA(g),GA(g)),n=pA(UA(g,Q),HA(g,Q));let o=[];function r(I,g){const Q=g.getState(),B=Q[A];if(o.push(...I),"delayed"===B.config.invalidationBehavior&&function(A){const{queries:e,mutations:I}=A;for(const A of[e,I])for(const e in A)if("pending"===A[e]?.status)return!0;return!1}(B))return;const C=o;if(o=[],0===C.length)return;const n=t.util.selectInvalidatedBy(Q,C);e.batch(()=>{const A=Array.from(n.values());for(const{queryCacheKey:e}of A){const A=B.queries[e],I=pI(E.currentSubscriptions,e,mI);A&&(0===I.size?g.dispatch(a({queryCacheKey:e})):"uninitialized"!==A.status&&g.dispatch(i(A)))}})}return(A,e)=>{C(A)?r(OI(A,"invalidatesTags",I,B),e):n(A)?r([],e):t.util.invalidateTags.match(A)&&r(bI(A.payload,void 0,void 0,void 0,void 0,B),e)}},og=({reducerPath:A,queryThunk:e,api:I,refetchQuery:g,internalState:Q})=>{const{currentPolls:t,currentSubscriptions:B}=Q,i=new Set;let E=null;function a(A,e){i.add(A),E||(E=setTimeout(()=>{for(const A of i)n({queryCacheKey:A},e);i.clear(),E=null},0))}function C({queryCacheKey:e},I){const Q=I.getState()[A],i=Q.queries[e],E=B.get(e);if(!i||"uninitialized"===i.status)return;const{lowestPollingInterval:a,skipPollingIfUnfocused:n}=r(E);if(!Number.isFinite(a))return;const o=t.get(e);o?.timeout&&(clearTimeout(o.timeout),o.timeout=void 0);const s=Date.now()+a;t.set(e,{nextPollTimestamp:s,pollingInterval:a,timeout:setTimeout(()=>{!Q.config.focused&&n||I.dispatch(g(i)),C({queryCacheKey:e},I)},a)})}function n({queryCacheKey:e},I){const g=I.getState()[A].queries[e],Q=B.get(e);if(!g||"uninitialized"===g.status)return;const{lowestPollingInterval:i}=r(Q);if(!Number.isFinite(i))return void o(e);const E=t.get(e),a=Date.now()+i;(!E||a<E.nextPollTimestamp)&&C({queryCacheKey:e},I)}function o(A){const e=t.get(A);e?.timeout&&clearTimeout(e.timeout),t.delete(A)}function r(A=new Map){let e=!1,I=Number.POSITIVE_INFINITY;for(const g of A.values())g.pollingInterval&&(I=Math.min(g.pollingInterval,I),e=g.skipPollingIfUnfocused||e);return{lowestPollingInterval:I,skipPollingIfUnfocused:e}}return(A,g)=>{(I.internalActions.updateSubscriptionOptions.match(A)||I.internalActions.unsubscribeQueryResult.match(A))&&a(A.payload.queryCacheKey,g),(e.pending.match(A)||e.rejected.match(A)&&A.meta.condition)&&a(A.meta.arg.queryCacheKey,g),(e.fulfilled.match(A)||e.rejected.match(A)&&!A.meta.condition)&&C(A.meta.arg,g),I.util.resetApiState.match(A)&&(!function(){for(const A of t.keys())o(A)}(),E&&(clearTimeout(E),E=null),i.clear())}},rg=({api:A,context:e,queryThunk:I,mutationThunk:g})=>{const Q=RA(I,g),t=HA(I,g),B=UA(I,g),i={};return(I,g)=>{if(Q(I)){const{requestId:Q,arg:{endpointName:t,originalArgs:B}}=I.meta,E=e.endpointDefinitions[t],a=E?.onQueryStarted;if(a){const e={},I=new Promise((A,I)=>{e.resolve=A,e.reject=I});I.catch(()=>{}),i[Q]=e;const C=A.endpoints[t].select(JI(E)?B:Q),n=g.dispatch((A,e,I)=>I),o={...g,getCacheEntry:()=>C(g.getState()),requestId:Q,extra:n,updateCachedData:JI(E)?e=>g.dispatch(A.util.updateQueryData(t,B,e)):void 0,queryFulfilled:I};a(B,o)}}else if(B(I)){const{requestId:A,baseQueryMeta:e}=I.meta;i[A]?.resolve({data:I.payload,meta:e}),delete i[A]}else if(t(I)){const{requestId:A,rejectedWithValue:e,baseQueryMeta:g}=I.meta;i[A]?.reject({error:I.payload??I.error,isUnhandledError:!e,meta:g}),delete i[A]}}};function sg(A){const{reducerPath:e,queryThunk:I,api:g,context:Q,internalState:t}=A,{apiUid:B}=Q,i={invalidateTags:cA(`${e}/invalidateTags`)},E=A=>A.type.startsWith(`${e}/`),C=[Cg,ig,ng,og,ag,rg];return{middleware:I=>{let i=!1;const o={...A,internalState:t,refetchQuery:n,isThisApiSliceAction:E,mwApi:I},r=C.map(A=>A(o)),s=Bg(o),c=(({reducerPath:A,context:e,api:I,refetchQuery:g,internalState:Q})=>{const{removeQueryResult:t}=I.internalActions;function B(I,B){const i=I.getState()[A],E=i.queries,a=Q.currentSubscriptions;e.batch(()=>{for(const A of a.keys()){const e=E[A],Q=a.get(A);if(!Q||!e)continue;const C=[...Q.values()];(C.some(A=>!0===A[B])||C.every(A=>void 0===A[B])&&i.config[B])&&(0===Q.size?I.dispatch(t({queryCacheKey:A})):"uninitialized"!==e.status&&I.dispatch(g(e)))}})}return(A,e)=>{SI.match(A)&&B(e,"refetchOnFocus"),HI.match(A)&&B(e,"refetchOnReconnect")}})(o);return A=>t=>{if(!a(t))return A(t);i||(i=!0,I.dispatch(g.internalActions.middlewareRegistered(B)));const C={...I,next:A},n=I.getState(),[o,h]=s(t,C,n);let l;if(l=o?A(t):h,I.getState()[e]&&(c(t,C,n),E(t)||Q.hasRehydrationInfo(t)))for(const A of r)A(t,C,n);return l}},actions:i};function n(e){return A.api.endpoints[e.endpointName].initiate(e.originalArgs,{subscribe:!1,forceRefetch:!0})}}var cg=Symbol(),hg=Qg((({createSelector:A=aA}={})=>({name:cg,init(e,{baseQuery:I,tagTypes:g,reducerPath:Q,serializeQueryArgs:t,keepUnusedDataFor:B,refetchOnMountOrArgChange:i,refetchOnFocus:E,refetchOnReconnect:a,invalidationBehavior:C,onSchemaFailure:n,catchSchemaFailure:o,skipSchemaValidation:r},s){_();const c=A=>A;Object.assign(e,{reducerPath:Q,endpoints:{},internalActions:{onOnline:HI,onOffline:GI,onFocus:SI,onFocusLost:RI},util:{}});const l=function({serializeQueryArgs:A,reducerPath:e,createSelector:I}){const g=A=>Ag,Q=A=>eg;return{buildQuerySelector:function(A,e){return a(A,e,t)},buildInfiniteQuerySelector:function(A,e){const{infiniteQueryOptions:I}=e;return a(A,e,function(A){const e={...A,...fI(A.status)},{isLoading:g,isError:Q,direction:t}=e,B="forward"===t,i="backward"===t;return{...e,hasNextPage:C(I,e.data,e.originalArgs),hasPreviousPage:n(I,e.data,e.originalArgs),isFetchingNextPage:g&&B,isFetchingPreviousPage:g&&i,isFetchNextPageError:Q&&B,isFetchPreviousPageError:Q&&i}})},buildMutationSelector:function(){return A=>{let e;return e="object"==typeof A?jI(A)??_I:A,I(e===_I?Q:A=>B(A)?.mutations?.[e]??eg,t)}},selectInvalidatedBy:function(A,I){const g=A[e],Q=new Set;for(const A of I.filter(kI).map(vI)){const e=g.provided.tags[A.type];if(!e)continue;let I=(void 0!==A.id?e[A.id]:DI(Object.values(e)))??[];for(const A of I)Q.add(A)}return DI(Array.from(Q.values()).map(A=>{const e=g.queries[A];return e?[{queryCacheKey:A,endpointName:e.endpointName,originalArgs:e.originalArgs}]:[]}))},selectCachedArgsForQuery:function(A,e){return Object.values(i(A)).filter(A=>A?.endpointName===e&&"uninitialized"!==A.status).map(A=>A.originalArgs)},selectApiState:B,selectQueries:i,selectMutations:function(A){return B(A)?.mutations},selectQueryEntry:E,selectConfig:function(A){return B(A)?.config}};function t(A){return{...A,...fI(A.status)}}function B(A){return A[e]}function i(A){return B(A)?.queries}function E(A,e){return i(A)?.[e]}function a(e,Q,t){return B=>{if(B===_I)return I(g,t);const i=A({queryArgs:B,endpointDefinition:Q,endpointName:e});return I(A=>E(A,i)??Ag,t)}}function C(A,e,I){return!!e&&null!=TI(A,e,I)}function n(A,e,I){return!(!e||!A.getPreviousPageParam)&&null!=VI(A,e,I)}}({serializeQueryArgs:t,reducerPath:Q,createSelector:A}),{selectInvalidatedBy:d,selectCachedArgsForQuery:f,buildQuerySelector:w,buildInfiniteQuerySelector:u,buildMutationSelector:y}=l;tg(e.util,{selectInvalidatedBy:d,selectCachedArgsForQuery:f});const{queryThunk:D,infiniteQueryThunk:k,mutationThunk:p,patchQueryData:m,updateQueryData:F,upsertQueryData:S,prefetch:R,buildMatchThunkActions:H}=function({reducerPath:A,baseQuery:e,context:{endpointDefinitions:I},serializeQueryArgs:g,api:Q,assertTagType:t,selectors:B,onSchemaFailure:i,catchSchemaFailure:E,skipSchemaValidation:a}){function C(A,e,I=0){const g=[e,...A];return I&&g.length>I?g.slice(0,-1):g}function n(A,e,I=0){const g=[...A,e];return I&&g.length>I?g.slice(1):g}const o=(A,e)=>A.query&&A[e]?A[e]:YI,r=async(A,{signal:g,abort:Q,rejectWithValue:t,fulfillWithValue:r,dispatch:c,getState:h,extra:l})=>{const d=I[A.endpointName],{metaSchema:f,skipSchemaValidation:w=a}=d;try{let u=YI;const y={signal:g,abort:Q,dispatch:c,getState:h,extra:l,endpoint:A.endpointName,type:A.type,forced:"query"===A.type?s(A,h()):void 0,queryCacheKey:"query"===A.type?A.queryCacheKey:void 0},D="query"===A.type?A[PI]:void 0;let k;const p=async(e,I,g,Q)=>{if(null==I&&e.pages.length)return Promise.resolve({data:e});const t={queryArg:A.originalArgs,pageParam:I},B=await m(t),i=Q?C:n;return{data:{pages:i(e.pages,B.data,g),pageParams:i(e.pageParams,I,g)},meta:B.meta}};async function m(A){let I;const{extraOptions:g,argSchema:Q,rawResponseSchema:t,responseSchema:B}=d;if(Q&&!qI(w,"arg")&&(A=await KI(Q,A,"argSchema",{})),D?I=D():d.query?(u=o(d,"transformResponse"),I=await e(d.query(A),y,g)):I=await d.queryFn(A,y,g,A=>e(A,y,g)),I.error)throw new FI(I.error,I.meta);let{data:i}=I;t&&!qI(w,"rawResponse")&&(i=await KI(t,I.data,"rawResponseSchema",I.meta));let E=await u(i,I.meta,A);return B&&!qI(w,"response")&&(E=await KI(B,E,"responseSchema",I.meta)),{...I,data:E}}if("query"===A.type&&"infiniteQueryOptions"in d){const{infiniteQueryOptions:F}=d,{maxPages:S=1/0}=F;let R;const H={pages:[],pageParams:[]},G=B.selectQueryEntry(h(),A.queryCacheKey)?.data,U=s(A,h())&&!A.direction||!G?H:G;if("direction"in A&&A.direction&&U.pages.length){const M="backward"===A.direction,J=(M?VI:TI)(F,U,A.originalArgs);R=await p(U,J,S,M)}else{const{initialPageParam:b=F.initialPageParam}=A,v=G?.pageParams??[],P=v[0]??b,x=v.length;R=await p(U,P,S),D&&(R={data:R.data.pages[0]});for(let N=1;N<x;N++){const q=TI(F,R.data,A.originalArgs);R=await p(R.data,q,S)}}k=R}else k=await m(A.originalArgs);return f&&!qI(w,"meta")&&k.meta&&(k.meta=await KI(f,k.meta,"metaSchema",k.meta)),r(k.data,LI({fulfilledTimeStamp:Date.now(),baseQueryMeta:k.meta}))}catch(K){let Y=K;if(Y instanceof FI){let L=o(d,"transformErrorResponse");const{rawErrorResponseSchema:T,errorResponseSchema:V}=d;let{value:O,meta:X}=Y;try{T&&!qI(w,"rawErrorResponse")&&(O=await KI(T,O,"rawErrorResponseSchema",X)),f&&!qI(w,"meta")&&(X=await KI(f,X,"metaSchema",X));let j=await L(O,X,A.originalArgs);return V&&!qI(w,"errorResponse")&&(j=await KI(V,j,"errorResponseSchema",X)),t(j,LI({baseQueryMeta:X}))}catch(W){Y=W}}try{if(Y instanceof NI){const z={endpoint:A.endpointName,arg:A.originalArgs,type:A.type,queryCacheKey:"query"===A.type?A.queryCacheKey:void 0};d.onSchemaFailure?.(Y,z),i?.(Y,z);const{catchSchemaFailure:Z=E}=d;if(Z)return t(Z(Y,z),LI({baseQueryMeta:Y._bqMeta}))}}catch(_){Y=_}throw console.error(Y),Y}};function s(A,e){const I=B.selectQueryEntry(e,A.queryCacheKey),g=B.selectConfig(e).refetchOnMountOrArgChange,Q=I?.fulfilledTimeStamp,t=A.forceRefetch??(A.subscribe&&g);return!!t&&(!0===t||(Number(new Date)-Number(Q))/1e3>=t)}const c=()=>qA(`${A}/executeQuery`,r,{getPendingMeta({arg:A}){const e=I[A.endpointName];return LI({startedTimeStamp:Date.now(),...MI(e)?{direction:A.direction}:{}})},condition(A,{getState:e}){const g=e(),Q=B.selectQueryEntry(g,A.queryCacheKey),t=Q?.fulfilledTimeStamp,i=A.originalArgs,E=Q?.originalArgs,a=I[A.endpointName],C=A.direction;return!(!xI(A)&&("pending"===Q?.status||!s(A,g)&&(!UI(a)||!a?.forceRefetch?.({currentArg:i,previousArg:E,endpointState:Q,state:g}))&&t&&!C))},dispatchConditionRejection:!0}),l=c(),d=c(),f=qA(`${A}/executeMutation`,r,{getPendingMeta:()=>LI({startedTimeStamp:Date.now()})});function w(A){return e=>e?.meta?.arg?.endpointName===A}return{queryThunk:l,mutationThunk:f,infiniteQueryThunk:d,prefetch:(A,e,I)=>(g,t)=>{const B=(A=>"force"in A)(I)&&I.force,i=(A=>"ifOlderThan"in A)(I)&&I.ifOlderThan,E=(I=!0)=>{const g={forceRefetch:I,isPrefetch:!0};return Q.endpoints[A].initiate(e,g)},a=Q.endpoints[A].select(e)(t());if(B)g(E());else if(i){const A=a?.fulfilledTimeStamp;if(!A)return void g(E());(Number(new Date)-Number(new Date(A)))/1e3>=i&&g(E())}else g(E(!1))},updateQueryData:(A,e,I,g=!0)=>(t,B)=>{const i=Q.endpoints[A].select(e)(B()),E={patches:[],inversePatches:[],undo:()=>t(Q.util.patchQueryData(A,e,E.inversePatches,g))};if("uninitialized"===i.status)return E;let a;if("data"in i)if(h(i.data)){const[A,e,g]=eA(i.data,I);E.patches.push(...e),E.inversePatches.push(...g),a=A}else a=I(i.data),E.patches.push({op:"replace",path:[],value:a}),E.inversePatches.push({op:"replace",path:[],value:i.data});return 0===E.patches.length||t(Q.util.patchQueryData(A,e,E.patches,g)),E},upsertQueryData:(A,e,I)=>g=>g(Q.endpoints[A].initiate(e,{subscribe:!1,forceRefetch:!0,[PI]:()=>({data:I})})),patchQueryData:(A,e,B,i)=>(E,a)=>{const C=I[A],n=g({queryArgs:e,endpointDefinition:C,endpointName:A});if(E(Q.internalActions.queryResultPatched({queryCacheKey:n,patches:B})),!i)return;const o=Q.endpoints[A].select(e)(a()),r=bI(C.providesTags,o.data,void 0,e,{},t);E(Q.internalActions.updateProvidedBy([{queryCacheKey:n,providedTags:r}]))},buildMatchThunkActions:function(A,e){return{matchPending:mA(RA(A),w(e)),matchFulfilled:mA(UA(A),w(e)),matchRejected:mA(HA(A),w(e))}}}}({baseQuery:I,reducerPath:Q,context:s,api:e,serializeQueryArgs:t,assertTagType:c,selectors:l,onSchemaFailure:n,catchSchemaFailure:o,skipSchemaValidation:r}),{reducer:G,actions:U}=ZI({context:s,queryThunk:D,mutationThunk:p,serializeQueryArgs:t,reducerPath:Q,assertTagType:c,config:{refetchOnFocus:E,refetchOnReconnect:a,refetchOnMountOrArgChange:i,keepUnusedDataFor:B,reducerPath:Q,invalidationBehavior:C}});tg(e.util,{patchQueryData:m,updateQueryData:F,upsertQueryData:S,prefetch:R,resetApiState:U.resetApiState,upsertQueryEntries:U.cacheEntriesUpserted}),tg(e.internalActions,U);const M={currentSubscriptions:new Map,currentPolls:new Map,runningQueries:new Map,runningMutations:new Map},{buildInitiateQuery:J,buildInitiateInfiniteQuery:b,buildInitiateMutation:v,getRunningMutationThunk:P,getRunningMutationsThunk:x,getRunningQueriesThunk:N,getRunningQueryThunk:q}=function({serializeQueryArgs:A,queryThunk:e,infiniteQueryThunk:I,mutationThunk:g,api:Q,context:t,internalState:B}){const{runningQueries:i,runningMutations:E}=B,{unsubscribeQueryResult:a,removeMutationResult:C,updateSubscriptionOptions:n}=Q.internalActions;return{buildInitiateQuery:function(A,e){return o(A,e)},buildInitiateInfiniteQuery:function(A,e){return o(A,e)},buildInitiateMutation:function(A){return(e,{track:I=!0,fixedCacheKey:Q}={})=>(t,B)=>{const i=g({type:"mutation",endpointName:A,originalArgs:e,track:I,fixedCacheKey:Q}),a=t(i),{requestId:n,abort:o,unwrap:r}=a,s=(c=A=>({error:A}),a.unwrap().then(A=>({data:A})).catch(c));var c;const h=Object.assign(s,{arg:a.arg,requestId:n,abort:o,unwrap:r,reset:()=>{t(C({requestId:n,fixedCacheKey:Q}))}}),l=E.get(t)||{};return E.set(t,l),l[n]=h,h.then(()=>{delete l[n],yI(l)||E.delete(t)}),Q&&(l[Q]=h,h.then(()=>{l[Q]===h&&(delete l[Q],yI(l)||E.delete(t))})),h}},getRunningQueryThunk:function(e,I){return g=>{const Q=t.endpointDefinitions[e],B=A({queryArgs:I,endpointDefinition:Q,endpointName:e});return i.get(g)?.[B]}},getRunningMutationThunk:function(A,e){return A=>E.get(A)?.[e]},getRunningQueriesThunk:function(){return A=>Object.values(i.get(A)||{}).filter(kI)},getRunningMutationsThunk:function(){return A=>Object.values(E.get(A)||{}).filter(kI)}};function o(g,t){const B=(E,{subscribe:C=!0,forceRefetch:o,subscriptionOptions:r,[PI]:s,...c}={})=>(h,l)=>{const d=A({queryArgs:E,endpointDefinition:t,endpointName:g});let f;const w={...c,type:"query",subscribe:C,forceRefetch:o,subscriptionOptions:r,endpointName:g,originalArgs:E,queryCacheKey:d,[PI]:s};if(UI(t))f=e(w);else{const{direction:A,initialPageParam:e}=c;f=I({...w,direction:A,initialPageParam:e})}const u=Q.endpoints[g].select(E),y=h(f),D=u(l()),{requestId:k,abort:p}=y,m=D.requestId!==k,F=i.get(h)?.[d],S=()=>u(l()),R=Object.assign(s?y.then(S):m&&!F?Promise.resolve(D):Promise.all([F,y]).then(S),{arg:E,requestId:k,subscriptionOptions:r,queryCacheKey:d,abort:p,async unwrap(){const A=await R;if(A.isError)throw A.error;return A.data},refetch:()=>h(B(E,{subscribe:!1,forceRefetch:!0})),unsubscribe(){C&&h(a({queryCacheKey:d,requestId:k}))},updateSubscriptionOptions(A){R.subscriptionOptions=A,h(n({endpointName:g,requestId:k,queryCacheKey:d,options:A}))}});if(!F&&!m&&!s){const A=(G=h,U={},(H=i).has(G)?H.get(G):H.set(G,U).get(G));A[d]=R,R.then(()=>{delete A[d],yI(A)||i.delete(h)})}var H,G,U;return R};return B}}({queryThunk:D,mutationThunk:p,infiniteQueryThunk:k,api:e,serializeQueryArgs:t,context:s,internalState:M});tg(e.util,{getRunningMutationThunk:P,getRunningMutationsThunk:x,getRunningQueryThunk:q,getRunningQueriesThunk:N});const{middleware:K,actions:Y}=sg({reducerPath:Q,context:s,queryThunk:D,mutationThunk:p,infiniteQueryThunk:k,api:e,assertTagType:c,selectors:l,getRunningQueryThunk:q,internalState:M});return tg(e.util,Y),tg(e,{reducer:G,middleware:K}),{name:cg,injectEndpoint(A,I){const g=e,Q=g.endpoints[A]??={};UI(I)&&tg(Q,{name:A,select:w(A,I),initiate:J(A,I)},H(D,A)),"mutation"===I.type&&tg(Q,{name:A,select:y(),initiate:v(A)},H(p,A)),MI(I)&&tg(Q,{name:A,select:u(A,I),initiate:b(A,I)},H(D,A))}}}}))());const lg=new Blob(['const e=(e,t)=>t.some(t=>e instanceof t);let t,a;const n=new WeakMap,o=new WeakMap,r=new WeakMap;let s={get(e,t,a){if(e instanceof IDBTransaction){if("done"===t)return n.get(e);if("store"===t)return a.objectStoreNames[1]?void 0:a.objectStore(a.objectStoreNames[0])}return d(e[t])},set:(e,t,a)=>(e[t]=a,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function i(e){s=e(s)}function c(e){return(a||(a=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(l(this),t),d(this.request)}:function(...t){return d(e.apply(l(this),t))}}function u(a){return"function"==typeof a?c(a):(a instanceof IDBTransaction&&function(e){if(n.has(e))return;const t=new Promise((t,a)=>{const n=()=>{e.removeEventListener("complete",o),e.removeEventListener("error",r),e.removeEventListener("abort",r)},o=()=>{t(),n()},r=()=>{a(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",o),e.addEventListener("error",r),e.addEventListener("abort",r)});n.set(e,t)}(a),e(a,t||(t=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(a,s):a)}function d(e){if(e instanceof IDBRequest)return function(e){const t=new Promise((t,a)=>{const n=()=>{e.removeEventListener("success",o),e.removeEventListener("error",r)},o=()=>{t(d(e.result)),n()},r=()=>{a(e.error),n()};e.addEventListener("success",o),e.addEventListener("error",r)});return r.set(t,e),t}(e);if(o.has(e))return o.get(e);const t=u(e);return t!==e&&(o.set(e,t),r.set(t,e)),t}const l=e=>r.get(e);const w=["get","getKey","getAll","getAllKeys","count"],h=["put","add","delete","clear"],m=new Map;function g(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(m.get(t))return m.get(t);const a=t.replace(/FromIndex$/,""),n=t!==a,o=h.includes(a);if(!(a in(n?IDBIndex:IDBObjectStore).prototype)||!o&&!w.includes(a))return;const r=async function(e,...t){const r=this.transaction(e,o?"readwrite":"readonly");let s=r.store;return n&&(s=s.index(t.shift())),(await Promise.all([s[a](...t),o&&r.done]))[0]};return m.set(t,r),r}i(e=>({...e,get:(t,a,n)=>g(t,a)||e.get(t,a,n),has:(t,a)=>!!g(t,a)||e.has(t,a)}));const k=["continue","continuePrimaryKey","advance"],y={},b=new WeakMap,f=new WeakMap,I={get(e,t){if(!k.includes(t))return e[t];let a=y[t];return a||(a=y[t]=function(...e){b.set(this,f.get(this)[t](...e))}),a}};async function*x(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;const a=new Proxy(t,I);for(f.set(a,t),r.set(a,l(t));t;)yield a,t=await(b.get(a)||t.continue()),b.delete(a)}function p(t,a){return a===Symbol.asyncIterator&&e(t,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===a&&e(t,[IDBIndex,IDBObjectStore])}i(e=>({...e,get:(t,a,n)=>p(t,a)?x:e.get(t,a,n),has:(t,a)=>p(t,a)||e.has(t,a)}));const D=64*Uint8Array.BYTES_PER_ELEMENT,B="p2party";async function S(){return function(e,t,{blocked:a,upgrade:n,blocking:o,terminated:r}={}){const s=indexedDB.open(e,t),i=d(s);return n&&s.addEventListener("upgradeneeded",e=>{n(d(s.result),e.oldVersion,e.newVersion,d(s.transaction),e)}),a&&s.addEventListener("blocked",e=>a(e.oldVersion,e.newVersion,e)),i.then(e=>{r&&e.addEventListener("close",()=>r()),o&&e.addEventListener("versionchange",e=>o(e.oldVersion,e.newVersion,e))}).catch(()=>{}),i}(B,16,{upgrade(e,t,a,n){if(e.objectStoreNames.contains("addressBook")){const e=n.objectStore("addressBook");e.indexNames.contains("username")||e.createIndex("username","username",{unique:!1}),e.indexNames.contains("peerId")||e.createIndex("peerId","peerId",{unique:!0}),e.indexNames.contains("peerPublicKey")||e.createIndex("peerPublicKey","peerPublicKey",{unique:!0})}else{const t=e.createObjectStore("addressBook",{keyPath:["peerId"]});t.createIndex("username","username",{unique:!1}),t.createIndex("peerId","peerId",{unique:!0}),t.createIndex("peerPublicKey","peerPublicKey",{unique:!0})}if(e.objectStoreNames.contains("blacklist")){const e=n.objectStore("blacklist");e.indexNames.contains("username")||e.createIndex("username","username",{unique:!1}),e.indexNames.contains("peerId")||e.createIndex("peerId","peerId",{unique:!0}),e.indexNames.contains("peerPublicKey")||e.createIndex("peerPublicKey","peerPublicKey",{unique:!0})}else{const t=e.createObjectStore("blacklist",{keyPath:["peerId"]});t.createIndex("username","username",{unique:!1}),t.createIndex("peerId","peerId",{unique:!0}),t.createIndex("peerPublicKey","peerPublicKey",{unique:!0})}if(e.objectStoreNames.contains("uniqueRoom")){const e=n.objectStore("uniqueRoom");e.indexNames.contains("roomUrl")||e.createIndex("roomUrl","roomUrl",{unique:!0}),e.indexNames.contains("roomId")||e.createIndex("roomId","roomId",{unique:!0})}else{const t=e.createObjectStore("uniqueRoom",{keyPath:["roomId"]});t.createIndex("roomUrl","roomUrl",{unique:!0}),t.createIndex("roomId","roomId",{unique:!0})}if(e.objectStoreNames.contains("messageData")){const e=n.objectStore("messageData");e.indexNames.contains("roomId")||e.createIndex("roomId","roomId",{unique:!1}),e.indexNames.contains("hash")||e.createIndex("hash","hash",{unique:!1}),e.indexNames.contains("merkleRoot")||e.createIndex("merkleRoot","merkleRoot",{unique:!0}),e.indexNames.contains("fromPeerId")||e.createIndex("fromPeerId","fromPeerId",{unique:!1})}else{const t=e.createObjectStore("messageData",{keyPath:["timestamp","roomId","merkleRoot"]});t.createIndex("roomId","roomId",{unique:!1}),t.createIndex("hash","hash",{unique:!1}),t.createIndex("merkleRoot","merkleRoot",{unique:!0}),t.createIndex("fromPeerId","fromPeerId",{unique:!1})}if(e.objectStoreNames.contains("chunks")){const e=n.objectStore("chunks");e.indexNames.contains("merkleRoot")||e.createIndex("merkleRoot","merkleRoot",{unique:!1}),e.indexNames.contains("hash")||e.createIndex("hash","hash",{unique:!1})}else{const t=e.createObjectStore("chunks",{keyPath:["merkleRoot","chunkIndex"]});t.createIndex("merkleRoot","merkleRoot",{unique:!1}),t.createIndex("hash","hash",{unique:!1})}if(e.objectStoreNames.contains("newChunks")){const e=n.objectStore("newChunks");e.indexNames.contains("hash")||e.createIndex("hash","hash",{unique:!1}),e.indexNames.contains("merkleRoot")||e.createIndex("merkleRoot","merkleRoot",{unique:!1}),e.indexNames.contains("realChunkHash")||e.createIndex("realChunkHash","realChunkHash",{unique:!0})}else{const t=e.createObjectStore("newChunks",{keyPath:["hash","chunkIndex"]});t.createIndex("hash","hash",{unique:!1}),t.createIndex("merkleRoot","merkleRoot",{unique:!1}),t.createIndex("realChunkHash","realChunkHash",{unique:!0})}if(e.objectStoreNames.contains("sendQueue")){const e=n.objectStore("sendQueue");e.indexNames.contains("labelPeer")||e.createIndex("labelPeer",["label","toPeerId"],{unique:!1})}else{e.createObjectStore("sendQueue",{keyPath:["position","label","toPeerId"]}).createIndex("labelPeer",["label","toPeerId"],{unique:!1})}}})}async function R(){await function(e,{blocked:t}={}){const a=indexedDB.deleteDatabase(e);return t&&a.addEventListener("blocked",e=>t(e.oldVersion,e)),d(a).then(()=>{})}(B,{blocked(){console.error("DB deletion BLOCKED")}})}onmessage=async e=>{const t=e.data,{id:a,method:n}=t;try{let e;switch(n){case"getDBAddressBookEntry":e=await async function(e,t){if(!e&&!t)return;if(e&&e.length<10&&!t)return;if(t&&64!==t.length&&!e)return;const a=await S();try{const n=a.transaction("addressBook","readonly"),o=e?n.objectStore("addressBook").index("peerId"):n.objectStore("addressBook").index("peerPublicKey"),r=e?await o.get(e):await o.get(t);return await n.done,a.close(),r?{username:r.username,peerId:r.peerId,peerPublicKey:r.peerPublicKey}:void 0}catch(e){return void a.close()}}(...t.args);break;case"getAllDBAddressBookEntries":e=await async function(){try{const e=await S(),t=await e.getAll("addressBook");return e.close(),t}catch(e){return[]}}(...t.args);break;case"setDBAddressBookEntry":e=await async function(e,t,a){try{const n=await S(),o=n.transaction(["addressBook"],"readwrite"),r=o.objectStore("addressBook"),s=r.index("peerId"),i=r.index("peerPublicKey"),c=await s.get(t),u=await i.get(a);(!c&&!u||c&&!u||!c&&u)&&await r.put({username:e,peerId:t,peerPublicKey:a,dateAdded:Date.now()}),await o.done,n.close()}catch(e){console.error(e)}}(...t.args);break;case"deleteDBAddressBookEntry":e=await async function(e,t,a){const n=!e||0===e.length,o=!t||t.length<10,r=!a||64!==a.length;if(n&&o&&r)throw new Error("Cannot delete address book with no data");let s=t??"";try{const n=await S(),i=n.transaction("addressBook","readwrite"),c=i.objectStore("addressBook");if(o)if(r){const t=c.index("username"),a=await t.getKey(e);if(a){const n=await t.get(e);s=n?.peerId??"",await c.delete(a)}}else{const e=c.index("peerPublicKey"),t=await e.getKey(a);if(t){const n=await e.get(a);s=n?.peerId??"",await c.delete(t)}}else{const e=c.index("peerId"),a=await e.getKey(t);a&&await c.delete(a)}await i.done,n.close()}catch{}return s}(...t.args);break;case"getDBPeerIsBlacklisted":e=await async function(e,t){if(!e&&!t)return!1;if(e&&e.length<10&&!t)return!1;if(t&&64!==t.length&&!e)return!1;try{const a=await S(),n=a.transaction("blacklist","readonly"),o=e?n.objectStore("blacklist").index("peerId"):n.objectStore("blacklist").index("peerPublicKey"),r=e?await o.get(e):await o.get(t);return await n.done,a.close(),!!r}catch(e){return!1}}(...t.args);break;case"getAllDBBlacklisted":e=await async function(){const e=await S();try{const t=await e.getAll("blacklist");return e.close(),t}catch(t){return e.close(),[]}}(...t.args);break;case"setDBPeerInBlacklist":e=await async function(e,t){try{const a=await S(),n=a.transaction(["blacklist"],"readwrite"),o=n.objectStore("blacklist"),r=o.index("peerId"),s=o.index("peerPublicKey"),i=await r.get(e),c=await s.get(t);(!i&&!c||i&&!c||!i&&c)&&await o.put({peerId:e,peerPublicKey:t,dateAdded:Date.now()}),await n.done,a.close()}catch(e){console.error(e)}}(...t.args);break;case"deleteDBPeerFromBlacklist":e=await async function(e,t){const a=!e||e.length<10,n=!t||64!==t.length;if(a&&n)throw new Error("Cannot delete blacklisted with no data");try{const n=await S(),o=n.transaction("blacklist","readwrite"),r=o.objectStore("blacklist");if(a){const e=r.index("peerPublicKey"),a=await e.getKey(t);a&&await r.delete(a)}else{const t=r.index("peerId"),a=await t.getKey(e);a&&await r.delete(a)}await o.done,n.close()}catch(e){console.error(e)}}(...t.args);break;case"getAllDBUniqueRooms":e=await async function(){const e=await S();try{const t=await e.getAll("uniqueRoom");return e.close(),t}catch(t){return e.close(),[]}}(...t.args);break;case"setDBUniqueRoom":e=await async function(e,t){try{const a=await S(),n=a.transaction(["uniqueRoom"],"readwrite"),o=n.objectStore("uniqueRoom"),r=o.index("roomUrl"),s=o.index("roomId"),i=await r.get(e),c=await s.get(t);if(!i&&!c){const a=Date.now();await o.put({roomId:t,roomUrl:e,messageCount:0,lastMessageMerkleRoot:"",createdAt:a,updatedAt:a})}await n.done,a.close()}catch(e){console.error(e)}}(...t.args);break;case"getDBMessageData":e=await async function(e,t){try{const a=await S(),n=a.transaction(["messageData"],"readonly"),o=n.objectStore("messageData"),r=o.index("merkleRoot"),s=o.index("hash");if(e&&e.length===2*D){const o=await r.get(e);if(o)return await n.done,a.close(),o;if(t&&t.length===2*D){const e=await s.get(t);return await n.done,a.close(),e}return await n.done,void a.close()}if(t&&t.length===2*D){const e=await s.get(t);return await n.done,a.close(),e}return await n.done,void a.close()}catch(e){return void console.error(e)}}(...t.args);break;case"getDBRoomMessageData":e=await async function(e){const t=await S(),a=await t.getAllFromIndex("messageData","roomId",e);t.close();const n=a.length,o=[];for(let t=0;t<n;t++)o.push({roomId:e,merkleRoot:a[t].merkleRoot,hash:a[t].hash,fromPeerId:a[t].fromPeerId,filename:a[t].filename,messageType:a[t].messageType,savedSize:a[t].savedSize,totalSize:a[t].totalSize,channelLabel:a[t].channelLabel,timestamp:a[t].timestamp});return o}(...t.args);break;case"setDBRoomMessageData":e=await async function(e,t,a,n,o,r,s,i,c,u){try{const d=await S(),l=d.transaction(["messageData","uniqueRoom"],"readwrite"),w=l.objectStore("messageData"),h=await w.index("merkleRoot").get(t),m=h?.savedSize??0;try{await w.put({roomId:e,timestamp:u,merkleRoot:t,hash:a,fromPeerId:n,filename:i,messageType:s,savedSize:m+o<=r?m+o:r,totalSize:r,channelLabel:c})}catch(e){throw await l.done,d.close(),e}const g=l.objectStore("uniqueRoom"),k=await g.index("roomId").get(e);if(k&&k.lastMessageMerkleRoot!==t)try{await g.put({...k,lastMessageMerkleRoot:t,messageCount:k.messageCount+1,updatedAt:u})}catch(e){throw await l.done,d.close(),e}await l.done,d.close()}catch(e){throw console.error(e),e}}(...t.args);break;case"getDBChunk":e=await async function(e,t){const a=await S(),n=await a.get("chunks",[e,t]);return a.close(),n?.data}(...t.args);break;case"existsDBChunk":e=await async function(e,t){const a=await S(),n=await a.count("chunks",[e,t]);return a.close(),n>0}(...t.args);break;case"getDBNewChunk":e=await async function(e,t){try{const a=await S(),n=t??-1;if(n>-1){const t=await a.get("newChunks",[e,n]);return a.close(),t}{const t=a.transaction("newChunks"),n=t.objectStore("newChunks").index("realChunkHash"),o=await n.get(e);return await t.done,a.close(),o}}catch(e){return void console.error(e)}}(...t.args);break;case"existsDBNewChunk":e=await async function(e,t){const a=await S(),n=await a.count("newChunks",[e,t]);return a.close(),n>0}(...t.args);break;case"getDBSendQueue":e=await async function(e,t,a){const n=await S();if(a){const o=await n.get("sendQueue",[a,e,t]);return n.close(),o?[o]:[]}const o=n.transaction("sendQueue","readonly").objectStore("sendQueue").index("labelPeer"),r=IDBKeyRange.only([e,t]),s=await o.getAll(r);return n.close(),s}(...t.args);break;case"getDBAllChunks":e=await async function(e,t){try{const a=await S(),n=a.transaction("chunks","readonly"),o=n.objectStore("chunks"),r=o.index("hash"),s=o.index("merkleRoot");if(e&&e.length===2*D){const t=await s.getAll(e);return 0===t.length?(await n.done,a.close(),[]):(await n.done,a.close(),t)}if(t&&t.length===2*D){const e=await r.getAll(t);return await n.done,a.close(),e.length>0?e.filter(t=>t.merkleRoot===e[0].merkleRoot):e}return await n.done,a.close(),[]}catch(e){return console.error(e),[]}}(...t.args);break;case"getDBAllChunksCount":e=await async function(e,t){try{const a=await S(),n=a.transaction(["chunks"],"readonly"),o=n.objectStore("chunks"),r=o.index("hash"),s=o.index("merkleRoot");if(t&&t.length===2*D){const o=await r.count(t);if(0===o){if(e&&e.length===2*D){const t=await s.count(e);return await n.done,a.close(),t}return await n.done,a.close(),0}return await n.done,a.close(),o}if(e&&e.length===2*D){const t=await s.count(e);return await n.done,a.close(),t}return await n.done,a.close(),0}catch(e){return 0}}(...t.args);break;case"setDBChunk":e=await async function(e){const t=await S();try{await t.add("chunks",e)}catch(e){}t.close()}(...t.args);break;case"getDBAllNewChunks":e=await async function(e,t){if(!e&&!t)return[];if(e?.length!==2*D&&t?.length!==2*D)return[];const a=await S();if((e?await a.countFromIndex("newChunks","hash",e):await a.countFromIndex("newChunks","merkleRoot",t))>0){const n=e?await a.getAllFromIndex("newChunks","hash",e):await a.getAllFromIndex("newChunks","merkleRoot",t);return a.close(),n}{const n=a.transaction("newChunks","readonly").objectStore("newChunks"),o=e?n.index("hash"):n.index("merkleRoot"),r=e?IDBKeyRange.only(e):IDBKeyRange.only(t),s=await o.getAll(r);return a.close(),s}}(...t.args);break;case"getDBAllNewChunksCount":e=await async function(e){const t=await S(),a=await t.countFromIndex("newChunks","hash",e);return t.close(),a}(...t.args);break;case"setDBNewChunk":e=await async function(e){const t=await S();await t.put("newChunks",e),t.close()}(...t.args);break;case"setDBSendQueue":e=await async function(e){const t=await S();await t.put("sendQueue",e),t.close()}(...t.args);break;case"countDBSendQueue":e=await async function(e,t){const a=await S(),n=a.transaction("sendQueue","readonly").objectStore("sendQueue").index("labelPeer"),o=IDBKeyRange.only([e,t]),r=await n.count(o);return a.close(),r}(...t.args);break;case"deleteDBChunk":e=await async function(e,t){try{const a=await S(),n=a.transaction("chunks","readwrite"),o=n.objectStore("chunks");if(t){const a=IDBKeyRange.only([e,t]);await o.delete(a)}else{const t=o.index("hash"),a=await t.getAllKeys(e),n=a.length;if(0===n){const t=o.index("merkleRoot"),a=await t.getAllKeys(e),n=a.length;for(let e=0;e<n;e++)await o.delete(a[e])}else for(let e=0;e<n;e++)await o.delete(a[e])}await n.done,a.close()}catch(e){}}(...t.args);break;case"deleteDBNewChunk":e=await async function(e,t,a,n){try{const o=await S(),r=o.transaction("newChunks","readwrite"),s=r.objectStore("newChunks");if(e){const t=s.index("merkleRoot"),a=await t.getAllKeys(e),n=a.length;for(let e=0;e<n;e++)await s.delete(a[e])}else if(a&&n)await s.delete([a,n]);else if(a){const e=s.index("hash"),t=await e.getAllKeys(a),n=t.length;for(let e=0;e<n;e++)await s.delete(t[e])}else if(t){const e=s.index("realChunkHash"),a=await e.getKey(t);a&&await s.delete(a)}await r.done,o.close()}catch(e){console.error(e)}}(...t.args);break;case"deleteDBMessageData":e=await async function(e){try{const t=await S(),a=t.transaction(["messageData","uniqueRoom"],"readwrite"),n=a.objectStore("messageData"),o=a.objectStore("uniqueRoom"),r=n.index("merkleRoot"),s=await r.getAllKeys(e),i=s.length;let c="";for(let e=0;e<i;e++){if(0===e||0===c.length){const t=await n.get(s[e]);c=t?.roomId??""}await n.delete(s[e])}if(c.length>0){const e=o.index("roomId"),t=await e.get(c);if(t){const e=n.index("roomId"),a=await e.getAllKeys(c),r=a.length,s=r>0?await n.get(a[r-1]):void 0;await o.put({...t,messageCount:t.messageCount>0?t.messageCount-1:0,updatedAt:s?.timestamp??Date.now(),lastMessageMerkleRoot:s?.merkleRoot??""})}}await a.done,t.close()}catch(e){}}(...t.args);break;case"deleteDBUniqueRoom":e=await async function(e){try{const t=await S(),a=t.transaction("uniqueRoom","readwrite"),n=a.objectStore("uniqueRoom"),o=n.index("roomId"),r=await o.getKey(e);r&&await n.delete(r),await a.done,t.close()}catch(e){}}(...t.args);break;case"deleteDBSendQueue":e=await async function(e,t,a){try{const n=await S();if(a)await n.delete("sendQueue",[a,e,t]);else{const a=IDBKeyRange.only([e,t]);await n.delete("sendQueue",a)}n.close()}catch(e){}}(...t.args);break;case"deleteDB":e=await R();break;default:return void postMessage({id:a,error:"Method not found"})}postMessage({id:a,result:e})}catch(e){postMessage({id:a,error:String(e)})}};\n//# sourceMappingURL=db.worker.js.map\n'],{type:"application/javascript"}),dg=new Worker(URL.createObjectURL(lg),{type:"module"});let fg=0;const wg=new Map;function ug(A,...e){return new Promise((I,g)=>{const Q=++fg;wg.set(Q,{resolve:I,reject:g}),dg.postMessage({id:Q,method:A,args:e})})}dg.onmessage=A=>{const{id:e,result:I,error:g}=A.data,Q=wg.get(e);Q&&(wg.delete(e),g?Q.reject(g):Q.resolve(I))};const yg=(A,e)=>ug("getDBAddressBookEntry",A,e),Dg=(A,e)=>ug("getDBPeerIsBlacklisted",A,e),kg=()=>ug("getAllDBUniqueRooms"),pg=(A,e)=>ug("getDBMessageData",A,e),mg=A=>ug("getDBRoomMessageData",A),Fg=(A,e,I,g,Q,t,B,i,E,a)=>ug("setDBRoomMessageData",A,e,I,g,Q,t,B,i,E,a),Sg=(A,e)=>ug("getDBNewChunk",A,e),Rg=(A,e)=>ug("getDBSendQueue",A,e),Hg=(A,e)=>ug("getDBAllChunks",A,e),Gg=A=>ug("setDBChunk",A),Ug=A=>ug("setDBNewChunk",A),Mg=A=>ug("setDBSendQueue",A),Jg=(A,e)=>ug("deleteDBChunk",A,e),bg=(A,e,I,g)=>ug("deleteDBNewChunk",A,e,I,g),vg=(A,e,I)=>ug("deleteDBSendQueue",A,e,I),Pg={Text:1,ImagePNG:2,ImageJPEG:3,ImageJPG:4,ImageGIF:5,ImageBMP:6,ImageTIFF:7,ImageSVG:8,ImageWEBP:9,ImageHEIC:10,DocumentPDF:11,DocumentDOC:12,DocumentDOCX:13,DocumentXLS:14,DocumentXLSX:15,DocumentPPT:16,DocumentPPTX:17,DocumentTXT:18,DocumentRTF:19,DocumentODT:20,AudioMP3:21,AudioWAV:22,AudioAAC:23,AudioFLAC:24,AudioOGG:25,AudioM4A:26,VideoMP4:27,VideoAVI:28,VideoMKV:29,VideoMOV:30,VideoWMV:31,VideoFLV:32,VideoWEBM:33,CompressedZIP:34,CompressedRAR:35,Compressed7Z:36,CompressedTAR:37,CompressedGZ:38,CodeHTML:39,CodeCSS:40,CodeJS:41,CodeJSX:42,CodeTS:43,CodeTSX:44,CodeJSON:45,CodeXML:46,CodePY:47,CodeJAVA:48,CodeC:49,CodeCPP:50,CodeCS:51,CodeRB:52,CodePHP:53,CodeSQL:54,EbookEPUB:55,EbookMOBI:56,EbookAZW:57,FontTTF:58,FontOTF:59,ImageICO:60,ExecutableEXE:61,ExecutableDMG:62,ExecutableAPK:63,Unknown:64},xg={Text:"Text",Image:"Image",Document:"Document",Audio:"Audio",Video:"Video",Compressed:"Compressed",Code:"Code",Ebook:"Ebook",Font:"Font",Executable:"Executable",Unknown:"Unknown"},Ng=A=>{switch(A){case Pg.ImagePNG:return"png";case Pg.ImageJPEG:return"jpeg";case Pg.ImageJPG:return"jpg";case Pg.ImageGIF:return"gif";case Pg.ImageBMP:return"bmp";case Pg.ImageTIFF:return"tiff";case Pg.ImageSVG:return"svg";case Pg.ImageWEBP:return"webp";case Pg.ImageHEIC:return"heic";case Pg.DocumentPDF:return"pdf";case Pg.DocumentDOC:return"doc";case Pg.DocumentDOCX:return"docx";case Pg.DocumentXLS:return"xls";case Pg.DocumentXLSX:return"xlsx";case Pg.DocumentPPT:return"ppt";case Pg.DocumentPPTX:return"pptx";case Pg.DocumentTXT:return"txt";case Pg.DocumentRTF:return"rtf";case Pg.DocumentODT:return"odt";case Pg.AudioMP3:return"mp3";case Pg.AudioWAV:return"wav";case Pg.AudioAAC:return"aac";case Pg.AudioFLAC:return"flac";case Pg.AudioOGG:return"ogg";case Pg.AudioM4A:return"m4a";case Pg.VideoMP4:return"mp4";case Pg.VideoAVI:return"avi";case Pg.VideoMKV:return"mkv";case Pg.VideoMOV:return"mov";case Pg.VideoWMV:return"wmv";case Pg.VideoFLV:return"flv";case Pg.VideoWEBM:return"webm";case Pg.CompressedZIP:return"zip";case Pg.CompressedRAR:return"rar";case Pg.Compressed7Z:return"7z";case Pg.CompressedTAR:return"tar";case Pg.CompressedGZ:return"gz";case Pg.CodeHTML:return"html";case Pg.CodeCSS:return"css";case Pg.CodeJS:return"js";case Pg.CodeTS:return"ts";case Pg.CodeJSX:return"jsx";case Pg.CodeTSX:return"tsx";case Pg.CodeJSON:return"json";case Pg.CodeXML:return"xml";case Pg.CodePY:return"py";case Pg.CodeJAVA:return"java";case Pg.CodeC:return"c";case Pg.CodeCPP:return"cpp";case Pg.CodeCS:return"cs";case Pg.CodeRB:return"rb";case Pg.CodePHP:return"php";case Pg.CodeSQL:return"sql";case Pg.EbookEPUB:return"epub";case Pg.EbookMOBI:return"mobi";case Pg.EbookAZW:return"azw";case Pg.FontTTF:return"ttf";case Pg.FontOTF:return"otf";case Pg.ImageICO:return"ico";case Pg.ExecutableEXE:return"exe";case Pg.ExecutableDMG:return"dmg";case Pg.ExecutableAPK:return"apk";default:return""}},qg=A=>{switch(A){case Pg.Text:return"text/plain";case Pg.ImagePNG:return"image/png";case Pg.ImageJPEG:case Pg.ImageJPG:return"image/jpeg";case Pg.ImageGIF:return"image/gif";case Pg.ImageBMP:return"image/bmp";case Pg.ImageTIFF:return"image/tiff";case Pg.ImageSVG:return"image/svg+xml";case Pg.ImageWEBP:return"image/webp";case Pg.ImageHEIC:return"image/heic";case Pg.ImageICO:return"image/vnd.microsoft.icon";case Pg.DocumentPDF:return"application/pdf";case Pg.DocumentDOC:return"application/msword";case Pg.DocumentDOCX:return"application/vnd.openxmlformats-officedocument.wordprocessingml.document";case Pg.DocumentXLS:return"application/vnd.ms-excel";case Pg.DocumentXLSX:return"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";case Pg.DocumentPPT:return"application/vnd.ms-powerpoint";case Pg.DocumentPPTX:return"application/vnd.openxmlformats-officedocument.presentationml.presentation";case Pg.DocumentTXT:return"text/plain";case Pg.DocumentRTF:return"application/rtf";case Pg.DocumentODT:return"application/vnd.oasis.opendocument.text";case Pg.AudioMP3:return"audio/mpeg";case Pg.AudioWAV:return"audio/wav";case Pg.AudioAAC:return"audio/aac";case Pg.AudioFLAC:return"audio/flac";case Pg.AudioOGG:return"audio/ogg";case Pg.AudioM4A:return"audio/mp4";case Pg.VideoMP4:return"video/mp4";case Pg.VideoAVI:return"video/x-msvideo";case Pg.VideoMKV:return"video/x-matroska";case Pg.VideoMOV:return"video/quicktime";case Pg.VideoWMV:return"video/x-ms-wmv";case Pg.VideoFLV:return"video/x-flv";case Pg.VideoWEBM:return"video/webm";case Pg.CompressedZIP:return"application/zip";case Pg.CompressedRAR:return"application/vnd.rar";case Pg.Compressed7Z:return"application/x-7z-compressed";case Pg.CompressedTAR:return"application/x-tar";case Pg.CompressedGZ:return"application/gzip";case Pg.CodeHTML:return"text/html";case Pg.CodeCSS:return"text/css";case Pg.CodeJS:case Pg.CodeJSX:return"application/javascript";case Pg.CodeTS:case Pg.CodeTSX:return"application/typescript";case Pg.CodeJSON:return"application/json";case Pg.CodeXML:return"application/xml";case Pg.CodePY:return"text/x-python";case Pg.CodeJAVA:return"text/x-java-source";case Pg.CodeC:return"text/x-c";case Pg.CodeCPP:return"text/x-c++";case Pg.CodeCS:return"text/plain";case Pg.CodeRB:return"text/x-ruby";case Pg.CodePHP:return"application/x-httpd-php";case Pg.CodeSQL:return"application/sql";case Pg.EbookEPUB:return"application/epub+zip";case Pg.EbookMOBI:return"application/x-mobipocket-ebook";case Pg.EbookAZW:return"application/vnd.amazon.ebook";case Pg.FontTTF:return"font/ttf";case Pg.FontOTF:return"font/otf";case Pg.ExecutableEXE:return"application/vnd.microsoft.portable-executable";case Pg.ExecutableDMG:return"application/x-apple-diskimage";case Pg.ExecutableAPK:return"application/vnd.android.package-archive";default:return"application/octet-stream"}},Kg=A=>{switch(A){case Pg.Text:return xg.Text;case Pg.ImagePNG:case Pg.ImageJPEG:case Pg.ImageJPG:case Pg.ImageGIF:case Pg.ImageBMP:case Pg.ImageTIFF:case Pg.ImageSVG:case Pg.ImageWEBP:case Pg.ImageHEIC:case Pg.ImageICO:return xg.Image;case Pg.DocumentPDF:case Pg.DocumentDOC:case Pg.DocumentDOCX:case Pg.DocumentXLS:case Pg.DocumentXLSX:case Pg.DocumentPPT:case Pg.DocumentPPTX:case Pg.DocumentTXT:case Pg.DocumentRTF:case Pg.DocumentODT:return xg.Document;case Pg.AudioMP3:case Pg.AudioWAV:case Pg.AudioAAC:case Pg.AudioFLAC:case Pg.AudioOGG:case Pg.AudioM4A:return xg.Audio;case Pg.VideoMP4:case Pg.VideoAVI:case Pg.VideoMKV:case Pg.VideoMOV:case Pg.VideoWMV:case Pg.VideoFLV:case Pg.VideoWEBM:return xg.Video;case Pg.CompressedZIP:case Pg.CompressedRAR:case Pg.Compressed7Z:case Pg.CompressedTAR:case Pg.CompressedGZ:return xg.Compressed;case Pg.CodeHTML:case Pg.CodeCSS:case Pg.CodeJS:case Pg.CodeJSX:case Pg.CodeTS:case Pg.CodeTSX:case Pg.CodeJSON:case Pg.CodeXML:case Pg.CodePY:case Pg.CodeJAVA:case Pg.CodeC:case Pg.CodeCPP:case Pg.CodeCS:case Pg.CodeRB:case Pg.CodePHP:case Pg.CodeSQL:return xg.Code;case Pg.EbookEPUB:case Pg.EbookMOBI:case Pg.EbookAZW:return xg.Ebook;case Pg.FontTTF:case Pg.FontOTF:return xg.Font;case Pg.ExecutableEXE:case Pg.ExecutableDMG:case Pg.ExecutableAPK:return xg.Executable;default:return xg.Unknown}},Yg="0123456789abcdef",Lg=new Array(64),Tg=new Array(128),Vg=A=>new Promise(e=>{let I=0;const g=A.length;for(let e=0;e<g;e++)I+=A[e].length;const Q=new Uint8Array(I);let t=0;for(const e of A)Q.set(e,t),t+=e.length;e(Q)}),Og=A=>{const e=A.length,I=e===xe?Tg:32===e?Lg:new Array(2*e);let g=0;for(let Q=0;Q<e;Q++){const e=A[Q];I[g++]=Yg[e>>4],I[g++]=Yg[15&e]}return I.join("")},Xg=A=>{(A=A.replace(/^0x/,"")).length%2!=0&&(A="0"+A);const e=/[G-Z\s]/i.exec(A);if(e)throw new Error(`Found non-hex characters ${e[0]}`);const I=A.match(/[\dA-F]{2}/gi);if(!I)throw new Error("No hex characters in string");const g=I.length,Q=new Uint8Array(g);for(let A=0;A<g;A++)Q[A]=parseInt(I[A],16);return Q},jg=65536,Wg=131072,zg=9+xe+8+8+256+8+8+8,Zg=4+48*(xe+1),_g=Ke+Ne+(zg+Zg)+Xe+Le,$g=jg-_g,AQ=zg+Zg+$g,eQ=We(AQ),IQ=A=>{const e=new Uint8Array(zg);let I=0;new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.schemaVersion),!1),I+=8,e[I]=A.messageType,I+=1,e.set(A.hash,I),I+=xe;new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.totalSize),!1),I+=8;new DataView(e.buffer,I,8).setBigInt64(0,BigInt(A.date.getTime()),!1),I+=8;const g=(new TextEncoder).encode(A.name),Q=new Uint8Array(256);Q.set(g.subarray(0,Math.min(256,g.length))),e.set(Q,I),I+=256;new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.chunkStartIndex),!1),I+=8;new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.chunkEndIndex),!1),I+=8;return new DataView(e.buffer,I,8).setBigUint64(0,BigInt(A.chunkIndex),!1),I+=8,e},gQ=A=>{if(A.length!==zg)throw new Error("Invalid metadata buffer totalSize");let e=0;const I=new DataView(A.buffer,A.byteOffset+e,8),g=Number(I.getBigUint64(0,!1));e+=8;const Q=A[e];e+=1;const t=A.slice(e,e+xe);e+=xe;const B=new DataView(A.buffer,A.byteOffset+e,8),i=Number(B.getBigUint64(0,!1));e+=8;const E=new DataView(A.buffer,A.byteOffset+e,8),a=Number(E.getBigUint64(0,!1)),C=new Date(a);e+=8;const n=A.slice(e,e+256),o=(new TextDecoder).decode(n).replace(/\0+$/,"");e+=256;const r=new DataView(A.buffer,A.byteOffset+e,8),s=Number(r.getBigUint64(0,!1));e+=8;const c=new DataView(A.buffer,A.byteOffset+e,8),h=Number(c.getBigUint64(0,!1));e+=8;const l=new DataView(A.buffer,A.byteOffset+e,8);return{schemaVersion:g,messageType:Q,hash:t,totalSize:i,date:C,name:o,chunkStartIndex:s,chunkEndIndex:h,chunkIndex:Number(l.getBigUint64(0,!1))}},QQ=(A,e,I)=>{e=e??32,I=I??16384;const g=65536,Q=Math.ceil(A/g);if(Q>I)throw new Error(`Memory required is ${String(Q*g)} bytes while declared maximum is ${String(I*g)} bytes`);return Q<e?e:Q};var tQ=()=>{const A=(Ke+Ye)*Uint8Array.BYTES_PER_ELEMENT,e=QQ(A);return new WebAssembly.Memory({initial:e,maximum:e})},BQ=()=>{const A=(Ke+Ye+qe)*Uint8Array.BYTES_PER_ELEMENT,e=QQ(A);return new WebAssembly.Memory({initial:e,maximum:e})},iQ=A=>{const e=(A+Ne+Ye+xe)*Uint8Array.BYTES_PER_ELEMENT,I=QQ(e);return new WebAssembly.Memory({initial:I,maximum:I})},EQ=A=>{const e=(A+Ne+Ke)*Uint8Array.BYTES_PER_ELEMENT,I=QQ(e);return new WebAssembly.Memory({initial:I,maximum:I})},aQ=(A,e)=>{const I=We(A),g=(A+Ke+e+I+Xe+1*(A+Le)+2*Te+2*Ve+Oe)*Uint8Array.BYTES_PER_ELEMENT,Q=QQ(g);return new WebAssembly.Memory({initial:Q,maximum:Q})},CQ=(A,e)=>{const I=ze(A),g=(A+Ye+e+I+2*Te+Oe+Ve)*Uint8Array.BYTES_PER_ELEMENT,Q=QQ(g);return new WebAssembly.Memory({initial:Q,maximum:Q})},nQ=A=>{const e=QQ((2*A+3)*xe);return new WebAssembly.Memory({initial:e,maximum:e})},oQ=A=>{const e=QQ(A*xe+A*(xe+1)+3*xe);return new WebAssembly.Memory({initial:e,maximum:e})},rQ=A=>{const e=A*Uint8Array.BYTES_PER_ELEMENT+4*xe,I=QQ(e);return new WebAssembly.Memory({initial:I,maximum:I})},sQ=A=>{const e=(78643200+A+qe+je)*Uint8Array.BYTES_PER_ELEMENT,I=QQ(e);return new WebAssembly.Memory({initial:I,maximum:I})},cQ=()=>{const A=(Ke+Ne+Ke)*Uint8Array.BYTES_PER_ELEMENT,e=jg-Ke-Ne,I=ze(e),g=(e+Ye+xe+I+2*Te+Oe+Ve)*Uint8Array.BYTES_PER_ELEMENT,Q=Zg*Uint8Array.BYTES_PER_ELEMENT+4*xe,t=QQ(I+jg+2*xe+Ke+Ye+A+g+Q+xe);return new WebAssembly.Memory({initial:t,maximum:t})};function hQ(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var lQ,dQ={exports:{}};var fQ=(lQ||(lQ=1,function(A){async function e(A={}){var e,I=A,g=[],Q=(A,e)=>{throw e};e=self.location.href;var t,B,i="";try{i=new URL(".",e).href}catch{}B=A=>{var e=new XMLHttpRequest;return e.open("GET",A,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)},t=async A=>{var e=await fetch(A,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw new Error(e.status+" : "+e.url)},console.log.bind(console);var E,a,C,n,o,r,s=console.error.bind(console),c=[],h=!1,l=!1,d=!1,f=[];function w(A){s(A="Aborted("+A+")"),h=!0,A+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(A);throw C?.(e),e}async function u(A){return function(A){if(ArrayBuffer.isView(A))return A;if(B)return B(A);throw"both async and sync fetching of the wasm failed"}(A)}async function y(A,e,I){return async function(A,e){try{var I=await u(A);return await WebAssembly.instantiate(I,e)}catch(A){s(`failed to asynchronously prepare wasm: ${A}`),w(A)}}(e,I)}class D{name="ExitStatus";constructor(A){this.message=`Program terminated with exit(${A})`,this.status=A}}var k,p={},m=new Set([]),F={get(A,e){var I=p[e];return I||(I=p[e]=new WebAssembly.Global({value:"i32",mutable:!0})),m.has(e)||(I.required=!0),I}},S=A=>{for(var e,I,g=0,Q=0,t=A.length,B=new Uint8Array((3*t>>2)-("="==A[t-2])-("="==A[t-1]));g<t;g+=4,Q+=3)e=SA[A.charCodeAt(g+1)],I=SA[A.charCodeAt(g+2)],B[Q]=SA[A.charCodeAt(g)]<<2|e>>4,B[Q+1]=e<<4|I>>2,B[Q+2]=I<<6|SA[A.charCodeAt(g+3)];return B},R=A=>{for(;A.length>0;)A.shift()(I)},H="undefined"!=typeof TextDecoder?new TextDecoder:void 0,G=(A,e=0,I,g)=>{var Q=((A,e,I)=>{for(var g=e+I;A[e]&&!(e>=g);)++e;return e})(A,e,I);if(Q-e>16&&A.buffer&&H)return H.decode(A.subarray(e,Q));for(var t="";e<Q;){var B=A[e++];if(128&B){var i=63&A[e++];if(192!=(224&B)){var E=63&A[e++];if((B=224==(240&B)?(15&B)<<12|i<<6|E:(7&B)<<18|i<<12|E<<6|63&A[e++])<65536)t+=String.fromCharCode(B);else{var a=B-65536;t+=String.fromCharCode(55296|a>>10,56320|1023&a)}}else t+=String.fromCharCode((31&B)<<6|i)}else t+=String.fromCharCode(B)}return t},U=A=>{var e=0,I=0;function g(){return A[e++]}function Q(){for(var I=0,g=1;;){var Q=A[e++];if(I+=(127&Q)*g,g*=128,!(128&Q))break}return I}function t(){var I=Q();return G(A,(e+=I)-I,I)}function B(){for(var A=Q(),e=[];A--;)e.push(t());return e}function i(A,e){if(A)throw new Error(e)}if(A instanceof WebAssembly.Module){var E=WebAssembly.Module.customSections(A,"dylink.0");i(0===E.length,"need dylink section"),I=(A=new Uint8Array(E[0])).length}else{i(!(1836278016==new Uint32Array(new Uint8Array(A.subarray(0,24)).buffer)[0]),"need to see wasm magic number"),i(0!==A[8],"need the dylink section to be first"),e=9;var a=Q();I=e+a,i("dylink.0"!==t())}for(var C={neededDynlibs:[],tlsExports:new Set,weakImports:new Set,runtimePaths:[]};e<I;){var n=g(),o=Q();if(1===n)C.memorySize=Q(),C.memoryAlign=Q(),C.tableSize=Q(),C.tableAlign=Q();else if(2===n)C.neededDynlibs=B();else if(3===n)for(var r=Q();r--;){var s=t();256&Q()&&C.tlsExports.add(s)}else if(4===n)for(r=Q();r--;)t(),s=t(),1==(3&Q())&&C.weakImports.add(s);else 5===n?C.runtimePaths=B():e+=o}return C},M=(A,e,I)=>{var g={refcount:1/0,name:A,exports:I,global:!0};return J.loadedLibsByName[A]=g,null!=e&&(J.loadedLibsByHandle[e]=g),g},J={loadedLibsByName:{},loadedLibsByHandle:{},init(){M("__main__",0,GA)}},b=562416,v=(A,e)=>Math.ceil(A/e)*e,P=A=>["__cpp_exception","__c_longjmp","__wasm_apply_data_relocs","__dso_handle","__tls_size","__tls_align","__set_stack_limits","_emscripten_tls_init","__wasm_init_tls","__wasm_call_ctors","__start_em_asm","__stop_em_asm","__start_em_js","__stop_em_js"].includes(A)||A.startsWith("__em_js__"),x=A=>{const e=A.length;return[e%128|128,e>>7,...A]},N={i:127,p:127,j:126,f:125,d:124,e:111},q=A=>x(Array.from(A,A=>N[A])),K=[],Y=new WebAssembly.Table({initial:3,element:"anyfunc"}),L=A=>{var e=K[A];return e||(K[A]=e=Y.get(A)),e},T=(A,e)=>{if(k)for(var I=A;I<A+e;I++){var g=L(I);g&&k.set(g,I)}},V=[],O=(A,e)=>{Y.set(A,e),K[A]=Y.get(A)},X=(A,e)=>{var I=(A=>(k||(k=new WeakMap,T(0,Y.length)),k.get(A)||0))(A);if(I)return I;var g=V.length?V.pop():Y.grow(1);try{O(g,A)}catch(I){if(!(I instanceof TypeError))throw I;var Q=((A,e)=>{var I=Uint8Array.of(0,97,115,109,1,0,0,0,1,...x([1,96,...q(e.slice(1)),...q("v"===e[0]?"":e[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),g=new WebAssembly.Module(I);return new WebAssembly.Instance(g,{e:{f:A}}).exports.f})(A,e);O(g,Q)}return k.set(A,g),g},j=(A,e,I)=>{var g={};for(var Q in A){var t=A[Q];"object"==typeof t&&(t=t.value),"number"==typeof t&&(t+=e),g[Q]=t}return(A=>{for(var e in A)if(!P(e)){var I=A[e];p[e]||=new WebAssembly.Global({value:"i32",mutable:!0}),0==p[e].value&&("function"==typeof I?p[e].value=X(I):"number"==typeof I?p[e].value=I:s(`unhandled export type for '${e}': ${typeof I}`))}})(g),g},W=A=>{var e=GA[A];return!(!e||e.stub)},z=(A,e=!1)=>{var I;return W(A)&&(I=GA[A]),{sym:I,name:A}},Z=[],_=(A,e,I)=>A?G(o,A,e):"",$=(A,e,I,g,Q)=>{var t=U(A);function B(){var I,Q=Math.pow(2,t.memoryAlign),B=t.memorySize?v((A=>{if(l)return kA(A,1);var e=b,I=e+v(A,16);return b=I,p.__heap_base.value=I,e})(t.memorySize+Q),Q):0,i=t.tableSize?Y.length:0;t.tableSize&&Y.grow(t.tableSize);var E=new Proxy({},{get(A,e){switch(e){case"__memory_base":return B;case"__table_base":return i}var Q;return e in GA&&!GA[e].stub?GA[e]:(e in A||(A[e]=(...A)=>(Q||=function(A){var e=z(A).sym;return!e&&g&&(e=g[A]),e||(e=I[A]),e}(e),Q(...A))),A[e])}});m=t.weakImports;var a={"GOT.mem":new Proxy({},F),"GOT.func":new Proxy({},F),env:E,wasi_snapshot_preview1:E};function C(A,g){function Q(A,e){for(var I=[],g=0;g<16&&-1!=e.indexOf("$"+g);g++)I.push("$"+g);I=I.join(","),w("DYNAMIC_EXECUTION=0 was set, cannot eval")}if(T(i,t.tableSize),I=j(g.exports,B),e.allowUndefined||gA(),"__start_em_asm"in I)for(var E=I.__start_em_asm,a=I.__stop_em_asm;E<a;)Q(0,_(E)),E=o.indexOf(0,E)+1;function C(A,e,I){var g=[];if("void"!=(e=e.slice(1,-1)))for(var Q in e=e.split(",")){var t=e[Q].split(" ").pop();g.push(t.replace("*",""))}w("DYNAMIC_EXECUTION=0 was set, cannot eval")}for(var n in I)if(n.startsWith("__em_js__")){E=I[n];var r=_(E).split("<::>");C(n.replace("__em_js__",""),r[0],r[1]),delete I[n]}var s=I.__wasm_apply_data_relocs;s&&(l?s():f.push(s));var c,h=I.__wasm_call_ctors;return h&&(l?h():(c=h,Z.push(c))),I}if(e.loadAsync)return(async()=>{var e;return A instanceof WebAssembly.Module?e=new WebAssembly.Instance(A,a):({module:A,instance:e}=await WebAssembly.instantiate(A,a)),C(0,e)})();var n=A instanceof WebAssembly.Module?A:new WebAssembly.Module(A);return C(0,new WebAssembly.Instance(n,a))}return(e={...e,rpath:{parentLibPath:I,paths:t.runtimePaths}}).loadAsync?t.neededDynlibs.reduce((A,I)=>A.then(()=>IA(I,e,g)),Promise.resolve()).then(B):(t.neededDynlibs.forEach(A=>IA(A,e,g)),B())},AA=(A,e)=>{for(var[I,g]of Object.entries(A)){const A=A=>{W(A)||(GA[A]=g)};A(I);const e="__main_argc_argv";"main"==I&&A(e),I==e&&A("main")}},eA=async A=>{var e=await t(A);return new Uint8Array(e)};function IA(A,e={global:!0,nodelete:!0},I,g){var Q=J.loadedLibsByName[A];if(Q)return e.global&&(Q.global||(Q.global=!0,AA(Q.exports))),e.nodelete&&Q.refcount!==1/0&&(Q.refcount=1/0),Q.refcount++,!e.loadAsync||Promise.resolve(!0);function t(){var I=i+A;if(e.loadAsync)return eA(I);if(!B)throw new Error(`${I}: file not found, and synchronous loading of external files is not available`);return B(I)}function E(){return e.loadAsync?t().then(g=>$(g,e,A,I)):$(t(),e,A,I)}function a(A){Q.global&&AA(A),Q.exports=A}return(Q=M(A,g,"loading")).refcount=e.nodelete?1/0:1,Q.global=e.global,e.loadAsync?E().then(A=>(a(A),!0)):(a(E()),!0)}var gA=()=>{for(var[A,e]of Object.entries(p))if(0==e.value){var I=z(A,!0).sym;if(!I&&!e.required)continue;if("function"==typeof I)e.value=X(I,I.sig);else{if("number"!=typeof I)throw new Error(`bad export type for '${A}': ${typeof I}`);e.value=I}}},QA=0,tA=null,BA=async()=>{if(c.length){for(var A of(QA++,c))await IA(A,{loadAsync:!0,global:!0,nodelete:!0,allowUndefined:!0});gA(),(()=>{if(0==--QA&&tA){var A=tA;tA=null,A()}})()}else gA()},iA=(A,e,I,g)=>w(`Assertion failed: ${_(A)}, at: `+[e?_(e):"unknown filename",I,g?_(g):"unknown function"]);iA.sig="vppip";var EA=new WebAssembly.Global({value:"i32",mutable:!1},4096),aA=new WebAssembly.Global({value:"i32",mutable:!0},562416),CA=new WebAssembly.Global({value:"i32",mutable:!1},1),nA=()=>w("");nA.sig="v";var oA=0,rA=()=>{oA=0};rA.sig="v";var sA={},cA=A=>{if(A instanceof D||"unwind"==A)return E;Q(0,A)},hA=()=>oA>0,lA=A=>{E=A,hA()||(h=!0),Q(0,new D(A))};lA.sig="vi";var dA=(A,e)=>{E=A,hA()||(yA(),d=!0),lA(A)};dA.sig="vi";var fA=A=>{if(!d&&!h)try{A(),(()=>{if(!d&&!hA())try{dA(E)}catch(A){cA(A)}})()}catch(A){cA(A)}},wA=()=>performance.now();wA.sig="d";var uA=(A,e)=>{if(sA[A]&&(clearTimeout(sA[A].id),delete sA[A]),!e)return 0;var I=setTimeout(()=>{delete sA[A],fA(()=>DA(A,wA()))},e);return sA[A]={id:I,timeout_ms:e},0};uA.sig="iid";var yA,DA,kA,pA,mA,FA=A=>{o.length,w("OOM")};FA.sig="ip";for(var SA=new Uint8Array(123),RA=25;RA>=0;--RA)SA[48+RA]=52+RA,SA[65+RA]=RA,SA[97+RA]=26+RA;SA[43]=62,SA[47]=63,n=I.wasmMemory?I.wasmMemory:new WebAssembly.Memory({initial:32,maximum:32}),mA=n.buffer,o=new Uint8Array(mA),new BigInt64Array(mA),new BigUint64Array(mA);var HA,GA={__assert_fail:iA,__heap_base:b,__indirect_function_table:Y,__memory_base:EA,__stack_high:562416,__stack_pointer:aA,__table_base:CA,_abort_js:nA,_emscripten_runtime_keepalive_clear:rA,_setitimer_js:uA,alignfault:function(){w("alignment fault")},emscripten_resize_heap:FA,memory:n,proc_exit:lA,segfault:function(){w("segmentation fault")}};return HA=await async function(){function A(A,e){HA=A.exports,HA=j(HA,4096);var g=U(e);return g.neededDynlibs&&(c=g.neededDynlibs.concat(c)),AA(HA),J.init(),BA(),f.push(HA.__wasm_apply_data_relocs),function(A){I._argon2=A.argon2,I._malloc=A.malloc,I._free=A.free,I._encrypt_chachapoly_asymmetric=A.encrypt_chachapoly_asymmetric,I._decrypt_chachapoly_asymmetric=A.decrypt_chachapoly_asymmetric,I._keypair_from_seed=A.keypair_from_seed,I._keypair_from_secret_key=A.keypair_from_secret_key,I._sign=A.sign,I._verify=A.verify,I._get_merkle_root=A.get_merkle_root,I._get_merkle_proof=A.get_merkle_proof,I._get_merkle_root_from_proof=A.get_merkle_root_from_proof,I._verify_merkle_proof=A.verify_merkle_proof,I._receive_message=A.receive_message,yA=A.__funcs_on_exit,DA=A._emscripten_timeout,A.sbrk,kA=A.calloc,pA=A.realloc,A.emscripten_stack_get_base,A._emscripten_stack_alloc,A.__wasm_apply_data_relocs}(HA),HA}var e={env:GA,wasi_snapshot_preview1:GA,"GOT.mem":new Proxy(GA,F),"GOT.func":new Proxy(GA,F)};r??=S("AGFzbQEAAAAAEQhkeWxpbmsuMAEG8IkCBAIAAYYBFGACf38AYAJ/fwF/YAN/f38AYAAAYAN/f34AYAJ/fwF+YAF/AGABfwF/YAR/f39/AX9gA39/fwF/YAR/f39/AGAEf39/fgBgBX9/fn9/AGAEf39+fwF/YAd/f39/f39/AX9gAn98AX9gAn98AGAFf39/f38Bf2AIf39/f39/f38Bf2AAAX8C4wIPA2VudghzZWdmYXVsdAADA2VudgphbGlnbmZhdWx0AAMWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MQlwcm9jX2V4aXQABgNlbnYjX2Vtc2NyaXB0ZW5fcnVudGltZV9rZWVwYWxpdmVfY2xlYXIAAwNlbnYNX3NldGl0aW1lcl9qcwAPA2VudhZlbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwAAcDZW52CV9hYm9ydF9qcwADA2Vudg1fX2Fzc2VydF9mYWlsAAoDZW52D19fc3RhY2tfcG9pbnRlcgN/AQNlbnYNX19tZW1vcnlfYmFzZQN/AANlbnYMX190YWJsZV9iYXNlA38AB0dPVC5tZW0LX19oZWFwX2Jhc2UDfwEHR09ULm1lbQxfX3N0YWNrX2hpZ2gDfwEDZW52Bm1lbW9yeQIBICADZW52GV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBcAACA1taAQICAQQFAAIEBQUEBAUBBgQCAAcHAQIAAAAEAgAEAAUCAQAHBQUJBQAHCgEEBQIEAgAGAAoLAAAMAgIBAAMDCA0OCQEBAQYGEAERCAgJCAgBCQMSCAcDEwMDBgYBfwFBAAsHqQMXEV9fd2FzbV9jYWxsX2N0b3JzAGEGYXJnb24yAFwGbWFsbG9jABwEZnJlZQAXHWVuY3J5cHRfY2hhY2hhcG9seV9hc3ltbWV0cmljAFsdZGVjcnlwdF9jaGFjaGFwb2x5X2FzeW1tZXRyaWMASRFrZXlwYWlyX2Zyb21fc2VlZABZF2tleXBhaXJfZnJvbV9zZWNyZXRfa2V5AFgEc2lnbgBXBnZlcmlmeQBWD2dldF9tZXJrbGVfcm9vdABVEGdldF9tZXJrbGVfcHJvb2YAVBpnZXRfbWVya2xlX3Jvb3RfZnJvbV9wcm9vZgBTE3ZlcmlmeV9tZXJrbGVfcHJvb2YARw9yZWNlaXZlX21lc3Nh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IAJQDQAgAEHIACAAQcgAEA0iAyACQgOGfCIEEAwgAEHAACAAQcAAEA0gAyAEVq18EAwgAEHQAGohCUKAASADQgOIQv8AgyIEfSIHIAJYBEBCACEDIARC/wCFQgNaBEAgB0L8AYMhBQNAIAkgAyAEfKdqQQAgASADp2pBABALEAogCSADQgGEIgggBHynakEAIAEgCKdqQQAQCxAKIAkgA0IChCIIIAR8p2pBACABIAinakEAEAsQCiAJIANCA4QiCCAEfKdqQQAgASAIp2pBABALEAogA0IEfCIDIAVSDQALCyAHQgODIgVCAFIEQANAIAkgAyAEfKdqQQAgASADp2pBABALEAogA0IBfCEDIAZCAXwiBiAFUg0ACwsgACAJIAogCkGABWoiCxAyIAEgB6dqIQEgAiAHfSICQv8AVgRAA0AgACABIAogCxAyIAFBgAFqIQEgAkKAAX0iAkL/AFYNAAsLAkAgAlANAEIAIQZCACEDIAJCBFoEQCACQvwAgyEEA0AgCSADpyIAakEAIAAgAWpBABALEAogCSAAQQFyIgtqQQAgASALakEAEAsQCiAJIABBAnIiC2pBACABIAtqQQAQCxAKIAkgAEEDciIAakEAIAAgAWpBABALEAogA0IEfCIDIARSDQALCyACQgODIgJQDQADQCAJIAOnIgBqQQAgACABakEAEAsQCiADQgF8IQMgBkIBfCIGIAJSDQALCyAKQcwFIAoQCUEAIQADQCAKQcwFEAggAGpBAEEAEAogCkHMBRAIIABqQQFBABAKIApBzAUQCCAAakECQQAQCiAKQcwFEAggAGpBA0EAEAogCkHMBRAIIABBBHIiAWpBAEEAEAogCkHMBRAIIAFqQQFBABAKIApBzAUQCCABakECQQAQCiAKQcwFEAggAWpBA0EAEAogAEEIaiIAQcAFRw0ACwwBC0IAIQMgAkIEWgRAIAJC/P///w+DIQcDQCAJIAMgBHynakEAIAEgA6dqQQAQCxAKIAkgA0IBhCIFIAR8p2pBACABIAWnakEAEAsQCiAJIANCAoQiBSAEfKdqQQAgASAFp2pBABALEAogCSADQgOEIgUgBHynakEAIAEgBadqQQAQCxAKIANCBHwiAyAHUg0ACwsgAkIDgyICUA0AA0AgCSADIAR8p2pBACABIAOnakEAEAsQCiADQgF8IQMg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//8fgyAOQv////8Pg358IgkgAUHgABANhUIgiSIPIAFBwAAQDSISfCAPQv////8PgyASQgGGQv7///8fg358IhIgDoVCKIkiDiAJfCAOQv////8PgyAJQgGGQv7///8fg358Igl8IANC/////w+DIAlCAYZC/v///x+DfnwiCIVCIIkiEyABQTAQDSIQIAFBEBANIgx8IAxCAYZC/v///x+DIBBC/////w+DfnwiDCABQfAAEA2FQiCJIhEgAUHQABANIg18IBFC/////w+DIA1CAYZC/v///x+DfnwiDSAQhUIoiSIQIAx8IBBC/////w+DIAxCAYZC/v///x+DfnwiDCARhUIwiSIRIA18IBFC/////w+DIA1CAYZC/v///x+DfnwiDXwgE0L/////D4MgDUIBhkL+////H4N+fCIUIAOFQiiJIgMgCHwgA0L/////D4MgCEIBhkL+////H4N+fCIIEAwgAUH4ACAIIBOFQjCJIggQDCABQdAAIAggFHwgCEL/////D4MgFEIBhkL+////H4N+fCIIEAwgAUEoIAMgCIVCAYkQDCABQeAAIA0gEIVCAYkiAyAGfCADQv////8PgyAGQgGGQv7///8fg358IgYgCSAPhUIwiSIJhUIgiSIPIAQgB3wgBEL/////D4MgB0IBhkL+////H4N+fCIEfCAPQv////8PgyAEQgGGQv7///8fg358IgcgA4VCKIkiAyAGfCADQv////8PgyAGQgGGQv7///8fg358IgggD4VCMIkiBhAMIAFBCCAIEAwgAUHYACAGIAd8IAZC/////w+DIAdCAYZC/v///x+DfnwiBxAMIAFBMCADIAeFQgGJEAwgAUHoACACIASFQgGJIgIgDHwgAkL/////D4MgDEIBhkL+////H4N+fCIEIAqFQiCJIgcgCSASfCAJQv////8PgyASQgGGQv7///8fg358IgN8IAdC/////w+DIANCAYZC/v///x+DfnwiBiAChUIoiSICIAR8IAJC/////w+DIARCAYZC/v///x+DfnwiCiAHhUIwiSIEEAwgAUEQIAoQDCABQcAAIAQgBnwgBEL/////D4MgBkIBhkL+////H4N+fCIEEAwgAUE4IAIgBIVCAYkQDCABQfAAIAUgAyAOhUIBiSICfCAFQgGGQv7///8fgyACQv////8Pg358IgUgEYVCIIkiBCALfCAEQv////8PgyALQgGGQv7///8fg358IgcgAoVCKIkiAiAFfCACQv////8PgyAFQgGGQv7///8fg358IgMgBIVCMIkiBRAMIAFBGCADEAwgAUHIACAFIAd8IAVC/////w+DIAdCAYZC/v///x+DfnwiBRAMIAFBICACIAWFQgGJEAwgF0EBaiIXQQhHDQALA0AgGEGAGGogFkEEdGoiAUEAIAFBiAMQDSICIAFBiAEQDSIFfCAFQgGGQv7///8fgyACQv////8Pg358IgUgAUGIBxANhUIgiSIEIAFBiAUQDSIHfCAEQv////8PgyAHQgGGQv7///8fg358IgcgAoVCKIkiAiAFfCACQv////8PgyAFQgGGQv7///8fg358IgUgBIVCMIkiBCABQYgCEA0iAyABQQgQDSIGfCAGQgGGQv7///8fgyADQv////8Pg358IgYgAUGIBhANhUIgiSIKIAFBiAQQDSILfCAKQv////8PgyALQgGGQv7///8fg358IgsgA4VCKIkiAyAGfCADQv////8PgyAGQgGGQv7///8fg358IgYgCoVCMIkiCiALfCAKQv////8PgyALQgGGQv7///8fg358IgsgA4VCAYkiAyABQYACEA0iDiABQQAQDSIJfCAJQgGGQv7///8fgyAOQv////8Pg358IgkgAUGABhANhUIgiSIPIAFBgAQQDSISfCAPQv////8PgyASQgGGQv7///8fg358IhIgDoVCKIkiDiAJfCAOQv////8PgyAJQgGGQv7///8fg358Igl8IANC/////w+DIAlCAYZC/v///x+DfnwiCIVCIIkiEyABQYADEA0iECABQYABEA0iDHwgDEIBhkL+////H4MgEEL/////D4N+fCIMIAFBgAcQDYVCIIkiESABQYAFEA0iDXwgEUL/////D4MgDUIBhkL+////H4N+fCINIBCFQiiJIhAgDHwgEEL/////D4MgDEIBhkL+////H4N+fCIMIBGFQjCJIhEgDXwgEUL/////D4MgDUIBhkL+////H4N+fCINfCATQv////8PgyANQgGGQv7///8fg358IhQgA4VCKIkiAyAIfCADQv////8PgyAIQgGGQv7///8fg358IggQDCABQYgHIAggE4VCMIkiCBAMIAFBgAUgCCAUfCAIQv////8PgyAUQgGGQv7///8fg358IggQDCABQYgCIAMgCIVCAYkQDCABQYAGIA0gEIVCAYkiAyAGfCADQv////8PgyAGQgGGQv7///8fg358IgYgCSAPhUIwiSIJhUIgiSIPIAQgB3wgBEL/////D4MgB0IBhkL+////H4N+fCIEfCAPQv////8PgyAEQgGGQv7///8fg358IgcgA4VCKIkiAyAGfCADQv////8PgyAGQgGGQv7///8fg358IgggD4VCMIkiBhAMIAFBCCAIEAwgAUGIBSAGIAd8IAZC/////w+DIAdCAYZC/v///x+DfnwiBxAMIAFBgAMgAyAHhUIBiRAMIAFBiAYgAiAEhUIBiSICIAx8IAJC/////w+DIAxCAYZC/v///x+DfnwiBCAKhUIgiSIHIAkgEnwgCUL/////D4MgEkIBhkL+////H4N+fCIDfCAHQv////8PgyADQgGGQv7///8fg358IgYgAoVCKIkiAiAEfCACQv////8PgyAEQgGGQv7///8fg358IgogB4VCMIkiBBAMIAFBgAEgChAMIAFBgAQgBCAGfCAEQv////8PgyAGQgGGQv7///8fg358IgQQDCABQYgDIAIgBIVCAYkQDCABQYAHIAUgAyAOhUIBiSICfCAFQgGGQv7///8fgyACQv////8Pg358IgUgEYVCIIkiBCALfCAEQv////8PgyALQgGGQv7///8fg358IgcgAoVCKIkiAiAFfCACQv////8PgyAFQgGGQv7///8fg358IgMgBIVCMIkiBRAMIAFBiAEgAxAMIAFBiAQgBSAHfCAFQv////8PgyAHQgGGQv7///8fg358IgUQDCABQYACIAIgBYVCAYkQDCAWQQFqIhZBCEcNAAsgHCAYQYAQakGACPwKAABBACEWA0AgHCAWQQN0IgFqIhdBACAXQQAQDSAYQYAYaiIeIAFqQQAQDYUQDCAcIAFBCHIiF2oiGkEAIBpBABANIBcgHmpBABANhRAMIBwgAUEQciIXaiIaQQAgGkEAEA0gGEGAGGogF2pBABANhRAMIBwgAUEYciIBaiIXQQAgF0EAEA0gGEGAGGogAWpBABANhRAMIBZBBGoiFkGAAUcNAAsLICFBAWohFiAbQQFqIRsgGUEBaiIZIABBFBAIIhdJDQALCyAYQYAgaiQAC3kCAX8BfiAArUIHfEL4////H4MhAiMBQdCCAmoiAUEAEAgiAEUEQCABQQAjAyIAEAkLAkAgAiAArXwiAkL/////D1gEQCACpyIBPwBBEHRNDQEgARAFDQELIwFB5IQCakEAQTAQCUF/DwsjAUHQggJqQQAgARAJIAALUgEBfyMBQdCCAmoiAigCAEUEQCACIwM2AgALIwFB0IICaigCACAAIAFqIgFBBGpJIAAgAUtyIAFBgAhJcgRAEAAACyABQQNxBEAQAQsgATUCAAtSAQF/IwFB0IICaiICKAIARQRAIAIjAzYCAAsjAUHQggJqKAIAIAAgAWoiAUEEakkgACABS3IgAUGACElyBEAQAAALIAFBA3EEQBABCyABNAIAC/kFAgV/An4jAEHQAGsiAyQAAkAgAgRAQX8hBCAAQdAAakEAEBFQBEAgAEHgAhAWIgVBgQFPBEAgAEHAACAAQcAAEBEiCEKAAXwQECAAQcgAIABByAAQESAIQv9+Vq18EBAgACAAQeAAaiIFECAgAEHgAiAAQeACEBZBgAFrIgQQHiAEQYEBTw0DIAQEQCAFIABB4AFqIAT8CgAACyAAQeACEBYhBQsgAEHAACAAQcAAEBEiCCAFrXwiCRAQIABByAAgAEHIABARIAggCVatfBAQIABB5AIQCwRAIABB2ABCfxAQCyAAQdAAakEAQn8QECAAQeAAaiEGQQAhBEGAAiAFayIHBEAgBSAGakEAIAf8CwALIAAgBhAgIANBACAAQQAQERAMIANBCCAAQQgQERAMIANBECAAQRAQERAMIANBGCAAQRgQERAMIANBICAAQSAQERAMIANBKCAAQSgQERAMIANBMCAAQTAQERAMIANBOCAAQTgQERAMIAIEQCABIAMgAvwKAAALIANBzAAgABAJA0AgA0HMABAIIARqQQBBABAKIANBzAAQCCAEakEBQQAQCiADQcwAEAggBGpBAkEAEAogA0HMABAIIARqQQNBABAKIANBzAAQCCAEQQRyIgBqQQBBABAKIANBzAAQCCAAakEBQQAQCiADQcwAEAggAGpBAkEAEAogA0HMABAIIABqQQNBABAKIARBCGoiBEHAAEcNAAsgA0HMACAGEAlBACEEA0AgA0HMABAIIARqQQBBABAKIANBzAAQCCAEakEBQQAQCiADQcwAEAggBGpBAkEAEAogA0HMABAIIARqQQNBABAKIANBzAAQCCAEQQRyIgBqQQBBABAKIANBzAAQCCAAakEBQQAQCiADQcwAEAggAGpBAkEAEAogA0HMABAIIABqQQNBABAKIARBCGoiBEGAAkcNAAtBACEECyADQdAAaiQAIAQPCxBGAAsjASIAQbOAAmogAEHG/wFqQbICIABBsP8BahAHAAtIAQF/IwFB0IICaiICKAIARQRAIAIjAzYCAAsjAUHQggJqKAIAIAAgAWoiAUECakkgACABS3IgAUGACElyBEAQAAALIAEzAAALyggBA38jAEHAAWsiAiQAIAJBkAFqIgQgARAOIAJB4ABqIgMgBBAOIAMgAxAOIAMgASADEA8gBCAEIAMQDyACQTBqIgEgBBAOIAMgAyABEA8gASADEA4gASABEA4gASABEA4gASABEA4gASABEA4gAyABIAMQDyABIAMQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEgAxAPIAIgARAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAEgAiABEA8gASABEA4gASABEA4gASABEA4gASABEA4gASABEA4gASABEA4gASABEA4gASABEA4gASABEA4gASABEA4gAyABIAMQDyABIAMQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEQDiABIAEgAxAPIAIgARAOQQEhAQNAIAIgAhAOIAFBAWoiAUHkAEcNAAsgAkEwaiIBIAIgARAPIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAEgARAOIAJB4ABqIgMgASADEA8gAyADEA4gAyADEA4gAyADEA4gAyADEA4gAyADEA4gACADIAJBkAFqEA8gAkHAAWokAAuUGgEffyMAQaACayIBJAAgAUHAAWoiAiAAQdAAahAwIAFBkAFqIgQgACACEA8gAUHgAGoiAyAEECEgAUEwQQAQCiABQTAgAUHgABALIAFBMBALchAKIAFBMCABQeEAEAsgAUEwEAtyEAogAUEwIAFB4gAQCyABQTAQC3IQCiABQTAgAUHjABALIAFBMBALchAKIAFBMCABQeQAEAsgAUEwEAtyEAogAUEwIAFB5QAQCyABQTAQC3IQCiABQTAgAUHmABALIAFBMBALchAKIAFBMCABQecAEAsgAUEwEAtyEAogAUEwIAFB6AAQCyABQTAQC3IQCiABQTAgAUHpABALIAFBMBALchAKIAFBMCABQeoAEAsgAUEwEAtyEAogAUEwIAFB6wAQCyABQTAQC3IQCiABQTAgAUHsABALIAFBMBALchAKIAFBMCABQe0AEAsgAUEwEAtyEAogAUEwIAFB7gAQCyABQTAQC3IQCiABQTAgAUHvABALIAFBMBALchAKIAFBMCABQfAAEAsgAUEwEAtyEAogAUEwIAFB8QAQCyABQTAQC3IQCiABQTAgAUHyABALIAFBMBALchAKIAFBMCABQfMAEAsgAUEwEAtyEAogAUEwIAFB9AAQCyABQTAQC3IQCiABQTAgAUH1ABALIAFBMBALchAKIAFBMCABQfYAEAsgAUEwEAtyEAogAUEwIAFB9wAQCyABQTAQC3IQCiABQTAgAUH4ABALIAFBMBALchAKIAFBMCABQfkAEAsgAUEwEAtyEAogAUEwIAFB+gAQCyABQTAQC3IQCiABQTAgAUH7ABALIAFBMBALchAKIAFBMCABQfwAEAsgAUEwEAtyEAogAUEwIAFB/QAQCyABQTAQC3IQCiABQTAgAUH+ABALIAFBMBALchAKIAFBMCABQf8AEAsgAUEwEAtyEAogAUEwEAshDCADIABBKGogAhAPIAFBMGoiAiADECEgAUEAQQAQCiABQQAgAUEwEAsgAUEAEAtyEAogAUEAIAFBMRALIAFBABALchAKIAFBACABQTIQCyABQQAQC3IQCiABQQAgAUEzEAsgAUEAEAtyEAogAUEAIAFBNBALIAFBABALchAKIAFBACABQTUQCyABQQAQC3IQCiABQQAgAUE2EAsgAUEAEAtyEAogAUEAIAFBNxALIAFBABALchAKIAFBACABQTgQCyABQQAQC3IQCiABQQAgAUE5EAsgAUEAEAtyEAogAUEAIAFBOhALIAFBABALchAKIAFBACABQTsQCyABQQAQC3IQCiABQQAgAUE8EAsgAUEAEAtyEAogAUEAIAFBPRALIAFBABALchAKIAFBACABQT4QCyABQQAQC3IQCiABQQAgAUE/EAsgAUEAEAtyEAogAUEAIAFBwAAQCyABQQAQC3IQCiABQQAgAUHBABALIAFBABALchAKIAFBACABQcIAEAsgAUEAEAtyEAogAUEAIAFBwwAQCyABQQAQC3IQCiABQQAgAUHEABALIAFBABALchAKIAFBACABQcUAEAsgAUEAEAtyEAogAUEAIAFBxgAQCyABQQAQC3IQCiABQQAgAUHHABALIAFBABALchAKIAFBACABQcgAEAsgAUEAEAtyEAogAUEAIAFByQAQCyABQQAQC3IQCiABQQAgAUHKABALIAFBABALchAKIAFBACABQcsAEAsgAUEAEAtyEAogAUEAIAFBzAAQCyABQQAQC3IQCiABQQAgAUHNABALIAFBABALchAKIAFBACABQc4AEAsgAUEAEAtyEAogAUEAIAFBzwAQCyABQQAQC3IQCiABQQAQCyENIABBABAIIQ4gAEEEEAghDyAAQQgQCCEQIABBDBAIIREgAEEQEAghEiAAQRQQCCETIABBGBAIIRQgAEEcEAghFSAAQSAQCCEWIABBJBAIIRcgAiADIwFB8AZqEA8gAUGQARAIIQMgAUEwEAghACABQZQBEAghBSABQTQQCCECIAFBmAEQCCEYIAFBOBAIIQQgAUGcARAIIRkgAUE8EAghBiABQaABEAghGiABQcAAEAghByABQaQBEAghGyABQcQAEAghCCABQagBEAghHCABQcgAEAghCSABQawBEAghHSABQcwAEAghCiABQbABEAghHiABQdAAEAghCyABQSQgAUHUABAIIh8gAUG0ARAIaxAJIAFBICALIB5rEAkgAUEcIAogHWsQCSABQRggCSAcaxAJIAFBFCAIIBtrEAkgAUEQIAcgGmsQCSABQQwgBiAZaxAJIAFBCCAEIBhrEAkgAUEEIAIgBWsQCSABQQAgACADaxAJIAFB8AFqIgUgARAhIAFBnwJBABAKIAFBnwIgAUHwARALIAFBnwIQC3IQCiABQZ8CIAFB8QEQCyABQZ8CEAtyEAogAUGfAiABQfIBEAsgAUGfAhALchAKIAFBnwIgAUHzARALIAFBnwIQC3IQCiABQZ8CIAFB9AEQCyABQZ8CEAtyEAogAUGfAiABQfUBEAsgAUGfAhALchAKIAFBnwIgAUH2ARALIAFBnwIQC3IQCiABQZ8CIAFB9wEQCyABQZ8CEAtyEAogAUGfAiABQfgBEAsgAUGfAhALchAKIAFBnwIgAUH5ARALIAFBnwIQC3IQCiABQZ8CIAFB+gEQCyABQZ8CEAtyEAogAUGfAiABQfsBEAsgAUGfAhALchAKIAFBnwIgAUH8ARALIAFBnwIQC3IQCiABQZ8CIAFB/QEQCyABQZ8CEAtyEAogAUGfAiABQf4BEAsgAUGfAhALchAKIAFBnwIgAUH/ARALIAFBnwIQC3IQCiABQZ8CIAFBgAIQCyABQZ8CEAtyEAogAUGfAiABQYECEAsgAUGfAhALchAKIAFBnwIgAUGCAhALIAFBnwIQC3IQCiABQZ8CIAFBgwIQCyABQZ8CEAtyEAogAUGfAiABQYQCEAsgAUGfAhALchAKIAFBnwIgAUGFAhALIAFBnwIQC3IQCiABQZ8CIAFBhgIQCyABQZ8CEAtyEAogAUGfAiABQYcCEAsgAUGfAhALchAKIAFBnwIgAUGIAhALIAFBnwIQC3IQCiABQZ8CIAFBiQIQCyABQZ8CEAtyEAogAUGfAiABQYoCEAsgAUGfAhALchAKIAFBnwIgAUGLAhALIAFBnwIQC3IQCiABQZ8CIAFBjAIQCyABQZ8CEAtyEAogAUGfAiABQY0CEAsgAUGfAhALchAKIAFBnwIgAUGOAhALIAFBnwIQC3IQCiABQZ8CIAFBjwIQCyABQZ8CEAtyEAogAUGfAhALIQMgAUEkIBcgH2oQCSABQSAgCyAWahAJIAFBHCAKIBVqEAkgAUEYIAkgFGoQCSABQRQgCCATahAJIAFBECAHIBJqEAkgAUEMIAYgEWoQCSABQQggBCAQahAJIAFBBCACIA9qEAkgAUEAIAAgDmoQCSAFIAEQISABQZ8CQQAQCiABQZ8CIAFB8AEQCyABQZ8CEAtyEAogAUGfAiABQfEBEAsgAUGfAhALchAKIAFBnwIgAUHyARALIAFBnwIQC3IQCiABQZ8CIAFB8wEQCyABQZ8CEAtyEAogAUGfAiABQfQBEAsgAUGfAhALchAKIAFBnwIgAUH1ARALIAFBnwIQC3IQCiABQZ8CIAFB9gEQCyABQZ8CEAtyEAogAUGfAiABQfcBEAsgAUGfAhALchAKIAFBnwIgAUH4ARALIAFBnwIQC3IQCiABQZ8CIAFB+QEQCyABQZ8CEAtyEAogAUGfAiABQfoBEAsgAUGfAhALchAKIAFBnwIgAUH7ARALIAFBnwIQC3IQCiABQZ8CIAFB/AEQCyABQZ8CEAtyEAogAUGfAiABQf0BEAsgAUGfAhALchAKIAFBnwIgAUH+ARALIAFBnwIQC3IQCiABQZ8CIAFB/wEQCyABQZ8CEAtyEAogAUGfAiABQYACEAsgAUGfAhALchAKIAFBnwIgAUGBAhALIAFBnwIQC3IQCiABQZ8CIAFBggIQCyABQZ8CEAtyEAogAUGfAiABQYMCEAsgAUGfAhALchAKIAFBnwIgAUGEAhALIAFBnwIQC3IQCiABQZ8CIAFBhQIQCyABQZ8CEAtyEAogAUGfAiABQYYCEAsgAUGfAhALchAKIAFBnwIgAUGHAhALIAFBnwIQC3IQCiABQZ8CIAFBiAIQCyABQZ8CEAtyEAogAUGfAiABQYkCEAsgAUGfAhALchAKIAFBnwIg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CElyBEAQAAALIAEgAj4AAAtSAQF/IwFB0IICaiICKAIARQRAIAIjAzYCAAsjAUHQggJqKAIAIAAgAWoiAUECakkgACABS3IgAUGACElyBEAQAAALIAFBAXEEQBABCyABMwEAC5caAhN+BX8jAEGAEGsiGCQAIBhBgAhqIAFBgAj8CgAAQQAhAQNAIAFBA3QiFiAYQYAIaiIaaiIXQQAgF0EAEA0gACAWakEAEA2FEAwgGiAWQQhyIhdqIhlBACAZQQAQDSAAIBdqQQAQDYUQDCAaIBZBEHIiF2oiGUEAIBlBABANIAAgF2pBABANhRAMIBogFkEYciIWaiIXQQAgF0EAEA0gACAWakEAEA2FEAwgAUEEaiIBQYABRw0ACyAYIBpBgAj8CgAAQQAhAEEAIQEDQCAYIAFBA3QiFmoiF0EAIBdBABANIAIgFmpBABANhRAMIBggFkEIciIXaiIZQQAgGUEAEA0gAiAXakEAEA2FEAwgGCAWQRByIhdqIhlBACAZQQAQDSACIBdqQQAQDYUQDCAYIBZBGHIiFmoiF0EAIBdBABANIAIgFmpBABANhRAMIAFBBGoiAUGAAUcNAAsDQCAYQYAIaiAAQQd0aiIBQQAgAUE4EA0iBSABQRgQDSIHfCAHQgGGQv7///8fgyAFQv////8Pg358IgcgAUH4ABANhUIgiSIEIAFB2AAQDSIGfCAGQgGGQv7///8fgyAEQv////8Pg358IgYgBYVCKIkiBSAHfCAFQv////8PgyAHQgGGQv7///8fg358IgcgBIVCMIkiBCABQSgQDSIDIAFBCBANIgh8IAhCAYZC/v///x+DIANC/////w+DfnwiCCABQegAEA2FQiCJIgsgAUHIABANIgx8IAxCAYZC/v///x+DIAtC/////w+DfnwiDCADhUIoiSIDIAh8IANC/////w+DIAhCAYZC/v///x+DfnwiCCALhUIwiSILIAx8IAtC/////w+DIAxCAYZC/v///x+DfnwiDCADhUIBiSIDIAFBIBANIg8gAUEAEA0iCnwgCkIBhkL+////H4MgD0L/////D4N+fCIKIAFB4AAQDYVCIIkiECABQcAAEA0iE3wgE0IBhkL+////H4MgEEL/////D4N+fCITIA+FQiiJIg8gCnwgD0L/////D4MgCkIBhkL+////H4N+fCIKfCADQv////8PgyAKQgGGQv7///8fg358IgmFQiCJIhQgAUEwEA0iESABQRAQDSINfCANQgGGQv7///8fgyARQv////8Pg358Ig0gAUHwABANhUIgiSISIAFB0AAQDSIOfCAOQgGGQv7///8fgyASQv////8Pg358Ig4gEYVCKIkiESANfCARQv////8PgyANQgGGQv7///8fg358Ig0gEoVCMIkiEiAOfCASQv////8PgyAOQgGGQv7///8fg358Ig58IBRC/////w+DIA5CAYZC/v///x+DfnwiFSADhUIoiSIDIAl8IANC/////w+DIAlCAYZC/v///x+DfnwiCRAMIAFB+AAgCSAUhUIwiSIJEAwgAUHQACAJIBV8IAlC/////w+DIBVCAYZC/v///x+DfnwiCRAMIAFBKCADIAmFQgGJEAwgAUHgACAEIAZ8IARC/////w+DIAZCAYZC/v///x+DfnwiBCAOIBGFQgGJIgYgCHwgBkL/////D4MgCEIBhkL+////H4N+fCIDIAogEIVCMIkiCIVCIIkiCnwgBEIBhkL+////H4MgCkL/////D4N+fCIQIAaFQiiJIgYgA3wgBkL/////D4MgA0IBhkL+////H4N+fCIJIAqFQjCJIgMQDCABQQggCRAMIAFB2AAgAyAQfCADQv////8PgyAQQgGGQv7///8fg358IgMQDCABQTAgAyAGhUIBiRAMIAFB6AAgBCAFhUIBiSIFIA18IAVC/////w+DIA1CAYZC/v///x+DfnwiBCALhUIgiSIGIAggE3wgCEL/////D4MgE0IBhkL+////H4N+fCIDfCAGQv////8PgyADQgGGQv7///8fg358IgggBYVCKIkiBSAEfCAFQv////8PgyAEQgGGQv7///8fg358IgsgBoVCMIkiBBAMIAFBECALEAwgAUHAACAEIAh8IARC/////w+DIAhCAYZC/v///x+DfnwiBBAMIAFBOCAEIAWFQgGJEAwgAUHwACAHIAMgD4VCAYkiBXwgB0IBhkL+////H4MgBUL/////D4N+fCIHIBKFQiCJIgQgDHwgBEL/////D4MgDEIBhkL+////H4N+fCIGIAWFQiiJIgUgB3wgBUL/////D4MgB0IBhkL+////H4N+fCIDIASFQjCJIgcQDCABQRggAxAMIAFByAAgBiAHfCAHQv////8PgyAGQgGGQv7///8fg358IgcQDCABQSAgBSAHhUIBiRAMIABBAWoiAEEIRw0AC0EAIQADQCAYQYAIaiAAQQR0aiIBQQAgAUGIAxANIgUgAUGIARANIgd8IAdCAYZC/v///x+DIAVC/////w+DfnwiByABQYgHEA2FQiCJIgQgAUGIBRANIgZ8IAZCAYZC/v///x+DIARC/////w+DfnwiBiAFhUIoiSIFIAd8IAVC/////w+DIAdCAYZC/v///x+DfnwiByAEhUIwiSIEIAFBiAIQDSIDIAFBCBANIgh8IAhCAYZC/v///x+DIANC/////w+DfnwiCCABQYgGEA2FQiCJIgsgAUGIBBANIgx8IAxCAYZC/v///x+DIAtC/////w+DfnwiDCADhUIoiSIDIAh8IANC/////w+DIAhCAYZC/v///x+DfnwiCCALhUIwiSILIAx8IAtC/////w+DIAxCAYZC/v///x+DfnwiDCADhUIBiSIDIAFBgAIQDSIPIAFBABANIgp8IApCAYZC/v///x+DIA9C/////w+DfnwiCiABQYAGEA2FQiCJIhAgAUGABBANIhN8IBNCAYZC/v///x+DIBBC/////w+DfnwiEyAPhUIoiSIPIAp8IA9C/////w+DIApCAYZC/v///x+DfnwiCnwgA0L/////D4MgCkIBhkL+////H4N+fCIJhUIgiSIUIAFBgAMQDSIRIAFBgAEQDSINfCANQgGGQv7///8fgyARQv////8Pg358Ig0gAUGABxANhUIgiSISIAFBgAUQDSIOfCAOQgGGQv7///8fgyASQv////8Pg358Ig4gEYVCKIkiESANfCARQv////8PgyANQgGGQv7///8fg358Ig0gEoVCMIkiEiAOfCASQv////8PgyAOQgGGQv7///8fg358Ig58IBRC/////w+DIA5CAYZC/v///x+DfnwiFSADhUIoiSIDIAl8IANC/////w+DIAlCAYZC/v///x+DfnwiCRAMIAFBiAcgCSAUhUIwiSIJEAwgAUGABSAJIBV8IAlC/////w+DIBVCAYZC/v///x+DfnwiCRAMIAFBiAIgAyAJhUIBiRAMIAFBgAYgBCAGfCAEQv////8PgyAGQgGGQv7///8fg358IgQgDiARhUIBiSIGIAh8IAZC/////w+DIAhCAYZC/v///x+DfnwiAyAKIBCFQjCJIgiFQiCJIgp8IARCAYZC/v///x+DIApC/////w+DfnwiECAGhUIoiSIGIAN8IAZC/////w+DIANCAYZC/v///x+DfnwiCSAKhUIwiSIDEAwgAUEIIAkQDCABQYgFIAMgEHwgA0L/////D4MgEEIBhkL+////H4N+fCIDEAwgAUGAAyADIAaFQgGJEAwgAUGIBiAEIAWFQgGJIgUgDXwgBUL/////D4MgDUIBhkL+////H4N+fCIEIAuFQiCJIgYgCCATfCAIQv////8PgyATQgGGQv7///8fg358IgN8IAZC/////w+DIANCAYZC/v///x+DfnwiCCAFhUIoiSIFIAR8IAVC/////w+DIARCAYZC/v///x+DfnwiCyAGhUIwiSIEEAwgAUGAASALEAwgAUGABCAEIAh8IARC/////w+DIAhCAYZC/v///x+DfnwiBBAMIAFBiAMgBCAFhUIBiRAMIAFBgAcgByADIA+FQgGJIgV8IAdCAYZC/v///x+DIAVC/////w+DfnwiByAShUIgiSIEIAx8IARC/////w+DIAxCAYZC/v///x+DfnwiBiAFhUIoiSIFIAd8IAVC/////w+DIAdCAYZC/v///x+DfnwiAyAEhUIwiSIHEAwgAUGIASADEAwgAUGIBCAGIAd8IAdC/////w+DIAZCAYZC/v///x+DfnwiBxAMIAFBgAIgBSAHhUIBiRAMIABBAWoiAEEIRw0ACyACIBhBgAj8CgAAQQAhAANAIAIgAEEDdCIBaiIWQQAgFkEAEA0gGEGACGoiGSABakEAEA2FEAwgAiABQQhyIhZqIhdBACAXQQAQDSAWIBlqQQAQDYUQDCACIAFBEHIiFmoiF0EAIBdBABANIBhBgAhqIBZqQQAQDYUQDCACIAFBGHIiAWoiFkEAIBZBABANIBhBgAhqIAFqQQAQDYUQDCAAQQRqIgBBgAFHDQALIBhBgBBqJAALuAQCDn4Kf0EAQYCAgAggAEHQABALGyEWIABBBBAIIhdBBWytIQ8gAEEIEAgiGEEFbK0hDSAAQQwQCCIZQQVsrSELIABBEBAIIhpBBWytIQkgAEEAECwhCCAAQSQQCCESIABBIBAIIRMgAEEcEAghFCAAQRgQCCEVIABBFBAIIREgGq0hECAZrSEOIBitIQwgF60h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AiAFayIDrSILWA0AIAMEQCAHIAIgA/wKAAALIARB4AMgBEHgAxAIIANqEAkgBEHAASAEQcABEA0iDEKAAXwQDCAEQcgBIARByAEQDSAMQv9+Vq18EAwgBEGAAWogBhAgIAYgCEGAAfwKAAAgBEHgAyAEQeADEAhBgAFrIgUQCSACIANqIQIgCiALfSEKDAELCyAKpyIDBEAgByACIAP8CgAACyAEQeADIARB4AMQCCADahAJIARBgAFqIAAgARAuGgwBCyAEQcABakEAQaUC/AsAIARBuAFC+cL4m5Gjs/DbABAMIARBsAFC6/qG2r+19sEfEAwgBEGoAUKf2PnZwpHagpt/EAwgBEGgAULRhZrv+s+Uh9EAEAwgBEGYAULx7fT4paf9p6V/EAwgBEGQAUKr8NP0r+68tzwQDCAEQYgBQrvOqqbY0Ouzu38QDCAEQYABQsiS95X/zPmE6gAQDCAEQeABIARB/AAQCBAJIARB4AMgBEHgAxAIQQRqIgUQCSADrSEKIARB4AJqIQggBEHgAWohBgNAAkAgBSAGaiEHIApBgAIgBWsiA60iC1gNACADBEAgByACIAP8CgAACyAEQeADIARB4AMQCCADahAJIARBwAEgBEHAARANIgxCgAF8EAwgBEHIASAEQcgBEA0gDEL/flatfBAMIARBgAFqIAYQICAGIAhBgAH8CgAAIARB4AMgBEHgAxAIQYABayIFEAkgAiADaiECIAogC30hCgwBCwsgCqciAwRAIAcgAiAD/AoAAAsgBEHgAyAEQeADEAggA2oQCSAEQYABaiAEQTBqQcAAEC5BAEgNACAAQQAgBEEwEA0QECAAQQhqQQAgBEE4EA0QECAAQRhqQQAgBEHIAGoiA0EAEA0QECAAQRBqQQAgBEFAayIGQQAQDRAQIABBIGohAiABQSBrIgVBwQBPBEAgBEHgBGohACAEQcAEaiEBA0AgAUEAQaUC/AsAIARBuARC+cL4m5Gjs/DbABAMIARBqARCn9j52cKR2oKbfxAMIARBoARC0YWa7/rPlIfRABAMIARBmARC8e30+KWn/aelfxAMIARBiARCu86qptjQ67O7fxAMIARBgARCyJL3lf/M+YTqABAMIABBCGpBACAEQTgQDRAMIABBGGpBACADQQAQDRAMIABBKGpBACAEQdgAakEAEA0QDCAAQThqQQAgBEHoAGpBABANEAwgBEGwBELr+obav7X2wR8QDCAEQZAEQqvw0/Sv7ry3PBAMIABBMGpBACAEQeAAakEAEA0QDCAAQSBqQQAgBEHQAGpBABANEAwgAEEQakEAIAZBABANEAwgAEEAIARBMBANEAwgBEHgBkHAABAJIARBgARqIARBMGpBwAAQLhogAkEYakEAIANBABANEBAgAkEQakEAIAZBABANEBAgAkEIakEAIARBOBANEBAgAkEAIARBMBANEBAgAkEgaiECIAVBIGsiBUHAAEsNAAsLIARBwARqQQBBpQL8CwAgBEHoBGpBACAEQTgQDRAMIARB8ARqQQAgBEFAa0EAEA0QDCAEQfgEakEAIARByABqQQAQDRAMIARBgAVqQQAgBEHQAGpBABANEAwgBEGIBWpBACAEQdgAakEAEA0QDCAEQZAFakEAIARB4ABqQQAQDRAMIARBmAVqQQAgBEHoAGpBABANEAwgBEG4BEL5wvibkaOz8NsAEAwgBEGwBELr+obav7X2wR8QDCAEQagEQp/Y+dnCkdqCm38QDCAEQaAEQtGFmu/6z5SH0QAQDCAEQZgEQvHt9Pilp/2npX8QDCAEQZAEQqvw0/Sv7ry3PBAMIARBiARCu86qptjQ67O7fxAMIARBgAQgBa1CiJL3lf/M+YTqAIUQDCAEQeAEIARBMBANEAwgBEHgBkHAABAJIARBgARqIARBMGoiACAFEC4aIAVFDQAgAiAAIAX8CgAACyAEQYAEIARBgAFqEAlBACEDA0AgBEGABBAIIANqQQBBABAKIARBgAQQCCADakEBQQAQCiAEQYAEEAggA2pBAkEAEAogBEGABBAIIANqQQNBABAKIARBgAQQCCADQQRyIgBqQQBBABAKIARBgAQQCCAAakEBQQAQCiAEQYAEEAggAGpBAkEAEAogBEGABBAIIABqQQNBABAKIANBCGoiA0GAA0cNAAskAAv7CQE3fyMAIABBPBAIIR0gAEE4EAghHiAAQTQQCCESIABBMBAIIRMgAEEsEAghHyAAQSgQCCEgIABBJBAIISEgAEEgEAghIiAAQRwQCCEjIABBGBAIISQgAEEUEAghJSAAQRAQCCEmIABBDBAIIScgAEEIEAghKCAAQQQQCCEpIABBABAIISpBQGoiCUE4aiEsIAlBMGohLSAJQShqIS4g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CCIFIA9rEAkgAkHIACACQfgAEAgiEiAOaxAJIAJBxAAgAkH0ABAIIhMgDWsQCSACQcAAIAJB8AAQCCIUIAxrEAkgAkE8IAJB7AAQCCIVIAtrEAkgAkE4IAJB6AAQCCIWIAprEAkgAkE0IAJB5AAQCCIXIAlrEAkgAkEwIAJB4AAQCCIYIAhrEAkgAiACQTBqECEgAkGgAkEAEAogAkGgAiACQQAQCyACQaACEAtyEAogAkGgAiACQQEQCyACQaACEAtyEAogAkGgAiACQQIQCyACQaACEAtyEAogAkGgAiACQQMQCyACQaACEAtyEAogAkGgAiACQQQQCyACQaACEAtyEAogAkGgAiACQQUQCyACQaACEAtyEAogAkGgAiACQQYQCyACQaACEAtyEAogAkGgAiACQQcQCyACQaACEAtyEAogAkGgAiACQQgQCyACQaACEAtyEAogAkGgAiACQQkQCyACQaACEAtyEAogAkGgAiACQQoQCyACQaACEAtyEAogAkGgAiACQQsQCyACQaACEAtyEAogAkGgAiACQQwQCyACQaACEAtyEAogAkGgAiACQQ0QCyACQaACEAtyEAogAkGgAiACQQ4QCyACQaACEAtyEAogAkGgAiACQQ8QCyACQaACEAtyEAogAkGgAiACQRAQCyACQaACEAtyEAogAkGgAiACQREQCyACQaACEAtyEAogAkGgAiACQRIQCyACQaACEAtyEAogAkGgAiACQRMQCyACQaACEAtyEAogAkGgAiACQRQQCyACQaACEAtyEAogAkGgAiACQRUQCyACQaACEAtyEAogAkGgAiACQRYQCyACQaACEAtyEAogAkGgAiACQRcQCyACQaACEAtyEAogAkGgAiACQRgQCyACQaACEAtyEAogAkGgAiACQRkQCyACQaACEAtyEAogAkGgAiACQRoQCyACQaACEAtyEAogAkGgAiACQRsQCyACQaACEAtyEAogAkGgAiACQRwQCyACQaACEAtyEAogAkGgAiACQR0QCyACQaACEAtyEAogAkGgAiACQR4QCyACQaACEAtyEAogAkGgAiACQR8QCyACQaACEAtyEAoCQCACQaACEAtBAWtBgAJxRQRAIAJBJCAEIBFqEAkgAkEgIAMgEGoQCSACQRwgBSAPahAJIAJBGCAOIBJqEAkgAkEUIA0gE2oQCSACQRAgDCAUahAJIAJBDCALIBVqEAkgAkEIIAogFmoQCSACQQQgCSAXahAJIAJBACAIIBhqEAkgAkGgAmogAhAhIAJBzwJBABAKIAJBzwIgAkGgAhALIAJBzwIQC3IQCiACQc8CIAJBoQIQCyACQc8CEAtyEAogAkHPAiACQaICEAsgAkHPAhALchAKIAJBzwIgAkGjAhALIAJBzwIQC3IQCiACQc8CIAJBpAIQCyACQc8CEAtyEAogAkHPAiACQaUCEAsgAkHPAhALchAKIAJBzwIgAkGmAhALIAJBzwIQC3IQCiACQc8CIAJBpwIQCyACQc8CEAtyEAogAkHPAiACQagCEAsgAkHPAhALchAKIAJBzwIgAkGpAhALIAJBzwIQC3IQCiACQc8CIAJBqgIQCyACQc8CEAtyEAogAkHPAiACQasCEAsgAkHPAhALchAKIAJBzwIgAkGsAhALIAJBzwIQC3IQCiACQc8CIAJBrQIQCyACQc8CEAtyEAogAkHPAiACQa4CEAsgAkHPAhALchAKIAJBzwIgAkGvAhALIAJBzwIQC3IQCiACQc8CIAJBsAIQCyACQc8CEAtyEAogAkHPAiACQbECEAsgAkHPAhALchAKIAJBzwIgAkGyAhALIAJBzwIQC3IQCiACQc8CIAJBswIQCyACQc8CEAtyEAogAkHPAiACQbQCEAsgAkHPAhALchAKIAJBzwIgAkG1AhALIAJBzwIQC3IQCiACQc8CIAJBtgIQCyACQc8CEAtyEAogAkHPAiACQbcCEAsgAkHPAhALchAKIAJBzwIgAkG4AhALIAJBzwIQC3IQCiACQc8CIAJBuQIQCyACQc8CEAtyEAogAkHPAiACQboCEAsgAkHPAhALchAKIAJBzwIgAkG7AhALIAJBzwIQC3IQCiACQc8CIAJBvAIQCyACQc8CEAtyEAogAkHPAiACQb0CEAsgAkHPAhALchAKIAJBzwIgAkG+AhALIAJBzwIQC3IQCiACQc8CIAJBvwIQCyACQc8CEAtyEAogAkHPAhALQQFrQYACcUUNASAAIAAjAUHwBmoQDwsgAkGgAmogABAhIAJBoAIQC0EBcSABQR8QC0EHdkYEQCAAQSRBACAAQSQQCGsQCSAAQSBBACAAQSAQCGsQCSAAQRxBACAAQRwQCGsQCSAAQRhBACAAQRgQCGsQCSAAQRRBACAAQRQQCGsQCSAAQRBBACAAQRAQCGsQCSAAQQxBACAAQQwQCGsQCSAAQQhBACAAQQgQCGsQCSAAQQRBACAAQQQQCGsQCSAAQQBBACAAQQAQCGsQCQsgAEH4AGogACAGEA9BACEHCyACQdACaiQAIAcLrggBA38jAEGQAWsiAyQAIANB4ABqIgQgARAOIANBMGoiAiAEEA4gAiACEA4gAiABIAIQDyAEIAQgAhAPIAQgBBAOIAQgAiAEEA8gAiAEEA4gAiACEA4gAiACEA4gAiACEA4gAiACEA4gBCACIAQQDyACIAQQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIgBBAPIAMgAhAOIAMgAxAOIAMgAxAOIAMgAxAOIAMgAxAOIAMgAxAOIAMgAxAOIAMgAxAOIAMgAxAOIAMgAxAOIAMgAxAOIAMgAxAOIAMgAxAOIAMgAxAOIAMgAxAOIAMgAxAOIAMgAxAOIAMgAxAOIAMgAxAOIAMgAxAOIAIgAyACEA8gAiACEA4gAiACEA4gAiACEA4gAiACEA4gAiACEA4gAiACEA4gAiACEA4gAiACEA4gAiACEA4gAiACEA4gBCACIAQQDyACIAQQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIQDiACIAIgBBAPIAMgAhAOQQEhAgNAIAMgAxAOIAJBAWoiAkHkAEcNAAsgA0EwaiICIAMgAhAPIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIgAhAOIAIg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CSAFQQQgBUGEARAIIhwgBGsQCSAFQQAgBUGAARAIIh0gC2sQCSAFQaQGIBEgEmoQCSAFQaAGIBAgE2oQCSAFQZwGIA8gFGoQCSAFQZgGIA4gFWoQCSAFQZQGIA0gFmoQCSAFQZAGIAwgF2oQCSAFQYwGIAggGGoQCSAFQYgGIAYgGWoQCSAFQYQGIAQgHGoQCSAFQYAGIAsgHWoQCSAFQZAIaiIEIAUQISAFQcAIQQAQCiAFQcAIIAVBkAgQCyAFQcAIEAtyEAogBUHACCAFQZEIEAsgBUHACBALchAKIAVBwAggBUGSCBALIAVBwAgQC3IQCiAFQcAIIAVBkwgQCyAFQcAIEAtyEAogBUHACCAFQZQIEAsgBUHACBALchAKIAVBwAggBUGVCBALIAVBwAgQC3IQCiAFQcAIIAVBlggQCyAFQcAIEAtyEAogBUHACCAFQZcIEAsgBUHACBALchAKIAVBwAggBUGYCBALIAVBwAgQC3IQCiAFQcAIIAVBmQgQCyAFQcAIEAtyEAogBUHACCAFQZoIEAsgBUHACBALchAKIAVBwAggBUGbCBALIAVBwAgQC3IQCiAFQcAIIAVBnAgQCyAFQcAIEAtyEAogBUHACCAFQZ0IEAsgBUHACBALchAKIAVBwAggBUGeCBALIAVBwAgQC3IQCiAFQcAIIAVBnwgQCyAFQcAIEAtyEAogBUHACCAFQaAIEAsgBUHACBALchAKIAVBwAggBUGhCBALIAVBwAgQC3IQCiAFQcAIIAVBoggQCyAFQcAIEAtyEAogBUHACCAFQaMIEAsgBUHACBALchAKIAVBwAggBUGkCBALIAVBwAgQC3IQCiAFQcAIIAVBpQgQCyAFQcAIEAtyEAogBUHACCAFQaYIEAsgBUHACBALchAKIAVBwAggBUGnCBALIAVBwAgQC3IQCiAFQcAIIAVBqAgQCyAFQcAIEAtyEAogBUHACCAFQakIEAsgBUHACBALchAKIAVBwAggBUGqCBALIAVBwAgQC3IQCiAFQcAIIAVBqwgQCyAFQcAIEAtyEAogBUHACCAFQawIEAsgBUHACBALchAKIAVBwAggBUGtCBALIAVBwAgQC3IQCiAFQcAIIAVBrggQCyAFQcAIEAtyEAogBUHACCAFQa8IEAsgBUHACBALchAKIAVBwAgQCyEGIAQgBUGABmoiCxAhIAVBwAhBABAKIAVBwAggBUGQCBALIAVBwAgQC3IQCiAFQcAIIAVBkQgQCyAFQcAIEAtyEAogBUHACCAFQZIIEAsgBUHACBALchAKIAVBwAggBUGTCBALIAVBwAgQC3IQCiAFQcAIIAVBlAgQCyAFQcAIEAtyEAogBUHACCAFQZUIEAsgBUHACBALchAKIAVBwAggBUGWCBALIAVBwAgQC3IQCiAFQcAIIAVBlwgQCyAFQcAIEAtyEAogBUHACCAFQZgIEAsgBUHACBALchAKIAVBwAggBUGZCBALIAVBwAgQC3IQCiAFQcAIIAVBmggQCyAFQcAIEAtyEAogBUHACCAFQZsIEAsgBUHACBALchAKIAVBwAggBUGcCBALIAVBwAgQC3IQCiAFQcAIIAVBnQgQCyAFQcAIEAtyEAogBUHACCAFQZ4IEAsgBUHACBALchAKIAVBwAggBUGfCBALIAVBwAgQC3IQCiAFQcAIIAVBoAgQCyAFQcAIEAtyEAogBUHACCAFQaEIEAsgBUHACBALchAKIAVBwAggBUGiCBALIAVBwAgQC3IQCiAFQcAIIAVBowgQCyAFQcAIEAtyEAogBUHACCAFQaQIEAsgBUHACBALchAKIAVBwAggBUGlCBALIAVBwAgQC3IQCiAFQcAIIAVBpggQCyAFQcAIEAtyEAogBUHACCAFQacIEAsgBUHACBALchAKIAVBwAggBUGoCBALIAVBwAgQC3IQCiAFQcAIIAVBqQgQCyAFQcAIEAtyEAogBUHACCAFQaoIEAsgBUHACBALchAKIAVBwAggBUGrCBALIAVBwAgQC3IQCiAFQcAIIAVBrAgQCyAFQcAIEAtyEAogBUHACCAFQa0IEAsgBUHACBALchAKIAVBwAggBUGuCBALIAVBwAgQC3IQCiAFQcAIIAVBrwgQCyAFQcAIEAtyEAogBUHACBALIAQgHiAbQfAGahAPIAVBsAgQCCEVIAVB4AMQCCETIAVBrAgQCCEWIAVB3AMQCCESIAVBqAgQCCEXIAVB2AMQCCERIAVBpAgQCCEYIAVB1AMQCCEQIAVBoAgQCCEZIAVB0AMQCCEPIAVBnAgQCCEcIAVBzAMQCCEOIAVBmAgQCCEdIAVByAMQCCENIAVBlAgQCCEjIAVBxAMQCCEMIAVBkAgQCCEkIAVBwAMQCCEIIAVB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QcQCEAghKSAEQcACEAghKiAEQegCEAghAyAEQZADEAghCCAEQewCEAghDCAEQZQDEAghDSAEQfACEAghDiAEQZgDEAghDyAEQfQCEAghECAEQZwDEAghESAEQfgCEAghEiAEQaADEAghEyAEQfwCEAghGiAEQaQDEAghGyAEQYADEAghFCAEQagDEAghFSAEQYQDEAghFiAEQawDEAghFyAEQYgDEAghGCAEQbADEAghGSAEQYwDIARBjAMQCCIrIARBtAMQCCIsahAJIARBiAMgGCAZahAJIARBhAMgFiAXahAJIARBgAMgFCAVahAJIARB/AIgGiAbahAJIARB+AIgEiATahAJIARB9AIgECARahAJIARB8AIgDiAPahAJIARB7AIgDCANahAJIARB6AIgAyAIahAJIARB5AIgLCAraxAJIARB4AIgGSAYaxAJIARB3AIgFyAWaxAJIARB2AIgFSAUaxAJIARB1AIgGyAaaxAJIARB0AIgEyASaxAJIARBzAIgESAQaxAJIARByAIgDyAOaxAJIARBxAIgDSAMaxAJIARBwAIgCCADaxAJIARBkAMgKkEBdCIDIARBuAMQCCIIaxAJIARBlAMgKUEBdCIMIARBvAMQCCINaxAJIARBmAMgKEEBdCIOIARBwAMQCCIPaxAJIARBnAMgJ0EBdCIQIARBxAMQCCIRaxAJIARBoAMgJkEBdCISIARByAMQCCITaxAJIARBpAMgJUEBdCIaIARBzAMQCCIbaxAJIARBqAMgIkEBdCIUIARB0AMQCCIVaxAJIARBrAMgIUEBdCIWIARB1AMQCCIXaxAJIARBsAMgHUEBdCIYIARB2AMQCCIZaxAJIARBtAMgHEEBdCIcIARB3AMQCCIdaxAJIARBuAMgAyAIahAJIARBvAMgDCANahAJIARBwAMgDiAPahAJIARBxAMgECARahAJIARByAMgEiATahAJIARBzAMgGiAbahAJIARB0AMgFCAVahAJIARB1AMgFiAXahAJIARB2AMgGCAZahAJIARB3AMgHCAdahAJCwJAIARB4A1qIABqEBsiA0EASgRAIARBoAFqIgwgBEHAAmoiCCALEA8gBiABIAcQDyAJIAcgCxAPIAogCCABEA8gCCAMIwFBoAdqIANB/gFxQQF2QfgAbGoQOAwBCyADQQBODQAgBEGgAWog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QccAEAsQCiADQQggB0HIABALEAogA0EJIAdByQAQCxAKIANBCiAHQcoAEAsQCiADQQsgB0HLABALEAogA0EMIAdBzAAQCxAKIANBDSAHQc0AEAsQCiADQQ4gB0HOABALEAogA0EPIAdBzwAQCxAKIANBECAHQdAAEAsQCiADQREgB0HRABALEAogA0ESIAdB0gAQCxAKIANBEyAHQdMAEAsQCiADQRQgB0HUABALEAogA0EVIAdB1QAQCxAKIANBFiAHQdYAEAsQCiADQRcgB0HXABALEAogA0EYIAdB2AAQCxAKIANBGSAHQdkAEAsQCiADQRogB0HaABALEAogA0EbIAdB2wAQCxAKIANBHCAHQdwAEAsQCiADQR0gB0HdABALEAogA0EeIAdB3gAQCxAKIANBHyAHQd8AEAsQCiAHQbwEIAdBIGoQCUEAIQADQCAHQbwEEAggAGpBAEEAEAogB0G8BBAIIABqQQFBABAKIAdBvAQQCCAAakECQQAQCiAHQbwEEAggAGpBA0EAEAogB0G8BBAIIABBBHIiAmpBAEEAEAogB0G8BBAIIAJqQQFBABAKIAdBvAQQCCACakECQQAQCiAHQbwEEAggAmpBA0EAEAogAEEIaiIAQcAARw0ACyALEBcgCBAXIAkQFyAHQYABaiABQQxqIQggBK0hEiMAQfACayIAJAACQAJAIBCtIhNCEFQNACAAQSBqIgIgASADEEEgAEH8AGpBAEIAEBMgAEGEAWpBAEEAEAkgAEH0AEIAEBMgAEGwAUEAEAogAEGYAUIAEAwgAEGIASAAQTAQCBAJIABBjAEgAEE0EBIQEyAAQZQBIABBPBAIEAkgAEHgACAAQSAQCEH///8fcRAJIABB5AAgAEEjEBZBAnZBg/7/H3EQCSAAQegAIABBJhApQQR2Qf+B/x9xEAkgAEHsACAAQSkQFkEGdkH//8AfcRAJIABB8AAgAEEsEAhBCHZB//8/cRAJIABB7AIgAhAJQQAhAgNAIABB7AIQCCACakEAQQAQCiAAQewCEAggAmpBAUEAEAogAEHsAhAIIAJqQQJBABAKIABB7AIQCCACakEDQQAQCiAAQewCEAggAkEEciIEakEAQQAQCiAAQewCEAggBGpBAUEAEAogAEHsAhAIIARqQQJBABAKIABB7AIQCCAEakEDQQAQCiACQQhqIgJBwABHDQALIABB4ABqIgIgBSASECUgAiMBQeCAAmoiBEIAIBJ9Qg+DECUgAiAIIBNCEH0iERAlIAIgBEIAIBN9Qg+DECUgAEEYIBIQDCACIABBGGoiBEIIECUgAEEYIBEQDCACIARCCBAlIAIgABA+IABB7AIgAhAJQQAhAgNAIABB7AIQCCACakEAQQAQCiAAQewCEAggAmpBAUEAEAogAEHsAhAIIAJqQQJBABAKIABB7AIQCCACakEDQQAQCiAAQewCEAggAkEEciIEakEAQQAQCiAAQewCEAggBGpBAUEAEAogAEHsAhAIIARqQQJBABAKIABB7AIQCCAEakEDQQAQCiACQQhqIgJBgAJHDQALIABB7AIgABAJIABB6AIgCCATp2pBEGsQCSAAQQAQHyAAQewCEAhBABALIQIgAEHoAhAIQQAQCyEEIAAgAEHmAhAdIAIgBHNB/wFxchAfIABB7AIQCEEBEAshAiAAQegCEAhBARALIQQgACAAQeYCEB0gAiAEc0H/AXFyEB8gAEHsAhAIQQIQCyECIABB6AIQCEECEAshBCAAIABB5gIQHSACIARzQf8BcXIQHyAAQewCEAhBAxALIQIgAEHoAhAIQQMQCyEEIAAgAEHmAhAdIAIgBHNB/wFxchAfIABB7AIQCEEEEAshAiAAQegCEAhBBBALIQQgACAAQeYCEB0gAiAEc0H/AXFyEB8gAEHsAhAIQQUQCyECIABB6AIQCEEFEAshBCAAIABB5gIQHSACIARzQf8BcXIQHyAAQewCEAhBBhALIQIgAEHoAhAIQQYQCyEEIAAgAEHmAhAdIAIgBHNB/wFxchAfIABB7AIQCEEHEAshAiAAQegCEAhBBxALIQQgACAAQeYCEB0gAiAEc0H/AXFyEB8gAEHsAhAIQQgQCyECIABB6AIQCEEIEAshBCAAIABB5gIQHSACIARzQf8BcXIQHyAAQewCEAhBCRALIQIgAEHoAhAIQQkQCyEEIAAgAEHmAhAdIAIgBHNB/wFxchAfIABB7AIQCEEKEAshAiAAQegCEAhBChALIQQgACAAQeYCEB0gAiAEc0H/AXFyEB8gAEHsAhAIQQsQCyECIABB6AIQCEELEAshBCAAIABB5gIQHSACIARzQf8BcXIQHyAAQewCEAhBDBALIQIgAEHoAhAIQQwQCyEEIAAgAEHmAhAdIAIgBHNB/wFxchAfIABB7AIQCEENEAshAiAAQegCEAhBDRALIQQgACAAQeYCEB0gAiAEc0H/AXFyEB8gAEHsAhAIQQ4QCyECIABB6AIQCEEOEAshBCAAIABB5gIQHSACIARzQf8BcXIQHyAAQewCEAhBDxALIQIgAEHoAhAIQQ8QCyEEIAAgAEHmAhAdIAIgBHNB/wFxchAfIAAgAEHmAhAdQQFrEB8gAEHmAhAdIQIgACMBQeaIAmpBABAdQQJ2IAJBD3ZzEB8gAEHmAhAdIABB7AIgABAJIABB7AIQCEEAQQAQCiAAQewCEAhBAUEAEAogAEHsAhAIQQJBABAKIABB7AIQCEEDQQAQCiAAQewCEAhBBEEAEAogAEHsAhAIQQVBABAKIABB7AIQCEEGQQAQCiAAQewCEAhBB0EAEAogAEHsAhAIQQhBABAKIABB7AIQCEEJQQAQCiAAQewCEAhBCkEAEAogAEHsAhAIQQtBABAKIABB7AIQCEEMQQAQCiAAQewCEAhBDUEAEAogAEHsAhAIQQ5BABAKIABB7AIQCEEPQQAQCkH//wNxQQFrIQICQCAGBEAgAkUNASARpyIBRQ0CIAZBACAB/AsADAILQgAgESACGyERDAILIAYgCCARIAEgAxBAQQAhAgwBC0IAIRFBfyECC0EAIBEQDCAAQfACaiQAIAMQFyAMJABBd0EAIAIbDwsgCxAXIAgQFyAJEBcgAxAXIAwkAEF4C8UnAkF/DX4jAEGABWsiAyQAIANBD0EAEAoDQCACIAVqQQAQCyIGIwFB8IACaiAFaiIEQcABEAtzIA5yIQ4gBEGgARALIAZzIAlyIQkgBEGAARALIAZzIAxyIQwgBEHgABALIAZzIAhyIQggBEHAABALIAZzIAtyIQsgBEEgEAsgBnMgB3IhByAEQQAQCyAGcyAKciEKIAVBAWoiBUEfRw0AC0F/IQQgAkEfEAtB/wBxIgYgB3JB/wFxQQFrIAYgCnJB/wFxQQFrciAGIAtyQf8BcUEBa3IgBkHXAHMgCHJB/wFxQQFrciAGQf8AcyIGIAxyQf8BcUEBa3IgBiAJckH/AXFBAWtyIAYgDnJB/wFxQQFrckGAAnFFBEAgA0HoBGpBACABQRhqQQAQERAMIANB4ARqQQAgAUEQakEAEBEQDCADQdAEIAFBABARIkQQDCADQdgEIAFBCGpBABAREAwgA0HQBCBEp0H4AXEQCiADQe8EIANB7wQQC0E/cUHAAHIQCiADQaAEaiACEDkgA0GEBGpBAEIAEBMgA0GMBGpBAEIAEBMgA0GUBGpBAEEAEAkgA0GgA2pBAEIAEAwgA0GoA2pBAEIAEAwgA0GwA2pBAEIAEAwgA0HQA2pBACADQbAEakEAEA0QDCADQdgDakEAIANBuARqQQAQDRAMIANB4ANqQQAgA0HABGpBABANEAwgA0H0A0IAEBMgA0HwA0EBEAkgA0H8A0IAEBMgA0GQA0IAEAwgA0GYA0IAEAwgA0HAAyADQaAEEA0QDCADQcgDIANBqAQQDRAMIANB9AJqQQBCABATIANB/AJqQQBCABATIANBhANqQQBBABAJIANB5AJCABATIANB4AJBARAJIANB7AJCABATQf4BIQJBACEGA0AgA0GUBBAIIQQgA0HkAxAIIQUgA0HUAxAIIQogA0GEBBAIIQcgA0HYAxAIIQsgA0GIBBAIIQggA0HcAxAIIQwgA0GMBBAIIQkgA0HgAxAIIQ4gA0GQBBAIIRIgA0HQAxAIIRMgA0GABBAIIQ8gA0HMAxAIIRQgA0H8AxAIIRAgA0HIAxAIIRUgA0H4AxAIIREgA0HEAxAIIRYgA0H0AxAIIRkgA0G0AxAIIQ0gA0GEAxAIIR4gA0HwAyADQcADEAgiLCADQfADEAgiF3NBACAGIANB0ARqIjAgAiIBQQN2akEAEAsgAkEHcXZBAXEiBnNrIgJxIi0gF3MiFxAJIANB9AMgGSAWIBlzIAJxIi5zIhkQCSADQfgDIBEgESAVcyACcSIxcyIREAkgA0H8AyAQIBAgFHMgAnEiMnMiEBAJIANBgAQgDyAPIBNzIAJxIjNzIg8QCSADQZADEAghHyADQeACEAghICADQZQDEAghISADQeQCEAghIiADQZgDEAghGCADQegCEAghIyADQZwDEAghJCADQewCEAghJSADQaADEAghJiADQfACEAghKSADQaQDEAghGiADQfQCEAghJyADQagDEAghGyADQfgCEAghKCADQawDEAghHCADQfwCEAghKiADQbADEAghHSADQYADEAghKyADQdQCIA0gDSAecyACcSI0cyINIAQgBCAFcyACcSI1cyIEahAJIANB0AIgHSAdICtzIAJxIjZzIh0gEiAOIBJzIAJxIjdzIhJqEAkgA0HMAiAcIBwgKnMgAnEiOHMiHCAJIAkgDHMgAnEiOXMiCWoQCSADQcgCIBsgGyAocyACcSI6cyIbIAggCCALcyACcSI7cyIIahAJIANBxAIgGiAaICdzIAJxIjxzIhogByAHIApzIAJxIj1zIgdqEAkgA0GkAiAEIA1rEAkgA0GgAiASIB1rEAkgA0GcAiAJIBxrEAkgA0GYAiAIIBtrEAkgA0GUAiAHIBprEAkgA0HAAiAmICYgKXMgAnEiDXMiBCAPahAJIANBvAIgJCAkICVzIAJxIiZzIgcgEGoQCSADQbgCIBggGCAjcyACcSIkcyIIIBFqEAkgA0G0AiAhICEgInMgAnEiGHMiCSAZahAJIANBsAIgHyAfICBzIAJxIiFzIgIgF2oQCSADQZACIA8gBGsQCSADQYwCIBAgB2sQCSADQYgCIBEgCGsQCSADQYQCIBkgCWsQCSADQYACIBcgAmsQCSADQdABaiICIANBsAJqIj4QDiADQaABaiIEIANBgAJqIj8QDiADQfADaiIvIAIgBBAPIANBwAEQCCECIANB8AEQCCEXIANBvAEQCCEEIANB7AEQCCEfIANBuAEQCCEHIANB6AEQCCEaIANBtAEQCCEIIANB5AEQCCEbIANBsAEQCCEJIANB4AEQCCEcIANBrAEQCCESIANB3AEQCCEdIANBqAEQCCEPIANB2AEQCCFAIANBpAEQCCEQIANB1AEQCCFBIANBxAEQCCERIANB9AEQCCFCIANBoAEQCCEZIANB0AEQCCFDIANB5AAgBSA1cyIFIB4gNHMiHmsQCSADQeAAIA4gN3MiDiArIDZzIitrEAkgA0HcACAMIDlzIgwgKiA4cyIqaxAJIANB2AAgCyA7cyILICggOnMiKGsQCSADQdQAIAogPXMiCiAnIDxzIidrEAkgA0HQACATIDNzIhMgDSApcyINaxAJIANBzAAgFCAycyIUICUgJnMiJWsQCSADQcgAIBUgMXMiFSAjICRzIiNrEAkgA0HEACAWIC5zIhYgGCAicyIiaxAJIANBwAAgLCAtcyIYICAgIXMiIGsQCSADQfAAIEMgGWsiJBAJIANBlAEgQiARayImEAkgA0H0ACBBIBBrIikQCSADQfgAIEAgD2siLBAJIANB/AAgHSASayIdEAkgA0GAASAcIAlrIhwQCSADQYQBIBsgCGsiGxAJIANBiAEgGiAHayIaEAkgA0GMASAfIARrIi0QCSADQZABIBcgAmsiLhAJIANBQGsiFyAXID4QDyADQTQgBSAeahAJIANBMCAOICtqEAkgA0EsIAwgKmoQCSADQSggCyAoahAJIANBJCAKICdqEAkgA0EgIA0gE2oQCSADQRwgFCAlahAJIANBGCAVICNqEAkgA0EUIBYgImoQCSADQRAgGCAgahAJIANBEGoiBSAFID8QDyADQRAQCCEFIANBwAAQCCEKIANBFBAIIQsgA0HEABAIIQwgA0EYEAghDiADQcgAEAghEyADQRwQCCEUIANBzAAQCCEVIANBIBAIIRYgA0HQABAIIQ0gA0EkEAghHiADQdQAEAghFyADQSgQCCEfIANB2AAQCCEgIANBLBAIISEgA0HcABAIISIgA0EwEAghGCADQeAAEAghIyADQeQDIANBNBAIIiUgA0HkABAIIidqEAkgA0HgAyAYICNqEAkgA0HcAyAhICJqEAkgA0HYAyAfICBqEAkgA0HUAyAXIB5qEAkgA0HQAyANIBZqEAkgA0HMAyAUIBVqEAkgA0HIAyAOIBNqEAkgA0HEAyALIAxqEAkgA0HAAyAFIApqEAkgA0HAA2oiKCAoEA4gA0GEAyAnICVrEAkgA0GAAyAjIBhrEAkgA0H8AiAiICFrEAkgA0H4AiAgIB9rEAkgA0H0AiAXIB5rEAkgA0HwAiANIBZrEAkgA0HsAiAVIBRrEAkgA0HoAiATIA5rEAkgA0HkAiAMIAtrEAkgA0HgAiAKIAVrEAkgA0HgAmoiBSAFEA4gBSAFIANBoARqEA8gA0GwAyACIC6sQsK2B34gLaxCwrYHfiJEQoCAgAh8IkZCGYd8IkUgRUKAgIAQfCJFQoCAgOAPg32nahAJIANBqAMgByAarELCtgd+IBusQsK2B34iSkKAgIAIfCJLQhmHfCJHIEdCgICAEHwiR0KAgIDgD4N9p2oQCSADQaADIAkgHKxCwrYHfiAdrELCtgd+IkxCgICACHwiTUIZh3wiSCBIQoCAgBB8IkhCgICA4A+DfadqEAkgA0GYAyAPICysQsK2B34gKaxCwrYHfiJOQoCAgAh8Ik9CGYd8IkkgSUKAgIAQfCJJQoCAgOAPg32nahAJIANBtAMgESAmrELCtgd+IlAgRUIaiHwgUEKAgIAIfCJFQoCAgPAPg32nahAJIANBrAMgBCBHQhqIIER8IEZCgICA8A+DfadqEAkgA0GkAyAIIEhCGoggSnwgS0KAgIDwD4N9p2oQCSADQZwDIBIgSUIaiCBMfCBNQoCAgPAPg32nahAJIANBlAMgECBOIE9CgICA8A+DfSBFQhmHQhN+ICSsQsK2B358IkRCgICAEHwiRkIaiHynahAJIANBkAMgGSBEIEZCgICA4A+DfadqEAkgAUEBayECIANBkANqIg0gDSADQfAAahAPIAENAAsgA0HAAxAIIQ4gA0HwAxAIIQIgA0HEAxAIIRIgA0H0AxAIIQQgA0HIAxAIIRMgA0H4AxAIIQUgA0HMAxAIIQ8gA0H8AxAIIQogA0HQAxAIIRQgA0GABBAIIQcgA0HUAxAIIRAgA0GEBBAIIQsgA0HYAxAIIRUgA0GIBBAIIQggA0HcAxAIIREgA0GMBBAIIQwgA0HgAxAIIRYgA0GQBBAIIQkgA0GUBEEAIAZrIgEgA0HkAxAIIANBlAQQCCIGc3EgBnMQCSADQZAEIAkgCSAWcyABcXMQCSADQYwEIAwgDCARcyABcXMQCSADQYgEIAggCCAVcyABcXMQCSADQYQEIAsgCyAQcyABcXMQCSADQYAEIAcgByAUcyABcXMQCSADQfwDIAogCiAPcyABcXMQCSADQfgDIAUgBSATcyABcXMQCSADQfQDIAQgBCAScyABcXMQCSADQfADIAIgAiAOcyABcXMQCSADQZADEAghAiADQeACEAghCSADQZQDEAghBiADQeQCEAghDiADQZgDEAghBCADQegCEAghEiADQZwDEAghBSADQewCEAghEyADQaADEAghCiADQfACEAghDyADQaQDEAghByADQfQCEAghFCADQagDEAghCyADQfgCEAghECADQawDEAghCCADQfwCEAghFSADQbADEAghDCADQYADEAghESADQbQDIANBhAMQCCADQbQDEAgiFnMgAXEgFnMQCSADQbADIAwgDCARcyABcXMQCSADQawDIAggCCAVcyABcXMQCSADQagDIAsgCyAQcyABcXMQCSADQaQDIAcgByAUcyABcXMQCSADQaADIAogCiAPcyABcXMQCSADQZwDIAUgBSATcyABcXMQCSADQZgDIAQgBCAS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QbAYaiAGIAEQDyACQdgYaiADIAUQDyAEIBsQGiADIBggBBAZIAJBwBZqIhwgAyABEA8gAkHoFmogBSAGEA8gAkGQF2ogBiABEA8gAkG4F2ogAyAFEA8gB0EAIAJBgBhqQQAQEhAMIAlBACACQfgXakEAEBIQDCAMQQAgAkHwF2pBABASEAwgDUEAIAJB6BdqQQAQEhAMIA5BACACQZAYakEAEBIQDCAPQQAgAkGYGGpBABASEAwgEEEAIAJBoBhqQQAQEhAMIBFBACACQagYakEAEBIQDCACQYAeIAJB4BcQEhAMIAJBqB4gAkGIGBASEAwgE0EAIAJB0BhqQQAQEhAMIBRBACACQcgYakEAEBIQDCAVQQAgAkHAGGpBABASEAwgF0EAIAJBuBhqQQAQEhAMIAJB0B4gAkGwGBASEAwgBCADECYgAkGgFWoiHSAEIAoQDyACQcgVaiALIAgQDyACQfAVaiAIIAoQDyACQZgWaiAEIAsQDyAHQQAgAkHAFWpBABASEAwgCUEAIAJBuBVqQQAQEhAMIAxBACACQbAVakEAEBIQDCANQQAgAkGoFWpBABASEAwgDkEAIAJB0BVqQQAQEhAMIA9BACACQdgVakEAEBIQDCAQQQAgAkHgFWpBABASEAwgEUEAIAJB6BVqQQAQEhAMIAJBgB4gAkGgFRASEAwgAkGoHiACQcgVEBIQDCATQQAgAkGQFmpBABASEAwgFEEAIAJBiBZqQQAQEhAMIBVBACACQYAWakEAEBIQDCAXQQAgAkH4FWpBABASEAwgAkHQHiACQfAVEBIQDCAEIAMQJiACQYAUaiIaIAQgChAPIAJBqBRqIAsgCBAPIAJB0BRqIAggChAPIAJB+BRqIAQgCxAPIAQgGhAaIAMgGSAEEBkgAkHgEmoiGiADIAEQDyACQYgTaiAFIAYQDyACQbATaiAGIAEQDyACQdgTaiADIAUQDyAHQQAgAkGgFGpBABASEAwgCUEAIAJBmBRqQQAQEhAMIAxBACACQZAUakEAEBIQDCANQQAgAkGIFGpBABASEAwgDkEAIAJBsBRqQQAQEhAMIA9BACACQbgUakEAEBIQDCAQQQAgAkHAFGpBABASEAwgEUEAIAJByBRqQQAQEhAMIAJBgB4gAkGAFBASEAwgAkGoHiACQagUEBIQDCATQQAgAkHwFGpBABASEAwgFEEAIAJB6BRqQQAQEhAMIBVBACACQeAUakEAEBIQDCAXQQAgAkHYFGpBABASEAwgAkHQHiACQdAUEBIQDCAEIAMQJiACQcARaiIHIAQgChAPIAJB6BFqIAsgCBAPIAJBkBJqIAggChAPIAJBuBJqIAQgCxAPIAQgBxAaIAMgHSAEEBkgAkGgEGoiCCADIAEQDyACQcgQaiAFIAYQDyACQfAQaiAGIAEQDyACQZgRaiADIAUQDyAEIAgQGiADIBggBBAZIAJBgA9qIgwgAyABEA8gAkGoD2ogBSAGEA8gAkHQD2ogBiABEA8gAkH4D2ogAyAFEA8gBCAMEBogAyAdIAQQGSACQeANaiIPIAMgARAPIAJBiA5qIAUgBhAPIAJBsA5qIAYgARAPIAJB2A5qIAMgBRAPIAQgDxAaIAMgEiAEEBkgAkHADGoiECADIAEQDyACQegMaiAFIAYQDyACQZANaiAGIAEQDyACQbgNaiADIAUQDyAEIBAQGiADIBIgBBAZIAJBoAtqIhMgAyABEA8gAkHIC2ogBSAGEA8gAkHwC2ogBiABEA8gAkGYDGogAyAFEA8gBCAMEBogAyAHIAQQGSACQYAKaiINIAMgARAPIAJBqApqIAUgBhAPIAJB0ApqIAYgARAPIAJB+ApqIAMgBRAPIAQgDRAaIAMgEiAEEBkgAkHgCGoiDiADIAEQDyACQYgJaiAFIAYQDyACQbAJaiAGIAEQDyACQdgJaiADIAUQDyAEIA4QGiADIBogBBAZIAJBwAdqIhQgAyABEA8gAkHoB2ogBSAGEA8gAkGQCGogBiABEA8gAkG4CGogAyAFEA8gBCANEBogAyAHIAQQGSACQaAGaiIVIAMgARAPIAJByAZqIAUgBhAPIAJB8AZqIAYgARAPIAJBmAdqIAMgBRAPIAQgDhAaIAMgCCAEEBkgAkGABWoiESADIAEQDyACQagFaiAFIAYQDyACQdAFaiAGIAEQDyACQfgFaiADIAUQDyAEIBEQGiADIBkgBBAZIAJB4ANqIhIgAyABEA8gAkGIBGogBSAGEA8gAkGwBGogBiABEA8gAkHYBGogAyAFEA8gBCASEBogAyAbIAQQGSACQcACaiIJIAMgARAPIAJB6AJqIAUgBhAPIAJBkANqIAYgARAPIAJBuANqIAMgBRAPIAQgCRAaIAMgHCAEEBkgAkGgAWoiByADIAEQDyACQcgBaiIKIAUgBhAPIAJB8AFqIgsgBiABEA8gAkGYAmoiCCADIAUQDyAHQf4AIAwQIyAHQQkgFhAjIAQgCRAaIAMgByAEEBkgByADIAEQDyAKIAUgBhAPIAsgBiABEA8gCCADIAUQDyAHQQcgEBAjIAdBCSAJECMgB0ELIBQQIyAHQQggERAjIAdBCSATECMgB0EGIBwQIyAHQQ4gDRAjIAdBCiAPECMgB0EJIA4QIyAHQQogCRAjIAdBCCAVECMgB0EIIBIQIyAEIAcQISACQYAeQQAQCiACQYAeIAJBoB8QCyACQYAeEAtyEAogAkGAHiACQaEfEAsgAkGAHhALchAKIAJBgB4gAkGiHxALIAJBgB4QC3IQCiACQYAeIAJBox8QCyACQYAeEAtyEAogAkGAHiACQaQfEAsgAkGAHhALchAKIAJBgB4gAkGlHxALIAJBgB4QC3IQCiACQYAeIAJBph8QCyACQYAeEAtyEAogAkGAHiACQacfEAsgAkGAHhALchAKIAJBgB4gAkGoHxALIAJBgB4QC3IQCiACQYAeIAJBqR8QCyACQYAeEAtyEAogAkGAHiACQaofEAsgAkGAHhALchAKIAJBgB4gAkGrHxALIAJBgB4QC3IQCiACQYAeIAJBrB8QCyACQYAeEAtyEAogAkGAHiACQa0fEAsgAkGAHhALchAKIAJBgB4gAkGuHxALIAJBgB4QC3IQCiACQYAeIAJBrx8QCyACQYAeEAtyEAogAkGAHiACQbAfEAsgAkGAHhALchAKIAJBgB4gAkGxHxALIAJBgB4QC3IQCiACQYAeIAJBsh8QCyACQYAeEAtyEAogAkGAHiACQbMfEAsgAkGAHhALchAKIAJBgB4gAkG0HxALIAJBgB4QC3IQCiACQYAeIAJBtR8QCyACQYAeEAtyEAogAkGAHiACQbYfEAsgAkGAHhALchAKIAJBgB4gAkG3HxALIAJBgB4QC3IQCiACQYAeIAJBuB8QCyACQYAeEAtyEAogAkGAHiACQbkfEAsgAkGAHhALchAKIAJBgB4gAkG6HxALIAJBgB4QC3IQCiACQYAeIAJBux8QCyACQYAeEAtyEAogAkGAHiACQbwfEAsgAkGAHhALchAKIAJBgB4gAkG9HxALIAJBgB4QC3IQCiACQYAeIAJBvh8QCyACQYAeEAtyEAogAkGAHiACQb8fEAsgAkGAHhALchAKQX8hBSACQYAeEAtBAWtBgAJxRQ0AIAJBpB5BACACQcwAEAgiAWsQCSACQaAeQQAgAkHIABAIIghrEAkgAkGcHkEAIAJBxAAQCCIFaxAJIAJBmB5BACACQcAAEAgiB2sQCSACQZQeQQAgAkE8EAgiBmsQCSACQZAeQQAgAkE4EAgiCWsQCSACQYweQQAgAkE0EAgiCmsQCSACQYgeQQAgAkEwEAgiDGsQCSACQYQeQQAgAkEsEAgiC2sQCSACQYAeQQEgAkEoEAgiDWsQCSADIAMQMCACQbgfIAJBhB4QCCIOrCImIAZBAXSsIi9+IAJBgB4QLSIeIAesIiF+fCACQYgeEAgiB6wiKCAJrCIifnwgAkGMHhAIIgmsIisgCkEBdKwiMH58IAJBkB4QCCIPrCIsIAysIiN+fCACQZQeEAgiDKwiMSALQQF0rCIyfnwgAkGYHhAIIhCsIjsgDUEBaqwiJH58IAJBnB4QCCINQRNsrCInIAFBAXSsIjN+fCACQaAeEAgiEUETbKwiHyAIrCIlfnwgAkGkHhAIIghBE2ysIiAgBUEBdKwiNH58ICIgJn4gHiAGrCI1fnwgKCAKrCI2fnwgIyArfnwgLCALrCI3fnwgJCAxfnwgEEETbKwiKSABrCI4fnwgJSAnfnwgHyAFrCI5fnwgICAhfnwgJiAwfiAeICJ+fCAjICh+fCArIDJ+fCAkICx+fCAMQRNsrCI6IDN+fCAlICl+fCAnIDR+fCAfICF+fCAgIC9+fCI9QoCAgBB8Ij5CGod8Ij9CgICACHwiQEIZh3wiLSAtQoCAgBB8Ii5CgICA4A+DfRAYIAJBqB8gJiAyfiAeICN+fCAkICh+fCAJQRNsrCIqIDN+fCAPQRNsrCItICV+fCA0IDp+fCAhICl+fCAnIC9+fCAfICJ+fCAgIDB+fCAkICZ+IB4gN358IAdBE2ysIjwgOH58ICUgKn58IC0gOX58ICEgOn58ICkgNX58ICIgJ358IB8gNn58ICAgI358IA5BE2ysIDN+IB4gJH58ICUgPH58ICogNH58ICEgLX58IC8gOn58ICIgKX58ICcgMH58IB8gI358ICAgMn58IjxCgICAEHwiQUIah3wiQkKAgIAIfCJDQhmHfCIqICpCgICAEHwiREKAgIDgD4N9EBggAkG8HyAhICZ+IB4gOX58ICggNX58ICIgK358ICwgNn58ICMgMX58IDcgO358IA2sIiogJH58IB8gOH58ICAgJX58IC5CGod8Ii4gLkKAgIAIfCIuQoCAgPAPg30QGCACQawfICMgJn4gHiA2fnwgKCA3fnwgJCArfnwgLSA4fnwgJSA6fnwgKSA5fnwgISAnfnwgHyA1fnwgICAifnwgREIah3wiHyAfQoCAgAh8Ih9CgICA8A+DfRAYIAJBwB8gJiA0fiAeICV+fCAhICh+fCArIC9+fCAiICx+fCAwIDF+fCAjIDt+fCAqIDJ+fCARrCInICR+fCAgIDN+fCAuQhmHfCIgICBCgICAEHwiIEKAgIDgD4N9EBggAkG0HyA/IEBCgICA8A+DfSA9ID5CgICAYIN9IB9CGYd8Ih9CgICAEHwiKUIaiHwQGCACQbAfIB8gKUKAgIDgD4N9EBggAkHEHyAlICZ+IB4gOH58ICggOX58ICEgK358ICwgNX58ICIgMX58IDYgO358ICMgKn58ICcgN358IAisICR+fCAgQhqHfCIeIB5CgICACHwiHkKAgIDwD4N9EBggAkGkHyBCIENCgICA8A+DfSA8IEFCgICAYIN9IB5CGYdCE358Ih5CgICAEHwiIUIaiHwQGCACQaAfIB4gIUKAgIDgD4N9EBggACAEECFBACEFCyACQcAgaiQAIAUL+gYBFH8jAEGwAmsiAiQAIABBACABQQAQCxAKIABBASABQQEQCxAKIABBAiABQQIQCxAKIABBAyABQQMQCxAKIABBBCABQQQQCxAKIABBBSABQQUQCxAKIABBBiABQQYQCxAKIABBByABQQcQCxAKIABBCCABQQgQCxAKIABBCSABQQkQCxAKIABBCiABQQoQCxAKIABBCyABQQsQCxAKIABBDCABQQwQCxAKIABBDSABQQ0QCxAKIABBDiABQQ4QCxAKIABBDyABQQ8QCxAKIABBECABQRAQCxAKIABBESABQREQCxAKIABBEiABQRIQCxAKIABBEyABQRMQCxAKIABBFCABQRQQCxAKIABBFSABQRUQCxAKIABBFiABQRYQCxAKIABBFyABQRcQCxAKIABBGCABQRgQCxAKIABBGSABQRkQCxAKIABBGiABQRoQCxAKIABBGyABQRsQ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EGpBACADQdAAakEAEBEQECAGQQhqQQAgA0HIAGpBABAREBAgBkEAIANBwAAQERAQIAlBCGpBAEIAEAwgCUEAQgAQDCAEQThqQQAjASIDQThqQQAQDRAMIARBMGpBACADQTBqQQAQDRAMIARBKGpBACADQShqQQAQDRAMIARBIGpBACADQSBqQQAQDRAMIARBGGpBACADQRhqQQAQDRAMIARBEGpBACADQRBqQQAQDRAMIARBCGpBACADQQhqQQAQDRAMIARBACADQQAQDRAMIAQgBUKAARAiIAQgASAIQQZ0ahAkIAhBAWohCCAHQQJqIgcgAEkNAAwCCwALA0AgBUEAIAEgB0EGdGoiA0EAEBEQECAFQThqQQAgA0E4akEAEBEQECAFQTBqQQAgA0EwakEAEBEQECAFQShqQQAgA0EoakEAEBEQECAFQSBqQQAgA0EgakEAEBEQECAFQRhqQQAgA0EYakEAEBEQECAFQRBqQQAgA0EQakEAEBEQECAFQQhqQQAgA0EIakEAEBEQECAGQThqQQAgA0HAAEEAIAdBAXIgAEcbaiIDQThqQQAQERAQIAZBMGpBACADQTBqQQAQERAQIAZBKGpBACADQShqQQAQERAQIAZBIGpBACADQSBqQQAQERAQIAZBGGpBACADQRhqQQAQERAQIAZBEGpBACADQRBqQQAQERAQIAZBCGpBACADQQhqQQAQERAQIAZBACADQQAQERAQIAlBCGpBAEIAEAwgCUEAQgAQDCAEQThqQQAjASIDQThqQQAQDRAMIARBMGpBACADQTBqQQAQDRAMIARBKGpBACADQShqQQAQDRAMIARBIGpBACADQSBqQQAQDRAMIARBGGpBACADQRhqQQAQDRAMIARBEGpBACADQRBqQQAQDRAMIARBCGpBACADQQhqQQAQDRAMIARBACADQQAQDRAMIAQgBUKAARAiIAQgASAIQQZ0ahAkIAhBAWohCCAHQQJqIgcgAEkNAAsLIAC4RAAAAAAAAOA/opv8AyIAQQFLDQALCyACQQAgAUEAEBEQECACQThqQQAgAUE4akEAEBEQECACQTBqQQAgAUEwakEAEBEQECACQShqQQAgAUEoakEAEBEQECACQSBqQQAgAUEgakEAEBEQECACQRhqQQAgAUEYakEAEBEQECACQRBqQQAgAUEQakEAEBEQ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ACADQcgAakEAQgAQDCADQQhqQQAjASIEQQhqQQAQDRAMIANBEGpBACAEQRBqQQAQDRAMIANBGGpBACAEQRhqQQAQDRAMIANBIGpBACAEQSBqQQAQDRAMIANBKGoiBUEAIARBKGpBABANEAwgA0EwakEAIARBMGpBABANEAwgA0E4akEAIARBOGpBABANEAwgA0HAAEIAEAwgA0EAIARBABANEAwgAyACQiAQIiADIAEQJCABQQAgAUEAEAtB+AFxEAogAUEfIAFBHxALQT9xQcAAchAKIAMgARA7IANBsAJqIgQgA0HQAGoQMCADQYACaiIGIAMgBBAPIANB0AFqIgcgBSAEEA8gACAHECEgA0HgAmogBhAhIABBHyAAQR8QCyADQeACEAtBB3RzEAogAkEIakEAEBEhCCACQRBqQQAQESEJIAJBABARIQogAUEYakEAIAJBGGpBABAREBAgAUEQakEAIAkQECABQQhqQQAgCBAQIAFBACAKEBAgAEEIakEAEBEhCCAAQRBqQQAQESEJIABBABARIQogAUE4akEAIABBGGpBABAREBAgAUEwakEAIAkQECABQShqQQAgCBAQIAFBICAKEBAgA0GAA2okAEEACxEAIwFB5IQCakEAQYwF/AsAC54aAgp/A34jACIJIQ0gCUHABGtBQHEiCCQAQSAQHCILRQRAIA0kAEF/DwtBIBAcIgpFBEAgCxAXIA0kAEF+DwsgCEHIAWpBAEIAEAwgCEGIAWpBACMBIglBCGpBABANEAwgCEGQAWpBACAJQRBqQQAQDRAMIAhBmAFqQQAgCUEYakEAEA0QDCAIQaABakEAIAlBIGpBABANEAwgCEGoAWpBACAJQShqQQAQDRAMIAhBsAFqQQAgCUEwakEAEA0QDCAIQbgBakEAIAlBOGpBABANEAwgCEHAAUIAEAwgCEGAASAJQQAQDRAMIAhBgAFqIgkgA0IgECIgCSAIQSBqIgMQJCAIQSAgCEEgEAtB+AFxEAogCEE/IAhBPxALQT9xQcAAchAKIApBEGpBACAIQTBqQQAQDRAQIApBCGpBACAIQSgQDRAQIApBACAIQSAQDRAQIApBGGpBACAIQThqQQAQDRAQIAhBgAEgAxAJQQAhAwNAIAhBgAEQCCADakEAQQAQCiAIQYABEAggA2pBAUEAEAogCEGAARAIIANq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QQAQCiAEQfwREAggAEEEciICakEAQQAQCiAEQfwREAggAmpBAUEAEAogBEH8ERAIIAJqQQJBABAKIARB/BEQCCACakEDQQAQCiAAQQhqIgBBgAhHDQALIARBwAkgBEHAAWoQCUEAIQADQCAEQcAJEAggAGpBAEEAEAogBEHACRAIIABqQQFBABAKIARBwAkQCCAAakECQQAQCiAEQcAJEAggAGpBA0EAEAogBEHACRAIIABBBHIiAmpBAEEAEAogBEHACRAIIAJqQQFBABAKIARBwAkQCCACakECQQAQCiAEQcAJEAggAmpBA0EAEAogAEEIaiIAQcgARw0AC0EAIQAgBEHICWoiAkEAQQAQCiAEQcwJQQAQCSAEQYgBakEAIAJBABASEAwgBEGAAUIAEAwgBEHACUIAEBMgBEGUAWoiAyAEQYABahAqIAJBAEEBEAogBEHMCUEAEAkgBEH4AGpBACACQQAQEhAMIARBxAlBABAJIARB8AAgBEHACRASEAwgAyAEQfAAahAqIAJBAEECEAogBEHMCUEAEAkgBEHoAGpBACACQQAQEhAMIARBxAlBABAJIARB4AAgBEHACRASEAwgAyAEQeAAahAqIAJBAEEDEAogBEHMCUEAEAkgBEHYAGpBACACQQAQEhAMIARBxAlBABAJIARB0AAgBEHACRASEAwgAyAEQdAAahAqIAJBAEEAEAogBEHMCUEAEAkgBEHIAGpBACACQQAQEhAMIARBwABCARAMIARBwAlCARATIAMgBEFAaxAqIAJBAEEBEAogBEHMCUEAEAkgBEE4akEAIAJBABASEAwgBEHECUEAEAkgBEEwIARBwAkQEhAMIAMgBEEwahAqIAJBAEECEAogBEHMCUEAEAkgBEEoakEAIAJBABASEAwgBEHECUEAEAkgBEEgIARBwAkQEhAMIAMgBEEgahAqIAJBAEEDEAogBEHMCUEAEAkgBEEYakEAIAJBABASEAwgBEHECUEAEAkgBEEQIARBwAkQEhAMIAMgBEEQahAqIARBwAlqIgIgC0EEEAhBgPj/H2pBgAj8CgAAIARBwAFqIAJBgAj8CgAAIAxBICACQYAIEDwgBEH8ESACEAkDQCAEQfwREAggAGpBAEEAEAogBEH8ERAIIABqQQFBABAKIARB/BEQCCAAakECQQAQCiAEQfwREAggAGpB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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==");var g=function(e){return A(e.instance,e.module)}(await y(0,r,e));return g}(),function A(e=g){QA>0||QA>0?tA=A:(I.calledRun=!0,h||(l=!0,R(f),HA.__wasm_call_ctors(),R(Z),a?.(I)))}(),(()=>{var A=null,e=0;function g(){if(A&&l){var e=A;A=null,e.forEach(A=>onmessage(A))}}function Q(){g(),A&&setTimeout(Q,100)}onmessage=t=>{if(!l)return A||(A=[],setTimeout(Q,100)),void A.push(t);g();var B=I["_"+t.data.funcName];B||w("invalid worker function to call: "+t.data.funcName);var i=t.data.data;i&&(i.byteLength||(i=new Uint8Array(i)),e=pA(e,i.length),o.set(i,e)),t.data.callbackId,i?B(e,i.length):B(0,0)}})(),l?I:new Promise((A,e)=>{a=A,C=e})}A.exports=e,A.exports.default=e}(dQ)),dQ.exports),wQ=hQ(fQ);const uQ=async(A,e,I,g)=>{if(A.length%xe!==0)throw new Error("Hashes were not passed");const Q=A.length/xe;if(0===Q)throw new Error("Cannot calculate Merkle proof of element of empty tree.");if(1===Q){const A=new Uint8Array(xe+1);if(A.set(e),g){const e=xe+1,I=window.crypto.getRandomValues(new Uint8Array(g));let Q=0;const t=4;return new DataView(I.buffer,Q,t).setUint32(0,e,!1),Q+=t,I.set(A,Q),I}return A}const t=I?.wasmMemory??oQ(Q),B=I??await wQ({wasmMemory:t}),i=B._malloc(Q*xe),E=new Uint8Array(t.buffer,i,Q*xe);E.set(A);const a=B._malloc(xe),C=new Uint8Array(t.buffer,a,xe);C.set(e);const n=Q*(xe+1),o=B._malloc(n),r=new Uint8Array(t.buffer,o,n),s=B._get_merkle_proof(Q,E.byteOffset,C.byteOffset,r.byteOffset);switch(B._free(i),B._free(a),s){case-1:throw B._free(o),new Error("Element not in tree.");case-2:throw B._free(o),new Error("Could not allocate memory for hash concatenation helper array.");case-3:throw B._free(o),new Error("Could not calculate hash.");default:if(s>0){if(g&&g>=s){const A=window.crypto.getRandomValues(new Uint8Array(g));let e=0;const I=4;return new DataView(A.buffer,e,I).setUint32(0,s,!1),e+=I,A.set(r.slice(0,s),e),B._free(o),A}{const A=Uint8Array.from([...r.slice(0,s)]);return B._free(o),A}}throw B._free(o),new Error("An unexpected error occured")}},yQ=(A,e)=>new Promise((I,g)=>{try{A===e&&I(A);const g=e-A,Q=Math.ceil(Math.log2(g)/8),t=Math.pow(Math.pow(2,8),Q),B=Math.floor(t/g)*g;let i=new Uint8Array(Q),E=B;for(;E>=B;){i=window.crypto.getRandomValues(i),E=0;for(let A=0;A<Q;A++)E<<=8,E+=i[A];E<B&&(E%=g,I(A+E))}I(E)}catch(A){g(A)}}),DQ=async(A,e,I=!0,g=!0,Q=!0)=>{if(e??=A,0===e&&A===e)return"";const t=e>A?await yQ(A,e):A,B=await((A,e=!0,I=!0,g=!0)=>new Promise((Q,t)=>{try{let t="";e&&(t+="abcdefghijklmnopqrstuvwxyz"),I&&(t+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),g&&(t+="0123456789");let B="";const i=window.crypto.getRandomValues(new Uint8Array(A));for(let e=0;e<A;e++)B+=t[i[e]%t.length];Q(B)}catch(A){t(A)}}))(t,I,g,Q);return B};function kQ(A,e){if(!(e>A))return A;const I=e-A,g=Math.floor(4294967296/I)*I;let Q=0;do{Q=crypto.getRandomValues(new Uint32Array(1))[0]}while(Q>=g);return A+Q%I}function pQ(A){const e=A.slice();for(let A=e.length-1;A>0;A--){const I=kQ(0,A+1);[e[A],e[I]]=[e[I],e[A]]}return e}const mQ=[1],FQ="CANCEL_SEND",SQ=async(A,e,I,g,Q,t=1,B=$g,i=.9,E=1)=>{const{keyPair:a}=e.getState();if(t<1)throw new Error("Need at least one chunk.");if(i<1e-4||i>1)throw new Error("Percentage of useful data in chunk should be in (0, 1].");if(!mQ.includes(E))throw new Error("Unknown metadata version schema.");if(B>$g||B<=_g)throw new Error(`Chunk length needs to be between ${String(_g)} and ${String($g)}`);let C=!1;const n=()=>{C=!0};window.addEventListener(FQ,n);const o=(A=>{if("string"==typeof A)return Pg.Text;const e=A.name.split(".").pop()?.toLowerCase()??"";return{png:Pg.ImagePNG,jpeg:Pg.ImageJPEG,jpg:Pg.ImageJPG,gif:Pg.ImageGIF,bmp:Pg.ImageBMP,tiff:Pg.ImageTIFF,svg:Pg.ImageSVG,webp:Pg.ImageWEBP,heic:Pg.ImageHEIC,pdf:Pg.DocumentPDF,doc:Pg.DocumentDOC,docx:Pg.DocumentDOCX,xls:Pg.DocumentXLS,xlsx:Pg.DocumentXLSX,ppt:Pg.DocumentPPT,pptx:Pg.DocumentPPTX,txt:Pg.DocumentTXT,rtf:Pg.DocumentRTF,odt:Pg.DocumentODT,mp3:Pg.AudioMP3,wav:Pg.AudioWAV,aac:Pg.AudioAAC,flac:Pg.AudioFLAC,ogg:Pg.AudioOGG,m4a:Pg.AudioM4A,mp4:Pg.VideoMP4,avi:Pg.VideoAVI,mkv:Pg.VideoMKV,mov:Pg.VideoMOV,wmv:Pg.VideoWMV,flv:Pg.VideoFLV,webm:Pg.VideoWEBM,zip:Pg.CompressedZIP,rar:Pg.CompressedRAR,"7z":Pg.Compressed7Z,tar:Pg.CompressedTAR,gz:Pg.CompressedGZ,html:Pg.CodeHTML,css:Pg.CodeCSS,js:Pg.CodeJS,ts:Pg.CodeTS,jsx:Pg.CodeJSX,tsx:Pg.CodeTSX,json:Pg.CodeJSON,xml:Pg.CodeXML,py:Pg.CodePY,java:Pg.CodeJAVA,c:Pg.CodeC,cpp:Pg.CodeCPP,cs:Pg.CodeCS,rb:Pg.CodeRB,php:Pg.CodePHP,sql:Pg.CodeSQL,epub:Pg.EbookEPUB,mobi:Pg.EbookMOBI,azw:Pg.EbookAZW,ttf:Pg.FontTTF,otf:Pg.FontOTF,ico:Pg.ImageICO,exe:Pg.ExecutableEXE,dmg:Pg.ExecutableDMG,apk:Pg.ExecutableAPK}[e]??Pg.Unknown})(A),r=o===Pg.Text?await DQ(256):A.name.substring(0,255),s="string"==typeof A?(new TextEncoder).encode(A):A,c=await navigator.storage.estimate(),h=(c.quota??10737418240)-(c.usage??65536),l="string"==typeof A?s.length:s.size;if(l>h)throw new Error("Not enough space to save the file in the browser.");if(l<1)throw new Error("No data to split in chunks");const d=new Date,f=await window.crypto.subtle.digest("SHA-512",l<10485760?"string"==typeof A?s.buffer:await s.arrayBuffer():"string"==typeof A?s.subarray(0,10485760).buffer:await s.slice(0,10485760).arrayBuffer()),w=new Uint8Array(f),u=Og(w),y={schemaVersion:E,messageType:o,hash:w,name:r,totalSize:l,date:d};let D=0;const k=Math.max(t,Math.ceil(l/(B*i))),p=new Uint8Array(B),m=new Uint8Array(k*xe),F=Math.floor(B*(1-i)),S=Math.ceil(B*i);for(let Q=0;Q<k&&!C;Q++){window.crypto.getRandomValues(p);const t=await yQ(0,F),B=l-D,i=Math.min(Math.max(B,0),S);let E=t+i;if(B>0){const e=s.slice(D,D+i);if("string"==typeof A)p.set(e,t);else{const A=await e.arrayBuffer();p.set(new Uint8Array(A),t)}D+=i}else{const A=E+l+1,e=Number.MAX_SAFE_INTEGER-A;E+=await yQ(A,e)}const C=await window.crypto.subtle.digest("SHA-512",p),n=new Uint8Array(C),c=Og(n);m.set(n,Q*xe);const h=IQ({...y,chunkStartIndex:t,chunkEndIndex:E,chunkIndex:Q});try{await Ug({hash:u,merkleRoot:"",chunkIndex:Q,realChunkHash:c,data:p.buffer,metadata:h.buffer,merkleProof:(new Uint8Array).buffer})}catch{}e.dispatch(iI({roomId:g.id,merkleRootHex:"",sha512Hex:u,fromPeerId:a.peerId,chunkSize:0,totalSize:l,chunksCreated:Q+1,totalChunks:k,messageType:o,filename:r,channelLabel:I,timestamp:d.getTime()}))}if(C)return window.removeEventListener(FQ,n),await bg(void 0,void 0,u),e.dispatch(nI({hashHex:u})),{merkleRoot:new Uint8Array,merkleRootHex:"",hash:new Uint8Array,hashHex:"",totalChunks:0,totalSize:0,messageType:0,chunkHashes:new Uint8Array};const R=await(async(A,e)=>{if(A.length%xe!==0)throw new Error("Hashes were not passed");const I=A.length/xe;if(0===I)throw new Error("Cannot calculate Merkle root of tree with no leaves.");if(1===I)return A;const g=e?.wasmMemory??nQ(I),Q=e??await wQ({wasmMemory:g}),t=Q._malloc(I*xe),B=new Uint8Array(g.buffer,t,I*xe);B.set(A);const i=Q._malloc(xe),E=new Uint8Array(g.buffer,i,xe),a=Q._get_merkle_root(I,B.byteOffset,E.byteOffset);switch(Q._free(t),a){case 0:{const A=Uint8Array.from([...E]);return Q._free(i),A}case-1:throw Q._free(i),new Error("Could not allocate memory for hash concatenation helper array.");case-2:throw Q._free(i),new Error("Could not calculate hash.");default:throw Q._free(i),new Error("Unexpected error occured.")}})(m,Q),H=Og(R);try{await Fg(g.id,H,u,a.peerId,l,l,o,r,I,d.getTime())}catch(A){console.error(A)}return e.dispatch(iI({roomId:g.id,merkleRootHex:H,sha512Hex:u,fromPeerId:a.peerId,chunkSize:0,totalSize:l,chunksCreated:k,totalChunks:k,messageType:o,filename:r,channelLabel:I,timestamp:d.getTime()})),window.removeEventListener(FQ,n),{merkleRoot:R,merkleRootHex:H,hash:w,hashHex:u,totalSize:l,totalChunks:k,messageType:o,chunkHashes:m}},RQ=async(A,e,I,g,Q)=>{const t=A.length,B=g.length,i=Q?.wasmMemory??aQ(t,B),E=Q??await wQ({wasmMemory:i}),a=E._malloc(t*Uint8Array.BYTES_PER_ELEMENT),C=new Uint8Array(i.buffer,a,t*Uint8Array.BYTES_PER_ELEMENT);C.set(A);const n=E._malloc(Ke),o=new Uint8Array(i.buffer,n,Ke);o.set(e);const r=E._malloc(Ye),s=new Uint8Array(i.buffer,r,Ye);s.set(I);const c=E._malloc(Xe),h=new Uint8Array(i.buffer,c,Xe),l=window.crypto.getRandomValues(new Uint8Array(Xe));h.set(l);const d=E._malloc(B*Uint8Array.BYTES_PER_ELEMENT),f=new Uint8Array(i.buffer,d,B*Uint8Array.BYTES_PER_ELEMENT);f.set(g);const w=We(t),u=E._malloc(w*Uint8Array.BYTES_PER_ELEMENT),y=new Uint8Array(i.buffer,u,w*Uint8Array.BYTES_PER_ELEMENT),D=E._encrypt_chachapoly_asymmetric(t,C.byteOffset,o.byteOffset,s.byteOffset,h.byteOffset,B,f.byteOffset,y.byteOffset);switch(E._free(a),E._free(n),E._free(r),E._free(c),E._free(d),D){case 0:{const A=Uint8Array.from([...y]);return E._free(u),A}case-1:throw E._free(u),new Error("Could not allocate memory for the ephemeral x25519 public key array.");case-2:throw E._free(u),new Error("Could not allocate memory for the ephemeral x25519 secret key array.");case-3:throw E._free(u),new Error("Could not convert Ed25519 secret key to X25519.");case-4:throw E._free(u),new Error("Could not calculate x25519 public key from x25519 secret key.");case-5:throw E._free(u),new Error("Could not allocate memory for the receiver's ed25519 converted to x25519 public key array.");case-6:throw E._free(u),new Error("Could not convert Ed25519 public key to X25519.");case-7:throw E._free(u),new Error("Could not allocate memory for the shared secret.");case-8:throw E._free(u),new Error("Could not calculate the shared secret.");case-9:throw E._free(u),new Error("Could not encrypt.");default:throw E._free(u),new Error("An unexpected error occured.")}},HQ=async(A,e,I,g,Q)=>{const{keyPair:t,rooms:B}=g.getState(),i=Xg(t.secretKey),E=B.findIndex(A=>A.id===e);if(E>-1){const a=B[E].peers,C=B[E].channels,n=Q?C.findIndex(A=>A.label===Q):0;if(-1===n)throw new Error("No channel with label "+Q);const{merkleRoot:o,merkleRootHex:r,hashHex:s,totalSize:c,totalChunks:h}=await SQ(A,g,Q,B[E],I),l=C[n].peerIds.length;for(let A=0;A<l;A++){const B=C[n].peerIds[A],E=a.findIndex(A=>A.peerId===B);if(-1===E)continue;const l=a[E].peerPublicKey,d=Xg(l),f=Array.from({length:h},(A,e)=>e),w=await pQ(f);for(let A=0;A<h;A++){const E=w[A],a=await Sg(s,E);if(!a)continue;const h=gQ(new Uint8Array(a.data).slice(0,zg));h.chunkStartIndex<h.chunkEndIndex?g.dispatch(iI({roomId:e,merkleRootHex:r,sha512Hex:s,fromPeerId:t.peerId,chunkSize:h.chunkEndIndex-h.chunkStartIndex,totalSize:c,messageType:h.messageType,filename:h.name,channelLabel:Q??C[n].label})):await Jg(r,h.chunkIndex);const l=await RQ(new Uint8Array(a.data),d,i,o,I),f=await Vg([o,l]);g.dispatch(et.endpoints.sendMessage.initiate({content:{type:"message",message:Og(f),roomId:e,fromPeerId:t.peerId,toPeerId:B,label:Q}}))}}}},GQ=async A=>{const e=A?.wasmMemory??tQ(),I=A??await wQ({wasmMemory:e}),g=I._malloc(Ke),Q=new Uint8Array(e.buffer,g,Ke),t=I._malloc(Ye),B=new Uint8Array(e.buffer,t,Ye),i=I._malloc(qe),E=new Uint8Array(e.buffer,i,qe);window.crypto.getRandomValues(E);const a=I._keypair_from_seed(Q.byteOffset,B.byteOffset,E.byteOffset);if(I._free(i),0===a){const A={publicKey:Uint8Array.from(Q),secretKey:Uint8Array.from(B)};return I._free(g),I._free(t),A}throw I._free(g),I._free(t),new Error("An unexpected error occured.")},UQ=async(A,e,I)=>{const g=A.length,Q=I?I.wasmMemory:iQ(g),t=I??await wQ({wasmMemory:Q}),B=t._malloc(g*Uint8Array.BYTES_PER_ELEMENT),i=new Uint8Array(Q.buffer,B,g*Uint8Array.BYTES_PER_ELEMENT);i.set(A);const E=t._malloc(Ne),a=new Uint8Array(Q.buffer,E,Ne),C=t._malloc(Ye),n=new Uint8Array(Q.buffer,C,Ye);n.set(e),t._sign(g,i.byteOffset,n.byteOffset,a.byteOffset);const o=Uint8Array.from([...a]);return t._free(B),t._free(E),t._free(C),o},MQ=(A,e)=>new Promise((I,g)=>{try{(A.length<=0||A.length>32)&&g(new Error("Label larger than 128 characters")),"string"==typeof e&&e.length!==2*xe?g(new Error("Merkle root hex should be 128 bytes")):"string"!=typeof e&&e.length!==xe&&g(new Error("Merkle root should be 64 bytes"));let Q="";const t=(new TextEncoder).encode(A),B=new Uint8Array(32);B.set(t.subarray(0,Math.min(32,t.length))),Q+=Og(B),Q+="~",Q+="string"==typeof e?e:Og(e),I(Q)}catch(A){g(A)}}),JQ=A=>new Promise((e,I)=>{try{const g=A.split("~"),Q=g.length;2!==Q&&Q>1?I(new Error(`Channel message label needs to have ${String(2)} components.`)):1===Q&&e({channelLabel:A,merkleRootHex:"",merkleRoot:new Uint8Array});const t=Xg(g[0]);32!==t.length&&I(new Error("Channel label is not 128 bytes long."));const B=(new TextDecoder).decode(t).replace(/\0+$/,""),i=Xg(g[1]);i.length!==xe&&I(new Error("Merkle root has invalid length")),e({channelLabel:B,merkleRoot:i,merkleRootHex:g[1]})}catch(A){I(A)}}),bQ=async(A,e,I,g,Q)=>{try{const t=Q.filter(A=>A.label===e.label),B=Og(A),{channelLabel:i,merkleRootHex:E}=await JQ(e.label),a=I.messages.findLastIndex(A=>A.merkleRootHex===E);if(a<0)return;const C=I.messages[a].sha512Hex;if(B===C){g.dispatch(EI({roomId:I.id,merkleRootHex:E,sha512Hex:C,fromPeerId:I.messages[a].fromPeerId,totalSize:I.messages[a].totalSize,messageType:I.messages[a].messageType,filename:I.messages[a].filename,channelLabel:i,timestamp:I.messages[a].timestamp}));const A=Xg(C);await g.dispatch(XQ.endpoints.disconnectFromChannelLabel.initiate({label:e.label,messageHash:A,alsoDeleteData:!1}))}else{const A=await Sg(B),e=A?.chunkIndex??-1;if(A&&e>-1){const A=I.messages.findLastIndex(A=>A.merkleRootHex===E),Q=await((A,e)=>ug("getDBChunk",A,e))(E,e),a=Q?.byteLength??0;Q&&a>0&&A>-1?(I.messages[A].savedSize+a===I.messages[A].totalSize||I.messages[A].savedSize===I.messages[A].totalSize?g.dispatch(EI({roomId:I.id,merkleRootHex:E,sha512Hex:C,fromPeerId:I.messages[A].fromPeerId,totalSize:I.messages[A].totalSize,messageType:I.messages[A].messageType,filename:I.messages[A].filename,channelLabel:i,timestamp:I.messages[A].timestamp})):g.dispatch(iI({roomId:I.id,merkleRootHex:E,sha512Hex:C,fromPeerId:I.messages[A].fromPeerId,chunkSize:a,totalSize:I.messages[A].totalSize,messageType:I.messages[A].messageType,filename:I.messages[A].filename,channelLabel:i,timestamp:I.messages[A].timestamp})),1===t.length&&await bg(void 0,B)):-1===A&&console.log("No message with hex "+C)}}}catch(A){throw console.error(A),A}},vQ=async({channel:A,epc:e,roomId:I,dataChannels:g},Q)=>{const{keyPair:t,rooms:B}=Q.getState(),i=Xg(e.withPeerPublicKey),E=Xg(t.secretKey),a=B.findIndex(A=>A.id===I);let C=e.rooms.findLastIndex(A=>A.roomId===I);if(-1===C){const A=cQ(),g=await wQ({wasmMemory:A});C=e.rooms.length,e.rooms.push({roomId:I,receiveMessageModule:g})}const n=new Set,o=new Map;let r=!1;if("string"==typeof A){const I=g.findIndex(I=>I.label===A&&I.withPeerId===e.withPeerId);if(I>-1&&"open"===g[I].readyState)return g[I]}const s="string"==typeof A?A:A.label,{channelLabel:c,merkleRoot:h,merkleRootHex:l}=await JQ(s),d="string"==typeof A?e.createDataChannel(A,{ordered:!1,protocol:"raw"}):A;d.binaryType="arraybuffer",d.bufferedAmountLowThreshold=jg,d.onbufferedamountlow=async()=>{for(;"open"===d.readyState;){const A=await Rg(s,e.withPeerId);if(0===A.length)break;for(;A.length>0&&d.bufferedAmount<Wg&&"open"===d.readyState;){let I=await yQ(0,A.length);I===A.length&&(I=0);const[g]=A.splice(I,1);"open"===d.readyState&&(d.send(g.encryptedData),await vg(s,e.withPeerId,g.position))}}};const f=d;let w,u,y,D,k,p,m,F,S,R;f.withPeerId=e.withPeerId,f.roomIds=[I];const H=async A=>{if(w&&y&&k&&m&&S&&u&&D&&p&&F&&R)try{D.set([...A]);const{date:g,chunkSize:t,chunkIndex:B,receivedFullSize:i,chunkAlreadyExists:E,totalSize:a,messageType:n,filename:o,chunkHash:r,messageHash:s}=await(async(A,e,I,g,Q,t)=>{switch(t._receive_message(A.byteOffset,e.byteOffset,I.byteOffset,g.byteOffset,Q.byteOffset)){case 0:{const e=A.slice(0,zg),g=A.slice(zg+Zg),Q=gQ(e),t=g.slice(Q.chunkStartIndex,Q.chunkEndIndex),B=await window.crypto.subtle.digest("SHA-512",g),i=new Uint8Array(B),E=Q.chunkEndIndex-Q.chunkStartIndex>Q.totalSize||Q.chunkEndIndex-Q.chunkStartIndex>jg?0:Q.chunkEndIndex-Q.chunkStartIndex;if(0===E)return{date:Q.date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!0,savedSize:0,totalSize:Q.totalSize,messageType:Q.messageType,filename:Q.name,chunkHash:i,messageHash:Q.hash};const a=Og(I),C=await pg(a),n=null!=C&&C.savedSize===C.totalSize,o=!C||C.savedSize+E<=C.totalSize,r=n||E===Q.totalSize||null!=C&&C.savedSize+E===C.totalSize;if(!o)return{date:Q.date,chunkIndex:-1,chunkSize:E,receivedFullSize:r,messageAlreadyExists:!0,chunkAlreadyExists:!0,savedSize:C.savedSize,totalSize:Q.totalSize,messageType:Q.messageType,filename:Q.name,chunkHash:i,messageHash:Q.hash};const s=qg(Q.messageType);try{return await Gg({merkleRoot:a,hash:Og(Q.hash),chunkIndex:Q.chunkIndex,data:t.buffer,mimeType:s}),{date:Q.date,chunkIndex:Q.chunkIndex,chunkSize:E,receivedFullSize:r,messageAlreadyExists:null!=C,chunkAlreadyExists:!1,savedSize:C?.savedSize??0,totalSize:Q.totalSize,messageType:Q.messageType,filename:Q.name,chunkHash:i,messageHash:Q.hash}}catch(A){return{date:Q.date,chunkIndex:Q.chunkIndex,chunkSize:0,receivedFullSize:null!=C&&r,messageAlreadyExists:null!=C,chunkAlreadyExists:!0,savedSize:C?.savedSize??0,totalSize:0,messageType:Q.messageType,filename:Q.name,chunkHash:i,messageHash:Q.hash}}}case-1:return console.error("Message signature is wrong"),{date:new Date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:0,messageType:Pg.Text,filename:"",chunkHash:new Uint8Array,messageHash:new Uint8Array};case-2:return console.error("Could not decrypt message"),{date:new Date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:0,messageType:Pg.Text,filename:"",chunkHash:new Uint8Array,messageHash:new Uint8Array};case-3:return console.error("Merkle proof length is wrong"),{date:new Date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:0,messageType:Pg.Text,filename:"",chunkHash:new Uint8Array,messageHash:new Uint8Array};case-4:return console.error("Could not allocate memory for hash"),{date:new Date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:0,messageType:Pg.Text,filename:"",chunkHash:new Uint8Array,messageHash:new Uint8Array};case-5:return console.error("Could not hash chunk"),{date:new Date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:0,messageType:Pg.Text,filename:"",chunkHash:new Uint8Array,messageHash:new Uint8Array};case-6:return console.error("Could not verify Merkle proof"),{date:new Date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:0,messageType:Pg.Text,filename:"",chunkHash:new Uint8Array,messageHash:new Uint8Array};default:return console.error("Unexpected error occured."),{date:new Date,chunkIndex:-1,chunkSize:0,receivedFullSize:!1,messageAlreadyExists:!1,chunkAlreadyExists:!1,savedSize:0,totalSize:0,messageType:Pg.Text,filename:"",chunkHash:new Uint8Array,messageHash:new Uint8Array}}})(u,D,p,F,R,e.rooms[C].receiveMessageModule),h=Og(s);i?(await Fg(I,l,h,e.withPeerId,a,a,n,o,c,g.getTime()),Q.dispatch(EI({roomId:I,merkleRootHex:l,sha512Hex:h,fromPeerId:e.withPeerId,totalSize:a,messageType:n,filename:o,channelLabel:c,timestamp:g.getTime(),alsoSendFinishedMessage:!0}))):t>0&&B>-1&&!E&&(await Fg(I,l,h,e.withPeerId,t,a,n,o,c,g.getTime()),Q.dispatch(iI({roomId:I,merkleRootHex:l,sha512Hex:h,fromPeerId:e.withPeerId,chunkSize:t,totalSize:a,messageType:n,filename:o,channelLabel:c,timestamp:g.getTime()}))),a>0&&r.length===xe&&"open"===f.readyState&&!E&&f.send(r.buffer)}catch(A){console.error(A)}},G=async()=>{r=!0;try{for(;n.size>0;){const A=n.values().next();if(A.done)break;const e=A.value;n.delete(e);const I=o.get(e);I&&(o.delete(e),await H(I))}}finally{r=!1,n.size>0&&await G()}};return f.onclose=async()=>{console.log(`Channel with label ${f.label} has closed.`),C&&e.rooms[C]&&(w&&e.rooms[C].receiveMessageModule._free(w),y&&e.rooms[C].receiveMessageModule._free(y),k&&e.rooms[C].receiveMessageModule._free(k),m&&e.rooms[C].receiveMessageModule._free(m),S&&e.rooms[C].receiveMessageModule._free(S)),await Q.dispatch(XQ.endpoints.disconnectFromPeerChannelLabel.initiate({peerId:e.withPeerId,label:f.label})),"main"===f.label&&Q.dispatch(AI({roomId:I,connectingToPeers:!0}))},f.onerror=async A=>{console.error(A),await Q.dispatch(XQ.endpoints.disconnectFromPeerChannelLabel.initiate({peerId:e.withPeerId,label:f.label})),Q.dispatch(AI({roomId:I,connectingToPeers:!0}))},f.onmessage=async A=>{const e=A.data,I=new Uint8Array(e);if(a>-1&&I.byteLength===xe)try{await bQ(I,f,B[a],Q,g)}catch(A){console.error(A)}else if(I.byteLength===jg){const A=Og(I.subarray(0,16));o.has(A)||(o.set(A,I),n.add(A)),r||await G()}else console.error(new Error("Wrong data length received"))},f.onopen=()=>{console.log(`Channel with label "${f.label}" and client ${e.withPeerId} is open.`),g.push(f),""===l&&c.length>0&&Q.dispatch(tI({roomId:I,label:s,peerId:f.withPeerId}));try{w=e.rooms[C].receiveMessageModule._malloc(AQ),u=new Uint8Array(e.rooms[C].receiveMessageModule.wasmMemory.buffer,w,AQ),y=e.rooms[C].receiveMessageModule._malloc(jg),D=new Uint8Array(e.rooms[C].receiveMessageModule.wasmMemory.buffer,y,jg),k=e.rooms[C].receiveMessageModule._malloc(xe),p=new Uint8Array(e.rooms[C].receiveMessageModule.wasmMemory.buffer,k,xe),p.set(h),m=e.rooms[C].receiveMessageModule._malloc(Ke),F=new Uint8Array(e.rooms[C].receiveMessageModule.wasmMemory.buffer,m,Ke),F.set(i),S=e.rooms[C].receiveMessageModule._malloc(Ye),R=new Uint8Array(e.rooms[C].receiveMessageModule.wasmMemory.buffer,S,Ye),R.set(E)}catch(A){console.error(A)}},f},PQ=async({peerId:e,peerPublicKey:I,roomId:g,peerConnections:Q,rtcConfig:t},B)=>{const{keyPair:i}=B.getState();if(t??=Ze,!A.isUUID(e))throw new Error("PeerId is not a valid uuidv4");if(64!==I.length)throw new Error("Peer public key is not a valid length");const E=Q.findIndex(A=>A.withPeerId===e);if(E>-1){if(-1===Q[E].rooms.findIndex(A=>A.roomId===g)){const A=cQ(),e=await wQ({wasmMemory:A});Q[E].rooms.push({roomId:g,receiveMessageModule:e})}return Q[E]}const a=new RTCPeerConnection(t);a.withPeerId=e,a.withPeerPublicKey=I,a.makingOffer=!1,a.iceCandidates=[];const C=cQ(),n=await wQ({wasmMemory:C});return a.rooms=[{roomId:g,receiveMessageModule:n}],a.onnegotiationneeded=async()=>{try{a.makingOffer=!0,await a.setLocalDescription(),a.localDescription&&(await B.dispatch(et.endpoints.sendMessage.initiate({content:{type:"description",description:a.localDescription,fromPeerId:i.peerId,fromPeerPublicKey:i.publicKey,toPeerId:e,roomId:g}})),console.log(`Negotiation was needed with ${e} and you sent a description ${a.localDescription.type}.`))}catch(A){console.error(A)}finally{a.makingOffer=!1}},a.onicecandidate=async({candidate:A})=>{A&&""!==A.candidate&&await B.dispatch(et.endpoints.sendMessage.initiate({content:{type:"candidate",candidate:A,fromPeerId:i.peerId,toPeerId:e,roomId:g}}))},a.onicecandidateerror=A=>{console.error(A)},a.oniceconnectionstatechange=async()=>{if("failed"===a.iceConnectionState){const{signalingServer:A}=B.getState();!A.isConnected&&!A.isEstablishingConnection&&A.serverUrl.length>0&&await B.dispatch(et.endpoints.connectWebSocket.initiate(A.serverUrl)),a.restartIce()}console.log(`ICE candidate connection state with ${e} is ${a.iceConnectionState}.`)},a.onicegatheringstatechange=()=>{console.log(`ICE gathering state with ${e} is ${a.iceGatheringState}.`)},a.onsignalingstatechange=async()=>{console.log(`Signaling state with ${e} is ${a.signalingState}.`),"stable"===a.signalingState&&a.remoteDescription&&await(async A=>{for(;A.iceCandidates.length>0&&"stable"===A.signalingState&&A.remoteDescription;){const e=A.iceCandidates.shift();if(e){const I=new RTCIceCandidate(e);I.usernameFragment!==e.usernameFragment&&await A.addIceCandidate(I)}}})(a)},a.onconnectionstatechange=async()=>{if("closed"===a.connectionState||"failed"===a.connectionState||"disconnected"===a.connectionState){if(await B.dispatch(XQ.endpoints.disconnectFromPeer.initiate({peerId:e})),console.error(`Connection with peer ${e} has ${a.connectionState}.`),"closed"===a.connectionState){const{signalingServer:A}=B.getState();A.isConnected&&await B.dispatch(et.endpoints.sendMessage.initiate({content:{type:"peers",fromPeerId:i.peerId,roomId:g}}))}}else"connected"===a.connectionState&&(B.dispatch(QI({roomId:g,peerId:e,peerPublicKey:I})),console.log(`Connection status with peer ${e} is ${a.connectionState}.`))},a},xQ=async(A,e,I,g,Q,t,B,i,E)=>{let a=!1;const{merkleRootHex:C}=await JQ(A.label),n=pQ(Array.from({length:I},(A,e)=>e)),{ptr1:o,ptr2:r,ptr3:s,ptr5:c,ptr6:h,ptr7:l,ptr9:d,ptr10:f,senderEphemeralPublicKey:w,senderEphemeralSecretKey:u,seedBytes:y,senderEphemeralSignature:D,chunkArray:k,receiverPublicKeyArray:p,nonceArray:m,encryptedArray:F}=(A=>{const e=A._malloc(Ke),I=new Uint8Array(A.wasmMemory.buffer,e,Ke),g=A._malloc(Ye),Q=new Uint8Array(A.wasmMemory.buffer,g,Ye),t=A._malloc(qe),B=new Uint8Array(A.wasmMemory.buffer,t,qe),i=A._malloc(Ye),E=A._malloc(Ne),a=new Uint8Array(A.wasmMemory.buffer,E,Ne),C=A._malloc(AQ),n=new Uint8Array(A.wasmMemory.buffer,C,AQ),o=A._malloc(Ke),r=new Uint8Array(A.wasmMemory.buffer,o,Ke),s=A._malloc(xe),c=A._malloc(Xe),h=new Uint8Array(A.wasmMemory.buffer,c,Xe),l=A._malloc(eQ);return{ptr1:e,ptr2:g,ptr3:t,ptr4:i,ptr5:E,ptr6:C,ptr7:o,ptr8:s,ptr9:c,ptr10:l,senderEphemeralPublicKey:I,senderEphemeralSecretKey:Q,seedBytes:B,senderEphemeralSignature:a,chunkArray:n,receiverPublicKeyArray:r,nonceArray:h,encryptedArray:new Uint8Array(A.wasmMemory.buffer,l,eQ)}})(i),S=B.withPeerPublicKey;p.set(Xg(S));for(let B=0;B<I;B++){const I=n[B];window.crypto.getRandomValues(y);if(0!==i._keypair_from_seed(w.byteOffset,u.byteOffset,y.byteOffset))continue;if(0!==i._sign(Ke,w.byteOffset,e.byteOffset,D.byteOffset))continue;const o=await Sg(t,I);if(!o)continue;const r=new Uint8Array(o.metadata),s=gQ(r);if(s.chunkStartIndex>=0&&s.chunkEndIndex>s.chunkStartIndex&&s.chunkEndIndex-s.chunkStartIndex<=s.totalSize){const A=qg(s.messageType),e=o.data.slice(s.chunkStartIndex,s.chunkEndIndex);await Gg({merkleRoot:C,hash:t,chunkIndex:s.chunkIndex,data:e,mimeType:A})}const c=new Uint8Array(Zg);if(0===o.merkleProof.byteLength){const A=await uQ(g,Xg(o.realChunkHash),E,Zg);c.set(A);try{await Ug({hash:t,merkleRoot:C,realChunkHash:o.realChunkHash,chunkIndex:I,data:o.data,metadata:o.metadata,merkleProof:c.buffer})}catch(A){console.warn(A)}}else if(c.set(new Uint8Array(o.merkleProof)),0===o.merkleRoot.length)try{await Ug({hash:t,merkleRoot:C,realChunkHash:o.realChunkHash,chunkIndex:I,data:o.data,metadata:o.metadata,merkleProof:o.merkleProof})}catch(A){console.warn(A)}if(AQ!==r.length+c.length+new Uint8Array(o.data).length)continue;const h=await Vg([r,c,new Uint8Array(o.data)]);k.set(h),window.crypto.getRandomValues(m);if(0!==i._encrypt_chachapoly_asymmetric(AQ,k.byteOffset,p.byteOffset,u.byteOffset,m.byteOffset,xe,Q.byteOffset,F.byteOffset))continue;const l=await Vg([w,D,F]);if("open"===A.readyState&&A.bufferedAmount<Wg)A.send(l.buffer);else{if("closed"===A.readyState){console.log("Cannot send message because channel is "+A.readyState+" and bufferedAmount is "+String(A.bufferedAmount));break}a=!0;try{await Mg({position:I,label:A.label,toPeerId:A.withPeerId,encryptedData:l.buffer})}catch(A){console.error(A)}}}if(a)for(;"open"===A.readyState&&A.bufferedAmount<Wg;){const e=await Rg(A.label,B.withPeerId);for(;e.length>0&&A.bufferedAmount<Wg&&"open"===A.readyState;){let I=await yQ(0,e.length);I===e.length&&(I=0);const[g]=e.splice(I,1);if("open"===A.readyState){A.send(g.encryptedData);try{await vg(A.label,B.withPeerId,g.position)}catch(A){console.error(A)}}}}i._free(o),i._free(r),i._free(s),i._free(c),i._free(h),i._free(l),i._free(d),i._free(f)},NQ=async({data:A,label:e,roomId:I,peerConnections:g,dataChannels:Q,encryptionWasmMemory:t,merkleWasmMemory:B,minChunks:i,chunkSize:E,percentageFilledChunk:a,metadataSchemaVersion:C},n)=>{const o=await wQ({wasmMemory:t}),r=await wQ({wasmMemory:B});return await(async(A,e,I,g,Q,t,B,i,E=1,a=$g,C=.9,n=1)=>{try{const{rooms:o,keyPair:r}=e.getState(),s=o.findIndex(A=>A.id===g);if(s>-1){const c=o[s].channels.findIndex(A=>A.label===I);if(-1===c)throw new Error("No channel with label "+I);const{merkleRoot:h,merkleRootHex:l,hashHex:d,totalChunks:f,chunkHashes:w}=await SQ(A,e,I,o[s],i,E,a,C,n);if(0===h.length||0===d.length||0===f||0===w.length)return;const u=await MQ(I,l),y=B._malloc(Ye),D=new Uint8Array(B.wasmMemory.buffer,y,Ye);D.set(Xg(r.secretKey));const k=B._malloc(xe),p=new Uint8Array(B.wasmMemory.buffer,k,xe);p.set(h);const m=o[s].channels[c].peerIds.length,F=[];for(let A=0;A<m;A++){const I=Q.findIndex(e=>e.withPeerId===o[s].channels[c].peerIds[A]);if(-1===I)continue;const E=await vQ({channel:u,epc:Q[I],roomId:g,dataChannels:t},e);F.push(xQ(E,D,f,w,p,d,Q[I],B,i))}await Promise.allSettled(F),B._free(y),B._free(k)}}catch(A){console.trace(A)}})(A,n,e,I,g,Q,o,r,i,E,a,C),{data:void 0}},qQ=async({alsoDeleteDB:A,peerConnections:e,dataChannels:I},g)=>{const Q=I.length;for(let A=0;A<Q;A++)"open"===I[A].readyState&&I[A].close();const t=e.length;for(let A=0;A<t;A++)await g.dispatch(XQ.endpoints.disconnectFromPeer.initiate({peerId:e[A].withPeerId}));return A&&await ug("deleteDB"),{data:void 0}},KQ=async({roomId:A,deleteMessages:e,peerConnections:I,dataChannels:g},Q)=>{const t=g.length;for(let e=0;e<t;e++){if(!g[e]||!g[e].roomIds.includes(A)||"open"!==g[e].readyState)continue;const I=g[e].roomIds.findIndex(e=>e===A);I>-1&&(g[e].roomIds.splice(I,1),0===g[e].roomIds.length&&g[e].close())}const B=I.length;for(let e=0;e<B;e++){if(!I[e]||"connected"!==I[e].connectionState)continue;const g=I[e].rooms.findIndex(e=>e.roomId===A);-1!==g&&(I[e].rooms.splice(g,1),0===I[e].rooms.length&&await Q.dispatch(XQ.endpoints.disconnectFromPeer.initiate({peerId:I[e].withPeerId})))}if(e){if((await kg()).findIndex(e=>e.roomId===A)>-1){await(A=>ug("deleteDBUniqueRoom",A))(A);const e=await mg(A),I=e.length;for(let A=0;A<I;A++)Q.dispatch(nI({merkleRootHex:e[A].merkleRoot}))}}return{data:void 0}},YQ=[],LQ=[],TQ=[],VQ=aQ($g,xe),OQ=rQ(Zg),XQ=hg({reducerPath:"webrtcApi",baseQuery:async({peerId:A,peerPublicKey:e,roomId:I,initiator:g,rtcConfig:Q,peerConnections:t,dataChannels:B},i)=>{const{keyPair:E}=i.getState();if(A===E.peerId)throw new Error("Cannot create a connection with oneself.");if(await Dg(A))return{data:void 0};const a=t.findIndex(e=>e.withPeerId===A);if(-1===a){const E=await PQ({peerId:A,peerPublicKey:e,roomId:I,peerConnections:t,rtcConfig:Q},i);E.ondatachannel=async A=>{await vQ({channel:A.channel,epc:E,roomId:I,dataChannels:B},i)},t.push(E),g&&await vQ({channel:"main",epc:E,roomId:I,dataChannels:B},i)}else{const g=t[a];if("connected"===g.connectionState){const Q=cQ(),t=await wQ({wasmMemory:Q});g.rooms.push({roomId:I,receiveMessageModule:t}),i.dispatch(QI({roomId:I,peerId:A,peerPublicKey:e}));const E=B.length;for(let e=0;e<E;e++)B[e].withPeerId===A&&B[e].roomIds.push(I);const{rooms:a}=i.getState(),C=a.length;for(let e=0;e<C;e++){const g=a[e].channels.findIndex(e=>e.peerIds.includes(A));g>-1&&i.dispatch(tI({roomId:I,label:a[e].channels[g].label,peerId:A}))}}}return{data:void 0}},endpoints:A=>({connectWithPeer:A.mutation({query:({peerId:A,peerPublicKey:e,roomId:I,initiator:g=!1,rtcConfig:Q={iceServers:[{urls:["stun:stun.p2party.com:3478"]}]}})=>({peerId:A,peerPublicKey:e,roomId:I,initiator:g,rtcConfig:Q,peerConnections:YQ,dataChannels:TQ})}),setDescription:A.mutation({queryFn:(A,e,I)=>(async({peerId:A,peerPublicKey:e,roomId:I,description:g,rtcConfig:Q,peerConnections:t,iceCandidates:B,dataChannels:i},E)=>{const{keyPair:a}=E.getState(),C=t.findIndex(e=>e.withPeerId===A),n=C>-1?t[C]:await PQ({peerId:A,peerPublicKey:e,roomId:I,peerConnections:t,rtcConfig:Q},E);-1!==C&&null!=t[C].ondatachannel||(n.ondatachannel=async A=>{await vQ({channel:A.channel,epc:n,roomId:I,dataChannels:i},E)});const o=B.length,r=[];for(let e=0;e<o;e++)B[e].withPeerId===A&&(r.push(e),n.iceCandidates.push(B[e]));const s=r.length;for(let A=0;A<s;A++)B.splice(r[A],1);-1===C&&t.push(n);const c="offer"===g.type&&(n.makingOffer||"stable"!==n.signalingState);if(!(a.peerId<n.withPeerId)&&c)return{data:void 0};if("closed"!==n.signalingState){if(await n.setRemoteDescription(g),"offer"===g.type){await n.setLocalDescription();const e=n.localDescription;e&&await E.dispatch(et.endpoints.sendMessage.initiate({content:{type:"description",description:e,fromPeerId:a.peerId,fromPeerPublicKey:a.publicKey,toPeerId:A,roomId:I}}))}}else await E.dispatch(XQ.endpoints.disconnectFromPeer.initiate({peerId:n.withPeerId})),await E.dispatch(et.endpoints.sendMessage.initiate({content:{type:"peers",fromPeerId:a.peerId,roomId:I}}));return"connected"===n.connectionState&&C>-1&&await vQ({channel:"main",epc:n,roomId:I,dataChannels:i},E),{data:void 0}})({...A,peerConnections:YQ,iceCandidates:LQ,dataChannels:TQ},e)}),setCandidate:A.mutation({queryFn:(A,e,I)=>(async({peerId:A,candidate:e,peerConnections:I,iceCandidates:g},Q)=>{const{keyPair:t}=Q.getState(),B=I.findIndex(e=>e.withPeerId===A);if(B>-1){const A=I[B],g=new RTCIceCandidate(e);if(A.remoteDescription&&"stable"===A.signalingState)try{await A.addIceCandidate(g)}catch(e){const I=A.makingOffer||"stable"!==A.signalingState;!(t.peerId<A.withPeerId)&&I||(await Q.dispatch(XQ.endpoints.disconnectFromPeer.initiate({peerId:A.withPeerId})),A.restartIce())}else A.iceCandidates.push(g)}else g.push({...e,withPeerId:A});return{data:void 0}})({...A,peerConnections:YQ,iceCandidates:LQ},e)}),openChannel:A.mutation({queryFn:(A,e,I)=>(async({roomId:A,channel:e,withPeers:I,peerConnections:g,dataChannels:Q},t)=>{const{keyPair:B}=t.getState();if(I&&I.length>0){const i=I.length;for(let E=0;E<i;E++){if(B.peerId===I[E].peerId)continue;const i=g.findIndex(A=>A.withPeerId===I[E].peerId);if(i>-1){const I=g[i];await vQ({channel:e,epc:I,roomId:A,dataChannels:Q},t)}}}else{const I=g.length;for(let B=0;B<I;B++){const I=g[B];await vQ({channel:e,epc:I,roomId:A,dataChannels:Q},t)}}return{data:void 0}})({...A,peerConnections:YQ,dataChannels:TQ},e)}),sendMessage:A.mutation({queryFn:(A,e,I)=>NQ({...A,peerConnections:YQ,dataChannels:TQ,encryptionWasmMemory:VQ,merkleWasmMemory:OQ},e)}),disconnect:A.mutation({queryFn:(A,e,I)=>qQ({...A,peerConnections:YQ,dataChannels:TQ},e)}),disconnectFromRoom:A.mutation({queryFn:(A,e,I)=>KQ({...A,peerConnections:YQ,dataChannels:TQ},e)}),disconnectFromAllRooms:A.mutation({queryFn:(A,e,I)=>(async({deleteMessages:A,exceptionRoomIds:e,peerConnections:I,dataChannels:g},Q)=>{let t,B=0;const i=g.length;for(t=0;t<i;t++)if(g[t]&&"open"===g[t].readyState)if(e&&e.length>0){const A=g[t].roomIds.length,I=[];for(B=0;B<A;B++)e.includes(g[t].roomIds[B])||I.push(B);const Q=I.length;for(B=0;B<Q;B++)g[t].roomIds.splice(I[B],1);0===g[t].roomIds.length&&g[t].close()}else g[t].close();const E=I.length;for(t=0;t<E;t++)if(I[t]&&"connected"===I[t].connectionState)if(e&&e.length>0){const A=I[t].rooms.length,g=[];for(B=0;B<A;B++)e.includes(I[t].rooms[B].roomId)||g.push(B);const i=g.length;for(B=0;B<i;B++)I[t].rooms.splice(g[B],1);0===I[t].rooms.length&&await Q.dispatch(XQ.endpoints.disconnectFromPeer.initiate({peerId:I[t].withPeerId}))}else await Q.dispatch(XQ.endpoints.disconnectFromPeer.initiate({peerId:I[t].withPeerId}));if(A){const{rooms:A}=Q.getState(),I=A.length;for(t=0;t<I;t++){if(e&&e.includes(A[t].id))continue;const I=A[t].messages.length;for(B=0;B<I;B++)Q.dispatch(nI({merkleRootHex:A[t].messages[B].merkleRootHex}))}}return{data:void 0}})({...A,peerConnections:YQ,dataChannels:TQ},e)}),disconnectFromPeer:A.mutation({queryFn:(A,e,I)=>(({peerId:A,alsoDeleteData:e,peerConnections:I,dataChannels:g},Q)=>{Q.dispatch(aI({peerId:A}));const t=I.findIndex(e=>e.withPeerId===A);t>-1&&(I[t].ontrack=null,I[t].ondatachannel=null,I[t].onicecandidate=null,I[t].onicecandidateerror=null,I[t].onnegotiationneeded=null,I[t].onsignalingstatechange=null,I[t].onconnectionstatechange=null,I[t].onicegatheringstatechange=null,I[t].oniceconnectionstatechange=null,"failed"!==I[t].connectionState&&"connected"!==I[t].connectionState||I[t].close(),I.splice(t,1));const B=g.length;for(let e=0;e<B;e++)g[e].withPeerId===A&&"open"===g[e].readyState&&g[e].close();if(e){const{rooms:e}=Q.getState(),I=e.length;for(let g=0;g<I;g++){const I=e[g].messages.length;for(let t=0;t<I;t++)e[g].messages[t].fromPeerId===A&&Q.dispatch(nI({merkleRootHex:e[g].messages[t].merkleRootHex}))}}return{data:void 0}})({...A,peerConnections:YQ,dataChannels:TQ},e)}),disconnectFromChannelLabel:A.mutation({queryFn:(A,e,I)=>(async({label:A,messageHash:e,alsoDeleteData:I,alsoSendFinishedMessage:g,dataChannels:Q},t)=>{const B=Q.length;if(0===B)return{data:void 0};for(let i=0;i<B;i++)if(Q[i]&&Q[i].label===A&&"open"===Q[i].readyState&&(e&&g&&e.length===xe&&Q[i].send(e.buffer),Q[i].close(),I)){const{merkleRootHex:e}=await JQ(A);I&&t.dispatch(nI({merkleRootHex:e}))}return{data:void 0}})({...A,dataChannels:TQ},e)}),disconnectFromPeerChannelLabel:A.mutation({queryFn:(A,e,I)=>(async({peerId:A,label:e,peerConnections:I,dataChannels:g},Q)=>{const t=g.findIndex(I=>I.label===e&&I.withPeerId===A);t>-1&&g[t]&&(g[t].onopen=null,g[t].onclose=null,g[t].onerror=null,g[t].onclosing=null,g[t].onmessage=null,g[t].onbufferedamountlow=null,"open"===g[t].readyState&&g[t].close(),g.splice(t,1),Q.dispatch(CI({peerId:A,label:e})),await vg(e,A));const{merkleRootHex:B}=await JQ(e);B.length>0&&g.findIndex(A=>{const e=A.label.split("~");return 2===e.length&&e[1]===B})<0&&await bg(B);const{rooms:i}=Q.getState(),E=i.length;let a=!1;for(let e=0;e<E;e++){const I=i[e].channels.length;for(let g=0;g<I;g++)if(i[e].channels[g].peerIds.includes(A)){a=!0;break}if(a)break}if(!a){const e=I.findIndex(e=>e.withPeerId===A);e>-1&&("failed"===I[e].connectionState||"connected"===I[e].connectionState)&&await Q.dispatch(XQ.endpoints.disconnectFromPeer.initiate({peerId:I[e].withPeerId}))}return{data:void 0}})({...A,peerConnections:YQ,dataChannels:TQ},e)})})}),jQ=async(e,I,g)=>{try{if("PING"===e.data)return void I.send("PONG");const Q=JSON.parse(e.data);switch(Q.type){case"ping":{const{keyPair:A}=g.getState();await g.dispatch(et.endpoints.sendMessage.initiate({content:{type:"pong",fromPeerId:A.peerId}}));break}case"peerId":{const{keyPair:e}=g.getState(),I=Q.peerId.length>0?Q.peerId:"",t=Q.challenge.length>0?Q.challenge:"",B=A.isUUID(I)&&A.isHexadecimal(t)&&64===t.length&&0===e.challenge.length&&0===e.signature.length&&!Q.challengeId&&!Q.username&&!Q.credential,i=A.isUUID(I)&&A.isUUID(e.peerId)&&e.peerId!==I&&A.isHexadecimal(t)&&64===t.length&&!Q.challengeId&&!Q.username&&!Q.credential;B||i?await(async(A,e,I,g)=>{const Q=Xg(A.secretKey),t=Uint8Array.from(I.match(/.{1,2}/g).map(A=>parseInt(A,16))),B=await UQ(t,Q),i=[...new Uint8Array(B)].map(A=>A.toString(16).padStart(2,"0")).join("");g.dispatch(Je({peerId:e,challenge:I,signature:i}))})(e,I,t,g):g.dispatch(Me({peerId:I,challenge:t,signature:Q.signature??"",challengeId:Q.challengeId??"",username:Q.username??"",credential:Q.credential??""}));break}case"roomId":g.dispatch($e({id:Q.roomId,url:Q.roomUrl}));break;case"challenge":g.dispatch(be(Q));break;case"peerConnection":{if(await Dg(Q.peer.id,Q.peer.publicKey))break;const{keyPair:A,rooms:e}=g.getState(),I=e.findIndex(A=>A.id===Q.roomId);if(I>-1&&e[I].onlyConnectWithKnownAddresses){if(!await yg(Q.peer.id,Q.peer.publicKey))break}await g.dispatch(et.endpoints.sendMessage.initiate({content:{type:"peerConnection",roomId:Q.roomId,fromPeerId:A.peerId,toPeerId:Q.peer.id}}));break}case"peers":{const{keyPair:e,rooms:I,commonState:t}=g.getState(),B=64===t.currentRoomUrl.length?I.findIndex(A=>A.url===t.currentRoomUrl):-1;if(B>-1){const t=Q.peers.length;if(0===t)break;const i=I[B].onlyConnectWithKnownAddresses;for(let E=0;E<t;E++){if(Q.peers[E].publicKey===e.publicKey||Q.peers[E].id===e.peerId||!A.isUUID(Q.peers[E].id)||64!==Q.peers[E].publicKey.length)continue;if(!await Dg(Q.peers[E].id,Q.peers[E].publicKey)){if(i){if(!await yg(Q.peers[E].id,Q.peers[E].publicKey))continue}await g.dispatch(XQ.endpoints.connectWithPeer.initiate({roomId:Q.roomId,peerId:Q.peers[E].id,peerPublicKey:Q.peers[E].publicKey,initiator:!0,rtcConfig:I[B].rtcConfig}))}}}break}case"description":await Dg(Q.fromPeerId,Q.fromPeerPublicKey)||await g.dispatch(XQ.endpoints.setDescription.initiate({peerId:Q.fromPeerId,peerPublicKey:Q.fromPeerPublicKey,roomId:Q.roomId,description:Q.description}));break;case"candidate":await Dg(Q.fromPeerId)||await g.dispatch(XQ.endpoints.setCandidate.initiate({peerId:Q.fromPeerId,candidate:Q.candidate}));break;case"error":console.error(Q);break;default:console.error("Unknown message type "+JSON.stringify(Q))}}catch(A){return}},WQ=aQ(65536-xe-Xe-Le,xe),zQ=(A,e,I=10,g=20)=>{let Q=0;const t=setInterval(()=>{A.readyState===WebSocket.OPEN?(clearInterval(t),e()):(Q+=1,console.log(`Waiting for connection... Attempt ${String(Q)}`),Q>=I&&(clearInterval(t),console.log("WebSocket failed to connect after multiple attempts, closing..."),A.removeEventListener("message",()=>{}),A.removeEventListener("open",()=>{}),A.removeEventListener("close",()=>{}),A.close()))},g)};let ZQ=null;const _Q=(A,e)=>(ZQ&&(ZQ.removeEventListener("message",()=>{}),ZQ.removeEventListener("open",()=>{}),ZQ.removeEventListener("close",()=>{}),ZQ.close(),ZQ=null,console.log("WebSocket manually disconnected")),e.dispatch(hI.disconnect()),{data:void 0}),$Q=(e,I)=>{if(ZQ&&ZQ.readyState===WebSocket.OPEN){const{keyPair:g}=I.getState();return A.isUUID(g.peerId)&&A.isHexadecimal(g.challenge)&&A.isHexadecimal(g.signature)&&128===g.signature.length&&64===g.challenge.length&&zQ(ZQ,()=>{ZQ.send(JSON.stringify(e.content))}),{data:void 0}}return console.warn("WebSocket is not open"),{data:void 0}},At=async({peerId:e,peerPublicKey:I,roomId:g},Q)=>{if(ZQ&&ZQ.readyState===WebSocket.OPEN){const{keyPair:t}=Q.getState();if(A.isUUID(t.peerId)&&A.isHexadecimal(t.challenge)&&A.isHexadecimal(t.signature)&&128===t.signature.length&&64===t.challenge.length&&A.isUUID(e)&&64===I.length&&A.isUUID(g)){Q.dispatch(QI({roomId:g,peerId:e,peerPublicKey:I}));const A=[];Q.dispatch(tI({roomId:g,label:"main",peerId:e})),A.push("main"),Q.dispatch(tI({roomId:g,label:"signaling",peerId:e})),A.push("signaling"),zQ(ZQ,()=>{ZQ.send(JSON.stringify({type:"connection",roomId:g,fromPeerId:t.peerId,toPeerId:e,labels:A}))});const B=A.length,i=await wQ({wasmMemory:WQ});for(let e=0;e<B;e++){const I=`Connected with ${t.peerId} on channel ${A[e]}`;await HQ(I,g,i,Q,A[e])}}return{data:void 0}}return console.warn("WebSocket is not open"),{data:void 0}},et=hg({reducerPath:"signalingServerApi",baseQuery:async({signalingServerUrl:e},I)=>{const{signalingServer:g}=I.getState();if(ZQ||g.isConnected||g.isEstablishingConnection)return console.log("WebSocket already connected"),{data:void 0};I.dispatch(hI.startConnecting(e));try{const{keyPair:g}=I.getState();let Q=localStorage.getItem("publicKey")??"",t=localStorage.getItem("secretKey")??"";if(0===g.secretKey.length&&0===t.length){const A=await GQ();Q=Og(A.publicKey),t=Og(A.secretKey),I.dispatch(Ue({publicKey:Q,secretKey:t}))}else if(0===g.secretKey.length)if(128===t.length&&64===Q.length)I.dispatch(Ue({publicKey:Q,secretKey:t}));else{const A=await GQ();Q=Og(A.publicKey),t=Og(A.secretKey),I.dispatch(Ue({publicKey:Q,secretKey:t}))}else Q=g.publicKey;const B=e+"?publickey="+Q;return ZQ=new WebSocket(B),ZQ.binaryType="arraybuffer",await new Promise((e,Q)=>{try{ZQ.onopen=()=>{console.log("WebSocket connected to:",B),I.dispatch(hI.connectionEstablished());const{rooms:Q,commonState:t}=I.getState(),i=64===t.currentRoomUrl.length?Q.findIndex(A=>A.url===t.currentRoomUrl):-1;i>-1&&A.isUUID(g.peerId)&&A.isUUID(Q[i].id)?I.dispatch(AI({roomId:Q[i].id,connectingToPeers:!0})):A.isUUID(g.peerId)&&64===t.currentRoomUrl.length&&zQ(ZQ,()=>{ZQ.send(JSON.stringify({type:"room",fromPeerId:g.peerId,roomUrl:t.currentRoomUrl}))}),e({data:void 0})},ZQ.onerror=A=>{console.error("WebSocket error:",A),ZQ&&(ZQ.removeEventListener("message",()=>{}),ZQ.removeEventListener("open",()=>{}),ZQ.removeEventListener("close",()=>{}),ZQ.close(),ZQ=null),I.dispatch(hI.disconnect()),Q({error:"WebSocket connection failed"})},ZQ.onmessage=async A=>{await jQ(A,ZQ,I)},ZQ.onclose=()=>{ZQ&&(ZQ.removeEventListener("message",()=>{}),ZQ.removeEventListener("open",()=>{}),ZQ.removeEventListener("close",()=>{}),ZQ.close(),ZQ=null),I.dispatch(hI.disconnect()),console.log("WebSocket disconnected"),e({data:void 0})}}catch(A){Q(A)}return()=>{ZQ&&(console.log("Cleaning up WebSocket connection..."),ZQ.removeEventListener("message",()=>{}),ZQ.removeEventListener("open",()=>{}),ZQ.removeEventListener("close",()=>{}),ZQ.close(),ZQ=null)}})}catch(A){return ZQ&&(ZQ.removeEventListener("message",()=>{}),ZQ.removeEventListener("open",()=>{}),ZQ.removeEventListener("close",()=>{}),ZQ.close(),ZQ=null),I.dispatch(hI.disconnect()),console.error("Error during WebSocket setup:",A),{error:"WebSocket connection failed"}}},endpoints:A=>({connectWebSocket:A.mutation({query:(A="wss://signaling.p2party.com/ws")=>({signalingServerUrl:A})}),disconnectWebSocket:A.mutation({queryFn:_Q}),sendMessage:A.mutation({queryFn:$Q}),connectWithPeer:A.mutation({queryFn:At})})}),It=pe();It.startListening({matcher:pA(AI,$e,tI,iI,EI,nI,oI),effect:async(e,I)=>{if(AI.match(e)){const{roomId:g,connectingToPeers:Q}=e.payload;if(Q){const{signalingServer:e,keyPair:Q,rooms:t}=I.getState(),B=t.findIndex(A=>A.id===g);e.isConnected&&A.isUUID(Q.peerId)&&B>-1&&A.isUUID(t[B].id)&&await I.dispatch(et.endpoints.sendMessage.initiate({content:{type:"peers",fromPeerId:Q.peerId,roomId:g}})),I.dispatch(AI({roomId:g,connectingToPeers:!1}))}}else if(tI.match(e));else if($e.match(e)){const{signalingServer:t,keyPair:B,rooms:i}=I.getState(),{url:E,id:a,onlyConnectWithKnownPeers:C}=e.payload;if(64===E.length&&null!=C&&localStorage.setItem(E+"-onlyConnectWithKnownPeers",String(C)),64===E.length&&A.isUUID(a)){await(g=E,Q=a,ug("setDBUniqueRoom",g,Q));const e=await mg(a),C=e.length;for(let A=0;A<C;A++)I.dispatch(iI({roomId:e[A].roomId,merkleRootHex:e[A].merkleRoot,sha512Hex:e[A].hash,fromPeerId:e[A].fromPeerId,filename:e[A].filename,messageType:e[A].messageType,chunkSize:e[A].savedSize,totalSize:e[A].totalSize,channelLabel:e[A].channelLabel,timestamp:e[A].timestamp}));const n=i.findIndex(A=>A.id===a);t.isConnected&&A.isUUID(B.peerId)&&n>-1&&A.isUUID(i[n].id)&&await I.dispatch(et.endpoints.sendMessage.initiate({content:{type:"peers",fromPeerId:B.peerId,roomId:i[n].id}}))}}else if(iI.match(e)){const{roomId:A,merkleRootHex:g,sha512Hex:Q,chunkSize:t,totalSize:B}=e.payload,{rooms:i,keyPair:E}=I.getOriginalState(),a=i.findIndex(e=>e.id===A);if(a>-1){const A=i[a].messages.findLastIndex(A=>A.merkleRootHex===g&&A.fromPeerId!==E.peerId&&A.savedSize+t===B);if(A>-1){const e=await MQ(i[a].messages[A].channelLabel,i[a].messages[A].merkleRootHex),g=Xg(Q);await I.dispatch(XQ.endpoints.disconnectFromChannelLabel.initiate({label:e,messageHash:g,alsoDeleteData:!1,alsoSendFinishedMessage:!0}))}}}else if(EI.match(e)){const{roomId:A,merkleRootHex:g,sha512Hex:Q,alsoSendFinishedMessage:t}=e.payload,{rooms:B,keyPair:i}=I.getState(),E=B.findIndex(e=>e.id===A);if(E>-1){const A=B[E].messages.findLastIndex(A=>A.merkleRootHex===g&&A.fromPeerId!==i.peerId);if(A>-1){const e=await MQ(B[E].messages[A].channelLabel,B[E].messages[A].merkleRootHex),g=Xg(Q);await I.dispatch(XQ.endpoints.disconnectFromChannelLabel.initiate({label:e,messageHash:g,alsoDeleteData:!1,alsoSendFinishedMessage:t}))}}}else if(nI.match(e)){const{merkleRootHex:A,hashHex:I}=e.payload;if(!A&&!I)return;if(A&&A.length!==2*xe)return;if(I&&I.length!==2*xe)return;A?(await Jg(A),await bg(A),await(A=>ug("deleteDBMessageData",A))(A)):I&&await bg(void 0,void 0,I)}else if(oI.match(e)){const A=e.payload;await I.dispatch(XQ.endpoints.disconnectFromRoom.initiate({roomId:A,deleteMessages:!0}))}var g,Q}});const gt=pe();gt.startListening({matcher:pA(Ue,Me,Je,be,ve),effect:async(e,I)=>{if(Ue.match(e)){const{publicKey:A,secretKey:I}=e.payload;64===A.length&&128===I.length&&(localStorage.setItem("publicKey",e.payload.publicKey),localStorage.setItem("secretKey",e.payload.secretKey))}else if(Me.match(e)){const{peerId:g,challenge:Q,signature:t,challengeId:B,username:i,credential:E}=e.payload;if(A.isUUID(g)&&A.isUUID(B)&&A.isHexadecimal(Q)&&A.isHexadecimal(t)&&64===Q.length&&128===t.length){localStorage.setItem("peerId",g),localStorage.setItem("challenge",Q),localStorage.setItem("signature",t),localStorage.setItem("challengeId",B);const{keyPair:a,rooms:C,commonState:n}=I.getState(),o=64===n.currentRoomUrl.length?C.findIndex(A=>A.url===n.currentRoomUrl):-1;o>-1?(e.payload.username&&e.payload.credential&&I.dispatch(BI({roomId:C[o].id,iceServers:[{urls:["turn:turn.p2party.com:3478?transport=udp","turn:turn.p2party.com:3478?transport=tcp","turns:turn.p2party.com:443?transport=tcp"],username:i,credential:E}]})),A.isUUID(C[o].id)&&I.dispatch(AI({roomId:C[o].id,connectingToPeers:!0}))):A.isUUID(a.peerId)&&64===n.currentRoomUrl.length&&await I.dispatch(et.endpoints.sendMessage.initiate({content:{type:"room",fromPeerId:a.peerId,roomUrl:n.currentRoomUrl}}))}}else if(Je.match(e)){const{peerId:g,challenge:Q,signature:t}=e.payload;A.isUUID(g)&&A.isHexadecimal(Q)&&A.isHexadecimal(t)&&64===Q.length&&128===t.length&&(localStorage.setItem("peerId",g),localStorage.setItem("challenge",Q),localStorage.setItem("signature",t),await I.dispatch(et.endpoints.sendMessage.initiate({content:{type:"challenge",fromPeerId:g,challenge:Q,signature:t}})))}else if(be.match(e)){const{challengeId:g}=e.payload;if(A.isUUID(g)){localStorage.setItem("challengeId",g);const{keyPair:Q,rooms:t,commonState:B}=I.getState(),i=64===B.currentRoomUrl.length?t.findIndex(A=>A.url===B.currentRoomUrl):-1;i>-1?e.payload.username&&e.payload.credential&&(I.dispatch(BI({roomId:t[i].id,iceServers:[{urls:["turn:turn.p2party.com:3478?transport=udp","turn:turn.p2party.com:3478?transport=tcp","turns:turn.p2party.com:443?transport=tcp"],username:e.payload.username,credential:e.payload.credential}]})),A.isUUID(t[i].id)?I.dispatch(AI({roomId:t[i].id,connectingToPeers:!0})):A.isUUID(Q.peerId)&&64===B.currentRoomUrl.length&&await I.dispatch(et.endpoints.sendMessage.initiate({content:{type:"room",fromPeerId:Q.peerId,roomUrl:B.currentRoomUrl}}))):A.isUUID(Q.peerId)&&64===B.currentRoomUrl.length&&await I.dispatch(et.endpoints.sendMessage.initiate({content:{type:"room",fromPeerId:Q.peerId,roomUrl:B.currentRoomUrl}}))}}else ve.match(e)&&(localStorage.setItem("peerId",""),localStorage.setItem("challengeId",""),localStorage.setItem("publicKey",""),localStorage.setItem("secretKey",""),localStorage.setItem("challenge",""),localStorage.setItem("signature",""))}});const Qt=function(A){const I=function(A){const{thunk:e=!0,immutableCheck:I=!0,serializableCheck:g=!0,actionCreatorCheck:Q=!0}=A??{};let t=new hA;return e&&("boolean"==typeof e?t.push(oA):t.push(rA(e.extraArgument))),t},{reducer:g,middleware:Q,devTools:a=!0,preloadedState:C,enhancers:n}=A||{};let o,r;if("function"==typeof g)o=g;else{if(!t(g))throw new Error(me(1));o=i(g)}r="function"==typeof Q?Q(I):I();let s=E;a&&(s=sA({trace:!1,..."object"==typeof a&&a}));const c=function(...A){return I=>(g,Q)=>{const t=I(g,Q);let B=()=>{throw new Error(e(15))};const i={getState:t.getState,dispatch:(A,...e)=>B(A,...e)},a=A.map(A=>A(i));return B=E(...a)(t.dispatch),{...t,dispatch:B}}}(...r),h=yA(c);return B(o,C,s(..."function"==typeof n?n(h):h()))}({reducer:{commonState:Re,keyPair:Pe,rooms:rI,signalingServer:lI,[et.reducerPath]:et.reducer,[XQ.reducerPath]:XQ.reducer},middleware:A=>A().concat([et.middleware,XQ.middleware,It.middleware,gt.middleware])}),tt=Qt.dispatch;var Bt=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"];const it=A=>A.normalize("NFKD"),Et=async A=>{try{return await(async A=>{const e=it(A).split(" ");if(e.length%3!=0)throw new Error("Number of words in mnemonic must be multiple of three.");const I=e.map(A=>{const e=Bt.indexOf(A);if(-1===e)throw new Error("Could not find word in wordlist.");return e.toString(2).padStart(11,"0")}).join(""),g=32*Math.floor(I.length/33),Q=I.slice(0,g),t=I.slice(g),B=Q.match(/(.{1,8})/g).map(A=>parseInt(A,2));if(B.length<16)throw new Error("Entropy length too small (less than 128 bits).");if(B.length>64)throw new Error("Entropy length too large (more than 512 bits).");const i=B.length/4,E=Uint8Array.from(B),a=await window.crypto.subtle.digest("SHA-512",E);if(new Uint8Array(a).reduce((A,e)=>A+e.toString(2).padStart(8,"0"),"").slice(0,i)!==t)throw new Error("Invalid checksum.");return!0})(A)}catch{return!1}},at={store:Qt,commonStateSelector:A=>A.commonState,signalingServerSelector:A=>A.signalingServer,roomSelector:A=>A.rooms,keyPairSelector:A=>A.keyPair,connect:async(e,I="wss://signaling.p2party.com/ws",g={iceServers:[{urls:["stun:stun.p2party.com:3478"]}],iceTransportPolicy:"all"})=>{if(64!==e.length)throw new Error("Invalid room url length");const{keyPair:Q,signalingServer:t,rooms:B,commonState:i}=Qt.getState(),E=B.findIndex(A=>A.url===e);-1===E&&tt($e({url:e,id:"",rtcConfig:g})),i.currentRoomUrl!==e&&tt(Se(e)),t.isConnected&&A.isUUID(Q.peerId)?-1===E?await tt(et.endpoints.sendMessage.initiate({content:{type:"room",fromPeerId:Q.peerId,roomUrl:e}})):tt(AI({roomId:B[E].id,connectingToPeers:!0})):await tt(et.endpoints.connectWebSocket.initiate(I))},connectToSignalingServer:async(A,e="wss://signaling.p2party.com/ws")=>{if(64!==A.length)throw new Error("Invalid room url length");const{signalingServer:I,rooms:g,commonState:Q}=Qt.getState();-1===g.findIndex(e=>e.url===A)&&tt($e({url:A,id:""})),Q.currentRoomUrl!==A&&tt(Se(A)),I.serverUrl===e&&(I.isConnected||I.isEstablishingConnection)||await tt(et.endpoints.connectWebSocket.initiate(e))},disconnectFromSignalingServer:async()=>{await tt(et.endpoints.disconnectWebSocket.initiate())},disconnectFromRoom:async(A,e=!1)=>{await tt(XQ.endpoints.disconnectFromRoom.initiate({roomId:A,deleteMessages:e}))},disconnectFromAllRooms:async(A=!1,e=[])=>{await tt(XQ.endpoints.disconnectFromAllRooms.initiate({deleteMessages:A,exceptionRoomIds:e}))},disconnectFromPeer:async A=>{await tt(XQ.endpoints.disconnectFromPeer.initiate({peerId:A}))},allowConnectionRelay:(A,e=!0)=>{const{rooms:I}=Qt.getState(),g=I.findIndex(e=>e.id===A);g>-1&&tt(II({roomId:I[g].id,canBeConnectionRelay:e}))},onlyAllowConnectionsFromAddressBook:async(A,e)=>{if(64===A.length){const{rooms:I}=Qt.getState(),g=I.findIndex(e=>e.url===A);if(g>-1&&!I[g].onlyConnectWithKnownAddresses&&e&&I[g].peers.length>0){const A=I[g].peers.length;for(let e=0;e<A;e++){await yg(I[g].peers[e].peerId,I[g].peers[e].peerPublicKey)||await tt(XQ.endpoints.disconnectFromPeer.initiate({peerId:I[g].peers[e].peerId,alsoDeleteData:!1}))}}tt($e({url:g>-1?I[g].url:A,id:g>-1?I[g].id:"",onlyConnectWithKnownPeers:e}))}},addPeerToAddressBook:(A,e,I)=>ug("setDBAddressBookEntry",A,e,I),getPeerAddressBookEntry:yg,getAllPeersInAddressBook:()=>ug("getAllDBAddressBookEntries"),getAllPeersInBlacklist:()=>ug("getAllDBBlacklisted"),deletePeerFromAddressBook:async(e,I,g)=>{const Q=await((A,e,I)=>ug("deleteDBAddressBookEntry",A,e,I))(e,I,g);A.isUUID(Q)&&await tt(XQ.endpoints.disconnectFromPeer.initiate({peerId:Q,alsoDeleteData:!1}))},blacklistPeer:async(A,e)=>{await((A,e)=>ug("setDBPeerInBlacklist",A,e))(A,e),await tt(XQ.endpoints.disconnectFromPeer.initiate({peerId:A,alsoDeleteData:!0}))},getPeerIsBlacklisted:Dg,removePeerFromBlacklist:(A,e)=>ug("deleteDBPeerFromBlacklist",A,e),getAllExistingRooms:kg,sendMessage:async(A,e,I,g=.9,Q=3,t=$g,B=1)=>{await tt(XQ.endpoints.sendMessage.initiate({data:A,label:e,roomId:I,minChunks:Q,chunkSize:t,percentageFilledChunk:g,metadataSchemaVersion:B}))},readMessage:async(A,e)=>{if(!A&&!e)return{message:"No message",percentage:0,size:0,filename:"",mimeType:"text/plain",extension:"txt",category:xg.Text};try{const{keyPair:I,rooms:g}=Qt.getState(),Q=g.length;let t=-1,B=-1;for(let i=0;i<Q;i++)if(B=g[i].messages.findLastIndex(g=>g.merkleRootHex===A||I.peerId===g.fromPeerId&&g.sha512Hex===e&&""===g.merkleRootHex),B>-1){t=i;break}if(t>-1&&B>-1){const A=g[t].messages[B].messageType,e=qg(A),Q=Ng(A),i=Kg(A),E=g[t].messages[B].fromPeerId===I.peerId?100:Math.floor(g[t].messages[B].savedSize/g[t].messages[B].totalSize*100);if(100===E&&g[t].messages[B].fromPeerId!==I.peerId){const A=await MQ(g[t].messages[B].channelLabel,g[t].messages[B].merkleRootHex);await Qt.dispatch(XQ.endpoints.disconnectFromChannelLabel.initiate({label:A,messageHash:Xg(g[t].messages[B].sha512Hex),alsoDeleteData:!1,alsoSendFinishedMessage:!0}))}const a=(100===E?await Hg(g[t].messages[B].merkleRootHex,g[t].messages[B].sha512Hex):[]).map(A=>A.data);try{const I=new Blob(a,{type:e});return A===Pg.Text?{message:a.length>0?await I.text():"Incoming message...",percentage:E,size:g[t].messages[B].totalSize,filename:"",mimeType:e,extension:Q,category:i}:{message:I,percentage:E,size:g[t].messages[B].totalSize,filename:g[t].messages[B].filename,mimeType:e,extension:Q,category:i}}catch{return{message:"Invalid message",percentage:0,size:g[t].messages[B].totalSize,filename:g[t].messages[B].filename,mimeType:e,extension:Q,category:i}}}else{const e=await pg(A);if(!e)return{message:"Irretrievable message",percentage:0,size:0,filename:"",mimeType:"text/plain",extension:"",category:xg.Text};{const A=e.messageType,g=qg(A),Q=Ng(A),t=Kg(A),B=Math.floor(e.savedSize/e.totalSize*100);if(100===B&&e.fromPeerId!==I.peerId){const A=await MQ(e.channelLabel,e.merkleRoot);await Qt.dispatch(XQ.endpoints.disconnectFromChannelLabel.initiate({label:A,messageHash:Xg(e.hash),alsoDeleteData:!1,alsoSendFinishedMessage:!0}))}const i=100===B?await Hg(e.merkleRoot):[],E=i.length>0?i.sort((A,e)=>A.chunkIndex-e.chunkIndex).map(A=>A.data):[(new Uint8Array).buffer];try{const I=new Blob(E,{type:g});return A===Pg.Text?{message:await I.text(),percentage:B,size:e.totalSize,filename:"",mimeType:g,extension:Q,category:t}:{message:I,percentage:B,size:e.totalSize,filename:e.filename,mimeType:g,extension:Q,category:t}}catch{return{message:"Invalid message",percentage:0,size:e.totalSize,filename:e.filename,mimeType:g,extension:Q,category:t}}}}}catch(A){return console.error(A),{message:"Irretrievable message",percentage:0,size:0,filename:"",mimeType:"text/plain",extension:"",category:xg.Text}}},cancelMessage:async(A,e,I)=>{if(!e&&!I)throw new Error("Need to provide either merkle root or hash");if(e&&"string"==typeof e&&e.length!==2*xe)throw new Error("Invalid Merkle root length");if(e&&"string"!=typeof e&&e.length!==xe)throw new Error("Invalid Merkle root length");if(I&&"string"==typeof I&&I.length!==2*xe)throw new Error("Invalid hash length");if(I&&"string"!=typeof I&&I.length!==xe)throw new Error("Invalid hash length");const g=new CustomEvent(FQ);window.dispatchEvent(g);const Q=e&&"string"==typeof e?e:e&&"string"!=typeof e?Og(e):"";let t=-1,B=-1;const{rooms:i}=Qt.getState(),E=i.length;for(let A=0;A<E;A++)if(B=e?i[A].messages.findIndex(A=>A.merkleRootHex===Q):-1,B>-1){t=A;break}if(t>-1&&B>-1&&i[t].messages[B].merkleRootHex.length===2*xe){const e=await MQ(A,i[t].messages[B].merkleRootHex);await Qt.dispatch(XQ.endpoints.disconnectFromChannelLabel.initiate({label:e,alsoDeleteData:!0})),Qt.dispatch(nI({merkleRootHex:i[t].messages[B].merkleRootHex}))}},deleteMessage:async(A,e)=>{if(!A&&!e)throw new Error("Need to provide either merkle root or hash");if(A&&"string"==typeof A&&A.length!==2*xe)throw new Error("Invalid Merkle root length");if(A&&"string"!=typeof A&&A.length!==xe)throw new Error("Invalid Merkle root length");if(e&&"string"==typeof e&&e.length!==2*xe)throw new Error("Invalid hash length");if(e&&"string"!=typeof e&&e.length!==xe)throw new Error("Invalid hash length");const I=new CustomEvent(FQ);window.dispatchEvent(I);const g=A&&"string"==typeof A?A:A&&"string"!=typeof A?Og(A):"",Q=e&&"string"==typeof e?e:e&&"string"!=typeof e?Og(e):"";let t=-1,B=-1;const{rooms:i}=Qt.getState(),E=i.length;for(let I=0;I<E;I++)if(B=A?i[I].messages.findIndex(A=>A.merkleRootHex===g):e?i[I].messages.findIndex(A=>A.sha512Hex===Q):-1,B>-1){t=I;break}if(t>-1&&B>-1&&i[t].messages[B].merkleRootHex.length===2*xe){const A=await MQ(i[t].messages[B].channelLabel,i[t].messages[B].merkleRootHex);await Qt.dispatch(XQ.endpoints.disconnectFromChannelLabel.initiate({label:A,alsoDeleteData:!0})),Qt.dispatch(nI({merkleRootHex:i[t].messages[B].merkleRootHex}))}},purgeIdentity:async()=>{tt(ve());const{rooms:A}=Qt.getState(),e=A.length;for(let I=0;I<e;I++)await tt(XQ.endpoints.disconnectFromRoom.initiate({roomId:A[I].id}));await tt(et.endpoints.disconnectWebSocket.initiate())},purgeRoom:async A=>{const{rooms:e}=Qt.getState(),I=e.findIndex(e=>e.url===A);I>-1&&tt(oI(e[I].id)),await tt(et.endpoints.disconnectWebSocket.initiate())},purge:async()=>{tt(ve()),await tt(et.endpoints.disconnectWebSocket.initiate());const A=await kg(),e=A.length;for(let I=0;I<e;I++)tt(oI(A[I].roomId))},generateRandomRoomUrl:async()=>{const A=await DQ(256),e=(new TextEncoder).encode(A),I=await window.crypto.subtle.digest("SHA-512",e),g=await window.crypto.subtle.digest("SHA-256",I),Q=new Uint8Array(g);return Og(Q)},encrypt:RQ,decrypt:async(A,e,I,g,Q)=>{const t=A.length,B=g.length,i=Q?.wasmMemory??CQ(t,B),E=Q??await wQ({wasmMemory:i}),a=ze(t),C=E._malloc(t*Uint8Array.BYTES_PER_ELEMENT),n=new Uint8Array(i.buffer,C,t*Uint8Array.BYTES_PER_ELEMENT);n.set(A);const o=E._malloc(Ke),r=new Uint8Array(i.buffer,o,Ke);r.set(e);const s=E._malloc(Ye),c=new Uint8Array(i.buffer,s,Ye);c.set(I);const h=E._malloc(B*Uint8Array.BYTES_PER_ELEMENT),l=new Uint8Array(i.buffer,h,B*Uint8Array.BYTES_PER_ELEMENT);l.set(g);const d=E._malloc(a*Uint8Array.BYTES_PER_ELEMENT),f=new Uint8Array(i.buffer,d,a*Uint8Array.BYTES_PER_ELEMENT),w=E._decrypt_chachapoly_asymmetric(t,n.byteOffset,r.byteOffset,c.byteOffset,B,l.byteOffset,f.byteOffset);switch(E._free(C),E._free(o),E._free(s),E._free(h),w){case 0:{const A=Uint8Array.from([...f]);return E._free(d),A}case-1:throw E._free(d),new Error("Could not allocate memory for the ed25519 converted to x25519 public key array.");case-2:throw E._free(d),new Error("Could not allocate memory for the ed25519 converted to x25519 secret key array.");case-3:throw E._free(d),new Error("Could not convert receiver ed25519 secret key to x25519.");case-4:throw E._free(d),new Error("Could not generate x25519 public key from x25519 secret key.");case-5:throw E._free(d),new Error("Could not allocate memory for the ed25519 converted to x25519 receiver public key.");case-6:throw E._free(d),new Error("Could not convert receiver ed25519 public key to x25519.");case-7:throw E._free(d),new Error("Could not allocate memory for the shared secret.");case-8:throw E._free(d),new Error("Could not calculate the shared secret.");case-9:throw E._free(d),new Error("Could not decrypt");default:throw E._free(d),new Error("Unsuccessful decryption attempt")}},sign:UQ,verify:async(A,e,I,g)=>{const Q=A.length,t=g?g.wasmMemory:EQ(Q),B=g??await wQ({wasmMemory:t}),i=B._malloc(Q*Uint8Array.BYTES_PER_ELEMENT),E=new Uint8Array(t.buffer,i,Q*Uint8Array.BYTES_PER_ELEMENT);E.set(A);const a=B._malloc(Ne),C=new Uint8Array(t.buffer,a,Ne);C.set(e);const n=B._malloc(Ke),o=new Uint8Array(t.buffer,n,Ke);o.set(I);const r=B._verify(Q,E.byteOffset,o.byteOffset,C.byteOffset);return B._free(i),B._free(a),B._free(n),0===r},newKeyPair:GQ,generateMnemonic:async(A=128)=>{if(!Bt)throw new Error("English wordlist could not be loaded.");if(A%32!=0)throw new TypeError("Mnemonic strength needs to be multiple of 32.");if(![128,160,192,224,256,288,320,352,384,416,448,480,512].includes(A))throw new Error("Wrong mnemonic strength");const e=window.crypto.getRandomValues(new Uint8Array(A/8)),I=e.reduce((A,e)=>A+e.toString(2).padStart(8,"0"),""),g=A/32,Q=Uint8Array.from(e),t=await window.crypto.subtle.digest("SHA-512",Q);return(I+new Uint8Array(t).reduce((A,e)=>A+e.toString(2).padStart(8,"0"),"").slice(0,g)).match(/(.{1,11})/g).map(A=>{const e=parseInt(A,2);return Bt[e]}).join(" ")},keyPairFromMnemonic:async(A,e)=>{if(!await Et(A))throw new Error("Invalid mnemonic.");const I=new Uint8Array(je),g=new TextEncoder;g.encodeInto("password12345678",I);const Q=new Uint8Array(je);if(e){const A=g.encode(e),I=await window.crypto.subtle.digest("SHA-512",A);Q.set(new Uint8Array(I).slice(xe-je,xe))}else Q.set(I);const t=await(async(A,e,I)=>{const g=it(A),Q=(new TextEncoder).encode(g).buffer,t=new Int8Array(Q),B=t.length;e=e??window.crypto.getRandomValues(new Uint8Array(je));const i=I?.wasmMemory??sQ(B),E=(I=I??await wQ({wasmMemory:i}))._malloc(qe),a=new Uint8Array(i.buffer,E,qe),C=window.crypto.getRandomValues(new Uint8Array(qe));a.set(C);const n=I._malloc(B*Uint8Array.BYTES_PER_ELEMENT),o=new Int8Array(i.buffer,n,B*Uint8Array.BYTES_PER_ELEMENT);o.set(t);const r=I._malloc(je),s=new Uint8Array(i.buffer,r,je);s.set(e);const c=I._argon2(B,a.byteOffset,o.byteOffset,s.byteOffset),h=Uint8Array.from(a);if(I._free(E),I._free(n),I._free(r),0===c)return h;throw new Error("Could not generate argon2id for mnemonic.")})(A,Q);return await(async A=>{const e=BQ(),I=await wQ({wasmMemory:e}),g=I._malloc(Ke),Q=new Uint8Array(e.buffer,g,Ke),t=I._malloc(Ye),B=new Uint8Array(e.buffer,t,Ye),i=I._malloc(qe),E=new Uint8Array(e.buffer,i,qe);E.set(A);const a=I._keypair_from_seed(Q.byteOffset,B.byteOffset,E.byteOffset);if(I._free(i),0===a){const A={publicKey:Uint8Array.from(Q),secretKey:Uint8Array.from(B)};return I._free(g),I._free(t),A}throw I._free(g),I._free(t),new Error("An unexpected error occured.")})(t)},MIN_CHUNKS:3,MIN_CHUNK_SIZE:_g+1,MAX_CHUNK_SIZE:$g,MIN_PERCENTAGE_FILLED_CHUNK:.1,MAX_PERCENTAGE_FILLED_CHUNK:1,ROOM_URL_LENGTH:64,MessageType:Pg,MessageCategory:xg};"undefined"!=typeof window&&(window.p2party=at),exports.default=at,exports.p2party=at;
2
2
  //# sourceMappingURL=index.js.map