Files
next.orly.dev/app/web/dist/bundle.js

23 lines
344 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
var app=function(){"use strict";function e(){}function t(e){return e()}function n(){return Object.create(null)}function r(e){e.forEach(t)}function o(e){return"function"==typeof e}function i(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}let s;function a(e,t){return s||(s=document.createElement("a")),s.href=t,e===s.href}const l="undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:global;function c(e,t){e.appendChild(t)}function u(e,t,n){e.insertBefore(t,n||null)}function d(e){e.parentNode&&e.parentNode.removeChild(e)}function f(e,t){for(let n=0;n<e.length;n+=1)e[n]&&e[n].d(t)}function h(e){return document.createElement(e)}function p(e){return document.createTextNode(e)}function g(){return p(" ")}function y(){return p("")}function v(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}function m(e){return function(t){return t.stopPropagation(),e.call(this,t)}}function w(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function b(e){return""===e?null:+e}function E(e,t){t=""+t,e.data!==t&&(e.data=t)}function k(e,t){e.value=null==t?"":t}function x(e,t,n){for(let n=0;n<e.options.length;n+=1){const r=e.options[n];if(r.__value===t)return void(r.selected=!0)}n&&void 0===t||(e.selectedIndex=-1)}function S(e,t,n){e.classList[n?"add":"remove"](t)}let C;function A(e){C=e}function $(){if(!C)throw new Error("Function called outside component initialization");return C}function T(){const e=$();return(t,n,{cancelable:r=!1}={})=>{const o=e.$$.callbacks[t];if(o){const i=function(e,t,{bubbles:n=!1,cancelable:r=!1}={}){const o=document.createEvent("CustomEvent");return o.initCustomEvent(e,n,r,t),o}(t,n,{cancelable:r});return o.slice().forEach(t=>{t.call(e,i)}),!i.defaultPrevented}return!0}}function I(e,t){const n=e.$$.callbacks[t.type];n&&n.slice().forEach(e=>e.call(this,t))}const R=[],_=[];let L=[];const P=[],O=Promise.resolve();let B=!1;function j(e){L.push(e)}function N(e){P.push(e)}const M=new Set;let U=0;function F(){if(0!==U)return;const e=C;do{try{for(;U<R.length;){const e=R[U];U++,A(e),D(e.$$)}}catch(e){throw R.length=0,U=0,e}for(A(null),R.length=0,U=0;_.length;)_.pop()();for(let e=0;e<L.length;e+=1){const t=L[e];M.has(t)||(M.add(t),t())}L.length=0}while(R.length);for(;P.length;)P.pop()();B=!1,M.clear(),A(e)}function D(e){if(null!==e.fragment){e.update(),r(e.before_update);const t=e.dirty;e.dirty=[-1],e.fragment&&e.fragment.p(e.ctx,t),e.after_update.forEach(j)}}const q=new Set;let H;function z(){H={r:0,c:[],p:H}}function K(){H.r||r(H.c),H=H.p}function W(e,t){e&&e.i&&(q.delete(e),e.i(t))}function V(e,t,n,r){if(e&&e.o){if(q.has(e))return;q.add(e),H.c.push(()=>{q.delete(e),r&&(n&&e.d(1),r())}),e.o(t)}else r&&r()}function J(e,t,n){const r=e.$$.props[t];void 0!==r&&(e.$$.bound[r]=n,n(e.$$.ctx[r]))}function Z(e){e&&e.c()}function G(e,n,i,s){const{fragment:a,after_update:l}=e.$$;a&&a.m(n,i),s||j(()=>{const n=e.$$.on_mount.map(t).filter(o);e.$$.on_destroy?e.$$.on_destroy.push(...n):r(n),e.$$.on_mount=[]}),l.forEach(j)}function Q(e,t){const n=e.$$;null!==n.fragment&&(!function(e){const t=[],n=[];L.forEach(r=>-1===e.indexOf(r)?t.push(r):n.push(r)),n.forEach(e=>e()),L=t}(n.after_update),r(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function Y(e,t){-1===e.$$.dirty[0]&&(R.push(e),B||(B=!0,O.then(F)),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<<t%31}function X(t,o,i,s,a,l,c,u=[-1]){const f=C;A(t);const h=t.$$={fragment:null,ctx:[],props:l,update:e,not_equal:a,bound:n(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(o.context||(f?f.$$.context:[])),callbacks:n(),dirty:u,skip_bound:!1,root:o.target||f.$$.root};c&&c(h.root);let p=!1;if(h.ctx=i?i(t,o.props||{},(e,n,...r)=>{const o=r.length?r[0]:n;return h.ctx&&a(h.ctx[e],h.ctx[e]=o)&&(!h.skip_bound&&h.bound[e]&&h.bound[e](o),p&&Y(t,e)),n}):[],h.update(),p=!0,r(h.before_update),h.fragment=!!s&&s(h.ctx),o.target){if(o.hydrate){const e=function(e){return Array.from(e.childNodes)}(o.target);h.fragment&&h.fragment.l(e),e.forEach(d)}else h.fragment&&h.fragment.c();o.intro&&W(t.$$.fragment),G(t,o.target,o.anchor,o.customElement),F()}A(f)}class ee{$destroy(){Q(this,1),this.$destroy=e}$on(t,n){if(!o(n))return e;const r=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return r.push(n),()=>{const e=r.indexOf(n);-1!==e&&r.splice(e,1)}}$set(e){var t;this.$$set&&(t=e,0!==Object.keys(t).length)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}function te(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function ne(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function re(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}const oe="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,ie=e=>e instanceof Uint8Array,se=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),ae=(e,t)=>e<<32-t|e>>>t;
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */if(!(68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]))throw new Error("Non little-endian hardware is not supported");function le(e){if("string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),!ie(e))throw new Error("expected Uint8Array, got "+typeof e);return e}let ce=class{clone(){return this._cloneInto()}};function ue(e){const t=t=>e().update(le(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function de(e=32){if(oe&&"function"==typeof oe.getRandomValues)return oe.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}let fe=class extends ce{constructor(e,t,n,r){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=se(this.buffer)}update(e){re(this);const{view:t,buffer:n,blockLen:r}=this,o=(e=le(e)).length;for(let i=0;i<o;){const s=Math.min(r-this.pos,o-i);if(s===r){const t=se(e);for(;r<=o-i;i+=r)this.process(t,i);continue}n.set(e.subarray(i,i+s),this.pos),this.pos+=s,i+=s,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){re(this),function(e,t){ne(e);const n=t.outputLen;if(e.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:r,isLE:o}=this;let{pos:i}=this;t[i++]=128,this.buffer.subarray(i).fill(0),this.padOffset>r-i&&(this.process(n,0),i=0);for(let e=i;e<r;e++)t[e]=0;!function(e,t,n,r){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,r);const o=BigInt(32),i=BigInt(4294967295),s=Number(n>>o&i),a=Number(n&i),l=r?4:0,c=r?0:4;e.setUint32(t+l,s,r),e.setUint32(t+c,a,r)}(n,r-8,BigInt(8*this.length),o),this.process(n,0);const s=se(e),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const l=a/4,c=this.get();if(l>c.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<l;e++)s.setUint32(4*e,c[e],o)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:r,finished:o,destroyed:i,pos:s}=this;return e.length=r,e.pos=s,e.finished=o,e.destroyed=i,r%t&&e.buffer.set(n),e}};const he=(e,t,n)=>e&t^~e&n,pe=(e,t,n)=>e&t^e&n^t&n,ge=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),ye=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ve=new Uint32Array(64);let me=class extends fe{constructor(){super(64,32,8,!1),this.A=0|ye[0],this.B=0|ye[1],this.C=0|ye[2],this.D=0|ye[3],this.E=0|ye[4],this.F=0|ye[5],this.G=0|ye[6],this.H=0|ye[7]}get(){const{A:e,B:t,C:n,D:r,E:o,F:i,G:s,H:a}=this;return[e,t,n,r,o,i,s,a]}set(e,t,n,r,o,i,s,a){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|r,this.E=0|o,this.F=0|i,this.G=0|s,this.H=0|a}process(e,t){for(let n=0;n<16;n++,t+=4)ve[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=ve[e-15],n=ve[e-2],r=ae(t,7)^ae(t,18)^t>>>3,o=ae(n,17)^ae(n,19)^n>>>10;ve[e]=o+ve[e-7]+r+ve[e-16]|0}let{A:n,B:r,C:o,D:i,E:s,F:a,G:l,H:c}=this;for(let e=0;e<64;e++){const t=c+(ae(s,6)^ae(s,11)^ae(s,25))+he(s,a,l)+ge[e]+ve[e]|0,u=(ae(n,2)^ae(n,13)^ae(n,22))+pe(n,r,o)|0;c=l,l=a,a=s,s=i+t|0,i=o,o=r,r=n,n=t+u|0}n=n+this.A|0,r=r+this.B|0,o=o+this.C|0,i=i+this.D|0,s=s+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,o,i,s,a,l,c)}roundClean(){ve.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};const we=ue(()=>new me),be=BigInt(0),Ee=BigInt(1),ke=BigInt(2),xe=e=>e instanceof Uint8Array,Se=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Ce(e){if(!xe(e))throw new Error("Uint8Array expected");let t="";for(let n=0;n<e.length;n++)t+=Se[e[n]];return t}function Ae(e){const t=e.toString(16);return 1&t.length?`0${t}`:t}function $e(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return BigInt(""===e?"0":`0x${e}`)}function Te(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);const t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);const n=new Uint8Array(t/2);for(let t=0;t<n.length;t++){const r=2*t,o=e.slice(r,r+2),i=Number.parseInt(o,16);if(Number.isNaN(i)||i<0)throw new Error("Invalid byte sequence");n[t]=i}return n}function Ie(e){return $e(Ce(e))}function Re(e){if(!xe(e))throw new Error("Uint8Array expected");return $e(Ce(Uint8Array.from(e).reverse()))}function _e(e,t){return Te(e.toString(16).padStart(2*t,"0"))}function Le(e,t){return _e(e,t).reverse()}function Pe(e,t,n){let r;if("string"==typeof t)try{r=Te(t)}catch(n){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${n}`)}else{if(!xe(t))throw new Error(`${e} must be hex string or Uint8Array`);r=Uint8Array.from(t)}const o=r.length;if("number"==typeof n&&o!==n)throw new Error(`${e} expected ${n} bytes, got ${o}`);return r}function Oe(...e){const t=new Uint8Array(e.reduce((e,t)=>e+t.length,0));let n=0;return e.forEach(e=>{if(!xe(e))throw new Error("Uint8Array expected");t.set(e,n),n+=e.length}),t}const Be=e=>(ke<<BigInt(e-1))-Ee,je=e=>new Uint8Array(e),Ne=e=>Uint8Array.from(e);function Me(e,t,n){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");let r=je(e),o=je(e),i=0;const s=()=>{r.fill(1),o.fill(0),i=0},a=(...e)=>n(o,r,...e),l=(e=je())=>{o=a(Ne([0]),e),r=a(),0!==e.length&&(o=a(Ne([1]),e),r=a())},c=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const n=[];for(;e<t;){r=a();const t=r.slice();n.push(t),e+=r.length}return Oe(...n)};return(e,t)=>{let n;for(s(),l(e);!(n=t(c()));)l();return s(),n}}const Ue={bigint:e=>"bigint"==typeof e,function:e=>"function"==typeof e,boolean:e=>"boolean"==typeof e,string:e=>"string"==typeof e,stringOrUint8Array:e=>"string"==typeof e||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>"function"==typeof e&&Number.isSafeInteger(e.outputLen)};function Fe(e,t,n={}){const r=(t,n,r)=>{const o=Ue[n];if("function"!=typeof o)throw new Error(`Invalid validator "${n}", expected function`);const i=e[t];if(!(r&&void 0===i||o(i,e)))throw new Error(`Invalid param ${String(t)}=${i} (${typeof i}), expected ${n}`)};for(const[e,n]of Object.entries(t))r(e,n,!1);for(const[e,t]of Object.entries(n))r(e,t,!0);return e}var De=Object.freeze({__proto__:null,bitGet:function(e,t){return e>>BigInt(t)&Ee},bitLen:function(e){let t;for(t=0;e>be;e>>=Ee,t+=1);return t},bitMask:Be,bitSet:(e,t,n)=>e|(n?Ee:be)<<BigInt(t),bytesToHex:Ce,bytesToNumberBE:Ie,bytesToNumberLE:Re,concatBytes:Oe,createHmacDrbg:Me,ensureBytes:Pe,equalBytes:function(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0},hexToBytes:Te,hexToNumber:$e,numberToBytesBE:_e,numberToBytesLE:Le,numberToHexUnpadded:Ae,numberToVarBytesBE:function(e){return Te(Ae(e))},utf8ToBytes:function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))},validateObject:Fe});
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const qe=BigInt(0),He=BigInt(1),ze=BigInt(2),Ke=BigInt(3),We=BigInt(4),Ve=BigInt(5),Je=BigInt(8);function Ze(e,t){const n=e%t;return n>=qe?n:t+n}function Ge(e,t,n){if(n<=qe||t<qe)throw new Error("Expected power/modulo > 0");if(n===He)return qe;let r=He;for(;t>qe;)t&He&&(r=r*e%n),e=e*e%n,t>>=He;return r}function Qe(e,t,n){let r=e;for(;t-- >qe;)r*=r,r%=n;return r}function Ye(e,t){if(e===qe||t<=qe)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let n=Ze(e,t),r=t,o=qe,i=He;for(;n!==qe;){const e=r%n,t=o-i*(r/n);r=n,n=e,o=i,i=t}if(r!==He)throw new Error("invert: does not exist");return Ze(o,t)}function Xe(e){if(e%We===Ke){const t=(e+He)/We;return function(e,n){const r=e.pow(n,t);if(!e.eql(e.sqr(r),n))throw new Error("Cannot find square root");return r}}if(e%Je===Ve){const t=(e-Ve)/Je;return function(e,n){const r=e.mul(n,ze),o=e.pow(r,t),i=e.mul(n,o),s=e.mul(e.mul(i,ze),o),a=e.mul(i,e.sub(s,e.ONE));if(!e.eql(e.sqr(a),n))throw new Error("Cannot find square root");return a}}return function(e){const t=(e-He)/ze;let n,r,o;for(n=e-He,r=0;n%ze===qe;n/=ze,r++);for(o=ze;o<e&&Ge(o,t,e)!==e-He;o++);if(1===r){const t=(e+He)/We;return function(e,n){const r=e.pow(n,t);if(!e.eql(e.sqr(r),n))throw new Error("Cannot find square root");return r}}const i=(n+He)/ze;return function(e,s){if(e.pow(s,t)===e.neg(e.ONE))throw new Error("Cannot find square root");let a=r,l=e.pow(e.mul(e.ONE,o),n),c=e.pow(s,i),u=e.pow(s,n);for(;!e.eql(u,e.ONE);){if(e.eql(u,e.ZERO))return e.ZERO;let t=1;for(let n=e.sqr(u);t<a&&!e.eql(n,e.ONE);t++)n=e.sqr(n);const n=e.pow(l,He<<BigInt(a-t-1));l=e.sqr(n),c=e.mul(c,n),u=e.mul(u,l),a=t}return c}}(e)}BigInt(9),BigInt(16);const et=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function tt(e,t){const n=void 0!==t?t:e.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function nt(e){if("bigint"!=typeof e)throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function rt(e){const t=nt(e);return t+Math.ceil(t/2)}
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
const ot=BigInt(0),it=BigInt(1);function st(e){return function(e){const t=et.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"});Fe(e,t)}(e.Fp),Fe(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...tt(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const{bytesToNumberBE:at,hexToBytes:lt}=De,ct={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(e){const{Err:t}=ct;if(e.length<2||2!==e[0])throw new t("Invalid signature integer tag");const n=e[1],r=e.subarray(2,n+2);if(!n||r.length!==n)throw new t("Invalid signature integer: wrong length");if(128&r[0])throw new t("Invalid signature integer: negative");if(0===r[0]&&!(128&r[1]))throw new t("Invalid signature integer: unnecessary leading zero");return{d:at(r),l:e.subarray(n+2)}},toSig(e){const{Err:t}=ct,n="string"==typeof e?lt(e):e;if(!(n instanceof Uint8Array))throw new Error("ui8a expected");let r=n.length;if(r<2||48!=n[0])throw new t("Invalid signature tag");if(n[1]!==r-2)throw new t("Invalid signature: incorrect length");const{d:o,l:i}=ct._parseInt(n.subarray(2)),{d:s,l:a}=ct._parseInt(i);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:o,s:s}},hexFromSig(e){const t=e=>8&Number.parseInt(e[0],16)?"00"+e:e,n=e=>{const t=e.toString(16);return 1&t.length?`0${t}`:t},r=t(n(e.s)),o=t(n(e.r)),i=r.length/2,s=o.length/2,a=n(i),l=n(s);return`30${n(s+i+4)}02${l}${o}02${a}${r}`}},ut=BigInt(0),dt=BigInt(1);BigInt(2);const ft=BigInt(3);function ht(e){const t=function(e){const t=st(e);Fe(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:n,Fp:r,a:o}=t;if(n){if(!r.eql(o,r.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if("object"!=typeof n||"bigint"!=typeof n.beta||"function"!=typeof n.splitScalar)throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}(e),{Fp:n}=t,r=t.toBytes||((e,t,r)=>{const o=t.toAffine();return Oe(Uint8Array.from([4]),n.toBytes(o.x),n.toBytes(o.y))}),o=t.fromBytes||(e=>{const t=e.subarray(1);return{x:n.fromBytes(t.subarray(0,n.BYTES)),y:n.fromBytes(t.subarray(n.BYTES,2*n.BYTES))}});function i(e){const{a:r,b:o}=t,i=n.sqr(e),s=n.mul(i,e);return n.add(n.add(s,n.mul(e,r)),o)}if(!n.eql(n.sqr(t.Gy),i(t.Gx)))throw new Error("bad generator point: equation left != right");function s(e){return"bigint"==typeof e&&ut<e&&e<t.n}function a(e){if(!s(e))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function l(e){const{allowedPrivateKeyLengths:n,nByteLength:r,wrapPrivateKey:o,n:i}=t;if(n&&"bigint"!=typeof e){if(e instanceof Uint8Array&&(e=Ce(e)),"string"!=typeof e||!n.includes(e.length))throw new Error("Invalid key");e=e.padStart(2*r,"0")}let s;try{s="bigint"==typeof e?e:Ie(Pe("private key",e,r))}catch(t){throw new Error(`private key must be ${r} bytes, hex or bigint, not ${typeof e}`)}return o&&(s=Ze(s,i)),a(s),s}const c=new Map;function u(e){if(!(e instanceof d))throw new Error("ProjectivePoint expected")}class d{constructor(e,t,r){if(this.px=e,this.py=t,this.pz=r,null==e||!n.isValid(e))throw new Error("x required");if(null==t||!n.isValid(t))throw new Error("y required");if(null==r||!n.isValid(r))throw new Error("z required")}static fromAffine(e){const{x:t,y:r}=e||{};if(!e||!n.isValid(t)||!n.isValid(r))throw new Error("invalid affine point");if(e instanceof d)throw new Error("projective point not allowed");const o=e=>n.eql(e,n.ZERO);return o(t)&&o(r)?d.ZERO:new d(t,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){const t=n.invertBatch(e.map(e=>e.pz));return e.map((e,n)=>e.toAffine(t[n])).map(d.fromAffine)}static fromHex(e){const t=d.fromAffine(o(Pe("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return d.BASE.multiply(l(e))}_setWindowSize(e){this._WINDOW_SIZE=e,c.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!n.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:e,y:r}=this.toAffine();if(!n.isValid(e)||!n.isValid(r))throw new Error("bad point: x or y not FE");const o=n.sqr(r),s=i(e);if(!n.eql(o,s))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:e}=this.toAffine();if(n.isOdd)return!n.isOdd(e);throw new Error("Field doesn't support isOdd")}equals(e){u(e);const{px:t,py:r,pz:o}=this,{px:i,py:s,pz:a}=e,l=n.eql(n.mul(t,a),n.mul(i,o)),c=n.eql(n.mul(r,a),n.mul(s,o));return l&&c}negate(){return new d(this.px,n.neg(this.py),this.pz)}double(){const{a:e,b:r}=t,o=n.mul(r,ft),{px:i,py:s,pz:a}=this;let l=n.ZERO,c=n.ZERO,u=n.ZERO,f=n.mul(i,i),h=n.mul(s,s),p=n.mul(a,a),g=n.mul(i,s);return g=n.add(g,g),u=n.mul(i,a),u=n.add(u,u),l=n.mul(e,u),c=n.mul(o,p),c=n.add(l,c),l=n.sub(h,c),c=n.add(h,c),c=n.mul(l,c),l=n.mul(g,l),u=n.mul(o,u),p=n.mul(e,p),g=n.sub(f,p),g=n.mul(e,g),g=n.add(g,u),u=n.add(f,f),f=n.add(u,f),f=n.add(f,p),f=n.mul(f,g),c=n.add(c,f),p=n.mul(s,a),p=n.add(p,p),f=n.mul(p,g),l=n.sub(l,f),u=n.mul(p,h),u=n.add(u,u),u=n.add(u,u),new d(l,c,u)}add(e){u(e);const{px:r,py:o,pz:i}=this,{px:s,py:a,pz:l}=e;let c=n.ZERO,f=n.ZERO,h=n.ZERO;const p=t.a,g=n.mul(t.b,ft);let y=n.mul(r,s),v=n.mul(o,a),m=n.mul(i,l),w=n.add(r,o),b=n.add(s,a);w=n.mul(w,b),b=n.add(y,v),w=n.sub(w,b),b=n.add(r,i);let E=n.add(s,l);return b=n.mul(b,E),E=n.add(y,m),b=n.sub(b,E),E=n.add(o,i),c=n.add(a,l),E=n.mul(E,c),c=n.add(v,m),E=n.sub(E,c),h=n.mul(p,b),c=n.mul(g,m),h=n.add(c,h),c=n.sub(v,h),h=n.add(v,h),f=n.mul(c,h),v=n.add(y,y),v=n.add(v,y),m=n.mul(p,m),b=n.mul(g,b),v=n.add(v,m),m=n.sub(y,m),m=n.mul(p,m),b=n.add(b,m),y=n.mul(v,b),f=n.add(f,y),y=n.mul(E,b),c=n.mul(w,c),c=n.sub(c,y),y=n.mul(w,v),h=n.mul(E,h),h=n.add(h,y),new d(c,f,h)}subtract(e){return this.add(e.negate())}is0(){return this.equals(d.ZERO)}wNAF(e){return h.wNAFCached(this,c,e,e=>{const t=n.invertBatch(e.map(e=>e.pz));return e.map((e,n)=>e.toAffine(t[n])).map(d.fromAffine)})}multiplyUnsafe(e){const r=d.ZERO;if(e===ut)return r;if(a(e),e===dt)return this;const{endo:o}=t;if(!o)return h.unsafeLadder(this,e);let{k1neg:i,k1:s,k2neg:l,k2:c}=o.splitScalar(e),u=r,f=r,p=this;for(;s>ut||c>ut;)s&dt&&(u=u.add(p)),c&dt&&(f=f.add(p)),p=p.double(),s>>=dt,c>>=dt;return i&&(u=u.negate()),l&&(f=f.negate()),f=new d(n.mul(f.px,o.beta),f.py,f.pz),u.add(f)}multiply(e){a(e);let r,o,i=e;const{endo:s}=t;if(s){const{k1neg:e,k1:t,k2neg:a,k2:l}=s.splitScalar(i);let{p:c,f:u}=this.wNAF(t),{p:f,f:p}=this.wNAF(l);c=h.constTimeNegate(e,c),f=h.constTimeNegate(a,f),f=new d(n.mul(f.px,s.beta),f.py,f.pz),r=c.add(f),o=u.add(p)}else{const{p:e,f:t}=this.wNAF(i);r=e,o=t}return d.normalizeZ([r,o])[0]}multiplyAndAddUnsafe(e,t,n){const r=d.BASE,o=(e,t)=>t!==ut&&t!==dt&&e.equals(r)?e.multiply(t):e.multiplyUnsafe(t),i=o(this,t).add(o(e,n));return i.is0()?void 0:i}toAffine(e){const{px:t,py:r,pz:o}=this,i=this.is0();null==e&&(e=i?n.ONE:n.inv(o));const s=n.mul(t,e),a=n.mul(r,e),l=n.mul(o,e);if(i)return{x:n.ZERO,y:n.ZERO};if(!n.eql(l,n.ONE))throw new Error("invZ was invalid");return{x:s,y:a}}isTorsionFree(){const{h:e,isTorsionFree:n}=t;if(e===dt)return!0;if(n)return n(d,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:e,clearCofactor:n}=t;return e===dt?this:n?n(d,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return this.assertValidity(),r(d,this,e)}toHex(e=!0){return Ce(this.toRawBytes(e))}}d.BASE=new d(t.Gx,t.Gy,n.ONE),d.ZERO=new d(n.ZERO,n.ONE,n.ZERO);const f=t.nBitLength,h=function(e,t){const n=(e,t)=>{const n=t.negate();return e?n:t},r=e=>({windows:Math.ceil(t/e)+1,windowSize:2**(e-1)});return{constTimeNegate:n,unsafeLadder(t,n){let r=e.ZERO,o=t;for(;n>ot;)n&it&&(r=r.add(o)),o=o.double(),n>>=it;return r},precomputeWindow(e,t){const{windows:n,windowSize:o}=r(t),i=[];let s=e,a=s;for(let e=0;e<n;e++){a=s,i.push(a);for(let e=1;e<o;e++)a=a.add(s),i.push(a);s=a.double()}return i},wNAF(t,o,i){const{windows:s,windowSize:a}=r(t);let l=e.ZERO,c=e.BASE;const u=BigInt(2**t-1),d=2**t,f=BigInt(t);for(let e=0;e<s;e++){const t=e*a;let r=Number(i&u);i>>=f,r>a&&(r-=d,i+=it);const s=t,h=t+Math.abs(r)-1,p=e%2!=0,g=r<0;0===r?c=c.add(n(p,o[s])):l=l.add(n(g,o[h]))}return{p:l,f:c}},wNAFCached(e,t,n,r){const o=e._WINDOW_SIZE||1;let i=t.get(e);return i||(i=this.precomputeWindow(e,o),1!==o&&t.set(e,r(i))),this.wNAF(o,i,n)}}}(d,t.endo?Math.ceil(f/2):f);return{CURVE:t,ProjectivePoint:d,normPrivateKeyToScalar:l,weierstrassEquation:i,isWithinCurveOrder:s}}function pt(e){const t=function(e){const t=st(e);return Fe(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}(e),{Fp:n,n:r}=t,o=n.BYTES+1,i=2*n.BYTES+1;function s(e){return Ze(e,r)}function a(e){return Ye(e,r)}const{ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:u,isWithinCurveOrder:d}=ht({...t,toBytes(e,t,r){const o=t.toAffine(),i=n.toBytes(o.x),s=Oe;return r?s(Uint8Array.from([t.hasEvenY()?2:3]),i):s(Uint8Array.from([4]),i,n.toBytes(o.y))},fromBytes(e){const t=e.length,r=e[0],s=e.subarray(1);if(t!==o||2!==r&&3!==r){if(t===i&&4===r){return{x:n.fromBytes(s.subarray(0,n.BYTES)),y:n.fromBytes(s.subarray(n.BYTES,2*n.BYTES))}}throw new Error(`Point of length ${t} was invalid. Expected ${o} compressed bytes or ${i} uncompressed bytes`)}{const e=Ie(s);if(!(ut<(a=e)&&a<n.ORDER))throw new Error("Point is not on curve");const t=u(e);let o=n.sqrt(t);return!(1&~r)!==((o&dt)===dt)&&(o=n.neg(o)),{x:e,y:o}}var a}}),f=e=>Ce(_e(e,t.nByteLength));function h(e){return e>r>>dt}const p=(e,t,n)=>Ie(e.slice(t,n));class g{constructor(e,t,n){this.r=e,this.s=t,this.recovery=n,this.assertValidity()}static fromCompact(e){const n=t.nByteLength;return e=Pe("compactSignature",e,2*n),new g(p(e,0,n),p(e,n,2*n))}static fromDER(e){const{r:t,s:n}=ct.toSig(Pe("DER",e));return new g(t,n)}assertValidity(){if(!d(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!d(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(e){return new g(this.r,this.s,e)}recoverPublicKey(e){const{r:r,s:o,recovery:i}=this,c=w(Pe("msgHash",e));if(null==i||![0,1,2,3].includes(i))throw new Error("recovery id invalid");const u=2===i||3===i?r+t.n:r;if(u>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const d=1&i?"03":"02",h=l.fromHex(d+f(u)),p=a(u),g=s(-c*p),y=s(o*p),v=l.BASE.multiplyAndAddUnsafe(h,g,y);if(!v)throw new Error("point at infinify");return v.assertValidity(),v}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,s(-this.s),this.recovery):this}toDERRawBytes(){return Te(this.toDERHex())}toDERHex(){return ct.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Te(this.toCompactHex())}toCompactHex(){return f(this.r)+f(this.s)}}const y={isValidPrivateKey(e){try{return c(e),!0}catch(e){return!1}},normPrivateKeyToScalar:c,randomPrivateKey:()=>{const e=rt(t.n);return function(e,t,n=!1){const r=e.length,o=nt(t),i=rt(t);if(r<16||r<i||r>1024)throw new Error(`expected ${i}-1024 bytes of input, got ${r}`);const s=Ze(n?Ie(e):Re(e),t-He)+He;return n?Le(s,o):_e(s,o)}(t.randomBytes(e),t.n)},precompute:(e=8,t=l.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)};function v(e){const t=e instanceof Uint8Array,n="string"==typeof e,r=(t||n)&&e.length;return t?r===o||r===i:n?r===2*o||r===2*i:e instanceof l}const m=t.bits2int||function(e){const n=Ie(e),r=8*e.length-t.nBitLength;return r>0?n>>BigInt(r):n},w=t.bits2int_modN||function(e){return s(m(e))},b=Be(t.nBitLength);function E(e){if("bigint"!=typeof e)throw new Error("bigint expected");if(!(ut<=e&&e<b))throw new Error(`bigint expected < 2^${t.nBitLength}`);return _e(e,t.nByteLength)}function k(e,r,o=x){if(["recovered","canonical"].some(e=>e in o))throw new Error("sign() legacy options not supported");const{hash:i,randomBytes:u}=t;let{lowS:f,prehash:p,extraEntropy:y}=o;null==f&&(f=!0),e=Pe("msgHash",e),p&&(e=Pe("prehashed msgHash",i(e)));const v=w(e),b=c(r),k=[E(b),E(v)];if(null!=y){const e=!0===y?u(n.BYTES):y;k.push(Pe("extraEntropy",e))}const S=Oe(...k),C=v;return{seed:S,k2sig:function(e){const t=m(e);if(!d(t))return;const n=a(t),r=l.BASE.multiply(t).toAffine(),o=s(r.x);if(o===ut)return;const i=s(n*s(C+o*b));if(i===ut)return;let c=(r.x===o?0:2)|Number(r.y&dt),u=i;return f&&h(i)&&(u=function(e){return h(e)?s(-e):e}(i),c^=1),new g(o,u,c)}}}const x={lowS:t.lowS,prehash:!1},S={lowS:t.lowS,prehash:!1};return l.BASE._setWindowSize(8),{CURVE:t,getPublicKey:function(e,t=!0){return l.fromPrivateKey(e).toRawBytes(t)},getSharedSecret:function(e,t,n=!0){if(v(e))throw new Error("first arg must be private key");if(!v(t))throw new Error("second arg must be public key");return l.fromHex(t).multiply(c(e)).toRawBytes(n)},sign:function(e,n,r=x){const{seed:o,k2sig:i}=k(e,n,r),s=t;return Me(s.hash.outputLen,s.nByteLength,s.hmac)(o,i)},verify:function(e,n,r,o=S){const i=e;if(n=Pe("msgHash",n),r=Pe("publicKey",r),"strict"in o)throw new Error("options.strict was renamed to lowS");const{lowS:c,prehash:u}=o;let d,f;try{if("string"==typeof i||i instanceof Uint8Array)try{d=g.fromDER(i)}catch(e){if(!(e instanceof ct.Err))throw e;d=g.fromCompact(i)}else{if("object"!=typeof i||"bigint"!=typeof i.r||"bigint"!=typeof i.s)throw new Error("PARSE");{const{r:e,s:t}=i;d=new g(e,t)}}f=l.fromHex(r)}catch(e){if("PARSE"===e.message)throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(c&&d.hasHighS())return!1;u&&(n=t.hash(n));const{r:h,s:p}=d,y=w(n),v=a(p),m=s(y*v),b=s(h*v),E=l.BASE.multiplyAndAddUnsafe(f,m,b)?.toAffine();return!!E&&s(E.x)===h},ProjectivePoint:l,Signature:g,utils:y}}BigInt(4);let gt=class extends ce{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,function(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");te(e.outputLen),te(e.blockLen)}(e);const n=le(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const r=this.blockLen,o=new Uint8Array(r);o.set(n.length>r?e.create().update(n).digest():n);for(let e=0;e<o.length;e++)o[e]^=54;this.iHash.update(o),this.oHash=e.create();for(let e=0;e<o.length;e++)o[e]^=106;this.oHash.update(o),o.fill(0)}update(e){return re(this),this.iHash.update(e),this}digestInto(e){re(this),ne(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:n,finished:r,destroyed:o,blockLen:i,outputLen:s}=this;return e.finished=r,e.destroyed=o,e.blockLen=i,e.outputLen=s,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}};const yt=(e,t,n)=>new gt(e,t).update(n).digest();
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
function vt(e){return{hash:e,hmac:(t,...n)=>yt(e,t,function(...e){const t=new Uint8Array(e.reduce((e,t)=>e+t.length,0));let n=0;return e.forEach(e=>{if(!ie(e))throw new Error("Uint8Array expected");t.set(e,n),n+=e.length}),t}(...n)),randomBytes:de}}yt.create=(e,t)=>new gt(e,t);
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
const mt=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),wt=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),bt=BigInt(1),Et=BigInt(2),kt=(e,t)=>(e+t/Et)/t;function xt(e){const t=mt,n=BigInt(3),r=BigInt(6),o=BigInt(11),i=BigInt(22),s=BigInt(23),a=BigInt(44),l=BigInt(88),c=e*e*e%t,u=c*c*e%t,d=Qe(u,n,t)*u%t,f=Qe(d,n,t)*u%t,h=Qe(f,Et,t)*c%t,p=Qe(h,o,t)*h%t,g=Qe(p,i,t)*p%t,y=Qe(g,a,t)*g%t,v=Qe(y,l,t)*y%t,m=Qe(v,a,t)*g%t,w=Qe(m,n,t)*u%t,b=Qe(w,s,t)*p%t,E=Qe(b,r,t)*c%t,k=Qe(E,Et,t);if(!St.eql(St.sqr(k),e))throw new Error("Cannot find square root");return k}const St=function(e,t,n=!1,r={}){if(e<=qe)throw new Error(`Expected Field ORDER > 0, got ${e}`);const{nBitLength:o,nByteLength:i}=tt(e,t);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");const s=Xe(e),a=Object.freeze({ORDER:e,BITS:o,BYTES:i,MASK:Be(o),ZERO:qe,ONE:He,create:t=>Ze(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("Invalid field element: expected bigint, got "+typeof t);return qe<=t&&t<e},is0:e=>e===qe,isOdd:e=>(e&He)===He,neg:t=>Ze(-t,e),eql:(e,t)=>e===t,sqr:t=>Ze(t*t,e),add:(t,n)=>Ze(t+n,e),sub:(t,n)=>Ze(t-n,e),mul:(t,n)=>Ze(t*n,e),pow:(e,t)=>function(e,t,n){if(n<qe)throw new Error("Expected power > 0");if(n===qe)return e.ONE;if(n===He)return t;let r=e.ONE,o=t;for(;n>qe;)n&He&&(r=e.mul(r,o)),o=e.sqr(o),n>>=He;return r}(a,e,t),div:(t,n)=>Ze(t*Ye(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>Ye(t,e),sqrt:r.sqrt||(e=>s(a,e)),invertBatch:e=>function(e,t){const n=new Array(t.length),r=t.reduce((t,r,o)=>e.is0(r)?t:(n[o]=t,e.mul(t,r)),e.ONE),o=e.inv(r);return t.reduceRight((t,r,o)=>e.is0(r)?t:(n[o]=e.mul(t,n[o]),e.mul(t,r)),o),n}(a,e),cmov:(e,t,n)=>n?t:e,toBytes:e=>n?Le(e,i):_e(e,i),fromBytes:e=>{if(e.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${e.length}`);return n?Re(e):Ie(e)}});return Object.freeze(a)}(mt,void 0,void 0,{sqrt:xt}),Ct=function(e,t){const n=t=>pt({...e,...vt(t)});return Object.freeze({...n(t),create:n})}({a:BigInt(0),b:BigInt(7),Fp:St,n:wt,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=wt,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-bt*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=n,s=BigInt("0x100000000000000000000000000000000"),a=kt(i*e,t),l=kt(-r*e,t);let c=Ze(e-a*n-l*o,t),u=Ze(-a*r-l*i,t);const d=c>s,f=u>s;if(d&&(c=t-c),f&&(u=t-u),c>s||u>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:d,k1:c,k2neg:f,k2:u}}}},we),At=BigInt(0),$t=e=>"bigint"==typeof e&&At<e&&e<mt,Tt={};function It(e,...t){let n=Tt[e];if(void 0===n){const t=we(Uint8Array.from(e,e=>e.charCodeAt(0)));n=Oe(t,t),Tt[e]=n}return we(Oe(n,...t))}const Rt=e=>e.toRawBytes(!0).slice(1),_t=e=>_e(e,32),Lt=e=>Ze(e,mt),Pt=e=>Ze(e,wt),Ot=Ct.ProjectivePoint;function Bt(e){let t=Ct.utils.normPrivateKeyToScalar(e),n=Ot.fromPrivateKey(t);return{scalar:n.hasEvenY()?t:Pt(-t),bytes:Rt(n)}}function jt(e){if(!$t(e))throw new Error("bad x: need 0 < x < p");const t=Lt(e*e);let n=xt(Lt(t*e+BigInt(7)));n%Et!==At&&(n=Lt(-n));const r=new Ot(e,n,bt);return r.assertValidity(),r}function Nt(...e){return Pt(Ie(It("BIP0340/challenge",...e)))}function Mt(e){return Bt(e).bytes}function Ut(e,t,n=de(32)){const r=Pe("message",e),{bytes:o,scalar:i}=Bt(t),s=Pe("auxRand",n,32),a=_t(i^Ie(It("BIP0340/aux",s))),l=It("BIP0340/nonce",a,o,r),c=Pt(Ie(l));if(c===At)throw new Error("sign failed: k is zero");const{bytes:u,scalar:d}=Bt(c),f=Nt(u,o,r),h=new Uint8Array(64);if(h.set(u,0),h.set(_t(Pt(d+f*i)),32),!Ft(h,r,o))throw new Error("sign: Invalid signature produced");return h}function Ft(e,t,n){const r=Pe("signature",e,64),o=Pe("message",t),i=Pe("publicKey",n,32);try{const e=jt(Ie(i)),t=Ie(r.subarray(0,32));if(!$t(t))return!1;const n=Ie(r.subarray(32,64));if(!("bigint"==typeof(c=n)&&At<c&&c<wt))return!1;const u=Nt(_t(t),Rt(e),o),d=(s=e,a=n,l=Pt(-u),Ot.BASE.multiplyAndAddUnsafe(s,a,l));return!(!d||!d.hasEvenY()||d.toAffine().x!==t)}catch(e){return!1}var s,a,l,c}const Dt=(()=>({getPublicKey:Mt,sign:Ut,verify:Ft,utils:{randomPrivateKey:Ct.utils.randomPrivateKey,lift_x:jt,pointToBytes:Rt,numberToBytesBE:_e,bytesToNumberBE:Ie,taggedHash:It,mod:Ze}}))(),qt="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,Ht=e=>e instanceof Uint8Array,zt=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Kt=(e,t)=>e<<32-t|e>>>t;if(!(68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]))throw new Error("Non little-endian hardware is not supported");const Wt=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Vt(e){if(!Ht(e))throw new Error("Uint8Array expected");let t="";for(let n=0;n<e.length;n++)t+=Wt[e[n]];return t}function Jt(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);const t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);const n=new Uint8Array(t/2);for(let t=0;t<n.length;t++){const r=2*t,o=e.slice(r,r+2),i=Number.parseInt(o,16);if(Number.isNaN(i)||i<0)throw new Error("Invalid byte sequence");n[t]=i}return n}function Zt(e){if("string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),!Ht(e))throw new Error("expected Uint8Array, got "+typeof e);return e}function Gt(...e){const t=new Uint8Array(e.reduce((e,t)=>e+t.length,0));let n=0;return e.forEach(e=>{if(!Ht(e))throw new Error("Uint8Array expected");t.set(e,n),n+=e.length}),t}class Qt{clone(){return this._cloneInto()}}function Yt(e){const t=t=>e().update(Zt(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Xt(e=32){if(qt&&"function"==typeof qt.getRandomValues)return qt.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function en(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function tn(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}const nn={number:en,bool:function(e){if("boolean"!=typeof e)throw new Error(`Expected boolean, not ${e}`)},bytes:tn,hash:function(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");en(e.outputLen),en(e.blockLen)},exists:function(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")},output:function(e,t){tn(e);const n=t.outputLen;if(e.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}};class rn extends Qt{constructor(e,t,n,r){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=zt(this.buffer)}update(e){nn.exists(this);const{view:t,buffer:n,blockLen:r}=this,o=(e=Zt(e)).length;for(let i=0;i<o;){const s=Math.min(r-this.pos,o-i);if(s===r){const t=zt(e);for(;r<=o-i;i+=r)this.process(t,i);continue}n.set(e.subarray(i,i+s),this.pos),this.pos+=s,i+=s,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){nn.exists(this),nn.output(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:r,isLE:o}=this;let{pos:i}=this;t[i++]=128,this.buffer.subarray(i).fill(0),this.padOffset>r-i&&(this.process(n,0),i=0);for(let e=i;e<r;e++)t[e]=0;!function(e,t,n,r){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,r);const o=BigInt(32),i=BigInt(4294967295),s=Number(n>>o&i),a=Number(n&i),l=r?4:0,c=r?0:4;e.setUint32(t+l,s,r),e.setUint32(t+c,a,r)}(n,r-8,BigInt(8*this.length),o),this.process(n,0);const s=zt(e),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const l=a/4,c=this.get();if(l>c.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<l;e++)s.setUint32(4*e,c[e],o)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:r,finished:o,destroyed:i,pos:s}=this;return e.length=r,e.pos=s,e.finished=o,e.destroyed=i,r%t&&e.buffer.set(n),e}}const on=(e,t,n)=>e&t^~e&n,sn=(e,t,n)=>e&t^e&n^t&n,an=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),ln=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),cn=new Uint32Array(64);class un extends rn{constructor(){super(64,32,8,!1),this.A=0|ln[0],this.B=0|ln[1],this.C=0|ln[2],this.D=0|ln[3],this.E=0|ln[4],this.F=0|ln[5],this.G=0|ln[6],this.H=0|ln[7]}get(){const{A:e,B:t,C:n,D:r,E:o,F:i,G:s,H:a}=this;return[e,t,n,r,o,i,s,a]}set(e,t,n,r,o,i,s,a){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|r,this.E=0|o,this.F=0|i,this.G=0|s,this.H=0|a}process(e,t){for(let n=0;n<16;n++,t+=4)cn[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=cn[e-15],n=cn[e-2],r=Kt(t,7)^Kt(t,18)^t>>>3,o=Kt(n,17)^Kt(n,19)^n>>>10;cn[e]=o+cn[e-7]+r+cn[e-16]|0}let{A:n,B:r,C:o,D:i,E:s,F:a,G:l,H:c}=this;for(let e=0;e<64;e++){const t=c+(Kt(s,6)^Kt(s,11)^Kt(s,25))+on(s,a,l)+an[e]+cn[e]|0,u=(Kt(n,2)^Kt(n,13)^Kt(n,22))+sn(n,r,o)|0;c=l,l=a,a=s,s=i+t|0,i=o,o=r,r=n,n=t+u|0}n=n+this.A|0,r=r+this.B|0,o=o+this.C|0,i=i+this.D|0,s=s+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,o,i,s,a,l,c)}roundClean(){cn.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}class dn extends un{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}}const fn=Yt(()=>new un);Yt(()=>new dn);var hn=Symbol("verified");function pn(e){if(!(e instanceof Object))return!1;if("number"!=typeof e.kind)return!1;if("string"!=typeof e.content)return!1;if("number"!=typeof e.created_at)return!1;if("string"!=typeof e.pubkey)return!1;if(!e.pubkey.match(/^[a-f0-9]{64}$/))return!1;if(!Array.isArray(e.tags))return!1;for(let t=0;t<e.tags.length;t++){let n=e.tags[t];if(!Array.isArray(n))return!1;for(let e=0;e<n.length;e++)if("string"!=typeof n[e])return!1}return!0}new TextDecoder("utf-8");var gn=new TextEncoder;function yn(e){try{-1===e.indexOf("://")&&(e="wss://"+e);let t=new URL(e);return t.pathname=t.pathname.replace(/\/+/g,"/"),t.pathname.endsWith("/")&&(t.pathname=t.pathname.slice(0,-1)),("80"===t.port&&"ws:"===t.protocol||"443"===t.port&&"wss:"===t.protocol)&&(t.port=""),t.searchParams.sort(),t.hash="",t.toString()}catch(t){throw new Error(`Invalid URL: ${e}`)}}var vn=class{value;next=null;prev=null;constructor(e){this.value=e}},mn=class{first;last;constructor(){this.first=null,this.last=null}enqueue(e){const t=new vn(e);return this.last?this.last===this.first?(this.last=t,this.last.prev=this.first,this.first.next=t):(t.prev=this.last,this.last.next=t,this.last=t):(this.first=t,this.last=t),!0}dequeue(){if(!this.first)return null;if(this.first===this.last){const e=this.first;return this.first=null,this.last=null,e.value}const e=this.first;return this.first=e.next,this.first&&(this.first.prev=null),e.value}};function wn(e){return Vt(fn(gn.encode(function(e){if(!pn(e))throw new Error("can't serialize event with wrong or missing properties");return JSON.stringify([0,e.pubkey,e.created_at,e.kind,e.tags,e.content])}(e))))}var bn=new class{generateSecretKey(){return Dt.utils.randomPrivateKey()}getPublicKey(e){return Vt(Dt.getPublicKey(e))}finalizeEvent(e,t){const n=e;return n.pubkey=Vt(Dt.getPublicKey(t)),n.id=wn(n),n.sig=Vt(Dt.sign(wn(n),t)),n[hn]=!0,n}verifyEvent(e){if("boolean"==typeof e[hn])return e[hn];const t=wn(e);if(t!==e.id)return e[hn]=!1,!1;try{const n=Dt.verify(e.sig,t,e.pubkey);return e[hn]=n,n}catch(t){return e[hn]=!1,!1}}};bn.generateSecretKey,bn.getPublicKey,bn.finalizeEvent;var En=bn.verifyEvent;function kn(e,t){if(e.ids&&-1===e.ids.indexOf(t.id))return!1;if(e.kinds&&-1===e.kinds.indexOf(t.kind))return!1;if(e.authors&&-1===e.authors.indexOf(t.pubkey))return!1;for(let n in e)if("#"===n[0]){let r=e[`#${n.slice(1)}`];if(r&&!t.tags.find(([e,t])=>e===n.slice(1)&&-1!==r.indexOf(t)))return!1}return!(e.since&&t.created_at<e.since)&&!(e.until&&t.created_at>e.until)}async function xn(){return new Promise(e=>{const t=new MessageChannel,n=()=>{t.port1.removeEventListener("message",n),e()};t.port1.addEventListener("message",n),t.port2.postMessage(0),t.port1.start()})}var Sn,Cn=e=>(e[hn]=!0,!0),An=class extends Error{constructor(e,t){super(`Tried to send message '${e} on a closed connection to ${t}.`),this.name="SendingOnClosedConnection"}},$n=class{url;_connected=!1;onclose=null;onnotice=e=>console.debug(`NOTICE from ${this.url}: ${e}`);baseEoseTimeout=4400;connectionTimeout=4400;publishTimeout=4400;pingFrequency=2e4;pingTimeout=2e4;openSubs=new Map;enablePing;connectionTimeoutHandle;connectionPromise;openCountRequests=new Map;openEventPublishes=new Map;ws;incomingMessageQueue=new mn;queueRunning=!1;challenge;authPromise;serial=0;verifyEvent;_WebSocket;constructor(e,t){this.url=yn(e),this.verifyEvent=t.verifyEvent,this._WebSocket=t.websocketImplementation||WebSocket,this.enablePing=t.enablePing}static async connect(e,t){const n=new $n(e,t);return await n.connect(),n}closeAllSubscriptions(e){for(let[t,n]of this.openSubs)n.close(e);this.openSubs.clear();for(let[t,n]of this.openEventPublishes)n.reject(new Error(e));this.openEventPublishes.clear();for(let[t,n]of this.openCountRequests)n.reject(new Error(e));this.openCountRequests.clear()}get connected(){return this._connected}async connect(){return this.connectionPromise||(this.challenge=void 0,this.authPromise=void 0,this.connectionPromise=new Promise((e,t)=>{this.connectionTimeoutHandle=setTimeout(()=>{t("connection timed out"),this.connectionPromise=void 0,this.onclose?.(),this.closeAllSubscriptions("relay connection timed out")},this.connectionTimeout);try{this.ws=new this._WebSocket(this.url)}catch(e){return clearTimeout(this.connectionTimeoutHandle),void t(e)}this.ws.onopen=()=>{clearTimeout(this.connectionTimeoutHandle),this._connected=!0,this.enablePing&&this.pingpong(),e()},this.ws.onerror=e=>{clearTimeout(this.connectionTimeoutHandle),t(e.message||"websocket error"),this._connected=!1,this.connectionPromise=void 0,this.onclose?.(),this.closeAllSubscriptions("relay connection errored")},this.ws.onclose=e=>{clearTimeout(this.connectionTimeoutHandle),t(e.message||"websocket closed"),this._connected=!1,this.connectionPromise=void 0,this.onclose?.(),this.closeAllSubscriptions("relay connection closed")},this.ws.onmessage=this._onmessage.bind(this)})),this.connectionPromise}async waitForPingPong(){return new Promise((e,t)=>{this.ws&&this.ws.on&&this.ws.on("pong",()=>e(!0))||t("ws can't listen for pong"),this.ws&&this.ws.ping&&this.ws.ping()})}async waitForDummyReq(){return new Promise((e,t)=>{const n=this.subscribe([{ids:["a".repeat(64)]}],{oneose:()=>{n.close(),e(!0)},eoseTimeout:this.pingTimeout+1e3})})}async pingpong(){if(1===this.ws?.readyState){await Promise.any([this.ws&&this.ws.ping&&this.ws.on?this.waitForPingPong():this.waitForDummyReq(),new Promise(e=>setTimeout(()=>e(!1),this.pingTimeout))])?setTimeout(()=>this.pingpong(),this.pingFrequency):(this.closeAllSubscriptions("pingpong timed out"),this._connected=!1,this.onclose?.(),this.ws?.close())}}async runQueue(){for(this.queueRunning=!0;!1!==this.handleNext();)await xn();this.queueRunning=!1}handleNext(){const e=this.incomingMessageQueue.dequeue();if(!e)return!1;const t=function(e){let t=e.slice(0,22).indexOf('"EVENT"');if(-1===t)return null;let n=e.slice(t+7+1).indexOf('"');if(-1===n)return null;let r=t+7+1+n,o=e.slice(r+1,80).indexOf('"');if(-1===o)return null;let i=r+1+o;return e.slice(r+1,i)}(e);if(t){const n=this.openSubs.get(t);if(!n)return;const r=function(e,t){let n=t.length+3,r=e.indexOf(`"${t}":`)+n,o=e.slice(r).indexOf('"')+r+1;return e.slice(o,o+64)}(e,"id"),o=n.alreadyHaveEvent?.(r);if(n.receivedEvent?.(this,r),o)return}try{let t=JSON.parse(e);switch(t[0]){case"EVENT":{const e=this.openSubs.get(t[1]),n=t[2];return void(this.verifyEvent(n)&&function(e,t){for(let n=0;n<e.length;n++)if(kn(e[n],t))return!0;return!1}(e.filters,n)&&e.onevent(n))}case"COUNT":{const e=t[1],n=t[2],r=this.openCountRequests.get(e);return void(r&&(r.resolve(n.count),this.openCountRequests.delete(e)))}case"EOSE":{const e=this.openSubs.get(t[1]);if(!e)return;return void e.receivedEose()}case"OK":{const e=t[1],n=t[2],r=t[3],o=this.openEventPublishes.get(e);return void(o&&(clearTimeout(o.timeout),n?o.resolve(r):o.reject(new Error(r)),this.openEventPublishes.delete(e)))}case"CLOSED":{const e=t[1],n=this.openSubs.get(e);if(!n)return;return n.closed=!0,void n.close(t[2])}case"NOTICE":return void this.onnotice(t[1]);case"AUTH":return void(this.challenge=t[1])}}catch(e){return}}async send(e){if(!this.connectionPromise)throw new An(e,this.url);this.connectionPromise.then(()=>{this.ws?.send(e)})}async auth(e){const t=this.challenge;if(!t)throw new Error("can't perform auth, no challenge was received");return this.authPromise||(this.authPromise=new Promise(async(n,r)=>{try{let o=await e(function(e,t){return{kind:22242,created_at:Math.floor(Date.now()/1e3),tags:[["relay",e],["challenge",t]],content:""}}(this.url,t)),i=setTimeout(()=>{let e=this.openEventPublishes.get(o.id);e&&(e.reject(new Error("auth timed out")),this.openEventPublishes.delete(o.id))},this.publishTimeout);this.openEventPublishes.set(o.id,{resolve:n,reject:r,timeout:i}),this.send('["AUTH",'+JSON.stringify(o)+"]")}catch(e){console.warn("subscribe auth function failed:",e)}})),this.authPromise}async publish(e){const t=new Promise((t,n)=>{const r=setTimeout(()=>{const t=this.openEventPublishes.get(e.id);t&&(t.reject(new Error("publish timed out")),this.openEventPublishes.delete(e.id))},this.publishTimeout);this.openEventPublishes.set(e.id,{resolve:t,reject:n,timeout:r})});return this.send('["EVENT",'+JSON.stringify(e)+"]"),t}async count(e,t){this.serial++;const n=t?.id||"count:"+this.serial,r=new Promise((e,t)=>{this.openCountRequests.set(n,{resolve:e,reject:t})});return this.send('["COUNT","'+n+'",'+JSON.stringify(e).substring(1)),r}subscribe(e,t){const n=this.prepareSubscription(e,t);return n.fire(),n}prepareSubscription(e,t){this.serial++;const n=t.id||(t.label?t.label+":":"sub:")+this.serial,r=new Tn(this,n,e,t);return this.openSubs.set(n,r),r}close(){this.closeAllSubscriptions("relay connection closed by us"),this._connected=!1,this.onclose?.(),this.ws?.close()}_onmessage(e){this.incomingMessageQueue.enqueue(e.data),this.queueRunning||this.runQueue()}},Tn=class{relay;id;closed=!1;eosed=!1;filters;alreadyHaveEvent;receivedEvent;onevent;oneose;onclose;eoseTimeout;eoseTimeoutHandle;constructor(e,t,n,r){this.relay=e,this.filters=n,this.id=t,this.alreadyHaveEvent=r.alreadyHaveEvent,this.receivedEvent=r.receivedEvent,this.eoseTimeout=r.eoseTimeout||e.baseEoseTimeout,this.oneose=r.oneose,this.onclose=r.onclose,this.onevent=r.onevent||(e=>{console.warn(`onevent() callback not defined for subscription '${this.id}' in relay ${this.relay.url}. event received:`,e)})}fire(){this.relay.send('["REQ","'+this.id+'",'+JSON.stringify(this.filters).substring(1)),this.eoseTimeoutHandle=setTimeout(this.receivedEose.bind(this),this.eoseTimeout)}receivedEose(){this.eosed||(clearTimeout(this.eoseTimeoutHandle),this.eosed=!0,this.oneose?.())}close(e="closed by caller"){if(!this.closed&&this.relay.connected){try{this.relay.send('["CLOSE",'+JSON.stringify(this.id)+"]")}catch(e){if(!(e instanceof An))throw e}this.closed=!0}this.relay.openSubs.delete(this.id),this.onclose?.(e)}},In=class{relays=new Map;seenOn=new Map;trackRelays=!1;verifyEvent;enablePing;trustedRelayURLs=new Set;_WebSocket;constructor(e){this.verifyEvent=e.verifyEvent,this._WebSocket=e.websocketImplementation,this.enablePing=e.enablePing}async ensureRelay(e,t){e=yn(e);let n=this.relays.get(e);return n||(n=new $n(e,{verifyEvent:this.trustedRelayURLs.has(e)?Cn:this.verifyEvent,websocketImplementation:this._WebSocket,enablePing:this.enablePing}),n.onclose=()=>{this.relays.delete(e)},t?.connectionTimeout&&(n.connectionTimeout=t.connectionTimeout),this.relays.set(e,n)),await n.connect(),n}close(e){e.map(yn).forEach(e=>{this.relays.get(e)?.close(),this.relays.delete(e)})}subscribe(e,t,n){n.onauth=n.onauth||n.doauth;const r=[];for(let n=0;n<e.length;n++){const o=yn(e[n]);r.find(e=>e.url===o)||r.push({url:o,filter:t})}return this.subscribeMap(r,n)}subscribeMany(e,t,n){n.onauth=n.onauth||n.doauth;const r=[],o=[];for(let n=0;n<e.length;n++){const i=yn(e[n]);-1===o.indexOf(i)&&(o.push(i),r.push({url:i,filter:t}))}return this.subscribeMap(r,n)}subscribeMap(e,t){t.onauth=t.onauth||t.doauth;const n=new Map;for(const t of e){const{url:e,filter:r}=t;n.has(e)||n.set(e,[]),n.get(e).push(r)}const r=Array.from(n.entries()).map(([e,t])=>({url:e,filters:t}));this.trackRelays&&(t.receivedEvent=(e,t)=>{let n=this.seenOn.get(t);n||(n=new Set,this.seenOn.set(t,n)),n.add(e)});const o=new Set,i=[],s=[];let a=n=>{s[n]||(s[n]=!0,s.filter(e=>e).length===e.length&&(t.oneose?.(),a=()=>{}))};const l=[];let c=(n,r)=>{l[n]||(a(n),l[n]=r,l.filter(e=>e).length===e.length&&(t.onclose?.(l),c=()=>{}))};const u=e=>{if(t.alreadyHaveEvent?.(e))return!0;const n=o.has(e);return o.add(e),n},d=Promise.all(r.map(async({url:e,filters:n},r)=>{let o;try{o=await this.ensureRelay(e,{connectionTimeout:t.maxWait?Math.max(.8*t.maxWait,t.maxWait-1e3):void 0})}catch(e){return void c(r,e?.message||String(e))}let s=o.subscribe(n,{...t,oneose:()=>a(r),onclose:e=>{e.startsWith("auth-required: ")&&t.onauth?o.auth(t.onauth).then(()=>{o.subscribe(n,{...t,oneose:()=>a(r),onclose:e=>{c(r,e)},alreadyHaveEvent:u,eoseTimeout:t.maxWait})}).catch(e=>{c(r,`auth was required and attempted, but failed with: ${e}`)}):c(r,e)},alreadyHaveEvent:u,eoseTimeout:t.maxWait});i.push(s)}));return{async close(e){await d,i.forEach(t=>{t.close(e)})}}}subscribeEose(e,t,n){n.onauth=n.onauth||n.doauth;const r=this.subscribe(e,t,{...n,oneose(){r.close("closed automatically on eose")}});return r}subscribeManyEose(e,t,n){n.onauth=n.onauth||n.doauth;const r=this.subscribeMany(e,t,{...n,oneose(){r.close("closed automatically on eose")}});return r}async querySync(e,t,n){return new Promise(async r=>{const o=[];this.subscribeEose(e,t,{...n,onevent(e){o.push(e)},onclose(e){r(o)}})})}async get(e,t,n){t.limit=1;const r=await this.querySync(e,t,n);return r.sort((e,t)=>t.created_at-e.created_at),r[0]||null}publish(e,t,n){return e.map(yn).map(async(e,r,o)=>{if(o.indexOf(e)!==r)return Promise.reject("duplicate url");let i=await this.ensureRelay(e);return i.publish(t).catch(async e=>{if(e instanceof Error&&e.message.startsWith("auth-required: ")&&n?.onauth)return await i.auth(n.onauth),i.publish(t);throw e}).then(e=>{if(this.trackRelays){let e=this.seenOn.get(t.id);e||(e=new Set,this.seenOn.set(t.id,e)),e.add(i)}return e})})}listConnectionStatus(){const e=new Map;return this.relays.forEach((t,n)=>e.set(n,t.connected)),e}destroy(){this.relays.forEach(e=>e.close()),this.relays=new Map}};try{Sn=WebSocket}catch{}var Rn=class extends In{constructor(e){super({verifyEvent:En,websocketImplementation:Sn,...e})}};
/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */function _n(e){if(!Number.isSafeInteger(e))throw new Error(`Wrong integer: ${e}`)}function Ln(...e){const t=(e,t)=>n=>e(t(n)),n=Array.from(e).reverse().reduce((e,n)=>e?t(e,n.encode):n.encode,void 0),r=e.reduce((e,n)=>e?t(e,n.decode):n.decode,void 0);return{encode:n,decode:r}}function Pn(e){return{encode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("alphabet.encode input should be an array of numbers");return t.map(t=>{if(_n(t),t<0||t>=e.length)throw new Error(`Digit index outside alphabet: ${t} (alphabet: ${e.length})`);return e[t]})},decode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("alphabet.decode input should be array of strings");return t.map(t=>{if("string"!=typeof t)throw new Error(`alphabet.decode: not string element=${t}`);const n=e.indexOf(t);if(-1===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n})}}}function On(e=""){if("string"!=typeof e)throw new Error("join separator should be string");return{encode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("join.encode input should be array of strings");for(let e of t)if("string"!=typeof e)throw new Error(`join.encode: non-string input=${e}`);return t.join(e)},decode:t=>{if("string"!=typeof t)throw new Error("join.decode input should be string");return t.split(e)}}}function Bn(e,t="="){if(_n(e),"string"!=typeof t)throw new Error("padding chr should be string");return{encode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let e of n)if("string"!=typeof e)throw new Error(`padding.encode: non-string input=${e}`);for(;n.length*e%8;)n.push(t);return n},decode(n){if(!Array.isArray(n)||n.length&&"string"!=typeof n[0])throw new Error("padding.encode input should be array of strings");for(let e of n)if("string"!=typeof e)throw new Error(`padding.decode: non-string input=${e}`);let r=n.length;if(r*e%8)throw new Error("Invalid padding: string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--)if(!((r-1)*e%8))throw new Error("Invalid padding: string has too much padding");return n.slice(0,r)}}}function jn(e){if("function"!=typeof e)throw new Error("normalize fn should be function");return{encode:e=>e,decode:t=>e(t)}}function Nn(e,t,n){if(t<2)throw new Error(`convertRadix: wrong from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: wrong to=${n}, base cannot be less than 2`);if(!Array.isArray(e))throw new Error("convertRadix: data should be array");if(!e.length)return[];let r=0;const o=[],i=Array.from(e);for(i.forEach(e=>{if(_n(e),e<0||e>=t)throw new Error(`Wrong integer: ${e}`)});;){let e=0,s=!0;for(let o=r;o<i.length;o++){const a=i[o],l=t*e+a;if(!Number.isSafeInteger(l)||t*e/t!==e||l-a!==t*e)throw new Error("convertRadix: carry overflow");if(e=l%n,i[o]=Math.floor(l/n),!Number.isSafeInteger(i[o])||i[o]*n+e!==l)throw new Error("convertRadix: carry overflow");s&&(i[o]?s=!1:r=o)}if(o.push(e),s)break}for(let t=0;t<e.length-1&&0===e[t];t++)o.push(0);return o.reverse()}const Mn=(e,t)=>t?Mn(t,e%t):e,Un=(e,t)=>e+(t-Mn(e,t));function Fn(e,t,n,r){if(!Array.isArray(e))throw new Error("convertRadix2: data should be array");if(t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(Un(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${Un(t,n)}`);let o=0,i=0;const s=2**n-1,a=[];for(const r of e){if(_n(r),r>=2**t)throw new Error(`convertRadix2: invalid data word=${r} from=${t}`);if(o=o<<t|r,i+t>32)throw new Error(`convertRadix2: carry overflow pos=${i} from=${t}`);for(i+=t;i>=n;i-=n)a.push((o>>i-n&s)>>>0);o&=2**i-1}if(o=o<<n-i&s,!r&&i>=t)throw new Error("Excess padding");if(!r&&o)throw new Error(`Non-zero padding: ${o}`);return r&&i>0&&a.push(o>>>0),a}function Dn(e,t=!1){if(_n(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(Un(8,e)>32||Un(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!(n instanceof Uint8Array))throw new Error("radix2.encode input should be Uint8Array");return Fn(Array.from(n),8,e,!t)},decode:n=>{if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("radix2.decode input should be array of strings");return Uint8Array.from(Fn(n,e,8,t))}}}function qn(e){if("function"!=typeof e)throw new Error("unsafeWrapper fn should be function");return function(...t){try{return e.apply(null,t)}catch(e){}}}const Hn=Ln(Dn(4),Pn("0123456789ABCDEF"),On("")),zn=Ln(Dn(5),Pn("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Bn(5),On(""));Ln(Dn(5),Pn("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Bn(5),On("")),Ln(Dn(5),Pn("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),On(""),jn(e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")));const Kn=Ln(Dn(6),Pn("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Bn(6),On("")),Wn=Ln(Dn(6),Pn("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Bn(6),On("")),Vn=e=>{return Ln((_n(t=58),{encode:e=>{if(!(e instanceof Uint8Array))throw new Error("radix.encode input should be Uint8Array");return Nn(Array.from(e),256,t)},decode:e=>{if(!Array.isArray(e)||e.length&&"number"!=typeof e[0])throw new Error("radix.decode input should be array of strings");return Uint8Array.from(Nn(e,t,256))}}),Pn(e),On(""));var t},Jn=Vn("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");Vn("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),Vn("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const Zn=[0,2,3,5,6,7,9,10,11],Gn={encode(e){let t="";for(let n=0;n<e.length;n+=8){const r=e.subarray(n,n+8);t+=Jn.encode(r).padStart(Zn[r.length],"1")}return t},decode(e){let t=[];for(let n=0;n<e.length;n+=11){const r=e.slice(n,n+11),o=Zn.indexOf(r.length),i=Jn.decode(r);for(let e=0;e<i.length-o;e++)if(0!==i[e])throw new Error("base58xmr: wrong padding");t=t.concat(Array.from(i.slice(i.length-o)))}return Uint8Array.from(t)}},Qn=Ln(Pn("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),On("")),Yn=[996825010,642813549,513874426,1027748829,705979059];function Xn(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<Yn.length;e++)1==(t>>e&1)&&(n^=Yn[e]);return n}function er(e,t,n=1){const r=e.length;let o=1;for(let t=0;t<r;t++){const n=e.charCodeAt(t);if(n<33||n>126)throw new Error(`Invalid prefix (${e})`);o=Xn(o)^n>>5}o=Xn(o);for(let t=0;t<r;t++)o=Xn(o)^31&e.charCodeAt(t);for(let e of t)o=Xn(o)^e;for(let e=0;e<6;e++)o=Xn(o);return o^=n,Qn.encode(Fn([o%2**30],30,5,!1))}function tr(e){const t="bech32"===e?1:734539939,n=Dn(5),r=n.decode,o=n.encode,i=qn(r);function s(e,n=90){if("string"!=typeof e)throw new Error("bech32.decode input should be string, not "+typeof e);if(e.length<8||!1!==n&&e.length>n)throw new TypeError(`Wrong string length: ${e.length} (${e}). Expected (8..${n})`);const r=e.toLowerCase();if(e!==r&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const o=(e=r).lastIndexOf("1");if(0===o||-1===o)throw new Error('Letter "1" must be present between prefix and data only');const i=e.slice(0,o),s=e.slice(o+1);if(s.length<6)throw new Error("Data must be at least 6 characters long");const a=Qn.decode(s).slice(0,-6),l=er(i,a,t);if(!s.endsWith(l))throw new Error(`Invalid checksum in ${e}: expected "${l}"`);return{prefix:i,words:a}}return{encode:function(e,n,r=90){if("string"!=typeof e)throw new Error("bech32.encode prefix should be string, not "+typeof e);if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("bech32.encode words should be array of numbers, not "+typeof n);const o=e.length+7+n.length;if(!1!==r&&o>r)throw new TypeError(`Length ${o} exceeds limit ${r}`);return`${e=e.toLowerCase()}1${Qn.encode(n)}${er(e,n,t)}`},decode:s,decodeToBytes:function(e){const{prefix:t,words:n}=s(e,!1);return{prefix:t,words:n,bytes:r(n)}},decodeUnsafe:qn(s),fromWords:r,fromWordsUnsafe:i,toWords:o}}const nr=tr("bech32");tr("bech32m");const rr={utf8:{encode:e=>(new TextDecoder).decode(e),decode:e=>(new TextEncoder).encode(e)},hex:Ln(Dn(4),Pn("0123456789abcdef"),On(""),jn(e=>{if("string"!=typeof e||e.length%2)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()})),base16:Hn,base32:zn,base64:Kn,base64url:Wn,base58:Jn,base58xmr:Gn};function or(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function ir(e){if("boolean"!=typeof e)throw new Error(`boolean expected, not ${e}`)}function sr(e,...t){if(!((n=e)instanceof Uint8Array||null!=n&&"object"==typeof n&&"Uint8Array"===n.constructor.name))throw new Error("Uint8Array expected");var n;if(t.length>0&&!t.includes(e.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}
/*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */Object.keys(rr).join(", ");const ar=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4));if(!(68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]))throw new Error("Non little-endian hardware is not supported");const lr=16;function cr(e){return e<<1^283&-(e>>7)}function ur(e,t){let n=0;for(;t>0;t>>=1)n^=e&-(1&t),e=cr(e);return n}const dr=(()=>{let e=new Uint8Array(256);for(let t=0,n=1;t<256;t++,n^=cr(n))e[t]=n;const t=new Uint8Array(256);t[0]=99;for(let n=0;n<255;n++){let r=e[255-n];r|=r<<8,t[e[n]]=255&(r^r>>4^r>>5^r>>6^r>>7^99)}return t})(),fr=dr.map((e,t)=>dr.indexOf(t)),hr=e=>e<<24|e>>>8,pr=e=>e<<8|e>>>24;function gr(e,t){if(256!==e.length)throw new Error("Wrong sbox length");const n=new Uint32Array(256).map((n,r)=>t(e[r])),r=n.map(pr),o=r.map(pr),i=o.map(pr),s=new Uint32Array(65536),a=new Uint32Array(65536),l=new Uint16Array(65536);for(let t=0;t<256;t++)for(let c=0;c<256;c++){const u=256*t+c;s[u]=n[t]^r[c],a[u]=o[t]^i[c],l[u]=e[t]<<8|e[c]}return{sbox:e,sbox2:l,T0:n,T1:r,T2:o,T3:i,T01:s,T23:a}}const yr=gr(dr,e=>ur(e,3)<<24|e<<16|e<<8|ur(e,2)),vr=gr(fr,e=>ur(e,11)<<24|ur(e,13)<<16|ur(e,9)<<8|ur(e,14)),mr=(()=>{const e=new Uint8Array(16);for(let t=0,n=1;t<16;t++,n=cr(n))e[t]=n;return e})();function wr(e){sr(e);const t=e.length;if(![16,24,32].includes(t))throw new Error(`aes: wrong key size: should be 16, 24 or 32, got: ${t}`);const{sbox2:n}=yr,r=ar(e),o=r.length,i=e=>Er(n,e,e,e,e),s=new Uint32Array(t+28);s.set(r);for(let e=o;e<s.length;e++){let t=s[e-1];e%o===0?t=i(hr(t))^mr[e/o-1]:o>6&&e%o===4&&(t=i(t)),s[e]=s[e-o]^t}return s}function br(e,t,n,r,o,i){return e[n<<8&65280|r>>>8&255]^t[o>>>8&65280|i>>>24&255]}function Er(e,t,n,r,o){return e[255&t|65280&n]|e[r>>>16&255|o>>>16&65280]<<16}function kr(e,t,n,r,o){const{sbox2:i,T01:s,T23:a}=yr;let l=0;t^=e[l++],n^=e[l++],r^=e[l++],o^=e[l++];const c=e.length/4-2;for(let i=0;i<c;i++){const i=e[l++]^br(s,a,t,n,r,o),c=e[l++]^br(s,a,n,r,o,t),u=e[l++]^br(s,a,r,o,t,n),d=e[l++]^br(s,a,o,t,n,r);t=i,n=c,r=u,o=d}return{s0:e[l++]^Er(i,t,n,r,o),s1:e[l++]^Er(i,n,r,o,t),s2:e[l++]^Er(i,r,o,t,n),s3:e[l++]^Er(i,o,t,n,r)}}function xr(e,t,n,r,o){const{sbox2:i,T01:s,T23:a}=vr;let l=0;t^=e[l++],n^=e[l++],r^=e[l++],o^=e[l++];const c=e.length/4-2;for(let i=0;i<c;i++){const i=e[l++]^br(s,a,t,o,r,n),c=e[l++]^br(s,a,n,t,o,r),u=e[l++]^br(s,a,r,n,t,o),d=e[l++]^br(s,a,o,r,n,t);t=i,n=c,r=u,o=d}return{s0:e[l++]^Er(i,t,o,r,n),s1:e[l++]^Er(i,n,t,o,r),s2:e[l++]^Er(i,r,n,t,o),s3:e[l++]^Er(i,o,r,n,t)}}function Sr(e,t){if(!t)return new Uint8Array(e);if(sr(t),t.length<e)throw new Error(`aes: wrong destination length, expected at least ${e}, got: ${t.length}`);return t}const Cr=(Ar={blockSize:16,nonceLength:16},$r=function(e,t,n={}){sr(e),sr(t,16);const r=!n.disablePadding;return{encrypt:(n,o)=>{const i=wr(e),{b:s,o:a,out:l}=function(e,t,n){let r=e.length;const o=r%lr;if(!t&&0!==o)throw new Error("aec/(cbc-ecb): unpadded plaintext with disabled padding");const i=ar(e);if(t){let e=lr-o;e||(e=lr),r+=e}const s=Sr(r,n);return{b:i,o:ar(s),out:s}}(n,r,o),c=ar(t);let u=c[0],d=c[1],f=c[2],h=c[3],p=0;for(;p+4<=s.length;)u^=s[p+0],d^=s[p+1],f^=s[p+2],h^=s[p+3],({s0:u,s1:d,s2:f,s3:h}=kr(i,u,d,f,h)),a[p++]=u,a[p++]=d,a[p++]=f,a[p++]=h;if(r){const e=function(e){const t=new Uint8Array(16),n=ar(t);t.set(e);const r=lr-e.length;for(let e=lr-r;e<lr;e++)t[e]=r;return n}(n.subarray(4*p));u^=e[0],d^=e[1],f^=e[2],h^=e[3],({s0:u,s1:d,s2:f,s3:h}=kr(i,u,d,f,h)),a[p++]=u,a[p++]=d,a[p++]=f,a[p++]=h}return i.fill(0),l},decrypt:(n,o)=>{!function(e){if(sr(e),e.length%lr!==0)throw new Error("aes/(cbc-ecb).decrypt ciphertext should consist of blocks with size 16")}(n);const i=function(e){const t=wr(e),n=t.slice(),r=t.length,{sbox2:o}=yr,{T0:i,T1:s,T2:a,T3:l}=vr;for(let e=0;e<r;e+=4)for(let o=0;o<4;o++)n[e+o]=t[r-e-4+o];t.fill(0);for(let e=4;e<r-4;e++){const t=n[e],r=Er(o,t,t,t,t);n[e]=i[255&r]^s[r>>>8&255]^a[r>>>16&255]^l[r>>>24]}return n}(e),s=ar(t),a=Sr(n.length,o),l=ar(n),c=ar(a);let u=s[0],d=s[1],f=s[2],h=s[3];for(let e=0;e+4<=l.length;){const t=u,n=d,r=f,o=h;u=l[e+0],d=l[e+1],f=l[e+2],h=l[e+3];const{s0:s,s1:a,s2:p,s3:g}=xr(i,u,d,f,h);c[e++]=s^t,c[e++]=a^n,c[e++]=p^r,c[e++]=g^o}return i.fill(0),function(e,t){if(!t)return e;const n=e.length;if(!n)throw new Error("aes/pcks5: empty ciphertext not allowed");const r=e[n-1];if(r<=0||r>16)throw new Error(`aes/pcks5: wrong padding byte: ${r}`);const o=e.subarray(0,-r);for(let t=0;t<r;t++)if(e[n-t-1]!==r)throw new Error("aes/pcks5: wrong padding");return o}(a,r)}}},Object.assign($r,Ar),$r);var Ar,$r;const Tr=e=>Uint8Array.from(e.split("").map(e=>e.charCodeAt(0))),Ir=Tr("expand 16-byte k"),Rr=Tr("expand 32-byte k"),_r=ar(Ir),Lr=ar(Rr);function Pr(e,t){return e<<t|e>>>32-t}function Or(e){return e.byteOffset%4==0}Lr.slice();const Br=2**32-1,jr=new Uint32Array;function Nr(e,t){const{allowShortKeys:n,extendNonceFn:r,counterLength:o,counterRight:i,rounds:s}=function(e,t){if(null==t||"object"!=typeof t)throw new Error("options must be defined");return Object.assign(e,t)}({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if("function"!=typeof e)throw new Error("core must be a function");return or(o),or(s),ir(i),ir(n),(t,a,l,c,u=0)=>{sr(t),sr(a),sr(l);const d=l.length;if(c||(c=new Uint8Array(d)),sr(c),or(u),u<0||u>=Br)throw new Error("arx: counter overflow");if(c.length<d)throw new Error(`arx: output (${c.length}) is shorter than data (${d})`);const f=[];let h,p,g=t.length;if(32===g)h=t.slice(),f.push(h),p=Lr;else{if(16!==g||!n)throw new Error(`arx: invalid 32-byte key, got length=${g}`);h=new Uint8Array(32),h.set(t),h.set(t,16),p=_r,f.push(h)}Or(a)||(a=a.slice(),f.push(a));const y=ar(h);if(r){if(24!==a.length)throw new Error("arx: extended nonce must be 24 bytes");r(p,y,ar(a.subarray(0,16)),y),a=a.subarray(16)}const v=16-o;if(v!==a.length)throw new Error(`arx: nonce must be ${v} or 16 bytes`);if(12!==v){const e=new Uint8Array(12);e.set(a,i?0:12-a.length),a=e,f.push(a)}const m=ar(a);for(!function(e,t,n,r,o,i,s,a){const l=o.length,c=new Uint8Array(64),u=ar(c),d=Or(o)&&Or(i),f=d?ar(o):jr,h=d?ar(i):jr;for(let p=0;p<l;s++){if(e(t,n,r,u,s,a),s>=Br)throw new Error("arx: counter overflow");const g=Math.min(64,l-p);if(d&&64===g){const e=p/4;if(p%4!=0)throw new Error("arx: invalid block position");for(let t,n=0;n<16;n++)t=e+n,h[t]=f[t]^u[n];p+=64;continue}for(let e,t=0;t<g;t++)e=p+t,i[e]=o[e]^c[t];p+=g}}(e,p,y,m,l,c,u,s);f.length>0;)f.pop().fill(0);return c}}function Mr(e,t,n,r,o,i=20){let s=e[0],a=e[1],l=e[2],c=e[3],u=t[0],d=t[1],f=t[2],h=t[3],p=t[4],g=t[5],y=t[6],v=t[7],m=o,w=n[0],b=n[1],E=n[2],k=s,x=a,S=l,C=c,A=u,$=d,T=f,I=h,R=p,_=g,L=y,P=v,O=m,B=w,j=b,N=E;for(let e=0;e<i;e+=2)k=k+A|0,O=Pr(O^k,16),R=R+O|0,A=Pr(A^R,12),k=k+A|0,O=Pr(O^k,8),R=R+O|0,A=Pr(A^R,7),x=x+$|0,B=Pr(B^x,16),_=_+B|0,$=Pr($^_,12),x=x+$|0,B=Pr(B^x,8),_=_+B|0,$=Pr($^_,7),S=S+T|0,j=Pr(j^S,16),L=L+j|0,T=Pr(T^L,12),S=S+T|0,j=Pr(j^S,8),L=L+j|0,T=Pr(T^L,7),C=C+I|0,N=Pr(N^C,16),P=P+N|0,I=Pr(I^P,12),C=C+I|0,N=Pr(N^C,8),P=P+N|0,I=Pr(I^P,7),k=k+$|0,N=Pr(N^k,16),L=L+N|0,$=Pr($^L,12),k=k+$|0,N=Pr(N^k,8),L=L+N|0,$=Pr($^L,7),x=x+T|0,O=Pr(O^x,16),P=P+O|0,T=Pr(T^P,12),x=x+T|0,O=Pr(O^x,8),P=P+O|0,T=Pr(T^P,7),S=S+I|0,B=Pr(B^S,16),R=R+B|0,I=Pr(I^R,12),S=S+I|0,B=Pr(B^S,8),R=R+B|0,I=Pr(I^R,7),C=C+A|0,j=Pr(j^C,16),_=_+j|0,A=Pr(A^_,12),C=C+A|0,j=Pr(j^C,8),_=_+j|0,A=Pr(A^_,7);let M=0;r[M++]=s+k|0,r[M++]=a+x|0,r[M++]=l+S|0,r[M++]=c+C|0,r[M++]=u+A|0,r[M++]=d+$|0,r[M++]=f+T|0,r[M++]=h+I|0,r[M++]=p+R|0,r[M++]=g+_|0,r[M++]=y+L|0,r[M++]=v+P|0,r[M++]=m+O|0,r[M++]=w+B|0,r[M++]=b+j|0,r[M++]=E+N|0}const Ur=Nr(Mr,{counterRight:!1,counterLength:4,allowShortKeys:!1});class Fr extends Qt{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,nn.hash(e);const n=Zt(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const r=this.blockLen,o=new Uint8Array(r);o.set(n.length>r?e.create().update(n).digest():n);for(let e=0;e<o.length;e++)o[e]^=54;this.iHash.update(o),this.oHash=e.create();for(let e=0;e<o.length;e++)o[e]^=106;this.oHash.update(o),o.fill(0)}update(e){return nn.exists(this),this.iHash.update(e),this}digestInto(e){nn.exists(this),nn.bytes(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:n,finished:r,destroyed:o,blockLen:i,outputLen:s}=this;return e.finished=r,e.destroyed=o,e.blockLen=i,e.outputLen=s,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const Dr=(e,t,n)=>new Fr(e,t).update(n).digest();Dr.create=(e,t)=>new Fr(e,t);const qr=new Uint8Array([0]),Hr=new Uint8Array;var zr=Object.defineProperty,Kr=(e,t)=>{for(var n in t)zr(e,n,{get:t[n],enumerable:!0})},Wr=Symbol("verified");function Vr(e){if(!(e instanceof Object))return!1;if("number"!=typeof e.kind)return!1;if("string"!=typeof e.content)return!1;if("number"!=typeof e.created_at)return!1;if("string"!=typeof e.pubkey)return!1;if(!e.pubkey.match(/^[a-f0-9]{64}$/))return!1;if(!Array.isArray(e.tags))return!1;for(let t=0;t<e.tags.length;t++){let n=e.tags[t];if(!Array.isArray(n))return!1;for(let e=0;e<n.length;e++)if("string"!=typeof n[e])return!1}return!0}Kr({},{Queue:()=>to,QueueNode:()=>eo,binarySearch:()=>Xr,bytesToHex:()=>Vt,hexToBytes:()=>Jt,insertEventIntoAscendingList:()=>Yr,insertEventIntoDescendingList:()=>Qr,normalizeURL:()=>Gr,utf8Decoder:()=>Jr,utf8Encoder:()=>Zr});var Jr=new TextDecoder("utf-8"),Zr=new TextEncoder;function Gr(e){try{-1===e.indexOf("://")&&(e="wss://"+e);let t=new URL(e);return t.pathname=t.pathname.replace(/\/+/g,"/"),t.pathname.endsWith("/")&&(t.pathname=t.pathname.slice(0,-1)),("80"===t.port&&"ws:"===t.protocol||"443"===t.port&&"wss:"===t.protocol)&&(t.port=""),t.searchParams.sort(),t.hash="",t.toString()}catch(t){throw new Error(`Invalid URL: ${e}`)}}function Qr(e,t){const[n,r]=Xr(e,e=>t.id===e.id?0:t.created_at===e.created_at?-1:e.created_at-t.created_at);return r||e.splice(n,0,t),e}function Yr(e,t){const[n,r]=Xr(e,e=>t.id===e.id?0:t.created_at===e.created_at?-1:t.created_at-e.created_at);return r||e.splice(n,0,t),e}function Xr(e,t){let n=0,r=e.length-1;for(;n<=r;){const o=Math.floor((n+r)/2),i=t(e[o]);if(0===i)return[o,!0];i<0?r=o-1:n=o+1}return[n,!1]}var eo=class{value;next=null;prev=null;constructor(e){this.value=e}},to=class{first;last;constructor(){this.first=null,this.last=null}enqueue(e){const t=new eo(e);return this.last?this.last===this.first?(this.last=t,this.last.prev=this.first,this.first.next=t):(t.prev=this.last,this.last.next=t,this.last=t):(this.first=t,this.last=t),!0}dequeue(){if(!this.first)return null;if(this.first===this.last){const e=this.first;return this.first=null,this.last=null,e.value}const e=this.first;return this.first=e.next,this.first&&(this.first.prev=null),e.value}};function no(e){return Vt(fn(Zr.encode(function(e){if(!Vr(e))throw new Error("can't serialize event with wrong or missing properties");return JSON.stringify([0,e.pubkey,e.created_at,e.kind,e.tags,e.content])}(e))))}var ro=new class{generateSecretKey(){return Dt.utils.randomPrivateKey()}getPublicKey(e){return Vt(Dt.getPublicKey(e))}finalizeEvent(e,t){const n=e;return n.pubkey=Vt(Dt.getPublicKey(t)),n.id=no(n),n.sig=Vt(Dt.sign(no(n),t)),n[Wr]=!0,n}verifyEvent(e){if("boolean"==typeof e[Wr])return e[Wr];const t=no(e);if(t!==e.id)return e[Wr]=!1,!1;try{const n=Dt.verify(e.sig,t,e.pubkey);return e[Wr]=n,n}catch(t){return e[Wr]=!1,!1}}},oo=ro.generateSecretKey,io=ro.getPublicKey,so=ro.finalizeEvent,ao=ro.verifyEvent,lo={};function co(e){return 1e3<=e&&e<1e4||[1,2,4,5,6,7,8,16,40,41,42,43,44].includes(e)}function uo(e){return[0,3].includes(e)||1e4<=e&&e<2e4}function fo(e){return 2e4<=e&&e<3e4}function ho(e){return 3e4<=e&&e<4e4}function po(e){return co(e)?"regular":uo(e)?"replaceable":fo(e)?"ephemeral":ho(e)?"parameterized":"unknown"}function go(e,t){const n=t instanceof Array?t:[t];return Vr(e)&&n.includes(e.kind)||!1}Kr(lo,{Application:()=>$i,BadgeAward:()=>So,BadgeDefinition:()=>bi,BlockedRelaysList:()=>ti,BookmarkList:()=>Yo,Bookmarksets:()=>vi,Calendar:()=>Oi,CalendarEventRSVP:()=>Bi,ChannelCreation:()=>To,ChannelHideMessage:()=>_o,ChannelMessage:()=>Ro,ChannelMetadata:()=>Io,ChannelMuteUser:()=>Lo,ClassifiedListing:()=>Ri,ClientAuth:()=>ci,CommunitiesList:()=>Xo,CommunityDefinition:()=>Mi,CommunityPostApproval:()=>Do,Contacts:()=>wo,CreateOrUpdateProduct:()=>xi,CreateOrUpdateStall:()=>ki,Curationsets:()=>mi,Date:()=>Li,DirectMessageRelaysList:()=>ii,DraftClassifiedListing:()=>_i,DraftLong:()=>Ci,Emojisets:()=>Ai,EncryptedDirectMessage:()=>bo,EventDeletion:()=>Eo,FileMetadata:()=>Bo,FileServerPreference:()=>si,Followsets:()=>pi,GenericRepost:()=>$o,Genericlists:()=>gi,GiftWrap:()=>Oo,HTTPAuth:()=>hi,Handlerinformation:()=>Ni,Handlerrecommendation:()=>ji,Highlights:()=>Jo,InterestsList:()=>ri,Interestsets:()=>Ei,JobFeedback:()=>zo,JobRequest:()=>qo,JobResult:()=>Ho,Label:()=>Fo,LightningPubRPC:()=>li,LiveChatMessage:()=>jo,LiveEvent:()=>Ti,LongFormArticle:()=>Si,Metadata:()=>yo,Mutelist:()=>Zo,NWCWalletInfo:()=>ai,NWCWalletRequest:()=>ui,NWCWalletResponse:()=>di,NostrConnect:()=>fi,OpenTimestamps:()=>Po,Pinlist:()=>Go,PrivateDirectMessage:()=>Ao,ProblemTracker:()=>No,ProfileBadges:()=>wi,PublicChatsList:()=>ei,Reaction:()=>xo,RecommendRelay:()=>mo,RelayList:()=>Qo,Relaysets:()=>yi,Report:()=>Mo,Reporting:()=>Uo,Repost:()=>ko,Seal:()=>Co,SearchRelaysList:()=>ni,ShortTextNote:()=>vo,Time:()=>Pi,UserEmojiList:()=>oi,UserStatuses:()=>Ii,Zap:()=>Vo,ZapGoal:()=>Ko,ZapRequest:()=>Wo,classifyKind:()=>po,isAddressableKind:()=>ho,isEphemeralKind:()=>fo,isKind:()=>go,isRegularKind:()=>co,isReplaceableKind:()=>uo});var yo=0,vo=1,mo=2,wo=3,bo=4,Eo=5,ko=6,xo=7,So=8,Co=13,Ao=14,$o=16,To=40,Io=41,Ro=42,_o=43,Lo=44,Po=1040,Oo=1059,Bo=1063,jo=1311,No=1971,Mo=1984,Uo=1984,Fo=1985,Do=4550,qo=5999,Ho=6999,zo=7e3,Ko=9041,Wo=9734,Vo=9735,Jo=9802,Zo=1e4,Go=10001,Qo=10002,Yo=10003,Xo=10004,ei=10005,ti=10006,ni=10007,ri=10015,oi=10030,ii=10050,si=10096,ai=13194,li=21e3,ci=22242,ui=23194,di=23195,fi=24133,hi=27235,pi=3e4,gi=30001,yi=30002,vi=30003,mi=30004,wi=30008,bi=30009,Ei=30015,ki=30017,xi=30018,Si=30023,Ci=30024,Ai=30030,$i=30078,Ti=30311,Ii=30315,Ri=30402,_i=30403,Li=31922,Pi=31923,Oi=31924,Bi=31925,ji=31989,Ni=31990,Mi=34550;function Ui(e,t){let n=t.length+3,r=e.indexOf(`"${t}":`)+n,o=e.slice(r).indexOf('"')+r+1;return e.slice(o,o+64)}function Fi(e,t){let n=t.length,r=e.indexOf(`"${t}":`)+n+3,o=e.slice(r),i=Math.min(o.indexOf(","),o.indexOf("}"));return parseInt(o.slice(0,i),10)}function Di(e){let t=e.slice(0,22).indexOf('"EVENT"');if(-1===t)return null;let n=e.slice(t+7+1).indexOf('"');if(-1===n)return null;let r=t+7+1+n,o=e.slice(r+1,80).indexOf('"');if(-1===o)return null;let i=r+1+o;return e.slice(r+1,i)}function qi(e,t){return t===Ui(e,"id")}function Hi(e,t){return t===Ui(e,"pubkey")}function zi(e,t){return t===Fi(e,"kind")}Kr({},{getHex64:()=>Ui,getInt:()=>Fi,getSubscriptionId:()=>Di,matchEventId:()=>qi,matchEventKind:()=>zi,matchEventPubkey:()=>Hi});function Ki(e,t){return{kind:ci,created_at:Math.floor(Date.now()/1e3),tags:[["relay",e],["challenge",t]],content:""}}Kr({},{makeAuthEvent:()=>Ki});try{WebSocket}catch{}try{WebSocket}catch{}var Wi={};Kr(Wi,{BECH32_REGEX:()=>Zi,Bech32MaxSize:()=>Ji,NostrTypeGuard:()=>Vi,decode:()=>Qi,decodeNostrURI:()=>Gi,encodeBytes:()=>rs,naddrEncode:()=>ss,neventEncode:()=>is,noteEncode:()=>ts,nprofileEncode:()=>os,npubEncode:()=>es,nsecEncode:()=>Xi});var Vi={isNProfile:e=>/^nprofile1[a-z\d]+$/.test(e||""),isNEvent:e=>/^nevent1[a-z\d]+$/.test(e||""),isNAddr:e=>/^naddr1[a-z\d]+$/.test(e||""),isNSec:e=>/^nsec1[a-z\d]{58}$/.test(e||""),isNPub:e=>/^npub1[a-z\d]{58}$/.test(e||""),isNote:e=>/^note1[a-z\d]+$/.test(e||""),isNcryptsec:e=>/^ncryptsec1[a-z\d]+$/.test(e||"")},Ji=5e3,Zi=/[\x21-\x7E]{1,83}1[023456789acdefghjklmnpqrstuvwxyz]{6,}/;function Gi(e){try{return e.startsWith("nostr:")&&(e=e.substring(6)),Qi(e)}catch(e){return{type:"invalid",data:null}}}function Qi(e){let{prefix:t,words:n}=nr.decode(e,Ji),r=new Uint8Array(nr.fromWords(n));switch(t){case"nprofile":{let e=Yi(r);if(!e[0]?.[0])throw new Error("missing TLV 0 for nprofile");if(32!==e[0][0].length)throw new Error("TLV 0 should be 32 bytes");return{type:"nprofile",data:{pubkey:Vt(e[0][0]),relays:e[1]?e[1].map(e=>Jr.decode(e)):[]}}}case"nevent":{let e=Yi(r);if(!e[0]?.[0])throw new Error("missing TLV 0 for nevent");if(32!==e[0][0].length)throw new Error("TLV 0 should be 32 bytes");if(e[2]&&32!==e[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(e[3]&&4!==e[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"nevent",data:{id:Vt(e[0][0]),relays:e[1]?e[1].map(e=>Jr.decode(e)):[],author:e[2]?.[0]?Vt(e[2][0]):void 0,kind:e[3]?.[0]?parseInt(Vt(e[3][0]),16):void 0}}}case"naddr":{let e=Yi(r);if(!e[0]?.[0])throw new Error("missing TLV 0 for naddr");if(!e[2]?.[0])throw new Error("missing TLV 2 for naddr");if(32!==e[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(!e[3]?.[0])throw new Error("missing TLV 3 for naddr");if(4!==e[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"naddr",data:{identifier:Jr.decode(e[0][0]),pubkey:Vt(e[2][0]),kind:parseInt(Vt(e[3][0]),16),relays:e[1]?e[1].map(e=>Jr.decode(e)):[]}}}case"nsec":return{type:t,data:r};case"npub":case"note":return{type:t,data:Vt(r)};default:throw new Error(`unknown prefix ${t}`)}}function Yi(e){let t={},n=e;for(;n.length>0;){let e=n[0],r=n[1],o=n.slice(2,2+r);if(n=n.slice(2+r),o.length<r)throw new Error(`not enough data to read on TLV ${e}`);t[e]=t[e]||[],t[e].push(o)}return t}function Xi(e){return rs("nsec",e)}function es(e){return rs("npub",Jt(e))}function ts(e){return rs("note",Jt(e))}function ns(e,t){let n=nr.toWords(t);return nr.encode(e,n,Ji)}function rs(e,t){return ns(e,t)}function os(e){return ns("nprofile",as({0:[Jt(e.pubkey)],1:(e.relays||[]).map(e=>Zr.encode(e))}))}function is(e){let t;return void 0!==e.kind&&(t=function(e){const t=new Uint8Array(4);return t[0]=e>>24&255,t[1]=e>>16&255,t[2]=e>>8&255,t[3]=255&e,t}(e.kind)),ns("nevent",as({0:[Jt(e.id)],1:(e.relays||[]).map(e=>Zr.encode(e)),2:e.author?[Jt(e.author)]:[],3:t?[new Uint8Array(t)]:[]}))}function ss(e){let t=new ArrayBuffer(4);return new DataView(t).setUint32(0,e.kind,!1),ns("naddr",as({0:[Zr.encode(e.identifier)],1:(e.relays||[]).map(e=>Zr.encode(e)),2:[Jt(e.pubkey)],3:[new Uint8Array(t)]}))}function as(e){let t=[];return Object.entries(e).reverse().forEach(([e,n])=>{n.forEach(n=>{let r=new Uint8Array(n.length+2);r.set([parseInt(e)],0),r.set([n.length],1),r.set(n,2),t.push(r)})}),Gt(...t)}var ls={};function cs(e,t,n){const r=e instanceof Uint8Array?Vt(e):e,o=ds(Ct.getSharedSecret(r,"02"+t));let i=Uint8Array.from(Xt(16)),s=Zr.encode(n),a=Cr(o,i).encrypt(s);return`${Kn.encode(new Uint8Array(a))}?iv=${Kn.encode(new Uint8Array(i.buffer))}`}function us(e,t,n){const r=e instanceof Uint8Array?Vt(e):e;let[o,i]=n.split("?iv="),s=ds(Ct.getSharedSecret(r,"02"+t)),a=Kn.decode(i),l=Kn.decode(o),c=Cr(s,a).decrypt(l);return Jr.decode(c)}function ds(e){return e.slice(1,33)}Kr(ls,{decrypt:()=>us,encrypt:()=>cs});Kr({},{NIP05_REGEX:()=>hs,isNip05:()=>ps,isValid:()=>ms,queryProfile:()=>vs,searchDomain:()=>ys,useFetchImplementation:()=>gs});var fs,hs=/^(?:([\w.+-]+)@)?([\w_-]+(\.[\w_-]+)+)$/,ps=e=>hs.test(e||"");try{fs=fetch}catch(e){}function gs(e){fs=e}async function ys(e,t=""){try{const n=`https://${e}/.well-known/nostr.json?name=${t}`,r=await fs(n,{redirect:"manual"});if(200!==r.status)throw Error("Wrong response code");return(await r.json()).names}catch(e){return{}}}async function vs(e){const t=e.match(hs);if(!t)return null;const[,n="_",r]=t;try{const e=`https://${r}/.well-known/nostr.json?name=${n}`,t=await fs(e,{redirect:"manual"});if(200!==t.status)throw Error("Wrong response code");const o=await t.json(),i=o.names[n];return i?{pubkey:i,relays:o.relays?.[i]}:null}catch(e){return null}}async function ms(e,t){const n=await vs(t);return!!n&&n.pubkey===e}function ws(e){const t={reply:void 0,root:void 0,mentions:[],profiles:[],quotes:[]};let n,r;for(let o=e.tags.length-1;o>=0;o--){const i=e.tags[o];if("e"===i[0]&&i[1]){const[e,o,s,a,l]=i,c={id:o,relays:s?[s]:[],author:l};if("root"===a){t.root=c;continue}if("reply"===a){t.reply=c;continue}if("mention"===a){t.mentions.push(c);continue}n?r=c:n=c,t.mentions.push(c);continue}if("q"===i[0]&&i[1]){const[e,n,r]=i;t.quotes.push({id:n,relays:r?[r]:[]})}"p"===i[0]&&i[1]&&t.profiles.push({pubkey:i[1],relays:i[2]?[i[2]]:[]})}return t.root||(t.root=r||n||t.reply),t.reply||(t.reply=n||t.root),[t.reply,t.root].forEach(e=>{if(!e)return;let n=t.mentions.indexOf(e);if(-1!==n&&t.mentions.splice(n,1),e.author){let n=t.profiles.find(t=>t.pubkey===e.author);n&&n.relays&&(e.relays||(e.relays=[]),n.relays.forEach(t=>{-1===e.relays?.indexOf(t)&&e.relays.push(t)}),n.relays=e.relays)}}),t.mentions.forEach(e=>{if(e.author){let n=t.profiles.find(t=>t.pubkey===e.author);n&&n.relays&&(e.relays||(e.relays=[]),n.relays.forEach(t=>{-1===e.relays.indexOf(t)&&e.relays.push(t)}),n.relays=e.relays)}}),t}Kr({},{parse:()=>ws});Kr({},{fetchRelayInformation:()=>Es,useFetchImplementation:()=>bs});try{fetch}catch{}function bs(e){0}async function Es(e){return await(await fetch(e.replace("ws://","http://").replace("wss://","https://"),{headers:{Accept:"application/nostr+json"}})).json()}function ks(e){let t=0;for(let n=0;n<64;n+=8){const r=parseInt(e.substring(n,n+8),16);if(0!==r){t+=Math.clz32(r);break}t+=32}return t}function xs(e,t){let n=0;const r=e,o=["nonce",n.toString(),t.toString()];for(r.tags.push(o);;){const e=Math.floor((new Date).getTime()/1e3);if(e!==r.created_at&&(n=0,r.created_at=e),o[1]=(++n).toString(),r.id=Ss(r),ks(r.id)>=t)break}return r}function Ss(e){return Vt(fn(Zr.encode(JSON.stringify([0,e.pubkey,e.created_at,e.kind,e.tags,e.content]))))}Kr({},{fastEventHash:()=>Ss,getPow:()=>ks,minePow:()=>xs});Kr({},{unwrapEvent:()=>Gs,unwrapManyEvents:()=>Qs,wrapEvent:()=>Js,wrapManyEvents:()=>Zs});Kr({},{createRumor:()=>Ds,createSeal:()=>qs,createWrap:()=>Hs,unwrapEvent:()=>Ws,unwrapManyEvents:()=>Vs,wrapEvent:()=>zs,wrapManyEvents:()=>Ks});var Cs={};Kr(Cs,{decrypt:()=>Os,encrypt:()=>Ps,getConversationKey:()=>Ts,v2:()=>Bs});var As=1,$s=65535;function Ts(e,t){const n=Ct.getSharedSecret(e,"02"+t).subarray(1,33);return function(e,t,n){return nn.hash(e),void 0===n&&(n=new Uint8Array(e.outputLen)),Dr(e,Zt(n),Zt(t))}(fn,n,"nip44-v2")}function Is(e,t){const n=function(e,t,n,r=32){if(nn.hash(e),nn.number(r),r>255*e.outputLen)throw new Error("Length should be <= 255*HashLen");const o=Math.ceil(r/e.outputLen);void 0===n&&(n=Hr);const i=new Uint8Array(o*e.outputLen),s=Dr.create(e,t),a=s._cloneInto(),l=new Uint8Array(s.outputLen);for(let t=0;t<o;t++)qr[0]=t+1,a.update(0===t?Hr:l).update(n).update(qr).digestInto(l),i.set(l,e.outputLen*t),s._cloneInto(a);return s.destroy(),a.destroy(),l.fill(0),qr.fill(0),i.slice(0,r)}(fn,e,t,76);return{chacha_key:n.subarray(0,32),chacha_nonce:n.subarray(32,44),hmac_key:n.subarray(44,76)}}function Rs(e){if(!Number.isSafeInteger(e)||e<1)throw new Error("expected positive integer");if(e<=32)return 32;const t=1<<Math.floor(Math.log2(e-1))+1,n=t<=256?32:t/8;return n*(Math.floor((e-1)/n)+1)}function _s(e){const t=Zr.encode(e),n=t.length;return Gt(function(e){if(!Number.isSafeInteger(e)||e<As||e>$s)throw new Error("invalid plaintext size: must be between 1 and 65535 bytes");const t=new Uint8Array(2);return new DataView(t.buffer).setUint16(0,e,!1),t}(n),t,new Uint8Array(Rs(n)-n))}function Ls(e,t,n){if(32!==n.length)throw new Error("AAD associated data must be 32 bytes");const r=Gt(n,t);return Dr(fn,e,r)}function Ps(e,t,n=Xt(32)){const{chacha_key:r,chacha_nonce:o,hmac_key:i}=Is(t,n),s=_s(e),a=Ur(r,o,s),l=Ls(i,a,n);return Kn.encode(Gt(new Uint8Array([2]),n,a,l))}function Os(e,t){const{nonce:n,ciphertext:r,mac:o}=function(e){if("string"!=typeof e)throw new Error("payload must be a valid string");const t=e.length;if(t<132||t>87472)throw new Error("invalid payload length: "+t);if("#"===e[0])throw new Error("unknown encryption version");let n;try{n=Kn.decode(e)}catch(e){throw new Error("invalid base64: "+e.message)}const r=n.length;if(r<99||r>65603)throw new Error("invalid data length: "+r);const o=n[0];if(2!==o)throw new Error("unknown encryption version "+o);return{nonce:n.subarray(1,33),ciphertext:n.subarray(33,-32),mac:n.subarray(-32)}}(e),{chacha_key:i,chacha_nonce:s,hmac_key:a}=Is(t,n);if(!function(e,t){if(e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return 0===n}(Ls(a,r,n),o))throw new Error("invalid MAC");return function(e){const t=new DataView(e.buffer).getUint16(0),n=e.subarray(2,2+t);if(t<As||t>$s||n.length!==t||e.length!==2+Rs(t))throw new Error("invalid padding");return Jr.decode(n)}(Ur(i,s,r))}var Bs={utils:{getConversationKey:Ts,calcPaddedLen:Rs},encrypt:Ps,decrypt:Os},js=()=>Math.round(Date.now()/1e3),Ns=()=>Math.round(js()-172800*Math.random()),Ms=(e,t)=>Ts(e,t),Us=(e,t,n)=>Ps(JSON.stringify(e),Ms(t,n)),Fs=(e,t)=>JSON.parse(Os(e.content,Ms(t,e.pubkey)));function Ds(e,t){const n={created_at:js(),content:"",tags:[],...e,pubkey:io(t)};return n.id=no(n),n}function qs(e,t,n){return so({kind:Co,content:Us(e,t,n),created_at:Ns(),tags:[]},t)}function Hs(e,t){const n=oo();return so({kind:Oo,content:Us(e,n,t),created_at:Ns(),tags:[["p",t]]},n)}function zs(e,t,n){return Hs(qs(Ds(e,t),t,n),n)}function Ks(e,t,n){if(!n||0===n.length)throw new Error("At least one recipient is required.");const r=io(t),o=[zs(e,t,r)];return n.forEach(n=>{o.push(zs(e,t,n))}),o}function Ws(e,t){const n=Fs(e,t);return Fs(n,t)}function Vs(e,t){let n=[];return e.forEach(e=>{n.push(Ws(e,t))}),n.sort((e,t)=>e.created_at-t.created_at),n}function Js(e,t,n,r,o){const i=function(e,t,n,r){const o={created_at:Math.ceil(Date.now()/1e3),kind:Ao,tags:[],content:t};return(Array.isArray(e)?e:[e]).forEach(({publicKey:e,relayUrl:t})=>{o.tags.push(t?["p",e,t]:["p",e])}),r&&o.tags.push(["e",r.eventId,r.relayUrl||"","reply"]),n&&o.tags.push(["subject",n]),o}(t,n,r,o);return zs(i,e,t.publicKey)}function Zs(e,t,n,r,o){if(!t||0===t.length)throw new Error("At least one recipient is required.");return[{publicKey:io(e)},...t].map(t=>Js(e,t,n,r,o))}var Gs=Ws,Qs=Vs;function Ys(e,t,n,r){let o;const i=[...e.tags??[],["e",t.id,n],["p",t.pubkey]];return t.kind===vo?o=ko:(o=$o,i.push(["k",String(t.kind)])),so({kind:o,tags:i,content:""===e.content||t.tags?.find(e=>"-"===e[0])?"":JSON.stringify(t),created_at:e.created_at},r)}function Xs(e){if(![ko,$o].includes(e.kind))return;let t,n;for(let r=e.tags.length-1;r>=0&&(void 0===t||void 0===n);r--){const o=e.tags[r];o.length>=2&&("e"===o[0]&&void 0===t?t=o:"p"===o[0]&&void 0===n&&(n=o))}return void 0!==t?{id:t[1],relays:[t[2],n?.[2]].filter(e=>"string"==typeof e),author:n?.[1]}:void 0}function ea(e,{skipVerification:t}={}){const n=Xs(e);if(void 0===n||""===e.content)return;let r;try{r=JSON.parse(e.content)}catch(e){return}return r.id===n.id&&(t||ao(r))?r:void 0}Kr({},{finishRepostEvent:()=>Ys,getRepostedEvent:()=>ea,getRepostedEventPointer:()=>Xs});Kr({},{NOSTR_URI_REGEX:()=>ta,parse:()=>ra,test:()=>na});var ta=new RegExp(`nostr:(${Zi.source})`);function na(e){return"string"==typeof e&&new RegExp(`^${ta.source}$`).test(e)}function ra(e){const t=e.match(new RegExp(`^${ta.source}$`));if(!t)throw new Error(`Invalid Nostr URI: ${e}`);return{uri:t[0],value:t[1],decoded:Qi(t[1])}}function oa(e,t,n){const r=t.tags.filter(e=>e.length>=2&&("e"===e[0]||"p"===e[0]));return so({...e,kind:xo,tags:[...e.tags??[],...r,["e",t.id],["p",t.pubkey]],content:e.content??"+"},n)}function ia(e){if(e.kind!==xo)return;let t,n;for(let r=e.tags.length-1;r>=0&&(void 0===t||void 0===n);r--){const o=e.tags[r];o.length>=2&&("e"===o[0]&&void 0===t?t=o:"p"===o[0]&&void 0===n&&(n=o))}return void 0!==t&&void 0!==n?{id:t[1],relays:[t[2],n[2]].filter(e=>void 0!==e),author:n[1]}:void 0}Kr({},{finishReactionEvent:()=>oa,getReactedEventPointer:()=>ia});Kr({},{parse:()=>la});var sa=/\W/m,aa=/\W |\W$|$|,| /m;function*la(e){const t=e.length;let n=0,r=0;for(;r<t;){let o=e.indexOf(":",r);if(-1===o)break;if("nostr"===e.substring(o-5,o)){const i=e.substring(o+60).match(sa),s=i?o+60+i.index:t;try{let t,{data:i,type:a}=Qi(e.substring(o+1,s));switch(a){case"npub":t={pubkey:i};break;case"nsec":case"note":r=s+1;continue;default:t=i}n!==o-5&&(yield{type:"text",text:e.substring(n,o-5)}),yield{type:"reference",pointer:t},r=s,n=r;continue}catch(e){r=o+1;continue}}else if("https"===e.substring(o-5,o)||"http"===e.substring(o-4,o)){const i=e.substring(o+4).match(aa),s=i?o+4+i.index:t,a="s"===e[o-1]?5:4;try{let t=new URL(e.substring(o-a,s));if(-1===t.hostname.indexOf("."))throw new Error("invalid url");if(n!==o-a&&(yield{type:"text",text:e.substring(n,o-a)}),/\.(png|jpe?g|gif|webp)$/i.test(t.pathname)){yield{type:"image",url:t.toString()},r=s,n=r;continue}if(/\.(mp4|avi|webm|mkv)$/i.test(t.pathname)){yield{type:"video",url:t.toString()},r=s,n=r;continue}if(/\.(mp3|aac|ogg|opus)$/i.test(t.pathname)){yield{type:"audio",url:t.toString()},r=s,n=r;continue}yield{type:"url",url:t.toString()},r=s,n=r;continue}catch(e){r=s+1;continue}}else{if("wss"!==e.substring(o-3,o)&&"ws"!==e.substring(o-2,o)){r=o+1;continue}{const i=e.substring(o+4).match(aa),s=i?o+4+i.index:t,a="s"===e[o-1]?3:2;try{let t=new URL(e.substring(o-a,s));if(-1===t.hostname.indexOf("."))throw new Error("invalid ws url");n!==o-a&&(yield{type:"text",text:e.substring(n,o-a)}),yield{type:"relay",url:t.toString()},r=s,n=r;continue}catch(e){r=s+1;continue}}}}n!==t&&(yield{type:"text",text:e.substring(n)})}Kr({},{channelCreateEvent:()=>ca,channelHideMessageEvent:()=>fa,channelMessageEvent:()=>da,channelMetadataEvent:()=>ua,channelMuteUserEvent:()=>ha});var ca=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return so({kind:To,tags:[...e.tags??[]],content:n,created_at:e.created_at},t)},ua=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return so({kind:Io,tags:[["e",e.channel_create_event_id],...e.tags??[]],content:n,created_at:e.created_at},t)},da=(e,t)=>{const n=[["e",e.channel_create_event_id,e.relay_url,"root"]];return e.reply_to_channel_message_event_id&&n.push(["e",e.reply_to_channel_message_event_id,e.relay_url,"reply"]),so({kind:Ro,tags:[...n,...e.tags??[]],content:e.content,created_at:e.created_at},t)},fa=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return so({kind:_o,tags:[["e",e.channel_message_event_id],...e.tags??[]],content:n,created_at:e.created_at},t)},ha=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return so({kind:Lo,tags:[["p",e.pubkey_to_mute],...e.tags??[]],content:n,created_at:e.created_at},t)};Kr({},{EMOJI_SHORTCODE_REGEX:()=>pa,matchAll:()=>ya,regex:()=>ga,replaceAll:()=>va});var pa=/:(\w+):/,ga=()=>new RegExp(`\\B${pa.source}\\B`,"g");function*ya(e){const t=e.matchAll(ga());for(const e of t)try{const[t,n]=e;yield{shortcode:t,name:n,start:e.index,end:e.index+t.length}}catch(e){}}function va(e,t){return e.replaceAll(ga(),(e,n)=>t({shortcode:e,name:n}))}var ma;Kr({},{useFetchImplementation:()=>wa,validateGithub:()=>ba});try{ma=fetch}catch{}function wa(e){ma=e}async function ba(e,t,n){try{return await(await ma(`https://gist.github.com/${t}/${n}/raw`)).text()===`Verifying that I control the following Nostr public key: ${e}`}catch(e){return!1}}function Ea(e){const{host:t,pathname:n,searchParams:r}=new URL(e),o=n||t,i=r.get("relay"),s=r.get("secret");if(!o||!i||!s)throw new Error("invalid connection string");return{pubkey:o,relay:i,secret:s}}async function ka(e,t,n){const r={method:"pay_invoice",params:{invoice:n}},o=cs(t,e,JSON.stringify(r)),i={kind:ui,created_at:Math.round(Date.now()/1e3),content:o,tags:[["p",e]]};return so(i,t)}Kr({},{makeNwcRequestEvent:()=>ka,parseConnectionString:()=>Ea});function xa(e){return e=(e=e.trim().toLowerCase()).normalize("NFKC"),Array.from(e).map(e=>/\p{Letter}/u.test(e)||/\p{Number}/u.test(e)?e:"-").join("")}Kr({},{normalizeIdentifier:()=>xa});var Sa;Kr({},{getSatoshisAmountFromBolt11:()=>Ra,getZapEndpoint:()=>Aa,makeZapReceipt:()=>Ia,makeZapRequest:()=>$a,useFetchImplementation:()=>Ca,validateZapRequest:()=>Ta});try{Sa=fetch}catch{}function Ca(e){Sa=e}async function Aa(e){try{let t="",{lud06:n,lud16:r}=JSON.parse(e.content);if(n){let{words:e}=nr.decode(n,1e3),r=nr.fromWords(e);t=Jr.decode(r)}else{if(!r)return null;{let[e,n]=r.split("@");t=new URL(`/.well-known/lnurlp/${e}`,`https://${n}`).toString()}}let o=await Sa(t),i=await o.json();if(i.allowsNostr&&i.nostrPubkey)return i.callback}catch(e){}return null}function $a(e){let t={kind:9734,created_at:Math.round(Date.now()/1e3),content:e.comment||"",tags:[["p","pubkey"in e?e.pubkey:e.event.pubkey],["amount",e.amount.toString()],["relays",...e.relays]]};if("event"in e){if(t.tags.push(["e",e.event.id]),uo(e.event.kind)){const n=["a",`${e.event.kind}:${e.event.pubkey}:`];t.tags.push(n)}else if(ho(e.event.kind)){let n=e.event.tags.find(([e,t])=>"d"===e&&t);if(!n)throw new Error("d tag not found or is empty");const r=["a",`${e.event.kind}:${e.event.pubkey}:${n[1]}`];t.tags.push(r)}t.tags.push(["k",e.event.kind.toString()])}return t}function Ta(e){let t;try{t=JSON.parse(e)}catch(e){return"Invalid zap request JSON."}if(!Vr(t))return"Zap request is not a valid Nostr event.";if(!ao(t))return"Invalid signature on zap request.";let n=t.tags.find(([e,t])=>"p"===e&&t);if(!n)return"Zap request doesn't have a 'p' tag.";if(!n[1].match(/^[a-f0-9]{64}$/))return"Zap request 'p' tag is not valid hex.";let r=t.tags.find(([e,t])=>"e"===e&&t);return r&&!r[1].match(/^[a-f0-9]{64}$/)?"Zap request 'e' tag is not valid hex.":t.tags.find(([e,t])=>"relays"===e&&t)?null:"Zap request doesn't have a 'relays' tag."}function Ia({zapRequest:e,preimage:t,bolt11:n,paidAt:r}){let o=JSON.parse(e),i=o.tags.filter(([e])=>"e"===e||"p"===e||"a"===e),s={kind:9735,created_at:Math.round(r.getTime()/1e3),content:"",tags:[...i,["P",o.pubkey],["bolt11",n],["description",e]]};return t&&s.tags.push(["preimage",t]),s}function Ra(e){if(e.length<50)return 0;const t=(e=e.substring(0,50)).lastIndexOf("1");if(-1===t)return 0;const n=e.substring(0,t);if(!n.startsWith("lnbc"))return 0;const r=n.substring(4);if(r.length<1)return 0;const o=r[r.length-1],i=o.charCodeAt(0)-"0".charCodeAt(0),s=i>=0&&i<=9;let a=r.length-1;if(s&&a++,a<1)return 0;const l=parseInt(r.substring(0,a));switch(o){case"m":return 1e5*l;case"u":return 100*l;case"n":return l/10;case"p":return l/1e4;default:return 1e8*l}}Kr({},{getToken:()=>La,hashPayload:()=>Ua,unpackEventFromToken:()=>Oa,validateEvent:()=>Da,validateEventKind:()=>ja,validateEventMethodTag:()=>Ma,validateEventPayloadTag:()=>Fa,validateEventTimestamp:()=>Ba,validateEventUrlTag:()=>Na,validateToken:()=>Pa});var _a="Nostr ";async function La(e,t,n,r=!1,o){const i={kind:hi,tags:[["u",e],["method",t]],created_at:Math.round((new Date).getTime()/1e3),content:""};o&&i.tags.push(["payload",Ua(o)]);const s=await n(i);return(r?_a:"")+Kn.encode(Zr.encode(JSON.stringify(s)))}async function Pa(e,t,n){const r=await Oa(e).catch(e=>{throw e});return await Da(r,t,n).catch(e=>{throw e})}async function Oa(e){if(!e)throw new Error("Missing token");e=e.replace(_a,"");const t=Jr.decode(Kn.decode(e));if(!t||0===t.length||!t.startsWith("{"))throw new Error("Invalid token");return JSON.parse(t)}function Ba(e){return!!e.created_at&&Math.round((new Date).getTime()/1e3)-e.created_at<60}function ja(e){return e.kind===hi}function Na(e,t){const n=e.tags.find(e=>"u"===e[0]);return!!n&&(n.length>0&&n[1]===t)}function Ma(e,t){const n=e.tags.find(e=>"method"===e[0]);return!!n&&(n.length>0&&n[1].toLowerCase()===t.toLowerCase())}function Ua(e){return Vt(fn(Zr.encode(JSON.stringify(e))))}function Fa(e,t){const n=e.tags.find(e=>"payload"===e[0]);if(!n)return!1;const r=Ua(t);return n.length>0&&n[1]===r}async function Da(e,t,n,r){if(!ao(e))throw new Error("Invalid nostr event, signature invalid");if(!ja(e))throw new Error("Invalid nostr event, kind invalid");if(!Ba(e))throw new Error("Invalid nostr event, created_at timestamp invalid");if(!Na(e,t))throw new Error("Invalid nostr event, url tag invalid");if(!Ma(e,n))throw new Error("Invalid nostr event, method tag invalid");if(Boolean(r)&&"object"==typeof r&&Object.keys(r).length>0&&!Fa(e,r))throw new Error("Invalid nostr event, payload tag does not match request body hash");return!0}function qa(e){return 3e4<=e&&e<4e4}var Ha=function(e,t){return Ha=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},Ha(e,t)};function za(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}Ha(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function Ka(e,t,n,r){return new(n||(n=Promise))(function(o,i){function s(e){try{l(r.next(e))}catch(e){i(e)}}function a(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(s,a)}l((r=r.apply(e,t||[])).next())})}function Wa(e,t){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},s=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return s.next=a(0),s.throw=a(1),s.return=a(2),"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(a){return function(l){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;s&&(s=0,a[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,l])}}}function Va(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Ja(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)s.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return s}function Za(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}function Ga(e){return this instanceof Ga?(this.v=e,this):new Ga(e)}function Qa(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),i=[];return r=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",function(e){return function(t){return Promise.resolve(t).then(e,c)}}),r[Symbol.asyncIterator]=function(){return this},r;function s(e,t){o[e]&&(r[e]=function(t){return new Promise(function(n,r){i.push([e,t,n,r])>1||a(e,t)})},t&&(r[e]=t(r[e])))}function a(e,t){try{(n=o[e](t)).value instanceof Ga?Promise.resolve(n.value.v).then(l,c):u(i[0][2],n)}catch(e){u(i[0][3],e)}var n}function l(e){a("next",e)}function c(e){a("throw",e)}function u(e,t){e(t),i.shift(),i.length&&a(i[0][0],i[0][1])}}function Ya(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=Va(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,o){(function(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)})(r,o,(t=e[n](t)).done,t.value)})}}}function Xa(e){return"function"==typeof e}function el(e){var t=e(function(e){Error.call(e),e.stack=(new Error).stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}"function"==typeof SuppressedError&&SuppressedError;var tl=el(function(e){return function(t){e(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map(function(e,t){return t+1+") "+e.toString()}).join("\n "):"",this.name="UnsubscriptionError",this.errors=t}});function nl(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var rl=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var e,t,n,r,o;if(!this.closed){this.closed=!0;var i=this._parentage;if(i)if(this._parentage=null,Array.isArray(i))try{for(var s=Va(i),a=s.next();!a.done;a=s.next()){a.value.remove(this)}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=s.return)&&t.call(s)}finally{if(e)throw e.error}}else i.remove(this);var l=this.initialTeardown;if(Xa(l))try{l()}catch(e){o=e instanceof tl?e.errors:[e]}var c=this._finalizers;if(c){this._finalizers=null;try{for(var u=Va(c),d=u.next();!d.done;d=u.next()){var f=d.value;try{sl(f)}catch(e){o=null!=o?o:[],e instanceof tl?o=Za(Za([],Ja(o)),Ja(e.errors)):o.push(e)}}}catch(e){n={error:e}}finally{try{d&&!d.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}}if(o)throw new tl(o)}},e.prototype.add=function(t){var n;if(t&&t!==this)if(this.closed)sl(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&nl(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&nl(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}(),ol=rl.EMPTY;function il(e){return e instanceof rl||e&&"closed"in e&&Xa(e.remove)&&Xa(e.add)&&Xa(e.unsubscribe)}function sl(e){Xa(e)?e():e.unsubscribe()}var al={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},ll={setTimeout:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=ll.delegate;return(null==o?void 0:o.setTimeout)?o.setTimeout.apply(o,Za([e,t],Ja(n))):setTimeout.apply(void 0,Za([e,t],Ja(n)))},clearTimeout:function(e){var t=ll.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function cl(e){ll.setTimeout(function(){throw e})}function ul(){}function dl(e){e()}var fl=function(e){function t(t){var n=e.call(this)||this;return n.isStopped=!1,t?(n.destination=t,il(t)&&t.add(n)):n.destination=ml,n}return za(t,e),t.create=function(e,t,n){return new yl(e,t,n)},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(rl),hl=Function.prototype.bind;function pl(e,t){return hl.call(e,t)}var gl=function(){function e(e){this.partialObserver=e}return e.prototype.next=function(e){var t=this.partialObserver;if(t.next)try{t.next(e)}catch(e){vl(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){vl(e)}else vl(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){vl(e)}},e}(),yl=function(e){function t(t,n,r){var o,i,s=e.call(this)||this;Xa(t)||!t?o={next:null!=t?t:void 0,error:null!=n?n:void 0,complete:null!=r?r:void 0}:s&&al.useDeprecatedNextContext?((i=Object.create(t)).unsubscribe=function(){return s.unsubscribe()},o={next:t.next&&pl(t.next,i),error:t.error&&pl(t.error,i),complete:t.complete&&pl(t.complete,i)}):o=t;return s.destination=new gl(o),s}return za(t,e),t}(fl);function vl(e){cl(e)}var ml={closed:!0,next:ul,error:function(e){throw e},complete:ul},wl="function"==typeof Symbol&&Symbol.observable||"@@observable";function bl(e){return e}var El=function(){function e(e){e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r,o=this,i=(r=e)&&r instanceof fl||function(e){return e&&Xa(e.next)&&Xa(e.error)&&Xa(e.complete)}(r)&&il(r)?e:new yl(e,t,n);return dl(function(){var e=o,t=e.operator,n=e.source;i.add(t?t.call(i,n):n?o._subscribe(i):o._trySubscribe(i))}),i},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.error(t)}},e.prototype.forEach=function(e,t){var n=this;return new(t=kl(t))(function(t,r){var o=new yl({next:function(t){try{e(t)}catch(e){r(e),o.unsubscribe()}},error:r,complete:t});n.subscribe(o)})},e.prototype._subscribe=function(e){var t;return null===(t=this.source)||void 0===t?void 0:t.subscribe(e)},e.prototype[wl]=function(){return this},e.prototype.pipe=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return(0===(e=t).length?bl:1===e.length?e[0]:function(t){return e.reduce(function(e,t){return t(e)},t)})(this)},e.prototype.toPromise=function(e){var t=this;return new(e=kl(e))(function(e,n){var r;t.subscribe(function(e){return r=e},function(e){return n(e)},function(){return e(r)})})},e.create=function(t){return new e(t)},e}();function kl(e){var t;return null!==(t=null!=e?e:al.Promise)&&void 0!==t?t:Promise}function xl(e){return function(t){if(function(e){return Xa(null==e?void 0:e.lift)}(t))return t.lift(function(t){try{return e(t,this)}catch(e){this.error(e)}});throw new TypeError("Unable to lift unknown Observable type")}}function Sl(e,t,n,r,o){return new Cl(e,t,n,r,o)}var Cl=function(e){function t(t,n,r,o,i,s){var a=e.call(this,t)||this;return a.onFinalize=i,a.shouldUnsubscribe=s,a._next=n?function(e){try{n(e)}catch(e){t.error(e)}}:e.prototype._next,a._error=o?function(e){try{o(e)}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._error,a._complete=r?function(){try{r()}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._complete,a}return za(t,e),t.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;e.prototype.unsubscribe.call(this),!n&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}},t}(fl),Al=el(function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),$l=function(e){function t(){var t=e.call(this)||this;return t.closed=!1,t.currentObservers=null,t.observers=[],t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return za(t,e),t.prototype.lift=function(e){var t=new Tl(this,this);return t.operator=e,t},t.prototype._throwIfClosed=function(){if(this.closed)throw new Al},t.prototype.next=function(e){var t=this;dl(function(){var n,r;if(t._throwIfClosed(),!t.isStopped){t.currentObservers||(t.currentObservers=Array.from(t.observers));try{for(var o=Va(t.currentObservers),i=o.next();!i.done;i=o.next()){i.value.next(e)}}catch(e){n={error:e}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}}})},t.prototype.error=function(e){var t=this;dl(function(){if(t._throwIfClosed(),!t.isStopped){t.hasError=t.isStopped=!0,t.thrownError=e;for(var n=t.observers;n.length;)n.shift().error(e)}})},t.prototype.complete=function(){var e=this;dl(function(){if(e._throwIfClosed(),!e.isStopped){e.isStopped=!0;for(var t=e.observers;t.length;)t.shift().complete()}})},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(t){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,t)},t.prototype._subscribe=function(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)},t.prototype._innerSubscribe=function(e){var t=this,n=this,r=n.hasError,o=n.isStopped,i=n.observers;return r||o?ol:(this.currentObservers=null,i.push(e),new rl(function(){t.currentObservers=null,nl(i,e)}))},t.prototype._checkFinalizedStatuses=function(e){var t=this,n=t.hasError,r=t.thrownError,o=t.isStopped;n?e.error(r):o&&e.complete()},t.prototype.asObservable=function(){var e=new El;return e.source=this,e},t.create=function(e,t){return new Tl(e,t)},t}(El),Tl=function(e){function t(t,n){var r=e.call(this)||this;return r.destination=t,r.source=n,r}return za(t,e),t.prototype.next=function(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===n||n.call(t,e)},t.prototype.error=function(e){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===n||n.call(t,e)},t.prototype.complete=function(){var e,t;null===(t=null===(e=this.destination)||void 0===e?void 0:e.complete)||void 0===t||t.call(e)},t.prototype._subscribe=function(e){var t,n;return null!==(n=null===(t=this.source)||void 0===t?void 0:t.subscribe(e))&&void 0!==n?n:ol},t}($l),Il={now:function(){return(Il.delegate||Date).now()},delegate:void 0},Rl=function(e){function t(t,n,r){void 0===t&&(t=1/0),void 0===n&&(n=1/0),void 0===r&&(r=Il);var o=e.call(this)||this;return o._bufferSize=t,o._windowTime=n,o._timestampProvider=r,o._buffer=[],o._infiniteTimeWindow=!0,o._infiniteTimeWindow=n===1/0,o._bufferSize=Math.max(1,t),o._windowTime=Math.max(1,n),o}return za(t,e),t.prototype.next=function(t){var n=this,r=n.isStopped,o=n._buffer,i=n._infiniteTimeWindow,s=n._timestampProvider,a=n._windowTime;r||(o.push(t),!i&&o.push(s.now()+a)),this._trimBuffer(),e.prototype.next.call(this,t)},t.prototype._subscribe=function(e){this._throwIfClosed(),this._trimBuffer();for(var t=this._innerSubscribe(e),n=this._infiniteTimeWindow,r=this._buffer.slice(),o=0;o<r.length&&!e.closed;o+=n?1:2)e.next(r[o]);return this._checkFinalizedStatuses(e),t},t.prototype._trimBuffer=function(){var e=this,t=e._bufferSize,n=e._timestampProvider,r=e._buffer,o=e._infiniteTimeWindow,i=(o?1:2)*t;if(t<1/0&&i<r.length&&r.splice(0,r.length-i),!o){for(var s=n.now(),a=0,l=1;l<r.length&&r[l]<=s;l+=2)a=l;a&&r.splice(0,a+1)}},t}($l),_l=function(e){function t(t,n){return e.call(this)||this}return za(t,e),t.prototype.schedule=function(e,t){return this},t}(rl),Ll={setInterval:function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var o=Ll.delegate;return(null==o?void 0:o.setInterval)?o.setInterval.apply(o,Za([e,t],Ja(n))):setInterval.apply(void 0,Za([e,t],Ja(n)))},clearInterval:function(e){var t=Ll.delegate;return((null==t?void 0:t.clearInterval)||clearInterval)(e)},delegate:void 0},Pl=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r.pending=!1,r}return za(t,e),t.prototype.schedule=function(e,t){var n;if(void 0===t&&(t=0),this.closed)return this;this.state=e;var r=this.id,o=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(o,r,t)),this.pending=!0,this.delay=t,this.id=null!==(n=this.id)&&void 0!==n?n:this.requestAsyncId(o,this.id,t),this},t.prototype.requestAsyncId=function(e,t,n){return void 0===n&&(n=0),Ll.setInterval(e.flush.bind(e,this),n)},t.prototype.recycleAsyncId=function(e,t,n){if(void 0===n&&(n=0),null!=n&&this.delay===n&&!1===this.pending)return t;null!=t&&Ll.clearInterval(t)},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var n,r=!1;try{this.work(e)}catch(e){r=!0,n=e||new Error("Scheduled action threw falsy error")}if(r)return this.unsubscribe(),n},t.prototype.unsubscribe=function(){if(!this.closed){var t=this.id,n=this.scheduler,r=n.actions;this.work=this.state=this.scheduler=null,this.pending=!1,nl(r,this),null!=t&&(this.id=this.recycleAsyncId(n,t,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(_l),Ol=function(){function e(t,n){void 0===n&&(n=e.now),this.schedulerActionCtor=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.schedulerActionCtor(this,e).schedule(n,t)},e.now=Il.now,e}(),Bl=function(e){function t(t,n){void 0===n&&(n=Ol.now);var r=e.call(this,t,n)||this;return r.actions=[],r._active=!1,r}return za(t,e),t.prototype.flush=function(e){var t=this.actions;if(this._active)t.push(e);else{var n;this._active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this._active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}},t}(Ol),jl=new Bl(Pl),Nl=new El(function(e){return e.complete()});function Ml(e){return e&&Xa(e.schedule)}function Ul(e){return e[e.length-1]}function Fl(e){return Ml(Ul(e))?e.pop():void 0}function Dl(e,t){return"number"==typeof Ul(e)?e.pop():t}var ql=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function Hl(e){return Xa(null==e?void 0:e.then)}function zl(e){return Xa(e[wl])}function Kl(e){return Symbol.asyncIterator&&Xa(null==e?void 0:e[Symbol.asyncIterator])}function Wl(e){return new TypeError("You provided "+(null!==e&&"object"==typeof e?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}var Vl="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function Jl(e){return Xa(null==e?void 0:e[Vl])}function Zl(e){return Qa(this,arguments,function(){var t,n,r;return Wa(this,function(o){switch(o.label){case 0:t=e.getReader(),o.label=1;case 1:o.trys.push([1,,9,10]),o.label=2;case 2:return[4,Ga(t.read())];case 3:return n=o.sent(),r=n.value,n.done?[4,Ga(void 0)]:[3,5];case 4:return[2,o.sent()];case 5:return[4,Ga(r)];case 6:return[4,o.sent()];case 7:return o.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}})})}function Gl(e){return Xa(null==e?void 0:e.getReader)}function Ql(e){if(e instanceof El)return e;if(null!=e){if(zl(e))return o=e,new El(function(e){var t=o[wl]();if(Xa(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")});if(ql(e))return r=e,new El(function(e){for(var t=0;t<r.length&&!e.closed;t++)e.next(r[t]);e.complete()});if(Hl(e))return n=e,new El(function(e){n.then(function(t){e.closed||(e.next(t),e.complete())},function(t){return e.error(t)}).then(null,cl)});if(Kl(e))return Yl(e);if(Jl(e))return t=e,new El(function(e){var n,r;try{for(var o=Va(t),i=o.next();!i.done;i=o.next()){var s=i.value;if(e.next(s),e.closed)return}}catch(e){n={error:e}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}e.complete()});if(Gl(e))return Yl(Zl(e))}var t,n,r,o;throw Wl(e)}function Yl(e){return new El(function(t){(function(e,t){var n,r,o,i;return Ka(this,void 0,void 0,function(){var s,a;return Wa(this,function(l){switch(l.label){case 0:l.trys.push([0,5,6,11]),n=Ya(e),l.label=1;case 1:return[4,n.next()];case 2:if((r=l.sent()).done)return[3,4];if(s=r.value,t.next(s),t.closed)return[2];l.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return a=l.sent(),o={error:a},[3,11];case 6:return l.trys.push([6,,9,10]),r&&!r.done&&(i=n.return)?[4,i.call(n)]:[3,8];case 7:l.sent(),l.label=8;case 8:return[3,10];case 9:if(o)throw o.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})})(e,t).catch(function(e){return t.error(e)})})}function Xl(e,t,n,r,o){void 0===r&&(r=0),void 0===o&&(o=!1);var i=t.schedule(function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function ec(e,t){return void 0===t&&(t=0),xl(function(n,r){n.subscribe(Sl(r,function(n){return Xl(r,e,function(){return r.next(n)},t)},function(){return Xl(r,e,function(){return r.complete()},t)},function(n){return Xl(r,e,function(){return r.error(n)},t)}))})}function tc(e,t){return void 0===t&&(t=0),xl(function(n,r){r.add(e.schedule(function(){return n.subscribe(r)},t))})}function nc(e,t){if(!e)throw new Error("Iterable cannot be null");return new El(function(n){Xl(n,t,function(){var r=e[Symbol.asyncIterator]();Xl(n,t,function(){r.next().then(function(e){e.done?n.complete():n.next(e.value)})},0,!0)})})}function rc(e,t){if(null!=e){if(zl(e))return function(e,t){return Ql(e).pipe(tc(t),ec(t))}(e,t);if(ql(e))return function(e,t){return new El(function(n){var r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}(e,t);if(Hl(e))return function(e,t){return Ql(e).pipe(tc(t),ec(t))}(e,t);if(Kl(e))return nc(e,t);if(Jl(e))return function(e,t){return new El(function(n){var r;return Xl(n,t,function(){r=e[Vl](),Xl(n,t,function(){var e,t,o;try{t=(e=r.next()).value,o=e.done}catch(e){return void n.error(e)}o?n.complete():n.next(t)},0,!0)}),function(){return Xa(null==r?void 0:r.return)&&r.return()}})}(e,t);if(Gl(e))return function(e,t){return nc(Zl(e),t)}(e,t)}throw Wl(e)}function oc(e,t){return t?rc(e,t):Ql(e)}function ic(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return oc(e,Fl(e))}function sc(e,t){return xl(function(n,r){var o=0;n.subscribe(Sl(r,function(n){r.next(e.call(t,n,o++))}))})}var ac=Array.isArray;function lc(e){return sc(function(t){return function(e,t){return ac(t)?e.apply(void 0,Za([],Ja(t))):e(t)}(e,t)})}var cc=Array.isArray,uc=Object.getPrototypeOf,dc=Object.prototype,fc=Object.keys;function hc(e){if(1===e.length){var t=e[0];if(cc(t))return{args:t,keys:null};if((r=t)&&"object"==typeof r&&uc(r)===dc){var n=fc(t);return{args:n.map(function(e){return t[e]}),keys:n}}}var r;return{args:e,keys:null}}function pc(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Fl(e),r=function(e){return Xa(Ul(e))?e.pop():void 0}(e),o=hc(e),i=o.args,s=o.keys;if(0===i.length)return oc([],n);var a=new El(function(e,t,n){void 0===n&&(n=bl);return function(r){gc(t,function(){for(var o=e.length,i=new Array(o),s=o,a=o,l=function(o){gc(t,function(){var l=oc(e[o],t),c=!1;l.subscribe(Sl(r,function(e){i[o]=e,c||(c=!0,a--),a||r.next(n(i.slice()))},function(){--s||r.complete()}))},r)},c=0;c<o;c++)l(c)},r)}}(i,n,s?function(e){return function(e,t){return e.reduce(function(e,n,r){return e[n]=t[r],e},{})}(s,e)}:bl));return r?a.pipe(lc(r)):a}function gc(e,t,n){e?Xl(n,e,t):t()}function yc(e,t,n){return void 0===n&&(n=1/0),Xa(t)?yc(function(n,r){return sc(function(e,o){return t(n,e,r,o)})(Ql(e(n,r)))},n):("number"==typeof t&&(n=t),xl(function(t,r){return function(e,t,n,r,o,i,s,a){var l=[],c=0,u=0,d=!1,f=function(){!d||l.length||c||t.complete()},h=function(e){return c<r?p(e):l.push(e)},p=function(e){i&&t.next(e),c++;var a=!1;Ql(n(e,u++)).subscribe(Sl(t,function(e){null==o||o(e),i?h(e):t.next(e)},function(){a=!0},void 0,function(){if(a)try{c--;for(var e=function(){var e=l.shift();s?Xl(t,s,function(){return p(e)}):p(e)};l.length&&c<r;)e();f()}catch(e){t.error(e)}}))};return e.subscribe(Sl(t,h,function(){d=!0,f()})),function(){null==a||a()}}(t,r,e,n)}))}function vc(e){return void 0===e&&(e=1/0),yc(bl,e)}function mc(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return vc(1)(oc(e,Fl(e)))}function wc(e){return new El(function(t){Ql(e()).subscribe(t)})}function bc(e,t,n){void 0===e&&(e=0),void 0===n&&(n=jl);var r=-1;return null!=t&&(Ml(t)?n=t:r=t),new El(function(t){var o,i=(o=e)instanceof Date&&!isNaN(o)?+e-n.now():e;i<0&&(i=0);var s=0;return n.schedule(function(){t.closed||(t.next(s++),0<=r?this.schedule(void 0,r):t.complete())},i)})}function Ec(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Fl(e),r=Dl(e,1/0),o=e;return o.length?1===o.length?Ql(o[0]):vc(r)(oc(o,n)):Nl}function kc(e,t){return xl(function(n,r){var o=0;n.subscribe(Sl(r,function(n){return e.call(t,n,o++)&&r.next(n)}))})}function xc(e){return e<=0?function(){return Nl}:xl(function(t,n){var r=0;t.subscribe(Sl(n,function(t){++r<=e&&(n.next(t),e<=r&&n.complete())}))})}function Sc(e,t){return void 0===t&&(t=bl),e=null!=e?e:Cc,xl(function(n,r){var o,i=!0;n.subscribe(Sl(r,function(n){var s=t(n);!i&&e(o,s)||(i=!1,o=s,r.next(n))}))})}function Cc(e,t){return e===t}function Ac(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){return mc(t,ic.apply(void 0,Za([],Ja(e))))}}function $c(e){return xl(function(t,n){try{t.subscribe(n)}finally{n.add(e)}})}function Tc(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Fl(e),r=Dl(e,1/0);return xl(function(t,o){vc(r)(oc(Za([t],Ja(e)),n)).subscribe(o)})}function Ic(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Tc.apply(void 0,Za([],Ja(e)))}function Rc(e,t){return xl(function(e,t,n,r,o){return function(i,s){var a=n,l=t,c=0;i.subscribe(Sl(s,function(t){var n=c++;l=a?e(l,t,n):(a=!0,t),r&&s.next(l)},o&&function(){a&&s.next(l),s.complete()}))}}(e,t,arguments.length>=2,!0))}function _c(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];if(!0!==t){if(!1!==t){var o=new yl({next:function(){o.unsubscribe(),e()}});return Ql(t.apply(void 0,Za([],Ja(n)))).subscribe(o)}}else e()}function Lc(e,t){return xl(function(n,r){var o=null,i=0,s=!1,a=function(){return s&&!o&&r.complete()};n.subscribe(Sl(r,function(n){null==o||o.unsubscribe();var s=0,l=i++;Ql(e(n,l)).subscribe(o=Sl(r,function(e){return r.next(t?t(n,e,l,s++):e)},function(){o=null,a()}))},function(){s=!0,a()}))})}function Pc(e,t,n){var r=Xa(e)||t||n?{next:e,error:t,complete:n}:e;return r?xl(function(e,t){var n;null===(n=r.subscribe)||void 0===n||n.call(r);var o=!0;e.subscribe(Sl(t,function(e){var n;null===(n=r.next)||void 0===n||n.call(r,e),t.next(e)},function(){var e;o=!1,null===(e=r.complete)||void 0===e||e.call(r),t.complete()},function(e){var n;o=!1,null===(n=r.error)||void 0===n||n.call(r,e),t.error(e)},function(){var e,t;o&&(null===(e=r.unsubscribe)||void 0===e||e.call(r)),null===(t=r.finalize)||void 0===t||t.call(r)}))}):bl}function Oc(e,t){return void 0!==e[0]&&void 0!==e[1]&&(!t||e[0]===t)}function Bc(e){return Oc(e,"e")}function jc(e){return Oc(e,"p")}function Nc(e){return Oc(e,"r")}function Mc(e){return Oc(e,"a")}function Uc(e){return Oc(e,"t")}const Fc=(e,...t)=>t.reduce((e,t)=>{const n=[];for(const r of e)try{const e=t(r);if(void 0===e)continue;n.push(e)}catch(e){}return n},e);function Dc(e,t,n){if(Reflect.has(e,t))return Reflect.get(e,t);{const r=n();return Reflect.set(e,t,r),r}}function qc(e,t){const[n,r]=Hc(e,e=>t.id===e.id?0:t.created_at===e.created_at?-1:e.created_at-t.created_at);return r||e.splice(n,0,t),e}function Hc(e,t){let n=0,r=e.length-1;for(;n<=r;){const o=Math.floor((n+r)/2),i=t(e[o]);if(0===i)return[o,!0];i<0?r=o-1:n=o+1}return[n,!1]}new TextDecoder("utf-8"),new TextEncoder;const zc=Symbol.for("event-store"),Kc=Symbol.for("event-uid"),Wc=Symbol.for("replaceable-address"),Vc=Symbol.for("from-cache"),Jc=Symbol.for("replaceable-identifier");function Zc(e){return function(e){return[0,3].includes(e)||1e4<=e&&e<2e4}(e)||qa(e)}function Gc(e){let t=Reflect.get(e,Kc);return t||(t=Zc(e.kind)?Qc(e):e.id,Reflect.set(e,Kc,t)),t}function Qc(e){if(!Zc(e.kind))throw new Error("Event is not replaceable or addressable");return Dc(e,Wc,()=>{const t=qa(e.kind)?Xc(e):void 0;return Yc(e.kind,e.pubkey,t)})}function Yc(e,t,n){return e+":"+t+":"+(n??"")}function Xc(e){return Dc(e,Jc,()=>e.tags.find(e=>"d"===e[0])?.[1]??"")}function eu(){return Math.round(Date.now()/1e3)}const tu=Symbol("expiration-timestamp");function nu(e){return Dc(e,tu,()=>{const t=e.tags.find(e=>"expiration"===e[0])?.[1];return t?parseInt(t):void 0})}function ru(e){let t=new URL(e);return t.pathname=t.pathname.replace(/\/+/g,"/"),("80"!==t.port||"ws:"!==t.protocol&&"http:"!==t.protocol)&&("443"!==t.port||"wss:"!==t.protocol&&"https:"!==t.protocol)||(t.port=""),"string"==typeof e?t.toString():t}const ou=Symbol.for("seen-relays");function iu(e,t){return e[ou]||(e[ou]=new Set),e[ou].add(t),e[ou]}const su=/^wss?:\/\/([-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}|localhost)\b([-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)$/;function au(e){return e.length>=8&&su.test(e)}function lu(e){return!!e?.toLowerCase()?.match(/^[0-9a-f]{64}$/)}
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const cu=(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)(),uu=48,du=57,fu=65,hu=70,pu=97,gu=102;function yu(e){return e>=uu&&e<=du?e-uu:e>=fu&&e<=hu?e-(fu-10):e>=pu&&e<=gu?e-(pu-10):void 0}function vu(e,t=!1,n=!0){const r=e.split(":"),o=r[0]?parseInt(r[0]):void 0,i=r[1],s=r[2];if(void 0===o){if(n)return null;throw new Error("Missing kind")}if(void 0===i||""===i){if(n)return null;throw new Error("Missing pubkey")}if(t&&void 0===s){if(n)return null;throw new Error("Missing identifier")}return{kind:o,pubkey:i,identifier:s}}function mu(e){if(!e[1])throw new Error("Missing coordinate in tag");const t=vu(e[1],!0,!1);return e[2]&&au(e[2])&&(t.relays=[e[2]]),t}function wu(e){if(!e[1])throw new Error("Missing pubkey in tag");if(!lu(e[1]))throw new Error("Invalid pubkey");const t={pubkey:e[1]};return e[2]&&au(e[2])&&(t.relays=[ru(e[2])]),t}function bu(e){return e.kind+":"+e.pubkey+":"+e.identifier}function Eu(e){if(e instanceof Uint8Array)return e;if(lu(e))return function(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(cu)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(n);for(let t=0,o=0;t<n;t++,o+=2){const n=yu(e.charCodeAt(o)),i=yu(e.charCodeAt(o+1));if(void 0===n||void 0===i){const t=e[o]+e[o+1];throw new Error('hex string expected, got non-hex character "'+t+'" at index '+o)}r[t]=16*n+i}return r}(e);{const t=Wi.decode(e);if("nsec"!==t.type)throw new Error(`Cant get secret key from ${t.type}`);return t.data}}const ku=Symbol.for("encrypted-content"),xu={[lo.EncryptedDirectMessage]:"nip04",[lo.Seal]:"nip44",[lo.GiftWrap]:"nip44"};function Su(e,t){return xu[e]=t,e}const Cu=ku,Au=new Set([Su(lo.DraftLong,"nip04")]);function $u(e,t){return Au.add(Su(e,t)),e}function Tu(e){return function(e){return void 0!==xu[e]}(e)&&Au.has(e)}function Iu(e){return!!Tu(e.kind)&&(function(e){return!0===Reflect.has(e,ku)}(e)&&!0===Reflect.has(e,Cu))}function Ru(e){if(Tu(e.kind))return Iu(e)?e[ku]:function(e){return Reflect.get(e,ku)}(e)}const _u=Symbol.for("hidden-tags"),Lu=new Set([$u(lo.BookmarkList,"nip04"),$u(lo.InterestsList,"nip04"),$u(lo.Mutelist,"nip04"),$u(lo.CommunitiesList,"nip04"),$u(lo.PublicChatsList,"nip04"),$u(lo.SearchRelaysList,"nip04"),$u(10009,"nip04"),$u(lo.Bookmarksets,"nip04"),$u(lo.Relaysets,"nip04"),$u(lo.Followsets,"nip04"),$u(lo.Curationsets,"nip04"),$u(lo.Interestsets,"nip04")]);function Pu(e){return Tu(e)&&Lu.has(e)}function Ou(e){return!!Pu(e.kind)&&(Iu(e)&&Reflect.has(e,"HiddenTagsSymbol"))}function Bu(e){if(!Pu(e.kind))return;if(Ou(e))return e[_u];const t=Ru(e);if(void 0===t)return;const n=JSON.parse(t);if(!Array.isArray(n))throw new Error("Content is not an array of tags");const r=n.filter(e=>Array.isArray(e)).map(e=>e.map(e=>String(e)));return Reflect.set(e,_u,r),r}const ju="abcdefghijklmnopqrstuvwxyz",Nu=new Set((ju+ju.toUpperCase()).split("")),Mu=Symbol.for("indexable-tags");function Uu(e){let t=Reflect.get(e,Mu);if(!t){const n=new Set;for(const t of e.tags)t.length>=2&&1===t[0].length&&Nu.has(t[0])&&n.add(t[0]+":"+t[1]);t=n,Reflect.set(e,Mu,n)}return t}class Fu{first=null;items=Object.create(null);last=null;max;resetTtl;size;ttl;constructor(e=0,t=0,n=!1){this.first=null,this.items=Object.create(null),this.last=null,this.max=e,this.resetTtl=n,this.size=0,this.ttl=t}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(e){if(this.has(e)){const t=this.items[e];delete this.items[e],this.size--,null!==t.prev&&(t.prev.next=t.next),null!==t.next&&(t.next.prev=t.prev),this.first===t&&(this.first=t.next),this.last===t&&(this.last=t.prev)}return this}entries(e=this.keys()){return e.map(e=>[e,this.get(e)])}evict(e=!1){if(e||this.size>0){const e=this.first;delete this.items[e.key],0===--this.size?(this.first=null,this.last=null):(this.first=e.next,this.first.prev=null)}return this}expiresAt(e){let t;return this.has(e)&&(t=this.items[e].expiry),t}get(e){let t;if(this.has(e)){const n=this.items[e];this.ttl>0&&n.expiry<=Date.now()?this.delete(e):(t=n.value,this.set(e,t,!0))}return t}has(e){return e in this.items}keys(){const e=[];let t=this.first;for(;null!==t;)e.push(t.key),t=t.next;return e}set(e,t,n=!1,r=this.resetTtl){let o;if(n||this.has(e)){if(o=this.items[e],o.value=t,!1===n&&r&&(o.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.last!==o){const e=this.last,t=o.next,n=o.prev;this.first===o&&(this.first=o.next),o.next=null,o.prev=this.last,e.next=o,null!==n&&(n.next=t),null!==t&&(t.prev=n)}}else this.max>0&&this.size===this.max&&this.evict(!0),o=this.items[e]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:e,prev:this.last,next:null,value:t},1===++this.size?this.first=o:this.last.next=o;return this.last=o,this}values(e=this.keys()){return e.map(e=>this.get(e))}}function Du(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var qu,Hu,zu={exports:{}};function Ku(){if(Hu)return qu;Hu=1;var e=1e3,t=60*e,n=60*t,r=24*n,o=7*r,i=365.25*r;function s(e,t,n,r){var o=t>=1.5*n;return Math.round(e/n)+" "+r+(o?"s":"")}return qu=function(a,l){l=l||{};var c=typeof a;if("string"===c&&a.length>0)return function(s){if((s=String(s)).length>100)return;var a=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(s);if(!a)return;var l=parseFloat(a[1]);switch((a[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return l*i;case"weeks":case"week":case"w":return l*o;case"days":case"day":case"d":return l*r;case"hours":case"hour":case"hrs":case"hr":case"h":return l*n;case"minutes":case"minute":case"mins":case"min":case"m":return l*t;case"seconds":case"second":case"secs":case"sec":case"s":return l*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return l;default:return}}(a);if("number"===c&&isFinite(a))return l.long?function(o){var i=Math.abs(o);if(i>=r)return s(o,i,r,"day");if(i>=n)return s(o,i,n,"hour");if(i>=t)return s(o,i,t,"minute");if(i>=e)return s(o,i,e,"second");return o+" ms"}(a):function(o){var i=Math.abs(o);if(i>=r)return Math.round(o/r)+"d";if(i>=n)return Math.round(o/n)+"h";if(i>=t)return Math.round(o/t)+"m";if(i>=e)return Math.round(o/e)+"s";return o+"ms"}(a);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(a))}}var Wu=function(e){function t(e){let r,o,i,s=null;function a(...e){if(!a.enabled)return;const n=a,o=Number(new Date),i=o-(r||o);n.diff=i,n.prev=r,n.curr=o,r=o,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let s=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(r,o)=>{if("%%"===r)return"%";s++;const i=t.formatters[o];if("function"==typeof i){const t=e[s];r=i.call(n,t),e.splice(s,1),s--}return r}),t.formatArgs.call(n,e);(n.log||t.log).apply(n,e)}return a.namespace=e,a.useColors=t.useColors(),a.color=t.selectColor(e),a.extend=n,a.destroy=t.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==s?s:(o!==t.namespaces&&(o=t.namespaces,i=t.enabled(e)),i),set:e=>{s=e}}),"function"==typeof t.init&&t.init(a),a}function n(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function r(e,t){let n=0,r=0,o=-1,i=0;for(;n<e.length;)if(r<t.length&&(t[r]===e[n]||"*"===t[r]))"*"===t[r]?(o=r,i=n,r++):(n++,r++);else{if(-1===o)return!1;r=o+1,i++,n=i}for(;r<t.length&&"*"===t[r];)r++;return r===t.length}return t.debug=t,t.default=t,t.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},t.disable=function(){const e=[...t.names,...t.skips.map(e=>"-"+e)].join(",");return t.enable(""),e},t.enable=function(e){t.save(e),t.namespaces=e,t.names=[],t.skips=[];const n=("string"==typeof e?e:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const e of n)"-"===e[0]?t.skips.push(e.slice(1)):t.names.push(e)},t.enabled=function(e){for(const n of t.skips)if(r(e,n))return!1;for(const n of t.names)if(r(e,n))return!0;return!1},t.humanize=Ku(),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach(n=>{t[n]=e[n]}),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t};!function(e,t){t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,o=0;t[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&(r++,"%c"===e&&(o=r))}),t.splice(o,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")||t.storage.getItem("DEBUG")}catch(e){}!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG);return e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=Wu(t);const{formatters:n}=e.exports;n.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}(zu,zu.exports);const Vu=Du(zu.exports)("applesauce");class Ju{log=Vu.extend("EventMemory");kinds=new Map;authors=new Map;tags=new Fu;created_at=[];events=new Fu;replaceable=new Map;get size(){return this.events.size}hasEvent(e){return this.events.has(e)}getEvent(e){return this.events.get(e)}hasReplaceable(e,t,n){const r=this.replaceable.get(Yc(e,t,n));return!!r&&r.length>0}getReplaceable(e,t,n){const r=Yc(e,t,n),o=this.replaceable.get(r);return o?.[0]}getReplaceableHistory(e,t,n){const r=Yc(e,t,n);return this.replaceable.get(r)}getByFilters(e){return Array.from(this.getEventsForFilters(Array.isArray(e)?e:[e]))}getTimeline(e){const t=[],n=this.getByFilters(e);for(const e of n)qc(t,e);return t}add(e){const t=e.id,n=this.events.get(t);if(n)return n;this.events.set(t,e),this.getKindIndex(e.kind).add(e),this.getAuthorsIndex(e.pubkey).add(e);for(const t of Uu(e))this.tags.has(t)&&this.getTagIndex(t).add(e);if(qc(this.created_at,e),Zc(e.kind)){const t=e.tags.find(e=>"d"===e[0])?.[1],n=Yc(e.kind,e.pubkey,t);let r=this.replaceable.get(n);this.replaceable.has(n)||(r=[],this.replaceable.set(n,r)),qc(r,e)}return e}remove(e){let t="string"==typeof e?this.events.get(e):e;if(!t)return!1;const n=t.id;if(!this.events.has(n))return!1;this.getAuthorsIndex(t.pubkey).delete(t),this.getKindIndex(t.kind).delete(t);for(const e of Uu(t))this.tags.has(e)&&this.getTagIndex(e).delete(t);const r=this.created_at.indexOf(t);if(this.created_at.splice(r,1),this.events.delete(n),Zc(t.kind)){const e=t.tags.find(e=>"d"===e[0])?.[1],n=Yc(t.kind,t.pubkey,e),r=this.replaceable.get(n);if(r&&r.includes(t)){const e=r.indexOf(t);r.splice(e,1)}}return this.claims.delete(t),!0}removeByFilters(e){const t=this.getByFilters(e);let n=0;for(const e of t)this.remove(e)&&n++;return n}update(e){}claims=new WeakMap;touch(e){this.events.has(e.id)&&this.events.set(e.id,e)}claim(e,t){this.claims.has(e)||this.claims.set(e,t),this.touch(e)}isClaimed(e){return this.claims.has(e)}removeClaim(e,t){this.claims.get(e)===t&&this.claims.delete(e)}clearClaim(e){this.claims.delete(e)}*unclaimed(){let e=this.events.first;for(;e;){const t=e.value;this.isClaimed(t)||(yield t),e=e.next}return 0}prune(e){let t=0;const n=this.unclaimed();for(const r of n)if(this.remove(r),t++,e&&t>=e)break;return t}getKindIndex(e){return this.kinds.has(e)||this.kinds.set(e,new Set),this.kinds.get(e)}getAuthorsIndex(e){return this.authors.has(e)||this.authors.set(e,new Set),this.authors.get(e)}getTagIndex(e){if(!this.tags.has(e)){const t=new Set,n=Date.now();for(const n of this.events.values())Uu(n).has(e)&&t.add(n);const r=Date.now()-n;r>100&&this.log(`Built index ${e} took ${r}ms`),this.tags.set(e,t)}return this.tags.get(e)}*iterateAuthors(e){for(const t of e){const e=this.authors.get(t);if(e)for(const t of e)yield t}}*iterateTag(e,t){for(const n of t){const t=this.getTagIndex(e+":"+n);if(t)for(const e of t)yield e}}*iterateKinds(e){for(const t of e){const e=this.kinds.get(t);if(e)for(const t of e)yield t}}*iterateTime(e,t){let n=0,r=this.created_at.length-1,o=t?Hc(this.created_at,e=>e.created_at-t):void 0;o&&(n=o[0]);const i=e?Hc(this.created_at,t=>t.created_at-e):void 0;i&&(r=i[0]);for(let e=n;e<r;e++)yield this.created_at[e]}*iterateIds(e){for(const t of e)this.events.has(t)&&(yield this.events.get(t))}getEventsForFilter(e){if(e.search)return new Set;let t=!0,n=new Set;const r=e=>{const r=e instanceof Set?e:new Set(e);if(t)n=r,t=!1;else for(const e of n)r.has(e)||n.delete(e);return n};e.ids&&r(this.iterateIds(e.ids));let o=null;void 0!==e.since&&(o=Array.from(this.iterateTime(e.since,e.until)),r(o));for(const t of Nu){const n=e[`#${t}`];n?.length&&r(this.iterateTag(t,n))}if(e.authors&&r(this.iterateAuthors(e.authors)),e.kinds&&r(this.iterateKinds(e.kinds)),void 0===e.since&&void 0!==e.until&&(o=Array.from(this.iterateTime(e.since,e.until)),r(o)),e.limit&&o){const t=new Set;for(const r of o){if(t.size>=e.limit)break;n.has(r)&&t.add(r)}return t}return n}getEventsForFilters(e){if(0===e.length)return new Set;let t=new Set;for(const n of e){const e=this.getEventsForFilter(n);for(const n of e)t.add(n)}return t}reset(){this.events.clear(),this.kinds.clear(),this.authors.clear(),this.tags.clear(),this.created_at=[],this.replaceable.clear(),this.claims=new WeakMap}}function Zu(e,t){var n,r;if(0===t.length)return e;for(n=0,r=t.length;n<r;n++)e=(e<<5)-e+t.charCodeAt(n),e|=0;return e<0?-2*e:e}function Gu(e,t,n,r){var o,i=Zu(Zu(Zu(e,n),(o=t,Object.prototype.toString.call(o))),typeof t);if(null===t)return Zu(i,"null");if(void 0===t)return Zu(i,"undefined");if("object"==typeof t||"function"==typeof t){if(-1!==r.indexOf(t))return Zu(i,"[Circular]"+n);r.push(t);var s=function(e,t,n){return Object.keys(t).sort().reduce(function(e,r){return Gu(e,t[r],r,n)},e)}(i,t,r);if(!("valueOf"in t)||"function"!=typeof t.valueOf)return s;try{return Zu(s,String(t.valueOf()))}catch(e){return Zu(s,"[valueOf exception]"+(e.stack||e.message))}}return Zu(i,t.toString())}var Qu=function(e){return function(e,t){for(;e.length<t;)e="0"+e;return e}(Gu(0,e,"",[]).toString(16),8)},Yu=Du(Qu);function Xu(e,t){if(e.ids&&-1===e.ids.indexOf(t.id))return!1;if(e.kinds&&-1===e.kinds.indexOf(t.kind))return!1;if(e.authors&&-1===e.authors.indexOf(t.pubkey))return!1;for(let n in e)if("#"===n[0]){let r=n.slice(1),o=e[n];if(o){const e=Uu(t);if(!1===o.some(t=>e.has(r+":"+t)))return!1}}return!(e.since&&t.created_at<e.since)&&!(e.until&&t.created_at>e.until)}function ed(e,t){for(let n=0;n<e.length;n++)if(Xu(e[n],t))return!0;return!1}function td(e){return"string"==typeof e&&(e={pubkey:e}),t=>t.replaceable({kind:10063,pubkey:e.pubkey,relays:e.relays}).pipe(sc(e=>e?function(e){const t=Array.isArray(e)?e:e.tags;return Fc(t,e=>Oc(e,"server")&&URL.canParse(e[1])?new URL("/",e[1]):void 0)}(e):[]))}const nd=Symbol.for("profile-content");function rd(e){return Dc(e,nd,()=>{const t=function(e){try{return JSON.parse(e)}catch(e){return}}(e.content);if(t)return t.nip05&&"string"!=typeof t.nip05&&(t.nip05=String(t.nip05)),t.website&&t.website?.length>0&&!1===t.website?.startsWith("http")&&(t.website="https://"+t.website),t})}function od(e){return!!e&&((e.kind===lo.Metadata||e.kind===lo.Handlerinformation)&&!!rd(e))}!function(e){function t(e){if(!Number.isSafeInteger(e))throw new Error(`Wrong integer: ${e}`)}function n(...e){const t=(e,t)=>n=>e(t(n)),n=Array.from(e).reverse().reduce((e,n)=>e?t(e,n.encode):n.encode,void 0),r=e.reduce((e,n)=>e?t(e,n.decode):n.decode,void 0);return{encode:n,decode:r}}function r(e){return{encode:n=>{if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("alphabet.encode input should be an array of numbers");return n.map(n=>{if(t(n),n<0||n>=e.length)throw new Error(`Digit index outside alphabet: ${n} (alphabet: ${e.length})`);return e[n]})},decode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("alphabet.decode input should be array of strings");return t.map(t=>{if("string"!=typeof t)throw new Error(`alphabet.decode: not string element=${t}`);const n=e.indexOf(t);if(-1===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n})}}}function o(e=""){if("string"!=typeof e)throw new Error("join separator should be string");return{encode:t=>{if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("join.encode input should be array of strings");for(let e of t)if("string"!=typeof e)throw new Error(`join.encode: non-string input=${e}`);return t.join(e)},decode:t=>{if("string"!=typeof t)throw new Error("join.decode input should be string");return t.split(e)}}}function i(e,n="="){if(t(e),"string"!=typeof n)throw new Error("padding chr should be string");return{encode(t){if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("padding.encode input should be array of strings");for(let e of t)if("string"!=typeof e)throw new Error(`padding.encode: non-string input=${e}`);for(;t.length*e%8;)t.push(n);return t},decode(t){if(!Array.isArray(t)||t.length&&"string"!=typeof t[0])throw new Error("padding.encode input should be array of strings");for(let e of t)if("string"!=typeof e)throw new Error(`padding.decode: non-string input=${e}`);let r=t.length;if(r*e%8)throw new Error("Invalid padding: string should have whole number of bytes");for(;r>0&&t[r-1]===n;r--)if(!((r-1)*e%8))throw new Error("Invalid padding: string has too much padding");return t.slice(0,r)}}}function s(e){if("function"!=typeof e)throw new Error("normalize fn should be function");return{encode:e=>e,decode:t=>e(t)}}function a(e,n,r){if(n<2)throw new Error(`convertRadix: wrong from=${n}, base cannot be less than 2`);if(r<2)throw new Error(`convertRadix: wrong to=${r}, base cannot be less than 2`);if(!Array.isArray(e))throw new Error("convertRadix: data should be array");if(!e.length)return[];let o=0;const i=[],s=Array.from(e);for(s.forEach(e=>{if(t(e),e<0||e>=n)throw new Error(`Wrong integer: ${e}`)});;){let e=0,t=!0;for(let i=o;i<s.length;i++){const a=s[i],l=n*e+a;if(!Number.isSafeInteger(l)||n*e/n!==e||l-a!==n*e)throw new Error("convertRadix: carry overflow");if(e=l%r,s[i]=Math.floor(l/r),!Number.isSafeInteger(s[i])||s[i]*r+e!==l)throw new Error("convertRadix: carry overflow");t&&(s[i]?t=!1:o=i)}if(i.push(e),t)break}for(let t=0;t<e.length-1&&0===e[t];t++)i.push(0);return i.reverse()}
/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */
Object.defineProperty(e,"__esModule",{value:!0}),e.bytes=e.stringToBytes=e.str=e.bytesToString=e.hex=e.utf8=e.bech32m=e.bech32=e.base58check=e.base58xmr=e.base58xrp=e.base58flickr=e.base58=e.base64url=e.base64=e.base32crockford=e.base32hex=e.base32=e.base16=e.utils=e.assertNumber=void 0,e.assertNumber=t;const l=(e,t)=>t?l(t,e%t):e,c=(e,t)=>e+(t-l(e,t));function u(e,n,r,o){if(!Array.isArray(e))throw new Error("convertRadix2: data should be array");if(n<=0||n>32)throw new Error(`convertRadix2: wrong from=${n}`);if(r<=0||r>32)throw new Error(`convertRadix2: wrong to=${r}`);if(c(n,r)>32)throw new Error(`convertRadix2: carry overflow from=${n} to=${r} carryBits=${c(n,r)}`);let i=0,s=0;const a=2**r-1,l=[];for(const o of e){if(t(o),o>=2**n)throw new Error(`convertRadix2: invalid data word=${o} from=${n}`);if(i=i<<n|o,s+n>32)throw new Error(`convertRadix2: carry overflow pos=${s} from=${n}`);for(s+=n;s>=r;s-=r)l.push((i>>s-r&a)>>>0);i&=2**s-1}if(i=i<<r-s&a,!o&&s>=n)throw new Error("Excess padding");if(!o&&i)throw new Error(`Non-zero padding: ${i}`);return o&&s>0&&l.push(i>>>0),l}function d(e){return t(e),{encode:t=>{if(!(t instanceof Uint8Array))throw new Error("radix.encode input should be Uint8Array");return a(Array.from(t),256,e)},decode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("radix.decode input should be array of strings");return Uint8Array.from(a(t,e,256))}}}function f(e,n=!1){if(t(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(c(8,e)>32||c(e,8)>32)throw new Error("radix2: carry overflow");return{encode:t=>{if(!(t instanceof Uint8Array))throw new Error("radix2.encode input should be Uint8Array");return u(Array.from(t),8,e,!n)},decode:t=>{if(!Array.isArray(t)||t.length&&"number"!=typeof t[0])throw new Error("radix2.decode input should be array of strings");return Uint8Array.from(u(t,e,8,n))}}}function h(e){if("function"!=typeof e)throw new Error("unsafeWrapper fn should be function");return function(...t){try{return e.apply(null,t)}catch(e){}}}function p(e,n){if(t(e),"function"!=typeof n)throw new Error("checksum fn should be function");return{encode(t){if(!(t instanceof Uint8Array))throw new Error("checksum.encode: input should be Uint8Array");const r=n(t).slice(0,e),o=new Uint8Array(t.length+e);return o.set(t),o.set(r,t.length),o},decode(t){if(!(t instanceof Uint8Array))throw new Error("checksum.decode: input should be Uint8Array");const r=t.slice(0,-e),o=n(r).slice(0,e),i=t.slice(-e);for(let t=0;t<e;t++)if(o[t]!==i[t])throw new Error("Invalid checksum");return r}}}e.utils={alphabet:r,chain:n,checksum:p,radix:d,radix2:f,join:o,padding:i},e.base16=n(f(4),r("0123456789ABCDEF"),o("")),e.base32=n(f(5),r("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),i(5),o("")),e.base32hex=n(f(5),r("0123456789ABCDEFGHIJKLMNOPQRSTUV"),i(5),o("")),e.base32crockford=n(f(5),r("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),o(""),s(e=>e.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1"))),e.base64=n(f(6),r("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),i(6),o("")),e.base64url=n(f(6),r("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),i(6),o(""));const g=e=>n(d(58),r(e),o(""));e.base58=g("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),e.base58flickr=g("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),e.base58xrp=g("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz");const y=[0,2,3,5,6,7,9,10,11];e.base58xmr={encode(t){let n="";for(let r=0;r<t.length;r+=8){const o=t.subarray(r,r+8);n+=e.base58.encode(o).padStart(y[o.length],"1")}return n},decode(t){let n=[];for(let r=0;r<t.length;r+=11){const o=t.slice(r,r+11),i=y.indexOf(o.length),s=e.base58.decode(o);for(let e=0;e<s.length-i;e++)if(0!==s[e])throw new Error("base58xmr: wrong padding");n=n.concat(Array.from(s.slice(s.length-i)))}return Uint8Array.from(n)}};e.base58check=t=>n(p(4,e=>t(t(e))),e.base58);const v=n(r("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),o("")),m=[996825010,642813549,513874426,1027748829,705979059];function w(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<m.length;e++)1==(t>>e&1)&&(n^=m[e]);return n}function b(e,t,n=1){const r=e.length;let o=1;for(let t=0;t<r;t++){const n=e.charCodeAt(t);if(n<33||n>126)throw new Error(`Invalid prefix (${e})`);o=w(o)^n>>5}o=w(o);for(let t=0;t<r;t++)o=w(o)^31&e.charCodeAt(t);for(let e of t)o=w(o)^e;for(let e=0;e<6;e++)o=w(o);return o^=n,v.encode(u([o%2**30],30,5,!1))}function E(e){const t="bech32"===e?1:734539939,n=f(5),r=n.decode,o=n.encode,i=h(r);function s(e,n=90){if("string"!=typeof e)throw new Error("bech32.decode input should be string, not "+typeof e);if(e.length<8||!1!==n&&e.length>n)throw new TypeError(`Wrong string length: ${e.length} (${e}). Expected (8..${n})`);const r=e.toLowerCase();if(e!==r&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const o=(e=r).lastIndexOf("1");if(0===o||-1===o)throw new Error('Letter "1" must be present between prefix and data only');const i=e.slice(0,o),s=e.slice(o+1);if(s.length<6)throw new Error("Data must be at least 6 characters long");const a=v.decode(s).slice(0,-6),l=b(i,a,t);if(!s.endsWith(l))throw new Error(`Invalid checksum in ${e}: expected "${l}"`);return{prefix:i,words:a}}return{encode:function(e,n,r=90){if("string"!=typeof e)throw new Error("bech32.encode prefix should be string, not "+typeof e);if(!Array.isArray(n)||n.length&&"number"!=typeof n[0])throw new Error("bech32.encode words should be array of numbers, not "+typeof n);const o=e.length+7+n.length;if(!1!==r&&o>r)throw new TypeError(`Length ${o} exceeds limit ${r}`);return`${e=e.toLowerCase()}1${v.encode(n)}${b(e,n,t)}`},decode:s,decodeToBytes:function(e){const{prefix:t,words:n}=s(e,!1);return{prefix:t,words:n,bytes:r(n)}},decodeUnsafe:h(s),fromWords:r,fromWordsUnsafe:i,toWords:o}}e.bech32=E("bech32"),e.bech32m=E("bech32m"),e.utf8={encode:e=>(new TextDecoder).decode(e),decode:e=>(new TextEncoder).encode(e)},e.hex=n(f(4),r("0123456789abcdef"),o(""),s(e=>{if("string"!=typeof e||e.length%2)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()}));const k={utf8:e.utf8,hex:e.hex,base16:e.base16,base32:e.base32,base64:e.base64,base64url:e.base64url,base58:e.base58,base58xmr:e.base58xmr},x=`Invalid encoding type. Available types: ${Object.keys(k).join(", ")}`;e.bytesToString=(e,t)=>{if("string"!=typeof e||!k.hasOwnProperty(e))throw new TypeError(x);if(!(t instanceof Uint8Array))throw new TypeError("bytesToString() expects Uint8Array");return k[e].encode(t)},e.str=e.bytesToString;e.stringToBytes=(e,t)=>{if(!k.hasOwnProperty(e))throw new TypeError(x);if("string"!=typeof t)throw new TypeError("stringToBytes() expects string");return k[e].decode(t)},e.bytes=e.stringToBytes}({}),BigInt(1e3),BigInt(1e6),BigInt(1e9),BigInt(1e12),BigInt("2100000000000000000"),BigInt(1e11);const id={payment_hash:1,payment_secret:16,description:13,payee:19,description_hash:23,expiry:6,min_final_cltv_expiry:24,fallback_address:9,route_hint:3,feature_bits:5,metadata:27};for(let e=0,t=Object.keys(id);e<t.length;e++)t[e],id[t[e]].toString();const sd=Symbol.for("public-contacts"),ad=Symbol.for("hidden-contacts");function ld(e){return function(...e){const t=new Map;for(const n of e)if(Array.isArray(n))for(const e of n)e&&t.set(e.pubkey,e);else n&&t.set(n.pubkey,n);return Array.from(t.values())}(function(e){return Dc(e,sd,()=>Fc(e.tags,e=>jc(e)?e:void 0,wu))}(e),function(e){if(function(e){return Ou(e)&&Reflect.has(e,ad)}(e))return e[ad];const t=Bu(e);if(!t)return;const n=Fc(t,e=>jc(e)?e:void 0,wu);return Reflect.set(e,ad,n),n}(e))}Vu.extend("EncryptedContentCache"),Vu.extend("event-cache"),new TextDecoder;const cd=Symbol.for("mailboxes-inboxes"),ud=Symbol.for("mailboxes-outboxes");function dd(e){return Dc(e,cd,()=>{const t=[];for(const n of e.tags)if(Nc(n))try{const[,e,r]=n;!e||!au(e)||t.includes(e)||"read"!==r&&void 0!==r||t.push(ru(e))}catch{}return t})}function fd(e){return Dc(e,ud,()=>{const t=[];for(const n of e.tags)if(Nc(n))try{const[e,r,o]=n;"r"!==e||!au(r)||t.includes(r)||"write"!==o&&void 0!==o||t.push(ru(r))}catch{}return t})}const hd=Symbol.for("mute-public"),pd=Symbol.for("mute-hidden");function gd(e){return{pubkeys:new Set(e.filter(jc).map(e=>e[1])),threads:new Set(e.filter(Bc).map(e=>e[1])),hashtags:new Set(e.filter(Uc).map(e=>e[1].toLocaleLowerCase())),words:new Set(e.filter(e=>"word"===e[0]&&e[1]).map(e=>e[1].toLocaleLowerCase()))}}function yd(e){const t=function(e){if(function(e){return Ou(e)&&Reflect.has(e,pd)}(e))return e[pd];const t=Bu(e);if(!t)return;const n=gd(t);return Reflect.set(e,pd,n),n}(e),n=function(e){return Dc(e,hd,()=>gd(e.tags))}(e);return t?function(...e){const t={pubkeys:new Set,threads:new Set,hashtags:new Set,words:new Set};for(const n of e){for(const e of n.pubkeys)t.pubkeys.add(e);for(const e of n.threads)t.threads.add(e);for(const e of n.hashtags)t.hashtags.add(e);for(const e of n.words)t.words.add(e)}return t}(t,n):n}var vd;!function(e){e.nudity="nudity",e.malware="malware",e.profanity="profanity",e.illegal="illegal",e.spam="spam",e.impersonation="impersonation",e.other="other"}(vd||(vd={}));const md=Symbol.for("nip10-thread-refs");function wd(e){if(!e[1])throw new Error("Missing event id in tag");let t={id:e[1]};return e[2]&&au(e[2])&&(t.relays=[e[2]]),"e"!==e[0]||"root"!==e[3]&&"reply"!==e[3]&&"mention"!==e[3]||!e[4]||64!==e[4].length||(t.author=e[4]),t}function bd(e){return t=>{const n=new Set;return t.pipe(Pc(r=>{if(void 0!==r)if(Array.isArray(r))for(const o of r)n.add(o),e.claim(o,t);else n.add(r),e.claim(r,t)}),$c(()=>{for(const r of n)e.removeClaim(r,t)}))}}function Ed(e){return t=>{let n;return t.pipe(Pc(r=>{n&&e.removeClaim(n,t),r&&e.claim(r,t),n=r}),$c(()=>{n&&e.removeClaim(n,t)}))}}function kd(){return e=>e.pipe(kc(e=>null!=e))}function xd(e){return t=>new El(n=>{let r=!1;const o=t.subscribe({next:e=>{r=!0,n.next(e)},error:e=>n.error(e),complete:()=>n.complete()});return r||n.next(e),o})}function Sd(e){return"string"==typeof e&&(e={id:e}),t=>Ec(wc(()=>function(e,t){const n=e.getEvent(t.id);return n instanceof Promise?oc(n):ic(n)}(t,e)).pipe(function(e,t){return Lc(n=>n?ic(n):e.eventLoader?oc(e.eventLoader(t)):Nl)}(t,e),kd()),t.insert$.pipe(kc(t=>t.id===e.id)),t.remove$.pipe(kc(t=>t.id===e.id),xc(1),xl(function(e,t){e.subscribe(Sl(t,ul))}),Ac(void 0))).pipe(Ed(t),Sc((e,t)=>e?.id===t?.id),xd(void 0))}function Cd(e){return t=>{let n;return Ec(wc(()=>function(e,t){const n=e.getReplaceable(t.kind,t.pubkey,t.identifier);return n instanceof Promise?oc(n):ic(n)}(t,e)).pipe(function(e,t){return Lc(n=>n?ic(n):void 0!==t.identifier?e.addressableLoader?oc(e.addressableLoader(t)).pipe(kc(e=>!!e)):Nl:e.replaceableLoader?oc(e.replaceableLoader(t)).pipe(kc(e=>!!e)):Nl)}(t,e),kd()),t.insert$.pipe(kc(t=>t.pubkey==e.pubkey&&t.kind===e.kind&&(void 0===e.identifier||Xc(t)===e.identifier)))).pipe(Sc((e,t)=>e.created_at>=t.created_at),Pc(e=>n=e),(a=t.remove$.pipe(kc(e=>e.id===n?.id)),xl(function(e,t){Ql(a).subscribe(Sl(t,function(){return t.complete()},ul)),!t.closed&&e.subscribe(t)})),Ac(void 0),(s=1/0,null!=r&&("object"==typeof r?(o=r.count,s=void 0===o?1/0:o,i=r.delay):s=r),s<=0?function(){return Nl}:xl(function(e,t){var n,r=0,o=function(){if(null==n||n.unsubscribe(),n=null,null!=i){var e="number"==typeof i?bc(i):Ql(i(r)),o=Sl(t,function(){o.unsubscribe(),a()});e.subscribe(o)}else a()},a=function(){var i=!1;n=e.subscribe(Sl(t,void 0,function(){++r<s?n?o():i=!0:t.complete()})),i&&o()};a()})),Ed(t),xd(void 0));var r,o,i,s,a}}function Ad(e,t){return e=Array.isArray(e)?e:[e],n=>{const r=new Map;return wc(()=>{const t=n.getTimeline(e);return t instanceof Promise?oc(t):ic(t)}).pipe(bd(n),Ic(n.insert$.pipe(kc(t=>ed(e,t)),bd(n))),Ic(n.remove$.pipe(kc(t=>ed(e,t)),sc(e=>e.id))),Rc((e,n)=>{if("string"==typeof n)return e.filter(e=>e.id!==n);if(Array.isArray(n)){if(!t)for(const e of n)Zc(e.kind)&&r.set(Gc(e),e);return n}let o=[...e];if(!t&&Zc(n.kind)){const t=Gc(n),i=r.get(t);if(i&&n.created_at<i.created_at)return e;r.set(t,n),i&&o.slice(o.indexOf(i),1)}return qc(o,n),o},[]),Sc(),$c(()=>r.clear()))}}function $d(e){return t=>pc(Object.fromEntries(e.map(e=>[e,t.model(Sd,{id:e})])))}function Td(e){return t=>pc(Object.fromEntries(e.map(e=>[Yc(e.kind,e.pubkey,e.identifier),t.model(Cd,e)])))}function Id(e){return t=>{let n;return Ec(t.pipe(Pc(e=>n=e)),e.update$.pipe(kc(e=>e.id===n?.id)))}}function Rd(e){return"string"==typeof e&&(e={pubkey:e}),t=>t.replaceable({kind:lo.Contacts,pubkey:e.pubkey,relays:e.relays}).pipe(Id(t),sc(e=>e?ld(e):[]))}function _d(e){return t=>{const n=[{kinds:[1111],"#e":[e.id]}];return qa(e.kind)&&n.push({kinds:[1111],"#a":[Qc(e)]}),t.timeline(n)}}function Ld(e){return"string"==typeof e&&(e={pubkey:e}),t=>t.replaceable({kind:lo.RelayList,pubkey:e.pubkey,relays:e.relays}).pipe(sc(e=>e&&{inboxes:dd(e),outboxes:fd(e)}))}function Pd(e){return"string"==typeof e&&(e={pubkey:e}),t=>t.replaceable({kind:lo.Mutelist,pubkey:e.pubkey,relays:e.relays}).pipe(Id(t),sc(e=>e&&yd(e)))}function Od(e){return"string"==typeof e&&(e={pubkey:e}),t=>t.replaceable({kind:lo.Metadata,pubkey:e.pubkey,relays:e.relays}).pipe(kc(od),sc(e=>e&&rd(e)),xd(void 0))}function Bd(e){return t=>t.timeline(Zc(e.kind)?[{kinds:[lo.Reaction],"#e":[e.id]},{kinds:[lo.Reaction],"#a":[Gc(e)]}]:[{kinds:[lo.Reaction],"#e":[e.id]}])}const jd={kinds:[lo.ShortTextNote]};function Nd(e,t){const n=new Map,r=new Map,{kinds:o}={...jd,...t};let i="";const s={},a={kinds:o};var l;return"string"!=typeof(l=e)&&Reflect.has(l,"identifier")&&Reflect.has(l,"pubkey")&&Reflect.has(l,"kind")?(i=bu(e),s.kinds=[e.kind],s.authors=[e.pubkey],s["#d"]=[e.identifier],a["#a"]=[i]):"string"==typeof e?(i=e,s.ids=[e],a["#e"]=[e]):(i=e.id,s.ids=[e.id],a["#e"]=[e.id]),e=>e.filters([s,a]).pipe(sc(e=>{if(!r.has(Gc(e))){const t=function(e){return Dc(e,md,()=>{const t=function(e){const t=e.filter(e=>"e"===e[0]&&e[1]),n=e.filter(e=>"a"===e[0]&&e[1]);let r=t.find(e=>"root"===e[3]),o=t.find(e=>"reply"===e[3]),i=n.find(e=>"root"===e[3]),s=n.find(e=>"reply"===e[3]);if(r&&o||(r=o=r||o),i&&s||(i=s=i||s),!r&&!o){const e=t.filter(e=>!e[3]);e.length>=1&&(r=e[0],o=e[e.length-1]??r)}return{root:r||i?{e:r,a:i}:void 0,reply:o||s?{e:o,a:s}:void 0}}(e.tags);let n,r;if(t.root)try{n={e:t.root.e&&wd(t.root.e),a:t.root.a&&mu(t.root.a)}}catch(e){}if(t.reply)try{r={e:t.reply.e&&wd(t.reply.e),a:t.reply.a&&mu(t.reply.a)}}catch(e){}return{root:n,reply:r}})}(e),o=n.get(Gc(e))||new Set,i={event:e,refs:t,replies:o};for(const e of o)e.parent=i;if(t.reply?.e||t.reply?.a){let e=t.reply.e?t.reply.e.id:bu(t.reply.a);if(i.parent=r.get(e),i.parent)i.parent.replies.add(i);else{let t=n.get(e);t||(t=new Set,n.set(e,t)),t.add(i)}}r.set(Gc(e),i)}return{root:r.get(i),all:r}}))}function Md(e){return class extends e{models=new Map;modelKeepWarm=6e4;model(e,...t){let n=this.models.get(e);n||(n=new Map,this.models.set(e,n));const r=e.getKey?e.getKey(...t):Yu(t);let o=n.get(r);if(!o){const i=()=>{n.get(r)===o&&n.delete(r)};o=e(...t)(this).pipe($c(i),function(e){void 0===e&&(e={});var t=e.connector,n=void 0===t?function(){return new $l}:t,r=e.resetOnError,o=void 0===r||r,i=e.resetOnComplete,s=void 0===i||i,a=e.resetOnRefCountZero,l=void 0===a||a;return function(e){var t,r,i,a=0,c=!1,u=!1,d=function(){null==r||r.unsubscribe(),r=void 0},f=function(){d(),t=i=void 0,c=u=!1},h=function(){var e=t;f(),null==e||e.unsubscribe()};return xl(function(e,p){a++,u||c||d();var g=i=null!=i?i:n();p.add(function(){0!==--a||u||c||(r=_c(h,l))}),g.subscribe(p),!t&&a>0&&(t=new yl({next:function(e){return g.next(e)},error:function(e){u=!0,d(),r=_c(f,o,e),g.error(e)},complete:function(){c=!0,d(),r=_c(f,s),g.complete()}}),Ql(e).subscribe(t))})(e)}}({connector:()=>new Rl(1),resetOnComplete:()=>bc(this.modelKeepWarm),resetOnRefCountZero:()=>bc(this.modelKeepWarm)})),n.set(r,o)}return o}filters(e,t=!1){e=Array.isArray(e)?e:[e];const n=this.getByFilters(e);return Ec(t?Nl:n&&"function"==typeof n.then?oc(n).pipe(yc(e=>oc(Array.from(e)))):oc(Array.from(n)),this.insert$.pipe(kc(t=>ed(e,t))))}event(e){return"string"==typeof e&&(e={id:e}),this.model(Sd,e)}replaceable(...e){let t;if(1===e.length)t=e[0];else if(3===e.length||2===e.length){let[n,r,o]=e;t={kind:n,pubkey:r,identifier:o}}if(!t)throw new Error("Invalid arguments, expected address pointer or kind, pubkey, identifier");return this.model(Cd,t)}addressable(e){return this.model(Cd,e)}timeline(e,t=!1){return this.model(Ad,e,t)}profile(e){return this.model(Od,e)}contacts(e){return"string"==typeof e&&(e={pubkey:e}),this.model(Rd,e)}mutes(e){return"string"==typeof e&&(e={pubkey:e}),this.model(Pd,e)}mailboxes(e){return"string"==typeof e&&(e={pubkey:e}),this.model(Ld,e)}blossomServers(e){return"string"==typeof e&&(e={pubkey:e}),this.model(td,e)}reactions(e){return this.model(Bd,e)}thread(e){return this.model(Nd,e)}comments(e){return this.model(_d,e)}events(e){return this.model($d,e)}replaceableSet(e){return this.model(Td,e)}}}class Ud extends(Md(class{})){database;memory;keepOldVersions=!1;keepExpired=!1;verifyEvent;insert$=new $l;update$=new $l;remove$=new $l;eventLoader;replaceableLoader;addressableLoader;constructor(e=new Ju){super(),e?(this.database=e,this.memory=new Ju):this.database=this.memory=new Ju,this.insert$.subscribe(e=>{Reflect.set(e,zc,this)}),this.remove$.subscribe(e=>{Reflect.deleteProperty(e,zc)})}mapToMemory(e){if(void 0!==e)return this.memory?this.memory.add(e):e}deletedIds=new Set;deletedCoords=new Map;checkDeleted(e){if("string"==typeof e)return this.deletedIds.has(e);if(this.deletedIds.has(e.id))return!0;if(qa(e.kind)){const t=e.tags.find(e=>"d"===e[0])?.[1],n=this.deletedCoords.get(Yc(e.kind,e.pubkey,t));if(n)return n>e.created_at}return!1}expirations=new Map;addExpiration(e){const t=nu(e);t&&Number.isFinite(t)&&this.expirations.set(e.id,t)}expirationTimeout=null;nextExpirationCheck=null;handleExpiringEvent(e){const t=nu(e);if(!t)return;if(this.expirations.set(e.id,t),this.expirationTimeout&&this.nextExpirationCheck&&this.nextExpirationCheck<t)return;this.expirationTimeout&&clearTimeout(this.expirationTimeout);const n=t-eu();this.expirationTimeout=setTimeout(this.pruneExpired.bind(this),1e3*n+10),this.nextExpirationCheck=t}pruneExpired(){const e=eu();for(const[t,n]of this.expirations)n<=e&&(this.expirations.delete(t),this.remove(t));this.expirationTimeout&&clearTimeout(this.expirationTimeout),this.nextExpirationCheck=null,this.expirationTimeout=null}handleDeleteEvent(e){const t=function(e){return e.tags.filter(Bc).map(e=>e[1])}(e);for(const e of t)this.deletedIds.add(e),this.remove(e);const n=function(e){return e.tags.filter(Mc).map(e=>e[1])}(e);for(const t of n){this.deletedCoords.set(t,Math.max(this.deletedCoords.get(t)??0,e.created_at));const n=vu(t);if(!n)continue;const r=this.database.getReplaceableHistory(n.kind,n.pubkey,n.identifier)??[];for(const t of r)t.created_at<e.created_at&&this.remove(t)}}static mergeDuplicateEvent(e,t){const n=e[ou];if(n)for(const e of n)iu(t,e);const r=Reflect.get(e,Vc);r&&!Reflect.get(t,Vc)&&Reflect.set(t,Vc,r)}add(e,t){if(e.kind===lo.EventDeletion&&this.handleDeleteEvent(e),this.checkDeleted(e))return e;const n=nu(e);if(!1===this.keepExpired&&n&&n<=eu())return null;const r=Zc(e.kind)?e.tags.find(e=>"d"===e[0])?.[1]:void 0;if(!this.keepOldVersions&&Zc(e.kind)){const t=this.database.getReplaceableHistory(e.kind,e.pubkey,r);if(t&&t.length>0&&t[0].created_at>=e.created_at)return Ud.mergeDuplicateEvent(e,t[0]),t[0]}if(this.verifyEvent&&!1===this.verifyEvent(e))return null;const o=this.memory?.add(e);if(o&&o!==e)return Ud.mergeDuplicateEvent(e,o),t&&iu(o,t),o;const i=this.mapToMemory(this.database.add(e));if(e!==i&&Ud.mergeDuplicateEvent(e,i),t&&iu(i,t),i===e&&this.insert$.next(i),!this.keepOldVersions&&Zc(e.kind)){const t=this.database.getReplaceableHistory(e.kind,e.pubkey,r);if(t&&t.length>0){const n=Array.from(t).filter(t=>t.created_at<e.created_at);for(const e of n)this.remove(e);if(t.length!==n.length)return t[0]}}return!1===this.keepExpired&&n&&this.handleExpiringEvent(i),i}remove(e){let t=this.memory?.getEvent("string"==typeof e?e:e.id);this.memory&&this.memory.remove(e);const n=this.database.remove(e);return n&&t&&this.remove$.next(t),n}removeByFilters(e){const t=this.getByFilters(e);this.memory&&this.memory.removeByFilters(e);const n=this.database.removeByFilters(e);for(const e of t)this.remove$.next(e);return n}update(e){return!!this.database.add(e)&&(this.database.update?.(e),this.update$.next(e),!0)}hasEvent(e){return this.memory?.hasEvent(e)||this.database.hasEvent(e)}getEvent(e){return this.memory?.getEvent(e)??this.mapToMemory(this.database.getEvent(e))}hasReplaceable(e,t,n){return this.memory?.hasReplaceable(e,t,n)||this.database.hasReplaceable(e,t,n)}getReplaceable(e,t,n){return this.memory?.getReplaceable(e,t,n)??this.mapToMemory(this.database.getReplaceable(e,t,n))}getReplaceableHistory(e,t,n){return this.memory?.getReplaceableHistory(e,t,n)??this.database.getReplaceableHistory(e,t,n)?.map(e=>this.mapToMemory(e)??e)}getByFilters(e){const t=this.database.getByFilters(e);return this.memory?t.map(e=>this.mapToMemory(e)):t}getTimeline(e){const t=this.database.getTimeline(e);return this.memory?t.map(e=>this.mapToMemory(e)):t}touch(e){return this.memory?.touch(e)}claim(e,t){return this.memory?.claim(e,t)}isClaimed(e){return this.memory?.isClaimed(e)??!1}removeClaim(e,t){return this.memory?.removeClaim(e,t)}clearClaim(e){return this.memory?.clearClaim(e)}unclaimed(){return this.memory?.unclaimed()||function*(){}()}prune(e){return this.memory?.prune(e)??0}removed(e){return this.checkDeleted(e)?Nl:this.remove$.pipe(kc(t=>t.id===e),xc(1),yc(()=>Nl))}updated(e){return this.update$.pipe(kc(t=>t.id===e||t===e))}}function Fd(){let e,t;const n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n}"navigator"in globalThis&&navigator.userAgent.includes("Android")&&navigator.clipboard&&navigator.clipboard.readText;var Dd,qd;$u(lo.NostrConnect,"nip44"),function(e){e.GetPublicKey="get_pubic_key",e.SignEvent="sign_event",e.Nip04Encrypt="nip04_encrypt",e.Nip04Decrypt="nip04_decrypt",e.Nip44Encrypt="nip44_encrypt",e.Nip44Decrypt="nip44_decrypt"}(Dd||(Dd={})),function(e){e.Connect="connect",e.CreateAccount="create_account",e.GetPublicKey="get_public_key",e.SignEvent="sign_event",e.Nip04Encrypt="nip04_encrypt",e.Nip04Decrypt="nip04_decrypt",e.Nip44Encrypt="nip44_encrypt",e.Nip44Decrypt="nip44_decrypt"}(qd||(qd={}));class Hd{key;constructor(e){this.key=e||oo()}async getPublicKey(){return io(this.key)}async signEvent(e){return so(e,this.key)}nip04={encrypt:async(e,t)=>ls.encrypt(this.key,e,t),decrypt:async(e,t)=>ls.decrypt(this.key,e,t)};nip44={encrypt:async(e,t)=>Cs.v2.encrypt(t,Cs.v2.utils.getConversationKey(this.key,e)),decrypt:async(e,t)=>Cs.v2.decrypt(t,Cs.v2.utils.getConversationKey(this.key,e))};static fromKey(e){return new Hd(Eu(e))}}const zd="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Kd(e,...t){if(!((n=e)instanceof Uint8Array||ArrayBuffer.isView(n)&&"Uint8Array"===n.constructor.name))throw new Error("Uint8Array expected");var n;if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}const Wd=(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)(),Vd=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Jd(e){if(Kd(e),Wd)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=Vd[e[n]];return t}const Zd=48,Gd=57,Qd=65,Yd=70,Xd=97,ef=102;function tf(e){return e>=Zd&&e<=Gd?e-Zd:e>=Qd&&e<=Yd?e-(Qd-10):e>=Xd&&e<=ef?e-(Xd-10):void 0}function nf(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(Wd)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(n);for(let t=0,o=0;t<n;t++,o+=2){const n=tf(e.charCodeAt(o)),i=tf(e.charCodeAt(o+1));if(void 0===n||void 0===i){const t=e[o]+e[o+1];throw new Error('hex string expected, got non-hex character "'+t+'" at index '+o)}r[t]=16*n+i}return r}
/*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */
const rf=BigInt(0),of=BigInt(1),sf=BigInt(2),af=BigInt(3),lf=BigInt(8),cf=Object.freeze({a:rf,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:of,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")}),uf=(e,t)=>(e+t/sf)/t,df={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(e){const{n:t}=cf,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-of*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),o=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=n,s=BigInt("0x100000000000000000000000000000000"),a=uf(i*e,t),l=uf(-r*e,t);let c=jf(e-a*n-l*o,t),u=jf(-a*r-l*i,t);const d=c>s,f=u>s;if(d&&(c=t-c),f&&(u=t-u),c>s||u>s)throw new Error("splitScalarEndo: Endomorphism failed, k="+e);return{k1neg:d,k1:c,k2neg:f,k2:u}}},ff=32;function hf(e){const{a:t,b:n}=cf,r=jf(e*e),o=jf(r*e);return jf(o+t*e+n)}const pf=cf.a===rf;function gf(e){if(!(e instanceof yf))throw new TypeError("JacobianPoint expected")}class yf{constructor(e,t,n){this.x=e,this.y=t,this.z=n}static fromAffine(e){if(!(e instanceof wf))throw new TypeError("JacobianPoint#fromAffine: expected Point");return e.equals(wf.ZERO)?yf.ZERO:new yf(e.x,e.y,of)}static toAffineBatch(e){const t=function(e,t=cf.P){const n=new Array(e.length),r=e.reduce((e,r,o)=>r===rf?e:(n[o]=e,jf(e*r,t)),of),o=Mf(r,t);return e.reduceRight((e,r,o)=>r===rf?e:(n[o]=jf(e*n[o],t),jf(e*r,t)),o),n}(e.map(e=>e.z));return e.map((e,n)=>e.toAffine(t[n]))}static normalizeZ(e){return yf.toAffineBatch(e).map(yf.fromAffine)}equals(e){gf(e);const{x:t,y:n,z:r}=this,{x:o,y:i,z:s}=e,a=jf(r*r),l=jf(s*s),c=jf(t*l),u=jf(o*a),d=jf(jf(n*s)*l),f=jf(jf(i*r)*a);return c===u&&d===f}negate(){return new yf(this.x,jf(-this.y),this.z)}double(){const{x:e,y:t,z:n}=this,r=jf(e*e),o=jf(t*t),i=jf(o*o),s=e+o,a=jf(sf*(jf(s*s)-r-i)),l=jf(af*r),c=jf(l*l),u=jf(c-sf*a),d=jf(l*(a-u)-lf*i),f=jf(sf*t*n);return new yf(u,d,f)}add(e){gf(e);const{x:t,y:n,z:r}=this,{x:o,y:i,z:s}=e;if(o===rf||i===rf)return this;if(t===rf||n===rf)return e;const a=jf(r*r),l=jf(s*s),c=jf(t*l),u=jf(o*a),d=jf(jf(n*s)*l),f=jf(jf(i*r)*a),h=jf(u-c),p=jf(f-d);if(h===rf)return p===rf?this.double():yf.ZERO;const g=jf(h*h),y=jf(h*g),v=jf(c*g),m=jf(p*p-y-sf*v),w=jf(p*(v-m)-d*y),b=jf(r*s*h);return new yf(m,w,b)}subtract(e){return this.add(e.negate())}multiplyUnsafe(e){const t=yf.ZERO;if("bigint"==typeof e&&e===rf)return t;let n=Bf(e);if(n===of)return this;if(!pf){let e=t,r=this;for(;n>rf;)n&of&&(e=e.add(r)),r=r.double(),n>>=of;return e}let{k1neg:r,k1:o,k2neg:i,k2:s}=df.splitScalar(n),a=t,l=t,c=this;for(;o>rf||s>rf;)o&of&&(a=a.add(c)),s&of&&(l=l.add(c)),c=c.double(),o>>=of,s>>=of;return r&&(a=a.negate()),i&&(l=l.negate()),l=new yf(jf(l.x*df.beta),l.y,l.z),a.add(l)}precomputeWindow(e){const t=pf?128/e+1:256/e+1,n=[];let r=this,o=r;for(let i=0;i<t;i++){o=r,n.push(o);for(let t=1;t<2**(e-1);t++)o=o.add(r),n.push(o);r=o.double()}return n}wNAF(e,t){!t&&this.equals(yf.BASE)&&(t=wf.BASE);const n=t&&t._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let r=t&&mf.get(t);r||(r=this.precomputeWindow(n),t&&1!==n&&(r=yf.normalizeZ(r),mf.set(t,r)));let o=yf.ZERO,i=yf.BASE;const s=1+(pf?128/n:256/n),a=2**(n-1),l=BigInt(2**n-1),c=2**n,u=BigInt(n);for(let t=0;t<s;t++){const n=t*a;let s=Number(e&l);e>>=u,s>a&&(s-=c,e+=of);const d=n,f=n+Math.abs(s)-1,h=t%2!=0,p=s<0;0===s?i=i.add(vf(h,r[d])):o=o.add(vf(p,r[f]))}return{p:o,f:i}}multiply(e,t){let n,r,o=Bf(e);if(pf){const{k1neg:e,k1:i,k2neg:s,k2:a}=df.splitScalar(o);let{p:l,f:c}=this.wNAF(i,t),{p:u,f:d}=this.wNAF(a,t);l=vf(e,l),u=vf(s,u),u=new yf(jf(u.x*df.beta),u.y,u.z),n=l.add(u),r=c.add(d)}else{const{p:e,f:i}=this.wNAF(o,t);n=e,r=i}return yf.normalizeZ([n,r])[0]}toAffine(e){const{x:t,y:n,z:r}=this,o=this.equals(yf.ZERO);null==e&&(e=o?lf:Mf(r));const i=e,s=jf(i*i),a=jf(s*i),l=jf(t*s),c=jf(n*a),u=jf(r*i);if(o)return wf.ZERO;if(u!==of)throw new Error("invZ was invalid");return new wf(l,c)}}function vf(e,t){const n=t.negate();return e?n:t}yf.BASE=new yf(cf.Gx,cf.Gy,of),yf.ZERO=new yf(rf,of,rf);const mf=new WeakMap;class wf{constructor(e,t){this.x=e,this.y=t}_setWindowSize(e){this._WINDOW_SIZE=e,mf.delete(this)}hasEvenY(){return this.y%sf===rf}static fromCompressedHex(e){const t=32===e.length,n=Pf(t?e:e.subarray(1));if(!Ff(n))throw new Error("Point is not on curve");let r=function(e){const{P:t}=cf,n=BigInt(6),r=BigInt(11),o=BigInt(22),i=BigInt(23),s=BigInt(44),a=BigInt(88),l=e*e*e%t,c=l*l*e%t,u=Nf(c,af)*c%t,d=Nf(u,af)*c%t,f=Nf(d,sf)*l%t,h=Nf(f,r)*f%t,p=Nf(h,o)*h%t,g=Nf(p,s)*p%t,y=Nf(g,a)*g%t,v=Nf(y,s)*p%t,m=Nf(v,af)*c%t,w=Nf(m,i)*h%t,b=Nf(w,n)*l%t,E=Nf(b,sf);if(E*E%t!==e)throw new Error("Cannot find square root");return E}(hf(n));const o=(r&of)===of;if(t)o&&(r=jf(-r));else{!(1&~e[0])!==o&&(r=jf(-r))}const i=new wf(n,r);return i.assertValidity(),i}static fromUncompressedHex(e){const t=Pf(e.subarray(1,33)),n=Pf(e.subarray(33,65)),r=new wf(t,n);return r.assertValidity(),r}static fromHex(e){const t=Of(e),n=t.length,r=t[0];if(n===ff)return this.fromCompressedHex(t);if(33===n&&(2===r||3===r))return this.fromCompressedHex(t);if(65===n&&4===r)return this.fromUncompressedHex(t);throw new Error(`Point.fromHex: received invalid point. Expected 32-33 compressed bytes or 65 uncompressed bytes, not ${n}`)}static fromPrivateKey(e){return wf.BASE.multiply(function(e){let t;if("bigint"==typeof e)t=e;else if("number"==typeof e&&Number.isSafeInteger(e)&&e>0)t=BigInt(e);else if("string"==typeof e){if(64!==e.length)throw new Error("Expected 32 bytes of private key");t=Lf(e)}else{if(!xf(e))throw new TypeError("Expected valid private key");if(32!==e.length)throw new Error("Expected 32 bytes of private key");t=Pf(e)}if(!Uf(t))throw new Error("Expected private key: 0 < key < n");return t}(e))}static fromSignature(e,t,n){const{r:r,s:o}=function(e){if(e instanceof kf)return e.assertValidity(),e;try{return kf.fromDER(e)}catch(t){return kf.fromCompact(e)}}(t);if(![0,1,2,3].includes(n))throw new Error("Cannot recover: invalid recovery bit");const i=function(e,t=!1){const n=function(e){const t=8*e.length-256,n=Pf(e);return t>0?n>>BigInt(t):n}(e);if(t)return n;const{n:r}=cf;return n>=r?n-r:n}(Of(e)),{n:s}=cf,a=2===n||3===n?r+s:r,l=Mf(a,s),c=jf(-i*l,s),u=jf(o*l,s),d=1&n?"03":"02",f=wf.fromHex(d+Rf(a)),h=wf.BASE.multiplyAndAddUnsafe(f,c,u);if(!h)throw new Error("Cannot recover signature: point at infinify");return h.assertValidity(),h}toRawBytes(e=!1){return Tf(this.toHex(e))}toHex(e=!1){const t=Rf(this.x);if(e){return`${this.hasEvenY()?"02":"03"}${t}`}return`04${t}${Rf(this.y)}`}toHexX(){return this.toHex(!0).slice(2)}toRawX(){return this.toRawBytes(!0).slice(1)}assertValidity(){const e="Point is not on elliptic curve",{x:t,y:n}=this;if(!Ff(t)||!Ff(n))throw new Error(e);const r=jf(n*n);if(jf(r-hf(t))!==rf)throw new Error(e)}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new wf(this.x,jf(-this.y))}double(){return yf.fromAffine(this).double().toAffine()}add(e){return yf.fromAffine(this).add(yf.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return yf.fromAffine(this).multiply(e,this).toAffine()}multiplyAndAddUnsafe(e,t,n){const r=yf.fromAffine(this),o=t===rf||t===of||this!==wf.BASE?r.multiplyUnsafe(t):r.multiply(t),i=yf.fromAffine(e).multiplyUnsafe(n),s=o.add(i);return s.equals(yf.ZERO)?void 0:s.toAffine()}}function bf(e){return Number.parseInt(e[0],16)>=8?"00"+e:e}function Ef(e){if(e.length<2||2!==e[0])throw new Error(`Invalid signature integer tag: ${Cf(e)}`);const t=e[1],n=e.subarray(2,t+2);if(!t||n.length!==t)throw new Error("Invalid signature integer: wrong length");if(0===n[0]&&n[1]<=127)throw new Error("Invalid signature integer: trailing length");return{data:Pf(n),left:e.subarray(t+2)}}wf.BASE=new wf(cf.Gx,cf.Gy),wf.ZERO=new wf(rf,rf);class kf{constructor(e,t){this.r=e,this.s=t,this.assertValidity()}static fromCompact(e){const t=xf(e),n="Signature.fromCompact";if("string"!=typeof e&&!t)throw new TypeError(`${n}: Expected string or Uint8Array`);const r=t?Cf(e):e;if(128!==r.length)throw new Error(`${n}: Expected 64-byte hex`);return new kf(Lf(r.slice(0,64)),Lf(r.slice(64,128)))}static fromDER(e){const t=xf(e);if("string"!=typeof e&&!t)throw new TypeError("Signature.fromDER: Expected string or Uint8Array");const{r:n,s:r}=function(e){if(e.length<2||48!=e[0])throw new Error(`Invalid signature tag: ${Cf(e)}`);if(e[1]!==e.length-2)throw new Error("Invalid signature: incorrect length");const{data:t,left:n}=Ef(e.subarray(2)),{data:r,left:o}=Ef(n);if(o.length)throw new Error(`Invalid signature: left bytes after parsing: ${Cf(o)}`);return{r:t,s:r}}(t?e:Tf(e));return new kf(n,r)}static fromHex(e){return this.fromDER(e)}assertValidity(){const{r:e,s:t}=this;if(!Uf(e))throw new Error("Invalid Signature: r must be 0 < r < n");if(!Uf(t))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){const e=cf.n>>of;return this.s>e}normalizeS(){return this.hasHighS()?new kf(this.r,jf(-this.s,cf.n)):this}toDERRawBytes(){return Tf(this.toDERHex())}toDERHex(){const e=bf(_f(this.s)),t=bf(_f(this.r)),n=e.length/2,r=t.length/2,o=_f(n),i=_f(r);return`30${_f(r+n+4)}02${i}${t}02${o}${e}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return Tf(this.toCompactHex())}toCompactHex(){return Rf(this.r)+Rf(this.s)}}function xf(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}const Sf=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Cf(e){!function(e){if(!xf(e))throw new Error("Uint8Array expected")}(e);let t="";for(let n=0;n<e.length;n++)t+=Sf[e[n]];return t}const Af={_0:48,_9:57,A:65,F:70,a:97,f:102};function $f(e){return e>=Af._0&&e<=Af._9?e-Af._0:e>=Af.A&&e<=Af.F?e-(Af.A-10):e>=Af.a&&e<=Af.f?e-(Af.a-10):void 0}function Tf(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(n);for(let t=0,o=0;t<n;t++,o+=2){const n=$f(e.charCodeAt(o)),i=$f(e.charCodeAt(o+1));if(void 0===n||void 0===i){const t=e[o]+e[o+1];throw new Error('hex string expected, got non-hex character "'+t+'" at index '+o)}r[t]=16*n+i}return r}const If=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function Rf(e){if("bigint"!=typeof e)throw new Error("Expected bigint");if(!(rf<=e&&e<If))throw new Error("Expected number 0 <= n < 2^256");return e.toString(16).padStart(64,"0")}function _f(e){const t=e.toString(16);return 1&t.length?`0${t}`:t}function Lf(e){if("string"!=typeof e)throw new TypeError("hexToNumber: expected string, got "+typeof e);return BigInt(`0x${e}`)}function Pf(e){return Lf(Cf(e))}function Of(e){return xf(e)?Uint8Array.from(e):Tf(e)}function Bf(e){if("number"==typeof e&&Number.isSafeInteger(e)&&e>0)return BigInt(e);if("bigint"==typeof e&&Uf(e))return e;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function jf(e,t=cf.P){const n=e%t;return n>=rf?n:t+n}function Nf(e,t){const{P:n}=cf;let r=e;for(;t-- >rf;)r*=r,r%=n;return r}function Mf(e,t=cf.P){if(e===rf||t<=rf)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let n=jf(e,t),r=t,o=rf,i=of;for(;n!==rf;){const e=r%n,t=o-i*(r/n);r=n,n=e,o=i,i=t}if(r!==of)throw new Error("invert: does not exist");return jf(o,t)}function Uf(e){return rf<e&&e<cf.n}function Ff(e){return rf<e&&e<cf.P}
/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */
function Df(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function qf(e,t){return!!Array.isArray(t)&&(0===t.length||(e?t.every(e=>"string"==typeof e):t.every(e=>Number.isSafeInteger(e))))}function Hf(e,t){if("string"!=typeof t)throw new Error(`${e}: string expected`);return!0}function zf(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function Kf(e){if(!Array.isArray(e))throw new Error("array expected")}function Wf(e,t){if(!qf(!0,t))throw new Error(`${e}: array of strings expected`)}wf.BASE._setWindowSize(8);const Vf=(e,t)=>0===t?e:Vf(t,e%t),Jf=(e,t)=>e+(t-Vf(e,t)),Zf=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function Gf(e,t,n,r){if(Kf(e),t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(Jf(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${Jf(t,n)}`);let o=0,i=0;const s=Zf[t],a=Zf[n]-1,l=[];for(const r of e){if(zf(r),r>=s)throw new Error(`convertRadix2: invalid data word=${r} from=${t}`);if(o=o<<t|r,i+t>32)throw new Error(`convertRadix2: carry overflow pos=${i} from=${t}`);for(i+=t;i>=n;i-=n)l.push((o>>i-n&a)>>>0);const e=Zf[i];if(void 0===e)throw new Error("invalid carry");o&=e-1}if(o=o<<n-i&a,!r&&i>=t)throw new Error("Excess padding");if(!r&&o>0)throw new Error(`Non-zero padding: ${o}`);return r&&i>0&&l.push(o>>>0),l}const Qf=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)()?{encode:e=>(function(e,...t){if(!Df(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}(e),e.toBase64()),decode:e=>((e,t)=>{Hf("base64",e);const n=t?/^[A-Za-z0-9=_-]+$/:/^[A-Za-z0-9=+/]+$/,r=t?"base64url":"base64";if(e.length>0&&!n.test(e))throw new Error("invalid base64");return Uint8Array.fromBase64(e,{alphabet:r,lastChunkHandling:"strict"})})(e,!1)}:function(...e){const t=e=>e,n=(e,t)=>n=>e(t(n));return{encode:e.map(e=>e.encode).reduceRight(n,t),decode:e.map(e=>e.decode).reduce(n,t)}}(function(e,t=!1){if(zf(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(Jf(8,e)>32||Jf(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!Df(n))throw new Error("radix2.encode input should be Uint8Array");return Gf(Array.from(n),8,e,!t)},decode:n=>(function(e,t){if(!qf(!1,t))throw new Error(`${e}: array of numbers expected`)}("radix2.decode",n),Uint8Array.from(Gf(n,e,8,t)))}}(6),function(e){const t="string"==typeof e?e.split(""):e,n=t.length;Wf("alphabet",t);const r=new Map(t.map((e,t)=>[e,t]));return{encode:r=>(Kf(r),r.map(r=>{if(!Number.isSafeInteger(r)||r<0||r>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${r}". Allowed: ${e}`);return t[r]})),decode:t=>(Kf(t),t.map(t=>{Hf("alphabet.decode",t);const n=r.get(t);if(void 0===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n}))}}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),function(e,t="="){return zf(e),Hf("padding",t),{encode(n){for(Wf("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){Wf("padding.decode",n);let r=n.length;if(r*e%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--){if((r-1)*e%8==0)throw new Error("padding: invalid, string has too much padding")}return n.slice(0,r)}}}(6),function(e=""){return Hf("join",e),{encode:t=>(Wf("join.decode",t),t.join(e)),decode:t=>(Hf("join.decode",t),t.split(e))}}(""));function Yf(e){return wf.fromHex(e).toHex().substring(2)}const Xf=new TextDecoder("utf-8"),eh=new TextEncoder;class th{log=Vu.extend("SerialPortSigner");writer=null;pubkey;get isConnected(){return!!this.writer}verifyEvent=ao;nip04;constructor(){this.nip04={encrypt:this.nip04Encrypt.bind(this),decrypt:this.nip04Decrypt.bind(this)}}lastCommand=null;async callMethodOnDevice(e,t,n={}){if(!th.SUPPORTED)throw new Error("Serial devices are not supported");if(this.writer||await this.connectToDevice(n),this.lastCommand)throw new Error("Previous command to device still pending!");const r=Fd();return this.lastCommand=r,this.sendCommand(e,t),setTimeout(()=>{r.reject(new Error("Device timeout")),this.lastCommand===r&&(this.lastCommand=null)},6e3),this.lastCommand}async connectToDevice({onConnect:e,onDisconnect:t,onError:n,onDone:r}){let o,i=await window.navigator.serial.requestPort();await i.open({baudRate:9600}),await(e=>new Promise(t=>setTimeout(t,e)))(1e3),(async()=>{for(;i&&i.readable;){const e=new window.TextDecoderStream;i.readable.pipeTo(e.writable),o=e.readable.getReader();const t=this.readFromSerialPort(o);try{for(;;){const{value:e,done:n}=await t("\n");if(e){const{method:t,data:n}=this.parseResponse(e);if("/ping"===t&&this.log("Pong"),-1===th.PUBLIC_METHODS.indexOf(t))continue;this.log("Received: ",t,n),this.lastCommand&&(this.lastCommand.resolve(n),this.lastCommand=null)}if(n)return this.lastCommand=null,this.writer=null,void(r&&r())}}catch(e){if(e instanceof Error)throw this.writer=null,n&&n(e),this.lastCommand&&(this.lastCommand.reject(e),this.lastCommand=null),e}}})();const s=new window.TextEncoderStream;s.readable.pipeTo(i.writable),this.writer=s.writable.getWriter(),await this.sendCommand(th.METHOD_PING),await this.sendCommand(th.METHOD_PING,[window.location.host]),e&&e(),i.addEventListener("disconnect",()=>{this.log("Disconnected"),this.lastCommand=null,this.writer=null,t&&t()})}async sendCommand(e,t=[]){if(!this.writer)return;this.log("Send command",e,t);const n=[e].concat(t).join(" ");await this.writer.write(n+"\n")}readFromSerialPort(e){let t,n=[];return async(r="\n")=>{if(n.length)return{value:n.shift().trim(),done:!1};const o=[];for(t&&(o.push(t),t=void 0);;){const{value:i,done:s}=await e.read();if(i){const e=i.split(r);if(e.length>1)return o.push(e.shift()),t=e.pop(),n=e,{value:o.join("").trim(),done:!1};o.push(i)}if(s)return{value:o.join("").trim(),done:!0}}}}parseResponse(e){const t=e.split(" ")[0];return{method:t,data:e.substring(t.length).trim()}}async nip04Encrypt(e,t){const n=nf(await this.callMethodOnDevice(th.METHOD_SHARED_SECRET,[Yf(e)]));let r=Uint8Array.from(function(e=32){if(zd&&"function"==typeof zd.getRandomValues)return zd.getRandomValues(new Uint8Array(e));if(zd&&"function"==typeof zd.randomBytes)return Uint8Array.from(zd.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}(16)),o=eh.encode(t),i=await crypto.subtle.importKey("raw",n,{name:"AES-CBC"},!1,["encrypt"]),s=await crypto.subtle.encrypt({name:"AES-CBC",iv:r},i,o);return`${Qf.encode(new Uint8Array(s))}?iv=${Qf.encode(new Uint8Array(r.buffer))}`}async nip04Decrypt(e,t){let[n,r]=t.split("?iv=");const o=nf(await this.callMethodOnDevice(th.METHOD_SHARED_SECRET,[Yf(e)]));let i=await crypto.subtle.importKey("raw",o,{name:"AES-CBC"},!1,["decrypt"]),s=Qf.decode(n),a=Qf.decode(r),l=await crypto.subtle.decrypt({name:"AES-CBC",iv:a},i,s);return Xf.decode(l)}async getPublicKey(){const e=await this.callMethodOnDevice(th.METHOD_PUBLIC_KEY,[]);return this.pubkey=e,e}async restore(e){await this.callMethodOnDevice(th.METHOD_RESTORE,[Jd(e)])}async signEvent(e){const t=e.pubkey||this.pubkey;if(!t)throw new Error("Unknown signer pubkey");const n={...e,id:no({...e,pubkey:t})},r=await this.callMethodOnDevice(th.METHOD_SIGN_MESSAGE,[n.id]),o={...n,sig:r,pubkey:t};if(!this.verifyEvent(o))throw new Error("Invalid signature");return o}ping(){this.sendCommand(th.METHOD_PING,[window.location.host])}static SUPPORTED="navigator"in globalThis&&!!navigator.serial;static METHOD_PING="/ping";static METHOD_LOG="/log";static METHOD_SIGN_MESSAGE="/sign-message";static METHOD_SHARED_SECRET="/shared-secret";static METHOD_PUBLIC_KEY="/public-key";static METHOD_RESTORE="/restore";static PUBLIC_METHODS=[th.METHOD_PUBLIC_KEY,th.METHOD_SIGN_MESSAGE,th.METHOD_SHARED_SECRET,th.METHOD_RESTORE]}const nh=[`${"https:"===window.location.protocol?"wss:":"ws:"}//${window.location.host}/`];class rh{constructor(){this.pool=new Rn,this.eventStore=new Ud,this.isConnected=!1,this.signer=null,this.relays=[...nh]}async connect(){console.log("Starting connection to",this.relays.length,"relays...");try{this.isConnected=!0,console.log("✓ Successfully initialized relay pool"),await new Promise(e=>setTimeout(e,1e3))}catch(e){throw console.error("✗ Connection failed:",e),e}}async connectToRelay(e){console.log(`Adding relay: ${e}`);try{return this.relays.includes(e)||this.relays.push(e),console.log(`✓ Successfully added relay ${e}`),!0}catch(t){return console.error(`✗ Failed to add relay ${e}:`,t),!1}}subscribe(e,t){console.log("Creating subscription with filters:",e);const n=this.pool.subscribeMany(this.relays,e,{onevent(e){console.log("Event received:",e),t(e)},oneose(){console.log("EOSE received"),window.dispatchEvent(new CustomEvent("nostr-eose",{detail:{subscriptionId:n.id}}))}});return n}unsubscribe(e){console.log("Closing subscription"),e&&e.close&&e.close()}disconnect(){console.log("Disconnecting relay pool"),this.pool&&this.pool.close(this.relays),this.isConnected=!1}async publish(e,t=null){this.isConnected||(console.warn("Not connected to any relays, attempting to connect first"),await this.connect());try{const n=t||this.relays,r=this.pool.publish(n,e);return await Promise.allSettled(r),console.log("✓ Event published successfully"),await uh([e]),console.log("Event stored in IndexedDB"),{success:!0,okCount:1,errorCount:0}}catch(e){throw console.error("✗ Failed to publish event:",e),e}}getPool(){return this.pool}getEventStore(){return this.eventStore}getSigner(){return this.signer}setSigner(e){this.signer=e}}const oh=new rh,ih="nostrCache",sh=2,ah="events";function lh(){return new Promise((e,t)=>{try{const n=indexedDB.open(ih,sh);n.onupgradeneeded=e=>{const t=n.result;e.oldVersion;let r;r=t.objectStoreNames.contains(ah)?n.transaction.objectStore(ah):t.createObjectStore(ah,{keyPath:"id"}),r.indexNames.contains("byKindAuthor")||r.createIndex("byKindAuthor",["kind","pubkey"],{unique:!1}),r.indexNames.contains("byKindAuthorCreated")||r.createIndex("byKindAuthorCreated",["kind","pubkey","created_at"],{unique:!1}),r.indexNames.contains("byKind")||r.createIndex("byKind","kind",{unique:!1}),r.indexNames.contains("byAuthor")||r.createIndex("byAuthor","pubkey",{unique:!1}),r.indexNames.contains("byCreatedAt")||r.createIndex("byCreatedAt","created_at",{unique:!1})},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)}catch(e){console.error("Failed to open IndexedDB",e),t(e)}})}async function ch(e){try{const t=await lh();await new Promise((n,r)=>{const o=t.transaction(ah,"readwrite");o.oncomplete=()=>n(),o.onerror=()=>r(o.error),o.objectStore(ah).put(e)})}catch(e){console.warn("IDB putEvent failed",e)}}async function uh(e){if(e&&0!==e.length)try{const t=await lh();await new Promise((n,r)=>{const o=t.transaction(ah,"readwrite");o.oncomplete=()=>n(),o.onerror=()=>r(o.error);const i=o.objectStore(ah);for(const t of e)i.put(t)}),console.log(`Stored ${e.length} events in IndexedDB`)}catch(e){console.warn("IDB putEvents failed",e)}}async function dh(e){try{const t=await lh(),n=[];console.log("QueryEventsFromDB: Starting query with filters:",e);for(const r of e){console.log("QueryEventsFromDB: Processing filter:",r);const e=await new Promise((e,n)=>{const o=t.transaction(ah,"readonly").objectStore(ah),i=[];let s;if(r.kinds&&r.kinds.length>0&&r.authors&&r.authors.length>0){const e=r.kinds[0],t=r.authors[0];console.log(`QueryEventsFromDB: Using byKindAuthorCreated index for kind=${e}, author=${t.substring(0,8)}...`);const n=o.index("byKindAuthorCreated"),i=IDBKeyRange.bound([e,t,-1/0],[e,t,1/0]);s=n.openCursor(i,"prev")}else if(r.kinds&&r.kinds.length>0){console.log(`QueryEventsFromDB: Using byKind index for kind=${r.kinds[0]}`);const e=o.index("byKind");s=e.openCursor(IDBKeyRange.only(r.kinds[0]))}else if(r.authors&&r.authors.length>0){console.log(`QueryEventsFromDB: Using byAuthor index for author=${r.authors[0].substring(0,8)}...`);const e=o.index("byAuthor");s=e.openCursor(IDBKeyRange.only(r.authors[0]))}else console.log("QueryEventsFromDB: Scanning all events (no specific index)"),s=o.openCursor();s.onsuccess=t=>{const n=t.target.result;if(n){const t=n.value;let o=!0;if(r.kinds&&r.kinds.length>0&&!r.kinds.includes(t.kind)&&(o=!1),r.authors&&r.authors.length>0&&!r.authors.includes(t.pubkey)&&(o=!1),r.since&&t.created_at<r.since&&(o=!1),r.until&&t.created_at>r.until&&(o=!1),r.ids&&r.ids.length>0&&!r.ids.includes(t.id)&&(o=!1),o&&i.push(t),r.limit&&i.length>=r.limit)return console.log(`QueryEventsFromDB: Reached limit of ${r.limit}, found ${i.length} matching events`),void e(i);n.continue()}else console.log(`QueryEventsFromDB: Cursor exhausted, found ${i.length} matching events`),e(i)},s.onerror=()=>{console.error("QueryEventsFromDB: Cursor error:",s.error),n(s.error)}});console.log(`QueryEventsFromDB: Found ${e.length} events for this filter`),n.push(...e)}return n.sort((e,t)=>t.created_at-e.created_at),console.log(`QueryEventsFromDB: Returning ${n.length} total events`),n}catch(e){return console.error("QueryEventsFromDB failed:",e),[]}}function fh(e){try{const t=JSON.parse(e.content||"{}");return{name:t.name||t.display_name||"",picture:t.picture||"",banner:t.banner||"",about:t.about||"",nip05:t.nip05||"",lud16:t.lud16||t.lud06||""}}catch(e){return{name:"",picture:"",banner:"",about:"",nip05:"",lud16:""}}}async function hh(e){console.log(`Starting profile fetch for pubkey: ${e}`);try{const t=await async function(e){try{const t=await lh();return await new Promise((n,r)=>{const o=t.transaction(ah,"readonly").objectStore(ah).index("byKindAuthorCreated"),i=IDBKeyRange.bound([0,e,-1/0],[0,e,1/0]),s=o.openCursor(i,"prev");s.onsuccess=()=>{const e=s.result;n(e?e.value:null)},s.onerror=()=>r(s.error)})}catch(e){return console.warn("IDB getLatestProfileEvent failed",e),null}}(e);if(t){console.log("Using cached profile event");return fh(t)}}catch(e){console.warn("Failed to load cached profile",e)}try{const t=[{kinds:[0],authors:[e],limit:1}],n=await ph(t,{timeout:1e4});if(n.length>0){const t=n[0];console.log("Profile fetched:",t),await ch(t);try{console.log("Publishing profile event to local relay:",t.id),await oh.publish(t),console.log("Profile event successfully saved to local relay")}catch(e){console.warn("Failed to publish profile to local relay:",e)}const r=fh(t);try{"undefined"!=typeof window&&window.dispatchEvent&&window.dispatchEvent(new CustomEvent("profile-updated",{detail:{pubkey:e,profile:r,event:t}}))}catch(e){console.warn("Failed to dispatch profile-updated event",e)}return r}throw new Error("No profile found")}catch(e){throw console.error("Failed to fetch profile:",e),e}}async function ph(e,t={}){console.log("Starting event fetch with filters:",JSON.stringify(e,null,2)),console.log("Current relays:",oh.relays),oh.isConnected&&0!==oh.relays.length||(console.warn("Client not connected, initializing..."),await vh());const{timeout:n=3e4,useCache:r=!0}=t;if(r)try{const t=await dh(e);t.length>0&&console.log(`Found ${t.length} cached events in IndexedDB`)}catch(e){console.warn("Failed to query cached events",e)}return new Promise((t,r)=>{const o=[],i=setTimeout(()=>{console.log(`Timeout reached after ${n}ms, returning ${o.length} events`),sub.close(),o.length>0&&uh(o).catch(e=>console.warn("Failed to cache events",e)),t(o)},n);try{const n=Math.random().toString(36).substring(7);console.log(`📤 REQ [${n}]:`,JSON.stringify(["REQ",n,...e],null,2));const r=oh.pool.subscribeMany(oh.relays,e,{onevent(e){console.log(`📥 EVENT received for REQ [${n}]:`,{id:e.id?.substring(0,8)+"...",kind:e.kind,pubkey:e.pubkey?.substring(0,8)+"...",created_at:e.created_at,content_preview:e.content?.substring(0,50)}),o.push(e),ch(e).catch(e=>console.warn("Failed to cache event",e))},oneose(){console.log(`✅ EOSE received for REQ [${n}], got ${o.length} events`),clearTimeout(i),r.close(),o.length>0&&uh(o).catch(e=>console.warn("Failed to cache events",e)),t(o)}})}catch(e){clearTimeout(i),console.error("Failed to fetch events:",e),r(e)}})}async function gh(e,t={}){const{timeout:n=1e4}=t;console.log(`Fetching event by ID: ${e}`);try{const t=[{ids:[e]}];console.log("Fetching event with filters:",t);const r=await ph(t,{timeout:n});return console.log(`Fetched ${r.length} events`),r.length>0?r[0]:null}catch(e){throw console.error("Failed to fetch event by ID:",e),e}}async function yh(e,t={}){const{timeout:n=1e4}=t;console.log(`Fetching delete events for target: ${e}`);try{const t=[{kinds:[5],"#e":[e]}];console.log("Fetching delete events with filters:",t);const r=await ph(t,{timeout:n});return console.log(`Fetched ${r.length} delete events`),r}catch(e){throw console.error("Failed to fetch delete events:",e),e}}async function vh(){await oh.connect()}async function mh(){try{const e=await lh(),t=e.transaction(ah,"readonly").objectStore(ah),n=await new Promise((e,n)=>{const r=t.getAll();r.onsuccess=()=>e(r.result),r.onerror=()=>n(r.error)}),r=n.reduce((e,t)=>(e[t.kind]=(e[t.kind]||0)+1,e),{});return console.log("===== IndexedDB Contents ====="),console.log(`Total events: ${n.length}`),console.log("Events by kind:",r),console.log("Kind 0 events:",n.filter(e=>0===e.kind)),console.log("All event IDs:",n.map(e=>({id:e.id.substring(0,8),kind:e.kind,pubkey:e.pubkey.substring(0,8)}))),console.log("=============================="),{total:n.length,byKind:r,events:n}}catch(e){return console.error("Failed to debug IndexedDB:",e),null}}const{window:wh}=l;function bh(e){let t,n,o,i,s,a,l,f,p,y,b,E,k,x,C,A,$,T;function I(e,t){return"extension"===e[2]?kh:Eh}let R=I(e),_=R(e),L=e[5]&&xh(e),P=e[6]&&Sh(e);return{c(){t=h("div"),n=h("div"),o=h("div"),i=h("h2"),i.textContent="Login to Nostr",s=g(),a=h("button"),a.textContent="×",l=g(),f=h("div"),p=h("div"),y=h("button"),y.textContent="Extension",b=g(),E=h("button"),E.textContent="Nsec",k=g(),x=h("div"),_.c(),C=g(),L&&L.c(),A=g(),P&&P.c(),w(i,"class","svelte-1cle6o2"),w(a,"class","close-btn svelte-1cle6o2"),w(o,"class","modal-header svelte-1cle6o2"),w(y,"class","tab-btn svelte-1cle6o2"),S(y,"active","extension"===e[2]),w(E,"class","tab-btn svelte-1cle6o2"),S(E,"active","nsec"===e[2]),w(p,"class","tabs svelte-1cle6o2"),w(x,"class","tab-content svelte-1cle6o2"),w(f,"class","tab-container svelte-1cle6o2"),w(n,"class","modal svelte-1cle6o2"),S(n,"dark-theme",e[1]),w(t,"class","modal-overlay svelte-1cle6o2"),w(t,"role","button"),w(t,"tabindex","0")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(o,i),c(o,s),c(o,a),c(n,l),c(n,f),c(f,p),c(p,y),c(p,b),c(p,E),c(f,k),c(f,x),_.m(x,null),c(x,C),L&&L.m(x,null),c(x,A),P&&P.m(x,null),$||(T=[v(a,"click",e[7]),v(y,"click",e[14]),v(E,"click",e[15]),v(n,"click",m(e[12])),v(n,"keydown",m(e[13])),v(t,"click",e[7]),v(t,"keydown",e[17])],$=!0)},p(e,t){4&t&&S(y,"active","extension"===e[2]),4&t&&S(E,"active","nsec"===e[2]),R===(R=I(e))&&_?_.p(e,t):(_.d(1),_=R(e),_&&(_.c(),_.m(x,C))),e[5]?L?L.p(e,t):(L=xh(e),L.c(),L.m(x,A)):L&&(L.d(1),L=null),e[6]?P?P.p(e,t):(P=Sh(e),P.c(),P.m(x,null)):P&&(P.d(1),P=null),2&t&&S(n,"dark-theme",e[1])},d(e){e&&d(t),_.d(),L&&L.d(),P&&P.d(),$=!1,r(T)}}}function Eh(e){let t,n,o,i,s,a,l,f,y,m,b=e[4]?"Logging in...":"Log in with nsec";return{c(){t=h("div"),n=h("p"),n.textContent="Enter your nsec (private key) to login. This\n will be stored securely in your browser.",o=g(),i=h("input"),s=g(),a=h("button"),l=p(b),w(n,"class","svelte-1cle6o2"),w(i,"type","password"),w(i,"placeholder","nsec1..."),i.disabled=e[4],w(i,"class","nsec-input svelte-1cle6o2"),w(a,"class","login-nsec-btn svelte-1cle6o2"),a.disabled=f=e[4]||!e[3].trim(),w(t,"class","nsec-login svelte-1cle6o2")},m(r,d){u(r,t,d),c(t,n),c(t,o),c(t,i),k(i,e[3]),c(t,s),c(t,a),c(a,l),y||(m=[v(i,"input",e[16]),v(a,"click",e[10])],y=!0)},p(e,t){16&t&&(i.disabled=e[4]),8&t&&i.value!==e[3]&&k(i,e[3]),16&t&&b!==(b=e[4]?"Logging in...":"Log in with nsec")&&E(l,b),24&t&&f!==(f=e[4]||!e[3].trim())&&(a.disabled=f)},d(e){e&&d(t),y=!1,r(m)}}}function kh(e){let t,n,r,o,i,s,a,l=e[4]?"Connecting...":"Log in using extension";return{c(){t=h("div"),n=h("p"),n.textContent="Login using a NIP-07 compatible browser\n extension like nos2x or Alby.",r=g(),o=h("button"),i=p(l),w(n,"class","svelte-1cle6o2"),w(o,"class","login-extension-btn svelte-1cle6o2"),o.disabled=e[4],w(t,"class","extension-login svelte-1cle6o2")},m(l,d){u(l,t,d),c(t,n),c(t,r),c(t,o),c(o,i),s||(a=v(o,"click",e[9]),s=!0)},p(e,t){16&t&&l!==(l=e[4]?"Connecting...":"Log in using extension")&&E(i,l),16&t&&(o.disabled=e[4])},d(e){e&&d(t),s=!1,a()}}}function xh(e){let t,n;return{c(){t=h("div"),n=p(e[5]),w(t,"class","message error-message svelte-1cle6o2")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32&t&&E(n,e[5])},d(e){e&&d(t)}}}function Sh(e){let t,n;return{c(){t=h("div"),n=p(e[6]),w(t,"class","message success-message svelte-1cle6o2")},m(e,r){u(e,t,r),c(t,n)},p(e,t){64&t&&E(n,e[6])},d(e){e&&d(t)}}}function Ch(t){let n,r,o,i=t[0]&&bh(t);return{c(){i&&i.c(),n=y()},m(e,s){i&&i.m(e,s),u(e,n,s),r||(o=v(wh,"keydown",t[11]),r=!0)},p(e,[t]){e[0]?i?i.p(e,t):(i=bh(e),i.c(),i.m(n.parentNode,n)):i&&(i.d(1),i=null)},i:e,o:e,d(e){i&&i.d(e),e&&d(n),r=!1,o()}}}function Ah(e,t,n){const r=T();let{showModal:o=!1}=t,{isDarkTheme:i=!1}=t,s="extension",a="",l=!1,c="",u="";function d(){n(0,o=!1),n(3,a=""),n(5,c=""),n(6,u=""),r("close")}function f(e){n(2,s=e),n(5,c=""),n(6,u="")}async function h(){n(4,l=!0),n(5,c=""),n(6,u="");try{if(!a.trim())throw new Error("Please enter your nsec");if(!(e=a.trim()).startsWith("nsec1")||(e.length<60||e.length>70))throw new Error('Invalid nsec format. Must start with "nsec1"');const t=Hd.fromKey(a.trim()),o=await t.getPublicKey();localStorage.setItem("nostr_auth_method","nsec"),localStorage.setItem("nostr_pubkey",o),localStorage.setItem("nostr_privkey",a.trim()),n(6,u="Successfully logged in with nsec!"),r("login",{method:"nsec",pubkey:o,privateKey:a.trim(),signer:t}),setTimeout(()=>{d()},1500)}catch(e){n(5,c=e.message)}finally{n(4,l=!1)}var e}return e.$$set=e=>{"showModal"in e&&n(0,o=e.showModal),"isDarkTheme"in e&&n(1,i=e.isDarkTheme)},[o,i,s,a,l,c,u,d,f,async function(){n(4,l=!0),n(5,c=""),n(6,u="");try{if(!window.nostr)throw new Error("No Nostr extension found. Please install a NIP-07 compatible extension like nos2x or Alby.");const e=await window.nostr.getPublicKey();e&&(localStorage.setItem("nostr_auth_method","extension"),localStorage.setItem("nostr_pubkey",e),n(6,u="Successfully logged in with extension!"),r("login",{method:"extension",pubkey:e,signer:window.nostr}),setTimeout(()=>{d()},1500))}catch(e){n(5,c=e.message)}finally{n(4,l=!1)}},h,function(e){"Escape"===e.key&&d(),"Enter"===e.key&&"nsec"===s&&h()},function(t){I.call(this,e,t)},function(t){I.call(this,e,t)},()=>f("extension"),()=>f("nsec"),function(){a=this.value,n(3,a)},e=>"Escape"===e.key&&d()]}class $h extends ee{constructor(e){super(),X(this,e,Ah,Ch,i,{showModal:0,isDarkTheme:1})}}function Th(e,t,n){const r=e.slice();return r[72]=t[n],r}function Ih(e,t,n){const r=e.slice();return r[75]=t[n],r}function Rh(e,t,n){const r=e.slice();return r[72]=t[n],r}function _h(e,t,n){const r=e.slice();return r[72]=t[n],r}function Lh(e,t,n){const r=e.slice();return r[72]=t[n],r}function Ph(e,t,n){const r=e.slice();return r[72]=t[n],r}function Oh(e,t,n){const r=e.slice();return r[72]=t[n],r}function Bh(e){let t,n,r;return{c(){t=h("div"),n=p(e[3]),w(t,"class",r="message "+e[4]+" svelte-1y8wjwc")},m(e,r){u(e,t,r),c(t,n)},p(e,o){8&o[0]&&E(n,e[3]),16&o[0]&&r!==(r="message "+e[4]+" svelte-1y8wjwc")&&w(t,"class",r)},d(e){e&&d(t)}}}function jh(e){let t,n,o,i,s,a,l,f,y,m,b,E,x,S,C,A,$,T,I,R,_,L,P,O,B,j,N,M;function U(e,t){return e[5]&&e[5].length>0?Mh:Nh}let F=U(e),D=F(e);function q(e,t){return e[8]&&e[8].length>0?qh:Dh}let H=q(e),z=H(e);return{c(){t=h("div"),n=h("div"),o=h("h3"),o.textContent="Banned Pubkeys",i=g(),s=h("div"),a=h("input"),l=g(),f=h("input"),y=g(),m=h("button"),b=p("Ban Pubkey"),E=g(),x=h("div"),D.c(),S=g(),C=h("div"),A=h("h3"),A.textContent="Allowed Pubkeys",$=g(),T=h("div"),I=h("input"),R=g(),_=h("input"),L=g(),P=h("button"),O=p("Allow Pubkey"),B=g(),j=h("div"),z.c(),w(o,"class","svelte-1y8wjwc"),w(a,"type","text"),w(a,"placeholder","Pubkey (64 hex chars)"),w(a,"class","svelte-1y8wjwc"),w(f,"type","text"),w(f,"placeholder","Reason (optional)"),w(f,"class","svelte-1y8wjwc"),m.disabled=e[2],w(m,"class","svelte-1y8wjwc"),w(s,"class","add-form svelte-1y8wjwc"),w(x,"class","list svelte-1y8wjwc"),w(n,"class","section svelte-1y8wjwc"),w(A,"class","svelte-1y8wjwc"),w(I,"type","text"),w(I,"placeholder","Pubkey (64 hex chars)"),w(I,"class","svelte-1y8wjwc"),w(_,"type","text"),w(_,"placeholder","Reason (optional)"),w(_,"class","svelte-1y8wjwc"),P.disabled=e[2],w(P,"class","svelte-1y8wjwc"),w(T,"class","add-form svelte-1y8wjwc"),w(j,"class","list svelte-1y8wjwc"),w(C,"class","section svelte-1y8wjwc"),w(t,"class","pubkeys-section")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(n,i),c(n,s),c(s,a),k(a,e[6]),c(s,l),c(s,f),k(f,e[7]),c(s,y),c(s,m),c(m,b),c(n,E),c(n,x),D.m(x,null),c(t,S),c(t,C),c(C,A),c(C,$),c(C,T),c(T,I),k(I,e[9]),c(T,R),c(T,_),k(_,e[10]),c(T,L),c(T,P),c(P,O),c(C,B),c(C,j),z.m(j,null),N||(M=[v(a,"input",e[43]),v(f,"input",e[44]),v(m,"click",e[25]),v(I,"input",e[45]),v(_,"input",e[46]),v(P,"click",e[26])],N=!0)},p(e,t){64&t[0]&&a.value!==e[6]&&k(a,e[6]),128&t[0]&&f.value!==e[7]&&k(f,e[7]),4&t[0]&&(m.disabled=e[2]),F===(F=U(e))&&D?D.p(e,t):(D.d(1),D=F(e),D&&(D.c(),D.m(x,null))),512&t[0]&&I.value!==e[9]&&k(I,e[9]),1024&t[0]&&_.value!==e[10]&&k(_,e[10]),4&t[0]&&(P.disabled=e[2]),H===(H=q(e))&&z?z.p(e,t):(z.d(1),z=H(e),z&&(z.c(),z.m(j,null)))},d(e){e&&d(t),D.d(),z.d(),N=!1,r(M)}}}function Nh(t){let n;return{c(){n=h("div"),n.innerHTML="<p>No banned pubkeys configured.</p>",w(n,"class","no-items svelte-1y8wjwc")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Mh(e){let t,n=e[5],r=[];for(let t=0;t<n.length;t+=1)r[t]=Fh(Oh(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(32&o[0]){let i;for(n=e[5],i=0;i<n.length;i+=1){const s=Oh(e,n,i);r[i]?r[i].p(s,o):(r[i]=Fh(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function Uh(e){let t,n,r=e[72].reason+"";return{c(){t=h("span"),n=p(r),w(t,"class","reason svelte-1y8wjwc")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32&t[0]&&r!==(r=e[72].reason+"")&&E(n,r)},d(e){e&&d(t)}}}function Fh(e){let t,n,r,o,i,s=e[72].pubkey+"",a=e[72].reason&&Uh(e);return{c(){t=h("div"),n=h("span"),r=p(s),o=g(),a&&a.c(),i=g(),w(n,"class","pubkey svelte-1y8wjwc"),w(t,"class","list-item svelte-1y8wjwc")},m(e,s){u(e,t,s),c(t,n),c(n,r),c(t,o),a&&a.m(t,null),c(t,i)},p(e,n){32&n[0]&&s!==(s=e[72].pubkey+"")&&E(r,s),e[72].reason?a?a.p(e,n):(a=Uh(e),a.c(),a.m(t,i)):a&&(a.d(1),a=null)},d(e){e&&d(t),a&&a.d()}}}function Dh(t){let n;return{c(){n=h("div"),n.innerHTML="<p>No allowed pubkeys configured.</p>",w(n,"class","no-items svelte-1y8wjwc")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function qh(e){let t,n=e[8],r=[];for(let t=0;t<n.length;t+=1)r[t]=zh(Ph(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(256&o[0]){let i;for(n=e[8],i=0;i<n.length;i+=1){const s=Ph(e,n,i);r[i]?r[i].p(s,o):(r[i]=zh(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function Hh(e){let t,n,r=e[72].reason+"";return{c(){t=h("span"),n=p(r),w(t,"class","reason svelte-1y8wjwc")},m(e,r){u(e,t,r),c(t,n)},p(e,t){256&t[0]&&r!==(r=e[72].reason+"")&&E(n,r)},d(e){e&&d(t)}}}function zh(e){let t,n,r,o,i,s=e[72].pubkey+"",a=e[72].reason&&Hh(e);return{c(){t=h("div"),n=h("span"),r=p(s),o=g(),a&&a.c(),i=g(),w(n,"class","pubkey svelte-1y8wjwc"),w(t,"class","list-item svelte-1y8wjwc")},m(e,s){u(e,t,s),c(t,n),c(n,r),c(t,o),a&&a.m(t,null),c(t,i)},p(e,n){256&n[0]&&s!==(s=e[72].pubkey+"")&&E(r,s),e[72].reason?a?a.p(e,n):(a=Hh(e),a.c(),a.m(t,i)):a&&(a.d(1),a=null)},d(e){e&&d(t),a&&a.d()}}}function Kh(e){let t,n,o,i,s,a,l,f,y,m,b,E,x,S,C,A,$,T,I,R,_,L,P,O,B,j,N,M;function U(e,t){return e[11]&&e[11].length>0?Vh:Wh}let F=U(e),D=F(e);let q=function(e){return e[22]&&e[22].length>0?Qh:Gh}(e),H=q(e);return{c(){t=h("div"),n=h("div"),o=h("h3"),o.textContent="Banned Events",i=g(),s=h("div"),a=h("input"),l=g(),f=h("input"),y=g(),m=h("button"),b=p("Ban Event"),E=g(),x=h("div"),D.c(),S=g(),C=h("div"),A=h("h3"),A.textContent="Allowed Events",$=g(),T=h("div"),I=h("input"),R=g(),_=h("input"),L=g(),P=h("button"),O=p("Allow Event"),B=g(),j=h("div"),H.c(),w(o,"class","svelte-1y8wjwc"),w(a,"type","text"),w(a,"placeholder","Event ID (64 hex chars)"),w(a,"class","svelte-1y8wjwc"),w(f,"type","text"),w(f,"placeholder","Reason (optional)"),w(f,"class","svelte-1y8wjwc"),m.disabled=e[2],w(m,"class","svelte-1y8wjwc"),w(s,"class","add-form svelte-1y8wjwc"),w(x,"class","list svelte-1y8wjwc"),w(n,"class","section svelte-1y8wjwc"),w(A,"class","svelte-1y8wjwc"),w(I,"type","text"),w(I,"placeholder","Event ID (64 hex chars)"),w(I,"class","svelte-1y8wjwc"),w(_,"type","text"),w(_,"placeholder","Reason (optional)"),w(_,"class","svelte-1y8wjwc"),P.disabled=e[2],w(P,"class","svelte-1y8wjwc"),w(T,"class","add-form svelte-1y8wjwc"),w(j,"class","list svelte-1y8wjwc"),w(C,"class","section svelte-1y8wjwc"),w(t,"class","events-section")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(n,i),c(n,s),c(s,a),k(a,e[12]),c(s,l),c(s,f),k(f,e[13]),c(s,y),c(s,m),c(m,b),c(n,E),c(n,x),D.m(x,null),c(t,S),c(t,C),c(C,A),c(C,$),c(C,T),c(T,I),k(I,e[14]),c(T,R),c(T,_),k(_,e[15]),c(T,L),c(T,P),c(P,O),c(C,B),c(C,j),H.m(j,null),N||(M=[v(a,"input",e[47]),v(f,"input",e[48]),v(m,"click",e[27]),v(I,"input",e[49]),v(_,"input",e[50]),v(P,"click",e[28])],N=!0)},p(e,t){4096&t[0]&&a.value!==e[12]&&k(a,e[12]),8192&t[0]&&f.value!==e[13]&&k(f,e[13]),4&t[0]&&(m.disabled=e[2]),F===(F=U(e))&&D?D.p(e,t):(D.d(1),D=F(e),D&&(D.c(),D.m(x,null))),16384&t[0]&&I.value!==e[14]&&k(I,e[14]),32768&t[0]&&_.value!==e[15]&&k(_,e[15]),4&t[0]&&(P.disabled=e[2]),H.p(e,t)},d(e){e&&d(t),D.d(),H.d(),N=!1,r(M)}}}function Wh(t){let n;return{c(){n=h("div"),n.innerHTML="<p>No banned events configured.</p>",w(n,"class","no-items svelte-1y8wjwc")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Vh(e){let t,n=e[11],r=[];for(let t=0;t<n.length;t+=1)r[t]=Zh(Lh(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(2048&o[0]){let i;for(n=e[11],i=0;i<n.length;i+=1){const s=Lh(e,n,i);r[i]?r[i].p(s,o):(r[i]=Zh(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function Jh(e){let t,n,r=e[72].reason+"";return{c(){t=h("span"),n=p(r),w(t,"class","reason svelte-1y8wjwc")},m(e,r){u(e,t,r),c(t,n)},p(e,t){2048&t[0]&&r!==(r=e[72].reason+"")&&E(n,r)},d(e){e&&d(t)}}}function Zh(e){let t,n,r,o,i,s=e[72].id+"",a=e[72].reason&&Jh(e);return{c(){t=h("div"),n=h("span"),r=p(s),o=g(),a&&a.c(),i=g(),w(n,"class","event-id svelte-1y8wjwc"),w(t,"class","list-item svelte-1y8wjwc")},m(e,s){u(e,t,s),c(t,n),c(n,r),c(t,o),a&&a.m(t,null),c(t,i)},p(e,n){2048&n[0]&&s!==(s=e[72].id+"")&&E(r,s),e[72].reason?a?a.p(e,n):(a=Jh(e),a.c(),a.m(t,i)):a&&(a.d(1),a=null)},d(e){e&&d(t),a&&a.d()}}}function Gh(t){let n;return{c(){n=h("div"),n.innerHTML="<p>No allowed events configured.</p>",w(n,"class","no-items svelte-1y8wjwc")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Qh(e){let t,n=e[22],r=[];for(let t=0;t<n.length;t+=1)r[t]=Yh(_h(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(4194304&o[0]){let i;for(n=e[22],i=0;i<n.length;i+=1){const s=_h(e,n,i);r[i]?r[i].p(s,o):(r[i]=Yh(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function Yh(t){let n,r,o,i,s,a=t[72].id+"",l=t[72].reason&&function(t){let n,r,o=t[72].reason+"";return{c(){n=h("span"),r=p(o),w(n,"class","reason svelte-1y8wjwc")},m(e,t){u(e,n,t),c(n,r)},p:e,d(e){e&&d(n)}}}(t);return{c(){n=h("div"),r=h("span"),o=p(a),i=g(),l&&l.c(),s=g(),w(r,"class","event-id svelte-1y8wjwc"),w(n,"class","list-item svelte-1y8wjwc")},m(e,t){u(e,n,t),c(n,r),c(r,o),c(n,i),l&&l.m(n,null),c(n,s)},p(e,t){e[72].reason&&l.p(e,t)},d(e){e&&d(n),l&&l.d()}}}function Xh(e){let t,n,o,i,s,a,l,f,y,m,b,E,x,S,C;function A(e,t){return e[16]&&e[16].length>0?tp:ep}let $=A(e),T=$(e);return{c(){t=h("div"),n=h("div"),o=h("h3"),o.textContent="Blocked IPs",i=g(),s=h("div"),a=h("input"),l=g(),f=h("input"),y=g(),m=h("button"),b=p("Block IP"),E=g(),x=h("div"),T.c(),w(o,"class","svelte-1y8wjwc"),w(a,"type","text"),w(a,"placeholder","IP Address"),w(a,"class","svelte-1y8wjwc"),w(f,"type","text"),w(f,"placeholder","Reason (optional)"),w(f,"class","svelte-1y8wjwc"),m.disabled=e[2],w(m,"class","svelte-1y8wjwc"),w(s,"class","add-form svelte-1y8wjwc"),w(x,"class","list svelte-1y8wjwc"),w(n,"class","section svelte-1y8wjwc"),w(t,"class","ips-section")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(n,i),c(n,s),c(s,a),k(a,e[17]),c(s,l),c(s,f),k(f,e[18]),c(s,y),c(s,m),c(m,b),c(n,E),c(n,x),T.m(x,null),S||(C=[v(a,"input",e[51]),v(f,"input",e[52]),v(m,"click",e[29])],S=!0)},p(e,t){131072&t[0]&&a.value!==e[17]&&k(a,e[17]),262144&t[0]&&f.value!==e[18]&&k(f,e[18]),4&t[0]&&(m.disabled=e[2]),$===($=A(e))&&T?T.p(e,t):(T.d(1),T=$(e),T&&(T.c(),T.m(x,null)))},d(e){e&&d(t),T.d(),S=!1,r(C)}}}function ep(t){let n;return{c(){n=h("div"),n.innerHTML="<p>No blocked IPs configured.</p>",w(n,"class","no-items svelte-1y8wjwc")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function tp(e){let t,n=e[16],r=[];for(let t=0;t<n.length;t+=1)r[t]=rp(Rh(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(65536&o[0]){let i;for(n=e[16],i=0;i<n.length;i+=1){const s=Rh(e,n,i);r[i]?r[i].p(s,o):(r[i]=rp(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function np(e){let t,n,r=e[72].reason+"";return{c(){t=h("span"),n=p(r),w(t,"class","reason svelte-1y8wjwc")},m(e,r){u(e,t,r),c(t,n)},p(e,t){65536&t[0]&&r!==(r=e[72].reason+"")&&E(n,r)},d(e){e&&d(t)}}}function rp(e){let t,n,r,o,i,s=e[72].ip+"",a=e[72].reason&&np(e);return{c(){t=h("div"),n=h("span"),r=p(s),o=g(),a&&a.c(),i=g(),w(n,"class","ip svelte-1y8wjwc"),w(t,"class","list-item svelte-1y8wjwc")},m(e,s){u(e,t,s),c(t,n),c(n,r),c(t,o),a&&a.m(t,null),c(t,i)},p(e,n){65536&n[0]&&s!==(s=e[72].ip+"")&&E(r,s),e[72].reason?a?a.p(e,n):(a=np(e),a.c(),a.m(t,i)):a&&(a.d(1),a=null)},d(e){e&&d(t),a&&a.d()}}}function op(e){let t,n,o,i,s,a,l,f,y,m,E,x,S;function C(e,t){return e[19]&&e[19].length>0?sp:ip}let A=C(e),$=A(e);return{c(){t=h("div"),n=h("div"),o=h("h3"),o.textContent="Allowed Event Kinds",i=g(),s=h("div"),a=h("input"),l=g(),f=h("button"),y=p("Allow Kind"),m=g(),E=h("div"),$.c(),w(o,"class","svelte-1y8wjwc"),w(a,"type","number"),w(a,"placeholder","Kind number"),w(a,"class","svelte-1y8wjwc"),f.disabled=e[2],w(f,"class","svelte-1y8wjwc"),w(s,"class","add-form svelte-1y8wjwc"),w(E,"class","list svelte-1y8wjwc"),w(n,"class","section svelte-1y8wjwc"),w(t,"class","kinds-section")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(n,i),c(n,s),c(s,a),k(a,e[20]),c(s,l),c(s,f),c(f,y),c(n,m),c(n,E),$.m(E,null),x||(S=[v(a,"input",e[53]),v(f,"click",e[30])],x=!0)},p(e,t){1048576&t[0]&&b(a.value)!==e[20]&&k(a,e[20]),4&t[0]&&(f.disabled=e[2]),A===(A=C(e))&&$?$.p(e,t):($.d(1),$=A(e),$&&($.c(),$.m(E,null)))},d(e){e&&d(t),$.d(),x=!1,r(S)}}}function ip(t){let n;return{c(){n=h("div"),n.innerHTML="<p>No allowed kinds configured. All kinds are\n allowed by default.</p>",w(n,"class","no-items svelte-1y8wjwc")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function sp(e){let t,n=e[19],r=[];for(let t=0;t<n.length;t+=1)r[t]=ap(Ih(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(524288&o[0]|1&o[1]){let i;for(n=e[19],i=0;i<n.length;i+=1){const s=Ih(e,n,i);r[i]?r[i].p(s,o):(r[i]=ap(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function ap(e){let t,n,r,o,i,s,a,l,f,y=e[75]+"";function m(){return e[54](e[75])}return{c(){t=h("div"),n=h("span"),r=p("Kind "),o=p(y),i=g(),s=h("button"),s.textContent="Remove",a=g(),w(n,"class","kind svelte-1y8wjwc"),w(s,"class","remove-btn svelte-1y8wjwc"),w(t,"class","list-item svelte-1y8wjwc")},m(e,d){u(e,t,d),c(t,n),c(n,r),c(n,o),c(t,i),c(t,s),c(t,a),l||(f=v(s,"click",m),l=!0)},p(t,n){e=t,524288&n[0]&&y!==(y=e[75]+"")&&E(o,y)},d(e){e&&d(t),l=!1,f()}}}function lp(e){let t,n,r,o,i,s,a,l,f,y;function m(e,t){return e[21]&&e[21].length>0?up:cp}let b=m(e),E=b(e);return{c(){t=h("div"),n=h("div"),r=h("h3"),r.textContent="Events Needing Moderation",o=g(),i=h("button"),s=p("Refresh"),a=g(),l=h("div"),E.c(),w(r,"class","svelte-1y8wjwc"),i.disabled=e[2],w(l,"class","list svelte-1y8wjwc"),w(n,"class","section svelte-1y8wjwc"),w(t,"class","moderation-section")},m(d,h){u(d,t,h),c(t,n),c(n,r),c(n,o),c(n,i),c(i,s),c(n,a),c(n,l),E.m(l,null),f||(y=v(i,"click",e[24]),f=!0)},p(e,t){4&t[0]&&(i.disabled=e[2]),b===(b=m(e))&&E?E.p(e,t):(E.d(1),E=b(e),E&&(E.c(),E.m(l,null)))},d(e){e&&d(t),E.d(),f=!1,y()}}}function cp(t){let n;return{c(){n=h("div"),n.innerHTML="<p>No events need moderation at this time.</p>",w(n,"class","no-items svelte-1y8wjwc")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function up(e){let t,n=e[21],r=[];for(let t=0;t<n.length;t+=1)r[t]=fp(Th(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(2097152&o[0]|12&o[1]){let i;for(n=e[21],i=0;i<n.length;i+=1){const s=Th(e,n,i);r[i]?r[i].p(s,o):(r[i]=fp(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function dp(e){let t,n,r=e[72].reason+"";return{c(){t=h("span"),n=p(r),w(t,"class","reason svelte-1y8wjwc")},m(e,r){u(e,t,r),c(t,n)},p(e,t){2097152&t[0]&&r!==(r=e[72].reason+"")&&E(n,r)},d(e){e&&d(t)}}}function fp(e){let t,n,o,i,s,a,l,f,y,m,b,k,x=e[72].id+"",S=e[72].reason&&dp(e);function C(){return e[55](e[72])}function A(){return e[56](e[72])}return{c(){t=h("div"),n=h("span"),o=p(x),i=g(),S&&S.c(),s=g(),a=h("div"),l=h("button"),l.textContent="Allow",f=g(),y=h("button"),y.textContent="Ban",m=g(),w(n,"class","event-id svelte-1y8wjwc"),w(l,"class","svelte-1y8wjwc"),w(y,"class","svelte-1y8wjwc"),w(a,"class","actions svelte-1y8wjwc"),w(t,"class","list-item svelte-1y8wjwc")},m(e,r){u(e,t,r),c(t,n),c(n,o),c(t,i),S&&S.m(t,null),c(t,s),c(t,a),c(a,l),c(a,f),c(a,y),c(t,m),b||(k=[v(l,"click",C),v(y,"click",A)],b=!0)},p(n,r){e=n,2097152&r[0]&&x!==(x=e[72].id+"")&&E(o,x),e[72].reason?S?S.p(e,r):(S=dp(e),S.c(),S.m(t,s)):S&&(S.d(1),S=null)},d(e){e&&d(t),S&&S.d(),b=!1,r(k)}}}function hp(e){let t,n,o,i,s,a,l,f,y,m,b,E,x,S,C,A,$,T,I,R,_,L,P,O,B,j,N,M;function U(e,t){return e[2]?gp:pp}let F=U(e),D=F(e);return{c(){t=h("div"),n=h("div"),o=h("h3"),o.textContent="Relay Configuration",i=g(),s=h("div"),a=h("button"),l=p("🔄 Refresh from Relay Info"),f=g(),y=h("div"),m=h("div"),b=h("label"),b.textContent="Relay Name",E=g(),x=h("input"),S=g(),C=h("div"),A=h("label"),A.textContent="Relay Description",$=g(),T=h("textarea"),I=g(),R=h("div"),_=h("label"),_.textContent="Relay Icon URL",L=g(),P=h("input"),O=g(),B=h("div"),j=h("button"),D.c(),w(o,"class","svelte-1y8wjwc"),a.disabled=e[2],w(a,"class","refresh-btn svelte-1y8wjwc"),w(s,"class","config-actions svelte-1y8wjwc"),w(b,"for","relay-name"),w(b,"class","svelte-1y8wjwc"),w(x,"id","relay-name"),w(x,"type","text"),w(x,"placeholder","Enter relay name"),w(x,"class","svelte-1y8wjwc"),w(m,"class","form-group svelte-1y8wjwc"),w(A,"for","relay-description"),w(A,"class","svelte-1y8wjwc"),w(T,"id","relay-description"),w(T,"placeholder","Enter relay description"),w(T,"class","svelte-1y8wjwc"),w(C,"class","form-group svelte-1y8wjwc"),w(_,"for","relay-icon"),w(_,"class","svelte-1y8wjwc"),w(P,"id","relay-icon"),w(P,"type","url"),w(P,"placeholder","Enter icon URL"),w(P,"class","svelte-1y8wjwc"),w(R,"class","form-group svelte-1y8wjwc"),j.disabled=e[2],w(j,"class","update-all-btn svelte-1y8wjwc"),w(B,"class","config-update-section svelte-1y8wjwc"),w(y,"class","config-form svelte-1y8wjwc"),w(n,"class","section svelte-1y8wjwc"),w(t,"class","relay-section")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(n,i),c(n,s),c(s,a),c(a,l),c(n,f),c(n,y),c(y,m),c(m,b),c(m,E),c(m,x),k(x,e[0].relay_name),c(y,S),c(y,C),c(C,A),c(C,$),c(C,T),k(T,e[0].relay_description),c(y,I),c(y,R),c(R,_),c(R,L),c(R,P),k(P,e[0].relay_icon),c(y,O),c(y,B),c(B,j),D.m(j,null),N||(M=[v(a,"click",e[23]),v(x,"input",e[57]),v(T,"input",e[58]),v(P,"input",e[59]),v(j,"click",e[32])],N=!0)},p(e,t){4&t[0]&&(a.disabled=e[2]),1&t[0]&&x.value!==e[0].relay_name&&k(x,e[0].relay_name),1&t[0]&&k(T,e[0].relay_description),1&t[0]&&P.value!==e[0].relay_icon&&k(P,e[0].relay_icon),F!==(F=U(e))&&(D.d(1),D=F(e),D&&(D.c(),D.m(j,null))),4&t[0]&&(j.disabled=e[2])},d(e){e&&d(t),D.d(),N=!1,r(M)}}}function pp(e){let t;return{c(){t=p("💾 Update Configuration")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function gp(e){let t;return{c(){t=p("⏳ Updating...")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function yp(t){let n,o,i,s,a,l,f,y,m,b,E,k,x,S,C,A,$,T,I,R,_,L,P,O,B,j,N,M,U,F,D,q,H,z,K,W,V,J=t[3]&&Bh(t),Z="pubkeys"===t[1]&&jh(t),G="events"===t[1]&&Kh(t),Q="ips"===t[1]&&Xh(t),Y="kinds"===t[1]&&op(t),X="moderation"===t[1]&&lp(t),ee="relay"===t[1]&&hp(t);return{c(){n=h("div"),o=h("div"),o.innerHTML='<h2 class="svelte-1y8wjwc">Managed ACL Configuration</h2> \n <p class="svelte-1y8wjwc">Configure access control using NIP-86 management API</p> \n <div class="owner-only-notice svelte-1y8wjwc"><strong>Owner Only:</strong> This interface is restricted to relay owners\n only.</div>',i=g(),J&&J.c(),s=g(),a=h("div"),l=h("button"),f=p("Pubkeys"),m=g(),b=h("button"),E=p("Events"),x=g(),S=h("button"),C=p("IPs"),$=g(),T=h("button"),I=p("Kinds"),_=g(),L=h("button"),P=p("Moderation"),B=g(),j=h("button"),N=p("Relay Config"),U=g(),F=h("div"),Z&&Z.c(),D=g(),G&&G.c(),q=g(),Q&&Q.c(),H=g(),Y&&Y.c(),z=g(),X&&X.c(),K=g(),ee&&ee.c(),w(o,"class","header svelte-1y8wjwc"),w(l,"class",y="tab "+("pubkeys"===t[1]?"active":"")+" svelte-1y8wjwc"),w(b,"class",k="tab "+("events"===t[1]?"active":"")+" svelte-1y8wjwc"),w(S,"class",A="tab "+("ips"===t[1]?"active":"")+" svelte-1y8wjwc"),w(T,"class",R="tab "+("kinds"===t[1]?"active":"")+" svelte-1y8wjwc"),w(L,"class",O="tab "+("moderation"===t[1]?"active":"")+" svelte-1y8wjwc"),w(j,"class",M="tab "+("relay"===t[1]?"active":"")+" svelte-1y8wjwc"),w(a,"class","tabs svelte-1y8wjwc"),w(F,"class","tab-content svelte-1y8wjwc")},m(e,r){u(e,n,r),c(n,o),c(n,i),J&&J.m(n,null),c(n,s),c(n,a),c(a,l),c(l,f),c(a,m),c(a,b),c(b,E),c(a,x),c(a,S),c(S,C),c(a,$),c(a,T),c(T,I),c(a,_),c(a,L),c(L,P),c(a,B),c(a,j),c(j,N),c(n,U),c(n,F),Z&&Z.m(F,null),c(F,D),G&&G.m(F,null),c(F,q),Q&&Q.m(F,null),c(F,H),Y&&Y.m(F,null),c(F,z),X&&X.m(F,null),c(F,K),ee&&ee.m(F,null),W||(V=[v(l,"click",t[37]),v(b,"click",t[38]),v(S,"click",t[39]),v(T,"click",t[40]),v(L,"click",t[41]),v(j,"click",t[42])],W=!0)},p(e,t){e[3]?J?J.p(e,t):(J=Bh(e),J.c(),J.m(n,s)):J&&(J.d(1),J=null),2&t[0]&&y!==(y="tab "+("pubkeys"===e[1]?"active":"")+" svelte-1y8wjwc")&&w(l,"class",y),2&t[0]&&k!==(k="tab "+("events"===e[1]?"active":"")+" svelte-1y8wjwc")&&w(b,"class",k),2&t[0]&&A!==(A="tab "+("ips"===e[1]?"active":"")+" svelte-1y8wjwc")&&w(S,"class",A),2&t[0]&&R!==(R="tab "+("kinds"===e[1]?"active":"")+" svelte-1y8wjwc")&&w(T,"class",R),2&t[0]&&O!==(O="tab "+("moderation"===e[1]?"active":"")+" svelte-1y8wjwc")&&w(L,"class",O),2&t[0]&&M!==(M="tab "+("relay"===e[1]?"active":"")+" svelte-1y8wjwc")&&w(j,"class",M),"pubkeys"===e[1]?Z?Z.p(e,t):(Z=jh(e),Z.c(),Z.m(F,D)):Z&&(Z.d(1),Z=null),"events"===e[1]?G?G.p(e,t):(G=Kh(e),G.c(),G.m(F,q)):G&&(G.d(1),G=null),"ips"===e[1]?Q?Q.p(e,t):(Q=Xh(e),Q.c(),Q.m(F,H)):Q&&(Q.d(1),Q=null),"kinds"===e[1]?Y?Y.p(e,t):(Y=op(e),Y.c(),Y.m(F,z)):Y&&(Y.d(1),Y=null),"moderation"===e[1]?X?X.p(e,t):(X=lp(e),X.c(),X.m(F,K)):X&&(X.d(1),X=null),"relay"===e[1]?ee?ee.p(e,t):(ee=hp(e),ee.c(),ee.m(F,null)):ee&&(ee.d(1),ee=null)},i:e,o:e,d(e){e&&d(n),J&&J.d(),Z&&Z.d(),G&&G.d(),Q&&Q.d(),Y&&Y.d(),X&&X.d(),ee&&ee.d(),W=!1,r(V)}}}function vp(e,t,n){let{userSigner:r}=t,{userPubkey:o}=t,i="pubkeys",s=!1,a="",l="info",c=[],u="",d="",f=[],h="",p="",g=[],y="",v="",m="",w="",E=[],k="",x="",S=[],C="",A=[],T={relay_name:"",relay_description:"",relay_icon:""};var I;async function R(){try{n(2,s=!0),console.log("Fetching relay info from /");const e=await fetch(window.location.origin+"/",{headers:{Accept:"application/nostr+json"}});if(console.log("Response status:",e.status),console.log("Response headers:",e.headers),e.ok){const t=await e.json();console.log("Raw relay info:",t),n(0,T={relay_name:t.name||"",relay_description:t.description||"",relay_icon:t.icon||""}),console.log("Updated relayConfig:",T),console.log("Loaded relay info:",t),n(3,a="Relay configuration loaded successfully"),n(4,l="success")}else console.error("Failed to fetch relay info, status:",e.status),n(3,a=`Failed to fetch relay info: ${e.status}`),n(4,l="error")}catch(e){console.error("Failed to fetch relay info:",e),n(3,a=`Failed to fetch relay info: ${e.message}`),n(4,l="error")}finally{n(2,s=!1)}}async function _(e,t=[]){try{n(2,s=!0),n(3,a="");const i={method:e,params:t},l=await async function(e,t){if(!r)throw new Error("No signer available for authentication. Please log in with a Nostr extension.");if(!o)throw new Error("No user pubkey available for authentication.");const n=window.location.origin+t,i={kind:27235,created_at:Math.floor(Date.now()/1e3),tags:[["u",n],["method",e]],content:"",pubkey:o},s=await r.signEvent(i),a=JSON.stringify(s);return`Nostr ${btoa(a)}`}("POST","/api/nip86"),c=await fetch("/api/nip86",{method:"POST",headers:{"Content-Type":"application/nostr+json+rpc",Authorization:l},body:JSON.stringify(i)});if(!c.ok)throw new Error(`HTTP ${c.status}: ${c.statusText}`);const u=await c.json();if(u.error)throw new Error(u.error);return u.result}catch(e){throw console.error("NIP-86 API error:",e),n(3,a=e.message),n(4,l="error"),e}finally{n(2,s=!1)}}async function L(){try{n(5,c=await _("listbannedpubkeys"))}catch(e){console.error("Failed to load banned pubkeys:",e)}}async function P(){try{n(8,f=await _("listallowedpubkeys"))}catch(e){console.error("Failed to load allowed pubkeys:",e)}}async function O(){try{n(11,g=await _("listbannedevents"))}catch(e){console.error("Failed to load banned events:",e)}}async function B(){try{n(16,E=await _("listblockedips"))}catch(e){console.error("Failed to load blocked IPs:",e)}}async function j(){try{n(19,S=await _("listallowedkinds"))}catch(e){console.error("Failed to load allowed kinds:",e)}}async function N(){try{n(2,s=!0),n(21,A=await _("listeventsneedingmoderation")),console.log("Loaded events needing moderation:",A)}catch(e){console.error("Failed to load events needing moderation:",e),n(3,a=`Failed to load moderation events: ${e.message}`),n(4,l="error"),n(21,A=[])}finally{n(2,s=!1)}}async function M(e){try{await _("disallowkind",[e]),n(3,a="Kind disallowed successfully"),n(4,l="success"),await j()}catch(e){console.error("Failed to disallow kind:",e)}}async function U(e){try{await _("allowevent",[e,"Approved from moderation queue"]),n(3,a="Event allowed successfully"),n(4,l="success"),await N()}catch(e){console.error("Failed to allow event from moderation:",e)}}async function F(e){try{await _("banevent",[e,"Banned from moderation queue"]),n(3,a="Event banned successfully"),n(4,l="success"),await N()}catch(e){console.error("Failed to ban event from moderation:",e)}}I=()=>{setTimeout(()=>{R()},100)},$().$$.on_mount.push(I),async function(){await Promise.all([L(),P(),O(),B(),j()])}();return e.$$set=e=>{"userSigner"in e&&n(35,r=e.userSigner),"userPubkey"in e&&n(36,o=e.userPubkey)},e.$$.update=()=>{1&e.$$.dirty[0]&&console.log("relayConfig changed:",T)},[T,i,s,a,l,c,u,d,f,h,p,g,y,v,m,w,E,k,x,S,C,A,[],R,N,async function(){if(u)try{await _("banpubkey",[u,d]),n(3,a="Pubkey banned successfully"),n(4,l="success"),n(6,u=""),n(7,d=""),await L()}catch(e){console.error("Failed to ban pubkey:",e)}},async function(){if(h)try{await _("allowpubkey",[h,p]),n(3,a="Pubkey allowed successfully"),n(4,l="success"),n(9,h=""),n(10,p=""),await P()}catch(e){console.error("Failed to allow pubkey:",e)}},async function(){if(y)try{await _("banevent",[y,v]),n(3,a="Event banned successfully"),n(4,l="success"),n(12,y=""),n(13,v=""),await O()}catch(e){console.error("Failed to ban event:",e)}},async function(){if(m)try{await _("allowevent",[m,w]),n(3,a="Event allowed successfully"),n(4,l="success"),n(14,m=""),n(15,w="")}catch(e){console.error("Failed to allow event:",e)}},async function(){if(k)try{await _("blockip",[k,x]),n(3,a="IP blocked successfully"),n(4,l="success"),n(17,k=""),n(18,x=""),await B()}catch(e){console.error("Failed to block IP:",e)}},async function(){if(!C)return;const e=parseInt(C);if(isNaN(e))return n(3,a="Invalid kind number"),void n(4,l="error");try{await _("allowkind",[e]),n(3,a="Kind allowed successfully"),n(4,l="success"),n(20,C=""),await j()}catch(e){console.error("Failed to allow kind:",e)}},M,async function(){try{n(2,s=!0),n(3,a="");const e=[];if(T.relay_name&&e.push(_("changerelayname",[T.relay_name])),T.relay_description&&e.push(_("changerelaydescription",[T.relay_description])),T.relay_icon&&e.push(_("changerelayicon",[T.relay_icon])),0===e.length)return n(3,a="No changes to update"),void n(4,l="info");await Promise.all(e),n(3,a="Relay configuration updated successfully"),n(4,l="success"),await R()}catch(e){console.error("Failed to update relay configuration:",e),n(3,a=`Failed to update relay configuration: ${e.message}`),n(4,l="error")}finally{n(2,s=!1)}},U,F,r,o,()=>n(1,i="pubkeys"),()=>n(1,i="events"),()=>n(1,i="ips"),()=>n(1,i="kinds"),()=>{n(1,i="moderation"),A&&0!==A.length||N()},()=>n(1,i="relay"),function(){u=this.value,n(6,u)},function(){d=this.value,n(7,d)},function(){h=this.value,n(9,h)},function(){p=this.value,n(10,p)},function(){y=this.value,n(12,y)},function(){v=this.value,n(13,v)},function(){m=this.value,n(14,m)},function(){w=this.value,n(15,w)},function(){k=this.value,n(17,k)},function(){x=this.value,n(18,x)},function(){C=b(this.value),n(20,C)},e=>M(e),e=>U(e.id),e=>F(e.id),function(){T.relay_name=this.value,n(0,T)},function(){T.relay_description=this.value,n(0,T)},function(){T.relay_icon=this.value,n(0,T)}]}class mp extends ee{constructor(e){super(),X(this,e,vp,yp,i,{userSigner:35,userPubkey:36},null,[-1,-1,-1])}}function wp(e){let t,n,r,o=e[3]&&e[4]&&Ep(e);return{c(){t=h("div"),n=h("span"),r=p("ORLY? dashboard\n "),o&&o.c(),w(n,"class","app-title svelte-1mrm2k6"),w(t,"class","header-title svelte-1mrm2k6")},m(e,i){u(e,t,i),c(t,n),c(n,r),o&&o.m(n,null)},p(e,t){e[3]&&e[4]?o?o.p(e,t):(o=Ep(e),o.c(),o.m(n,null)):o&&(o.d(1),o=null)},d(e){e&&d(t),o&&o.d()}}}function bp(e){let t,n,o,i;return{c(){t=h("div"),n=h("input"),w(n,"type","text"),w(n,"class","search-input svelte-1mrm2k6"),w(n,"placeholder","Search..."),w(t,"class","search-input-container svelte-1mrm2k6")},m(r,s){u(r,t,s),c(t,n),k(n,e[0]),o||(i=[v(n,"input",e[13]),v(n,"keydown",e[8])],o=!0)},p(e,t){1&t&&n.value!==e[0]&&k(n,e[0])},d(e){e&&d(t),o=!1,r(i)}}}function Ep(e){let t,n;return{c(){t=h("span"),n=p(e[5]),w(t,"class","permission-badge svelte-1mrm2k6")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32&t&&E(n,e[5])},d(e){e&&d(t)}}}function kp(t){let n,r,o;return{c(){n=h("button"),n.textContent="Log in",w(n,"class","login-btn svelte-1mrm2k6")},m(e,i){u(e,n,i),r||(o=v(n,"click",t[12]),r=!0)},p:e,d(e){e&&d(n),r=!1,o()}}}function xp(e){let t,n,r,o,i,s,a=(e[6]?.name||e[7].slice(0,8)+"...")+"";function l(e,t){return e[6]?.picture?Cp:Sp}let f=l(e),y=f(e);return{c(){t=h("button"),y.c(),n=g(),r=h("span"),o=p(a),w(r,"class","user-name svelte-1mrm2k6"),w(t,"class","user-profile-btn svelte-1mrm2k6")},m(a,l){u(a,t,l),y.m(t,null),c(t,n),c(t,r),c(r,o),i||(s=v(t,"click",e[11]),i=!0)},p(e,r){f===(f=l(e))&&y?y.p(e,r):(y.d(1),y=f(e),y&&(y.c(),y.m(t,n))),192&r&&a!==(a=(e[6]?.name||e[7].slice(0,8)+"...")+"")&&E(o,a)},d(e){e&&d(t),y.d(),i=!1,s()}}}function Sp(t){let n;return{c(){n=h("div"),n.textContent="👤",w(n,"class","user-avatar-placeholder svelte-1mrm2k6")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Cp(e){let t,n;return{c(){t=h("img"),a(t.src,n=e[6].picture)||w(t,"src",n),w(t,"alt","User avatar"),w(t,"class","user-avatar svelte-1mrm2k6")},m(e,n){u(e,t,n)},p(e,r){64&r&&!a(t.src,n=e[6].picture)&&w(t,"src",n)},d(e){e&&d(t)}}}function Ap(t){let n,o,i,s,l,f,y,m,b,k,x,C,A,$,T=t[1]?"☀️":"🌙";function I(e,t){return e[2]?bp:wp}let R=I(t),_=R(t);function L(e,t){return e[3]?xp:kp}let P=L(t),O=P(t);return{c(){n=h("header"),o=h("div"),i=h("img"),l=g(),_.c(),f=g(),y=h("div"),m=h("button"),m.textContent="🔍",b=g(),k=h("button"),x=p(T),C=g(),O.c(),a(i.src,s="/orly.png")||w(i,"src","/orly.png"),w(i,"alt","ORLY Logo"),w(i,"class","logo svelte-1mrm2k6"),w(m,"class","search-btn svelte-1mrm2k6"),w(k,"class","theme-toggle-btn svelte-1mrm2k6"),w(y,"class","header-buttons svelte-1mrm2k6"),w(o,"class","header-content svelte-1mrm2k6"),w(n,"class","main-header svelte-1mrm2k6"),S(n,"dark-theme",t[1])},m(e,r){u(e,n,r),c(n,o),c(o,i),c(o,l),_.m(o,null),c(o,f),c(o,y),c(y,m),c(y,b),c(y,k),c(k,x),c(y,C),O.m(y,null),A||($=[v(m,"click",t[9]),v(k,"click",t[10])],A=!0)},p(e,[t]){R===(R=I(e))&&_?_.p(e,t):(_.d(1),_=R(e),_&&(_.c(),_.m(o,f))),2&t&&T!==(T=e[1]?"☀️":"🌙")&&E(x,T),P===(P=L(e))&&O?O.p(e,t):(O.d(1),O=P(e),O&&(O.c(),O.m(y,null))),2&t&&S(n,"dark-theme",e[1])},i:e,o:e,d(e){e&&d(n),_.d(),O.d(),A=!1,r($)}}}function $p(e,t,n){let{isDarkTheme:r=!1}=t,{isSearchMode:o=!1}=t,{searchQuery:i=""}=t,{isLoggedIn:s=!1}=t,{userRole:a=""}=t,{currentEffectiveRole:l=""}=t,{userProfile:c=null}=t,{userPubkey:u=""}=t;const d=T();return e.$$set=e=>{"isDarkTheme"in e&&n(1,r=e.isDarkTheme),"isSearchMode"in e&&n(2,o=e.isSearchMode),"searchQuery"in e&&n(0,i=e.searchQuery),"isLoggedIn"in e&&n(3,s=e.isLoggedIn),"userRole"in e&&n(4,a=e.userRole),"currentEffectiveRole"in e&&n(5,l=e.currentEffectiveRole),"userProfile"in e&&n(6,c=e.userProfile),"userPubkey"in e&&n(7,u=e.userPubkey)},[i,r,o,s,a,l,c,u,function(e){d("searchKeydown",e)},function(){d("toggleSearchMode")},function(){d("toggleTheme")},function(){d("openSettingsDrawer")},function(){d("openLoginModal")},function(){i=this.value,n(0,i)}]}class Tp extends ee{constructor(e){super(),X(this,e,$p,Ap,i,{isDarkTheme:1,isSearchMode:2,searchQuery:0,isLoggedIn:3,userRole:4,currentEffectiveRole:5,userProfile:6,userPubkey:7})}}function Ip(e,t,n){const r=e.slice();return r[9]=t[n],r}function Rp(e){let t,n,o;function i(){return e[5](e[9])}function s(...t){return e[6](e[9],...t)}return{c(){t=h("span"),t.textContent="✕",w(t,"class","tab-close-icon svelte-1tm0fmz"),w(t,"role","button"),w(t,"tabindex","0")},m(e,r){u(e,t,r),n||(o=[v(t,"click",m(i)),v(t,"keydown",s)],n=!0)},p(t,n){e=t},d(e){e&&d(t),n=!1,r(o)}}}function _p(e){let t,n,r,o,i,s,a,l,f,y,m=e[9].icon+"",b=e[9].label+"",k=e[9].isSearchTab&&Rp(e);function x(){return e[7](e[9])}return{c(){t=h("button"),n=h("span"),r=p(m),o=g(),i=h("span"),s=p(b),a=g(),k&&k.c(),l=g(),w(n,"class","tab-icon svelte-1tm0fmz"),w(i,"class","tab-label svelte-1tm0fmz"),w(t,"class","tab svelte-1tm0fmz"),S(t,"active",e[2]===e[9].id)},m(e,d){u(e,t,d),c(t,n),c(n,r),c(t,o),c(t,i),c(i,s),c(t,a),k&&k.m(t,null),c(t,l),f||(y=v(t,"click",x),f=!0)},p(n,o){e=n,2&o&&m!==(m=e[9].icon+"")&&E(r,m),2&o&&b!==(b=e[9].label+"")&&E(s,b),e[9].isSearchTab?k?k.p(e,o):(k=Rp(e),k.c(),k.m(t,l)):k&&(k.d(1),k=null),6&o&&S(t,"active",e[2]===e[9].id)},d(e){e&&d(t),k&&k.d(),f=!1,y()}}}function Lp(t){let n,r,o,i=t[1],s=[];for(let e=0;e<i.length;e+=1)s[e]=_p(Ip(t,i,e));return{c(){n=h("aside"),r=h("div"),o=h("div");for(let e=0;e<s.length;e+=1)s[e].c();w(o,"class","tabs svelte-1tm0fmz"),w(r,"class","sidebar-content svelte-1tm0fmz"),w(n,"class","sidebar svelte-1tm0fmz"),S(n,"dark-theme",t[0])},m(e,t){u(e,n,t),c(n,r),c(r,o);for(let e=0;e<s.length;e+=1)s[e]&&s[e].m(o,null)},p(e,[t]){if(30&t){let n;for(i=e[1],n=0;n<i.length;n+=1){const r=Ip(e,i,n);s[n]?s[n].p(r,t):(s[n]=_p(r),s[n].c(),s[n].m(o,null))}for(;n<s.length;n+=1)s[n].d(1);s.length=i.length}1&t&&S(n,"dark-theme",e[0])},i:e,o:e,d(e){e&&d(n),f(s,e)}}}function Pp(e,t,n){let{isDarkTheme:r=!1}=t,{tabs:o=[]}=t,{selectedTab:i=""}=t;const s=T();function a(e){s("selectTab",e)}function l(e){s("closeSearchTab",e)}return e.$$set=e=>{"isDarkTheme"in e&&n(0,r=e.isDarkTheme),"tabs"in e&&n(1,o=e.tabs),"selectedTab"in e&&n(2,i=e.selectedTab)},[r,o,i,a,l,e=>l(e.id),(e,t)=>"Enter"===t.key&&l(e.id),e=>a(e.id)]}class Op extends ee{constructor(e){super(),X(this,e,Pp,Lp,i,{isDarkTheme:0,tabs:1,selectedTab:2})}}function Bp(t){let n,r,o,i,s,a;return{c(){n=h("div"),r=h("p"),r.textContent="Please log in to access export functionality.",o=g(),i=h("button"),i.textContent="Log In",w(r,"class","svelte-1qkvicp"),w(i,"class","login-btn svelte-1qkvicp"),w(n,"class","login-prompt svelte-1qkvicp")},m(e,l){u(e,n,l),c(n,r),c(n,o),c(n,i),s||(a=v(i,"click",t[4]),s=!0)},p:e,d(e){e&&d(n),s=!1,a()}}}function jp(e){let t,n,r,o,i,s,a,l,f,p,m=("admin"===e[1]||"owner"===e[1])&&Np(e);return{c(){t=h("div"),n=h("h3"),n.textContent="Export My Events",r=g(),o=h("p"),o.textContent="Download your personal events as a JSONL file.",i=g(),s=h("button"),s.textContent="📤 Export My Events",a=g(),m&&m.c(),l=y(),w(n,"class","svelte-1qkvicp"),w(o,"class","svelte-1qkvicp"),w(s,"class","export-btn svelte-1qkvicp"),w(t,"class","export-section svelte-1qkvicp")},m(d,h){u(d,t,h),c(t,n),c(t,r),c(t,o),c(t,i),c(t,s),u(d,a,h),m&&m.m(d,h),u(d,l,h),f||(p=v(s,"click",e[2]),f=!0)},p(e,t){"admin"===e[1]||"owner"===e[1]?m?m.p(e,t):(m=Np(e),m.c(),m.m(l.parentNode,l)):m&&(m.d(1),m=null)},d(e){e&&d(t),e&&d(a),m&&m.d(e),e&&d(l),f=!1,p()}}}function Np(t){let n,r,o,i,s,a,l,f;return{c(){n=h("div"),r=h("h3"),r.textContent="Export All Events",o=g(),i=h("p"),i.textContent="Download the complete database as a JSONL file. This includes\n all events from all users.",s=g(),a=h("button"),a.textContent="📤 Export All Events",w(r,"class","svelte-1qkvicp"),w(i,"class","svelte-1qkvicp"),w(a,"class","export-btn svelte-1qkvicp"),w(n,"class","export-section svelte-1qkvicp")},m(e,d){u(e,n,d),c(n,r),c(n,o),c(n,i),c(n,s),c(n,a),l||(f=v(a,"click",t[3]),l=!0)},p:e,d(e){e&&d(n),l=!1,f()}}}function Mp(t){let n;function r(e,t){return e[0]?jp:Bp}let o=r(t),i=o(t);return{c(){i.c(),n=y()},m(e,t){i.m(e,t),u(e,n,t)},p(e,[t]){o===(o=r(e))&&i?i.p(e,t):(i.d(1),i=o(e),i&&(i.c(),i.m(n.parentNode,n)))},i:e,o:e,d(e){i.d(e),e&&d(n)}}}function Up(e,t,n){let{isLoggedIn:r=!1}=t,{currentEffectiveRole:o=""}=t;const i=T();return e.$$set=e=>{"isLoggedIn"in e&&n(0,r=e.isLoggedIn),"currentEffectiveRole"in e&&n(1,o=e.currentEffectiveRole)},[r,o,function(){i("exportMyEvents")},function(){i("exportAllEvents")},function(){i("openLoginModal")}]}class Fp extends ee{constructor(e){super(),X(this,e,Up,Mp,i,{isLoggedIn:0,currentEffectiveRole:1})}}function Dp(t){let n,r,o,i,s,a,l,f;return{c(){n=h("div"),r=h("h3"),r.textContent="Import Events",o=g(),i=h("p"),i.textContent="Please log in to access import functionality.",s=g(),a=h("button"),a.textContent="Log In",w(r,"class","recovery-header svelte-1nvu2m9"),w(i,"class","recovery-description svelte-1nvu2m9"),w(a,"class","login-btn svelte-1nvu2m9"),w(n,"class","login-prompt svelte-1nvu2m9")},m(e,d){u(e,n,d),c(n,r),c(n,o),c(n,i),c(n,s),c(n,a),l||(f=v(a,"click",t[5]),l=!0)},p:e,d(e){e&&d(n),l=!1,f()}}}function qp(t){let n;return{c(){n=h("div"),n.innerHTML='<h3 class="recovery-header svelte-1nvu2m9">Import Events</h3> \n <p class="recovery-description svelte-1nvu2m9">❌ Admin or owner permission required for import functionality.</p>',w(n,"class","permission-denied svelte-1nvu2m9")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Hp(e){let t,n,o,i,s,a,l,f,y,m,b,E;return{c(){t=h("h3"),t.textContent="Import Events",n=g(),o=h("p"),o.textContent="Upload a JSONL file to import events into the database.",i=g(),s=h("div"),a=h("input"),l=g(),f=h("button"),y=p("Import Events"),w(t,"class","svelte-1nvu2m9"),w(o,"class","svelte-1nvu2m9"),w(a,"type","file"),w(a,"id","import-file"),w(a,"accept",".jsonl,.txt"),w(a,"class","svelte-1nvu2m9"),w(f,"class","import-btn svelte-1nvu2m9"),f.disabled=m=!e[2],w(s,"class","recovery-controls-card svelte-1nvu2m9")},m(r,d){u(r,t,d),u(r,n,d),u(r,o,d),u(r,i,d),u(r,s,d),c(s,a),c(s,l),c(s,f),c(f,y),b||(E=[v(a,"change",e[3]),v(f,"click",e[4])],b=!0)},p(e,t){4&t&&m!==(m=!e[2])&&(f.disabled=m)},d(e){e&&d(t),e&&d(n),e&&d(o),e&&d(i),e&&d(s),b=!1,r(E)}}}function zp(t){let n;function r(e,t){return!e[0]||"admin"!==e[1]&&"owner"!==e[1]?e[0]?qp:Dp:Hp}let o=r(t),i=o(t);return{c(){n=h("div"),i.c(),w(n,"class","import-section svelte-1nvu2m9")},m(e,t){u(e,n,t),i.m(n,null)},p(e,[t]){o===(o=r(e))&&i?i.p(e,t):(i.d(1),i=o(e),i&&(i.c(),i.m(n,null)))},i:e,o:e,d(e){e&&d(n),i.d()}}}function Kp(e,t,n){let{isLoggedIn:r=!1}=t,{currentEffectiveRole:o=""}=t,{selectedFile:i=null}=t;const s=T();return e.$$set=e=>{"isLoggedIn"in e&&n(0,r=e.isLoggedIn),"currentEffectiveRole"in e&&n(1,o=e.currentEffectiveRole),"selectedFile"in e&&n(2,i=e.selectedFile)},[r,o,i,function(e){s("fileSelect",e)},function(){s("importEvents")},function(){s("openLoginModal")}]}class Wp extends ee{constructor(e){super(),X(this,e,Kp,zp,i,{isLoggedIn:0,currentEffectiveRole:1,selectedFile:2})}}function Vp(e,t,n){const r=e.slice();return r[22]=t[n],r}function Jp(e,t,n){const r=e.slice();return r[25]=t[n],r}function Zp(t){let n;return{c(){n=h("div"),n.innerHTML="<p>❌ Read, write, admin, or owner permission required to view all\n events.</p>",w(n,"class","permission-denied svelte-kvggf0")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Gp(e){let t,n,r,o;function i(e,t){return e[4].length>0?Yp:e[6]?void 0:Qp}let s=i(e),a=s&&s(e),l=e[6]&&sg();return{c(){t=h("div"),a&&a.c(),n=g(),l&&l.c(),w(t,"class","events-view-content svelte-kvggf0")},m(i,s){u(i,t,s),a&&a.m(t,null),c(t,n),l&&l.m(t,null),r||(o=v(t,"scroll",e[7]),r=!0)},p(e,r){s===(s=i(e))&&a?a.p(e,r):(a&&a.d(1),a=s&&s(e),a&&(a.c(),a.m(t,n))),e[6]?l||(l=sg(),l.c(),l.m(t,null)):l&&(l.d(1),l=null)},d(e){e&&d(t),a&&a.d(),l&&l.d(),r=!1,o()}}}function Qp(t){let n;return{c(){n=h("div"),n.innerHTML="<p>No events found.</p>",w(n,"class","no-events svelte-kvggf0")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Yp(e){let t,n=e[4],r=[];for(let t=0;t<n.length;t+=1)r[t]=ig(Vp(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(1852&o){let i;for(n=e[4],i=0;i<n.length;i+=1){const s=Vp(e,n,i);r[i]?r[i].p(s,o):(r[i]=ig(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function Xp(e){let t,n,r=pg(e[22].content)+"";return{c(){t=h("div"),n=p(r),w(t,"class","event-content-single-line svelte-kvggf0")},m(e,r){u(e,t,r),c(t,n)},p(e,t){16&t&&r!==(r=pg(e[22].content)+"")&&E(n,r)},d(e){e&&d(t)}}}function eg(e){let t,n,r,o=e[22].tags&&e[22].tags.length>0&&tg(e);return{c(){t=h("div"),n=h("span"),n.textContent="🗑️ Delete Event",r=g(),o&&o.c(),w(n,"class","delete-event-label svelte-kvggf0"),w(t,"class","delete-event-info svelte-kvggf0")},m(e,i){u(e,t,i),c(t,n),c(t,r),o&&o.m(t,null)},p(e,n){e[22].tags&&e[22].tags.length>0?o?o.p(e,n):(o=tg(e),o.c(),o.m(t,null)):o&&(o.d(1),o=null)},d(e){e&&d(t),o&&o.d()}}}function tg(e){let t,n=e[22].tags.filter(gg),r=[];for(let t=0;t<n.length;t+=1)r[t]=ng(Jp(e,n,t));return{c(){t=h("div");for(let e=0;e<r.length;e+=1)r[e].c();w(t,"class","delete-targets svelte-kvggf0")},m(e,n){u(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,o){if(16&o){let i;for(n=e[22].tags.filter(gg),i=0;i<n.length;i+=1){const s=Jp(e,n,i);r[i]?r[i].p(s,o):(r[i]=ng(s),r[i].c(),r[i].m(t,null))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){e&&d(t),f(r,e)}}}function ng(e){let t,n,r,o,i,s=e[25][1].slice(0,8)+"",a=e[25][1].slice(-8)+"";return{c(){t=h("span"),n=p("Target: "),r=p(s),o=p("..."),i=p(a),w(t,"class","delete-target svelte-kvggf0")},m(e,s){u(e,t,s),c(t,n),c(t,r),c(t,o),c(t,i)},p(e,t){16&t&&s!==(s=e[25][1].slice(0,8)+"")&&E(r,s),16&t&&a!==(a=e[25][1].slice(-8)+"")&&E(i,a)},d(e){e&&d(t)}}}function rg(e){let t,n,r;function o(){return e[13](e[22])}return{c(){t=h("button"),t.textContent="🗑️",w(t,"class","delete-btn svelte-kvggf0")},m(e,i){u(e,t,i),n||(r=v(t,"click",m(o)),n=!0)},p(t,n){e=t},d(e){e&&d(t),n=!1,r()}}}function og(e){let t,n,r,o,i,s,a,l,f=JSON.stringify(e[22],null,2)+"";function y(...t){return e[16](e[22],...t)}return{c(){t=h("div"),n=h("div"),r=h("pre"),o=p(f),i=g(),s=h("button"),s.textContent="📋",w(r,"class","event-json svelte-kvggf0"),w(s,"class","copy-json-btn svelte-kvggf0"),w(s,"title","Copy minified JSON to clipboard"),w(n,"class","json-container svelte-kvggf0"),w(t,"class","events-view-details svelte-kvggf0")},m(e,d){u(e,t,d),c(t,n),c(n,r),c(r,o),c(n,i),c(n,s),a||(l=v(s,"click",m(y)),a=!0)},p(t,n){e=t,16&n&&f!==(f=JSON.stringify(e[22],null,2)+"")&&E(o,f)},d(e){e&&d(t),a=!1,l()}}}function ig(e){let t,n,o,i,s,a,l,f,y,m,b,k,x,C,A,$,T,I,R,_,L,P,O,B,j=dg(e[22].pubkey)+"",N=e[22].kind+"",M=fg(e[22].kind)+"",U=hg(e[22].created_at)+"",F=e[5].has(e[22].id);function D(e,t){return 5===e[22].kind?eg:Xp}let q=D(e),H=q(e),z=5!==e[22].kind&&("admin"===e[2]||"owner"===e[2]||"write"===e[2]&&e[22].pubkey&&e[22].pubkey===e[3])&&rg(e);function K(){return e[14](e[22])}function W(...t){return e[15](e[22],...t)}let V=F&&og(e);return{c(){t=h("div"),n=h("div"),o=h("div"),o.innerHTML='<div class="avatar-placeholder svelte-kvggf0">👤</div>',i=g(),s=h("div"),a=h("div"),l=p(j),f=g(),y=h("div"),m=h("span"),b=p(N),k=g(),x=h("span"),C=p(M),A=g(),$=h("div"),T=h("div"),I=p(U),R=g(),H.c(),_=g(),z&&z.c(),L=g(),V&&V.c(),P=g(),w(o,"class","events-view-avatar svelte-kvggf0"),w(a,"class","events-view-author svelte-kvggf0"),w(m,"class","kind-number svelte-kvggf0"),S(m,"delete-event",5===e[22].kind),w(x,"class","kind-name svelte-kvggf0"),w(y,"class","events-view-kind svelte-kvggf0"),w(s,"class","events-view-info svelte-kvggf0"),w(T,"class","event-timestamp svelte-kvggf0"),w($,"class","events-view-content svelte-kvggf0"),w(n,"class","events-view-row svelte-kvggf0"),w(n,"role","button"),w(n,"tabindex","0"),w(t,"class","events-view-item svelte-kvggf0"),S(t,"expanded",e[5].has(e[22].id))},m(e,r){u(e,t,r),c(t,n),c(n,o),c(n,i),c(n,s),c(s,a),c(a,l),c(s,f),c(s,y),c(y,m),c(m,b),c(y,k),c(y,x),c(x,C),c(n,A),c(n,$),c($,T),c(T,I),c($,R),H.m($,null),c(n,_),z&&z.m(n,null),c(t,L),V&&V.m(t,null),c(t,P),O||(B=[v(n,"click",K),v(n,"keydown",W)],O=!0)},p(r,o){e=r,16&o&&j!==(j=dg(e[22].pubkey)+"")&&E(l,j),16&o&&N!==(N=e[22].kind+"")&&E(b,N),16&o&&S(m,"delete-event",5===e[22].kind),16&o&&M!==(M=fg(e[22].kind)+"")&&E(C,M),16&o&&U!==(U=hg(e[22].created_at)+"")&&E(I,U),q===(q=D(e))&&H?H.p(e,o):(H.d(1),H=q(e),H&&(H.c(),H.m($,null))),5!==e[22].kind&&("admin"===e[2]||"owner"===e[2]||"write"===e[2]&&e[22].pubkey&&e[22].pubkey===e[3])?z?z.p(e,o):(z=rg(e),z.c(),z.m(n,null)):z&&(z.d(1),z=null),48&o&&(F=e[5].has(e[22].id)),F?V?V.p(e,o):(V=og(e),V.c(),V.m(t,P)):V&&(V.d(1),V=null),48&o&&S(t,"expanded",e[5].has(e[22].id))},d(e){e&&d(t),H.d(),z&&z.d(),V&&V.d(),O=!1,r(B)}}}function sg(e){let t;return{c(){t=h("div"),t.innerHTML='<div class="spinner svelte-kvggf0"></div> \n <p>Loading events...</p>',w(t,"class","loading-events svelte-kvggf0")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function ag(e){let t,n,o,i,s,a,l,f,y,m,b,E,k,x,S,C;function A(e,t){return e[6]?cg:lg}let $=A(e),T=$(e);return{c(){t=h("div"),n=h("div"),o=h("label"),i=h("input"),s=g(),a=h("span"),l=g(),f=h("span"),f.textContent="Only show my events",y=g(),m=h("div"),b=h("button"),E=p("🔄 Load More"),k=g(),x=h("button"),T.c(),w(i,"type","checkbox"),w(i,"class","svelte-kvggf0"),w(a,"class","toggle-slider svelte-kvggf0"),w(f,"class","toggle-label svelte-kvggf0"),w(o,"class","toggle-container svelte-kvggf0"),w(n,"class","events-view-toggle svelte-kvggf0"),w(b,"class","refresh-btn svelte-kvggf0"),b.disabled=e[6],w(x,"class","reload-btn svelte-kvggf0"),x.disabled=e[6],w(m,"class","events-view-buttons svelte-kvggf0"),w(t,"class","events-view-header svelte-kvggf0")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(o,i),i.checked=e[0],c(o,s),c(o,a),c(o,l),c(o,f),c(t,y),c(t,m),c(m,b),c(b,E),c(m,k),c(m,x),T.m(x,null),S||(C=[v(i,"change",e[17]),v(i,"change",e[18]),v(b,"click",e[19]),v(x,"click",e[20])],S=!0)},p(e,t){1&t&&(i.checked=e[0]),64&t&&(b.disabled=e[6]),$!==($=A(e))&&(T.d(1),T=$(e),T&&(T.c(),T.m(x,null))),64&t&&(x.disabled=e[6])},d(e){e&&d(t),T.d(),S=!1,r(C)}}}function lg(e){let t;return{c(){t=p("🔄")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function cg(e){let t;return{c(){t=h("div"),w(t,"class","spinner svelte-kvggf0")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function ug(t){let n,r;function o(e,t){return!e[1]||"read"!==e[2]&&"write"!==e[2]&&"admin"!==e[2]&&"owner"!==e[2]?Zp:Gp}let i=o(t),s=i(t),a=t[1]&&("read"===t[2]||"write"===t[2]||"admin"===t[2]||"owner"===t[2])&&ag(t);return{c(){n=h("div"),s.c(),r=g(),a&&a.c(),w(n,"class","events-view-container svelte-kvggf0")},m(e,t){u(e,n,t),s.m(n,null),c(n,r),a&&a.m(n,null)},p(e,[t]){i===(i=o(e))&&s?s.p(e,t):(s.d(1),s=i(e),s&&(s.c(),s.m(n,r))),!e[1]||"read"!==e[2]&&"write"!==e[2]&&"admin"!==e[2]&&"owner"!==e[2]?a&&(a.d(1),a=null):a?a.p(e,t):(a=ag(e),a.c(),a.m(n,null))},i:e,o:e,d(e){e&&d(n),s.d(),a&&a.d()}}}function dg(e){return e?e.slice(0,8)+"..."+e.slice(-8):""}function fg(e){return{0:"Profile",1:"Text Note",2:"Recommend Relay",3:"Contacts",4:"Encrypted DM",5:"Delete",6:"Repost",7:"Reaction",8:"Badge Award",16:"Generic Repost",40:"Channel Creation",41:"Channel Metadata",42:"Channel Message",43:"Channel Hide Message",44:"Channel Mute User",1984:"Reporting",9734:"Zap Request",9735:"Zap",1e4:"Mute List",10001:"Pin List",10002:"Relay List",22242:"Client Auth",24133:"Nostr Connect",27235:"HTTP Auth",3e4:"Categorized People",30001:"Categorized Bookmarks",30008:"Profile Badges",30009:"Badge Definition",30017:"Create or update a stall",30018:"Create or update a product",30023:"Long-form Content",30024:"Draft Long-form Content",30078:"Application-specific Data",30311:"Live Event",30315:"User Statuses",30402:"Classified Listing",30403:"Draft Classified Listing",31922:"Date-Based Calendar Event",31923:"Time-Based Calendar Event",31924:"Calendar",31925:"Calendar Event RSVP",31989:"Handler recommendation",31990:"Handler information",34550:"Community Definition"}[e]||`Kind ${e}`}function hg(e){return new Date(1e3*e).toLocaleString()}function pg(e){return e?e.length>100?e.slice(0,100)+"...":e:""}const gg=e=>"e"===e[0];function yg(e,t,n){let{isLoggedIn:r=!1}=t,{userRole:o=""}=t,{userPubkey:i=""}=t,{filteredEvents:s=[]}=t,{expandedEvents:a=new Set}=t,{isLoadingEvents:l=!1}=t,{showOnlyMyEvents:c=!1}=t;const u=T();function d(e){u("toggleEventExpansion",e)}function f(e){u("deleteEvent",e)}function h(e,t){u("copyEventToClipboard",{event:e,e:t})}function p(){u("toggleChange")}function g(e,t){u("loadAllEvents",{refresh:e,authors:t})}return e.$$set=e=>{"isLoggedIn"in e&&n(1,r=e.isLoggedIn),"userRole"in e&&n(2,o=e.userRole),"userPubkey"in e&&n(3,i=e.userPubkey),"filteredEvents"in e&&n(4,s=e.filteredEvents),"expandedEvents"in e&&n(5,a=e.expandedEvents),"isLoadingEvents"in e&&n(6,l=e.isLoadingEvents),"showOnlyMyEvents"in e&&n(0,c=e.showOnlyMyEvents)},[c,r,o,i,s,a,l,function(e){u("scroll",e)},d,f,h,p,g,e=>f(e.id),e=>d(e.id),(e,t)=>"Enter"===t.key&&d(e.id),(e,t)=>h(e,t),function(){c=this.checked,n(0,c)},()=>p(),()=>{g(!1,c&&i?[i]:null)},()=>{g(!0,c&&i?[i]:null)}]}class vg extends ee{constructor(e){super(),X(this,e,yg,ug,i,{isLoggedIn:1,userRole:2,userPubkey:3,filteredEvents:4,expandedEvents:5,isLoadingEvents:6,showOnlyMyEvents:0})}}function mg(t){let n,o,i,s,a,l,f,p,y,m,b,E;return{c(){n=h("div"),o=h("div"),i=h("button"),i.textContent="Reformat",s=g(),a=h("button"),a.textContent="Sign",l=g(),f=h("button"),f.textContent="Publish",p=g(),y=h("div"),m=h("textarea"),w(i,"class","compose-btn reformat-btn svelte-mkdcsl"),w(a,"class","compose-btn sign-btn svelte-mkdcsl"),w(f,"class","compose-btn publish-btn svelte-mkdcsl"),w(o,"class","compose-header svelte-mkdcsl"),w(m,"class","compose-textarea svelte-mkdcsl"),w(m,"placeholder","Enter your Nostr event JSON here..."),w(m,"spellcheck","false"),w(y,"class","compose-editor svelte-mkdcsl"),w(n,"class","compose-view svelte-mkdcsl")},m(e,r){u(e,n,r),c(n,o),c(o,i),c(o,s),c(o,a),c(o,l),c(o,f),c(n,p),c(n,y),c(y,m),k(m,t[0]),b||(E=[v(i,"click",t[1]),v(a,"click",t[2]),v(f,"click",t[3]),v(m,"input",t[4])],b=!0)},p(e,[t]){1&t&&k(m,e[0])},i:e,o:e,d(e){e&&d(n),b=!1,r(E)}}}function wg(e,t,n){let{composeEventJson:r=""}=t;const o=T();return e.$$set=e=>{"composeEventJson"in e&&n(0,r=e.composeEventJson)},[r,function(){o("reformatJson")},function(){o("signEvent")},function(){o("publishEvent")},function(){r=this.value,n(0,r)}]}class bg extends ee{constructor(e){super(),X(this,e,wg,mg,i,{composeEventJson:0})}}function Eg(e,t,n){const r=e.slice();return r[23]=t[n],r}function kg(t){let n,r,o,i,s,a;return{c(){n=h("div"),r=h("p"),r.textContent="Please log in to access sprocket management.",o=g(),i=h("button"),i.textContent="Log In",w(r,"class","svelte-fiaj1r"),w(i,"class","login-btn svelte-fiaj1r"),w(n,"class","login-prompt svelte-fiaj1r")},m(e,l){u(e,n,l),c(n,r),c(n,o),c(n,i),s||(a=v(i,"click",t[18]),s=!0)},p:e,d(e){e&&d(n),s=!1,a()}}}function xg(e){let t,n,r,o,i,s,a,l,f,y=(e[2]||"none")+"";return{c(){t=h("div"),n=h("p"),n.textContent="❌ Owner permission required for sprocket management.",r=g(),o=h("p"),o.innerHTML='To enable sprocket functionality, set the <code class="svelte-fiaj1r">ORLY_OWNERS</code> environment variable with your npub when starting the relay.',i=g(),s=h("p"),a=p("Current user role: "),l=h("strong"),f=p(y),w(n,"class","svelte-fiaj1r"),w(o,"class","svelte-fiaj1r"),w(s,"class","svelte-fiaj1r"),w(t,"class","permission-denied svelte-fiaj1r")},m(e,d){u(e,t,d),c(t,n),c(t,r),c(t,o),c(t,i),c(t,s),c(s,a),c(s,l),c(l,f)},p(e,t){4&t&&y!==(y=(e[2]||"none")+"")&&E(f,y)},d(e){e&&d(t)}}}function Sg(e){let t,n,o,i,s,a,l,y,m,b,x,C,A,$,T,I,R,_,L,P,O,B,j,N,M,U,F,D,q,H,z,K,W,V,J,Z,G,Q,Y,X,ee,te,ne,re,oe,ie,se,ae,le,ce,ue,de,fe,he,pe,ge,ye=e[3]?.is_running?"🟢 Running":"🔴 Stopped",ve=e[3]?.script_exists?"✅ Exists":"❌ Not found",me=e[3]?.pid&&Cg(e),we=e[6]&&Ag(e),be=e[8],Ee=[];for(let t=0;t<be.length;t+=1)Ee[t]=Ig(Eg(e,be,t));return{c(){t=h("div"),n=h("div"),o=h("h3"),o.textContent="Script Editor",i=g(),s=h("div"),a=h("button"),l=p("🔄 Restart"),y=g(),m=h("button"),b=p("🗑️ Delete Script"),C=g(),A=h("div"),$=h("h4"),$.textContent="Upload Script",T=g(),I=h("div"),R=h("input"),_=g(),L=h("button"),P=p("📤 Upload & Update"),B=g(),j=h("div"),N=h("div"),M=h("span"),M.textContent="Status:",U=g(),F=h("span"),D=p(ye),q=g(),me&&me.c(),H=g(),z=h("div"),K=h("span"),K.textContent="Script:",W=g(),V=h("span"),J=p(ve),Z=g(),G=h("div"),Q=h("textarea"),Y=g(),X=h("div"),ee=h("button"),te=p("💾 Save & Update"),ne=g(),re=h("button"),oe=p("📥 Load Current"),ie=g(),we&&we.c(),se=g(),ae=h("div"),le=h("h3"),le.textContent="Script Versions",ce=g(),ue=h("div");for(let e=0;e<Ee.length;e+=1)Ee[e].c();de=g(),fe=h("button"),he=p("🔄 Refresh Versions"),w(o,"class","svelte-fiaj1r"),w(a,"class","sprocket-btn restart-btn svelte-fiaj1r"),a.disabled=e[4],w(m,"class","sprocket-btn delete-btn svelte-fiaj1r"),m.disabled=x=e[4]||!e[3]?.script_exists,w(s,"class","sprocket-controls svelte-fiaj1r"),w(n,"class","sprocket-header svelte-fiaj1r"),w($,"class","svelte-fiaj1r"),w(R,"type","file"),w(R,"id","sprocket-upload-file"),w(R,"accept",".sh,.bash"),R.disabled=e[4],w(R,"class","svelte-fiaj1r"),w(L,"class","sprocket-btn upload-btn svelte-fiaj1r"),L.disabled=O=e[4]||!e[5],w(I,"class","upload-controls svelte-fiaj1r"),w(A,"class","sprocket-upload-section svelte-fiaj1r"),w(M,"class","status-label svelte-fiaj1r"),w(F,"class","status-value svelte-fiaj1r"),S(F,"running",e[3]?.is_running),w(N,"class","status-item svelte-fiaj1r"),w(K,"class","status-label svelte-fiaj1r"),w(V,"class","status-value svelte-fiaj1r"),w(z,"class","status-item svelte-fiaj1r"),w(j,"class","sprocket-status svelte-fiaj1r"),w(Q,"class","script-editor svelte-fiaj1r"),w(Q,"placeholder","#!/bin/bash # Enter your sprocket script here..."),Q.disabled=e[4],w(G,"class","script-editor-container svelte-fiaj1r"),w(ee,"class","sprocket-btn save-btn svelte-fiaj1r"),ee.disabled=e[4],w(re,"class","sprocket-btn load-btn svelte-fiaj1r"),re.disabled=e[4],w(X,"class","script-actions svelte-fiaj1r"),w(t,"class","sprocket-section svelte-fiaj1r"),w(ue,"class","versions-list svelte-fiaj1r"),w(fe,"class","sprocket-btn refresh-btn svelte-fiaj1r"),fe.disabled=e[4],w(ae,"class","sprocket-section svelte-fiaj1r")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(n,i),c(n,s),c(s,a),c(a,l),c(s,y),c(s,m),c(m,b),c(t,C),c(t,A),c(A,$),c(A,T),c(A,I),c(I,R),c(I,_),c(I,L),c(L,P),c(t,B),c(t,j),c(j,N),c(N,M),c(N,U),c(N,F),c(F,D),c(j,q),me&&me.m(j,null),c(j,H),c(j,z),c(z,K),c(z,W),c(z,V),c(V,J),c(t,Z),c(t,G),c(G,Q),k(Q,e[0]),c(t,Y),c(t,X),c(X,ee),c(ee,te),c(X,ne),c(X,re),c(re,oe),c(t,ie),we&&we.m(t,null),u(r,se,d),u(r,ae,d),c(ae,le),c(ae,ce),c(ae,ue);for(let e=0;e<Ee.length;e+=1)Ee[e]&&Ee[e].m(ue,null);c(ae,de),c(ae,fe),c(fe,he),pe||(ge=[v(a,"click",e[9]),v(m,"click",e[10]),v(R,"change",e[11]),v(L,"click",e[12]),v(Q,"input",e[19]),v(ee,"click",e[13]),v(re,"click",e[14]),v(fe,"click",e[15])],pe=!0)},p(e,n){if(16&n&&(a.disabled=e[4]),24&n&&x!==(x=e[4]||!e[3]?.script_exists)&&(m.disabled=x),16&n&&(R.disabled=e[4]),48&n&&O!==(O=e[4]||!e[5])&&(L.disabled=O),8&n&&ye!==(ye=e[3]?.is_running?"🟢 Running":"🔴 Stopped")&&E(D,ye),8&n&&S(F,"running",e[3]?.is_running),e[3]?.pid?me?me.p(e,n):(me=Cg(e),me.c(),me.m(j,H)):me&&(me.d(1),me=null),8&n&&ve!==(ve=e[3]?.script_exists?"✅ Exists":"❌ Not found")&&E(J,ve),16&n&&(Q.disabled=e[4]),1&n&&k(Q,e[0]),16&n&&(ee.disabled=e[4]),16&n&&(re.disabled=e[4]),e[6]?we?we.p(e,n):(we=Ag(e),we.c(),we.m(t,null)):we&&(we.d(1),we=null),196880&n){let t;for(be=e[8],t=0;t<be.length;t+=1){const r=Eg(e,be,t);Ee[t]?Ee[t].p(r,n):(Ee[t]=Ig(r),Ee[t].c(),Ee[t].m(ue,null))}for(;t<Ee.length;t+=1)Ee[t].d(1);Ee.length=be.length}16&n&&(fe.disabled=e[4])},d(e){e&&d(t),me&&me.d(),we&&we.d(),e&&d(se),e&&d(ae),f(Ee,e),pe=!1,r(ge)}}}function Cg(e){let t,n,r,o,i,s=e[3].pid+"";return{c(){t=h("div"),n=h("span"),n.textContent="PID:",r=g(),o=h("span"),i=p(s),w(n,"class","status-label svelte-fiaj1r"),w(o,"class","status-value svelte-fiaj1r"),w(t,"class","status-item svelte-fiaj1r")},m(e,s){u(e,t,s),c(t,n),c(t,r),c(t,o),c(o,i)},p(e,t){8&t&&s!==(s=e[3].pid+"")&&E(i,s)},d(e){e&&d(t)}}}function Ag(e){let t,n;return{c(){t=h("div"),n=p(e[6]),w(t,"class","sprocket-message svelte-fiaj1r"),S(t,"error","error"===e[7])},m(e,r){u(e,t,r),c(t,n)},p(e,r){64&r&&E(n,e[6]),128&r&&S(t,"error","error"===e[7])},d(e){e&&d(t)}}}function $g(e){let t;return{c(){t=h("span"),t.textContent="Current",w(t,"class","current-badge svelte-fiaj1r")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function Tg(e){let t,n,r,o;function i(){return e[21](e[23])}return{c(){t=h("button"),n=p("🗑️ Delete"),w(t,"class","version-btn delete-btn svelte-fiaj1r"),t.disabled=e[4]},m(e,s){u(e,t,s),c(t,n),r||(o=v(t,"click",i),r=!0)},p(n,r){e=n,16&r&&(t.disabled=e[4])},d(e){e&&d(t),r=!1,o()}}}function Ig(e){let t,n,r,o,i,s,a,l,f,y,m,b,k,x,C,A,$=e[23].name+"",T=new Date(e[23].modified).toLocaleString()+"",I=e[23].is_current&&$g();function R(){return e[20](e[23])}let _=!e[23].is_current&&Tg(e);return{c(){t=h("div"),n=h("div"),r=h("div"),o=p($),i=g(),s=h("div"),a=p(T),l=g(),I&&I.c(),f=g(),y=h("div"),m=h("button"),b=p("📥 Load"),k=g(),_&&_.c(),x=g(),w(r,"class","version-name svelte-fiaj1r"),w(s,"class","version-date svelte-fiaj1r"),w(n,"class","version-info svelte-fiaj1r"),w(m,"class","version-btn load-btn svelte-fiaj1r"),m.disabled=e[4],w(y,"class","version-actions svelte-fiaj1r"),w(t,"class","version-item svelte-fiaj1r"),S(t,"current",e[23].is_current)},m(e,d){u(e,t,d),c(t,n),c(n,r),c(r,o),c(n,i),c(n,s),c(s,a),c(s,l),I&&I.m(s,null),c(t,f),c(t,y),c(y,m),c(m,b),c(y,k),_&&_.m(y,null),c(t,x),C||(A=v(m,"click",R),C=!0)},p(n,r){e=n,256&r&&$!==($=e[23].name+"")&&E(o,$),256&r&&T!==(T=new Date(e[23].modified).toLocaleString()+"")&&E(a,T),e[23].is_current?I||(I=$g(),I.c(),I.m(s,null)):I&&(I.d(1),I=null),16&r&&(m.disabled=e[4]),e[23].is_current?_&&(_.d(1),_=null):_?_.p(e,r):(_=Tg(e),_.c(),_.m(y,null)),256&r&&S(t,"current",e[23].is_current)},d(e){e&&d(t),I&&I.d(),_&&_.d(),C=!1,A()}}}function Rg(t){let n,r,o;function i(e,t){return e[1]&&"owner"===e[2]?Sg:e[1]?xg:kg}let s=i(t),a=s(t);return{c(){n=h("div"),r=h("h2"),r.textContent="Sprocket Script Management",o=g(),a.c(),w(r,"class","svelte-fiaj1r"),w(n,"class","sprocket-view svelte-fiaj1r")},m(e,t){u(e,n,t),c(n,r),c(n,o),a.m(n,null)},p(e,[t]){s===(s=i(e))&&a?a.p(e,t):(a.d(1),a=s(e),a&&(a.c(),a.m(n,null)))},i:e,o:e,d(e){e&&d(n),a.d()}}}function _g(e,t,n){let{isLoggedIn:r=!1}=t,{userRole:o=""}=t,{sprocketStatus:i=null}=t,{isLoadingSprocket:s=!1}=t,{sprocketUploadFile:a=null}=t,{sprocketScript:l=""}=t,{sprocketMessage:c=""}=t,{sprocketMessageType:u=""}=t,{sprocketVersions:d=[]}=t;const f=T();function h(e){f("loadVersion",e)}function p(e){f("deleteVersion",e)}return e.$$set=e=>{"isLoggedIn"in e&&n(1,r=e.isLoggedIn),"userRole"in e&&n(2,o=e.userRole),"sprocketStatus"in e&&n(3,i=e.sprocketStatus),"isLoadingSprocket"in e&&n(4,s=e.isLoadingSprocket),"sprocketUploadFile"in e&&n(5,a=e.sprocketUploadFile),"sprocketScript"in e&&n(0,l=e.sprocketScript),"sprocketMessage"in e&&n(6,c=e.sprocketMessage),"sprocketMessageType"in e&&n(7,u=e.sprocketMessageType),"sprocketVersions"in e&&n(8,d=e.sprocketVersions)},[l,r,o,i,s,a,c,u,d,function(){f("restartSprocket")},function(){f("deleteSprocket")},function(e){f("sprocketFileSelect",e)},function(){f("uploadSprocketScript")},function(){f("saveSprocket")},function(){f("loadSprocket")},function(){f("loadVersions")},h,p,function(){f("openLoginModal")},function(){l=this.value,n(0,l)},e=>h(e),e=>p(e.name)]}class Lg extends ee{constructor(e){super(),X(this,e,_g,Rg,i,{isLoggedIn:1,userRole:2,sprocketStatus:3,isLoadingSprocket:4,sprocketUploadFile:5,sprocketScript:0,sprocketMessage:6,sprocketMessageType:7,sprocketVersions:8})}}const Pg={0:"Profile Metadata",1:"Text Note",2:"Recommend Relay",3:"Contacts",4:"Encrypted DM",5:"Delete Request",6:"Repost",7:"Reaction",8:"Badge Award",16:"Generic Repost",40:"Channel Creation",41:"Channel Metadata",42:"Channel Message",43:"Channel Hide Message",44:"Channel Mute User",1063:"File Metadata",1311:"Live Chat Message",1984:"Reporting",1985:"Label",9734:"Zap Request",9735:"Zap Receipt",1e4:"Mute List",10001:"Pin List",10002:"Relay List Metadata",10003:"Bookmark List",10004:"Communities List",10005:"Public Chats List",10006:"Blocked Relays List",10007:"Search Relays List",10009:"User Groups",10015:"Interests List",10030:"User Emoji List",13194:"Wallet Info",22242:"Client Auth",23194:"Wallet Request",23195:"Wallet Response",24133:"Nostr Connect",27235:"HTTP Auth",3e4:"Categorized People List",30001:"Categorized Bookmarks",30002:"Categorized Relay List",30003:"Bookmark Sets",30004:"Curation Sets",30005:"Video Sets",30008:"Profile Badges",30009:"Badge Definition",30015:"Interest Sets",30017:"Create/Update Stall",30018:"Create/Update Product",30019:"Marketplace UI/UX",30020:"Product Sold As Auction",30023:"Long-form Content",30024:"Draft Long-form Content",30030:"Emoji Sets",30063:"Release Artifact Sets",30078:"Application-specific Data",30311:"Live Event",30315:"User Statuses",30388:"Slide Set",30402:"Classified Listing",30403:"Draft Classified Listing",30617:"Repository Announcement",30618:"Repository State Announcement",30818:"Wiki Article",30819:"Redirects",31922:"Date-Based Calendar Event",31923:"Time-Based Calendar Event",31924:"Calendar",31925:"Calendar Event RSVP",31989:"Handler Recommendation",31990:"Handler Information",34550:"Community Definition",34551:"Community Post Approval"};function Og(e,t=null){if(!e||"string"!=typeof e)return!1;return!!/^[0-9a-fA-F]+$/.test(e)&&(!t||e.length===t)}function Bg(e){const t=new Date(1e3*e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}T${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}function jg(e){return Math.floor(new Date(e).getTime()/1e3)}function Ng({searchText:e=null,kinds:t=[],authors:n=[],ids:r=[],tags:o=[],since:i=null,until:s=null,limit:a=null}){const l={};return e&&e.trim()&&(l.search=e.trim()),t&&t.length>0&&(l.kinds=t),n&&n.length>0&&(l.authors=n),r&&r.length>0&&(l.ids=r),o&&o.length>0&&o.forEach(e=>{if(e.name&&e.value){const t=`#${e.name}`;l[t]||(l[t]=[]),l[t].push(e.value)}}),i&&(l.since=i),s&&(l.until=s),a&&a>0&&(l.limit=a),l}function Mg(e,t,n){const r=e.slice();return r[52]=t[n],r[54]=n,r}function Ug(e,t,n){const r=e.slice();return r[55]=t[n],r}function Fg(e,t,n){const r=e.slice();return r[58]=t[n],r}function Dg(e,t,n){const r=e.slice();return r[61]=t[n],r}function qg(e,t,n){const r=e.slice();return r[61]=t[n].kind,r[64]=t[n].name,r}function Hg(e){let t,n,r,o,i,s,a=e[17],l=[];for(let t=0;t<a.length;t+=1)l[t]=zg(qg(e,a,t));return{c(){t=h("div"),n=h("input"),r=g(),o=h("div");for(let e=0;e<l.length;e+=1)l[e].c();w(n,"type","text"),w(n,"placeholder","Search kinds..."),w(n,"class","filter-input kind-search svelte-13qtr87"),w(o,"class","kinds-list svelte-13qtr87"),w(t,"class","kinds-picker svelte-13qtr87")},m(a,d){u(a,t,d),c(t,n),k(n,e[8]),c(t,r),c(t,o);for(let e=0;e<l.length;e+=1)l[e]&&l[e].m(o,null);i||(s=v(n,"input",e[35]),i=!0)},p(e,t){if(256&t[0]&&n.value!==e[8]&&k(n,e[8]),393218&t[0]){let n;for(a=e[17],n=0;n<a.length;n+=1){const r=qg(e,a,n);l[n]?l[n].p(r,t):(l[n]=zg(r),l[n].c(),l[n].m(o,null))}for(;n<l.length;n+=1)l[n].d(1);l.length=a.length}},d(e){e&&d(t),f(l,e),i=!1,s()}}}function zg(e){let t,n,r,o,i,s,a,l,f,y,m,b,k=e[61]+"",x=e[64]+"";function S(){return e[36](e[61])}return{c(){t=h("label"),n=h("input"),o=g(),i=h("span"),s=p(k),a=g(),l=h("span"),f=p(x),y=g(),w(n,"type","checkbox"),n.checked=r=e[1].includes(e[61]),w(n,"class","svelte-13qtr87"),w(i,"class","kind-number svelte-13qtr87"),w(l,"class","kind-name svelte-13qtr87"),w(t,"class","kind-checkbox svelte-13qtr87")},m(e,r){u(e,t,r),c(t,n),c(t,o),c(t,i),c(i,s),c(t,a),c(t,l),c(l,f),c(t,y),m||(b=v(n,"change",S),m=!0)},p(t,o){e=t,131074&o[0]&&r!==(r=e[1].includes(e[61]))&&(n.checked=r),131072&o[0]&&k!==(k=e[61]+"")&&E(s,k),131072&o[0]&&x!==(x=e[64]+"")&&E(f,x)},d(e){e&&d(t),m=!1,b()}}}function Kg(e){let t,n=e[1],r=[];for(let t=0;t<n.length;t+=1)r[t]=Wg(Dg(e,n,t));return{c(){t=h("div");for(let e=0;e<r.length;e+=1)r[e].c();w(t,"class","chips-container svelte-13qtr87")},m(e,n){u(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,o){if(524290&o[0]){let i;for(n=e[1],i=0;i<n.length;i+=1){const s=Dg(e,n,i);r[i]?r[i].p(s,o):(r[i]=Wg(s),r[i].c(),r[i].m(t,null))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){e&&d(t),f(r,e)}}}function Wg(e){let t,n,r,o,i,s,a,l,f,y,m=e[61]+"",b=(Pg[e[61]]||`Kind ${e[61]}`)+"";function k(){return e[37](e[61])}return{c(){t=h("div"),n=h("span"),r=p(m),o=p(": "),i=p(b),s=g(),a=h("button"),a.textContent="×",l=g(),w(n,"class","chip-text svelte-13qtr87"),w(a,"class","chip-remove svelte-13qtr87"),w(t,"class","chip svelte-13qtr87")},m(e,d){u(e,t,d),c(t,n),c(n,r),c(n,o),c(n,i),c(t,s),c(t,a),c(t,l),f||(y=v(a,"click",k),f=!0)},p(t,n){e=t,2&n[0]&&m!==(m=e[61]+"")&&E(r,m),2&n[0]&&b!==(b=(Pg[e[61]]||`Kind ${e[61]}`)+"")&&E(i,b)},d(e){e&&d(t),f=!1,y()}}}function Vg(e){let t,n;return{c(){t=h("div"),n=p(e[14]),w(t,"class","error-message svelte-13qtr87")},m(e,r){u(e,t,r),c(t,n)},p(e,t){16384&t[0]&&E(n,e[14])},d(e){e&&d(t)}}}function Jg(e){let t,n=e[2],r=[];for(let t=0;t<n.length;t+=1)r[t]=Zg(Fg(e,n,t));return{c(){t=h("div");for(let e=0;e<r.length;e+=1)r[e].c();w(t,"class","list-items svelte-13qtr87")},m(e,n){u(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,o){if(2097156&o[0]){let i;for(n=e[2],i=0;i<n.length;i+=1){const s=Fg(e,n,i);r[i]?r[i].p(s,o):(r[i]=Zg(s),r[i].c(),r[i].m(t,null))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){e&&d(t),f(r,e)}}}function Zg(e){let t,n,r,o,i,s,a,l,f=e[58]+"";function y(){return e[40](e[58])}return{c(){t=h("div"),n=h("span"),r=p(f),o=g(),i=h("button"),i.textContent="×",s=g(),w(n,"class","list-item-text svelte-13qtr87"),w(i,"class","list-item-remove svelte-13qtr87"),w(t,"class","list-item svelte-13qtr87")},m(e,d){u(e,t,d),c(t,n),c(n,r),c(t,o),c(t,i),c(t,s),a||(l=v(i,"click",y),a=!0)},p(t,n){e=t,4&n[0]&&f!==(f=e[58]+"")&&E(r,f)},d(e){e&&d(t),a=!1,l()}}}function Gg(e){let t,n;return{c(){t=h("div"),n=p(e[15]),w(t,"class","error-message svelte-13qtr87")},m(e,r){u(e,t,r),c(t,n)},p(e,t){32768&t[0]&&E(n,e[15])},d(e){e&&d(t)}}}function Qg(e){let t,n=e[3],r=[];for(let t=0;t<n.length;t+=1)r[t]=Yg(Ug(e,n,t));return{c(){t=h("div");for(let e=0;e<r.length;e+=1)r[e].c();w(t,"class","list-items svelte-13qtr87")},m(e,n){u(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,o){if(8388616&o[0]){let i;for(n=e[3],i=0;i<n.length;i+=1){const s=Ug(e,n,i);r[i]?r[i].p(s,o):(r[i]=Yg(s),r[i].c(),r[i].m(t,null))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){e&&d(t),f(r,e)}}}function Yg(e){let t,n,r,o,i,s,a,l,f=e[55]+"";function y(){return e[43](e[55])}return{c(){t=h("div"),n=h("span"),r=p(f),o=g(),i=h("button"),i.textContent="×",s=g(),w(n,"class","list-item-text svelte-13qtr87"),w(i,"class","list-item-remove svelte-13qtr87"),w(t,"class","list-item svelte-13qtr87")},m(e,d){u(e,t,d),c(t,n),c(n,r),c(t,o),c(t,i),c(t,s),a||(l=v(i,"click",y),a=!0)},p(t,n){e=t,8&n[0]&&f!==(f=e[55]+"")&&E(r,f)},d(e){e&&d(t),a=!1,l()}}}function Xg(e){let t,n;return{c(){t=h("div"),n=p(e[16]),w(t,"class","error-message svelte-13qtr87")},m(e,r){u(e,t,r),c(t,n)},p(e,t){65536&t[0]&&E(n,e[16])},d(e){e&&d(t)}}}function ey(e){let t,n=e[4],r=[];for(let t=0;t<n.length;t+=1)r[t]=ty(Mg(e,n,t));return{c(){t=h("div");for(let e=0;e<r.length;e+=1)r[e].c();w(t,"class","list-items svelte-13qtr87")},m(e,n){u(e,t,n);for(let e=0;e<r.length;e+=1)r[e]&&r[e].m(t,null)},p(e,o){if(33554448&o[0]){let i;for(n=e[4],i=0;i<n.length;i+=1){const s=Mg(e,n,i);r[i]?r[i].p(s,o):(r[i]=ty(s),r[i].c(),r[i].m(t,null))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){e&&d(t),f(r,e)}}}function ty(e){let t,n,r,o,i,s,a,l,f,y,m,b=e[52].name+"",k=e[52].value+"";function x(){return e[47](e[54])}return{c(){t=h("div"),n=h("span"),r=p("#"),o=p(b),i=p(": "),s=p(k),a=g(),l=h("button"),l.textContent="×",f=g(),w(n,"class","list-item-text svelte-13qtr87"),w(l,"class","list-item-remove svelte-13qtr87"),w(t,"class","list-item svelte-13qtr87")},m(e,d){u(e,t,d),c(t,n),c(n,r),c(n,o),c(n,i),c(n,s),c(t,a),c(t,l),c(t,f),y||(m=v(l,"click",x),y=!0)},p(t,n){e=t,16&n[0]&&b!==(b=e[52].name+"")&&E(o,b),16&n[0]&&k!==(k=e[52].value+"")&&E(s,k)},d(e){e&&d(t),y=!1,m()}}}function ny(t){let n,r,o;return{c(){n=h("button"),n.textContent="×",w(n,"class","clear-timestamp-btn svelte-13qtr87")},m(e,i){u(e,n,i),r||(o=v(n,"click",t[48]),r=!0)},p:e,d(e){e&&d(n),r=!1,o()}}}function ry(t){let n,r,o;return{c(){n=h("button"),n.textContent="×",w(n,"class","clear-timestamp-btn svelte-13qtr87")},m(e,i){u(e,n,i),r||(o=v(n,"click",t[49]),r=!0)},p:e,d(e){e&&d(n),r=!1,o()}}}function oy(t){let n,o,i,s,a,l,f,y,m,x,S,C,A,$,T,I,R,_,L,P,O,B,j,N,M,U,F,D,q,H,z,K,W,V,J,Z,G,Q,Y,X,ee,te,ne,re,oe,ie,se,ae,le,ce,ue,de,fe,he,pe,ge,ye,ve,me,we,be,Ee,ke,xe,Se,Ce,Ae,$e,Te,Ie,Re,_e,Le,Pe,Oe,Be=t[9]?"▼":"▶",je=t[1].length+"",Ne=t[9]&&Hg(t),Me=t[1].length>0&&Kg(t),Ue=t[14]&&Vg(t),Fe=t[2].length>0&&Jg(t),De=t[15]&&Gg(t),qe=t[3].length>0&&Qg(t),He=t[16]&&Xg(t),ze=t[4].length>0&&ey(t),Ke=t[5]&&ny(t),We=t[6]&&ry(t);return{c(){n=h("div"),o=h("div"),i=h("label"),i.textContent="Search Text (NIP-50)",s=g(),a=h("input"),l=g(),f=h("div"),y=h("label"),y.textContent="Event Kinds",m=g(),x=h("button"),S=p(Be),C=p(" Select Kinds ("),A=p(je),$=p(" selected)"),T=g(),Ne&&Ne.c(),I=g(),Me&&Me.c(),R=g(),_=h("div"),L=h("label"),L.textContent="Authors (Pubkeys)",P=g(),O=h("div"),B=h("input"),j=g(),N=h("button"),N.textContent="Add",M=g(),Ue&&Ue.c(),U=g(),Fe&&Fe.c(),F=g(),D=h("div"),q=h("label"),q.textContent="Event IDs",H=g(),z=h("div"),K=h("input"),W=g(),V=h("button"),V.textContent="Add",J=g(),De&&De.c(),Z=g(),qe&&qe.c(),G=g(),Q=h("div"),Y=h("label"),Y.textContent="Tags (e.g., #e, #p, #a)",X=g(),ee=h("div"),te=h("span"),te.textContent="#",ne=g(),re=h("input"),oe=g(),ie=h("input"),se=g(),ae=h("button"),ae.textContent="Add",le=g(),He&&He.c(),ce=g(),ze&&ze.c(),ue=g(),de=h("div"),fe=h("div"),he=h("label"),he.textContent="Since",pe=g(),ge=h("input"),ye=g(),Ke&&Ke.c(),ve=g(),me=h("div"),we=h("label"),we.textContent="Until",be=g(),Ee=h("input"),ke=g(),We&&We.c(),xe=g(),Se=h("div"),Ce=h("label"),Ce.textContent="Limit (optional)",Ae=g(),$e=h("input"),Te=g(),Ie=h("div"),Re=h("button"),Re.textContent="🔍 Apply Filters",_e=g(),Le=h("button"),Le.textContent="🧹 Clear All",w(i,"for","search-text"),w(i,"class","svelte-13qtr87"),w(a,"id","search-text"),w(a,"type","text"),w(a,"placeholder","Search events..."),w(a,"class","filter-input svelte-13qtr87"),w(o,"class","filter-section svelte-13qtr87"),w(y,"class","svelte-13qtr87"),w(x,"class","picker-toggle-btn svelte-13qtr87"),w(f,"class","filter-section svelte-13qtr87"),w(L,"class","svelte-13qtr87"),w(B,"type","text"),w(B,"placeholder","64 character hex pubkey..."),w(B,"class","filter-input svelte-13qtr87"),w(B,"maxlength","64"),w(N,"class","add-btn svelte-13qtr87"),w(O,"class","input-group svelte-13qtr87"),w(_,"class","filter-section svelte-13qtr87"),w(q,"class","svelte-13qtr87"),w(K,"type","text"),w(K,"placeholder","64 character hex event ID..."),w(K,"class","filter-input svelte-13qtr87"),w(K,"maxlength","64"),w(V,"class","add-btn svelte-13qtr87"),w(z,"class","input-group svelte-13qtr87"),w(D,"class","filter-section svelte-13qtr87"),w(Y,"class","svelte-13qtr87"),w(te,"class","hash-prefix svelte-13qtr87"),w(re,"type","text"),w(re,"placeholder","Tag"),w(re,"class","filter-input tag-name-input svelte-13qtr87"),w(re,"maxlength","1"),w(ie,"type","text"),w(ie,"placeholder","Value..."),w(ie,"class","filter-input tag-value-input svelte-13qtr87"),w(ae,"class","add-btn svelte-13qtr87"),w(ee,"class","tag-input-group svelte-13qtr87"),w(Q,"class","filter-section svelte-13qtr87"),w(he,"for","since-timestamp"),w(he,"class","svelte-13qtr87"),w(ge,"id","since-timestamp"),w(ge,"type","datetime-local"),ge.value=t[28](),w(ge,"class","filter-input svelte-13qtr87"),w(fe,"class","timestamp-field svelte-13qtr87"),w(we,"for","until-timestamp"),w(we,"class","svelte-13qtr87"),w(Ee,"id","until-timestamp"),w(Ee,"type","datetime-local"),Ee.value=t[29](),w(Ee,"class","filter-input svelte-13qtr87"),w(me,"class","timestamp-field svelte-13qtr87"),w(de,"class","filter-section timestamps-section svelte-13qtr87"),w(Ce,"for","limit"),w(Ce,"class","svelte-13qtr87"),w($e,"id","limit"),w($e,"type","number"),w($e,"placeholder","Max events to return"),w($e,"class","filter-input svelte-13qtr87"),w($e,"min","1"),w(Se,"class","filter-section svelte-13qtr87"),w(Re,"class","apply-btn svelte-13qtr87"),w(Le,"class","clear-btn svelte-13qtr87"),w(Ie,"class","filter-actions svelte-13qtr87"),w(n,"class","filter-builder svelte-13qtr87")},m(e,r){u(e,n,r),c(n,o),c(o,i),c(o,s),c(o,a),k(a,t[0]),c(n,l),c(n,f),c(f,y),c(f,m),c(f,x),c(x,S),c(x,C),c(x,A),c(x,$),c(f,T),Ne&&Ne.m(f,null),c(f,I),Me&&Me.m(f,null),c(n,R),c(n,_),c(_,L),c(_,P),c(_,O),c(O,B),k(B,t[10]),c(O,j),c(O,N),c(_,M),Ue&&Ue.m(_,null),c(_,U),Fe&&Fe.m(_,null),c(n,F),c(n,D),c(D,q),c(D,H),c(D,z),c(z,K),k(K,t[11]),c(z,W),c(z,V),c(D,J),De&&De.m(D,null),c(D,Z),qe&&qe.m(D,null),c(n,G),c(n,Q),c(Q,Y),c(Q,X),c(Q,ee),c(ee,te),c(ee,ne),c(ee,re),k(re,t[12]),c(ee,oe),c(ee,ie),k(ie,t[13]),c(ee,se),c(ee,ae),c(Q,le),He&&He.m(Q,null),c(Q,ce),ze&&ze.m(Q,null),c(n,ue),c(n,de),c(de,fe),c(fe,he),c(fe,pe),c(fe,ge),c(fe,ye),Ke&&Ke.m(fe,null),c(de,ve),c(de,me),c(me,we),c(me,be),c(me,Ee),c(me,ke),We&&We.m(me,null),c(n,xe),c(n,Se),c(Se,Ce),c(Se,Ae),c(Se,$e),k($e,t[7]),c(n,Te),c(n,Ie),c(Ie,Re),c(Ie,_e),c(Ie,Le),Pe||(Oe=[v(a,"input",t[33]),v(x,"click",t[34]),v(B,"input",t[38]),v(B,"keydown",t[39]),v(N,"click",t[20]),v(K,"input",t[41]),v(K,"keydown",t[42]),v(V,"click",t[22]),v(re,"input",t[44]),v(ie,"input",t[45]),v(ie,"keydown",t[46]),v(ae,"click",t[24]),v(ge,"change",t[30]),v(Ee,"change",t[31]),v($e,"input",t[50]),v(Re,"click",t[27]),v(Le,"click",t[26])],Pe=!0)},p(e,t){1&t[0]&&a.value!==e[0]&&k(a,e[0]),512&t[0]&&Be!==(Be=e[9]?"▼":"▶")&&E(S,Be),2&t[0]&&je!==(je=e[1].length+"")&&E(A,je),e[9]?Ne?Ne.p(e,t):(Ne=Hg(e),Ne.c(),Ne.m(f,I)):Ne&&(Ne.d(1),Ne=null),e[1].length>0?Me?Me.p(e,t):(Me=Kg(e),Me.c(),Me.m(f,null)):Me&&(Me.d(1),Me=null),1024&t[0]&&B.value!==e[10]&&k(B,e[10]),e[14]?Ue?Ue.p(e,t):(Ue=Vg(e),Ue.c(),Ue.m(_,U)):Ue&&(Ue.d(1),Ue=null),e[2].length>0?Fe?Fe.p(e,t):(Fe=Jg(e),Fe.c(),Fe.m(_,null)):Fe&&(Fe.d(1),Fe=null),2048&t[0]&&K.value!==e[11]&&k(K,e[11]),e[15]?De?De.p(e,t):(De=Gg(e),De.c(),De.m(D,Z)):De&&(De.d(1),De=null),e[3].length>0?qe?qe.p(e,t):(qe=Qg(e),qe.c(),qe.m(D,null)):qe&&(qe.d(1),qe=null),4096&t[0]&&re.value!==e[12]&&k(re,e[12]),8192&t[0]&&ie.value!==e[13]&&k(ie,e[13]),e[16]?He?He.p(e,t):(He=Xg(e),He.c(),He.m(Q,ce)):He&&(He.d(1),He=null),e[4].length>0?ze?ze.p(e,t):(ze=ey(e),ze.c(),ze.m(Q,null)):ze&&(ze.d(1),ze=null),e[5]?Ke?Ke.p(e,t):(Ke=ny(e),Ke.c(),Ke.m(fe,null)):Ke&&(Ke.d(1),Ke=null),e[6]?We?We.p(e,t):(We=ry(e),We.c(),We.m(me,null)):We&&(We.d(1),We=null),128&t[0]&&b($e.value)!==e[7]&&k($e,e[7])},i:e,o:e,d(e){e&&d(n),Ne&&Ne.d(),Me&&Me.d(),Ue&&Ue.d(),Fe&&Fe.d(),De&&De.d(),qe&&qe.d(),He&&He.d(),ze&&ze.d(),Ke&&Ke.d(),We&&We.d(),Pe=!1,r(Oe)}}}function iy(e,t,n){let r,o;const i=T();let{searchText:s=""}=t,{selectedKinds:a=[]}=t,{pubkeys:l=[]}=t,{eventIds:c=[]}=t,{tags:u=[]}=t,{sinceTimestamp:d=null}=t,{untilTimestamp:f=null}=t,{limit:h=null}=t,p=!1,g="",y="",v="",m="",w="",E="",k="",x="";function S(e){a.includes(e)?n(1,a=a.filter(t=>t!==e)):n(1,a=[...a,e].sort((e,t)=>e-t))}function C(e){n(1,a=a.filter(t=>t!==e))}function A(){const e=y.trim();e&&(Og(e,64)?l.includes(e)?n(14,E="Pubkey already added"):(n(2,l=[...l,e]),n(10,y=""),n(14,E="")):n(14,E="Invalid pubkey: must be 64 character hex string"))}function $(e){n(2,l=l.filter(t=>t!==e))}function I(){const e=v.trim();e&&(Og(e,64)?c.includes(e)?n(15,k="Event ID already added"):(n(3,c=[...c,e]),n(11,v=""),n(15,k="")):n(15,k="Invalid event ID: must be 64 character hex string"))}function R(e){n(3,c=c.filter(t=>t!==e))}function _(){const e=m.trim(),t=w.trim();e&&t&&(/^[a-zA-Z]$/.test(e)?u.some(n=>n.name===e&&n.value===t)?n(16,x="Tag already added"):(n(4,u=[...u,{name:e,value:t}]),n(12,m=""),n(13,w=""),n(16,x="")):n(16,x="Invalid tag name: must be single letter a-z or A-Z"))}function L(e){n(4,u=u.filter((t,n)=>n!==e))}return e.$$set=e=>{"searchText"in e&&n(0,s=e.searchText),"selectedKinds"in e&&n(1,a=e.selectedKinds),"pubkeys"in e&&n(2,l=e.pubkeys),"eventIds"in e&&n(3,c=e.eventIds),"tags"in e&&n(4,u=e.tags),"sinceTimestamp"in e&&n(5,d=e.sinceTimestamp),"untilTimestamp"in e&&n(6,f=e.untilTimestamp),"limit"in e&&n(7,h=e.limit)},e.$$.update=()=>{256&e.$$.dirty[0]|2&e.$$.dirty[1]&&n(17,o=r.filter(e=>e.kind.toString().includes(g)||e.name.toLowerCase().includes(g.toLowerCase())))},n(32,r=Object.entries(Pg).map(([e,t])=>({kind:parseInt(e),name:t})).sort((e,t)=>e.kind-t.kind)),[s,a,l,c,u,d,f,h,g,p,y,v,m,w,E,k,x,o,S,C,A,$,I,R,_,L,function(){n(0,s=""),n(1,a=[]),n(2,l=[]),n(3,c=[]),n(4,u=[]),n(5,d=null),n(6,f=null),n(7,h=null),i("clear")},function(){i("apply",{searchText:s,selectedKinds:a,pubkeys:l,eventIds:c,tags:u,sinceTimestamp:d,untilTimestamp:f,limit:h})},function(){return d?Bg(d):""},function(){return f?Bg(f):""},function(e){const t=e.target.value;n(5,d=t?jg(t):null)},function(e){const t=e.target.value;n(6,f=t?jg(t):null)},r,function(){s=this.value,n(0,s)},()=>n(9,p=!p),function(){g=this.value,n(8,g)},e=>S(e),e=>C(e),function(){y=this.value,n(10,y)},e=>"Enter"===e.key&&A(),e=>$(e),function(){v=this.value,n(11,v)},e=>"Enter"===e.key&&I(),e=>R(e),function(){m=this.value,n(12,m)},function(){w=this.value,n(13,w)},e=>"Enter"===e.key&&_(),e=>L(e),()=>n(5,d=null),()=>n(6,f=null),function(){h=b(this.value),n(7,h)}]}class sy extends ee{constructor(e){super(),X(this,e,iy,oy,i,{searchText:0,selectedKinds:1,pubkeys:2,eventIds:3,tags:4,sinceTimestamp:5,untilTimestamp:6,limit:7},null,[-1,-1,-1])}}function ay(e){let t,n,r,o,i,s,a,l,f,y,m;return{c(){t=h("div"),n=h("div"),r=h("h3"),r.textContent="Active Filter",o=g(),i=h("button"),i.textContent="🧹 Sweep",s=g(),a=h("div"),l=h("pre"),f=p(e[2]),w(r,"class","svelte-1tyqaa5"),w(i,"class","sweep-btn svelte-1tyqaa5"),w(i,"title","Clear filter"),w(n,"class","filter-display-header svelte-1tyqaa5"),w(l,"class","filter-json svelte-1tyqaa5"),w(a,"class","filter-json-container svelte-1tyqaa5"),w(t,"class","filter-display svelte-1tyqaa5")},m(d,h){u(d,t,h),c(t,n),c(n,r),c(n,o),c(n,i),c(t,s),c(t,a),c(a,l),c(l,f),y||(m=v(i,"click",e[3]),y=!0)},p(e,t){4&t&&E(f,e[2])},d(e){e&&d(t),y=!1,m()}}}function ly(t){let n,r=t[0]&&t[1]&&ay(t);return{c(){r&&r.c(),n=y()},m(e,t){r&&r.m(e,t),u(e,n,t)},p(e,[t]){e[0]&&e[1]?r?r.p(e,t):(r=ay(e),r.c(),r.m(n.parentNode,n)):r&&(r.d(1),r=null)},i:e,o:e,d(e){r&&r.d(e),e&&d(n)}}}function cy(e,t,n){let r,o;const i=T();let{filter:s={}}=t,{showFilter:a=!0}=t;return e.$$set=e=>{"filter"in e&&n(4,s=e.filter),"showFilter"in e&&n(0,a=e.showFilter)},e.$$.update=()=>{16&e.$$.dirty&&n(2,r=function(e){return JSON.stringify(e,null,2)}(s)),16&e.$$.dirty&&n(1,o=Object.keys(s).length>0)},[a,o,r,function(){i("sweep")},s]}class uy extends ee{constructor(e){super(),X(this,e,cy,ly,i,{filter:4,showFilter:0})}}class dy{constructor(e,t,n){this.relayUrl=e,this.userSigner=t,this.userPubkey=n,this.ws=null,this.challenge=null,this.isAuthenticated=!1,this.authPromise=null}async connect(){return new Promise((e,t)=>{this.ws=new WebSocket(this.relayUrl),this.ws.onopen=()=>{console.log("WebSocket connected to relay:",this.relayUrl),e()},this.ws.onmessage=async e=>{try{const t=JSON.parse(e.data);await this.handleMessage(t)}catch(e){console.error("Error parsing relay message:",e)}},this.ws.onerror=e=>{console.error("WebSocket error:",e),t(new Error("Failed to connect to relay"))},this.ws.onclose=()=>{console.log("WebSocket connection closed"),this.isAuthenticated=!1,this.challenge=null},setTimeout(()=>{this.ws.readyState!==WebSocket.OPEN&&t(new Error("Connection timeout"))},1e4)})}async handleMessage(e){const[t,...n]=e;switch(t){case"AUTH":this.challenge=n[0],console.log("Received AUTH challenge:",this.challenge),await this.authenticate();break;case"OK":const[e,r,o]=n;e&&r?(console.log("Authentication successful for event:",e),this.isAuthenticated=!0,this.authPromise&&(this.authPromise.resolve(),this.authPromise=null)):e&&!r&&(console.error("Authentication failed:",o),this.authPromise&&(this.authPromise.reject(new Error(o||"Authentication failed")),this.authPromise=null));break;case"NOTICE":console.log("Relay notice:",n[0]);break;default:console.log("Unhandled message type:",t,n)}}async authenticate(){if(!this.challenge)throw new Error("No challenge received from relay");if(!this.userSigner)throw new Error("No signer available for authentication");try{const e={kind:22242,created_at:Math.floor(Date.now()/1e3),tags:[["relay",this.relayUrl],["challenge",this.challenge]],content:"",pubkey:this.userPubkey},t=["AUTH",await this.userSigner.signEvent(e)];return this.ws.send(JSON.stringify(t)),console.log("Sent authentication event to relay"),new Promise((e,t)=>{this.authPromise={resolve:e,reject:t},setTimeout(()=>{this.authPromise&&(this.authPromise.reject(new Error("Authentication timeout")),this.authPromise=null)},1e4)})}catch(e){throw console.error("Authentication error:",e),e}}async publishEvent(e){if(!this.ws||this.ws.readyState!==WebSocket.OPEN)throw new Error("WebSocket not connected");return new Promise((t,n)=>{const r=["EVENT",e];this.ws.send(JSON.stringify(r));const o=this.ws.onmessage,i=setTimeout(()=>{this.ws.onmessage=o,n(new Error("Publish timeout"))},15e3);this.ws.onmessage=async r=>{try{const s=JSON.parse(r.data),[a,l,c,u]=s;if("OK"===a&&l===e.id)if(clearTimeout(i),this.ws.onmessage=o,c)console.log("Event published successfully:",l),t({success:!0,eventId:l,reason:u});else{if(console.error("Event publish failed:",u),u&&u.includes("auth-required")){console.log("Authentication required, attempting to authenticate...");try{await this.authenticate();const t=["EVENT",e];return void this.ws.send(JSON.stringify(t))}catch(e){return void n(new Error(`Authentication failed: ${e.message}`))}}n(new Error(`Publish failed: ${u}`))}else await this.handleMessage(s)}catch(e){clearTimeout(i),this.ws.onmessage=o,n(e)}}})}close(){this.ws&&(this.ws.close(),this.ws=null),this.isAuthenticated=!1,this.challenge=null}getAuthenticated(){return this.isAuthenticated}}async function fy(e,t,n,r){const o=new dy(e,n,r);try{await o.connect();return await o.publishEvent(t)}finally{o.close()}}function hy(e,t,n){const r=e.slice();return r[153]=t[n],r}function py(e,t,n){const r=e.slice();return r[163]=t[n],r}function gy(e,t,n){const r=e.slice();return r[156]=t[n],r}function yy(e,t,n){const r=e.slice();r[156]=t[n];const o=r[44](r[156]);return r[157]=o,r}function vy(e,t,n){const r=e.slice();return r[160]=t[n],r}function my(t){let n,r,o,i;return o=new sy({}),o.$on("apply",t[64]),o.$on("clear",t[65]),{c(){n=h("div"),r=h("div"),Z(o.$$.fragment),w(r,"class","filter-builder-container svelte-fgl5p8"),w(n,"class","filter-builder-overlay svelte-fgl5p8")},m(e,t){u(e,n,t),c(n,r),G(o,r,null),i=!0},p:e,i(e){i||(W(o.$$.fragment,e),i=!0)},o(e){V(o.$$.fragment,e),i=!1},d(e){e&&d(n),Q(o)}}}function wy(t){let n;function r(e,t){return e[1]?Iy:Ty}let o=r(t),i=o(t);return{c(){n=h("div"),i.c(),w(n,"class","welcome-message svelte-fgl5p8")},m(e,t){u(e,n,t),i.m(n,null)},p(e,t){o===(o=r(e))&&i?i.p(e,t):(i.d(1),i=o(e),i&&(i.c(),i.m(n,null)))},i:e,o:e,d(e){e&&d(n),i.d()}}}function by(e){let t,n,r=e[6],o=[];for(let t=0;t<r.length;t+=1)o[t]=My(py(e,r,t));const i=e=>V(o[e],1,1,()=>{o[e]=null});return{c(){for(let e=0;e<o.length;e+=1)o[e].c();t=y()},m(e,r){for(let t=0;t<o.length;t+=1)o[t]&&o[t].m(e,r);u(e,t,r),n=!0},p(e,n){if(131188&n[0]|180&n[1]|208&n[2]){let s;for(r=e[6],s=0;s<r.length;s+=1){const i=py(e,r,s);o[s]?(o[s].p(i,n),W(o[s],1)):(o[s]=My(i),o[s].c(),W(o[s],1),o[s].m(t.parentNode,t))}for(z(),s=r.length;s<o.length;s+=1)i(s);K()}},i(e){if(!n){for(let e=0;e<r.length;e+=1)W(o[e]);n=!0}},o(e){o=o.filter(Boolean);for(let e=0;e<o.length;e+=1)V(o[e]);n=!1},d(e){f(o,e),e&&d(t)}}}function Ey(t){let n,o,i,s,a,l,p,y,m,E,S,C,A,$,T,I,R,_,L=null!==t[26]&&void 0!==t[26]&&t[26]>=0||""!==t[27]&&parseInt(t[27])>=0,P=t[34],O=[];for(let e=0;e<P.length;e+=1)O[e]=Uy(vy(t,P,e));let B=L&&Fy(t);return{c(){n=h("div"),o=h("div"),o.innerHTML='<h3 class="svelte-fgl5p8">Event Recovery</h3> \n <p class="svelte-fgl5p8">Search and recover old versions of replaceable events</p>',i=g(),s=h("div"),a=h("div"),l=h("div"),p=h("label"),p.textContent="Select Event Kind:",y=g(),m=h("select"),E=h("option"),E.textContent="Choose a replaceable kind...";for(let e=0;e<O.length;e+=1)O[e].c();S=g(),C=h("div"),A=h("label"),A.textContent="Or enter custom kind number:",$=g(),T=h("input"),I=g(),B&&B.c(),w(p,"for","recovery-kind"),w(p,"class","svelte-fgl5p8"),E.__value=null,E.value=E.__value,w(m,"id","recovery-kind"),w(m,"class","svelte-fgl5p8"),void 0===t[26]&&j(()=>t[101].call(m)),w(l,"class","kind-selector svelte-fgl5p8"),w(A,"for","custom-kind"),w(A,"class","svelte-fgl5p8"),w(T,"id","custom-kind"),w(T,"type","number"),w(T,"placeholder","e.g., 10001"),w(T,"min","0"),w(T,"class","svelte-fgl5p8"),w(C,"class","custom-kind-input svelte-fgl5p8"),w(a,"class","recovery-controls svelte-fgl5p8"),w(s,"class","recovery-controls-card svelte-fgl5p8"),w(n,"class","recovery-tab svelte-fgl5p8")},m(e,r){u(e,n,r),c(n,o),c(n,i),c(n,s),c(s,a),c(a,l),c(l,p),c(l,y),c(l,m),c(m,E);for(let e=0;e<O.length;e+=1)O[e]&&O[e].m(m,null);x(m,t[26],!0),c(a,S),c(a,C),c(C,A),c(C,$),c(C,T),k(T,t[27]),c(n,I),B&&B.m(n,null),R||(_=[v(m,"change",t[101]),v(m,"change",t[42]),v(T,"input",t[102]),v(T,"input",t[43])],R=!0)},p(e,t){if(8&t[1]){let n;for(P=e[34],n=0;n<P.length;n+=1){const r=vy(e,P,n);O[n]?O[n].p(r,t):(O[n]=Uy(r),O[n].c(),O[n].m(m,null))}for(;n<O.length;n+=1)O[n].d(1);O.length=P.length}67108864&t[0]|8&t[1]&&x(m,e[26]),134217728&t[0]&&b(T.value)!==e[27]&&k(T,e[27]),201326592&t[0]&&(L=null!==e[26]&&void 0!==e[26]&&e[26]>=0||""!==e[27]&&parseInt(e[27])>=0),L?B?B.p(e,t):(B=Fy(e),B.c(),B.m(n,null)):B&&(B.d(1),B=null)},i:e,o:e,d(e){e&&d(n),f(O,e),B&&B.d(),R=!1,r(_)}}}function ky(e){let t,n,r;function o(t){e[98](t)}let i={isLoggedIn:e[1],userRole:e[4],sprocketStatus:e[19],isLoadingSprocket:e[21],sprocketUploadFile:e[24],sprocketMessage:e[22],sprocketMessageType:e[23],sprocketVersions:e[20]};return void 0!==e[18]&&(i.sprocketScript=e[18]),t=new Lg({props:i}),_.push(()=>J(t,"sprocketScript",o)),t.$on("restartSprocket",e[47]),t.$on("deleteSprocket",e[48]),t.$on("sprocketFileSelect",e[52]),t.$on("uploadSprocketScript",e[53]),t.$on("saveSprocket",e[46]),t.$on("loadSprocket",e[45]),t.$on("loadVersions",e[49]),t.$on("loadVersion",e[99]),t.$on("deleteVersion",e[100]),t.$on("openLoginModal",e[56]),{c(){Z(t.$$.fragment)},m(e,n){G(t,e,n),r=!0},p(e,r){const o={};2&r[0]&&(o.isLoggedIn=e[1]),16&r[0]&&(o.userRole=e[4]),524288&r[0]&&(o.sprocketStatus=e[19]),2097152&r[0]&&(o.isLoadingSprocket=e[21]),16777216&r[0]&&(o.sprocketUploadFile=e[24]),4194304&r[0]&&(o.sprocketMessage=e[22]),8388608&r[0]&&(o.sprocketMessageType=e[23]),1048576&r[0]&&(o.sprocketVersions=e[20]),!n&&262144&r[0]&&(n=!0,o.sprocketScript=e[18],N(()=>n=!1)),t.$set(o)},i(e){r||(W(t.$$.fragment,e),r=!0)},o(e){V(t.$$.fragment,e),r=!1},d(e){Q(t,e)}}}function xy(e){let t,n,r,o;const i=[Qy,Gy,Zy],s=[];function a(e,t){return"managed"!==e[8]?0:e[1]&&"owner"===e[4]?1:2}return n=a(e),r=s[n]=i[n](e),{c(){t=h("div"),r.c(),w(t,"class","managed-acl-view svelte-fgl5p8")},m(e,r){u(e,t,r),s[n].m(t,null),o=!0},p(e,o){let l=n;n=a(e),n===l?s[n].p(e,o):(z(),V(s[l],1,1,()=>{s[l]=null}),K(),r=s[n],r?r.p(e,o):(r=s[n]=i[n](e),r.c()),W(r,1),r.m(t,null))},i(e){o||(W(r),o=!0)},o(e){V(r),o=!1},d(e){e&&d(t),s[n].d()}}}function Sy(e){let t,n,r;function o(t){e[97](t)}let i={};return void 0!==e[25]&&(i.composeEventJson=e[25]),t=new bg({props:i}),_.push(()=>J(t,"composeEventJson",o)),t.$on("reformatJson",e[77]),t.$on("signEvent",e[78]),t.$on("publishEvent",e[79]),{c(){Z(t.$$.fragment)},m(e,n){G(t,e,n),r=!0},p(e,r){const o={};!n&&33554432&r[0]&&(n=!0,o.composeEventJson=e[25],N(()=>n=!1)),t.$set(o)},i(e){r||(W(t.$$.fragment,e),r=!0)},o(e){V(t.$$.fragment,e),r=!1},d(e){Q(t,e)}}}function Cy(e){let t,n;return t=new vg({props:{isLoggedIn:e[1],userRole:e[4],userPubkey:e[2],filteredEvents:e[32],expandedEvents:e[17],isLoadingEvents:e[7],showOnlyMyEvents:cv}}),t.$on("scroll",e[76]),t.$on("toggleEventExpansion",e[93]),t.$on("deleteEvent",e[94]),t.$on("copyEventToClipboard",e[95]),t.$on("toggleChange",e[37]),t.$on("loadAllEvents",e[96]),{c(){Z(t.$$.fragment)},m(e,r){G(t,e,r),n=!0},p(e,n){const r={};2&n[0]&&(r.isLoggedIn=e[1]),16&n[0]&&(r.userRole=e[4]),4&n[0]&&(r.userPubkey=e[2]),2&n[1]&&(r.filteredEvents=e[32]),131072&n[0]&&(r.expandedEvents=e[17]),128&n[0]&&(r.isLoadingEvents=e[7]),t.$set(r)},i(e){n||(W(t.$$.fragment,e),n=!0)},o(e){V(t.$$.fragment,e),n=!1},d(e){Q(t,e)}}}function Ay(e){let t,n;return t=new Wp({props:{isLoggedIn:e[1],currentEffectiveRole:e[9],selectedFile:e[16]}}),t.$on("fileSelect",e[73]),t.$on("importEvents",e[74]),t.$on("openLoginModal",e[56]),{c(){Z(t.$$.fragment)},m(e,r){G(t,e,r),n=!0},p(e,n){const r={};2&n[0]&&(r.isLoggedIn=e[1]),512&n[0]&&(r.currentEffectiveRole=e[9]),65536&n[0]&&(r.selectedFile=e[16]),t.$set(r)},i(e){n||(W(t.$$.fragment,e),n=!0)},o(e){V(t.$$.fragment,e),n=!1},d(e){Q(t,e)}}}function $y(e){let t,n;return t=new Fp({props:{isLoggedIn:e[1],currentEffectiveRole:e[9]}}),t.$on("exportMyEvents",e[72]),t.$on("exportAllEvents",e[71]),t.$on("openLoginModal",e[56]),{c(){Z(t.$$.fragment)},m(e,r){G(t,e,r),n=!0},p(e,n){const r={};2&n[0]&&(r.isLoggedIn=e[1]),512&n[0]&&(r.currentEffectiveRole=e[9]),t.$set(r)},i(e){n||(W(t.$$.fragment,e),n=!0)},o(e){V(t.$$.fragment,e),n=!1},d(e){Q(t,e)}}}function Ty(t){let n;return{c(){n=h("p"),n.textContent="Log in to access your user dashboard",w(n,"class","svelte-fgl5p8")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Iy(e){let t,n,r,o=(e[3]?.name||e[2].slice(0,8)+"...")+"";return{c(){t=h("p"),n=p("Welcome "),r=p(o),w(t,"class","svelte-fgl5p8")},m(e,o){u(e,t,o),c(t,n),c(t,r)},p(e,t){12&t[0]&&o!==(o=(e[3]?.name||e[2].slice(0,8)+"...")+"")&&E(r,o)},d(e){e&&d(t)}}}function Ry(e){let t,n,o,i,s,a,l,f,y,m,b,k,x,S,C,A,$,T,I,R,_,L=e[163].label+"",P=e[33].get(e[163].id)?.isLoading,O=!e[33].get(e[163].id)?.hasMore&&e[33].get(e[163].id)?.events?.length>0;function B(){return e[106](e[163])}function j(e,t){return 64&t[0]&&(S=null),64&t[0]&&(C=null),null==S&&(S=!!(e[33].get(e[163].id)?.events?.length>0)),S?Ly:(null==C&&(C=!e[33].get(e[163].id)?.isLoading),C?_y:void 0)}b=new uy({props:{filter:e[33].get(e[163].id)?.filter||{}}}),b.$on("sweep",function(){return e[107](e[163])});let N=j(e,[-1,-1,-1,-1,-1,-1]),M=N&&N(e),U=P&&jy(),F=O&&Ny();function D(...t){return e[112](e[163],...t)}return{c(){t=h("div"),n=h("div"),o=h("h2"),i=p("🔍 "),s=p(L),a=g(),l=h("button"),f=p("🔄 Refresh"),m=g(),Z(b.$$.fragment),k=g(),x=h("div"),M&&M.c(),A=g(),U&&U.c(),$=g(),F&&F.c(),T=g(),w(o,"class","svelte-fgl5p8"),w(l,"class","refresh-btn svelte-fgl5p8"),l.disabled=y=e[33].get(e[163].id)?.isLoading,w(n,"class","search-results-header svelte-fgl5p8"),w(x,"class","search-results-content svelte-fgl5p8"),w(t,"class","search-results-view svelte-fgl5p8")},m(e,r){u(e,t,r),c(t,n),c(n,o),c(o,i),c(o,s),c(n,a),c(n,l),c(l,f),c(t,m),G(b,t,null),c(t,k),c(t,x),M&&M.m(x,null),c(x,A),U&&U.m(x,null),c(x,$),F&&F.m(x,null),c(t,T),I=!0,R||(_=[v(l,"click",B),v(x,"scroll",D)],R=!0)},p(t,n){e=t,(!I||64&n[0])&&L!==(L=e[163].label+"")&&E(s,L),(!I||64&n[0]&&y!==(y=e[33].get(e[163].id)?.isLoading))&&(l.disabled=y);const r={};64&n[0]&&(r.filter=e[33].get(e[163].id)?.filter||{}),b.$set(r),N===(N=j(e,n))&&M?M.p(e,n):(M&&M.d(1),M=N&&N(e),M&&(M.c(),M.m(x,A))),64&n[0]&&(P=e[33].get(e[163].id)?.isLoading),P?U||(U=jy(),U.c(),U.m(x,$)):U&&(U.d(1),U=null),64&n[0]&&(O=!e[33].get(e[163].id)?.hasMore&&e[33].get(e[163].id)?.events?.length>0),O?F||(F=Ny(),F.c(),F.m(x,null)):F&&(F.d(1),F=null)},i(e){I||(W(b.$$.fragment,e),I=!0)},o(e){V(b.$$.fragment,e),I=!1},d(e){e&&d(t),Q(b),M&&M.d(),U&&U.d(),F&&F.d(),R=!1,r(_)}}}function _y(t){let n;return{c(){n=h("div"),n.innerHTML='<p class="svelte-fgl5p8">No search results found.</p>',w(n,"class","no-search-results svelte-fgl5p8")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Ly(e){let t,n=e[33].get(e[163].id).events,r=[];for(let t=0;t<n.length;t+=1)r[t]=By(gy(e,n,t));return{c(){for(let e=0;e<r.length;e+=1)r[e].c();t=y()},m(e,n){for(let t=0;t<r.length;t+=1)r[t]&&r[t].m(e,n);u(e,t,n)},p(e,o){if(131156&o[0]|180&o[1]){let i;for(n=e[33].get(e[163].id).events,i=0;i<n.length;i+=1){const s=gy(e,n,i);r[i]?r[i].p(s,o):(r[i]=By(s),r[i].c(),r[i].m(t.parentNode,t))}for(;i<r.length;i+=1)r[i].d(1);r.length=n.length}},d(e){f(r,e),e&&d(t)}}}function Py(e){let t,n,r;function o(){return e[108](e[156])}return{c(){t=h("button"),t.textContent="🗑️",w(t,"class","delete-btn svelte-fgl5p8")},m(e,i){u(e,t,i),n||(r=v(t,"click",m(o)),n=!0)},p(t,n){e=t},d(e){e&&d(t),n=!1,r()}}}function Oy(e){let t,n,r,o,i,s,a,l,f=JSON.stringify(e[156],null,2)+"";function y(...t){return e[111](e[156],...t)}return{c(){t=h("div"),n=h("div"),r=h("pre"),o=p(f),i=g(),s=h("button"),s.textContent="📋",w(r,"class","event-json svelte-fgl5p8"),w(s,"class","copy-json-btn svelte-fgl5p8"),w(s,"title","Copy minified JSON to clipboard"),w(n,"class","json-container svelte-fgl5p8"),w(t,"class","search-result-details svelte-fgl5p8")},m(e,d){u(e,t,d),c(t,n),c(n,r),c(r,o),c(n,i),c(n,s),a||(l=v(s,"click",m(y)),a=!0)},p(t,n){e=t,64&n[0]&&f!==(f=JSON.stringify(e[156],null,2)+"")&&E(o,f)},d(e){e&&d(t),a=!1,l()}}}function By(e){let t,n,o,i,s,a,l,f,y,m,b,k,x,C,A,$,T,I,R,_,L,P,O,B,j,N,M=uv(e[156].pubkey)+"",U=e[156].kind+"",F=e[35](e[156].kind)+"",D=fv(e[156].created_at)+"",q=dv(e[156].content)+"",H=e[17].has(e[156].id),z=5!==e[156].kind&&("admin"===e[4]||"owner"===e[4]||"write"===e[4]&&e[156].pubkey&&e[156].pubkey===e[2])&&Py(e);function K(){return e[109](e[156])}function W(...t){return e[110](e[156],...t)}let V=H&&Oy(e);return{c(){t=h("div"),n=h("div"),o=h("div"),o.innerHTML='<div class="avatar-placeholder svelte-fgl5p8">👤</div>',i=g(),s=h("div"),a=h("div"),l=p(M),f=g(),y=h("div"),m=h("span"),b=p(U),k=g(),x=h("span"),C=p(F),A=g(),$=h("div"),T=h("div"),I=p(D),R=g(),_=h("div"),L=p(q),P=g(),z&&z.c(),O=g(),V&&V.c(),B=g(),w(o,"class","search-result-avatar svelte-fgl5p8"),w(a,"class","search-result-author svelte-fgl5p8"),w(m,"class","kind-number svelte-fgl5p8"),w(x,"class","kind-name svelte-fgl5p8"),w(y,"class","search-result-kind svelte-fgl5p8"),w(s,"class","search-result-info svelte-fgl5p8"),w(T,"class","event-timestamp svelte-fgl5p8"),w(_,"class","event-content-single-line svelte-fgl5p8"),w($,"class","search-result-content svelte-fgl5p8"),w(n,"class","search-result-row svelte-fgl5p8"),w(n,"role","button"),w(n,"tabindex","0"),w(t,"class","search-result-item svelte-fgl5p8"),S(t,"expanded",e[17].has(e[156].id))},m(e,r){u(e,t,r),c(t,n),c(n,o),c(n,i),c(n,s),c(s,a),c(a,l),c(s,f),c(s,y),c(y,m),c(m,b),c(y,k),c(y,x),c(x,C),c(n,A),c(n,$),c($,T),c(T,I),c($,R),c($,_),c(_,L),c(n,P),z&&z.m(n,null),c(t,O),V&&V.m(t,null),c(t,B),j||(N=[v(n,"click",K),v(n,"keydown",W)],j=!0)},p(r,o){e=r,64&o[0]&&M!==(M=uv(e[156].pubkey)+"")&&E(l,M),64&o[0]&&U!==(U=e[156].kind+"")&&E(b,U),64&o[0]&&F!==(F=e[35](e[156].kind)+"")&&E(C,F),64&o[0]&&D!==(D=fv(e[156].created_at)+"")&&E(I,D),64&o[0]&&q!==(q=dv(e[156].content)+"")&&E(L,q),5!==e[156].kind&&("admin"===e[4]||"owner"===e[4]||"write"===e[4]&&e[156].pubkey&&e[156].pubkey===e[2])?z?z.p(e,o):(z=Py(e),z.c(),z.m(n,null)):z&&(z.d(1),z=null),131136&o[0]&&(H=e[17].has(e[156].id)),H?V?V.p(e,o):(V=Oy(e),V.c(),V.m(t,B)):V&&(V.d(1),V=null),131136&o[0]|4&o[1]&&S(t,"expanded",e[17].has(e[156].id))},d(e){e&&d(t),z&&z.d(),V&&V.d(),j=!1,r(N)}}}function jy(e){let t;return{c(){t=h("div"),t.innerHTML='<div class="loading-spinner svelte-fgl5p8"></div> \n <p class="svelte-fgl5p8">Searching...</p>',w(t,"class","loading-search-results svelte-fgl5p8")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function Ny(e){let t;return{c(){t=h("div"),t.innerHTML='<p class="svelte-fgl5p8">No more search results to load.</p>',w(t,"class","end-of-search-results svelte-fgl5p8")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function My(e){let t,n,r=e[163].id===e[5]&&Ry(e);return{c(){r&&r.c(),t=y()},m(e,o){r&&r.m(e,o),u(e,t,o),n=!0},p(e,n){e[163].id===e[5]?r?(r.p(e,n),96&n[0]&&W(r,1)):(r=Ry(e),r.c(),W(r,1),r.m(t.parentNode,t)):r&&(z(),V(r,1,1,()=>{r=null}),K())},i(e){n||(W(r),n=!0)},o(e){V(r),n=!1},d(e){r&&r.d(e),e&&d(t)}}}function Uy(t){let n,r,o=t[160].label+"";return{c(){n=h("option"),r=p(o),n.__value=t[160].value,n.value=n.__value},m(e,t){u(e,n,t),c(n,r)},p:e,d(e){e&&d(n)}}}function Fy(e){let t;function n(e,t){return e[29]?Hy:0===e[28].length?qy:Dy}let r=n(e),o=r(e);return{c(){t=h("div"),o.c(),w(t,"class","recovery-results svelte-fgl5p8")},m(e,n){u(e,t,n),o.m(t,null)},p(e,i){r===(r=n(e))&&o?o.p(e,i):(o.d(1),o=r(e),o&&(o.c(),o.m(t,null)))},d(e){e&&d(t),o.d()}}}function Dy(e){let t,n,r,o=e[28],i=[];for(let t=0;t<o.length;t+=1)i[t]=Vy(yy(e,o,t));let s=e[30]&&Jy(e);return{c(){t=h("div");for(let e=0;e<i.length;e+=1)i[e].c();n=g(),s&&s.c(),r=y(),w(t,"class","events-list svelte-fgl5p8")},m(e,o){u(e,t,o);for(let e=0;e<i.length;e+=1)i[e]&&i[e].m(t,null);u(e,n,o),s&&s.m(e,o),u(e,r,o)},p(e,n){if(268435968&n[0]|9728&n[1]){let r;for(o=e[28],r=0;r<o.length;r+=1){const s=yy(e,o,r);i[r]?i[r].p(s,n):(i[r]=Vy(s),i[r].c(),i[r].m(t,null))}for(;r<i.length;r+=1)i[r].d(1);i.length=o.length}e[30]?s?s.p(e,n):(s=Jy(e),s.c(),s.m(r.parentNode,r)):s&&(s.d(1),s=null)},d(e){e&&d(t),f(i,e),e&&d(n),s&&s.d(e),e&&d(r)}}}function qy(t){let n;return{c(){n=h("div"),n.textContent="No events found for this kind",w(n,"class","no-events svelte-fgl5p8")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function Hy(t){let n;return{c(){n=h("div"),n.textContent="Loading events...",w(n,"class","loading svelte-fgl5p8")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function zy(e){let t;return{c(){t=p("Current Version")},m(e,n){u(e,t,n)},d(e){e&&d(t)}}}function Ky(e){let t,n,r,o,i;function s(){return e[103](e[156])}let a="read"!==e[9]&&Wy(e);return{c(){t=h("button"),t.textContent="🌐 Repost to All",n=g(),a&&a.c(),r=y(),w(t,"class","repost-all-button svelte-fgl5p8")},m(e,l){u(e,t,l),u(e,n,l),a&&a.m(e,l),u(e,r,l),o||(i=v(t,"click",s),o=!0)},p(t,n){"read"!==(e=t)[9]?a?a.p(e,n):(a=Wy(e),a.c(),a.m(r.parentNode,r)):a&&(a.d(1),a=null)},d(e){e&&d(t),e&&d(n),a&&a.d(e),e&&d(r),o=!1,i()}}}function Wy(e){let t,n,r;function o(){return e[104](e[156])}return{c(){t=h("button"),t.textContent="🔄 Repost",w(t,"class","repost-button svelte-fgl5p8")},m(e,i){u(e,t,i),n||(r=v(t,"click",o),n=!0)},p(t,n){e=t},d(e){e&&d(t),n=!1,r()}}}function Vy(e){let t,n,r,o,i,s,a,l,f,y,b,k,x,C,A,$,T,I,R=new Date(1e3*e[156].created_at).toLocaleString()+"",_=JSON.stringify(e[156],null,2)+"",L=e[157]&&zy(),P=!e[157]&&Ky(e);function O(...t){return e[105](e[156],...t)}return{c(){t=h("div"),n=h("div"),r=h("div"),o=h("span"),L&&L.c(),i=g(),s=h("span"),a=p(R),l=g(),f=h("div"),P&&P.c(),y=g(),b=h("button"),b.textContent="📋 Copy JSON",k=g(),x=h("div"),C=h("pre"),A=p(_),$=g(),w(o,"class","event-kind svelte-fgl5p8"),w(s,"class","event-timestamp svelte-fgl5p8"),w(r,"class","event-header-left svelte-fgl5p8"),w(b,"class","copy-json-btn svelte-fgl5p8"),w(f,"class","event-header-actions svelte-fgl5p8"),w(n,"class","event-header svelte-fgl5p8"),w(C,"class","event-json svelte-fgl5p8"),w(x,"class","event-content svelte-fgl5p8"),w(t,"class","event-item svelte-fgl5p8"),S(t,"old-version",!e[157])},m(e,d){u(e,t,d),c(t,n),c(n,r),c(r,o),L&&L.m(o,null),c(r,i),c(r,s),c(s,a),c(n,l),c(n,f),P&&P.m(f,null),c(f,y),c(f,b),c(t,k),c(t,x),c(x,C),c(C,A),c(t,$),T||(I=v(b,"click",m(O)),T=!0)},p(n,r){(e=n)[157]?L||(L=zy(),L.c(),L.m(o,null)):L&&(L.d(1),L=null),268435456&r[0]&&R!==(R=new Date(1e3*e[156].created_at).toLocaleString()+"")&&E(a,R),e[157]?P&&(P.d(1),P=null):P?P.p(e,r):(P=Ky(e),P.c(),P.m(f,y)),268435456&r[0]&&_!==(_=JSON.stringify(e[156],null,2)+"")&&E(A,_),268435456&r[0]|8192&r[1]&&S(t,"old-version",!e[157])},d(e){e&&d(t),L&&L.d(),P&&P.d(),T=!1,I()}}}function Jy(e){let t,n,r,o;return{c(){t=h("button"),n=p("Load More Events"),w(t,"class","load-more svelte-fgl5p8"),t.disabled=e[29]},m(i,s){u(i,t,s),c(t,n),r||(o=v(t,"click",e[39]),r=!0)},p(e,n){536870912&n[0]&&(t.disabled=e[29])},d(e){e&&d(t),r=!1,o()}}}function Zy(t){let n,r,o,i,s,a;return{c(){n=h("div"),r=h("p"),r.textContent="Please log in with owner permissions to access\n managed ACL configuration.",o=g(),i=h("button"),i.textContent="Log In",w(i,"class","login-btn svelte-fgl5p8"),w(n,"class","access-denied")},m(e,l){u(e,n,l),c(n,r),c(n,o),c(n,i),s||(a=v(i,"click",t[56]),s=!0)},p:e,i:e,o:e,d(e){e&&d(n),s=!1,a()}}}function Gy(e){let t,n;return t=new mp({props:{userSigner:e[12],userPubkey:e[2]}}),{c(){Z(t.$$.fragment)},m(e,r){G(t,e,r),n=!0},p(e,n){const r={};4096&n[0]&&(r.userSigner=e[12]),4&n[0]&&(r.userPubkey=e[2]),t.$set(r)},i(e){n||(W(t.$$.fragment,e),n=!0)},o(e){V(t.$$.fragment,e),n=!1},d(e){Q(t,e)}}}function Qy(t){let n,r,o,i,s,a,l,f,y,v,m,b=(t[8]||"unknown")+"";return{c(){n=h("div"),r=h("h3"),r.textContent="⚠️ Managed ACL Mode Not Active",o=g(),i=h("p"),i.textContent='To use the Managed ACL interface, you need to set\n the ACL mode to "managed" in your relay\n configuration.',s=g(),a=h("p"),l=p("Current ACL mode: "),f=h("strong"),y=p(b),v=g(),m=h("p"),m.innerHTML='Please set <code class="svelte-fgl5p8">ORLY_ACL_MODE=managed</code> in your\n environment variables and restart the relay.',w(r,"class","svelte-fgl5p8"),w(i,"class","svelte-fgl5p8"),w(a,"class","svelte-fgl5p8"),w(m,"class","svelte-fgl5p8"),w(n,"class","acl-mode-warning svelte-fgl5p8")},m(e,t){u(e,n,t),c(n,r),c(n,o),c(n,i),c(n,s),c(n,a),c(a,l),c(a,f),c(f,y),c(n,v),c(n,m)},p(e,t){256&t[0]&&b!==(b=(e[8]||"unknown")+"")&&E(y,b)},i:e,o:e,d(e){e&&d(n)}}}function Yy(e){let t,n,o,i,s,a,l,f,p,y;function b(e,t){return e[3]?ev:e[1]&&e[2]?Xy:void 0}let E=b(e),k=E&&E(e);return{c(){t=h("div"),n=h("div"),o=h("div"),i=h("h2"),i.textContent="Settings",s=g(),a=h("button"),a.textContent="✕",l=g(),f=h("div"),k&&k.c(),w(i,"class","svelte-fgl5p8"),w(a,"class","close-btn svelte-fgl5p8"),w(o,"class","drawer-header svelte-fgl5p8"),w(f,"class","drawer-content"),w(n,"class","settings-drawer svelte-fgl5p8"),S(n,"dark-theme",e[0]),w(t,"class","drawer-overlay svelte-fgl5p8"),w(t,"role","button"),w(t,"tabindex","0")},m(r,d){u(r,t,d),c(t,n),c(n,o),c(o,i),c(o,s),c(o,a),c(n,l),c(n,f),k&&k.m(f,null),p||(y=[v(a,"click",e[61]),v(n,"click",m(e[87])),v(n,"keydown",m(e[88])),v(t,"click",e[61]),v(t,"keydown",e[114])],p=!0)},p(e,t){E===(E=b(e))&&k?k.p(e,t):(k&&k.d(1),k=E&&E(e),k&&(k.c(),k.m(f,null))),1&t[0]&&S(n,"dark-theme",e[0])},d(e){e&&d(t),k&&k.d(),p=!1,r(y)}}}function Xy(e){let t,n,o,i,s,a,l,f,y,m,b,k,x,S,C,A,$,T=e[2].slice(0,16)+"",I=e[2].slice(-8)+"";return{c(){t=h("div"),n=h("button"),n.textContent="Log out",o=g(),i=h("h3"),i.textContent="Profile Loading",s=g(),a=h("p"),a.textContent="Your profile metadata is being loaded...",l=g(),f=h("button"),f.textContent="Retry Loading Profile",y=g(),m=h("div"),b=h("strong"),b.textContent="Public Key:",k=g(),x=p(T),S=p("..."),C=p(I),w(n,"class","logout-btn floating svelte-fgl5p8"),w(i,"class","svelte-fgl5p8"),w(a,"class","svelte-fgl5p8"),w(f,"class","retry-profile-btn svelte-fgl5p8"),w(m,"class","user-pubkey-display svelte-fgl5p8"),w(t,"class","profile-loading-section svelte-fgl5p8")},m(r,d){u(r,t,d),c(t,n),c(t,o),c(t,i),c(t,s),c(t,a),c(t,l),c(t,f),c(t,y),c(t,m),c(m,b),c(m,k),c(m,x),c(m,S),c(m,C),A||($=[v(n,"click",e[58]),v(f,"click",e[70])],A=!0)},p(e,t){4&t[0]&&T!==(T=e[2].slice(0,16)+"")&&E(x,T),4&t[0]&&I!==(I=e[2].slice(-8)+"")&&E(C,I)},d(e){e&&d(t),A=!1,r($)}}}function ev(e){let t,n,r,o,i,s,a,l,f,m,b,k,x,S,C,A=(e[3].name||"Unknown User")+"",$=e[3].banner&&tv(e);function T(e,t){return e[3].picture?rv:nv}let I=T(e),R=I(e),_=e[3].nip05&&ov(e),L=e[3].about&&iv(e),P=e[4]&&"read"!==e[4]&&sv(e);return{c(){t=h("div"),n=h("div"),$&&$.c(),r=g(),o=h("button"),o.textContent="Log out",i=g(),R.c(),s=g(),a=h("div"),l=h("h3"),f=p(A),m=g(),_&&_.c(),b=g(),L&&L.c(),k=g(),P&&P.c(),x=y(),w(o,"class","logout-btn floating svelte-fgl5p8"),w(l,"class","profile-username svelte-fgl5p8"),w(a,"class","name-row svelte-fgl5p8"),w(n,"class","profile-hero svelte-fgl5p8"),w(t,"class","profile-section svelte-fgl5p8")},m(d,h){u(d,t,h),c(t,n),$&&$.m(n,null),c(n,r),c(n,o),c(n,i),R.m(n,null),c(n,s),c(n,a),c(a,l),c(l,f),c(a,m),_&&_.m(a,null),c(t,b),L&&L.m(t,null),u(d,k,h),P&&P.m(d,h),u(d,x,h),S||(C=v(o,"click",e[58]),S=!0)},p(e,o){e[3].banner?$?$.p(e,o):($=tv(e),$.c(),$.m(n,r)):$&&($.d(1),$=null),I===(I=T(e))&&R?R.p(e,o):(R.d(1),R=I(e),R&&(R.c(),R.m(n,s))),8&o[0]&&A!==(A=(e[3].name||"Unknown User")+"")&&E(f,A),e[3].nip05?_?_.p(e,o):(_=ov(e),_.c(),_.m(a,null)):_&&(_.d(1),_=null),e[3].about?L?L.p(e,o):(L=iv(e),L.c(),L.m(t,null)):L&&(L.d(1),L=null),e[4]&&"read"!==e[4]?P?P.p(e,o):(P=sv(e),P.c(),P.m(x.parentNode,x)):P&&(P.d(1),P=null)},d(e){e&&d(t),$&&$.d(),R.d(),_&&_.d(),L&&L.d(),e&&d(k),P&&P.d(e),e&&d(x),S=!1,C()}}}function tv(e){let t,n;return{c(){t=h("img"),a(t.src,n=e[3].banner)||w(t,"src",n),w(t,"alt","Profile banner"),w(t,"class","profile-banner svelte-fgl5p8")},m(e,n){u(e,t,n)},p(e,r){8&r[0]&&!a(t.src,n=e[3].banner)&&w(t,"src",n)},d(e){e&&d(t)}}}function nv(t){let n;return{c(){n=h("div"),n.textContent="👤",w(n,"class","profile-avatar-placeholder overlap svelte-fgl5p8")},m(e,t){u(e,n,t)},p:e,d(e){e&&d(n)}}}function rv(e){let t,n;return{c(){t=h("img"),a(t.src,n=e[3].picture)||w(t,"src",n),w(t,"alt","User avatar"),w(t,"class","profile-avatar overlap svelte-fgl5p8")},m(e,n){u(e,t,n)},p(e,r){8&r[0]&&!a(t.src,n=e[3].picture)&&w(t,"src",n)},d(e){e&&d(t)}}}function ov(e){let t,n,r=e[3].nip05+"";return{c(){t=h("span"),n=p(r),w(t,"class","profile-nip05-inline svelte-fgl5p8")},m(e,r){u(e,t,r),c(t,n)},p(e,t){8&t[0]&&r!==(r=e[3].nip05+"")&&E(n,r)},d(e){e&&d(t)}}}function iv(e){let t,n;return{c(){t=h("div"),n=h("p"),w(n,"class","profile-about svelte-fgl5p8"),w(t,"class","about-card svelte-fgl5p8")},m(r,o){u(r,t,o),c(t,n),n.innerHTML=e[31]},p(e,t){1&t[1]&&(n.innerHTML=e[31])},d(e){e&&d(t)}}}function sv(e){let t,n,r,o,i,s,a=e[81](),l=[];for(let t=0;t<a.length;t+=1)l[t]=av(hy(e,a,t));return{c(){t=h("div"),n=h("h3"),n.textContent="View as Role",r=g(),o=h("p"),o.textContent="See the interface as it appears for different\n permission levels:",i=g(),s=h("div");for(let e=0;e<l.length;e+=1)l[e].c();w(n,"class","svelte-fgl5p8"),w(o,"class","svelte-fgl5p8"),w(s,"class","radio-group svelte-fgl5p8"),w(t,"class","view-as-section svelte-fgl5p8")},m(e,a){u(e,t,a),c(t,n),c(t,r),c(t,o),c(t,i),c(t,s);for(let e=0;e<l.length;e+=1)l[e]&&l[e].m(s,null)},p(e,t){if(528&t[0]|786432&t[2]){let n;for(a=e[81](),n=0;n<a.length;n+=1){const r=hy(e,a,n);l[n]?l[n].p(r,t):(l[n]=av(r),l[n].c(),l[n].m(s,null))}for(;n<l.length;n+=1)l[n].d(1);l.length=a.length}},d(e){e&&d(t),f(l,e)}}}function av(e){let t,n,r,o,i,s,a,l,f,y=e[153].charAt(0).toUpperCase()+e[153].slice(1)+"",m=e[153]===e[4]?" (Default)":"";function b(){return e[113](e[153])}return{c(){t=h("label"),n=h("input"),o=g(),i=p(y),s=p(m),a=g(),w(n,"type","radio"),w(n,"name","viewAsRole"),n.value=e[153],n.checked=r=e[9]===e[153],w(n,"class","svelte-fgl5p8"),w(t,"class","radio-label svelte-fgl5p8")},m(e,r){u(e,t,r),c(t,n),c(t,o),c(t,i),c(t,s),c(t,a),l||(f=v(n,"change",b),l=!0)},p(t,o){e=t,512&o[0]&&r!==(r=e[9]===e[153])&&(n.checked=r),16&o[0]&&m!==(m=e[153]===e[4]?" (Default)":"")&&E(s,m)},d(e){e&&d(t),l=!1,f()}}}function lv(e){let t,n,r,o,i,s,a,l,f,p,y,v,m,b,E,k;function x(t){e[90](t)}let C={isDarkTheme:e[0],isSearchMode:e[14],isLoggedIn:e[1],userRole:e[4],currentEffectiveRole:e[9],userProfile:e[3],userPubkey:e[2]};void 0!==e[15]&&(C.searchQuery=e[15]),t=new Tp({props:C}),_.push(()=>J(t,"searchQuery",x)),t.$on("searchKeydown",e[63]),t.$on("toggleSearchMode",e[62]),t.$on("toggleTheme",e[55]),t.$on("openSettingsDrawer",e[60]),t.$on("openLoginModal",e[56]);let A=e[14]&&my(e);s=new Op({props:{isDarkTheme:e[0],tabs:e[10],selectedTab:e[5]}}),s.$on("selectTab",e[91]),s.$on("closeSearchTab",e[92]);const $=[$y,Ay,Cy,Sy,xy,ky,Ey,by,wy],T=[];function I(e,t){return 96&t[0]&&(f=null),"export"===e[5]?0:"import"===e[5]?1:"events"===e[5]?2:"compose"===e[5]?3:"managed-acl"===e[5]?4:"sprocket"===e[5]?5:"recovery"===e[5]?6:(null==f&&(f=!!e[6].some(e[89])),f?7:8)}p=I(e,[-1,-1,-1,-1,-1,-1]),y=T[p]=$[p](e);let R=e[13]&&Yy(e);function L(t){e[115](t)}let P={isDarkTheme:e[0]};return void 0!==e[11]&&(P.showModal=e[11]),b=new $h({props:P}),_.push(()=>J(b,"showModal",L)),b.$on("login",e[57]),b.$on("close",e[59]),{c(){Z(t.$$.fragment),r=g(),A&&A.c(),o=g(),i=h("div"),Z(s.$$.fragment),a=g(),l=h("main"),y.c(),v=g(),R&&R.c(),m=g(),Z(b.$$.fragment),w(l,"class","main-content svelte-fgl5p8"),w(i,"class","app-container svelte-fgl5p8"),S(i,"dark-theme",e[0])},m(e,n){G(t,e,n),u(e,r,n),A&&A.m(e,n),u(e,o,n),u(e,i,n),G(s,i,null),c(i,a),c(i,l),T[p].m(l,null),u(e,v,n),R&&R.m(e,n),u(e,m,n),G(b,e,n),k=!0},p(e,r){const a={};1&r[0]&&(a.isDarkTheme=e[0]),16384&r[0]&&(a.isSearchMode=e[14]),2&r[0]&&(a.isLoggedIn=e[1]),16&r[0]&&(a.userRole=e[4]),512&r[0]&&(a.currentEffectiveRole=e[9]),8&r[0]&&(a.userProfile=e[3]),4&r[0]&&(a.userPubkey=e[2]),!n&&32768&r[0]&&(n=!0,a.searchQuery=e[15],N(()=>n=!1)),t.$set(a),e[14]?A?(A.p(e,r),16384&r[0]&&W(A,1)):(A=my(e),A.c(),W(A,1),A.m(o.parentNode,o)):A&&(z(),V(A,1,1,()=>{A=null}),K());const c={};1&r[0]&&(c.isDarkTheme=e[0]),1024&r[0]&&(c.tabs=e[10]),32&r[0]&&(c.selectedTab=e[5]),s.$set(c);let u=p;p=I(e,r),p===u?T[p].p(e,r):(z(),V(T[u],1,1,()=>{T[u]=null}),K(),y=T[p],y?y.p(e,r):(y=T[p]=$[p](e),y.c()),W(y,1),y.m(l,null)),(!k||1&r[0])&&S(i,"dark-theme",e[0]),e[13]?R?R.p(e,r):(R=Yy(e),R.c(),R.m(m.parentNode,m)):R&&(R.d(1),R=null);const d={};1&r[0]&&(d.isDarkTheme=e[0]),!E&&2048&r[0]&&(E=!0,d.showModal=e[11],N(()=>E=!1)),b.$set(d)},i(e){k||(W(t.$$.fragment,e),W(A),W(s.$$.fragment,e),W(y),W(b.$$.fragment,e),k=!0)},o(e){V(t.$$.fragment,e),V(A),V(s.$$.fragment,e),V(y),V(b.$$.fragment,e),k=!1},d(e){Q(t,e),e&&d(r),A&&A.d(e),e&&d(o),e&&d(i),Q(s),T[p].d(),e&&d(v),R&&R.d(e),e&&d(m),Q(b,e)}}}let cv=!1;function uv(e){return e?e.slice(0,8)+"..."+e.slice(-8):"unknown"}function dv(e,t=100){return e?e.length>t?e.slice(0,t)+"...":e:""}function fv(e){return e?new Date(1e3*e).toLocaleString():""}async function hv(e,t){try{const n=JSON.stringify(e);await navigator.clipboard.writeText(n);const r=t.target.closest(".copy-json-btn");if(r){const e=r.textContent;r.textContent="✅",r.style.backgroundColor="#4CAF50",setTimeout(()=>{r.textContent=e,r.style.backgroundColor=""},2e3)}}catch(n){console.error("Failed to copy to clipboard:",n);try{const n=document.createElement("textarea");n.value=JSON.stringify(e),document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n);const r=t.target.closest(".copy-json-btn");if(r){const e=r.textContent;r.textContent="✅",r.style.backgroundColor="#4CAF50",setTimeout(()=>{r.textContent=e,r.style.backgroundColor=""},2e3)}}catch(e){console.error("Fallback copy also failed:",e),alert("Failed to copy to clipboard. Please copy manually.")}}}function pv(e,t,n){let r,o,i,s,a;"undefined"!=typeof window&&(window.debugIndexedDB=mh);let l=!1,c=!1,u=!1,d="",f="",h=null,p="",g=null,y=!1,v=localStorage.getItem("selectedTab")||"export",m=!1,w="",E=[],k=[],x=null,S=new Set,C=!1,A=!0,$=null,T="",R=new Map,_=[],L=0;const P=3e5;let O=[],B=!0,j=null,N="",M=null,U=[],F=!1,D="",q="info",H=!1,z=null,K="",W="",V=null,J="",Z=[],G=!1,Q=!0,Y=null;const X=[{value:0,label:"User Metadata (0)"},{value:3,label:"Follows (3)"},{value:1e4,label:"Mute list (10000)"},{value:10001,label:"Pin list (10001)"},{value:10002,label:"Relay List Metadata (10002)"},{value:10003,label:"Bookmark list (10003)"},{value:10004,label:"Communities list (10004)"},{value:10005,label:"Public chats list (10005)"},{value:10006,label:"Blocked relays list (10006)"},{value:10007,label:"Search relays list (10007)"},{value:10009,label:"User groups (10009)"},{value:10012,label:"Favorite relays list (10012)"},{value:10013,label:"Private event relay list (10013)"},{value:10015,label:"Interests list (10015)"},{value:10019,label:"Nutzap Mint Recommendation (10019)"},{value:10020,label:"Media follows (10020)"},{value:10030,label:"User emoji list (10030)"},{value:10050,label:"Relay list to receive DMs (10050)"},{value:10051,label:"KeyPackage Relays List (10051)"},{value:10063,label:"User server list (10063)"},{value:10096,label:"File storage server list (10096)"},{value:10166,label:"Relay Monitor Announcement (10166)"},{value:10312,label:"Room Presence (10312)"},{value:10377,label:"Proxy Announcement (10377)"},{value:11111,label:"Transport Method Announcement (11111)"},{value:13194,label:"Wallet Info (13194)"},{value:17375,label:"Cashu Wallet Event (17375)"},{value:3e4,label:"Follow sets (30000)"},{value:30001,label:"Generic lists (30001)"},{value:30002,label:"Relay sets (30002)"},{value:30003,label:"Bookmark sets (30003)"},{value:30004,label:"Curation sets (30004)"},{value:30005,label:"Video sets (30005)"},{value:30007,label:"Kind mute sets (30007)"},{value:30008,label:"Profile Badges (30008)"},{value:30009,label:"Badge Definition (30009)"},{value:30015,label:"Interest sets (30015)"},{value:30017,label:"Create or update a stall (30017)"},{value:30018,label:"Create or update a product (30018)"},{value:30019,label:"Marketplace UI/UX (30019)"},{value:30020,label:"Product sold as an auction (30020)"},{value:30023,label:"Long-form Content (30023)"},{value:30024,label:"Draft Long-form Content (30024)"},{value:30030,label:"Emoji sets (30030)"},{value:30040,label:"Curated Publication Index (30040)"},{value:30041,label:"Curated Publication Content (30041)"},{value:30063,label:"Release artifact sets (30063)"},{value:30078,label:"Application-specific Data (30078)"},{value:30166,label:"Relay Discovery (30166)"},{value:30267,label:"App curation sets (30267)"},{value:30311,label:"Live Event (30311)"},{value:30312,label:"Interactive Room (30312)"},{value:30313,label:"Conference Event (30313)"},{value:30315,label:"User Statuses (30315)"},{value:30388,label:"Slide Set (30388)"},{value:30402,label:"Classified Listing (30402)"},{value:30403,label:"Draft Classified Listing (30403)"},{value:30617,label:"Repository announcements (30617)"},{value:30618,label:"Repository state announcements (30618)"},{value:30818,label:"Wiki article (30818)"},{value:30819,label:"Redirects (30819)"},{value:31234,label:"Draft Event (31234)"},{value:31388,label:"Link Set (31388)"},{value:31890,label:"Feed (31890)"},{value:31922,label:"Date-Based Calendar Event (31922)"},{value:31923,label:"Time-Based Calendar Event (31923)"},{value:31924,label:"Calendar (31924)"},{value:31925,label:"Calendar Event RSVP (31925)"},{value:31989,label:"Handler recommendation (31989)"},{value:31990,label:"Handler information (31990)"},{value:32267,label:"Software Application (32267)"},{value:34550,label:"Community Definition (34550)"},{value:37516,label:"Geocache listing (37516)"},{value:38172,label:"Cashu Mint Announcement (38172)"},{value:38173,label:"Fedimint Announcement (38173)"},{value:38383,label:"Peer-to-peer Order events (38383)"},{value:39089,label:"Starter packs (39089)"},{value:39092,label:"Media starter packs (39092)"},{value:39701,label:"Web bookmarks (39701)"}],ee={0:"User Metadata",1:"Short Text Note",2:"Recommend Relay",3:"Follows",4:"Encrypted Direct Messages",5:"Event Deletion Request",6:"Repost",7:"Reaction",8:"Badge Award",9:"Chat Message",10:"Group Chat Threaded Reply",11:"Thread",12:"Group Thread Reply",13:"Seal",14:"Direct Message",15:"File Message",16:"Generic Repost",17:"Reaction to a website",20:"Picture",40:"Channel Creation",41:"Channel Metadata",42:"Channel Message",43:"Channel Hide Message",44:"Channel Mute User",1021:"Bid",1022:"Bid Confirmation",1040:"OpenTimestamps",1063:"File Metadata",1311:"Live Chat Message",1971:"Problem Tracker",1984:"Reporting",1985:"Label",4550:"Community Post Approval",5e3:"Job Request",5999:"Job Request",6e3:"Job Result",6999:"Job Result",7e3:"Job Feedback",9041:"Zap Goal",9734:"Zap Request",9735:"Zap",9882:"Highlights",1e4:"Mute list",10001:"Pin list",10002:"Relay List Metadata",10003:"Bookmarks list",10004:"Communities list",10005:"Public Chats list",10006:"Blocked Relays list",10007:"Search Relays list",10015:"Interests",10030:"User Emoji list",10050:"DM relays",10096:"File Storage Server List",13194:"Wallet Service Info",21e3:"Lightning pub RPC",22242:"Client Authentication",23194:"Wallet Request",23195:"Wallet Response",23196:"Wallet Notification",23197:"Wallet Notification",24133:"Nostr Connect",27235:"HTTP Auth",3e4:"Follow sets",30001:"Generic lists",30002:"Relay sets",30003:"Bookmark sets",30004:"Curation sets",30008:"Profile Badges",30009:"Badge Definition",30015:"Interest sets",30017:"Stall Definition",30018:"Product Definition",30019:"Marketplace UI/UX",30020:"Product sold as an auction",30023:"Long-form Content",30024:"Draft Long-form Content",30030:"Emoji sets",30078:"Application-specific Data",30311:"Live Event",30315:"User Statuses",30402:"Classified Listing",30403:"Draft Classified Listing",31922:"Date-Based Calendar Event",31923:"Time-Based Calendar Event",31924:"Calendar",31925:"Calendar Event RSVP",31989:"Handler recommendation",31990:"Handler information",34235:"Video Event Horizontal",34236:"Video Event Vertical",34550:"Community Definition"};function te(e){S.has(e)?S.delete(e):S.add(e),n(17,S)}async function ne(e){if(!u)return void alert("Please log in first");const t=k.find(t=>t.id===e);if(!t)return void alert("Event not found");if("admin"===p||"owner"===p||"write"===p&&t.pubkey&&t.pubkey===d){if(confirm("Are you sure you want to delete this event?"))try{if(!g)throw new Error("Signer not available for signing");const r={kind:5,created_at:Math.floor(Date.now()/1e3),tags:[["e",e]],content:""};console.log("Created delete event template:",r),console.log("User pubkey:",d),console.log("Target event:",t),console.log("Target event pubkey:",t.pubkey);const o=await g.signEvent(r);console.log("Signed delete event:",o),console.log("Signed delete event pubkey:",o.pubkey),console.log("Delete event tags:",o.tags);const i=`wss://${window.location.host}`;try{const e=await fy(i,o,g,d);e.success?console.log("Delete event published successfully to ORLY relay"):console.error("Failed to publish delete event:",e.reason)}catch(e){console.error("Error publishing delete event:",e)}const s=t.pubkey&&t.pubkey===d;if(s){const t=await oh.publish(o);if(console.log("Delete event published:",t),!(t.success&&t.okCount>0))throw new Error("No relays accepted the delete event");{await new Promise(e=>setTimeout(e,2e3));try{const n=await gh(e,{timeout:5e3});n?(console.warn("Event still exists after deletion attempt:",n),alert(`Warning: Delete event was accepted by ${t.okCount} relay(s), but the event still exists on the relay. This may indicate the relay does not properly handle delete events.`)):console.log("Event successfully deleted and verified")}catch(e){console.log("Could not fetch event after deletion (likely deleted):",e.message)}try{const t=await yh(e,{timeout:5e3});if(t.length>0){console.log(`Delete event verification: Found ${t.length} delete event(s) targeting ${e}`);const n=t.find(e=>e.pubkey&&e.pubkey===d);n?console.log("Our delete event found in database:",n.id):console.warn("Our delete event not found in database, but other delete events exist")}else console.warn("No delete events found in database for target event:",e)}catch(e){console.log("Could not verify delete event in database:",e.message)}n(82,k=k.filter(t=>t.id!==e)),O=O.filter(t=>t.id!==e),_=_.filter(t=>t.id!==e);for(const[t,n]of R)n.events&&(n.events=n.events.filter(t=>t.id!==e),R.set(t,n));se(),console.log("Reloading events to show delete event...");const r=cv&&u&&d?[d]:null;await Ce(!0,r),alert(`Event deleted successfully (accepted by ${t.okCount} relay(s))`)}}else{const t=`wss://${window.location.host}/`,r=new rh;await r.connectToRelay(t);const i=await r.publish(o);if(console.log("Delete event published to local relay only:",i),!(i.success&&i.okCount>0))throw new Error("Local relay did not accept the delete event");{await new Promise(e=>setTimeout(e,2e3));try{const t=await gh(e,{timeout:5e3});t?(console.warn("Event still exists after deletion attempt:",t),alert(`Warning: Delete event was accepted by ${i.okCount} relay(s), but the event still exists on the relay. This may indicate the relay does not properly handle delete events.`)):console.log("Event successfully deleted and verified")}catch(e){console.log("Could not fetch event after deletion (likely deleted):",e.message)}try{const t=await yh(e,{timeout:5e3});if(t.length>0){console.log(`Delete event verification: Found ${t.length} delete event(s) targeting ${e}`);const n=t.find(e=>e.pubkey&&e.pubkey===d);n?console.log("Our delete event found in database:",n.id):console.warn("Our delete event not found in database, but other delete events exist")}else console.warn("No delete events found in database for target event:",e)}catch(e){console.log("Could not verify delete event in database:",e.message)}n(82,k=k.filter(t=>t.id!==e)),O=O.filter(t=>t.id!==e),_=_.filter(t=>t.id!==e);for(const[t,n]of R)n.events&&(n.events=n.events.filter(t=>t.id!==e),R.set(t,n));se(),console.log("Reloading events to show delete event...");const t=cv&&u&&d?[d]:null;await Ce(!0,t),alert("Event deleted successfully (local relay only - admin/owner deleting other user's event)")}}}catch(e){console.error("Failed to delete event:",e),alert("Failed to delete event: "+e.message)}}else alert("You do not have permission to delete this event")}async function re(){const e=J?parseInt(J):V;if(null==e||isNaN(e))console.log("No valid kind to load, kindToUse:",e);else if(u){console.log("Loading recovery events for kind:",e,"user:",d),n(29,G=!0);try{const t=[{kinds:[e],authors:[d],limit:100}];Y&&(t[0].until=Y),console.log("Recovery filters:",t);const r=await async function(e,t={}){const{timeout:n=3e4,cacheFirst:r=!0,cacheOnly:o=!1}=t;let i=[];if(r||o)try{if(i=await dh(e),console.log(`Found ${i.length} events in cache`),o||i.length>0)return i}catch(e){console.warn("Failed to query cache",e)}if(!o){const t=await ph(e,{timeout:n,useCache:!1});return console.log(`Fetched ${t.length} events from relay`),t}return i}(t,{timeout:3e4,cacheFirst:!0});console.log("Recovery events received:",r.length),console.log("Recovery events kinds:",r.map(e=>e.kind)),n(28,Z=Y?[...Z,...r]:r),r.length>0?(Y=Math.min(...r.map(e=>e.created_at)),n(30,Q=100===r.length)):n(30,Q=!1)}catch(e){console.error("Failed to load recovery events:",e)}finally{n(29,G=!1)}}else console.log("Not logged in, cannot load recovery events")}async function oe(e){if(confirm("Are you sure you want to repost this event?"))try{const t=`wss://${window.location.host}/`;console.log("Reposting event to local relay:",t,e);const r={...e};if(r.created_at=Math.floor(Date.now()/1e3),r.id="",r.sig="",e.kind>=3e4&&e.kind<=39999){const t=e.tags.find(e=>"d"===e[0]);t&&(r.tags=r.tags.filter(e=>"d"!==e[0]),r.tags.push(t))}if(g){const e=await g.signEvent(r);console.log("Signed event for repost:",e);const o=await oh.publish(e,[t]);console.log("Repost publish result:",o),o.success&&o.okCount>0?(alert("Event reposted successfully!"),n(30,Q=!1),await re()):alert("Failed to repost event. Check console for details.")}else alert("No signer available. Please log in.")}catch(e){console.error("Error reposting event:",e),alert("Error reposting event: "+e.message)}}async function ie(e){if(confirm("Are you sure you want to repost this event to all your write relays?"))try{const t=await async function(){if(!d)return[];try{const e=await dh([{kinds:[10002],authors:[d],limit:1}]);if(0===e.length)return console.log("No relay list event found for user"),[];const t=e[0];console.log("Found relay list event:",t);const n=[];for(const e of t.tags)if("r"===e[0]&&e.length>=2){const t=e[1],r=e.length>=3?e[2]:null;r&&"write"!==r||n.push(t)}return console.log("Found write relays:",n),n}catch(e){return console.error("Error fetching user write relays:",e),[]}}(),r=`wss://${window.location.host}/`,o=[r,...t.filter(e=>e!==r)];1===o.length&&alert("No write relays found in your relay list. Only posting to local relay."),console.log("Reposting event to all relays:",o,e);const i={...e};if(i.created_at=Math.floor(Date.now()/1e3),i.id="",i.sig="",e.kind>=3e4&&e.kind<=39999){const t=e.tags.find(e=>"d"===e[0]);t&&(i.tags=i.tags.filter(e=>"d"!==e[0]),i.tags.push(t))}if(g){const e=await g.signEvent(i);console.log("Signed event for repost to all:",e);const t=await oh.publish(e,o);console.log("Repost to all publish result:",t),t.success&&t.okCount>0?(alert(`Event reposted successfully to ${o.length} relays!`),n(30,Q=!1),await re()):alert("Failed to repost event. Check console for details.")}else alert("No signer available. Please log in.")}catch(e){console.error("Error reposting event to all:",e),alert("Error reposting event to all: "+e.message)}}if("undefined"!=typeof localStorage){const e=localStorage.getItem("isDarkTheme");null!==e&&(l=JSON.parse(e));const t=localStorage.getItem("nostr_auth_method"),r=localStorage.getItem("nostr_pubkey");t&&r&&(u=!0,d=r,f=t,"extension"===t&&window.nostr&&(g=window.nostr),ke(),xe()),function(){if("undefined"==typeof localStorage)return;try{const t=localStorage.getItem("app_state");if(t){const r=JSON.parse(t);r.selectedTab&&he.some(e=>e.id===r.selectedTab)&&n(5,v=r.selectedTab),r.expandedEvents&&n(17,S=new Set(r.expandedEvents)),r.globalEventsCache&&(_=r.globalEventsCache),r.globalCacheTimestamp&&(L=r.globalCacheTimestamp),void 0!==r.hasMoreEvents&&(A=r.hasMoreEvents),r.oldestEventTimestamp&&($=r.oldestEventTimestamp),void 0!==r.hasMoreMyEvents&&(B=r.hasMoreMyEvents),r.oldestMyEventTimestamp&&(j=r.oldestMyEventTimestamp),_.length>0&&((e=L)&&Date.now()-e<P)&&n(82,k=_)}}catch(e){console.error("Failed to load persistent state:",e)}var e}(),async function(){try{const e=await fetch("/api/sprocket/config",{method:"GET",headers:{"Content-Type":"application/json"}});if(e.ok){const t=await e.json();n(84,H=t.enabled)}}catch(e){console.error("Error loading sprocket config:",e)}}()}function se(){if("undefined"==typeof localStorage)return;const e={selectedTab:v,expandedEvents:Array.from(S),globalEventsCache:_,globalCacheTimestamp:L,hasMoreEvents:A,oldestEventTimestamp:$};localStorage.setItem("app_state",JSON.stringify(e))}function ae(e){_=e.sort((e,t)=>t.created_at-e.created_at),L=Date.now(),se()}async function le(){if(u&&"owner"===p&&H)try{n(21,F=!0);const e=await fetch("/api/sprocket/status",{method:"GET",headers:{Authorization:`Nostr ${await Ie("GET","/api/sprocket/status")}`,"Content-Type":"application/json"}});e.ok?n(19,M=await e.json()):fe("Failed to load sprocket status","error")}catch(e){fe(`Error loading sprocket status: ${e.message}`,"error")}finally{n(21,F=!1)}}async function ce(){if(u&&"owner"===p)try{n(21,F=!0);const e=await fetch("/api/sprocket/versions",{method:"GET",headers:{Authorization:`Nostr ${await Ie("GET","/api/sprocket/versions")}`,"Content-Type":"application/json"}});e.ok?n(20,U=await e.json()):fe("Failed to load versions","error")}catch(e){fe(`Error loading versions: ${e.message}`,"error")}finally{n(21,F=!1)}}async function ue(e){u&&"owner"===p&&(n(18,N=e.content),fe(`Loaded version: ${e.name}`,"success"))}async function de(e){if(u&&"owner"===p&&confirm(`Are you sure you want to delete version ${e}?`))try{n(21,F=!0);const t=await fetch("/api/sprocket/delete-version",{method:"POST",headers:{Authorization:`Nostr ${await Ie("POST","/api/sprocket/delete-version")}`,"Content-Type":"application/json"},body:JSON.stringify({filename:e})});if(t.ok)fe(`Version ${e} deleted successfully`,"success"),await ce();else{fe(`Failed to delete version: ${await t.text()}`,"error")}}catch(e){fe(`Error deleting version: ${e.message}`,"error")}finally{n(21,F=!1)}}function fe(e,t="info"){n(22,D=e),n(23,q=t),setTimeout(()=>{n(22,D="")},5e3)}const he=[{id:"export",icon:"📤",label:"Export"},{id:"import",icon:"💾",label:"Import",requiresAdmin:!0},{id:"events",icon:"📡",label:"Events"},{id:"compose",icon:"✏️",label:"Compose",requiresWrite:!0},{id:"recovery",icon:"🔄",label:"Recovery"},{id:"managed-acl",icon:"🛡️",label:"Managed ACL",requiresOwner:!0},{id:"sprocket",icon:"⚙️",label:"Sprocket",requiresOwner:!0}];function pe(e){n(5,v=e),"sprocket"===e&&u&&"owner"===p&&H&&(le(),ce()),se()}function ge(){n(13,y=!1)}function ye(e,t){const r=`search-${Date.now()}`,o={id:r,icon:"🔍",label:t,isSearchTab:!0,filter:e};n(6,E=[...E,o]),n(5,v=r),R.set(r,{filter:e,events:[],isLoading:!1,hasMore:!0,oldestTimestamp:null}),we(r,!0)}function ve(e){me(e)}function me(e){n(6,E=E.filter(t=>t.id!==e)),R.delete(e),v===e&&n(5,v="export")}async function we(e,t=!0){const n=R.get(e);if(n&&!n.isLoading){n.isLoading=!0,R.set(e,n);try{const r={...n.filter};!t&&n.oldestTimestamp&&(r.until=n.oldestTimestamp),t||(r.limit=200),console.log("Loading search results with filter:",r);const o=await ph([r],{timeout:3e4});if(console.log("Received search results:",o.length,"events"),n.events=t?o.sort((e,t)=>t.created_at-e.created_at):[...n.events,...o].sort((e,t)=>t.created_at-e.created_at),o.length>0){const e=Math.min(...o.map(e=>e.created_at));(!n.oldestTimestamp||e<n.oldestTimestamp)&&(n.oldestTimestamp=e)}n.hasMore=o.length===(t?r.limit||100:200),n.isLoading=!1,R.set(e,n)}catch(t){console.error("Failed to load search results:",t),n.isLoading=!1,R.set(e,n),alert("Failed to load search results: "+t.message)}}}function be(e,t){const{scrollTop:n,scrollHeight:r,clientHeight:o}=e.target;if(r-n-o<100){const e=R.get(t);e&&!e.isLoading&&e.hasMore&&async function(e){await we(e,!1)}(t)}}async function Ee(){if(u&&d&&!h)try{console.log("Auto-fetching profile for:",d),await vh(),n(3,h=await hh(d)),console.log("Profile auto-loaded:",h)}catch(e){console.error("Failed to auto-load profile:",e)}}async function ke(){if(u&&d)try{const e=await fetch(`/api/permissions/${d}`);if(e.ok){const t=await e.json();n(4,p=t.permission||""),console.log("User role loaded:",p),console.log("Is owner?","owner"===p)}else console.error("Failed to fetch user role:",e.status),n(4,p="")}catch(e){console.error("Error fetching user role:",e),n(4,p="")}else n(4,p="")}async function xe(){try{const e=await fetch("/api/acl-mode");if(e.ok){const t=await e.json();n(8,K=t.acl_mode||""),console.log("ACL mode loaded:",K)}else console.error("Failed to fetch ACL mode:",e.status),n(8,K="")}catch(e){console.error("Error fetching ACL mode:",e),n(8,K="")}}async function Se(e=[]){if(u)if(0!==e.length||"admin"===a||"owner"===a)try{const t=await Te("/api/export","POST"),n=await fetch("/api/export",{method:"POST",headers:{Authorization:t,"Content-Type":"application/json"},body:JSON.stringify({pubkeys:e})});if(!n.ok)throw new Error(`Export failed: ${n.status} ${n.statusText}`);const r=await n.blob(),o=window.URL.createObjectURL(r),i=document.createElement("a");i.href=o;const s=n.headers.get("Content-Disposition");let a="events.jsonl";if(s){const e=s.match(/filename="([^"]+)"/);e&&(a=e[1])}i.download=a,document.body.appendChild(i),i.click(),document.body.removeChild(i),window.URL.revokeObjectURL(o)}catch(e){console.error("Export failed:",e),alert("Export failed: "+e.message)}else alert("Admin or owner permission required to export all events");else alert("Please log in first")}async function Ce(e=!1,t=null){if(!u||"read"!==p&&"write"!==p&&"admin"!==p&&"owner"!==p)alert("Read, write, admin, or owner permission required");else if(!C){n(7,C=!0),e&&($=null);try{console.log("Loading events with authors filter:",t,"including delete events");const r=e?Math.floor(Date.now()/1e3):$,o=await async function(e={}){const{limit:t=100,since:n=null,until:r=null,authors:o=null,kinds:i=null,...s}=e,a=[{...s}];return n&&(a[0].since=n),r&&(a[0].until=r),o&&(a[0].authors=o),i&&(a[0].kinds=i),t&&(a[0].limit=t),await ph(a,{timeout:3e4})}({limit:e?100:200,until:r,authors:t});if(console.log("Received events:",o.length,"events"),t&&o.length>0){const e=o.filter(e=>e.pubkey&&e.pubkey!==d);e.length>0&&console.warn("Server returned non-user events:",e.length,"out of",o.length)}if(e?(n(82,k=o.sort((e,t)=>t.created_at-e.created_at)),ae(o)):(n(82,k=[...k,...o].sort((e,t)=>t.created_at-e.created_at)),ae(k)),o.length>0){const e=Math.min(...o.map(e=>e.created_at));(!$||e<$)&&($=e)}A=o.length===(e?1e3:200),e&&A&&setTimeout(()=>{if("events"===v){const e=document.querySelectorAll(".events-view-content")[0];e&&e.scrollHeight<=e.clientHeight&&Ae()}},100)}catch(e){console.error("Failed to load events:",e),alert("Failed to load events: "+e.message)}finally{n(7,C=!1)}}}async function Ae(){await Ce(!1)}let $e=!1;async function Te(e,t){if(!u||!d)throw new Error("Not logged in");const n={kind:27235,created_at:Math.floor(Date.now()/1e3),tags:[["u",window.location.origin+e],["method",t.toUpperCase()]],content:"",pubkey:d};let r;if(g&&"extension"===f)try{r=await g.signEvent(n)}catch(e){throw new Error("Failed to sign with extension: "+e.message)}else{if("nsec"!==f)throw new Error("No valid signer available");n.id="mock-id-"+Date.now(),n.sig="mock-signature-"+Date.now(),r=n}const o=JSON.stringify(r);return`Nostr ${btoa(o)}`}async function Ie(e,t){if(!u||!d)throw new Error("Not logged in");const n={kind:27235,created_at:Math.floor(Date.now()/1e3),tags:[["u",window.location.origin+t],["method",e.toUpperCase()]],content:"",pubkey:d};let r;if(g&&"extension"===f)try{r=await g.signEvent(n)}catch(e){throw new Error("Failed to sign with extension: "+e.message)}else{if("nsec"!==f)throw new Error("No valid signer available");n.id="mock-id-"+Date.now(),n.sig="mock-signature-"+Date.now(),r=n}const o=JSON.stringify(r);return btoa(o)}function Re(e){n(83,T=e),localStorage.setItem("viewAsRole",e),console.log("View as role changed to:",e,"Current effective role:",a)}T=localStorage.getItem("viewAsRole")||"";return e.$$.update=()=>{var t;if(6&e.$$.dirty[0]|1048576&e.$$.dirty[2]&&n(32,r=k.sort((e,t)=>t.created_at-e.created_at)),8&e.$$.dirty[0]&&n(31,o=h?.about?(t=h.about,String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")).replace(/\n{2,}/g,"<br>"):""),16&e.$$.dirty[0]|2097152&e.$$.dirty[2]&&n(9,a=T&&""!==T?T:p),786&e.$$.dirty[0]|6291456&e.$$.dirty[2]&&n(86,i=he.filter(e=>{const t=a;return!(e.requiresAdmin&&(!u||"admin"!==t&&"owner"!==t))&&(!(e.requiresOwner&&(!u||"owner"!==t))&&(!(e.requiresWrite&&(!u||"read"===t))&&(!("sprocket"===e.id&&!H)&&(("managed-acl"!==e.id||"managed"===K)&&(console.log(`Tab ${e.id} filter check:`,{isLoggedIn:u,userRole:p,viewAsRole:T,currentRole:t,requiresAdmin:e.requiresAdmin,requiresOwner:e.requiresOwner,requiresWrite:e.requiresWrite,visible:!0}),!0)))))})),64&e.$$.dirty[0]|16777216&e.$$.dirty[2]&&n(10,s=[...i,...E]),1298&e.$$.dirty[0]|16777216&e.$$.dirty[2]&&console.log("Tabs debug:",{isLoggedIn:u,userRole:p,aclMode:K,filteredBaseTabs:i.map(e=>e.id),allTabs:s.map(e=>e.id)}),1&e.$$.dirty[0]&&"undefined"!=typeof document&&(l?document.body.classList.add("dark-theme"):document.body.classList.remove("dark-theme")),14&e.$$.dirty[0]&&u&&d&&!h&&Ee(),182&e.$$.dirty[0]|9437184&e.$$.dirty[2]&&"events"===v&&u&&("read"===p||"write"===p||"admin"===p||"owner"===p)&&0===k.length&&!$e&&!C){n(85,$e=!0);Ce(!0,null)}32&e.$$.dirty[0]|1048576&e.$$.dirty[2]&&("events"!==v||"events"===v&&k.length>0)&&n(85,$e=!1),32&e.$$.dirty[0]&&localStorage.setItem("selectedTab",v)},[l,u,d,h,p,v,E,C,K,a,s,c,g,y,m,w,x,S,N,M,U,F,D,q,z,W,V,J,Z,G,Q,o,r,R,X,function(e){return ee[e]||`Kind ${e}`},te,async function(){console.log("Toggle changed, showOnlyMyEvents:",cv),n(85,$e=!1),await Ce(!0,null)},ne,re,oe,ie,function(){console.log("selectRecoveryKind called, recoverySelectedKind:",V),null!=V?(n(27,J=""),n(28,Z=[]),Y=null,n(30,Q=!0),re()):console.log("No kind selected, skipping load")},function(){console.log("handleCustomKindInput called, recoveryCustomKind:",J);const e=parseInt(J);""!==J&&!isNaN(e)&&e>=0&&(n(26,V=null),n(28,Z=[]),Y=null,n(30,Q=!0),re())},function(e){const t=Z.filter(t=>t.kind===e.kind&&t.pubkey===e.pubkey),n=Math.max(...t.map(e=>e.created_at));return e.created_at===n},async function(){if(u&&"owner"===p)try{n(21,F=!0);const e=await fetch("/api/sprocket/status",{method:"GET",headers:{Authorization:`Nostr ${await Ie("GET","/api/sprocket/status")}`,"Content-Type":"application/json"}});if(e.ok){const t=await e.json();n(18,N=t.script_content||""),n(19,M=t),fe("Script loaded successfully","success")}else fe("Failed to load script","error")}catch(e){fe(`Error loading script: ${e.message}`,"error")}finally{n(21,F=!1)}},async function(){if(u&&"owner"===p)try{n(21,F=!0);const e=await fetch("/api/sprocket/update",{method:"POST",headers:{Authorization:`Nostr ${await Ie("POST","/api/sprocket/update")}`,"Content-Type":"text/plain"},body:N});if(e.ok)fe("Script saved and updated successfully","success"),await le(),await ce();else{fe(`Failed to save script: ${await e.text()}`,"error")}}catch(e){fe(`Error saving script: ${e.message}`,"error")}finally{n(21,F=!1)}},async function(){if(u&&"owner"===p)try{n(21,F=!0);const e=await fetch("/api/sprocket/restart",{method:"POST",headers:{Authorization:`Nostr ${await Ie("POST","/api/sprocket/restart")}`,"Content-Type":"application/json"}});if(e.ok)fe("Sprocket restarted successfully","success"),await le();else{fe(`Failed to restart sprocket: ${await e.text()}`,"error")}}catch(e){fe(`Error restarting sprocket: ${e.message}`,"error")}finally{n(21,F=!1)}},async function(){if(u&&"owner"===p&&confirm("Are you sure you want to delete the sprocket script? This will stop the current process."))try{n(21,F=!0);const e=await fetch("/api/sprocket/update",{method:"POST",headers:{Authorization:`Nostr ${await Ie("POST","/api/sprocket/update")}`,"Content-Type":"text/plain"},body:""});if(e.ok)n(18,N=""),fe("Sprocket script deleted successfully","success"),await le(),await ce();else{fe(`Failed to delete script: ${await e.text()}`,"error")}}catch(e){fe(`Error deleting script: ${e.message}`,"error")}finally{n(21,F=!1)}},ce,ue,de,function(e){n(24,z=e.target.files[0])},async function(){if(u&&"owner"===p&&z)try{n(21,F=!0);const e=await z.text(),t=await fetch("/api/sprocket/update",{method:"POST",headers:{Authorization:`Nostr ${await Ie("POST","/api/sprocket/update")}`,"Content-Type":"text/plain"},body:e});if(t.ok)n(18,N=e),fe("Script uploaded and updated successfully","success"),await le(),await ce();else{fe(`Failed to upload script: ${await t.text()}`,"error")}}catch(e){fe(`Error uploading script: ${e.message}`,"error")}finally{n(21,F=!1),n(24,z=null);const e=document.getElementById("sprocket-upload-file");e&&(e.value="")}},pe,function(){n(0,l=!l),"undefined"!=typeof localStorage&&localStorage.setItem("isDarkTheme",JSON.stringify(l))},function(){u||n(11,c=!0)},async function(e){const{method:t,pubkey:r,privateKey:o,signer:i}=e.detail;n(1,u=!0),n(2,d=r),f=t,n(12,g=i),n(11,c=!1);try{if(await vh(),"extension"===t&&i)oh.setSigner(i);else if("nsec"===t&&o){const e=new Hd(o);oh.setSigner(e)}n(3,h=await hh(r)),console.log("Profile loaded:",h)}catch(e){console.error("Failed to load profile:",e)}await ke(),await xe()},function(){n(1,u=!1),n(2,d=""),f="",n(3,h=null),n(4,p=""),n(12,g=null),n(13,y=!1),O=[],n(82,k=[]),_=[],L=0,se(),"undefined"!=typeof localStorage&&(localStorage.removeItem("nostr_auth_method"),localStorage.removeItem("nostr_pubkey"),localStorage.removeItem("nostr_privkey"))},function(){n(11,c=!1)},function(){n(13,y=!0)},ge,function(){n(14,m=!m),m||n(15,w="")},function(e){"Enter"===e.key&&w.trim()?(!function(e){const t=Ng({searchText:e,limit:100});ye(t,`Search: ${e}`)}(w.trim()),n(15,w=""),n(14,m=!1)):"Escape"===e.key&&(n(14,m=!1),n(15,w=""))},function(e){const{searchText:t,selectedKinds:r,pubkeys:o,eventIds:i,tags:s,sinceTimestamp:a,untilTimestamp:l,limit:c}=e.detail,u=Ng({searchText:t,kinds:r,authors:o,ids:i,tags:s,since:a,until:l,limit:c||100});let d="Filter";t?d=`Search: ${t.substring(0,20)}${t.length>20?"...":""}`:r.length>0?d=`Kinds: ${r.slice(0,3).join(", ")}${r.length>3?"...":""}`:o.length>0&&(d=`Authors: ${o.length}`),ye(u,d),n(14,m=!1)},function(){n(14,m=!1)},ve,me,we,be,Ee,async function(){await Se([])},async function(){await Se([d])},function(e){n(16,x=e.target.files[0])},async function(){if(!u||"admin"!==p&&"owner"!==p)alert("Admin or owner permission required");else if(x)try{const e=await Te("/api/import","POST"),t=new FormData;t.append("file",x);const r=await fetch("/api/import",{method:"POST",headers:{Authorization:e},body:t});if(!r.ok)throw new Error(`Import failed: ${r.status} ${r.statusText}`);await r.json();alert("Import started successfully"),n(16,x=null),document.getElementById("import-file").value=""}catch(e){console.error("Import failed:",e),alert("Import failed: "+e.message)}else alert("Please select a file")},Ce,function(e){const{scrollTop:t,scrollHeight:n,clientHeight:r}=e.target;n-t-r<100&&Ae()},function(){try{if(!W.trim())return void alert("Please enter some JSON to reformat");const e=JSON.parse(W);n(25,W=JSON.stringify(e,null,2))}catch(e){alert("Invalid JSON: "+e.message)}},async function(){try{if(!W.trim())return void alert("Please enter an event to sign");if(!u||!d)return void alert("Please log in to sign events");if(!g)return void alert("No signer available. Please log in with a valid authentication method.");const e=JSON.parse(W);e.pubkey=d,e.created_at=Math.floor(Date.now()/1e3),delete e.id,delete e.sig;const t=await g.signEvent(e);n(25,W=JSON.stringify(t,null,2)),alert("Event signed successfully!")}catch(e){console.error("Error signing event:",e),alert("Error signing event: "+e.message)}},async function(){try{if(!W.trim())return void alert("Please enter an event to publish");if(!u)return void alert("Please log in to publish events");if(!g)return void alert("No signer available. Please log in with a valid authentication method.");const e=JSON.parse(W);if(!e.id||!e.sig)return void alert('Event must be signed before publishing. Please click "Sign" first.');const t=`wss://${window.location.host}`,n=await fy(t,e,g,d);n.success?alert("Event published successfully to ORLY relay!"):alert(`Event publishing failed: ${n.reason||"Unknown error"}`)}catch(e){console.error("Error publishing event:",e),alert("Error publishing event: "+e.message)}},Re,function(){const e=["owner","admin","write","read"],t=e.indexOf(p);return-1===t?["read"]:e.slice(t)},k,T,H,$e,i,function(t){I.call(this,e,t)},function(t){I.call(this,e,t)},e=>e.id===v,function(e){w=e,n(15,w)},e=>pe(e.detail),e=>me(e.detail),e=>te(e.detail),e=>ne(e.detail),e=>hv(e.detail.event,e.detail.e),e=>Ce(e.detail.refresh,e.detail.authors),function(e){W=e,n(25,W)},function(e){N=e,n(18,N)},e=>ue(e.detail),e=>de(e.detail),function(){V=function(e){const t=e.querySelector(":checked");return t&&t.__value}(this),n(26,V),n(34,X)},function(){J=b(this.value),n(27,J)},e=>ie(e),e=>oe(e),(e,t)=>hv(e,t),e=>we(e.id,!0),e=>ve(e.id),e=>ne(e.id),e=>te(e.id),(e,t)=>"Enter"===t.key&&te(e.id),(e,t)=>hv(e,t),(e,t)=>be(t,e.id),e=>Re(e===p?"":e),e=>"Escape"===e.key&&ge(),function(e){c=e,n(11,c)}]}return new class extends ee{constructor(e){super(),X(this,e,pv,lv,i,{},null,[-1,-1,-1,-1,-1,-1])}}({target:document.body,props:{name:"world"}})}();
//# sourceMappingURL=bundle.js.map